/*
 * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
 * This devtool is neither made for production nor for readable output files.
 * It uses "eval()" calls to create a separate source file in the browser devtools.
 * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
 * or disable the default devtool with "devtool: false".
 * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
 */
/******/ (() => { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ "./chokidar/index.js":
/*!***************************!*\
  !*** ./chokidar/index.js ***!
  \***************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nvar EventEmitter = __webpack_require__(/*! events */ \"events\").EventEmitter;\nvar fs = __webpack_require__(/*! fs */ \"fs\");\nvar sysPath = __webpack_require__(/*! path */ \"path\");\nvar asyncEach = __webpack_require__(/*! async-each */ \"./node_modules/async-each/index.js\");\nvar anymatch = __webpack_require__(/*! anymatch */ \"./node_modules/anymatch/index.js\");\nvar globParent = __webpack_require__(/*! glob-parent */ \"./node_modules/glob-parent/index.js\");\nvar isGlob = __webpack_require__(/*! is-glob */ \"./node_modules/is-glob/index.js\");\nvar isAbsolute = __webpack_require__(/*! path-is-absolute */ \"./node_modules/path-is-absolute/index.js\");\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits.js\");\nvar braces = __webpack_require__(/*! braces */ \"./node_modules/braces/index.js\");\nvar normalizePath = __webpack_require__(/*! normalize-path */ \"./node_modules/normalize-path/index.js\");\nvar upath = __webpack_require__(/*! upath */ \"./node_modules/upath/build/code/upath.js\");\n\nvar NodeFsHandler = __webpack_require__(/*! ./lib/nodefs-handler */ \"./chokidar/lib/nodefs-handler.js\");\nvar FsEventsHandler = __webpack_require__(/*! ./lib/fsevents-handler */ \"./chokidar/lib/fsevents-handler.js\");\n\nvar arrify = function(value) {\n  if (value == null) return [];\n  return Array.isArray(value) ? value : [value];\n};\n\nvar flatten = function(list, result) {\n  if (result == null) result = [];\n  list.forEach(function(item) {\n    if (Array.isArray(item)) {\n      flatten(item, result);\n    } else {\n      result.push(item);\n    }\n  });\n  return result;\n};\n\n// Little isString util for use in Array#every.\nvar isString = function(thing) {\n  return typeof thing === 'string';\n};\n\n// Public: Main class.\n// Watches files & directories for changes.\n//\n// * _opts - object, chokidar options hash\n//\n// Emitted events:\n// `add`, `addDir`, `change`, `unlink`, `unlinkDir`, `all`, `error`\n//\n// Examples\n//\n//  var watcher = new FSWatcher()\n//    .add(directories)\n//    .on('add', path => console.log('File', path, 'was added'))\n//    .on('change', path => console.log('File', path, 'was changed'))\n//    .on('unlink', path => console.log('File', path, 'was removed'))\n//    .on('all', (event, path) => console.log(path, ' emitted ', event))\n//\nfunction FSWatcher(_opts) {\n  EventEmitter.call(this);\n  var opts = {};\n  // in case _opts that is passed in is a frozen object\n  if (_opts) for (var opt in _opts) opts[opt] = _opts[opt];\n  this._watched = Object.create(null);\n  this._closers = Object.create(null);\n  this._ignoredPaths = Object.create(null);\n  Object.defineProperty(this, '_globIgnored', {\n    get: function() { return Object.keys(this._ignoredPaths); }\n  });\n  this.closed = false;\n  this._throttled = Object.create(null);\n  this._symlinkPaths = Object.create(null);\n\n  function undef(key) {\n    return opts[key] === undefined;\n  }\n\n  // Set up default options.\n  if (undef('persistent')) opts.persistent = true;\n  if (undef('ignoreInitial')) opts.ignoreInitial = false;\n  if (undef('ignorePermissionErrors')) opts.ignorePermissionErrors = false;\n  if (undef('interval')) opts.interval = 100;\n  if (undef('binaryInterval')) opts.binaryInterval = 300;\n  if (undef('disableGlobbing')) opts.disableGlobbing = false;\n  this.enableBinaryInterval = opts.binaryInterval !== opts.interval;\n\n  // Enable fsevents on OS X when polling isn't explicitly enabled.\n  if (undef('useFsEvents')) opts.useFsEvents = !opts.usePolling;\n\n  // If we can't use fsevents, ensure the options reflect it's disabled.\n  if (!FsEventsHandler.canUse()) opts.useFsEvents = false;\n\n  // Use polling on Mac if not using fsevents.\n  // Other platforms use non-polling fs.watch.\n  if (undef('usePolling') && !opts.useFsEvents) {\n    opts.usePolling = process.platform === 'darwin';\n  }\n\n  // Global override (useful for end-developers that need to force polling for all\n  // instances of chokidar, regardless of usage/dependency depth)\n  var envPoll = process.env.CHOKIDAR_USEPOLLING;\n  if (envPoll !== undefined) {\n    var envLower = envPoll.toLowerCase();\n\n    if (envLower === 'false' || envLower === '0') {\n      opts.usePolling = false;\n    } else if (envLower === 'true' || envLower === '1') {\n      opts.usePolling = true;\n    } else {\n      opts.usePolling = !!envLower\n    }\n  }\n  var envInterval = process.env.CHOKIDAR_INTERVAL;\n  if (envInterval) {\n    opts.interval = parseInt(envInterval);\n  }\n\n  // Editor atomic write normalization enabled by default with fs.watch\n  if (undef('atomic')) opts.atomic = !opts.usePolling && !opts.useFsEvents;\n  if (opts.atomic) this._pendingUnlinks = Object.create(null);\n\n  if (undef('followSymlinks')) opts.followSymlinks = true;\n\n  if (undef('awaitWriteFinish')) opts.awaitWriteFinish = false;\n  if (opts.awaitWriteFinish === true) opts.awaitWriteFinish = {};\n  var awf = opts.awaitWriteFinish;\n  if (awf) {\n    if (!awf.stabilityThreshold) awf.stabilityThreshold = 2000;\n    if (!awf.pollInterval) awf.pollInterval = 100;\n\n    this._pendingWrites = Object.create(null);\n  }\n  if (opts.ignored) opts.ignored = arrify(opts.ignored);\n\n  this._isntIgnored = function(path, stat) {\n    return !this._isIgnored(path, stat);\n  }.bind(this);\n\n  var readyCalls = 0;\n  this._emitReady = function() {\n    if (++readyCalls >= this._readyCount) {\n      this._emitReady = Function.prototype;\n      this._readyEmitted = true;\n      // use process.nextTick to allow time for listener to be bound\n      process.nextTick(this.emit.bind(this, 'ready'));\n    }\n  }.bind(this);\n\n  this.options = opts;\n\n  // You’re frozen when your heart’s not open.\n  Object.freeze(opts);\n}\n\ninherits(FSWatcher, EventEmitter);\n\n// Common helpers\n// --------------\n\n// Private method: Normalize and emit events\n//\n// * event     - string, type of event\n// * path      - string, file or directory path\n// * val[1..3] - arguments to be passed with event\n//\n// Returns the error if defined, otherwise the value of the\n// FSWatcher instance's `closed` flag\nFSWatcher.prototype._emit = function(event, path, val1, val2, val3) {\n  if (this.options.cwd) path = sysPath.relative(this.options.cwd, path);\n  var args = [event, path];\n  if (val3 !== undefined) args.push(val1, val2, val3);\n  else if (val2 !== undefined) args.push(val1, val2);\n  else if (val1 !== undefined) args.push(val1);\n\n  var awf = this.options.awaitWriteFinish;\n  if (awf && this._pendingWrites[path]) {\n    this._pendingWrites[path].lastChange = new Date();\n    return this;\n  }\n\n  if (this.options.atomic) {\n    if (event === 'unlink') {\n      this._pendingUnlinks[path] = args;\n      setTimeout(function() {\n        Object.keys(this._pendingUnlinks).forEach(function(path) {\n          this.emit.apply(this, this._pendingUnlinks[path]);\n          this.emit.apply(this, ['all'].concat(this._pendingUnlinks[path]));\n          delete this._pendingUnlinks[path];\n        }.bind(this));\n      }.bind(this), typeof this.options.atomic === \"number\"\n        ? this.options.atomic\n        : 100);\n      return this;\n    } else if (event === 'add' && this._pendingUnlinks[path]) {\n      event = args[0] = 'change';\n      delete this._pendingUnlinks[path];\n    }\n  }\n\n  var emitEvent = function() {\n    this.emit.apply(this, args);\n    if (event !== 'error') this.emit.apply(this, ['all'].concat(args));\n  }.bind(this);\n\n  if (awf && (event === 'add' || event === 'change') && this._readyEmitted) {\n    var awfEmit = function(err, stats) {\n      if (err) {\n        event = args[0] = 'error';\n        args[1] = err;\n        emitEvent();\n      } else if (stats) {\n        // if stats doesn't exist the file must have been deleted\n        if (args.length > 2) {\n          args[2] = stats;\n        } else {\n          args.push(stats);\n        }\n        emitEvent();\n      }\n    };\n\n    this._awaitWriteFinish(path, awf.stabilityThreshold, event, awfEmit);\n    return this;\n  }\n\n  if (event === 'change') {\n    if (!this._throttle('change', path, 50)) return this;\n  }\n\n  if (\n    this.options.alwaysStat && val1 === undefined &&\n    (event === 'add' || event === 'addDir' || event === 'change')\n  ) {\n    var fullPath = this.options.cwd ? sysPath.join(this.options.cwd, path) : path;\n    fs.stat(fullPath, function(error, stats) {\n      // Suppress event when fs.stat fails, to avoid sending undefined 'stat'\n      if (error || !stats) return;\n\n      args.push(stats);\n      emitEvent();\n    });\n  } else {\n    emitEvent();\n  }\n\n  return this;\n};\n\n// Private method: Common handler for errors\n//\n// * error  - object, Error instance\n//\n// Returns the error if defined, otherwise the value of the\n// FSWatcher instance's `closed` flag\nFSWatcher.prototype._handleError = function(error) {\n  var code = error && error.code;\n  var ipe = this.options.ignorePermissionErrors;\n  if (error &&\n    code !== 'ENOENT' &&\n    code !== 'ENOTDIR' &&\n    (!ipe || (code !== 'EPERM' && code !== 'EACCES'))\n  ) this.emit('error', error);\n  return error || this.closed;\n};\n\n// Private method: Helper utility for throttling\n//\n// * action  - string, type of action being throttled\n// * path    - string, path being acted upon\n// * timeout - int, duration of time to suppress duplicate actions\n//\n// Returns throttle tracking object or false if action should be suppressed\nFSWatcher.prototype._throttle = function(action, path, timeout) {\n  if (!(action in this._throttled)) {\n    this._throttled[action] = Object.create(null);\n  }\n  var throttled = this._throttled[action];\n  if (path in throttled) {\n    throttled[path].count++;\n    return false;\n  }\n  function clear() {\n    var count = throttled[path] ? throttled[path].count : 0;\n    delete throttled[path];\n    clearTimeout(timeoutObject);\n    return count;\n  }\n  var timeoutObject = setTimeout(clear, timeout);\n  throttled[path] = {timeoutObject: timeoutObject, clear: clear, count: 0};\n  return throttled[path];\n};\n\n// Private method: Awaits write operation to finish\n//\n// * path    - string, path being acted upon\n// * threshold - int, time in milliseconds a file size must be fixed before\n//                    acknowledging write operation is finished\n// * awfEmit - function, to be called when ready for event to be emitted\n// Polls a newly created file for size variations. When files size does not\n// change for 'threshold' milliseconds calls callback.\nFSWatcher.prototype._awaitWriteFinish = function(path, threshold, event, awfEmit) {\n  var timeoutHandler;\n\n  var fullPath = path;\n  if (this.options.cwd && !isAbsolute(path)) {\n    fullPath = sysPath.join(this.options.cwd, path);\n  }\n\n  var now = new Date();\n\n  var awaitWriteFinish = (function (prevStat) {\n    fs.stat(fullPath, function(err, curStat) {\n      if (err || !(path in this._pendingWrites)) {\n        if (err && err.code !== 'ENOENT') awfEmit(err);\n        return;\n      }\n\n      var now = new Date();\n\n      if (prevStat && curStat.size != prevStat.size) {\n        this._pendingWrites[path].lastChange = now;\n      }\n\n      if (now - this._pendingWrites[path].lastChange >= threshold) {\n        delete this._pendingWrites[path];\n        awfEmit(null, curStat);\n      } else {\n        timeoutHandler = setTimeout(\n          awaitWriteFinish.bind(this, curStat),\n          this.options.awaitWriteFinish.pollInterval\n        );\n      }\n    }.bind(this));\n  }.bind(this));\n\n  if (!(path in this._pendingWrites)) {\n    this._pendingWrites[path] = {\n      lastChange: now,\n      cancelWait: function() {\n        delete this._pendingWrites[path];\n        clearTimeout(timeoutHandler);\n        return event;\n      }.bind(this)\n    };\n    timeoutHandler = setTimeout(\n      awaitWriteFinish.bind(this),\n      this.options.awaitWriteFinish.pollInterval\n    );\n  }\n};\n\n// Private method: Determines whether user has asked to ignore this path\n//\n// * path  - string, path to file or directory\n// * stats - object, result of fs.stat\n//\n// Returns boolean\nvar dotRe = /\\..*\\.(sw[px])$|\\~$|\\.subl.*\\.tmp/;\nFSWatcher.prototype._isIgnored = function(path, stats) {\n  if (this.options.atomic && dotRe.test(path)) return true;\n\n  if (!this._userIgnored) {\n    var cwd = this.options.cwd;\n    var ignored = this.options.ignored;\n    if (cwd && ignored) {\n      ignored = ignored.map(function (path) {\n        if (typeof path !== 'string') return path;\n        return upath.normalize(isAbsolute(path) ? path : sysPath.join(cwd, path));\n      });\n    }\n    var paths = arrify(ignored)\n      .filter(function(path) {\n        return typeof path === 'string' && !isGlob(path);\n      }).map(function(path) {\n        return path + '/**';\n      });\n    this._userIgnored = anymatch(\n      this._globIgnored.concat(ignored).concat(paths)\n    );\n  }\n\n  return this._userIgnored([path, stats]);\n};\n\n// Private method: Provides a set of common helpers and properties relating to\n// symlink and glob handling\n//\n// * path - string, file, directory, or glob pattern being watched\n// * depth - int, at any depth > 0, this isn't a glob\n//\n// Returns object containing helpers for this path\nvar replacerRe = /^\\.[\\/\\\\]/;\nFSWatcher.prototype._getWatchHelpers = function(path, depth) {\n  path = path.replace(replacerRe, '');\n  var watchPath = depth || this.options.disableGlobbing || !isGlob(path) ? path : globParent(path);\n  var fullWatchPath = sysPath.resolve(watchPath);\n  var hasGlob = watchPath !== path;\n  var globFilter = hasGlob ? anymatch(path) : false;\n  var follow = this.options.followSymlinks;\n  var globSymlink = hasGlob && follow ? null : false;\n\n  var checkGlobSymlink = function(entry) {\n    // only need to resolve once\n    // first entry should always have entry.parentDir === ''\n    if (globSymlink == null) {\n      globSymlink = entry.fullParentDir === fullWatchPath ? false : {\n        realPath: entry.fullParentDir,\n        linkPath: fullWatchPath\n      };\n    }\n\n    if (globSymlink) {\n      return entry.fullPath.replace(globSymlink.realPath, globSymlink.linkPath);\n    }\n\n    return entry.fullPath;\n  };\n\n  var entryPath = function(entry) {\n    return sysPath.join(watchPath,\n      sysPath.relative(watchPath, checkGlobSymlink(entry))\n    );\n  };\n\n  var filterPath = function(entry) {\n    if (entry.stat && entry.stat.isSymbolicLink()) return filterDir(entry);\n    var resolvedPath = entryPath(entry);\n    return (!hasGlob || globFilter(resolvedPath)) &&\n      this._isntIgnored(resolvedPath, entry.stat) &&\n      (this.options.ignorePermissionErrors ||\n        this._hasReadPermissions(entry.stat));\n  }.bind(this);\n\n  var getDirParts = function(path) {\n    if (!hasGlob) return false;\n    var parts = [];\n    var expandedPath = braces.expand(path);\n    expandedPath.forEach(function(path) {\n      parts.push(sysPath.relative(watchPath, path).split(/[\\/\\\\]/));\n    });\n    return parts;\n  };\n\n  var dirParts = getDirParts(path);\n  if (dirParts) {\n    dirParts.forEach(function(parts) {\n      if (parts.length > 1) parts.pop();\n    });\n  }\n  var unmatchedGlob;\n\n  var filterDir = function(entry) {\n    if (hasGlob) {\n      var entryParts = getDirParts(checkGlobSymlink(entry));\n      var globstar = false;\n      unmatchedGlob = !dirParts.some(function(parts) {\n        return parts.every(function(part, i) {\n          if (part === '**') globstar = true;\n          return globstar || !entryParts[0][i] || anymatch(part, entryParts[0][i]);\n        });\n      });\n    }\n    return !unmatchedGlob && this._isntIgnored(entryPath(entry), entry.stat);\n  }.bind(this);\n\n  return {\n    followSymlinks: follow,\n    statMethod: follow ? 'stat' : 'lstat',\n    path: path,\n    watchPath: watchPath,\n    entryPath: entryPath,\n    hasGlob: hasGlob,\n    globFilter: globFilter,\n    filterPath: filterPath,\n    filterDir: filterDir\n  };\n};\n\n// Directory helpers\n// -----------------\n\n// Private method: Provides directory tracking objects\n//\n// * directory - string, path of the directory\n//\n// Returns the directory's tracking object\nFSWatcher.prototype._getWatchedDir = function(directory) {\n  var dir = sysPath.resolve(directory);\n  var watcherRemove = this._remove.bind(this);\n  if (!(dir in this._watched)) this._watched[dir] = {\n    _items: Object.create(null),\n    add: function(item) {\n      if (item !== '.' && item !== '..') this._items[item] = true;\n    },\n    remove: function(item) {\n      delete this._items[item];\n      if (!this.children().length) {\n        fs.readdir(dir, function(err) {\n          if (err) watcherRemove(sysPath.dirname(dir), sysPath.basename(dir));\n        });\n      }\n    },\n    has: function(item) {return item in this._items;},\n    children: function() {return Object.keys(this._items);}\n  };\n  return this._watched[dir];\n};\n\n// File helpers\n// ------------\n\n// Private method: Check for read permissions\n// Based on this answer on SO: http://stackoverflow.com/a/11781404/1358405\n//\n// * stats - object, result of fs.stat\n//\n// Returns boolean\nFSWatcher.prototype._hasReadPermissions = function(stats) {\n  return Boolean(4 & parseInt(((stats && stats.mode) & 0x1ff).toString(8)[0], 10));\n};\n\n// Private method: Handles emitting unlink events for\n// files and directories, and via recursion, for\n// files and directories within directories that are unlinked\n//\n// * directory - string, directory within which the following item is located\n// * item      - string, base path of item/directory\n//\n// Returns nothing\nFSWatcher.prototype._remove = function(directory, item) {\n  // if what is being deleted is a directory, get that directory's paths\n  // for recursive deleting and cleaning of watched object\n  // if it is not a directory, nestedDirectoryChildren will be empty array\n  var path = sysPath.join(directory, item);\n  var fullPath = sysPath.resolve(path);\n  var isDirectory = this._watched[path] || this._watched[fullPath];\n\n  // prevent duplicate handling in case of arriving here nearly simultaneously\n  // via multiple paths (such as _handleFile and _handleDir)\n  if (!this._throttle('remove', path, 100)) return;\n\n  // if the only watched file is removed, watch for its return\n  var watchedDirs = Object.keys(this._watched);\n  if (!isDirectory && !this.options.useFsEvents && watchedDirs.length === 1) {\n    this.add(directory, item, true);\n  }\n\n  // This will create a new entry in the watched object in either case\n  // so we got to do the directory check beforehand\n  var nestedDirectoryChildren = this._getWatchedDir(path).children();\n\n  // Recursively remove children directories / files.\n  nestedDirectoryChildren.forEach(function(nestedItem) {\n    this._remove(path, nestedItem);\n  }, this);\n\n  // Check if item was on the watched list and remove it\n  var parent = this._getWatchedDir(directory);\n  var wasTracked = parent.has(item);\n  parent.remove(item);\n\n  // If we wait for this file to be fully written, cancel the wait.\n  var relPath = path;\n  if (this.options.cwd) relPath = sysPath.relative(this.options.cwd, path);\n  if (this.options.awaitWriteFinish && this._pendingWrites[relPath]) {\n    var event = this._pendingWrites[relPath].cancelWait();\n    if (event === 'add') return;\n  }\n\n  // The Entry will either be a directory that just got removed\n  // or a bogus entry to a file, in either case we have to remove it\n  delete this._watched[path];\n  delete this._watched[fullPath];\n  var eventName = isDirectory ? 'unlinkDir' : 'unlink';\n  if (wasTracked && !this._isIgnored(path)) this._emit(eventName, path);\n\n  // Avoid conflicts if we later create another file with the same name\n  if (!this.options.useFsEvents) {\n    this._closePath(path);\n  }\n};\n\nFSWatcher.prototype._closePath = function(path) {\n  if (!this._closers[path]) return;\n  this._closers[path].forEach(function(closer) {\n    closer();\n  });\n  delete this._closers[path];\n  this._getWatchedDir(sysPath.dirname(path)).remove(sysPath.basename(path));\n}\n\n// Public method: Adds paths to be watched on an existing FSWatcher instance\n\n// * paths     - string or array of strings, file/directory paths and/or globs\n// * _origAdd  - private boolean, for handling non-existent paths to be watched\n// * _internal - private boolean, indicates a non-user add\n\n// Returns an instance of FSWatcher for chaining.\nFSWatcher.prototype.add = function(paths, _origAdd, _internal) {\n  var disableGlobbing = this.options.disableGlobbing;\n  var cwd = this.options.cwd;\n  this.closed = false;\n  paths = flatten(arrify(paths));\n\n  if (!paths.every(isString)) {\n    throw new TypeError('Non-string provided as watch path: ' + paths);\n  }\n\n  if (cwd) paths = paths.map(function(path) {\n    var absPath;\n    if (isAbsolute(path)) {\n      absPath = path;\n    } else if (path[0] === '!') {\n      absPath = '!' + sysPath.join(cwd, path.substring(1));\n    } else {\n      absPath = sysPath.join(cwd, path);\n    }\n\n    // Check `path` instead of `absPath` because the cwd portion can't be a glob\n    if (disableGlobbing || !isGlob(path)) {\n      return absPath;\n    } else {\n      return normalizePath(absPath);\n    }\n  });\n\n  // set aside negated glob strings\n  paths = paths.filter(function(path) {\n    if (path[0] === '!') {\n      this._ignoredPaths[path.substring(1)] = true;\n    } else {\n      // if a path is being added that was previously ignored, stop ignoring it\n      delete this._ignoredPaths[path];\n      delete this._ignoredPaths[path + '/**'];\n\n      // reset the cached userIgnored anymatch fn\n      // to make ignoredPaths changes effective\n      this._userIgnored = null;\n\n      return true;\n    }\n  }, this);\n\n  if (this.options.useFsEvents && FsEventsHandler.canUse()) {\n    if (!this._readyCount) this._readyCount = paths.length;\n    if (this.options.persistent) this._readyCount *= 2;\n    paths.forEach(this._addToFsEvents, this);\n  } else {\n    if (!this._readyCount) this._readyCount = 0;\n    this._readyCount += paths.length;\n    asyncEach(paths, function(path, next) {\n      this._addToNodeFs(path, !_internal, 0, 0, _origAdd, function(err, res) {\n        if (res) this._emitReady();\n        next(err, res);\n      }.bind(this));\n    }.bind(this), function(error, results) {\n      results.forEach(function(item) {\n        if (!item || this.closed) return;\n        this.add(sysPath.dirname(item), sysPath.basename(_origAdd || item));\n      }, this);\n    }.bind(this));\n  }\n\n  return this;\n};\n\n// Public method: Close watchers or start ignoring events from specified paths.\n\n// * paths     - string or array of strings, file/directory paths and/or globs\n\n// Returns instance of FSWatcher for chaining.\nFSWatcher.prototype.unwatch = function(paths) {\n  if (this.closed) return this;\n  paths = flatten(arrify(paths));\n\n  paths.forEach(function(path) {\n    // convert to absolute path unless relative path already matches\n    if (!isAbsolute(path) && !this._closers[path]) {\n      if (this.options.cwd) path = sysPath.join(this.options.cwd, path);\n      path = sysPath.resolve(path);\n    }\n\n    this._closePath(path);\n\n    this._ignoredPaths[path] = true;\n    if (path in this._watched) {\n      this._ignoredPaths[path + '/**'] = true;\n    }\n\n    // reset the cached userIgnored anymatch fn\n    // to make ignoredPaths changes effective\n    this._userIgnored = null;\n  }, this);\n\n  return this;\n};\n\n// Public method: Close watchers and remove all listeners from watched paths.\n\n// Returns instance of FSWatcher for chaining.\nFSWatcher.prototype.close = function() {\n  if (this.closed) return this;\n\n  this.closed = true;\n  Object.keys(this._closers).forEach(function(watchPath) {\n    this._closers[watchPath].forEach(function(closer) {\n      closer();\n    });\n    delete this._closers[watchPath];\n  }, this);\n  this._watched = Object.create(null);\n\n  this.removeAllListeners();\n  return this;\n};\n\n// Public method: Expose list of watched paths\n\n// Returns object w/ dir paths as keys and arrays of contained paths as values.\nFSWatcher.prototype.getWatched = function() {\n  var watchList = {};\n  Object.keys(this._watched).forEach(function(dir) {\n    var key = this.options.cwd ? sysPath.relative(this.options.cwd, dir) : dir;\n    watchList[key || '.'] = Object.keys(this._watched[dir]._items).sort();\n  }.bind(this));\n  return watchList;\n};\n\n// Attach watch handler prototype methods\nfunction importHandler(handler) {\n  Object.keys(handler.prototype).forEach(function(method) {\n    FSWatcher.prototype[method] = handler.prototype[method];\n  });\n}\nimportHandler(NodeFsHandler);\nif (FsEventsHandler.canUse()) importHandler(FsEventsHandler);\n\n// Export FSWatcher class\nexports.FSWatcher = FSWatcher;\n\n// Public function: Instantiates watcher with paths to be tracked.\n\n// * paths     - string or array of strings, file/directory paths and/or globs\n// * options   - object, chokidar options\n\n// Returns an instance of FSWatcher for chaining.\nexports.watch = function(paths, options) {\n  return new FSWatcher(options).add(paths);\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./chokidar/index.js?");

/***/ }),

/***/ "./chokidar/lib/fsevents-handler.js":
/*!******************************************!*\
  !*** ./chokidar/lib/fsevents-handler.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar fs = __webpack_require__(/*! fs */ \"fs\");\nvar sysPath = __webpack_require__(/*! path */ \"path\");\nvar readdirp = __webpack_require__(/*! readdirp */ \"./node_modules/readdirp/readdirp.js\");\nvar fsevents;\ntry { fsevents = __webpack_require__(Object(function webpackMissingModule() { var e = new Error(\"Cannot find module 'fsevents'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }())); } catch (error) {\n  if (process.env.CHOKIDAR_PRINT_FSEVENTS_REQUIRE_ERROR) console.error(error)\n}\n\n// fsevents instance helper functions\n\n// object to hold per-process fsevents instances\n// (may be shared across chokidar FSWatcher instances)\nvar FSEventsWatchers = Object.create(null);\n\n// Threshold of duplicate path prefixes at which to start\n// consolidating going forward\nvar consolidateThreshhold = 10;\n\n// Private function: Instantiates the fsevents interface\n\n// * path       - string, path to be watched\n// * callback   - function, called when fsevents is bound and ready\n\n// Returns new fsevents instance\nfunction createFSEventsInstance(path, callback) {\n  return (new fsevents(path)).on('fsevent', callback).start();\n}\n\n// Private function: Instantiates the fsevents interface or binds listeners\n// to an existing one covering the same file tree\n\n// * path       - string, path to be watched\n// * realPath   - string, real path (in case of symlinks)\n// * listener   - function, called when fsevents emits events\n// * rawEmitter - function, passes data to listeners of the 'raw' event\n\n// Returns close function\nfunction setFSEventsListener(path, realPath, listener, rawEmitter) {\n  var watchPath = sysPath.extname(path) ? sysPath.dirname(path) : path;\n  var watchContainer;\n  var parentPath = sysPath.dirname(watchPath);\n\n  // If we've accumulated a substantial number of paths that\n  // could have been consolidated by watching one directory\n  // above the current one, create a watcher on the parent\n  // path instead, so that we do consolidate going forward.\n  if (couldConsolidate(parentPath)) {\n    watchPath = parentPath;\n  }\n\n  var resolvedPath = sysPath.resolve(path);\n  var hasSymlink = resolvedPath !== realPath;\n  function filteredListener(fullPath, flags, info) {\n    if (hasSymlink) fullPath = fullPath.replace(realPath, resolvedPath);\n    if (\n      fullPath === resolvedPath ||\n      !fullPath.indexOf(resolvedPath + sysPath.sep)\n    ) listener(fullPath, flags, info);\n  }\n\n  // check if there is already a watcher on a parent path\n  // modifies `watchPath` to the parent path when it finds a match\n  function watchedParent() {\n    return Object.keys(FSEventsWatchers).some(function(watchedPath) {\n      // condition is met when indexOf returns 0\n      if (!realPath.indexOf(sysPath.resolve(watchedPath) + sysPath.sep)) {\n        watchPath = watchedPath;\n        return true;\n      }\n    });\n  }\n\n  if (watchPath in FSEventsWatchers || watchedParent()) {\n    watchContainer = FSEventsWatchers[watchPath];\n    watchContainer.listeners.push(filteredListener);\n  } else {\n    watchContainer = FSEventsWatchers[watchPath] = {\n      listeners: [filteredListener],\n      rawEmitters: [rawEmitter],\n      watcher: createFSEventsInstance(watchPath, function(fullPath, flags) {\n        var info = fsevents.getInfo(fullPath, flags);\n        watchContainer.listeners.forEach(function(listener) {\n          listener(fullPath, flags, info);\n        });\n        watchContainer.rawEmitters.forEach(function(emitter) {\n          emitter(info.event, fullPath, info);\n        });\n      })\n    };\n  }\n  var listenerIndex = watchContainer.listeners.length - 1;\n\n  // removes this instance's listeners and closes the underlying fsevents\n  // instance if there are no more listeners left\n  return function close() {\n    delete watchContainer.listeners[listenerIndex];\n    delete watchContainer.rawEmitters[listenerIndex];\n    if (!Object.keys(watchContainer.listeners).length) {\n      watchContainer.watcher.stop();\n      delete FSEventsWatchers[watchPath];\n    }\n  };\n}\n\n// Decide whether or not we should start a new higher-level\n// parent watcher\nfunction couldConsolidate(path) {\n  var keys = Object.keys(FSEventsWatchers);\n  var count = 0;\n\n  for (var i = 0, len = keys.length; i < len; ++i) {\n    var watchPath = keys[i];\n    if (watchPath.indexOf(path) === 0) {\n      count++;\n      if (count >= consolidateThreshhold) {\n        return true;\n      }\n    }\n  }\n\n  return false;\n}\n\nfunction isConstructor(obj) {\n  return obj.prototype !== undefined && obj.prototype.constructor !== undefined;\n}\n\n// returns boolean indicating whether fsevents can be used\nfunction canUse() {\n  return fsevents && Object.keys(FSEventsWatchers).length < 128 && isConstructor(fsevents);\n}\n\n// determines subdirectory traversal levels from root to path\nfunction depth(path, root) {\n  var i = 0;\n  while (!path.indexOf(root) && (path = sysPath.dirname(path)) !== root) i++;\n  return i;\n}\n\n// fake constructor for attaching fsevents-specific prototype methods that\n// will be copied to FSWatcher's prototype\nfunction FsEventsHandler() {}\n\n// Private method: Handle symlinks encountered during directory scan\n\n// * watchPath  - string, file/dir path to be watched with fsevents\n// * realPath   - string, real path (in case of symlinks)\n// * transform  - function, path transformer\n// * globFilter - function, path filter in case a glob pattern was provided\n\n// Returns close function for the watcher instance\nFsEventsHandler.prototype._watchWithFsEvents =\nfunction(watchPath, realPath, transform, globFilter) {\n  if (this._isIgnored(watchPath)) return;\n  var watchCallback = function(fullPath, flags, info) {\n    if (\n      this.options.depth !== undefined &&\n      depth(fullPath, realPath) > this.options.depth\n    ) return;\n    var path = transform(sysPath.join(\n      watchPath, sysPath.relative(watchPath, fullPath)\n    ));\n    if (globFilter && !globFilter(path)) return;\n    // ensure directories are tracked\n    var parent = sysPath.dirname(path);\n    var item = sysPath.basename(path);\n    var watchedDir = this._getWatchedDir(\n      info.type === 'directory' ? path : parent\n    );\n    var checkIgnored = function(stats) {\n      if (this._isIgnored(path, stats)) {\n        this._ignoredPaths[path] = true;\n        if (stats && stats.isDirectory()) {\n          this._ignoredPaths[path + '/**/*'] = true;\n        }\n        return true;\n      } else {\n        delete this._ignoredPaths[path];\n        delete this._ignoredPaths[path + '/**/*'];\n      }\n    }.bind(this);\n\n    var handleEvent = function(event) {\n      if (checkIgnored()) return;\n\n      if (event === 'unlink') {\n        // suppress unlink events on never before seen files\n        if (info.type === 'directory' || watchedDir.has(item)) {\n          this._remove(parent, item);\n        }\n      } else {\n        if (event === 'add') {\n          // track new directories\n          if (info.type === 'directory') this._getWatchedDir(path);\n\n          if (info.type === 'symlink' && this.options.followSymlinks) {\n            // push symlinks back to the top of the stack to get handled\n            var curDepth = this.options.depth === undefined ?\n              undefined : depth(fullPath, realPath) + 1;\n            return this._addToFsEvents(path, false, true, curDepth);\n          } else {\n            // track new paths\n            // (other than symlinks being followed, which will be tracked soon)\n            this._getWatchedDir(parent).add(item);\n          }\n        }\n        var eventName = info.type === 'directory' ? event + 'Dir' : event;\n        this._emit(eventName, path);\n        if (eventName === 'addDir') this._addToFsEvents(path, false, true);\n      }\n    }.bind(this);\n\n    function addOrChange() {\n      handleEvent(watchedDir.has(item) ? 'change' : 'add');\n    }\n    function checkFd() {\n      fs.open(path, 'r', function(error, fd) {\n        if (error) {\n          error.code !== 'EACCES' ?\n            handleEvent('unlink') : addOrChange();\n        } else {\n          fs.close(fd, function(err) {\n            err && err.code !== 'EACCES' ?\n              handleEvent('unlink') : addOrChange();\n          });\n        }\n      });\n    }\n    // correct for wrong events emitted\n    var wrongEventFlags = [\n      69888, 70400, 71424, 72704, 73472, 131328, 131840, 262912\n    ];\n    if (wrongEventFlags.indexOf(flags) !== -1 || info.event === 'unknown') {\n      if (typeof this.options.ignored === 'function') {\n        fs.stat(path, function(error, stats) {\n          if (checkIgnored(stats)) return;\n          stats ? addOrChange() : handleEvent('unlink');\n        });\n      } else {\n        checkFd();\n      }\n    } else {\n      switch (info.event) {\n      case 'created':\n      case 'modified':\n        return addOrChange();\n      case 'deleted':\n      case 'moved':\n        return checkFd();\n      }\n    }\n  }.bind(this);\n\n  var closer = setFSEventsListener(\n    watchPath,\n    realPath,\n    watchCallback,\n    this.emit.bind(this, 'raw')\n  );\n\n  this._emitReady();\n  return closer;\n};\n\n// Private method: Handle symlinks encountered during directory scan\n\n// * linkPath   - string, path to symlink\n// * fullPath   - string, absolute path to the symlink\n// * transform  - function, pre-existing path transformer\n// * curDepth   - int, level of subdirectories traversed to where symlink is\n\n// Returns nothing\nFsEventsHandler.prototype._handleFsEventsSymlink =\nfunction(linkPath, fullPath, transform, curDepth) {\n  // don't follow the same symlink more than once\n  if (this._symlinkPaths[fullPath]) return;\n  else this._symlinkPaths[fullPath] = true;\n\n  this._readyCount++;\n\n  fs.realpath(linkPath, function(error, linkTarget) {\n    if (this._handleError(error) || this._isIgnored(linkTarget)) {\n      return this._emitReady();\n    }\n\n    this._readyCount++;\n\n    // add the linkTarget for watching with a wrapper for transform\n    // that causes emitted paths to incorporate the link's path\n    this._addToFsEvents(linkTarget || linkPath, function(path) {\n      var dotSlash = '.' + sysPath.sep;\n      var aliasedPath = linkPath;\n      if (linkTarget && linkTarget !== dotSlash) {\n        aliasedPath = path.replace(linkTarget, linkPath);\n      } else if (path !== dotSlash) {\n        aliasedPath = sysPath.join(linkPath, path);\n      }\n      return transform(aliasedPath);\n    }, false, curDepth);\n  }.bind(this));\n};\n\n// Private method: Handle added path with fsevents\n\n// * path       - string, file/directory path or glob pattern\n// * transform  - function, converts working path to what the user expects\n// * forceAdd   - boolean, ensure add is emitted\n// * priorDepth - int, level of subdirectories already traversed\n\n// Returns nothing\nFsEventsHandler.prototype._addToFsEvents =\nfunction(path, transform, forceAdd, priorDepth) {\n\n  // applies transform if provided, otherwise returns same value\n  var processPath = typeof transform === 'function' ?\n    transform : function(val) { return val; };\n\n  var emitAdd = function(newPath, stats) {\n    var pp = processPath(newPath);\n    var isDir = stats.isDirectory();\n    var dirObj = this._getWatchedDir(sysPath.dirname(pp));\n    var base = sysPath.basename(pp);\n\n    // ensure empty dirs get tracked\n    if (isDir) this._getWatchedDir(pp);\n\n    if (dirObj.has(base)) return;\n    dirObj.add(base);\n\n    if (!this.options.ignoreInitial || forceAdd === true) {\n      this._emit(isDir ? 'addDir' : 'add', pp, stats);\n    }\n  }.bind(this);\n\n  var wh = this._getWatchHelpers(path);\n\n  // evaluate what is at the path we're being asked to watch\n  fs[wh.statMethod](wh.watchPath, function(error, stats) {\n    if (this._handleError(error) || this._isIgnored(wh.watchPath, stats)) {\n      this._emitReady();\n      return this._emitReady();\n    }\n\n    if (stats.isDirectory()) {\n      // emit addDir unless this is a glob parent\n      if (!wh.globFilter) emitAdd(processPath(path), stats);\n\n      // don't recurse further if it would exceed depth setting\n      if (priorDepth && priorDepth > this.options.depth) return;\n\n      // scan the contents of the dir\n      readdirp({\n        root: wh.watchPath,\n        entryType: 'all',\n        fileFilter: wh.filterPath,\n        directoryFilter: wh.filterDir,\n        lstat: true,\n        depth: this.options.depth - (priorDepth || 0)\n      }).on('data', function(entry) {\n        // need to check filterPath on dirs b/c filterDir is less restrictive\n        if (entry.stat.isDirectory() && !wh.filterPath(entry)) return;\n\n        var joinedPath = sysPath.join(wh.watchPath, entry.path);\n        var fullPath = entry.fullPath;\n\n        if (wh.followSymlinks && entry.stat.isSymbolicLink()) {\n          // preserve the current depth here since it can't be derived from\n          // real paths past the symlink\n          var curDepth = this.options.depth === undefined ?\n            undefined : depth(joinedPath, sysPath.resolve(wh.watchPath)) + 1;\n\n          this._handleFsEventsSymlink(joinedPath, fullPath, processPath, curDepth);\n        } else {\n          emitAdd(joinedPath, entry.stat);\n        }\n      }.bind(this)).on('error', function() {\n        // Ignore readdirp errors\n      }).on('end', this._emitReady);\n    } else {\n      emitAdd(wh.watchPath, stats);\n      this._emitReady();\n    }\n  }.bind(this));\n\n  if (this.options.persistent && forceAdd !== true) {\n    var initWatch = function(error, realPath) {\n      if (this.closed) return;\n      var closer = this._watchWithFsEvents(\n        wh.watchPath,\n        sysPath.resolve(realPath || wh.watchPath),\n        processPath,\n        wh.globFilter\n      );\n      if (closer) {\n        this._closers[path] = this._closers[path] || [];\n        this._closers[path].push(closer);\n      }\n    }.bind(this);\n\n    if (typeof transform === 'function') {\n      // realpath has already been resolved\n      initWatch();\n    } else {\n      fs.realpath(wh.watchPath, initWatch);\n    }\n  }\n};\n\nmodule.exports = FsEventsHandler;\nmodule.exports.canUse = canUse;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./chokidar/lib/fsevents-handler.js?");

/***/ }),

/***/ "./chokidar/lib/nodefs-handler.js":
/*!****************************************!*\
  !*** ./chokidar/lib/nodefs-handler.js ***!
  \****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar fs = __webpack_require__(/*! fs */ \"fs\");\nvar sysPath = __webpack_require__(/*! path */ \"path\");\nvar readdirp = __webpack_require__(/*! readdirp */ \"./node_modules/readdirp/readdirp.js\");\nvar isBinaryPath = __webpack_require__(/*! is-binary-path */ \"./node_modules/is-binary-path/index.js\");\n\n// fs.watch helpers\n\n// object to hold per-process fs.watch instances\n// (may be shared across chokidar FSWatcher instances)\nvar FsWatchInstances = Object.create(null);\n\n\n// Private function: Instantiates the fs.watch interface\n\n// * path       - string, path to be watched\n// * options    - object, options to be passed to fs.watch\n// * listener   - function, main event handler\n// * errHandler - function, handler which emits info about errors\n// * emitRaw    - function, handler which emits raw event data\n\n// Returns new fsevents instance\nfunction createFsWatchInstance(path, options, listener, errHandler, emitRaw) {\n  var handleEvent = function(rawEvent, evPath) {\n    listener(path);\n    emitRaw(rawEvent, evPath, {watchedPath: path});\n\n    // emit based on events occurring for files from a directory's watcher in\n    // case the file's watcher misses it (and rely on throttling to de-dupe)\n    if (evPath && path !== evPath) {\n      fsWatchBroadcast(\n        sysPath.resolve(path, evPath), 'listeners', sysPath.join(path, evPath)\n      );\n    }\n  };\n  try {\n    return fs.watch(path, options, handleEvent);\n  } catch (error) {\n    errHandler(error);\n  }\n}\n\n// Private function: Helper for passing fs.watch event data to a\n// collection of listeners\n\n// * fullPath   - string, absolute path bound to the fs.watch instance\n// * type       - string, listener type\n// * val[1..3]  - arguments to be passed to listeners\n\n// Returns nothing\nfunction fsWatchBroadcast(fullPath, type, val1, val2, val3) {\n  if (!FsWatchInstances[fullPath]) return;\n  FsWatchInstances[fullPath][type].forEach(function(listener) {\n    listener(val1, val2, val3);\n  });\n}\n\n// Private function: Instantiates the fs.watch interface or binds listeners\n// to an existing one covering the same file system entry\n\n// * path       - string, path to be watched\n// * fullPath   - string, absolute path\n// * options    - object, options to be passed to fs.watch\n// * handlers   - object, container for event listener functions\n\n// Returns close function\nfunction setFsWatchListener(path, fullPath, options, handlers) {\n  var listener = handlers.listener;\n  var errHandler = handlers.errHandler;\n  var rawEmitter = handlers.rawEmitter;\n  var container = FsWatchInstances[fullPath];\n  var watcher;\n  if (!options.persistent) {\n    watcher = createFsWatchInstance(\n      path, options, listener, errHandler, rawEmitter\n    );\n    return watcher.close.bind(watcher);\n  }\n  if (!container) {\n    watcher = createFsWatchInstance(\n      path,\n      options,\n      fsWatchBroadcast.bind(null, fullPath, 'listeners'),\n      errHandler, // no need to use broadcast here\n      fsWatchBroadcast.bind(null, fullPath, 'rawEmitters')\n    );\n    if (!watcher) return;\n    var broadcastErr = fsWatchBroadcast.bind(null, fullPath, 'errHandlers');\n    watcher.on('error', function(error) {\n      container.watcherUnusable = true; // documented since Node 10.4.1\n      // Workaround for https://github.com/joyent/node/issues/4337\n      if (process.platform === 'win32' && error.code === 'EPERM') {\n        fs.open(path, 'r', function(err, fd) {\n          if (!err) fs.close(fd, function(err) {\n            if (!err) broadcastErr(error);\n          });\n        });\n      } else {\n        broadcastErr(error);\n      }\n    });\n    container = FsWatchInstances[fullPath] = {\n      listeners: [listener],\n      errHandlers: [errHandler],\n      rawEmitters: [rawEmitter],\n      watcher: watcher\n    };\n  } else {\n    container.listeners.push(listener);\n    container.errHandlers.push(errHandler);\n    container.rawEmitters.push(rawEmitter);\n  }\n  var listenerIndex = container.listeners.length - 1;\n\n  // removes this instance's listeners and closes the underlying fs.watch\n  // instance if there are no more listeners left\n  return function close() {\n    delete container.listeners[listenerIndex];\n    delete container.errHandlers[listenerIndex];\n    delete container.rawEmitters[listenerIndex];\n    if (!Object.keys(container.listeners).length) {\n      if (!container.watcherUnusable) { // check to protect against issue #730\n        container.watcher.close();\n      }\n      delete FsWatchInstances[fullPath];\n    }\n  };\n}\n\n// fs.watchFile helpers\n\n// object to hold per-process fs.watchFile instances\n// (may be shared across chokidar FSWatcher instances)\nvar FsWatchFileInstances = Object.create(null);\n\n// Private function: Instantiates the fs.watchFile interface or binds listeners\n// to an existing one covering the same file system entry\n\n// * path       - string, path to be watched\n// * fullPath   - string, absolute path\n// * options    - object, options to be passed to fs.watchFile\n// * handlers   - object, container for event listener functions\n\n// Returns close function\nfunction setFsWatchFileListener(path, fullPath, options, handlers) {\n  var listener = handlers.listener;\n  var rawEmitter = handlers.rawEmitter;\n  var container = FsWatchFileInstances[fullPath];\n  var listeners = [];\n  var rawEmitters = [];\n  if (\n    container && (\n      container.options.persistent < options.persistent ||\n      container.options.interval > options.interval\n    )\n  ) {\n    // \"Upgrade\" the watcher to persistence or a quicker interval.\n    // This creates some unlikely edge case issues if the user mixes\n    // settings in a very weird way, but solving for those cases\n    // doesn't seem worthwhile for the added complexity.\n    listeners = container.listeners;\n    rawEmitters = container.rawEmitters;\n    fs.unwatchFile(fullPath);\n    container = false;\n  }\n  if (!container) {\n    listeners.push(listener);\n    rawEmitters.push(rawEmitter);\n    container = FsWatchFileInstances[fullPath] = {\n      listeners: listeners,\n      rawEmitters: rawEmitters,\n      options: options,\n      watcher: fs.watchFile(fullPath, options, function(curr, prev) {\n        container.rawEmitters.forEach(function(rawEmitter) {\n          rawEmitter('change', fullPath, {curr: curr, prev: prev});\n        });\n        var currmtime = curr.mtime.getTime();\n        if (curr.size !== prev.size || currmtime > prev.mtime.getTime() || currmtime === 0) {\n          container.listeners.forEach(function(listener) {\n            listener(path, curr);\n          });\n        }\n      })\n    };\n  } else {\n    container.listeners.push(listener);\n    container.rawEmitters.push(rawEmitter);\n  }\n  var listenerIndex = container.listeners.length - 1;\n\n  // removes this instance's listeners and closes the underlying fs.watchFile\n  // instance if there are no more listeners left\n  return function close() {\n    delete container.listeners[listenerIndex];\n    delete container.rawEmitters[listenerIndex];\n    if (!Object.keys(container.listeners).length) {\n      fs.unwatchFile(fullPath);\n      delete FsWatchFileInstances[fullPath];\n    }\n  };\n}\n\n// fake constructor for attaching nodefs-specific prototype methods that\n// will be copied to FSWatcher's prototype\nfunction NodeFsHandler() {}\n\n// Private method: Watch file for changes with fs.watchFile or fs.watch.\n\n// * path     - string, path to file or directory.\n// * listener - function, to be executed on fs change.\n\n// Returns close function for the watcher instance\nNodeFsHandler.prototype._watchWithNodeFs =\nfunction(path, listener) {\n  var directory = sysPath.dirname(path);\n  var basename = sysPath.basename(path);\n  var parent = this._getWatchedDir(directory);\n  parent.add(basename);\n  var absolutePath = sysPath.resolve(path);\n  var options = {persistent: this.options.persistent};\n  if (!listener) listener = Function.prototype; // empty function\n\n  var closer;\n  if (this.options.usePolling) {\n    options.interval = this.enableBinaryInterval && isBinaryPath(basename) ?\n      this.options.binaryInterval : this.options.interval;\n    closer = setFsWatchFileListener(path, absolutePath, options, {\n      listener: listener,\n      rawEmitter: this.emit.bind(this, 'raw')\n    });\n  } else {\n    closer = setFsWatchListener(path, absolutePath, options, {\n      listener: listener,\n      errHandler: this._handleError.bind(this),\n      rawEmitter: this.emit.bind(this, 'raw')\n    });\n  }\n  return closer;\n};\n\n// Private method: Watch a file and emit add event if warranted\n\n// * file       - string, the file's path\n// * stats      - object, result of fs.stat\n// * initialAdd - boolean, was the file added at watch instantiation?\n// * callback   - function, called when done processing as a newly seen file\n\n// Returns close function for the watcher instance\nNodeFsHandler.prototype._handleFile =\nfunction(file, stats, initialAdd, callback) {\n  var dirname = sysPath.dirname(file);\n  var basename = sysPath.basename(file);\n  var parent = this._getWatchedDir(dirname);\n  // stats is always present\n  var prevStats = stats;\n\n  // if the file is already being watched, do nothing\n  if (parent.has(basename)) return callback();\n\n  // kick off the watcher\n  var closer = this._watchWithNodeFs(file, function(path, newStats) {\n    if (!this._throttle('watch', file, 5)) return;\n    if (!newStats || newStats && newStats.mtime.getTime() === 0) {\n      fs.stat(file, function(error, newStats) {\n        // Fix issues where mtime is null but file is still present\n        if (error) {\n          this._remove(dirname, basename);\n        } else {\n          // Check that change event was not fired because of changed only accessTime.\n          var at = newStats.atime.getTime();\n          var mt = newStats.mtime.getTime();\n          if (!at || at <= mt || mt !== prevStats.mtime.getTime()) {\n            this._emit('change', file, newStats);\n          }\n          prevStats = newStats;\n        }\n      }.bind(this));\n    // add is about to be emitted if file not already tracked in parent\n    } else if (parent.has(basename)) {\n      // Check that change event was not fired because of changed only accessTime.\n      var at = newStats.atime.getTime();\n      var mt = newStats.mtime.getTime();\n      if (!at || at <= mt ||  mt !== prevStats.mtime.getTime()) {\n        this._emit('change', file, newStats);\n      }\n      prevStats = newStats;\n    }\n  }.bind(this));\n\n  // emit an add event if we're supposed to\n  if (!(initialAdd && this.options.ignoreInitial)) {\n    if (!this._throttle('add', file, 0)) return;\n    this._emit('add', file, stats);\n  }\n\n  if (callback) callback();\n  return closer;\n};\n\n// Private method: Handle symlinks encountered while reading a dir\n\n// * entry      - object, entry object returned by readdirp\n// * directory  - string, path of the directory being read\n// * path       - string, path of this item\n// * item       - string, basename of this item\n\n// Returns true if no more processing is needed for this entry.\nNodeFsHandler.prototype._handleSymlink =\nfunction(entry, directory, path, item) {\n  var full = entry.fullPath;\n  var dir = this._getWatchedDir(directory);\n\n  if (!this.options.followSymlinks) {\n    // watch symlink directly (don't follow) and detect changes\n    this._readyCount++;\n    fs.realpath(path, function(error, linkPath) {\n      if (dir.has(item)) {\n        if (this._symlinkPaths[full] !== linkPath) {\n          this._symlinkPaths[full] = linkPath;\n          this._emit('change', path, entry.stat);\n        }\n      } else {\n        dir.add(item);\n        this._symlinkPaths[full] = linkPath;\n        this._emit('add', path, entry.stat);\n      }\n      this._emitReady();\n    }.bind(this));\n    return true;\n  }\n\n  // don't follow the same symlink more than once\n  if (this._symlinkPaths[full]) return true;\n  else this._symlinkPaths[full] = true;\n};\n\n// Private method: Read directory to add / remove files from `@watched` list\n// and re-read it on change.\n\n// * dir        - string, fs path.\n// * stats      - object, result of fs.stat\n// * initialAdd - boolean, was the file added at watch instantiation?\n// * depth      - int, depth relative to user-supplied path\n// * target     - string, child path actually targeted for watch\n// * wh         - object, common watch helpers for this path\n// * callback   - function, called when dir scan is complete\n\n// Returns close function for the watcher instance\nNodeFsHandler.prototype._handleDir =\nfunction(dir, stats, initialAdd, depth, target, wh, callback) {\n  var parentDir = this._getWatchedDir(sysPath.dirname(dir));\n  var tracked = parentDir.has(sysPath.basename(dir));\n  if (!(initialAdd && this.options.ignoreInitial) && !target && !tracked) {\n    if (!wh.hasGlob || wh.globFilter(dir)) this._emit('addDir', dir, stats);\n  }\n\n  // ensure dir is tracked (harmless if redundant)\n  parentDir.add(sysPath.basename(dir));\n  this._getWatchedDir(dir);\n\n  var read = function(directory, initialAdd, done) {\n    // Normalize the directory name on Windows\n    directory = sysPath.join(directory, '');\n\n    if (!wh.hasGlob) {\n      var throttler = this._throttle('readdir', directory, 1000);\n      if (!throttler) return;\n    }\n\n    var previous = this._getWatchedDir(wh.path);\n    var current = [];\n\n    readdirp({\n      root: directory,\n      entryType: 'all',\n      fileFilter: wh.filterPath,\n      directoryFilter: wh.filterDir,\n      depth: 0,\n      lstat: true\n    }).on('data', function(entry) {\n      var item = entry.path;\n      var path = sysPath.join(directory, item);\n      current.push(item);\n\n      if (entry.stat.isSymbolicLink() &&\n        this._handleSymlink(entry, directory, path, item)) return;\n\n      // Files that present in current directory snapshot\n      // but absent in previous are added to watch list and\n      // emit `add` event.\n      if (item === target || !target && !previous.has(item)) {\n        this._readyCount++;\n\n        // ensure relativeness of path is preserved in case of watcher reuse\n        path = sysPath.join(dir, sysPath.relative(dir, path));\n\n        this._addToNodeFs(path, initialAdd, wh, depth + 1);\n      }\n    }.bind(this)).on('end', function() {\n      var wasThrottled = throttler ? throttler.clear() : false;\n      if (done) done();\n\n      // Files that absent in current directory snapshot\n      // but present in previous emit `remove` event\n      // and are removed from @watched[directory].\n      previous.children().filter(function(item) {\n        return item !== directory &&\n          current.indexOf(item) === -1 &&\n          // in case of intersecting globs;\n          // a path may have been filtered out of this readdir, but\n          // shouldn't be removed because it matches a different glob\n          (!wh.hasGlob || wh.filterPath({\n            fullPath: sysPath.resolve(directory, item)\n          }));\n      }).forEach(function(item) {\n        this._remove(directory, item);\n      }, this);\n\n      // one more time for any missed in case changes came in extremely quickly\n      if (wasThrottled) read(directory, false);\n    }.bind(this)).on('error', this._handleError.bind(this));\n  }.bind(this);\n\n  var closer;\n\n  if (this.options.depth == null || depth <= this.options.depth) {\n    if (!target) read(dir, initialAdd, callback);\n    closer = this._watchWithNodeFs(dir, function(dirPath, stats) {\n      // if current directory is removed, do nothing\n      if (stats && stats.mtime.getTime() === 0) return;\n\n      read(dirPath, false);\n    });\n  } else {\n    callback();\n  }\n  return closer;\n};\n\n// Private method: Handle added file, directory, or glob pattern.\n// Delegates call to _handleFile / _handleDir after checks.\n\n// * path       - string, path to file or directory.\n// * initialAdd - boolean, was the file added at watch instantiation?\n// * depth      - int, depth relative to user-supplied path\n// * target     - string, child path actually targeted for watch\n// * callback   - function, indicates whether the path was found or not\n\n// Returns nothing\nNodeFsHandler.prototype._addToNodeFs =\nfunction(path, initialAdd, priorWh, depth, target, callback) {\n  if (!callback) callback = Function.prototype;\n  var ready = this._emitReady;\n  if (this._isIgnored(path) || this.closed) {\n    ready();\n    return callback(null, false);\n  }\n\n  var wh = this._getWatchHelpers(path, depth);\n  if (!wh.hasGlob && priorWh) {\n    wh.hasGlob = priorWh.hasGlob;\n    wh.globFilter = priorWh.globFilter;\n    wh.filterPath = priorWh.filterPath;\n    wh.filterDir = priorWh.filterDir;\n  }\n\n  // evaluate what is at the path we're being asked to watch\n  fs[wh.statMethod](wh.watchPath, function(error, stats) {\n    if (this._handleError(error)) return callback(null, path);\n    if (this._isIgnored(wh.watchPath, stats)) {\n      ready();\n      return callback(null, false);\n    }\n\n    var initDir = function(dir, target) {\n      return this._handleDir(dir, stats, initialAdd, depth, target, wh, ready);\n    }.bind(this);\n\n    var closer;\n    if (stats.isDirectory()) {\n      closer = initDir(wh.watchPath, target);\n    } else if (stats.isSymbolicLink()) {\n      var parent = sysPath.dirname(wh.watchPath);\n      this._getWatchedDir(parent).add(wh.watchPath);\n      this._emit('add', wh.watchPath, stats);\n      closer = initDir(parent, path);\n\n      // preserve this symlink's target path\n      fs.realpath(path, function(error, targetPath) {\n        this._symlinkPaths[sysPath.resolve(path)] = targetPath;\n        ready();\n      }.bind(this));\n    } else {\n      closer = this._handleFile(wh.watchPath, stats, initialAdd, ready);\n    }\n\n    if (closer) {\n      this._closers[path] = this._closers[path] || [];\n      this._closers[path].push(closer);\n    }\n    callback(null, false);\n  }.bind(this));\n};\n\nmodule.exports = NodeFsHandler;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./chokidar/lib/nodefs-handler.js?");

/***/ }),

/***/ "./node_modules/anymatch/index.js":
/*!****************************************!*\
  !*** ./node_modules/anymatch/index.js ***!
  \****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar micromatch = __webpack_require__(/*! micromatch */ \"./node_modules/micromatch/index.js\");\nvar normalize = __webpack_require__(/*! normalize-path */ \"./node_modules/anymatch/node_modules/normalize-path/index.js\");\nvar path = __webpack_require__(/*! path */ \"path\"); // required for tests.\nvar arrify = function(a) { return a == null ? [] : (Array.isArray(a) ? a : [a]); };\n\nvar anymatch = function(criteria, value, returnIndex, startIndex, endIndex) {\n  criteria = arrify(criteria);\n  value = arrify(value);\n  if (arguments.length === 1) {\n    return anymatch.bind(null, criteria.map(function(criterion) {\n      return typeof criterion === 'string' && criterion[0] !== '!' ?\n        micromatch.matcher(criterion) : criterion;\n    }));\n  }\n  startIndex = startIndex || 0;\n  var string = value[0];\n  var altString, altValue;\n  var matched = false;\n  var matchIndex = -1;\n  function testCriteria(criterion, index) {\n    var result;\n    switch (Object.prototype.toString.call(criterion)) {\n    case '[object String]':\n      result = string === criterion || altString && altString === criterion;\n      result = result || micromatch.isMatch(string, criterion);\n      break;\n    case '[object RegExp]':\n      result = criterion.test(string) || altString && criterion.test(altString);\n      break;\n    case '[object Function]':\n      result = criterion.apply(null, value);\n      result = result || altValue && criterion.apply(null, altValue);\n      break;\n    default:\n      result = false;\n    }\n    if (result) {\n      matchIndex = index + startIndex;\n    }\n    return result;\n  }\n  var crit = criteria;\n  var negGlobs = crit.reduce(function(arr, criterion, index) {\n    if (typeof criterion === 'string' && criterion[0] === '!') {\n      if (crit === criteria) {\n        // make a copy before modifying\n        crit = crit.slice();\n      }\n      crit[index] = null;\n      arr.push(criterion.substr(1));\n    }\n    return arr;\n  }, []);\n  if (!negGlobs.length || !micromatch.any(string, negGlobs)) {\n    if (path.sep === '\\\\' && typeof string === 'string') {\n      altString = normalize(string);\n      altString = altString === string ? null : altString;\n      if (altString) altValue = [altString].concat(value.slice(1));\n    }\n    matched = crit.slice(startIndex, endIndex).some(testCriteria);\n  }\n  return returnIndex === true ? matchIndex : matched;\n};\n\nmodule.exports = anymatch;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/anymatch/index.js?");

/***/ }),

/***/ "./node_modules/anymatch/node_modules/normalize-path/index.js":
/*!********************************************************************!*\
  !*** ./node_modules/anymatch/node_modules/normalize-path/index.js ***!
  \********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("/*!\n * normalize-path <https://github.com/jonschlinkert/normalize-path>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nvar removeTrailingSeparator = __webpack_require__(/*! remove-trailing-separator */ \"./node_modules/remove-trailing-separator/index.js\");\n\nmodule.exports = function normalizePath(str, stripTrailing) {\n  if (typeof str !== 'string') {\n    throw new TypeError('expected a string');\n  }\n  str = str.replace(/[\\\\\\/]+/g, '/');\n  if (stripTrailing !== false) {\n    str = removeTrailingSeparator(str);\n  }\n  return str;\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/anymatch/node_modules/normalize-path/index.js?");

/***/ }),

/***/ "./node_modules/arr-diff/index.js":
/*!****************************************!*\
  !*** ./node_modules/arr-diff/index.js ***!
  \****************************************/
/***/ ((module) => {

"use strict";
eval("/*!\n * arr-diff <https://github.com/jonschlinkert/arr-diff>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nmodule.exports = function diff(arr/*, arrays*/) {\n  var len = arguments.length;\n  var idx = 0;\n  while (++idx < len) {\n    arr = diffArray(arr, arguments[idx]);\n  }\n  return arr;\n};\n\nfunction diffArray(one, two) {\n  if (!Array.isArray(two)) {\n    return one.slice();\n  }\n\n  var tlen = two.length\n  var olen = one.length;\n  var idx = -1;\n  var arr = [];\n\n  while (++idx < olen) {\n    var ele = one[idx];\n\n    var hasEle = false;\n    for (var i = 0; i < tlen; i++) {\n      var val = two[i];\n\n      if (ele === val) {\n        hasEle = true;\n        break;\n      }\n    }\n\n    if (hasEle === false) {\n      arr.push(ele);\n    }\n  }\n  return arr;\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/arr-diff/index.js?");

/***/ }),

/***/ "./node_modules/arr-flatten/index.js":
/*!*******************************************!*\
  !*** ./node_modules/arr-flatten/index.js ***!
  \*******************************************/
/***/ ((module) => {

"use strict";
eval("/*!\n * arr-flatten <https://github.com/jonschlinkert/arr-flatten>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nmodule.exports = function (arr) {\n  return flat(arr, []);\n};\n\nfunction flat(arr, res) {\n  var i = 0, cur;\n  var len = arr.length;\n  for (; i < len; i++) {\n    cur = arr[i];\n    Array.isArray(cur) ? flat(cur, res) : res.push(cur);\n  }\n  return res;\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/arr-flatten/index.js?");

/***/ }),

/***/ "./node_modules/arr-union/index.js":
/*!*****************************************!*\
  !*** ./node_modules/arr-union/index.js ***!
  \*****************************************/
/***/ ((module) => {

"use strict";
eval("\n\nmodule.exports = function union(init) {\n  if (!Array.isArray(init)) {\n    throw new TypeError('arr-union expects the first argument to be an array.');\n  }\n\n  var len = arguments.length;\n  var i = 0;\n\n  while (++i < len) {\n    var arg = arguments[i];\n    if (!arg) continue;\n\n    if (!Array.isArray(arg)) {\n      arg = [arg];\n    }\n\n    for (var j = 0; j < arg.length; j++) {\n      var ele = arg[j];\n\n      if (init.indexOf(ele) >= 0) {\n        continue;\n      }\n      init.push(ele);\n    }\n  }\n  return init;\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/arr-union/index.js?");

/***/ }),

/***/ "./node_modules/array-unique/index.js":
/*!********************************************!*\
  !*** ./node_modules/array-unique/index.js ***!
  \********************************************/
/***/ ((module) => {

"use strict";
eval("/*!\n * array-unique <https://github.com/jonschlinkert/array-unique>\n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n\n\nmodule.exports = function unique(arr) {\n  if (!Array.isArray(arr)) {\n    throw new TypeError('array-unique expects an array.');\n  }\n\n  var len = arr.length;\n  var i = -1;\n\n  while (i++ < len) {\n    var j = i + 1;\n\n    for (; j < arr.length; ++j) {\n      if (arr[i] === arr[j]) {\n        arr.splice(j--, 1);\n      }\n    }\n  }\n  return arr;\n};\n\nmodule.exports.immutable = function uniqueImmutable(arr) {\n  if (!Array.isArray(arr)) {\n    throw new TypeError('array-unique expects an array.');\n  }\n\n  var arrLen = arr.length;\n  var newArr = new Array(arrLen);\n\n  for (var i = 0; i < arrLen; i++) {\n    newArr[i] = arr[i];\n  }\n\n  return module.exports(newArr);\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/array-unique/index.js?");

/***/ }),

/***/ "./node_modules/assign-symbols/index.js":
/*!**********************************************!*\
  !*** ./node_modules/assign-symbols/index.js ***!
  \**********************************************/
/***/ ((module) => {

"use strict";
eval("/*!\n * assign-symbols <https://github.com/jonschlinkert/assign-symbols>\n *\n * Copyright (c) 2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n\n\nmodule.exports = function(receiver, objects) {\n  if (receiver === null || typeof receiver === 'undefined') {\n    throw new TypeError('expected first argument to be an object.');\n  }\n\n  if (typeof objects === 'undefined' || typeof Symbol === 'undefined') {\n    return receiver;\n  }\n\n  if (typeof Object.getOwnPropertySymbols !== 'function') {\n    return receiver;\n  }\n\n  var isEnumerable = Object.prototype.propertyIsEnumerable;\n  var target = Object(receiver);\n  var len = arguments.length, i = 0;\n\n  while (++i < len) {\n    var provider = Object(arguments[i]);\n    var names = Object.getOwnPropertySymbols(provider);\n\n    for (var j = 0; j < names.length; j++) {\n      var key = names[j];\n\n      if (isEnumerable.call(provider, key)) {\n        target[key] = provider[key];\n      }\n    }\n  }\n  return target;\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/assign-symbols/index.js?");

/***/ }),

/***/ "./node_modules/async-each/index.js":
/*!******************************************!*\
  !*** ./node_modules/async-each/index.js ***!
  \******************************************/
/***/ (function(module, exports) {

eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// async-each MIT license (by Paul Miller from https://paulmillr.com).\n(function(globals) {\n  'use strict';\n  var each = function(items, next, callback) {\n    if (!Array.isArray(items)) throw new TypeError('each() expects array as first argument');\n    if (typeof next !== 'function') throw new TypeError('each() expects function as second argument');\n    if (typeof callback !== 'function') callback = Function.prototype; // no-op\n\n    if (items.length === 0) return callback(undefined, items);\n\n    var transformed = new Array(items.length);\n    var count = 0;\n    var returned = false;\n\n    items.forEach(function(item, index) {\n      next(item, function(error, transformedItem) {\n        if (returned) return;\n        if (error) {\n          returned = true;\n          return callback(error);\n        }\n        transformed[index] = transformedItem;\n        count += 1;\n        if (count === items.length) return callback(undefined, transformed);\n      });\n    });\n  };\n\n  if (true) {\n    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() {\n      return each;\n    }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); // RequireJS\n  } else {}\n})(this);\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/async-each/index.js?");

/***/ }),

/***/ "./node_modules/atob/node-atob.js":
/*!****************************************!*\
  !*** ./node_modules/atob/node-atob.js ***!
  \****************************************/
/***/ ((module) => {

"use strict";
eval("\n\nfunction atob(str) {\n  return Buffer.from(str, 'base64').toString('binary');\n}\n\nmodule.exports = atob.atob = atob;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/atob/node-atob.js?");

/***/ }),

/***/ "./node_modules/base/index.js":
/*!************************************!*\
  !*** ./node_modules/base/index.js ***!
  \************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar util = __webpack_require__(/*! util */ \"util\");\nvar define = __webpack_require__(/*! define-property */ \"./node_modules/base/node_modules/define-property/index.js\");\nvar CacheBase = __webpack_require__(/*! cache-base */ \"./node_modules/cache-base/index.js\");\nvar Emitter = __webpack_require__(/*! component-emitter */ \"./node_modules/component-emitter/index.js\");\nvar isObject = __webpack_require__(/*! isobject */ \"./node_modules/isobject/index.js\");\nvar merge = __webpack_require__(/*! mixin-deep */ \"./node_modules/mixin-deep/index.js\");\nvar pascal = __webpack_require__(/*! pascalcase */ \"./node_modules/pascalcase/index.js\");\nvar cu = __webpack_require__(/*! class-utils */ \"./node_modules/class-utils/index.js\");\n\n/**\n * Optionally define a custom `cache` namespace to use.\n */\n\nfunction namespace(name) {\n  var Cache = name ? CacheBase.namespace(name) : CacheBase;\n  var fns = [];\n\n  /**\n   * Create an instance of `Base` with the given `config` and `options`.\n   *\n   * ```js\n   * // initialize with `config` and `options`\n   * var app = new Base({isApp: true}, {abc: true});\n   * app.set('foo', 'bar');\n   *\n   * // values defined with the given `config` object will be on the root of the instance\n   * console.log(app.baz); //=> undefined\n   * console.log(app.foo); //=> 'bar'\n   * // or use `.get`\n   * console.log(app.get('isApp')); //=> true\n   * console.log(app.get('foo')); //=> 'bar'\n   *\n   * // values defined with the given `options` object will be on `app.options\n   * console.log(app.options.abc); //=> true\n   * ```\n   *\n   * @param {Object} `config` If supplied, this object is passed to [cache-base][] to merge onto the the instance upon instantiation.\n   * @param {Object} `options` If supplied, this object is used to initialize the `base.options` object.\n   * @api public\n   */\n\n  function Base(config, options) {\n    if (!(this instanceof Base)) {\n      return new Base(config, options);\n    }\n    Cache.call(this, config);\n    this.is('base');\n    this.initBase(config, options);\n  }\n\n  /**\n   * Inherit cache-base\n   */\n\n  util.inherits(Base, Cache);\n\n  /**\n   * Add static emitter methods\n   */\n\n  Emitter(Base);\n\n  /**\n   * Initialize `Base` defaults with the given `config` object\n   */\n\n  Base.prototype.initBase = function(config, options) {\n    this.options = merge({}, this.options, options);\n    this.cache = this.cache || {};\n    this.define('registered', {});\n    if (name) this[name] = {};\n\n    // make `app._callbacks` non-enumerable\n    this.define('_callbacks', this._callbacks);\n    if (isObject(config)) {\n      this.visit('set', config);\n    }\n    Base.run(this, 'use', fns);\n  };\n\n  /**\n   * Set the given `name` on `app._name` and `app.is*` properties. Used for doing\n   * lookups in plugins.\n   *\n   * ```js\n   * app.is('foo');\n   * console.log(app._name);\n   * //=> 'foo'\n   * console.log(app.isFoo);\n   * //=> true\n   * app.is('bar');\n   * console.log(app.isFoo);\n   * //=> true\n   * console.log(app.isBar);\n   * //=> true\n   * console.log(app._name);\n   * //=> 'bar'\n   * ```\n   * @name .is\n   * @param {String} `name`\n   * @return {Boolean}\n   * @api public\n   */\n\n  Base.prototype.is = function(name) {\n    if (typeof name !== 'string') {\n      throw new TypeError('expected name to be a string');\n    }\n    this.define('is' + pascal(name), true);\n    this.define('_name', name);\n    this.define('_appname', name);\n    return this;\n  };\n\n  /**\n   * Returns true if a plugin has already been registered on an instance.\n   *\n   * Plugin implementors are encouraged to use this first thing in a plugin\n   * to prevent the plugin from being called more than once on the same\n   * instance.\n   *\n   * ```js\n   * var base = new Base();\n   * base.use(function(app) {\n   *   if (app.isRegistered('myPlugin')) return;\n   *   // do stuff to `app`\n   * });\n   *\n   * // to also record the plugin as being registered\n   * base.use(function(app) {\n   *   if (app.isRegistered('myPlugin', true)) return;\n   *   // do stuff to `app`\n   * });\n   * ```\n   * @name .isRegistered\n   * @emits `plugin` Emits the name of the plugin being registered. Useful for unit tests, to ensure plugins are only registered once.\n   * @param {String} `name` The plugin name.\n   * @param {Boolean} `register` If the plugin if not already registered, to record it as being registered pass `true` as the second argument.\n   * @return {Boolean} Returns true if a plugin is already registered.\n   * @api public\n   */\n\n  Base.prototype.isRegistered = function(name, register) {\n    if (this.registered.hasOwnProperty(name)) {\n      return true;\n    }\n    if (register !== false) {\n      this.registered[name] = true;\n      this.emit('plugin', name);\n    }\n    return false;\n  };\n\n  /**\n   * Define a plugin function to be called immediately upon init. Plugins are chainable\n   * and expose the following arguments to the plugin function:\n   *\n   * - `app`: the current instance of `Base`\n   * - `base`: the [first ancestor instance](#base) of `Base`\n   *\n   * ```js\n   * var app = new Base()\n   *   .use(foo)\n   *   .use(bar)\n   *   .use(baz)\n   * ```\n   * @name .use\n   * @param {Function} `fn` plugin function to call\n   * @return {Object} Returns the item instance for chaining.\n   * @api public\n   */\n\n  Base.prototype.use = function(fn) {\n    fn.call(this, this);\n    return this;\n  };\n\n  /**\n   * The `.define` method is used for adding non-enumerable property on the instance.\n   * Dot-notation is **not supported** with `define`.\n   *\n   * ```js\n   * // arbitrary `render` function using lodash `template`\n   * app.define('render', function(str, locals) {\n   *   return _.template(str)(locals);\n   * });\n   * ```\n   * @name .define\n   * @param {String} `key` The name of the property to define.\n   * @param {any} `value`\n   * @return {Object} Returns the instance for chaining.\n   * @api public\n   */\n\n  Base.prototype.define = function(key, val) {\n    if (isObject(key)) {\n      return this.visit('define', key);\n    }\n    define(this, key, val);\n    return this;\n  };\n\n  /**\n   * Mix property `key` onto the Base prototype. If base is inherited using\n   * `Base.extend` this method will be overridden by a new `mixin` method that will\n   * only add properties to the prototype of the inheriting application.\n   *\n   * ```js\n   * app.mixin('foo', function() {\n   *   // do stuff\n   * });\n   * ```\n   * @name .mixin\n   * @param {String} `key`\n   * @param {Object|Array} `val`\n   * @return {Object} Returns the `base` instance for chaining.\n   * @api public\n   */\n\n  Base.prototype.mixin = function(key, val) {\n    Base.prototype[key] = val;\n    return this;\n  };\n\n  /**\n   * Non-enumberable mixin array, used by the static [Base.mixin]() method.\n   */\n\n  Base.prototype.mixins = Base.prototype.mixins || [];\n\n  /**\n   * Getter/setter used when creating nested instances of `Base`, for storing a reference\n   * to the first ancestor instance. This works by setting an instance of `Base` on the `parent`\n   * property of a \"child\" instance. The `base` property defaults to the current instance if\n   * no `parent` property is defined.\n   *\n   * ```js\n   * // create an instance of `Base`, this is our first (\"base\") instance\n   * var first = new Base();\n   * first.foo = 'bar'; // arbitrary property, to make it easier to see what's happening later\n   *\n   * // create another instance\n   * var second = new Base();\n   * // create a reference to the first instance (`first`)\n   * second.parent = first;\n   *\n   * // create another instance\n   * var third = new Base();\n   * // create a reference to the previous instance (`second`)\n   * // repeat this pattern every time a \"child\" instance is created\n   * third.parent = second;\n   *\n   * // we can always access the first instance using the `base` property\n   * console.log(first.base.foo);\n   * //=> 'bar'\n   * console.log(second.base.foo);\n   * //=> 'bar'\n   * console.log(third.base.foo);\n   * //=> 'bar'\n   * // and now you know how to get to third base ;)\n   * ```\n   * @name .base\n   * @api public\n   */\n\n  Object.defineProperty(Base.prototype, 'base', {\n    configurable: true,\n    get: function() {\n      return this.parent ? this.parent.base : this;\n    }\n  });\n\n  /**\n   * Static method for adding global plugin functions that will\n   * be added to an instance when created.\n   *\n   * ```js\n   * Base.use(function(app) {\n   *   app.foo = 'bar';\n   * });\n   * var app = new Base();\n   * console.log(app.foo);\n   * //=> 'bar'\n   * ```\n   * @name #use\n   * @param {Function} `fn` Plugin function to use on each instance.\n   * @return {Object} Returns the `Base` constructor for chaining\n   * @api public\n   */\n\n  define(Base, 'use', function(fn) {\n    fns.push(fn);\n    return Base;\n  });\n\n  /**\n   * Run an array of functions by passing each function\n   * to a method on the given object specified by the given property.\n   *\n   * @param  {Object} `obj` Object containing method to use.\n   * @param  {String} `prop` Name of the method on the object to use.\n   * @param  {Array} `arr` Array of functions to pass to the method.\n   */\n\n  define(Base, 'run', function(obj, prop, arr) {\n    var len = arr.length, i = 0;\n    while (len--) {\n      obj[prop](arr[i++]);\n    }\n    return Base;\n  });\n\n  /**\n   * Static method for inheriting the prototype and static methods of the `Base` class.\n   * This method greatly simplifies the process of creating inheritance-based applications.\n   * See [static-extend][] for more details.\n   *\n   * ```js\n   * var extend = cu.extend(Parent);\n   * Parent.extend(Child);\n   *\n   * // optional methods\n   * Parent.extend(Child, {\n   *   foo: function() {},\n   *   bar: function() {}\n   * });\n   * ```\n   * @name #extend\n   * @param {Function} `Ctor` constructor to extend\n   * @param {Object} `methods` Optional prototype properties to mix in.\n   * @return {Object} Returns the `Base` constructor for chaining\n   * @api public\n   */\n\n  define(Base, 'extend', cu.extend(Base, function(Ctor, Parent) {\n    Ctor.prototype.mixins = Ctor.prototype.mixins || [];\n\n    define(Ctor, 'mixin', function(fn) {\n      var mixin = fn(Ctor.prototype, Ctor);\n      if (typeof mixin === 'function') {\n        Ctor.prototype.mixins.push(mixin);\n      }\n      return Ctor;\n    });\n\n    define(Ctor, 'mixins', function(Child) {\n      Base.run(Child, 'mixin', Ctor.prototype.mixins);\n      return Ctor;\n    });\n\n    Ctor.prototype.mixin = function(key, value) {\n      Ctor.prototype[key] = value;\n      return this;\n    };\n    return Base;\n  }));\n\n  /**\n   * Used for adding methods to the `Base` prototype, and/or to the prototype of child instances.\n   * When a mixin function returns a function, the returned function is pushed onto the `.mixins`\n   * array, making it available to be used on inheriting classes whenever `Base.mixins()` is\n   * called (e.g. `Base.mixins(Child)`).\n   *\n   * ```js\n   * Base.mixin(function(proto) {\n   *   proto.foo = function(msg) {\n   *     return 'foo ' + msg;\n   *   };\n   * });\n   * ```\n   * @name #mixin\n   * @param {Function} `fn` Function to call\n   * @return {Object} Returns the `Base` constructor for chaining\n   * @api public\n   */\n\n  define(Base, 'mixin', function(fn) {\n    var mixin = fn(Base.prototype, Base);\n    if (typeof mixin === 'function') {\n      Base.prototype.mixins.push(mixin);\n    }\n    return Base;\n  });\n\n  /**\n   * Static method for running global mixin functions against a child constructor.\n   * Mixins must be registered before calling this method.\n   *\n   * ```js\n   * Base.extend(Child);\n   * Base.mixins(Child);\n   * ```\n   * @name #mixins\n   * @param {Function} `Child` Constructor function of a child class\n   * @return {Object} Returns the `Base` constructor for chaining\n   * @api public\n   */\n\n  define(Base, 'mixins', function(Child) {\n    Base.run(Child, 'mixin', Base.prototype.mixins);\n    return Base;\n  });\n\n  /**\n   * Similar to `util.inherit`, but copies all static properties, prototype properties, and\n   * getters/setters from `Provider` to `Receiver`. See [class-utils][]{#inherit} for more details.\n   *\n   * ```js\n   * Base.inherit(Foo, Bar);\n   * ```\n   * @name #inherit\n   * @param {Function} `Receiver` Receiving (child) constructor\n   * @param {Function} `Provider` Providing (parent) constructor\n   * @return {Object} Returns the `Base` constructor for chaining\n   * @api public\n   */\n\n  define(Base, 'inherit', cu.inherit);\n  define(Base, 'bubble', cu.bubble);\n  return Base;\n}\n\n/**\n * Expose `Base` with default settings\n */\n\nmodule.exports = namespace();\n\n/**\n * Allow users to define a namespace\n */\n\nmodule.exports.namespace = namespace;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/base/index.js?");

/***/ }),

/***/ "./node_modules/base/node_modules/define-property/index.js":
/*!*****************************************************************!*\
  !*** ./node_modules/base/node_modules/define-property/index.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * define-property <https://github.com/jonschlinkert/define-property>\n *\n * Copyright (c) 2015, 2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar isDescriptor = __webpack_require__(/*! is-descriptor */ \"./node_modules/is-descriptor/index.js\");\n\nmodule.exports = function defineProperty(obj, prop, val) {\n  if (typeof obj !== 'object' && typeof obj !== 'function') {\n    throw new TypeError('expected an object or function.');\n  }\n\n  if (typeof prop !== 'string') {\n    throw new TypeError('expected `prop` to be a string.');\n  }\n\n  if (isDescriptor(val) && ('set' in val || 'get' in val)) {\n    return Object.defineProperty(obj, prop, val);\n  }\n\n  return Object.defineProperty(obj, prop, {\n    configurable: true,\n    enumerable: false,\n    writable: true,\n    value: val\n  });\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/base/node_modules/define-property/index.js?");

/***/ }),

/***/ "./node_modules/braces/index.js":
/*!**************************************!*\
  !*** ./node_modules/braces/index.js ***!
  \**************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\n/**\n * Module dependencies\n */\n\nvar toRegex = __webpack_require__(/*! to-regex */ \"./node_modules/to-regex/index.js\");\nvar unique = __webpack_require__(/*! array-unique */ \"./node_modules/array-unique/index.js\");\nvar extend = __webpack_require__(/*! extend-shallow */ \"./node_modules/extend-shallow/index.js\");\n\n/**\n * Local dependencies\n */\n\nvar compilers = __webpack_require__(/*! ./lib/compilers */ \"./node_modules/braces/lib/compilers.js\");\nvar parsers = __webpack_require__(/*! ./lib/parsers */ \"./node_modules/braces/lib/parsers.js\");\nvar Braces = __webpack_require__(/*! ./lib/braces */ \"./node_modules/braces/lib/braces.js\");\nvar utils = __webpack_require__(/*! ./lib/utils */ \"./node_modules/braces/lib/utils.js\");\nvar MAX_LENGTH = 1024 * 64;\nvar cache = {};\n\n/**\n * Convert the given `braces` pattern into a regex-compatible string. By default, only one string is generated for every input string. Set `options.expand` to true to return an array of patterns (similar to Bash or minimatch. Before using `options.expand`, it's recommended that you read the [performance notes](#performance)).\n *\n * ```js\n * var braces = require('braces');\n * console.log(braces('{a,b,c}'));\n * //=> ['(a|b|c)']\n *\n * console.log(braces('{a,b,c}', {expand: true}));\n * //=> ['a', 'b', 'c']\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {String}\n * @api public\n */\n\nfunction braces(pattern, options) {\n  var key = utils.createKey(String(pattern), options);\n  var arr = [];\n\n  var disabled = options && options.cache === false;\n  if (!disabled && cache.hasOwnProperty(key)) {\n    return cache[key];\n  }\n\n  if (Array.isArray(pattern)) {\n    for (var i = 0; i < pattern.length; i++) {\n      arr.push.apply(arr, braces.create(pattern[i], options));\n    }\n  } else {\n    arr = braces.create(pattern, options);\n  }\n\n  if (options && options.nodupes === true) {\n    arr = unique(arr);\n  }\n\n  if (!disabled) {\n    cache[key] = arr;\n  }\n  return arr;\n}\n\n/**\n * Expands a brace pattern into an array. This method is called by the main [braces](#braces) function when `options.expand` is true. Before using this method it's recommended that you read the [performance notes](#performance)) and advantages of using [.optimize](#optimize) instead.\n *\n * ```js\n * var braces = require('braces');\n * console.log(braces.expand('a/{b,c}/d'));\n * //=> ['a/b/d', 'a/c/d'];\n * ```\n * @param {String} `pattern` Brace pattern\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.expand = function(pattern, options) {\n  return braces.create(pattern, extend({}, options, {expand: true}));\n};\n\n/**\n * Expands a brace pattern into a regex-compatible, optimized string. This method is called by the main [braces](#braces) function by default.\n *\n * ```js\n * var braces = require('braces');\n * console.log(braces.expand('a/{b,c}/d'));\n * //=> ['a/(b|c)/d']\n * ```\n * @param {String} `pattern` Brace pattern\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.optimize = function(pattern, options) {\n  return braces.create(pattern, options);\n};\n\n/**\n * Processes a brace pattern and returns either an expanded array (if `options.expand` is true), a highly optimized regex-compatible string. This method is called by the main [braces](#braces) function.\n *\n * ```js\n * var braces = require('braces');\n * console.log(braces.create('user-{200..300}/project-{a,b,c}-{1..10}'))\n * //=> 'user-(20[0-9]|2[1-9][0-9]|300)/project-(a|b|c)-([1-9]|10)'\n * ```\n * @param {String} `pattern` Brace pattern\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.create = function(pattern, options) {\n  if (typeof pattern !== 'string') {\n    throw new TypeError('expected a string');\n  }\n\n  var maxLength = (options && options.maxLength) || MAX_LENGTH;\n  if (pattern.length >= maxLength) {\n    throw new Error('expected pattern to be less than ' + maxLength + ' characters');\n  }\n\n  function create() {\n    if (pattern === '' || pattern.length < 3) {\n      return [pattern];\n    }\n\n    if (utils.isEmptySets(pattern)) {\n      return [];\n    }\n\n    if (utils.isQuotedString(pattern)) {\n      return [pattern.slice(1, -1)];\n    }\n\n    var proto = new Braces(options);\n    var result = !options || options.expand !== true\n      ? proto.optimize(pattern, options)\n      : proto.expand(pattern, options);\n\n    // get the generated pattern(s)\n    var arr = result.output;\n\n    // filter out empty strings if specified\n    if (options && options.noempty === true) {\n      arr = arr.filter(Boolean);\n    }\n\n    // filter out duplicates if specified\n    if (options && options.nodupes === true) {\n      arr = unique(arr);\n    }\n\n    Object.defineProperty(arr, 'result', {\n      enumerable: false,\n      value: result\n    });\n\n    return arr;\n  }\n\n  return memoize('create', pattern, options, create);\n};\n\n/**\n * Create a regular expression from the given string `pattern`.\n *\n * ```js\n * var braces = require('braces');\n *\n * console.log(braces.makeRe('id-{200..300}'));\n * //=> /^(?:id-(20[0-9]|2[1-9][0-9]|300))$/\n * ```\n * @param {String} `pattern` The pattern to convert to regex.\n * @param {Object} `options`\n * @return {RegExp}\n * @api public\n */\n\nbraces.makeRe = function(pattern, options) {\n  if (typeof pattern !== 'string') {\n    throw new TypeError('expected a string');\n  }\n\n  var maxLength = (options && options.maxLength) || MAX_LENGTH;\n  if (pattern.length >= maxLength) {\n    throw new Error('expected pattern to be less than ' + maxLength + ' characters');\n  }\n\n  function makeRe() {\n    var arr = braces(pattern, options);\n    var opts = extend({strictErrors: false}, options);\n    return toRegex(arr, opts);\n  }\n\n  return memoize('makeRe', pattern, options, makeRe);\n};\n\n/**\n * Parse the given `str` with the given `options`.\n *\n * ```js\n * var braces = require('braces');\n * var ast = braces.parse('a/{b,c}/d');\n * console.log(ast);\n * // { type: 'root',\n * //   errors: [],\n * //   input: 'a/{b,c}/d',\n * //   nodes:\n * //    [ { type: 'bos', val: '' },\n * //      { type: 'text', val: 'a/' },\n * //      { type: 'brace',\n * //        nodes:\n * //         [ { type: 'brace.open', val: '{' },\n * //           { type: 'text', val: 'b,c' },\n * //           { type: 'brace.close', val: '}' } ] },\n * //      { type: 'text', val: '/d' },\n * //      { type: 'eos', val: '' } ] }\n * ```\n * @param {String} `pattern` Brace pattern to parse\n * @param {Object} `options`\n * @return {Object} Returns an AST\n * @api public\n */\n\nbraces.parse = function(pattern, options) {\n  var proto = new Braces(options);\n  return proto.parse(pattern, options);\n};\n\n/**\n * Compile the given `ast` or string with the given `options`.\n *\n * ```js\n * var braces = require('braces');\n * var ast = braces.parse('a/{b,c}/d');\n * console.log(braces.compile(ast));\n * // { options: { source: 'string' },\n * //   state: {},\n * //   compilers:\n * //    { eos: [Function],\n * //      noop: [Function],\n * //      bos: [Function],\n * //      brace: [Function],\n * //      'brace.open': [Function],\n * //      text: [Function],\n * //      'brace.close': [Function] },\n * //   output: [ 'a/(b|c)/d' ],\n * //   ast:\n * //    { ... },\n * //   parsingErrors: [] }\n * ```\n * @param {Object|String} `ast` AST from [.parse](#parse). If a string is passed it will be parsed first.\n * @param {Object} `options`\n * @return {Object} Returns an object that has an `output` property with the compiled string.\n * @api public\n */\n\nbraces.compile = function(ast, options) {\n  var proto = new Braces(options);\n  return proto.compile(ast, options);\n};\n\n/**\n * Clear the regex cache.\n *\n * ```js\n * braces.clearCache();\n * ```\n * @api public\n */\n\nbraces.clearCache = function() {\n  cache = braces.cache = {};\n};\n\n/**\n * Memoize a generated regex or function. A unique key is generated\n * from the method name, pattern, and user-defined options. Set\n * options.memoize to false to disable.\n */\n\nfunction memoize(type, pattern, options, fn) {\n  var key = utils.createKey(type + ':' + pattern, options);\n  var disabled = options && options.cache === false;\n  if (disabled) {\n    braces.clearCache();\n    return fn(pattern, options);\n  }\n\n  if (cache.hasOwnProperty(key)) {\n    return cache[key];\n  }\n\n  var res = fn(pattern, options);\n  cache[key] = res;\n  return res;\n}\n\n/**\n * Expose `Braces` constructor and methods\n * @type {Function}\n */\n\nbraces.Braces = Braces;\nbraces.compilers = compilers;\nbraces.parsers = parsers;\nbraces.cache = cache;\n\n/**\n * Expose `braces`\n * @type {Function}\n */\n\nmodule.exports = braces;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/braces/index.js?");

/***/ }),

/***/ "./node_modules/braces/lib/braces.js":
/*!*******************************************!*\
  !*** ./node_modules/braces/lib/braces.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar extend = __webpack_require__(/*! extend-shallow */ \"./node_modules/extend-shallow/index.js\");\nvar Snapdragon = __webpack_require__(/*! snapdragon */ \"./node_modules/snapdragon/index.js\");\nvar compilers = __webpack_require__(/*! ./compilers */ \"./node_modules/braces/lib/compilers.js\");\nvar parsers = __webpack_require__(/*! ./parsers */ \"./node_modules/braces/lib/parsers.js\");\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/braces/lib/utils.js\");\n\n/**\n * Customize Snapdragon parser and renderer\n */\n\nfunction Braces(options) {\n  this.options = extend({}, options);\n}\n\n/**\n * Initialize braces\n */\n\nBraces.prototype.init = function(options) {\n  if (this.isInitialized) return;\n  this.isInitialized = true;\n  var opts = utils.createOptions({}, this.options, options);\n  this.snapdragon = this.options.snapdragon || new Snapdragon(opts);\n  this.compiler = this.snapdragon.compiler;\n  this.parser = this.snapdragon.parser;\n\n  compilers(this.snapdragon, opts);\n  parsers(this.snapdragon, opts);\n\n  /**\n   * Call Snapdragon `.parse` method. When AST is returned, we check to\n   * see if any unclosed braces are left on the stack and, if so, we iterate\n   * over the stack and correct the AST so that compilers are called in the correct\n   * order and unbalance braces are properly escaped.\n   */\n\n  utils.define(this.snapdragon, 'parse', function(pattern, options) {\n    var parsed = Snapdragon.prototype.parse.apply(this, arguments);\n    this.parser.ast.input = pattern;\n\n    var stack = this.parser.stack;\n    while (stack.length) {\n      addParent({type: 'brace.close', val: ''}, stack.pop());\n    }\n\n    function addParent(node, parent) {\n      utils.define(node, 'parent', parent);\n      parent.nodes.push(node);\n    }\n\n    // add non-enumerable parser reference\n    utils.define(parsed, 'parser', this.parser);\n    return parsed;\n  });\n};\n\n/**\n * Decorate `.parse` method\n */\n\nBraces.prototype.parse = function(ast, options) {\n  if (ast && typeof ast === 'object' && ast.nodes) return ast;\n  this.init(options);\n  return this.snapdragon.parse(ast, options);\n};\n\n/**\n * Decorate `.compile` method\n */\n\nBraces.prototype.compile = function(ast, options) {\n  if (typeof ast === 'string') {\n    ast = this.parse(ast, options);\n  } else {\n    this.init(options);\n  }\n  return this.snapdragon.compile(ast, options);\n};\n\n/**\n * Expand\n */\n\nBraces.prototype.expand = function(pattern) {\n  var ast = this.parse(pattern, {expand: true});\n  return this.compile(ast, {expand: true});\n};\n\n/**\n * Optimize\n */\n\nBraces.prototype.optimize = function(pattern) {\n  var ast = this.parse(pattern, {optimize: true});\n  return this.compile(ast, {optimize: true});\n};\n\n/**\n * Expose `Braces`\n */\n\nmodule.exports = Braces;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/braces/lib/braces.js?");

/***/ }),

/***/ "./node_modules/braces/lib/compilers.js":
/*!**********************************************!*\
  !*** ./node_modules/braces/lib/compilers.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/braces/lib/utils.js\");\n\nmodule.exports = function(braces, options) {\n  braces.compiler\n\n    /**\n     * bos\n     */\n\n    .set('bos', function() {\n      if (this.output) return;\n      this.ast.queue = isEscaped(this.ast) ? [this.ast.val] : [];\n      this.ast.count = 1;\n    })\n\n    /**\n     * Square brackets\n     */\n\n    .set('bracket', function(node) {\n      var close = node.close;\n      var open = !node.escaped ? '[' : '\\\\[';\n      var negated = node.negated;\n      var inner = node.inner;\n\n      inner = inner.replace(/\\\\(?=[\\\\\\w]|$)/g, '\\\\\\\\');\n      if (inner === ']-') {\n        inner = '\\\\]\\\\-';\n      }\n\n      if (negated && inner.indexOf('.') === -1) {\n        inner += '.';\n      }\n      if (negated && inner.indexOf('/') === -1) {\n        inner += '/';\n      }\n\n      var val = open + negated + inner + close;\n      var queue = node.parent.queue;\n      var last = utils.arrayify(queue.pop());\n\n      queue.push(utils.join(last, val));\n      queue.push.apply(queue, []);\n    })\n\n    /**\n     * Brace\n     */\n\n    .set('brace', function(node) {\n      node.queue = isEscaped(node) ? [node.val] : [];\n      node.count = 1;\n      return this.mapVisit(node.nodes);\n    })\n\n    /**\n     * Open\n     */\n\n    .set('brace.open', function(node) {\n      node.parent.open = node.val;\n    })\n\n    /**\n     * Inner\n     */\n\n    .set('text', function(node) {\n      var queue = node.parent.queue;\n      var escaped = node.escaped;\n      var segs = [node.val];\n\n      if (node.optimize === false) {\n        options = utils.extend({}, options, {optimize: false});\n      }\n\n      if (node.multiplier > 1) {\n        node.parent.count *= node.multiplier;\n      }\n\n      if (options.quantifiers === true && utils.isQuantifier(node.val)) {\n        escaped = true;\n\n      } else if (node.val.length > 1) {\n        if (isType(node.parent, 'brace') && !isEscaped(node)) {\n          var expanded = utils.expand(node.val, options);\n          segs = expanded.segs;\n\n          if (expanded.isOptimized) {\n            node.parent.isOptimized = true;\n          }\n\n          // if nothing was expanded, we probably have a literal brace\n          if (!segs.length) {\n            var val = (expanded.val || node.val);\n            if (options.unescape !== false) {\n              // unescape unexpanded brace sequence/set separators\n              val = val.replace(/\\\\([,.])/g, '$1');\n              // strip quotes\n              val = val.replace(/[\"'`]/g, '');\n            }\n\n            segs = [val];\n            escaped = true;\n          }\n        }\n\n      } else if (node.val === ',') {\n        if (options.expand) {\n          node.parent.queue.push(['']);\n          segs = [''];\n        } else {\n          segs = ['|'];\n        }\n      } else {\n        escaped = true;\n      }\n\n      if (escaped && isType(node.parent, 'brace')) {\n        if (node.parent.nodes.length <= 4 && node.parent.count === 1) {\n          node.parent.escaped = true;\n        } else if (node.parent.length <= 3) {\n          node.parent.escaped = true;\n        }\n      }\n\n      if (!hasQueue(node.parent)) {\n        node.parent.queue = segs;\n        return;\n      }\n\n      var last = utils.arrayify(queue.pop());\n      if (node.parent.count > 1 && options.expand) {\n        last = multiply(last, node.parent.count);\n        node.parent.count = 1;\n      }\n\n      queue.push(utils.join(utils.flatten(last), segs.shift()));\n      queue.push.apply(queue, segs);\n    })\n\n    /**\n     * Close\n     */\n\n    .set('brace.close', function(node) {\n      var queue = node.parent.queue;\n      var prev = node.parent.parent;\n      var last = prev.queue.pop();\n      var open = node.parent.open;\n      var close = node.val;\n\n      if (open && close && isOptimized(node, options)) {\n        open = '(';\n        close = ')';\n      }\n\n      // if a close brace exists, and the previous segment is one character\n      // don't wrap the result in braces or parens\n      var ele = utils.last(queue);\n      if (node.parent.count > 1 && options.expand) {\n        ele = multiply(queue.pop(), node.parent.count);\n        node.parent.count = 1;\n        queue.push(ele);\n      }\n\n      if (close && typeof ele === 'string' && ele.length === 1) {\n        open = '';\n        close = '';\n      }\n\n      if ((isLiteralBrace(node, options) || noInner(node)) && !node.parent.hasEmpty) {\n        queue.push(utils.join(open, queue.pop() || ''));\n        queue = utils.flatten(utils.join(queue, close));\n      }\n\n      if (typeof last === 'undefined') {\n        prev.queue = [queue];\n      } else {\n        prev.queue.push(utils.flatten(utils.join(last, queue)));\n      }\n    })\n\n    /**\n     * eos\n     */\n\n    .set('eos', function(node) {\n      if (this.input) return;\n\n      if (options.optimize !== false) {\n        this.output = utils.last(utils.flatten(this.ast.queue));\n      } else if (Array.isArray(utils.last(this.ast.queue))) {\n        this.output = utils.flatten(this.ast.queue.pop());\n      } else {\n        this.output = utils.flatten(this.ast.queue);\n      }\n\n      if (node.parent.count > 1 && options.expand) {\n        this.output = multiply(this.output, node.parent.count);\n      }\n\n      this.output = utils.arrayify(this.output);\n      this.ast.queue = [];\n    });\n\n};\n\n/**\n * Multiply the segments in the current brace level\n */\n\nfunction multiply(queue, n, options) {\n  return utils.flatten(utils.repeat(utils.arrayify(queue), n));\n}\n\n/**\n * Return true if `node` is escaped\n */\n\nfunction isEscaped(node) {\n  return node.escaped === true;\n}\n\n/**\n * Returns true if regex parens should be used for sets. If the parent `type`\n * is not `brace`, then we're on a root node, which means we should never\n * expand segments and open/close braces should be `{}` (since this indicates\n * a brace is missing from the set)\n */\n\nfunction isOptimized(node, options) {\n  if (node.parent.isOptimized) return true;\n  return isType(node.parent, 'brace')\n    && !isEscaped(node.parent)\n    && options.expand !== true;\n}\n\n/**\n * Returns true if the value in `node` should be wrapped in a literal brace.\n * @return {Boolean}\n */\n\nfunction isLiteralBrace(node, options) {\n  return isEscaped(node.parent) || options.optimize !== false;\n}\n\n/**\n * Returns true if the given `node` does not have an inner value.\n * @return {Boolean}\n */\n\nfunction noInner(node, type) {\n  if (node.parent.queue.length === 1) {\n    return true;\n  }\n  var nodes = node.parent.nodes;\n  return nodes.length === 3\n    && isType(nodes[0], 'brace.open')\n    && !isType(nodes[1], 'text')\n    && isType(nodes[2], 'brace.close');\n}\n\n/**\n * Returns true if the given `node` is the given `type`\n * @return {Boolean}\n */\n\nfunction isType(node, type) {\n  return typeof node !== 'undefined' && node.type === type;\n}\n\n/**\n * Returns true if the given `node` has a non-empty queue.\n * @return {Boolean}\n */\n\nfunction hasQueue(node) {\n  return Array.isArray(node.queue) && node.queue.length;\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/braces/lib/compilers.js?");

/***/ }),

/***/ "./node_modules/braces/lib/parsers.js":
/*!********************************************!*\
  !*** ./node_modules/braces/lib/parsers.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar Node = __webpack_require__(/*! snapdragon-node */ \"./node_modules/snapdragon-node/index.js\");\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/braces/lib/utils.js\");\n\n/**\n * Braces parsers\n */\n\nmodule.exports = function(braces, options) {\n  braces.parser\n    .set('bos', function() {\n      if (!this.parsed) {\n        this.ast = this.nodes[0] = new Node(this.ast);\n      }\n    })\n\n    /**\n     * Character parsers\n     */\n\n    .set('escape', function() {\n      var pos = this.position();\n      var m = this.match(/^(?:\\\\(.)|\\$\\{)/);\n      if (!m) return;\n\n      var prev = this.prev();\n      var last = utils.last(prev.nodes);\n\n      var node = pos(new Node({\n        type: 'text',\n        multiplier: 1,\n        val: m[0]\n      }));\n\n      if (node.val === '\\\\\\\\') {\n        return node;\n      }\n\n      if (node.val === '${') {\n        var str = this.input;\n        var idx = -1;\n        var ch;\n\n        while ((ch = str[++idx])) {\n          this.consume(1);\n          node.val += ch;\n          if (ch === '\\\\') {\n            node.val += str[++idx];\n            continue;\n          }\n          if (ch === '}') {\n            break;\n          }\n        }\n      }\n\n      if (this.options.unescape !== false) {\n        node.val = node.val.replace(/\\\\([{}])/g, '$1');\n      }\n\n      if (last.val === '\"' && this.input.charAt(0) === '\"') {\n        last.val = node.val;\n        this.consume(1);\n        return;\n      }\n\n      return concatNodes.call(this, pos, node, prev, options);\n    })\n\n    /**\n     * Brackets: \"[...]\" (basic, this is overridden by\n     * other parsers in more advanced implementations)\n     */\n\n    .set('bracket', function() {\n      var isInside = this.isInside('brace');\n      var pos = this.position();\n      var m = this.match(/^(?:\\[([!^]?)([^\\]]{2,}|\\]-)(\\]|[^*+?]+)|\\[)/);\n      if (!m) return;\n\n      var prev = this.prev();\n      var val = m[0];\n      var negated = m[1] ? '^' : '';\n      var inner = m[2] || '';\n      var close = m[3] || '';\n\n      if (isInside && prev.type === 'brace') {\n        prev.text = prev.text || '';\n        prev.text += val;\n      }\n\n      var esc = this.input.slice(0, 2);\n      if (inner === '' && esc === '\\\\]') {\n        inner += esc;\n        this.consume(2);\n\n        var str = this.input;\n        var idx = -1;\n        var ch;\n\n        while ((ch = str[++idx])) {\n          this.consume(1);\n          if (ch === ']') {\n            close = ch;\n            break;\n          }\n          inner += ch;\n        }\n      }\n\n      return pos(new Node({\n        type: 'bracket',\n        val: val,\n        escaped: close !== ']',\n        negated: negated,\n        inner: inner,\n        close: close\n      }));\n    })\n\n    /**\n     * Empty braces (we capture these early to\n     * speed up processing in the compiler)\n     */\n\n    .set('multiplier', function() {\n      var isInside = this.isInside('brace');\n      var pos = this.position();\n      var m = this.match(/^\\{((?:,|\\{,+\\})+)\\}/);\n      if (!m) return;\n\n      this.multiplier = true;\n      var prev = this.prev();\n      var val = m[0];\n\n      if (isInside && prev.type === 'brace') {\n        prev.text = prev.text || '';\n        prev.text += val;\n      }\n\n      var node = pos(new Node({\n        type: 'text',\n        multiplier: 1,\n        match: m,\n        val: val\n      }));\n\n      return concatNodes.call(this, pos, node, prev, options);\n    })\n\n    /**\n     * Open\n     */\n\n    .set('brace.open', function() {\n      var pos = this.position();\n      var m = this.match(/^\\{(?!(?:[^\\\\}]?|,+)\\})/);\n      if (!m) return;\n\n      var prev = this.prev();\n      var last = utils.last(prev.nodes);\n\n      // if the last parsed character was an extglob character\n      // we need to _not optimize_ the brace pattern because\n      // it might be mistaken for an extglob by a downstream parser\n      if (last && last.val && isExtglobChar(last.val.slice(-1))) {\n        last.optimize = false;\n      }\n\n      var open = pos(new Node({\n        type: 'brace.open',\n        val: m[0]\n      }));\n\n      var node = pos(new Node({\n        type: 'brace',\n        nodes: []\n      }));\n\n      node.push(open);\n      prev.push(node);\n      this.push('brace', node);\n    })\n\n    /**\n     * Close\n     */\n\n    .set('brace.close', function() {\n      var pos = this.position();\n      var m = this.match(/^\\}/);\n      if (!m || !m[0]) return;\n\n      var brace = this.pop('brace');\n      var node = pos(new Node({\n        type: 'brace.close',\n        val: m[0]\n      }));\n\n      if (!this.isType(brace, 'brace')) {\n        if (this.options.strict) {\n          throw new Error('missing opening \"{\"');\n        }\n        node.type = 'text';\n        node.multiplier = 0;\n        node.escaped = true;\n        return node;\n      }\n\n      var prev = this.prev();\n      var last = utils.last(prev.nodes);\n      if (last.text) {\n        var lastNode = utils.last(last.nodes);\n        if (lastNode.val === ')' && /[!@*?+]\\(/.test(last.text)) {\n          var open = last.nodes[0];\n          var text = last.nodes[1];\n          if (open.type === 'brace.open' && text && text.type === 'text') {\n            text.optimize = false;\n          }\n        }\n      }\n\n      if (brace.nodes.length > 2) {\n        var first = brace.nodes[1];\n        if (first.type === 'text' && first.val === ',') {\n          brace.nodes.splice(1, 1);\n          brace.nodes.push(first);\n        }\n      }\n\n      brace.push(node);\n    })\n\n    /**\n     * Capture boundary characters\n     */\n\n    .set('boundary', function() {\n      var pos = this.position();\n      var m = this.match(/^[$^](?!\\{)/);\n      if (!m) return;\n      return pos(new Node({\n        type: 'text',\n        val: m[0]\n      }));\n    })\n\n    /**\n     * One or zero, non-comma characters wrapped in braces\n     */\n\n    .set('nobrace', function() {\n      var isInside = this.isInside('brace');\n      var pos = this.position();\n      var m = this.match(/^\\{[^,]?\\}/);\n      if (!m) return;\n\n      var prev = this.prev();\n      var val = m[0];\n\n      if (isInside && prev.type === 'brace') {\n        prev.text = prev.text || '';\n        prev.text += val;\n      }\n\n      return pos(new Node({\n        type: 'text',\n        multiplier: 0,\n        val: val\n      }));\n    })\n\n    /**\n     * Text\n     */\n\n    .set('text', function() {\n      var isInside = this.isInside('brace');\n      var pos = this.position();\n      var m = this.match(/^((?!\\\\)[^${}[\\]])+/);\n      if (!m) return;\n\n      var prev = this.prev();\n      var val = m[0];\n\n      if (isInside && prev.type === 'brace') {\n        prev.text = prev.text || '';\n        prev.text += val;\n      }\n\n      var node = pos(new Node({\n        type: 'text',\n        multiplier: 1,\n        val: val\n      }));\n\n      return concatNodes.call(this, pos, node, prev, options);\n    });\n};\n\n/**\n * Returns true if the character is an extglob character.\n */\n\nfunction isExtglobChar(ch) {\n  return ch === '!' || ch === '@' || ch === '*' || ch === '?' || ch === '+';\n}\n\n/**\n * Combine text nodes, and calculate empty sets (`{,,}`)\n * @param {Function} `pos` Function to calculate node position\n * @param {Object} `node` AST node\n * @return {Object}\n */\n\nfunction concatNodes(pos, node, parent, options) {\n  node.orig = node.val;\n  var prev = this.prev();\n  var last = utils.last(prev.nodes);\n  var isEscaped = false;\n\n  if (node.val.length > 1) {\n    var a = node.val.charAt(0);\n    var b = node.val.slice(-1);\n\n    isEscaped = (a === '\"' && b === '\"')\n      || (a === \"'\" && b === \"'\")\n      || (a === '`' && b === '`');\n  }\n\n  if (isEscaped && options.unescape !== false) {\n    node.val = node.val.slice(1, node.val.length - 1);\n    node.escaped = true;\n  }\n\n  if (node.match) {\n    var match = node.match[1];\n    if (!match || match.indexOf('}') === -1) {\n      match = node.match[0];\n    }\n\n    // replace each set with a single \",\"\n    var val = match.replace(/\\{/g, ',').replace(/\\}/g, '');\n    node.multiplier *= val.length;\n    node.val = '';\n  }\n\n  var simpleText = last.type === 'text'\n    && last.multiplier === 1\n    && node.multiplier === 1\n    && node.val;\n\n  if (simpleText) {\n    last.val += node.val;\n    return;\n  }\n\n  prev.push(node);\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/braces/lib/parsers.js?");

/***/ }),

/***/ "./node_modules/braces/lib/utils.js":
/*!******************************************!*\
  !*** ./node_modules/braces/lib/utils.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar splitString = __webpack_require__(/*! split-string */ \"./node_modules/split-string/index.js\");\nvar utils = module.exports;\n\n/**\n * Module dependencies\n */\n\nutils.extend = __webpack_require__(/*! extend-shallow */ \"./node_modules/extend-shallow/index.js\");\nutils.flatten = __webpack_require__(/*! arr-flatten */ \"./node_modules/arr-flatten/index.js\");\nutils.isObject = __webpack_require__(/*! isobject */ \"./node_modules/isobject/index.js\");\nutils.fillRange = __webpack_require__(/*! fill-range */ \"./node_modules/fill-range/index.js\");\nutils.repeat = __webpack_require__(/*! repeat-element */ \"./node_modules/repeat-element/index.js\");\nutils.unique = __webpack_require__(/*! array-unique */ \"./node_modules/array-unique/index.js\");\n\nutils.define = function(obj, key, val) {\n  Object.defineProperty(obj, key, {\n    writable: true,\n    configurable: true,\n    enumerable: false,\n    value: val\n  });\n};\n\n/**\n * Returns true if the given string contains only empty brace sets.\n */\n\nutils.isEmptySets = function(str) {\n  return /^(?:\\{,\\})+$/.test(str);\n};\n\n/**\n * Returns true if the given string contains only empty brace sets.\n */\n\nutils.isQuotedString = function(str) {\n  var open = str.charAt(0);\n  if (open === '\\'' || open === '\"' || open === '`') {\n    return str.slice(-1) === open;\n  }\n  return false;\n};\n\n/**\n * Create the key to use for memoization. The unique key is generated\n * by iterating over the options and concatenating key-value pairs\n * to the pattern string.\n */\n\nutils.createKey = function(pattern, options) {\n  var id = pattern;\n  if (typeof options === 'undefined') {\n    return id;\n  }\n  var keys = Object.keys(options);\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    id += ';' + key + '=' + String(options[key]);\n  }\n  return id;\n};\n\n/**\n * Normalize options\n */\n\nutils.createOptions = function(options) {\n  var opts = utils.extend.apply(null, arguments);\n  if (typeof opts.expand === 'boolean') {\n    opts.optimize = !opts.expand;\n  }\n  if (typeof opts.optimize === 'boolean') {\n    opts.expand = !opts.optimize;\n  }\n  if (opts.optimize === true) {\n    opts.makeRe = true;\n  }\n  return opts;\n};\n\n/**\n * Join patterns in `a` to patterns in `b`\n */\n\nutils.join = function(a, b, options) {\n  options = options || {};\n  a = utils.arrayify(a);\n  b = utils.arrayify(b);\n\n  if (!a.length) return b;\n  if (!b.length) return a;\n\n  var len = a.length;\n  var idx = -1;\n  var arr = [];\n\n  while (++idx < len) {\n    var val = a[idx];\n    if (Array.isArray(val)) {\n      for (var i = 0; i < val.length; i++) {\n        val[i] = utils.join(val[i], b, options);\n      }\n      arr.push(val);\n      continue;\n    }\n\n    for (var j = 0; j < b.length; j++) {\n      var bval = b[j];\n\n      if (Array.isArray(bval)) {\n        arr.push(utils.join(val, bval, options));\n      } else {\n        arr.push(val + bval);\n      }\n    }\n  }\n  return arr;\n};\n\n/**\n * Split the given string on `,` if not escaped.\n */\n\nutils.split = function(str, options) {\n  var opts = utils.extend({sep: ','}, options);\n  if (typeof opts.keepQuotes !== 'boolean') {\n    opts.keepQuotes = true;\n  }\n  if (opts.unescape === false) {\n    opts.keepEscaping = true;\n  }\n  return splitString(str, opts, utils.escapeBrackets(opts));\n};\n\n/**\n * Expand ranges or sets in the given `pattern`.\n *\n * @param {String} `str`\n * @param {Object} `options`\n * @return {Object}\n */\n\nutils.expand = function(str, options) {\n  var opts = utils.extend({rangeLimit: 10000}, options);\n  var segs = utils.split(str, opts);\n  var tok = { segs: segs };\n\n  if (utils.isQuotedString(str)) {\n    return tok;\n  }\n\n  if (opts.rangeLimit === true) {\n    opts.rangeLimit = 10000;\n  }\n\n  if (segs.length > 1) {\n    if (opts.optimize === false) {\n      tok.val = segs[0];\n      return tok;\n    }\n\n    tok.segs = utils.stringifyArray(tok.segs);\n  } else if (segs.length === 1) {\n    var arr = str.split('..');\n\n    if (arr.length === 1) {\n      tok.val = tok.segs[tok.segs.length - 1] || tok.val || str;\n      tok.segs = [];\n      return tok;\n    }\n\n    if (arr.length === 2 && arr[0] === arr[1]) {\n      tok.escaped = true;\n      tok.val = arr[0];\n      tok.segs = [];\n      return tok;\n    }\n\n    if (arr.length > 1) {\n      if (opts.optimize !== false) {\n        opts.optimize = true;\n        delete opts.expand;\n      }\n\n      if (opts.optimize !== true) {\n        var min = Math.min(arr[0], arr[1]);\n        var max = Math.max(arr[0], arr[1]);\n        var step = arr[2] || 1;\n\n        if (opts.rangeLimit !== false && ((max - min) / step >= opts.rangeLimit)) {\n          throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.');\n        }\n      }\n\n      arr.push(opts);\n      tok.segs = utils.fillRange.apply(null, arr);\n\n      if (!tok.segs.length) {\n        tok.escaped = true;\n        tok.val = str;\n        return tok;\n      }\n\n      if (opts.optimize === true) {\n        tok.segs = utils.stringifyArray(tok.segs);\n      }\n\n      if (tok.segs === '') {\n        tok.val = str;\n      } else {\n        tok.val = tok.segs[0];\n      }\n      return tok;\n    }\n  } else {\n    tok.val = str;\n  }\n  return tok;\n};\n\n/**\n * Ensure commas inside brackets and parens are not split.\n * @param {Object} `tok` Token from the `split-string` module\n * @return {undefined}\n */\n\nutils.escapeBrackets = function(options) {\n  return function(tok) {\n    if (tok.escaped && tok.val === 'b') {\n      tok.val = '\\\\b';\n      return;\n    }\n\n    if (tok.val !== '(' && tok.val !== '[') return;\n    var opts = utils.extend({}, options);\n    var brackets = [];\n    var parens = [];\n    var stack = [];\n    var val = tok.val;\n    var str = tok.str;\n    var i = tok.idx - 1;\n\n    while (++i < str.length) {\n      var ch = str[i];\n\n      if (ch === '\\\\') {\n        val += (opts.keepEscaping === false ? '' : ch) + str[++i];\n        continue;\n      }\n\n      if (ch === '(') {\n        parens.push(ch);\n        stack.push(ch);\n      }\n\n      if (ch === '[') {\n        brackets.push(ch);\n        stack.push(ch);\n      }\n\n      if (ch === ')') {\n        parens.pop();\n        stack.pop();\n        if (!stack.length) {\n          val += ch;\n          break;\n        }\n      }\n\n      if (ch === ']') {\n        brackets.pop();\n        stack.pop();\n        if (!stack.length) {\n          val += ch;\n          break;\n        }\n      }\n      val += ch;\n    }\n\n    tok.split = false;\n    tok.val = val.slice(1);\n    tok.idx = i;\n  };\n};\n\n/**\n * Returns true if the given string looks like a regex quantifier\n * @return {Boolean}\n */\n\nutils.isQuantifier = function(str) {\n  return /^(?:[0-9]?,[0-9]|[0-9],)$/.test(str);\n};\n\n/**\n * Cast `val` to an array.\n * @param {*} `val`\n */\n\nutils.stringifyArray = function(arr) {\n  return [utils.arrayify(arr).join('|')];\n};\n\n/**\n * Cast `val` to an array.\n * @param {*} `val`\n */\n\nutils.arrayify = function(arr) {\n  if (typeof arr === 'undefined') {\n    return [];\n  }\n  if (typeof arr === 'string') {\n    return [arr];\n  }\n  return arr;\n};\n\n/**\n * Returns true if the given `str` is a non-empty string\n * @return {Boolean}\n */\n\nutils.isString = function(str) {\n  return str != null && typeof str === 'string';\n};\n\n/**\n * Get the last element from `array`\n * @param {Array} `array`\n * @return {*}\n */\n\nutils.last = function(arr, n) {\n  return arr[arr.length - (n || 1)];\n};\n\nutils.escapeRegex = function(str) {\n  return str.replace(/\\\\?([!^*?()[\\]{}+?/])/g, '\\\\$1');\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/braces/lib/utils.js?");

/***/ }),

/***/ "./node_modules/cache-base/index.js":
/*!******************************************!*\
  !*** ./node_modules/cache-base/index.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar isObject = __webpack_require__(/*! isobject */ \"./node_modules/isobject/index.js\");\nvar Emitter = __webpack_require__(/*! component-emitter */ \"./node_modules/component-emitter/index.js\");\nvar visit = __webpack_require__(/*! collection-visit */ \"./node_modules/collection-visit/index.js\");\nvar toPath = __webpack_require__(/*! to-object-path */ \"./node_modules/to-object-path/index.js\");\nvar union = __webpack_require__(/*! union-value */ \"./node_modules/union-value/index.js\");\nvar del = __webpack_require__(/*! unset-value */ \"./node_modules/unset-value/index.js\");\nvar get = __webpack_require__(/*! get-value */ \"./node_modules/get-value/index.js\");\nvar has = __webpack_require__(/*! has-value */ \"./node_modules/has-value/index.js\");\nvar set = __webpack_require__(/*! set-value */ \"./node_modules/set-value/index.js\");\n\n/**\n * Create a `Cache` constructor that when instantiated will\n * store values on the given `prop`.\n *\n * ```js\n * var Cache = require('cache-base').namespace('data');\n * var cache = new Cache();\n *\n * cache.set('foo', 'bar');\n * //=> {data: {foo: 'bar'}}\n * ```\n * @param {String} `prop` The property name to use for storing values.\n * @return {Function} Returns a custom `Cache` constructor\n * @api public\n */\n\nfunction namespace(prop) {\n\n  /**\n   * Create a new `Cache`. Internally the `Cache` constructor is created using\n   * the `namespace` function, with `cache` defined as the storage object.\n   *\n   * ```js\n   * var app = new Cache();\n   * ```\n   * @param {Object} `cache` Optionally pass an object to initialize with.\n   * @constructor\n   * @api public\n   */\n\n  function Cache(cache) {\n    if (prop) {\n      this[prop] = {};\n    }\n    if (cache) {\n      this.set(cache);\n    }\n  }\n\n  /**\n   * Inherit Emitter\n   */\n\n  Emitter(Cache.prototype);\n\n  /**\n   * Assign `value` to `key`. Also emits `set` with\n   * the key and value.\n   *\n   * ```js\n   * app.on('set', function(key, val) {\n   *   // do something when `set` is emitted\n   * });\n   *\n   * app.set(key, value);\n   *\n   * // also takes an object or array\n   * app.set({name: 'Halle'});\n   * app.set([{foo: 'bar'}, {baz: 'quux'}]);\n   * console.log(app);\n   * //=> {name: 'Halle', foo: 'bar', baz: 'quux'}\n   * ```\n   *\n   * @name .set\n   * @emits `set` with `key` and `value` as arguments.\n   * @param {String} `key`\n   * @param {any} `value`\n   * @return {Object} Returns the instance for chaining.\n   * @api public\n   */\n\n  Cache.prototype.set = function(key, val) {\n    if (Array.isArray(key) && arguments.length === 2) {\n      key = toPath(key);\n    }\n    if (isObject(key) || Array.isArray(key)) {\n      this.visit('set', key);\n    } else {\n      set(prop ? this[prop] : this, key, val);\n      this.emit('set', key, val);\n    }\n    return this;\n  };\n\n  /**\n   * Union `array` to `key`. Also emits `set` with\n   * the key and value.\n   *\n   * ```js\n   * app.union('a.b', ['foo']);\n   * app.union('a.b', ['bar']);\n   * console.log(app.get('a'));\n   * //=> {b: ['foo', 'bar']}\n   * ```\n   * @name .union\n   * @param {String} `key`\n   * @param {any} `value`\n   * @return {Object} Returns the instance for chaining.\n   * @api public\n   */\n\n  Cache.prototype.union = function(key, val) {\n    if (Array.isArray(key) && arguments.length === 2) {\n      key = toPath(key);\n    }\n    var ctx = prop ? this[prop] : this;\n    union(ctx, key, arrayify(val));\n    this.emit('union', val);\n    return this;\n  };\n\n  /**\n   * Return the value of `key`. Dot notation may be used\n   * to get [nested property values][get-value].\n   *\n   * ```js\n   * app.set('a.b.c', 'd');\n   * app.get('a.b');\n   * //=> {c: 'd'}\n   *\n   * app.get(['a', 'b']);\n   * //=> {c: 'd'}\n   * ```\n   *\n   * @name .get\n   * @emits `get` with `key` and `value` as arguments.\n   * @param {String} `key` The name of the property to get. Dot-notation may be used.\n   * @return {any} Returns the value of `key`\n   * @api public\n   */\n\n  Cache.prototype.get = function(key) {\n    key = toPath(arguments);\n\n    var ctx = prop ? this[prop] : this;\n    var val = get(ctx, key);\n\n    this.emit('get', key, val);\n    return val;\n  };\n\n  /**\n   * Return true if app has a stored value for `key`,\n   * false only if value is `undefined`.\n   *\n   * ```js\n   * app.set('foo', 'bar');\n   * app.has('foo');\n   * //=> true\n   * ```\n   *\n   * @name .has\n   * @emits `has` with `key` and true or false as arguments.\n   * @param {String} `key`\n   * @return {Boolean}\n   * @api public\n   */\n\n  Cache.prototype.has = function(key) {\n    key = toPath(arguments);\n\n    var ctx = prop ? this[prop] : this;\n    var val = get(ctx, key);\n\n    var has = typeof val !== 'undefined';\n    this.emit('has', key, has);\n    return has;\n  };\n\n  /**\n   * Delete one or more properties from the instance.\n   *\n   * ```js\n   * app.del(); // delete all\n   * // or\n   * app.del('foo');\n   * // or\n   * app.del(['foo', 'bar']);\n   * ```\n   * @name .del\n   * @emits `del` with the `key` as the only argument.\n   * @param {String|Array} `key` Property name or array of property names.\n   * @return {Object} Returns the instance for chaining.\n   * @api public\n   */\n\n  Cache.prototype.del = function(key) {\n    if (Array.isArray(key)) {\n      this.visit('del', key);\n    } else {\n      del(prop ? this[prop] : this, key);\n      this.emit('del', key);\n    }\n    return this;\n  };\n\n  /**\n   * Reset the entire cache to an empty object.\n   *\n   * ```js\n   * app.clear();\n   * ```\n   * @api public\n   */\n\n  Cache.prototype.clear = function() {\n    if (prop) {\n      this[prop] = {};\n    }\n  };\n\n  /**\n   * Visit `method` over the properties in the given object, or map\n   * visit over the object-elements in an array.\n   *\n   * @name .visit\n   * @param {String} `method` The name of the `base` method to call.\n   * @param {Object|Array} `val` The object or array to iterate over.\n   * @return {Object} Returns the instance for chaining.\n   * @api public\n   */\n\n  Cache.prototype.visit = function(method, val) {\n    visit(this, method, val);\n    return this;\n  };\n\n  return Cache;\n}\n\n/**\n * Cast val to an array\n */\n\nfunction arrayify(val) {\n  return val ? (Array.isArray(val) ? val : [val]) : [];\n}\n\n/**\n * Expose `Cache`\n */\n\nmodule.exports = namespace();\n\n/**\n * Expose `Cache.namespace`\n */\n\nmodule.exports.namespace = namespace;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/cache-base/index.js?");

/***/ }),

/***/ "./node_modules/class-utils/index.js":
/*!*******************************************!*\
  !*** ./node_modules/class-utils/index.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar util = __webpack_require__(/*! util */ \"util\");\nvar union = __webpack_require__(/*! arr-union */ \"./node_modules/arr-union/index.js\");\nvar define = __webpack_require__(/*! define-property */ \"./node_modules/define-property/index.js\");\nvar staticExtend = __webpack_require__(/*! static-extend */ \"./node_modules/static-extend/index.js\");\nvar isObj = __webpack_require__(/*! isobject */ \"./node_modules/isobject/index.js\");\n\n/**\n * Expose class utils\n */\n\nvar cu = module.exports;\n\n/**\n * Expose class utils: `cu`\n */\n\ncu.isObject = function isObject(val) {\n  return isObj(val) || typeof val === 'function';\n};\n\n/**\n * Returns true if an array has any of the given elements, or an\n * object has any of the give keys.\n *\n * ```js\n * cu.has(['a', 'b', 'c'], 'c');\n * //=> true\n *\n * cu.has(['a', 'b', 'c'], ['c', 'z']);\n * //=> true\n *\n * cu.has({a: 'b', c: 'd'}, ['c', 'z']);\n * //=> true\n * ```\n * @param {Object} `obj`\n * @param {String|Array} `val`\n * @return {Boolean}\n * @api public\n */\n\ncu.has = function has(obj, val) {\n  val = cu.arrayify(val);\n  var len = val.length;\n\n  if (cu.isObject(obj)) {\n    for (var key in obj) {\n      if (val.indexOf(key) > -1) {\n        return true;\n      }\n    }\n\n    var keys = cu.nativeKeys(obj);\n    return cu.has(keys, val);\n  }\n\n  if (Array.isArray(obj)) {\n    var arr = obj;\n    while (len--) {\n      if (arr.indexOf(val[len]) > -1) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  throw new TypeError('expected an array or object.');\n};\n\n/**\n * Returns true if an array or object has all of the given values.\n *\n * ```js\n * cu.hasAll(['a', 'b', 'c'], 'c');\n * //=> true\n *\n * cu.hasAll(['a', 'b', 'c'], ['c', 'z']);\n * //=> false\n *\n * cu.hasAll({a: 'b', c: 'd'}, ['c', 'z']);\n * //=> false\n * ```\n * @param {Object|Array} `val`\n * @param {String|Array} `values`\n * @return {Boolean}\n * @api public\n */\n\ncu.hasAll = function hasAll(val, values) {\n  values = cu.arrayify(values);\n  var len = values.length;\n  while (len--) {\n    if (!cu.has(val, values[len])) {\n      return false;\n    }\n  }\n  return true;\n};\n\n/**\n * Cast the given value to an array.\n *\n * ```js\n * cu.arrayify('foo');\n * //=> ['foo']\n *\n * cu.arrayify(['foo']);\n * //=> ['foo']\n * ```\n *\n * @param {String|Array} `val`\n * @return {Array}\n * @api public\n */\n\ncu.arrayify = function arrayify(val) {\n  return val ? (Array.isArray(val) ? val : [val]) : [];\n};\n\n/**\n * Noop\n */\n\ncu.noop = function noop() {\n  return;\n};\n\n/**\n * Returns the first argument passed to the function.\n */\n\ncu.identity = function identity(val) {\n  return val;\n};\n\n/**\n * Returns true if a value has a `contructor`\n *\n * ```js\n * cu.hasConstructor({});\n * //=> true\n *\n * cu.hasConstructor(Object.create(null));\n * //=> false\n * ```\n * @param  {Object} `value`\n * @return {Boolean}\n * @api public\n */\n\ncu.hasConstructor = function hasConstructor(val) {\n  return cu.isObject(val) && typeof val.constructor !== 'undefined';\n};\n\n/**\n * Get the native `ownPropertyNames` from the constructor of the\n * given `object`. An empty array is returned if the object does\n * not have a constructor.\n *\n * ```js\n * cu.nativeKeys({a: 'b', b: 'c', c: 'd'})\n * //=> ['a', 'b', 'c']\n *\n * cu.nativeKeys(function(){})\n * //=> ['length', 'caller']\n * ```\n *\n * @param  {Object} `obj` Object that has a `constructor`.\n * @return {Array} Array of keys.\n * @api public\n */\n\ncu.nativeKeys = function nativeKeys(val) {\n  if (!cu.hasConstructor(val)) return [];\n  var keys = Object.getOwnPropertyNames(val);\n  if ('caller' in val) keys.push('caller');\n  return keys;\n};\n\n/**\n * Returns property descriptor `key` if it's an \"own\" property\n * of the given object.\n *\n * ```js\n * function App() {}\n * Object.defineProperty(App.prototype, 'count', {\n *   get: function() {\n *     return Object.keys(this).length;\n *   }\n * });\n * cu.getDescriptor(App.prototype, 'count');\n * // returns:\n * // {\n * //   get: [Function],\n * //   set: undefined,\n * //   enumerable: false,\n * //   configurable: false\n * // }\n * ```\n *\n * @param {Object} `obj`\n * @param {String} `key`\n * @return {Object} Returns descriptor `key`\n * @api public\n */\n\ncu.getDescriptor = function getDescriptor(obj, key) {\n  if (!cu.isObject(obj)) {\n    throw new TypeError('expected an object.');\n  }\n  if (typeof key !== 'string') {\n    throw new TypeError('expected key to be a string.');\n  }\n  return Object.getOwnPropertyDescriptor(obj, key);\n};\n\n/**\n * Copy a descriptor from one object to another.\n *\n * ```js\n * function App() {}\n * Object.defineProperty(App.prototype, 'count', {\n *   get: function() {\n *     return Object.keys(this).length;\n *   }\n * });\n * var obj = {};\n * cu.copyDescriptor(obj, App.prototype, 'count');\n * ```\n * @param {Object} `receiver`\n * @param {Object} `provider`\n * @param {String} `name`\n * @return {Object}\n * @api public\n */\n\ncu.copyDescriptor = function copyDescriptor(receiver, provider, name) {\n  if (!cu.isObject(receiver)) {\n    throw new TypeError('expected receiving object to be an object.');\n  }\n  if (!cu.isObject(provider)) {\n    throw new TypeError('expected providing object to be an object.');\n  }\n  if (typeof name !== 'string') {\n    throw new TypeError('expected name to be a string.');\n  }\n\n  var val = cu.getDescriptor(provider, name);\n  if (val) Object.defineProperty(receiver, name, val);\n};\n\n/**\n * Copy static properties, prototype properties, and descriptors\n * from one object to another.\n *\n * @param {Object} `receiver`\n * @param {Object} `provider`\n * @param {String|Array} `omit` One or more properties to omit\n * @return {Object}\n * @api public\n */\n\ncu.copy = function copy(receiver, provider, omit) {\n  if (!cu.isObject(receiver)) {\n    throw new TypeError('expected receiving object to be an object.');\n  }\n  if (!cu.isObject(provider)) {\n    throw new TypeError('expected providing object to be an object.');\n  }\n  var props = Object.getOwnPropertyNames(provider);\n  var keys = Object.keys(provider);\n  var len = props.length,\n    key;\n  omit = cu.arrayify(omit);\n\n  while (len--) {\n    key = props[len];\n\n    if (cu.has(keys, key)) {\n      define(receiver, key, provider[key]);\n    } else if (!(key in receiver) && !cu.has(omit, key)) {\n      cu.copyDescriptor(receiver, provider, key);\n    }\n  }\n};\n\n/**\n * Inherit the static properties, prototype properties, and descriptors\n * from of an object.\n *\n * @param {Object} `receiver`\n * @param {Object} `provider`\n * @param {String|Array} `omit` One or more properties to omit\n * @return {Object}\n * @api public\n */\n\ncu.inherit = function inherit(receiver, provider, omit) {\n  if (!cu.isObject(receiver)) {\n    throw new TypeError('expected receiving object to be an object.');\n  }\n  if (!cu.isObject(provider)) {\n    throw new TypeError('expected providing object to be an object.');\n  }\n\n  var keys = [];\n  for (var key in provider) {\n    keys.push(key);\n    receiver[key] = provider[key];\n  }\n\n  keys = keys.concat(cu.arrayify(omit));\n\n  var a = provider.prototype || provider;\n  var b = receiver.prototype || receiver;\n  cu.copy(b, a, keys);\n};\n\n/**\n * Returns a function for extending the static properties,\n * prototype properties, and descriptors from the `Parent`\n * constructor onto `Child` constructors.\n *\n * ```js\n * var extend = cu.extend(Parent);\n * Parent.extend(Child);\n *\n * // optional methods\n * Parent.extend(Child, {\n *   foo: function() {},\n *   bar: function() {}\n * });\n * ```\n * @param {Function} `Parent` Parent ctor\n * @param {Function} `extend` Optional extend function to handle custom extensions. Useful when updating methods that require a specific prototype.\n *   @param {Function} `Child` Child ctor\n *   @param {Object} `proto` Optionally pass additional prototype properties to inherit.\n *   @return {Object}\n * @api public\n */\n\ncu.extend = function() {\n  // keep it lazy, instead of assigning to `cu.extend`\n  return staticExtend.apply(null, arguments);\n};\n\n/**\n * Bubble up events emitted from static methods on the Parent ctor.\n *\n * @param {Object} `Parent`\n * @param {Array} `events` Event names to bubble up\n * @api public\n */\n\ncu.bubble = function(Parent, events) {\n  events = events || [];\n  Parent.bubble = function(Child, arr) {\n    if (Array.isArray(arr)) {\n      events = union([], events, arr);\n    }\n    var len = events.length;\n    var idx = -1;\n    while (++idx < len) {\n      var name = events[idx];\n      Parent.on(name, Child.emit.bind(Child, name));\n    }\n    cu.bubble(Child, events);\n  };\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/class-utils/index.js?");

/***/ }),

/***/ "./node_modules/collection-visit/index.js":
/*!************************************************!*\
  !*** ./node_modules/collection-visit/index.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * collection-visit <https://github.com/jonschlinkert/collection-visit>\n *\n * Copyright (c) 2015, 2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar visit = __webpack_require__(/*! object-visit */ \"./node_modules/object-visit/index.js\");\nvar mapVisit = __webpack_require__(/*! map-visit */ \"./node_modules/map-visit/index.js\");\n\nmodule.exports = function(collection, method, val) {\n  var result;\n\n  if (typeof val === 'string' && (method in collection)) {\n    var args = [].slice.call(arguments, 2);\n    result = collection[method].apply(collection, args);\n  } else if (Array.isArray(val)) {\n    result = mapVisit.apply(null, arguments);\n  } else {\n    result = visit.apply(null, arguments);\n  }\n\n  if (typeof result !== 'undefined') {\n    return result;\n  }\n\n  return collection;\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/collection-visit/index.js?");

/***/ }),

/***/ "./node_modules/component-emitter/index.js":
/*!*************************************************!*\
  !*** ./node_modules/component-emitter/index.js ***!
  \*************************************************/
/***/ ((module) => {

eval("\r\n/**\r\n * Expose `Emitter`.\r\n */\r\n\r\nif (true) {\r\n  module.exports = Emitter;\r\n}\r\n\r\n/**\r\n * Initialize a new `Emitter`.\r\n *\r\n * @api public\r\n */\r\n\r\nfunction Emitter(obj) {\r\n  if (obj) return mixin(obj);\r\n};\r\n\r\n/**\r\n * Mixin the emitter properties.\r\n *\r\n * @param {Object} obj\r\n * @return {Object}\r\n * @api private\r\n */\r\n\r\nfunction mixin(obj) {\r\n  for (var key in Emitter.prototype) {\r\n    obj[key] = Emitter.prototype[key];\r\n  }\r\n  return obj;\r\n}\r\n\r\n/**\r\n * Listen on the given `event` with `fn`.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.on =\r\nEmitter.prototype.addEventListener = function(event, fn){\r\n  this._callbacks = this._callbacks || {};\r\n  (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\r\n    .push(fn);\r\n  return this;\r\n};\r\n\r\n/**\r\n * Adds an `event` listener that will be invoked a single\r\n * time then automatically removed.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.once = function(event, fn){\r\n  function on() {\r\n    this.off(event, on);\r\n    fn.apply(this, arguments);\r\n  }\r\n\r\n  on.fn = fn;\r\n  this.on(event, on);\r\n  return this;\r\n};\r\n\r\n/**\r\n * Remove the given callback for `event` or all\r\n * registered callbacks.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.off =\r\nEmitter.prototype.removeListener =\r\nEmitter.prototype.removeAllListeners =\r\nEmitter.prototype.removeEventListener = function(event, fn){\r\n  this._callbacks = this._callbacks || {};\r\n\r\n  // all\r\n  if (0 == arguments.length) {\r\n    this._callbacks = {};\r\n    return this;\r\n  }\r\n\r\n  // specific event\r\n  var callbacks = this._callbacks['$' + event];\r\n  if (!callbacks) return this;\r\n\r\n  // remove all handlers\r\n  if (1 == arguments.length) {\r\n    delete this._callbacks['$' + event];\r\n    return this;\r\n  }\r\n\r\n  // remove specific handler\r\n  var cb;\r\n  for (var i = 0; i < callbacks.length; i++) {\r\n    cb = callbacks[i];\r\n    if (cb === fn || cb.fn === fn) {\r\n      callbacks.splice(i, 1);\r\n      break;\r\n    }\r\n  }\r\n\r\n  // Remove event specific arrays for event types that no\r\n  // one is subscribed for to avoid memory leak.\r\n  if (callbacks.length === 0) {\r\n    delete this._callbacks['$' + event];\r\n  }\r\n\r\n  return this;\r\n};\r\n\r\n/**\r\n * Emit `event` with the given args.\r\n *\r\n * @param {String} event\r\n * @param {Mixed} ...\r\n * @return {Emitter}\r\n */\r\n\r\nEmitter.prototype.emit = function(event){\r\n  this._callbacks = this._callbacks || {};\r\n\r\n  var args = new Array(arguments.length - 1)\r\n    , callbacks = this._callbacks['$' + event];\r\n\r\n  for (var i = 1; i < arguments.length; i++) {\r\n    args[i - 1] = arguments[i];\r\n  }\r\n\r\n  if (callbacks) {\r\n    callbacks = callbacks.slice(0);\r\n    for (var i = 0, len = callbacks.length; i < len; ++i) {\r\n      callbacks[i].apply(this, args);\r\n    }\r\n  }\r\n\r\n  return this;\r\n};\r\n\r\n/**\r\n * Return array of callbacks for `event`.\r\n *\r\n * @param {String} event\r\n * @return {Array}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.listeners = function(event){\r\n  this._callbacks = this._callbacks || {};\r\n  return this._callbacks['$' + event] || [];\r\n};\r\n\r\n/**\r\n * Check if this emitter has `event` handlers.\r\n *\r\n * @param {String} event\r\n * @return {Boolean}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.hasListeners = function(event){\r\n  return !! this.listeners(event).length;\r\n};\r\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/component-emitter/index.js?");

/***/ }),

/***/ "./node_modules/copy-descriptor/index.js":
/*!***********************************************!*\
  !*** ./node_modules/copy-descriptor/index.js ***!
  \***********************************************/
/***/ ((module) => {

"use strict";
eval("/*!\n * copy-descriptor <https://github.com/jonschlinkert/copy-descriptor>\n *\n * Copyright (c) 2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n\n\n/**\n * Copy a descriptor from one object to another.\n *\n * ```js\n * function App() {\n *   this.cache = {};\n * }\n * App.prototype.set = function(key, val) {\n *   this.cache[key] = val;\n *   return this;\n * };\n * Object.defineProperty(App.prototype, 'count', {\n *   get: function() {\n *     return Object.keys(this.cache).length;\n *   }\n * });\n *\n * copy(App.prototype, 'count', 'len');\n *\n * // create an instance\n * var app = new App();\n *\n * app.set('a', true);\n * app.set('b', true);\n * app.set('c', true);\n *\n * console.log(app.count);\n * //=> 3\n * console.log(app.len);\n * //=> 3\n * ```\n * @name copy\n * @param {Object} `receiver` The target object\n * @param {Object} `provider` The provider object\n * @param {String} `from` The key to copy on provider.\n * @param {String} `to` Optionally specify a new key name to use.\n * @return {Object}\n * @api public\n */\n\nmodule.exports = function copyDescriptor(receiver, provider, from, to) {\n  if (!isObject(provider) && typeof provider !== 'function') {\n    to = from;\n    from = provider;\n    provider = receiver;\n  }\n  if (!isObject(receiver) && typeof receiver !== 'function') {\n    throw new TypeError('expected the first argument to be an object');\n  }\n  if (!isObject(provider) && typeof provider !== 'function') {\n    throw new TypeError('expected provider to be an object');\n  }\n\n  if (typeof to !== 'string') {\n    to = from;\n  }\n  if (typeof from !== 'string') {\n    throw new TypeError('expected key to be a string');\n  }\n\n  if (!(from in provider)) {\n    throw new Error('property \"' + from + '\" does not exist');\n  }\n\n  var val = Object.getOwnPropertyDescriptor(provider, from);\n  if (val) Object.defineProperty(receiver, to, val);\n};\n\nfunction isObject(val) {\n  return {}.toString.call(val) === '[object Object]';\n}\n\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/copy-descriptor/index.js?");

/***/ }),

/***/ "./node_modules/core-util-is/lib/util.js":
/*!***********************************************!*\
  !*** ./node_modules/core-util-is/lib/util.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n  if (Array.isArray) {\n    return Array.isArray(arg);\n  }\n  return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n  return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n  return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n  return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n  return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n  return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n  return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n  return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n  return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n  return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n  return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n  return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n  return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n  return arg === null ||\n         typeof arg === 'boolean' ||\n         typeof arg === 'number' ||\n         typeof arg === 'string' ||\n         typeof arg === 'symbol' ||  // ES6 symbol\n         typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = __webpack_require__(/*! buffer */ \"buffer\").Buffer.isBuffer;\n\nfunction objectToString(o) {\n  return Object.prototype.toString.call(o);\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/core-util-is/lib/util.js?");

/***/ }),

/***/ "./node_modules/debug/src/browser.js":
/*!*******************************************!*\
  !*** ./node_modules/debug/src/browser.js ***!
  \*******************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = __webpack_require__(/*! ./debug */ \"./node_modules/debug/src/debug.js\");\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n               && 'undefined' != typeof chrome.storage\n                  ? chrome.storage.local\n                  : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n  'lightseagreen',\n  'forestgreen',\n  'goldenrod',\n  'dodgerblue',\n  'darkorchid',\n  'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n  // NB: In an Electron preload script, document will be defined but not fully\n  // initialized. Since we know we're in Chrome, we'll just detect this case\n  // explicitly\n  if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n    return true;\n  }\n\n  // is webkit? http://stackoverflow.com/a/16459606/376773\n  // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n  return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n    // is firebug? http://stackoverflow.com/a/398120/376773\n    (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n    // is firefox >= v31?\n    // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n    (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n    // double check webkit in userAgent just in case we are in a worker\n    (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n  try {\n    return JSON.stringify(v);\n  } catch (err) {\n    return '[UnexpectedJSONParseError]: ' + err.message;\n  }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n  var useColors = this.useColors;\n\n  args[0] = (useColors ? '%c' : '')\n    + this.namespace\n    + (useColors ? ' %c' : ' ')\n    + args[0]\n    + (useColors ? '%c ' : ' ')\n    + '+' + exports.humanize(this.diff);\n\n  if (!useColors) return;\n\n  var c = 'color: ' + this.color;\n  args.splice(1, 0, c, 'color: inherit')\n\n  // the final \"%c\" is somewhat tricky, because there could be other\n  // arguments passed either before or after the %c, so we need to\n  // figure out the correct index to insert the CSS into\n  var index = 0;\n  var lastC = 0;\n  args[0].replace(/%[a-zA-Z%]/g, function(match) {\n    if ('%%' === match) return;\n    index++;\n    if ('%c' === match) {\n      // we only are interested in the *last* %c\n      // (the user may have provided their own)\n      lastC = index;\n    }\n  });\n\n  args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n  // this hackery is required for IE8/9, where\n  // the `console.log` function doesn't have 'apply'\n  return 'object' === typeof console\n    && console.log\n    && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n  try {\n    if (null == namespaces) {\n      exports.storage.removeItem('debug');\n    } else {\n      exports.storage.debug = namespaces;\n    }\n  } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n  var r;\n  try {\n    r = exports.storage.debug;\n  } catch(e) {}\n\n  // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n  if (!r && typeof process !== 'undefined' && 'env' in process) {\n    r = process.env.DEBUG;\n  }\n\n  return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n  try {\n    return window.localStorage;\n  } catch (e) {}\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/debug/src/browser.js?");

/***/ }),

/***/ "./node_modules/debug/src/debug.js":
/*!*****************************************!*\
  !*** ./node_modules/debug/src/debug.js ***!
  \*****************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = __webpack_require__(/*! ms */ \"./node_modules/ms/index.js\");\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n  var hash = 0, i;\n\n  for (i in namespace) {\n    hash  = ((hash << 5) - hash) + namespace.charCodeAt(i);\n    hash |= 0; // Convert to 32bit integer\n  }\n\n  return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n  function debug() {\n    // disabled?\n    if (!debug.enabled) return;\n\n    var self = debug;\n\n    // set `diff` timestamp\n    var curr = +new Date();\n    var ms = curr - (prevTime || curr);\n    self.diff = ms;\n    self.prev = prevTime;\n    self.curr = curr;\n    prevTime = curr;\n\n    // turn the `arguments` into a proper Array\n    var args = new Array(arguments.length);\n    for (var i = 0; i < args.length; i++) {\n      args[i] = arguments[i];\n    }\n\n    args[0] = exports.coerce(args[0]);\n\n    if ('string' !== typeof args[0]) {\n      // anything else let's inspect with %O\n      args.unshift('%O');\n    }\n\n    // apply any `formatters` transformations\n    var index = 0;\n    args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n      // if we encounter an escaped % then don't increase the array index\n      if (match === '%%') return match;\n      index++;\n      var formatter = exports.formatters[format];\n      if ('function' === typeof formatter) {\n        var val = args[index];\n        match = formatter.call(self, val);\n\n        // now we need to remove `args[index]` since it's inlined in the `format`\n        args.splice(index, 1);\n        index--;\n      }\n      return match;\n    });\n\n    // apply env-specific formatting (colors, etc.)\n    exports.formatArgs.call(self, args);\n\n    var logFn = debug.log || exports.log || console.log.bind(console);\n    logFn.apply(self, args);\n  }\n\n  debug.namespace = namespace;\n  debug.enabled = exports.enabled(namespace);\n  debug.useColors = exports.useColors();\n  debug.color = selectColor(namespace);\n\n  // env-specific initialization logic for debug instances\n  if ('function' === typeof exports.init) {\n    exports.init(debug);\n  }\n\n  return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n  exports.save(namespaces);\n\n  exports.names = [];\n  exports.skips = [];\n\n  var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n  var len = split.length;\n\n  for (var i = 0; i < len; i++) {\n    if (!split[i]) continue; // ignore empty strings\n    namespaces = split[i].replace(/\\*/g, '.*?');\n    if (namespaces[0] === '-') {\n      exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n    } else {\n      exports.names.push(new RegExp('^' + namespaces + '$'));\n    }\n  }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n  exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n  var i, len;\n  for (i = 0, len = exports.skips.length; i < len; i++) {\n    if (exports.skips[i].test(name)) {\n      return false;\n    }\n  }\n  for (i = 0, len = exports.names.length; i < len; i++) {\n    if (exports.names[i].test(name)) {\n      return true;\n    }\n  }\n  return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n  if (val instanceof Error) return val.stack || val.message;\n  return val;\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/debug/src/debug.js?");

/***/ }),

/***/ "./node_modules/debug/src/index.js":
/*!*****************************************!*\
  !*** ./node_modules/debug/src/index.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("/**\n * Detect Electron renderer process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process !== 'undefined' && process.type === 'renderer') {\n  module.exports = __webpack_require__(/*! ./browser.js */ \"./node_modules/debug/src/browser.js\");\n} else {\n  module.exports = __webpack_require__(/*! ./node.js */ \"./node_modules/debug/src/node.js\");\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/debug/src/index.js?");

/***/ }),

/***/ "./node_modules/debug/src/node.js":
/*!****************************************!*\
  !*** ./node_modules/debug/src/node.js ***!
  \****************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("/**\n * Module dependencies.\n */\n\nvar tty = __webpack_require__(/*! tty */ \"tty\");\nvar util = __webpack_require__(/*! util */ \"util\");\n\n/**\n * This is the Node.js implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = __webpack_require__(/*! ./debug */ \"./node_modules/debug/src/debug.js\");\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n *   $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(function (key) {\n  return /^debug_/i.test(key);\n}).reduce(function (obj, key) {\n  // camel-case\n  var prop = key\n    .substring(6)\n    .toLowerCase()\n    .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });\n\n  // coerce string value into JS value\n  var val = process.env[key];\n  if (/^(yes|on|true|enabled)$/i.test(val)) val = true;\n  else if (/^(no|off|false|disabled)$/i.test(val)) val = false;\n  else if (val === 'null') val = null;\n  else val = Number(val);\n\n  obj[prop] = val;\n  return obj;\n}, {});\n\n/**\n * The file descriptor to write the `debug()` calls to.\n * Set the `DEBUG_FD` env variable to override with another value. i.e.:\n *\n *   $ DEBUG_FD=3 node script.js 3>debug.log\n */\n\nvar fd = parseInt(process.env.DEBUG_FD, 10) || 2;\n\nif (1 !== fd && 2 !== fd) {\n  util.deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')()\n}\n\nvar stream = 1 === fd ? process.stdout :\n             2 === fd ? process.stderr :\n             createWritableStdioStream(fd);\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n  return 'colors' in exports.inspectOpts\n    ? Boolean(exports.inspectOpts.colors)\n    : tty.isatty(fd);\n}\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nexports.formatters.o = function(v) {\n  this.inspectOpts.colors = this.useColors;\n  return util.inspect(v, this.inspectOpts)\n    .split('\\n').map(function(str) {\n      return str.trim()\n    }).join(' ');\n};\n\n/**\n * Map %o to `util.inspect()`, allowing multiple lines if needed.\n */\n\nexports.formatters.O = function(v) {\n  this.inspectOpts.colors = this.useColors;\n  return util.inspect(v, this.inspectOpts);\n};\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n  var name = this.namespace;\n  var useColors = this.useColors;\n\n  if (useColors) {\n    var c = this.color;\n    var prefix = '  \\u001b[3' + c + ';1m' + name + ' ' + '\\u001b[0m';\n\n    args[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n    args.push('\\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\\u001b[0m');\n  } else {\n    args[0] = new Date().toUTCString()\n      + ' ' + name + ' ' + args[0];\n  }\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to `stream`.\n */\n\nfunction log() {\n  return stream.write(util.format.apply(util, arguments) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n  if (null == namespaces) {\n    // If you set a process.env field to null or undefined, it gets cast to the\n    // string 'null' or 'undefined'. Just delete instead.\n    delete process.env.DEBUG;\n  } else {\n    process.env.DEBUG = namespaces;\n  }\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n  return process.env.DEBUG;\n}\n\n/**\n * Copied from `node/src/node.js`.\n *\n * XXX: It's lame that node doesn't expose this API out-of-the-box. It also\n * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.\n */\n\nfunction createWritableStdioStream (fd) {\n  var stream;\n  var tty_wrap = process.binding('tty_wrap');\n\n  // Note stream._type is used for test-module-load-list.js\n\n  switch (tty_wrap.guessHandleType(fd)) {\n    case 'TTY':\n      stream = new tty.WriteStream(fd);\n      stream._type = 'tty';\n\n      // Hack to have stream not keep the event loop alive.\n      // See https://github.com/joyent/node/issues/1726\n      if (stream._handle && stream._handle.unref) {\n        stream._handle.unref();\n      }\n      break;\n\n    case 'FILE':\n      var fs = __webpack_require__(/*! fs */ \"fs\");\n      stream = new fs.SyncWriteStream(fd, { autoClose: false });\n      stream._type = 'fs';\n      break;\n\n    case 'PIPE':\n    case 'TCP':\n      var net = __webpack_require__(/*! net */ \"net\");\n      stream = new net.Socket({\n        fd: fd,\n        readable: false,\n        writable: true\n      });\n\n      // FIXME Should probably have an option in net.Socket to create a\n      // stream from an existing fd which is writable only. But for now\n      // we'll just add this hack and set the `readable` member to false.\n      // Test: ./node test/fixtures/echo.js < /etc/passwd\n      stream.readable = false;\n      stream.read = null;\n      stream._type = 'pipe';\n\n      // FIXME Hack to have stream not keep the event loop alive.\n      // See https://github.com/joyent/node/issues/1726\n      if (stream._handle && stream._handle.unref) {\n        stream._handle.unref();\n      }\n      break;\n\n    default:\n      // Probably an error on in uv_guess_handle()\n      throw new Error('Implement me. Unknown stream file type!');\n  }\n\n  // For supporting legacy API we put the FD here.\n  stream.fd = fd;\n\n  stream._isStdio = true;\n\n  return stream;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init (debug) {\n  debug.inspectOpts = {};\n\n  var keys = Object.keys(exports.inspectOpts);\n  for (var i = 0; i < keys.length; i++) {\n    debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n  }\n}\n\n/**\n * Enable namespaces listed in `process.env.DEBUG` initially.\n */\n\nexports.enable(load());\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/debug/src/node.js?");

/***/ }),

/***/ "./node_modules/decode-uri-component/index.js":
/*!****************************************************!*\
  !*** ./node_modules/decode-uri-component/index.js ***!
  \****************************************************/
/***/ ((module) => {

"use strict";
eval("\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/decode-uri-component/index.js?");

/***/ }),

/***/ "./node_modules/define-property/index.js":
/*!***********************************************!*\
  !*** ./node_modules/define-property/index.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * define-property <https://github.com/jonschlinkert/define-property>\n *\n * Copyright (c) 2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n\n\nvar isDescriptor = __webpack_require__(/*! is-descriptor */ \"./node_modules/define-property/node_modules/is-descriptor/index.js\");\n\nmodule.exports = function defineProperty(obj, prop, val) {\n  if (typeof obj !== 'object' && typeof obj !== 'function') {\n    throw new TypeError('expected an object or function.');\n  }\n\n  if (typeof prop !== 'string') {\n    throw new TypeError('expected `prop` to be a string.');\n  }\n\n  if (isDescriptor(val) && ('set' in val || 'get' in val)) {\n    return Object.defineProperty(obj, prop, val);\n  }\n\n  return Object.defineProperty(obj, prop, {\n    configurable: true,\n    enumerable: false,\n    writable: true,\n    value: val\n  });\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/define-property/index.js?");

/***/ }),

/***/ "./node_modules/define-property/node_modules/is-accessor-descriptor/index.js":
/*!***********************************************************************************!*\
  !*** ./node_modules/define-property/node_modules/is-accessor-descriptor/index.js ***!
  \***********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * is-accessor-descriptor <https://github.com/jonschlinkert/is-accessor-descriptor>\n *\n * Copyright (c) 2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n\n\nvar typeOf = __webpack_require__(/*! kind-of */ \"./node_modules/define-property/node_modules/is-accessor-descriptor/node_modules/kind-of/index.js\");\n\n// accessor descriptor properties\nvar accessor = {\n  get: 'function',\n  set: 'function',\n  configurable: 'boolean',\n  enumerable: 'boolean'\n};\n\nfunction isAccessorDescriptor(obj, prop) {\n  if (typeof prop === 'string') {\n    var val = Object.getOwnPropertyDescriptor(obj, prop);\n    return typeof val !== 'undefined';\n  }\n\n  if (typeOf(obj) !== 'object') {\n    return false;\n  }\n\n  if (has(obj, 'value') || has(obj, 'writable')) {\n    return false;\n  }\n\n  if (!has(obj, 'get') || typeof obj.get !== 'function') {\n    return false;\n  }\n\n  // tldr: it's valid to have \"set\" be undefined\n  // \"set\" might be undefined if `Object.getOwnPropertyDescriptor`\n  // was used to get the value, and only `get` was defined by the user\n  if (has(obj, 'set') && typeof obj[key] !== 'function' && typeof obj[key] !== 'undefined') {\n    return false;\n  }\n\n  for (var key in obj) {\n    if (!accessor.hasOwnProperty(key)) {\n      continue;\n    }\n\n    if (typeOf(obj[key]) === accessor[key]) {\n      continue;\n    }\n\n    if (typeof obj[key] !== 'undefined') {\n      return false;\n    }\n  }\n  return true;\n}\n\nfunction has(obj, key) {\n  return {}.hasOwnProperty.call(obj, key);\n}\n\n/**\n * Expose `isAccessorDescriptor`\n */\n\nmodule.exports = isAccessorDescriptor;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/define-property/node_modules/is-accessor-descriptor/index.js?");

/***/ }),

/***/ "./node_modules/define-property/node_modules/is-accessor-descriptor/node_modules/kind-of/index.js":
/*!********************************************************************************************************!*\
  !*** ./node_modules/define-property/node_modules/is-accessor-descriptor/node_modules/kind-of/index.js ***!
  \********************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var isBuffer = __webpack_require__(/*! is-buffer */ \"./node_modules/is-buffer/index.js\");\nvar toString = Object.prototype.toString;\n\n/**\n * Get the native `typeof` a value.\n *\n * @param  {*} `val`\n * @return {*} Native javascript type\n */\n\nmodule.exports = function kindOf(val) {\n  // primitivies\n  if (typeof val === 'undefined') {\n    return 'undefined';\n  }\n  if (val === null) {\n    return 'null';\n  }\n  if (val === true || val === false || val instanceof Boolean) {\n    return 'boolean';\n  }\n  if (typeof val === 'string' || val instanceof String) {\n    return 'string';\n  }\n  if (typeof val === 'number' || val instanceof Number) {\n    return 'number';\n  }\n\n  // functions\n  if (typeof val === 'function' || val instanceof Function) {\n    return 'function';\n  }\n\n  // array\n  if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) {\n    return 'array';\n  }\n\n  // check for instances of RegExp and Date before calling `toString`\n  if (val instanceof RegExp) {\n    return 'regexp';\n  }\n  if (val instanceof Date) {\n    return 'date';\n  }\n\n  // other objects\n  var type = toString.call(val);\n\n  if (type === '[object RegExp]') {\n    return 'regexp';\n  }\n  if (type === '[object Date]') {\n    return 'date';\n  }\n  if (type === '[object Arguments]') {\n    return 'arguments';\n  }\n  if (type === '[object Error]') {\n    return 'error';\n  }\n\n  // buffer\n  if (isBuffer(val)) {\n    return 'buffer';\n  }\n\n  // es6: Map, WeakMap, Set, WeakSet\n  if (type === '[object Set]') {\n    return 'set';\n  }\n  if (type === '[object WeakSet]') {\n    return 'weakset';\n  }\n  if (type === '[object Map]') {\n    return 'map';\n  }\n  if (type === '[object WeakMap]') {\n    return 'weakmap';\n  }\n  if (type === '[object Symbol]') {\n    return 'symbol';\n  }\n\n  // typed arrays\n  if (type === '[object Int8Array]') {\n    return 'int8array';\n  }\n  if (type === '[object Uint8Array]') {\n    return 'uint8array';\n  }\n  if (type === '[object Uint8ClampedArray]') {\n    return 'uint8clampedarray';\n  }\n  if (type === '[object Int16Array]') {\n    return 'int16array';\n  }\n  if (type === '[object Uint16Array]') {\n    return 'uint16array';\n  }\n  if (type === '[object Int32Array]') {\n    return 'int32array';\n  }\n  if (type === '[object Uint32Array]') {\n    return 'uint32array';\n  }\n  if (type === '[object Float32Array]') {\n    return 'float32array';\n  }\n  if (type === '[object Float64Array]') {\n    return 'float64array';\n  }\n\n  // must be a plain object\n  return 'object';\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/define-property/node_modules/is-accessor-descriptor/node_modules/kind-of/index.js?");

/***/ }),

/***/ "./node_modules/define-property/node_modules/is-data-descriptor/index.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/define-property/node_modules/is-data-descriptor/index.js ***!
  \*******************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * is-data-descriptor <https://github.com/jonschlinkert/is-data-descriptor>\n *\n * Copyright (c) 2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n\n\nvar typeOf = __webpack_require__(/*! kind-of */ \"./node_modules/define-property/node_modules/is-data-descriptor/node_modules/kind-of/index.js\");\n\n// data descriptor properties\nvar data = {\n  configurable: 'boolean',\n  enumerable: 'boolean',\n  writable: 'boolean'\n};\n\nfunction isDataDescriptor(obj, prop) {\n  if (typeOf(obj) !== 'object') {\n    return false;\n  }\n\n  if (typeof prop === 'string') {\n    var val = Object.getOwnPropertyDescriptor(obj, prop);\n    return typeof val !== 'undefined';\n  }\n\n  if (!('value' in obj) && !('writable' in obj)) {\n    return false;\n  }\n\n  for (var key in obj) {\n    if (key === 'value') continue;\n\n    if (!data.hasOwnProperty(key)) {\n      continue;\n    }\n\n    if (typeOf(obj[key]) === data[key]) {\n      continue;\n    }\n\n    if (typeof obj[key] !== 'undefined') {\n      return false;\n    }\n  }\n  return true;\n}\n\n/**\n * Expose `isDataDescriptor`\n */\n\nmodule.exports = isDataDescriptor;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/define-property/node_modules/is-data-descriptor/index.js?");

/***/ }),

/***/ "./node_modules/define-property/node_modules/is-data-descriptor/node_modules/kind-of/index.js":
/*!****************************************************************************************************!*\
  !*** ./node_modules/define-property/node_modules/is-data-descriptor/node_modules/kind-of/index.js ***!
  \****************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var isBuffer = __webpack_require__(/*! is-buffer */ \"./node_modules/is-buffer/index.js\");\nvar toString = Object.prototype.toString;\n\n/**\n * Get the native `typeof` a value.\n *\n * @param  {*} `val`\n * @return {*} Native javascript type\n */\n\nmodule.exports = function kindOf(val) {\n  // primitivies\n  if (typeof val === 'undefined') {\n    return 'undefined';\n  }\n  if (val === null) {\n    return 'null';\n  }\n  if (val === true || val === false || val instanceof Boolean) {\n    return 'boolean';\n  }\n  if (typeof val === 'string' || val instanceof String) {\n    return 'string';\n  }\n  if (typeof val === 'number' || val instanceof Number) {\n    return 'number';\n  }\n\n  // functions\n  if (typeof val === 'function' || val instanceof Function) {\n    return 'function';\n  }\n\n  // array\n  if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) {\n    return 'array';\n  }\n\n  // check for instances of RegExp and Date before calling `toString`\n  if (val instanceof RegExp) {\n    return 'regexp';\n  }\n  if (val instanceof Date) {\n    return 'date';\n  }\n\n  // other objects\n  var type = toString.call(val);\n\n  if (type === '[object RegExp]') {\n    return 'regexp';\n  }\n  if (type === '[object Date]') {\n    return 'date';\n  }\n  if (type === '[object Arguments]') {\n    return 'arguments';\n  }\n  if (type === '[object Error]') {\n    return 'error';\n  }\n\n  // buffer\n  if (isBuffer(val)) {\n    return 'buffer';\n  }\n\n  // es6: Map, WeakMap, Set, WeakSet\n  if (type === '[object Set]') {\n    return 'set';\n  }\n  if (type === '[object WeakSet]') {\n    return 'weakset';\n  }\n  if (type === '[object Map]') {\n    return 'map';\n  }\n  if (type === '[object WeakMap]') {\n    return 'weakmap';\n  }\n  if (type === '[object Symbol]') {\n    return 'symbol';\n  }\n\n  // typed arrays\n  if (type === '[object Int8Array]') {\n    return 'int8array';\n  }\n  if (type === '[object Uint8Array]') {\n    return 'uint8array';\n  }\n  if (type === '[object Uint8ClampedArray]') {\n    return 'uint8clampedarray';\n  }\n  if (type === '[object Int16Array]') {\n    return 'int16array';\n  }\n  if (type === '[object Uint16Array]') {\n    return 'uint16array';\n  }\n  if (type === '[object Int32Array]') {\n    return 'int32array';\n  }\n  if (type === '[object Uint32Array]') {\n    return 'uint32array';\n  }\n  if (type === '[object Float32Array]') {\n    return 'float32array';\n  }\n  if (type === '[object Float64Array]') {\n    return 'float64array';\n  }\n\n  // must be a plain object\n  return 'object';\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/define-property/node_modules/is-data-descriptor/node_modules/kind-of/index.js?");

/***/ }),

/***/ "./node_modules/define-property/node_modules/is-descriptor/index.js":
/*!**************************************************************************!*\
  !*** ./node_modules/define-property/node_modules/is-descriptor/index.js ***!
  \**************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * is-descriptor <https://github.com/jonschlinkert/is-descriptor>\n *\n * Copyright (c) 2015-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar typeOf = __webpack_require__(/*! kind-of */ \"./node_modules/define-property/node_modules/kind-of/index.js\");\nvar isAccessor = __webpack_require__(/*! is-accessor-descriptor */ \"./node_modules/define-property/node_modules/is-accessor-descriptor/index.js\");\nvar isData = __webpack_require__(/*! is-data-descriptor */ \"./node_modules/define-property/node_modules/is-data-descriptor/index.js\");\n\nmodule.exports = function isDescriptor(obj, key) {\n  if (typeOf(obj) !== 'object') {\n    return false;\n  }\n  if ('get' in obj) {\n    return isAccessor(obj, key);\n  }\n  return isData(obj, key);\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/define-property/node_modules/is-descriptor/index.js?");

/***/ }),

/***/ "./node_modules/define-property/node_modules/kind-of/index.js":
/*!********************************************************************!*\
  !*** ./node_modules/define-property/node_modules/kind-of/index.js ***!
  \********************************************************************/
/***/ ((module) => {

eval("var toString = Object.prototype.toString;\n\n/**\n * Get the native `typeof` a value.\n *\n * @param  {*} `val`\n * @return {*} Native javascript type\n */\n\nmodule.exports = function kindOf(val) {\n  var type = typeof val;\n\n  // primitivies\n  if (type === 'undefined') {\n    return 'undefined';\n  }\n  if (val === null) {\n    return 'null';\n  }\n  if (val === true || val === false || val instanceof Boolean) {\n    return 'boolean';\n  }\n  if (type === 'string' || val instanceof String) {\n    return 'string';\n  }\n  if (type === 'number' || val instanceof Number) {\n    return 'number';\n  }\n\n  // functions\n  if (type === 'function' || val instanceof Function) {\n    if (typeof val.constructor.name !== 'undefined' && val.constructor.name.slice(0, 9) === 'Generator') {\n      return 'generatorfunction';\n    }\n    return 'function';\n  }\n\n  // array\n  if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) {\n    return 'array';\n  }\n\n  // check for instances of RegExp and Date before calling `toString`\n  if (val instanceof RegExp) {\n    return 'regexp';\n  }\n  if (val instanceof Date) {\n    return 'date';\n  }\n\n  // other objects\n  type = toString.call(val);\n\n  if (type === '[object RegExp]') {\n    return 'regexp';\n  }\n  if (type === '[object Date]') {\n    return 'date';\n  }\n  if (type === '[object Arguments]') {\n    return 'arguments';\n  }\n  if (type === '[object Error]') {\n    return 'error';\n  }\n  if (type === '[object Promise]') {\n    return 'promise';\n  }\n\n  // buffer\n  if (isBuffer(val)) {\n    return 'buffer';\n  }\n\n  // es6: Map, WeakMap, Set, WeakSet\n  if (type === '[object Set]') {\n    return 'set';\n  }\n  if (type === '[object WeakSet]') {\n    return 'weakset';\n  }\n  if (type === '[object Map]') {\n    return 'map';\n  }\n  if (type === '[object WeakMap]') {\n    return 'weakmap';\n  }\n  if (type === '[object Symbol]') {\n    return 'symbol';\n  }\n  \n  if (type === '[object Map Iterator]') {\n    return 'mapiterator';\n  }\n  if (type === '[object Set Iterator]') {\n    return 'setiterator';\n  }\n  if (type === '[object String Iterator]') {\n    return 'stringiterator';\n  }\n  if (type === '[object Array Iterator]') {\n    return 'arrayiterator';\n  }\n  \n  // typed arrays\n  if (type === '[object Int8Array]') {\n    return 'int8array';\n  }\n  if (type === '[object Uint8Array]') {\n    return 'uint8array';\n  }\n  if (type === '[object Uint8ClampedArray]') {\n    return 'uint8clampedarray';\n  }\n  if (type === '[object Int16Array]') {\n    return 'int16array';\n  }\n  if (type === '[object Uint16Array]') {\n    return 'uint16array';\n  }\n  if (type === '[object Int32Array]') {\n    return 'int32array';\n  }\n  if (type === '[object Uint32Array]') {\n    return 'uint32array';\n  }\n  if (type === '[object Float32Array]') {\n    return 'float32array';\n  }\n  if (type === '[object Float64Array]') {\n    return 'float64array';\n  }\n\n  // must be a plain object\n  return 'object';\n};\n\n/**\n * If you need to support Safari 5-7 (8-10 yr-old browser),\n * take a look at https://github.com/feross/is-buffer\n */\n\nfunction isBuffer(val) {\n  return val.constructor\n    && typeof val.constructor.isBuffer === 'function'\n    && val.constructor.isBuffer(val);\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/define-property/node_modules/kind-of/index.js?");

/***/ }),

/***/ "./node_modules/expand-brackets/index.js":
/*!***********************************************!*\
  !*** ./node_modules/expand-brackets/index.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\n/**\n * Local dependencies\n */\n\nvar compilers = __webpack_require__(/*! ./lib/compilers */ \"./node_modules/expand-brackets/lib/compilers.js\");\nvar parsers = __webpack_require__(/*! ./lib/parsers */ \"./node_modules/expand-brackets/lib/parsers.js\");\n\n/**\n * Module dependencies\n */\n\nvar debug = __webpack_require__(/*! debug */ \"./node_modules/debug/src/index.js\")('expand-brackets');\nvar extend = __webpack_require__(/*! extend-shallow */ \"./node_modules/extend-shallow/index.js\");\nvar Snapdragon = __webpack_require__(/*! snapdragon */ \"./node_modules/snapdragon/index.js\");\nvar toRegex = __webpack_require__(/*! to-regex */ \"./node_modules/to-regex/index.js\");\n\n/**\n * Parses the given POSIX character class `pattern` and returns a\n * string that can be used for creating regular expressions for matching.\n *\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object}\n * @api public\n */\n\nfunction brackets(pattern, options) {\n  debug('initializing from <%s>', __filename);\n  var res = brackets.create(pattern, options);\n  return res.output;\n}\n\n/**\n * Takes an array of strings and a POSIX character class pattern, and returns a new\n * array with only the strings that matched the pattern.\n *\n * ```js\n * var brackets = require('expand-brackets');\n * console.log(brackets.match(['1', 'a', 'ab'], '[[:alpha:]]'));\n * //=> ['a']\n *\n * console.log(brackets.match(['1', 'a', 'ab'], '[[:alpha:]]+'));\n * //=> ['a', 'ab']\n * ```\n * @param {Array} `arr` Array of strings to match\n * @param {String} `pattern` POSIX character class pattern(s)\n * @param {Object} `options`\n * @return {Array}\n * @api public\n */\n\nbrackets.match = function(arr, pattern, options) {\n  arr = [].concat(arr);\n  var opts = extend({}, options);\n  var isMatch = brackets.matcher(pattern, opts);\n  var len = arr.length;\n  var idx = -1;\n  var res = [];\n\n  while (++idx < len) {\n    var ele = arr[idx];\n    if (isMatch(ele)) {\n      res.push(ele);\n    }\n  }\n\n  if (res.length === 0) {\n    if (opts.failglob === true) {\n      throw new Error('no matches found for \"' + pattern + '\"');\n    }\n\n    if (opts.nonull === true || opts.nullglob === true) {\n      return [pattern.split('\\\\').join('')];\n    }\n  }\n  return res;\n};\n\n/**\n * Returns true if the specified `string` matches the given\n * brackets `pattern`.\n *\n * ```js\n * var brackets = require('expand-brackets');\n *\n * console.log(brackets.isMatch('a.a', '[[:alpha:]].[[:alpha:]]'));\n * //=> true\n * console.log(brackets.isMatch('1.2', '[[:alpha:]].[[:alpha:]]'));\n * //=> false\n * ```\n * @param {String} `string` String to match\n * @param {String} `pattern` Poxis pattern\n * @param {String} `options`\n * @return {Boolean}\n * @api public\n */\n\nbrackets.isMatch = function(str, pattern, options) {\n  return brackets.matcher(pattern, options)(str);\n};\n\n/**\n * Takes a POSIX character class pattern and returns a matcher function. The returned\n * function takes the string to match as its only argument.\n *\n * ```js\n * var brackets = require('expand-brackets');\n * var isMatch = brackets.matcher('[[:lower:]].[[:upper:]]');\n *\n * console.log(isMatch('a.a'));\n * //=> false\n * console.log(isMatch('a.A'));\n * //=> true\n * ```\n * @param {String} `pattern` Poxis pattern\n * @param {String} `options`\n * @return {Boolean}\n * @api public\n */\n\nbrackets.matcher = function(pattern, options) {\n  var re = brackets.makeRe(pattern, options);\n  return function(str) {\n    return re.test(str);\n  };\n};\n\n/**\n * Create a regular expression from the given `pattern`.\n *\n * ```js\n * var brackets = require('expand-brackets');\n * var re = brackets.makeRe('[[:alpha:]]');\n * console.log(re);\n * //=> /^(?:[a-zA-Z])$/\n * ```\n * @param {String} `pattern` The pattern to convert to regex.\n * @param {Object} `options`\n * @return {RegExp}\n * @api public\n */\n\nbrackets.makeRe = function(pattern, options) {\n  var res = brackets.create(pattern, options);\n  var opts = extend({strictErrors: false}, options);\n  return toRegex(res.output, opts);\n};\n\n/**\n * Parses the given POSIX character class `pattern` and returns an object\n * with the compiled `output` and optional source `map`.\n *\n * ```js\n * var brackets = require('expand-brackets');\n * console.log(brackets('[[:alpha:]]'));\n * // { options: { source: 'string' },\n * //   input: '[[:alpha:]]',\n * //   state: {},\n * //   compilers:\n * //    { eos: [Function],\n * //      noop: [Function],\n * //      bos: [Function],\n * //      not: [Function],\n * //      escape: [Function],\n * //      text: [Function],\n * //      posix: [Function],\n * //      bracket: [Function],\n * //      'bracket.open': [Function],\n * //      'bracket.inner': [Function],\n * //      'bracket.literal': [Function],\n * //      'bracket.close': [Function] },\n * //   output: '[a-zA-Z]',\n * //   ast:\n * //    { type: 'root',\n * //      errors: [],\n * //      nodes: [ [Object], [Object], [Object] ] },\n * //   parsingErrors: [] }\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object}\n * @api public\n */\n\nbrackets.create = function(pattern, options) {\n  var snapdragon = (options && options.snapdragon) || new Snapdragon(options);\n  compilers(snapdragon);\n  parsers(snapdragon);\n\n  var ast = snapdragon.parse(pattern, options);\n  ast.input = pattern;\n  var res = snapdragon.compile(ast, options);\n  res.input = pattern;\n  return res;\n};\n\n/**\n * Expose `brackets` constructor, parsers and compilers\n */\n\nbrackets.compilers = compilers;\nbrackets.parsers = parsers;\n\n/**\n * Expose `brackets`\n * @type {Function}\n */\n\nmodule.exports = brackets;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/expand-brackets/index.js?");

/***/ }),

/***/ "./node_modules/expand-brackets/lib/compilers.js":
/*!*******************************************************!*\
  !*** ./node_modules/expand-brackets/lib/compilers.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar posix = __webpack_require__(/*! posix-character-classes */ \"./node_modules/posix-character-classes/index.js\");\n\nmodule.exports = function(brackets) {\n  brackets.compiler\n\n    /**\n     * Escaped characters\n     */\n\n    .set('escape', function(node) {\n      return this.emit('\\\\' + node.val.replace(/^\\\\/, ''), node);\n    })\n\n    /**\n     * Text\n     */\n\n    .set('text', function(node) {\n      return this.emit(node.val.replace(/([{}])/g, '\\\\$1'), node);\n    })\n\n    /**\n     * POSIX character classes\n     */\n\n    .set('posix', function(node) {\n      if (node.val === '[::]') {\n        return this.emit('\\\\[::\\\\]', node);\n      }\n\n      var val = posix[node.inner];\n      if (typeof val === 'undefined') {\n        val = '[' + node.inner + ']';\n      }\n      return this.emit(val, node);\n    })\n\n    /**\n     * Non-posix brackets\n     */\n\n    .set('bracket', function(node) {\n      return this.mapVisit(node.nodes);\n    })\n    .set('bracket.open', function(node) {\n      return this.emit(node.val, node);\n    })\n    .set('bracket.inner', function(node) {\n      var inner = node.val;\n\n      if (inner === '[' || inner === ']') {\n        return this.emit('\\\\' + node.val, node);\n      }\n      if (inner === '^]') {\n        return this.emit('^\\\\]', node);\n      }\n      if (inner === '^') {\n        return this.emit('^', node);\n      }\n\n      if (/-/.test(inner) && !/(\\d-\\d|\\w-\\w)/.test(inner)) {\n        inner = inner.split('-').join('\\\\-');\n      }\n\n      var isNegated = inner.charAt(0) === '^';\n      // add slashes to negated brackets, per spec\n      if (isNegated && inner.indexOf('/') === -1) {\n        inner += '/';\n      }\n      if (isNegated && inner.indexOf('.') === -1) {\n        inner += '.';\n      }\n\n      // don't unescape `0` (octal literal)\n      inner = inner.replace(/\\\\([1-9])/g, '$1');\n      return this.emit(inner, node);\n    })\n    .set('bracket.close', function(node) {\n      var val = node.val.replace(/^\\\\/, '');\n      if (node.parent.escaped === true) {\n        return this.emit('\\\\' + val, node);\n      }\n      return this.emit(val, node);\n    });\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/expand-brackets/lib/compilers.js?");

/***/ }),

/***/ "./node_modules/expand-brackets/lib/parsers.js":
/*!*****************************************************!*\
  !*** ./node_modules/expand-brackets/lib/parsers.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/expand-brackets/lib/utils.js\");\nvar define = __webpack_require__(/*! define-property */ \"./node_modules/define-property/index.js\");\n\n/**\n * Text regex\n */\n\nvar TEXT_REGEX = '(\\\\[(?=.*\\\\])|\\\\])+';\nvar not = utils.createRegex(TEXT_REGEX);\n\n/**\n * Brackets parsers\n */\n\nfunction parsers(brackets) {\n  brackets.state = brackets.state || {};\n  brackets.parser.sets.bracket = brackets.parser.sets.bracket || [];\n  brackets.parser\n\n    .capture('escape', function() {\n      if (this.isInside('bracket')) return;\n      var pos = this.position();\n      var m = this.match(/^\\\\(.)/);\n      if (!m) return;\n\n      return pos({\n        type: 'escape',\n        val: m[0]\n      });\n    })\n\n    /**\n     * Text parser\n     */\n\n    .capture('text', function() {\n      if (this.isInside('bracket')) return;\n      var pos = this.position();\n      var m = this.match(not);\n      if (!m || !m[0]) return;\n\n      return pos({\n        type: 'text',\n        val: m[0]\n      });\n    })\n\n    /**\n     * POSIX character classes: \"[[:alpha:][:digits:]]\"\n     */\n\n    .capture('posix', function() {\n      var pos = this.position();\n      var m = this.match(/^\\[:(.*?):\\](?=.*\\])/);\n      if (!m) return;\n\n      var inside = this.isInside('bracket');\n      if (inside) {\n        brackets.posix++;\n      }\n\n      return pos({\n        type: 'posix',\n        insideBracket: inside,\n        inner: m[1],\n        val: m[0]\n      });\n    })\n\n    /**\n     * Bracket (noop)\n     */\n\n    .capture('bracket', function() {})\n\n    /**\n     * Open: '['\n     */\n\n    .capture('bracket.open', function() {\n      var parsed = this.parsed;\n      var pos = this.position();\n      var m = this.match(/^\\[(?=.*\\])/);\n      if (!m) return;\n\n      var prev = this.prev();\n      var last = utils.last(prev.nodes);\n\n      if (parsed.slice(-1) === '\\\\' && !this.isInside('bracket')) {\n        last.val = last.val.slice(0, last.val.length - 1);\n        return pos({\n          type: 'escape',\n          val: m[0]\n        });\n      }\n\n      var open = pos({\n        type: 'bracket.open',\n        val: m[0]\n      });\n\n      if (last.type === 'bracket.open' || this.isInside('bracket')) {\n        open.val = '\\\\' + open.val;\n        open.type = 'bracket.inner';\n        open.escaped = true;\n        return open;\n      }\n\n      var node = pos({\n        type: 'bracket',\n        nodes: [open]\n      });\n\n      define(node, 'parent', prev);\n      define(open, 'parent', node);\n      this.push('bracket', node);\n      prev.nodes.push(node);\n    })\n\n    /**\n     * Bracket text\n     */\n\n    .capture('bracket.inner', function() {\n      if (!this.isInside('bracket')) return;\n      var pos = this.position();\n      var m = this.match(not);\n      if (!m || !m[0]) return;\n\n      var next = this.input.charAt(0);\n      var val = m[0];\n\n      var node = pos({\n        type: 'bracket.inner',\n        val: val\n      });\n\n      if (val === '\\\\\\\\') {\n        return node;\n      }\n\n      var first = val.charAt(0);\n      var last = val.slice(-1);\n\n      if (first === '!') {\n        val = '^' + val.slice(1);\n      }\n\n      if (last === '\\\\' || (val === '^' && next === ']')) {\n        val += this.input[0];\n        this.consume(1);\n      }\n\n      node.val = val;\n      return node;\n    })\n\n    /**\n     * Close: ']'\n     */\n\n    .capture('bracket.close', function() {\n      var parsed = this.parsed;\n      var pos = this.position();\n      var m = this.match(/^\\]/);\n      if (!m) return;\n\n      var prev = this.prev();\n      var last = utils.last(prev.nodes);\n\n      if (parsed.slice(-1) === '\\\\' && !this.isInside('bracket')) {\n        last.val = last.val.slice(0, last.val.length - 1);\n\n        return pos({\n          type: 'escape',\n          val: m[0]\n        });\n      }\n\n      var node = pos({\n        type: 'bracket.close',\n        rest: this.input,\n        val: m[0]\n      });\n\n      if (last.type === 'bracket.open') {\n        node.type = 'bracket.inner';\n        node.escaped = true;\n        return node;\n      }\n\n      var bracket = this.pop('bracket');\n      if (!this.isType(bracket, 'bracket')) {\n        if (this.options.strict) {\n          throw new Error('missing opening \"[\"');\n        }\n        node.type = 'bracket.inner';\n        node.escaped = true;\n        return node;\n      }\n\n      bracket.nodes.push(node);\n      define(node, 'parent', bracket);\n    });\n}\n\n/**\n * Brackets parsers\n */\n\nmodule.exports = parsers;\n\n/**\n * Expose text regex\n */\n\nmodule.exports.TEXT_REGEX = TEXT_REGEX;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/expand-brackets/lib/parsers.js?");

/***/ }),

/***/ "./node_modules/expand-brackets/lib/utils.js":
/*!***************************************************!*\
  !*** ./node_modules/expand-brackets/lib/utils.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nvar toRegex = __webpack_require__(/*! to-regex */ \"./node_modules/to-regex/index.js\");\nvar regexNot = __webpack_require__(/*! regex-not */ \"./node_modules/regex-not/index.js\");\nvar cached;\n\n/**\n * Get the last element from `array`\n * @param {Array} `array`\n * @return {*}\n */\n\nexports.last = function(arr) {\n  return arr[arr.length - 1];\n};\n\n/**\n * Create and cache regex to use for text nodes\n */\n\nexports.createRegex = function(pattern, include) {\n  if (cached) return cached;\n  var opts = {contains: true, strictClose: false};\n  var not = regexNot.create(pattern, opts);\n  var re;\n\n  if (typeof include === 'string') {\n    re = toRegex('^(?:' + include + '|' + not + ')', opts);\n  } else {\n    re = toRegex(not, opts);\n  }\n\n  return (cached = re);\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/expand-brackets/lib/utils.js?");

/***/ }),

/***/ "./node_modules/extend-shallow/index.js":
/*!**********************************************!*\
  !*** ./node_modules/extend-shallow/index.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar isObject = __webpack_require__(/*! is-extendable */ \"./node_modules/is-extendable/index.js\");\n\nmodule.exports = function extend(o/*, objects*/) {\n  if (!isObject(o)) { o = {}; }\n\n  var len = arguments.length;\n  for (var i = 1; i < len; i++) {\n    var obj = arguments[i];\n\n    if (isObject(obj)) {\n      assign(o, obj);\n    }\n  }\n  return o;\n};\n\nfunction assign(a, b) {\n  for (var key in b) {\n    if (hasOwn(b, key)) {\n      a[key] = b[key];\n    }\n  }\n}\n\n/**\n * Returns true if the given `key` is an own property of `obj`.\n */\n\nfunction hasOwn(obj, key) {\n  return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/extend-shallow/index.js?");

/***/ }),

/***/ "./node_modules/extglob/index.js":
/*!***************************************!*\
  !*** ./node_modules/extglob/index.js ***!
  \***************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\n/**\n * Module dependencies\n */\n\nvar extend = __webpack_require__(/*! extend-shallow */ \"./node_modules/extend-shallow/index.js\");\nvar unique = __webpack_require__(/*! array-unique */ \"./node_modules/array-unique/index.js\");\nvar toRegex = __webpack_require__(/*! to-regex */ \"./node_modules/to-regex/index.js\");\n\n/**\n * Local dependencies\n */\n\nvar compilers = __webpack_require__(/*! ./lib/compilers */ \"./node_modules/extglob/lib/compilers.js\");\nvar parsers = __webpack_require__(/*! ./lib/parsers */ \"./node_modules/extglob/lib/parsers.js\");\nvar Extglob = __webpack_require__(/*! ./lib/extglob */ \"./node_modules/extglob/lib/extglob.js\");\nvar utils = __webpack_require__(/*! ./lib/utils */ \"./node_modules/extglob/lib/utils.js\");\nvar MAX_LENGTH = 1024 * 64;\n\n/**\n * Convert the given `extglob` pattern into a regex-compatible string. Returns\n * an object with the compiled result and the parsed AST.\n *\n * ```js\n * var extglob = require('extglob');\n * console.log(extglob('*.!(*a)'));\n * //=> '(?!\\\\.)[^/]*?\\\\.(?!(?!\\\\.)[^/]*?a\\\\b).*?'\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {String}\n * @api public\n */\n\nfunction extglob(pattern, options) {\n  return extglob.create(pattern, options).output;\n}\n\n/**\n * Takes an array of strings and an extglob pattern and returns a new\n * array that contains only the strings that match the pattern.\n *\n * ```js\n * var extglob = require('extglob');\n * console.log(extglob.match(['a.a', 'a.b', 'a.c'], '*.!(*a)'));\n * //=> ['a.b', 'a.c']\n * ```\n * @param {Array} `list` Array of strings to match\n * @param {String} `pattern` Extglob pattern\n * @param {Object} `options`\n * @return {Array} Returns an array of matches\n * @api public\n */\n\nextglob.match = function(list, pattern, options) {\n  if (typeof pattern !== 'string') {\n    throw new TypeError('expected pattern to be a string');\n  }\n\n  list = utils.arrayify(list);\n  var isMatch = extglob.matcher(pattern, options);\n  var len = list.length;\n  var idx = -1;\n  var matches = [];\n\n  while (++idx < len) {\n    var ele = list[idx];\n\n    if (isMatch(ele)) {\n      matches.push(ele);\n    }\n  }\n\n  // if no options were passed, uniquify results and return\n  if (typeof options === 'undefined') {\n    return unique(matches);\n  }\n\n  if (matches.length === 0) {\n    if (options.failglob === true) {\n      throw new Error('no matches found for \"' + pattern + '\"');\n    }\n    if (options.nonull === true || options.nullglob === true) {\n      return [pattern.split('\\\\').join('')];\n    }\n  }\n\n  return options.nodupes !== false ? unique(matches) : matches;\n};\n\n/**\n * Returns true if the specified `string` matches the given\n * extglob `pattern`.\n *\n * ```js\n * var extglob = require('extglob');\n *\n * console.log(extglob.isMatch('a.a', '*.!(*a)'));\n * //=> false\n * console.log(extglob.isMatch('a.b', '*.!(*a)'));\n * //=> true\n * ```\n * @param {String} `string` String to match\n * @param {String} `pattern` Extglob pattern\n * @param {String} `options`\n * @return {Boolean}\n * @api public\n */\n\nextglob.isMatch = function(str, pattern, options) {\n  if (typeof pattern !== 'string') {\n    throw new TypeError('expected pattern to be a string');\n  }\n\n  if (typeof str !== 'string') {\n    throw new TypeError('expected a string');\n  }\n\n  if (pattern === str) {\n    return true;\n  }\n\n  if (pattern === '' || pattern === ' ' || pattern === '.') {\n    return pattern === str;\n  }\n\n  var isMatch = utils.memoize('isMatch', pattern, options, extglob.matcher);\n  return isMatch(str);\n};\n\n/**\n * Returns true if the given `string` contains the given pattern. Similar to `.isMatch` but\n * the pattern can match any part of the string.\n *\n * ```js\n * var extglob = require('extglob');\n * console.log(extglob.contains('aa/bb/cc', '*b'));\n * //=> true\n * console.log(extglob.contains('aa/bb/cc', '*d'));\n * //=> false\n * ```\n * @param {String} `str` The string to match.\n * @param {String} `pattern` Glob pattern to use for matching.\n * @param {Object} `options`\n * @return {Boolean} Returns true if the patter matches any part of `str`.\n * @api public\n */\n\nextglob.contains = function(str, pattern, options) {\n  if (typeof str !== 'string') {\n    throw new TypeError('expected a string');\n  }\n\n  if (pattern === '' || pattern === ' ' || pattern === '.') {\n    return pattern === str;\n  }\n\n  var opts = extend({}, options, {contains: true});\n  opts.strictClose = false;\n  opts.strictOpen = false;\n  return extglob.isMatch(str, pattern, opts);\n};\n\n/**\n * Takes an extglob pattern and returns a matcher function. The returned\n * function takes the string to match as its only argument.\n *\n * ```js\n * var extglob = require('extglob');\n * var isMatch = extglob.matcher('*.!(*a)');\n *\n * console.log(isMatch('a.a'));\n * //=> false\n * console.log(isMatch('a.b'));\n * //=> true\n * ```\n * @param {String} `pattern` Extglob pattern\n * @param {String} `options`\n * @return {Boolean}\n * @api public\n */\n\nextglob.matcher = function(pattern, options) {\n  if (typeof pattern !== 'string') {\n    throw new TypeError('expected pattern to be a string');\n  }\n\n  function matcher() {\n    var re = extglob.makeRe(pattern, options);\n    return function(str) {\n      return re.test(str);\n    };\n  }\n\n  return utils.memoize('matcher', pattern, options, matcher);\n};\n\n/**\n * Convert the given `extglob` pattern into a regex-compatible string. Returns\n * an object with the compiled result and the parsed AST.\n *\n * ```js\n * var extglob = require('extglob');\n * console.log(extglob.create('*.!(*a)').output);\n * //=> '(?!\\\\.)[^/]*?\\\\.(?!(?!\\\\.)[^/]*?a\\\\b).*?'\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {String}\n * @api public\n */\n\nextglob.create = function(pattern, options) {\n  if (typeof pattern !== 'string') {\n    throw new TypeError('expected pattern to be a string');\n  }\n\n  function create() {\n    var ext = new Extglob(options);\n    var ast = ext.parse(pattern, options);\n    return ext.compile(ast, options);\n  }\n\n  return utils.memoize('create', pattern, options, create);\n};\n\n/**\n * Returns an array of matches captured by `pattern` in `string`, or `null`\n * if the pattern did not match.\n *\n * ```js\n * var extglob = require('extglob');\n * extglob.capture(pattern, string[, options]);\n *\n * console.log(extglob.capture('test/*.js', 'test/foo.js'));\n * //=> ['foo']\n * console.log(extglob.capture('test/*.js', 'foo/bar.css'));\n * //=> null\n * ```\n * @param {String} `pattern` Glob pattern to use for matching.\n * @param {String} `string` String to match\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns an array of captures if the string matches the glob pattern, otherwise `null`.\n * @api public\n */\n\nextglob.capture = function(pattern, str, options) {\n  var re = extglob.makeRe(pattern, extend({capture: true}, options));\n\n  function match() {\n    return function(string) {\n      var match = re.exec(string);\n      if (!match) {\n        return null;\n      }\n\n      return match.slice(1);\n    };\n  }\n\n  var capture = utils.memoize('capture', pattern, options, match);\n  return capture(str);\n};\n\n/**\n * Create a regular expression from the given `pattern` and `options`.\n *\n * ```js\n * var extglob = require('extglob');\n * var re = extglob.makeRe('*.!(*a)');\n * console.log(re);\n * //=> /^[^\\/]*?\\.(?![^\\/]*?a)[^\\/]*?$/\n * ```\n * @param {String} `pattern` The pattern to convert to regex.\n * @param {Object} `options`\n * @return {RegExp}\n * @api public\n */\n\nextglob.makeRe = function(pattern, options) {\n  if (pattern instanceof RegExp) {\n    return pattern;\n  }\n\n  if (typeof pattern !== 'string') {\n    throw new TypeError('expected pattern to be a string');\n  }\n\n  if (pattern.length > MAX_LENGTH) {\n    throw new Error('expected pattern to be less than ' + MAX_LENGTH + ' characters');\n  }\n\n  function makeRe() {\n    var opts = extend({strictErrors: false}, options);\n    if (opts.strictErrors === true) opts.strict = true;\n    var res = extglob.create(pattern, opts);\n    return toRegex(res.output, opts);\n  }\n\n  var regex = utils.memoize('makeRe', pattern, options, makeRe);\n  if (regex.source.length > MAX_LENGTH) {\n    throw new SyntaxError('potentially malicious regex detected');\n  }\n\n  return regex;\n};\n\n/**\n * Cache\n */\n\nextglob.cache = utils.cache;\nextglob.clearCache = function() {\n  extglob.cache.__data__ = {};\n};\n\n/**\n * Expose `Extglob` constructor, parsers and compilers\n */\n\nextglob.Extglob = Extglob;\nextglob.compilers = compilers;\nextglob.parsers = parsers;\n\n/**\n * Expose `extglob`\n * @type {Function}\n */\n\nmodule.exports = extglob;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/extglob/index.js?");

/***/ }),

/***/ "./node_modules/extglob/lib/compilers.js":
/*!***********************************************!*\
  !*** ./node_modules/extglob/lib/compilers.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar brackets = __webpack_require__(/*! expand-brackets */ \"./node_modules/expand-brackets/index.js\");\n\n/**\n * Extglob compilers\n */\n\nmodule.exports = function(extglob) {\n  function star() {\n    if (typeof extglob.options.star === 'function') {\n      return extglob.options.star.apply(this, arguments);\n    }\n    if (typeof extglob.options.star === 'string') {\n      return extglob.options.star;\n    }\n    return '.*?';\n  }\n\n  /**\n   * Use `expand-brackets` compilers\n   */\n\n  extglob.use(brackets.compilers);\n  extglob.compiler\n\n    /**\n     * Escaped: \"\\\\*\"\n     */\n\n    .set('escape', function(node) {\n      return this.emit(node.val, node);\n    })\n\n    /**\n     * Dot: \".\"\n     */\n\n    .set('dot', function(node) {\n      return this.emit('\\\\' + node.val, node);\n    })\n\n    /**\n     * Question mark: \"?\"\n     */\n\n    .set('qmark', function(node) {\n      var val = '[^\\\\\\\\/.]';\n      var prev = this.prev();\n\n      if (node.parsed.slice(-1) === '(') {\n        var ch = node.rest.charAt(0);\n        if (ch !== '!' && ch !== '=' && ch !== ':') {\n          return this.emit(val, node);\n        }\n        return this.emit(node.val, node);\n      }\n\n      if (prev.type === 'text' && prev.val) {\n        return this.emit(val, node);\n      }\n\n      if (node.val.length > 1) {\n        val += '{' + node.val.length + '}';\n      }\n      return this.emit(val, node);\n    })\n\n    /**\n     * Plus: \"+\"\n     */\n\n    .set('plus', function(node) {\n      var prev = node.parsed.slice(-1);\n      if (prev === ']' || prev === ')') {\n        return this.emit(node.val, node);\n      }\n      var ch = this.output.slice(-1);\n      if (!this.output || (/[?*+]/.test(ch) && node.parent.type !== 'bracket')) {\n        return this.emit('\\\\+', node);\n      }\n      if (/\\w/.test(ch) && !node.inside) {\n        return this.emit('+\\\\+?', node);\n      }\n      return this.emit('+', node);\n    })\n\n    /**\n     * Star: \"*\"\n     */\n\n    .set('star', function(node) {\n      var prev = this.prev();\n      var prefix = prev.type !== 'text' && prev.type !== 'escape'\n        ? '(?!\\\\.)'\n        : '';\n\n      return this.emit(prefix + star.call(this, node), node);\n    })\n\n    /**\n     * Parens\n     */\n\n    .set('paren', function(node) {\n      return this.mapVisit(node.nodes);\n    })\n    .set('paren.open', function(node) {\n      var capture = this.options.capture ? '(' : '';\n\n      switch (node.parent.prefix) {\n        case '!':\n        case '^':\n          return this.emit(capture + '(?:(?!(?:', node);\n        case '*':\n        case '+':\n        case '?':\n        case '@':\n          return this.emit(capture + '(?:', node);\n        default: {\n          var val = node.val;\n          if (this.options.bash === true) {\n            val = '\\\\' + val;\n          } else if (!this.options.capture && val === '(' && node.parent.rest[0] !== '?') {\n            val += '?:';\n          }\n\n          return this.emit(val, node);\n        }\n      }\n    })\n    .set('paren.close', function(node) {\n      var capture = this.options.capture ? ')' : '';\n\n      switch (node.prefix) {\n        case '!':\n        case '^':\n          var prefix = /^(\\)|$)/.test(node.rest) ? '$' : '';\n          var str = star.call(this, node);\n\n          // if the extglob has a slash explicitly defined, we know the user wants\n          // to match slashes, so we need to ensure the \"star\" regex allows for it\n          if (node.parent.hasSlash && !this.options.star && this.options.slash !== false) {\n            str = '.*?';\n          }\n\n          return this.emit(prefix + ('))' + str + ')') + capture, node);\n        case '*':\n        case '+':\n        case '?':\n          return this.emit(')' + node.prefix + capture, node);\n        case '@':\n          return this.emit(')' + capture, node);\n        default: {\n          var val = (this.options.bash === true ? '\\\\' : '') + ')';\n          return this.emit(val, node);\n        }\n      }\n    })\n\n    /**\n     * Text\n     */\n\n    .set('text', function(node) {\n      var val = node.val.replace(/[\\[\\]]/g, '\\\\$&');\n      return this.emit(val, node);\n    });\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/extglob/lib/compilers.js?");

/***/ }),

/***/ "./node_modules/extglob/lib/extglob.js":
/*!*********************************************!*\
  !*** ./node_modules/extglob/lib/extglob.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\n/**\n * Module dependencies\n */\n\nvar Snapdragon = __webpack_require__(/*! snapdragon */ \"./node_modules/snapdragon/index.js\");\nvar define = __webpack_require__(/*! define-property */ \"./node_modules/extglob/node_modules/define-property/index.js\");\nvar extend = __webpack_require__(/*! extend-shallow */ \"./node_modules/extend-shallow/index.js\");\n\n/**\n * Local dependencies\n */\n\nvar compilers = __webpack_require__(/*! ./compilers */ \"./node_modules/extglob/lib/compilers.js\");\nvar parsers = __webpack_require__(/*! ./parsers */ \"./node_modules/extglob/lib/parsers.js\");\n\n/**\n * Customize Snapdragon parser and renderer\n */\n\nfunction Extglob(options) {\n  this.options = extend({source: 'extglob'}, options);\n  this.snapdragon = this.options.snapdragon || new Snapdragon(this.options);\n  this.snapdragon.patterns = this.snapdragon.patterns || {};\n  this.compiler = this.snapdragon.compiler;\n  this.parser = this.snapdragon.parser;\n\n  compilers(this.snapdragon);\n  parsers(this.snapdragon);\n\n  /**\n   * Override Snapdragon `.parse` method\n   */\n\n  define(this.snapdragon, 'parse', function(str, options) {\n    var parsed = Snapdragon.prototype.parse.apply(this, arguments);\n    parsed.input = str;\n\n    // escape unmatched brace/bracket/parens\n    var last = this.parser.stack.pop();\n    if (last && this.options.strict !== true) {\n      var node = last.nodes[0];\n      node.val = '\\\\' + node.val;\n      var sibling = node.parent.nodes[1];\n      if (sibling.type === 'star') {\n        sibling.loose = true;\n      }\n    }\n\n    // add non-enumerable parser reference\n    define(parsed, 'parser', this.parser);\n    return parsed;\n  });\n\n  /**\n   * Decorate `.parse` method\n   */\n\n  define(this, 'parse', function(ast, options) {\n    return this.snapdragon.parse.apply(this.snapdragon, arguments);\n  });\n\n  /**\n   * Decorate `.compile` method\n   */\n\n  define(this, 'compile', function(ast, options) {\n    return this.snapdragon.compile.apply(this.snapdragon, arguments);\n  });\n\n}\n\n/**\n * Expose `Extglob`\n */\n\nmodule.exports = Extglob;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/extglob/lib/extglob.js?");

/***/ }),

/***/ "./node_modules/extglob/lib/parsers.js":
/*!*********************************************!*\
  !*** ./node_modules/extglob/lib/parsers.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar brackets = __webpack_require__(/*! expand-brackets */ \"./node_modules/expand-brackets/index.js\");\nvar define = __webpack_require__(/*! define-property */ \"./node_modules/extglob/node_modules/define-property/index.js\");\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/extglob/lib/utils.js\");\n\n/**\n * Characters to use in text regex (we want to \"not\" match\n * characters that are matched by other parsers)\n */\n\nvar TEXT_REGEX = '([!@*?+]?\\\\(|\\\\)|[*?.+\\\\\\\\]|\\\\[:?(?=.*\\\\])|:?\\\\])+';\nvar not = utils.createRegex(TEXT_REGEX);\n\n/**\n * Extglob parsers\n */\n\nfunction parsers(extglob) {\n  extglob.state = extglob.state || {};\n\n  /**\n   * Use `expand-brackets` parsers\n   */\n\n  extglob.use(brackets.parsers);\n  extglob.parser.sets.paren = extglob.parser.sets.paren || [];\n  extglob.parser\n\n    /**\n     * Extglob open: \"*(\"\n     */\n\n    .capture('paren.open', function() {\n      var parsed = this.parsed;\n      var pos = this.position();\n      var m = this.match(/^([!@*?+])?\\(/);\n      if (!m) return;\n\n      var prev = this.prev();\n      var prefix = m[1];\n      var val = m[0];\n\n      var open = pos({\n        type: 'paren.open',\n        parsed: parsed,\n        val: val\n      });\n\n      var node = pos({\n        type: 'paren',\n        prefix: prefix,\n        nodes: [open]\n      });\n\n      // if nested negation extglobs, just cancel them out to simplify\n      if (prefix === '!' && prev.type === 'paren' && prev.prefix === '!') {\n        prev.prefix = '@';\n        node.prefix = '@';\n      }\n\n      define(node, 'rest', this.input);\n      define(node, 'parsed', parsed);\n      define(node, 'parent', prev);\n      define(open, 'parent', node);\n\n      this.push('paren', node);\n      prev.nodes.push(node);\n    })\n\n    /**\n     * Extglob close: \")\"\n     */\n\n    .capture('paren.close', function() {\n      var parsed = this.parsed;\n      var pos = this.position();\n      var m = this.match(/^\\)/);\n      if (!m) return;\n\n      var parent = this.pop('paren');\n      var node = pos({\n        type: 'paren.close',\n        rest: this.input,\n        parsed: parsed,\n        val: m[0]\n      });\n\n      if (!this.isType(parent, 'paren')) {\n        if (this.options.strict) {\n          throw new Error('missing opening paren: \"(\"');\n        }\n        node.escaped = true;\n        return node;\n      }\n\n      node.prefix = parent.prefix;\n      parent.nodes.push(node);\n      define(node, 'parent', parent);\n    })\n\n    /**\n     * Escape: \"\\\\.\"\n     */\n\n    .capture('escape', function() {\n      var pos = this.position();\n      var m = this.match(/^\\\\(.)/);\n      if (!m) return;\n\n      return pos({\n        type: 'escape',\n        val: m[0],\n        ch: m[1]\n      });\n    })\n\n    /**\n     * Question marks: \"?\"\n     */\n\n    .capture('qmark', function() {\n      var parsed = this.parsed;\n      var pos = this.position();\n      var m = this.match(/^\\?+(?!\\()/);\n      if (!m) return;\n      extglob.state.metachar = true;\n      return pos({\n        type: 'qmark',\n        rest: this.input,\n        parsed: parsed,\n        val: m[0]\n      });\n    })\n\n    /**\n     * Character parsers\n     */\n\n    .capture('star', /^\\*(?!\\()/)\n    .capture('plus', /^\\+(?!\\()/)\n    .capture('dot', /^\\./)\n    .capture('text', not);\n};\n\n/**\n * Expose text regex string\n */\n\nmodule.exports.TEXT_REGEX = TEXT_REGEX;\n\n/**\n * Extglob parsers\n */\n\nmodule.exports = parsers;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/extglob/lib/parsers.js?");

/***/ }),

/***/ "./node_modules/extglob/lib/utils.js":
/*!*******************************************!*\
  !*** ./node_modules/extglob/lib/utils.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar regex = __webpack_require__(/*! regex-not */ \"./node_modules/regex-not/index.js\");\nvar Cache = __webpack_require__(/*! fragment-cache */ \"./node_modules/fragment-cache/index.js\");\n\n/**\n * Utils\n */\n\nvar utils = module.exports;\nvar cache = utils.cache = new Cache();\n\n/**\n * Cast `val` to an array\n * @return {Array}\n */\n\nutils.arrayify = function(val) {\n  if (!Array.isArray(val)) {\n    return [val];\n  }\n  return val;\n};\n\n/**\n * Memoize a generated regex or function\n */\n\nutils.memoize = function(type, pattern, options, fn) {\n  var key = utils.createKey(type + pattern, options);\n\n  if (cache.has(type, key)) {\n    return cache.get(type, key);\n  }\n\n  var val = fn(pattern, options);\n  if (options && options.cache === false) {\n    return val;\n  }\n\n  cache.set(type, key, val);\n  return val;\n};\n\n/**\n * Create the key to use for memoization. The key is generated\n * by iterating over the options and concatenating key-value pairs\n * to the pattern string.\n */\n\nutils.createKey = function(pattern, options) {\n  var key = pattern;\n  if (typeof options === 'undefined') {\n    return key;\n  }\n  for (var prop in options) {\n    key += ';' + prop + '=' + String(options[prop]);\n  }\n  return key;\n};\n\n/**\n * Create the regex to use for matching text\n */\n\nutils.createRegex = function(str) {\n  var opts = {contains: true, strictClose: false};\n  return regex(str, opts);\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/extglob/lib/utils.js?");

/***/ }),

/***/ "./node_modules/extglob/node_modules/define-property/index.js":
/*!********************************************************************!*\
  !*** ./node_modules/extglob/node_modules/define-property/index.js ***!
  \********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * define-property <https://github.com/jonschlinkert/define-property>\n *\n * Copyright (c) 2015, 2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar isDescriptor = __webpack_require__(/*! is-descriptor */ \"./node_modules/is-descriptor/index.js\");\n\nmodule.exports = function defineProperty(obj, prop, val) {\n  if (typeof obj !== 'object' && typeof obj !== 'function') {\n    throw new TypeError('expected an object or function.');\n  }\n\n  if (typeof prop !== 'string') {\n    throw new TypeError('expected `prop` to be a string.');\n  }\n\n  if (isDescriptor(val) && ('set' in val || 'get' in val)) {\n    return Object.defineProperty(obj, prop, val);\n  }\n\n  return Object.defineProperty(obj, prop, {\n    configurable: true,\n    enumerable: false,\n    writable: true,\n    value: val\n  });\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/extglob/node_modules/define-property/index.js?");

/***/ }),

/***/ "./node_modules/fill-range/index.js":
/*!******************************************!*\
  !*** ./node_modules/fill-range/index.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * fill-range <https://github.com/jonschlinkert/fill-range>\n *\n * Copyright (c) 2014-2015, 2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar util = __webpack_require__(/*! util */ \"util\");\nvar isNumber = __webpack_require__(/*! is-number */ \"./node_modules/is-number/index.js\");\nvar extend = __webpack_require__(/*! extend-shallow */ \"./node_modules/extend-shallow/index.js\");\nvar repeat = __webpack_require__(/*! repeat-string */ \"./node_modules/repeat-string/index.js\");\nvar toRegex = __webpack_require__(/*! to-regex-range */ \"./node_modules/to-regex-range/index.js\");\n\n/**\n * Return a range of numbers or letters.\n *\n * @param  {String} `start` Start of the range\n * @param  {String} `stop` End of the range\n * @param  {String} `step` Increment or decrement to use.\n * @param  {Function} `fn` Custom function to modify each element in the range.\n * @return {Array}\n */\n\nfunction fillRange(start, stop, step, options) {\n  if (typeof start === 'undefined') {\n    return [];\n  }\n\n  if (typeof stop === 'undefined' || start === stop) {\n    // special case, for handling negative zero\n    var isString = typeof start === 'string';\n    if (isNumber(start) && !toNumber(start)) {\n      return [isString ? '0' : 0];\n    }\n    return [start];\n  }\n\n  if (typeof step !== 'number' && typeof step !== 'string') {\n    options = step;\n    step = undefined;\n  }\n\n  if (typeof options === 'function') {\n    options = { transform: options };\n  }\n\n  var opts = extend({step: step}, options);\n  if (opts.step && !isValidNumber(opts.step)) {\n    if (opts.strictRanges === true) {\n      throw new TypeError('expected options.step to be a number');\n    }\n    return [];\n  }\n\n  opts.isNumber = isValidNumber(start) && isValidNumber(stop);\n  if (!opts.isNumber && !isValid(start, stop)) {\n    if (opts.strictRanges === true) {\n      throw new RangeError('invalid range arguments: ' + util.inspect([start, stop]));\n    }\n    return [];\n  }\n\n  opts.isPadded = isPadded(start) || isPadded(stop);\n  opts.toString = opts.stringify\n    || typeof opts.step === 'string'\n    || typeof start === 'string'\n    || typeof stop === 'string'\n    || !opts.isNumber;\n\n  if (opts.isPadded) {\n    opts.maxLength = Math.max(String(start).length, String(stop).length);\n  }\n\n  // support legacy minimatch/fill-range options\n  if (typeof opts.optimize === 'boolean') opts.toRegex = opts.optimize;\n  if (typeof opts.makeRe === 'boolean') opts.toRegex = opts.makeRe;\n  return expand(start, stop, opts);\n}\n\nfunction expand(start, stop, options) {\n  var a = options.isNumber ? toNumber(start) : start.charCodeAt(0);\n  var b = options.isNumber ? toNumber(stop) : stop.charCodeAt(0);\n\n  var step = Math.abs(toNumber(options.step)) || 1;\n  if (options.toRegex && step === 1) {\n    return toRange(a, b, start, stop, options);\n  }\n\n  var zero = {greater: [], lesser: []};\n  var asc = a < b;\n  var arr = new Array(Math.round((asc ? b - a : a - b) / step));\n  var idx = 0;\n\n  while (asc ? a <= b : a >= b) {\n    var val = options.isNumber ? a : String.fromCharCode(a);\n    if (options.toRegex && (val >= 0 || !options.isNumber)) {\n      zero.greater.push(val);\n    } else {\n      zero.lesser.push(Math.abs(val));\n    }\n\n    if (options.isPadded) {\n      val = zeros(val, options);\n    }\n\n    if (options.toString) {\n      val = String(val);\n    }\n\n    if (typeof options.transform === 'function') {\n      arr[idx++] = options.transform(val, a, b, step, idx, arr, options);\n    } else {\n      arr[idx++] = val;\n    }\n\n    if (asc) {\n      a += step;\n    } else {\n      a -= step;\n    }\n  }\n\n  if (options.toRegex === true) {\n    return toSequence(arr, zero, options);\n  }\n  return arr;\n}\n\nfunction toRange(a, b, start, stop, options) {\n  if (options.isPadded) {\n    return toRegex(start, stop, options);\n  }\n\n  if (options.isNumber) {\n    return toRegex(Math.min(a, b), Math.max(a, b), options);\n  }\n\n  var start = String.fromCharCode(Math.min(a, b));\n  var stop = String.fromCharCode(Math.max(a, b));\n  return '[' + start + '-' + stop + ']';\n}\n\nfunction toSequence(arr, zeros, options) {\n  var greater = '', lesser = '';\n  if (zeros.greater.length) {\n    greater = zeros.greater.join('|');\n  }\n  if (zeros.lesser.length) {\n    lesser = '-(' + zeros.lesser.join('|') + ')';\n  }\n  var res = greater && lesser\n    ? greater + '|' + lesser\n    : greater || lesser;\n\n  if (options.capture) {\n    return '(' + res + ')';\n  }\n  return res;\n}\n\nfunction zeros(val, options) {\n  if (options.isPadded) {\n    var str = String(val);\n    var len = str.length;\n    var dash = '';\n    if (str.charAt(0) === '-') {\n      dash = '-';\n      str = str.slice(1);\n    }\n    var diff = options.maxLength - len;\n    var pad = repeat('0', diff);\n    val = (dash + pad + str);\n  }\n  if (options.stringify) {\n    return String(val);\n  }\n  return val;\n}\n\nfunction toNumber(val) {\n  return Number(val) || 0;\n}\n\nfunction isPadded(str) {\n  return /^-?0\\d/.test(str);\n}\n\nfunction isValid(min, max) {\n  return (isValidNumber(min) || isValidLetter(min))\n      && (isValidNumber(max) || isValidLetter(max));\n}\n\nfunction isValidLetter(ch) {\n  return typeof ch === 'string' && ch.length === 1 && /^\\w+$/.test(ch);\n}\n\nfunction isValidNumber(n) {\n  return isNumber(n) && !/\\./.test(n);\n}\n\n/**\n * Expose `fillRange`\n * @type {Function}\n */\n\nmodule.exports = fillRange;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/fill-range/index.js?");

/***/ }),

/***/ "./node_modules/for-in/index.js":
/*!**************************************!*\
  !*** ./node_modules/for-in/index.js ***!
  \**************************************/
/***/ ((module) => {

"use strict";
eval("/*!\n * for-in <https://github.com/jonschlinkert/for-in>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nmodule.exports = function forIn(obj, fn, thisArg) {\n  for (var key in obj) {\n    if (fn.call(thisArg, obj[key], key, obj) === false) {\n      break;\n    }\n  }\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/for-in/index.js?");

/***/ }),

/***/ "./node_modules/fragment-cache/index.js":
/*!**********************************************!*\
  !*** ./node_modules/fragment-cache/index.js ***!
  \**********************************************/
/***/ ((module, exports, __webpack_require__) => {

"use strict";
eval("/*!\n * fragment-cache <https://github.com/jonschlinkert/fragment-cache>\n *\n * Copyright (c) 2016-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar MapCache = __webpack_require__(/*! map-cache */ \"./node_modules/map-cache/index.js\");\n\n/**\n * Create a new `FragmentCache` with an optional object to use for `caches`.\n *\n * ```js\n * var fragment = new FragmentCache();\n * ```\n * @name FragmentCache\n * @param {String} `cacheName`\n * @return {Object} Returns the [map-cache][] instance.\n * @api public\n */\n\nfunction FragmentCache(caches) {\n  this.caches = caches || {};\n}\n\n/**\n * Prototype\n */\n\nFragmentCache.prototype = {\n\n  /**\n   * Get cache `name` from the `fragment.caches` object. Creates a new\n   * `MapCache` if it doesn't already exist.\n   *\n   * ```js\n   * var cache = fragment.cache('files');\n   * console.log(fragment.caches.hasOwnProperty('files'));\n   * //=> true\n   * ```\n   * @name .cache\n   * @param {String} `cacheName`\n   * @return {Object} Returns the [map-cache][] instance.\n   * @api public\n   */\n\n  cache: function(cacheName) {\n    return this.caches[cacheName] || (this.caches[cacheName] = new MapCache());\n  },\n\n  /**\n   * Set a value for property `key` on cache `name`\n   *\n   * ```js\n   * fragment.set('files', 'somefile.js', new File({path: 'somefile.js'}));\n   * ```\n   * @name .set\n   * @param {String} `name`\n   * @param {String} `key` Property name to set\n   * @param {any} `val` The value of `key`\n   * @return {Object} The cache instance for chaining\n   * @api public\n   */\n\n  set: function(cacheName, key, val) {\n    var cache = this.cache(cacheName);\n    cache.set(key, val);\n    return cache;\n  },\n\n  /**\n   * Returns true if a non-undefined value is set for `key` on fragment cache `name`.\n   *\n   * ```js\n   * var cache = fragment.cache('files');\n   * cache.set('somefile.js');\n   *\n   * console.log(cache.has('somefile.js'));\n   * //=> true\n   *\n   * console.log(cache.has('some-other-file.js'));\n   * //=> false\n   * ```\n   * @name .has\n   * @param {String} `name` Cache name\n   * @param {String} `key` Optionally specify a property to check for on cache `name`\n   * @return {Boolean}\n   * @api public\n   */\n\n  has: function(cacheName, key) {\n    return typeof this.get(cacheName, key) !== 'undefined';\n  },\n\n  /**\n   * Get `name`, or if specified, the value of `key`. Invokes the [cache]() method,\n   * so that cache `name` will be created it doesn't already exist. If `key` is not passed,\n   * the entire cache (`name`) is returned.\n   *\n   * ```js\n   * var Vinyl = require('vinyl');\n   * var cache = fragment.cache('files');\n   * cache.set('somefile.js', new Vinyl({path: 'somefile.js'}));\n   * console.log(cache.get('somefile.js'));\n   * //=> <File \"somefile.js\">\n   * ```\n   * @name .get\n   * @param {String} `name`\n   * @return {Object} Returns cache `name`, or the value of `key` if specified\n   * @api public\n   */\n\n  get: function(name, key) {\n    var cache = this.cache(name);\n    if (typeof key === 'string') {\n      return cache.get(key);\n    }\n    return cache;\n  }\n};\n\n/**\n * Expose `FragmentCache`\n */\n\nexports = module.exports = FragmentCache;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/fragment-cache/index.js?");

/***/ }),

/***/ "./node_modules/get-value/index.js":
/*!*****************************************!*\
  !*** ./node_modules/get-value/index.js ***!
  \*****************************************/
/***/ ((module) => {

eval("/*!\n * get-value <https://github.com/jonschlinkert/get-value>\n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\nmodule.exports = function(obj, prop, a, b, c) {\n  if (!isObject(obj) || !prop) {\n    return obj;\n  }\n\n  prop = toString(prop);\n\n  // allowing for multiple properties to be passed as\n  // a string or array, but much faster (3-4x) than doing\n  // `[].slice.call(arguments)`\n  if (a) prop += '.' + toString(a);\n  if (b) prop += '.' + toString(b);\n  if (c) prop += '.' + toString(c);\n\n  if (prop in obj) {\n    return obj[prop];\n  }\n\n  var segs = prop.split('.');\n  var len = segs.length;\n  var i = -1;\n\n  while (obj && (++i < len)) {\n    var key = segs[i];\n    while (key[key.length - 1] === '\\\\') {\n      key = key.slice(0, -1) + '.' + segs[++i];\n    }\n    obj = obj[key];\n  }\n  return obj;\n};\n\nfunction isObject(val) {\n  return val !== null && (typeof val === 'object' || typeof val === 'function');\n}\n\nfunction toString(val) {\n  if (!val) return '';\n  if (Array.isArray(val)) {\n    return val.join('.');\n  }\n  return val;\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/get-value/index.js?");

/***/ }),

/***/ "./node_modules/glob-parent/index.js":
/*!*******************************************!*\
  !*** ./node_modules/glob-parent/index.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar isGlob = __webpack_require__(/*! is-glob */ \"./node_modules/is-glob/index.js\");\nvar pathPosixDirname = __webpack_require__(/*! path */ \"path\").posix.dirname;\nvar isWin32 = __webpack_require__(/*! os */ \"os\").platform() === 'win32';\n\nvar slash = '/';\nvar backslash = /\\\\/g;\nvar enclosure = /[\\{\\[].*[\\}\\]]$/;\nvar globby = /(^|[^\\\\])([\\{\\[]|\\([^\\)]+$)/;\nvar escaped = /\\\\([\\!\\*\\?\\|\\[\\]\\(\\)\\{\\}])/g;\n\n/**\n * @param {string} str\n * @param {Object} opts\n * @param {boolean} [opts.flipBackslashes=true]\n * @returns {string}\n */\nmodule.exports = function globParent(str, opts) {\n  var options = Object.assign({ flipBackslashes: true }, opts);\n\n  // flip windows path separators\n  if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) {\n    str = str.replace(backslash, slash);\n  }\n\n  // special case for strings ending in enclosure containing path separator\n  if (enclosure.test(str)) {\n    str += slash;\n  }\n\n  // preserves full path in case of trailing path separator\n  str += 'a';\n\n  // remove path parts that are globby\n  do {\n    str = pathPosixDirname(str);\n  } while (isGlob(str) || globby.test(str));\n\n  // remove escape chars and return result\n  return str.replace(escaped, '$1');\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/glob-parent/index.js?");

/***/ }),

/***/ "./node_modules/graceful-fs/clone.js":
/*!*******************************************!*\
  !*** ./node_modules/graceful-fs/clone.js ***!
  \*******************************************/
/***/ ((module) => {

"use strict";
eval("\n\nmodule.exports = clone\n\nvar getPrototypeOf = Object.getPrototypeOf || function (obj) {\n  return obj.__proto__\n}\n\nfunction clone (obj) {\n  if (obj === null || typeof obj !== 'object')\n    return obj\n\n  if (obj instanceof Object)\n    var copy = { __proto__: getPrototypeOf(obj) }\n  else\n    var copy = Object.create(null)\n\n  Object.getOwnPropertyNames(obj).forEach(function (key) {\n    Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key))\n  })\n\n  return copy\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/graceful-fs/clone.js?");

/***/ }),

/***/ "./node_modules/graceful-fs/graceful-fs.js":
/*!*************************************************!*\
  !*** ./node_modules/graceful-fs/graceful-fs.js ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var fs = __webpack_require__(/*! fs */ \"fs\")\nvar polyfills = __webpack_require__(/*! ./polyfills.js */ \"./node_modules/graceful-fs/polyfills.js\")\nvar legacy = __webpack_require__(/*! ./legacy-streams.js */ \"./node_modules/graceful-fs/legacy-streams.js\")\nvar clone = __webpack_require__(/*! ./clone.js */ \"./node_modules/graceful-fs/clone.js\")\n\nvar util = __webpack_require__(/*! util */ \"util\")\n\n/* istanbul ignore next - node 0.x polyfill */\nvar gracefulQueue\nvar previousSymbol\n\n/* istanbul ignore else - node 0.x polyfill */\nif (typeof Symbol === 'function' && typeof Symbol.for === 'function') {\n  gracefulQueue = Symbol.for('graceful-fs.queue')\n  // This is used in testing by future versions\n  previousSymbol = Symbol.for('graceful-fs.previous')\n} else {\n  gracefulQueue = '___graceful-fs.queue'\n  previousSymbol = '___graceful-fs.previous'\n}\n\nfunction noop () {}\n\nfunction publishQueue(context, queue) {\n  Object.defineProperty(context, gracefulQueue, {\n    get: function() {\n      return queue\n    }\n  })\n}\n\nvar debug = noop\nif (util.debuglog)\n  debug = util.debuglog('gfs4')\nelse if (/\\bgfs4\\b/i.test(process.env.NODE_DEBUG || ''))\n  debug = function() {\n    var m = util.format.apply(util, arguments)\n    m = 'GFS4: ' + m.split(/\\n/).join('\\nGFS4: ')\n    console.error(m)\n  }\n\n// Once time initialization\nif (!fs[gracefulQueue]) {\n  // This queue can be shared by multiple loaded instances\n  var queue = global[gracefulQueue] || []\n  publishQueue(fs, queue)\n\n  // Patch fs.close/closeSync to shared queue version, because we need\n  // to retry() whenever a close happens *anywhere* in the program.\n  // This is essential when multiple graceful-fs instances are\n  // in play at the same time.\n  fs.close = (function (fs$close) {\n    function close (fd, cb) {\n      return fs$close.call(fs, fd, function (err) {\n        // This function uses the graceful-fs shared queue\n        if (!err) {\n          resetQueue()\n        }\n\n        if (typeof cb === 'function')\n          cb.apply(this, arguments)\n      })\n    }\n\n    Object.defineProperty(close, previousSymbol, {\n      value: fs$close\n    })\n    return close\n  })(fs.close)\n\n  fs.closeSync = (function (fs$closeSync) {\n    function closeSync (fd) {\n      // This function uses the graceful-fs shared queue\n      fs$closeSync.apply(fs, arguments)\n      resetQueue()\n    }\n\n    Object.defineProperty(closeSync, previousSymbol, {\n      value: fs$closeSync\n    })\n    return closeSync\n  })(fs.closeSync)\n\n  if (/\\bgfs4\\b/i.test(process.env.NODE_DEBUG || '')) {\n    process.on('exit', function() {\n      debug(fs[gracefulQueue])\n      __webpack_require__(/*! assert */ \"assert\").equal(fs[gracefulQueue].length, 0)\n    })\n  }\n}\n\nif (!global[gracefulQueue]) {\n  publishQueue(global, fs[gracefulQueue]);\n}\n\nmodule.exports = patch(clone(fs))\nif (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs.__patched) {\n    module.exports = patch(fs)\n    fs.__patched = true;\n}\n\nfunction patch (fs) {\n  // Everything that references the open() function needs to be in here\n  polyfills(fs)\n  fs.gracefulify = patch\n\n  fs.createReadStream = createReadStream\n  fs.createWriteStream = createWriteStream\n  var fs$readFile = fs.readFile\n  fs.readFile = readFile\n  function readFile (path, options, cb) {\n    if (typeof options === 'function')\n      cb = options, options = null\n\n    return go$readFile(path, options, cb)\n\n    function go$readFile (path, options, cb, startTime) {\n      return fs$readFile(path, options, function (err) {\n        if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n          enqueue([go$readFile, [path, options, cb], err, startTime || Date.now(), Date.now()])\n        else {\n          if (typeof cb === 'function')\n            cb.apply(this, arguments)\n        }\n      })\n    }\n  }\n\n  var fs$writeFile = fs.writeFile\n  fs.writeFile = writeFile\n  function writeFile (path, data, options, cb) {\n    if (typeof options === 'function')\n      cb = options, options = null\n\n    return go$writeFile(path, data, options, cb)\n\n    function go$writeFile (path, data, options, cb, startTime) {\n      return fs$writeFile(path, data, options, function (err) {\n        if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n          enqueue([go$writeFile, [path, data, options, cb], err, startTime || Date.now(), Date.now()])\n        else {\n          if (typeof cb === 'function')\n            cb.apply(this, arguments)\n        }\n      })\n    }\n  }\n\n  var fs$appendFile = fs.appendFile\n  if (fs$appendFile)\n    fs.appendFile = appendFile\n  function appendFile (path, data, options, cb) {\n    if (typeof options === 'function')\n      cb = options, options = null\n\n    return go$appendFile(path, data, options, cb)\n\n    function go$appendFile (path, data, options, cb, startTime) {\n      return fs$appendFile(path, data, options, function (err) {\n        if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n          enqueue([go$appendFile, [path, data, options, cb], err, startTime || Date.now(), Date.now()])\n        else {\n          if (typeof cb === 'function')\n            cb.apply(this, arguments)\n        }\n      })\n    }\n  }\n\n  var fs$copyFile = fs.copyFile\n  if (fs$copyFile)\n    fs.copyFile = copyFile\n  function copyFile (src, dest, flags, cb) {\n    if (typeof flags === 'function') {\n      cb = flags\n      flags = 0\n    }\n    return go$copyFile(src, dest, flags, cb)\n\n    function go$copyFile (src, dest, flags, cb, startTime) {\n      return fs$copyFile(src, dest, flags, function (err) {\n        if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n          enqueue([go$copyFile, [src, dest, flags, cb], err, startTime || Date.now(), Date.now()])\n        else {\n          if (typeof cb === 'function')\n            cb.apply(this, arguments)\n        }\n      })\n    }\n  }\n\n  var fs$readdir = fs.readdir\n  fs.readdir = readdir\n  function readdir (path, options, cb) {\n    if (typeof options === 'function')\n      cb = options, options = null\n\n    return go$readdir(path, options, cb)\n\n    function go$readdir (path, options, cb, startTime) {\n      return fs$readdir(path, options, function (err, files) {\n        if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n          enqueue([go$readdir, [path, options, cb], err, startTime || Date.now(), Date.now()])\n        else {\n          if (files && files.sort)\n            files.sort()\n\n          if (typeof cb === 'function')\n            cb.call(this, err, files)\n        }\n      })\n    }\n  }\n\n  if (process.version.substr(0, 4) === 'v0.8') {\n    var legStreams = legacy(fs)\n    ReadStream = legStreams.ReadStream\n    WriteStream = legStreams.WriteStream\n  }\n\n  var fs$ReadStream = fs.ReadStream\n  if (fs$ReadStream) {\n    ReadStream.prototype = Object.create(fs$ReadStream.prototype)\n    ReadStream.prototype.open = ReadStream$open\n  }\n\n  var fs$WriteStream = fs.WriteStream\n  if (fs$WriteStream) {\n    WriteStream.prototype = Object.create(fs$WriteStream.prototype)\n    WriteStream.prototype.open = WriteStream$open\n  }\n\n  Object.defineProperty(fs, 'ReadStream', {\n    get: function () {\n      return ReadStream\n    },\n    set: function (val) {\n      ReadStream = val\n    },\n    enumerable: true,\n    configurable: true\n  })\n  Object.defineProperty(fs, 'WriteStream', {\n    get: function () {\n      return WriteStream\n    },\n    set: function (val) {\n      WriteStream = val\n    },\n    enumerable: true,\n    configurable: true\n  })\n\n  // legacy names\n  var FileReadStream = ReadStream\n  Object.defineProperty(fs, 'FileReadStream', {\n    get: function () {\n      return FileReadStream\n    },\n    set: function (val) {\n      FileReadStream = val\n    },\n    enumerable: true,\n    configurable: true\n  })\n  var FileWriteStream = WriteStream\n  Object.defineProperty(fs, 'FileWriteStream', {\n    get: function () {\n      return FileWriteStream\n    },\n    set: function (val) {\n      FileWriteStream = val\n    },\n    enumerable: true,\n    configurable: true\n  })\n\n  function ReadStream (path, options) {\n    if (this instanceof ReadStream)\n      return fs$ReadStream.apply(this, arguments), this\n    else\n      return ReadStream.apply(Object.create(ReadStream.prototype), arguments)\n  }\n\n  function ReadStream$open () {\n    var that = this\n    open(that.path, that.flags, that.mode, function (err, fd) {\n      if (err) {\n        if (that.autoClose)\n          that.destroy()\n\n        that.emit('error', err)\n      } else {\n        that.fd = fd\n        that.emit('open', fd)\n        that.read()\n      }\n    })\n  }\n\n  function WriteStream (path, options) {\n    if (this instanceof WriteStream)\n      return fs$WriteStream.apply(this, arguments), this\n    else\n      return WriteStream.apply(Object.create(WriteStream.prototype), arguments)\n  }\n\n  function WriteStream$open () {\n    var that = this\n    open(that.path, that.flags, that.mode, function (err, fd) {\n      if (err) {\n        that.destroy()\n        that.emit('error', err)\n      } else {\n        that.fd = fd\n        that.emit('open', fd)\n      }\n    })\n  }\n\n  function createReadStream (path, options) {\n    return new fs.ReadStream(path, options)\n  }\n\n  function createWriteStream (path, options) {\n    return new fs.WriteStream(path, options)\n  }\n\n  var fs$open = fs.open\n  fs.open = open\n  function open (path, flags, mode, cb) {\n    if (typeof mode === 'function')\n      cb = mode, mode = null\n\n    return go$open(path, flags, mode, cb)\n\n    function go$open (path, flags, mode, cb, startTime) {\n      return fs$open(path, flags, mode, function (err, fd) {\n        if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n          enqueue([go$open, [path, flags, mode, cb], err, startTime || Date.now(), Date.now()])\n        else {\n          if (typeof cb === 'function')\n            cb.apply(this, arguments)\n        }\n      })\n    }\n  }\n\n  return fs\n}\n\nfunction enqueue (elem) {\n  debug('ENQUEUE', elem[0].name, elem[1])\n  fs[gracefulQueue].push(elem)\n  retry()\n}\n\n// keep track of the timeout between retry() calls\nvar retryTimer\n\n// reset the startTime and lastTime to now\n// this resets the start of the 60 second overall timeout as well as the\n// delay between attempts so that we'll retry these jobs sooner\nfunction resetQueue () {\n  var now = Date.now()\n  for (var i = 0; i < fs[gracefulQueue].length; ++i) {\n    // entries that are only a length of 2 are from an older version, don't\n    // bother modifying those since they'll be retried anyway.\n    if (fs[gracefulQueue][i].length > 2) {\n      fs[gracefulQueue][i][3] = now // startTime\n      fs[gracefulQueue][i][4] = now // lastTime\n    }\n  }\n  // call retry to make sure we're actively processing the queue\n  retry()\n}\n\nfunction retry () {\n  // clear the timer and remove it to help prevent unintended concurrency\n  clearTimeout(retryTimer)\n  retryTimer = undefined\n\n  if (fs[gracefulQueue].length === 0)\n    return\n\n  var elem = fs[gracefulQueue].shift()\n  var fn = elem[0]\n  var args = elem[1]\n  // these items may be unset if they were added by an older graceful-fs\n  var err = elem[2]\n  var startTime = elem[3]\n  var lastTime = elem[4]\n\n  // if we don't have a startTime we have no way of knowing if we've waited\n  // long enough, so go ahead and retry this item now\n  if (startTime === undefined) {\n    debug('RETRY', fn.name, args)\n    fn.apply(null, args)\n  } else if (Date.now() - startTime >= 60000) {\n    // it's been more than 60 seconds total, bail now\n    debug('TIMEOUT', fn.name, args)\n    var cb = args.pop()\n    if (typeof cb === 'function')\n      cb.call(null, err)\n  } else {\n    // the amount of time between the last attempt and right now\n    var sinceAttempt = Date.now() - lastTime\n    // the amount of time between when we first tried, and when we last tried\n    // rounded up to at least 1\n    var sinceStart = Math.max(lastTime - startTime, 1)\n    // backoff. wait longer than the total time we've been retrying, but only\n    // up to a maximum of 100ms\n    var desiredDelay = Math.min(sinceStart * 1.2, 100)\n    // it's been long enough since the last retry, do it again\n    if (sinceAttempt >= desiredDelay) {\n      debug('RETRY', fn.name, args)\n      fn.apply(null, args.concat([startTime]))\n    } else {\n      // if we can't do this job yet, push it to the end of the queue\n      // and let the next iteration check again\n      fs[gracefulQueue].push(elem)\n    }\n  }\n\n  // schedule our next run if one isn't already scheduled\n  if (retryTimer === undefined) {\n    retryTimer = setTimeout(retry, 0)\n  }\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/graceful-fs/graceful-fs.js?");

/***/ }),

/***/ "./node_modules/graceful-fs/legacy-streams.js":
/*!****************************************************!*\
  !*** ./node_modules/graceful-fs/legacy-streams.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var Stream = __webpack_require__(/*! stream */ \"stream\").Stream\n\nmodule.exports = legacy\n\nfunction legacy (fs) {\n  return {\n    ReadStream: ReadStream,\n    WriteStream: WriteStream\n  }\n\n  function ReadStream (path, options) {\n    if (!(this instanceof ReadStream)) return new ReadStream(path, options);\n\n    Stream.call(this);\n\n    var self = this;\n\n    this.path = path;\n    this.fd = null;\n    this.readable = true;\n    this.paused = false;\n\n    this.flags = 'r';\n    this.mode = 438; /*=0666*/\n    this.bufferSize = 64 * 1024;\n\n    options = options || {};\n\n    // Mixin options into this\n    var keys = Object.keys(options);\n    for (var index = 0, length = keys.length; index < length; index++) {\n      var key = keys[index];\n      this[key] = options[key];\n    }\n\n    if (this.encoding) this.setEncoding(this.encoding);\n\n    if (this.start !== undefined) {\n      if ('number' !== typeof this.start) {\n        throw TypeError('start must be a Number');\n      }\n      if (this.end === undefined) {\n        this.end = Infinity;\n      } else if ('number' !== typeof this.end) {\n        throw TypeError('end must be a Number');\n      }\n\n      if (this.start > this.end) {\n        throw new Error('start must be <= end');\n      }\n\n      this.pos = this.start;\n    }\n\n    if (this.fd !== null) {\n      process.nextTick(function() {\n        self._read();\n      });\n      return;\n    }\n\n    fs.open(this.path, this.flags, this.mode, function (err, fd) {\n      if (err) {\n        self.emit('error', err);\n        self.readable = false;\n        return;\n      }\n\n      self.fd = fd;\n      self.emit('open', fd);\n      self._read();\n    })\n  }\n\n  function WriteStream (path, options) {\n    if (!(this instanceof WriteStream)) return new WriteStream(path, options);\n\n    Stream.call(this);\n\n    this.path = path;\n    this.fd = null;\n    this.writable = true;\n\n    this.flags = 'w';\n    this.encoding = 'binary';\n    this.mode = 438; /*=0666*/\n    this.bytesWritten = 0;\n\n    options = options || {};\n\n    // Mixin options into this\n    var keys = Object.keys(options);\n    for (var index = 0, length = keys.length; index < length; index++) {\n      var key = keys[index];\n      this[key] = options[key];\n    }\n\n    if (this.start !== undefined) {\n      if ('number' !== typeof this.start) {\n        throw TypeError('start must be a Number');\n      }\n      if (this.start < 0) {\n        throw new Error('start must be >= zero');\n      }\n\n      this.pos = this.start;\n    }\n\n    this.busy = false;\n    this._queue = [];\n\n    if (this.fd === null) {\n      this._open = fs.open;\n      this._queue.push([this._open, this.path, this.flags, this.mode, undefined]);\n      this.flush();\n    }\n  }\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/graceful-fs/legacy-streams.js?");

/***/ }),

/***/ "./node_modules/graceful-fs/polyfills.js":
/*!***********************************************!*\
  !*** ./node_modules/graceful-fs/polyfills.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var constants = __webpack_require__(/*! constants */ \"constants\")\n\nvar origCwd = process.cwd\nvar cwd = null\n\nvar platform = process.env.GRACEFUL_FS_PLATFORM || process.platform\n\nprocess.cwd = function() {\n  if (!cwd)\n    cwd = origCwd.call(process)\n  return cwd\n}\ntry {\n  process.cwd()\n} catch (er) {}\n\n// This check is needed until node.js 12 is required\nif (typeof process.chdir === 'function') {\n  var chdir = process.chdir\n  process.chdir = function (d) {\n    cwd = null\n    chdir.call(process, d)\n  }\n  if (Object.setPrototypeOf) Object.setPrototypeOf(process.chdir, chdir)\n}\n\nmodule.exports = patch\n\nfunction patch (fs) {\n  // (re-)implement some things that are known busted or missing.\n\n  // lchmod, broken prior to 0.6.2\n  // back-port the fix here.\n  if (constants.hasOwnProperty('O_SYMLINK') &&\n      process.version.match(/^v0\\.6\\.[0-2]|^v0\\.5\\./)) {\n    patchLchmod(fs)\n  }\n\n  // lutimes implementation, or no-op\n  if (!fs.lutimes) {\n    patchLutimes(fs)\n  }\n\n  // https://github.com/isaacs/node-graceful-fs/issues/4\n  // Chown should not fail on einval or eperm if non-root.\n  // It should not fail on enosys ever, as this just indicates\n  // that a fs doesn't support the intended operation.\n\n  fs.chown = chownFix(fs.chown)\n  fs.fchown = chownFix(fs.fchown)\n  fs.lchown = chownFix(fs.lchown)\n\n  fs.chmod = chmodFix(fs.chmod)\n  fs.fchmod = chmodFix(fs.fchmod)\n  fs.lchmod = chmodFix(fs.lchmod)\n\n  fs.chownSync = chownFixSync(fs.chownSync)\n  fs.fchownSync = chownFixSync(fs.fchownSync)\n  fs.lchownSync = chownFixSync(fs.lchownSync)\n\n  fs.chmodSync = chmodFixSync(fs.chmodSync)\n  fs.fchmodSync = chmodFixSync(fs.fchmodSync)\n  fs.lchmodSync = chmodFixSync(fs.lchmodSync)\n\n  fs.stat = statFix(fs.stat)\n  fs.fstat = statFix(fs.fstat)\n  fs.lstat = statFix(fs.lstat)\n\n  fs.statSync = statFixSync(fs.statSync)\n  fs.fstatSync = statFixSync(fs.fstatSync)\n  fs.lstatSync = statFixSync(fs.lstatSync)\n\n  // if lchmod/lchown do not exist, then make them no-ops\n  if (!fs.lchmod) {\n    fs.lchmod = function (path, mode, cb) {\n      if (cb) process.nextTick(cb)\n    }\n    fs.lchmodSync = function () {}\n  }\n  if (!fs.lchown) {\n    fs.lchown = function (path, uid, gid, cb) {\n      if (cb) process.nextTick(cb)\n    }\n    fs.lchownSync = function () {}\n  }\n\n  // on Windows, A/V software can lock the directory, causing this\n  // to fail with an EACCES or EPERM if the directory contains newly\n  // created files.  Try again on failure, for up to 60 seconds.\n\n  // Set the timeout this long because some Windows Anti-Virus, such as Parity\n  // bit9, may lock files for up to a minute, causing npm package install\n  // failures. Also, take care to yield the scheduler. Windows scheduling gives\n  // CPU to a busy looping process, which can cause the program causing the lock\n  // contention to be starved of CPU by node, so the contention doesn't resolve.\n  if (platform === \"win32\") {\n    fs.rename = (function (fs$rename) { return function (from, to, cb) {\n      var start = Date.now()\n      var backoff = 0;\n      fs$rename(from, to, function CB (er) {\n        if (er\n            && (er.code === \"EACCES\" || er.code === \"EPERM\")\n            && Date.now() - start < 60000) {\n          setTimeout(function() {\n            fs.stat(to, function (stater, st) {\n              if (stater && stater.code === \"ENOENT\")\n                fs$rename(from, to, CB);\n              else\n                cb(er)\n            })\n          }, backoff)\n          if (backoff < 100)\n            backoff += 10;\n          return;\n        }\n        if (cb) cb(er)\n      })\n    }})(fs.rename)\n  }\n\n  // if read() returns EAGAIN, then just try it again.\n  fs.read = (function (fs$read) {\n    function read (fd, buffer, offset, length, position, callback_) {\n      var callback\n      if (callback_ && typeof callback_ === 'function') {\n        var eagCounter = 0\n        callback = function (er, _, __) {\n          if (er && er.code === 'EAGAIN' && eagCounter < 10) {\n            eagCounter ++\n            return fs$read.call(fs, fd, buffer, offset, length, position, callback)\n          }\n          callback_.apply(this, arguments)\n        }\n      }\n      return fs$read.call(fs, fd, buffer, offset, length, position, callback)\n    }\n\n    // This ensures `util.promisify` works as it does for native `fs.read`.\n    if (Object.setPrototypeOf) Object.setPrototypeOf(read, fs$read)\n    return read\n  })(fs.read)\n\n  fs.readSync = (function (fs$readSync) { return function (fd, buffer, offset, length, position) {\n    var eagCounter = 0\n    while (true) {\n      try {\n        return fs$readSync.call(fs, fd, buffer, offset, length, position)\n      } catch (er) {\n        if (er.code === 'EAGAIN' && eagCounter < 10) {\n          eagCounter ++\n          continue\n        }\n        throw er\n      }\n    }\n  }})(fs.readSync)\n\n  function patchLchmod (fs) {\n    fs.lchmod = function (path, mode, callback) {\n      fs.open( path\n             , constants.O_WRONLY | constants.O_SYMLINK\n             , mode\n             , function (err, fd) {\n        if (err) {\n          if (callback) callback(err)\n          return\n        }\n        // prefer to return the chmod error, if one occurs,\n        // but still try to close, and report closing errors if they occur.\n        fs.fchmod(fd, mode, function (err) {\n          fs.close(fd, function(err2) {\n            if (callback) callback(err || err2)\n          })\n        })\n      })\n    }\n\n    fs.lchmodSync = function (path, mode) {\n      var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode)\n\n      // prefer to return the chmod error, if one occurs,\n      // but still try to close, and report closing errors if they occur.\n      var threw = true\n      var ret\n      try {\n        ret = fs.fchmodSync(fd, mode)\n        threw = false\n      } finally {\n        if (threw) {\n          try {\n            fs.closeSync(fd)\n          } catch (er) {}\n        } else {\n          fs.closeSync(fd)\n        }\n      }\n      return ret\n    }\n  }\n\n  function patchLutimes (fs) {\n    if (constants.hasOwnProperty(\"O_SYMLINK\")) {\n      fs.lutimes = function (path, at, mt, cb) {\n        fs.open(path, constants.O_SYMLINK, function (er, fd) {\n          if (er) {\n            if (cb) cb(er)\n            return\n          }\n          fs.futimes(fd, at, mt, function (er) {\n            fs.close(fd, function (er2) {\n              if (cb) cb(er || er2)\n            })\n          })\n        })\n      }\n\n      fs.lutimesSync = function (path, at, mt) {\n        var fd = fs.openSync(path, constants.O_SYMLINK)\n        var ret\n        var threw = true\n        try {\n          ret = fs.futimesSync(fd, at, mt)\n          threw = false\n        } finally {\n          if (threw) {\n            try {\n              fs.closeSync(fd)\n            } catch (er) {}\n          } else {\n            fs.closeSync(fd)\n          }\n        }\n        return ret\n      }\n\n    } else {\n      fs.lutimes = function (_a, _b, _c, cb) { if (cb) process.nextTick(cb) }\n      fs.lutimesSync = function () {}\n    }\n  }\n\n  function chmodFix (orig) {\n    if (!orig) return orig\n    return function (target, mode, cb) {\n      return orig.call(fs, target, mode, function (er) {\n        if (chownErOk(er)) er = null\n        if (cb) cb.apply(this, arguments)\n      })\n    }\n  }\n\n  function chmodFixSync (orig) {\n    if (!orig) return orig\n    return function (target, mode) {\n      try {\n        return orig.call(fs, target, mode)\n      } catch (er) {\n        if (!chownErOk(er)) throw er\n      }\n    }\n  }\n\n\n  function chownFix (orig) {\n    if (!orig) return orig\n    return function (target, uid, gid, cb) {\n      return orig.call(fs, target, uid, gid, function (er) {\n        if (chownErOk(er)) er = null\n        if (cb) cb.apply(this, arguments)\n      })\n    }\n  }\n\n  function chownFixSync (orig) {\n    if (!orig) return orig\n    return function (target, uid, gid) {\n      try {\n        return orig.call(fs, target, uid, gid)\n      } catch (er) {\n        if (!chownErOk(er)) throw er\n      }\n    }\n  }\n\n  function statFix (orig) {\n    if (!orig) return orig\n    // Older versions of Node erroneously returned signed integers for\n    // uid + gid.\n    return function (target, options, cb) {\n      if (typeof options === 'function') {\n        cb = options\n        options = null\n      }\n      function callback (er, stats) {\n        if (stats) {\n          if (stats.uid < 0) stats.uid += 0x100000000\n          if (stats.gid < 0) stats.gid += 0x100000000\n        }\n        if (cb) cb.apply(this, arguments)\n      }\n      return options ? orig.call(fs, target, options, callback)\n        : orig.call(fs, target, callback)\n    }\n  }\n\n  function statFixSync (orig) {\n    if (!orig) return orig\n    // Older versions of Node erroneously returned signed integers for\n    // uid + gid.\n    return function (target, options) {\n      var stats = options ? orig.call(fs, target, options)\n        : orig.call(fs, target)\n      if (stats.uid < 0) stats.uid += 0x100000000\n      if (stats.gid < 0) stats.gid += 0x100000000\n      return stats;\n    }\n  }\n\n  // ENOSYS means that the fs doesn't support the op. Just ignore\n  // that, because it doesn't matter.\n  //\n  // if there's no getuid, or if getuid() is something other\n  // than 0, and the error is EINVAL or EPERM, then just ignore\n  // it.\n  //\n  // This specific case is a silent failure in cp, install, tar,\n  // and most other unix tools that manage permissions.\n  //\n  // When running as root, or if other types of errors are\n  // encountered, then it's strict.\n  function chownErOk (er) {\n    if (!er)\n      return true\n\n    if (er.code === \"ENOSYS\")\n      return true\n\n    var nonroot = !process.getuid || process.getuid() !== 0\n    if (nonroot) {\n      if (er.code === \"EINVAL\" || er.code === \"EPERM\")\n        return true\n    }\n\n    return false\n  }\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/graceful-fs/polyfills.js?");

/***/ }),

/***/ "./node_modules/has-value/index.js":
/*!*****************************************!*\
  !*** ./node_modules/has-value/index.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * has-value <https://github.com/jonschlinkert/has-value>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n\n\nvar isObject = __webpack_require__(/*! isobject */ \"./node_modules/isobject/index.js\");\nvar hasValues = __webpack_require__(/*! has-values */ \"./node_modules/has-values/index.js\");\nvar get = __webpack_require__(/*! get-value */ \"./node_modules/get-value/index.js\");\n\nmodule.exports = function(val, prop) {\n  return hasValues(isObject(val) && prop ? get(val, prop) : val);\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/has-value/index.js?");

/***/ }),

/***/ "./node_modules/has-values/index.js":
/*!******************************************!*\
  !*** ./node_modules/has-values/index.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * has-values <https://github.com/jonschlinkert/has-values>\n *\n * Copyright (c) 2014-2015, 2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar typeOf = __webpack_require__(/*! kind-of */ \"./node_modules/has-values/node_modules/kind-of/index.js\");\nvar isNumber = __webpack_require__(/*! is-number */ \"./node_modules/is-number/index.js\");\n\nmodule.exports = function hasValue(val) {\n  // is-number checks for NaN and other edge cases\n  if (isNumber(val)) {\n    return true;\n  }\n\n  switch (typeOf(val)) {\n    case 'null':\n    case 'boolean':\n    case 'function':\n      return true;\n    case 'string':\n    case 'arguments':\n      return val.length !== 0;\n    case 'error':\n      return val.message !== '';\n    case 'array':\n      var len = val.length;\n      if (len === 0) {\n        return false;\n      }\n      for (var i = 0; i < len; i++) {\n        if (hasValue(val[i])) {\n          return true;\n        }\n      }\n      return false;\n    case 'file':\n    case 'map':\n    case 'set':\n      return val.size !== 0;\n    case 'object':\n      var keys = Object.keys(val);\n      if (keys.length === 0) {\n        return false;\n      }\n      for (var i = 0; i < keys.length; i++) {\n        var key = keys[i];\n        if (hasValue(val[key])) {\n          return true;\n        }\n      }\n      return false;\n    default: {\n      return false;\n    }\n  }\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/has-values/index.js?");

/***/ }),

/***/ "./node_modules/has-values/node_modules/kind-of/index.js":
/*!***************************************************************!*\
  !*** ./node_modules/has-values/node_modules/kind-of/index.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var isBuffer = __webpack_require__(/*! is-buffer */ \"./node_modules/is-buffer/index.js\");\nvar toString = Object.prototype.toString;\n\n/**\n * Get the native `typeof` a value.\n *\n * @param  {*} `val`\n * @return {*} Native javascript type\n */\n\nmodule.exports = function kindOf(val) {\n  // primitivies\n  if (typeof val === 'undefined') {\n    return 'undefined';\n  }\n  if (val === null) {\n    return 'null';\n  }\n  if (val === true || val === false || val instanceof Boolean) {\n    return 'boolean';\n  }\n  if (typeof val === 'string' || val instanceof String) {\n    return 'string';\n  }\n  if (typeof val === 'number' || val instanceof Number) {\n    return 'number';\n  }\n\n  // functions\n  if (typeof val === 'function' || val instanceof Function) {\n    return 'function';\n  }\n\n  // array\n  if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) {\n    return 'array';\n  }\n\n  // check for instances of RegExp and Date before calling `toString`\n  if (val instanceof RegExp) {\n    return 'regexp';\n  }\n  if (val instanceof Date) {\n    return 'date';\n  }\n\n  // other objects\n  var type = toString.call(val);\n\n  if (type === '[object RegExp]') {\n    return 'regexp';\n  }\n  if (type === '[object Date]') {\n    return 'date';\n  }\n  if (type === '[object Arguments]') {\n    return 'arguments';\n  }\n  if (type === '[object Error]') {\n    return 'error';\n  }\n  if (type === '[object Promise]') {\n    return 'promise';\n  }\n\n  // buffer\n  if (isBuffer(val)) {\n    return 'buffer';\n  }\n\n  // es6: Map, WeakMap, Set, WeakSet\n  if (type === '[object Set]') {\n    return 'set';\n  }\n  if (type === '[object WeakSet]') {\n    return 'weakset';\n  }\n  if (type === '[object Map]') {\n    return 'map';\n  }\n  if (type === '[object WeakMap]') {\n    return 'weakmap';\n  }\n  if (type === '[object Symbol]') {\n    return 'symbol';\n  }\n\n  // typed arrays\n  if (type === '[object Int8Array]') {\n    return 'int8array';\n  }\n  if (type === '[object Uint8Array]') {\n    return 'uint8array';\n  }\n  if (type === '[object Uint8ClampedArray]') {\n    return 'uint8clampedarray';\n  }\n  if (type === '[object Int16Array]') {\n    return 'int16array';\n  }\n  if (type === '[object Uint16Array]') {\n    return 'uint16array';\n  }\n  if (type === '[object Int32Array]') {\n    return 'int32array';\n  }\n  if (type === '[object Uint32Array]') {\n    return 'uint32array';\n  }\n  if (type === '[object Float32Array]') {\n    return 'float32array';\n  }\n  if (type === '[object Float64Array]') {\n    return 'float64array';\n  }\n\n  // must be a plain object\n  return 'object';\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/has-values/node_modules/kind-of/index.js?");

/***/ }),

/***/ "./node_modules/inherits/inherits.js":
/*!*******************************************!*\
  !*** ./node_modules/inherits/inherits.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("try {\n  var util = __webpack_require__(/*! util */ \"util\");\n  /* istanbul ignore next */\n  if (typeof util.inherits !== 'function') throw '';\n  module.exports = util.inherits;\n} catch (e) {\n  /* istanbul ignore next */\n  module.exports = __webpack_require__(/*! ./inherits_browser.js */ \"./node_modules/inherits/inherits_browser.js\");\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/inherits/inherits.js?");

/***/ }),

/***/ "./node_modules/inherits/inherits_browser.js":
/*!***************************************************!*\
  !*** ./node_modules/inherits/inherits_browser.js ***!
  \***************************************************/
/***/ ((module) => {

eval("if (typeof Object.create === 'function') {\n  // implementation from standard node.js 'util' module\n  module.exports = function inherits(ctor, superCtor) {\n    if (superCtor) {\n      ctor.super_ = superCtor\n      ctor.prototype = Object.create(superCtor.prototype, {\n        constructor: {\n          value: ctor,\n          enumerable: false,\n          writable: true,\n          configurable: true\n        }\n      })\n    }\n  };\n} else {\n  // old school shim for old browsers\n  module.exports = function inherits(ctor, superCtor) {\n    if (superCtor) {\n      ctor.super_ = superCtor\n      var TempCtor = function () {}\n      TempCtor.prototype = superCtor.prototype\n      ctor.prototype = new TempCtor()\n      ctor.prototype.constructor = ctor\n    }\n  }\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/inherits/inherits_browser.js?");

/***/ }),

/***/ "./node_modules/is-accessor-descriptor/index.js":
/*!******************************************************!*\
  !*** ./node_modules/is-accessor-descriptor/index.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * is-accessor-descriptor <https://github.com/jonschlinkert/is-accessor-descriptor>\n *\n * Copyright (c) 2015-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar typeOf = __webpack_require__(/*! kind-of */ \"./node_modules/kind-of/index.js\");\n\n// accessor descriptor properties\nvar accessor = {\n  get: 'function',\n  set: 'function',\n  configurable: 'boolean',\n  enumerable: 'boolean'\n};\n\nfunction isAccessorDescriptor(obj, prop) {\n  if (typeof prop === 'string') {\n    var val = Object.getOwnPropertyDescriptor(obj, prop);\n    return typeof val !== 'undefined';\n  }\n\n  if (typeOf(obj) !== 'object') {\n    return false;\n  }\n\n  if (has(obj, 'value') || has(obj, 'writable')) {\n    return false;\n  }\n\n  if (!has(obj, 'get') || typeof obj.get !== 'function') {\n    return false;\n  }\n\n  // tldr: it's valid to have \"set\" be undefined\n  // \"set\" might be undefined if `Object.getOwnPropertyDescriptor`\n  // was used to get the value, and only `get` was defined by the user\n  if (has(obj, 'set') && typeof obj[key] !== 'function' && typeof obj[key] !== 'undefined') {\n    return false;\n  }\n\n  for (var key in obj) {\n    if (!accessor.hasOwnProperty(key)) {\n      continue;\n    }\n\n    if (typeOf(obj[key]) === accessor[key]) {\n      continue;\n    }\n\n    if (typeof obj[key] !== 'undefined') {\n      return false;\n    }\n  }\n  return true;\n}\n\nfunction has(obj, key) {\n  return {}.hasOwnProperty.call(obj, key);\n}\n\n/**\n * Expose `isAccessorDescriptor`\n */\n\nmodule.exports = isAccessorDescriptor;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/is-accessor-descriptor/index.js?");

/***/ }),

/***/ "./node_modules/is-binary-path/index.js":
/*!**********************************************!*\
  !*** ./node_modules/is-binary-path/index.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\nvar path = __webpack_require__(/*! path */ \"path\");\nvar binaryExtensions = __webpack_require__(/*! binary-extensions */ \"./node_modules/binary-extensions/binary-extensions.json\");\nvar exts = Object.create(null);\n\nbinaryExtensions.forEach(function (el) {\n\texts[el] = true;\n});\n\nmodule.exports = function (filepath) {\n\treturn path.extname(filepath).slice(1).toLowerCase() in exts;\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/is-binary-path/index.js?");

/***/ }),

/***/ "./node_modules/is-buffer/index.js":
/*!*****************************************!*\
  !*** ./node_modules/is-buffer/index.js ***!
  \*****************************************/
/***/ ((module) => {

eval("/*!\n * Determine if an object is a Buffer\n *\n * @author   Feross Aboukhadijeh <https://feross.org>\n * @license  MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n  return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n  return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n  return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/is-buffer/index.js?");

/***/ }),

/***/ "./node_modules/is-data-descriptor/index.js":
/*!**************************************************!*\
  !*** ./node_modules/is-data-descriptor/index.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * is-data-descriptor <https://github.com/jonschlinkert/is-data-descriptor>\n *\n * Copyright (c) 2015-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar typeOf = __webpack_require__(/*! kind-of */ \"./node_modules/kind-of/index.js\");\n\nmodule.exports = function isDataDescriptor(obj, prop) {\n  // data descriptor properties\n  var data = {\n    configurable: 'boolean',\n    enumerable: 'boolean',\n    writable: 'boolean'\n  };\n\n  if (typeOf(obj) !== 'object') {\n    return false;\n  }\n\n  if (typeof prop === 'string') {\n    var val = Object.getOwnPropertyDescriptor(obj, prop);\n    return typeof val !== 'undefined';\n  }\n\n  if (!('value' in obj) && !('writable' in obj)) {\n    return false;\n  }\n\n  for (var key in obj) {\n    if (key === 'value') continue;\n\n    if (!data.hasOwnProperty(key)) {\n      continue;\n    }\n\n    if (typeOf(obj[key]) === data[key]) {\n      continue;\n    }\n\n    if (typeof obj[key] !== 'undefined') {\n      return false;\n    }\n  }\n  return true;\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/is-data-descriptor/index.js?");

/***/ }),

/***/ "./node_modules/is-descriptor/index.js":
/*!*********************************************!*\
  !*** ./node_modules/is-descriptor/index.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * is-descriptor <https://github.com/jonschlinkert/is-descriptor>\n *\n * Copyright (c) 2015-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar typeOf = __webpack_require__(/*! kind-of */ \"./node_modules/kind-of/index.js\");\nvar isAccessor = __webpack_require__(/*! is-accessor-descriptor */ \"./node_modules/is-accessor-descriptor/index.js\");\nvar isData = __webpack_require__(/*! is-data-descriptor */ \"./node_modules/is-data-descriptor/index.js\");\n\nmodule.exports = function isDescriptor(obj, key) {\n  if (typeOf(obj) !== 'object') {\n    return false;\n  }\n  if ('get' in obj) {\n    return isAccessor(obj, key);\n  }\n  return isData(obj, key);\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/is-descriptor/index.js?");

/***/ }),

/***/ "./node_modules/is-extendable/index.js":
/*!*********************************************!*\
  !*** ./node_modules/is-extendable/index.js ***!
  \*********************************************/
/***/ ((module) => {

"use strict";
eval("/*!\n * is-extendable <https://github.com/jonschlinkert/is-extendable>\n *\n * Copyright (c) 2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n\n\nmodule.exports = function isExtendable(val) {\n  return typeof val !== 'undefined' && val !== null\n    && (typeof val === 'object' || typeof val === 'function');\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/is-extendable/index.js?");

/***/ }),

/***/ "./node_modules/is-extglob/index.js":
/*!******************************************!*\
  !*** ./node_modules/is-extglob/index.js ***!
  \******************************************/
/***/ ((module) => {

eval("/*!\n * is-extglob <https://github.com/jonschlinkert/is-extglob>\n *\n * Copyright (c) 2014-2016, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\nmodule.exports = function isExtglob(str) {\n  if (typeof str !== 'string' || str === '') {\n    return false;\n  }\n\n  var match;\n  while ((match = /(\\\\).|([@?!+*]\\(.*\\))/g.exec(str))) {\n    if (match[2]) return true;\n    str = str.slice(match.index + match[0].length);\n  }\n\n  return false;\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/is-extglob/index.js?");

/***/ }),

/***/ "./node_modules/is-glob/index.js":
/*!***************************************!*\
  !*** ./node_modules/is-glob/index.js ***!
  \***************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("/*!\n * is-glob <https://github.com/jonschlinkert/is-glob>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nvar isExtglob = __webpack_require__(/*! is-extglob */ \"./node_modules/is-extglob/index.js\");\nvar chars = { '{': '}', '(': ')', '[': ']'};\nvar strictRegex = /\\\\(.)|(^!|\\*|[\\].+)]\\?|\\[[^\\\\\\]]+\\]|\\{[^\\\\}]+\\}|\\(\\?[:!=][^\\\\)]+\\)|\\([^|]+\\|[^\\\\)]+\\))/;\nvar relaxedRegex = /\\\\(.)|(^!|[*?{}()[\\]]|\\(\\?)/;\n\nmodule.exports = function isGlob(str, options) {\n  if (typeof str !== 'string' || str === '') {\n    return false;\n  }\n\n  if (isExtglob(str)) {\n    return true;\n  }\n\n  var regex = strictRegex;\n  var match;\n\n  // optionally relax regex\n  if (options && options.strict === false) {\n    regex = relaxedRegex;\n  }\n\n  while ((match = regex.exec(str))) {\n    if (match[2]) return true;\n    var idx = match.index + match[0].length;\n\n    // if an open bracket/brace/paren is escaped,\n    // set the index to the next closing character\n    var open = match[1];\n    var close = open ? chars[open] : null;\n    if (open && close) {\n      var n = str.indexOf(close, idx);\n      if (n !== -1) {\n        idx = n + 1;\n      }\n    }\n\n    str = str.slice(idx);\n  }\n  return false;\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/is-glob/index.js?");

/***/ }),

/***/ "./node_modules/is-number/index.js":
/*!*****************************************!*\
  !*** ./node_modules/is-number/index.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * is-number <https://github.com/jonschlinkert/is-number>\n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n\n\nvar typeOf = __webpack_require__(/*! kind-of */ \"./node_modules/is-number/node_modules/kind-of/index.js\");\n\nmodule.exports = function isNumber(num) {\n  var type = typeOf(num);\n\n  if (type === 'string') {\n    if (!num.trim()) return false;\n  } else if (type !== 'number') {\n    return false;\n  }\n\n  return (num - num + 1) >= 0;\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/is-number/index.js?");

/***/ }),

/***/ "./node_modules/is-number/node_modules/kind-of/index.js":
/*!**************************************************************!*\
  !*** ./node_modules/is-number/node_modules/kind-of/index.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var isBuffer = __webpack_require__(/*! is-buffer */ \"./node_modules/is-buffer/index.js\");\nvar toString = Object.prototype.toString;\n\n/**\n * Get the native `typeof` a value.\n *\n * @param  {*} `val`\n * @return {*} Native javascript type\n */\n\nmodule.exports = function kindOf(val) {\n  // primitivies\n  if (typeof val === 'undefined') {\n    return 'undefined';\n  }\n  if (val === null) {\n    return 'null';\n  }\n  if (val === true || val === false || val instanceof Boolean) {\n    return 'boolean';\n  }\n  if (typeof val === 'string' || val instanceof String) {\n    return 'string';\n  }\n  if (typeof val === 'number' || val instanceof Number) {\n    return 'number';\n  }\n\n  // functions\n  if (typeof val === 'function' || val instanceof Function) {\n    return 'function';\n  }\n\n  // array\n  if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) {\n    return 'array';\n  }\n\n  // check for instances of RegExp and Date before calling `toString`\n  if (val instanceof RegExp) {\n    return 'regexp';\n  }\n  if (val instanceof Date) {\n    return 'date';\n  }\n\n  // other objects\n  var type = toString.call(val);\n\n  if (type === '[object RegExp]') {\n    return 'regexp';\n  }\n  if (type === '[object Date]') {\n    return 'date';\n  }\n  if (type === '[object Arguments]') {\n    return 'arguments';\n  }\n  if (type === '[object Error]') {\n    return 'error';\n  }\n\n  // buffer\n  if (isBuffer(val)) {\n    return 'buffer';\n  }\n\n  // es6: Map, WeakMap, Set, WeakSet\n  if (type === '[object Set]') {\n    return 'set';\n  }\n  if (type === '[object WeakSet]') {\n    return 'weakset';\n  }\n  if (type === '[object Map]') {\n    return 'map';\n  }\n  if (type === '[object WeakMap]') {\n    return 'weakmap';\n  }\n  if (type === '[object Symbol]') {\n    return 'symbol';\n  }\n\n  // typed arrays\n  if (type === '[object Int8Array]') {\n    return 'int8array';\n  }\n  if (type === '[object Uint8Array]') {\n    return 'uint8array';\n  }\n  if (type === '[object Uint8ClampedArray]') {\n    return 'uint8clampedarray';\n  }\n  if (type === '[object Int16Array]') {\n    return 'int16array';\n  }\n  if (type === '[object Uint16Array]') {\n    return 'uint16array';\n  }\n  if (type === '[object Int32Array]') {\n    return 'int32array';\n  }\n  if (type === '[object Uint32Array]') {\n    return 'uint32array';\n  }\n  if (type === '[object Float32Array]') {\n    return 'float32array';\n  }\n  if (type === '[object Float64Array]') {\n    return 'float64array';\n  }\n\n  // must be a plain object\n  return 'object';\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/is-number/node_modules/kind-of/index.js?");

/***/ }),

/***/ "./node_modules/is-plain-object/index.js":
/*!***********************************************!*\
  !*** ./node_modules/is-plain-object/index.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar isObject = __webpack_require__(/*! isobject */ \"./node_modules/isobject/index.js\");\n\nfunction isObjectObject(o) {\n  return isObject(o) === true\n    && Object.prototype.toString.call(o) === '[object Object]';\n}\n\nmodule.exports = function isPlainObject(o) {\n  var ctor,prot;\n\n  if (isObjectObject(o) === false) return false;\n\n  // If has modified constructor\n  ctor = o.constructor;\n  if (typeof ctor !== 'function') return false;\n\n  // If has modified prototype\n  prot = ctor.prototype;\n  if (isObjectObject(prot) === false) return false;\n\n  // If constructor does not have an Object-specific method\n  if (prot.hasOwnProperty('isPrototypeOf') === false) {\n    return false;\n  }\n\n  // Most likely a plain Object\n  return true;\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/is-plain-object/index.js?");

/***/ }),

/***/ "./node_modules/is-windows/index.js":
/*!******************************************!*\
  !*** ./node_modules/is-windows/index.js ***!
  \******************************************/
/***/ ((module, exports) => {

eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n * is-windows <https://github.com/jonschlinkert/is-windows>\n *\n * Copyright © 2015-2018, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n(function(factory) {\n  if (exports && typeof exports === 'object' && \"object\" !== 'undefined') {\n    module.exports = factory();\n  } else if (true) {\n    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n  } else {}\n})(function() {\n  'use strict';\n  return function isWindows() {\n    return process && (process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE));\n  };\n});\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/is-windows/index.js?");

/***/ }),

/***/ "./node_modules/isarray/index.js":
/*!***************************************!*\
  !*** ./node_modules/isarray/index.js ***!
  \***************************************/
/***/ ((module) => {

eval("var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n  return toString.call(arr) == '[object Array]';\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/isarray/index.js?");

/***/ }),

/***/ "./node_modules/isobject/index.js":
/*!****************************************!*\
  !*** ./node_modules/isobject/index.js ***!
  \****************************************/
/***/ ((module) => {

"use strict";
eval("/*!\n * isobject <https://github.com/jonschlinkert/isobject>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nmodule.exports = function isObject(val) {\n  return val != null && typeof val === 'object' && Array.isArray(val) === false;\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/isobject/index.js?");

/***/ }),

/***/ "./node_modules/kind-of/index.js":
/*!***************************************!*\
  !*** ./node_modules/kind-of/index.js ***!
  \***************************************/
/***/ ((module) => {

eval("var toString = Object.prototype.toString;\n\nmodule.exports = function kindOf(val) {\n  if (val === void 0) return 'undefined';\n  if (val === null) return 'null';\n\n  var type = typeof val;\n  if (type === 'boolean') return 'boolean';\n  if (type === 'string') return 'string';\n  if (type === 'number') return 'number';\n  if (type === 'symbol') return 'symbol';\n  if (type === 'function') {\n    return isGeneratorFn(val) ? 'generatorfunction' : 'function';\n  }\n\n  if (isArray(val)) return 'array';\n  if (isBuffer(val)) return 'buffer';\n  if (isArguments(val)) return 'arguments';\n  if (isDate(val)) return 'date';\n  if (isError(val)) return 'error';\n  if (isRegexp(val)) return 'regexp';\n\n  switch (ctorName(val)) {\n    case 'Symbol': return 'symbol';\n    case 'Promise': return 'promise';\n\n    // Set, Map, WeakSet, WeakMap\n    case 'WeakMap': return 'weakmap';\n    case 'WeakSet': return 'weakset';\n    case 'Map': return 'map';\n    case 'Set': return 'set';\n\n    // 8-bit typed arrays\n    case 'Int8Array': return 'int8array';\n    case 'Uint8Array': return 'uint8array';\n    case 'Uint8ClampedArray': return 'uint8clampedarray';\n\n    // 16-bit typed arrays\n    case 'Int16Array': return 'int16array';\n    case 'Uint16Array': return 'uint16array';\n\n    // 32-bit typed arrays\n    case 'Int32Array': return 'int32array';\n    case 'Uint32Array': return 'uint32array';\n    case 'Float32Array': return 'float32array';\n    case 'Float64Array': return 'float64array';\n  }\n\n  if (isGeneratorObj(val)) {\n    return 'generator';\n  }\n\n  // Non-plain objects\n  type = toString.call(val);\n  switch (type) {\n    case '[object Object]': return 'object';\n    // iterators\n    case '[object Map Iterator]': return 'mapiterator';\n    case '[object Set Iterator]': return 'setiterator';\n    case '[object String Iterator]': return 'stringiterator';\n    case '[object Array Iterator]': return 'arrayiterator';\n  }\n\n  // other\n  return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n};\n\nfunction ctorName(val) {\n  return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isArray(val) {\n  if (Array.isArray) return Array.isArray(val);\n  return val instanceof Array;\n}\n\nfunction isError(val) {\n  return val instanceof Error || (typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number');\n}\n\nfunction isDate(val) {\n  if (val instanceof Date) return true;\n  return typeof val.toDateString === 'function'\n    && typeof val.getDate === 'function'\n    && typeof val.setDate === 'function';\n}\n\nfunction isRegexp(val) {\n  if (val instanceof RegExp) return true;\n  return typeof val.flags === 'string'\n    && typeof val.ignoreCase === 'boolean'\n    && typeof val.multiline === 'boolean'\n    && typeof val.global === 'boolean';\n}\n\nfunction isGeneratorFn(name, val) {\n  return ctorName(name) === 'GeneratorFunction';\n}\n\nfunction isGeneratorObj(val) {\n  return typeof val.throw === 'function'\n    && typeof val.return === 'function'\n    && typeof val.next === 'function';\n}\n\nfunction isArguments(val) {\n  try {\n    if (typeof val.length === 'number' && typeof val.callee === 'function') {\n      return true;\n    }\n  } catch (err) {\n    if (err.message.indexOf('callee') !== -1) {\n      return true;\n    }\n  }\n  return false;\n}\n\n/**\n * If you need to support Safari 5-7 (8-10 yr-old browser),\n * take a look at https://github.com/feross/is-buffer\n */\n\nfunction isBuffer(val) {\n  if (val.constructor && typeof val.constructor.isBuffer === 'function') {\n    return val.constructor.isBuffer(val);\n  }\n  return false;\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/kind-of/index.js?");

/***/ }),

/***/ "./node_modules/map-cache/index.js":
/*!*****************************************!*\
  !*** ./node_modules/map-cache/index.js ***!
  \*****************************************/
/***/ ((module) => {

"use strict";
eval("/*!\n * map-cache <https://github.com/jonschlinkert/map-cache>\n *\n * Copyright (c) 2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n\n\nvar hasOwn = Object.prototype.hasOwnProperty;\n\n/**\n * Expose `MapCache`\n */\n\nmodule.exports = MapCache;\n\n/**\n * Creates a cache object to store key/value pairs.\n *\n * ```js\n * var cache = new MapCache();\n * ```\n *\n * @api public\n */\n\nfunction MapCache(data) {\n  this.__data__ = data || {};\n}\n\n/**\n * Adds `value` to `key` on the cache.\n *\n * ```js\n * cache.set('foo', 'bar');\n * ```\n *\n * @param {String} `key` The key of the value to cache.\n * @param {*} `value` The value to cache.\n * @returns {Object} Returns the `Cache` object for chaining.\n * @api public\n */\n\nMapCache.prototype.set = function mapSet(key, value) {\n  if (key !== '__proto__') {\n    this.__data__[key] = value;\n  }\n  return this;\n};\n\n/**\n * Gets the cached value for `key`.\n *\n * ```js\n * cache.get('foo');\n * //=> 'bar'\n * ```\n *\n * @param {String} `key` The key of the value to get.\n * @returns {*} Returns the cached value.\n * @api public\n */\n\nMapCache.prototype.get = function mapGet(key) {\n  return key === '__proto__' ? undefined : this.__data__[key];\n};\n\n/**\n * Checks if a cached value for `key` exists.\n *\n * ```js\n * cache.has('foo');\n * //=> true\n * ```\n *\n * @param {String} `key` The key of the entry to check.\n * @returns {Boolean} Returns `true` if an entry for `key` exists, else `false`.\n * @api public\n */\n\nMapCache.prototype.has = function mapHas(key) {\n  return key !== '__proto__' && hasOwn.call(this.__data__, key);\n};\n\n/**\n * Removes `key` and its value from the cache.\n *\n * ```js\n * cache.del('foo');\n * ```\n * @title .del\n * @param {String} `key` The key of the value to remove.\n * @returns {Boolean} Returns `true` if the entry was removed successfully, else `false`.\n * @api public\n */\n\nMapCache.prototype.del = function mapDelete(key) {\n  return this.has(key) && delete this.__data__[key];\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/map-cache/index.js?");

/***/ }),

/***/ "./node_modules/map-visit/index.js":
/*!*****************************************!*\
  !*** ./node_modules/map-visit/index.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar util = __webpack_require__(/*! util */ \"util\");\nvar visit = __webpack_require__(/*! object-visit */ \"./node_modules/object-visit/index.js\");\n\n/**\n * Map `visit` over an array of objects.\n *\n * @param  {Object} `collection` The context in which to invoke `method`\n * @param  {String} `method` Name of the method to call on `collection`\n * @param  {Object} `arr` Array of objects.\n */\n\nmodule.exports = function mapVisit(collection, method, val) {\n  if (isObject(val)) {\n    return visit.apply(null, arguments);\n  }\n\n  if (!Array.isArray(val)) {\n    throw new TypeError('expected an array: ' + util.inspect(val));\n  }\n\n  var args = [].slice.call(arguments, 3);\n\n  for (var i = 0; i < val.length; i++) {\n    var ele = val[i];\n    if (isObject(ele)) {\n      visit.apply(null, [collection, method, ele].concat(args));\n    } else {\n      collection[method].apply(collection, [ele].concat(args));\n    }\n  }\n};\n\nfunction isObject(val) {\n  return val && (typeof val === 'function' || (!Array.isArray(val) && typeof val === 'object'));\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/map-visit/index.js?");

/***/ }),

/***/ "./node_modules/micromatch/index.js":
/*!******************************************!*\
  !*** ./node_modules/micromatch/index.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\n/**\n * Module dependencies\n */\n\nvar util = __webpack_require__(/*! util */ \"util\");\nvar braces = __webpack_require__(/*! braces */ \"./node_modules/braces/index.js\");\nvar toRegex = __webpack_require__(/*! to-regex */ \"./node_modules/to-regex/index.js\");\nvar extend = __webpack_require__(/*! extend-shallow */ \"./node_modules/micromatch/node_modules/extend-shallow/index.js\");\n\n/**\n * Local dependencies\n */\n\nvar compilers = __webpack_require__(/*! ./lib/compilers */ \"./node_modules/micromatch/lib/compilers.js\");\nvar parsers = __webpack_require__(/*! ./lib/parsers */ \"./node_modules/micromatch/lib/parsers.js\");\nvar cache = __webpack_require__(/*! ./lib/cache */ \"./node_modules/micromatch/lib/cache.js\");\nvar utils = __webpack_require__(/*! ./lib/utils */ \"./node_modules/micromatch/lib/utils.js\");\nvar MAX_LENGTH = 1024 * 64;\n\n/**\n * The main function takes a list of strings and one or more\n * glob patterns to use for matching.\n *\n * ```js\n * var mm = require('micromatch');\n * mm(list, patterns[, options]);\n *\n * console.log(mm(['a.js', 'a.txt'], ['*.js']));\n * //=> [ 'a.js' ]\n * ```\n * @param {Array} `list` A list of strings to match\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Array} Returns an array of matches\n * @summary false\n * @api public\n */\n\nfunction micromatch(list, patterns, options) {\n  patterns = utils.arrayify(patterns);\n  list = utils.arrayify(list);\n\n  var len = patterns.length;\n  if (list.length === 0 || len === 0) {\n    return [];\n  }\n\n  if (len === 1) {\n    return micromatch.match(list, patterns[0], options);\n  }\n\n  var omit = [];\n  var keep = [];\n  var idx = -1;\n\n  while (++idx < len) {\n    var pattern = patterns[idx];\n\n    if (typeof pattern === 'string' && pattern.charCodeAt(0) === 33 /* ! */) {\n      omit.push.apply(omit, micromatch.match(list, pattern.slice(1), options));\n    } else {\n      keep.push.apply(keep, micromatch.match(list, pattern, options));\n    }\n  }\n\n  var matches = utils.diff(keep, omit);\n  if (!options || options.nodupes !== false) {\n    return utils.unique(matches);\n  }\n\n  return matches;\n}\n\n/**\n * Similar to the main function, but `pattern` must be a string.\n *\n * ```js\n * var mm = require('micromatch');\n * mm.match(list, pattern[, options]);\n *\n * console.log(mm.match(['a.a', 'a.aa', 'a.b', 'a.c'], '*.a'));\n * //=> ['a.a', 'a.aa']\n * ```\n * @param {Array} `list` Array of strings to match\n * @param {String} `pattern` Glob pattern to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Array} Returns an array of matches\n * @api public\n */\n\nmicromatch.match = function(list, pattern, options) {\n  if (Array.isArray(pattern)) {\n    throw new TypeError('expected pattern to be a string');\n  }\n\n  var unixify = utils.unixify(options);\n  var isMatch = memoize('match', pattern, options, micromatch.matcher);\n  var matches = [];\n\n  list = utils.arrayify(list);\n  var len = list.length;\n  var idx = -1;\n\n  while (++idx < len) {\n    var ele = list[idx];\n    if (ele === pattern || isMatch(ele)) {\n      matches.push(utils.value(ele, unixify, options));\n    }\n  }\n\n  // if no options were passed, uniquify results and return\n  if (typeof options === 'undefined') {\n    return utils.unique(matches);\n  }\n\n  if (matches.length === 0) {\n    if (options.failglob === true) {\n      throw new Error('no matches found for \"' + pattern + '\"');\n    }\n    if (options.nonull === true || options.nullglob === true) {\n      return [options.unescape ? utils.unescape(pattern) : pattern];\n    }\n  }\n\n  // if `opts.ignore` was defined, diff ignored list\n  if (options.ignore) {\n    matches = micromatch.not(matches, options.ignore, options);\n  }\n\n  return options.nodupes !== false ? utils.unique(matches) : matches;\n};\n\n/**\n * Returns true if the specified `string` matches the given glob `pattern`.\n *\n * ```js\n * var mm = require('micromatch');\n * mm.isMatch(string, pattern[, options]);\n *\n * console.log(mm.isMatch('a.a', '*.a'));\n * //=> true\n * console.log(mm.isMatch('a.b', '*.a'));\n * //=> false\n * ```\n * @param {String} `string` String to match\n * @param {String} `pattern` Glob pattern to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if the string matches the glob pattern.\n * @api public\n */\n\nmicromatch.isMatch = function(str, pattern, options) {\n  if (typeof str !== 'string') {\n    throw new TypeError('expected a string: \"' + util.inspect(str) + '\"');\n  }\n\n  if (isEmptyString(str) || isEmptyString(pattern)) {\n    return false;\n  }\n\n  var equals = utils.equalsPattern(options);\n  if (equals(str)) {\n    return true;\n  }\n\n  var isMatch = memoize('isMatch', pattern, options, micromatch.matcher);\n  return isMatch(str);\n};\n\n/**\n * Returns true if some of the strings in the given `list` match any of the\n * given glob `patterns`.\n *\n * ```js\n * var mm = require('micromatch');\n * mm.some(list, patterns[, options]);\n *\n * console.log(mm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js']));\n * // true\n * console.log(mm.some(['foo.js'], ['*.js', '!foo.js']));\n * // false\n * ```\n * @param  {String|Array} `list` The string or array of strings to test. Returns as soon as the first match is found.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\nmicromatch.some = function(list, patterns, options) {\n  if (typeof list === 'string') {\n    list = [list];\n  }\n  for (var i = 0; i < list.length; i++) {\n    if (micromatch(list[i], patterns, options).length === 1) {\n      return true;\n    }\n  }\n  return false;\n};\n\n/**\n * Returns true if every string in the given `list` matches\n * any of the given glob `patterns`.\n *\n * ```js\n * var mm = require('micromatch');\n * mm.every(list, patterns[, options]);\n *\n * console.log(mm.every('foo.js', ['foo.js']));\n * // true\n * console.log(mm.every(['foo.js', 'bar.js'], ['*.js']));\n * // true\n * console.log(mm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js']));\n * // false\n * console.log(mm.every(['foo.js'], ['*.js', '!foo.js']));\n * // false\n * ```\n * @param  {String|Array} `list` The string or array of strings to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\nmicromatch.every = function(list, patterns, options) {\n  if (typeof list === 'string') {\n    list = [list];\n  }\n  for (var i = 0; i < list.length; i++) {\n    if (micromatch(list[i], patterns, options).length !== 1) {\n      return false;\n    }\n  }\n  return true;\n};\n\n/**\n * Returns true if **any** of the given glob `patterns`\n * match the specified `string`.\n *\n * ```js\n * var mm = require('micromatch');\n * mm.any(string, patterns[, options]);\n *\n * console.log(mm.any('a.a', ['b.*', '*.a']));\n * //=> true\n * console.log(mm.any('a.a', 'b.*'));\n * //=> false\n * ```\n * @param  {String|Array} `str` The string to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\nmicromatch.any = function(str, patterns, options) {\n  if (typeof str !== 'string') {\n    throw new TypeError('expected a string: \"' + util.inspect(str) + '\"');\n  }\n\n  if (isEmptyString(str) || isEmptyString(patterns)) {\n    return false;\n  }\n\n  if (typeof patterns === 'string') {\n    patterns = [patterns];\n  }\n\n  for (var i = 0; i < patterns.length; i++) {\n    if (micromatch.isMatch(str, patterns[i], options)) {\n      return true;\n    }\n  }\n  return false;\n};\n\n/**\n * Returns true if **all** of the given `patterns` match\n * the specified string.\n *\n * ```js\n * var mm = require('micromatch');\n * mm.all(string, patterns[, options]);\n *\n * console.log(mm.all('foo.js', ['foo.js']));\n * // true\n *\n * console.log(mm.all('foo.js', ['*.js', '!foo.js']));\n * // false\n *\n * console.log(mm.all('foo.js', ['*.js', 'foo.js']));\n * // true\n *\n * console.log(mm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js']));\n * // true\n * ```\n * @param  {String|Array} `str` The string to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\nmicromatch.all = function(str, patterns, options) {\n  if (typeof str !== 'string') {\n    throw new TypeError('expected a string: \"' + util.inspect(str) + '\"');\n  }\n  if (typeof patterns === 'string') {\n    patterns = [patterns];\n  }\n  for (var i = 0; i < patterns.length; i++) {\n    if (!micromatch.isMatch(str, patterns[i], options)) {\n      return false;\n    }\n  }\n  return true;\n};\n\n/**\n * Returns a list of strings that _**do not match any**_ of the given `patterns`.\n *\n * ```js\n * var mm = require('micromatch');\n * mm.not(list, patterns[, options]);\n *\n * console.log(mm.not(['a.a', 'b.b', 'c.c'], '*.a'));\n * //=> ['b.b', 'c.c']\n * ```\n * @param {Array} `list` Array of strings to match.\n * @param {String|Array} `patterns` One or more glob pattern to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Array} Returns an array of strings that **do not match** the given patterns.\n * @api public\n */\n\nmicromatch.not = function(list, patterns, options) {\n  var opts = extend({}, options);\n  var ignore = opts.ignore;\n  delete opts.ignore;\n\n  var unixify = utils.unixify(opts);\n  list = utils.arrayify(list).map(unixify);\n\n  var matches = utils.diff(list, micromatch(list, patterns, opts));\n  if (ignore) {\n    matches = utils.diff(matches, micromatch(list, ignore));\n  }\n\n  return opts.nodupes !== false ? utils.unique(matches) : matches;\n};\n\n/**\n * Returns true if the given `string` contains the given pattern. Similar\n * to [.isMatch](#isMatch) but the pattern can match any part of the string.\n *\n * ```js\n * var mm = require('micromatch');\n * mm.contains(string, pattern[, options]);\n *\n * console.log(mm.contains('aa/bb/cc', '*b'));\n * //=> true\n * console.log(mm.contains('aa/bb/cc', '*d'));\n * //=> false\n * ```\n * @param {String} `str` The string to match.\n * @param {String|Array} `patterns` Glob pattern to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if the patter matches any part of `str`.\n * @api public\n */\n\nmicromatch.contains = function(str, patterns, options) {\n  if (typeof str !== 'string') {\n    throw new TypeError('expected a string: \"' + util.inspect(str) + '\"');\n  }\n\n  if (typeof patterns === 'string') {\n    if (isEmptyString(str) || isEmptyString(patterns)) {\n      return false;\n    }\n\n    var equals = utils.equalsPattern(patterns, options);\n    if (equals(str)) {\n      return true;\n    }\n    var contains = utils.containsPattern(patterns, options);\n    if (contains(str)) {\n      return true;\n    }\n  }\n\n  var opts = extend({}, options, {contains: true});\n  return micromatch.any(str, patterns, opts);\n};\n\n/**\n * Returns true if the given pattern and options should enable\n * the `matchBase` option.\n * @return {Boolean}\n * @api private\n */\n\nmicromatch.matchBase = function(pattern, options) {\n  if (pattern && pattern.indexOf('/') !== -1 || !options) return false;\n  return options.basename === true || options.matchBase === true;\n};\n\n/**\n * Filter the keys of the given object with the given `glob` pattern\n * and `options`. Does not attempt to match nested keys. If you need this feature,\n * use [glob-object][] instead.\n *\n * ```js\n * var mm = require('micromatch');\n * mm.matchKeys(object, patterns[, options]);\n *\n * var obj = { aa: 'a', ab: 'b', ac: 'c' };\n * console.log(mm.matchKeys(obj, '*b'));\n * //=> { ab: 'b' }\n * ```\n * @param {Object} `object` The object with keys to filter.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Object} Returns an object with only keys that match the given patterns.\n * @api public\n */\n\nmicromatch.matchKeys = function(obj, patterns, options) {\n  if (!utils.isObject(obj)) {\n    throw new TypeError('expected the first argument to be an object');\n  }\n  var keys = micromatch(Object.keys(obj), patterns, options);\n  return utils.pick(obj, keys);\n};\n\n/**\n * Returns a memoized matcher function from the given glob `pattern` and `options`.\n * The returned function takes a string to match as its only argument and returns\n * true if the string is a match.\n *\n * ```js\n * var mm = require('micromatch');\n * mm.matcher(pattern[, options]);\n *\n * var isMatch = mm.matcher('*.!(*a)');\n * console.log(isMatch('a.a'));\n * //=> false\n * console.log(isMatch('a.b'));\n * //=> true\n * ```\n * @param {String} `pattern` Glob pattern\n * @param {Object} `options` See available [options](#options) for changing how matches are performed.\n * @return {Function} Returns a matcher function.\n * @api public\n */\n\nmicromatch.matcher = function matcher(pattern, options) {\n  if (Array.isArray(pattern)) {\n    return compose(pattern, options, matcher);\n  }\n\n  // if pattern is a regex\n  if (pattern instanceof RegExp) {\n    return test(pattern);\n  }\n\n  // if pattern is invalid\n  if (!utils.isString(pattern)) {\n    throw new TypeError('expected pattern to be an array, string or regex');\n  }\n\n  // if pattern is a non-glob string\n  if (!utils.hasSpecialChars(pattern)) {\n    if (options && options.nocase === true) {\n      pattern = pattern.toLowerCase();\n    }\n    return utils.matchPath(pattern, options);\n  }\n\n  // if pattern is a glob string\n  var re = micromatch.makeRe(pattern, options);\n\n  // if `options.matchBase` or `options.basename` is defined\n  if (micromatch.matchBase(pattern, options)) {\n    return utils.matchBasename(re, options);\n  }\n\n  function test(regex) {\n    var equals = utils.equalsPattern(options);\n    var unixify = utils.unixify(options);\n\n    return function(str) {\n      if (equals(str)) {\n        return true;\n      }\n\n      if (regex.test(unixify(str))) {\n        return true;\n      }\n      return false;\n    };\n  }\n\n  var fn = test(re);\n  Object.defineProperty(fn, 'result', {\n    configurable: true,\n    enumerable: false,\n    value: re.result\n  });\n  return fn;\n};\n\n/**\n * Returns an array of matches captured by `pattern` in `string, or `null` if the pattern did not match.\n *\n * ```js\n * var mm = require('micromatch');\n * mm.capture(pattern, string[, options]);\n *\n * console.log(mm.capture('test/*.js', 'test/foo.js'));\n * //=> ['foo']\n * console.log(mm.capture('test/*.js', 'foo/bar.css'));\n * //=> null\n * ```\n * @param {String} `pattern` Glob pattern to use for matching.\n * @param {String} `string` String to match\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns an array of captures if the string matches the glob pattern, otherwise `null`.\n * @api public\n */\n\nmicromatch.capture = function(pattern, str, options) {\n  var re = micromatch.makeRe(pattern, extend({capture: true}, options));\n  var unixify = utils.unixify(options);\n\n  function match() {\n    return function(string) {\n      var match = re.exec(unixify(string));\n      if (!match) {\n        return null;\n      }\n\n      return match.slice(1);\n    };\n  }\n\n  var capture = memoize('capture', pattern, options, match);\n  return capture(str);\n};\n\n/**\n * Create a regular expression from the given glob `pattern`.\n *\n * ```js\n * var mm = require('micromatch');\n * mm.makeRe(pattern[, options]);\n *\n * console.log(mm.makeRe('*.js'));\n * //=> /^(?:(\\.[\\\\\\/])?(?!\\.)(?=.)[^\\/]*?\\.js)$/\n * ```\n * @param {String} `pattern` A glob pattern to convert to regex.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed.\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\nmicromatch.makeRe = function(pattern, options) {\n  if (typeof pattern !== 'string') {\n    throw new TypeError('expected pattern to be a string');\n  }\n\n  if (pattern.length > MAX_LENGTH) {\n    throw new Error('expected pattern to be less than ' + MAX_LENGTH + ' characters');\n  }\n\n  function makeRe() {\n    var result = micromatch.create(pattern, options);\n    var ast_array = [];\n    var output = result.map(function(obj) {\n      obj.ast.state = obj.state;\n      ast_array.push(obj.ast);\n      return obj.output;\n    });\n\n    var regex = toRegex(output.join('|'), options);\n    Object.defineProperty(regex, 'result', {\n      configurable: true,\n      enumerable: false,\n      value: ast_array\n    });\n    return regex;\n  }\n\n  return memoize('makeRe', pattern, options, makeRe);\n};\n\n/**\n * Expand the given brace `pattern`.\n *\n * ```js\n * var mm = require('micromatch');\n * console.log(mm.braces('foo/{a,b}/bar'));\n * //=> ['foo/(a|b)/bar']\n *\n * console.log(mm.braces('foo/{a,b}/bar', {expand: true}));\n * //=> ['foo/(a|b)/bar']\n * ```\n * @param {String} `pattern` String with brace pattern to expand.\n * @param {Object} `options` Any [options](#options) to change how expansion is performed. See the [braces][] library for all available options.\n * @return {Array}\n * @api public\n */\n\nmicromatch.braces = function(pattern, options) {\n  if (typeof pattern !== 'string' && !Array.isArray(pattern)) {\n    throw new TypeError('expected pattern to be an array or string');\n  }\n\n  function expand() {\n    if (options && options.nobrace === true || !/\\{.*\\}/.test(pattern)) {\n      return utils.arrayify(pattern);\n    }\n    return braces(pattern, options);\n  }\n\n  return memoize('braces', pattern, options, expand);\n};\n\n/**\n * Proxy to the [micromatch.braces](#method), for parity with\n * minimatch.\n */\n\nmicromatch.braceExpand = function(pattern, options) {\n  var opts = extend({}, options, {expand: true});\n  return micromatch.braces(pattern, opts);\n};\n\n/**\n * Parses the given glob `pattern` and returns an array of abstract syntax\n * trees (ASTs), with the compiled `output` and optional source `map` on\n * each AST.\n *\n * ```js\n * var mm = require('micromatch');\n * mm.create(pattern[, options]);\n *\n * console.log(mm.create('abc/*.js'));\n * // [{ options: { source: 'string', sourcemap: true },\n * //   state: {},\n * //   compilers:\n * //    { ... },\n * //   output: '(\\\\.[\\\\\\\\\\\\/])?abc\\\\/(?!\\\\.)(?=.)[^\\\\/]*?\\\\.js',\n * //   ast:\n * //    { type: 'root',\n * //      errors: [],\n * //      nodes:\n * //       [ ... ],\n * //      dot: false,\n * //      input: 'abc/*.js' },\n * //   parsingErrors: [],\n * //   map:\n * //    { version: 3,\n * //      sources: [ 'string' ],\n * //      names: [],\n * //      mappings: 'AAAA,GAAG,EAAC,kBAAC,EAAC,EAAE',\n * //      sourcesContent: [ 'abc/*.js' ] },\n * //   position: { line: 1, column: 28 },\n * //   content: {},\n * //   files: {},\n * //   idx: 6 }]\n * ```\n * @param {String} `pattern` Glob pattern to parse and compile.\n * @param {Object} `options` Any [options](#options) to change how parsing and compiling is performed.\n * @return {Object} Returns an object with the parsed AST, compiled string and optional source map.\n * @api public\n */\n\nmicromatch.create = function(pattern, options) {\n  return memoize('create', pattern, options, function() {\n    function create(str, opts) {\n      return micromatch.compile(micromatch.parse(str, opts), opts);\n    }\n\n    pattern = micromatch.braces(pattern, options);\n    var len = pattern.length;\n    var idx = -1;\n    var res = [];\n\n    while (++idx < len) {\n      res.push(create(pattern[idx], options));\n    }\n    return res;\n  });\n};\n\n/**\n * Parse the given `str` with the given `options`.\n *\n * ```js\n * var mm = require('micromatch');\n * mm.parse(pattern[, options]);\n *\n * var ast = mm.parse('a/{b,c}/d');\n * console.log(ast);\n * // { type: 'root',\n * //   errors: [],\n * //   input: 'a/{b,c}/d',\n * //   nodes:\n * //    [ { type: 'bos', val: '' },\n * //      { type: 'text', val: 'a/' },\n * //      { type: 'brace',\n * //        nodes:\n * //         [ { type: 'brace.open', val: '{' },\n * //           { type: 'text', val: 'b,c' },\n * //           { type: 'brace.close', val: '}' } ] },\n * //      { type: 'text', val: '/d' },\n * //      { type: 'eos', val: '' } ] }\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {Object} Returns an AST\n * @api public\n */\n\nmicromatch.parse = function(pattern, options) {\n  if (typeof pattern !== 'string') {\n    throw new TypeError('expected a string');\n  }\n\n  function parse() {\n    var snapdragon = utils.instantiate(null, options);\n    parsers(snapdragon, options);\n\n    var ast = snapdragon.parse(pattern, options);\n    utils.define(ast, 'snapdragon', snapdragon);\n    ast.input = pattern;\n    return ast;\n  }\n\n  return memoize('parse', pattern, options, parse);\n};\n\n/**\n * Compile the given `ast` or string with the given `options`.\n *\n * ```js\n * var mm = require('micromatch');\n * mm.compile(ast[, options]);\n *\n * var ast = mm.parse('a/{b,c}/d');\n * console.log(mm.compile(ast));\n * // { options: { source: 'string' },\n * //   state: {},\n * //   compilers:\n * //    { eos: [Function],\n * //      noop: [Function],\n * //      bos: [Function],\n * //      brace: [Function],\n * //      'brace.open': [Function],\n * //      text: [Function],\n * //      'brace.close': [Function] },\n * //   output: [ 'a/(b|c)/d' ],\n * //   ast:\n * //    { ... },\n * //   parsingErrors: [] }\n * ```\n * @param {Object|String} `ast`\n * @param {Object} `options`\n * @return {Object} Returns an object that has an `output` property with the compiled string.\n * @api public\n */\n\nmicromatch.compile = function(ast, options) {\n  if (typeof ast === 'string') {\n    ast = micromatch.parse(ast, options);\n  }\n\n  return memoize('compile', ast.input, options, function() {\n    var snapdragon = utils.instantiate(ast, options);\n    compilers(snapdragon, options);\n    return snapdragon.compile(ast, options);\n  });\n};\n\n/**\n * Clear the regex cache.\n *\n * ```js\n * mm.clearCache();\n * ```\n * @api public\n */\n\nmicromatch.clearCache = function() {\n  micromatch.cache.caches = {};\n};\n\n/**\n * Returns true if the given value is effectively an empty string\n */\n\nfunction isEmptyString(val) {\n  return String(val) === '' || String(val) === './';\n}\n\n/**\n * Compose a matcher function with the given patterns.\n * This allows matcher functions to be compiled once and\n * called multiple times.\n */\n\nfunction compose(patterns, options, matcher) {\n  var matchers;\n\n  return memoize('compose', String(patterns), options, function() {\n    return function(file) {\n      // delay composition until it's invoked the first time,\n      // after that it won't be called again\n      if (!matchers) {\n        matchers = [];\n        for (var i = 0; i < patterns.length; i++) {\n          matchers.push(matcher(patterns[i], options));\n        }\n      }\n\n      var len = matchers.length;\n      while (len--) {\n        if (matchers[len](file) === true) {\n          return true;\n        }\n      }\n      return false;\n    };\n  });\n}\n\n/**\n * Memoize a generated regex or function. A unique key is generated\n * from the `type` (usually method name), the `pattern`, and\n * user-defined options.\n */\n\nfunction memoize(type, pattern, options, fn) {\n  var key = utils.createKey(type + '=' + pattern, options);\n\n  if (options && options.cache === false) {\n    return fn(pattern, options);\n  }\n\n  if (cache.has(type, key)) {\n    return cache.get(type, key);\n  }\n\n  var val = fn(pattern, options);\n  cache.set(type, key, val);\n  return val;\n}\n\n/**\n * Expose compiler, parser and cache on `micromatch`\n */\n\nmicromatch.compilers = compilers;\nmicromatch.parsers = parsers;\nmicromatch.caches = cache.caches;\n\n/**\n * Expose `micromatch`\n * @type {Function}\n */\n\nmodule.exports = micromatch;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/micromatch/index.js?");

/***/ }),

/***/ "./node_modules/micromatch/lib/cache.js":
/*!**********************************************!*\
  !*** ./node_modules/micromatch/lib/cache.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("module.exports = new (__webpack_require__(/*! fragment-cache */ \"./node_modules/fragment-cache/index.js\"))();\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/micromatch/lib/cache.js?");

/***/ }),

/***/ "./node_modules/micromatch/lib/compilers.js":
/*!**************************************************!*\
  !*** ./node_modules/micromatch/lib/compilers.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar nanomatch = __webpack_require__(/*! nanomatch */ \"./node_modules/nanomatch/index.js\");\nvar extglob = __webpack_require__(/*! extglob */ \"./node_modules/extglob/index.js\");\n\nmodule.exports = function(snapdragon) {\n  var compilers = snapdragon.compiler.compilers;\n  var opts = snapdragon.options;\n\n  // register nanomatch compilers\n  snapdragon.use(nanomatch.compilers);\n\n  // get references to some specific nanomatch compilers before they\n  // are overridden by the extglob and/or custom compilers\n  var escape = compilers.escape;\n  var qmark = compilers.qmark;\n  var slash = compilers.slash;\n  var star = compilers.star;\n  var text = compilers.text;\n  var plus = compilers.plus;\n  var dot = compilers.dot;\n\n  // register extglob compilers or escape exglobs if disabled\n  if (opts.extglob === false || opts.noext === true) {\n    snapdragon.compiler.use(escapeExtglobs);\n  } else {\n    snapdragon.use(extglob.compilers);\n  }\n\n  snapdragon.use(function() {\n    this.options.star = this.options.star || function(/*node*/) {\n      return '[^\\\\\\\\/]*?';\n    };\n  });\n\n  // custom micromatch compilers\n  snapdragon.compiler\n\n    // reset referenced compiler\n    .set('dot', dot)\n    .set('escape', escape)\n    .set('plus', plus)\n    .set('slash', slash)\n    .set('qmark', qmark)\n    .set('star', star)\n    .set('text', text);\n};\n\nfunction escapeExtglobs(compiler) {\n  compiler.set('paren', function(node) {\n    var val = '';\n    visit(node, function(tok) {\n      if (tok.val) val += (/^\\W/.test(tok.val) ? '\\\\' : '') + tok.val;\n    });\n    return this.emit(val, node);\n  });\n\n  /**\n   * Visit `node` with the given `fn`\n   */\n\n  function visit(node, fn) {\n    return node.nodes ? mapVisit(node.nodes, fn) : fn(node);\n  }\n\n  /**\n   * Map visit over array of `nodes`.\n   */\n\n  function mapVisit(nodes, fn) {\n    var len = nodes.length;\n    var idx = -1;\n    while (++idx < len) {\n      visit(nodes[idx], fn);\n    }\n  }\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/micromatch/lib/compilers.js?");

/***/ }),

/***/ "./node_modules/micromatch/lib/parsers.js":
/*!************************************************!*\
  !*** ./node_modules/micromatch/lib/parsers.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar extglob = __webpack_require__(/*! extglob */ \"./node_modules/extglob/index.js\");\nvar nanomatch = __webpack_require__(/*! nanomatch */ \"./node_modules/nanomatch/index.js\");\nvar regexNot = __webpack_require__(/*! regex-not */ \"./node_modules/regex-not/index.js\");\nvar toRegex = __webpack_require__(/*! to-regex */ \"./node_modules/to-regex/index.js\");\nvar not;\n\n/**\n * Characters to use in negation regex (we want to \"not\" match\n * characters that are matched by other parsers)\n */\n\nvar TEXT = '([!@*?+]?\\\\(|\\\\)|\\\\[:?(?=.*?:?\\\\])|:?\\\\]|[*+?!^$.\\\\\\\\/])+';\nvar createNotRegex = function(opts) {\n  return not || (not = textRegex(TEXT));\n};\n\n/**\n * Parsers\n */\n\nmodule.exports = function(snapdragon) {\n  var parsers = snapdragon.parser.parsers;\n\n  // register nanomatch parsers\n  snapdragon.use(nanomatch.parsers);\n\n  // get references to some specific nanomatch parsers before they\n  // are overridden by the extglob and/or parsers\n  var escape = parsers.escape;\n  var slash = parsers.slash;\n  var qmark = parsers.qmark;\n  var plus = parsers.plus;\n  var star = parsers.star;\n  var dot = parsers.dot;\n\n  // register extglob parsers\n  snapdragon.use(extglob.parsers);\n\n  // custom micromatch parsers\n  snapdragon.parser\n    .use(function() {\n      // override \"notRegex\" created in nanomatch parser\n      this.notRegex = /^\\!+(?!\\()/;\n    })\n    // reset the referenced parsers\n    .capture('escape', escape)\n    .capture('slash', slash)\n    .capture('qmark', qmark)\n    .capture('star', star)\n    .capture('plus', plus)\n    .capture('dot', dot)\n\n    /**\n     * Override `text` parser\n     */\n\n    .capture('text', function() {\n      if (this.isInside('bracket')) return;\n      var pos = this.position();\n      var m = this.match(createNotRegex(this.options));\n      if (!m || !m[0]) return;\n\n      // escape regex boundary characters and simple brackets\n      var val = m[0].replace(/([[\\]^$])/g, '\\\\$1');\n\n      return pos({\n        type: 'text',\n        val: val\n      });\n    });\n};\n\n/**\n * Create text regex\n */\n\nfunction textRegex(pattern) {\n  var notStr = regexNot.create(pattern, {contains: true, strictClose: false});\n  var prefix = '(?:[\\\\^]|\\\\\\\\|';\n  return toRegex(prefix + notStr + ')', {strictClose: false});\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/micromatch/lib/parsers.js?");

/***/ }),

/***/ "./node_modules/micromatch/lib/utils.js":
/*!**********************************************!*\
  !*** ./node_modules/micromatch/lib/utils.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar utils = module.exports;\nvar path = __webpack_require__(/*! path */ \"path\");\n\n/**\n * Module dependencies\n */\n\nvar Snapdragon = __webpack_require__(/*! snapdragon */ \"./node_modules/snapdragon/index.js\");\nutils.define = __webpack_require__(/*! define-property */ \"./node_modules/micromatch/node_modules/define-property/index.js\");\nutils.diff = __webpack_require__(/*! arr-diff */ \"./node_modules/arr-diff/index.js\");\nutils.extend = __webpack_require__(/*! extend-shallow */ \"./node_modules/micromatch/node_modules/extend-shallow/index.js\");\nutils.pick = __webpack_require__(/*! object.pick */ \"./node_modules/object.pick/index.js\");\nutils.typeOf = __webpack_require__(/*! kind-of */ \"./node_modules/kind-of/index.js\");\nutils.unique = __webpack_require__(/*! array-unique */ \"./node_modules/array-unique/index.js\");\n\n/**\n * Returns true if the platform is windows, or `path.sep` is `\\\\`.\n * This is defined as a function to allow `path.sep` to be set in unit tests,\n * or by the user, if there is a reason to do so.\n * @return {Boolean}\n */\n\nutils.isWindows = function() {\n  return path.sep === '\\\\' || process.platform === 'win32';\n};\n\n/**\n * Get the `Snapdragon` instance to use\n */\n\nutils.instantiate = function(ast, options) {\n  var snapdragon;\n  // if an instance was created by `.parse`, use that instance\n  if (utils.typeOf(ast) === 'object' && ast.snapdragon) {\n    snapdragon = ast.snapdragon;\n  // if the user supplies an instance on options, use that instance\n  } else if (utils.typeOf(options) === 'object' && options.snapdragon) {\n    snapdragon = options.snapdragon;\n  // create a new instance\n  } else {\n    snapdragon = new Snapdragon(options);\n  }\n\n  utils.define(snapdragon, 'parse', function(str, options) {\n    var parsed = Snapdragon.prototype.parse.apply(this, arguments);\n    parsed.input = str;\n\n    // escape unmatched brace/bracket/parens\n    var last = this.parser.stack.pop();\n    if (last && this.options.strictErrors !== true) {\n      var open = last.nodes[0];\n      var inner = last.nodes[1];\n      if (last.type === 'bracket') {\n        if (inner.val.charAt(0) === '[') {\n          inner.val = '\\\\' + inner.val;\n        }\n\n      } else {\n        open.val = '\\\\' + open.val;\n        var sibling = open.parent.nodes[1];\n        if (sibling.type === 'star') {\n          sibling.loose = true;\n        }\n      }\n    }\n\n    // add non-enumerable parser reference\n    utils.define(parsed, 'parser', this.parser);\n    return parsed;\n  });\n\n  return snapdragon;\n};\n\n/**\n * Create the key to use for memoization. The key is generated\n * by iterating over the options and concatenating key-value pairs\n * to the pattern string.\n */\n\nutils.createKey = function(pattern, options) {\n  if (utils.typeOf(options) !== 'object') {\n    return pattern;\n  }\n  var val = pattern;\n  var keys = Object.keys(options);\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    val += ';' + key + '=' + String(options[key]);\n  }\n  return val;\n};\n\n/**\n * Cast `val` to an array\n * @return {Array}\n */\n\nutils.arrayify = function(val) {\n  if (typeof val === 'string') return [val];\n  return val ? (Array.isArray(val) ? val : [val]) : [];\n};\n\n/**\n * Return true if `val` is a non-empty string\n */\n\nutils.isString = function(val) {\n  return typeof val === 'string';\n};\n\n/**\n * Return true if `val` is a non-empty string\n */\n\nutils.isObject = function(val) {\n  return utils.typeOf(val) === 'object';\n};\n\n/**\n * Returns true if the given `str` has special characters\n */\n\nutils.hasSpecialChars = function(str) {\n  return /(?:(?:(^|\\/)[!.])|[*?+()|\\[\\]{}]|[+@]\\()/.test(str);\n};\n\n/**\n * Escape regex characters in the given string\n */\n\nutils.escapeRegex = function(str) {\n  return str.replace(/[-[\\]{}()^$|*+?.\\\\\\/\\s]/g, '\\\\$&');\n};\n\n/**\n * Normalize slashes in the given filepath.\n *\n * @param {String} `filepath`\n * @return {String}\n */\n\nutils.toPosixPath = function(str) {\n  return str.replace(/\\\\+/g, '/');\n};\n\n/**\n * Strip backslashes before special characters in a string.\n *\n * @param {String} `str`\n * @return {String}\n */\n\nutils.unescape = function(str) {\n  return utils.toPosixPath(str.replace(/\\\\(?=[*+?!.])/g, ''));\n};\n\n/**\n * Strip the prefix from a filepath\n * @param {String} `fp`\n * @return {String}\n */\n\nutils.stripPrefix = function(str) {\n  if (str.charAt(0) !== '.') {\n    return str;\n  }\n  var ch = str.charAt(1);\n  if (utils.isSlash(ch)) {\n    return str.slice(2);\n  }\n  return str;\n};\n\n/**\n * Returns true if the given str is an escaped or\n * unescaped path character\n */\n\nutils.isSlash = function(str) {\n  return str === '/' || str === '\\\\/' || str === '\\\\' || str === '\\\\\\\\';\n};\n\n/**\n * Returns a function that returns true if the given\n * pattern matches or contains a `filepath`\n *\n * @param {String} `pattern`\n * @return {Function}\n */\n\nutils.matchPath = function(pattern, options) {\n  return (options && options.contains)\n    ? utils.containsPattern(pattern, options)\n    : utils.equalsPattern(pattern, options);\n};\n\n/**\n * Returns true if the given (original) filepath or unixified path are equal\n * to the given pattern.\n */\n\nutils._equals = function(filepath, unixPath, pattern) {\n  return pattern === filepath || pattern === unixPath;\n};\n\n/**\n * Returns true if the given (original) filepath or unixified path contain\n * the given pattern.\n */\n\nutils._contains = function(filepath, unixPath, pattern) {\n  return filepath.indexOf(pattern) !== -1 || unixPath.indexOf(pattern) !== -1;\n};\n\n/**\n * Returns a function that returns true if the given\n * pattern is the same as a given `filepath`\n *\n * @param {String} `pattern`\n * @return {Function}\n */\n\nutils.equalsPattern = function(pattern, options) {\n  var unixify = utils.unixify(options);\n  options = options || {};\n\n  return function fn(filepath) {\n    var equal = utils._equals(filepath, unixify(filepath), pattern);\n    if (equal === true || options.nocase !== true) {\n      return equal;\n    }\n    var lower = filepath.toLowerCase();\n    return utils._equals(lower, unixify(lower), pattern);\n  };\n};\n\n/**\n * Returns a function that returns true if the given\n * pattern contains a `filepath`\n *\n * @param {String} `pattern`\n * @return {Function}\n */\n\nutils.containsPattern = function(pattern, options) {\n  var unixify = utils.unixify(options);\n  options = options || {};\n\n  return function(filepath) {\n    var contains = utils._contains(filepath, unixify(filepath), pattern);\n    if (contains === true || options.nocase !== true) {\n      return contains;\n    }\n    var lower = filepath.toLowerCase();\n    return utils._contains(lower, unixify(lower), pattern);\n  };\n};\n\n/**\n * Returns a function that returns true if the given\n * regex matches the `filename` of a file path.\n *\n * @param {RegExp} `re` Matching regex\n * @return {Function}\n */\n\nutils.matchBasename = function(re) {\n  return function(filepath) {\n    return re.test(path.basename(filepath));\n  };\n};\n\n/**\n * Determines the filepath to return based on the provided options.\n * @return {any}\n */\n\nutils.value = function(str, unixify, options) {\n  if (options && options.unixify === false) {\n    return str;\n  }\n  return unixify(str);\n};\n\n/**\n * Returns a function that normalizes slashes in a string to forward\n * slashes, strips `./` from beginning of paths, and optionally unescapes\n * special characters.\n * @return {Function}\n */\n\nutils.unixify = function(options) {\n  options = options || {};\n  return function(filepath) {\n    if (utils.isWindows() || options.unixify === true) {\n      filepath = utils.toPosixPath(filepath);\n    }\n    if (options.stripPrefix !== false) {\n      filepath = utils.stripPrefix(filepath);\n    }\n    if (options.unescape === true) {\n      filepath = utils.unescape(filepath);\n    }\n    return filepath;\n  };\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/micromatch/lib/utils.js?");

/***/ }),

/***/ "./node_modules/micromatch/node_modules/define-property/index.js":
/*!***********************************************************************!*\
  !*** ./node_modules/micromatch/node_modules/define-property/index.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * define-property <https://github.com/jonschlinkert/define-property>\n *\n * Copyright (c) 2015-2018, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar isobject = __webpack_require__(/*! isobject */ \"./node_modules/isobject/index.js\");\nvar isDescriptor = __webpack_require__(/*! is-descriptor */ \"./node_modules/is-descriptor/index.js\");\nvar define = (typeof Reflect !== 'undefined' && Reflect.defineProperty)\n  ? Reflect.defineProperty\n  : Object.defineProperty;\n\nmodule.exports = function defineProperty(obj, key, val) {\n  if (!isobject(obj) && typeof obj !== 'function' && !Array.isArray(obj)) {\n    throw new TypeError('expected an object, function, or array');\n  }\n\n  if (typeof key !== 'string') {\n    throw new TypeError('expected \"key\" to be a string');\n  }\n\n  if (isDescriptor(val)) {\n    define(obj, key, val);\n    return obj;\n  }\n\n  define(obj, key, {\n    configurable: true,\n    enumerable: false,\n    writable: true,\n    value: val\n  });\n\n  return obj;\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/micromatch/node_modules/define-property/index.js?");

/***/ }),

/***/ "./node_modules/micromatch/node_modules/extend-shallow/index.js":
/*!**********************************************************************!*\
  !*** ./node_modules/micromatch/node_modules/extend-shallow/index.js ***!
  \**********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar isExtendable = __webpack_require__(/*! is-extendable */ \"./node_modules/micromatch/node_modules/is-extendable/index.js\");\nvar assignSymbols = __webpack_require__(/*! assign-symbols */ \"./node_modules/assign-symbols/index.js\");\n\nmodule.exports = Object.assign || function(obj/*, objects*/) {\n  if (obj === null || typeof obj === 'undefined') {\n    throw new TypeError('Cannot convert undefined or null to object');\n  }\n  if (!isObject(obj)) {\n    obj = {};\n  }\n  for (var i = 1; i < arguments.length; i++) {\n    var val = arguments[i];\n    if (isString(val)) {\n      val = toObject(val);\n    }\n    if (isObject(val)) {\n      assign(obj, val);\n      assignSymbols(obj, val);\n    }\n  }\n  return obj;\n};\n\nfunction assign(a, b) {\n  for (var key in b) {\n    if (hasOwn(b, key)) {\n      a[key] = b[key];\n    }\n  }\n}\n\nfunction isString(val) {\n  return (val && typeof val === 'string');\n}\n\nfunction toObject(str) {\n  var obj = {};\n  for (var i in str) {\n    obj[i] = str[i];\n  }\n  return obj;\n}\n\nfunction isObject(val) {\n  return (val && typeof val === 'object') || isExtendable(val);\n}\n\n/**\n * Returns true if the given `key` is an own property of `obj`.\n */\n\nfunction hasOwn(obj, key) {\n  return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nfunction isEnum(obj, key) {\n  return Object.prototype.propertyIsEnumerable.call(obj, key);\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/micromatch/node_modules/extend-shallow/index.js?");

/***/ }),

/***/ "./node_modules/micromatch/node_modules/is-extendable/index.js":
/*!*********************************************************************!*\
  !*** ./node_modules/micromatch/node_modules/is-extendable/index.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * is-extendable <https://github.com/jonschlinkert/is-extendable>\n *\n * Copyright (c) 2015-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar isPlainObject = __webpack_require__(/*! is-plain-object */ \"./node_modules/is-plain-object/index.js\");\n\nmodule.exports = function isExtendable(val) {\n  return isPlainObject(val) || typeof val === 'function' || Array.isArray(val);\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/micromatch/node_modules/is-extendable/index.js?");

/***/ }),

/***/ "./node_modules/mixin-deep/index.js":
/*!******************************************!*\
  !*** ./node_modules/mixin-deep/index.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar isExtendable = __webpack_require__(/*! is-extendable */ \"./node_modules/mixin-deep/node_modules/is-extendable/index.js\");\nvar forIn = __webpack_require__(/*! for-in */ \"./node_modules/for-in/index.js\");\n\nfunction mixinDeep(target, objects) {\n  var len = arguments.length, i = 0;\n  while (++i < len) {\n    var obj = arguments[i];\n    if (isObject(obj)) {\n      forIn(obj, copy, target);\n    }\n  }\n  return target;\n}\n\n/**\n * Copy properties from the source object to the\n * target object.\n *\n * @param  {*} `val`\n * @param  {String} `key`\n */\n\nfunction copy(val, key) {\n  if (!isValidKey(key)) {\n    return;\n  }\n\n  var obj = this[key];\n  if (isObject(val) && isObject(obj)) {\n    mixinDeep(obj, val);\n  } else {\n    this[key] = val;\n  }\n}\n\n/**\n * Returns true if `val` is an object or function.\n *\n * @param  {any} val\n * @return {Boolean}\n */\n\nfunction isObject(val) {\n  return isExtendable(val) && !Array.isArray(val);\n}\n\n/**\n * Returns true if `key` is a valid key to use when extending objects.\n *\n * @param  {String} `key`\n * @return {Boolean}\n */\n\nfunction isValidKey(key) {\n  return key !== '__proto__' && key !== 'constructor' && key !== 'prototype';\n};\n\n/**\n * Expose `mixinDeep`\n */\n\nmodule.exports = mixinDeep;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/mixin-deep/index.js?");

/***/ }),

/***/ "./node_modules/mixin-deep/node_modules/is-extendable/index.js":
/*!*********************************************************************!*\
  !*** ./node_modules/mixin-deep/node_modules/is-extendable/index.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * is-extendable <https://github.com/jonschlinkert/is-extendable>\n *\n * Copyright (c) 2015-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar isPlainObject = __webpack_require__(/*! is-plain-object */ \"./node_modules/is-plain-object/index.js\");\n\nmodule.exports = function isExtendable(val) {\n  return isPlainObject(val) || typeof val === 'function' || Array.isArray(val);\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/mixin-deep/node_modules/is-extendable/index.js?");

/***/ }),

/***/ "./node_modules/ms/index.js":
/*!**********************************!*\
  !*** ./node_modules/ms/index.js ***!
  \**********************************/
/***/ ((module) => {

eval("/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n *  - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n  options = options || {};\n  var type = typeof val;\n  if (type === 'string' && val.length > 0) {\n    return parse(val);\n  } else if (type === 'number' && isNaN(val) === false) {\n    return options.long ? fmtLong(val) : fmtShort(val);\n  }\n  throw new Error(\n    'val is not a non-empty string or a valid number. val=' +\n      JSON.stringify(val)\n  );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n  str = String(str);\n  if (str.length > 100) {\n    return;\n  }\n  var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n    str\n  );\n  if (!match) {\n    return;\n  }\n  var n = parseFloat(match[1]);\n  var type = (match[2] || 'ms').toLowerCase();\n  switch (type) {\n    case 'years':\n    case 'year':\n    case 'yrs':\n    case 'yr':\n    case 'y':\n      return n * y;\n    case 'days':\n    case 'day':\n    case 'd':\n      return n * d;\n    case 'hours':\n    case 'hour':\n    case 'hrs':\n    case 'hr':\n    case 'h':\n      return n * h;\n    case 'minutes':\n    case 'minute':\n    case 'mins':\n    case 'min':\n    case 'm':\n      return n * m;\n    case 'seconds':\n    case 'second':\n    case 'secs':\n    case 'sec':\n    case 's':\n      return n * s;\n    case 'milliseconds':\n    case 'millisecond':\n    case 'msecs':\n    case 'msec':\n    case 'ms':\n      return n;\n    default:\n      return undefined;\n  }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n  if (ms >= d) {\n    return Math.round(ms / d) + 'd';\n  }\n  if (ms >= h) {\n    return Math.round(ms / h) + 'h';\n  }\n  if (ms >= m) {\n    return Math.round(ms / m) + 'm';\n  }\n  if (ms >= s) {\n    return Math.round(ms / s) + 's';\n  }\n  return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n  return plural(ms, d, 'day') ||\n    plural(ms, h, 'hour') ||\n    plural(ms, m, 'minute') ||\n    plural(ms, s, 'second') ||\n    ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n  if (ms < n) {\n    return;\n  }\n  if (ms < n * 1.5) {\n    return Math.floor(ms / n) + ' ' + name;\n  }\n  return Math.ceil(ms / n) + ' ' + name + 's';\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/ms/index.js?");

/***/ }),

/***/ "./node_modules/nanomatch/index.js":
/*!*****************************************!*\
  !*** ./node_modules/nanomatch/index.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\n/**\n * Module dependencies\n */\n\nvar util = __webpack_require__(/*! util */ \"util\");\nvar toRegex = __webpack_require__(/*! to-regex */ \"./node_modules/to-regex/index.js\");\nvar extend = __webpack_require__(/*! extend-shallow */ \"./node_modules/nanomatch/node_modules/extend-shallow/index.js\");\n\n/**\n * Local dependencies\n */\n\nvar compilers = __webpack_require__(/*! ./lib/compilers */ \"./node_modules/nanomatch/lib/compilers.js\");\nvar parsers = __webpack_require__(/*! ./lib/parsers */ \"./node_modules/nanomatch/lib/parsers.js\");\nvar cache = __webpack_require__(/*! ./lib/cache */ \"./node_modules/nanomatch/lib/cache.js\");\nvar utils = __webpack_require__(/*! ./lib/utils */ \"./node_modules/nanomatch/lib/utils.js\");\nvar MAX_LENGTH = 1024 * 64;\n\n/**\n * The main function takes a list of strings and one or more\n * glob patterns to use for matching.\n *\n * ```js\n * var nm = require('nanomatch');\n * nm(list, patterns[, options]);\n *\n * console.log(nm(['a.js', 'a.txt'], ['*.js']));\n * //=> [ 'a.js' ]\n * ```\n * @param {Array} `list` A list of strings to match\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Array} Returns an array of matches\n * @summary false\n * @api public\n */\n\nfunction nanomatch(list, patterns, options) {\n  patterns = utils.arrayify(patterns);\n  list = utils.arrayify(list);\n\n  var len = patterns.length;\n  if (list.length === 0 || len === 0) {\n    return [];\n  }\n\n  if (len === 1) {\n    return nanomatch.match(list, patterns[0], options);\n  }\n\n  var negated = false;\n  var omit = [];\n  var keep = [];\n  var idx = -1;\n\n  while (++idx < len) {\n    var pattern = patterns[idx];\n\n    if (typeof pattern === 'string' && pattern.charCodeAt(0) === 33 /* ! */) {\n      omit.push.apply(omit, nanomatch.match(list, pattern.slice(1), options));\n      negated = true;\n    } else {\n      keep.push.apply(keep, nanomatch.match(list, pattern, options));\n    }\n  }\n\n  // minimatch.match parity\n  if (negated && keep.length === 0) {\n    if (options && options.unixify === false) {\n      keep = list.slice();\n    } else {\n      var unixify = utils.unixify(options);\n      for (var i = 0; i < list.length; i++) {\n        keep.push(unixify(list[i]));\n      }\n    }\n  }\n\n  var matches = utils.diff(keep, omit);\n  if (!options || options.nodupes !== false) {\n    return utils.unique(matches);\n  }\n\n  return matches;\n}\n\n/**\n * Similar to the main function, but `pattern` must be a string.\n *\n * ```js\n * var nm = require('nanomatch');\n * nm.match(list, pattern[, options]);\n *\n * console.log(nm.match(['a.a', 'a.aa', 'a.b', 'a.c'], '*.a'));\n * //=> ['a.a', 'a.aa']\n * ```\n * @param {Array} `list` Array of strings to match\n * @param {String} `pattern` Glob pattern to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Array} Returns an array of matches\n * @api public\n */\n\nnanomatch.match = function(list, pattern, options) {\n  if (Array.isArray(pattern)) {\n    throw new TypeError('expected pattern to be a string');\n  }\n\n  var unixify = utils.unixify(options);\n  var isMatch = memoize('match', pattern, options, nanomatch.matcher);\n  var matches = [];\n\n  list = utils.arrayify(list);\n  var len = list.length;\n  var idx = -1;\n\n  while (++idx < len) {\n    var ele = list[idx];\n    if (ele === pattern || isMatch(ele)) {\n      matches.push(utils.value(ele, unixify, options));\n    }\n  }\n\n  // if no options were passed, uniquify results and return\n  if (typeof options === 'undefined') {\n    return utils.unique(matches);\n  }\n\n  if (matches.length === 0) {\n    if (options.failglob === true) {\n      throw new Error('no matches found for \"' + pattern + '\"');\n    }\n    if (options.nonull === true || options.nullglob === true) {\n      return [options.unescape ? utils.unescape(pattern) : pattern];\n    }\n  }\n\n  // if `opts.ignore` was defined, diff ignored list\n  if (options.ignore) {\n    matches = nanomatch.not(matches, options.ignore, options);\n  }\n\n  return options.nodupes !== false ? utils.unique(matches) : matches;\n};\n\n/**\n * Returns true if the specified `string` matches the given glob `pattern`.\n *\n * ```js\n * var nm = require('nanomatch');\n * nm.isMatch(string, pattern[, options]);\n *\n * console.log(nm.isMatch('a.a', '*.a'));\n * //=> true\n * console.log(nm.isMatch('a.b', '*.a'));\n * //=> false\n * ```\n * @param {String} `string` String to match\n * @param {String} `pattern` Glob pattern to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if the string matches the glob pattern.\n * @api public\n */\n\nnanomatch.isMatch = function(str, pattern, options) {\n  if (typeof str !== 'string') {\n    throw new TypeError('expected a string: \"' + util.inspect(str) + '\"');\n  }\n\n  if (utils.isEmptyString(str) || utils.isEmptyString(pattern)) {\n    return false;\n  }\n\n  var equals = utils.equalsPattern(options);\n  if (equals(str)) {\n    return true;\n  }\n\n  var isMatch = memoize('isMatch', pattern, options, nanomatch.matcher);\n  return isMatch(str);\n};\n\n/**\n * Returns true if some of the elements in the given `list` match any of the\n * given glob `patterns`.\n *\n * ```js\n * var nm = require('nanomatch');\n * nm.some(list, patterns[, options]);\n *\n * console.log(nm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js']));\n * // true\n * console.log(nm.some(['foo.js'], ['*.js', '!foo.js']));\n * // false\n * ```\n * @param  {String|Array} `list` The string or array of strings to test. Returns as soon as the first match is found.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\nnanomatch.some = function(list, patterns, options) {\n  if (typeof list === 'string') {\n    list = [list];\n  }\n\n  for (var i = 0; i < list.length; i++) {\n    if (nanomatch(list[i], patterns, options).length === 1) {\n      return true;\n    }\n  }\n\n  return false;\n};\n\n/**\n * Returns true if every element in the given `list` matches\n * at least one of the given glob `patterns`.\n *\n * ```js\n * var nm = require('nanomatch');\n * nm.every(list, patterns[, options]);\n *\n * console.log(nm.every('foo.js', ['foo.js']));\n * // true\n * console.log(nm.every(['foo.js', 'bar.js'], ['*.js']));\n * // true\n * console.log(nm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js']));\n * // false\n * console.log(nm.every(['foo.js'], ['*.js', '!foo.js']));\n * // false\n * ```\n * @param  {String|Array} `list` The string or array of strings to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\nnanomatch.every = function(list, patterns, options) {\n  if (typeof list === 'string') {\n    list = [list];\n  }\n\n  for (var i = 0; i < list.length; i++) {\n    if (nanomatch(list[i], patterns, options).length !== 1) {\n      return false;\n    }\n  }\n\n  return true;\n};\n\n/**\n * Returns true if **any** of the given glob `patterns`\n * match the specified `string`.\n *\n * ```js\n * var nm = require('nanomatch');\n * nm.any(string, patterns[, options]);\n *\n * console.log(nm.any('a.a', ['b.*', '*.a']));\n * //=> true\n * console.log(nm.any('a.a', 'b.*'));\n * //=> false\n * ```\n * @param  {String|Array} `str` The string to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\nnanomatch.any = function(str, patterns, options) {\n  if (typeof str !== 'string') {\n    throw new TypeError('expected a string: \"' + util.inspect(str) + '\"');\n  }\n\n  if (utils.isEmptyString(str) || utils.isEmptyString(patterns)) {\n    return false;\n  }\n\n  if (typeof patterns === 'string') {\n    patterns = [patterns];\n  }\n\n  for (var i = 0; i < patterns.length; i++) {\n    if (nanomatch.isMatch(str, patterns[i], options)) {\n      return true;\n    }\n  }\n  return false;\n};\n\n/**\n * Returns true if **all** of the given `patterns`\n * match the specified string.\n *\n * ```js\n * var nm = require('nanomatch');\n * nm.all(string, patterns[, options]);\n *\n * console.log(nm.all('foo.js', ['foo.js']));\n * // true\n *\n * console.log(nm.all('foo.js', ['*.js', '!foo.js']));\n * // false\n *\n * console.log(nm.all('foo.js', ['*.js', 'foo.js']));\n * // true\n *\n * console.log(nm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js']));\n * // true\n * ```\n * @param  {String|Array} `str` The string to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\nnanomatch.all = function(str, patterns, options) {\n  if (typeof str !== 'string') {\n    throw new TypeError('expected a string: \"' + util.inspect(str) + '\"');\n  }\n\n  if (typeof patterns === 'string') {\n    patterns = [patterns];\n  }\n\n  for (var i = 0; i < patterns.length; i++) {\n    if (!nanomatch.isMatch(str, patterns[i], options)) {\n      return false;\n    }\n  }\n  return true;\n};\n\n/**\n * Returns a list of strings that _**do not match any**_ of the given `patterns`.\n *\n * ```js\n * var nm = require('nanomatch');\n * nm.not(list, patterns[, options]);\n *\n * console.log(nm.not(['a.a', 'b.b', 'c.c'], '*.a'));\n * //=> ['b.b', 'c.c']\n * ```\n * @param {Array} `list` Array of strings to match.\n * @param {String|Array} `patterns` One or more glob pattern to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Array} Returns an array of strings that **do not match** the given patterns.\n * @api public\n */\n\nnanomatch.not = function(list, patterns, options) {\n  var opts = extend({}, options);\n  var ignore = opts.ignore;\n  delete opts.ignore;\n\n  list = utils.arrayify(list);\n\n  var matches = utils.diff(list, nanomatch(list, patterns, opts));\n  if (ignore) {\n    matches = utils.diff(matches, nanomatch(list, ignore));\n  }\n\n  return opts.nodupes !== false ? utils.unique(matches) : matches;\n};\n\n/**\n * Returns true if the given `string` contains the given pattern. Similar\n * to [.isMatch](#isMatch) but the pattern can match any part of the string.\n *\n * ```js\n * var nm = require('nanomatch');\n * nm.contains(string, pattern[, options]);\n *\n * console.log(nm.contains('aa/bb/cc', '*b'));\n * //=> true\n * console.log(nm.contains('aa/bb/cc', '*d'));\n * //=> false\n * ```\n * @param {String} `str` The string to match.\n * @param {String|Array} `patterns` Glob pattern to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if the patter matches any part of `str`.\n * @api public\n */\n\nnanomatch.contains = function(str, patterns, options) {\n  if (typeof str !== 'string') {\n    throw new TypeError('expected a string: \"' + util.inspect(str) + '\"');\n  }\n\n  if (typeof patterns === 'string') {\n    if (utils.isEmptyString(str) || utils.isEmptyString(patterns)) {\n      return false;\n    }\n\n    var equals = utils.equalsPattern(patterns, options);\n    if (equals(str)) {\n      return true;\n    }\n    var contains = utils.containsPattern(patterns, options);\n    if (contains(str)) {\n      return true;\n    }\n  }\n\n  var opts = extend({}, options, {contains: true});\n  return nanomatch.any(str, patterns, opts);\n};\n\n/**\n * Returns true if the given pattern and options should enable\n * the `matchBase` option.\n * @return {Boolean}\n * @api private\n */\n\nnanomatch.matchBase = function(pattern, options) {\n  if (pattern && pattern.indexOf('/') !== -1 || !options) return false;\n  return options.basename === true || options.matchBase === true;\n};\n\n/**\n * Filter the keys of the given object with the given `glob` pattern\n * and `options`. Does not attempt to match nested keys. If you need this feature,\n * use [glob-object][] instead.\n *\n * ```js\n * var nm = require('nanomatch');\n * nm.matchKeys(object, patterns[, options]);\n *\n * var obj = { aa: 'a', ab: 'b', ac: 'c' };\n * console.log(nm.matchKeys(obj, '*b'));\n * //=> { ab: 'b' }\n * ```\n * @param {Object} `object` The object with keys to filter.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Object} Returns an object with only keys that match the given patterns.\n * @api public\n */\n\nnanomatch.matchKeys = function(obj, patterns, options) {\n  if (!utils.isObject(obj)) {\n    throw new TypeError('expected the first argument to be an object');\n  }\n  var keys = nanomatch(Object.keys(obj), patterns, options);\n  return utils.pick(obj, keys);\n};\n\n/**\n * Returns a memoized matcher function from the given glob `pattern` and `options`.\n * The returned function takes a string to match as its only argument and returns\n * true if the string is a match.\n *\n * ```js\n * var nm = require('nanomatch');\n * nm.matcher(pattern[, options]);\n *\n * var isMatch = nm.matcher('*.!(*a)');\n * console.log(isMatch('a.a'));\n * //=> false\n * console.log(isMatch('a.b'));\n * //=> true\n * ```\n * @param {String} `pattern` Glob pattern\n * @param {Object} `options` See available [options](#options) for changing how matches are performed.\n * @return {Function} Returns a matcher function.\n * @api public\n */\n\nnanomatch.matcher = function matcher(pattern, options) {\n  if (utils.isEmptyString(pattern)) {\n    return function() {\n      return false;\n    };\n  }\n\n  if (Array.isArray(pattern)) {\n    return compose(pattern, options, matcher);\n  }\n\n  // if pattern is a regex\n  if (pattern instanceof RegExp) {\n    return test(pattern);\n  }\n\n  // if pattern is invalid\n  if (!utils.isString(pattern)) {\n    throw new TypeError('expected pattern to be an array, string or regex');\n  }\n\n  // if pattern is a non-glob string\n  if (!utils.hasSpecialChars(pattern)) {\n    if (options && options.nocase === true) {\n      pattern = pattern.toLowerCase();\n    }\n    return utils.matchPath(pattern, options);\n  }\n\n  // if pattern is a glob string\n  var re = nanomatch.makeRe(pattern, options);\n\n  // if `options.matchBase` or `options.basename` is defined\n  if (nanomatch.matchBase(pattern, options)) {\n    return utils.matchBasename(re, options);\n  }\n\n  function test(regex) {\n    var equals = utils.equalsPattern(options);\n    var unixify = utils.unixify(options);\n\n    return function(str) {\n      if (equals(str)) {\n        return true;\n      }\n\n      if (regex.test(unixify(str))) {\n        return true;\n      }\n      return false;\n    };\n  }\n\n  // create matcher function\n  var matcherFn = test(re);\n  // set result object from compiler on matcher function,\n  // as a non-enumerable property. useful for debugging\n  utils.define(matcherFn, 'result', re.result);\n  return matcherFn;\n};\n\n/**\n * Returns an array of matches captured by `pattern` in `string, or\n * `null` if the pattern did not match.\n *\n * ```js\n * var nm = require('nanomatch');\n * nm.capture(pattern, string[, options]);\n *\n * console.log(nm.capture('test/*.js', 'test/foo.js'));\n * //=> ['foo']\n * console.log(nm.capture('test/*.js', 'foo/bar.css'));\n * //=> null\n * ```\n * @param {String} `pattern` Glob pattern to use for matching.\n * @param {String} `string` String to match\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns an array of captures if the string matches the glob pattern, otherwise `null`.\n * @api public\n */\n\nnanomatch.capture = function(pattern, str, options) {\n  var re = nanomatch.makeRe(pattern, extend({capture: true}, options));\n  var unixify = utils.unixify(options);\n\n  function match() {\n    return function(string) {\n      var match = re.exec(unixify(string));\n      if (!match) {\n        return null;\n      }\n\n      return match.slice(1);\n    };\n  }\n\n  var capture = memoize('capture', pattern, options, match);\n  return capture(str);\n};\n\n/**\n * Create a regular expression from the given glob `pattern`.\n *\n * ```js\n * var nm = require('nanomatch');\n * nm.makeRe(pattern[, options]);\n *\n * console.log(nm.makeRe('*.js'));\n * //=> /^(?:(\\.[\\\\\\/])?(?!\\.)(?=.)[^\\/]*?\\.js)$/\n * ```\n * @param {String} `pattern` A glob pattern to convert to regex.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed.\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\nnanomatch.makeRe = function(pattern, options) {\n  if (pattern instanceof RegExp) {\n    return pattern;\n  }\n\n  if (typeof pattern !== 'string') {\n    throw new TypeError('expected pattern to be a string');\n  }\n\n  if (pattern.length > MAX_LENGTH) {\n    throw new Error('expected pattern to be less than ' + MAX_LENGTH + ' characters');\n  }\n\n  function makeRe() {\n    var opts = utils.extend({wrap: false}, options);\n    var result = nanomatch.create(pattern, opts);\n    var regex = toRegex(result.output, opts);\n    utils.define(regex, 'result', result);\n    return regex;\n  }\n\n  return memoize('makeRe', pattern, options, makeRe);\n};\n\n/**\n * Parses the given glob `pattern` and returns an object with the compiled `output`\n * and optional source `map`.\n *\n * ```js\n * var nm = require('nanomatch');\n * nm.create(pattern[, options]);\n *\n * console.log(nm.create('abc/*.js'));\n * // { options: { source: 'string', sourcemap: true },\n * //   state: {},\n * //   compilers:\n * //    { ... },\n * //   output: '(\\\\.[\\\\\\\\\\\\/])?abc\\\\/(?!\\\\.)(?=.)[^\\\\/]*?\\\\.js',\n * //   ast:\n * //    { type: 'root',\n * //      errors: [],\n * //      nodes:\n * //       [ ... ],\n * //      dot: false,\n * //      input: 'abc/*.js' },\n * //   parsingErrors: [],\n * //   map:\n * //    { version: 3,\n * //      sources: [ 'string' ],\n * //      names: [],\n * //      mappings: 'AAAA,GAAG,EAAC,kBAAC,EAAC,EAAE',\n * //      sourcesContent: [ 'abc/*.js' ] },\n * //   position: { line: 1, column: 28 },\n * //   content: {},\n * //   files: {},\n * //   idx: 6 }\n * ```\n * @param {String} `pattern` Glob pattern to parse and compile.\n * @param {Object} `options` Any [options](#options) to change how parsing and compiling is performed.\n * @return {Object} Returns an object with the parsed AST, compiled string and optional source map.\n * @api public\n */\n\nnanomatch.create = function(pattern, options) {\n  if (typeof pattern !== 'string') {\n    throw new TypeError('expected a string');\n  }\n  function create() {\n    return nanomatch.compile(nanomatch.parse(pattern, options), options);\n  }\n  return memoize('create', pattern, options, create);\n};\n\n/**\n * Parse the given `str` with the given `options`.\n *\n * ```js\n * var nm = require('nanomatch');\n * nm.parse(pattern[, options]);\n *\n * var ast = nm.parse('a/{b,c}/d');\n * console.log(ast);\n * // { type: 'root',\n * //   errors: [],\n * //   input: 'a/{b,c}/d',\n * //   nodes:\n * //    [ { type: 'bos', val: '' },\n * //      { type: 'text', val: 'a/' },\n * //      { type: 'brace',\n * //        nodes:\n * //         [ { type: 'brace.open', val: '{' },\n * //           { type: 'text', val: 'b,c' },\n * //           { type: 'brace.close', val: '}' } ] },\n * //      { type: 'text', val: '/d' },\n * //      { type: 'eos', val: '' } ] }\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {Object} Returns an AST\n * @api public\n */\n\nnanomatch.parse = function(pattern, options) {\n  if (typeof pattern !== 'string') {\n    throw new TypeError('expected a string');\n  }\n\n  function parse() {\n    var snapdragon = utils.instantiate(null, options);\n    parsers(snapdragon, options);\n\n    var ast = snapdragon.parse(pattern, options);\n    utils.define(ast, 'snapdragon', snapdragon);\n    ast.input = pattern;\n    return ast;\n  }\n\n  return memoize('parse', pattern, options, parse);\n};\n\n/**\n * Compile the given `ast` or string with the given `options`.\n *\n * ```js\n * var nm = require('nanomatch');\n * nm.compile(ast[, options]);\n *\n * var ast = nm.parse('a/{b,c}/d');\n * console.log(nm.compile(ast));\n * // { options: { source: 'string' },\n * //   state: {},\n * //   compilers:\n * //    { eos: [Function],\n * //      noop: [Function],\n * //      bos: [Function],\n * //      brace: [Function],\n * //      'brace.open': [Function],\n * //      text: [Function],\n * //      'brace.close': [Function] },\n * //   output: [ 'a/(b|c)/d' ],\n * //   ast:\n * //    { ... },\n * //   parsingErrors: [] }\n * ```\n * @param {Object|String} `ast`\n * @param {Object} `options`\n * @return {Object} Returns an object that has an `output` property with the compiled string.\n * @api public\n */\n\nnanomatch.compile = function(ast, options) {\n  if (typeof ast === 'string') {\n    ast = nanomatch.parse(ast, options);\n  }\n\n  function compile() {\n    var snapdragon = utils.instantiate(ast, options);\n    compilers(snapdragon, options);\n    return snapdragon.compile(ast, options);\n  }\n\n  return memoize('compile', ast.input, options, compile);\n};\n\n/**\n * Clear the regex cache.\n *\n * ```js\n * nm.clearCache();\n * ```\n * @api public\n */\n\nnanomatch.clearCache = function() {\n  nanomatch.cache.__data__ = {};\n};\n\n/**\n * Compose a matcher function with the given patterns.\n * This allows matcher functions to be compiled once and\n * called multiple times.\n */\n\nfunction compose(patterns, options, matcher) {\n  var matchers;\n\n  return memoize('compose', String(patterns), options, function() {\n    return function(file) {\n      // delay composition until it's invoked the first time,\n      // after that it won't be called again\n      if (!matchers) {\n        matchers = [];\n        for (var i = 0; i < patterns.length; i++) {\n          matchers.push(matcher(patterns[i], options));\n        }\n      }\n\n      var len = matchers.length;\n      while (len--) {\n        if (matchers[len](file) === true) {\n          return true;\n        }\n      }\n      return false;\n    };\n  });\n}\n\n/**\n * Memoize a generated regex or function. A unique key is generated\n * from the `type` (usually method name), the `pattern`, and\n * user-defined options.\n */\n\nfunction memoize(type, pattern, options, fn) {\n  var key = utils.createKey(type + '=' + pattern, options);\n\n  if (options && options.cache === false) {\n    return fn(pattern, options);\n  }\n\n  if (cache.has(type, key)) {\n    return cache.get(type, key);\n  }\n\n  var val = fn(pattern, options);\n  cache.set(type, key, val);\n  return val;\n}\n\n/**\n * Expose compiler, parser and cache on `nanomatch`\n */\n\nnanomatch.compilers = compilers;\nnanomatch.parsers = parsers;\nnanomatch.cache = cache;\n\n/**\n * Expose `nanomatch`\n * @type {Function}\n */\n\nmodule.exports = nanomatch;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/nanomatch/index.js?");

/***/ }),

/***/ "./node_modules/nanomatch/lib/cache.js":
/*!*********************************************!*\
  !*** ./node_modules/nanomatch/lib/cache.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("module.exports = new (__webpack_require__(/*! fragment-cache */ \"./node_modules/fragment-cache/index.js\"))();\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/nanomatch/lib/cache.js?");

/***/ }),

/***/ "./node_modules/nanomatch/lib/compilers.js":
/*!*************************************************!*\
  !*** ./node_modules/nanomatch/lib/compilers.js ***!
  \*************************************************/
/***/ ((module) => {

"use strict";
eval("\n\n/**\n* Nanomatch compilers\n*/\n\nmodule.exports = function(nanomatch, options) {\n  function slash() {\n    if (options && typeof options.slash === 'string') {\n      return options.slash;\n    }\n    if (options && typeof options.slash === 'function') {\n      return options.slash.call(nanomatch);\n    }\n    return '\\\\\\\\/';\n  }\n\n  function star() {\n    if (options && typeof options.star === 'string') {\n      return options.star;\n    }\n    if (options && typeof options.star === 'function') {\n      return options.star.call(nanomatch);\n    }\n    return '[^' + slash() + ']*?';\n  }\n\n  var ast = nanomatch.ast = nanomatch.parser.ast;\n  ast.state = nanomatch.parser.state;\n  nanomatch.compiler.state = ast.state;\n  nanomatch.compiler\n\n    /**\n     * Negation / escaping\n     */\n\n    .set('not', function(node) {\n      var prev = this.prev();\n      if (this.options.nonegate === true || prev.type !== 'bos') {\n        return this.emit('\\\\' + node.val, node);\n      }\n      return this.emit(node.val, node);\n    })\n    .set('escape', function(node) {\n      if (this.options.unescape && /^[-\\w_.]/.test(node.val)) {\n        return this.emit(node.val, node);\n      }\n      return this.emit('\\\\' + node.val, node);\n    })\n    .set('quoted', function(node) {\n      return this.emit(node.val, node);\n    })\n\n    /**\n     * Regex\n     */\n\n    .set('dollar', function(node) {\n      if (node.parent.type === 'bracket') {\n        return this.emit(node.val, node);\n      }\n      return this.emit('\\\\' + node.val, node);\n    })\n\n    /**\n     * Dot: \".\"\n     */\n\n    .set('dot', function(node) {\n      if (node.dotfiles === true) this.dotfiles = true;\n      return this.emit('\\\\' + node.val, node);\n    })\n\n    /**\n     * Slashes: \"/\" and \"\\\"\n     */\n\n    .set('backslash', function(node) {\n      return this.emit(node.val, node);\n    })\n    .set('slash', function(node, nodes, i) {\n      var val = '[' + slash() + ']';\n      var parent = node.parent;\n      var prev = this.prev();\n\n      // set \"node.hasSlash\" to true on all ancestor parens nodes\n      while (parent.type === 'paren' && !parent.hasSlash) {\n        parent.hasSlash = true;\n        parent = parent.parent;\n      }\n\n      if (prev.addQmark) {\n        val += '?';\n      }\n\n      // word boundary\n      if (node.rest.slice(0, 2) === '\\\\b') {\n        return this.emit(val, node);\n      }\n\n      // globstars\n      if (node.parsed === '**' || node.parsed === './**') {\n        this.output = '(?:' + this.output;\n        return this.emit(val + ')?', node);\n      }\n\n      // negation\n      if (node.parsed === '!**' && this.options.nonegate !== true) {\n        return this.emit(val + '?\\\\b', node);\n      }\n      return this.emit(val, node);\n    })\n\n    /**\n     * Square brackets\n     */\n\n    .set('bracket', function(node) {\n      var close = node.close;\n      var open = !node.escaped ? '[' : '\\\\[';\n      var negated = node.negated;\n      var inner = node.inner;\n      var val = node.val;\n\n      if (node.escaped === true) {\n        inner = inner.replace(/\\\\?(\\W)/g, '\\\\$1');\n        negated = '';\n      }\n\n      if (inner === ']-') {\n        inner = '\\\\]\\\\-';\n      }\n\n      if (negated && inner.indexOf('.') === -1) {\n        inner += '.';\n      }\n      if (negated && inner.indexOf('/') === -1) {\n        inner += '/';\n      }\n\n      val = open + negated + inner + close;\n      return this.emit(val, node);\n    })\n\n    /**\n     * Square: \"[.]\" (only matches a single character in brackets)\n     */\n\n    .set('square', function(node) {\n      var val = (/^\\W/.test(node.val) ? '\\\\' : '') + node.val;\n      return this.emit(val, node);\n    })\n\n    /**\n     * Question mark: \"?\"\n     */\n\n    .set('qmark', function(node) {\n      var prev = this.prev();\n      // don't use \"slash\" variable so that we always avoid\n      // matching backslashes and slashes with a qmark\n      var val = '[^.\\\\\\\\/]';\n      if (this.options.dot || (prev.type !== 'bos' && prev.type !== 'slash')) {\n        val = '[^\\\\\\\\/]';\n      }\n\n      if (node.parsed.slice(-1) === '(') {\n        var ch = node.rest.charAt(0);\n        if (ch === '!' || ch === '=' || ch === ':') {\n          return this.emit(node.val, node);\n        }\n      }\n\n      if (node.val.length > 1) {\n        val += '{' + node.val.length + '}';\n      }\n      return this.emit(val, node);\n    })\n\n    /**\n     * Plus\n     */\n\n    .set('plus', function(node) {\n      var prev = node.parsed.slice(-1);\n      if (prev === ']' || prev === ')') {\n        return this.emit(node.val, node);\n      }\n      if (!this.output || (/[?*+]/.test(ch) && node.parent.type !== 'bracket')) {\n        return this.emit('\\\\+', node);\n      }\n      var ch = this.output.slice(-1);\n      if (/\\w/.test(ch) && !node.inside) {\n        return this.emit('+\\\\+?', node);\n      }\n      return this.emit('+', node);\n    })\n\n    /**\n     * globstar: '**'\n     */\n\n    .set('globstar', function(node, nodes, i) {\n      if (!this.output) {\n        this.state.leadingGlobstar = true;\n      }\n\n      var prev = this.prev();\n      var before = this.prev(2);\n      var next = this.next();\n      var after = this.next(2);\n      var type = prev.type;\n      var val = node.val;\n\n      if (prev.type === 'slash' && next.type === 'slash') {\n        if (before.type === 'text') {\n          this.output += '?';\n\n          if (after.type !== 'text') {\n            this.output += '\\\\b';\n          }\n        }\n      }\n\n      var parsed = node.parsed;\n      if (parsed.charAt(0) === '!') {\n        parsed = parsed.slice(1);\n      }\n\n      var isInside = node.isInside.paren || node.isInside.brace;\n      if (parsed && type !== 'slash' && type !== 'bos' && !isInside) {\n        val = star();\n      } else {\n        val = this.options.dot !== true\n          ? '(?:(?!(?:[' + slash() + ']|^)\\\\.).)*?'\n          : '(?:(?!(?:[' + slash() + ']|^)(?:\\\\.{1,2})($|[' + slash() + ']))(?!\\\\.{2}).)*?';\n      }\n\n      if ((type === 'slash' || type === 'bos') && this.options.dot !== true) {\n        val = '(?!\\\\.)' + val;\n      }\n\n      if (prev.type === 'slash' && next.type === 'slash' && before.type !== 'text') {\n        if (after.type === 'text' || after.type === 'star') {\n          node.addQmark = true;\n        }\n      }\n\n      if (this.options.capture) {\n        val = '(' + val + ')';\n      }\n\n      return this.emit(val, node);\n    })\n\n    /**\n     * Star: \"*\"\n     */\n\n    .set('star', function(node, nodes, i) {\n      var prior = nodes[i - 2] || {};\n      var prev = this.prev();\n      var next = this.next();\n      var type = prev.type;\n\n      function isStart(n) {\n        return n.type === 'bos' || n.type === 'slash';\n      }\n\n      if (this.output === '' && this.options.contains !== true) {\n        this.output = '(?![' + slash() + '])';\n      }\n\n      if (type === 'bracket' && this.options.bash === false) {\n        var str = next && next.type === 'bracket' ? star() : '*?';\n        if (!prev.nodes || prev.nodes[1].type !== 'posix') {\n          return this.emit(str, node);\n        }\n      }\n\n      var prefix = !this.dotfiles && type !== 'text' && type !== 'escape'\n        ? (this.options.dot ? '(?!(?:^|[' + slash() + '])\\\\.{1,2}(?:$|[' + slash() + ']))' : '(?!\\\\.)')\n        : '';\n\n      if (isStart(prev) || (isStart(prior) && type === 'not')) {\n        if (prefix !== '(?!\\\\.)') {\n          prefix += '(?!(\\\\.{2}|\\\\.[' + slash() + ']))(?=.)';\n        } else {\n          prefix += '(?=.)';\n        }\n      } else if (prefix === '(?!\\\\.)') {\n        prefix = '';\n      }\n\n      if (prev.type === 'not' && prior.type === 'bos' && this.options.dot === true) {\n        this.output = '(?!\\\\.)' + this.output;\n      }\n\n      var output = prefix + star();\n      if (this.options.capture) {\n        output = '(' + output + ')';\n      }\n\n      return this.emit(output, node);\n    })\n\n    /**\n     * Text\n     */\n\n    .set('text', function(node) {\n      return this.emit(node.val, node);\n    })\n\n    /**\n     * End-of-string\n     */\n\n    .set('eos', function(node) {\n      var prev = this.prev();\n      var val = node.val;\n\n      this.output = '(?:\\\\.[' + slash() + '](?=.))?' + this.output;\n      if (this.state.metachar && prev.type !== 'qmark' && prev.type !== 'slash') {\n        val += (this.options.contains ? '[' + slash() + ']?' : '(?:[' + slash() + ']|$)');\n      }\n\n      return this.emit(val, node);\n    });\n\n  /**\n   * Allow custom compilers to be passed on options\n   */\n\n  if (options && typeof options.compilers === 'function') {\n    options.compilers(nanomatch.compiler);\n  }\n};\n\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/nanomatch/lib/compilers.js?");

/***/ }),

/***/ "./node_modules/nanomatch/lib/parsers.js":
/*!***********************************************!*\
  !*** ./node_modules/nanomatch/lib/parsers.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar regexNot = __webpack_require__(/*! regex-not */ \"./node_modules/regex-not/index.js\");\nvar toRegex = __webpack_require__(/*! to-regex */ \"./node_modules/to-regex/index.js\");\n\n/**\n * Characters to use in negation regex (we want to \"not\" match\n * characters that are matched by other parsers)\n */\n\nvar cached;\nvar NOT_REGEX = '[\\\\[!*+?$^\"\\'.\\\\\\\\/]+';\nvar not = createTextRegex(NOT_REGEX);\n\n/**\n * Nanomatch parsers\n */\n\nmodule.exports = function(nanomatch, options) {\n  var parser = nanomatch.parser;\n  var opts = parser.options;\n\n  parser.state = {\n    slashes: 0,\n    paths: []\n  };\n\n  parser.ast.state = parser.state;\n  parser\n\n    /**\n     * Beginning-of-string\n     */\n\n    .capture('prefix', function() {\n      if (this.parsed) return;\n      var m = this.match(/^\\.[\\\\/]/);\n      if (!m) return;\n      this.state.strictOpen = !!this.options.strictOpen;\n      this.state.addPrefix = true;\n    })\n\n    /**\n     * Escape: \"\\\\.\"\n     */\n\n    .capture('escape', function() {\n      if (this.isInside('bracket')) return;\n      var pos = this.position();\n      var m = this.match(/^(?:\\\\(.)|([$^]))/);\n      if (!m) return;\n\n      return pos({\n        type: 'escape',\n        val: m[2] || m[1]\n      });\n    })\n\n    /**\n     * Quoted strings\n     */\n\n    .capture('quoted', function() {\n      var pos = this.position();\n      var m = this.match(/^[\"']/);\n      if (!m) return;\n\n      var quote = m[0];\n      if (this.input.indexOf(quote) === -1) {\n        return pos({\n          type: 'escape',\n          val: quote\n        });\n      }\n\n      var tok = advanceTo(this.input, quote);\n      this.consume(tok.len);\n\n      return pos({\n        type: 'quoted',\n        val: tok.esc\n      });\n    })\n\n    /**\n     * Negations: \"!\"\n     */\n\n    .capture('not', function() {\n      var parsed = this.parsed;\n      var pos = this.position();\n      var m = this.match(this.notRegex || /^!+/);\n      if (!m) return;\n      var val = m[0];\n\n      var isNegated = (val.length % 2) === 1;\n      if (parsed === '' && !isNegated) {\n        val = '';\n      }\n\n      // if nothing has been parsed, we know `!` is at the start,\n      // so we need to wrap the result in a negation regex\n      if (parsed === '' && isNegated && this.options.nonegate !== true) {\n        this.bos.val = '(?!^(?:';\n        this.append = ')$).*';\n        val = '';\n      }\n      return pos({\n        type: 'not',\n        val: val\n      });\n    })\n\n    /**\n     * Dot: \".\"\n     */\n\n    .capture('dot', function() {\n      var parsed = this.parsed;\n      var pos = this.position();\n      var m = this.match(/^\\.+/);\n      if (!m) return;\n\n      var val = m[0];\n      this.state.dot = val === '.' && (parsed === '' || parsed.slice(-1) === '/');\n\n      return pos({\n        type: 'dot',\n        dotfiles: this.state.dot,\n        val: val\n      });\n    })\n\n    /**\n     * Plus: \"+\"\n     */\n\n    .capture('plus', /^\\+(?!\\()/)\n\n    /**\n     * Question mark: \"?\"\n     */\n\n    .capture('qmark', function() {\n      var parsed = this.parsed;\n      var pos = this.position();\n      var m = this.match(/^\\?+(?!\\()/);\n      if (!m) return;\n\n      this.state.metachar = true;\n      this.state.qmark = true;\n\n      return pos({\n        type: 'qmark',\n        parsed: parsed,\n        val: m[0]\n      });\n    })\n\n    /**\n     * Globstar: \"**\"\n     */\n\n    .capture('globstar', function() {\n      var parsed = this.parsed;\n      var pos = this.position();\n      var m = this.match(/^\\*{2}(?![*(])(?=[,)/]|$)/);\n      if (!m) return;\n\n      var type = opts.noglobstar !== true ? 'globstar' : 'star';\n      var node = pos({type: type, parsed: parsed});\n      this.state.metachar = true;\n\n      while (this.input.slice(0, 4) === '/**/') {\n        this.input = this.input.slice(3);\n      }\n\n      node.isInside = {\n        brace: this.isInside('brace'),\n        paren: this.isInside('paren')\n      };\n\n      if (type === 'globstar') {\n        this.state.globstar = true;\n        node.val = '**';\n\n      } else {\n        this.state.star = true;\n        node.val = '*';\n      }\n\n      return node;\n    })\n\n    /**\n     * Star: \"*\"\n     */\n\n    .capture('star', function() {\n      var pos = this.position();\n      var starRe = /^(?:\\*(?![*(])|[*]{3,}(?!\\()|[*]{2}(?![(/]|$)|\\*(?=\\*\\())/;\n      var m = this.match(starRe);\n      if (!m) return;\n\n      this.state.metachar = true;\n      this.state.star = true;\n      return pos({\n        type: 'star',\n        val: m[0]\n      });\n    })\n\n    /**\n     * Slash: \"/\"\n     */\n\n    .capture('slash', function() {\n      var pos = this.position();\n      var m = this.match(/^\\//);\n      if (!m) return;\n\n      this.state.slashes++;\n      return pos({\n        type: 'slash',\n        val: m[0]\n      });\n    })\n\n    /**\n     * Backslash: \"\\\\\"\n     */\n\n    .capture('backslash', function() {\n      var pos = this.position();\n      var m = this.match(/^\\\\(?![*+?(){}[\\]'\"])/);\n      if (!m) return;\n\n      var val = m[0];\n\n      if (this.isInside('bracket')) {\n        val = '\\\\';\n      } else if (val.length > 1) {\n        val = '\\\\\\\\';\n      }\n\n      return pos({\n        type: 'backslash',\n        val: val\n      });\n    })\n\n    /**\n     * Square: \"[.]\"\n     */\n\n    .capture('square', function() {\n      if (this.isInside('bracket')) return;\n      var pos = this.position();\n      var m = this.match(/^\\[([^!^\\\\])\\]/);\n      if (!m) return;\n\n      return pos({\n        type: 'square',\n        val: m[1]\n      });\n    })\n\n    /**\n     * Brackets: \"[...]\" (basic, this can be overridden by other parsers)\n     */\n\n    .capture('bracket', function() {\n      var pos = this.position();\n      var m = this.match(/^(?:\\[([!^]?)([^\\]]+|\\]-)(\\]|[^*+?]+)|\\[)/);\n      if (!m) return;\n\n      var val = m[0];\n      var negated = m[1] ? '^' : '';\n      var inner = (m[2] || '').replace(/\\\\\\\\+/, '\\\\\\\\');\n      var close = m[3] || '';\n\n      if (m[2] && inner.length < m[2].length) {\n        val = val.replace(/\\\\\\\\+/, '\\\\\\\\');\n      }\n\n      var esc = this.input.slice(0, 2);\n      if (inner === '' && esc === '\\\\]') {\n        inner += esc;\n        this.consume(2);\n\n        var str = this.input;\n        var idx = -1;\n        var ch;\n\n        while ((ch = str[++idx])) {\n          this.consume(1);\n          if (ch === ']') {\n            close = ch;\n            break;\n          }\n          inner += ch;\n        }\n      }\n\n      return pos({\n        type: 'bracket',\n        val: val,\n        escaped: close !== ']',\n        negated: negated,\n        inner: inner,\n        close: close\n      });\n    })\n\n    /**\n     * Text\n     */\n\n    .capture('text', function() {\n      if (this.isInside('bracket')) return;\n      var pos = this.position();\n      var m = this.match(not);\n      if (!m || !m[0]) return;\n\n      return pos({\n        type: 'text',\n        val: m[0]\n      });\n    });\n\n  /**\n   * Allow custom parsers to be passed on options\n   */\n\n  if (options && typeof options.parsers === 'function') {\n    options.parsers(nanomatch.parser);\n  }\n};\n\n/**\n * Advance to the next non-escaped character\n */\n\nfunction advanceTo(input, endChar) {\n  var ch = input.charAt(0);\n  var tok = { len: 1, val: '', esc: '' };\n  var idx = 0;\n\n  function advance() {\n    if (ch !== '\\\\') {\n      tok.esc += '\\\\' + ch;\n      tok.val += ch;\n    }\n\n    ch = input.charAt(++idx);\n    tok.len++;\n\n    if (ch === '\\\\') {\n      advance();\n      advance();\n    }\n  }\n\n  while (ch && ch !== endChar) {\n    advance();\n  }\n  return tok;\n}\n\n/**\n * Create text regex\n */\n\nfunction createTextRegex(pattern) {\n  if (cached) return cached;\n  var opts = {contains: true, strictClose: false};\n  var not = regexNot.create(pattern, opts);\n  var re = toRegex('^(?:[*]\\\\((?=.)|' + not + ')', opts);\n  return (cached = re);\n}\n\n/**\n * Expose negation string\n */\n\nmodule.exports.not = NOT_REGEX;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/nanomatch/lib/parsers.js?");

/***/ }),

/***/ "./node_modules/nanomatch/lib/utils.js":
/*!*********************************************!*\
  !*** ./node_modules/nanomatch/lib/utils.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar utils = module.exports;\nvar path = __webpack_require__(/*! path */ \"path\");\n\n/**\n * Module dependencies\n */\n\nvar isWindows = __webpack_require__(/*! is-windows */ \"./node_modules/is-windows/index.js\")();\nvar Snapdragon = __webpack_require__(/*! snapdragon */ \"./node_modules/snapdragon/index.js\");\nutils.define = __webpack_require__(/*! define-property */ \"./node_modules/nanomatch/node_modules/define-property/index.js\");\nutils.diff = __webpack_require__(/*! arr-diff */ \"./node_modules/arr-diff/index.js\");\nutils.extend = __webpack_require__(/*! extend-shallow */ \"./node_modules/nanomatch/node_modules/extend-shallow/index.js\");\nutils.pick = __webpack_require__(/*! object.pick */ \"./node_modules/object.pick/index.js\");\nutils.typeOf = __webpack_require__(/*! kind-of */ \"./node_modules/kind-of/index.js\");\nutils.unique = __webpack_require__(/*! array-unique */ \"./node_modules/array-unique/index.js\");\n\n/**\n * Returns true if the given value is effectively an empty string\n */\n\nutils.isEmptyString = function(val) {\n  return String(val) === '' || String(val) === './';\n};\n\n/**\n * Returns true if the platform is windows, or `path.sep` is `\\\\`.\n * This is defined as a function to allow `path.sep` to be set in unit tests,\n * or by the user, if there is a reason to do so.\n * @return {Boolean}\n */\n\nutils.isWindows = function() {\n  return path.sep === '\\\\' || isWindows === true;\n};\n\n/**\n * Return the last element from an array\n */\n\nutils.last = function(arr, n) {\n  return arr[arr.length - (n || 1)];\n};\n\n/**\n * Get the `Snapdragon` instance to use\n */\n\nutils.instantiate = function(ast, options) {\n  var snapdragon;\n  // if an instance was created by `.parse`, use that instance\n  if (utils.typeOf(ast) === 'object' && ast.snapdragon) {\n    snapdragon = ast.snapdragon;\n  // if the user supplies an instance on options, use that instance\n  } else if (utils.typeOf(options) === 'object' && options.snapdragon) {\n    snapdragon = options.snapdragon;\n  // create a new instance\n  } else {\n    snapdragon = new Snapdragon(options);\n  }\n\n  utils.define(snapdragon, 'parse', function(str, options) {\n    var parsed = Snapdragon.prototype.parse.call(this, str, options);\n    parsed.input = str;\n\n    // escape unmatched brace/bracket/parens\n    var last = this.parser.stack.pop();\n    if (last && this.options.strictErrors !== true) {\n      var open = last.nodes[0];\n      var inner = last.nodes[1];\n      if (last.type === 'bracket') {\n        if (inner.val.charAt(0) === '[') {\n          inner.val = '\\\\' + inner.val;\n        }\n\n      } else {\n        open.val = '\\\\' + open.val;\n        var sibling = open.parent.nodes[1];\n        if (sibling.type === 'star') {\n          sibling.loose = true;\n        }\n      }\n    }\n\n    // add non-enumerable parser reference\n    utils.define(parsed, 'parser', this.parser);\n    return parsed;\n  });\n\n  return snapdragon;\n};\n\n/**\n * Create the key to use for memoization. The key is generated\n * by iterating over the options and concatenating key-value pairs\n * to the pattern string.\n */\n\nutils.createKey = function(pattern, options) {\n  if (typeof options === 'undefined') {\n    return pattern;\n  }\n  var key = pattern;\n  for (var prop in options) {\n    if (options.hasOwnProperty(prop)) {\n      key += ';' + prop + '=' + String(options[prop]);\n    }\n  }\n  return key;\n};\n\n/**\n * Cast `val` to an array\n * @return {Array}\n */\n\nutils.arrayify = function(val) {\n  if (typeof val === 'string') return [val];\n  return val ? (Array.isArray(val) ? val : [val]) : [];\n};\n\n/**\n * Return true if `val` is a non-empty string\n */\n\nutils.isString = function(val) {\n  return typeof val === 'string';\n};\n\n/**\n * Return true if `val` is a non-empty string\n */\n\nutils.isRegex = function(val) {\n  return utils.typeOf(val) === 'regexp';\n};\n\n/**\n * Return true if `val` is a non-empty string\n */\n\nutils.isObject = function(val) {\n  return utils.typeOf(val) === 'object';\n};\n\n/**\n * Escape regex characters in the given string\n */\n\nutils.escapeRegex = function(str) {\n  return str.replace(/[-[\\]{}()^$|*+?.\\\\/\\s]/g, '\\\\$&');\n};\n\n/**\n * Combines duplicate characters in the provided `input` string.\n * @param {String} `input`\n * @returns {String}\n */\n\nutils.combineDupes = function(input, patterns) {\n  patterns = utils.arrayify(patterns).join('|').split('|');\n  patterns = patterns.map(function(s) {\n    return s.replace(/\\\\?([+*\\\\/])/g, '\\\\$1');\n  });\n  var substr = patterns.join('|');\n  var regex = new RegExp('(' + substr + ')(?=\\\\1)', 'g');\n  return input.replace(regex, '');\n};\n\n/**\n * Returns true if the given `str` has special characters\n */\n\nutils.hasSpecialChars = function(str) {\n  return /(?:(?:(^|\\/)[!.])|[*?+()|[\\]{}]|[+@]\\()/.test(str);\n};\n\n/**\n * Normalize slashes in the given filepath.\n *\n * @param {String} `filepath`\n * @return {String}\n */\n\nutils.toPosixPath = function(str) {\n  return str.replace(/\\\\+/g, '/');\n};\n\n/**\n * Strip backslashes before special characters in a string.\n *\n * @param {String} `str`\n * @return {String}\n */\n\nutils.unescape = function(str) {\n  return utils.toPosixPath(str.replace(/\\\\(?=[*+?!.])/g, ''));\n};\n\n/**\n * Strip the drive letter from a windows filepath\n * @param {String} `fp`\n * @return {String}\n */\n\nutils.stripDrive = function(fp) {\n  return utils.isWindows() ? fp.replace(/^[a-z]:[\\\\/]+?/i, '/') : fp;\n};\n\n/**\n * Strip the prefix from a filepath\n * @param {String} `fp`\n * @return {String}\n */\n\nutils.stripPrefix = function(str) {\n  if (str.charAt(0) === '.' && (str.charAt(1) === '/' || str.charAt(1) === '\\\\')) {\n    return str.slice(2);\n  }\n  return str;\n};\n\n/**\n * Returns true if `str` is a common character that doesn't need\n * to be processed to be used for matching.\n * @param {String} `str`\n * @return {Boolean}\n */\n\nutils.isSimpleChar = function(str) {\n  return str.trim() === '' || str === '.';\n};\n\n/**\n * Returns true if the given str is an escaped or\n * unescaped path character\n */\n\nutils.isSlash = function(str) {\n  return str === '/' || str === '\\\\/' || str === '\\\\' || str === '\\\\\\\\';\n};\n\n/**\n * Returns a function that returns true if the given\n * pattern matches or contains a `filepath`\n *\n * @param {String} `pattern`\n * @return {Function}\n */\n\nutils.matchPath = function(pattern, options) {\n  return (options && options.contains)\n    ? utils.containsPattern(pattern, options)\n    : utils.equalsPattern(pattern, options);\n};\n\n/**\n * Returns true if the given (original) filepath or unixified path are equal\n * to the given pattern.\n */\n\nutils._equals = function(filepath, unixPath, pattern) {\n  return pattern === filepath || pattern === unixPath;\n};\n\n/**\n * Returns true if the given (original) filepath or unixified path contain\n * the given pattern.\n */\n\nutils._contains = function(filepath, unixPath, pattern) {\n  return filepath.indexOf(pattern) !== -1 || unixPath.indexOf(pattern) !== -1;\n};\n\n/**\n * Returns a function that returns true if the given\n * pattern is the same as a given `filepath`\n *\n * @param {String} `pattern`\n * @return {Function}\n */\n\nutils.equalsPattern = function(pattern, options) {\n  var unixify = utils.unixify(options);\n  options = options || {};\n\n  return function fn(filepath) {\n    var equal = utils._equals(filepath, unixify(filepath), pattern);\n    if (equal === true || options.nocase !== true) {\n      return equal;\n    }\n    var lower = filepath.toLowerCase();\n    return utils._equals(lower, unixify(lower), pattern);\n  };\n};\n\n/**\n * Returns a function that returns true if the given\n * pattern contains a `filepath`\n *\n * @param {String} `pattern`\n * @return {Function}\n */\n\nutils.containsPattern = function(pattern, options) {\n  var unixify = utils.unixify(options);\n  options = options || {};\n\n  return function(filepath) {\n    var contains = utils._contains(filepath, unixify(filepath), pattern);\n    if (contains === true || options.nocase !== true) {\n      return contains;\n    }\n    var lower = filepath.toLowerCase();\n    return utils._contains(lower, unixify(lower), pattern);\n  };\n};\n\n/**\n * Returns a function that returns true if the given\n * regex matches the `filename` of a file path.\n *\n * @param {RegExp} `re` Matching regex\n * @return {Function}\n */\n\nutils.matchBasename = function(re) {\n  return function(filepath) {\n    return re.test(filepath) || re.test(path.basename(filepath));\n  };\n};\n\n/**\n * Returns the given value unchanced.\n * @return {any}\n */\n\nutils.identity = function(val) {\n  return val;\n};\n\n/**\n * Determines the filepath to return based on the provided options.\n * @return {any}\n */\n\nutils.value = function(str, unixify, options) {\n  if (options && options.unixify === false) {\n    return str;\n  }\n  if (options && typeof options.unixify === 'function') {\n    return options.unixify(str);\n  }\n  return unixify(str);\n};\n\n/**\n * Returns a function that normalizes slashes in a string to forward\n * slashes, strips `./` from beginning of paths, and optionally unescapes\n * special characters.\n * @return {Function}\n */\n\nutils.unixify = function(options) {\n  var opts = options || {};\n  return function(filepath) {\n    if (opts.stripPrefix !== false) {\n      filepath = utils.stripPrefix(filepath);\n    }\n    if (opts.unescape === true) {\n      filepath = utils.unescape(filepath);\n    }\n    if (opts.unixify === true || utils.isWindows()) {\n      filepath = utils.toPosixPath(filepath);\n    }\n    return filepath;\n  };\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/nanomatch/lib/utils.js?");

/***/ }),

/***/ "./node_modules/nanomatch/node_modules/define-property/index.js":
/*!**********************************************************************!*\
  !*** ./node_modules/nanomatch/node_modules/define-property/index.js ***!
  \**********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * define-property <https://github.com/jonschlinkert/define-property>\n *\n * Copyright (c) 2015-2018, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar isobject = __webpack_require__(/*! isobject */ \"./node_modules/isobject/index.js\");\nvar isDescriptor = __webpack_require__(/*! is-descriptor */ \"./node_modules/is-descriptor/index.js\");\nvar define = (typeof Reflect !== 'undefined' && Reflect.defineProperty)\n  ? Reflect.defineProperty\n  : Object.defineProperty;\n\nmodule.exports = function defineProperty(obj, key, val) {\n  if (!isobject(obj) && typeof obj !== 'function' && !Array.isArray(obj)) {\n    throw new TypeError('expected an object, function, or array');\n  }\n\n  if (typeof key !== 'string') {\n    throw new TypeError('expected \"key\" to be a string');\n  }\n\n  if (isDescriptor(val)) {\n    define(obj, key, val);\n    return obj;\n  }\n\n  define(obj, key, {\n    configurable: true,\n    enumerable: false,\n    writable: true,\n    value: val\n  });\n\n  return obj;\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/nanomatch/node_modules/define-property/index.js?");

/***/ }),

/***/ "./node_modules/nanomatch/node_modules/extend-shallow/index.js":
/*!*********************************************************************!*\
  !*** ./node_modules/nanomatch/node_modules/extend-shallow/index.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar isExtendable = __webpack_require__(/*! is-extendable */ \"./node_modules/nanomatch/node_modules/is-extendable/index.js\");\nvar assignSymbols = __webpack_require__(/*! assign-symbols */ \"./node_modules/assign-symbols/index.js\");\n\nmodule.exports = Object.assign || function(obj/*, objects*/) {\n  if (obj === null || typeof obj === 'undefined') {\n    throw new TypeError('Cannot convert undefined or null to object');\n  }\n  if (!isObject(obj)) {\n    obj = {};\n  }\n  for (var i = 1; i < arguments.length; i++) {\n    var val = arguments[i];\n    if (isString(val)) {\n      val = toObject(val);\n    }\n    if (isObject(val)) {\n      assign(obj, val);\n      assignSymbols(obj, val);\n    }\n  }\n  return obj;\n};\n\nfunction assign(a, b) {\n  for (var key in b) {\n    if (hasOwn(b, key)) {\n      a[key] = b[key];\n    }\n  }\n}\n\nfunction isString(val) {\n  return (val && typeof val === 'string');\n}\n\nfunction toObject(str) {\n  var obj = {};\n  for (var i in str) {\n    obj[i] = str[i];\n  }\n  return obj;\n}\n\nfunction isObject(val) {\n  return (val && typeof val === 'object') || isExtendable(val);\n}\n\n/**\n * Returns true if the given `key` is an own property of `obj`.\n */\n\nfunction hasOwn(obj, key) {\n  return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nfunction isEnum(obj, key) {\n  return Object.prototype.propertyIsEnumerable.call(obj, key);\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/nanomatch/node_modules/extend-shallow/index.js?");

/***/ }),

/***/ "./node_modules/nanomatch/node_modules/is-extendable/index.js":
/*!********************************************************************!*\
  !*** ./node_modules/nanomatch/node_modules/is-extendable/index.js ***!
  \********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * is-extendable <https://github.com/jonschlinkert/is-extendable>\n *\n * Copyright (c) 2015-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar isPlainObject = __webpack_require__(/*! is-plain-object */ \"./node_modules/is-plain-object/index.js\");\n\nmodule.exports = function isExtendable(val) {\n  return isPlainObject(val) || typeof val === 'function' || Array.isArray(val);\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/nanomatch/node_modules/is-extendable/index.js?");

/***/ }),

/***/ "./node_modules/normalize-path/index.js":
/*!**********************************************!*\
  !*** ./node_modules/normalize-path/index.js ***!
  \**********************************************/
/***/ ((module) => {

eval("/*!\n * normalize-path <https://github.com/jonschlinkert/normalize-path>\n *\n * Copyright (c) 2014-2018, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nmodule.exports = function(path, stripTrailing) {\n  if (typeof path !== 'string') {\n    throw new TypeError('expected path to be a string');\n  }\n\n  if (path === '\\\\' || path === '/') return '/';\n\n  var len = path.length;\n  if (len <= 1) return path;\n\n  // ensure that win32 namespaces has two leading slashes, so that the path is\n  // handled properly by the win32 version of path.parse() after being normalized\n  // https://msdn.microsoft.com/library/windows/desktop/aa365247(v=vs.85).aspx#namespaces\n  var prefix = '';\n  if (len > 4 && path[3] === '\\\\') {\n    var ch = path[2];\n    if ((ch === '?' || ch === '.') && path.slice(0, 2) === '\\\\\\\\') {\n      path = path.slice(2);\n      prefix = '//';\n    }\n  }\n\n  var segs = path.split(/[/\\\\]+/);\n  if (stripTrailing !== false && segs[segs.length - 1] === '') {\n    segs.pop();\n  }\n  return prefix + segs.join('/');\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/normalize-path/index.js?");

/***/ }),

/***/ "./node_modules/object-copy/index.js":
/*!*******************************************!*\
  !*** ./node_modules/object-copy/index.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar typeOf = __webpack_require__(/*! kind-of */ \"./node_modules/object-copy/node_modules/kind-of/index.js\");\nvar copyDescriptor = __webpack_require__(/*! copy-descriptor */ \"./node_modules/copy-descriptor/index.js\");\nvar define = __webpack_require__(/*! define-property */ \"./node_modules/define-property/index.js\");\n\n/**\n * Copy static properties, prototype properties, and descriptors from one object to another.\n *\n * ```js\n * function App() {}\n * var proto = App.prototype;\n * App.prototype.set = function() {};\n * App.prototype.get = function() {};\n *\n * var obj = {};\n * copy(obj, proto);\n * ```\n * @param {Object} `receiver`\n * @param {Object} `provider`\n * @param {String|Array} `omit` One or more properties to omit\n * @return {Object}\n * @api public\n */\n\nfunction copy(receiver, provider, omit) {\n  if (!isObject(receiver)) {\n    throw new TypeError('expected receiving object to be an object.');\n  }\n  if (!isObject(provider)) {\n    throw new TypeError('expected providing object to be an object.');\n  }\n\n  var props = nativeKeys(provider);\n  var keys = Object.keys(provider);\n  var len = props.length;\n  omit = arrayify(omit);\n\n  while (len--) {\n    var key = props[len];\n\n    if (has(keys, key)) {\n      define(receiver, key, provider[key]);\n    } else if (!(key in receiver) && !has(omit, key)) {\n      copyDescriptor(receiver, provider, key);\n    }\n  }\n};\n\n/**\n * Return true if the given value is an object or function\n */\n\nfunction isObject(val) {\n  return typeOf(val) === 'object' || typeof val === 'function';\n}\n\n/**\n * Returns true if an array has any of the given elements, or an\n * object has any of the give keys.\n *\n * ```js\n * has(['a', 'b', 'c'], 'c');\n * //=> true\n *\n * has(['a', 'b', 'c'], ['c', 'z']);\n * //=> true\n *\n * has({a: 'b', c: 'd'}, ['c', 'z']);\n * //=> true\n * ```\n * @param {Object} `obj`\n * @param {String|Array} `val`\n * @return {Boolean}\n */\n\nfunction has(obj, val) {\n  val = arrayify(val);\n  var len = val.length;\n\n  if (isObject(obj)) {\n    for (var key in obj) {\n      if (val.indexOf(key) > -1) {\n        return true;\n      }\n    }\n\n    var keys = nativeKeys(obj);\n    return has(keys, val);\n  }\n\n  if (Array.isArray(obj)) {\n    var arr = obj;\n    while (len--) {\n      if (arr.indexOf(val[len]) > -1) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  throw new TypeError('expected an array or object.');\n}\n\n/**\n * Cast the given value to an array.\n *\n * ```js\n * arrayify('foo');\n * //=> ['foo']\n *\n * arrayify(['foo']);\n * //=> ['foo']\n * ```\n *\n * @param {String|Array} `val`\n * @return {Array}\n */\n\nfunction arrayify(val) {\n  return val ? (Array.isArray(val) ? val : [val]) : [];\n}\n\n/**\n * Returns true if a value has a `contructor`\n *\n * ```js\n * hasConstructor({});\n * //=> true\n *\n * hasConstructor(Object.create(null));\n * //=> false\n * ```\n * @param  {Object} `value`\n * @return {Boolean}\n */\n\nfunction hasConstructor(val) {\n  return isObject(val) && typeof val.constructor !== 'undefined';\n}\n\n/**\n * Get the native `ownPropertyNames` from the constructor of the\n * given `object`. An empty array is returned if the object does\n * not have a constructor.\n *\n * ```js\n * nativeKeys({a: 'b', b: 'c', c: 'd'})\n * //=> ['a', 'b', 'c']\n *\n * nativeKeys(function(){})\n * //=> ['length', 'caller']\n * ```\n *\n * @param  {Object} `obj` Object that has a `constructor`.\n * @return {Array} Array of keys.\n */\n\nfunction nativeKeys(val) {\n  if (!hasConstructor(val)) return [];\n  return Object.getOwnPropertyNames(val);\n}\n\n/**\n * Expose `copy`\n */\n\nmodule.exports = copy;\n\n/**\n * Expose `copy.has` for tests\n */\n\nmodule.exports.has = has;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/object-copy/index.js?");

/***/ }),

/***/ "./node_modules/object-copy/node_modules/kind-of/index.js":
/*!****************************************************************!*\
  !*** ./node_modules/object-copy/node_modules/kind-of/index.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var isBuffer = __webpack_require__(/*! is-buffer */ \"./node_modules/is-buffer/index.js\");\nvar toString = Object.prototype.toString;\n\n/**\n * Get the native `typeof` a value.\n *\n * @param  {*} `val`\n * @return {*} Native javascript type\n */\n\nmodule.exports = function kindOf(val) {\n  // primitivies\n  if (typeof val === 'undefined') {\n    return 'undefined';\n  }\n  if (val === null) {\n    return 'null';\n  }\n  if (val === true || val === false || val instanceof Boolean) {\n    return 'boolean';\n  }\n  if (typeof val === 'string' || val instanceof String) {\n    return 'string';\n  }\n  if (typeof val === 'number' || val instanceof Number) {\n    return 'number';\n  }\n\n  // functions\n  if (typeof val === 'function' || val instanceof Function) {\n    return 'function';\n  }\n\n  // array\n  if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) {\n    return 'array';\n  }\n\n  // check for instances of RegExp and Date before calling `toString`\n  if (val instanceof RegExp) {\n    return 'regexp';\n  }\n  if (val instanceof Date) {\n    return 'date';\n  }\n\n  // other objects\n  var type = toString.call(val);\n\n  if (type === '[object RegExp]') {\n    return 'regexp';\n  }\n  if (type === '[object Date]') {\n    return 'date';\n  }\n  if (type === '[object Arguments]') {\n    return 'arguments';\n  }\n  if (type === '[object Error]') {\n    return 'error';\n  }\n\n  // buffer\n  if (isBuffer(val)) {\n    return 'buffer';\n  }\n\n  // es6: Map, WeakMap, Set, WeakSet\n  if (type === '[object Set]') {\n    return 'set';\n  }\n  if (type === '[object WeakSet]') {\n    return 'weakset';\n  }\n  if (type === '[object Map]') {\n    return 'map';\n  }\n  if (type === '[object WeakMap]') {\n    return 'weakmap';\n  }\n  if (type === '[object Symbol]') {\n    return 'symbol';\n  }\n\n  // typed arrays\n  if (type === '[object Int8Array]') {\n    return 'int8array';\n  }\n  if (type === '[object Uint8Array]') {\n    return 'uint8array';\n  }\n  if (type === '[object Uint8ClampedArray]') {\n    return 'uint8clampedarray';\n  }\n  if (type === '[object Int16Array]') {\n    return 'int16array';\n  }\n  if (type === '[object Uint16Array]') {\n    return 'uint16array';\n  }\n  if (type === '[object Int32Array]') {\n    return 'int32array';\n  }\n  if (type === '[object Uint32Array]') {\n    return 'uint32array';\n  }\n  if (type === '[object Float32Array]') {\n    return 'float32array';\n  }\n  if (type === '[object Float64Array]') {\n    return 'float64array';\n  }\n\n  // must be a plain object\n  return 'object';\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/object-copy/node_modules/kind-of/index.js?");

/***/ }),

/***/ "./node_modules/object-visit/index.js":
/*!********************************************!*\
  !*** ./node_modules/object-visit/index.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * object-visit <https://github.com/jonschlinkert/object-visit>\n *\n * Copyright (c) 2015, 2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar isObject = __webpack_require__(/*! isobject */ \"./node_modules/isobject/index.js\");\n\nmodule.exports = function visit(thisArg, method, target, val) {\n  if (!isObject(thisArg) && typeof thisArg !== 'function') {\n    throw new Error('object-visit expects `thisArg` to be an object.');\n  }\n\n  if (typeof method !== 'string') {\n    throw new Error('object-visit expects `method` name to be a string');\n  }\n\n  if (typeof thisArg[method] !== 'function') {\n    return thisArg;\n  }\n\n  var args = [].slice.call(arguments, 3);\n  target = target || {};\n\n  for (var key in target) {\n    var arr = [key, target[key]].concat(args);\n    thisArg[method].apply(thisArg, arr);\n  }\n  return thisArg;\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/object-visit/index.js?");

/***/ }),

/***/ "./node_modules/object.pick/index.js":
/*!*******************************************!*\
  !*** ./node_modules/object.pick/index.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * object.pick <https://github.com/jonschlinkert/object.pick>\n *\n * Copyright (c) 2014-2015 Jon Schlinkert, contributors.\n * Licensed under the MIT License\n */\n\n\n\nvar isObject = __webpack_require__(/*! isobject */ \"./node_modules/isobject/index.js\");\n\nmodule.exports = function pick(obj, keys) {\n  if (!isObject(obj) && typeof obj !== 'function') {\n    return {};\n  }\n\n  var res = {};\n  if (typeof keys === 'string') {\n    if (keys in obj) {\n      res[keys] = obj[keys];\n    }\n    return res;\n  }\n\n  var len = keys.length;\n  var idx = -1;\n\n  while (++idx < len) {\n    var key = keys[idx];\n    if (key in obj) {\n      res[key] = obj[key];\n    }\n  }\n  return res;\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/object.pick/index.js?");

/***/ }),

/***/ "./node_modules/pascalcase/index.js":
/*!******************************************!*\
  !*** ./node_modules/pascalcase/index.js ***!
  \******************************************/
/***/ ((module) => {

eval("/*!\n * pascalcase <https://github.com/jonschlinkert/pascalcase>\n *\n * Copyright (c) 2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\nfunction pascalcase(str) {\n  if (typeof str !== 'string') {\n    throw new TypeError('expected a string.');\n  }\n  str = str.replace(/([A-Z])/g, ' $1');\n  if (str.length === 1) { return str.toUpperCase(); }\n  str = str.replace(/^[\\W_]+|[\\W_]+$/g, '').toLowerCase();\n  str = str.charAt(0).toUpperCase() + str.slice(1);\n  return str.replace(/[\\W_]+(\\w|$)/g, function (_, ch) {\n    return ch.toUpperCase();\n  });\n}\n\nmodule.exports = pascalcase;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/pascalcase/index.js?");

/***/ }),

/***/ "./node_modules/path-is-absolute/index.js":
/*!************************************************!*\
  !*** ./node_modules/path-is-absolute/index.js ***!
  \************************************************/
/***/ ((module) => {

"use strict";
eval("\n\nfunction posix(path) {\n\treturn path.charAt(0) === '/';\n}\n\nfunction win32(path) {\n\t// https://github.com/nodejs/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56\n\tvar splitDeviceRe = /^([a-zA-Z]:|[\\\\\\/]{2}[^\\\\\\/]+[\\\\\\/]+[^\\\\\\/]+)?([\\\\\\/])?([\\s\\S]*?)$/;\n\tvar result = splitDeviceRe.exec(path);\n\tvar device = result[1] || '';\n\tvar isUnc = Boolean(device && device.charAt(1) !== ':');\n\n\t// UNC paths are always absolute\n\treturn Boolean(result[2] || isUnc);\n}\n\nmodule.exports = process.platform === 'win32' ? win32 : posix;\nmodule.exports.posix = posix;\nmodule.exports.win32 = win32;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/path-is-absolute/index.js?");

/***/ }),

/***/ "./node_modules/posix-character-classes/index.js":
/*!*******************************************************!*\
  !*** ./node_modules/posix-character-classes/index.js ***!
  \*******************************************************/
/***/ ((module) => {

"use strict";
eval("\n\n/**\n * POSIX character classes\n */\n\nmodule.exports = {\n  alnum: 'a-zA-Z0-9',\n  alpha: 'a-zA-Z',\n  ascii: '\\\\x00-\\\\x7F',\n  blank: ' \\\\t',\n  cntrl: '\\\\x00-\\\\x1F\\\\x7F',\n  digit: '0-9',\n  graph: '\\\\x21-\\\\x7E',\n  lower: 'a-z',\n  print: '\\\\x20-\\\\x7E ',\n  punct: '\\\\-!\"#$%&\\'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~',\n  space: ' \\\\t\\\\r\\\\n\\\\v\\\\f',\n  upper: 'A-Z',\n  word: 'A-Za-z0-9_',\n  xdigit: 'A-Fa-f0-9'\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/posix-character-classes/index.js?");

/***/ }),

/***/ "./node_modules/process-nextick-args/index.js":
/*!****************************************************!*\
  !*** ./node_modules/process-nextick-args/index.js ***!
  \****************************************************/
/***/ ((module) => {

"use strict";
eval("\n\nif (typeof process === 'undefined' ||\n    !process.version ||\n    process.version.indexOf('v0.') === 0 ||\n    process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n  module.exports = { nextTick: nextTick };\n} else {\n  module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n  if (typeof fn !== 'function') {\n    throw new TypeError('\"callback\" argument must be a function');\n  }\n  var len = arguments.length;\n  var args, i;\n  switch (len) {\n  case 0:\n  case 1:\n    return process.nextTick(fn);\n  case 2:\n    return process.nextTick(function afterTickOne() {\n      fn.call(null, arg1);\n    });\n  case 3:\n    return process.nextTick(function afterTickTwo() {\n      fn.call(null, arg1, arg2);\n    });\n  case 4:\n    return process.nextTick(function afterTickThree() {\n      fn.call(null, arg1, arg2, arg3);\n    });\n  default:\n    args = new Array(len - 1);\n    i = 0;\n    while (i < args.length) {\n      args[i++] = arguments[i];\n    }\n    return process.nextTick(function afterTick() {\n      fn.apply(null, args);\n    });\n  }\n}\n\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/process-nextick-args/index.js?");

/***/ }),

/***/ "./node_modules/readable-stream/lib/_stream_duplex.js":
/*!************************************************************!*\
  !*** ./node_modules/readable-stream/lib/_stream_duplex.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n\n\n/*<replacement>*/\n\nvar pna = __webpack_require__(/*! process-nextick-args */ \"./node_modules/process-nextick-args/index.js\");\n/*</replacement>*/\n\n/*<replacement>*/\nvar objectKeys = Object.keys || function (obj) {\n  var keys = [];\n  for (var key in obj) {\n    keys.push(key);\n  }return keys;\n};\n/*</replacement>*/\n\nmodule.exports = Duplex;\n\n/*<replacement>*/\nvar util = Object.create(__webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\"));\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits.js\");\n/*</replacement>*/\n\nvar Readable = __webpack_require__(/*! ./_stream_readable */ \"./node_modules/readable-stream/lib/_stream_readable.js\");\nvar Writable = __webpack_require__(/*! ./_stream_writable */ \"./node_modules/readable-stream/lib/_stream_writable.js\");\n\nutil.inherits(Duplex, Readable);\n\n{\n  // avoid scope creep, the keys array can then be collected\n  var keys = objectKeys(Writable.prototype);\n  for (var v = 0; v < keys.length; v++) {\n    var method = keys[v];\n    if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n  }\n}\n\nfunction Duplex(options) {\n  if (!(this instanceof Duplex)) return new Duplex(options);\n\n  Readable.call(this, options);\n  Writable.call(this, options);\n\n  if (options && options.readable === false) this.readable = false;\n\n  if (options && options.writable === false) this.writable = false;\n\n  this.allowHalfOpen = true;\n  if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n  this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function () {\n    return this._writableState.highWaterMark;\n  }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n  // if we allow half-open state, or if the writable side ended,\n  // then we're ok.\n  if (this.allowHalfOpen || this._writableState.ended) return;\n\n  // no more data can be written.\n  // But allow more writes to happen in this tick.\n  pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n  self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n  get: function () {\n    if (this._readableState === undefined || this._writableState === undefined) {\n      return false;\n    }\n    return this._readableState.destroyed && this._writableState.destroyed;\n  },\n  set: function (value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (this._readableState === undefined || this._writableState === undefined) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._readableState.destroyed = value;\n    this._writableState.destroyed = value;\n  }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n  this.push(null);\n  this.end();\n\n  pna.nextTick(cb, err);\n};\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/readable-stream/lib/_stream_duplex.js?");

/***/ }),

/***/ "./node_modules/readable-stream/lib/_stream_passthrough.js":
/*!*****************************************************************!*\
  !*** ./node_modules/readable-stream/lib/_stream_passthrough.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n\n\nmodule.exports = PassThrough;\n\nvar Transform = __webpack_require__(/*! ./_stream_transform */ \"./node_modules/readable-stream/lib/_stream_transform.js\");\n\n/*<replacement>*/\nvar util = Object.create(__webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\"));\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits.js\");\n/*</replacement>*/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n  if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n  Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n  cb(null, chunk);\n};\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/readable-stream/lib/_stream_passthrough.js?");

/***/ }),

/***/ "./node_modules/readable-stream/lib/_stream_readable.js":
/*!**************************************************************!*\
  !*** ./node_modules/readable-stream/lib/_stream_readable.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\n/*<replacement>*/\n\nvar pna = __webpack_require__(/*! process-nextick-args */ \"./node_modules/process-nextick-args/index.js\");\n/*</replacement>*/\n\nmodule.exports = Readable;\n\n/*<replacement>*/\nvar isArray = __webpack_require__(/*! isarray */ \"./node_modules/isarray/index.js\");\n/*</replacement>*/\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n\n/*<replacement>*/\nvar EE = __webpack_require__(/*! events */ \"events\").EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n  return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \"./node_modules/readable-stream/lib/internal/streams/stream.js\");\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n  return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*</replacement>*/\n\n/*<replacement>*/\nvar util = Object.create(__webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\"));\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits.js\");\n/*</replacement>*/\n\n/*<replacement>*/\nvar debugUtil = __webpack_require__(/*! util */ \"util\");\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n  debug = debugUtil.debuglog('stream');\n} else {\n  debug = function () {};\n}\n/*</replacement>*/\n\nvar BufferList = __webpack_require__(/*! ./internal/streams/BufferList */ \"./node_modules/readable-stream/lib/internal/streams/BufferList.js\");\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \"./node_modules/readable-stream/lib/internal/streams/destroy.js\");\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n  // Sadly this is not cacheable as some libraries bundle their own\n  // event emitter implementation with them.\n  if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n  // This is a hack to make sure that our error handler is attached before any\n  // userland ones.  NEVER DO THIS. This is here only because this code needs\n  // to continue to work with older versions of Node.js that do not include\n  // the prependListener() method. The goal is to eventually remove this hack.\n  if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\n\n  options = options || {};\n\n  // Duplex streams are both readable and writable, but share\n  // the same options object.\n  // However, some cases require setting options to different\n  // values for the readable and the writable sides of the duplex stream.\n  // These options can be provided separately as readableXXX and writableXXX.\n  var isDuplex = stream instanceof Duplex;\n\n  // object stream flag. Used to make read(n) ignore n and to\n  // make all the buffer merging and length checks go away\n  this.objectMode = !!options.objectMode;\n\n  if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n  // the point at which it stops calling _read() to fill the buffer\n  // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n  var hwm = options.highWaterMark;\n  var readableHwm = options.readableHighWaterMark;\n  var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n  if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n  // cast to ints.\n  this.highWaterMark = Math.floor(this.highWaterMark);\n\n  // A linked list is used to store data chunks instead of an array because the\n  // linked list can remove elements from the beginning faster than\n  // array.shift()\n  this.buffer = new BufferList();\n  this.length = 0;\n  this.pipes = null;\n  this.pipesCount = 0;\n  this.flowing = null;\n  this.ended = false;\n  this.endEmitted = false;\n  this.reading = false;\n\n  // a flag to be able to tell if the event 'readable'/'data' is emitted\n  // immediately, or on a later tick.  We set this to true at first, because\n  // any actions that shouldn't happen until \"later\" should generally also\n  // not happen before the first read call.\n  this.sync = true;\n\n  // whenever we return null, then we set a flag to say\n  // that we're awaiting a 'readable' event emission.\n  this.needReadable = false;\n  this.emittedReadable = false;\n  this.readableListening = false;\n  this.resumeScheduled = false;\n\n  // has it been destroyed\n  this.destroyed = false;\n\n  // Crypto is kind of old and crusty.  Historically, its default string\n  // encoding is 'binary' so we have to make this configurable.\n  // Everything else in the universe uses 'utf8', though.\n  this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n  // the number of writers that are awaiting a drain event in .pipe()s\n  this.awaitDrain = 0;\n\n  // if true, a maybeReadMore has been scheduled\n  this.readingMore = false;\n\n  this.decoder = null;\n  this.encoding = null;\n  if (options.encoding) {\n    if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ \"./node_modules/string_decoder/lib/string_decoder.js\").StringDecoder;\n    this.decoder = new StringDecoder(options.encoding);\n    this.encoding = options.encoding;\n  }\n}\n\nfunction Readable(options) {\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\n\n  if (!(this instanceof Readable)) return new Readable(options);\n\n  this._readableState = new ReadableState(options, this);\n\n  // legacy\n  this.readable = true;\n\n  if (options) {\n    if (typeof options.read === 'function') this._read = options.read;\n\n    if (typeof options.destroy === 'function') this._destroy = options.destroy;\n  }\n\n  Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n  get: function () {\n    if (this._readableState === undefined) {\n      return false;\n    }\n    return this._readableState.destroyed;\n  },\n  set: function (value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (!this._readableState) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._readableState.destroyed = value;\n  }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n  this.push(null);\n  cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n  var state = this._readableState;\n  var skipChunkCheck;\n\n  if (!state.objectMode) {\n    if (typeof chunk === 'string') {\n      encoding = encoding || state.defaultEncoding;\n      if (encoding !== state.encoding) {\n        chunk = Buffer.from(chunk, encoding);\n        encoding = '';\n      }\n      skipChunkCheck = true;\n    }\n  } else {\n    skipChunkCheck = true;\n  }\n\n  return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n  return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n  var state = stream._readableState;\n  if (chunk === null) {\n    state.reading = false;\n    onEofChunk(stream, state);\n  } else {\n    var er;\n    if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n    if (er) {\n      stream.emit('error', er);\n    } else if (state.objectMode || chunk && chunk.length > 0) {\n      if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n        chunk = _uint8ArrayToBuffer(chunk);\n      }\n\n      if (addToFront) {\n        if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n      } else if (state.ended) {\n        stream.emit('error', new Error('stream.push() after EOF'));\n      } else {\n        state.reading = false;\n        if (state.decoder && !encoding) {\n          chunk = state.decoder.write(chunk);\n          if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n        } else {\n          addChunk(stream, state, chunk, false);\n        }\n      }\n    } else if (!addToFront) {\n      state.reading = false;\n    }\n  }\n\n  return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n  if (state.flowing && state.length === 0 && !state.sync) {\n    stream.emit('data', chunk);\n    stream.read(0);\n  } else {\n    // update the buffer info.\n    state.length += state.objectMode ? 1 : chunk.length;\n    if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n    if (state.needReadable) emitReadable(stream);\n  }\n  maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n  var er;\n  if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n    er = new TypeError('Invalid non-string/buffer chunk');\n  }\n  return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes.  This is to work around cases where hwm=0,\n// such as the repl.  Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n  return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n  return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n  if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ \"./node_modules/string_decoder/lib/string_decoder.js\").StringDecoder;\n  this._readableState.decoder = new StringDecoder(enc);\n  this._readableState.encoding = enc;\n  return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n  if (n >= MAX_HWM) {\n    n = MAX_HWM;\n  } else {\n    // Get the next highest power of 2 to prevent increasing hwm excessively in\n    // tiny amounts\n    n--;\n    n |= n >>> 1;\n    n |= n >>> 2;\n    n |= n >>> 4;\n    n |= n >>> 8;\n    n |= n >>> 16;\n    n++;\n  }\n  return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n  if (n <= 0 || state.length === 0 && state.ended) return 0;\n  if (state.objectMode) return 1;\n  if (n !== n) {\n    // Only flow one buffer at a time\n    if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n  }\n  // If we're asking for more than the current hwm, then raise the hwm.\n  if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n  if (n <= state.length) return n;\n  // Don't have enough\n  if (!state.ended) {\n    state.needReadable = true;\n    return 0;\n  }\n  return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n  debug('read', n);\n  n = parseInt(n, 10);\n  var state = this._readableState;\n  var nOrig = n;\n\n  if (n !== 0) state.emittedReadable = false;\n\n  // if we're doing read(0) to trigger a readable event, but we\n  // already have a bunch of data in the buffer, then just trigger\n  // the 'readable' event and move on.\n  if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n    debug('read: emitReadable', state.length, state.ended);\n    if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n    return null;\n  }\n\n  n = howMuchToRead(n, state);\n\n  // if we've ended, and we're now clear, then finish it up.\n  if (n === 0 && state.ended) {\n    if (state.length === 0) endReadable(this);\n    return null;\n  }\n\n  // All the actual chunk generation logic needs to be\n  // *below* the call to _read.  The reason is that in certain\n  // synthetic stream cases, such as passthrough streams, _read\n  // may be a completely synchronous operation which may change\n  // the state of the read buffer, providing enough data when\n  // before there was *not* enough.\n  //\n  // So, the steps are:\n  // 1. Figure out what the state of things will be after we do\n  // a read from the buffer.\n  //\n  // 2. If that resulting state will trigger a _read, then call _read.\n  // Note that this may be asynchronous, or synchronous.  Yes, it is\n  // deeply ugly to write APIs this way, but that still doesn't mean\n  // that the Readable class should behave improperly, as streams are\n  // designed to be sync/async agnostic.\n  // Take note if the _read call is sync or async (ie, if the read call\n  // has returned yet), so that we know whether or not it's safe to emit\n  // 'readable' etc.\n  //\n  // 3. Actually pull the requested chunks out of the buffer and return.\n\n  // if we need a readable event, then we need to do some reading.\n  var doRead = state.needReadable;\n  debug('need readable', doRead);\n\n  // if we currently have less than the highWaterMark, then also read some\n  if (state.length === 0 || state.length - n < state.highWaterMark) {\n    doRead = true;\n    debug('length less than watermark', doRead);\n  }\n\n  // however, if we've ended, then there's no point, and if we're already\n  // reading, then it's unnecessary.\n  if (state.ended || state.reading) {\n    doRead = false;\n    debug('reading or ended', doRead);\n  } else if (doRead) {\n    debug('do read');\n    state.reading = true;\n    state.sync = true;\n    // if the length is currently zero, then we *need* a readable event.\n    if (state.length === 0) state.needReadable = true;\n    // call internal read method\n    this._read(state.highWaterMark);\n    state.sync = false;\n    // If _read pushed data synchronously, then `reading` will be false,\n    // and we need to re-evaluate how much data we can return to the user.\n    if (!state.reading) n = howMuchToRead(nOrig, state);\n  }\n\n  var ret;\n  if (n > 0) ret = fromList(n, state);else ret = null;\n\n  if (ret === null) {\n    state.needReadable = true;\n    n = 0;\n  } else {\n    state.length -= n;\n  }\n\n  if (state.length === 0) {\n    // If we have nothing in the buffer, then we want to know\n    // as soon as we *do* get something into the buffer.\n    if (!state.ended) state.needReadable = true;\n\n    // If we tried to read() past the EOF, then emit end on the next tick.\n    if (nOrig !== n && state.ended) endReadable(this);\n  }\n\n  if (ret !== null) this.emit('data', ret);\n\n  return ret;\n};\n\nfunction onEofChunk(stream, state) {\n  if (state.ended) return;\n  if (state.decoder) {\n    var chunk = state.decoder.end();\n    if (chunk && chunk.length) {\n      state.buffer.push(chunk);\n      state.length += state.objectMode ? 1 : chunk.length;\n    }\n  }\n  state.ended = true;\n\n  // emit 'readable' now to make sure it gets picked up.\n  emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow.  This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n  var state = stream._readableState;\n  state.needReadable = false;\n  if (!state.emittedReadable) {\n    debug('emitReadable', state.flowing);\n    state.emittedReadable = true;\n    if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n  }\n}\n\nfunction emitReadable_(stream) {\n  debug('emit readable');\n  stream.emit('readable');\n  flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data.  that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n  if (!state.readingMore) {\n    state.readingMore = true;\n    pna.nextTick(maybeReadMore_, stream, state);\n  }\n}\n\nfunction maybeReadMore_(stream, state) {\n  var len = state.length;\n  while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n    debug('maybeReadMore read 0');\n    stream.read(0);\n    if (len === state.length)\n      // didn't get any data, stop spinning.\n      break;else len = state.length;\n  }\n  state.readingMore = false;\n}\n\n// abstract method.  to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n  this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n  var src = this;\n  var state = this._readableState;\n\n  switch (state.pipesCount) {\n    case 0:\n      state.pipes = dest;\n      break;\n    case 1:\n      state.pipes = [state.pipes, dest];\n      break;\n    default:\n      state.pipes.push(dest);\n      break;\n  }\n  state.pipesCount += 1;\n  debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n  var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n  var endFn = doEnd ? onend : unpipe;\n  if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n  dest.on('unpipe', onunpipe);\n  function onunpipe(readable, unpipeInfo) {\n    debug('onunpipe');\n    if (readable === src) {\n      if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n        unpipeInfo.hasUnpiped = true;\n        cleanup();\n      }\n    }\n  }\n\n  function onend() {\n    debug('onend');\n    dest.end();\n  }\n\n  // when the dest drains, it reduces the awaitDrain counter\n  // on the source.  This would be more elegant with a .once()\n  // handler in flow(), but adding and removing repeatedly is\n  // too slow.\n  var ondrain = pipeOnDrain(src);\n  dest.on('drain', ondrain);\n\n  var cleanedUp = false;\n  function cleanup() {\n    debug('cleanup');\n    // cleanup event handlers once the pipe is broken\n    dest.removeListener('close', onclose);\n    dest.removeListener('finish', onfinish);\n    dest.removeListener('drain', ondrain);\n    dest.removeListener('error', onerror);\n    dest.removeListener('unpipe', onunpipe);\n    src.removeListener('end', onend);\n    src.removeListener('end', unpipe);\n    src.removeListener('data', ondata);\n\n    cleanedUp = true;\n\n    // if the reader is waiting for a drain event from this\n    // specific writer, then it would cause it to never start\n    // flowing again.\n    // So, if this is awaiting a drain, then we just call it now.\n    // If we don't know, then assume that we are waiting for one.\n    if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n  }\n\n  // If the user pushes more data while we're writing to dest then we'll end up\n  // in ondata again. However, we only want to increase awaitDrain once because\n  // dest will only emit one 'drain' event for the multiple writes.\n  // => Introduce a guard on increasing awaitDrain.\n  var increasedAwaitDrain = false;\n  src.on('data', ondata);\n  function ondata(chunk) {\n    debug('ondata');\n    increasedAwaitDrain = false;\n    var ret = dest.write(chunk);\n    if (false === ret && !increasedAwaitDrain) {\n      // If the user unpiped during `dest.write()`, it is possible\n      // to get stuck in a permanently paused state if that write\n      // also returned false.\n      // => Check whether `dest` is still a piping destination.\n      if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n        debug('false write response, pause', src._readableState.awaitDrain);\n        src._readableState.awaitDrain++;\n        increasedAwaitDrain = true;\n      }\n      src.pause();\n    }\n  }\n\n  // if the dest has an error, then stop piping into it.\n  // however, don't suppress the throwing behavior for this.\n  function onerror(er) {\n    debug('onerror', er);\n    unpipe();\n    dest.removeListener('error', onerror);\n    if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n  }\n\n  // Make sure our error handler is attached before userland ones.\n  prependListener(dest, 'error', onerror);\n\n  // Both close and finish should trigger unpipe, but only once.\n  function onclose() {\n    dest.removeListener('finish', onfinish);\n    unpipe();\n  }\n  dest.once('close', onclose);\n  function onfinish() {\n    debug('onfinish');\n    dest.removeListener('close', onclose);\n    unpipe();\n  }\n  dest.once('finish', onfinish);\n\n  function unpipe() {\n    debug('unpipe');\n    src.unpipe(dest);\n  }\n\n  // tell the dest that it's being piped to\n  dest.emit('pipe', src);\n\n  // start the flow if it hasn't been started already.\n  if (!state.flowing) {\n    debug('pipe resume');\n    src.resume();\n  }\n\n  return dest;\n};\n\nfunction pipeOnDrain(src) {\n  return function () {\n    var state = src._readableState;\n    debug('pipeOnDrain', state.awaitDrain);\n    if (state.awaitDrain) state.awaitDrain--;\n    if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n      state.flowing = true;\n      flow(src);\n    }\n  };\n}\n\nReadable.prototype.unpipe = function (dest) {\n  var state = this._readableState;\n  var unpipeInfo = { hasUnpiped: false };\n\n  // if we're not piping anywhere, then do nothing.\n  if (state.pipesCount === 0) return this;\n\n  // just one destination.  most common case.\n  if (state.pipesCount === 1) {\n    // passed in one, but it's not the right one.\n    if (dest && dest !== state.pipes) return this;\n\n    if (!dest) dest = state.pipes;\n\n    // got a match.\n    state.pipes = null;\n    state.pipesCount = 0;\n    state.flowing = false;\n    if (dest) dest.emit('unpipe', this, unpipeInfo);\n    return this;\n  }\n\n  // slow case. multiple pipe destinations.\n\n  if (!dest) {\n    // remove all.\n    var dests = state.pipes;\n    var len = state.pipesCount;\n    state.pipes = null;\n    state.pipesCount = 0;\n    state.flowing = false;\n\n    for (var i = 0; i < len; i++) {\n      dests[i].emit('unpipe', this, unpipeInfo);\n    }return this;\n  }\n\n  // try to find the right one.\n  var index = indexOf(state.pipes, dest);\n  if (index === -1) return this;\n\n  state.pipes.splice(index, 1);\n  state.pipesCount -= 1;\n  if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n  dest.emit('unpipe', this, unpipeInfo);\n\n  return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n  var res = Stream.prototype.on.call(this, ev, fn);\n\n  if (ev === 'data') {\n    // Start flowing on next tick if stream isn't explicitly paused\n    if (this._readableState.flowing !== false) this.resume();\n  } else if (ev === 'readable') {\n    var state = this._readableState;\n    if (!state.endEmitted && !state.readableListening) {\n      state.readableListening = state.needReadable = true;\n      state.emittedReadable = false;\n      if (!state.reading) {\n        pna.nextTick(nReadingNextTick, this);\n      } else if (state.length) {\n        emitReadable(this);\n      }\n    }\n  }\n\n  return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n  debug('readable nexttick read 0');\n  self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n  var state = this._readableState;\n  if (!state.flowing) {\n    debug('resume');\n    state.flowing = true;\n    resume(this, state);\n  }\n  return this;\n};\n\nfunction resume(stream, state) {\n  if (!state.resumeScheduled) {\n    state.resumeScheduled = true;\n    pna.nextTick(resume_, stream, state);\n  }\n}\n\nfunction resume_(stream, state) {\n  if (!state.reading) {\n    debug('resume read 0');\n    stream.read(0);\n  }\n\n  state.resumeScheduled = false;\n  state.awaitDrain = 0;\n  stream.emit('resume');\n  flow(stream);\n  if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n  debug('call pause flowing=%j', this._readableState.flowing);\n  if (false !== this._readableState.flowing) {\n    debug('pause');\n    this._readableState.flowing = false;\n    this.emit('pause');\n  }\n  return this;\n};\n\nfunction flow(stream) {\n  var state = stream._readableState;\n  debug('flow', state.flowing);\n  while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n  var _this = this;\n\n  var state = this._readableState;\n  var paused = false;\n\n  stream.on('end', function () {\n    debug('wrapped end');\n    if (state.decoder && !state.ended) {\n      var chunk = state.decoder.end();\n      if (chunk && chunk.length) _this.push(chunk);\n    }\n\n    _this.push(null);\n  });\n\n  stream.on('data', function (chunk) {\n    debug('wrapped data');\n    if (state.decoder) chunk = state.decoder.write(chunk);\n\n    // don't skip over falsy values in objectMode\n    if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n    var ret = _this.push(chunk);\n    if (!ret) {\n      paused = true;\n      stream.pause();\n    }\n  });\n\n  // proxy all the other methods.\n  // important when wrapping filters and duplexes.\n  for (var i in stream) {\n    if (this[i] === undefined && typeof stream[i] === 'function') {\n      this[i] = function (method) {\n        return function () {\n          return stream[method].apply(stream, arguments);\n        };\n      }(i);\n    }\n  }\n\n  // proxy certain important events.\n  for (var n = 0; n < kProxyEvents.length; n++) {\n    stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n  }\n\n  // when we try to consume some more bytes, simply unpause the\n  // underlying stream.\n  this._read = function (n) {\n    debug('wrapped _read', n);\n    if (paused) {\n      paused = false;\n      stream.resume();\n    }\n  };\n\n  return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function () {\n    return this._readableState.highWaterMark;\n  }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n  // nothing buffered\n  if (state.length === 0) return null;\n\n  var ret;\n  if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n    // read it all, truncate the list\n    if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n    state.buffer.clear();\n  } else {\n    // read part of list\n    ret = fromListPartial(n, state.buffer, state.decoder);\n  }\n\n  return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n  var ret;\n  if (n < list.head.data.length) {\n    // slice is the same for buffers and strings\n    ret = list.head.data.slice(0, n);\n    list.head.data = list.head.data.slice(n);\n  } else if (n === list.head.data.length) {\n    // first chunk is a perfect match\n    ret = list.shift();\n  } else {\n    // result spans more than one buffer\n    ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n  }\n  return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n  var p = list.head;\n  var c = 1;\n  var ret = p.data;\n  n -= ret.length;\n  while (p = p.next) {\n    var str = p.data;\n    var nb = n > str.length ? str.length : n;\n    if (nb === str.length) ret += str;else ret += str.slice(0, n);\n    n -= nb;\n    if (n === 0) {\n      if (nb === str.length) {\n        ++c;\n        if (p.next) list.head = p.next;else list.head = list.tail = null;\n      } else {\n        list.head = p;\n        p.data = str.slice(nb);\n      }\n      break;\n    }\n    ++c;\n  }\n  list.length -= c;\n  return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n  var ret = Buffer.allocUnsafe(n);\n  var p = list.head;\n  var c = 1;\n  p.data.copy(ret);\n  n -= p.data.length;\n  while (p = p.next) {\n    var buf = p.data;\n    var nb = n > buf.length ? buf.length : n;\n    buf.copy(ret, ret.length - n, 0, nb);\n    n -= nb;\n    if (n === 0) {\n      if (nb === buf.length) {\n        ++c;\n        if (p.next) list.head = p.next;else list.head = list.tail = null;\n      } else {\n        list.head = p;\n        p.data = buf.slice(nb);\n      }\n      break;\n    }\n    ++c;\n  }\n  list.length -= c;\n  return ret;\n}\n\nfunction endReadable(stream) {\n  var state = stream._readableState;\n\n  // If we get here before consuming all the bytes, then that is a\n  // bug in node.  Should never happen.\n  if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n  if (!state.endEmitted) {\n    state.ended = true;\n    pna.nextTick(endReadableNT, state, stream);\n  }\n}\n\nfunction endReadableNT(state, stream) {\n  // Check that we didn't get one last unshift.\n  if (!state.endEmitted && state.length === 0) {\n    state.endEmitted = true;\n    stream.readable = false;\n    stream.emit('end');\n  }\n}\n\nfunction indexOf(xs, x) {\n  for (var i = 0, l = xs.length; i < l; i++) {\n    if (xs[i] === x) return i;\n  }\n  return -1;\n}\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/readable-stream/lib/_stream_readable.js?");

/***/ }),

/***/ "./node_modules/readable-stream/lib/_stream_transform.js":
/*!***************************************************************!*\
  !*** ./node_modules/readable-stream/lib/_stream_transform.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data.  Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored.  (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation.  For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes.  When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up.  When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer.  When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks.  If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk.  However,\n// a pathological inflate type of transform can cause excessive buffering\n// here.  For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output.  Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output.  In this case, you could write a very small\n// amount of input, and end up with a very large amount of output.  In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform.  A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n\n\nmodule.exports = Transform;\n\nvar Duplex = __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\n\n/*<replacement>*/\nvar util = Object.create(__webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\"));\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits.js\");\n/*</replacement>*/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n  var ts = this._transformState;\n  ts.transforming = false;\n\n  var cb = ts.writecb;\n\n  if (!cb) {\n    return this.emit('error', new Error('write callback called multiple times'));\n  }\n\n  ts.writechunk = null;\n  ts.writecb = null;\n\n  if (data != null) // single equals check for both `null` and `undefined`\n    this.push(data);\n\n  cb(er);\n\n  var rs = this._readableState;\n  rs.reading = false;\n  if (rs.needReadable || rs.length < rs.highWaterMark) {\n    this._read(rs.highWaterMark);\n  }\n}\n\nfunction Transform(options) {\n  if (!(this instanceof Transform)) return new Transform(options);\n\n  Duplex.call(this, options);\n\n  this._transformState = {\n    afterTransform: afterTransform.bind(this),\n    needTransform: false,\n    transforming: false,\n    writecb: null,\n    writechunk: null,\n    writeencoding: null\n  };\n\n  // start out asking for a readable event once data is transformed.\n  this._readableState.needReadable = true;\n\n  // we have implemented the _read method, and done the other things\n  // that Readable wants before the first _read call, so unset the\n  // sync guard flag.\n  this._readableState.sync = false;\n\n  if (options) {\n    if (typeof options.transform === 'function') this._transform = options.transform;\n\n    if (typeof options.flush === 'function') this._flush = options.flush;\n  }\n\n  // When the writable side finishes, then flush out anything remaining.\n  this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n  var _this = this;\n\n  if (typeof this._flush === 'function') {\n    this._flush(function (er, data) {\n      done(_this, er, data);\n    });\n  } else {\n    done(this, null, null);\n  }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n  this._transformState.needTransform = false;\n  return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side.  You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk.  If you pass\n// an error, then that'll put the hurt on the whole operation.  If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n  throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n  var ts = this._transformState;\n  ts.writecb = cb;\n  ts.writechunk = chunk;\n  ts.writeencoding = encoding;\n  if (!ts.transforming) {\n    var rs = this._readableState;\n    if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n  }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n  var ts = this._transformState;\n\n  if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n    ts.transforming = true;\n    this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n  } else {\n    // mark that we need a transform, so that any data that comes in\n    // will get processed, now that we've asked for it.\n    ts.needTransform = true;\n  }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n  var _this2 = this;\n\n  Duplex.prototype._destroy.call(this, err, function (err2) {\n    cb(err2);\n    _this2.emit('close');\n  });\n};\n\nfunction done(stream, er, data) {\n  if (er) return stream.emit('error', er);\n\n  if (data != null) // single equals check for both `null` and `undefined`\n    stream.push(data);\n\n  // if there's nothing in the write buffer, then that means\n  // that nothing more will ever be provided\n  if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n  if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n  return stream.push(null);\n}\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/readable-stream/lib/_stream_transform.js?");

/***/ }),

/***/ "./node_modules/readable-stream/lib/_stream_writable.js":
/*!**************************************************************!*\
  !*** ./node_modules/readable-stream/lib/_stream_writable.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n\n\n/*<replacement>*/\n\nvar pna = __webpack_require__(/*! process-nextick-args */ \"./node_modules/process-nextick-args/index.js\");\n/*</replacement>*/\n\nmodule.exports = Writable;\n\n/* <replacement> */\nfunction WriteReq(chunk, encoding, cb) {\n  this.chunk = chunk;\n  this.encoding = encoding;\n  this.callback = cb;\n  this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n  var _this = this;\n\n  this.next = null;\n  this.entry = null;\n  this.finish = function () {\n    onCorkedFinish(_this, state);\n  };\n}\n/* </replacement> */\n\n/*<replacement>*/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/*</replacement>*/\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n\n/*<replacement>*/\nvar util = Object.create(__webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\"));\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits.js\");\n/*</replacement>*/\n\n/*<replacement>*/\nvar internalUtil = {\n  deprecate: __webpack_require__(/*! util-deprecate */ \"./node_modules/util-deprecate/node.js\")\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \"./node_modules/readable-stream/lib/internal/streams/stream.js\");\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n  return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*</replacement>*/\n\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \"./node_modules/readable-stream/lib/internal/streams/destroy.js\");\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\n\n  options = options || {};\n\n  // Duplex streams are both readable and writable, but share\n  // the same options object.\n  // However, some cases require setting options to different\n  // values for the readable and the writable sides of the duplex stream.\n  // These options can be provided separately as readableXXX and writableXXX.\n  var isDuplex = stream instanceof Duplex;\n\n  // object stream flag to indicate whether or not this stream\n  // contains buffers or objects.\n  this.objectMode = !!options.objectMode;\n\n  if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n  // the point at which write() starts returning false\n  // Note: 0 is a valid value, means that we always return false if\n  // the entire buffer is not flushed immediately on write()\n  var hwm = options.highWaterMark;\n  var writableHwm = options.writableHighWaterMark;\n  var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n  if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n  // cast to ints.\n  this.highWaterMark = Math.floor(this.highWaterMark);\n\n  // if _final has been called\n  this.finalCalled = false;\n\n  // drain event flag.\n  this.needDrain = false;\n  // at the start of calling end()\n  this.ending = false;\n  // when end() has been called, and returned\n  this.ended = false;\n  // when 'finish' is emitted\n  this.finished = false;\n\n  // has it been destroyed\n  this.destroyed = false;\n\n  // should we decode strings into buffers before passing to _write?\n  // this is here so that some node-core streams can optimize string\n  // handling at a lower level.\n  var noDecode = options.decodeStrings === false;\n  this.decodeStrings = !noDecode;\n\n  // Crypto is kind of old and crusty.  Historically, its default string\n  // encoding is 'binary' so we have to make this configurable.\n  // Everything else in the universe uses 'utf8', though.\n  this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n  // not an actual buffer we keep track of, but a measurement\n  // of how much we're waiting to get pushed to some underlying\n  // socket or file.\n  this.length = 0;\n\n  // a flag to see when we're in the middle of a write.\n  this.writing = false;\n\n  // when true all writes will be buffered until .uncork() call\n  this.corked = 0;\n\n  // a flag to be able to tell if the onwrite cb is called immediately,\n  // or on a later tick.  We set this to true at first, because any\n  // actions that shouldn't happen until \"later\" should generally also\n  // not happen before the first write call.\n  this.sync = true;\n\n  // a flag to know if we're processing previously buffered items, which\n  // may call the _write() callback in the same tick, so that we don't\n  // end up in an overlapped onwrite situation.\n  this.bufferProcessing = false;\n\n  // the callback that's passed to _write(chunk,cb)\n  this.onwrite = function (er) {\n    onwrite(stream, er);\n  };\n\n  // the callback that the user supplies to write(chunk,encoding,cb)\n  this.writecb = null;\n\n  // the amount that is being written when _write is called.\n  this.writelen = 0;\n\n  this.bufferedRequest = null;\n  this.lastBufferedRequest = null;\n\n  // number of pending user-supplied write callbacks\n  // this must be 0 before 'finish' can be emitted\n  this.pendingcb = 0;\n\n  // emit prefinish if the only thing we're waiting for is _write cbs\n  // This is relevant for synchronous Transform streams\n  this.prefinished = false;\n\n  // True if the error was already emitted and should not be thrown again\n  this.errorEmitted = false;\n\n  // count buffered requests\n  this.bufferedRequestCount = 0;\n\n  // allocate the first CorkedRequest, there is always\n  // one allocated and free to use, and we maintain at most two\n  this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n  var current = this.bufferedRequest;\n  var out = [];\n  while (current) {\n    out.push(current);\n    current = current.next;\n  }\n  return out;\n};\n\n(function () {\n  try {\n    Object.defineProperty(WritableState.prototype, 'buffer', {\n      get: internalUtil.deprecate(function () {\n        return this.getBuffer();\n      }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n    });\n  } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n  realHasInstance = Function.prototype[Symbol.hasInstance];\n  Object.defineProperty(Writable, Symbol.hasInstance, {\n    value: function (object) {\n      if (realHasInstance.call(this, object)) return true;\n      if (this !== Writable) return false;\n\n      return object && object._writableState instanceof WritableState;\n    }\n  });\n} else {\n  realHasInstance = function (object) {\n    return object instanceof this;\n  };\n}\n\nfunction Writable(options) {\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\n\n  // Writable ctor is applied to Duplexes, too.\n  // `realHasInstance` is necessary because using plain `instanceof`\n  // would return false, as no `_writableState` property is attached.\n\n  // Trying to use the custom `instanceof` for Writable here will also break the\n  // Node.js LazyTransform implementation, which has a non-trivial getter for\n  // `_writableState` that would lead to infinite recursion.\n  if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n    return new Writable(options);\n  }\n\n  this._writableState = new WritableState(options, this);\n\n  // legacy.\n  this.writable = true;\n\n  if (options) {\n    if (typeof options.write === 'function') this._write = options.write;\n\n    if (typeof options.writev === 'function') this._writev = options.writev;\n\n    if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n    if (typeof options.final === 'function') this._final = options.final;\n  }\n\n  Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n  this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n  var er = new Error('write after end');\n  // TODO: defer error events consistently everywhere, not just the cb\n  stream.emit('error', er);\n  pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n  var valid = true;\n  var er = false;\n\n  if (chunk === null) {\n    er = new TypeError('May not write null values to stream');\n  } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n    er = new TypeError('Invalid non-string/buffer chunk');\n  }\n  if (er) {\n    stream.emit('error', er);\n    pna.nextTick(cb, er);\n    valid = false;\n  }\n  return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n  var state = this._writableState;\n  var ret = false;\n  var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n  if (isBuf && !Buffer.isBuffer(chunk)) {\n    chunk = _uint8ArrayToBuffer(chunk);\n  }\n\n  if (typeof encoding === 'function') {\n    cb = encoding;\n    encoding = null;\n  }\n\n  if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n  if (typeof cb !== 'function') cb = nop;\n\n  if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n    state.pendingcb++;\n    ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n  }\n\n  return ret;\n};\n\nWritable.prototype.cork = function () {\n  var state = this._writableState;\n\n  state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n  var state = this._writableState;\n\n  if (state.corked) {\n    state.corked--;\n\n    if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n  }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n  // node::ParseEncoding() requires lower case.\n  if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n  if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n  this._writableState.defaultEncoding = encoding;\n  return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n  if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n    chunk = Buffer.from(chunk, encoding);\n  }\n  return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function () {\n    return this._writableState.highWaterMark;\n  }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn.  Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n  if (!isBuf) {\n    var newChunk = decodeChunk(state, chunk, encoding);\n    if (chunk !== newChunk) {\n      isBuf = true;\n      encoding = 'buffer';\n      chunk = newChunk;\n    }\n  }\n  var len = state.objectMode ? 1 : chunk.length;\n\n  state.length += len;\n\n  var ret = state.length < state.highWaterMark;\n  // we must ensure that previous needDrain will not be reset to false.\n  if (!ret) state.needDrain = true;\n\n  if (state.writing || state.corked) {\n    var last = state.lastBufferedRequest;\n    state.lastBufferedRequest = {\n      chunk: chunk,\n      encoding: encoding,\n      isBuf: isBuf,\n      callback: cb,\n      next: null\n    };\n    if (last) {\n      last.next = state.lastBufferedRequest;\n    } else {\n      state.bufferedRequest = state.lastBufferedRequest;\n    }\n    state.bufferedRequestCount += 1;\n  } else {\n    doWrite(stream, state, false, len, chunk, encoding, cb);\n  }\n\n  return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n  state.writelen = len;\n  state.writecb = cb;\n  state.writing = true;\n  state.sync = true;\n  if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n  state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n  --state.pendingcb;\n\n  if (sync) {\n    // defer the callback if we are being called synchronously\n    // to avoid piling up things on the stack\n    pna.nextTick(cb, er);\n    // this can emit finish, and it will always happen\n    // after error\n    pna.nextTick(finishMaybe, stream, state);\n    stream._writableState.errorEmitted = true;\n    stream.emit('error', er);\n  } else {\n    // the caller expect this to happen before if\n    // it is async\n    cb(er);\n    stream._writableState.errorEmitted = true;\n    stream.emit('error', er);\n    // this can emit finish, but finish must\n    // always follow error\n    finishMaybe(stream, state);\n  }\n}\n\nfunction onwriteStateUpdate(state) {\n  state.writing = false;\n  state.writecb = null;\n  state.length -= state.writelen;\n  state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n  var state = stream._writableState;\n  var sync = state.sync;\n  var cb = state.writecb;\n\n  onwriteStateUpdate(state);\n\n  if (er) onwriteError(stream, state, sync, er, cb);else {\n    // Check if we're actually ready to finish, but don't emit yet\n    var finished = needFinish(state);\n\n    if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n      clearBuffer(stream, state);\n    }\n\n    if (sync) {\n      /*<replacement>*/\n      asyncWrite(afterWrite, stream, state, finished, cb);\n      /*</replacement>*/\n    } else {\n      afterWrite(stream, state, finished, cb);\n    }\n  }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n  if (!finished) onwriteDrain(stream, state);\n  state.pendingcb--;\n  cb();\n  finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n  if (state.length === 0 && state.needDrain) {\n    state.needDrain = false;\n    stream.emit('drain');\n  }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n  state.bufferProcessing = true;\n  var entry = state.bufferedRequest;\n\n  if (stream._writev && entry && entry.next) {\n    // Fast case, write everything using _writev()\n    var l = state.bufferedRequestCount;\n    var buffer = new Array(l);\n    var holder = state.corkedRequestsFree;\n    holder.entry = entry;\n\n    var count = 0;\n    var allBuffers = true;\n    while (entry) {\n      buffer[count] = entry;\n      if (!entry.isBuf) allBuffers = false;\n      entry = entry.next;\n      count += 1;\n    }\n    buffer.allBuffers = allBuffers;\n\n    doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n    // doWrite is almost always async, defer these to save a bit of time\n    // as the hot path ends with doWrite\n    state.pendingcb++;\n    state.lastBufferedRequest = null;\n    if (holder.next) {\n      state.corkedRequestsFree = holder.next;\n      holder.next = null;\n    } else {\n      state.corkedRequestsFree = new CorkedRequest(state);\n    }\n    state.bufferedRequestCount = 0;\n  } else {\n    // Slow case, write chunks one-by-one\n    while (entry) {\n      var chunk = entry.chunk;\n      var encoding = entry.encoding;\n      var cb = entry.callback;\n      var len = state.objectMode ? 1 : chunk.length;\n\n      doWrite(stream, state, false, len, chunk, encoding, cb);\n      entry = entry.next;\n      state.bufferedRequestCount--;\n      // if we didn't call the onwrite immediately, then\n      // it means that we need to wait until it does.\n      // also, that means that the chunk and cb are currently\n      // being processed, so move the buffer counter past them.\n      if (state.writing) {\n        break;\n      }\n    }\n\n    if (entry === null) state.lastBufferedRequest = null;\n  }\n\n  state.bufferedRequest = entry;\n  state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n  cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n  var state = this._writableState;\n\n  if (typeof chunk === 'function') {\n    cb = chunk;\n    chunk = null;\n    encoding = null;\n  } else if (typeof encoding === 'function') {\n    cb = encoding;\n    encoding = null;\n  }\n\n  if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n  // .end() fully uncorks\n  if (state.corked) {\n    state.corked = 1;\n    this.uncork();\n  }\n\n  // ignore unnecessary end() calls.\n  if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n  return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n  stream._final(function (err) {\n    state.pendingcb--;\n    if (err) {\n      stream.emit('error', err);\n    }\n    state.prefinished = true;\n    stream.emit('prefinish');\n    finishMaybe(stream, state);\n  });\n}\nfunction prefinish(stream, state) {\n  if (!state.prefinished && !state.finalCalled) {\n    if (typeof stream._final === 'function') {\n      state.pendingcb++;\n      state.finalCalled = true;\n      pna.nextTick(callFinal, stream, state);\n    } else {\n      state.prefinished = true;\n      stream.emit('prefinish');\n    }\n  }\n}\n\nfunction finishMaybe(stream, state) {\n  var need = needFinish(state);\n  if (need) {\n    prefinish(stream, state);\n    if (state.pendingcb === 0) {\n      state.finished = true;\n      stream.emit('finish');\n    }\n  }\n  return need;\n}\n\nfunction endWritable(stream, state, cb) {\n  state.ending = true;\n  finishMaybe(stream, state);\n  if (cb) {\n    if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n  }\n  state.ended = true;\n  stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n  var entry = corkReq.entry;\n  corkReq.entry = null;\n  while (entry) {\n    var cb = entry.callback;\n    state.pendingcb--;\n    cb(err);\n    entry = entry.next;\n  }\n  if (state.corkedRequestsFree) {\n    state.corkedRequestsFree.next = corkReq;\n  } else {\n    state.corkedRequestsFree = corkReq;\n  }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n  get: function () {\n    if (this._writableState === undefined) {\n      return false;\n    }\n    return this._writableState.destroyed;\n  },\n  set: function (value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (!this._writableState) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._writableState.destroyed = value;\n  }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n  this.end();\n  cb(err);\n};\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/readable-stream/lib/_stream_writable.js?");

/***/ }),

/***/ "./node_modules/readable-stream/lib/internal/streams/BufferList.js":
/*!*************************************************************************!*\
  !*** ./node_modules/readable-stream/lib/internal/streams/BufferList.js ***!
  \*************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\nvar util = __webpack_require__(/*! util */ \"util\");\n\nfunction copyBuffer(src, target, offset) {\n  src.copy(target, offset);\n}\n\nmodule.exports = function () {\n  function BufferList() {\n    _classCallCheck(this, BufferList);\n\n    this.head = null;\n    this.tail = null;\n    this.length = 0;\n  }\n\n  BufferList.prototype.push = function push(v) {\n    var entry = { data: v, next: null };\n    if (this.length > 0) this.tail.next = entry;else this.head = entry;\n    this.tail = entry;\n    ++this.length;\n  };\n\n  BufferList.prototype.unshift = function unshift(v) {\n    var entry = { data: v, next: this.head };\n    if (this.length === 0) this.tail = entry;\n    this.head = entry;\n    ++this.length;\n  };\n\n  BufferList.prototype.shift = function shift() {\n    if (this.length === 0) return;\n    var ret = this.head.data;\n    if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n    --this.length;\n    return ret;\n  };\n\n  BufferList.prototype.clear = function clear() {\n    this.head = this.tail = null;\n    this.length = 0;\n  };\n\n  BufferList.prototype.join = function join(s) {\n    if (this.length === 0) return '';\n    var p = this.head;\n    var ret = '' + p.data;\n    while (p = p.next) {\n      ret += s + p.data;\n    }return ret;\n  };\n\n  BufferList.prototype.concat = function concat(n) {\n    if (this.length === 0) return Buffer.alloc(0);\n    if (this.length === 1) return this.head.data;\n    var ret = Buffer.allocUnsafe(n >>> 0);\n    var p = this.head;\n    var i = 0;\n    while (p) {\n      copyBuffer(p.data, ret, i);\n      i += p.data.length;\n      p = p.next;\n    }\n    return ret;\n  };\n\n  return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n  module.exports.prototype[util.inspect.custom] = function () {\n    var obj = util.inspect({ length: this.length });\n    return this.constructor.name + ' ' + obj;\n  };\n}\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/readable-stream/lib/internal/streams/BufferList.js?");

/***/ }),

/***/ "./node_modules/readable-stream/lib/internal/streams/destroy.js":
/*!**********************************************************************!*\
  !*** ./node_modules/readable-stream/lib/internal/streams/destroy.js ***!
  \**********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\n/*<replacement>*/\n\nvar pna = __webpack_require__(/*! process-nextick-args */ \"./node_modules/process-nextick-args/index.js\");\n/*</replacement>*/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n  var _this = this;\n\n  var readableDestroyed = this._readableState && this._readableState.destroyed;\n  var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n  if (readableDestroyed || writableDestroyed) {\n    if (cb) {\n      cb(err);\n    } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n      pna.nextTick(emitErrorNT, this, err);\n    }\n    return this;\n  }\n\n  // we set destroyed to true before firing error callbacks in order\n  // to make it re-entrance safe in case destroy() is called within callbacks\n\n  if (this._readableState) {\n    this._readableState.destroyed = true;\n  }\n\n  // if this is a duplex stream mark the writable part as destroyed as well\n  if (this._writableState) {\n    this._writableState.destroyed = true;\n  }\n\n  this._destroy(err || null, function (err) {\n    if (!cb && err) {\n      pna.nextTick(emitErrorNT, _this, err);\n      if (_this._writableState) {\n        _this._writableState.errorEmitted = true;\n      }\n    } else if (cb) {\n      cb(err);\n    }\n  });\n\n  return this;\n}\n\nfunction undestroy() {\n  if (this._readableState) {\n    this._readableState.destroyed = false;\n    this._readableState.reading = false;\n    this._readableState.ended = false;\n    this._readableState.endEmitted = false;\n  }\n\n  if (this._writableState) {\n    this._writableState.destroyed = false;\n    this._writableState.ended = false;\n    this._writableState.ending = false;\n    this._writableState.finished = false;\n    this._writableState.errorEmitted = false;\n  }\n}\n\nfunction emitErrorNT(self, err) {\n  self.emit('error', err);\n}\n\nmodule.exports = {\n  destroy: destroy,\n  undestroy: undestroy\n};\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/readable-stream/lib/internal/streams/destroy.js?");

/***/ }),

/***/ "./node_modules/readable-stream/lib/internal/streams/stream.js":
/*!*********************************************************************!*\
  !*** ./node_modules/readable-stream/lib/internal/streams/stream.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("module.exports = __webpack_require__(/*! stream */ \"stream\");\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/readable-stream/lib/internal/streams/stream.js?");

/***/ }),

/***/ "./node_modules/readable-stream/readable.js":
/*!**************************************************!*\
  !*** ./node_modules/readable-stream/readable.js ***!
  \**************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("var Stream = __webpack_require__(/*! stream */ \"stream\");\nif (process.env.READABLE_STREAM === 'disable' && Stream) {\n  module.exports = Stream;\n  exports = module.exports = Stream.Readable;\n  exports.Readable = Stream.Readable;\n  exports.Writable = Stream.Writable;\n  exports.Duplex = Stream.Duplex;\n  exports.Transform = Stream.Transform;\n  exports.PassThrough = Stream.PassThrough;\n  exports.Stream = Stream;\n} else {\n  exports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */ \"./node_modules/readable-stream/lib/_stream_readable.js\");\n  exports.Stream = Stream || exports;\n  exports.Readable = exports;\n  exports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ \"./node_modules/readable-stream/lib/_stream_writable.js\");\n  exports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\n  exports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ \"./node_modules/readable-stream/lib/_stream_transform.js\");\n  exports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ \"./node_modules/readable-stream/lib/_stream_passthrough.js\");\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/readable-stream/readable.js?");

/***/ }),

/***/ "./node_modules/readdirp/readdirp.js":
/*!*******************************************!*\
  !*** ./node_modules/readdirp/readdirp.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar fs        =  __webpack_require__(/*! graceful-fs */ \"./node_modules/graceful-fs/graceful-fs.js\")\n  , path      =  __webpack_require__(/*! path */ \"path\")\n  , micromatch =  __webpack_require__(/*! micromatch */ \"./node_modules/micromatch/index.js\").isMatch\n  , toString  =  Object.prototype.toString\n  ;\n\n\n// Standard helpers\nfunction isFunction (obj) {\n  return toString.call(obj) === '[object Function]';\n}\n\nfunction isString (obj) {\n  return toString.call(obj) === '[object String]';\n}\n\nfunction isUndefined (obj) {\n  return obj === void 0;\n}\n\n/**\n * Main function which ends up calling readdirRec and reads all files and directories in given root recursively.\n * @param { Object }   opts     Options to specify root (start directory), filters and recursion depth\n * @param { function } callback1  When callback2 is given calls back for each processed file - function (fileInfo) { ... },\n *                                when callback2 is not given, it behaves like explained in callback2\n * @param { function } callback2  Calls back once all files have been processed with an array of errors and file infos\n *                                function (err, fileInfos) { ... }\n */\nfunction readdir(opts, callback1, callback2) {\n  var stream\n    , handleError\n    , handleFatalError\n    , errors = []\n    , readdirResult = {\n        directories: []\n      , files: []\n    }\n    , fileProcessed\n    , allProcessed\n    , realRoot\n    , aborted = false\n    , paused = false\n    ;\n\n  // If no callbacks were given we will use a streaming interface\n  if (isUndefined(callback1)) {\n    var api          =  __webpack_require__(/*! ./stream-api */ \"./node_modules/readdirp/stream-api.js\")();\n    stream           =  api.stream;\n    callback1        =  api.processEntry;\n    callback2        =  api.done;\n    handleError      =  api.handleError;\n    handleFatalError =  api.handleFatalError;\n\n    stream.on('close', function () { aborted = true; });\n    stream.on('pause', function () { paused = true; });\n    stream.on('resume', function () { paused = false; });\n  } else {\n    handleError      =  function (err) { errors.push(err); };\n    handleFatalError =  function (err) {\n      handleError(err);\n      allProcessed(errors, null);\n    };\n  }\n\n  if (isUndefined(opts)){\n    handleFatalError(new Error (\n      'Need to pass at least one argument: opts! \\n' +\n      'https://github.com/paulmillr/readdirp#options'\n      )\n    );\n    return stream;\n  }\n\n  opts.root            =  opts.root            || '.';\n  opts.fileFilter      =  opts.fileFilter      || function() { return true; };\n  opts.directoryFilter =  opts.directoryFilter || function() { return true; };\n  opts.depth           =  typeof opts.depth === 'undefined' ? 999999999 : opts.depth;\n  opts.entryType       =  opts.entryType       || 'files';\n\n  var statfn = opts.lstat === true ? fs.lstat.bind(fs) : fs.stat.bind(fs);\n\n  if (isUndefined(callback2)) {\n    fileProcessed = function() { };\n    allProcessed = callback1;\n  } else {\n    fileProcessed = callback1;\n    allProcessed = callback2;\n  }\n\n  function normalizeFilter (filter) {\n\n    if (isUndefined(filter)) return undefined;\n\n    function isNegated (filters) {\n\n      function negated(f) {\n        return f.indexOf('!') === 0;\n      }\n\n      var some = filters.some(negated);\n      if (!some) {\n        return false;\n      } else {\n        if (filters.every(negated)) {\n          return true;\n        } else {\n          // if we detect illegal filters, bail out immediately\n          throw new Error(\n            'Cannot mix negated with non negated glob filters: ' + filters + '\\n' +\n            'https://github.com/paulmillr/readdirp#filters'\n          );\n        }\n      }\n    }\n\n    // Turn all filters into a function\n    if (isFunction(filter)) {\n\n      return filter;\n\n    } else if (isString(filter)) {\n\n      return function (entryInfo) {\n        return micromatch(entryInfo.name, filter.trim());\n      };\n\n    } else if (filter && Array.isArray(filter)) {\n\n      if (filter) filter = filter.map(function (f) {\n        return f.trim();\n      });\n\n      return isNegated(filter) ?\n        // use AND to concat multiple negated filters\n        function (entryInfo) {\n          return filter.every(function (f) {\n            return micromatch(entryInfo.name, f);\n          });\n        }\n        :\n        // use OR to concat multiple inclusive filters\n        function (entryInfo) {\n          return filter.some(function (f) {\n            return micromatch(entryInfo.name, f);\n          });\n        };\n    }\n  }\n\n  function processDir(currentDir, entries, callProcessed) {\n    if (aborted) return;\n    var total = entries.length\n      , processed = 0\n      , entryInfos = []\n      ;\n\n    fs.realpath(currentDir, function(err, realCurrentDir) {\n      if (aborted) return;\n      if (err) {\n        handleError(err);\n        callProcessed(entryInfos);\n        return;\n      }\n\n      var relDir = path.relative(realRoot, realCurrentDir);\n\n      if (entries.length === 0) {\n        callProcessed([]);\n      } else {\n        entries.forEach(function (entry) {\n\n          var fullPath = path.join(realCurrentDir, entry)\n            , relPath  = path.join(relDir, entry);\n\n          statfn(fullPath, function (err, stat) {\n            if (err) {\n              handleError(err);\n            } else {\n              entryInfos.push({\n                  name          :  entry\n                , path          :  relPath   // relative to root\n                , fullPath      :  fullPath\n\n                , parentDir     :  relDir    // relative to root\n                , fullParentDir :  realCurrentDir\n\n                , stat          :  stat\n              });\n            }\n            processed++;\n            if (processed === total) callProcessed(entryInfos);\n          });\n        });\n      }\n    });\n  }\n\n  function readdirRec(currentDir, depth, callCurrentDirProcessed) {\n    var args = arguments;\n    if (aborted) return;\n    if (paused) {\n      setImmediate(function () {\n        readdirRec.apply(null, args);\n      })\n      return;\n    }\n\n    fs.readdir(currentDir, function (err, entries) {\n      if (err) {\n        handleError(err);\n        callCurrentDirProcessed();\n        return;\n      }\n\n      processDir(currentDir, entries, function(entryInfos) {\n\n        var subdirs = entryInfos\n          .filter(function (ei) { return ei.stat.isDirectory() && opts.directoryFilter(ei); });\n\n        subdirs.forEach(function (di) {\n          if(opts.entryType === 'directories' || opts.entryType === 'both' || opts.entryType === 'all') {\n            fileProcessed(di);\n          }\n          readdirResult.directories.push(di);\n        });\n\n        entryInfos\n          .filter(function(ei) {\n            var isCorrectType = opts.entryType === 'all' ?\n              !ei.stat.isDirectory() : ei.stat.isFile() || ei.stat.isSymbolicLink();\n            return isCorrectType && opts.fileFilter(ei);\n          })\n          .forEach(function (fi) {\n            if(opts.entryType === 'files' || opts.entryType === 'both' || opts.entryType === 'all') {\n              fileProcessed(fi);\n            }\n            readdirResult.files.push(fi);\n          });\n\n        var pendingSubdirs = subdirs.length;\n\n        // Be done if no more subfolders exist or we reached the maximum desired depth\n        if(pendingSubdirs === 0 || depth === opts.depth) {\n          callCurrentDirProcessed();\n        } else {\n          // recurse into subdirs, keeping track of which ones are done\n          // and call back once all are processed\n          subdirs.forEach(function (subdir) {\n            readdirRec(subdir.fullPath, depth + 1, function () {\n              pendingSubdirs = pendingSubdirs - 1;\n              if(pendingSubdirs === 0) {\n                callCurrentDirProcessed();\n              }\n            });\n          });\n        }\n      });\n    });\n  }\n\n  // Validate and normalize filters\n  try {\n    opts.fileFilter = normalizeFilter(opts.fileFilter);\n    opts.directoryFilter = normalizeFilter(opts.directoryFilter);\n  } catch (err) {\n    // if we detect illegal filters, bail out immediately\n    handleFatalError(err);\n    return stream;\n  }\n\n  // If filters were valid get on with the show\n  fs.realpath(opts.root, function(err, res) {\n    if (err) {\n      handleFatalError(err);\n      return stream;\n    }\n\n    realRoot = res;\n    readdirRec(opts.root, 0, function () {\n      // All errors are collected into the errors array\n      if (errors.length > 0) {\n        allProcessed(errors, readdirResult);\n      } else {\n        allProcessed(null, readdirResult);\n      }\n    });\n  });\n\n  return stream;\n}\n\nmodule.exports = readdir;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/readdirp/readdirp.js?");

/***/ }),

/***/ "./node_modules/readdirp/stream-api.js":
/*!*********************************************!*\
  !*** ./node_modules/readdirp/stream-api.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar stream = __webpack_require__(/*! readable-stream */ \"./node_modules/readable-stream/readable.js\");\nvar util = __webpack_require__(/*! util */ \"util\");\n\nvar Readable = stream.Readable;\n\nmodule.exports = ReaddirpReadable;\n\nutil.inherits(ReaddirpReadable, Readable);\n\nfunction ReaddirpReadable (opts) {\n  if (!(this instanceof ReaddirpReadable)) return new ReaddirpReadable(opts);\n\n  opts = opts || {};\n\n  opts.objectMode = true;\n  Readable.call(this, opts);\n\n  // backpressure not implemented at this point\n  this.highWaterMark = Infinity;\n\n  this._destroyed = false;\n  this._paused = false;\n  this._warnings = [];\n  this._errors = [];\n\n  this._pauseResumeErrors();\n}\n\nvar proto = ReaddirpReadable.prototype;\n\nproto._pauseResumeErrors = function () {\n  var self = this;\n  self.on('pause', function () { self._paused = true });\n  self.on('resume', function () {\n    if (self._destroyed) return;\n    self._paused = false;\n\n    self._warnings.forEach(function (err) { self.emit('warn', err) });\n    self._warnings.length = 0;\n\n    self._errors.forEach(function (err) { self.emit('error', err) });\n    self._errors.length = 0;\n  })\n}\n\n// called for each entry\nproto._processEntry = function (entry) {\n  if (this._destroyed) return;\n  this.push(entry);\n}\n\nproto._read = function () { }\n\nproto.destroy = function () {\n  // when stream is destroyed it will emit nothing further, not even errors or warnings\n  this.push(null);\n  this.readable = false;\n  this._destroyed = true;\n  this.emit('close');\n}\n\nproto._done = function () {\n  this.push(null);\n}\n\n// we emit errors and warnings async since we may handle errors like invalid args\n// within the initial event loop before any event listeners subscribed\nproto._handleError = function (err) {\n  var self = this;\n  setImmediate(function () {\n    if (self._paused) return self._warnings.push(err);\n    if (!self._destroyed) self.emit('warn', err);\n  });\n}\n\nproto._handleFatalError = function (err) {\n  var self = this;\n  setImmediate(function () {\n    if (self._paused) return self._errors.push(err);\n    if (!self._destroyed) self.emit('error', err);\n  });\n}\n\nfunction createStreamAPI () {\n  var stream = new ReaddirpReadable();\n\n  return {\n      stream           :  stream\n    , processEntry     :  stream._processEntry.bind(stream)\n    , done             :  stream._done.bind(stream)\n    , handleError      :  stream._handleError.bind(stream)\n    , handleFatalError :  stream._handleFatalError.bind(stream)\n  };\n}\n\nmodule.exports = createStreamAPI;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/readdirp/stream-api.js?");

/***/ }),

/***/ "./node_modules/regex-not/index.js":
/*!*****************************************!*\
  !*** ./node_modules/regex-not/index.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar extend = __webpack_require__(/*! extend-shallow */ \"./node_modules/regex-not/node_modules/extend-shallow/index.js\");\nvar safe = __webpack_require__(/*! safe-regex */ \"./node_modules/safe-regex/index.js\");\n\n/**\n * The main export is a function that takes a `pattern` string and an `options` object.\n *\n * ```js\n & var not = require('regex-not');\n & console.log(not('foo'));\n & //=> /^(?:(?!^(?:foo)$).)*$/\n * ```\n *\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {RegExp} Converts the given `pattern` to a regex using the specified `options`.\n * @api public\n */\n\nfunction toRegex(pattern, options) {\n  return new RegExp(toRegex.create(pattern, options));\n}\n\n/**\n * Create a regex-compatible string from the given `pattern` and `options`.\n *\n * ```js\n & var not = require('regex-not');\n & console.log(not.create('foo'));\n & //=> '^(?:(?!^(?:foo)$).)*$'\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {String}\n * @api public\n */\n\ntoRegex.create = function(pattern, options) {\n  if (typeof pattern !== 'string') {\n    throw new TypeError('expected a string');\n  }\n\n  var opts = extend({}, options);\n  if (opts.contains === true) {\n    opts.strictNegate = false;\n  }\n\n  var open = opts.strictOpen !== false ? '^' : '';\n  var close = opts.strictClose !== false ? '$' : '';\n  var endChar = opts.endChar ? opts.endChar : '+';\n  var str = pattern;\n\n  if (opts.strictNegate === false) {\n    str = '(?:(?!(?:' + pattern + ')).)' + endChar;\n  } else {\n    str = '(?:(?!^(?:' + pattern + ')$).)' + endChar;\n  }\n\n  var res = open + str + close;\n  if (opts.safe === true && safe(res) === false) {\n    throw new Error('potentially unsafe regular expression: ' + res);\n  }\n\n  return res;\n};\n\n/**\n * Expose `toRegex`\n */\n\nmodule.exports = toRegex;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/regex-not/index.js?");

/***/ }),

/***/ "./node_modules/regex-not/node_modules/extend-shallow/index.js":
/*!*********************************************************************!*\
  !*** ./node_modules/regex-not/node_modules/extend-shallow/index.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar isExtendable = __webpack_require__(/*! is-extendable */ \"./node_modules/regex-not/node_modules/is-extendable/index.js\");\nvar assignSymbols = __webpack_require__(/*! assign-symbols */ \"./node_modules/assign-symbols/index.js\");\n\nmodule.exports = Object.assign || function(obj/*, objects*/) {\n  if (obj === null || typeof obj === 'undefined') {\n    throw new TypeError('Cannot convert undefined or null to object');\n  }\n  if (!isObject(obj)) {\n    obj = {};\n  }\n  for (var i = 1; i < arguments.length; i++) {\n    var val = arguments[i];\n    if (isString(val)) {\n      val = toObject(val);\n    }\n    if (isObject(val)) {\n      assign(obj, val);\n      assignSymbols(obj, val);\n    }\n  }\n  return obj;\n};\n\nfunction assign(a, b) {\n  for (var key in b) {\n    if (hasOwn(b, key)) {\n      a[key] = b[key];\n    }\n  }\n}\n\nfunction isString(val) {\n  return (val && typeof val === 'string');\n}\n\nfunction toObject(str) {\n  var obj = {};\n  for (var i in str) {\n    obj[i] = str[i];\n  }\n  return obj;\n}\n\nfunction isObject(val) {\n  return (val && typeof val === 'object') || isExtendable(val);\n}\n\n/**\n * Returns true if the given `key` is an own property of `obj`.\n */\n\nfunction hasOwn(obj, key) {\n  return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nfunction isEnum(obj, key) {\n  return Object.prototype.propertyIsEnumerable.call(obj, key);\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/regex-not/node_modules/extend-shallow/index.js?");

/***/ }),

/***/ "./node_modules/regex-not/node_modules/is-extendable/index.js":
/*!********************************************************************!*\
  !*** ./node_modules/regex-not/node_modules/is-extendable/index.js ***!
  \********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * is-extendable <https://github.com/jonschlinkert/is-extendable>\n *\n * Copyright (c) 2015-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar isPlainObject = __webpack_require__(/*! is-plain-object */ \"./node_modules/is-plain-object/index.js\");\n\nmodule.exports = function isExtendable(val) {\n  return isPlainObject(val) || typeof val === 'function' || Array.isArray(val);\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/regex-not/node_modules/is-extendable/index.js?");

/***/ }),

/***/ "./node_modules/remove-trailing-separator/index.js":
/*!*********************************************************!*\
  !*** ./node_modules/remove-trailing-separator/index.js ***!
  \*********************************************************/
/***/ ((module) => {

eval("var isWin = process.platform === 'win32';\n\nmodule.exports = function (str) {\n\tvar i = str.length - 1;\n\tif (i < 2) {\n\t\treturn str;\n\t}\n\twhile (isSeparator(str, i)) {\n\t\ti--;\n\t}\n\treturn str.substr(0, i + 1);\n};\n\nfunction isSeparator(str, i) {\n\tvar char = str[i];\n\treturn i > 0 && (char === '/' || (isWin && char === '\\\\'));\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/remove-trailing-separator/index.js?");

/***/ }),

/***/ "./node_modules/repeat-element/index.js":
/*!**********************************************!*\
  !*** ./node_modules/repeat-element/index.js ***!
  \**********************************************/
/***/ ((module) => {

"use strict";
eval("/*!\n * repeat-element <https://github.com/jonschlinkert/repeat-element>\n *\n * Copyright (c) 2015-present, Jon Schlinkert.\n * Licensed under the MIT license.\n */\n\n\n\nmodule.exports = function repeat(ele, num) {\n  if (Array.prototype.fill) {\n    return new Array(num).fill(ele);\n  }\n\n  var arr = new Array(num);\n\n  for (var i = 0; i < num; i++) {\n    arr[i] = ele;\n  }\n\n  return arr;\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/repeat-element/index.js?");

/***/ }),

/***/ "./node_modules/repeat-string/index.js":
/*!*********************************************!*\
  !*** ./node_modules/repeat-string/index.js ***!
  \*********************************************/
/***/ ((module) => {

"use strict";
eval("/*!\n * repeat-string <https://github.com/jonschlinkert/repeat-string>\n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n\n\n/**\n * Results cache\n */\n\nvar res = '';\nvar cache;\n\n/**\n * Expose `repeat`\n */\n\nmodule.exports = repeat;\n\n/**\n * Repeat the given `string` the specified `number`\n * of times.\n *\n * **Example:**\n *\n * ```js\n * var repeat = require('repeat-string');\n * repeat('A', 5);\n * //=> AAAAA\n * ```\n *\n * @param {String} `string` The string to repeat\n * @param {Number} `number` The number of times to repeat the string\n * @return {String} Repeated string\n * @api public\n */\n\nfunction repeat(str, num) {\n  if (typeof str !== 'string') {\n    throw new TypeError('expected a string');\n  }\n\n  // cover common, quick use cases\n  if (num === 1) return str;\n  if (num === 2) return str + str;\n\n  var max = str.length * num;\n  if (cache !== str || typeof cache === 'undefined') {\n    cache = str;\n    res = '';\n  } else if (res.length >= max) {\n    return res.substr(0, max);\n  }\n\n  while (max > res.length && num > 1) {\n    if (num & 1) {\n      res += str;\n    }\n\n    num >>= 1;\n    str += str;\n  }\n\n  res += str;\n  res = res.substr(0, max);\n  return res;\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/repeat-string/index.js?");

/***/ }),

/***/ "./node_modules/ret/lib/index.js":
/*!***************************************!*\
  !*** ./node_modules/ret/lib/index.js ***!
  \***************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var util      = __webpack_require__(/*! ./util */ \"./node_modules/ret/lib/util.js\");\nvar types     = __webpack_require__(/*! ./types */ \"./node_modules/ret/lib/types.js\");\nvar sets      = __webpack_require__(/*! ./sets */ \"./node_modules/ret/lib/sets.js\");\nvar positions = __webpack_require__(/*! ./positions */ \"./node_modules/ret/lib/positions.js\");\n\n\nmodule.exports = function(regexpStr) {\n  var i = 0, l, c,\n      start = { type: types.ROOT, stack: []},\n\n      // Keep track of last clause/group and stack.\n      lastGroup = start,\n      last = start.stack,\n      groupStack = [];\n\n\n  var repeatErr = function(i) {\n    util.error(regexpStr, 'Nothing to repeat at column ' + (i - 1));\n  };\n\n  // Decode a few escaped characters.\n  var str = util.strToChars(regexpStr);\n  l = str.length;\n\n  // Iterate through each character in string.\n  while (i < l) {\n    c = str[i++];\n\n    switch (c) {\n      // Handle escaped characters, inclues a few sets.\n      case '\\\\':\n        c = str[i++];\n\n        switch (c) {\n          case 'b':\n            last.push(positions.wordBoundary());\n            break;\n\n          case 'B':\n            last.push(positions.nonWordBoundary());\n            break;\n\n          case 'w':\n            last.push(sets.words());\n            break;\n\n          case 'W':\n            last.push(sets.notWords());\n            break;\n\n          case 'd':\n            last.push(sets.ints());\n            break;\n\n          case 'D':\n            last.push(sets.notInts());\n            break;\n\n          case 's':\n            last.push(sets.whitespace());\n            break;\n\n          case 'S':\n            last.push(sets.notWhitespace());\n            break;\n\n          default:\n            // Check if c is integer.\n            // In which case it's a reference.\n            if (/\\d/.test(c)) {\n              last.push({ type: types.REFERENCE, value: parseInt(c, 10) });\n\n            // Escaped character.\n            } else {\n              last.push({ type: types.CHAR, value: c.charCodeAt(0) });\n            }\n        }\n\n        break;\n\n\n      // Positionals.\n      case '^':\n          last.push(positions.begin());\n        break;\n\n      case '$':\n          last.push(positions.end());\n        break;\n\n\n      // Handle custom sets.\n      case '[':\n        // Check if this class is 'anti' i.e. [^abc].\n        var not;\n        if (str[i] === '^') {\n          not = true;\n          i++;\n        } else {\n          not = false;\n        }\n\n        // Get all the characters in class.\n        var classTokens = util.tokenizeClass(str.slice(i), regexpStr);\n\n        // Increase index by length of class.\n        i += classTokens[1];\n        last.push({\n          type: types.SET,\n          set: classTokens[0],\n          not: not,\n        });\n\n        break;\n\n\n      // Class of any character except \\n.\n      case '.':\n        last.push(sets.anyChar());\n        break;\n\n\n      // Push group onto stack.\n      case '(':\n        // Create group.\n        var group = {\n          type: types.GROUP,\n          stack: [],\n          remember: true,\n        };\n\n        c = str[i];\n\n        // If if this is a special kind of group.\n        if (c === '?') {\n          c = str[i + 1];\n          i += 2;\n\n          // Match if followed by.\n          if (c === '=') {\n            group.followedBy = true;\n\n          // Match if not followed by.\n          } else if (c === '!') {\n            group.notFollowedBy = true;\n\n          } else if (c !== ':') {\n            util.error(regexpStr,\n              'Invalid group, character \\'' + c +\n              '\\' after \\'?\\' at column ' + (i - 1));\n          }\n\n          group.remember = false;\n        }\n\n        // Insert subgroup into current group stack.\n        last.push(group);\n\n        // Remember the current group for when the group closes.\n        groupStack.push(lastGroup);\n\n        // Make this new group the current group.\n        lastGroup = group;\n        last = group.stack;\n        break;\n\n\n      // Pop group out of stack.\n      case ')':\n        if (groupStack.length === 0) {\n          util.error(regexpStr, 'Unmatched ) at column ' + (i - 1));\n        }\n        lastGroup = groupStack.pop();\n\n        // Check if this group has a PIPE.\n        // To get back the correct last stack.\n        last = lastGroup.options ?\n          lastGroup.options[lastGroup.options.length - 1] : lastGroup.stack;\n        break;\n\n\n      // Use pipe character to give more choices.\n      case '|':\n        // Create array where options are if this is the first PIPE\n        // in this clause.\n        if (!lastGroup.options) {\n          lastGroup.options = [lastGroup.stack];\n          delete lastGroup.stack;\n        }\n\n        // Create a new stack and add to options for rest of clause.\n        var stack = [];\n        lastGroup.options.push(stack);\n        last = stack;\n        break;\n\n\n      // Repetition.\n      // For every repetition, remove last element from last stack\n      // then insert back a RANGE object.\n      // This design is chosen because there could be more than\n      // one repetition symbols in a regex i.e. `a?+{2,3}`.\n      case '{':\n        var rs = /^(\\d+)(,(\\d+)?)?\\}/.exec(str.slice(i)), min, max;\n        if (rs !== null) {\n          if (last.length === 0) {\n            repeatErr(i);\n          }\n          min = parseInt(rs[1], 10);\n          max = rs[2] ? rs[3] ? parseInt(rs[3], 10) : Infinity : min;\n          i += rs[0].length;\n\n          last.push({\n            type: types.REPETITION,\n            min: min,\n            max: max,\n            value: last.pop(),\n          });\n        } else {\n          last.push({\n            type: types.CHAR,\n            value: 123,\n          });\n        }\n        break;\n\n      case '?':\n        if (last.length === 0) {\n          repeatErr(i);\n        }\n        last.push({\n          type: types.REPETITION,\n          min: 0,\n          max: 1,\n          value: last.pop(),\n        });\n        break;\n\n      case '+':\n        if (last.length === 0) {\n          repeatErr(i);\n        }\n        last.push({\n          type: types.REPETITION,\n          min: 1,\n          max: Infinity,\n          value: last.pop(),\n        });\n        break;\n\n      case '*':\n        if (last.length === 0) {\n          repeatErr(i);\n        }\n        last.push({\n          type: types.REPETITION,\n          min: 0,\n          max: Infinity,\n          value: last.pop(),\n        });\n        break;\n\n\n      // Default is a character that is not `\\[](){}?+*^$`.\n      default:\n        last.push({\n          type: types.CHAR,\n          value: c.charCodeAt(0),\n        });\n    }\n\n  }\n\n  // Check if any groups have not been closed.\n  if (groupStack.length !== 0) {\n    util.error(regexpStr, 'Unterminated group');\n  }\n\n  return start;\n};\n\nmodule.exports.types = types;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/ret/lib/index.js?");

/***/ }),

/***/ "./node_modules/ret/lib/positions.js":
/*!*******************************************!*\
  !*** ./node_modules/ret/lib/positions.js ***!
  \*******************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("var types = __webpack_require__(/*! ./types */ \"./node_modules/ret/lib/types.js\");\n\nexports.wordBoundary = function() {\n  return { type: types.POSITION, value: 'b' };\n};\n\nexports.nonWordBoundary = function() {\n  return { type: types.POSITION, value: 'B' };\n};\n\nexports.begin = function() {\n  return { type: types.POSITION, value: '^' };\n};\n\nexports.end = function() {\n  return { type: types.POSITION, value: '$' };\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/ret/lib/positions.js?");

/***/ }),

/***/ "./node_modules/ret/lib/sets.js":
/*!**************************************!*\
  !*** ./node_modules/ret/lib/sets.js ***!
  \**************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("var types = __webpack_require__(/*! ./types */ \"./node_modules/ret/lib/types.js\");\n\nvar INTS = function() {\n return [{ type: types.RANGE , from: 48, to: 57 }];\n};\n\nvar WORDS = function() {\n return [\n    { type: types.CHAR, value: 95 },\n    { type: types.RANGE, from: 97, to: 122 },\n    { type: types.RANGE, from: 65, to: 90 }\n  ].concat(INTS());\n};\n\nvar WHITESPACE = function() {\n return [\n    { type: types.CHAR, value: 9 },\n    { type: types.CHAR, value: 10 },\n    { type: types.CHAR, value: 11 },\n    { type: types.CHAR, value: 12 },\n    { type: types.CHAR, value: 13 },\n    { type: types.CHAR, value: 32 },\n    { type: types.CHAR, value: 160 },\n    { type: types.CHAR, value: 5760 },\n    { type: types.CHAR, value: 6158 },\n    { type: types.CHAR, value: 8192 },\n    { type: types.CHAR, value: 8193 },\n    { type: types.CHAR, value: 8194 },\n    { type: types.CHAR, value: 8195 },\n    { type: types.CHAR, value: 8196 },\n    { type: types.CHAR, value: 8197 },\n    { type: types.CHAR, value: 8198 },\n    { type: types.CHAR, value: 8199 },\n    { type: types.CHAR, value: 8200 },\n    { type: types.CHAR, value: 8201 },\n    { type: types.CHAR, value: 8202 },\n    { type: types.CHAR, value: 8232 },\n    { type: types.CHAR, value: 8233 },\n    { type: types.CHAR, value: 8239 },\n    { type: types.CHAR, value: 8287 },\n    { type: types.CHAR, value: 12288 },\n    { type: types.CHAR, value: 65279 }\n  ];\n};\n\nvar NOTANYCHAR = function() {\n  return [\n    { type: types.CHAR, value: 10 },\n    { type: types.CHAR, value: 13 },\n    { type: types.CHAR, value: 8232 },\n    { type: types.CHAR, value: 8233 },\n  ];\n};\n\n// Predefined class objects.\nexports.words = function() {\n  return { type: types.SET, set: WORDS(), not: false };\n};\n\nexports.notWords = function() {\n  return { type: types.SET, set: WORDS(), not: true };\n};\n\nexports.ints = function() {\n  return { type: types.SET, set: INTS(), not: false };\n};\n\nexports.notInts = function() {\n  return { type: types.SET, set: INTS(), not: true };\n};\n\nexports.whitespace = function() {\n  return { type: types.SET, set: WHITESPACE(), not: false };\n};\n\nexports.notWhitespace = function() {\n  return { type: types.SET, set: WHITESPACE(), not: true };\n};\n\nexports.anyChar = function() {\n  return { type: types.SET, set: NOTANYCHAR(), not: true };\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/ret/lib/sets.js?");

/***/ }),

/***/ "./node_modules/ret/lib/types.js":
/*!***************************************!*\
  !*** ./node_modules/ret/lib/types.js ***!
  \***************************************/
/***/ ((module) => {

eval("module.exports = {\n  ROOT       : 0,\n  GROUP      : 1,\n  POSITION   : 2,\n  SET        : 3,\n  RANGE      : 4,\n  REPETITION : 5,\n  REFERENCE  : 6,\n  CHAR       : 7,\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/ret/lib/types.js?");

/***/ }),

/***/ "./node_modules/ret/lib/util.js":
/*!**************************************!*\
  !*** ./node_modules/ret/lib/util.js ***!
  \**************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("var types = __webpack_require__(/*! ./types */ \"./node_modules/ret/lib/types.js\");\nvar sets  = __webpack_require__(/*! ./sets */ \"./node_modules/ret/lib/sets.js\");\n\n\n// All of these are private and only used by randexp.\n// It's assumed that they will always be called with the correct input.\n\nvar CTRL = '@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^ ?';\nvar SLSH = { '0': 0, 't': 9, 'n': 10, 'v': 11, 'f': 12, 'r': 13 };\n\n/**\n * Finds character representations in str and convert all to\n * their respective characters\n *\n * @param {String} str\n * @return {String}\n */\nexports.strToChars = function(str) {\n  /* jshint maxlen: false */\n  var chars_regex = /(\\[\\\\b\\])|(\\\\)?\\\\(?:u([A-F0-9]{4})|x([A-F0-9]{2})|(0?[0-7]{2})|c([@A-Z\\[\\\\\\]\\^?])|([0tnvfr]))/g;\n  str = str.replace(chars_regex, function(s, b, lbs, a16, b16, c8, dctrl, eslsh) {\n    if (lbs) {\n      return s;\n    }\n\n    var code = b     ? 8 :\n               a16   ? parseInt(a16, 16) :\n               b16   ? parseInt(b16, 16) :\n               c8    ? parseInt(c8,   8) :\n               dctrl ? CTRL.indexOf(dctrl) :\n               SLSH[eslsh];\n\n    var c = String.fromCharCode(code);\n\n    // Escape special regex characters.\n    if (/[\\[\\]{}\\^$.|?*+()]/.test(c)) {\n      c = '\\\\' + c;\n    }\n\n    return c;\n  });\n\n  return str;\n};\n\n\n/**\n * turns class into tokens\n * reads str until it encounters a ] not preceeded by a \\\n *\n * @param {String} str\n * @param {String} regexpStr\n * @return {Array.<Array.<Object>, Number>}\n */\nexports.tokenizeClass = function(str, regexpStr) {\n  /* jshint maxlen: false */\n  var tokens = [];\n  var regexp = /\\\\(?:(w)|(d)|(s)|(W)|(D)|(S))|((?:(?:\\\\)(.)|([^\\]\\\\]))-(?:\\\\)?([^\\]]))|(\\])|(?:\\\\)?(.)/g;\n  var rs, c;\n\n\n  while ((rs = regexp.exec(str)) != null) {\n    if (rs[1]) {\n      tokens.push(sets.words());\n\n    } else if (rs[2]) {\n      tokens.push(sets.ints());\n\n    } else if (rs[3]) {\n      tokens.push(sets.whitespace());\n\n    } else if (rs[4]) {\n      tokens.push(sets.notWords());\n\n    } else if (rs[5]) {\n      tokens.push(sets.notInts());\n\n    } else if (rs[6]) {\n      tokens.push(sets.notWhitespace());\n\n    } else if (rs[7]) {\n      tokens.push({\n        type: types.RANGE,\n        from: (rs[8] || rs[9]).charCodeAt(0),\n          to: rs[10].charCodeAt(0),\n      });\n\n    } else if (c = rs[12]) {\n      tokens.push({\n        type: types.CHAR,\n        value: c.charCodeAt(0),\n      });\n\n    } else {\n      return [tokens, regexp.lastIndex];\n    }\n  }\n\n  exports.error(regexpStr, 'Unterminated character class');\n};\n\n\n/**\n * Shortcut to throw errors.\n *\n * @param {String} regexp\n * @param {String} msg\n */\nexports.error = function(regexp, msg) {\n  throw new SyntaxError('Invalid regular expression: /' + regexp + '/: ' + msg);\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/ret/lib/util.js?");

/***/ }),

/***/ "./node_modules/safe-buffer/index.js":
/*!*******************************************!*\
  !*** ./node_modules/safe-buffer/index.js ***!
  \*******************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("/* eslint-disable node/no-deprecated-api */\nvar buffer = __webpack_require__(/*! buffer */ \"buffer\")\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n  for (var key in src) {\n    dst[key] = src[key]\n  }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n  module.exports = buffer\n} else {\n  // Copy properties from require('buffer')\n  copyProps(buffer, exports)\n  exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n  return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n  if (typeof arg === 'number') {\n    throw new TypeError('Argument must not be a number')\n  }\n  return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  var buf = Buffer(size)\n  if (fill !== undefined) {\n    if (typeof encoding === 'string') {\n      buf.fill(fill, encoding)\n    } else {\n      buf.fill(fill)\n    }\n  } else {\n    buf.fill(0)\n  }\n  return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  return buffer.SlowBuffer(size)\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/safe-buffer/index.js?");

/***/ }),

/***/ "./node_modules/safe-regex/index.js":
/*!******************************************!*\
  !*** ./node_modules/safe-regex/index.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var parse = __webpack_require__(/*! ret */ \"./node_modules/ret/lib/index.js\");\nvar types = parse.types;\n\nmodule.exports = function (re, opts) {\n    if (!opts) opts = {};\n    var replimit = opts.limit === undefined ? 25 : opts.limit;\n    \n    if (isRegExp(re)) re = re.source;\n    else if (typeof re !== 'string') re = String(re);\n    \n    try { re = parse(re) }\n    catch (err) { return false }\n    \n    var reps = 0;\n    return (function walk (node, starHeight) {\n        if (node.type === types.REPETITION) {\n            starHeight ++;\n            reps ++;\n            if (starHeight > 1) return false;\n            if (reps > replimit) return false;\n        }\n        \n        if (node.options) {\n            for (var i = 0, len = node.options.length; i < len; i++) {\n                var ok = walk({ stack: node.options[i] }, starHeight);\n                if (!ok) return false;\n            }\n        }\n        var stack = node.stack || (node.value && node.value.stack);\n        if (!stack) return true;\n        \n        for (var i = 0; i < stack.length; i++) {\n            var ok = walk(stack[i], starHeight);\n            if (!ok) return false;\n        }\n        \n        return true;\n    })(re, 0);\n};\n\nfunction isRegExp (x) {\n    return {}.toString.call(x) === '[object RegExp]';\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/safe-regex/index.js?");

/***/ }),

/***/ "./node_modules/set-value/index.js":
/*!*****************************************!*\
  !*** ./node_modules/set-value/index.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * set-value <https://github.com/jonschlinkert/set-value>\n *\n * Copyright (c) 2014-2015, 2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar split = __webpack_require__(/*! split-string */ \"./node_modules/split-string/index.js\");\nvar extend = __webpack_require__(/*! extend-shallow */ \"./node_modules/extend-shallow/index.js\");\nvar isPlainObject = __webpack_require__(/*! is-plain-object */ \"./node_modules/is-plain-object/index.js\");\nvar isObject = __webpack_require__(/*! is-extendable */ \"./node_modules/is-extendable/index.js\");\n\nmodule.exports = function(obj, prop, val) {\n  if (!isObject(obj)) {\n    return obj;\n  }\n\n  if (Array.isArray(prop)) {\n    prop = [].concat.apply([], prop).join('.');\n  }\n\n  if (typeof prop !== 'string') {\n    return obj;\n  }\n\n  var keys = split(prop, {sep: '.', brackets: true}).filter(isValidKey);\n  var len = keys.length;\n  var idx = -1;\n  var current = obj;\n\n  while (++idx < len) {\n    var key = keys[idx];\n    if (idx !== len - 1) {\n      if (!isObject(current[key])) {\n        current[key] = {};\n      }\n      current = current[key];\n      continue;\n    }\n\n    if (isPlainObject(current[key]) && isPlainObject(val)) {\n      current[key] = extend({}, current[key], val);\n    } else {\n      current[key] = val;\n    }\n  }\n\n  return obj;\n};\n\nfunction isValidKey(key) {\n  return key !== '__proto__' && key !== 'constructor' && key !== 'prototype';\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/set-value/index.js?");

/***/ }),

/***/ "./node_modules/snapdragon-node/index.js":
/*!***********************************************!*\
  !*** ./node_modules/snapdragon-node/index.js ***!
  \***********************************************/
/***/ ((module, exports, __webpack_require__) => {

"use strict";
eval("\n\nvar isObject = __webpack_require__(/*! isobject */ \"./node_modules/isobject/index.js\");\nvar define = __webpack_require__(/*! define-property */ \"./node_modules/snapdragon-node/node_modules/define-property/index.js\");\nvar utils = __webpack_require__(/*! snapdragon-util */ \"./node_modules/snapdragon-util/index.js\");\nvar ownNames;\n\n/**\n * Create a new AST `Node` with the given `val` and `type`.\n *\n * ```js\n * var node = new Node('*', 'Star');\n * var node = new Node({type: 'star', val: '*'});\n * ```\n * @name Node\n * @param {String|Object} `val` Pass a matched substring, or an object to merge onto the node.\n * @param {String} `type` The node type to use when `val` is a string.\n * @return {Object} node instance\n * @api public\n */\n\nfunction Node(val, type, parent) {\n  if (typeof type !== 'string') {\n    parent = type;\n    type = null;\n  }\n\n  define(this, 'parent', parent);\n  define(this, 'isNode', true);\n  define(this, 'expect', null);\n\n  if (typeof type !== 'string' && isObject(val)) {\n    lazyKeys();\n    var keys = Object.keys(val);\n    for (var i = 0; i < keys.length; i++) {\n      var key = keys[i];\n      if (ownNames.indexOf(key) === -1) {\n        this[key] = val[key];\n      }\n    }\n  } else {\n    this.type = type;\n    this.val = val;\n  }\n}\n\n/**\n * Returns true if the given value is a node.\n *\n * ```js\n * var Node = require('snapdragon-node');\n * var node = new Node({type: 'foo'});\n * console.log(Node.isNode(node)); //=> true\n * console.log(Node.isNode({})); //=> false\n * ```\n * @param {Object} `node`\n * @returns {Boolean}\n * @api public\n */\n\nNode.isNode = function(node) {\n  return utils.isNode(node);\n};\n\n/**\n * Define a non-enumberable property on the node instance.\n * Useful for adding properties that shouldn't be extended\n * or visible during debugging.\n *\n * ```js\n * var node = new Node();\n * node.define('foo', 'something non-enumerable');\n * ```\n * @param {String} `name`\n * @param {any} `val`\n * @return {Object} returns the node instance\n * @api public\n */\n\nNode.prototype.define = function(name, val) {\n  define(this, name, val);\n  return this;\n};\n\n/**\n * Returns true if `node.val` is an empty string, or `node.nodes` does\n * not contain any non-empty text nodes.\n *\n * ```js\n * var node = new Node({type: 'text'});\n * node.isEmpty(); //=> true\n * node.val = 'foo';\n * node.isEmpty(); //=> false\n * ```\n * @param {Function} `fn` (optional) Filter function that is called on `node` and/or child nodes. `isEmpty` will return false immediately when the filter function returns false on any nodes.\n * @return {Boolean}\n * @api public\n */\n\nNode.prototype.isEmpty = function(fn) {\n  return utils.isEmpty(this, fn);\n};\n\n/**\n * Given node `foo` and node `bar`, push node `bar` onto `foo.nodes`, and\n * set `foo` as `bar.parent`.\n *\n * ```js\n * var foo = new Node({type: 'foo'});\n * var bar = new Node({type: 'bar'});\n * foo.push(bar);\n * ```\n * @param {Object} `node`\n * @return {Number} Returns the length of `node.nodes`\n * @api public\n */\n\nNode.prototype.push = function(node) {\n  assert(Node.isNode(node), 'expected node to be an instance of Node');\n  define(node, 'parent', this);\n\n  this.nodes = this.nodes || [];\n  return this.nodes.push(node);\n};\n\n/**\n * Given node `foo` and node `bar`, unshift node `bar` onto `foo.nodes`, and\n * set `foo` as `bar.parent`.\n *\n * ```js\n * var foo = new Node({type: 'foo'});\n * var bar = new Node({type: 'bar'});\n * foo.unshift(bar);\n * ```\n * @param {Object} `node`\n * @return {Number} Returns the length of `node.nodes`\n * @api public\n */\n\nNode.prototype.unshift = function(node) {\n  assert(Node.isNode(node), 'expected node to be an instance of Node');\n  define(node, 'parent', this);\n\n  this.nodes = this.nodes || [];\n  return this.nodes.unshift(node);\n};\n\n/**\n * Pop a node from `node.nodes`.\n *\n * ```js\n * var node = new Node({type: 'foo'});\n * node.push(new Node({type: 'a'}));\n * node.push(new Node({type: 'b'}));\n * node.push(new Node({type: 'c'}));\n * node.push(new Node({type: 'd'}));\n * console.log(node.nodes.length);\n * //=> 4\n * node.pop();\n * console.log(node.nodes.length);\n * //=> 3\n * ```\n * @return {Number} Returns the popped `node`\n * @api public\n */\n\nNode.prototype.pop = function() {\n  return this.nodes && this.nodes.pop();\n};\n\n/**\n * Shift a node from `node.nodes`.\n *\n * ```js\n * var node = new Node({type: 'foo'});\n * node.push(new Node({type: 'a'}));\n * node.push(new Node({type: 'b'}));\n * node.push(new Node({type: 'c'}));\n * node.push(new Node({type: 'd'}));\n * console.log(node.nodes.length);\n * //=> 4\n * node.shift();\n * console.log(node.nodes.length);\n * //=> 3\n * ```\n * @return {Object} Returns the shifted `node`\n * @api public\n */\n\nNode.prototype.shift = function() {\n  return this.nodes && this.nodes.shift();\n};\n\n/**\n * Remove `node` from `node.nodes`.\n *\n * ```js\n * node.remove(childNode);\n * ```\n * @param {Object} `node`\n * @return {Object} Returns the removed node.\n * @api public\n */\n\nNode.prototype.remove = function(node) {\n  assert(Node.isNode(node), 'expected node to be an instance of Node');\n  this.nodes = this.nodes || [];\n  var idx = node.index;\n  if (idx !== -1) {\n    node.index = -1;\n    return this.nodes.splice(idx, 1);\n  }\n  return null;\n};\n\n/**\n * Get the first child node from `node.nodes` that matches the given `type`.\n * If `type` is a number, the child node at that index is returned.\n *\n * ```js\n * var child = node.find(1); //<= index of the node to get\n * var child = node.find('foo'); //<= node.type of a child node\n * var child = node.find(/^(foo|bar)$/); //<= regex to match node.type\n * var child = node.find(['foo', 'bar']); //<= array of node.type(s)\n * ```\n * @param {String} `type`\n * @return {Object} Returns a child node or undefined.\n * @api public\n */\n\nNode.prototype.find = function(type) {\n  return utils.findNode(this.nodes, type);\n};\n\n/**\n * Return true if the node is the given `type`.\n *\n * ```js\n * var node = new Node({type: 'bar'});\n * cosole.log(node.isType('foo'));          // false\n * cosole.log(node.isType(/^(foo|bar)$/));  // true\n * cosole.log(node.isType(['foo', 'bar'])); // true\n * ```\n * @param {String} `type`\n * @return {Boolean}\n * @api public\n */\n\nNode.prototype.isType = function(type) {\n  return utils.isType(this, type);\n};\n\n/**\n * Return true if the `node.nodes` has the given `type`.\n *\n * ```js\n * var foo = new Node({type: 'foo'});\n * var bar = new Node({type: 'bar'});\n * foo.push(bar);\n *\n * cosole.log(foo.hasType('qux'));          // false\n * cosole.log(foo.hasType(/^(qux|bar)$/));  // true\n * cosole.log(foo.hasType(['qux', 'bar'])); // true\n * ```\n * @param {String} `type`\n * @return {Boolean}\n * @api public\n */\n\nNode.prototype.hasType = function(type) {\n  return utils.hasType(this, type);\n};\n\n/**\n * Get the siblings array, or `null` if it doesn't exist.\n *\n * ```js\n * var foo = new Node({type: 'foo'});\n * var bar = new Node({type: 'bar'});\n * var baz = new Node({type: 'baz'});\n * foo.push(bar);\n * foo.push(baz);\n *\n * console.log(bar.siblings.length) // 2\n * console.log(baz.siblings.length) // 2\n * ```\n * @return {Array}\n * @api public\n */\n\nObject.defineProperty(Node.prototype, 'siblings', {\n  set: function() {\n    throw new Error('node.siblings is a getter and cannot be defined');\n  },\n  get: function() {\n    return this.parent ? this.parent.nodes : null;\n  }\n});\n\n/**\n * Get the node's current index from `node.parent.nodes`.\n * This should always be correct, even when the parent adds nodes.\n *\n * ```js\n * var foo = new Node({type: 'foo'});\n * var bar = new Node({type: 'bar'});\n * var baz = new Node({type: 'baz'});\n * var qux = new Node({type: 'qux'});\n * foo.push(bar);\n * foo.push(baz);\n * foo.unshift(qux);\n *\n * console.log(bar.index) // 1\n * console.log(baz.index) // 2\n * console.log(qux.index) // 0\n * ```\n * @return {Number}\n * @api public\n */\n\nObject.defineProperty(Node.prototype, 'index', {\n  set: function(index) {\n    define(this, 'idx', index);\n  },\n  get: function() {\n    if (!Array.isArray(this.siblings)) {\n      return -1;\n    }\n    var tok = this.idx !== -1 ? this.siblings[this.idx] : null;\n    if (tok !== this) {\n      this.idx = this.siblings.indexOf(this);\n    }\n    return this.idx;\n  }\n});\n\n/**\n * Get the previous node from the siblings array or `null`.\n *\n * ```js\n * var foo = new Node({type: 'foo'});\n * var bar = new Node({type: 'bar'});\n * var baz = new Node({type: 'baz'});\n * foo.push(bar);\n * foo.push(baz);\n *\n * console.log(baz.prev.type) // 'bar'\n * ```\n * @return {Object}\n * @api public\n */\n\nObject.defineProperty(Node.prototype, 'prev', {\n  set: function() {\n    throw new Error('node.prev is a getter and cannot be defined');\n  },\n  get: function() {\n    if (Array.isArray(this.siblings)) {\n      return this.siblings[this.index - 1] || this.parent.prev;\n    }\n    return null;\n  }\n});\n\n/**\n * Get the siblings array, or `null` if it doesn't exist.\n *\n * ```js\n * var foo = new Node({type: 'foo'});\n * var bar = new Node({type: 'bar'});\n * var baz = new Node({type: 'baz'});\n * foo.push(bar);\n * foo.push(baz);\n *\n * console.log(bar.siblings.length) // 2\n * console.log(baz.siblings.length) // 2\n * ```\n * @return {Object}\n * @api public\n */\n\nObject.defineProperty(Node.prototype, 'next', {\n  set: function() {\n    throw new Error('node.next is a getter and cannot be defined');\n  },\n  get: function() {\n    if (Array.isArray(this.siblings)) {\n      return this.siblings[this.index + 1] || this.parent.next;\n    }\n    return null;\n  }\n});\n\n/**\n * Get the first node from `node.nodes`.\n *\n * ```js\n * var foo = new Node({type: 'foo'});\n * var bar = new Node({type: 'bar'});\n * var baz = new Node({type: 'baz'});\n * var qux = new Node({type: 'qux'});\n * foo.push(bar);\n * foo.push(baz);\n * foo.push(qux);\n *\n * console.log(foo.first.type) // 'bar'\n * ```\n * @return {Object} The first node, or undefiend\n * @api public\n */\n\nObject.defineProperty(Node.prototype, 'first', {\n  get: function() {\n    return this.nodes ? this.nodes[0] : null;\n  }\n});\n\n/**\n * Get the last node from `node.nodes`.\n *\n * ```js\n * var foo = new Node({type: 'foo'});\n * var bar = new Node({type: 'bar'});\n * var baz = new Node({type: 'baz'});\n * var qux = new Node({type: 'qux'});\n * foo.push(bar);\n * foo.push(baz);\n * foo.push(qux);\n *\n * console.log(foo.last.type) // 'qux'\n * ```\n * @return {Object} The last node, or undefiend\n * @api public\n */\n\nObject.defineProperty(Node.prototype, 'last', {\n  get: function() {\n    return this.nodes ? utils.last(this.nodes) : null;\n  }\n});\n\n/**\n * Get the last node from `node.nodes`.\n *\n * ```js\n * var foo = new Node({type: 'foo'});\n * var bar = new Node({type: 'bar'});\n * var baz = new Node({type: 'baz'});\n * var qux = new Node({type: 'qux'});\n * foo.push(bar);\n * foo.push(baz);\n * foo.push(qux);\n *\n * console.log(foo.last.type) // 'qux'\n * ```\n * @return {Object} The last node, or undefiend\n * @api public\n */\n\nObject.defineProperty(Node.prototype, 'scope', {\n  get: function() {\n    if (this.isScope !== true) {\n      return this.parent ? this.parent.scope : this;\n    }\n    return this;\n  }\n});\n\n/**\n * Get own property names from Node prototype, but only the\n * first time `Node` is instantiated\n */\n\nfunction lazyKeys() {\n  if (!ownNames) {\n    ownNames = Object.getOwnPropertyNames(Node.prototype);\n  }\n}\n\n/**\n * Simplified assertion. Throws an error is `val` is falsey.\n */\n\nfunction assert(val, message) {\n  if (!val) throw new Error(message);\n}\n\n/**\n * Expose `Node`\n */\n\nexports = module.exports = Node;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/snapdragon-node/index.js?");

/***/ }),

/***/ "./node_modules/snapdragon-node/node_modules/define-property/index.js":
/*!****************************************************************************!*\
  !*** ./node_modules/snapdragon-node/node_modules/define-property/index.js ***!
  \****************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * define-property <https://github.com/jonschlinkert/define-property>\n *\n * Copyright (c) 2015, 2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar isDescriptor = __webpack_require__(/*! is-descriptor */ \"./node_modules/is-descriptor/index.js\");\n\nmodule.exports = function defineProperty(obj, prop, val) {\n  if (typeof obj !== 'object' && typeof obj !== 'function') {\n    throw new TypeError('expected an object or function.');\n  }\n\n  if (typeof prop !== 'string') {\n    throw new TypeError('expected `prop` to be a string.');\n  }\n\n  if (isDescriptor(val) && ('set' in val || 'get' in val)) {\n    return Object.defineProperty(obj, prop, val);\n  }\n\n  return Object.defineProperty(obj, prop, {\n    configurable: true,\n    enumerable: false,\n    writable: true,\n    value: val\n  });\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/snapdragon-node/node_modules/define-property/index.js?");

/***/ }),

/***/ "./node_modules/snapdragon-util/index.js":
/*!***********************************************!*\
  !*** ./node_modules/snapdragon-util/index.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar typeOf = __webpack_require__(/*! kind-of */ \"./node_modules/snapdragon-util/node_modules/kind-of/index.js\");\nvar utils = module.exports;\n\n/**\n * Returns true if the given value is a node.\n *\n * ```js\n * var Node = require('snapdragon-node');\n * var node = new Node({type: 'foo'});\n * console.log(utils.isNode(node)); //=> true\n * console.log(utils.isNode({})); //=> false\n * ```\n * @param {Object} `node` Instance of [snapdragon-node][]\n * @returns {Boolean}\n * @api public\n */\n\nutils.isNode = function(node) {\n  return typeOf(node) === 'object' && node.isNode === true;\n};\n\n/**\n * Emit an empty string for the given `node`.\n *\n * ```js\n * // do nothing for beginning-of-string\n * snapdragon.compiler.set('bos', utils.noop);\n * ```\n * @param {Object} `node` Instance of [snapdragon-node][]\n * @returns {undefined}\n * @api public\n */\n\nutils.noop = function(node) {\n  append(this, '', node);\n};\n\n/**\n * Appdend `node.val` to `compiler.output`, exactly as it was created\n * by the parser.\n *\n * ```js\n * snapdragon.compiler.set('text', utils.identity);\n * ```\n * @param {Object} `node` Instance of [snapdragon-node][]\n * @returns {undefined}\n * @api public\n */\n\nutils.identity = function(node) {\n  append(this, node.val, node);\n};\n\n/**\n * Previously named `.emit`, this method appends the given `val`\n * to `compiler.output` for the given node. Useful when you know\n * what value should be appended advance, regardless of the actual\n * value of `node.val`.\n *\n * ```js\n * snapdragon.compiler\n *   .set('i', function(node) {\n *     this.mapVisit(node);\n *   })\n *   .set('i.open', utils.append('<i>'))\n *   .set('i.close', utils.append('</i>'))\n * ```\n * @param {Object} `node` Instance of [snapdragon-node][]\n * @returns {Function} Returns a compiler middleware function.\n * @api public\n */\n\nutils.append = function(val) {\n  return function(node) {\n    append(this, val, node);\n  };\n};\n\n/**\n * Used in compiler middleware, this onverts an AST node into\n * an empty `text` node and deletes `node.nodes` if it exists.\n * The advantage of this method is that, as opposed to completely\n * removing the node, indices will not need to be re-calculated\n * in sibling nodes, and nothing is appended to the output.\n *\n * ```js\n * utils.toNoop(node);\n * // convert `node.nodes` to the given value instead of deleting it\n * utils.toNoop(node, []);\n * ```\n * @param {Object} `node` Instance of [snapdragon-node][]\n * @param {Array} `nodes` Optionally pass a new `nodes` value, to replace the existing `node.nodes` array.\n * @api public\n */\n\nutils.toNoop = function(node, nodes) {\n  if (nodes) {\n    node.nodes = nodes;\n  } else {\n    delete node.nodes;\n    node.type = 'text';\n    node.val = '';\n  }\n};\n\n/**\n * Visit `node` with the given `fn`. The built-in `.visit` method in snapdragon\n * automatically calls registered compilers, this allows you to pass a visitor\n * function.\n *\n * ```js\n * snapdragon.compiler.set('i', function(node) {\n *   utils.visit(node, function(childNode) {\n *     // do stuff with \"childNode\"\n *     return childNode;\n *   });\n * });\n * ```\n * @param {Object} `node` Instance of [snapdragon-node][]\n * @param {Function} `fn`\n * @return {Object} returns the node after recursively visiting all child nodes.\n * @api public\n */\n\nutils.visit = function(node, fn) {\n  assert(utils.isNode(node), 'expected node to be an instance of Node');\n  assert(isFunction(fn), 'expected a visitor function');\n  fn(node);\n  return node.nodes ? utils.mapVisit(node, fn) : node;\n};\n\n/**\n * Map [visit](#visit) the given `fn` over `node.nodes`. This is called by\n * [visit](#visit), use this method if you do not want `fn` to be called on\n * the first node.\n *\n * ```js\n * snapdragon.compiler.set('i', function(node) {\n *   utils.mapVisit(node, function(childNode) {\n *     // do stuff with \"childNode\"\n *     return childNode;\n *   });\n * });\n * ```\n * @param {Object} `node` Instance of [snapdragon-node][]\n * @param {Object} `options`\n * @param {Function} `fn`\n * @return {Object} returns the node\n * @api public\n */\n\nutils.mapVisit = function(node, fn) {\n  assert(utils.isNode(node), 'expected node to be an instance of Node');\n  assert(isArray(node.nodes), 'expected node.nodes to be an array');\n  assert(isFunction(fn), 'expected a visitor function');\n\n  for (var i = 0; i < node.nodes.length; i++) {\n    utils.visit(node.nodes[i], fn);\n  }\n  return node;\n};\n\n/**\n * Unshift an `*.open` node onto `node.nodes`.\n *\n * ```js\n * var Node = require('snapdragon-node');\n * snapdragon.parser.set('brace', function(node) {\n *   var match = this.match(/^{/);\n *   if (match) {\n *     var parent = new Node({type: 'brace'});\n *     utils.addOpen(parent, Node);\n *     console.log(parent.nodes[0]):\n *     // { type: 'brace.open', val: '' };\n *\n *     // push the parent \"brace\" node onto the stack\n *     this.push(parent);\n *\n *     // return the parent node, so it's also added to the AST\n *     return brace;\n *   }\n * });\n * ```\n * @param {Object} `node` Instance of [snapdragon-node][]\n * @param {Function} `Node` (required) Node constructor function from [snapdragon-node][].\n * @param {Function} `filter` Optionaly specify a filter function to exclude the node.\n * @return {Object} Returns the created opening node.\n * @api public\n */\n\nutils.addOpen = function(node, Node, val, filter) {\n  assert(utils.isNode(node), 'expected node to be an instance of Node');\n  assert(isFunction(Node), 'expected Node to be a constructor function');\n\n  if (typeof val === 'function') {\n    filter = val;\n    val = '';\n  }\n\n  if (typeof filter === 'function' && !filter(node)) return;\n  var open = new Node({ type: node.type + '.open', val: val});\n  var unshift = node.unshift || node.unshiftNode;\n  if (typeof unshift === 'function') {\n    unshift.call(node, open);\n  } else {\n    utils.unshiftNode(node, open);\n  }\n  return open;\n};\n\n/**\n * Push a `*.close` node onto `node.nodes`.\n *\n * ```js\n * var Node = require('snapdragon-node');\n * snapdragon.parser.set('brace', function(node) {\n *   var match = this.match(/^}/);\n *   if (match) {\n *     var parent = this.parent();\n *     if (parent.type !== 'brace') {\n *       throw new Error('missing opening: ' + '}');\n *     }\n *\n *     utils.addClose(parent, Node);\n *     console.log(parent.nodes[parent.nodes.length - 1]):\n *     // { type: 'brace.close', val: '' };\n *\n *     // no need to return a node, since the parent\n *     // was already added to the AST\n *     return;\n *   }\n * });\n * ```\n * @param {Object} `node` Instance of [snapdragon-node][]\n * @param {Function} `Node` (required) Node constructor function from [snapdragon-node][].\n * @param {Function} `filter` Optionaly specify a filter function to exclude the node.\n * @return {Object} Returns the created closing node.\n * @api public\n */\n\nutils.addClose = function(node, Node, val, filter) {\n  assert(utils.isNode(node), 'expected node to be an instance of Node');\n  assert(isFunction(Node), 'expected Node to be a constructor function');\n\n  if (typeof val === 'function') {\n    filter = val;\n    val = '';\n  }\n\n  if (typeof filter === 'function' && !filter(node)) return;\n  var close = new Node({ type: node.type + '.close', val: val});\n  var push = node.push || node.pushNode;\n  if (typeof push === 'function') {\n    push.call(node, close);\n  } else {\n    utils.pushNode(node, close);\n  }\n  return close;\n};\n\n/**\n * Wraps the given `node` with `*.open` and `*.close` nodes.\n *\n * @param {Object} `node` Instance of [snapdragon-node][]\n * @param {Function} `Node` (required) Node constructor function from [snapdragon-node][].\n * @param {Function} `filter` Optionaly specify a filter function to exclude the node.\n * @return {Object} Returns the node\n * @api public\n */\n\nutils.wrapNodes = function(node, Node, filter) {\n  assert(utils.isNode(node), 'expected node to be an instance of Node');\n  assert(isFunction(Node), 'expected Node to be a constructor function');\n\n  utils.addOpen(node, Node, filter);\n  utils.addClose(node, Node, filter);\n  return node;\n};\n\n/**\n * Push the given `node` onto `parent.nodes`, and set `parent` as `node.parent.\n *\n * ```js\n * var parent = new Node({type: 'foo'});\n * var node = new Node({type: 'bar'});\n * utils.pushNode(parent, node);\n * console.log(parent.nodes[0].type) // 'bar'\n * console.log(node.parent.type) // 'foo'\n * ```\n * @param {Object} `parent`\n * @param {Object} `node` Instance of [snapdragon-node][]\n * @return {Object} Returns the child node\n * @api public\n */\n\nutils.pushNode = function(parent, node) {\n  assert(utils.isNode(parent), 'expected parent node to be an instance of Node');\n  assert(utils.isNode(node), 'expected node to be an instance of Node');\n\n  node.define('parent', parent);\n  parent.nodes = parent.nodes || [];\n  parent.nodes.push(node);\n  return node;\n};\n\n/**\n * Unshift `node` onto `parent.nodes`, and set `parent` as `node.parent.\n *\n * ```js\n * var parent = new Node({type: 'foo'});\n * var node = new Node({type: 'bar'});\n * utils.unshiftNode(parent, node);\n * console.log(parent.nodes[0].type) // 'bar'\n * console.log(node.parent.type) // 'foo'\n * ```\n * @param {Object} `parent`\n * @param {Object} `node` Instance of [snapdragon-node][]\n * @return {undefined}\n * @api public\n */\n\nutils.unshiftNode = function(parent, node) {\n  assert(utils.isNode(parent), 'expected parent node to be an instance of Node');\n  assert(utils.isNode(node), 'expected node to be an instance of Node');\n\n  node.define('parent', parent);\n  parent.nodes = parent.nodes || [];\n  parent.nodes.unshift(node);\n};\n\n/**\n * Pop the last `node` off of `parent.nodes`. The advantage of\n * using this method is that it checks for `node.nodes` and works\n * with any version of `snapdragon-node`.\n *\n * ```js\n * var parent = new Node({type: 'foo'});\n * utils.pushNode(parent, new Node({type: 'foo'}));\n * utils.pushNode(parent, new Node({type: 'bar'}));\n * utils.pushNode(parent, new Node({type: 'baz'}));\n * console.log(parent.nodes.length); //=> 3\n * utils.popNode(parent);\n * console.log(parent.nodes.length); //=> 2\n * ```\n * @param {Object} `parent`\n * @param {Object} `node` Instance of [snapdragon-node][]\n * @return {Number|Undefined} Returns the length of `node.nodes` or undefined.\n * @api public\n */\n\nutils.popNode = function(node) {\n  assert(utils.isNode(node), 'expected node to be an instance of Node');\n  if (typeof node.pop === 'function') {\n    return node.pop();\n  }\n  return node.nodes && node.nodes.pop();\n};\n\n/**\n * Shift the first `node` off of `parent.nodes`. The advantage of\n * using this method is that it checks for `node.nodes` and works\n * with any version of `snapdragon-node`.\n *\n * ```js\n * var parent = new Node({type: 'foo'});\n * utils.pushNode(parent, new Node({type: 'foo'}));\n * utils.pushNode(parent, new Node({type: 'bar'}));\n * utils.pushNode(parent, new Node({type: 'baz'}));\n * console.log(parent.nodes.length); //=> 3\n * utils.shiftNode(parent);\n * console.log(parent.nodes.length); //=> 2\n * ```\n * @param {Object} `parent`\n * @param {Object} `node` Instance of [snapdragon-node][]\n * @return {Number|Undefined} Returns the length of `node.nodes` or undefined.\n * @api public\n */\n\nutils.shiftNode = function(node) {\n  assert(utils.isNode(node), 'expected node to be an instance of Node');\n  if (typeof node.shift === 'function') {\n    return node.shift();\n  }\n  return node.nodes && node.nodes.shift();\n};\n\n/**\n * Remove the specified `node` from `parent.nodes`.\n *\n * ```js\n * var parent = new Node({type: 'abc'});\n * var foo = new Node({type: 'foo'});\n * utils.pushNode(parent, foo);\n * utils.pushNode(parent, new Node({type: 'bar'}));\n * utils.pushNode(parent, new Node({type: 'baz'}));\n * console.log(parent.nodes.length); //=> 3\n * utils.removeNode(parent, foo);\n * console.log(parent.nodes.length); //=> 2\n * ```\n * @param {Object} `parent`\n * @param {Object} `node` Instance of [snapdragon-node][]\n * @return {Object|undefined} Returns the removed node, if successful, or undefined if it does not exist on `parent.nodes`.\n * @api public\n */\n\nutils.removeNode = function(parent, node) {\n  assert(utils.isNode(parent), 'expected parent.node to be an instance of Node');\n  assert(utils.isNode(node), 'expected node to be an instance of Node');\n\n  if (!parent.nodes) {\n    return null;\n  }\n\n  if (typeof parent.remove === 'function') {\n    return parent.remove(node);\n  }\n\n  var idx = parent.nodes.indexOf(node);\n  if (idx !== -1) {\n    return parent.nodes.splice(idx, 1);\n  }\n};\n\n/**\n * Returns true if `node.type` matches the given `type`. Throws a\n * `TypeError` if `node` is not an instance of `Node`.\n *\n * ```js\n * var Node = require('snapdragon-node');\n * var node = new Node({type: 'foo'});\n * console.log(utils.isType(node, 'foo')); // false\n * console.log(utils.isType(node, 'bar')); // true\n * ```\n * @param {Object} `node` Instance of [snapdragon-node][]\n * @param {String} `type`\n * @return {Boolean}\n * @api public\n */\n\nutils.isType = function(node, type) {\n  assert(utils.isNode(node), 'expected node to be an instance of Node');\n  switch (typeOf(type)) {\n    case 'array':\n      var types = type.slice();\n      for (var i = 0; i < types.length; i++) {\n        if (utils.isType(node, types[i])) {\n          return true;\n        }\n      }\n      return false;\n    case 'string':\n      return node.type === type;\n    case 'regexp':\n      return type.test(node.type);\n    default: {\n      throw new TypeError('expected \"type\" to be an array, string or regexp');\n    }\n  }\n};\n\n/**\n * Returns true if the given `node` has the given `type` in `node.nodes`.\n * Throws a `TypeError` if `node` is not an instance of `Node`.\n *\n * ```js\n * var Node = require('snapdragon-node');\n * var node = new Node({\n *   type: 'foo',\n *   nodes: [\n *     new Node({type: 'bar'}),\n *     new Node({type: 'baz'})\n *   ]\n * });\n * console.log(utils.hasType(node, 'xyz')); // false\n * console.log(utils.hasType(node, 'baz')); // true\n * ```\n * @param {Object} `node` Instance of [snapdragon-node][]\n * @param {String} `type`\n * @return {Boolean}\n * @api public\n */\n\nutils.hasType = function(node, type) {\n  assert(utils.isNode(node), 'expected node to be an instance of Node');\n  if (!Array.isArray(node.nodes)) return false;\n  for (var i = 0; i < node.nodes.length; i++) {\n    if (utils.isType(node.nodes[i], type)) {\n      return true;\n    }\n  }\n  return false;\n};\n\n/**\n * Returns the first node from `node.nodes` of the given `type`\n *\n * ```js\n * var node = new Node({\n *   type: 'foo',\n *   nodes: [\n *     new Node({type: 'text', val: 'abc'}),\n *     new Node({type: 'text', val: 'xyz'})\n *   ]\n * });\n *\n * var textNode = utils.firstOfType(node.nodes, 'text');\n * console.log(textNode.val);\n * //=> 'abc'\n * ```\n * @param {Array} `nodes`\n * @param {String} `type`\n * @return {Object|undefined} Returns the first matching node or undefined.\n * @api public\n */\n\nutils.firstOfType = function(nodes, type) {\n  for (var i = 0; i < nodes.length; i++) {\n    var node = nodes[i];\n    if (utils.isType(node, type)) {\n      return node;\n    }\n  }\n};\n\n/**\n * Returns the node at the specified index, or the first node of the\n * given `type` from `node.nodes`.\n *\n * ```js\n * var node = new Node({\n *   type: 'foo',\n *   nodes: [\n *     new Node({type: 'text', val: 'abc'}),\n *     new Node({type: 'text', val: 'xyz'})\n *   ]\n * });\n *\n * var nodeOne = utils.findNode(node.nodes, 'text');\n * console.log(nodeOne.val);\n * //=> 'abc'\n *\n * var nodeTwo = utils.findNode(node.nodes, 1);\n * console.log(nodeTwo.val);\n * //=> 'xyz'\n * ```\n *\n * @param {Array} `nodes`\n * @param {String|Number} `type` Node type or index.\n * @return {Object} Returns a node or undefined.\n * @api public\n */\n\nutils.findNode = function(nodes, type) {\n  if (!Array.isArray(nodes)) {\n    return null;\n  }\n  if (typeof type === 'number') {\n    return nodes[type];\n  }\n  return utils.firstOfType(nodes, type);\n};\n\n/**\n * Returns true if the given node is an \"*.open\" node.\n *\n * ```js\n * var Node = require('snapdragon-node');\n * var brace = new Node({type: 'brace'});\n * var open = new Node({type: 'brace.open'});\n * var close = new Node({type: 'brace.close'});\n *\n * console.log(utils.isOpen(brace)); // false\n * console.log(utils.isOpen(open)); // true\n * console.log(utils.isOpen(close)); // false\n * ```\n * @param {Object} `node` Instance of [snapdragon-node][]\n * @return {Boolean}\n * @api public\n */\n\nutils.isOpen = function(node) {\n  assert(utils.isNode(node), 'expected node to be an instance of Node');\n  return node.type.slice(-5) === '.open';\n};\n\n/**\n * Returns true if the given node is a \"*.close\" node.\n *\n * ```js\n * var Node = require('snapdragon-node');\n * var brace = new Node({type: 'brace'});\n * var open = new Node({type: 'brace.open'});\n * var close = new Node({type: 'brace.close'});\n *\n * console.log(utils.isClose(brace)); // false\n * console.log(utils.isClose(open)); // false\n * console.log(utils.isClose(close)); // true\n * ```\n * @param {Object} `node` Instance of [snapdragon-node][]\n * @return {Boolean}\n * @api public\n */\n\nutils.isClose = function(node) {\n  assert(utils.isNode(node), 'expected node to be an instance of Node');\n  return node.type.slice(-6) === '.close';\n};\n\n/**\n * Returns true if `node.nodes` **has** an `.open` node\n *\n * ```js\n * var Node = require('snapdragon-node');\n * var brace = new Node({\n *   type: 'brace',\n *   nodes: []\n * });\n *\n * var open = new Node({type: 'brace.open'});\n * console.log(utils.hasOpen(brace)); // false\n *\n * brace.pushNode(open);\n * console.log(utils.hasOpen(brace)); // true\n * ```\n * @param {Object} `node` Instance of [snapdragon-node][]\n * @return {Boolean}\n * @api public\n */\n\nutils.hasOpen = function(node) {\n  assert(utils.isNode(node), 'expected node to be an instance of Node');\n  var first = node.first || node.nodes ? node.nodes[0] : null;\n  if (utils.isNode(first)) {\n    return first.type === node.type + '.open';\n  }\n  return false;\n};\n\n/**\n * Returns true if `node.nodes` **has** a `.close` node\n *\n * ```js\n * var Node = require('snapdragon-node');\n * var brace = new Node({\n *   type: 'brace',\n *   nodes: []\n * });\n *\n * var close = new Node({type: 'brace.close'});\n * console.log(utils.hasClose(brace)); // false\n *\n * brace.pushNode(close);\n * console.log(utils.hasClose(brace)); // true\n * ```\n * @param {Object} `node` Instance of [snapdragon-node][]\n * @return {Boolean}\n * @api public\n */\n\nutils.hasClose = function(node) {\n  assert(utils.isNode(node), 'expected node to be an instance of Node');\n  var last = node.last || node.nodes ? node.nodes[node.nodes.length - 1] : null;\n  if (utils.isNode(last)) {\n    return last.type === node.type + '.close';\n  }\n  return false;\n};\n\n/**\n * Returns true if `node.nodes` has both `.open` and `.close` nodes\n *\n * ```js\n * var Node = require('snapdragon-node');\n * var brace = new Node({\n *   type: 'brace',\n *   nodes: []\n * });\n *\n * var open = new Node({type: 'brace.open'});\n * var close = new Node({type: 'brace.close'});\n * console.log(utils.hasOpen(brace)); // false\n * console.log(utils.hasClose(brace)); // false\n *\n * brace.pushNode(open);\n * brace.pushNode(close);\n * console.log(utils.hasOpen(brace)); // true\n * console.log(utils.hasClose(brace)); // true\n * ```\n * @param {Object} `node` Instance of [snapdragon-node][]\n * @return {Boolean}\n * @api public\n */\n\nutils.hasOpenAndClose = function(node) {\n  return utils.hasOpen(node) && utils.hasClose(node);\n};\n\n/**\n * Push the given `node` onto the `state.inside` array for the\n * given type. This array is used as a specialized \"stack\" for\n * only the given `node.type`.\n *\n * ```js\n * var state = { inside: {}};\n * var node = new Node({type: 'brace'});\n * utils.addType(state, node);\n * console.log(state.inside);\n * //=> { brace: [{type: 'brace'}] }\n * ```\n * @param {Object} `state` The `compiler.state` object or custom state object.\n * @param {Object} `node` Instance of [snapdragon-node][]\n * @return {Array} Returns the `state.inside` stack for the given type.\n * @api public\n */\n\nutils.addType = function(state, node) {\n  assert(utils.isNode(node), 'expected node to be an instance of Node');\n  assert(isObject(state), 'expected state to be an object');\n\n  var type = node.parent\n    ? node.parent.type\n    : node.type.replace(/\\.open$/, '');\n\n  if (!state.hasOwnProperty('inside')) {\n    state.inside = {};\n  }\n  if (!state.inside.hasOwnProperty(type)) {\n    state.inside[type] = [];\n  }\n\n  var arr = state.inside[type];\n  arr.push(node);\n  return arr;\n};\n\n/**\n * Remove the given `node` from the `state.inside` array for the\n * given type. This array is used as a specialized \"stack\" for\n * only the given `node.type`.\n *\n * ```js\n * var state = { inside: {}};\n * var node = new Node({type: 'brace'});\n * utils.addType(state, node);\n * console.log(state.inside);\n * //=> { brace: [{type: 'brace'}] }\n * utils.removeType(state, node);\n * //=> { brace: [] }\n * ```\n * @param {Object} `state` The `compiler.state` object or custom state object.\n * @param {Object} `node` Instance of [snapdragon-node][]\n * @return {Array} Returns the `state.inside` stack for the given type.\n * @api public\n */\n\nutils.removeType = function(state, node) {\n  assert(utils.isNode(node), 'expected node to be an instance of Node');\n  assert(isObject(state), 'expected state to be an object');\n\n  var type = node.parent\n    ? node.parent.type\n    : node.type.replace(/\\.close$/, '');\n\n  if (state.inside.hasOwnProperty(type)) {\n    return state.inside[type].pop();\n  }\n};\n\n/**\n * Returns true if `node.val` is an empty string, or `node.nodes` does\n * not contain any non-empty text nodes.\n *\n * ```js\n * var node = new Node({type: 'text'});\n * utils.isEmpty(node); //=> true\n * node.val = 'foo';\n * utils.isEmpty(node); //=> false\n * ```\n * @param {Object} `node` Instance of [snapdragon-node][]\n * @param {Function} `fn`\n * @return {Boolean}\n * @api public\n */\n\nutils.isEmpty = function(node, fn) {\n  assert(utils.isNode(node), 'expected node to be an instance of Node');\n\n  if (!Array.isArray(node.nodes)) {\n    if (node.type !== 'text') {\n      return true;\n    }\n    if (typeof fn === 'function') {\n      return fn(node, node.parent);\n    }\n    return !utils.trim(node.val);\n  }\n\n  for (var i = 0; i < node.nodes.length; i++) {\n    var child = node.nodes[i];\n    if (utils.isOpen(child) || utils.isClose(child)) {\n      continue;\n    }\n    if (!utils.isEmpty(child, fn)) {\n      return false;\n    }\n  }\n\n  return true;\n};\n\n/**\n * Returns true if the `state.inside` stack for the given type exists\n * and has one or more nodes on it.\n *\n * ```js\n * var state = { inside: {}};\n * var node = new Node({type: 'brace'});\n * console.log(utils.isInsideType(state, 'brace')); //=> false\n * utils.addType(state, node);\n * console.log(utils.isInsideType(state, 'brace')); //=> true\n * utils.removeType(state, node);\n * console.log(utils.isInsideType(state, 'brace')); //=> false\n * ```\n * @param {Object} `state`\n * @param {String} `type`\n * @return {Boolean}\n * @api public\n */\n\nutils.isInsideType = function(state, type) {\n  assert(isObject(state), 'expected state to be an object');\n  assert(isString(type), 'expected type to be a string');\n\n  if (!state.hasOwnProperty('inside')) {\n    return false;\n  }\n\n  if (!state.inside.hasOwnProperty(type)) {\n    return false;\n  }\n\n  return state.inside[type].length > 0;\n};\n\n/**\n * Returns true if `node` is either a child or grand-child of the given `type`,\n * or `state.inside[type]` is a non-empty array.\n *\n * ```js\n * var state = { inside: {}};\n * var node = new Node({type: 'brace'});\n * var open = new Node({type: 'brace.open'});\n * console.log(utils.isInside(state, open, 'brace')); //=> false\n * utils.pushNode(node, open);\n * console.log(utils.isInside(state, open, 'brace')); //=> true\n * ```\n * @param {Object} `state` Either the `compiler.state` object, if it exists, or a user-supplied state object.\n * @param {Object} `node` Instance of [snapdragon-node][]\n * @param {String} `type` The `node.type` to check for.\n * @return {Boolean}\n * @api public\n */\n\nutils.isInside = function(state, node, type) {\n  assert(utils.isNode(node), 'expected node to be an instance of Node');\n  assert(isObject(state), 'expected state to be an object');\n\n  if (Array.isArray(type)) {\n    for (var i = 0; i < type.length; i++) {\n      if (utils.isInside(state, node, type[i])) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  var parent = node.parent;\n  if (typeof type === 'string') {\n    return (parent && parent.type === type) || utils.isInsideType(state, type);\n  }\n\n  if (typeOf(type) === 'regexp') {\n    if (parent && parent.type && type.test(parent.type)) {\n      return true;\n    }\n\n    var keys = Object.keys(state.inside);\n    var len = keys.length;\n    var idx = -1;\n    while (++idx < len) {\n      var key = keys[idx];\n      var val = state.inside[key];\n\n      if (Array.isArray(val) && val.length !== 0 && type.test(key)) {\n        return true;\n      }\n    }\n  }\n  return false;\n};\n\n/**\n * Get the last `n` element from the given `array`. Used for getting\n * a node from `node.nodes.`\n *\n * @param {Array} `array`\n * @param {Number} `n`\n * @return {undefined}\n * @api public\n */\n\nutils.last = function(arr, n) {\n  return arr[arr.length - (n || 1)];\n};\n\n/**\n * Cast the given `val` to an array.\n *\n * ```js\n * console.log(utils.arrayify(''));\n * //=> []\n * console.log(utils.arrayify('foo'));\n * //=> ['foo']\n * console.log(utils.arrayify(['foo']));\n * //=> ['foo']\n * ```\n * @param {any} `val`\n * @return {Array}\n * @api public\n */\n\nutils.arrayify = function(val) {\n  if (typeof val === 'string' && val !== '') {\n    return [val];\n  }\n  if (!Array.isArray(val)) {\n    return [];\n  }\n  return val;\n};\n\n/**\n * Convert the given `val` to a string by joining with `,`. Useful\n * for creating a cheerio/CSS/DOM-style selector from a list of strings.\n *\n * @param {any} `val`\n * @return {Array}\n * @api public\n */\n\nutils.stringify = function(val) {\n  return utils.arrayify(val).join(',');\n};\n\n/**\n * Ensure that the given value is a string and call `.trim()` on it,\n * or return an empty string.\n *\n * @param {String} `str`\n * @return {String}\n * @api public\n */\n\nutils.trim = function(str) {\n  return typeof str === 'string' ? str.trim() : '';\n};\n\n/**\n * Return true if val is an object\n */\n\nfunction isObject(val) {\n  return typeOf(val) === 'object';\n}\n\n/**\n * Return true if val is a string\n */\n\nfunction isString(val) {\n  return typeof val === 'string';\n}\n\n/**\n * Return true if val is a function\n */\n\nfunction isFunction(val) {\n  return typeof val === 'function';\n}\n\n/**\n * Return true if val is an array\n */\n\nfunction isArray(val) {\n  return Array.isArray(val);\n}\n\n/**\n * Shim to ensure the `.append` methods work with any version of snapdragon\n */\n\nfunction append(compiler, val, node) {\n  if (typeof compiler.append !== 'function') {\n    return compiler.emit(val, node);\n  }\n  return compiler.append(val, node);\n}\n\n/**\n * Simplified assertion. Throws an error is `val` is falsey.\n */\n\nfunction assert(val, message) {\n  if (!val) throw new Error(message);\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/snapdragon-util/index.js?");

/***/ }),

/***/ "./node_modules/snapdragon-util/node_modules/kind-of/index.js":
/*!********************************************************************!*\
  !*** ./node_modules/snapdragon-util/node_modules/kind-of/index.js ***!
  \********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var isBuffer = __webpack_require__(/*! is-buffer */ \"./node_modules/is-buffer/index.js\");\nvar toString = Object.prototype.toString;\n\n/**\n * Get the native `typeof` a value.\n *\n * @param  {*} `val`\n * @return {*} Native javascript type\n */\n\nmodule.exports = function kindOf(val) {\n  // primitivies\n  if (typeof val === 'undefined') {\n    return 'undefined';\n  }\n  if (val === null) {\n    return 'null';\n  }\n  if (val === true || val === false || val instanceof Boolean) {\n    return 'boolean';\n  }\n  if (typeof val === 'string' || val instanceof String) {\n    return 'string';\n  }\n  if (typeof val === 'number' || val instanceof Number) {\n    return 'number';\n  }\n\n  // functions\n  if (typeof val === 'function' || val instanceof Function) {\n    return 'function';\n  }\n\n  // array\n  if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) {\n    return 'array';\n  }\n\n  // check for instances of RegExp and Date before calling `toString`\n  if (val instanceof RegExp) {\n    return 'regexp';\n  }\n  if (val instanceof Date) {\n    return 'date';\n  }\n\n  // other objects\n  var type = toString.call(val);\n\n  if (type === '[object RegExp]') {\n    return 'regexp';\n  }\n  if (type === '[object Date]') {\n    return 'date';\n  }\n  if (type === '[object Arguments]') {\n    return 'arguments';\n  }\n  if (type === '[object Error]') {\n    return 'error';\n  }\n\n  // buffer\n  if (isBuffer(val)) {\n    return 'buffer';\n  }\n\n  // es6: Map, WeakMap, Set, WeakSet\n  if (type === '[object Set]') {\n    return 'set';\n  }\n  if (type === '[object WeakSet]') {\n    return 'weakset';\n  }\n  if (type === '[object Map]') {\n    return 'map';\n  }\n  if (type === '[object WeakMap]') {\n    return 'weakmap';\n  }\n  if (type === '[object Symbol]') {\n    return 'symbol';\n  }\n\n  // typed arrays\n  if (type === '[object Int8Array]') {\n    return 'int8array';\n  }\n  if (type === '[object Uint8Array]') {\n    return 'uint8array';\n  }\n  if (type === '[object Uint8ClampedArray]') {\n    return 'uint8clampedarray';\n  }\n  if (type === '[object Int16Array]') {\n    return 'int16array';\n  }\n  if (type === '[object Uint16Array]') {\n    return 'uint16array';\n  }\n  if (type === '[object Int32Array]') {\n    return 'int32array';\n  }\n  if (type === '[object Uint32Array]') {\n    return 'uint32array';\n  }\n  if (type === '[object Float32Array]') {\n    return 'float32array';\n  }\n  if (type === '[object Float64Array]') {\n    return 'float64array';\n  }\n\n  // must be a plain object\n  return 'object';\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/snapdragon-util/node_modules/kind-of/index.js?");

/***/ }),

/***/ "./node_modules/snapdragon/index.js":
/*!******************************************!*\
  !*** ./node_modules/snapdragon/index.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar Base = __webpack_require__(/*! base */ \"./node_modules/base/index.js\");\nvar define = __webpack_require__(/*! define-property */ \"./node_modules/define-property/index.js\");\nvar Compiler = __webpack_require__(/*! ./lib/compiler */ \"./node_modules/snapdragon/lib/compiler.js\");\nvar Parser = __webpack_require__(/*! ./lib/parser */ \"./node_modules/snapdragon/lib/parser.js\");\nvar utils = __webpack_require__(/*! ./lib/utils */ \"./node_modules/snapdragon/lib/utils.js\");\nvar regexCache = {};\nvar cache = {};\n\n/**\n * Create a new instance of `Snapdragon` with the given `options`.\n *\n * ```js\n * var snapdragon = new Snapdragon();\n * ```\n *\n * @param {Object} `options`\n * @api public\n */\n\nfunction Snapdragon(options) {\n  Base.call(this, null, options);\n  this.options = utils.extend({source: 'string'}, this.options);\n  this.compiler = new Compiler(this.options);\n  this.parser = new Parser(this.options);\n\n  Object.defineProperty(this, 'compilers', {\n    get: function() {\n      return this.compiler.compilers;\n    }\n  });\n\n  Object.defineProperty(this, 'parsers', {\n    get: function() {\n      return this.parser.parsers;\n    }\n  });\n\n  Object.defineProperty(this, 'regex', {\n    get: function() {\n      return this.parser.regex;\n    }\n  });\n}\n\n/**\n * Inherit Base\n */\n\nBase.extend(Snapdragon);\n\n/**\n * Add a parser to `snapdragon.parsers` for capturing the given `type` using\n * the specified regex or parser function. A function is useful if you need\n * to customize how the token is created and/or have access to the parser\n * instance to check options, etc.\n *\n * ```js\n * snapdragon\n *   .capture('slash', /^\\//)\n *   .capture('dot', function() {\n *     var pos = this.position();\n *     var m = this.match(/^\\./);\n *     if (!m) return;\n *     return pos({\n *       type: 'dot',\n *       val: m[0]\n *     });\n *   });\n * ```\n * @param {String} `type`\n * @param {RegExp|Function} `regex`\n * @return {Object} Returns the parser instance for chaining\n * @api public\n */\n\nSnapdragon.prototype.capture = function() {\n  return this.parser.capture.apply(this.parser, arguments);\n};\n\n/**\n * Register a plugin `fn`.\n *\n * ```js\n * var snapdragon = new Snapdgragon([options]);\n * snapdragon.use(function() {\n *   console.log(this);          //<= snapdragon instance\n *   console.log(this.parser);   //<= parser instance\n *   console.log(this.compiler); //<= compiler instance\n * });\n * ```\n * @param {Object} `fn`\n * @api public\n */\n\nSnapdragon.prototype.use = function(fn) {\n  fn.call(this, this);\n  return this;\n};\n\n/**\n * Parse the given `str`.\n *\n * ```js\n * var snapdragon = new Snapdgragon([options]);\n * // register parsers\n * snapdragon.parser.use(function() {});\n *\n * // parse\n * var ast = snapdragon.parse('foo/bar');\n * console.log(ast);\n * ```\n * @param {String} `str`\n * @param {Object} `options` Set `options.sourcemap` to true to enable source maps.\n * @return {Object} Returns an AST.\n * @api public\n */\n\nSnapdragon.prototype.parse = function(str, options) {\n  this.options = utils.extend({}, this.options, options);\n  var parsed = this.parser.parse(str, this.options);\n\n  // add non-enumerable parser reference\n  define(parsed, 'parser', this.parser);\n  return parsed;\n};\n\n/**\n * Compile the given `AST`.\n *\n * ```js\n * var snapdragon = new Snapdgragon([options]);\n * // register plugins\n * snapdragon.use(function() {});\n * // register parser plugins\n * snapdragon.parser.use(function() {});\n * // register compiler plugins\n * snapdragon.compiler.use(function() {});\n *\n * // parse\n * var ast = snapdragon.parse('foo/bar');\n *\n * // compile\n * var res = snapdragon.compile(ast);\n * console.log(res.output);\n * ```\n * @param {Object} `ast`\n * @param {Object} `options`\n * @return {Object} Returns an object with an `output` property with the rendered string.\n * @api public\n */\n\nSnapdragon.prototype.compile = function(ast, options) {\n  this.options = utils.extend({}, this.options, options);\n  var compiled = this.compiler.compile(ast, this.options);\n\n  // add non-enumerable compiler reference\n  define(compiled, 'compiler', this.compiler);\n  return compiled;\n};\n\n/**\n * Expose `Snapdragon`\n */\n\nmodule.exports = Snapdragon;\n\n/**\n * Expose `Parser` and `Compiler`\n */\n\nmodule.exports.Compiler = Compiler;\nmodule.exports.Parser = Parser;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/snapdragon/index.js?");

/***/ }),

/***/ "./node_modules/snapdragon/lib/compiler.js":
/*!*************************************************!*\
  !*** ./node_modules/snapdragon/lib/compiler.js ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar use = __webpack_require__(/*! use */ \"./node_modules/use/index.js\");\nvar define = __webpack_require__(/*! define-property */ \"./node_modules/define-property/index.js\");\nvar debug = __webpack_require__(/*! debug */ \"./node_modules/debug/src/index.js\")('snapdragon:compiler');\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/snapdragon/lib/utils.js\");\n\n/**\n * Create a new `Compiler` with the given `options`.\n * @param {Object} `options`\n */\n\nfunction Compiler(options, state) {\n  debug('initializing', __filename);\n  this.options = utils.extend({source: 'string'}, options);\n  this.state = state || {};\n  this.compilers = {};\n  this.output = '';\n  this.set('eos', function(node) {\n    return this.emit(node.val, node);\n  });\n  this.set('noop', function(node) {\n    return this.emit(node.val, node);\n  });\n  this.set('bos', function(node) {\n    return this.emit(node.val, node);\n  });\n  use(this);\n}\n\n/**\n * Prototype methods\n */\n\nCompiler.prototype = {\n\n  /**\n   * Throw an error message with details including the cursor position.\n   * @param {String} `msg` Message to use in the Error.\n   */\n\n  error: function(msg, node) {\n    var pos = node.position || {start: {column: 0}};\n    var message = this.options.source + ' column:' + pos.start.column + ': ' + msg;\n\n    var err = new Error(message);\n    err.reason = msg;\n    err.column = pos.start.column;\n    err.source = this.pattern;\n\n    if (this.options.silent) {\n      this.errors.push(err);\n    } else {\n      throw err;\n    }\n  },\n\n  /**\n   * Define a non-enumberable property on the `Compiler` instance.\n   *\n   * ```js\n   * compiler.define('foo', 'bar');\n   * ```\n   * @name .define\n   * @param {String} `key` propery name\n   * @param {any} `val` property value\n   * @return {Object} Returns the Compiler instance for chaining.\n   * @api public\n   */\n\n  define: function(key, val) {\n    define(this, key, val);\n    return this;\n  },\n\n  /**\n   * Emit `node.val`\n   */\n\n  emit: function(str, node) {\n    this.output += str;\n    return str;\n  },\n\n  /**\n   * Add a compiler `fn` with the given `name`\n   */\n\n  set: function(name, fn) {\n    this.compilers[name] = fn;\n    return this;\n  },\n\n  /**\n   * Get compiler `name`.\n   */\n\n  get: function(name) {\n    return this.compilers[name];\n  },\n\n  /**\n   * Get the previous AST node.\n   */\n\n  prev: function(n) {\n    return this.ast.nodes[this.idx - (n || 1)] || { type: 'bos', val: '' };\n  },\n\n  /**\n   * Get the next AST node.\n   */\n\n  next: function(n) {\n    return this.ast.nodes[this.idx + (n || 1)] || { type: 'eos', val: '' };\n  },\n\n  /**\n   * Visit `node`.\n   */\n\n  visit: function(node, nodes, i) {\n    var fn = this.compilers[node.type];\n    this.idx = i;\n\n    if (typeof fn !== 'function') {\n      throw this.error('compiler \"' + node.type + '\" is not registered', node);\n    }\n    return fn.call(this, node, nodes, i);\n  },\n\n  /**\n   * Map visit over array of `nodes`.\n   */\n\n  mapVisit: function(nodes) {\n    if (!Array.isArray(nodes)) {\n      throw new TypeError('expected an array');\n    }\n    var len = nodes.length;\n    var idx = -1;\n    while (++idx < len) {\n      this.visit(nodes[idx], nodes, idx);\n    }\n    return this;\n  },\n\n  /**\n   * Compile `ast`.\n   */\n\n  compile: function(ast, options) {\n    var opts = utils.extend({}, this.options, options);\n    this.ast = ast;\n    this.parsingErrors = this.ast.errors;\n    this.output = '';\n\n    // source map support\n    if (opts.sourcemap) {\n      var sourcemaps = __webpack_require__(/*! ./source-maps */ \"./node_modules/snapdragon/lib/source-maps.js\");\n      sourcemaps(this);\n      this.mapVisit(this.ast.nodes);\n      this.applySourceMaps();\n      this.map = opts.sourcemap === 'generator' ? this.map : this.map.toJSON();\n      return this;\n    }\n\n    this.mapVisit(this.ast.nodes);\n    return this;\n  }\n};\n\n/**\n * Expose `Compiler`\n */\n\nmodule.exports = Compiler;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/snapdragon/lib/compiler.js?");

/***/ }),

/***/ "./node_modules/snapdragon/lib/parser.js":
/*!***********************************************!*\
  !*** ./node_modules/snapdragon/lib/parser.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar use = __webpack_require__(/*! use */ \"./node_modules/use/index.js\");\nvar util = __webpack_require__(/*! util */ \"util\");\nvar Cache = __webpack_require__(/*! map-cache */ \"./node_modules/map-cache/index.js\");\nvar define = __webpack_require__(/*! define-property */ \"./node_modules/define-property/index.js\");\nvar debug = __webpack_require__(/*! debug */ \"./node_modules/debug/src/index.js\")('snapdragon:parser');\nvar Position = __webpack_require__(/*! ./position */ \"./node_modules/snapdragon/lib/position.js\");\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/snapdragon/lib/utils.js\");\n\n/**\n * Create a new `Parser` with the given `input` and `options`.\n * @param {String} `input`\n * @param {Object} `options`\n * @api public\n */\n\nfunction Parser(options) {\n  debug('initializing', __filename);\n  this.options = utils.extend({source: 'string'}, options);\n  this.init(this.options);\n  use(this);\n}\n\n/**\n * Prototype methods\n */\n\nParser.prototype = {\n  constructor: Parser,\n\n  init: function(options) {\n    this.orig = '';\n    this.input = '';\n    this.parsed = '';\n\n    this.column = 1;\n    this.line = 1;\n\n    this.regex = new Cache();\n    this.errors = this.errors || [];\n    this.parsers = this.parsers || {};\n    this.types = this.types || [];\n    this.sets = this.sets || {};\n    this.fns = this.fns || [];\n    this.currentType = 'root';\n\n    var pos = this.position();\n    this.bos = pos({type: 'bos', val: ''});\n\n    this.ast = {\n      type: 'root',\n      errors: this.errors,\n      nodes: [this.bos]\n    };\n\n    define(this.bos, 'parent', this.ast);\n    this.nodes = [this.ast];\n\n    this.count = 0;\n    this.setCount = 0;\n    this.stack = [];\n  },\n\n  /**\n   * Throw a formatted error with the cursor column and `msg`.\n   * @param {String} `msg` Message to use in the Error.\n   */\n\n  error: function(msg, node) {\n    var pos = node.position || {start: {column: 0, line: 0}};\n    var line = pos.start.line;\n    var column = pos.start.column;\n    var source = this.options.source;\n\n    var message = source + ' <line:' + line + ' column:' + column + '>: ' + msg;\n    var err = new Error(message);\n    err.source = source;\n    err.reason = msg;\n    err.pos = pos;\n\n    if (this.options.silent) {\n      this.errors.push(err);\n    } else {\n      throw err;\n    }\n  },\n\n  /**\n   * Define a non-enumberable property on the `Parser` instance.\n   *\n   * ```js\n   * parser.define('foo', 'bar');\n   * ```\n   * @name .define\n   * @param {String} `key` propery name\n   * @param {any} `val` property value\n   * @return {Object} Returns the Parser instance for chaining.\n   * @api public\n   */\n\n  define: function(key, val) {\n    define(this, key, val);\n    return this;\n  },\n\n  /**\n   * Mark position and patch `node.position`.\n   */\n\n  position: function() {\n    var start = { line: this.line, column: this.column };\n    var self = this;\n\n    return function(node) {\n      define(node, 'position', new Position(start, self));\n      return node;\n    };\n  },\n\n  /**\n   * Set parser `name` with the given `fn`\n   * @param {String} `name`\n   * @param {Function} `fn`\n   * @api public\n   */\n\n  set: function(type, fn) {\n    if (this.types.indexOf(type) === -1) {\n      this.types.push(type);\n    }\n    this.parsers[type] = fn.bind(this);\n    return this;\n  },\n\n  /**\n   * Get parser `name`\n   * @param {String} `name`\n   * @api public\n   */\n\n  get: function(name) {\n    return this.parsers[name];\n  },\n\n  /**\n   * Push a `token` onto the `type` stack.\n   *\n   * @param {String} `type`\n   * @return {Object} `token`\n   * @api public\n   */\n\n  push: function(type, token) {\n    this.sets[type] = this.sets[type] || [];\n    this.count++;\n    this.stack.push(token);\n    return this.sets[type].push(token);\n  },\n\n  /**\n   * Pop a token off of the `type` stack\n   * @param {String} `type`\n   * @returns {Object} Returns a token\n   * @api public\n   */\n\n  pop: function(type) {\n    this.sets[type] = this.sets[type] || [];\n    this.count--;\n    this.stack.pop();\n    return this.sets[type].pop();\n  },\n\n  /**\n   * Return true if inside a `stack` node. Types are `braces`, `parens` or `brackets`.\n   *\n   * @param {String} `type`\n   * @return {Boolean}\n   * @api public\n   */\n\n  isInside: function(type) {\n    this.sets[type] = this.sets[type] || [];\n    return this.sets[type].length > 0;\n  },\n\n  /**\n   * Return true if `node` is the given `type`.\n   *\n   * ```js\n   * parser.isType(node, 'brace');\n   * ```\n   * @param {Object} `node`\n   * @param {String} `type`\n   * @return {Boolean}\n   * @api public\n   */\n\n  isType: function(node, type) {\n    return node && node.type === type;\n  },\n\n  /**\n   * Get the previous AST node\n   * @return {Object}\n   */\n\n  prev: function(n) {\n    return this.stack.length > 0\n      ? utils.last(this.stack, n)\n      : utils.last(this.nodes, n);\n  },\n\n  /**\n   * Update line and column based on `str`.\n   */\n\n  consume: function(len) {\n    this.input = this.input.substr(len);\n  },\n\n  /**\n   * Update column based on `str`.\n   */\n\n  updatePosition: function(str, len) {\n    var lines = str.match(/\\n/g);\n    if (lines) this.line += lines.length;\n    var i = str.lastIndexOf('\\n');\n    this.column = ~i ? len - i : this.column + len;\n    this.parsed += str;\n    this.consume(len);\n  },\n\n  /**\n   * Match `regex`, return captures, and update the cursor position by `match[0]` length.\n   * @param {RegExp} `regex`\n   * @return {Object}\n   */\n\n  match: function(regex) {\n    var m = regex.exec(this.input);\n    if (m) {\n      this.updatePosition(m[0], m[0].length);\n      return m;\n    }\n  },\n\n  /**\n   * Capture `type` with the given regex.\n   * @param {String} `type`\n   * @param {RegExp} `regex`\n   * @return {Function}\n   */\n\n  capture: function(type, regex) {\n    if (typeof regex === 'function') {\n      return this.set.apply(this, arguments);\n    }\n\n    this.regex.set(type, regex);\n    this.set(type, function() {\n      var parsed = this.parsed;\n      var pos = this.position();\n      var m = this.match(regex);\n      if (!m || !m[0]) return;\n\n      var prev = this.prev();\n      var node = pos({\n        type: type,\n        val: m[0],\n        parsed: parsed,\n        rest: this.input\n      });\n\n      if (m[1]) {\n        node.inner = m[1];\n      }\n\n      define(node, 'inside', this.stack.length > 0);\n      define(node, 'parent', prev);\n      prev.nodes.push(node);\n    }.bind(this));\n    return this;\n  },\n\n  /**\n   * Create a parser with open and close for parens,\n   * brackets or braces\n   */\n\n  capturePair: function(type, openRegex, closeRegex, fn) {\n    this.sets[type] = this.sets[type] || [];\n\n    /**\n     * Open\n     */\n\n    this.set(type + '.open', function() {\n      var parsed = this.parsed;\n      var pos = this.position();\n      var m = this.match(openRegex);\n      if (!m || !m[0]) return;\n\n      var val = m[0];\n      this.setCount++;\n      this.specialChars = true;\n      var open = pos({\n        type: type + '.open',\n        val: val,\n        rest: this.input\n      });\n\n      if (typeof m[1] !== 'undefined') {\n        open.inner = m[1];\n      }\n\n      var prev = this.prev();\n      var node = pos({\n        type: type,\n        nodes: [open]\n      });\n\n      define(node, 'rest', this.input);\n      define(node, 'parsed', parsed);\n      define(node, 'prefix', m[1]);\n      define(node, 'parent', prev);\n      define(open, 'parent', node);\n\n      if (typeof fn === 'function') {\n        fn.call(this, open, node);\n      }\n\n      this.push(type, node);\n      prev.nodes.push(node);\n    });\n\n    /**\n     * Close\n     */\n\n    this.set(type + '.close', function() {\n      var pos = this.position();\n      var m = this.match(closeRegex);\n      if (!m || !m[0]) return;\n\n      var parent = this.pop(type);\n      var node = pos({\n        type: type + '.close',\n        rest: this.input,\n        suffix: m[1],\n        val: m[0]\n      });\n\n      if (!this.isType(parent, type)) {\n        if (this.options.strict) {\n          throw new Error('missing opening \"' + type + '\"');\n        }\n\n        this.setCount--;\n        node.escaped = true;\n        return node;\n      }\n\n      if (node.suffix === '\\\\') {\n        parent.escaped = true;\n        node.escaped = true;\n      }\n\n      parent.nodes.push(node);\n      define(node, 'parent', parent);\n    });\n\n    return this;\n  },\n\n  /**\n   * Capture end-of-string\n   */\n\n  eos: function() {\n    var pos = this.position();\n    if (this.input) return;\n    var prev = this.prev();\n\n    while (prev.type !== 'root' && !prev.visited) {\n      if (this.options.strict === true) {\n        throw new SyntaxError('invalid syntax:' + util.inspect(prev, null, 2));\n      }\n\n      if (!hasDelims(prev)) {\n        prev.parent.escaped = true;\n        prev.escaped = true;\n      }\n\n      visit(prev, function(node) {\n        if (!hasDelims(node.parent)) {\n          node.parent.escaped = true;\n          node.escaped = true;\n        }\n      });\n\n      prev = prev.parent;\n    }\n\n    var tok = pos({\n      type: 'eos',\n      val: this.append || ''\n    });\n\n    define(tok, 'parent', this.ast);\n    return tok;\n  },\n\n  /**\n   * Run parsers to advance the cursor position\n   */\n\n  next: function() {\n    var parsed = this.parsed;\n    var len = this.types.length;\n    var idx = -1;\n    var tok;\n\n    while (++idx < len) {\n      if ((tok = this.parsers[this.types[idx]].call(this))) {\n        define(tok, 'rest', this.input);\n        define(tok, 'parsed', parsed);\n        this.last = tok;\n        return tok;\n      }\n    }\n  },\n\n  /**\n   * Parse the given string.\n   * @return {Array}\n   */\n\n  parse: function(input) {\n    if (typeof input !== 'string') {\n      throw new TypeError('expected a string');\n    }\n\n    this.init(this.options);\n    this.orig = input;\n    this.input = input;\n    var self = this;\n\n    function parse() {\n      // check input before calling `.next()`\n      input = self.input;\n\n      // get the next AST ndoe\n      var node = self.next();\n      if (node) {\n        var prev = self.prev();\n        if (prev) {\n          define(node, 'parent', prev);\n          if (prev.nodes) {\n            prev.nodes.push(node);\n          }\n        }\n\n        if (self.sets.hasOwnProperty(prev.type)) {\n          self.currentType = prev.type;\n        }\n      }\n\n      // if we got here but input is not changed, throw an error\n      if (self.input && input === self.input) {\n        throw new Error('no parsers registered for: \"' + self.input.slice(0, 5) + '\"');\n      }\n    }\n\n    while (this.input) parse();\n    if (this.stack.length && this.options.strict) {\n      var node = this.stack.pop();\n      throw this.error('missing opening ' + node.type + ': \"' + this.orig + '\"');\n    }\n\n    var eos = this.eos();\n    var tok = this.prev();\n    if (tok.type !== 'eos') {\n      this.ast.nodes.push(eos);\n    }\n\n    return this.ast;\n  }\n};\n\n/**\n * Visit `node` with the given `fn`\n */\n\nfunction visit(node, fn) {\n  if (!node.visited) {\n    define(node, 'visited', true);\n    return node.nodes ? mapVisit(node.nodes, fn) : fn(node);\n  }\n  return node;\n}\n\n/**\n * Map visit over array of `nodes`.\n */\n\nfunction mapVisit(nodes, fn) {\n  var len = nodes.length;\n  var idx = -1;\n  while (++idx < len) {\n    visit(nodes[idx], fn);\n  }\n}\n\nfunction hasOpen(node) {\n  return node.nodes && node.nodes[0].type === (node.type + '.open');\n}\n\nfunction hasClose(node) {\n  return node.nodes && utils.last(node.nodes).type === (node.type + '.close');\n}\n\nfunction hasDelims(node) {\n  return hasOpen(node) && hasClose(node);\n}\n\n/**\n * Expose `Parser`\n */\n\nmodule.exports = Parser;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/snapdragon/lib/parser.js?");

/***/ }),

/***/ "./node_modules/snapdragon/lib/position.js":
/*!*************************************************!*\
  !*** ./node_modules/snapdragon/lib/position.js ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar define = __webpack_require__(/*! define-property */ \"./node_modules/define-property/index.js\");\n\n/**\n * Store position for a node\n */\n\nmodule.exports = function Position(start, parser) {\n  this.start = start;\n  this.end = { line: parser.line, column: parser.column };\n  define(this, 'content', parser.orig);\n  define(this, 'source', parser.options.source);\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/snapdragon/lib/position.js?");

/***/ }),

/***/ "./node_modules/snapdragon/lib/source-maps.js":
/*!****************************************************!*\
  !*** ./node_modules/snapdragon/lib/source-maps.js ***!
  \****************************************************/
/***/ ((module, exports, __webpack_require__) => {

"use strict";
eval("\n\nvar fs = __webpack_require__(/*! fs */ \"fs\");\nvar path = __webpack_require__(/*! path */ \"path\");\nvar define = __webpack_require__(/*! define-property */ \"./node_modules/define-property/index.js\");\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/snapdragon/lib/utils.js\");\n\n/**\n * Expose `mixin()`.\n * This code is based on `source-maps-support.js` in reworkcss/css\n * https://github.com/reworkcss/css/blob/master/lib/stringify/source-map-support.js\n * Copyright (c) 2012 TJ Holowaychuk <tj@vision-media.ca>\n */\n\nmodule.exports = mixin;\n\n/**\n * Mixin source map support into `compiler`.\n *\n * @param {Object} `compiler`\n * @api public\n */\n\nfunction mixin(compiler) {\n  define(compiler, '_comment', compiler.comment);\n  compiler.map = new utils.SourceMap.SourceMapGenerator();\n  compiler.position = { line: 1, column: 1 };\n  compiler.content = {};\n  compiler.files = {};\n\n  for (var key in exports) {\n    define(compiler, key, exports[key]);\n  }\n}\n\n/**\n * Update position.\n *\n * @param {String} str\n */\n\nexports.updatePosition = function(str) {\n  var lines = str.match(/\\n/g);\n  if (lines) this.position.line += lines.length;\n  var i = str.lastIndexOf('\\n');\n  this.position.column = ~i ? str.length - i : this.position.column + str.length;\n};\n\n/**\n * Emit `str` with `position`.\n *\n * @param {String} str\n * @param {Object} [pos]\n * @return {String}\n */\n\nexports.emit = function(str, node) {\n  var position = node.position || {};\n  var source = position.source;\n  if (source) {\n    if (position.filepath) {\n      source = utils.unixify(position.filepath);\n    }\n\n    this.map.addMapping({\n      source: source,\n      generated: {\n        line: this.position.line,\n        column: Math.max(this.position.column - 1, 0)\n      },\n      original: {\n        line: position.start.line,\n        column: position.start.column - 1\n      }\n    });\n\n    if (position.content) {\n      this.addContent(source, position);\n    }\n    if (position.filepath) {\n      this.addFile(source, position);\n    }\n\n    this.updatePosition(str);\n    this.output += str;\n  }\n  return str;\n};\n\n/**\n * Adds a file to the source map output if it has not already been added\n * @param {String} `file`\n * @param {Object} `pos`\n */\n\nexports.addFile = function(file, position) {\n  if (typeof position.content !== 'string') return;\n  if (Object.prototype.hasOwnProperty.call(this.files, file)) return;\n  this.files[file] = position.content;\n};\n\n/**\n * Adds a content source to the source map output if it has not already been added\n * @param {String} `source`\n * @param {Object} `position`\n */\n\nexports.addContent = function(source, position) {\n  if (typeof position.content !== 'string') return;\n  if (Object.prototype.hasOwnProperty.call(this.content, source)) return;\n  this.map.setSourceContent(source, position.content);\n};\n\n/**\n * Applies any original source maps to the output and embeds the source file\n * contents in the source map.\n */\n\nexports.applySourceMaps = function() {\n  Object.keys(this.files).forEach(function(file) {\n    var content = this.files[file];\n    this.map.setSourceContent(file, content);\n\n    if (this.options.inputSourcemaps === true) {\n      var originalMap = utils.sourceMapResolve.resolveSync(content, file, fs.readFileSync);\n      if (originalMap) {\n        var map = new utils.SourceMap.SourceMapConsumer(originalMap.map);\n        var relativeTo = originalMap.sourcesRelativeTo;\n        this.map.applySourceMap(map, file, utils.unixify(path.dirname(relativeTo)));\n      }\n    }\n  }, this);\n};\n\n/**\n * Process comments, drops sourceMap comments.\n * @param {Object} node\n */\n\nexports.comment = function(node) {\n  if (/^# sourceMappingURL=/.test(node.comment)) {\n    return this.emit('', node.position);\n  }\n  return this._comment(node);\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/snapdragon/lib/source-maps.js?");

/***/ }),

/***/ "./node_modules/snapdragon/lib/utils.js":
/*!**********************************************!*\
  !*** ./node_modules/snapdragon/lib/utils.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\n/**\n * Module dependencies\n */\n\nexports.extend = __webpack_require__(/*! extend-shallow */ \"./node_modules/extend-shallow/index.js\");\nexports.SourceMap = __webpack_require__(/*! source-map */ \"./node_modules/snapdragon/node_modules/source-map/source-map.js\");\nexports.sourceMapResolve = __webpack_require__(/*! source-map-resolve */ \"./node_modules/source-map-resolve/lib/source-map-resolve-node.js\");\n\n/**\n * Convert backslash in the given string to forward slashes\n */\n\nexports.unixify = function(fp) {\n  return fp.split(/\\\\+/).join('/');\n};\n\n/**\n * Return true if `val` is a non-empty string\n *\n * @param {String} `str`\n * @return {Boolean}\n */\n\nexports.isString = function(str) {\n  return str && typeof str === 'string';\n};\n\n/**\n * Cast `val` to an array\n * @return {Array}\n */\n\nexports.arrayify = function(val) {\n  if (typeof val === 'string') return [val];\n  return val ? (Array.isArray(val) ? val : [val]) : [];\n};\n\n/**\n * Get the last `n` element from the given `array`\n * @param {Array} `array`\n * @return {*}\n */\n\nexports.last = function(arr, n) {\n  return arr[arr.length - (n || 1)];\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/snapdragon/lib/utils.js?");

/***/ }),

/***/ "./node_modules/snapdragon/node_modules/source-map/lib/array-set.js":
/*!**************************************************************************!*\
  !*** ./node_modules/snapdragon/node_modules/source-map/lib/array-set.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = __webpack_require__(/*! ./util */ \"./node_modules/snapdragon/node_modules/source-map/lib/util.js\");\nvar has = Object.prototype.hasOwnProperty;\nvar hasNativeMap = typeof Map !== \"undefined\";\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nfunction ArraySet() {\n  this._array = [];\n  this._set = hasNativeMap ? new Map() : Object.create(null);\n}\n\n/**\n * Static method for creating ArraySet instances from an existing array.\n */\nArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n  var set = new ArraySet();\n  for (var i = 0, len = aArray.length; i < len; i++) {\n    set.add(aArray[i], aAllowDuplicates);\n  }\n  return set;\n};\n\n/**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\nArraySet.prototype.size = function ArraySet_size() {\n  return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n};\n\n/**\n * Add the given string to this set.\n *\n * @param String aStr\n */\nArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n  var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n  var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n  var idx = this._array.length;\n  if (!isDuplicate || aAllowDuplicates) {\n    this._array.push(aStr);\n  }\n  if (!isDuplicate) {\n    if (hasNativeMap) {\n      this._set.set(aStr, idx);\n    } else {\n      this._set[sStr] = idx;\n    }\n  }\n};\n\n/**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\nArraySet.prototype.has = function ArraySet_has(aStr) {\n  if (hasNativeMap) {\n    return this._set.has(aStr);\n  } else {\n    var sStr = util.toSetString(aStr);\n    return has.call(this._set, sStr);\n  }\n};\n\n/**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\nArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n  if (hasNativeMap) {\n    var idx = this._set.get(aStr);\n    if (idx >= 0) {\n        return idx;\n    }\n  } else {\n    var sStr = util.toSetString(aStr);\n    if (has.call(this._set, sStr)) {\n      return this._set[sStr];\n    }\n  }\n\n  throw new Error('\"' + aStr + '\" is not in the set.');\n};\n\n/**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\nArraySet.prototype.at = function ArraySet_at(aIdx) {\n  if (aIdx >= 0 && aIdx < this._array.length) {\n    return this._array[aIdx];\n  }\n  throw new Error('No element indexed by ' + aIdx);\n};\n\n/**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\nArraySet.prototype.toArray = function ArraySet_toArray() {\n  return this._array.slice();\n};\n\nexports.ArraySet = ArraySet;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/snapdragon/node_modules/source-map/lib/array-set.js?");

/***/ }),

/***/ "./node_modules/snapdragon/node_modules/source-map/lib/base64-vlq.js":
/*!***************************************************************************!*\
  !*** ./node_modules/snapdragon/node_modules/source-map/lib/base64-vlq.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * Based on the Base 64 VLQ implementation in Closure Compiler:\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n *\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n *  * Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n *  * Redistributions in binary form must reproduce the above\n *    copyright notice, this list of conditions and the following\n *    disclaimer in the documentation and/or other materials provided\n *    with the distribution.\n *  * Neither the name of Google Inc. nor the names of its\n *    contributors may be used to endorse or promote products derived\n *    from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar base64 = __webpack_require__(/*! ./base64 */ \"./node_modules/snapdragon/node_modules/source-map/lib/base64.js\");\n\n// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n// length quantities we use in the source map spec, the first bit is the sign,\n// the next four bits are the actual value, and the 6th bit is the\n// continuation bit. The continuation bit tells us whether there are more\n// digits in this value following this digit.\n//\n//   Continuation\n//   |    Sign\n//   |    |\n//   V    V\n//   101011\n\nvar VLQ_BASE_SHIFT = 5;\n\n// binary: 100000\nvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n// binary: 011111\nvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n// binary: 100000\nvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n/**\n * Converts from a two-complement value to a value where the sign bit is\n * placed in the least significant bit.  For example, as decimals:\n *   1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n *   2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n */\nfunction toVLQSigned(aValue) {\n  return aValue < 0\n    ? ((-aValue) << 1) + 1\n    : (aValue << 1) + 0;\n}\n\n/**\n * Converts to a two-complement value from a value where the sign bit is\n * placed in the least significant bit.  For example, as decimals:\n *   2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n *   4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n */\nfunction fromVLQSigned(aValue) {\n  var isNegative = (aValue & 1) === 1;\n  var shifted = aValue >> 1;\n  return isNegative\n    ? -shifted\n    : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n  var encoded = \"\";\n  var digit;\n\n  var vlq = toVLQSigned(aValue);\n\n  do {\n    digit = vlq & VLQ_BASE_MASK;\n    vlq >>>= VLQ_BASE_SHIFT;\n    if (vlq > 0) {\n      // There are still more digits in this value, so we must make sure the\n      // continuation bit is marked.\n      digit |= VLQ_CONTINUATION_BIT;\n    }\n    encoded += base64.encode(digit);\n  } while (vlq > 0);\n\n  return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n  var strLen = aStr.length;\n  var result = 0;\n  var shift = 0;\n  var continuation, digit;\n\n  do {\n    if (aIndex >= strLen) {\n      throw new Error(\"Expected more digits in base 64 VLQ value.\");\n    }\n\n    digit = base64.decode(aStr.charCodeAt(aIndex++));\n    if (digit === -1) {\n      throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n    }\n\n    continuation = !!(digit & VLQ_CONTINUATION_BIT);\n    digit &= VLQ_BASE_MASK;\n    result = result + (digit << shift);\n    shift += VLQ_BASE_SHIFT;\n  } while (continuation);\n\n  aOutParam.value = fromVLQSigned(result);\n  aOutParam.rest = aIndex;\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/snapdragon/node_modules/source-map/lib/base64-vlq.js?");

/***/ }),

/***/ "./node_modules/snapdragon/node_modules/source-map/lib/base64.js":
/*!***********************************************************************!*\
  !*** ./node_modules/snapdragon/node_modules/source-map/lib/base64.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

eval("/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n/**\n * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n */\nexports.encode = function (number) {\n  if (0 <= number && number < intToCharMap.length) {\n    return intToCharMap[number];\n  }\n  throw new TypeError(\"Must be between 0 and 63: \" + number);\n};\n\n/**\n * Decode a single base 64 character code digit to an integer. Returns -1 on\n * failure.\n */\nexports.decode = function (charCode) {\n  var bigA = 65;     // 'A'\n  var bigZ = 90;     // 'Z'\n\n  var littleA = 97;  // 'a'\n  var littleZ = 122; // 'z'\n\n  var zero = 48;     // '0'\n  var nine = 57;     // '9'\n\n  var plus = 43;     // '+'\n  var slash = 47;    // '/'\n\n  var littleOffset = 26;\n  var numberOffset = 52;\n\n  // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n  if (bigA <= charCode && charCode <= bigZ) {\n    return (charCode - bigA);\n  }\n\n  // 26 - 51: abcdefghijklmnopqrstuvwxyz\n  if (littleA <= charCode && charCode <= littleZ) {\n    return (charCode - littleA + littleOffset);\n  }\n\n  // 52 - 61: 0123456789\n  if (zero <= charCode && charCode <= nine) {\n    return (charCode - zero + numberOffset);\n  }\n\n  // 62: +\n  if (charCode == plus) {\n    return 62;\n  }\n\n  // 63: /\n  if (charCode == slash) {\n    return 63;\n  }\n\n  // Invalid base64 digit.\n  return -1;\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/snapdragon/node_modules/source-map/lib/base64.js?");

/***/ }),

/***/ "./node_modules/snapdragon/node_modules/source-map/lib/binary-search.js":
/*!******************************************************************************!*\
  !*** ./node_modules/snapdragon/node_modules/source-map/lib/binary-search.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

eval("/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n  // This function terminates when one of the following is true:\n  //\n  //   1. We find the exact element we are looking for.\n  //\n  //   2. We did not find the exact element, but we can return the index of\n  //      the next-closest element.\n  //\n  //   3. We did not find the exact element, and there is no next-closest\n  //      element than the one we are searching for, so we return -1.\n  var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n  var cmp = aCompare(aNeedle, aHaystack[mid], true);\n  if (cmp === 0) {\n    // Found the element we are looking for.\n    return mid;\n  }\n  else if (cmp > 0) {\n    // Our needle is greater than aHaystack[mid].\n    if (aHigh - mid > 1) {\n      // The element is in the upper half.\n      return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n    }\n\n    // The exact needle element was not found in this haystack. Determine if\n    // we are in termination case (3) or (2) and return the appropriate thing.\n    if (aBias == exports.LEAST_UPPER_BOUND) {\n      return aHigh < aHaystack.length ? aHigh : -1;\n    } else {\n      return mid;\n    }\n  }\n  else {\n    // Our needle is less than aHaystack[mid].\n    if (mid - aLow > 1) {\n      // The element is in the lower half.\n      return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n    }\n\n    // we are in termination case (3) or (2) and return the appropriate thing.\n    if (aBias == exports.LEAST_UPPER_BOUND) {\n      return mid;\n    } else {\n      return aLow < 0 ? -1 : aLow;\n    }\n  }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n *     array and returns -1, 0, or 1 depending on whether the needle is less\n *     than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n *     Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n  if (aHaystack.length === 0) {\n    return -1;\n  }\n\n  var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n                              aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n  if (index < 0) {\n    return -1;\n  }\n\n  // We have found either the exact element, or the next-closest element than\n  // the one we are searching for. However, there may be more than one such\n  // element. Make sure we always return the smallest of these.\n  while (index - 1 >= 0) {\n    if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n      break;\n    }\n    --index;\n  }\n\n  return index;\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/snapdragon/node_modules/source-map/lib/binary-search.js?");

/***/ }),

/***/ "./node_modules/snapdragon/node_modules/source-map/lib/mapping-list.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/snapdragon/node_modules/source-map/lib/mapping-list.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = __webpack_require__(/*! ./util */ \"./node_modules/snapdragon/node_modules/source-map/lib/util.js\");\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n  // Optimized for most common case\n  var lineA = mappingA.generatedLine;\n  var lineB = mappingB.generatedLine;\n  var columnA = mappingA.generatedColumn;\n  var columnB = mappingB.generatedColumn;\n  return lineB > lineA || lineB == lineA && columnB >= columnA ||\n         util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n  this._array = [];\n  this._sorted = true;\n  // Serves as infimum\n  this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n  function MappingList_forEach(aCallback, aThisArg) {\n    this._array.forEach(aCallback, aThisArg);\n  };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n  if (generatedPositionAfter(this._last, aMapping)) {\n    this._last = aMapping;\n    this._array.push(aMapping);\n  } else {\n    this._sorted = false;\n    this._array.push(aMapping);\n  }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n  if (!this._sorted) {\n    this._array.sort(util.compareByGeneratedPositionsInflated);\n    this._sorted = true;\n  }\n  return this._array;\n};\n\nexports.MappingList = MappingList;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/snapdragon/node_modules/source-map/lib/mapping-list.js?");

/***/ }),

/***/ "./node_modules/snapdragon/node_modules/source-map/lib/quick-sort.js":
/*!***************************************************************************!*\
  !*** ./node_modules/snapdragon/node_modules/source-map/lib/quick-sort.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

eval("/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n *        The array.\n * @param {Number} x\n *        The index of the first item.\n * @param {Number} y\n *        The index of the second item.\n */\nfunction swap(ary, x, y) {\n  var temp = ary[x];\n  ary[x] = ary[y];\n  ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n *        The lower bound on the range.\n * @param {Number} high\n *        The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n  return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n *        An array to sort.\n * @param {function} comparator\n *        Function to use to compare two items.\n * @param {Number} p\n *        Start index of the array\n * @param {Number} r\n *        End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n  // If our lower bound is less than our upper bound, we (1) partition the\n  // array into two pieces and (2) recurse on each half. If it is not, this is\n  // the empty array and our base case.\n\n  if (p < r) {\n    // (1) Partitioning.\n    //\n    // The partitioning chooses a pivot between `p` and `r` and moves all\n    // elements that are less than or equal to the pivot to the before it, and\n    // all the elements that are greater than it after it. The effect is that\n    // once partition is done, the pivot is in the exact place it will be when\n    // the array is put in sorted order, and it will not need to be moved\n    // again. This runs in O(n) time.\n\n    // Always choose a random pivot so that an input array which is reverse\n    // sorted does not cause O(n^2) running time.\n    var pivotIndex = randomIntInRange(p, r);\n    var i = p - 1;\n\n    swap(ary, pivotIndex, r);\n    var pivot = ary[r];\n\n    // Immediately after `j` is incremented in this loop, the following hold\n    // true:\n    //\n    //   * Every element in `ary[p .. i]` is less than or equal to the pivot.\n    //\n    //   * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n    for (var j = p; j < r; j++) {\n      if (comparator(ary[j], pivot) <= 0) {\n        i += 1;\n        swap(ary, i, j);\n      }\n    }\n\n    swap(ary, i + 1, j);\n    var q = i + 1;\n\n    // (2) Recurse on each half.\n\n    doQuickSort(ary, comparator, p, q - 1);\n    doQuickSort(ary, comparator, q + 1, r);\n  }\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n *        An array to sort.\n * @param {function} comparator\n *        Function to use to compare two items.\n */\nexports.quickSort = function (ary, comparator) {\n  doQuickSort(ary, comparator, 0, ary.length - 1);\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/snapdragon/node_modules/source-map/lib/quick-sort.js?");

/***/ }),

/***/ "./node_modules/snapdragon/node_modules/source-map/lib/source-map-consumer.js":
/*!************************************************************************************!*\
  !*** ./node_modules/snapdragon/node_modules/source-map/lib/source-map-consumer.js ***!
  \************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = __webpack_require__(/*! ./util */ \"./node_modules/snapdragon/node_modules/source-map/lib/util.js\");\nvar binarySearch = __webpack_require__(/*! ./binary-search */ \"./node_modules/snapdragon/node_modules/source-map/lib/binary-search.js\");\nvar ArraySet = __webpack_require__(/*! ./array-set */ \"./node_modules/snapdragon/node_modules/source-map/lib/array-set.js\").ArraySet;\nvar base64VLQ = __webpack_require__(/*! ./base64-vlq */ \"./node_modules/snapdragon/node_modules/source-map/lib/base64-vlq.js\");\nvar quickSort = __webpack_require__(/*! ./quick-sort */ \"./node_modules/snapdragon/node_modules/source-map/lib/quick-sort.js\").quickSort;\n\nfunction SourceMapConsumer(aSourceMap) {\n  var sourceMap = aSourceMap;\n  if (typeof aSourceMap === 'string') {\n    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n  }\n\n  return sourceMap.sections != null\n    ? new IndexedSourceMapConsumer(sourceMap)\n    : new BasicSourceMapConsumer(sourceMap);\n}\n\nSourceMapConsumer.fromSourceMap = function(aSourceMap) {\n  return BasicSourceMapConsumer.fromSourceMap(aSourceMap);\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\n\n// `__generatedMappings` and `__originalMappings` are arrays that hold the\n// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n// are lazily instantiated, accessed via the `_generatedMappings` and\n// `_originalMappings` getters respectively, and we only parse the mappings\n// and create these arrays once queried for a source location. We jump through\n// these hoops because there can be many thousands of mappings, and parsing\n// them is expensive, so we only want to do it if we must.\n//\n// Each object in the arrays is of the form:\n//\n//     {\n//       generatedLine: The line number in the generated code,\n//       generatedColumn: The column number in the generated code,\n//       source: The path to the original source file that generated this\n//               chunk of code,\n//       originalLine: The line number in the original source that\n//                     corresponds to this chunk of generated code,\n//       originalColumn: The column number in the original source that\n//                       corresponds to this chunk of generated code,\n//       name: The name of the original symbol which generated this chunk of\n//             code.\n//     }\n//\n// All properties except for `generatedLine` and `generatedColumn` can be\n// `null`.\n//\n// `_generatedMappings` is ordered by the generated positions.\n//\n// `_originalMappings` is ordered by the original positions.\n\nSourceMapConsumer.prototype.__generatedMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n  get: function () {\n    if (!this.__generatedMappings) {\n      this._parseMappings(this._mappings, this.sourceRoot);\n    }\n\n    return this.__generatedMappings;\n  }\n});\n\nSourceMapConsumer.prototype.__originalMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n  get: function () {\n    if (!this.__originalMappings) {\n      this._parseMappings(this._mappings, this.sourceRoot);\n    }\n\n    return this.__originalMappings;\n  }\n});\n\nSourceMapConsumer.prototype._charIsMappingSeparator =\n  function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n    var c = aStr.charAt(index);\n    return c === \";\" || c === \",\";\n  };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nSourceMapConsumer.prototype._parseMappings =\n  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n    throw new Error(\"Subclasses must implement _parseMappings\");\n  };\n\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n/**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n *        The function that is called with each mapping.\n * @param Object aContext\n *        Optional. If specified, this object will be the value of `this` every\n *        time that `aCallback` is called.\n * @param aOrder\n *        Either `SourceMapConsumer.GENERATED_ORDER` or\n *        `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n *        iterate over the mappings sorted by the generated file's line/column\n *        order or the original's source/line/column order, respectively. Defaults to\n *        `SourceMapConsumer.GENERATED_ORDER`.\n */\nSourceMapConsumer.prototype.eachMapping =\n  function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n    var context = aContext || null;\n    var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n    var mappings;\n    switch (order) {\n    case SourceMapConsumer.GENERATED_ORDER:\n      mappings = this._generatedMappings;\n      break;\n    case SourceMapConsumer.ORIGINAL_ORDER:\n      mappings = this._originalMappings;\n      break;\n    default:\n      throw new Error(\"Unknown order of iteration.\");\n    }\n\n    var sourceRoot = this.sourceRoot;\n    mappings.map(function (mapping) {\n      var source = mapping.source === null ? null : this._sources.at(mapping.source);\n      if (source != null && sourceRoot != null) {\n        source = util.join(sourceRoot, source);\n      }\n      return {\n        source: source,\n        generatedLine: mapping.generatedLine,\n        generatedColumn: mapping.generatedColumn,\n        originalLine: mapping.originalLine,\n        originalColumn: mapping.originalColumn,\n        name: mapping.name === null ? null : this._names.at(mapping.name)\n      };\n    }, this).forEach(aCallback, context);\n  };\n\n/**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n *   - source: The filename of the original source.\n *   - line: The line number in the original source.\n *   - column: Optional. the column number in the original source.\n *\n * and an array of objects is returned, each with the following properties:\n *\n *   - line: The line number in the generated source, or null.\n *   - column: The column number in the generated source, or null.\n */\nSourceMapConsumer.prototype.allGeneratedPositionsFor =\n  function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n    var line = util.getArg(aArgs, 'line');\n\n    // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n    // returns the index of the closest mapping less than the needle. By\n    // setting needle.originalColumn to 0, we thus find the last mapping for\n    // the given line, provided such a mapping exists.\n    var needle = {\n      source: util.getArg(aArgs, 'source'),\n      originalLine: line,\n      originalColumn: util.getArg(aArgs, 'column', 0)\n    };\n\n    if (this.sourceRoot != null) {\n      needle.source = util.relative(this.sourceRoot, needle.source);\n    }\n    if (!this._sources.has(needle.source)) {\n      return [];\n    }\n    needle.source = this._sources.indexOf(needle.source);\n\n    var mappings = [];\n\n    var index = this._findMapping(needle,\n                                  this._originalMappings,\n                                  \"originalLine\",\n                                  \"originalColumn\",\n                                  util.compareByOriginalPositions,\n                                  binarySearch.LEAST_UPPER_BOUND);\n    if (index >= 0) {\n      var mapping = this._originalMappings[index];\n\n      if (aArgs.column === undefined) {\n        var originalLine = mapping.originalLine;\n\n        // Iterate until either we run out of mappings, or we run into\n        // a mapping for a different line than the one we found. Since\n        // mappings are sorted, this is guaranteed to find all mappings for\n        // the line we found.\n        while (mapping && mapping.originalLine === originalLine) {\n          mappings.push({\n            line: util.getArg(mapping, 'generatedLine', null),\n            column: util.getArg(mapping, 'generatedColumn', null),\n            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n          });\n\n          mapping = this._originalMappings[++index];\n        }\n      } else {\n        var originalColumn = mapping.originalColumn;\n\n        // Iterate until either we run out of mappings, or we run into\n        // a mapping for a different line than the one we were searching for.\n        // Since mappings are sorted, this is guaranteed to find all mappings for\n        // the line we are searching for.\n        while (mapping &&\n               mapping.originalLine === line &&\n               mapping.originalColumn == originalColumn) {\n          mappings.push({\n            line: util.getArg(mapping, 'generatedLine', null),\n            column: util.getArg(mapping, 'generatedColumn', null),\n            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n          });\n\n          mapping = this._originalMappings[++index];\n        }\n      }\n    }\n\n    return mappings;\n  };\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The only parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n *   - version: Which version of the source map spec this map is following.\n *   - sources: An array of URLs to the original source files.\n *   - names: An array of identifiers which can be referrenced by individual mappings.\n *   - sourceRoot: Optional. The URL root from which all sources are relative.\n *   - sourcesContent: Optional. An array of contents of the original source files.\n *   - mappings: A string of base64 VLQs which contain the actual mappings.\n *   - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n *     {\n *       version : 3,\n *       file: \"out.js\",\n *       sourceRoot : \"\",\n *       sources: [\"foo.js\", \"bar.js\"],\n *       names: [\"src\", \"maps\", \"are\", \"fun\"],\n *       mappings: \"AA,AB;;ABCDE;\"\n *     }\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nfunction BasicSourceMapConsumer(aSourceMap) {\n  var sourceMap = aSourceMap;\n  if (typeof aSourceMap === 'string') {\n    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n  }\n\n  var version = util.getArg(sourceMap, 'version');\n  var sources = util.getArg(sourceMap, 'sources');\n  // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n  // requires the array) to play nice here.\n  var names = util.getArg(sourceMap, 'names', []);\n  var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n  var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n  var mappings = util.getArg(sourceMap, 'mappings');\n  var file = util.getArg(sourceMap, 'file', null);\n\n  // Once again, Sass deviates from the spec and supplies the version as a\n  // string rather than a number, so we use loose equality checking here.\n  if (version != this._version) {\n    throw new Error('Unsupported version: ' + version);\n  }\n\n  sources = sources\n    .map(String)\n    // Some source maps produce relative source paths like \"./foo.js\" instead of\n    // \"foo.js\".  Normalize these first so that future comparisons will succeed.\n    // See bugzil.la/1090768.\n    .map(util.normalize)\n    // Always ensure that absolute sources are internally stored relative to\n    // the source root, if the source root is absolute. Not doing this would\n    // be particularly problematic when the source root is a prefix of the\n    // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n    .map(function (source) {\n      return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n        ? util.relative(sourceRoot, source)\n        : source;\n    });\n\n  // Pass `true` below to allow duplicate names and sources. While source maps\n  // are intended to be compressed and deduplicated, the TypeScript compiler\n  // sometimes generates source maps with duplicates in them. See Github issue\n  // #72 and bugzil.la/889492.\n  this._names = ArraySet.fromArray(names.map(String), true);\n  this._sources = ArraySet.fromArray(sources, true);\n\n  this.sourceRoot = sourceRoot;\n  this.sourcesContent = sourcesContent;\n  this._mappings = mappings;\n  this.file = file;\n}\n\nBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n/**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n *        The source map that will be consumed.\n * @returns BasicSourceMapConsumer\n */\nBasicSourceMapConsumer.fromSourceMap =\n  function SourceMapConsumer_fromSourceMap(aSourceMap) {\n    var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n    var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n    var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n    smc.sourceRoot = aSourceMap._sourceRoot;\n    smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n                                                            smc.sourceRoot);\n    smc.file = aSourceMap._file;\n\n    // Because we are modifying the entries (by converting string sources and\n    // names to indices into the sources and names ArraySets), we have to make\n    // a copy of the entry or else bad things happen. Shared mutable state\n    // strikes again! See github issue #191.\n\n    var generatedMappings = aSourceMap._mappings.toArray().slice();\n    var destGeneratedMappings = smc.__generatedMappings = [];\n    var destOriginalMappings = smc.__originalMappings = [];\n\n    for (var i = 0, length = generatedMappings.length; i < length; i++) {\n      var srcMapping = generatedMappings[i];\n      var destMapping = new Mapping;\n      destMapping.generatedLine = srcMapping.generatedLine;\n      destMapping.generatedColumn = srcMapping.generatedColumn;\n\n      if (srcMapping.source) {\n        destMapping.source = sources.indexOf(srcMapping.source);\n        destMapping.originalLine = srcMapping.originalLine;\n        destMapping.originalColumn = srcMapping.originalColumn;\n\n        if (srcMapping.name) {\n          destMapping.name = names.indexOf(srcMapping.name);\n        }\n\n        destOriginalMappings.push(destMapping);\n      }\n\n      destGeneratedMappings.push(destMapping);\n    }\n\n    quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n    return smc;\n  };\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nBasicSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n  get: function () {\n    return this._sources.toArray().map(function (s) {\n      return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\n    }, this);\n  }\n});\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n  this.generatedLine = 0;\n  this.generatedColumn = 0;\n  this.source = null;\n  this.originalLine = null;\n  this.originalColumn = null;\n  this.name = null;\n}\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nBasicSourceMapConsumer.prototype._parseMappings =\n  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n    var generatedLine = 1;\n    var previousGeneratedColumn = 0;\n    var previousOriginalLine = 0;\n    var previousOriginalColumn = 0;\n    var previousSource = 0;\n    var previousName = 0;\n    var length = aStr.length;\n    var index = 0;\n    var cachedSegments = {};\n    var temp = {};\n    var originalMappings = [];\n    var generatedMappings = [];\n    var mapping, str, segment, end, value;\n\n    while (index < length) {\n      if (aStr.charAt(index) === ';') {\n        generatedLine++;\n        index++;\n        previousGeneratedColumn = 0;\n      }\n      else if (aStr.charAt(index) === ',') {\n        index++;\n      }\n      else {\n        mapping = new Mapping();\n        mapping.generatedLine = generatedLine;\n\n        // Because each offset is encoded relative to the previous one,\n        // many segments often have the same encoding. We can exploit this\n        // fact by caching the parsed variable length fields of each segment,\n        // allowing us to avoid a second parse if we encounter the same\n        // segment again.\n        for (end = index; end < length; end++) {\n          if (this._charIsMappingSeparator(aStr, end)) {\n            break;\n          }\n        }\n        str = aStr.slice(index, end);\n\n        segment = cachedSegments[str];\n        if (segment) {\n          index += str.length;\n        } else {\n          segment = [];\n          while (index < end) {\n            base64VLQ.decode(aStr, index, temp);\n            value = temp.value;\n            index = temp.rest;\n            segment.push(value);\n          }\n\n          if (segment.length === 2) {\n            throw new Error('Found a source, but no line and column');\n          }\n\n          if (segment.length === 3) {\n            throw new Error('Found a source and line, but no column');\n          }\n\n          cachedSegments[str] = segment;\n        }\n\n        // Generated column.\n        mapping.generatedColumn = previousGeneratedColumn + segment[0];\n        previousGeneratedColumn = mapping.generatedColumn;\n\n        if (segment.length > 1) {\n          // Original source.\n          mapping.source = previousSource + segment[1];\n          previousSource += segment[1];\n\n          // Original line.\n          mapping.originalLine = previousOriginalLine + segment[2];\n          previousOriginalLine = mapping.originalLine;\n          // Lines are stored 0-based\n          mapping.originalLine += 1;\n\n          // Original column.\n          mapping.originalColumn = previousOriginalColumn + segment[3];\n          previousOriginalColumn = mapping.originalColumn;\n\n          if (segment.length > 4) {\n            // Original name.\n            mapping.name = previousName + segment[4];\n            previousName += segment[4];\n          }\n        }\n\n        generatedMappings.push(mapping);\n        if (typeof mapping.originalLine === 'number') {\n          originalMappings.push(mapping);\n        }\n      }\n    }\n\n    quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n    this.__generatedMappings = generatedMappings;\n\n    quickSort(originalMappings, util.compareByOriginalPositions);\n    this.__originalMappings = originalMappings;\n  };\n\n/**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\nBasicSourceMapConsumer.prototype._findMapping =\n  function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n                                         aColumnName, aComparator, aBias) {\n    // To return the position we are searching for, we must first find the\n    // mapping for the given position and then return the opposite position it\n    // points to. Because the mappings are sorted, we can use binary search to\n    // find the best mapping.\n\n    if (aNeedle[aLineName] <= 0) {\n      throw new TypeError('Line must be greater than or equal to 1, got '\n                          + aNeedle[aLineName]);\n    }\n    if (aNeedle[aColumnName] < 0) {\n      throw new TypeError('Column must be greater than or equal to 0, got '\n                          + aNeedle[aColumnName]);\n    }\n\n    return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n  };\n\n/**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\nBasicSourceMapConsumer.prototype.computeColumnSpans =\n  function SourceMapConsumer_computeColumnSpans() {\n    for (var index = 0; index < this._generatedMappings.length; ++index) {\n      var mapping = this._generatedMappings[index];\n\n      // Mappings do not contain a field for the last generated columnt. We\n      // can come up with an optimistic estimate, however, by assuming that\n      // mappings are contiguous (i.e. given two consecutive mappings, the\n      // first mapping ends where the second one starts).\n      if (index + 1 < this._generatedMappings.length) {\n        var nextMapping = this._generatedMappings[index + 1];\n\n        if (mapping.generatedLine === nextMapping.generatedLine) {\n          mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n          continue;\n        }\n      }\n\n      // The last mapping for each line spans the entire line.\n      mapping.lastGeneratedColumn = Infinity;\n    }\n  };\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n *   - line: The line number in the generated source.\n *   - column: The column number in the generated source.\n *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n *   - source: The original source file, or null.\n *   - line: The line number in the original source, or null.\n *   - column: The column number in the original source, or null.\n *   - name: The original identifier, or null.\n */\nBasicSourceMapConsumer.prototype.originalPositionFor =\n  function SourceMapConsumer_originalPositionFor(aArgs) {\n    var needle = {\n      generatedLine: util.getArg(aArgs, 'line'),\n      generatedColumn: util.getArg(aArgs, 'column')\n    };\n\n    var index = this._findMapping(\n      needle,\n      this._generatedMappings,\n      \"generatedLine\",\n      \"generatedColumn\",\n      util.compareByGeneratedPositionsDeflated,\n      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n    );\n\n    if (index >= 0) {\n      var mapping = this._generatedMappings[index];\n\n      if (mapping.generatedLine === needle.generatedLine) {\n        var source = util.getArg(mapping, 'source', null);\n        if (source !== null) {\n          source = this._sources.at(source);\n          if (this.sourceRoot != null) {\n            source = util.join(this.sourceRoot, source);\n          }\n        }\n        var name = util.getArg(mapping, 'name', null);\n        if (name !== null) {\n          name = this._names.at(name);\n        }\n        return {\n          source: source,\n          line: util.getArg(mapping, 'originalLine', null),\n          column: util.getArg(mapping, 'originalColumn', null),\n          name: name\n        };\n      }\n    }\n\n    return {\n      source: null,\n      line: null,\n      column: null,\n      name: null\n    };\n  };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n  function BasicSourceMapConsumer_hasContentsOfAllSources() {\n    if (!this.sourcesContent) {\n      return false;\n    }\n    return this.sourcesContent.length >= this._sources.size() &&\n      !this.sourcesContent.some(function (sc) { return sc == null; });\n  };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nBasicSourceMapConsumer.prototype.sourceContentFor =\n  function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n    if (!this.sourcesContent) {\n      return null;\n    }\n\n    if (this.sourceRoot != null) {\n      aSource = util.relative(this.sourceRoot, aSource);\n    }\n\n    if (this._sources.has(aSource)) {\n      return this.sourcesContent[this._sources.indexOf(aSource)];\n    }\n\n    var url;\n    if (this.sourceRoot != null\n        && (url = util.urlParse(this.sourceRoot))) {\n      // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n      // many users. We can help them out when they expect file:// URIs to\n      // behave like it would if they were running a local HTTP server. See\n      // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n      var fileUriAbsPath = aSource.replace(/^file:\\/\\//, \"\");\n      if (url.scheme == \"file\"\n          && this._sources.has(fileUriAbsPath)) {\n        return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n      }\n\n      if ((!url.path || url.path == \"/\")\n          && this._sources.has(\"/\" + aSource)) {\n        return this.sourcesContent[this._sources.indexOf(\"/\" + aSource)];\n      }\n    }\n\n    // This function is used recursively from\n    // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n    // don't want to throw if we can't find the source - we just want to\n    // return null, so we provide a flag to exit gracefully.\n    if (nullOnMissing) {\n      return null;\n    }\n    else {\n      throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n    }\n  };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n *   - source: The filename of the original source.\n *   - line: The line number in the original source.\n *   - column: The column number in the original source.\n *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n *   - line: The line number in the generated source, or null.\n *   - column: The column number in the generated source, or null.\n */\nBasicSourceMapConsumer.prototype.generatedPositionFor =\n  function SourceMapConsumer_generatedPositionFor(aArgs) {\n    var source = util.getArg(aArgs, 'source');\n    if (this.sourceRoot != null) {\n      source = util.relative(this.sourceRoot, source);\n    }\n    if (!this._sources.has(source)) {\n      return {\n        line: null,\n        column: null,\n        lastColumn: null\n      };\n    }\n    source = this._sources.indexOf(source);\n\n    var needle = {\n      source: source,\n      originalLine: util.getArg(aArgs, 'line'),\n      originalColumn: util.getArg(aArgs, 'column')\n    };\n\n    var index = this._findMapping(\n      needle,\n      this._originalMappings,\n      \"originalLine\",\n      \"originalColumn\",\n      util.compareByOriginalPositions,\n      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n    );\n\n    if (index >= 0) {\n      var mapping = this._originalMappings[index];\n\n      if (mapping.source === needle.source) {\n        return {\n          line: util.getArg(mapping, 'generatedLine', null),\n          column: util.getArg(mapping, 'generatedColumn', null),\n          lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n        };\n      }\n    }\n\n    return {\n      line: null,\n      column: null,\n      lastColumn: null\n    };\n  };\n\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The only parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n *   - version: Which version of the source map spec this map is following.\n *   - file: Optional. The generated file this source map is associated with.\n *   - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n *   - offset: The offset into the original specified at which this section\n *       begins to apply, defined as an object with a \"line\" and \"column\"\n *       field.\n *   - map: A source map definition. This source map could also be indexed,\n *       but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n *  {\n *    version : 3,\n *    file: \"app.js\",\n *    sections: [{\n *      offset: {line:100, column:10},\n *      map: {\n *        version : 3,\n *        file: \"section.js\",\n *        sources: [\"foo.js\", \"bar.js\"],\n *        names: [\"src\", \"maps\", \"are\", \"fun\"],\n *        mappings: \"AAAA,E;;ABCDE;\"\n *      }\n *    }],\n *  }\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nfunction IndexedSourceMapConsumer(aSourceMap) {\n  var sourceMap = aSourceMap;\n  if (typeof aSourceMap === 'string') {\n    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n  }\n\n  var version = util.getArg(sourceMap, 'version');\n  var sections = util.getArg(sourceMap, 'sections');\n\n  if (version != this._version) {\n    throw new Error('Unsupported version: ' + version);\n  }\n\n  this._sources = new ArraySet();\n  this._names = new ArraySet();\n\n  var lastOffset = {\n    line: -1,\n    column: 0\n  };\n  this._sections = sections.map(function (s) {\n    if (s.url) {\n      // The url field will require support for asynchronicity.\n      // See https://github.com/mozilla/source-map/issues/16\n      throw new Error('Support for url field in sections not implemented.');\n    }\n    var offset = util.getArg(s, 'offset');\n    var offsetLine = util.getArg(offset, 'line');\n    var offsetColumn = util.getArg(offset, 'column');\n\n    if (offsetLine < lastOffset.line ||\n        (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n      throw new Error('Section offsets must be ordered and non-overlapping.');\n    }\n    lastOffset = offset;\n\n    return {\n      generatedOffset: {\n        // The offset fields are 0-based, but we use 1-based indices when\n        // encoding/decoding from VLQ.\n        generatedLine: offsetLine + 1,\n        generatedColumn: offsetColumn + 1\n      },\n      consumer: new SourceMapConsumer(util.getArg(s, 'map'))\n    }\n  });\n}\n\nIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nIndexedSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n  get: function () {\n    var sources = [];\n    for (var i = 0; i < this._sections.length; i++) {\n      for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n        sources.push(this._sections[i].consumer.sources[j]);\n      }\n    }\n    return sources;\n  }\n});\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n *   - line: The line number in the generated source.\n *   - column: The column number in the generated source.\n *\n * and an object is returned with the following properties:\n *\n *   - source: The original source file, or null.\n *   - line: The line number in the original source, or null.\n *   - column: The column number in the original source, or null.\n *   - name: The original identifier, or null.\n */\nIndexedSourceMapConsumer.prototype.originalPositionFor =\n  function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n    var needle = {\n      generatedLine: util.getArg(aArgs, 'line'),\n      generatedColumn: util.getArg(aArgs, 'column')\n    };\n\n    // Find the section containing the generated position we're trying to map\n    // to an original position.\n    var sectionIndex = binarySearch.search(needle, this._sections,\n      function(needle, section) {\n        var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n        if (cmp) {\n          return cmp;\n        }\n\n        return (needle.generatedColumn -\n                section.generatedOffset.generatedColumn);\n      });\n    var section = this._sections[sectionIndex];\n\n    if (!section) {\n      return {\n        source: null,\n        line: null,\n        column: null,\n        name: null\n      };\n    }\n\n    return section.consumer.originalPositionFor({\n      line: needle.generatedLine -\n        (section.generatedOffset.generatedLine - 1),\n      column: needle.generatedColumn -\n        (section.generatedOffset.generatedLine === needle.generatedLine\n         ? section.generatedOffset.generatedColumn - 1\n         : 0),\n      bias: aArgs.bias\n    });\n  };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n  function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n    return this._sections.every(function (s) {\n      return s.consumer.hasContentsOfAllSources();\n    });\n  };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nIndexedSourceMapConsumer.prototype.sourceContentFor =\n  function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n    for (var i = 0; i < this._sections.length; i++) {\n      var section = this._sections[i];\n\n      var content = section.consumer.sourceContentFor(aSource, true);\n      if (content) {\n        return content;\n      }\n    }\n    if (nullOnMissing) {\n      return null;\n    }\n    else {\n      throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n    }\n  };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n *   - source: The filename of the original source.\n *   - line: The line number in the original source.\n *   - column: The column number in the original source.\n *\n * and an object is returned with the following properties:\n *\n *   - line: The line number in the generated source, or null.\n *   - column: The column number in the generated source, or null.\n */\nIndexedSourceMapConsumer.prototype.generatedPositionFor =\n  function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n    for (var i = 0; i < this._sections.length; i++) {\n      var section = this._sections[i];\n\n      // Only consider this section if the requested source is in the list of\n      // sources of the consumer.\n      if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {\n        continue;\n      }\n      var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n      if (generatedPosition) {\n        var ret = {\n          line: generatedPosition.line +\n            (section.generatedOffset.generatedLine - 1),\n          column: generatedPosition.column +\n            (section.generatedOffset.generatedLine === generatedPosition.line\n             ? section.generatedOffset.generatedColumn - 1\n             : 0)\n        };\n        return ret;\n      }\n    }\n\n    return {\n      line: null,\n      column: null\n    };\n  };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nIndexedSourceMapConsumer.prototype._parseMappings =\n  function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n    this.__generatedMappings = [];\n    this.__originalMappings = [];\n    for (var i = 0; i < this._sections.length; i++) {\n      var section = this._sections[i];\n      var sectionMappings = section.consumer._generatedMappings;\n      for (var j = 0; j < sectionMappings.length; j++) {\n        var mapping = sectionMappings[j];\n\n        var source = section.consumer._sources.at(mapping.source);\n        if (section.consumer.sourceRoot !== null) {\n          source = util.join(section.consumer.sourceRoot, source);\n        }\n        this._sources.add(source);\n        source = this._sources.indexOf(source);\n\n        var name = section.consumer._names.at(mapping.name);\n        this._names.add(name);\n        name = this._names.indexOf(name);\n\n        // The mappings coming from the consumer for the section have\n        // generated positions relative to the start of the section, so we\n        // need to offset them to be relative to the start of the concatenated\n        // generated file.\n        var adjustedMapping = {\n          source: source,\n          generatedLine: mapping.generatedLine +\n            (section.generatedOffset.generatedLine - 1),\n          generatedColumn: mapping.generatedColumn +\n            (section.generatedOffset.generatedLine === mapping.generatedLine\n            ? section.generatedOffset.generatedColumn - 1\n            : 0),\n          originalLine: mapping.originalLine,\n          originalColumn: mapping.originalColumn,\n          name: name\n        };\n\n        this.__generatedMappings.push(adjustedMapping);\n        if (typeof adjustedMapping.originalLine === 'number') {\n          this.__originalMappings.push(adjustedMapping);\n        }\n      }\n    }\n\n    quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n    quickSort(this.__originalMappings, util.compareByOriginalPositions);\n  };\n\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/snapdragon/node_modules/source-map/lib/source-map-consumer.js?");

/***/ }),

/***/ "./node_modules/snapdragon/node_modules/source-map/lib/source-map-generator.js":
/*!*************************************************************************************!*\
  !*** ./node_modules/snapdragon/node_modules/source-map/lib/source-map-generator.js ***!
  \*************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = __webpack_require__(/*! ./base64-vlq */ \"./node_modules/snapdragon/node_modules/source-map/lib/base64-vlq.js\");\nvar util = __webpack_require__(/*! ./util */ \"./node_modules/snapdragon/node_modules/source-map/lib/util.js\");\nvar ArraySet = __webpack_require__(/*! ./array-set */ \"./node_modules/snapdragon/node_modules/source-map/lib/array-set.js\").ArraySet;\nvar MappingList = __webpack_require__(/*! ./mapping-list */ \"./node_modules/snapdragon/node_modules/source-map/lib/mapping-list.js\").MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n *   - file: The filename of the generated source.\n *   - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n  if (!aArgs) {\n    aArgs = {};\n  }\n  this._file = util.getArg(aArgs, 'file', null);\n  this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n  this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n  this._sources = new ArraySet();\n  this._names = new ArraySet();\n  this._mappings = new MappingList();\n  this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n  function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n    var sourceRoot = aSourceMapConsumer.sourceRoot;\n    var generator = new SourceMapGenerator({\n      file: aSourceMapConsumer.file,\n      sourceRoot: sourceRoot\n    });\n    aSourceMapConsumer.eachMapping(function (mapping) {\n      var newMapping = {\n        generated: {\n          line: mapping.generatedLine,\n          column: mapping.generatedColumn\n        }\n      };\n\n      if (mapping.source != null) {\n        newMapping.source = mapping.source;\n        if (sourceRoot != null) {\n          newMapping.source = util.relative(sourceRoot, newMapping.source);\n        }\n\n        newMapping.original = {\n          line: mapping.originalLine,\n          column: mapping.originalColumn\n        };\n\n        if (mapping.name != null) {\n          newMapping.name = mapping.name;\n        }\n      }\n\n      generator.addMapping(newMapping);\n    });\n    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n      if (content != null) {\n        generator.setSourceContent(sourceFile, content);\n      }\n    });\n    return generator;\n  };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n *   - generated: An object with the generated line and column positions.\n *   - original: An object with the original line and column positions.\n *   - source: The original source file (relative to the sourceRoot).\n *   - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n  function SourceMapGenerator_addMapping(aArgs) {\n    var generated = util.getArg(aArgs, 'generated');\n    var original = util.getArg(aArgs, 'original', null);\n    var source = util.getArg(aArgs, 'source', null);\n    var name = util.getArg(aArgs, 'name', null);\n\n    if (!this._skipValidation) {\n      this._validateMapping(generated, original, source, name);\n    }\n\n    if (source != null) {\n      source = String(source);\n      if (!this._sources.has(source)) {\n        this._sources.add(source);\n      }\n    }\n\n    if (name != null) {\n      name = String(name);\n      if (!this._names.has(name)) {\n        this._names.add(name);\n      }\n    }\n\n    this._mappings.add({\n      generatedLine: generated.line,\n      generatedColumn: generated.column,\n      originalLine: original != null && original.line,\n      originalColumn: original != null && original.column,\n      source: source,\n      name: name\n    });\n  };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n  function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n    var source = aSourceFile;\n    if (this._sourceRoot != null) {\n      source = util.relative(this._sourceRoot, source);\n    }\n\n    if (aSourceContent != null) {\n      // Add the source content to the _sourcesContents map.\n      // Create a new _sourcesContents map if the property is null.\n      if (!this._sourcesContents) {\n        this._sourcesContents = Object.create(null);\n      }\n      this._sourcesContents[util.toSetString(source)] = aSourceContent;\n    } else if (this._sourcesContents) {\n      // Remove the source file from the _sourcesContents map.\n      // If the _sourcesContents map is empty, set the property to null.\n      delete this._sourcesContents[util.toSetString(source)];\n      if (Object.keys(this._sourcesContents).length === 0) {\n        this._sourcesContents = null;\n      }\n    }\n  };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n *        If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n *        to be applied. If relative, it is relative to the SourceMapConsumer.\n *        This parameter is needed when the two source maps aren't in the same\n *        directory, and the source map to be applied contains relative source\n *        paths. If so, those relative source paths need to be rewritten\n *        relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n  function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n    var sourceFile = aSourceFile;\n    // If aSourceFile is omitted, we will use the file property of the SourceMap\n    if (aSourceFile == null) {\n      if (aSourceMapConsumer.file == null) {\n        throw new Error(\n          'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n          'or the source map\\'s \"file\" property. Both were omitted.'\n        );\n      }\n      sourceFile = aSourceMapConsumer.file;\n    }\n    var sourceRoot = this._sourceRoot;\n    // Make \"sourceFile\" relative if an absolute Url is passed.\n    if (sourceRoot != null) {\n      sourceFile = util.relative(sourceRoot, sourceFile);\n    }\n    // Applying the SourceMap can add and remove items from the sources and\n    // the names array.\n    var newSources = new ArraySet();\n    var newNames = new ArraySet();\n\n    // Find mappings for the \"sourceFile\"\n    this._mappings.unsortedForEach(function (mapping) {\n      if (mapping.source === sourceFile && mapping.originalLine != null) {\n        // Check if it can be mapped by the source map, then update the mapping.\n        var original = aSourceMapConsumer.originalPositionFor({\n          line: mapping.originalLine,\n          column: mapping.originalColumn\n        });\n        if (original.source != null) {\n          // Copy mapping\n          mapping.source = original.source;\n          if (aSourceMapPath != null) {\n            mapping.source = util.join(aSourceMapPath, mapping.source)\n          }\n          if (sourceRoot != null) {\n            mapping.source = util.relative(sourceRoot, mapping.source);\n          }\n          mapping.originalLine = original.line;\n          mapping.originalColumn = original.column;\n          if (original.name != null) {\n            mapping.name = original.name;\n          }\n        }\n      }\n\n      var source = mapping.source;\n      if (source != null && !newSources.has(source)) {\n        newSources.add(source);\n      }\n\n      var name = mapping.name;\n      if (name != null && !newNames.has(name)) {\n        newNames.add(name);\n      }\n\n    }, this);\n    this._sources = newSources;\n    this._names = newNames;\n\n    // Copy sourcesContents of applied map.\n    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n      if (content != null) {\n        if (aSourceMapPath != null) {\n          sourceFile = util.join(aSourceMapPath, sourceFile);\n        }\n        if (sourceRoot != null) {\n          sourceFile = util.relative(sourceRoot, sourceFile);\n        }\n        this.setSourceContent(sourceFile, content);\n      }\n    }, this);\n  };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n *   1. Just the generated position.\n *   2. The Generated position, original position, and original source.\n *   3. Generated and original position, original source, as well as a name\n *      token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n  function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n                                              aName) {\n    // When aOriginal is truthy but has empty values for .line and .column,\n    // it is most likely a programmer error. In this case we throw a very\n    // specific error message to try to guide them the right way.\n    // For example: https://github.com/Polymer/polymer-bundler/pull/519\n    if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n        throw new Error(\n            'original.line and original.column are not numbers -- you probably meant to omit ' +\n            'the original mapping entirely and only map the generated position. If so, pass ' +\n            'null for the original mapping instead of an object with empty or null values.'\n        );\n    }\n\n    if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n        && aGenerated.line > 0 && aGenerated.column >= 0\n        && !aOriginal && !aSource && !aName) {\n      // Case 1.\n      return;\n    }\n    else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n             && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n             && aGenerated.line > 0 && aGenerated.column >= 0\n             && aOriginal.line > 0 && aOriginal.column >= 0\n             && aSource) {\n      // Cases 2 and 3.\n      return;\n    }\n    else {\n      throw new Error('Invalid mapping: ' + JSON.stringify({\n        generated: aGenerated,\n        source: aSource,\n        original: aOriginal,\n        name: aName\n      }));\n    }\n  };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n  function SourceMapGenerator_serializeMappings() {\n    var previousGeneratedColumn = 0;\n    var previousGeneratedLine = 1;\n    var previousOriginalColumn = 0;\n    var previousOriginalLine = 0;\n    var previousName = 0;\n    var previousSource = 0;\n    var result = '';\n    var next;\n    var mapping;\n    var nameIdx;\n    var sourceIdx;\n\n    var mappings = this._mappings.toArray();\n    for (var i = 0, len = mappings.length; i < len; i++) {\n      mapping = mappings[i];\n      next = ''\n\n      if (mapping.generatedLine !== previousGeneratedLine) {\n        previousGeneratedColumn = 0;\n        while (mapping.generatedLine !== previousGeneratedLine) {\n          next += ';';\n          previousGeneratedLine++;\n        }\n      }\n      else {\n        if (i > 0) {\n          if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n            continue;\n          }\n          next += ',';\n        }\n      }\n\n      next += base64VLQ.encode(mapping.generatedColumn\n                                 - previousGeneratedColumn);\n      previousGeneratedColumn = mapping.generatedColumn;\n\n      if (mapping.source != null) {\n        sourceIdx = this._sources.indexOf(mapping.source);\n        next += base64VLQ.encode(sourceIdx - previousSource);\n        previousSource = sourceIdx;\n\n        // lines are stored 0-based in SourceMap spec version 3\n        next += base64VLQ.encode(mapping.originalLine - 1\n                                   - previousOriginalLine);\n        previousOriginalLine = mapping.originalLine - 1;\n\n        next += base64VLQ.encode(mapping.originalColumn\n                                   - previousOriginalColumn);\n        previousOriginalColumn = mapping.originalColumn;\n\n        if (mapping.name != null) {\n          nameIdx = this._names.indexOf(mapping.name);\n          next += base64VLQ.encode(nameIdx - previousName);\n          previousName = nameIdx;\n        }\n      }\n\n      result += next;\n    }\n\n    return result;\n  };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n  function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n    return aSources.map(function (source) {\n      if (!this._sourcesContents) {\n        return null;\n      }\n      if (aSourceRoot != null) {\n        source = util.relative(aSourceRoot, source);\n      }\n      var key = util.toSetString(source);\n      return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n        ? this._sourcesContents[key]\n        : null;\n    }, this);\n  };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n  function SourceMapGenerator_toJSON() {\n    var map = {\n      version: this._version,\n      sources: this._sources.toArray(),\n      names: this._names.toArray(),\n      mappings: this._serializeMappings()\n    };\n    if (this._file != null) {\n      map.file = this._file;\n    }\n    if (this._sourceRoot != null) {\n      map.sourceRoot = this._sourceRoot;\n    }\n    if (this._sourcesContents) {\n      map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n    }\n\n    return map;\n  };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n  function SourceMapGenerator_toString() {\n    return JSON.stringify(this.toJSON());\n  };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/snapdragon/node_modules/source-map/lib/source-map-generator.js?");

/***/ }),

/***/ "./node_modules/snapdragon/node_modules/source-map/lib/source-node.js":
/*!****************************************************************************!*\
  !*** ./node_modules/snapdragon/node_modules/source-map/lib/source-node.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = __webpack_require__(/*! ./source-map-generator */ \"./node_modules/snapdragon/node_modules/source-map/lib/source-map-generator.js\").SourceMapGenerator;\nvar util = __webpack_require__(/*! ./util */ \"./node_modules/snapdragon/node_modules/source-map/lib/util.js\");\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n *        generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n  this.children = [];\n  this.sourceContents = {};\n  this.line = aLine == null ? null : aLine;\n  this.column = aColumn == null ? null : aColumn;\n  this.source = aSource == null ? null : aSource;\n  this.name = aName == null ? null : aName;\n  this[isSourceNode] = true;\n  if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n *        SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n  function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n    // The SourceNode we want to fill with the generated code\n    // and the SourceMap\n    var node = new SourceNode();\n\n    // All even indices of this array are one line of the generated code,\n    // while all odd indices are the newlines between two adjacent lines\n    // (since `REGEX_NEWLINE` captures its match).\n    // Processed fragments are accessed by calling `shiftNextLine`.\n    var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n    var remainingLinesIndex = 0;\n    var shiftNextLine = function() {\n      var lineContents = getNextLine();\n      // The last line of a file might not have a newline.\n      var newLine = getNextLine() || \"\";\n      return lineContents + newLine;\n\n      function getNextLine() {\n        return remainingLinesIndex < remainingLines.length ?\n            remainingLines[remainingLinesIndex++] : undefined;\n      }\n    };\n\n    // We need to remember the position of \"remainingLines\"\n    var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n    // The generate SourceNodes we need a code range.\n    // To extract it current and last mapping is used.\n    // Here we store the last mapping.\n    var lastMapping = null;\n\n    aSourceMapConsumer.eachMapping(function (mapping) {\n      if (lastMapping !== null) {\n        // We add the code from \"lastMapping\" to \"mapping\":\n        // First check if there is a new line in between.\n        if (lastGeneratedLine < mapping.generatedLine) {\n          // Associate first line with \"lastMapping\"\n          addMappingWithCode(lastMapping, shiftNextLine());\n          lastGeneratedLine++;\n          lastGeneratedColumn = 0;\n          // The remaining code is added without mapping\n        } else {\n          // There is no new line in between.\n          // Associate the code between \"lastGeneratedColumn\" and\n          // \"mapping.generatedColumn\" with \"lastMapping\"\n          var nextLine = remainingLines[remainingLinesIndex];\n          var code = nextLine.substr(0, mapping.generatedColumn -\n                                        lastGeneratedColumn);\n          remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n                                              lastGeneratedColumn);\n          lastGeneratedColumn = mapping.generatedColumn;\n          addMappingWithCode(lastMapping, code);\n          // No more remaining code, continue\n          lastMapping = mapping;\n          return;\n        }\n      }\n      // We add the generated code until the first mapping\n      // to the SourceNode without any mapping.\n      // Each line is added as separate string.\n      while (lastGeneratedLine < mapping.generatedLine) {\n        node.add(shiftNextLine());\n        lastGeneratedLine++;\n      }\n      if (lastGeneratedColumn < mapping.generatedColumn) {\n        var nextLine = remainingLines[remainingLinesIndex];\n        node.add(nextLine.substr(0, mapping.generatedColumn));\n        remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n        lastGeneratedColumn = mapping.generatedColumn;\n      }\n      lastMapping = mapping;\n    }, this);\n    // We have processed all mappings.\n    if (remainingLinesIndex < remainingLines.length) {\n      if (lastMapping) {\n        // Associate the remaining code in the current line with \"lastMapping\"\n        addMappingWithCode(lastMapping, shiftNextLine());\n      }\n      // and add the remaining lines without any mapping\n      node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n    }\n\n    // Copy sourcesContent into SourceNode\n    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n      if (content != null) {\n        if (aRelativePath != null) {\n          sourceFile = util.join(aRelativePath, sourceFile);\n        }\n        node.setSourceContent(sourceFile, content);\n      }\n    });\n\n    return node;\n\n    function addMappingWithCode(mapping, code) {\n      if (mapping === null || mapping.source === undefined) {\n        node.add(code);\n      } else {\n        var source = aRelativePath\n          ? util.join(aRelativePath, mapping.source)\n          : mapping.source;\n        node.add(new SourceNode(mapping.originalLine,\n                                mapping.originalColumn,\n                                source,\n                                code,\n                                mapping.name));\n      }\n    }\n  };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n *        SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n  if (Array.isArray(aChunk)) {\n    aChunk.forEach(function (chunk) {\n      this.add(chunk);\n    }, this);\n  }\n  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n    if (aChunk) {\n      this.children.push(aChunk);\n    }\n  }\n  else {\n    throw new TypeError(\n      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n    );\n  }\n  return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n *        SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n  if (Array.isArray(aChunk)) {\n    for (var i = aChunk.length-1; i >= 0; i--) {\n      this.prepend(aChunk[i]);\n    }\n  }\n  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n    this.children.unshift(aChunk);\n  }\n  else {\n    throw new TypeError(\n      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n    );\n  }\n  return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n  var chunk;\n  for (var i = 0, len = this.children.length; i < len; i++) {\n    chunk = this.children[i];\n    if (chunk[isSourceNode]) {\n      chunk.walk(aFn);\n    }\n    else {\n      if (chunk !== '') {\n        aFn(chunk, { source: this.source,\n                     line: this.line,\n                     column: this.column,\n                     name: this.name });\n      }\n    }\n  }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n  var newChildren;\n  var i;\n  var len = this.children.length;\n  if (len > 0) {\n    newChildren = [];\n    for (i = 0; i < len-1; i++) {\n      newChildren.push(this.children[i]);\n      newChildren.push(aSep);\n    }\n    newChildren.push(this.children[i]);\n    this.children = newChildren;\n  }\n  return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n  var lastChild = this.children[this.children.length - 1];\n  if (lastChild[isSourceNode]) {\n    lastChild.replaceRight(aPattern, aReplacement);\n  }\n  else if (typeof lastChild === 'string') {\n    this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n  }\n  else {\n    this.children.push(''.replace(aPattern, aReplacement));\n  }\n  return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n  function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n    this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n  };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n  function SourceNode_walkSourceContents(aFn) {\n    for (var i = 0, len = this.children.length; i < len; i++) {\n      if (this.children[i][isSourceNode]) {\n        this.children[i].walkSourceContents(aFn);\n      }\n    }\n\n    var sources = Object.keys(this.sourceContents);\n    for (var i = 0, len = sources.length; i < len; i++) {\n      aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n    }\n  };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n  var str = \"\";\n  this.walk(function (chunk) {\n    str += chunk;\n  });\n  return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n  var generated = {\n    code: \"\",\n    line: 1,\n    column: 0\n  };\n  var map = new SourceMapGenerator(aArgs);\n  var sourceMappingActive = false;\n  var lastOriginalSource = null;\n  var lastOriginalLine = null;\n  var lastOriginalColumn = null;\n  var lastOriginalName = null;\n  this.walk(function (chunk, original) {\n    generated.code += chunk;\n    if (original.source !== null\n        && original.line !== null\n        && original.column !== null) {\n      if(lastOriginalSource !== original.source\n         || lastOriginalLine !== original.line\n         || lastOriginalColumn !== original.column\n         || lastOriginalName !== original.name) {\n        map.addMapping({\n          source: original.source,\n          original: {\n            line: original.line,\n            column: original.column\n          },\n          generated: {\n            line: generated.line,\n            column: generated.column\n          },\n          name: original.name\n        });\n      }\n      lastOriginalSource = original.source;\n      lastOriginalLine = original.line;\n      lastOriginalColumn = original.column;\n      lastOriginalName = original.name;\n      sourceMappingActive = true;\n    } else if (sourceMappingActive) {\n      map.addMapping({\n        generated: {\n          line: generated.line,\n          column: generated.column\n        }\n      });\n      lastOriginalSource = null;\n      sourceMappingActive = false;\n    }\n    for (var idx = 0, length = chunk.length; idx < length; idx++) {\n      if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n        generated.line++;\n        generated.column = 0;\n        // Mappings end at eol\n        if (idx + 1 === length) {\n          lastOriginalSource = null;\n          sourceMappingActive = false;\n        } else if (sourceMappingActive) {\n          map.addMapping({\n            source: original.source,\n            original: {\n              line: original.line,\n              column: original.column\n            },\n            generated: {\n              line: generated.line,\n              column: generated.column\n            },\n            name: original.name\n          });\n        }\n      } else {\n        generated.column++;\n      }\n    }\n  });\n  this.walkSourceContents(function (sourceFile, sourceContent) {\n    map.setSourceContent(sourceFile, sourceContent);\n  });\n\n  return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/snapdragon/node_modules/source-map/lib/source-node.js?");

/***/ }),

/***/ "./node_modules/snapdragon/node_modules/source-map/lib/util.js":
/*!*********************************************************************!*\
  !*** ./node_modules/snapdragon/node_modules/source-map/lib/util.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

eval("/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n  if (aName in aArgs) {\n    return aArgs[aName];\n  } else if (arguments.length === 3) {\n    return aDefaultValue;\n  } else {\n    throw new Error('\"' + aName + '\" is a required argument.');\n  }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n  var match = aUrl.match(urlRegexp);\n  if (!match) {\n    return null;\n  }\n  return {\n    scheme: match[1],\n    auth: match[2],\n    host: match[3],\n    port: match[4],\n    path: match[5]\n  };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n  var url = '';\n  if (aParsedUrl.scheme) {\n    url += aParsedUrl.scheme + ':';\n  }\n  url += '//';\n  if (aParsedUrl.auth) {\n    url += aParsedUrl.auth + '@';\n  }\n  if (aParsedUrl.host) {\n    url += aParsedUrl.host;\n  }\n  if (aParsedUrl.port) {\n    url += \":\" + aParsedUrl.port\n  }\n  if (aParsedUrl.path) {\n    url += aParsedUrl.path;\n  }\n  return url;\n}\nexports.urlGenerate = urlGenerate;\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '<dir>/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nfunction normalize(aPath) {\n  var path = aPath;\n  var url = urlParse(aPath);\n  if (url) {\n    if (!url.path) {\n      return aPath;\n    }\n    path = url.path;\n  }\n  var isAbsolute = exports.isAbsolute(path);\n\n  var parts = path.split(/\\/+/);\n  for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n    part = parts[i];\n    if (part === '.') {\n      parts.splice(i, 1);\n    } else if (part === '..') {\n      up++;\n    } else if (up > 0) {\n      if (part === '') {\n        // The first part is blank if the path is absolute. Trying to go\n        // above the root is a no-op. Therefore we can remove all '..' parts\n        // directly after the root.\n        parts.splice(i + 1, up);\n        up = 0;\n      } else {\n        parts.splice(i, 2);\n        up--;\n      }\n    }\n  }\n  path = parts.join('/');\n\n  if (path === '') {\n    path = isAbsolute ? '/' : '.';\n  }\n\n  if (url) {\n    url.path = path;\n    return urlGenerate(url);\n  }\n  return path;\n}\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n *   scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n *   first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n *   is updated with the result and aRoot is returned. Otherwise the result\n *   is returned.\n *   - If aPath is absolute, the result is aPath.\n *   - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n  if (aRoot === \"\") {\n    aRoot = \".\";\n  }\n  if (aPath === \"\") {\n    aPath = \".\";\n  }\n  var aPathUrl = urlParse(aPath);\n  var aRootUrl = urlParse(aRoot);\n  if (aRootUrl) {\n    aRoot = aRootUrl.path || '/';\n  }\n\n  // `join(foo, '//www.example.org')`\n  if (aPathUrl && !aPathUrl.scheme) {\n    if (aRootUrl) {\n      aPathUrl.scheme = aRootUrl.scheme;\n    }\n    return urlGenerate(aPathUrl);\n  }\n\n  if (aPathUrl || aPath.match(dataUrlRegexp)) {\n    return aPath;\n  }\n\n  // `join('http://', 'www.example.com')`\n  if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n    aRootUrl.host = aPath;\n    return urlGenerate(aRootUrl);\n  }\n\n  var joined = aPath.charAt(0) === '/'\n    ? aPath\n    : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n  if (aRootUrl) {\n    aRootUrl.path = joined;\n    return urlGenerate(aRootUrl);\n  }\n  return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n  return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n  if (aRoot === \"\") {\n    aRoot = \".\";\n  }\n\n  aRoot = aRoot.replace(/\\/$/, '');\n\n  // It is possible for the path to be above the root. In this case, simply\n  // checking whether the root is a prefix of the path won't work. Instead, we\n  // need to remove components from the root one by one, until either we find\n  // a prefix that fits, or we run out of components to remove.\n  var level = 0;\n  while (aPath.indexOf(aRoot + '/') !== 0) {\n    var index = aRoot.lastIndexOf(\"/\");\n    if (index < 0) {\n      return aPath;\n    }\n\n    // If the only part of the root that is left is the scheme (i.e. http://,\n    // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n    // have exhausted all components, so the path is not relative to the root.\n    aRoot = aRoot.slice(0, index);\n    if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n      return aPath;\n    }\n\n    ++level;\n  }\n\n  // Make sure we add a \"../\" for each component we removed from the root.\n  return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n  var obj = Object.create(null);\n  return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n  return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n  if (isProtoString(aStr)) {\n    return '$' + aStr;\n  }\n\n  return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n  if (isProtoString(aStr)) {\n    return aStr.slice(1);\n  }\n\n  return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n  if (!s) {\n    return false;\n  }\n\n  var length = s.length;\n\n  if (length < 9 /* \"__proto__\".length */) {\n    return false;\n  }\n\n  if (s.charCodeAt(length - 1) !== 95  /* '_' */ ||\n      s.charCodeAt(length - 2) !== 95  /* '_' */ ||\n      s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n      s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n      s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n      s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n      s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n      s.charCodeAt(length - 8) !== 95  /* '_' */ ||\n      s.charCodeAt(length - 9) !== 95  /* '_' */) {\n    return false;\n  }\n\n  for (var i = length - 10; i >= 0; i--) {\n    if (s.charCodeAt(i) !== 36 /* '$' */) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n  var cmp = mappingA.source - mappingB.source;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalLine - mappingB.originalLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalColumn - mappingB.originalColumn;\n  if (cmp !== 0 || onlyCompareOriginal) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedLine - mappingB.generatedLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  return mappingA.name - mappingB.name;\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n  if (cmp !== 0 || onlyCompareGenerated) {\n    return cmp;\n  }\n\n  cmp = mappingA.source - mappingB.source;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalLine - mappingB.originalLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalColumn - mappingB.originalColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  return mappingA.name - mappingB.name;\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction strcmp(aStr1, aStr2) {\n  if (aStr1 === aStr2) {\n    return 0;\n  }\n\n  if (aStr1 > aStr2) {\n    return 1;\n  }\n\n  return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = strcmp(mappingA.source, mappingB.source);\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalLine - mappingB.originalLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalColumn - mappingB.originalColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/snapdragon/node_modules/source-map/lib/util.js?");

/***/ }),

/***/ "./node_modules/snapdragon/node_modules/source-map/source-map.js":
/*!***********************************************************************!*\
  !*** ./node_modules/snapdragon/node_modules/source-map/source-map.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = __webpack_require__(/*! ./lib/source-map-generator */ \"./node_modules/snapdragon/node_modules/source-map/lib/source-map-generator.js\").SourceMapGenerator;\nexports.SourceMapConsumer = __webpack_require__(/*! ./lib/source-map-consumer */ \"./node_modules/snapdragon/node_modules/source-map/lib/source-map-consumer.js\").SourceMapConsumer;\nexports.SourceNode = __webpack_require__(/*! ./lib/source-node */ \"./node_modules/snapdragon/node_modules/source-map/lib/source-node.js\").SourceNode;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/snapdragon/node_modules/source-map/source-map.js?");

/***/ }),

/***/ "./node_modules/source-map-resolve/lib/decode-uri-component.js":
/*!*********************************************************************!*\
  !*** ./node_modules/source-map-resolve/lib/decode-uri-component.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var decodeUriComponent = __webpack_require__(/*! decode-uri-component */ \"./node_modules/decode-uri-component/index.js\")\n\nfunction customDecodeUriComponent(string) {\n  // `decodeUriComponent` turns `+` into ` `, but that's not wanted.\n  return decodeUriComponent(string.replace(/\\+/g, \"%2B\"))\n}\n\nmodule.exports = customDecodeUriComponent\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/source-map-resolve/lib/decode-uri-component.js?");

/***/ }),

/***/ "./node_modules/source-map-resolve/lib/resolve-url.js":
/*!************************************************************!*\
  !*** ./node_modules/source-map-resolve/lib/resolve-url.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var url = __webpack_require__(/*! url */ \"url\")\n\nfunction resolveUrl(/* ...urls */) {\n  return Array.prototype.reduce.call(arguments, function(resolved, nextUrl) {\n    return url.resolve(resolved, nextUrl)\n  })\n}\n\nmodule.exports = resolveUrl\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/source-map-resolve/lib/resolve-url.js?");

/***/ }),

/***/ "./node_modules/source-map-resolve/lib/source-map-resolve-node.js":
/*!************************************************************************!*\
  !*** ./node_modules/source-map-resolve/lib/source-map-resolve-node.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var sourceMappingURL   = __webpack_require__(/*! source-map-url */ \"./node_modules/source-map-url/source-map-url.js\")\n\nvar resolveUrl         = __webpack_require__(/*! ./resolve-url */ \"./node_modules/source-map-resolve/lib/resolve-url.js\")\nvar decodeUriComponent = __webpack_require__(/*! ./decode-uri-component */ \"./node_modules/source-map-resolve/lib/decode-uri-component.js\")\nvar urix               = __webpack_require__(/*! urix */ \"./node_modules/urix/index.js\")\nvar atob               = __webpack_require__(/*! atob */ \"./node_modules/atob/node-atob.js\")\n\n\n\nfunction callbackAsync(callback, error, result) {\n  setImmediate(function() { callback(error, result) })\n}\n\nfunction parseMapToJSON(string, data) {\n  try {\n    return JSON.parse(string.replace(/^\\)\\]\\}'/, \"\"))\n  } catch (error) {\n    error.sourceMapData = data\n    throw error\n  }\n}\n\nfunction readSync(read, url, data) {\n  var readUrl = decodeUriComponent(url)\n  try {\n    return String(read(readUrl))\n  } catch (error) {\n    error.sourceMapData = data\n    throw error\n  }\n}\n\n\n\nfunction resolveSourceMap(code, codeUrl, read, callback) {\n  var mapData\n  try {\n    mapData = resolveSourceMapHelper(code, codeUrl)\n  } catch (error) {\n    return callbackAsync(callback, error)\n  }\n  if (!mapData || mapData.map) {\n    return callbackAsync(callback, null, mapData)\n  }\n  var readUrl = decodeUriComponent(mapData.url)\n  read(readUrl, function(error, result) {\n    if (error) {\n      error.sourceMapData = mapData\n      return callback(error)\n    }\n    mapData.map = String(result)\n    try {\n      mapData.map = parseMapToJSON(mapData.map, mapData)\n    } catch (error) {\n      return callback(error)\n    }\n    callback(null, mapData)\n  })\n}\n\nfunction resolveSourceMapSync(code, codeUrl, read) {\n  var mapData = resolveSourceMapHelper(code, codeUrl)\n  if (!mapData || mapData.map) {\n    return mapData\n  }\n  mapData.map = readSync(read, mapData.url, mapData)\n  mapData.map = parseMapToJSON(mapData.map, mapData)\n  return mapData\n}\n\nvar dataUriRegex = /^data:([^,;]*)(;[^,;]*)*(?:,(.*))?$/\n\n/**\n * The media type for JSON text is application/json.\n *\n * {@link https://tools.ietf.org/html/rfc8259#section-11 | IANA Considerations }\n *\n * `text/json` is non-standard media type\n */\nvar jsonMimeTypeRegex = /^(?:application|text)\\/json$/\n\n/**\n * JSON text exchanged between systems that are not part of a closed ecosystem\n * MUST be encoded using UTF-8.\n *\n * {@link https://tools.ietf.org/html/rfc8259#section-8.1 | Character Encoding}\n */\nvar jsonCharacterEncoding = \"utf-8\"\n\nfunction base64ToBuf(b64) {\n  var binStr = atob(b64)\n  var len = binStr.length\n  var arr = new Uint8Array(len)\n  for (var i = 0; i < len; i++) {\n    arr[i] = binStr.charCodeAt(i)\n  }\n  return arr\n}\n\nfunction decodeBase64String(b64) {\n  if (typeof TextDecoder === \"undefined\" || typeof Uint8Array === \"undefined\") {\n    return atob(b64)\n  }\n  var buf = base64ToBuf(b64);\n  // Note: `decoder.decode` method will throw a `DOMException` with the\n  // `\"EncodingError\"` value when an coding error is found.\n  var decoder = new TextDecoder(jsonCharacterEncoding, {fatal: true})\n  return decoder.decode(buf);\n}\n\nfunction resolveSourceMapHelper(code, codeUrl) {\n  codeUrl = urix(codeUrl)\n\n  var url = sourceMappingURL.getFrom(code)\n  if (!url) {\n    return null\n  }\n\n  var dataUri = url.match(dataUriRegex)\n  if (dataUri) {\n    var mimeType = dataUri[1] || \"text/plain\"\n    var lastParameter = dataUri[2] || \"\"\n    var encoded = dataUri[3] || \"\"\n    var data = {\n      sourceMappingURL: url,\n      url: null,\n      sourcesRelativeTo: codeUrl,\n      map: encoded\n    }\n    if (!jsonMimeTypeRegex.test(mimeType)) {\n      var error = new Error(\"Unuseful data uri mime type: \" + mimeType)\n      error.sourceMapData = data\n      throw error\n    }\n    try {\n      data.map = parseMapToJSON(\n        lastParameter === \";base64\" ? decodeBase64String(encoded) : decodeURIComponent(encoded),\n        data\n      )\n    } catch (error) {\n      error.sourceMapData = data\n      throw error\n    }\n    return data\n  }\n\n  var mapUrl = resolveUrl(codeUrl, url)\n  return {\n    sourceMappingURL: url,\n    url: mapUrl,\n    sourcesRelativeTo: mapUrl,\n    map: null\n  }\n}\n\n\n\nfunction resolveSources(map, mapUrl, read, options, callback) {\n  if (typeof options === \"function\") {\n    callback = options\n    options = {}\n  }\n  var pending = map.sources ? map.sources.length : 0\n  var result = {\n    sourcesResolved: [],\n    sourcesContent:  []\n  }\n\n  if (pending === 0) {\n    callbackAsync(callback, null, result)\n    return\n  }\n\n  var done = function() {\n    pending--\n    if (pending === 0) {\n      callback(null, result)\n    }\n  }\n\n  resolveSourcesHelper(map, mapUrl, options, function(fullUrl, sourceContent, index) {\n    result.sourcesResolved[index] = fullUrl\n    if (typeof sourceContent === \"string\") {\n      result.sourcesContent[index] = sourceContent\n      callbackAsync(done, null)\n    } else {\n      var readUrl = decodeUriComponent(fullUrl)\n      read(readUrl, function(error, source) {\n        result.sourcesContent[index] = error ? error : String(source)\n        done()\n      })\n    }\n  })\n}\n\nfunction resolveSourcesSync(map, mapUrl, read, options) {\n  var result = {\n    sourcesResolved: [],\n    sourcesContent:  []\n  }\n\n  if (!map.sources || map.sources.length === 0) {\n    return result\n  }\n\n  resolveSourcesHelper(map, mapUrl, options, function(fullUrl, sourceContent, index) {\n    result.sourcesResolved[index] = fullUrl\n    if (read !== null) {\n      if (typeof sourceContent === \"string\") {\n        result.sourcesContent[index] = sourceContent\n      } else {\n        var readUrl = decodeUriComponent(fullUrl)\n        try {\n          result.sourcesContent[index] = String(read(readUrl))\n        } catch (error) {\n          result.sourcesContent[index] = error\n        }\n      }\n    }\n  })\n\n  return result\n}\n\nvar endingSlash = /\\/?$/\n\nfunction resolveSourcesHelper(map, mapUrl, options, fn) {\n  options = options || {}\n  mapUrl = urix(mapUrl)\n  var fullUrl\n  var sourceContent\n  var sourceRoot\n  for (var index = 0, len = map.sources.length; index < len; index++) {\n    sourceRoot = null\n    if (typeof options.sourceRoot === \"string\") {\n      sourceRoot = options.sourceRoot\n    } else if (typeof map.sourceRoot === \"string\" && options.sourceRoot !== false) {\n      sourceRoot = map.sourceRoot\n    }\n    // If the sourceRoot is the empty string, it is equivalent to not setting\n    // the property at all.\n    if (sourceRoot === null || sourceRoot === '') {\n      fullUrl = resolveUrl(mapUrl, map.sources[index])\n    } else {\n      // Make sure that the sourceRoot ends with a slash, so that `/scripts/subdir` becomes\n      // `/scripts/subdir/<source>`, not `/scripts/<source>`. Pointing to a file as source root\n      // does not make sense.\n      fullUrl = resolveUrl(mapUrl, sourceRoot.replace(endingSlash, \"/\"), map.sources[index])\n    }\n    sourceContent = (map.sourcesContent || [])[index]\n    fn(fullUrl, sourceContent, index)\n  }\n}\n\n\n\nfunction resolve(code, codeUrl, read, options, callback) {\n  if (typeof options === \"function\") {\n    callback = options\n    options = {}\n  }\n  if (code === null) {\n    var mapUrl = codeUrl\n    var data = {\n      sourceMappingURL: null,\n      url: mapUrl,\n      sourcesRelativeTo: mapUrl,\n      map: null\n    }\n    var readUrl = decodeUriComponent(mapUrl)\n    read(readUrl, function(error, result) {\n      if (error) {\n        error.sourceMapData = data\n        return callback(error)\n      }\n      data.map = String(result)\n      try {\n        data.map = parseMapToJSON(data.map, data)\n      } catch (error) {\n        return callback(error)\n      }\n      _resolveSources(data)\n    })\n  } else {\n    resolveSourceMap(code, codeUrl, read, function(error, mapData) {\n      if (error) {\n        return callback(error)\n      }\n      if (!mapData) {\n        return callback(null, null)\n      }\n      _resolveSources(mapData)\n    })\n  }\n\n  function _resolveSources(mapData) {\n    resolveSources(mapData.map, mapData.sourcesRelativeTo, read, options, function(error, result) {\n      if (error) {\n        return callback(error)\n      }\n      mapData.sourcesResolved = result.sourcesResolved\n      mapData.sourcesContent  = result.sourcesContent\n      callback(null, mapData)\n    })\n  }\n}\n\nfunction resolveSync(code, codeUrl, read, options) {\n  var mapData\n  if (code === null) {\n    var mapUrl = codeUrl\n    mapData = {\n      sourceMappingURL: null,\n      url: mapUrl,\n      sourcesRelativeTo: mapUrl,\n      map: null\n    }\n    mapData.map = readSync(read, mapUrl, mapData)\n    mapData.map = parseMapToJSON(mapData.map, mapData)\n  } else {\n    mapData = resolveSourceMapSync(code, codeUrl, read)\n    if (!mapData) {\n      return null\n    }\n  }\n  var result = resolveSourcesSync(mapData.map, mapData.sourcesRelativeTo, read, options)\n  mapData.sourcesResolved = result.sourcesResolved\n  mapData.sourcesContent  = result.sourcesContent\n  return mapData\n}\n\n\n\nmodule.exports = {\n  resolveSourceMap:     resolveSourceMap,\n  resolveSourceMapSync: resolveSourceMapSync,\n  resolveSources:       resolveSources,\n  resolveSourcesSync:   resolveSourcesSync,\n  resolve:              resolve,\n  resolveSync:          resolveSync,\n  parseMapToJSON:       parseMapToJSON\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/source-map-resolve/lib/source-map-resolve-node.js?");

/***/ }),

/***/ "./node_modules/source-map-url/source-map-url.js":
/*!*******************************************************!*\
  !*** ./node_modules/source-map-url/source-map-url.js ***!
  \*******************************************************/
/***/ (function(module, exports, __webpack_require__) {

eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;// Copyright 2014 Simon Lydell\n// X11 (“MIT”) Licensed. (See LICENSE.)\n\nvoid (function(root, factory) {\n  if (true) {\n    !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))\n  } else {}\n}(this, function() {\n\n  var innerRegex = /[#@] sourceMappingURL=([^\\s'\"]*)/\n\n  var regex = RegExp(\n    \"(?:\" +\n      \"/\\\\*\" +\n      \"(?:\\\\s*\\r?\\n(?://)?)?\" +\n      \"(?:\" + innerRegex.source + \")\" +\n      \"\\\\s*\" +\n      \"\\\\*/\" +\n      \"|\" +\n      \"//(?:\" + innerRegex.source + \")\" +\n    \")\" +\n    \"\\\\s*\"\n  )\n\n  return {\n\n    regex: regex,\n    _innerRegex: innerRegex,\n\n    getFrom: function(code) {\n      var match = code.match(regex)\n      return (match ? match[1] || match[2] || \"\" : null)\n    },\n\n    existsIn: function(code) {\n      return regex.test(code)\n    },\n\n    removeFrom: function(code) {\n      return code.replace(regex, \"\")\n    },\n\n    insertBefore: function(code, string) {\n      var match = code.match(regex)\n      if (match) {\n        return code.slice(0, match.index) + string + code.slice(match.index)\n      } else {\n        return code + string\n      }\n    }\n  }\n\n}));\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/source-map-url/source-map-url.js?");

/***/ }),

/***/ "./node_modules/split-string/index.js":
/*!********************************************!*\
  !*** ./node_modules/split-string/index.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * split-string <https://github.com/jonschlinkert/split-string>\n *\n * Copyright (c) 2015-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar extend = __webpack_require__(/*! extend-shallow */ \"./node_modules/split-string/node_modules/extend-shallow/index.js\");\n\nmodule.exports = function(str, options, fn) {\n  if (typeof str !== 'string') {\n    throw new TypeError('expected a string');\n  }\n\n  if (typeof options === 'function') {\n    fn = options;\n    options = null;\n  }\n\n  // allow separator to be defined as a string\n  if (typeof options === 'string') {\n    options = { sep: options };\n  }\n\n  var opts = extend({sep: '.'}, options);\n  var quotes = opts.quotes || ['\"', \"'\", '`'];\n  var brackets;\n\n  if (opts.brackets === true) {\n    brackets = {\n      '<': '>',\n      '(': ')',\n      '[': ']',\n      '{': '}'\n    };\n  } else if (opts.brackets) {\n    brackets = opts.brackets;\n  }\n\n  var tokens = [];\n  var stack = [];\n  var arr = [''];\n  var sep = opts.sep;\n  var len = str.length;\n  var idx = -1;\n  var closeIdx;\n\n  function expected() {\n    if (brackets && stack.length) {\n      return brackets[stack[stack.length - 1]];\n    }\n  }\n\n  while (++idx < len) {\n    var ch = str[idx];\n    var next = str[idx + 1];\n    var tok = { val: ch, idx: idx, arr: arr, str: str };\n    tokens.push(tok);\n\n    if (ch === '\\\\') {\n      tok.val = keepEscaping(opts, str, idx) === true ? (ch + next) : next;\n      tok.escaped = true;\n      if (typeof fn === 'function') {\n        fn(tok);\n      }\n      arr[arr.length - 1] += tok.val;\n      idx++;\n      continue;\n    }\n\n    if (brackets && brackets[ch]) {\n      stack.push(ch);\n      var e = expected();\n      var i = idx + 1;\n\n      if (str.indexOf(e, i + 1) !== -1) {\n        while (stack.length && i < len) {\n          var s = str[++i];\n          if (s === '\\\\') {\n            s++;\n            continue;\n          }\n\n          if (quotes.indexOf(s) !== -1) {\n            i = getClosingQuote(str, s, i + 1);\n            continue;\n          }\n\n          e = expected();\n          if (stack.length && str.indexOf(e, i + 1) === -1) {\n            break;\n          }\n\n          if (brackets[s]) {\n            stack.push(s);\n            continue;\n          }\n\n          if (e === s) {\n            stack.pop();\n          }\n        }\n      }\n\n      closeIdx = i;\n      if (closeIdx === -1) {\n        arr[arr.length - 1] += ch;\n        continue;\n      }\n\n      ch = str.slice(idx, closeIdx + 1);\n      tok.val = ch;\n      tok.idx = idx = closeIdx;\n    }\n\n    if (quotes.indexOf(ch) !== -1) {\n      closeIdx = getClosingQuote(str, ch, idx + 1);\n      if (closeIdx === -1) {\n        arr[arr.length - 1] += ch;\n        continue;\n      }\n\n      if (keepQuotes(ch, opts) === true) {\n        ch = str.slice(idx, closeIdx + 1);\n      } else {\n        ch = str.slice(idx + 1, closeIdx);\n      }\n\n      tok.val = ch;\n      tok.idx = idx = closeIdx;\n    }\n\n    if (typeof fn === 'function') {\n      fn(tok, tokens);\n      ch = tok.val;\n      idx = tok.idx;\n    }\n\n    if (tok.val === sep && tok.split !== false) {\n      arr.push('');\n      continue;\n    }\n\n    arr[arr.length - 1] += tok.val;\n  }\n\n  return arr;\n};\n\nfunction getClosingQuote(str, ch, i, brackets) {\n  var idx = str.indexOf(ch, i);\n  if (str.charAt(idx - 1) === '\\\\') {\n    return getClosingQuote(str, ch, idx + 1);\n  }\n  return idx;\n}\n\nfunction keepQuotes(ch, opts) {\n  if (opts.keepDoubleQuotes === true && ch === '\"') return true;\n  if (opts.keepSingleQuotes === true && ch === \"'\") return true;\n  return opts.keepQuotes;\n}\n\nfunction keepEscaping(opts, str, idx) {\n  if (typeof opts.keepEscaping === 'function') {\n    return opts.keepEscaping(str, idx);\n  }\n  return opts.keepEscaping === true || str[idx + 1] === '\\\\';\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/split-string/index.js?");

/***/ }),

/***/ "./node_modules/split-string/node_modules/extend-shallow/index.js":
/*!************************************************************************!*\
  !*** ./node_modules/split-string/node_modules/extend-shallow/index.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar isExtendable = __webpack_require__(/*! is-extendable */ \"./node_modules/split-string/node_modules/is-extendable/index.js\");\nvar assignSymbols = __webpack_require__(/*! assign-symbols */ \"./node_modules/assign-symbols/index.js\");\n\nmodule.exports = Object.assign || function(obj/*, objects*/) {\n  if (obj === null || typeof obj === 'undefined') {\n    throw new TypeError('Cannot convert undefined or null to object');\n  }\n  if (!isObject(obj)) {\n    obj = {};\n  }\n  for (var i = 1; i < arguments.length; i++) {\n    var val = arguments[i];\n    if (isString(val)) {\n      val = toObject(val);\n    }\n    if (isObject(val)) {\n      assign(obj, val);\n      assignSymbols(obj, val);\n    }\n  }\n  return obj;\n};\n\nfunction assign(a, b) {\n  for (var key in b) {\n    if (hasOwn(b, key)) {\n      a[key] = b[key];\n    }\n  }\n}\n\nfunction isString(val) {\n  return (val && typeof val === 'string');\n}\n\nfunction toObject(str) {\n  var obj = {};\n  for (var i in str) {\n    obj[i] = str[i];\n  }\n  return obj;\n}\n\nfunction isObject(val) {\n  return (val && typeof val === 'object') || isExtendable(val);\n}\n\n/**\n * Returns true if the given `key` is an own property of `obj`.\n */\n\nfunction hasOwn(obj, key) {\n  return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nfunction isEnum(obj, key) {\n  return Object.prototype.propertyIsEnumerable.call(obj, key);\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/split-string/node_modules/extend-shallow/index.js?");

/***/ }),

/***/ "./node_modules/split-string/node_modules/is-extendable/index.js":
/*!***********************************************************************!*\
  !*** ./node_modules/split-string/node_modules/is-extendable/index.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * is-extendable <https://github.com/jonschlinkert/is-extendable>\n *\n * Copyright (c) 2015-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar isPlainObject = __webpack_require__(/*! is-plain-object */ \"./node_modules/is-plain-object/index.js\");\n\nmodule.exports = function isExtendable(val) {\n  return isPlainObject(val) || typeof val === 'function' || Array.isArray(val);\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/split-string/node_modules/is-extendable/index.js?");

/***/ }),

/***/ "./node_modules/static-extend/index.js":
/*!*********************************************!*\
  !*** ./node_modules/static-extend/index.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * static-extend <https://github.com/jonschlinkert/static-extend>\n *\n * Copyright (c) 2016, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n\n\nvar copy = __webpack_require__(/*! object-copy */ \"./node_modules/object-copy/index.js\");\nvar define = __webpack_require__(/*! define-property */ \"./node_modules/define-property/index.js\");\nvar util = __webpack_require__(/*! util */ \"util\");\n\n/**\n * Returns a function for extending the static properties,\n * prototype properties, and descriptors from the `Parent`\n * constructor onto `Child` constructors.\n *\n * ```js\n * var extend = require('static-extend');\n * Parent.extend = extend(Parent);\n *\n * // optionally pass a custom merge function as the second arg\n * Parent.extend = extend(Parent, function(Child) {\n *   Child.prototype.mixin = function(key, val) {\n *     Child.prototype[key] = val;\n *   };\n * });\n *\n * // extend \"child\" constructors\n * Parent.extend(Child);\n *\n * // optionally define prototype methods as the second arg\n * Parent.extend(Child, {\n *   foo: function() {},\n *   bar: function() {}\n * });\n * ```\n * @param {Function} `Parent` Parent ctor\n * @param {Function} `extendFn` Optional extend function for handling any necessary custom merging. Useful when updating methods that require a specific prototype.\n *   @param {Function} `Child` Child ctor\n *   @param {Object} `proto` Optionally pass additional prototype properties to inherit.\n *   @return {Object}\n * @api public\n */\n\nfunction extend(Parent, extendFn) {\n  if (typeof Parent !== 'function') {\n    throw new TypeError('expected Parent to be a function.');\n  }\n\n  return function(Ctor, proto) {\n    if (typeof Ctor !== 'function') {\n      throw new TypeError('expected Ctor to be a function.');\n    }\n\n    util.inherits(Ctor, Parent);\n    copy(Ctor, Parent);\n\n    // proto can be null or a plain object\n    if (typeof proto === 'object') {\n      var obj = Object.create(proto);\n\n      for (var k in obj) {\n        Ctor.prototype[k] = obj[k];\n      }\n    }\n\n    // keep a reference to the parent prototype\n    define(Ctor.prototype, '_parent_', {\n      configurable: true,\n      set: function() {},\n      get: function() {\n        return Parent.prototype;\n      }\n    });\n\n    if (typeof extendFn === 'function') {\n      extendFn(Ctor, Parent);\n    }\n\n    Ctor.extend = extend(Ctor, extendFn);\n  };\n};\n\n/**\n * Expose `extend`\n */\n\nmodule.exports = extend;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/static-extend/index.js?");

/***/ }),

/***/ "./node_modules/string_decoder/lib/string_decoder.js":
/*!***********************************************************!*\
  !*** ./node_modules/string_decoder/lib/string_decoder.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\n/*<replacement>*/\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n/*</replacement>*/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n  encoding = '' + encoding;\n  switch (encoding && encoding.toLowerCase()) {\n    case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n      return true;\n    default:\n      return false;\n  }\n};\n\nfunction _normalizeEncoding(enc) {\n  if (!enc) return 'utf8';\n  var retried;\n  while (true) {\n    switch (enc) {\n      case 'utf8':\n      case 'utf-8':\n        return 'utf8';\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return 'utf16le';\n      case 'latin1':\n      case 'binary':\n        return 'latin1';\n      case 'base64':\n      case 'ascii':\n      case 'hex':\n        return enc;\n      default:\n        if (retried) return; // undefined\n        enc = ('' + enc).toLowerCase();\n        retried = true;\n    }\n  }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n  var nenc = _normalizeEncoding(enc);\n  if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n  return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n  this.encoding = normalizeEncoding(encoding);\n  var nb;\n  switch (this.encoding) {\n    case 'utf16le':\n      this.text = utf16Text;\n      this.end = utf16End;\n      nb = 4;\n      break;\n    case 'utf8':\n      this.fillLast = utf8FillLast;\n      nb = 4;\n      break;\n    case 'base64':\n      this.text = base64Text;\n      this.end = base64End;\n      nb = 3;\n      break;\n    default:\n      this.write = simpleWrite;\n      this.end = simpleEnd;\n      return;\n  }\n  this.lastNeed = 0;\n  this.lastTotal = 0;\n  this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n  if (buf.length === 0) return '';\n  var r;\n  var i;\n  if (this.lastNeed) {\n    r = this.fillLast(buf);\n    if (r === undefined) return '';\n    i = this.lastNeed;\n    this.lastNeed = 0;\n  } else {\n    i = 0;\n  }\n  if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n  return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n  if (this.lastNeed <= buf.length) {\n    buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n    return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n  }\n  buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n  this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n  if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n  return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n  var j = buf.length - 1;\n  if (j < i) return 0;\n  var nb = utf8CheckByte(buf[j]);\n  if (nb >= 0) {\n    if (nb > 0) self.lastNeed = nb - 1;\n    return nb;\n  }\n  if (--j < i || nb === -2) return 0;\n  nb = utf8CheckByte(buf[j]);\n  if (nb >= 0) {\n    if (nb > 0) self.lastNeed = nb - 2;\n    return nb;\n  }\n  if (--j < i || nb === -2) return 0;\n  nb = utf8CheckByte(buf[j]);\n  if (nb >= 0) {\n    if (nb > 0) {\n      if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n    }\n    return nb;\n  }\n  return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n  if ((buf[0] & 0xC0) !== 0x80) {\n    self.lastNeed = 0;\n    return '\\ufffd';\n  }\n  if (self.lastNeed > 1 && buf.length > 1) {\n    if ((buf[1] & 0xC0) !== 0x80) {\n      self.lastNeed = 1;\n      return '\\ufffd';\n    }\n    if (self.lastNeed > 2 && buf.length > 2) {\n      if ((buf[2] & 0xC0) !== 0x80) {\n        self.lastNeed = 2;\n        return '\\ufffd';\n      }\n    }\n  }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n  var p = this.lastTotal - this.lastNeed;\n  var r = utf8CheckExtraBytes(this, buf, p);\n  if (r !== undefined) return r;\n  if (this.lastNeed <= buf.length) {\n    buf.copy(this.lastChar, p, 0, this.lastNeed);\n    return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n  }\n  buf.copy(this.lastChar, p, 0, buf.length);\n  this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n  var total = utf8CheckIncomplete(this, buf, i);\n  if (!this.lastNeed) return buf.toString('utf8', i);\n  this.lastTotal = total;\n  var end = buf.length - (total - this.lastNeed);\n  buf.copy(this.lastChar, 0, end);\n  return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n  var r = buf && buf.length ? this.write(buf) : '';\n  if (this.lastNeed) return r + '\\ufffd';\n  return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n  if ((buf.length - i) % 2 === 0) {\n    var r = buf.toString('utf16le', i);\n    if (r) {\n      var c = r.charCodeAt(r.length - 1);\n      if (c >= 0xD800 && c <= 0xDBFF) {\n        this.lastNeed = 2;\n        this.lastTotal = 4;\n        this.lastChar[0] = buf[buf.length - 2];\n        this.lastChar[1] = buf[buf.length - 1];\n        return r.slice(0, -1);\n      }\n    }\n    return r;\n  }\n  this.lastNeed = 1;\n  this.lastTotal = 2;\n  this.lastChar[0] = buf[buf.length - 1];\n  return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n  var r = buf && buf.length ? this.write(buf) : '';\n  if (this.lastNeed) {\n    var end = this.lastTotal - this.lastNeed;\n    return r + this.lastChar.toString('utf16le', 0, end);\n  }\n  return r;\n}\n\nfunction base64Text(buf, i) {\n  var n = (buf.length - i) % 3;\n  if (n === 0) return buf.toString('base64', i);\n  this.lastNeed = 3 - n;\n  this.lastTotal = 3;\n  if (n === 1) {\n    this.lastChar[0] = buf[buf.length - 1];\n  } else {\n    this.lastChar[0] = buf[buf.length - 2];\n    this.lastChar[1] = buf[buf.length - 1];\n  }\n  return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n  var r = buf && buf.length ? this.write(buf) : '';\n  if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n  return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n  return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n  return buf && buf.length ? this.write(buf) : '';\n}\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/string_decoder/lib/string_decoder.js?");

/***/ }),

/***/ "./node_modules/to-object-path/index.js":
/*!**********************************************!*\
  !*** ./node_modules/to-object-path/index.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * to-object-path <https://github.com/jonschlinkert/to-object-path>\n *\n * Copyright (c) 2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n\n\nvar typeOf = __webpack_require__(/*! kind-of */ \"./node_modules/to-object-path/node_modules/kind-of/index.js\");\n\nmodule.exports = function toPath(args) {\n  if (typeOf(args) !== 'arguments') {\n    args = arguments;\n  }\n  return filter(args).join('.');\n};\n\nfunction filter(arr) {\n  var len = arr.length;\n  var idx = -1;\n  var res = [];\n\n  while (++idx < len) {\n    var ele = arr[idx];\n    if (typeOf(ele) === 'arguments' || Array.isArray(ele)) {\n      res.push.apply(res, filter(ele));\n    } else if (typeof ele === 'string') {\n      res.push(ele);\n    }\n  }\n  return res;\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/to-object-path/index.js?");

/***/ }),

/***/ "./node_modules/to-object-path/node_modules/kind-of/index.js":
/*!*******************************************************************!*\
  !*** ./node_modules/to-object-path/node_modules/kind-of/index.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var isBuffer = __webpack_require__(/*! is-buffer */ \"./node_modules/is-buffer/index.js\");\nvar toString = Object.prototype.toString;\n\n/**\n * Get the native `typeof` a value.\n *\n * @param  {*} `val`\n * @return {*} Native javascript type\n */\n\nmodule.exports = function kindOf(val) {\n  // primitivies\n  if (typeof val === 'undefined') {\n    return 'undefined';\n  }\n  if (val === null) {\n    return 'null';\n  }\n  if (val === true || val === false || val instanceof Boolean) {\n    return 'boolean';\n  }\n  if (typeof val === 'string' || val instanceof String) {\n    return 'string';\n  }\n  if (typeof val === 'number' || val instanceof Number) {\n    return 'number';\n  }\n\n  // functions\n  if (typeof val === 'function' || val instanceof Function) {\n    return 'function';\n  }\n\n  // array\n  if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) {\n    return 'array';\n  }\n\n  // check for instances of RegExp and Date before calling `toString`\n  if (val instanceof RegExp) {\n    return 'regexp';\n  }\n  if (val instanceof Date) {\n    return 'date';\n  }\n\n  // other objects\n  var type = toString.call(val);\n\n  if (type === '[object RegExp]') {\n    return 'regexp';\n  }\n  if (type === '[object Date]') {\n    return 'date';\n  }\n  if (type === '[object Arguments]') {\n    return 'arguments';\n  }\n  if (type === '[object Error]') {\n    return 'error';\n  }\n\n  // buffer\n  if (isBuffer(val)) {\n    return 'buffer';\n  }\n\n  // es6: Map, WeakMap, Set, WeakSet\n  if (type === '[object Set]') {\n    return 'set';\n  }\n  if (type === '[object WeakSet]') {\n    return 'weakset';\n  }\n  if (type === '[object Map]') {\n    return 'map';\n  }\n  if (type === '[object WeakMap]') {\n    return 'weakmap';\n  }\n  if (type === '[object Symbol]') {\n    return 'symbol';\n  }\n\n  // typed arrays\n  if (type === '[object Int8Array]') {\n    return 'int8array';\n  }\n  if (type === '[object Uint8Array]') {\n    return 'uint8array';\n  }\n  if (type === '[object Uint8ClampedArray]') {\n    return 'uint8clampedarray';\n  }\n  if (type === '[object Int16Array]') {\n    return 'int16array';\n  }\n  if (type === '[object Uint16Array]') {\n    return 'uint16array';\n  }\n  if (type === '[object Int32Array]') {\n    return 'int32array';\n  }\n  if (type === '[object Uint32Array]') {\n    return 'uint32array';\n  }\n  if (type === '[object Float32Array]') {\n    return 'float32array';\n  }\n  if (type === '[object Float64Array]') {\n    return 'float64array';\n  }\n\n  // must be a plain object\n  return 'object';\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/to-object-path/node_modules/kind-of/index.js?");

/***/ }),

/***/ "./node_modules/to-regex-range/index.js":
/*!**********************************************!*\
  !*** ./node_modules/to-regex-range/index.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * to-regex-range <https://github.com/jonschlinkert/to-regex-range>\n *\n * Copyright (c) 2015, 2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar repeat = __webpack_require__(/*! repeat-string */ \"./node_modules/repeat-string/index.js\");\nvar isNumber = __webpack_require__(/*! is-number */ \"./node_modules/is-number/index.js\");\nvar cache = {};\n\nfunction toRegexRange(min, max, options) {\n  if (isNumber(min) === false) {\n    throw new RangeError('toRegexRange: first argument is invalid.');\n  }\n\n  if (typeof max === 'undefined' || min === max) {\n    return String(min);\n  }\n\n  if (isNumber(max) === false) {\n    throw new RangeError('toRegexRange: second argument is invalid.');\n  }\n\n  options = options || {};\n  var relax = String(options.relaxZeros);\n  var shorthand = String(options.shorthand);\n  var capture = String(options.capture);\n  var key = min + ':' + max + '=' + relax + shorthand + capture;\n  if (cache.hasOwnProperty(key)) {\n    return cache[key].result;\n  }\n\n  var a = Math.min(min, max);\n  var b = Math.max(min, max);\n\n  if (Math.abs(a - b) === 1) {\n    var result = min + '|' + max;\n    if (options.capture) {\n      return '(' + result + ')';\n    }\n    return result;\n  }\n\n  var isPadded = padding(min) || padding(max);\n  var positives = [];\n  var negatives = [];\n\n  var tok = {min: min, max: max, a: a, b: b};\n  if (isPadded) {\n    tok.isPadded = isPadded;\n    tok.maxLen = String(tok.max).length;\n  }\n\n  if (a < 0) {\n    var newMin = b < 0 ? Math.abs(b) : 1;\n    var newMax = Math.abs(a);\n    negatives = splitToPatterns(newMin, newMax, tok, options);\n    a = tok.a = 0;\n  }\n\n  if (b >= 0) {\n    positives = splitToPatterns(a, b, tok, options);\n  }\n\n  tok.negatives = negatives;\n  tok.positives = positives;\n  tok.result = siftPatterns(negatives, positives, options);\n\n  if (options.capture && (positives.length + negatives.length) > 1) {\n    tok.result = '(' + tok.result + ')';\n  }\n\n  cache[key] = tok;\n  return tok.result;\n}\n\nfunction siftPatterns(neg, pos, options) {\n  var onlyNegative = filterPatterns(neg, pos, '-', false, options) || [];\n  var onlyPositive = filterPatterns(pos, neg, '', false, options) || [];\n  var intersected = filterPatterns(neg, pos, '-?', true, options) || [];\n  var subpatterns = onlyNegative.concat(intersected).concat(onlyPositive);\n  return subpatterns.join('|');\n}\n\nfunction splitToRanges(min, max) {\n  min = Number(min);\n  max = Number(max);\n\n  var nines = 1;\n  var stops = [max];\n  var stop = +countNines(min, nines);\n\n  while (min <= stop && stop <= max) {\n    stops = push(stops, stop);\n    nines += 1;\n    stop = +countNines(min, nines);\n  }\n\n  var zeros = 1;\n  stop = countZeros(max + 1, zeros) - 1;\n\n  while (min < stop && stop <= max) {\n    stops = push(stops, stop);\n    zeros += 1;\n    stop = countZeros(max + 1, zeros) - 1;\n  }\n\n  stops.sort(compare);\n  return stops;\n}\n\n/**\n * Convert a range to a regex pattern\n * @param {Number} `start`\n * @param {Number} `stop`\n * @return {String}\n */\n\nfunction rangeToPattern(start, stop, options) {\n  if (start === stop) {\n    return {pattern: String(start), digits: []};\n  }\n\n  var zipped = zip(String(start), String(stop));\n  var len = zipped.length, i = -1;\n\n  var pattern = '';\n  var digits = 0;\n\n  while (++i < len) {\n    var numbers = zipped[i];\n    var startDigit = numbers[0];\n    var stopDigit = numbers[1];\n\n    if (startDigit === stopDigit) {\n      pattern += startDigit;\n\n    } else if (startDigit !== '0' || stopDigit !== '9') {\n      pattern += toCharacterClass(startDigit, stopDigit);\n\n    } else {\n      digits += 1;\n    }\n  }\n\n  if (digits) {\n    pattern += options.shorthand ? '\\\\d' : '[0-9]';\n  }\n\n  return { pattern: pattern, digits: [digits] };\n}\n\nfunction splitToPatterns(min, max, tok, options) {\n  var ranges = splitToRanges(min, max);\n  var len = ranges.length;\n  var idx = -1;\n\n  var tokens = [];\n  var start = min;\n  var prev;\n\n  while (++idx < len) {\n    var range = ranges[idx];\n    var obj = rangeToPattern(start, range, options);\n    var zeros = '';\n\n    if (!tok.isPadded && prev && prev.pattern === obj.pattern) {\n      if (prev.digits.length > 1) {\n        prev.digits.pop();\n      }\n      prev.digits.push(obj.digits[0]);\n      prev.string = prev.pattern + toQuantifier(prev.digits);\n      start = range + 1;\n      continue;\n    }\n\n    if (tok.isPadded) {\n      zeros = padZeros(range, tok);\n    }\n\n    obj.string = zeros + obj.pattern + toQuantifier(obj.digits);\n    tokens.push(obj);\n    start = range + 1;\n    prev = obj;\n  }\n\n  return tokens;\n}\n\nfunction filterPatterns(arr, comparison, prefix, intersection, options) {\n  var res = [];\n\n  for (var i = 0; i < arr.length; i++) {\n    var tok = arr[i];\n    var ele = tok.string;\n\n    if (options.relaxZeros !== false) {\n      if (prefix === '-' && ele.charAt(0) === '0') {\n        if (ele.charAt(1) === '{') {\n          ele = '0*' + ele.replace(/^0\\{\\d+\\}/, '');\n        } else {\n          ele = '0*' + ele.slice(1);\n        }\n      }\n    }\n\n    if (!intersection && !contains(comparison, 'string', ele)) {\n      res.push(prefix + ele);\n    }\n\n    if (intersection && contains(comparison, 'string', ele)) {\n      res.push(prefix + ele);\n    }\n  }\n  return res;\n}\n\n/**\n * Zip strings (`for in` can be used on string characters)\n */\n\nfunction zip(a, b) {\n  var arr = [];\n  for (var ch in a) arr.push([a[ch], b[ch]]);\n  return arr;\n}\n\nfunction compare(a, b) {\n  return a > b ? 1 : b > a ? -1 : 0;\n}\n\nfunction push(arr, ele) {\n  if (arr.indexOf(ele) === -1) arr.push(ele);\n  return arr;\n}\n\nfunction contains(arr, key, val) {\n  for (var i = 0; i < arr.length; i++) {\n    if (arr[i][key] === val) {\n      return true;\n    }\n  }\n  return false;\n}\n\nfunction countNines(min, len) {\n  return String(min).slice(0, -len) + repeat('9', len);\n}\n\nfunction countZeros(integer, zeros) {\n  return integer - (integer % Math.pow(10, zeros));\n}\n\nfunction toQuantifier(digits) {\n  var start = digits[0];\n  var stop = digits[1] ? (',' + digits[1]) : '';\n  if (!stop && (!start || start === 1)) {\n    return '';\n  }\n  return '{' + start + stop + '}';\n}\n\nfunction toCharacterClass(a, b) {\n  return '[' + a + ((b - a === 1) ? '' : '-') + b + ']';\n}\n\nfunction padding(str) {\n  return /^-?(0+)\\d/.exec(str);\n}\n\nfunction padZeros(val, tok) {\n  if (tok.isPadded) {\n    var diff = Math.abs(tok.maxLen - String(val).length);\n    switch (diff) {\n      case 0:\n        return '';\n      case 1:\n        return '0';\n      default: {\n        return '0{' + diff + '}';\n      }\n    }\n  }\n  return val;\n}\n\n/**\n * Expose `toRegexRange`\n */\n\nmodule.exports = toRegexRange;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/to-regex-range/index.js?");

/***/ }),

/***/ "./node_modules/to-regex/index.js":
/*!****************************************!*\
  !*** ./node_modules/to-regex/index.js ***!
  \****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar safe = __webpack_require__(/*! safe-regex */ \"./node_modules/safe-regex/index.js\");\nvar define = __webpack_require__(/*! define-property */ \"./node_modules/to-regex/node_modules/define-property/index.js\");\nvar extend = __webpack_require__(/*! extend-shallow */ \"./node_modules/to-regex/node_modules/extend-shallow/index.js\");\nvar not = __webpack_require__(/*! regex-not */ \"./node_modules/regex-not/index.js\");\nvar MAX_LENGTH = 1024 * 64;\n\n/**\n * Session cache\n */\n\nvar cache = {};\n\n/**\n * Create a regular expression from the given `pattern` string.\n *\n * @param {String|RegExp} `pattern` Pattern can be a string or regular expression.\n * @param {Object} `options`\n * @return {RegExp}\n * @api public\n */\n\nmodule.exports = function(patterns, options) {\n  if (!Array.isArray(patterns)) {\n    return makeRe(patterns, options);\n  }\n  return makeRe(patterns.join('|'), options);\n};\n\n/**\n * Create a regular expression from the given `pattern` string.\n *\n * @param {String|RegExp} `pattern` Pattern can be a string or regular expression.\n * @param {Object} `options`\n * @return {RegExp}\n * @api public\n */\n\nfunction makeRe(pattern, options) {\n  if (pattern instanceof RegExp) {\n    return pattern;\n  }\n\n  if (typeof pattern !== 'string') {\n    throw new TypeError('expected a string');\n  }\n\n  if (pattern.length > MAX_LENGTH) {\n    throw new Error('expected pattern to be less than ' + MAX_LENGTH + ' characters');\n  }\n\n  var key = pattern;\n  // do this before shallow cloning options, it's a lot faster\n  if (!options || (options && options.cache !== false)) {\n    key = createKey(pattern, options);\n\n    if (cache.hasOwnProperty(key)) {\n      return cache[key];\n    }\n  }\n\n  var opts = extend({}, options);\n  if (opts.contains === true) {\n    if (opts.negate === true) {\n      opts.strictNegate = false;\n    } else {\n      opts.strict = false;\n    }\n  }\n\n  if (opts.strict === false) {\n    opts.strictOpen = false;\n    opts.strictClose = false;\n  }\n\n  var open = opts.strictOpen !== false ? '^' : '';\n  var close = opts.strictClose !== false ? '$' : '';\n  var flags = opts.flags || '';\n  var regex;\n\n  if (opts.nocase === true && !/i/.test(flags)) {\n    flags += 'i';\n  }\n\n  try {\n    if (opts.negate || typeof opts.strictNegate === 'boolean') {\n      pattern = not.create(pattern, opts);\n    }\n\n    var str = open + '(?:' + pattern + ')' + close;\n    regex = new RegExp(str, flags);\n\n    if (opts.safe === true && safe(regex) === false) {\n      throw new Error('potentially unsafe regular expression: ' + regex.source);\n    }\n\n  } catch (err) {\n    if (opts.strictErrors === true || opts.safe === true) {\n      err.key = key;\n      err.pattern = pattern;\n      err.originalOptions = options;\n      err.createdOptions = opts;\n      throw err;\n    }\n\n    try {\n      regex = new RegExp('^' + pattern.replace(/(\\W)/g, '\\\\$1') + '$');\n    } catch (err) {\n      regex = /.^/; //<= match nothing\n    }\n  }\n\n  if (opts.cache !== false) {\n    memoize(regex, key, pattern, opts);\n  }\n  return regex;\n}\n\n/**\n * Memoize generated regex. This can result in dramatic speed improvements\n * and simplify debugging by adding options and pattern to the regex. It can be\n * disabled by passing setting `options.cache` to false.\n */\n\nfunction memoize(regex, key, pattern, options) {\n  define(regex, 'cached', true);\n  define(regex, 'pattern', pattern);\n  define(regex, 'options', options);\n  define(regex, 'key', key);\n  cache[key] = regex;\n}\n\n/**\n * Create the key to use for memoization. The key is generated\n * by iterating over the options and concatenating key-value pairs\n * to the pattern string.\n */\n\nfunction createKey(pattern, options) {\n  if (!options) return pattern;\n  var key = pattern;\n  for (var prop in options) {\n    if (options.hasOwnProperty(prop)) {\n      key += ';' + prop + '=' + String(options[prop]);\n    }\n  }\n  return key;\n}\n\n/**\n * Expose `makeRe`\n */\n\nmodule.exports.makeRe = makeRe;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/to-regex/index.js?");

/***/ }),

/***/ "./node_modules/to-regex/node_modules/define-property/index.js":
/*!*********************************************************************!*\
  !*** ./node_modules/to-regex/node_modules/define-property/index.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * define-property <https://github.com/jonschlinkert/define-property>\n *\n * Copyright (c) 2015-2018, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar isobject = __webpack_require__(/*! isobject */ \"./node_modules/isobject/index.js\");\nvar isDescriptor = __webpack_require__(/*! is-descriptor */ \"./node_modules/is-descriptor/index.js\");\nvar define = (typeof Reflect !== 'undefined' && Reflect.defineProperty)\n  ? Reflect.defineProperty\n  : Object.defineProperty;\n\nmodule.exports = function defineProperty(obj, key, val) {\n  if (!isobject(obj) && typeof obj !== 'function' && !Array.isArray(obj)) {\n    throw new TypeError('expected an object, function, or array');\n  }\n\n  if (typeof key !== 'string') {\n    throw new TypeError('expected \"key\" to be a string');\n  }\n\n  if (isDescriptor(val)) {\n    define(obj, key, val);\n    return obj;\n  }\n\n  define(obj, key, {\n    configurable: true,\n    enumerable: false,\n    writable: true,\n    value: val\n  });\n\n  return obj;\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/to-regex/node_modules/define-property/index.js?");

/***/ }),

/***/ "./node_modules/to-regex/node_modules/extend-shallow/index.js":
/*!********************************************************************!*\
  !*** ./node_modules/to-regex/node_modules/extend-shallow/index.js ***!
  \********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar isExtendable = __webpack_require__(/*! is-extendable */ \"./node_modules/to-regex/node_modules/is-extendable/index.js\");\nvar assignSymbols = __webpack_require__(/*! assign-symbols */ \"./node_modules/assign-symbols/index.js\");\n\nmodule.exports = Object.assign || function(obj/*, objects*/) {\n  if (obj === null || typeof obj === 'undefined') {\n    throw new TypeError('Cannot convert undefined or null to object');\n  }\n  if (!isObject(obj)) {\n    obj = {};\n  }\n  for (var i = 1; i < arguments.length; i++) {\n    var val = arguments[i];\n    if (isString(val)) {\n      val = toObject(val);\n    }\n    if (isObject(val)) {\n      assign(obj, val);\n      assignSymbols(obj, val);\n    }\n  }\n  return obj;\n};\n\nfunction assign(a, b) {\n  for (var key in b) {\n    if (hasOwn(b, key)) {\n      a[key] = b[key];\n    }\n  }\n}\n\nfunction isString(val) {\n  return (val && typeof val === 'string');\n}\n\nfunction toObject(str) {\n  var obj = {};\n  for (var i in str) {\n    obj[i] = str[i];\n  }\n  return obj;\n}\n\nfunction isObject(val) {\n  return (val && typeof val === 'object') || isExtendable(val);\n}\n\n/**\n * Returns true if the given `key` is an own property of `obj`.\n */\n\nfunction hasOwn(obj, key) {\n  return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nfunction isEnum(obj, key) {\n  return Object.prototype.propertyIsEnumerable.call(obj, key);\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/to-regex/node_modules/extend-shallow/index.js?");

/***/ }),

/***/ "./node_modules/to-regex/node_modules/is-extendable/index.js":
/*!*******************************************************************!*\
  !*** ./node_modules/to-regex/node_modules/is-extendable/index.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * is-extendable <https://github.com/jonschlinkert/is-extendable>\n *\n * Copyright (c) 2015-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar isPlainObject = __webpack_require__(/*! is-plain-object */ \"./node_modules/is-plain-object/index.js\");\n\nmodule.exports = function isExtendable(val) {\n  return isPlainObject(val) || typeof val === 'function' || Array.isArray(val);\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/to-regex/node_modules/is-extendable/index.js?");

/***/ }),

/***/ "./node_modules/union-value/index.js":
/*!*******************************************!*\
  !*** ./node_modules/union-value/index.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar isObject = __webpack_require__(/*! is-extendable */ \"./node_modules/is-extendable/index.js\");\nvar union = __webpack_require__(/*! arr-union */ \"./node_modules/arr-union/index.js\");\nvar get = __webpack_require__(/*! get-value */ \"./node_modules/get-value/index.js\");\nvar set = __webpack_require__(/*! set-value */ \"./node_modules/set-value/index.js\");\n\nmodule.exports = function unionValue(obj, prop, value) {\n  if (!isObject(obj)) {\n    throw new TypeError('union-value expects the first argument to be an object.');\n  }\n\n  if (typeof prop !== 'string') {\n    throw new TypeError('union-value expects `prop` to be a string.');\n  }\n\n  var arr = arrayify(get(obj, prop));\n  set(obj, prop, union(arr, arrayify(value)));\n  return obj;\n};\n\nfunction arrayify(val) {\n  if (val === null || typeof val === 'undefined') {\n    return [];\n  }\n  if (Array.isArray(val)) {\n    return val;\n  }\n  return [val];\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/union-value/index.js?");

/***/ }),

/***/ "./node_modules/unset-value/index.js":
/*!*******************************************!*\
  !*** ./node_modules/unset-value/index.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * unset-value <https://github.com/jonschlinkert/unset-value>\n *\n * Copyright (c) 2015, 2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar isObject = __webpack_require__(/*! isobject */ \"./node_modules/isobject/index.js\");\nvar has = __webpack_require__(/*! has-value */ \"./node_modules/unset-value/node_modules/has-value/index.js\");\n\nmodule.exports = function unset(obj, prop) {\n  if (!isObject(obj)) {\n    throw new TypeError('expected an object.');\n  }\n  if (obj.hasOwnProperty(prop)) {\n    delete obj[prop];\n    return true;\n  }\n\n  if (has(obj, prop)) {\n    var segs = prop.split('.');\n    var last = segs.pop();\n    while (segs.length && segs[segs.length - 1].slice(-1) === '\\\\') {\n      last = segs.pop().slice(0, -1) + '.' + last;\n    }\n    while (segs.length) obj = obj[prop = segs.shift()];\n    return (delete obj[last]);\n  }\n  return true;\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/unset-value/index.js?");

/***/ }),

/***/ "./node_modules/unset-value/node_modules/has-value/index.js":
/*!******************************************************************!*\
  !*** ./node_modules/unset-value/node_modules/has-value/index.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * has-value <https://github.com/jonschlinkert/has-value>\n *\n * Copyright (c) 2014-2016, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n\n\nvar isObject = __webpack_require__(/*! isobject */ \"./node_modules/unset-value/node_modules/has-value/node_modules/isobject/index.js\");\nvar hasValues = __webpack_require__(/*! has-values */ \"./node_modules/unset-value/node_modules/has-values/index.js\");\nvar get = __webpack_require__(/*! get-value */ \"./node_modules/get-value/index.js\");\n\nmodule.exports = function(obj, prop, noZero) {\n  if (isObject(obj)) {\n    return hasValues(get(obj, prop), noZero);\n  }\n  return hasValues(obj, prop);\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/unset-value/node_modules/has-value/index.js?");

/***/ }),

/***/ "./node_modules/unset-value/node_modules/has-value/node_modules/isobject/index.js":
/*!****************************************************************************************!*\
  !*** ./node_modules/unset-value/node_modules/has-value/node_modules/isobject/index.js ***!
  \****************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/*!\n * isobject <https://github.com/jonschlinkert/isobject>\n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n\n\nvar isArray = __webpack_require__(/*! isarray */ \"./node_modules/isarray/index.js\");\n\nmodule.exports = function isObject(val) {\n  return val != null && typeof val === 'object' && isArray(val) === false;\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/unset-value/node_modules/has-value/node_modules/isobject/index.js?");

/***/ }),

/***/ "./node_modules/unset-value/node_modules/has-values/index.js":
/*!*******************************************************************!*\
  !*** ./node_modules/unset-value/node_modules/has-values/index.js ***!
  \*******************************************************************/
/***/ ((module) => {

"use strict";
eval("/*!\n * has-values <https://github.com/jonschlinkert/has-values>\n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n\n\nmodule.exports = function hasValue(o, noZero) {\n  if (o === null || o === undefined) {\n    return false;\n  }\n\n  if (typeof o === 'boolean') {\n    return true;\n  }\n\n  if (typeof o === 'number') {\n    if (o === 0 && noZero === true) {\n      return false;\n    }\n    return true;\n  }\n\n  if (o.length !== undefined) {\n    return o.length !== 0;\n  }\n\n  for (var key in o) {\n    if (o.hasOwnProperty(key)) {\n      return true;\n    }\n  }\n  return false;\n};\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/unset-value/node_modules/has-values/index.js?");

/***/ }),

/***/ "./node_modules/upath/build/code/upath.js":
/*!************************************************!*\
  !*** ./node_modules/upath/build/code/upath.js ***!
  \************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("/**\n* upath http://github.com/anodynos/upath/\n*\n* A proxy to `path`, replacing `\\` with `/` for all results & new methods to normalize & join keeping leading `./` and add, change, default, trim file extensions.\n* Version 1.2.0 - Compiled on 2019-09-02 23:33:57\n* Repository git://github.com/anodynos/upath\n* Copyright(c) 2019 Angelos Pikoulas <agelos.pikoulas@gmail.com>\n* License MIT\n*/\n\n// Generated by uRequire v0.7.0-beta.33 target: 'lib' template: 'nodejs'\n\n\nvar VERSION = '1.2.0'; // injected by urequire-rc-inject-version\n\nvar extraFn, extraFunctions, isFunction, isString, isValidExt, name, path, propName, propValue, toUnix, upath, slice = [].slice, indexOf = [].indexOf || function (item) {\n    for (var i = 0, l = this.length; i < l; i++) {\n      if (i in this && this[i] === item)\n        return i;\n    }\n    return -1;\n  }, hasProp = {}.hasOwnProperty;\npath = __webpack_require__(/*! path */ \"path\");\nisFunction = function (val) {\n  return val instanceof Function;\n};\nisString = function (val) {\n  return typeof val === \"string\" || !!val && typeof val === \"object\" && Object.prototype.toString.call(val) === \"[object String]\";\n};\nupath = exports;\nupath.VERSION = typeof VERSION !== \"undefined\" && VERSION !== null ? VERSION : \"NO-VERSION\";\ntoUnix = function (p) {\n  var double;\n  p = p.replace(/\\\\/g, \"/\");\n  double = /\\/\\//;\n  while (p.match(double)) {\n    p = p.replace(double, \"/\");\n  }\n  return p;\n};\nfor (propName in path) {\n  propValue = path[propName];\n  if (isFunction(propValue)) {\n    upath[propName] = function (propName) {\n      return function () {\n        var args, result;\n        args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n        args = args.map(function (p) {\n          if (isString(p)) {\n            return toUnix(p);\n          } else {\n            return p;\n          }\n        });\n        result = path[propName].apply(path, args);\n        if (isString(result)) {\n          return toUnix(result);\n        } else {\n          return result;\n        }\n      };\n    }(propName);\n  } else {\n    upath[propName] = propValue;\n  }\n}\nupath.sep = \"/\";\nextraFunctions = {\n  toUnix: toUnix,\n  normalizeSafe: function (p) {\n    p = toUnix(p);\n    if (p.startsWith(\"./\")) {\n      if (p.startsWith(\"./..\") || p === \"./\") {\n        return upath.normalize(p);\n      } else {\n        return \"./\" + upath.normalize(p);\n      }\n    } else {\n      return upath.normalize(p);\n    }\n  },\n  normalizeTrim: function (p) {\n    p = upath.normalizeSafe(p);\n    if (p.endsWith(\"/\")) {\n      return p.slice(0, +(p.length - 2) + 1 || 9000000000);\n    } else {\n      return p;\n    }\n  },\n  joinSafe: function () {\n    var p, result;\n    p = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n    result = upath.join.apply(null, p);\n    if (p[0].startsWith(\"./\") && !result.startsWith(\"./\")) {\n      result = \"./\" + result;\n    }\n    return result;\n  },\n  addExt: function (file, ext) {\n    if (!ext) {\n      return file;\n    } else {\n      if (ext[0] !== \".\") {\n        ext = \".\" + ext;\n      }\n      return file + (file.endsWith(ext) ? \"\" : ext);\n    }\n  },\n  trimExt: function (filename, ignoreExts, maxSize) {\n    var oldExt;\n    if (maxSize == null) {\n      maxSize = 7;\n    }\n    oldExt = upath.extname(filename);\n    if (isValidExt(oldExt, ignoreExts, maxSize)) {\n      return filename.slice(0, +(filename.length - oldExt.length - 1) + 1 || 9000000000);\n    } else {\n      return filename;\n    }\n  },\n  removeExt: function (filename, ext) {\n    if (!ext) {\n      return filename;\n    } else {\n      ext = ext[0] === \".\" ? ext : \".\" + ext;\n      if (upath.extname(filename) === ext) {\n        return upath.trimExt(filename);\n      } else {\n        return filename;\n      }\n    }\n  },\n  changeExt: function (filename, ext, ignoreExts, maxSize) {\n    if (maxSize == null) {\n      maxSize = 7;\n    }\n    return upath.trimExt(filename, ignoreExts, maxSize) + (!ext ? \"\" : ext[0] === \".\" ? ext : \".\" + ext);\n  },\n  defaultExt: function (filename, ext, ignoreExts, maxSize) {\n    var oldExt;\n    if (maxSize == null) {\n      maxSize = 7;\n    }\n    oldExt = upath.extname(filename);\n    if (isValidExt(oldExt, ignoreExts, maxSize)) {\n      return filename;\n    } else {\n      return upath.addExt(filename, ext);\n    }\n  }\n};\nisValidExt = function (ext, ignoreExts, maxSize) {\n  if (ignoreExts == null) {\n    ignoreExts = [];\n  }\n  return ext && ext.length <= maxSize && indexOf.call(ignoreExts.map(function (e) {\n    return (e && e[0] !== \".\" ? \".\" : \"\") + e;\n  }), ext) < 0;\n};\nfor (name in extraFunctions) {\n  if (!hasProp.call(extraFunctions, name))\n    continue;\n  extraFn = extraFunctions[name];\n  if (upath[name] !== void 0) {\n    throw new Error(\"path.\" + name + \" already exists.\");\n  } else {\n    upath[name] = extraFn;\n  }\n}\n\n;\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/upath/build/code/upath.js?");

/***/ }),

/***/ "./node_modules/urix/index.js":
/*!************************************!*\
  !*** ./node_modules/urix/index.js ***!
  \************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("// Copyright 2014 Simon Lydell\r\n// X11 (“MIT”) Licensed. (See LICENSE.)\r\n\r\nvar path = __webpack_require__(/*! path */ \"path\")\r\n\r\n\"use strict\"\r\n\r\nfunction urix(aPath) {\r\n  if (path.sep === \"\\\\\") {\r\n    return aPath\r\n      .replace(/\\\\/g, \"/\")\r\n      .replace(/^[a-z]:\\/?/i, \"/\")\r\n  }\r\n  return aPath\r\n}\r\n\r\nmodule.exports = urix\r\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/urix/index.js?");

/***/ }),

/***/ "./node_modules/use/index.js":
/*!***********************************!*\
  !*** ./node_modules/use/index.js ***!
  \***********************************/
/***/ ((module) => {

"use strict";
eval("/*!\n * use <https://github.com/jonschlinkert/use>\n *\n * Copyright (c) 2015-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nmodule.exports = function base(app, options) {\n  if (!isObject(app) && typeof app !== 'function') {\n    throw new TypeError('expected an object or function');\n  }\n\n  var opts = isObject(options) ? options : {};\n  var prop = typeof opts.prop === 'string' ? opts.prop : 'fns';\n  if (!Array.isArray(app[prop])) {\n    define(app, prop, []);\n  }\n\n  /**\n   * Define a plugin function to be passed to use. The only\n   * parameter exposed to the plugin is `app`, the object or function.\n   * passed to `use(app)`. `app` is also exposed as `this` in plugins.\n   *\n   * Additionally, **if a plugin returns a function, the function will\n   * be pushed onto the `fns` array**, allowing the plugin to be\n   * called at a later point by the `run` method.\n   *\n   * ```js\n   * var use = require('use');\n   *\n   * // define a plugin\n   * function foo(app) {\n   *   // do stuff\n   * }\n   *\n   * var app = function(){};\n   * use(app);\n   *\n   * // register plugins\n   * app.use(foo);\n   * app.use(bar);\n   * app.use(baz);\n   * ```\n   * @name .use\n   * @param {Function} `fn` plugin function to call\n   * @api public\n   */\n\n  define(app, 'use', use);\n\n  /**\n   * Run all plugins on `fns`. Any plugin that returns a function\n   * when called by `use` is pushed onto the `fns` array.\n   *\n   * ```js\n   * var config = {};\n   * app.run(config);\n   * ```\n   * @name .run\n   * @param {Object} `value` Object to be modified by plugins.\n   * @return {Object} Returns the object passed to `run`\n   * @api public\n   */\n\n  define(app, 'run', function(val) {\n    if (!isObject(val)) return;\n\n    if (!val.use || !val.run) {\n      define(val, prop, val[prop] || []);\n      define(val, 'use', use);\n    }\n\n    if (!val[prop] || val[prop].indexOf(base) === -1) {\n      val.use(base);\n    }\n\n    var self = this || app;\n    var fns = self[prop];\n    var len = fns.length;\n    var idx = -1;\n\n    while (++idx < len) {\n      val.use(fns[idx]);\n    }\n    return val;\n  });\n\n  /**\n   * Call plugin `fn`. If a function is returned push it into the\n   * `fns` array to be called by the `run` method.\n   */\n\n  function use(type, fn, options) {\n    var offset = 1;\n\n    if (typeof type === 'string' || Array.isArray(type)) {\n      fn = wrap(type, fn);\n      offset++;\n    } else {\n      options = fn;\n      fn = type;\n    }\n\n    if (typeof fn !== 'function') {\n      throw new TypeError('expected a function');\n    }\n\n    var self = this || app;\n    var fns = self[prop];\n\n    var args = [].slice.call(arguments, offset);\n    args.unshift(self);\n\n    if (typeof opts.hook === 'function') {\n      opts.hook.apply(self, args);\n    }\n\n    var val = fn.apply(self, args);\n    if (typeof val === 'function' && fns.indexOf(val) === -1) {\n      fns.push(val);\n    }\n    return self;\n  }\n\n  /**\n   * Wrap a named plugin function so that it's only called on objects of the\n   * given `type`\n   *\n   * @param {String} `type`\n   * @param {Function} `fn` Plugin function\n   * @return {Function}\n   */\n\n  function wrap(type, fn) {\n    return function plugin() {\n      return this.type === type ? fn.apply(this, arguments) : plugin;\n    };\n  }\n\n  return app;\n};\n\nfunction isObject(val) {\n  return val && typeof val === 'object' && !Array.isArray(val);\n}\n\nfunction define(obj, key, val) {\n  Object.defineProperty(obj, key, {\n    configurable: true,\n    writable: true,\n    value: val\n  });\n}\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/use/index.js?");

/***/ }),

/***/ "./node_modules/util-deprecate/node.js":
/*!*********************************************!*\
  !*** ./node_modules/util-deprecate/node.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\n/**\n * For Node.js, simply re-export the core `util.deprecate` function.\n */\n\nmodule.exports = __webpack_require__(/*! util */ \"util\").deprecate;\n\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/util-deprecate/node.js?");

/***/ }),

/***/ "assert":
/*!*************************!*\
  !*** external "assert" ***!
  \*************************/
/***/ ((module) => {

"use strict";
module.exports = require("assert");

/***/ }),

/***/ "buffer":
/*!*************************!*\
  !*** external "buffer" ***!
  \*************************/
/***/ ((module) => {

"use strict";
module.exports = require("buffer");

/***/ }),

/***/ "constants":
/*!****************************!*\
  !*** external "constants" ***!
  \****************************/
/***/ ((module) => {

"use strict";
module.exports = require("constants");

/***/ }),

/***/ "events":
/*!*************************!*\
  !*** external "events" ***!
  \*************************/
/***/ ((module) => {

"use strict";
module.exports = require("events");

/***/ }),

/***/ "fs":
/*!*********************!*\
  !*** external "fs" ***!
  \*********************/
/***/ ((module) => {

"use strict";
module.exports = require("fs");

/***/ }),

/***/ "net":
/*!**********************!*\
  !*** external "net" ***!
  \**********************/
/***/ ((module) => {

"use strict";
module.exports = require("net");

/***/ }),

/***/ "os":
/*!*********************!*\
  !*** external "os" ***!
  \*********************/
/***/ ((module) => {

"use strict";
module.exports = require("os");

/***/ }),

/***/ "path":
/*!***********************!*\
  !*** external "path" ***!
  \***********************/
/***/ ((module) => {

"use strict";
module.exports = require("path");

/***/ }),

/***/ "stream":
/*!*************************!*\
  !*** external "stream" ***!
  \*************************/
/***/ ((module) => {

"use strict";
module.exports = require("stream");

/***/ }),

/***/ "tty":
/*!**********************!*\
  !*** external "tty" ***!
  \**********************/
/***/ ((module) => {

"use strict";
module.exports = require("tty");

/***/ }),

/***/ "url":
/*!**********************!*\
  !*** external "url" ***!
  \**********************/
/***/ ((module) => {

"use strict";
module.exports = require("url");

/***/ }),

/***/ "util":
/*!***********************!*\
  !*** external "util" ***!
  \***********************/
/***/ ((module) => {

"use strict";
module.exports = require("util");

/***/ }),

/***/ "./node_modules/binary-extensions/binary-extensions.json":
/*!***************************************************************!*\
  !*** ./node_modules/binary-extensions/binary-extensions.json ***!
  \***************************************************************/
/***/ ((module) => {

"use strict";
eval("module.exports = JSON.parse('[\"3dm\",\"3ds\",\"3g2\",\"3gp\",\"7z\",\"a\",\"aac\",\"adp\",\"ai\",\"aif\",\"aiff\",\"alz\",\"ape\",\"apk\",\"ar\",\"arj\",\"asf\",\"au\",\"avi\",\"bak\",\"baml\",\"bh\",\"bin\",\"bk\",\"bmp\",\"btif\",\"bz2\",\"bzip2\",\"cab\",\"caf\",\"cgm\",\"class\",\"cmx\",\"cpio\",\"cr2\",\"cur\",\"dat\",\"dcm\",\"deb\",\"dex\",\"djvu\",\"dll\",\"dmg\",\"dng\",\"doc\",\"docm\",\"docx\",\"dot\",\"dotm\",\"dra\",\"DS_Store\",\"dsk\",\"dts\",\"dtshd\",\"dvb\",\"dwg\",\"dxf\",\"ecelp4800\",\"ecelp7470\",\"ecelp9600\",\"egg\",\"eol\",\"eot\",\"epub\",\"exe\",\"f4v\",\"fbs\",\"fh\",\"fla\",\"flac\",\"fli\",\"flv\",\"fpx\",\"fst\",\"fvt\",\"g3\",\"gh\",\"gif\",\"graffle\",\"gz\",\"gzip\",\"h261\",\"h263\",\"h264\",\"icns\",\"ico\",\"ief\",\"img\",\"ipa\",\"iso\",\"jar\",\"jpeg\",\"jpg\",\"jpgv\",\"jpm\",\"jxr\",\"key\",\"ktx\",\"lha\",\"lib\",\"lvp\",\"lz\",\"lzh\",\"lzma\",\"lzo\",\"m3u\",\"m4a\",\"m4v\",\"mar\",\"mdi\",\"mht\",\"mid\",\"midi\",\"mj2\",\"mka\",\"mkv\",\"mmr\",\"mng\",\"mobi\",\"mov\",\"movie\",\"mp3\",\"mp4\",\"mp4a\",\"mpeg\",\"mpg\",\"mpga\",\"mxu\",\"nef\",\"npx\",\"numbers\",\"nupkg\",\"o\",\"oga\",\"ogg\",\"ogv\",\"otf\",\"pages\",\"pbm\",\"pcx\",\"pdb\",\"pdf\",\"pea\",\"pgm\",\"pic\",\"png\",\"pnm\",\"pot\",\"potm\",\"potx\",\"ppa\",\"ppam\",\"ppm\",\"pps\",\"ppsm\",\"ppsx\",\"ppt\",\"pptm\",\"pptx\",\"psd\",\"pya\",\"pyc\",\"pyo\",\"pyv\",\"qt\",\"rar\",\"ras\",\"raw\",\"resources\",\"rgb\",\"rip\",\"rlc\",\"rmf\",\"rmvb\",\"rtf\",\"rz\",\"s3m\",\"s7z\",\"scpt\",\"sgi\",\"shar\",\"sil\",\"sketch\",\"slk\",\"smv\",\"snk\",\"so\",\"stl\",\"suo\",\"sub\",\"swf\",\"tar\",\"tbz\",\"tbz2\",\"tga\",\"tgz\",\"thmx\",\"tif\",\"tiff\",\"tlz\",\"ttc\",\"ttf\",\"txz\",\"udf\",\"uvh\",\"uvi\",\"uvm\",\"uvp\",\"uvs\",\"uvu\",\"viv\",\"vob\",\"war\",\"wav\",\"wax\",\"wbmp\",\"wdp\",\"weba\",\"webm\",\"webp\",\"whl\",\"wim\",\"wm\",\"wma\",\"wmv\",\"wmx\",\"woff\",\"woff2\",\"wrm\",\"wvx\",\"xbm\",\"xif\",\"xla\",\"xlam\",\"xls\",\"xlsb\",\"xlsm\",\"xlsx\",\"xlt\",\"xltm\",\"xltx\",\"xm\",\"xmind\",\"xpi\",\"xpm\",\"xwd\",\"xz\",\"z\",\"zip\",\"zipx\"]');\n\n//# sourceURL=webpack://@nicolo-ribaudo/chokidar-2/./node_modules/binary-extensions/binary-extensions.json?");

/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			// no module.id needed
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
/******/ 	
/******/ 	// startup
/******/ 	// Load entry module and return exports
/******/ 	// This entry module can't be inlined because the eval devtool is used.
/******/ 	var __webpack_exports__ = __webpack_require__("./chokidar/index.js");
/******/ 	
/******/ })()
;