Merge remote-tracking branch 'apache/master'
diff --git a/.gitignore b/.gitignore
index f42db0b..c760526 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,10 +1,21 @@
.vagrant/
+venv/
.project
.classpath
.settings
+.cache
+*.iml
+.idea
target
+webapps/proteus-new/src/main/webapp/index.html
+webapps/proteus-new/src/main/webapp/js
+webapps/proteus-new/src/main/webapp/logo.png
+webapps/proteus-new/src/main/webapp/favicon.png
+webapps/proteus-new/src/main/webapp/css
+webapps/proteus-new/src/main/webapp/resources/node_modules
*/target
*/*/target
/.DS_Store
/.pydevproject
/*/.pydevproject
+**/overlays/
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..3d34a27
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,16 @@
+language: java
+jdk:
+ - oraclejdk8
+ - oraclejdk9
+ - openjdk10
+# - openjdk11
+
+env:
+ - FILEMGR_URL=http://localhost:9000 WORKFLOW_URL=http://localhost:9001 RESMGR_URL=http://localhost:9002 SOLR_DRAT_URL=http://localhost:8080/solr/drat
+
+before_install:
+ - export M2_HOME=/usr/local/maven
+ - export MAVEN_OPTS="-Dmaven.repo.local=$HOME/.m2/repository -Xms1024m -Xmx3072m -XX:PermSize=512m"
+
+script:
+ - mvn clean install
diff --git a/README.md b/README.md
index 5307072..9e69dc5 100644
--- a/README.md
+++ b/README.md
@@ -21,5 +21,8 @@
You can clone the wiki by running
`git clone https://github.com/apache/drat.wiki.git`
-Visit our new website [drat.apache.org](http://drat.apache.org/) at the [Apache Software Foundation](http://www.apache.org/).
+Visit our new website [drat.apache.org](https://drat.apache.org/) at the [Apache Software Foundation](https://www.apache.org/).
+---
+
+Current build status: [![Build Status](https://travis-ci.org/apache/drat.svg?branch=master)](https://travis-ci.org/apache/drat)
diff --git a/crawler/pom.xml b/crawler/pom.xml
index b11d3f2..622b889 100644
--- a/crawler/pom.xml
+++ b/crawler/pom.xml
@@ -59,7 +59,7 @@
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
- <version>3.8.2</version>
+ <version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
diff --git a/crawler/src/main/resources/bin/dump_repo_details.py b/crawler/src/main/resources/bin/dump_repo_details.py
new file mode 100755
index 0000000..ee68f4e
--- /dev/null
+++ b/crawler/src/main/resources/bin/dump_repo_details.py
@@ -0,0 +1,51 @@
+#!/usr/bin/env python
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import sys
+import os
+import json
+
+def main(argv=None):
+ if len(argv) == 0:
+ print "No Repo details to dump"
+ sys.exit()
+
+ if os.getenv("DRAT_HOME")==None:
+ print "Please add DRAT_HOME environment variable and try again";
+ sys.exit()
+
+ default_repo_file_url = os.getenv("DRAT_HOME") + "/conf/repo.default.txt"
+ with open(default_repo_file_url,'rb')as repoFile:
+ data = ''
+ for line in repoFile:
+ data+=line
+ rep = eval(data)
+
+ reponame = os.path.basename(os.path.normpath(argv[0]))
+ rep["id"] = "id:"+os.path.normpath(argv[0])
+ rep["repo"] = os.path.normpath(argv[0])
+ rep["name"] = reponame
+
+ outputfile = os.getenv("DRAT_HOME") + "/data/repo"
+ file = open(outputfile,"w")
+ file.write(json.dumps(rep))
+ file.close()
+
+ print rep
+
+if __name__ == "__main__":
+ main(sys.argv[1:])
diff --git a/distribution/pom.xml b/distribution/pom.xml
index 28b69d8..6ac901e 100644
--- a/distribution/pom.xml
+++ b/distribution/pom.xml
@@ -119,6 +119,12 @@
<type>war</type>
</dependency>
<dependency>
+ <groupId>org.apache.drat</groupId>
+ <artifactId>dms-proteus-new</artifactId>
+ <version>${project.parent.version}</version>
+ <type>war</type>
+ </dependency>
+ <dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-app</artifactId>
<version>1.5</version>
@@ -189,6 +195,13 @@
<type>war</type>
<overWrite>true</overWrite>
<outputDirectory>${project.build.directory}/apache-tomcat-${tomcat.version}/webapps/viz</outputDirectory>
+ </artifactItem>
+ <artifactItem>
+ <groupId>org.apache.drat</groupId>
+ <artifactId>${project.parent.artifactId}-proteus-new</artifactId>
+ <type>war</type>
+ <overWrite>true</overWrite>
+ <outputDirectory>${project.build.directory}/apache-tomcat-${tomcat.version}/webapps/proteus-new</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
diff --git a/distribution/src/main/assembly/assembly.xml b/distribution/src/main/assembly/assembly.xml
index 92fe599..8acf7ca 100644
--- a/distribution/src/main/assembly/assembly.xml
+++ b/distribution/src/main/assembly/assembly.xml
@@ -34,6 +34,13 @@
</fileSet>
<fileSet>
<directory>target</directory>
+ <outputDirectory>data/clones</outputDirectory>
+ <excludes>
+ <exclude>**/*</exclude>
+ </excludes>
+ </fileSet>
+ <fileSet>
+ <directory>target</directory>
<outputDirectory>data/archive</outputDirectory>
<excludes>
<exclude>**/*</exclude>
@@ -94,6 +101,7 @@
<exclude>${groupId}:${parent.artifactId}-solr-webapp</exclude>
<exclude>${groupId}:${parent.artifactId}-proteus</exclude>
<exclude>${groupId}:${parent.artifactId}-viz</exclude>
+ <exclude>${groupId}:${parent.artifactId}-proteus-new</exclude>
<exclude>org.apache.tika:tika-app</exclude>
</excludes>
</dependencySet>
diff --git a/distribution/src/main/resources/bin/drat b/distribution/src/main/resources/bin/drat
index 00e7954..0076651 100755
--- a/distribution/src/main/resources/bin/drat
+++ b/distribution/src/main/resources/bin/drat
@@ -34,6 +34,7 @@
echo " help | print this message"
echo " reset | prepare to analyze an entirely new repo"
echo " | CAUTION: will delete previous crawls!"
+ echo " delstats | clear collected DRAT stats index"
}
function print_ui_info {
@@ -59,7 +60,10 @@
PRODUCT_PATH=$1
fi
pushd $DRAT_HOME/crawler/bin >> $DRAT_HOME/logs/drat.log 2>&1
-
+
+ python dump_repo_details.py $PRODUCT_PATH
+
+
./crawler_launcher --operation --metPC --metExtractorConfig \
$DRAT_HOME/extractors/code/default.cpr.conf --metExtractor org.apache.oodt.cas.metadata.extractors.CopyAndRewriteExtractor \
--filemgrUrl $FILEMGR_URL --clientTransferer org.apache.oodt.cas.filemgr.datatransfer.InPlaceDataTransferFactory \
@@ -238,6 +242,30 @@
esac
}
+# Clears the Solr Statistics repo for aggregating crawl stats. Expects no arguments.
+function delstats {
+ check_services_running "running"
+ check_num_args "delstats" $# 0
+ echo "This will remove any previous or current Solr DRAT stats information."
+ read -p "Do you wish to continue? [yN] " yn
+ case $yn in
+ [Yy]*)
+ echo "rm -rf $DRAT_HOME/solr/statistics/data"
+ rm -rf $DRAT_HOME/solr/statistics/data
+ echo "Please restart OODT with '\$DRAT_HOME/bin/oodt start' if you wish to run another crawl."
+ ;;
+ [Nn]*)
+ echo "Reset cancelled. Exiting..."
+ exit 0
+ ;;
+ *)
+ echo "Aborting..."
+ exit 1
+ ;;
+ esac
+
+}
+
# Start parsing the arguments.
case $1 in
crawl)
@@ -258,6 +286,9 @@
reset)
reset
;;
+ delstats)
+ delstats
+ ;;
help)
print_help
;;
diff --git a/distribution/src/main/resources/bin/dratseq b/distribution/src/main/resources/bin/dratseq
old mode 100644
new mode 100755
diff --git a/distribution/src/main/resources/bin/dratstats.py b/distribution/src/main/resources/bin/dratstats.py
old mode 100644
new mode 100755
index 98db7bf..c4dd0c5
--- a/distribution/src/main/resources/bin/dratstats.py
+++ b/distribution/src/main/resources/bin/dratstats.py
@@ -42,11 +42,8 @@
if os.getenv("JAVA_HOME") == None:
print "Environment variable $JAVA_HOME is not set."
sys.exit(1)
- if os.getenv("OPSUI_URL") == None:
- print "Environment variable $OPSUI_URL is not set."
- sys.exit(1)
- if os.getenv("SOLR_URL") == None:
- print "Environment variable $SOLR_URL is not set."
+ if os.getenv("SOLR_DRAT_URL") == None:
+ print "Environment variable $SOLR_DRAT_URL is not set."
sys.exit(1)
if os.getenv("WORKFLOW_URL") == None:
print "Environment variable $WORKFLOW_URL is not set."
@@ -147,7 +144,7 @@
elif command == "index":
retcode = subprocess.call("${DRAT_HOME}/bin/drat" + " " + command + " " + repository, shell=True)
elif command == "map" or command == "reduce":
- retcode = subprocess.call("nohup ${DRAT_HOME}/bin/drat" + " " + command + " &", shell=True)
+ retcode = subprocess.call("${DRAT_HOME}/bin/drat" + " " + command + " &", shell=True)
if retcode < 0:
print >>sys.stderr, "DRAT " + command + " process was terminated by signal", -retcode, ". Aborting..."
retval = False
@@ -180,12 +177,19 @@
def job_in_queue(job_name):
status = "PGE EXEC"
server = xmlrpclib.ServerProxy(os.getenv("WORKFLOW_URL"), verbose=False)
- response = server.workflowmgr.getWorkflowInstancesByStatus(status)
+
- for i in range(0, len(response)):
+ for x in range(0,6):
+ response = server.workflowmgr.getWorkflowInstancesByStatus(status)
+
+ for i in range(0, len(response)):
#print response[i]["sharedContext"]["TaskId"]
- if response[i]["sharedContext"]["TaskId"][0] == job_name:
- return True
+ if response[i]["sharedContext"]["TaskId"][0] == job_name:
+ return True
+
+ time.sleep(3)
+
+
return False
@@ -268,7 +272,7 @@
print("\nOODT Started: OK\n")
print('Adding repository: '+str(rep)+' to Solr')
- index_solr(json.dumps([rep]))
+ # index_solr(json.dumps([rep]))
print("\nRunning DRAT on " + rep["repo"] + " ...\n")
@@ -281,6 +285,12 @@
retval = drat_process("crawl", rep["repo"])
stats['crawl_end'] = current_datetime()
+ rep["id"] = "id:"+os.path.normpath(rep["repo"])
+ outputfile = os.getenv("DRAT_HOME") + "/data/repo"
+ file = open(outputfile,"w")
+ file.write(json.dumps(rep))
+ file.close()
+
if retval:
time.sleep(5)
stats['index_start'] = current_datetime()
@@ -296,178 +306,29 @@
wait_for_job("urn:drat:RatCodeAudit")
stats['map_end'] = current_datetime()
- if retval:
- time.sleep(5)
- stats['reduce_start'] = current_datetime()
-
- # Extract data from RatAggregate File
- totalNotes = 0
- totalBinaries = 0
- totalArchives = 0
- totalStandards = 0
- totalApache = 0
- totalGenerated = 0
- totalUnknown = 0
-
- rat_dir = os.getenv("DRAT_HOME") + "/data/archive/rat"
-
- # Iterate over all RAT log files
- for root, dirs, files in os.walk(rat_dir):
- for filename in files:
- if filename.endswith(".log"):
- (notes, binaries, archives,standards,apachelicensed,generated,unknown) = parseFile(os.path.join(root, filename))
- totalNotes = totalNotes + notes
- totalBinaries = totalBinaries + binaries
- totalArchives = totalArchives + archives
- totalStandards = totalStandards + standards
- totalApache = totalApache + apachelicensed
- totalGenerated = totalGenerated + generated
- totalUnknown = totalUnknown + unknown
-
- stats["license_Notes"] = totalNotes
- stats["license_Binaries"] = totalBinaries
- stats["license_Archives"] = totalArchives
- stats["license_Standards"] = totalStandards
- stats["license_Apache"] = totalApache
- stats["license_Generated"] = totalGenerated
- stats["license_Unknown"] = totalUnknown
-
- stats['reduce_end'] = current_datetime()
- print "\nDRAT Scan Completed: OK\n"
+ if(retval):
+ wait_for_job("urn:drat:RatAggregator")
+ time.sleep(10)
+ retval = drat_process("reduce",None)
+ print ("\nwaiting for Rat Aggregator...\n")
+ wait_for_job("urn:drat:RatAggregator")
+
time.sleep(5)
- if retval:
- # Copy Data with datetime variables above, extract output from RatAggregate file, extract data from Solr Core
- printnow ("\nCopying data to Solr and Output Directory...\n")
+ if(retval):
+ # Copy Data with datetime variables above, extract output from RatAggregate file, extract data from Solr Core
+ printnow ("\nCopying data to Solr and Output Directory...\n")
- # Extract data from Solr
- neg_mimetype = ["image", "application", "text", "video", "audio", "message", "multipart"]
- connection = urllib2.urlopen(os.getenv("SOLR_URL") + "/drat/select?q=*%3A*&rows=0&facet=true&facet.field=mimetype&wt=python&indent=true")
- response = eval(connection.read())
- mime_count = response["facet_counts"]["facet_fields"]["mimetype"]
-
- for i in range(0, len(mime_count), 2):
- if mime_count[i].split("/")[0] not in neg_mimetype:
- stats["mime_" + mime_count[i]] = mime_count[i + 1]
+ # Copying data to Output Directory
+ repos_out = output_dir + "/" + normalize_path(rep["repo"])
+ shutil.copytree(os.getenv("DRAT_HOME") + "/data/archive", repos_out + "/data/archive")
+ shutil.copytree(os.getenv("DRAT_HOME") + "/data/jobs", repos_out + "/data/jobs")
+ shutil.copytree(os.getenv("DRAT_HOME") + "/data/workflow", repos_out + "/data/workflow")
+ print("\nData copied to Solr and Output Directory: OK\n")
- # Count the number of files
- stats["files"] = count_num_files(rep["repo"], ".git")
-
- # Write data into Solr
- stats["type"] = 'software'
- stats_data = []
- stats_data.append(stats)
- json_data = json.dumps(stats_data)
- index_solr(json_data)
-
- # Parse RAT logs
- rat_logs_dir = os.getenv("DRAT_HOME") + "/data/archive/rat/*/*.log"
- rat_license = {}
- rat_header = {}
- for filename in glob.glob(rat_logs_dir):
- #print('=' * 20)
- l = 0
- h = 0
- cur_file = ''
- cur_header = ''
- cur_section = ''
- parsedHeaders = False
- parsedLicenses = False
-
- with open(filename, 'rb') as f:
- printnow('Parsing rat log: ['+filename+']')
- for line in f:
- if '*****************************************************' in line:
- l = 0
- h = 0
- if cur_section == 'licenses':
- parsedLicenses = True
- if cur_section == 'headers':
- parsedHeaders = True
-
- cur_file = ''
- cur_header = ''
- cur_section = ''
- if line.startswith(' Files with Apache') and not parsedLicenses:
- cur_section = 'licenses'
- if line.startswith(' Printing headers for ') and not parsedHeaders:
- cur_section = 'headers'
- if cur_section == 'licenses':
- l += 1
- if l > 4:
- line = line.strip()
- if line:
- print("File: %s with License Line: %s" % (filename, line))
- li = parse_license(line)
- rat_license[li[0]] = li[1]
- print(li)
- if cur_section == 'headers':
- if '=====================================================' in line or '== File:' in line:
- h += 1
- if h == 2:
- cur_file = line.split("/")[-1].strip()
- if h == 3:
- cur_header += line
- if h == 4:
- rat_header[cur_file] = cur_header.split("\n", 1)[1]
- cur_file = ''
- cur_header = ''
- h = 1
- if h == 3:
- rat_header[cur_file] = cur_header.split("\n", 1)[1]
- parsedHeaders = True
- parsedLicenses = True
-
- # Index RAT logs into Solr
- connection = urllib2.urlopen(os.getenv("SOLR_URL") +
- "/drat/select?q=*%3A*&fl=filename%2Cfilelocation%2Cmimetype&wt=python&rows="
- + str(stats["files"]) +"&indent=true")
- response = eval(connection.read())
- docs = response['response']['docs']
- file_data = []
- batch = 100
- dc = 0
-
- for doc in docs:
- fdata = {}
- fdata['id'] = os.path.join(doc['filelocation'][0], doc['filename'][0])
- m = md5.new()
- m.update(fdata['id'])
- hashId = m.hexdigest()
- fileId = hashId+"-"+doc['filename'][0]
-
- if fileId not in rat_license:
- print "File: "+str(fdata['id'])+": ID: ["+fileId+"] not present in parsed licenses => Likely file copying issue. Skipping."
- continue #handle issue with DRAT #93
-
- fdata["type"] = 'file'
- fdata['parent'] = rep["repo"]
- fdata['mimetype'] = doc['mimetype'][0]
- fdata['license'] = rat_license[fileId]
- if fileId in rat_header:
- fdata['header'] = rat_header[fileId]
- file_data.append(fdata)
- dc += 1
- if dc % batch == 0:
- json_data = json.dumps(file_data)
- index_solr(json_data)
- file_data = []
- if dc % batch != 0:
- json_data = json.dumps(file_data)
- index_solr(json_data)
-
- # Copying data to Output Directory
- repos_out = output_dir + "/" + normalize_path(rep["repo"])
- shutil.copytree(os.getenv("DRAT_HOME") + "/data", repos_out)
- print("\nData copied to Solr and Output Directory: OK\n")
-
- else:
- print ("\nDRAT Scan Completed: Resulted in Error\n")
-
-
- time.sleep(5)
+ time.sleep(5)
print ("\nStopping OODT...\n")
oodt_process("stop")
time.sleep(20)
diff --git a/distribution/src/main/resources/bin/gen-apache-clones.py b/distribution/src/main/resources/bin/gen-apache-clones.py
new file mode 100755
index 0000000..1a1a860
--- /dev/null
+++ b/distribution/src/main/resources/bin/gen-apache-clones.py
@@ -0,0 +1,39 @@
+#!/usr/bin/env python
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import os
+import shlex
+from subprocess import Popen
+
+with open(os.getenv("DRAT_HOME")+"/conf/apache-repo-list.txt") as ar:
+ for repo in ar:
+ repoUrl = repo.rstrip()
+ repoUrl = "http://github.com/apache/"+repoUrl
+ repoName = repo.split(".")[0].rstrip()
+
+ workDir = os.getenv("DRAT_HOME")+"/data/clones/"
+ print "Cloning: ["+repoUrl+"] to ["+workDir+repoName+"]: working dir: ["+workDir+"]"
+ cloneCmd = "git clone --depth=1 "+repoUrl
+ print cloneCmd
+ args = shlex.split(cloneCmd)
+ p = Popen(args, cwd=workDir)
+ p.communicate()
+ rmCmd = "rm -rf "+repoName+"/.git"
+ print rmCmd
+ args = shlex.split(rmCmd)
+ p2 = Popen(args, cwd=workDir)
+ p2.communicate()
+
diff --git a/distribution/src/main/resources/bin/gen-apache-repo-urls.sh b/distribution/src/main/resources/bin/gen-apache-repo-urls.sh
new file mode 100755
index 0000000..a0665e9
--- /dev/null
+++ b/distribution/src/main/resources/bin/gen-apache-repo-urls.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+shopt -s expand_aliases
+
+if [ ! -f $DRAT_HOME/lib/tika-app-1.18.jar ]; then
+ pushd $DRAT_HOME/lib
+ curl -O http://repo1.maven.org/maven2/org/apache/tika/tika-app/1.18/tika-app-1.18.jar
+ popd
+fi
+
+alias tika="java -jar $DRAT_HOME/lib/tika-app-1.18.jar"
+REPOS=`tika -t "https://gitbox.apache.org/repos/asf" | grep \.git | cut -d\? -f2 | cut -d\; -f1 | cut -d\= -f2 | cut -d\" -f1 | cut -d"." -f1 | sort | uniq`
+for REPO in $REPOS; do
+ echo $REPO.git | sed -e 's/^[[:space:]]*//' ;
+done
+
diff --git a/distribution/src/main/resources/bin/gen-apache-repo.py b/distribution/src/main/resources/bin/gen-apache-repo.py
new file mode 100755
index 0000000..a3d491a
--- /dev/null
+++ b/distribution/src/main/resources/bin/gen-apache-repo.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import os
+
+with open(os.getenv("DRAT_HOME")+"/conf/apache-repo-list.txt") as ar:
+ for repo in ar.readlines():
+ repoBase = repo.split(".")[0]
+ repoName = "Apache-"+repoBase.upper().rstrip()
+ repoPath = os.getenv("DRAT_HOME")+"/data/clones/"+repoBase
+ repoUrl = "http://github.com/apache/"+repo.rstrip()
+ repoDesc = repoName
+ print repoPath+" "+repoName+" "+repoUrl+" "+repoDesc
diff --git a/distribution/src/main/resources/bin/oodt b/distribution/src/main/resources/bin/oodt
old mode 100644
new mode 100755
diff --git a/distribution/src/main/resources/bin/setenv.sh b/distribution/src/main/resources/bin/setenv.sh
index 92c0bd6..c94ef1a 100755
--- a/distribution/src/main/resources/bin/setenv.sh
+++ b/distribution/src/main/resources/bin/setenv.sh
@@ -21,6 +21,8 @@
export OPSUI_URL=http://localhost:8080/opsui
export SOLR_URL=http://localhost:8080/solr
export FMPROD_HOME=$DRAT_HOME/tomcat/webapps/fmprod/WEB-INF/classes/
+export SOLR_DRAT_URL=http://localhost:8080/solr/drat
+export DRAT_EXCLUDE=""
##### Copy and Paste this Block into the .bashrc of your deployment user account ##########
#
diff --git a/distribution/src/main/resources/conf/apache-repo-list.txt b/distribution/src/main/resources/conf/apache-repo-list.txt
new file mode 100644
index 0000000..2c297a1
--- /dev/null
+++ b/distribution/src/main/resources/conf/apache-repo-list.txt
@@ -0,0 +1,838 @@
+accumulo-bsp.git
+accumulo-docker.git
+accumulo-examples.git
+accumulo-instamo-archetype.git
+accumulo-pig.git
+accumulo-testing.git
+accumulo-website.git
+accumulo-wikisearch.git
+accumulo.git
+airavata-django-portal.git
+airavata-docs.git
+airavata-labs.git
+airavata-php-gateway.git
+airavata-sandbox.git
+airavata-site.git
+airavata.git
+ambari.git
+apachecon-site.git
+apex-core.git
+apex-malhar.git
+apex-site.git
+archiva-parent.git
+archiva-redback-components-expression-evaluator.git
+archiva-redback-components-modello-plugins.git
+archiva-redback-components-parent.git
+archiva-redback-components-redback-features.git
+archiva-redback-components-site.git
+archiva-redback-components-spring-apacheds.git
+archiva-redback-components-spring-cache.git
+archiva-redback-components-spring-quartz.git
+archiva-redback-components-spring-registry.git
+archiva-redback-components-spring-taskqueue.git
+archiva-redback-components-spring-utils.git
+archiva-redback-core.git
+archiva-sandbox.git
+archiva-site.git
+archiva.git
+aries-tx-control.git
+arrow-dist.git
+arrow-testing.git
+arrow.git
+attic-test.git
+aurora-packaging.git
+aurora.git
+avro.git
+beam-site.git
+beam-wheels.git
+beam.git
+bookkeeper.git
+camel-website.git
+camel.git
+cloudstack-cloudmonkey.git
+cloudstack-docs-admin.git
+cloudstack-docs-install.git
+cloudstack-docs-rn.git
+cloudstack-docs.git
+cloudstack-documentation.git
+cloudstack-ec2stack.git
+cloudstack-gcestack.git
+cloudstack-www.git
+cloudstack.git
+commons-geometry.git
+commons-jexl.git
+commons-signing.git
+commons-testrepo.git
+commons-weaver.git
+cordova-amazon-fireos.git
+cordova-android.git
+cordova-apache-board-reports.git
+cordova-app-harness.git
+cordova-app-hello-world.git
+cordova-bada-wac.git
+cordova-bada.git
+cordova-blackberry.git
+cordova-browser.git
+cordova-cli.git
+cordova-coho.git
+cordova-common.git
+cordova-create.git
+cordova-discuss.git
+cordova-docs.git
+cordova-electron.git
+cordova-fauxton-server.git
+cordova-fetch.git
+cordova-firefoxos.git
+cordova-ios.git
+cordova-js.git
+cordova-labs.git
+cordova-lib.git
+cordova-medic.git
+cordova-mobile-spec.git
+cordova-new-committer-and-pmc.git
+cordova-node-xcode.git
+cordova-osx.git
+cordova-paramedic.git
+cordova-plugin-battery-status.git
+cordova-plugin-camera.git
+cordova-plugin-compat.git
+cordova-plugin-console.git
+cordova-plugin-contacts.git
+cordova-plugin-device-motion.git
+cordova-plugin-device-orientation.git
+cordova-plugin-device.git
+cordova-plugin-dialogs.git
+cordova-plugin-file-transfer.git
+cordova-plugin-file.git
+cordova-plugin-geolocation.git
+cordova-plugin-globalization.git
+cordova-plugin-inappbrowser.git
+cordova-plugin-legacy-whitelist.git
+cordova-plugin-media-capture.git
+cordova-plugin-media.git
+cordova-plugin-network-information.git
+cordova-plugin-screen-orientation.git
+cordova-plugin-splashscreen.git
+cordova-plugin-statusbar.git
+cordova-plugin-test-framework.git
+cordova-plugin-vibration.git
+cordova-plugin-whitelist.git
+cordova-plugin-wkwebview-engine.git
+cordova-plugins.git
+cordova-plugman.git
+cordova-qt.git
+cordova-registry-web.git
+cordova-registry.git
+cordova-serve.git
+cordova-status.git
+cordova-template-reference.git
+cordova-test-platform.git
+cordova-tizen.git
+cordova-ubuntu.git
+cordova-webos.git
+cordova-weinre.git
+cordova-windows.git
+cordova-wp7.git
+cordova-wp8.git
+cordova.git
+couchdb-ci.git
+couchdb-docker.git
+couchdb-documentation.git
+couchdb-erlang-bcrypt.git
+couchdb-fauxton.git
+couchdb-hyper.git
+couchdb-nano.git
+couchdb-pkg.git
+couchdb-triq.git
+couchdb.git
+cxf-build-utils.git
+cxf-dosgi.git
+cxf-fediz.git
+cxf-xjc-utils.git
+cxf.git
+db-jdo.git
+directory-buildtools.git
+directory-ldap-api.git
+directory-mavibot.git
+directory-project.git
+directory-samples.git
+directory-scimple.git
+directory-server.git
+directory-studio.git
+distributedlog.git
+drat.git
+drill-site.git
+drill.git
+fineract-cn-accounting.git
+fineract-cn-anubis.git
+fineract-cn-api.git
+fineract-cn-async.git
+fineract-cn-cassandra.git
+fineract-cn-cheques.git
+fineract-cn-command.git
+fineract-cn-crypto.git
+fineract-cn-customer.git
+fineract-cn-data-jpa.git
+fineract-cn-default-setup.git
+fineract-cn-demo-server.git
+fineract-cn-deposit-account-management.git
+fineract-cn-docker-scripts.git
+fineract-cn-fims-e2e.git
+fineract-cn-fims-web-app.git
+fineract-cn-group-finance.git
+fineract-cn-group.git
+fineract-cn-identity.git
+fineract-cn-integration-tests.git
+fineract-cn-lang.git
+fineract-cn-mariadb.git
+fineract-cn-mobile.git
+fineract-cn-notifications.git
+fineract-cn-office.git
+fineract-cn-payroll.git
+fineract-cn-permitted-feign-client.git
+fineract-cn-portfolio.git
+fineract-cn-provisioner.git
+fineract-cn-reporting.git
+fineract-cn-rhythm.git
+fineract-cn-service-starter.git
+fineract-cn-stellar-bridge.git
+fineract-cn-teller.git
+fineract-cn-template.git
+fineract-cn-test.git
+fineract-site.git
+flink-shaded.git
+flink-web.git
+flink.git
+fluo-bytes.git
+fluo-docker.git
+fluo-examples.git
+fluo-muchos.git
+fluo-recipes.git
+fluo-uno.git
+fluo-website.git
+fluo-yarn.git
+fluo.git
+geode-examples.git
+geode-native.git
+geode-site.git
+geode.git
+geronimo-config.git
+geronimo-health.git
+geronimo-jcache-simple.git
+geronimo-jwt-auth.git
+geronimo-metrics.git
+geronimo-microprofile.git
+geronimo-openapi.git
+geronimo-opentracing.git
+geronimo-safeguard.git
+hbase-connectors.git
+hbase-operator-tools.git
+ignite-teamcity-bot.git
+incubator-airflow.git
+incubator-amaterasu-site.git
+incubator-amaterasu.git
+incubator-annotator-website.git
+incubator-annotator.git
+incubator-ariatosca-website.git
+incubator-ariatosca.git
+incubator-daffodil-site.git
+incubator-daffodil.git
+incubator-druid-website.git
+incubator-druid.git
+incubator-dubbo-docs.git
+incubator-dubbo-feature-test.git
+incubator-dubbo-ops.git
+incubator-dubbo-rpc-jsonrpc.git
+incubator-dubbo-spring-boot-project.git
+incubator-dubbo-website.git
+incubator-dubbo.git
+incubator-echarts-website.git
+incubator-echarts.git
+incubator-heron.git
+incubator-mxnet-site.git
+incubator-mxnet-test.git
+incubator-mxnet.git
+incubator-nemo-website.git
+incubator-nemo.git
+incubator-netbeans-html4j.git
+incubator-netbeans-jackpot30.git
+incubator-netbeans-temp.git
+incubator-netbeans-tools.git
+incubator-netbeans-website-cleanup.git
+incubator-netbeans-website.git
+incubator-netbeans.git
+incubator-odftoolkit-site.git
+incubator-openwhisk-apigateway.git
+incubator-openwhisk-catalog.git
+incubator-openwhisk-cli.git
+incubator-openwhisk-client-go.git
+incubator-openwhisk-client-js.git
+incubator-openwhisk-client-python.git
+incubator-openwhisk-client-swift.git
+incubator-openwhisk-debugger.git
+incubator-openwhisk-deploy-kube.git
+incubator-openwhisk-deploy-mesos.git
+incubator-openwhisk-deploy-openshift.git
+incubator-openwhisk-devtools.git
+incubator-openwhisk-external-resources.git
+incubator-openwhisk-package-alarms.git
+incubator-openwhisk-package-cloudant.git
+incubator-openwhisk-package-deploy.git
+incubator-openwhisk-package-jira.git
+incubator-openwhisk-package-kafka.git
+incubator-openwhisk-package-pushnotifications.git
+incubator-openwhisk-package-rss.git
+incubator-openwhisk-package-template.git
+incubator-openwhisk-playground.git
+incubator-openwhisk-podspecs.git
+incubator-openwhisk-release.git
+incubator-openwhisk-runtime-ballerina.git
+incubator-openwhisk-runtime-docker.git
+incubator-openwhisk-runtime-go.git
+incubator-openwhisk-runtime-java.git
+incubator-openwhisk-runtime-nodejs.git
+incubator-openwhisk-runtime-php.git
+incubator-openwhisk-runtime-python.git
+incubator-openwhisk-runtime-ruby.git
+incubator-openwhisk-runtime-swift.git
+incubator-openwhisk-sample-matos.git
+incubator-openwhisk-sample-slackbot.git
+incubator-openwhisk-selfserve-test.git
+incubator-openwhisk-slackinvite.git
+incubator-openwhisk-test.git
+incubator-openwhisk-tutorial.git
+incubator-openwhisk-utilities.git
+incubator-openwhisk-vscode.git
+incubator-openwhisk-website.git
+incubator-openwhisk-workshop.git
+incubator-openwhisk-wskdeploy.git
+incubator-openwhisk-xcode.git
+incubator-openwhisk.git
+incubator-pagespeed-cpanel.git
+incubator-pagespeed-debian.git
+incubator-pagespeed-drp.git
+incubator-pagespeed-icu.git
+incubator-pagespeed-mod.git
+incubator-pagespeed-ngx.git
+incubator-pagespeed-optipng.git
+incubator-pagespeed-zlib.git
+incubator-plc4x.git
+incubator-ponymail-site.git
+incubator-ponymail.git
+incubator-pulsar.git
+incubator-sdap-doms.git
+incubator-sdap-edge.git
+incubator-sdap-mudrod.git
+incubator-sdap-nexus.git
+incubator-sdap-nexusproto.git
+incubator-sdap-ningester.git
+incubator-sdap-ningesterpy.git
+incubator-sdap-website.git
+incubator-servicecomb-docs.git
+incubator-servicecomb-java-chassis.git
+incubator-servicecomb-saga.git
+incubator-servicecomb-service-center.git
+incubator-servicecomb-website.git
+incubator-skywalking-data-collect-protocol.git
+incubator-skywalking-oal-tool.git
+incubator-skywalking-ui.git
+incubator-skywalking-website.git
+incubator-skywalking.git
+incubator-superset-site.git
+incubator-superset.git
+incubator-warble-node.git
+incubator-warble-server.git
+incubator-warble-website.git
+incubator-weex-site.git
+incubator-weex.git
+infrastructure-blorp.git
+infrastructure-gitbox-test.git
+infrastructure-puppet.git
+infrastructure-test.git
+infrastructure-website.git
+isis.git
+james-hupa.git
+jspwiki-asf-docs.git
+jspwiki-site.git
+jspwiki.git
+juneau-website.git
+juneau.git
+kafka-site.git
+kafka.git
+karaf-boot.git
+karaf-cave.git
+karaf-cellar.git
+karaf-decanter.git
+karaf-eik.git
+karaf-reactive-components.git
+karaf-site.git
+karaf-webconsole.git
+karaf.git
+kibble-scanners.git
+kibble-website.git
+kibble.git
+kylin.git
+maven-acr-plugin.git
+maven-ant-plugin.git
+maven-antrun-plugin.git
+maven-apache-parent.git
+maven-archetype.git
+maven-archetypes.git
+maven-archiver.git
+maven-artifact-resolver.git
+maven-artifact-transfer.git
+maven-assembly-plugin.git
+maven-changelog-plugin.git
+maven-changes-plugin.git
+maven-checkstyle-plugin.git
+maven-clean-plugin.git
+maven-common-artifact-filters.git
+maven-compiler-plugin.git
+maven-default-skin.git
+maven-dependency-analyzer.git
+maven-dependency-plugin.git
+maven-dependency-tree.git
+maven-deploy-plugin.git
+maven-dist-tool.git
+maven-doap-plugin.git
+maven-docck-plugin.git
+maven-downloader.git
+maven-doxia-converter.git
+maven-doxia-linkcheck.git
+maven-doxia-site.git
+maven-doxia-sitetools.git
+maven-doxia.git
+maven-ear-plugin.git
+maven-ejb-plugin.git
+maven-enforcer.git
+maven-file-management.git
+maven-filtering.git
+maven-fluido-skin.git
+maven-gpg-plugin.git
+maven-help-plugin.git
+maven-indexer.git
+maven-install-plugin.git
+maven-integration-testing.git
+maven-invoker-plugin.git
+maven-invoker.git
+maven-jar-plugin.git
+maven-jarsigner-plugin.git
+maven-jarsigner.git
+maven-javadoc-plugin.git
+maven-jdeprscan-plugin.git
+maven-jdeps-plugin.git
+maven-jenkins-env.git
+maven-jenkins-lib.git
+maven-jlink-plugin.git
+maven-jmod-plugin.git
+maven-jxr.git
+maven-linkcheck-plugin.git
+maven-mapping.git
+maven-osgi.git
+maven-parent.git
+maven-patch-plugin.git
+maven-pdf-plugin.git
+maven-plugin-testing.git
+maven-plugin-tools.git
+maven-pmd-plugin.git
+maven-project-info-reports-plugin.git
+maven-project-utils.git
+maven-rar-plugin.git
+maven-release.git
+maven-remote-resources-plugin.git
+maven-reporting-api.git
+maven-reporting-exec.git
+maven-reporting-impl.git
+maven-repository-builder.git
+maven-repository-plugin.git
+maven-resolver-ant-tasks.git
+maven-resolver.git
+maven-resources-plugin.git
+maven-runtime.git
+maven-scm-publish-plugin.git
+maven-scm.git
+maven-script-interpreter.git
+maven-scripting-plugin.git
+maven-shade-plugin.git
+maven-shared-incremental.git
+maven-shared-io.git
+maven-shared-jar.git
+maven-shared-resources.git
+maven-shared-utils.git
+maven-site-plugin.git
+maven-site.git
+maven-source-plugin.git
+maven-sources.git
+maven-stage-plugin.git
+maven-studies.git
+maven-surefire.git
+maven-toolchains-plugin.git
+maven-verifier-plugin.git
+maven-verifier.git
+maven-wagon.git
+maven-war-plugin.git
+maven.git
+mesos-site.git
+mesos.git
+myfaces-build-tools.git
+myfaces-extcdi.git
+myfaces-extval.git
+myfaces-html5.git
+myfaces-master-pom.git
+myfaces-scripting.git
+myfaces-test.git
+myfaces-tobago.git
+myfaces-trinidad-maven.git
+myfaces-trinidad.git
+myfaces.git
+mynewt-blinky.git
+mynewt-core.git
+mynewt-documentation.git
+mynewt-lorawan.git
+mynewt-mcumgr-cli.git
+mynewt-mcumgr.git
+mynewt-newt.git
+mynewt-newtmgr.git
+mynewt-nfc.git
+mynewt-nffs.git
+mynewt-nimble.git
+mynewt-pkg-bsp.git
+mynewt-pkg-pkg.git
+mynewt-pkg-sdk.git
+mynewt-site.git
+nutch.git
+odftoolkit.git
+oodt.git
+openmeetings-site.git
+openmeetings.git
+opennlp-addons.git
+opennlp-corpus.git
+opennlp-sandbox.git
+opennlp-site.git
+opennlp.git
+openwebbeans-meecrowave-examples.git
+parquet-cpp.git
+parquet-format.git
+parquet-mr.git
+parquet-testing.git
+reef.git
+rocketmq-externals.git
+rocketmq-site.git
+rocketmq.git
+royale-asjs.git
+royale-compiler.git
+royale-docs.git
+royale-tourjs.git
+royale-typedefs.git
+royale-website.git
+sis.git
+sling-adapter-annotations.git
+sling-aggregator.git
+sling-apache-sling-jar-resource-bundle.git
+sling-archetype-parent.git
+sling-bundle-archetype.git
+sling-htl-maven-plugin.git
+sling-ide-tooling.git
+sling-initial-content-archetype.git
+sling-jcrinstall-bundle-archetype.git
+sling-jspc-maven-plugin.git
+sling-launchpad-comparator.git
+sling-launchpad-debian.git
+sling-launchpad-standalone-archetype.git
+sling-launchpad-webapp-archetype.git
+sling-maven-jcrocm-plugin.git
+sling-maven-launchpad-plugin.git
+sling-maven-sling-plugin.git
+sling-org-apache-sling-adapter.git
+sling-org-apache-sling-api.git
+sling-org-apache-sling-app-cms.git
+sling-org-apache-sling-auth-core.git
+sling-org-apache-sling-auth-form.git
+sling-org-apache-sling-auth-xing-api.git
+sling-org-apache-sling-auth-xing-login.git
+sling-org-apache-sling-auth-xing-oauth.git
+sling-org-apache-sling-bnd-models.git
+sling-org-apache-sling-bundleresource-impl.git
+sling-org-apache-sling-caconfig-api.git
+sling-org-apache-sling-caconfig-bnd-plugin.git
+sling-org-apache-sling-caconfig-impl.git
+sling-org-apache-sling-caconfig-integration-tests.git
+sling-org-apache-sling-caconfig-spi.git
+sling-org-apache-sling-capabilities.git
+sling-org-apache-sling-cassandra.git
+sling-org-apache-sling-commons-cache-api.git
+sling-org-apache-sling-commons-cache-container-test.git
+sling-org-apache-sling-commons-cache-ehcache.git
+sling-org-apache-sling-commons-cache-impl.git
+sling-org-apache-sling-commons-cache-portal.git
+sling-org-apache-sling-commons-clam.git
+sling-org-apache-sling-commons-classloader.git
+sling-org-apache-sling-commons-compiler.git
+sling-org-apache-sling-commons-contentdetection.git
+sling-org-apache-sling-commons-fsclassloader.git
+sling-org-apache-sling-commons-html.git
+sling-org-apache-sling-commons-johnzon.git
+sling-org-apache-sling-commons-log-webconsole.git
+sling-org-apache-sling-commons-log.git
+sling-org-apache-sling-commons-logservice.git
+sling-org-apache-sling-commons-messaging-mail.git
+sling-org-apache-sling-commons-messaging.git
+sling-org-apache-sling-commons-metrics-rrd4j.git
+sling-org-apache-sling-commons-metrics.git
+sling-org-apache-sling-commons-mime.git
+sling-org-apache-sling-commons-osgi.git
+sling-org-apache-sling-commons-scheduler.git
+sling-org-apache-sling-commons-testing.git
+sling-org-apache-sling-commons-threaddump.git
+sling-org-apache-sling-commons-threads.git
+sling-org-apache-sling-crankstart-launcher.git
+sling-org-apache-sling-crankstart-test-model.git
+sling-org-apache-sling-crankstart-test-services.git
+sling-org-apache-sling-datasource.git
+sling-org-apache-sling-discovery-api.git
+sling-org-apache-sling-discovery-base.git
+sling-org-apache-sling-discovery-commons.git
+sling-org-apache-sling-discovery-impl.git
+sling-org-apache-sling-discovery-oak.git
+sling-org-apache-sling-discovery-standalone.git
+sling-org-apache-sling-discovery-support.git
+sling-org-apache-sling-distribution-api.git
+sling-org-apache-sling-distribution-avro-serializer.git
+sling-org-apache-sling-distribution-core.git
+sling-org-apache-sling-distribution-it.git
+sling-org-apache-sling-distribution-kryo-serializer.git
+sling-org-apache-sling-distribution-sample.git
+sling-org-apache-sling-dynamic-include.git
+sling-org-apache-sling-engine.git
+sling-org-apache-sling-event-api.git
+sling-org-apache-sling-event-dea.git
+sling-org-apache-sling-event.git
+sling-org-apache-sling-extensions-classloader-leak-detector.git
+sling-org-apache-sling-extensions-logback-groovy-fragment.git
+sling-org-apache-sling-extensions-slf4j-mdc.git
+sling-org-apache-sling-extensions-webconsolebranding.git
+sling-org-apache-sling-extensions-webconsolesecurityprovider.git
+sling-org-apache-sling-feature-analyser.git
+sling-org-apache-sling-feature-applicationbuilder.git
+sling-org-apache-sling-feature-io.git
+sling-org-apache-sling-feature-karaf.git
+sling-org-apache-sling-feature-launcher.git
+sling-org-apache-sling-feature-modelconverter.git
+sling-org-apache-sling-feature-resolver.git
+sling-org-apache-sling-feature.git
+sling-org-apache-sling-featureflags.git
+sling-org-apache-sling-file-optimization.git
+sling-org-apache-sling-fragment-activation.git
+sling-org-apache-sling-fragment-nashorn.git
+sling-org-apache-sling-fragment-transaction.git
+sling-org-apache-sling-fragment-ws.git
+sling-org-apache-sling-fragment-xml.git
+sling-org-apache-sling-fsresource.git
+sling-org-apache-sling-hapi-client.git
+sling-org-apache-sling-hapi-samplecontent.git
+sling-org-apache-sling-hapi.git
+sling-org-apache-sling-hc-annotations.git
+sling-org-apache-sling-hc-api.git
+sling-org-apache-sling-hc-core.git
+sling-org-apache-sling-hc-it.git
+sling-org-apache-sling-hc-junit-bridge.git
+sling-org-apache-sling-hc-samples.git
+sling-org-apache-sling-hc-support.git
+sling-org-apache-sling-hc-webconsole.git
+sling-org-apache-sling-i18n.git
+sling-org-apache-sling-installer-console.git
+sling-org-apache-sling-installer-core.git
+sling-org-apache-sling-installer-factory-configuration.git
+sling-org-apache-sling-installer-factory-deploymentpackage.git
+sling-org-apache-sling-installer-factory-model.git
+sling-org-apache-sling-installer-factory-packages.git
+sling-org-apache-sling-installer-factory-subsystems-base.git
+sling-org-apache-sling-installer-factory-subsystems.git
+sling-org-apache-sling-installer-hc.git
+sling-org-apache-sling-installer-it.git
+sling-org-apache-sling-installer-provider-file.git
+sling-org-apache-sling-installer-provider-jcr.git
+sling-org-apache-sling-javax-activation.git
+sling-org-apache-sling-jcr-api.git
+sling-org-apache-sling-jcr-base.git
+sling-org-apache-sling-jcr-classloader.git
+sling-org-apache-sling-jcr-contentloader.git
+sling-org-apache-sling-jcr-contentparser.git
+sling-org-apache-sling-jcr-davex.git
+sling-org-apache-sling-jcr-jackrabbit-accessmanager.git
+sling-org-apache-sling-jcr-jackrabbit-base.git
+sling-org-apache-sling-jcr-jackrabbit-usermanager.git
+sling-org-apache-sling-jcr-jcr-wrapper.git
+sling-org-apache-sling-jcr-js-nodetypes.git
+sling-org-apache-sling-jcr-oak-server.git
+sling-org-apache-sling-jcr-registration.git
+sling-org-apache-sling-jcr-repoinit.git
+sling-org-apache-sling-jcr-repository-it-resource-versioning.git
+sling-org-apache-sling-jcr-resource.git
+sling-org-apache-sling-jcr-resourcesecurity.git
+sling-org-apache-sling-jcr-webconsole.git
+sling-org-apache-sling-jcr-webdav.git
+sling-org-apache-sling-jms.git
+sling-org-apache-sling-jmx-provider.git
+sling-org-apache-sling-jobs-it-services.git
+sling-org-apache-sling-jobs-it.git
+sling-org-apache-sling-jobs.git
+sling-org-apache-sling-junit-core.git
+sling-org-apache-sling-junit-healthcheck.git
+sling-org-apache-sling-junit-performance.git
+sling-org-apache-sling-junit-remote.git
+sling-org-apache-sling-junit-scriptable.git
+sling-org-apache-sling-junit-teleporter.git
+sling-org-apache-sling-karaf-configs.git
+sling-org-apache-sling-karaf-distribution.git
+sling-org-apache-sling-karaf-features.git
+sling-org-apache-sling-karaf-integration-tests.git
+sling-org-apache-sling-karaf-launchpad-oak-tar-integration-tests.git
+sling-org-apache-sling-launchpad-api.git
+sling-org-apache-sling-launchpad-base.git
+sling-org-apache-sling-launchpad-contrib-testing.git
+sling-org-apache-sling-launchpad-installer.git
+sling-org-apache-sling-launchpad-integration-tests.git
+sling-org-apache-sling-launchpad-test-bundles.git
+sling-org-apache-sling-launchpad-test-fragment.git
+sling-org-apache-sling-launchpad-test-services-war.git
+sling-org-apache-sling-launchpad-test-services.git
+sling-org-apache-sling-launchpad-testing-war.git
+sling-org-apache-sling-launchpad-testing.git
+sling-org-apache-sling-models-api.git
+sling-org-apache-sling-models-impl.git
+sling-org-apache-sling-models-integration-tests.git
+sling-org-apache-sling-models-jacksonexporter.git
+sling-org-apache-sling-models-validation-impl.git
+sling-org-apache-sling-mom.git
+sling-org-apache-sling-mongodb.git
+sling-org-apache-sling-nosql-couchbase-client.git
+sling-org-apache-sling-nosql-couchbase-resourceprovider.git
+sling-org-apache-sling-nosql-generic.git
+sling-org-apache-sling-nosql-launchpad.git
+sling-org-apache-sling-nosql-mongodb-resourceprovider.git
+sling-org-apache-sling-oak-restrictions.git
+sling-org-apache-sling-paxexam-util.git
+sling-org-apache-sling-performance.git
+sling-org-apache-sling-pipes.git
+sling-org-apache-sling-provisioning-model.git
+sling-org-apache-sling-query.git
+sling-org-apache-sling-repoinit-it.git
+sling-org-apache-sling-repoinit-parser.git
+sling-org-apache-sling-reqanalyzer.git
+sling-org-apache-sling-resource-editor.git
+sling-org-apache-sling-resource-filter.git
+sling-org-apache-sling-resource-inventory.git
+sling-org-apache-sling-resource-presence.git
+sling-org-apache-sling-resourceaccesssecurity-it.git
+sling-org-apache-sling-resourceaccesssecurity.git
+sling-org-apache-sling-resourcebuilder.git
+sling-org-apache-sling-resourcecollection.git
+sling-org-apache-sling-resourcemerger.git
+sling-org-apache-sling-resourceresolver.git
+sling-org-apache-sling-rewriter.git
+sling-org-apache-sling-scripting-api.git
+sling-org-apache-sling-scripting-console.git
+sling-org-apache-sling-scripting-core.git
+sling-org-apache-sling-scripting-el-api.git
+sling-org-apache-sling-scripting-esx.git
+sling-org-apache-sling-scripting-freemarker.git
+sling-org-apache-sling-scripting-groovy.git
+sling-org-apache-sling-scripting-java.git
+sling-org-apache-sling-scripting-javascript.git
+sling-org-apache-sling-scripting-jsp-api.git
+sling-org-apache-sling-scripting-jsp-jstl.git
+sling-org-apache-sling-scripting-jsp-taglib.git
+sling-org-apache-sling-scripting-jsp.git
+sling-org-apache-sling-scripting-sightly-compiler-java.git
+sling-org-apache-sling-scripting-sightly-compiler.git
+sling-org-apache-sling-scripting-sightly-js-provider.git
+sling-org-apache-sling-scripting-sightly-models-provider.git
+sling-org-apache-sling-scripting-sightly-repl.git
+sling-org-apache-sling-scripting-sightly-testing-content.git
+sling-org-apache-sling-scripting-sightly-testing.git
+sling-org-apache-sling-scripting-sightly.git
+sling-org-apache-sling-scripting-thymeleaf.git
+sling-org-apache-sling-scripting-xproc.git
+sling-org-apache-sling-security.git
+sling-org-apache-sling-serviceuser-webconsole.git
+sling-org-apache-sling-serviceusermapper.git
+sling-org-apache-sling-servlet-helpers.git
+sling-org-apache-sling-servlets-annotations-it.git
+sling-org-apache-sling-servlets-annotations.git
+sling-org-apache-sling-servlets-get.git
+sling-org-apache-sling-servlets-post.git
+sling-org-apache-sling-servlets-resolver.git
+sling-org-apache-sling-settings.git
+sling-org-apache-sling-starter-content.git
+sling-org-apache-sling-starter-docker.git
+sling-org-apache-sling-starter-startup.git
+sling-org-apache-sling-starter.git
+sling-org-apache-sling-startupfilter-disabler.git
+sling-org-apache-sling-startupfilter.git
+sling-org-apache-sling-superimposing.git
+sling-org-apache-sling-tail.git
+sling-org-apache-sling-tenant.git
+sling-org-apache-sling-testing-caconfig-mock-plugin.git
+sling-org-apache-sling-testing-clients.git
+sling-org-apache-sling-testing-email.git
+sling-org-apache-sling-testing-hamcrest.git
+sling-org-apache-sling-testing-jcr-mock.git
+sling-org-apache-sling-testing-logging-mock.git
+sling-org-apache-sling-testing-osgi-mock.git
+sling-org-apache-sling-testing-paxexam.git
+sling-org-apache-sling-testing-resourceresolver-mock.git
+sling-org-apache-sling-testing-rules.git
+sling-org-apache-sling-testing-serversetup.git
+sling-org-apache-sling-testing-sling-mock-oak.git
+sling-org-apache-sling-testing-sling-mock.git
+sling-org-apache-sling-tooling-support-install.git
+sling-org-apache-sling-tooling-support-source.git
+sling-org-apache-sling-tracer.git
+sling-org-apache-sling-urlrewriter.git
+sling-org-apache-sling-validation-api.git
+sling-org-apache-sling-validation-core.git
+sling-org-apache-sling-validation-examples.git
+sling-org-apache-sling-validation-test-services.git
+sling-org-apache-sling-xss.git
+sling-parent.git
+sling-samples.git
+sling-servlet-archetype.git
+sling-site.git
+sling-slingfeature-maven-plugin.git
+sling-slingstart-archetype.git
+sling-slingstart-maven-plugin.git
+sling-taglib-archetype.git
+sling-tooling-jenkins.git
+sling-tooling-release.git
+sling-tooling-scm.git
+sling-whiteboard.git
+streams-examples.git
+streams-master.git
+streams.git
+struts-annotations.git
+struts-archetypes.git
+struts-archive.git
+struts-examples.git
+struts-extras.git
+struts-master.git
+struts-maven.git
+struts-sandbox.git
+struts-site.git
+struts.git
+tajo-site.git
+tajo.git
+tcl-moddtcl.git
+tcl-modtcl.git
+tcl-rivet.git
+tcl-websh.git
+thrift.git
+tika.git
+tomcat-training.git
+trafficcontrol-website.git
+trafficcontrol.git
+trafficserver-qa.git
+trafficserver.git
+turbine-archetypes.git
+uima-uimafit.git
+whimsy.git
diff --git a/distribution/src/main/resources/conf/apache-repos.txt b/distribution/src/main/resources/conf/apache-repos.txt
new file mode 100644
index 0000000..23bf992
--- /dev/null
+++ b/distribution/src/main/resources/conf/apache-repos.txt
@@ -0,0 +1,838 @@
+/home/mattmann/drat/deploy/data/clones/accumulo-bsp Apache-ACCUMULO-BSP http://github.com/apache/accumulo-bsp.git Apache-ACCUMULO-BSP
+/home/mattmann/drat/deploy/data/clones/accumulo-docker Apache-ACCUMULO-DOCKER http://github.com/apache/accumulo-docker.git Apache-ACCUMULO-DOCKER
+/home/mattmann/drat/deploy/data/clones/accumulo-examples Apache-ACCUMULO-EXAMPLES http://github.com/apache/accumulo-examples.git Apache-ACCUMULO-EXAMPLES
+/home/mattmann/drat/deploy/data/clones/accumulo-instamo-archetype Apache-ACCUMULO-INSTAMO-ARCHETYPE http://github.com/apache/accumulo-instamo-archetype.git Apache-ACCUMULO-INSTAMO-ARCHETYPE
+/home/mattmann/drat/deploy/data/clones/accumulo-pig Apache-ACCUMULO-PIG http://github.com/apache/accumulo-pig.git Apache-ACCUMULO-PIG
+/home/mattmann/drat/deploy/data/clones/accumulo-testing Apache-ACCUMULO-TESTING http://github.com/apache/accumulo-testing.git Apache-ACCUMULO-TESTING
+/home/mattmann/drat/deploy/data/clones/accumulo-website Apache-ACCUMULO-WEBSITE http://github.com/apache/accumulo-website.git Apache-ACCUMULO-WEBSITE
+/home/mattmann/drat/deploy/data/clones/accumulo-wikisearch Apache-ACCUMULO-WIKISEARCH http://github.com/apache/accumulo-wikisearch.git Apache-ACCUMULO-WIKISEARCH
+/home/mattmann/drat/deploy/data/clones/accumulo Apache-ACCUMULO http://github.com/apache/accumulo.git Apache-ACCUMULO
+/home/mattmann/drat/deploy/data/clones/airavata-django-portal Apache-AIRAVATA-DJANGO-PORTAL http://github.com/apache/airavata-django-portal.git Apache-AIRAVATA-DJANGO-PORTAL
+/home/mattmann/drat/deploy/data/clones/airavata-docs Apache-AIRAVATA-DOCS http://github.com/apache/airavata-docs.git Apache-AIRAVATA-DOCS
+/home/mattmann/drat/deploy/data/clones/airavata-labs Apache-AIRAVATA-LABS http://github.com/apache/airavata-labs.git Apache-AIRAVATA-LABS
+/home/mattmann/drat/deploy/data/clones/airavata-php-gateway Apache-AIRAVATA-PHP-GATEWAY http://github.com/apache/airavata-php-gateway.git Apache-AIRAVATA-PHP-GATEWAY
+/home/mattmann/drat/deploy/data/clones/airavata-sandbox Apache-AIRAVATA-SANDBOX http://github.com/apache/airavata-sandbox.git Apache-AIRAVATA-SANDBOX
+/home/mattmann/drat/deploy/data/clones/airavata-site Apache-AIRAVATA-SITE http://github.com/apache/airavata-site.git Apache-AIRAVATA-SITE
+/home/mattmann/drat/deploy/data/clones/airavata Apache-AIRAVATA http://github.com/apache/airavata.git Apache-AIRAVATA
+/home/mattmann/drat/deploy/data/clones/ambari Apache-AMBARI http://github.com/apache/ambari.git Apache-AMBARI
+/home/mattmann/drat/deploy/data/clones/apachecon-site Apache-APACHECON-SITE http://github.com/apache/apachecon-site.git Apache-APACHECON-SITE
+/home/mattmann/drat/deploy/data/clones/apex-core Apache-APEX-CORE http://github.com/apache/apex-core.git Apache-APEX-CORE
+/home/mattmann/drat/deploy/data/clones/apex-malhar Apache-APEX-MALHAR http://github.com/apache/apex-malhar.git Apache-APEX-MALHAR
+/home/mattmann/drat/deploy/data/clones/apex-site Apache-APEX-SITE http://github.com/apache/apex-site.git Apache-APEX-SITE
+/home/mattmann/drat/deploy/data/clones/archiva-parent Apache-ARCHIVA-PARENT http://github.com/apache/archiva-parent.git Apache-ARCHIVA-PARENT
+/home/mattmann/drat/deploy/data/clones/archiva-redback-components-expression-evaluator Apache-ARCHIVA-REDBACK-COMPONENTS-EXPRESSION-EVALUATOR http://github.com/apache/archiva-redback-components-expression-evaluator.git Apache-ARCHIVA-REDBACK-COMPONENTS-EXPRESSION-EVALUATOR
+/home/mattmann/drat/deploy/data/clones/archiva-redback-components-modello-plugins Apache-ARCHIVA-REDBACK-COMPONENTS-MODELLO-PLUGINS http://github.com/apache/archiva-redback-components-modello-plugins.git Apache-ARCHIVA-REDBACK-COMPONENTS-MODELLO-PLUGINS
+/home/mattmann/drat/deploy/data/clones/archiva-redback-components-parent Apache-ARCHIVA-REDBACK-COMPONENTS-PARENT http://github.com/apache/archiva-redback-components-parent.git Apache-ARCHIVA-REDBACK-COMPONENTS-PARENT
+/home/mattmann/drat/deploy/data/clones/archiva-redback-components-redback-features Apache-ARCHIVA-REDBACK-COMPONENTS-REDBACK-FEATURES http://github.com/apache/archiva-redback-components-redback-features.git Apache-ARCHIVA-REDBACK-COMPONENTS-REDBACK-FEATURES
+/home/mattmann/drat/deploy/data/clones/archiva-redback-components-site Apache-ARCHIVA-REDBACK-COMPONENTS-SITE http://github.com/apache/archiva-redback-components-site.git Apache-ARCHIVA-REDBACK-COMPONENTS-SITE
+/home/mattmann/drat/deploy/data/clones/archiva-redback-components-spring-apacheds Apache-ARCHIVA-REDBACK-COMPONENTS-SPRING-APACHEDS http://github.com/apache/archiva-redback-components-spring-apacheds.git Apache-ARCHIVA-REDBACK-COMPONENTS-SPRING-APACHEDS
+/home/mattmann/drat/deploy/data/clones/archiva-redback-components-spring-cache Apache-ARCHIVA-REDBACK-COMPONENTS-SPRING-CACHE http://github.com/apache/archiva-redback-components-spring-cache.git Apache-ARCHIVA-REDBACK-COMPONENTS-SPRING-CACHE
+/home/mattmann/drat/deploy/data/clones/archiva-redback-components-spring-quartz Apache-ARCHIVA-REDBACK-COMPONENTS-SPRING-QUARTZ http://github.com/apache/archiva-redback-components-spring-quartz.git Apache-ARCHIVA-REDBACK-COMPONENTS-SPRING-QUARTZ
+/home/mattmann/drat/deploy/data/clones/archiva-redback-components-spring-registry Apache-ARCHIVA-REDBACK-COMPONENTS-SPRING-REGISTRY http://github.com/apache/archiva-redback-components-spring-registry.git Apache-ARCHIVA-REDBACK-COMPONENTS-SPRING-REGISTRY
+/home/mattmann/drat/deploy/data/clones/archiva-redback-components-spring-taskqueue Apache-ARCHIVA-REDBACK-COMPONENTS-SPRING-TASKQUEUE http://github.com/apache/archiva-redback-components-spring-taskqueue.git Apache-ARCHIVA-REDBACK-COMPONENTS-SPRING-TASKQUEUE
+/home/mattmann/drat/deploy/data/clones/archiva-redback-components-spring-utils Apache-ARCHIVA-REDBACK-COMPONENTS-SPRING-UTILS http://github.com/apache/archiva-redback-components-spring-utils.git Apache-ARCHIVA-REDBACK-COMPONENTS-SPRING-UTILS
+/home/mattmann/drat/deploy/data/clones/archiva-redback-core Apache-ARCHIVA-REDBACK-CORE http://github.com/apache/archiva-redback-core.git Apache-ARCHIVA-REDBACK-CORE
+/home/mattmann/drat/deploy/data/clones/archiva-sandbox Apache-ARCHIVA-SANDBOX http://github.com/apache/archiva-sandbox.git Apache-ARCHIVA-SANDBOX
+/home/mattmann/drat/deploy/data/clones/archiva-site Apache-ARCHIVA-SITE http://github.com/apache/archiva-site.git Apache-ARCHIVA-SITE
+/home/mattmann/drat/deploy/data/clones/archiva Apache-ARCHIVA http://github.com/apache/archiva.git Apache-ARCHIVA
+/home/mattmann/drat/deploy/data/clones/aries-tx-control Apache-ARIES-TX-CONTROL http://github.com/apache/aries-tx-control.git Apache-ARIES-TX-CONTROL
+/home/mattmann/drat/deploy/data/clones/arrow-dist Apache-ARROW-DIST http://github.com/apache/arrow-dist.git Apache-ARROW-DIST
+/home/mattmann/drat/deploy/data/clones/arrow-testing Apache-ARROW-TESTING http://github.com/apache/arrow-testing.git Apache-ARROW-TESTING
+/home/mattmann/drat/deploy/data/clones/arrow Apache-ARROW http://github.com/apache/arrow.git Apache-ARROW
+/home/mattmann/drat/deploy/data/clones/attic-test Apache-ATTIC-TEST http://github.com/apache/attic-test.git Apache-ATTIC-TEST
+/home/mattmann/drat/deploy/data/clones/aurora-packaging Apache-AURORA-PACKAGING http://github.com/apache/aurora-packaging.git Apache-AURORA-PACKAGING
+/home/mattmann/drat/deploy/data/clones/aurora Apache-AURORA http://github.com/apache/aurora.git Apache-AURORA
+/home/mattmann/drat/deploy/data/clones/avro Apache-AVRO http://github.com/apache/avro.git Apache-AVRO
+/home/mattmann/drat/deploy/data/clones/beam-site Apache-BEAM-SITE http://github.com/apache/beam-site.git Apache-BEAM-SITE
+/home/mattmann/drat/deploy/data/clones/beam-wheels Apache-BEAM-WHEELS http://github.com/apache/beam-wheels.git Apache-BEAM-WHEELS
+/home/mattmann/drat/deploy/data/clones/beam Apache-BEAM http://github.com/apache/beam.git Apache-BEAM
+/home/mattmann/drat/deploy/data/clones/bookkeeper Apache-BOOKKEEPER http://github.com/apache/bookkeeper.git Apache-BOOKKEEPER
+/home/mattmann/drat/deploy/data/clones/camel-website Apache-CAMEL-WEBSITE http://github.com/apache/camel-website.git Apache-CAMEL-WEBSITE
+/home/mattmann/drat/deploy/data/clones/camel Apache-CAMEL http://github.com/apache/camel.git Apache-CAMEL
+/home/mattmann/drat/deploy/data/clones/cloudstack-cloudmonkey Apache-CLOUDSTACK-CLOUDMONKEY http://github.com/apache/cloudstack-cloudmonkey.git Apache-CLOUDSTACK-CLOUDMONKEY
+/home/mattmann/drat/deploy/data/clones/cloudstack-docs-admin Apache-CLOUDSTACK-DOCS-ADMIN http://github.com/apache/cloudstack-docs-admin.git Apache-CLOUDSTACK-DOCS-ADMIN
+/home/mattmann/drat/deploy/data/clones/cloudstack-docs-install Apache-CLOUDSTACK-DOCS-INSTALL http://github.com/apache/cloudstack-docs-install.git Apache-CLOUDSTACK-DOCS-INSTALL
+/home/mattmann/drat/deploy/data/clones/cloudstack-docs-rn Apache-CLOUDSTACK-DOCS-RN http://github.com/apache/cloudstack-docs-rn.git Apache-CLOUDSTACK-DOCS-RN
+/home/mattmann/drat/deploy/data/clones/cloudstack-docs Apache-CLOUDSTACK-DOCS http://github.com/apache/cloudstack-docs.git Apache-CLOUDSTACK-DOCS
+/home/mattmann/drat/deploy/data/clones/cloudstack-documentation Apache-CLOUDSTACK-DOCUMENTATION http://github.com/apache/cloudstack-documentation.git Apache-CLOUDSTACK-DOCUMENTATION
+/home/mattmann/drat/deploy/data/clones/cloudstack-ec2stack Apache-CLOUDSTACK-EC2STACK http://github.com/apache/cloudstack-ec2stack.git Apache-CLOUDSTACK-EC2STACK
+/home/mattmann/drat/deploy/data/clones/cloudstack-gcestack Apache-CLOUDSTACK-GCESTACK http://github.com/apache/cloudstack-gcestack.git Apache-CLOUDSTACK-GCESTACK
+/home/mattmann/drat/deploy/data/clones/cloudstack-www Apache-CLOUDSTACK-WWW http://github.com/apache/cloudstack-www.git Apache-CLOUDSTACK-WWW
+/home/mattmann/drat/deploy/data/clones/cloudstack Apache-CLOUDSTACK http://github.com/apache/cloudstack.git Apache-CLOUDSTACK
+/home/mattmann/drat/deploy/data/clones/commons-geometry Apache-COMMONS-GEOMETRY http://github.com/apache/commons-geometry.git Apache-COMMONS-GEOMETRY
+/home/mattmann/drat/deploy/data/clones/commons-jexl Apache-COMMONS-JEXL http://github.com/apache/commons-jexl.git Apache-COMMONS-JEXL
+/home/mattmann/drat/deploy/data/clones/commons-signing Apache-COMMONS-SIGNING http://github.com/apache/commons-signing.git Apache-COMMONS-SIGNING
+/home/mattmann/drat/deploy/data/clones/commons-testrepo Apache-COMMONS-TESTREPO http://github.com/apache/commons-testrepo.git Apache-COMMONS-TESTREPO
+/home/mattmann/drat/deploy/data/clones/commons-weaver Apache-COMMONS-WEAVER http://github.com/apache/commons-weaver.git Apache-COMMONS-WEAVER
+/home/mattmann/drat/deploy/data/clones/cordova-amazon-fireos Apache-CORDOVA-AMAZON-FIREOS http://github.com/apache/cordova-amazon-fireos.git Apache-CORDOVA-AMAZON-FIREOS
+/home/mattmann/drat/deploy/data/clones/cordova-android Apache-CORDOVA-ANDROID http://github.com/apache/cordova-android.git Apache-CORDOVA-ANDROID
+/home/mattmann/drat/deploy/data/clones/cordova-apache-board-reports Apache-CORDOVA-APACHE-BOARD-REPORTS http://github.com/apache/cordova-apache-board-reports.git Apache-CORDOVA-APACHE-BOARD-REPORTS
+/home/mattmann/drat/deploy/data/clones/cordova-app-harness Apache-CORDOVA-APP-HARNESS http://github.com/apache/cordova-app-harness.git Apache-CORDOVA-APP-HARNESS
+/home/mattmann/drat/deploy/data/clones/cordova-app-hello-world Apache-CORDOVA-APP-HELLO-WORLD http://github.com/apache/cordova-app-hello-world.git Apache-CORDOVA-APP-HELLO-WORLD
+/home/mattmann/drat/deploy/data/clones/cordova-bada-wac Apache-CORDOVA-BADA-WAC http://github.com/apache/cordova-bada-wac.git Apache-CORDOVA-BADA-WAC
+/home/mattmann/drat/deploy/data/clones/cordova-bada Apache-CORDOVA-BADA http://github.com/apache/cordova-bada.git Apache-CORDOVA-BADA
+/home/mattmann/drat/deploy/data/clones/cordova-blackberry Apache-CORDOVA-BLACKBERRY http://github.com/apache/cordova-blackberry.git Apache-CORDOVA-BLACKBERRY
+/home/mattmann/drat/deploy/data/clones/cordova-browser Apache-CORDOVA-BROWSER http://github.com/apache/cordova-browser.git Apache-CORDOVA-BROWSER
+/home/mattmann/drat/deploy/data/clones/cordova-cli Apache-CORDOVA-CLI http://github.com/apache/cordova-cli.git Apache-CORDOVA-CLI
+/home/mattmann/drat/deploy/data/clones/cordova-coho Apache-CORDOVA-COHO http://github.com/apache/cordova-coho.git Apache-CORDOVA-COHO
+/home/mattmann/drat/deploy/data/clones/cordova-common Apache-CORDOVA-COMMON http://github.com/apache/cordova-common.git Apache-CORDOVA-COMMON
+/home/mattmann/drat/deploy/data/clones/cordova-create Apache-CORDOVA-CREATE http://github.com/apache/cordova-create.git Apache-CORDOVA-CREATE
+/home/mattmann/drat/deploy/data/clones/cordova-discuss Apache-CORDOVA-DISCUSS http://github.com/apache/cordova-discuss.git Apache-CORDOVA-DISCUSS
+/home/mattmann/drat/deploy/data/clones/cordova-docs Apache-CORDOVA-DOCS http://github.com/apache/cordova-docs.git Apache-CORDOVA-DOCS
+/home/mattmann/drat/deploy/data/clones/cordova-electron Apache-CORDOVA-ELECTRON http://github.com/apache/cordova-electron.git Apache-CORDOVA-ELECTRON
+/home/mattmann/drat/deploy/data/clones/cordova-fauxton-server Apache-CORDOVA-FAUXTON-SERVER http://github.com/apache/cordova-fauxton-server.git Apache-CORDOVA-FAUXTON-SERVER
+/home/mattmann/drat/deploy/data/clones/cordova-fetch Apache-CORDOVA-FETCH http://github.com/apache/cordova-fetch.git Apache-CORDOVA-FETCH
+/home/mattmann/drat/deploy/data/clones/cordova-firefoxos Apache-CORDOVA-FIREFOXOS http://github.com/apache/cordova-firefoxos.git Apache-CORDOVA-FIREFOXOS
+/home/mattmann/drat/deploy/data/clones/cordova-ios Apache-CORDOVA-IOS http://github.com/apache/cordova-ios.git Apache-CORDOVA-IOS
+/home/mattmann/drat/deploy/data/clones/cordova-js Apache-CORDOVA-JS http://github.com/apache/cordova-js.git Apache-CORDOVA-JS
+/home/mattmann/drat/deploy/data/clones/cordova-labs Apache-CORDOVA-LABS http://github.com/apache/cordova-labs.git Apache-CORDOVA-LABS
+/home/mattmann/drat/deploy/data/clones/cordova-lib Apache-CORDOVA-LIB http://github.com/apache/cordova-lib.git Apache-CORDOVA-LIB
+/home/mattmann/drat/deploy/data/clones/cordova-medic Apache-CORDOVA-MEDIC http://github.com/apache/cordova-medic.git Apache-CORDOVA-MEDIC
+/home/mattmann/drat/deploy/data/clones/cordova-mobile-spec Apache-CORDOVA-MOBILE-SPEC http://github.com/apache/cordova-mobile-spec.git Apache-CORDOVA-MOBILE-SPEC
+/home/mattmann/drat/deploy/data/clones/cordova-new-committer-and-pmc Apache-CORDOVA-NEW-COMMITTER-AND-PMC http://github.com/apache/cordova-new-committer-and-pmc.git Apache-CORDOVA-NEW-COMMITTER-AND-PMC
+/home/mattmann/drat/deploy/data/clones/cordova-node-xcode Apache-CORDOVA-NODE-XCODE http://github.com/apache/cordova-node-xcode.git Apache-CORDOVA-NODE-XCODE
+/home/mattmann/drat/deploy/data/clones/cordova-osx Apache-CORDOVA-OSX http://github.com/apache/cordova-osx.git Apache-CORDOVA-OSX
+/home/mattmann/drat/deploy/data/clones/cordova-paramedic Apache-CORDOVA-PARAMEDIC http://github.com/apache/cordova-paramedic.git Apache-CORDOVA-PARAMEDIC
+/home/mattmann/drat/deploy/data/clones/cordova-plugin-battery-status Apache-CORDOVA-PLUGIN-BATTERY-STATUS http://github.com/apache/cordova-plugin-battery-status.git Apache-CORDOVA-PLUGIN-BATTERY-STATUS
+/home/mattmann/drat/deploy/data/clones/cordova-plugin-camera Apache-CORDOVA-PLUGIN-CAMERA http://github.com/apache/cordova-plugin-camera.git Apache-CORDOVA-PLUGIN-CAMERA
+/home/mattmann/drat/deploy/data/clones/cordova-plugin-compat Apache-CORDOVA-PLUGIN-COMPAT http://github.com/apache/cordova-plugin-compat.git Apache-CORDOVA-PLUGIN-COMPAT
+/home/mattmann/drat/deploy/data/clones/cordova-plugin-console Apache-CORDOVA-PLUGIN-CONSOLE http://github.com/apache/cordova-plugin-console.git Apache-CORDOVA-PLUGIN-CONSOLE
+/home/mattmann/drat/deploy/data/clones/cordova-plugin-contacts Apache-CORDOVA-PLUGIN-CONTACTS http://github.com/apache/cordova-plugin-contacts.git Apache-CORDOVA-PLUGIN-CONTACTS
+/home/mattmann/drat/deploy/data/clones/cordova-plugin-device-motion Apache-CORDOVA-PLUGIN-DEVICE-MOTION http://github.com/apache/cordova-plugin-device-motion.git Apache-CORDOVA-PLUGIN-DEVICE-MOTION
+/home/mattmann/drat/deploy/data/clones/cordova-plugin-device-orientation Apache-CORDOVA-PLUGIN-DEVICE-ORIENTATION http://github.com/apache/cordova-plugin-device-orientation.git Apache-CORDOVA-PLUGIN-DEVICE-ORIENTATION
+/home/mattmann/drat/deploy/data/clones/cordova-plugin-device Apache-CORDOVA-PLUGIN-DEVICE http://github.com/apache/cordova-plugin-device.git Apache-CORDOVA-PLUGIN-DEVICE
+/home/mattmann/drat/deploy/data/clones/cordova-plugin-dialogs Apache-CORDOVA-PLUGIN-DIALOGS http://github.com/apache/cordova-plugin-dialogs.git Apache-CORDOVA-PLUGIN-DIALOGS
+/home/mattmann/drat/deploy/data/clones/cordova-plugin-file-transfer Apache-CORDOVA-PLUGIN-FILE-TRANSFER http://github.com/apache/cordova-plugin-file-transfer.git Apache-CORDOVA-PLUGIN-FILE-TRANSFER
+/home/mattmann/drat/deploy/data/clones/cordova-plugin-file Apache-CORDOVA-PLUGIN-FILE http://github.com/apache/cordova-plugin-file.git Apache-CORDOVA-PLUGIN-FILE
+/home/mattmann/drat/deploy/data/clones/cordova-plugin-geolocation Apache-CORDOVA-PLUGIN-GEOLOCATION http://github.com/apache/cordova-plugin-geolocation.git Apache-CORDOVA-PLUGIN-GEOLOCATION
+/home/mattmann/drat/deploy/data/clones/cordova-plugin-globalization Apache-CORDOVA-PLUGIN-GLOBALIZATION http://github.com/apache/cordova-plugin-globalization.git Apache-CORDOVA-PLUGIN-GLOBALIZATION
+/home/mattmann/drat/deploy/data/clones/cordova-plugin-inappbrowser Apache-CORDOVA-PLUGIN-INAPPBROWSER http://github.com/apache/cordova-plugin-inappbrowser.git Apache-CORDOVA-PLUGIN-INAPPBROWSER
+/home/mattmann/drat/deploy/data/clones/cordova-plugin-legacy-whitelist Apache-CORDOVA-PLUGIN-LEGACY-WHITELIST http://github.com/apache/cordova-plugin-legacy-whitelist.git Apache-CORDOVA-PLUGIN-LEGACY-WHITELIST
+/home/mattmann/drat/deploy/data/clones/cordova-plugin-media-capture Apache-CORDOVA-PLUGIN-MEDIA-CAPTURE http://github.com/apache/cordova-plugin-media-capture.git Apache-CORDOVA-PLUGIN-MEDIA-CAPTURE
+/home/mattmann/drat/deploy/data/clones/cordova-plugin-media Apache-CORDOVA-PLUGIN-MEDIA http://github.com/apache/cordova-plugin-media.git Apache-CORDOVA-PLUGIN-MEDIA
+/home/mattmann/drat/deploy/data/clones/cordova-plugin-network-information Apache-CORDOVA-PLUGIN-NETWORK-INFORMATION http://github.com/apache/cordova-plugin-network-information.git Apache-CORDOVA-PLUGIN-NETWORK-INFORMATION
+/home/mattmann/drat/deploy/data/clones/cordova-plugin-screen-orientation Apache-CORDOVA-PLUGIN-SCREEN-ORIENTATION http://github.com/apache/cordova-plugin-screen-orientation.git Apache-CORDOVA-PLUGIN-SCREEN-ORIENTATION
+/home/mattmann/drat/deploy/data/clones/cordova-plugin-splashscreen Apache-CORDOVA-PLUGIN-SPLASHSCREEN http://github.com/apache/cordova-plugin-splashscreen.git Apache-CORDOVA-PLUGIN-SPLASHSCREEN
+/home/mattmann/drat/deploy/data/clones/cordova-plugin-statusbar Apache-CORDOVA-PLUGIN-STATUSBAR http://github.com/apache/cordova-plugin-statusbar.git Apache-CORDOVA-PLUGIN-STATUSBAR
+/home/mattmann/drat/deploy/data/clones/cordova-plugin-test-framework Apache-CORDOVA-PLUGIN-TEST-FRAMEWORK http://github.com/apache/cordova-plugin-test-framework.git Apache-CORDOVA-PLUGIN-TEST-FRAMEWORK
+/home/mattmann/drat/deploy/data/clones/cordova-plugin-vibration Apache-CORDOVA-PLUGIN-VIBRATION http://github.com/apache/cordova-plugin-vibration.git Apache-CORDOVA-PLUGIN-VIBRATION
+/home/mattmann/drat/deploy/data/clones/cordova-plugin-whitelist Apache-CORDOVA-PLUGIN-WHITELIST http://github.com/apache/cordova-plugin-whitelist.git Apache-CORDOVA-PLUGIN-WHITELIST
+/home/mattmann/drat/deploy/data/clones/cordova-plugin-wkwebview-engine Apache-CORDOVA-PLUGIN-WKWEBVIEW-ENGINE http://github.com/apache/cordova-plugin-wkwebview-engine.git Apache-CORDOVA-PLUGIN-WKWEBVIEW-ENGINE
+/home/mattmann/drat/deploy/data/clones/cordova-plugins Apache-CORDOVA-PLUGINS http://github.com/apache/cordova-plugins.git Apache-CORDOVA-PLUGINS
+/home/mattmann/drat/deploy/data/clones/cordova-plugman Apache-CORDOVA-PLUGMAN http://github.com/apache/cordova-plugman.git Apache-CORDOVA-PLUGMAN
+/home/mattmann/drat/deploy/data/clones/cordova-qt Apache-CORDOVA-QT http://github.com/apache/cordova-qt.git Apache-CORDOVA-QT
+/home/mattmann/drat/deploy/data/clones/cordova-registry-web Apache-CORDOVA-REGISTRY-WEB http://github.com/apache/cordova-registry-web.git Apache-CORDOVA-REGISTRY-WEB
+/home/mattmann/drat/deploy/data/clones/cordova-registry Apache-CORDOVA-REGISTRY http://github.com/apache/cordova-registry.git Apache-CORDOVA-REGISTRY
+/home/mattmann/drat/deploy/data/clones/cordova-serve Apache-CORDOVA-SERVE http://github.com/apache/cordova-serve.git Apache-CORDOVA-SERVE
+/home/mattmann/drat/deploy/data/clones/cordova-status Apache-CORDOVA-STATUS http://github.com/apache/cordova-status.git Apache-CORDOVA-STATUS
+/home/mattmann/drat/deploy/data/clones/cordova-template-reference Apache-CORDOVA-TEMPLATE-REFERENCE http://github.com/apache/cordova-template-reference.git Apache-CORDOVA-TEMPLATE-REFERENCE
+/home/mattmann/drat/deploy/data/clones/cordova-test-platform Apache-CORDOVA-TEST-PLATFORM http://github.com/apache/cordova-test-platform.git Apache-CORDOVA-TEST-PLATFORM
+/home/mattmann/drat/deploy/data/clones/cordova-tizen Apache-CORDOVA-TIZEN http://github.com/apache/cordova-tizen.git Apache-CORDOVA-TIZEN
+/home/mattmann/drat/deploy/data/clones/cordova-ubuntu Apache-CORDOVA-UBUNTU http://github.com/apache/cordova-ubuntu.git Apache-CORDOVA-UBUNTU
+/home/mattmann/drat/deploy/data/clones/cordova-webos Apache-CORDOVA-WEBOS http://github.com/apache/cordova-webos.git Apache-CORDOVA-WEBOS
+/home/mattmann/drat/deploy/data/clones/cordova-weinre Apache-CORDOVA-WEINRE http://github.com/apache/cordova-weinre.git Apache-CORDOVA-WEINRE
+/home/mattmann/drat/deploy/data/clones/cordova-windows Apache-CORDOVA-WINDOWS http://github.com/apache/cordova-windows.git Apache-CORDOVA-WINDOWS
+/home/mattmann/drat/deploy/data/clones/cordova-wp7 Apache-CORDOVA-WP7 http://github.com/apache/cordova-wp7.git Apache-CORDOVA-WP7
+/home/mattmann/drat/deploy/data/clones/cordova-wp8 Apache-CORDOVA-WP8 http://github.com/apache/cordova-wp8.git Apache-CORDOVA-WP8
+/home/mattmann/drat/deploy/data/clones/cordova Apache-CORDOVA http://github.com/apache/cordova.git Apache-CORDOVA
+/home/mattmann/drat/deploy/data/clones/couchdb-ci Apache-COUCHDB-CI http://github.com/apache/couchdb-ci.git Apache-COUCHDB-CI
+/home/mattmann/drat/deploy/data/clones/couchdb-docker Apache-COUCHDB-DOCKER http://github.com/apache/couchdb-docker.git Apache-COUCHDB-DOCKER
+/home/mattmann/drat/deploy/data/clones/couchdb-documentation Apache-COUCHDB-DOCUMENTATION http://github.com/apache/couchdb-documentation.git Apache-COUCHDB-DOCUMENTATION
+/home/mattmann/drat/deploy/data/clones/couchdb-erlang-bcrypt Apache-COUCHDB-ERLANG-BCRYPT http://github.com/apache/couchdb-erlang-bcrypt.git Apache-COUCHDB-ERLANG-BCRYPT
+/home/mattmann/drat/deploy/data/clones/couchdb-fauxton Apache-COUCHDB-FAUXTON http://github.com/apache/couchdb-fauxton.git Apache-COUCHDB-FAUXTON
+/home/mattmann/drat/deploy/data/clones/couchdb-hyper Apache-COUCHDB-HYPER http://github.com/apache/couchdb-hyper.git Apache-COUCHDB-HYPER
+/home/mattmann/drat/deploy/data/clones/couchdb-nano Apache-COUCHDB-NANO http://github.com/apache/couchdb-nano.git Apache-COUCHDB-NANO
+/home/mattmann/drat/deploy/data/clones/couchdb-pkg Apache-COUCHDB-PKG http://github.com/apache/couchdb-pkg.git Apache-COUCHDB-PKG
+/home/mattmann/drat/deploy/data/clones/couchdb-triq Apache-COUCHDB-TRIQ http://github.com/apache/couchdb-triq.git Apache-COUCHDB-TRIQ
+/home/mattmann/drat/deploy/data/clones/couchdb Apache-COUCHDB http://github.com/apache/couchdb.git Apache-COUCHDB
+/home/mattmann/drat/deploy/data/clones/cxf-build-utils Apache-CXF-BUILD-UTILS http://github.com/apache/cxf-build-utils.git Apache-CXF-BUILD-UTILS
+/home/mattmann/drat/deploy/data/clones/cxf-dosgi Apache-CXF-DOSGI http://github.com/apache/cxf-dosgi.git Apache-CXF-DOSGI
+/home/mattmann/drat/deploy/data/clones/cxf-fediz Apache-CXF-FEDIZ http://github.com/apache/cxf-fediz.git Apache-CXF-FEDIZ
+/home/mattmann/drat/deploy/data/clones/cxf-xjc-utils Apache-CXF-XJC-UTILS http://github.com/apache/cxf-xjc-utils.git Apache-CXF-XJC-UTILS
+/home/mattmann/drat/deploy/data/clones/cxf Apache-CXF http://github.com/apache/cxf.git Apache-CXF
+/home/mattmann/drat/deploy/data/clones/db-jdo Apache-DB-JDO http://github.com/apache/db-jdo.git Apache-DB-JDO
+/home/mattmann/drat/deploy/data/clones/directory-buildtools Apache-DIRECTORY-BUILDTOOLS http://github.com/apache/directory-buildtools.git Apache-DIRECTORY-BUILDTOOLS
+/home/mattmann/drat/deploy/data/clones/directory-ldap-api Apache-DIRECTORY-LDAP-API http://github.com/apache/directory-ldap-api.git Apache-DIRECTORY-LDAP-API
+/home/mattmann/drat/deploy/data/clones/directory-mavibot Apache-DIRECTORY-MAVIBOT http://github.com/apache/directory-mavibot.git Apache-DIRECTORY-MAVIBOT
+/home/mattmann/drat/deploy/data/clones/directory-project Apache-DIRECTORY-PROJECT http://github.com/apache/directory-project.git Apache-DIRECTORY-PROJECT
+/home/mattmann/drat/deploy/data/clones/directory-samples Apache-DIRECTORY-SAMPLES http://github.com/apache/directory-samples.git Apache-DIRECTORY-SAMPLES
+/home/mattmann/drat/deploy/data/clones/directory-scimple Apache-DIRECTORY-SCIMPLE http://github.com/apache/directory-scimple.git Apache-DIRECTORY-SCIMPLE
+/home/mattmann/drat/deploy/data/clones/directory-server Apache-DIRECTORY-SERVER http://github.com/apache/directory-server.git Apache-DIRECTORY-SERVER
+/home/mattmann/drat/deploy/data/clones/directory-studio Apache-DIRECTORY-STUDIO http://github.com/apache/directory-studio.git Apache-DIRECTORY-STUDIO
+/home/mattmann/drat/deploy/data/clones/distributedlog Apache-DISTRIBUTEDLOG http://github.com/apache/distributedlog.git Apache-DISTRIBUTEDLOG
+/home/mattmann/drat/deploy/data/clones/drat Apache-DRAT http://github.com/apache/drat.git Apache-DRAT
+/home/mattmann/drat/deploy/data/clones/drill-site Apache-DRILL-SITE http://github.com/apache/drill-site.git Apache-DRILL-SITE
+/home/mattmann/drat/deploy/data/clones/drill Apache-DRILL http://github.com/apache/drill.git Apache-DRILL
+/home/mattmann/drat/deploy/data/clones/fineract-cn-accounting Apache-FINERACT-CN-ACCOUNTING http://github.com/apache/fineract-cn-accounting.git Apache-FINERACT-CN-ACCOUNTING
+/home/mattmann/drat/deploy/data/clones/fineract-cn-anubis Apache-FINERACT-CN-ANUBIS http://github.com/apache/fineract-cn-anubis.git Apache-FINERACT-CN-ANUBIS
+/home/mattmann/drat/deploy/data/clones/fineract-cn-api Apache-FINERACT-CN-API http://github.com/apache/fineract-cn-api.git Apache-FINERACT-CN-API
+/home/mattmann/drat/deploy/data/clones/fineract-cn-async Apache-FINERACT-CN-ASYNC http://github.com/apache/fineract-cn-async.git Apache-FINERACT-CN-ASYNC
+/home/mattmann/drat/deploy/data/clones/fineract-cn-cassandra Apache-FINERACT-CN-CASSANDRA http://github.com/apache/fineract-cn-cassandra.git Apache-FINERACT-CN-CASSANDRA
+/home/mattmann/drat/deploy/data/clones/fineract-cn-cheques Apache-FINERACT-CN-CHEQUES http://github.com/apache/fineract-cn-cheques.git Apache-FINERACT-CN-CHEQUES
+/home/mattmann/drat/deploy/data/clones/fineract-cn-command Apache-FINERACT-CN-COMMAND http://github.com/apache/fineract-cn-command.git Apache-FINERACT-CN-COMMAND
+/home/mattmann/drat/deploy/data/clones/fineract-cn-crypto Apache-FINERACT-CN-CRYPTO http://github.com/apache/fineract-cn-crypto.git Apache-FINERACT-CN-CRYPTO
+/home/mattmann/drat/deploy/data/clones/fineract-cn-customer Apache-FINERACT-CN-CUSTOMER http://github.com/apache/fineract-cn-customer.git Apache-FINERACT-CN-CUSTOMER
+/home/mattmann/drat/deploy/data/clones/fineract-cn-data-jpa Apache-FINERACT-CN-DATA-JPA http://github.com/apache/fineract-cn-data-jpa.git Apache-FINERACT-CN-DATA-JPA
+/home/mattmann/drat/deploy/data/clones/fineract-cn-default-setup Apache-FINERACT-CN-DEFAULT-SETUP http://github.com/apache/fineract-cn-default-setup.git Apache-FINERACT-CN-DEFAULT-SETUP
+/home/mattmann/drat/deploy/data/clones/fineract-cn-demo-server Apache-FINERACT-CN-DEMO-SERVER http://github.com/apache/fineract-cn-demo-server.git Apache-FINERACT-CN-DEMO-SERVER
+/home/mattmann/drat/deploy/data/clones/fineract-cn-deposit-account-management Apache-FINERACT-CN-DEPOSIT-ACCOUNT-MANAGEMENT http://github.com/apache/fineract-cn-deposit-account-management.git Apache-FINERACT-CN-DEPOSIT-ACCOUNT-MANAGEMENT
+/home/mattmann/drat/deploy/data/clones/fineract-cn-docker-scripts Apache-FINERACT-CN-DOCKER-SCRIPTS http://github.com/apache/fineract-cn-docker-scripts.git Apache-FINERACT-CN-DOCKER-SCRIPTS
+/home/mattmann/drat/deploy/data/clones/fineract-cn-fims-e2e Apache-FINERACT-CN-FIMS-E2E http://github.com/apache/fineract-cn-fims-e2e.git Apache-FINERACT-CN-FIMS-E2E
+/home/mattmann/drat/deploy/data/clones/fineract-cn-fims-web-app Apache-FINERACT-CN-FIMS-WEB-APP http://github.com/apache/fineract-cn-fims-web-app.git Apache-FINERACT-CN-FIMS-WEB-APP
+/home/mattmann/drat/deploy/data/clones/fineract-cn-group-finance Apache-FINERACT-CN-GROUP-FINANCE http://github.com/apache/fineract-cn-group-finance.git Apache-FINERACT-CN-GROUP-FINANCE
+/home/mattmann/drat/deploy/data/clones/fineract-cn-group Apache-FINERACT-CN-GROUP http://github.com/apache/fineract-cn-group.git Apache-FINERACT-CN-GROUP
+/home/mattmann/drat/deploy/data/clones/fineract-cn-identity Apache-FINERACT-CN-IDENTITY http://github.com/apache/fineract-cn-identity.git Apache-FINERACT-CN-IDENTITY
+/home/mattmann/drat/deploy/data/clones/fineract-cn-integration-tests Apache-FINERACT-CN-INTEGRATION-TESTS http://github.com/apache/fineract-cn-integration-tests.git Apache-FINERACT-CN-INTEGRATION-TESTS
+/home/mattmann/drat/deploy/data/clones/fineract-cn-lang Apache-FINERACT-CN-LANG http://github.com/apache/fineract-cn-lang.git Apache-FINERACT-CN-LANG
+/home/mattmann/drat/deploy/data/clones/fineract-cn-mariadb Apache-FINERACT-CN-MARIADB http://github.com/apache/fineract-cn-mariadb.git Apache-FINERACT-CN-MARIADB
+/home/mattmann/drat/deploy/data/clones/fineract-cn-mobile Apache-FINERACT-CN-MOBILE http://github.com/apache/fineract-cn-mobile.git Apache-FINERACT-CN-MOBILE
+/home/mattmann/drat/deploy/data/clones/fineract-cn-notifications Apache-FINERACT-CN-NOTIFICATIONS http://github.com/apache/fineract-cn-notifications.git Apache-FINERACT-CN-NOTIFICATIONS
+/home/mattmann/drat/deploy/data/clones/fineract-cn-office Apache-FINERACT-CN-OFFICE http://github.com/apache/fineract-cn-office.git Apache-FINERACT-CN-OFFICE
+/home/mattmann/drat/deploy/data/clones/fineract-cn-payroll Apache-FINERACT-CN-PAYROLL http://github.com/apache/fineract-cn-payroll.git Apache-FINERACT-CN-PAYROLL
+/home/mattmann/drat/deploy/data/clones/fineract-cn-permitted-feign-client Apache-FINERACT-CN-PERMITTED-FEIGN-CLIENT http://github.com/apache/fineract-cn-permitted-feign-client.git Apache-FINERACT-CN-PERMITTED-FEIGN-CLIENT
+/home/mattmann/drat/deploy/data/clones/fineract-cn-portfolio Apache-FINERACT-CN-PORTFOLIO http://github.com/apache/fineract-cn-portfolio.git Apache-FINERACT-CN-PORTFOLIO
+/home/mattmann/drat/deploy/data/clones/fineract-cn-provisioner Apache-FINERACT-CN-PROVISIONER http://github.com/apache/fineract-cn-provisioner.git Apache-FINERACT-CN-PROVISIONER
+/home/mattmann/drat/deploy/data/clones/fineract-cn-reporting Apache-FINERACT-CN-REPORTING http://github.com/apache/fineract-cn-reporting.git Apache-FINERACT-CN-REPORTING
+/home/mattmann/drat/deploy/data/clones/fineract-cn-rhythm Apache-FINERACT-CN-RHYTHM http://github.com/apache/fineract-cn-rhythm.git Apache-FINERACT-CN-RHYTHM
+/home/mattmann/drat/deploy/data/clones/fineract-cn-service-starter Apache-FINERACT-CN-SERVICE-STARTER http://github.com/apache/fineract-cn-service-starter.git Apache-FINERACT-CN-SERVICE-STARTER
+/home/mattmann/drat/deploy/data/clones/fineract-cn-stellar-bridge Apache-FINERACT-CN-STELLAR-BRIDGE http://github.com/apache/fineract-cn-stellar-bridge.git Apache-FINERACT-CN-STELLAR-BRIDGE
+/home/mattmann/drat/deploy/data/clones/fineract-cn-teller Apache-FINERACT-CN-TELLER http://github.com/apache/fineract-cn-teller.git Apache-FINERACT-CN-TELLER
+/home/mattmann/drat/deploy/data/clones/fineract-cn-template Apache-FINERACT-CN-TEMPLATE http://github.com/apache/fineract-cn-template.git Apache-FINERACT-CN-TEMPLATE
+/home/mattmann/drat/deploy/data/clones/fineract-cn-test Apache-FINERACT-CN-TEST http://github.com/apache/fineract-cn-test.git Apache-FINERACT-CN-TEST
+/home/mattmann/drat/deploy/data/clones/fineract-site Apache-FINERACT-SITE http://github.com/apache/fineract-site.git Apache-FINERACT-SITE
+/home/mattmann/drat/deploy/data/clones/flink-shaded Apache-FLINK-SHADED http://github.com/apache/flink-shaded.git Apache-FLINK-SHADED
+/home/mattmann/drat/deploy/data/clones/flink-web Apache-FLINK-WEB http://github.com/apache/flink-web.git Apache-FLINK-WEB
+/home/mattmann/drat/deploy/data/clones/flink Apache-FLINK http://github.com/apache/flink.git Apache-FLINK
+/home/mattmann/drat/deploy/data/clones/fluo-bytes Apache-FLUO-BYTES http://github.com/apache/fluo-bytes.git Apache-FLUO-BYTES
+/home/mattmann/drat/deploy/data/clones/fluo-docker Apache-FLUO-DOCKER http://github.com/apache/fluo-docker.git Apache-FLUO-DOCKER
+/home/mattmann/drat/deploy/data/clones/fluo-examples Apache-FLUO-EXAMPLES http://github.com/apache/fluo-examples.git Apache-FLUO-EXAMPLES
+/home/mattmann/drat/deploy/data/clones/fluo-muchos Apache-FLUO-MUCHOS http://github.com/apache/fluo-muchos.git Apache-FLUO-MUCHOS
+/home/mattmann/drat/deploy/data/clones/fluo-recipes Apache-FLUO-RECIPES http://github.com/apache/fluo-recipes.git Apache-FLUO-RECIPES
+/home/mattmann/drat/deploy/data/clones/fluo-uno Apache-FLUO-UNO http://github.com/apache/fluo-uno.git Apache-FLUO-UNO
+/home/mattmann/drat/deploy/data/clones/fluo-website Apache-FLUO-WEBSITE http://github.com/apache/fluo-website.git Apache-FLUO-WEBSITE
+/home/mattmann/drat/deploy/data/clones/fluo-yarn Apache-FLUO-YARN http://github.com/apache/fluo-yarn.git Apache-FLUO-YARN
+/home/mattmann/drat/deploy/data/clones/fluo Apache-FLUO http://github.com/apache/fluo.git Apache-FLUO
+/home/mattmann/drat/deploy/data/clones/geode-examples Apache-GEODE-EXAMPLES http://github.com/apache/geode-examples.git Apache-GEODE-EXAMPLES
+/home/mattmann/drat/deploy/data/clones/geode-native Apache-GEODE-NATIVE http://github.com/apache/geode-native.git Apache-GEODE-NATIVE
+/home/mattmann/drat/deploy/data/clones/geode-site Apache-GEODE-SITE http://github.com/apache/geode-site.git Apache-GEODE-SITE
+/home/mattmann/drat/deploy/data/clones/geode Apache-GEODE http://github.com/apache/geode.git Apache-GEODE
+/home/mattmann/drat/deploy/data/clones/geronimo-config Apache-GERONIMO-CONFIG http://github.com/apache/geronimo-config.git Apache-GERONIMO-CONFIG
+/home/mattmann/drat/deploy/data/clones/geronimo-health Apache-GERONIMO-HEALTH http://github.com/apache/geronimo-health.git Apache-GERONIMO-HEALTH
+/home/mattmann/drat/deploy/data/clones/geronimo-jcache-simple Apache-GERONIMO-JCACHE-SIMPLE http://github.com/apache/geronimo-jcache-simple.git Apache-GERONIMO-JCACHE-SIMPLE
+/home/mattmann/drat/deploy/data/clones/geronimo-jwt-auth Apache-GERONIMO-JWT-AUTH http://github.com/apache/geronimo-jwt-auth.git Apache-GERONIMO-JWT-AUTH
+/home/mattmann/drat/deploy/data/clones/geronimo-metrics Apache-GERONIMO-METRICS http://github.com/apache/geronimo-metrics.git Apache-GERONIMO-METRICS
+/home/mattmann/drat/deploy/data/clones/geronimo-microprofile Apache-GERONIMO-MICROPROFILE http://github.com/apache/geronimo-microprofile.git Apache-GERONIMO-MICROPROFILE
+/home/mattmann/drat/deploy/data/clones/geronimo-openapi Apache-GERONIMO-OPENAPI http://github.com/apache/geronimo-openapi.git Apache-GERONIMO-OPENAPI
+/home/mattmann/drat/deploy/data/clones/geronimo-opentracing Apache-GERONIMO-OPENTRACING http://github.com/apache/geronimo-opentracing.git Apache-GERONIMO-OPENTRACING
+/home/mattmann/drat/deploy/data/clones/geronimo-safeguard Apache-GERONIMO-SAFEGUARD http://github.com/apache/geronimo-safeguard.git Apache-GERONIMO-SAFEGUARD
+/home/mattmann/drat/deploy/data/clones/hbase-connectors Apache-HBASE-CONNECTORS http://github.com/apache/hbase-connectors.git Apache-HBASE-CONNECTORS
+/home/mattmann/drat/deploy/data/clones/hbase-operator-tools Apache-HBASE-OPERATOR-TOOLS http://github.com/apache/hbase-operator-tools.git Apache-HBASE-OPERATOR-TOOLS
+/home/mattmann/drat/deploy/data/clones/ignite-teamcity-bot Apache-IGNITE-TEAMCITY-BOT http://github.com/apache/ignite-teamcity-bot.git Apache-IGNITE-TEAMCITY-BOT
+/home/mattmann/drat/deploy/data/clones/incubator-airflow Apache-INCUBATOR-AIRFLOW http://github.com/apache/incubator-airflow.git Apache-INCUBATOR-AIRFLOW
+/home/mattmann/drat/deploy/data/clones/incubator-amaterasu-site Apache-INCUBATOR-AMATERASU-SITE http://github.com/apache/incubator-amaterasu-site.git Apache-INCUBATOR-AMATERASU-SITE
+/home/mattmann/drat/deploy/data/clones/incubator-amaterasu Apache-INCUBATOR-AMATERASU http://github.com/apache/incubator-amaterasu.git Apache-INCUBATOR-AMATERASU
+/home/mattmann/drat/deploy/data/clones/incubator-annotator-website Apache-INCUBATOR-ANNOTATOR-WEBSITE http://github.com/apache/incubator-annotator-website.git Apache-INCUBATOR-ANNOTATOR-WEBSITE
+/home/mattmann/drat/deploy/data/clones/incubator-annotator Apache-INCUBATOR-ANNOTATOR http://github.com/apache/incubator-annotator.git Apache-INCUBATOR-ANNOTATOR
+/home/mattmann/drat/deploy/data/clones/incubator-ariatosca-website Apache-INCUBATOR-ARIATOSCA-WEBSITE http://github.com/apache/incubator-ariatosca-website.git Apache-INCUBATOR-ARIATOSCA-WEBSITE
+/home/mattmann/drat/deploy/data/clones/incubator-ariatosca Apache-INCUBATOR-ARIATOSCA http://github.com/apache/incubator-ariatosca.git Apache-INCUBATOR-ARIATOSCA
+/home/mattmann/drat/deploy/data/clones/incubator-daffodil-site Apache-INCUBATOR-DAFFODIL-SITE http://github.com/apache/incubator-daffodil-site.git Apache-INCUBATOR-DAFFODIL-SITE
+/home/mattmann/drat/deploy/data/clones/incubator-daffodil Apache-INCUBATOR-DAFFODIL http://github.com/apache/incubator-daffodil.git Apache-INCUBATOR-DAFFODIL
+/home/mattmann/drat/deploy/data/clones/incubator-druid-website Apache-INCUBATOR-DRUID-WEBSITE http://github.com/apache/incubator-druid-website.git Apache-INCUBATOR-DRUID-WEBSITE
+/home/mattmann/drat/deploy/data/clones/incubator-druid Apache-INCUBATOR-DRUID http://github.com/apache/incubator-druid.git Apache-INCUBATOR-DRUID
+/home/mattmann/drat/deploy/data/clones/incubator-dubbo-docs Apache-INCUBATOR-DUBBO-DOCS http://github.com/apache/incubator-dubbo-docs.git Apache-INCUBATOR-DUBBO-DOCS
+/home/mattmann/drat/deploy/data/clones/incubator-dubbo-feature-test Apache-INCUBATOR-DUBBO-FEATURE-TEST http://github.com/apache/incubator-dubbo-feature-test.git Apache-INCUBATOR-DUBBO-FEATURE-TEST
+/home/mattmann/drat/deploy/data/clones/incubator-dubbo-ops Apache-INCUBATOR-DUBBO-OPS http://github.com/apache/incubator-dubbo-ops.git Apache-INCUBATOR-DUBBO-OPS
+/home/mattmann/drat/deploy/data/clones/incubator-dubbo-rpc-jsonrpc Apache-INCUBATOR-DUBBO-RPC-JSONRPC http://github.com/apache/incubator-dubbo-rpc-jsonrpc.git Apache-INCUBATOR-DUBBO-RPC-JSONRPC
+/home/mattmann/drat/deploy/data/clones/incubator-dubbo-spring-boot-project Apache-INCUBATOR-DUBBO-SPRING-BOOT-PROJECT http://github.com/apache/incubator-dubbo-spring-boot-project.git Apache-INCUBATOR-DUBBO-SPRING-BOOT-PROJECT
+/home/mattmann/drat/deploy/data/clones/incubator-dubbo-website Apache-INCUBATOR-DUBBO-WEBSITE http://github.com/apache/incubator-dubbo-website.git Apache-INCUBATOR-DUBBO-WEBSITE
+/home/mattmann/drat/deploy/data/clones/incubator-dubbo Apache-INCUBATOR-DUBBO http://github.com/apache/incubator-dubbo.git Apache-INCUBATOR-DUBBO
+/home/mattmann/drat/deploy/data/clones/incubator-echarts-website Apache-INCUBATOR-ECHARTS-WEBSITE http://github.com/apache/incubator-echarts-website.git Apache-INCUBATOR-ECHARTS-WEBSITE
+/home/mattmann/drat/deploy/data/clones/incubator-echarts Apache-INCUBATOR-ECHARTS http://github.com/apache/incubator-echarts.git Apache-INCUBATOR-ECHARTS
+/home/mattmann/drat/deploy/data/clones/incubator-heron Apache-INCUBATOR-HERON http://github.com/apache/incubator-heron.git Apache-INCUBATOR-HERON
+/home/mattmann/drat/deploy/data/clones/incubator-mxnet-site Apache-INCUBATOR-MXNET-SITE http://github.com/apache/incubator-mxnet-site.git Apache-INCUBATOR-MXNET-SITE
+/home/mattmann/drat/deploy/data/clones/incubator-mxnet-test Apache-INCUBATOR-MXNET-TEST http://github.com/apache/incubator-mxnet-test.git Apache-INCUBATOR-MXNET-TEST
+/home/mattmann/drat/deploy/data/clones/incubator-mxnet Apache-INCUBATOR-MXNET http://github.com/apache/incubator-mxnet.git Apache-INCUBATOR-MXNET
+/home/mattmann/drat/deploy/data/clones/incubator-nemo-website Apache-INCUBATOR-NEMO-WEBSITE http://github.com/apache/incubator-nemo-website.git Apache-INCUBATOR-NEMO-WEBSITE
+/home/mattmann/drat/deploy/data/clones/incubator-nemo Apache-INCUBATOR-NEMO http://github.com/apache/incubator-nemo.git Apache-INCUBATOR-NEMO
+/home/mattmann/drat/deploy/data/clones/incubator-netbeans-html4j Apache-INCUBATOR-NETBEANS-HTML4J http://github.com/apache/incubator-netbeans-html4j.git Apache-INCUBATOR-NETBEANS-HTML4J
+/home/mattmann/drat/deploy/data/clones/incubator-netbeans-jackpot30 Apache-INCUBATOR-NETBEANS-JACKPOT30 http://github.com/apache/incubator-netbeans-jackpot30.git Apache-INCUBATOR-NETBEANS-JACKPOT30
+/home/mattmann/drat/deploy/data/clones/incubator-netbeans-temp Apache-INCUBATOR-NETBEANS-TEMP http://github.com/apache/incubator-netbeans-temp.git Apache-INCUBATOR-NETBEANS-TEMP
+/home/mattmann/drat/deploy/data/clones/incubator-netbeans-tools Apache-INCUBATOR-NETBEANS-TOOLS http://github.com/apache/incubator-netbeans-tools.git Apache-INCUBATOR-NETBEANS-TOOLS
+/home/mattmann/drat/deploy/data/clones/incubator-netbeans-website-cleanup Apache-INCUBATOR-NETBEANS-WEBSITE-CLEANUP http://github.com/apache/incubator-netbeans-website-cleanup.git Apache-INCUBATOR-NETBEANS-WEBSITE-CLEANUP
+/home/mattmann/drat/deploy/data/clones/incubator-netbeans-website Apache-INCUBATOR-NETBEANS-WEBSITE http://github.com/apache/incubator-netbeans-website.git Apache-INCUBATOR-NETBEANS-WEBSITE
+/home/mattmann/drat/deploy/data/clones/incubator-netbeans Apache-INCUBATOR-NETBEANS http://github.com/apache/incubator-netbeans.git Apache-INCUBATOR-NETBEANS
+/home/mattmann/drat/deploy/data/clones/incubator-odftoolkit-site Apache-INCUBATOR-ODFTOOLKIT-SITE http://github.com/apache/incubator-odftoolkit-site.git Apache-INCUBATOR-ODFTOOLKIT-SITE
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-apigateway Apache-INCUBATOR-OPENWHISK-APIGATEWAY http://github.com/apache/incubator-openwhisk-apigateway.git Apache-INCUBATOR-OPENWHISK-APIGATEWAY
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-catalog Apache-INCUBATOR-OPENWHISK-CATALOG http://github.com/apache/incubator-openwhisk-catalog.git Apache-INCUBATOR-OPENWHISK-CATALOG
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-cli Apache-INCUBATOR-OPENWHISK-CLI http://github.com/apache/incubator-openwhisk-cli.git Apache-INCUBATOR-OPENWHISK-CLI
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-client-go Apache-INCUBATOR-OPENWHISK-CLIENT-GO http://github.com/apache/incubator-openwhisk-client-go.git Apache-INCUBATOR-OPENWHISK-CLIENT-GO
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-client-js Apache-INCUBATOR-OPENWHISK-CLIENT-JS http://github.com/apache/incubator-openwhisk-client-js.git Apache-INCUBATOR-OPENWHISK-CLIENT-JS
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-client-python Apache-INCUBATOR-OPENWHISK-CLIENT-PYTHON http://github.com/apache/incubator-openwhisk-client-python.git Apache-INCUBATOR-OPENWHISK-CLIENT-PYTHON
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-client-swift Apache-INCUBATOR-OPENWHISK-CLIENT-SWIFT http://github.com/apache/incubator-openwhisk-client-swift.git Apache-INCUBATOR-OPENWHISK-CLIENT-SWIFT
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-debugger Apache-INCUBATOR-OPENWHISK-DEBUGGER http://github.com/apache/incubator-openwhisk-debugger.git Apache-INCUBATOR-OPENWHISK-DEBUGGER
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-deploy-kube Apache-INCUBATOR-OPENWHISK-DEPLOY-KUBE http://github.com/apache/incubator-openwhisk-deploy-kube.git Apache-INCUBATOR-OPENWHISK-DEPLOY-KUBE
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-deploy-mesos Apache-INCUBATOR-OPENWHISK-DEPLOY-MESOS http://github.com/apache/incubator-openwhisk-deploy-mesos.git Apache-INCUBATOR-OPENWHISK-DEPLOY-MESOS
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-deploy-openshift Apache-INCUBATOR-OPENWHISK-DEPLOY-OPENSHIFT http://github.com/apache/incubator-openwhisk-deploy-openshift.git Apache-INCUBATOR-OPENWHISK-DEPLOY-OPENSHIFT
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-devtools Apache-INCUBATOR-OPENWHISK-DEVTOOLS http://github.com/apache/incubator-openwhisk-devtools.git Apache-INCUBATOR-OPENWHISK-DEVTOOLS
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-external-resources Apache-INCUBATOR-OPENWHISK-EXTERNAL-RESOURCES http://github.com/apache/incubator-openwhisk-external-resources.git Apache-INCUBATOR-OPENWHISK-EXTERNAL-RESOURCES
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-package-alarms Apache-INCUBATOR-OPENWHISK-PACKAGE-ALARMS http://github.com/apache/incubator-openwhisk-package-alarms.git Apache-INCUBATOR-OPENWHISK-PACKAGE-ALARMS
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-package-cloudant Apache-INCUBATOR-OPENWHISK-PACKAGE-CLOUDANT http://github.com/apache/incubator-openwhisk-package-cloudant.git Apache-INCUBATOR-OPENWHISK-PACKAGE-CLOUDANT
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-package-deploy Apache-INCUBATOR-OPENWHISK-PACKAGE-DEPLOY http://github.com/apache/incubator-openwhisk-package-deploy.git Apache-INCUBATOR-OPENWHISK-PACKAGE-DEPLOY
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-package-jira Apache-INCUBATOR-OPENWHISK-PACKAGE-JIRA http://github.com/apache/incubator-openwhisk-package-jira.git Apache-INCUBATOR-OPENWHISK-PACKAGE-JIRA
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-package-kafka Apache-INCUBATOR-OPENWHISK-PACKAGE-KAFKA http://github.com/apache/incubator-openwhisk-package-kafka.git Apache-INCUBATOR-OPENWHISK-PACKAGE-KAFKA
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-package-pushnotifications Apache-INCUBATOR-OPENWHISK-PACKAGE-PUSHNOTIFICATIONS http://github.com/apache/incubator-openwhisk-package-pushnotifications.git Apache-INCUBATOR-OPENWHISK-PACKAGE-PUSHNOTIFICATIONS
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-package-rss Apache-INCUBATOR-OPENWHISK-PACKAGE-RSS http://github.com/apache/incubator-openwhisk-package-rss.git Apache-INCUBATOR-OPENWHISK-PACKAGE-RSS
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-package-template Apache-INCUBATOR-OPENWHISK-PACKAGE-TEMPLATE http://github.com/apache/incubator-openwhisk-package-template.git Apache-INCUBATOR-OPENWHISK-PACKAGE-TEMPLATE
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-playground Apache-INCUBATOR-OPENWHISK-PLAYGROUND http://github.com/apache/incubator-openwhisk-playground.git Apache-INCUBATOR-OPENWHISK-PLAYGROUND
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-podspecs Apache-INCUBATOR-OPENWHISK-PODSPECS http://github.com/apache/incubator-openwhisk-podspecs.git Apache-INCUBATOR-OPENWHISK-PODSPECS
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-release Apache-INCUBATOR-OPENWHISK-RELEASE http://github.com/apache/incubator-openwhisk-release.git Apache-INCUBATOR-OPENWHISK-RELEASE
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-runtime-ballerina Apache-INCUBATOR-OPENWHISK-RUNTIME-BALLERINA http://github.com/apache/incubator-openwhisk-runtime-ballerina.git Apache-INCUBATOR-OPENWHISK-RUNTIME-BALLERINA
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-runtime-docker Apache-INCUBATOR-OPENWHISK-RUNTIME-DOCKER http://github.com/apache/incubator-openwhisk-runtime-docker.git Apache-INCUBATOR-OPENWHISK-RUNTIME-DOCKER
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-runtime-go Apache-INCUBATOR-OPENWHISK-RUNTIME-GO http://github.com/apache/incubator-openwhisk-runtime-go.git Apache-INCUBATOR-OPENWHISK-RUNTIME-GO
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-runtime-java Apache-INCUBATOR-OPENWHISK-RUNTIME-JAVA http://github.com/apache/incubator-openwhisk-runtime-java.git Apache-INCUBATOR-OPENWHISK-RUNTIME-JAVA
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-runtime-nodejs Apache-INCUBATOR-OPENWHISK-RUNTIME-NODEJS http://github.com/apache/incubator-openwhisk-runtime-nodejs.git Apache-INCUBATOR-OPENWHISK-RUNTIME-NODEJS
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-runtime-php Apache-INCUBATOR-OPENWHISK-RUNTIME-PHP http://github.com/apache/incubator-openwhisk-runtime-php.git Apache-INCUBATOR-OPENWHISK-RUNTIME-PHP
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-runtime-python Apache-INCUBATOR-OPENWHISK-RUNTIME-PYTHON http://github.com/apache/incubator-openwhisk-runtime-python.git Apache-INCUBATOR-OPENWHISK-RUNTIME-PYTHON
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-runtime-ruby Apache-INCUBATOR-OPENWHISK-RUNTIME-RUBY http://github.com/apache/incubator-openwhisk-runtime-ruby.git Apache-INCUBATOR-OPENWHISK-RUNTIME-RUBY
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-runtime-swift Apache-INCUBATOR-OPENWHISK-RUNTIME-SWIFT http://github.com/apache/incubator-openwhisk-runtime-swift.git Apache-INCUBATOR-OPENWHISK-RUNTIME-SWIFT
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-sample-matos Apache-INCUBATOR-OPENWHISK-SAMPLE-MATOS http://github.com/apache/incubator-openwhisk-sample-matos.git Apache-INCUBATOR-OPENWHISK-SAMPLE-MATOS
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-sample-slackbot Apache-INCUBATOR-OPENWHISK-SAMPLE-SLACKBOT http://github.com/apache/incubator-openwhisk-sample-slackbot.git Apache-INCUBATOR-OPENWHISK-SAMPLE-SLACKBOT
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-selfserve-test Apache-INCUBATOR-OPENWHISK-SELFSERVE-TEST http://github.com/apache/incubator-openwhisk-selfserve-test.git Apache-INCUBATOR-OPENWHISK-SELFSERVE-TEST
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-slackinvite Apache-INCUBATOR-OPENWHISK-SLACKINVITE http://github.com/apache/incubator-openwhisk-slackinvite.git Apache-INCUBATOR-OPENWHISK-SLACKINVITE
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-test Apache-INCUBATOR-OPENWHISK-TEST http://github.com/apache/incubator-openwhisk-test.git Apache-INCUBATOR-OPENWHISK-TEST
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-tutorial Apache-INCUBATOR-OPENWHISK-TUTORIAL http://github.com/apache/incubator-openwhisk-tutorial.git Apache-INCUBATOR-OPENWHISK-TUTORIAL
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-utilities Apache-INCUBATOR-OPENWHISK-UTILITIES http://github.com/apache/incubator-openwhisk-utilities.git Apache-INCUBATOR-OPENWHISK-UTILITIES
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-vscode Apache-INCUBATOR-OPENWHISK-VSCODE http://github.com/apache/incubator-openwhisk-vscode.git Apache-INCUBATOR-OPENWHISK-VSCODE
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-website Apache-INCUBATOR-OPENWHISK-WEBSITE http://github.com/apache/incubator-openwhisk-website.git Apache-INCUBATOR-OPENWHISK-WEBSITE
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-workshop Apache-INCUBATOR-OPENWHISK-WORKSHOP http://github.com/apache/incubator-openwhisk-workshop.git Apache-INCUBATOR-OPENWHISK-WORKSHOP
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-wskdeploy Apache-INCUBATOR-OPENWHISK-WSKDEPLOY http://github.com/apache/incubator-openwhisk-wskdeploy.git Apache-INCUBATOR-OPENWHISK-WSKDEPLOY
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk-xcode Apache-INCUBATOR-OPENWHISK-XCODE http://github.com/apache/incubator-openwhisk-xcode.git Apache-INCUBATOR-OPENWHISK-XCODE
+/home/mattmann/drat/deploy/data/clones/incubator-openwhisk Apache-INCUBATOR-OPENWHISK http://github.com/apache/incubator-openwhisk.git Apache-INCUBATOR-OPENWHISK
+/home/mattmann/drat/deploy/data/clones/incubator-pagespeed-cpanel Apache-INCUBATOR-PAGESPEED-CPANEL http://github.com/apache/incubator-pagespeed-cpanel.git Apache-INCUBATOR-PAGESPEED-CPANEL
+/home/mattmann/drat/deploy/data/clones/incubator-pagespeed-debian Apache-INCUBATOR-PAGESPEED-DEBIAN http://github.com/apache/incubator-pagespeed-debian.git Apache-INCUBATOR-PAGESPEED-DEBIAN
+/home/mattmann/drat/deploy/data/clones/incubator-pagespeed-drp Apache-INCUBATOR-PAGESPEED-DRP http://github.com/apache/incubator-pagespeed-drp.git Apache-INCUBATOR-PAGESPEED-DRP
+/home/mattmann/drat/deploy/data/clones/incubator-pagespeed-icu Apache-INCUBATOR-PAGESPEED-ICU http://github.com/apache/incubator-pagespeed-icu.git Apache-INCUBATOR-PAGESPEED-ICU
+/home/mattmann/drat/deploy/data/clones/incubator-pagespeed-mod Apache-INCUBATOR-PAGESPEED-MOD http://github.com/apache/incubator-pagespeed-mod.git Apache-INCUBATOR-PAGESPEED-MOD
+/home/mattmann/drat/deploy/data/clones/incubator-pagespeed-ngx Apache-INCUBATOR-PAGESPEED-NGX http://github.com/apache/incubator-pagespeed-ngx.git Apache-INCUBATOR-PAGESPEED-NGX
+/home/mattmann/drat/deploy/data/clones/incubator-pagespeed-optipng Apache-INCUBATOR-PAGESPEED-OPTIPNG http://github.com/apache/incubator-pagespeed-optipng.git Apache-INCUBATOR-PAGESPEED-OPTIPNG
+/home/mattmann/drat/deploy/data/clones/incubator-pagespeed-zlib Apache-INCUBATOR-PAGESPEED-ZLIB http://github.com/apache/incubator-pagespeed-zlib.git Apache-INCUBATOR-PAGESPEED-ZLIB
+/home/mattmann/drat/deploy/data/clones/incubator-plc4x Apache-INCUBATOR-PLC4X http://github.com/apache/incubator-plc4x.git Apache-INCUBATOR-PLC4X
+/home/mattmann/drat/deploy/data/clones/incubator-ponymail-site Apache-INCUBATOR-PONYMAIL-SITE http://github.com/apache/incubator-ponymail-site.git Apache-INCUBATOR-PONYMAIL-SITE
+/home/mattmann/drat/deploy/data/clones/incubator-ponymail Apache-INCUBATOR-PONYMAIL http://github.com/apache/incubator-ponymail.git Apache-INCUBATOR-PONYMAIL
+/home/mattmann/drat/deploy/data/clones/incubator-pulsar Apache-INCUBATOR-PULSAR http://github.com/apache/incubator-pulsar.git Apache-INCUBATOR-PULSAR
+/home/mattmann/drat/deploy/data/clones/incubator-sdap-doms Apache-INCUBATOR-SDAP-DOMS http://github.com/apache/incubator-sdap-doms.git Apache-INCUBATOR-SDAP-DOMS
+/home/mattmann/drat/deploy/data/clones/incubator-sdap-edge Apache-INCUBATOR-SDAP-EDGE http://github.com/apache/incubator-sdap-edge.git Apache-INCUBATOR-SDAP-EDGE
+/home/mattmann/drat/deploy/data/clones/incubator-sdap-mudrod Apache-INCUBATOR-SDAP-MUDROD http://github.com/apache/incubator-sdap-mudrod.git Apache-INCUBATOR-SDAP-MUDROD
+/home/mattmann/drat/deploy/data/clones/incubator-sdap-nexus Apache-INCUBATOR-SDAP-NEXUS http://github.com/apache/incubator-sdap-nexus.git Apache-INCUBATOR-SDAP-NEXUS
+/home/mattmann/drat/deploy/data/clones/incubator-sdap-nexusproto Apache-INCUBATOR-SDAP-NEXUSPROTO http://github.com/apache/incubator-sdap-nexusproto.git Apache-INCUBATOR-SDAP-NEXUSPROTO
+/home/mattmann/drat/deploy/data/clones/incubator-sdap-ningester Apache-INCUBATOR-SDAP-NINGESTER http://github.com/apache/incubator-sdap-ningester.git Apache-INCUBATOR-SDAP-NINGESTER
+/home/mattmann/drat/deploy/data/clones/incubator-sdap-ningesterpy Apache-INCUBATOR-SDAP-NINGESTERPY http://github.com/apache/incubator-sdap-ningesterpy.git Apache-INCUBATOR-SDAP-NINGESTERPY
+/home/mattmann/drat/deploy/data/clones/incubator-sdap-website Apache-INCUBATOR-SDAP-WEBSITE http://github.com/apache/incubator-sdap-website.git Apache-INCUBATOR-SDAP-WEBSITE
+/home/mattmann/drat/deploy/data/clones/incubator-servicecomb-docs Apache-INCUBATOR-SERVICECOMB-DOCS http://github.com/apache/incubator-servicecomb-docs.git Apache-INCUBATOR-SERVICECOMB-DOCS
+/home/mattmann/drat/deploy/data/clones/incubator-servicecomb-java-chassis Apache-INCUBATOR-SERVICECOMB-JAVA-CHASSIS http://github.com/apache/incubator-servicecomb-java-chassis.git Apache-INCUBATOR-SERVICECOMB-JAVA-CHASSIS
+/home/mattmann/drat/deploy/data/clones/incubator-servicecomb-saga Apache-INCUBATOR-SERVICECOMB-SAGA http://github.com/apache/incubator-servicecomb-saga.git Apache-INCUBATOR-SERVICECOMB-SAGA
+/home/mattmann/drat/deploy/data/clones/incubator-servicecomb-service-center Apache-INCUBATOR-SERVICECOMB-SERVICE-CENTER http://github.com/apache/incubator-servicecomb-service-center.git Apache-INCUBATOR-SERVICECOMB-SERVICE-CENTER
+/home/mattmann/drat/deploy/data/clones/incubator-servicecomb-website Apache-INCUBATOR-SERVICECOMB-WEBSITE http://github.com/apache/incubator-servicecomb-website.git Apache-INCUBATOR-SERVICECOMB-WEBSITE
+/home/mattmann/drat/deploy/data/clones/incubator-skywalking-data-collect-protocol Apache-INCUBATOR-SKYWALKING-DATA-COLLECT-PROTOCOL http://github.com/apache/incubator-skywalking-data-collect-protocol.git Apache-INCUBATOR-SKYWALKING-DATA-COLLECT-PROTOCOL
+/home/mattmann/drat/deploy/data/clones/incubator-skywalking-oal-tool Apache-INCUBATOR-SKYWALKING-OAL-TOOL http://github.com/apache/incubator-skywalking-oal-tool.git Apache-INCUBATOR-SKYWALKING-OAL-TOOL
+/home/mattmann/drat/deploy/data/clones/incubator-skywalking-ui Apache-INCUBATOR-SKYWALKING-UI http://github.com/apache/incubator-skywalking-ui.git Apache-INCUBATOR-SKYWALKING-UI
+/home/mattmann/drat/deploy/data/clones/incubator-skywalking-website Apache-INCUBATOR-SKYWALKING-WEBSITE http://github.com/apache/incubator-skywalking-website.git Apache-INCUBATOR-SKYWALKING-WEBSITE
+/home/mattmann/drat/deploy/data/clones/incubator-skywalking Apache-INCUBATOR-SKYWALKING http://github.com/apache/incubator-skywalking.git Apache-INCUBATOR-SKYWALKING
+/home/mattmann/drat/deploy/data/clones/incubator-superset-site Apache-INCUBATOR-SUPERSET-SITE http://github.com/apache/incubator-superset-site.git Apache-INCUBATOR-SUPERSET-SITE
+/home/mattmann/drat/deploy/data/clones/incubator-superset Apache-INCUBATOR-SUPERSET http://github.com/apache/incubator-superset.git Apache-INCUBATOR-SUPERSET
+/home/mattmann/drat/deploy/data/clones/incubator-warble-node Apache-INCUBATOR-WARBLE-NODE http://github.com/apache/incubator-warble-node.git Apache-INCUBATOR-WARBLE-NODE
+/home/mattmann/drat/deploy/data/clones/incubator-warble-server Apache-INCUBATOR-WARBLE-SERVER http://github.com/apache/incubator-warble-server.git Apache-INCUBATOR-WARBLE-SERVER
+/home/mattmann/drat/deploy/data/clones/incubator-warble-website Apache-INCUBATOR-WARBLE-WEBSITE http://github.com/apache/incubator-warble-website.git Apache-INCUBATOR-WARBLE-WEBSITE
+/home/mattmann/drat/deploy/data/clones/incubator-weex-site Apache-INCUBATOR-WEEX-SITE http://github.com/apache/incubator-weex-site.git Apache-INCUBATOR-WEEX-SITE
+/home/mattmann/drat/deploy/data/clones/incubator-weex Apache-INCUBATOR-WEEX http://github.com/apache/incubator-weex.git Apache-INCUBATOR-WEEX
+/home/mattmann/drat/deploy/data/clones/infrastructure-blorp Apache-INFRASTRUCTURE-BLORP http://github.com/apache/infrastructure-blorp.git Apache-INFRASTRUCTURE-BLORP
+/home/mattmann/drat/deploy/data/clones/infrastructure-gitbox-test Apache-INFRASTRUCTURE-GITBOX-TEST http://github.com/apache/infrastructure-gitbox-test.git Apache-INFRASTRUCTURE-GITBOX-TEST
+/home/mattmann/drat/deploy/data/clones/infrastructure-puppet Apache-INFRASTRUCTURE-PUPPET http://github.com/apache/infrastructure-puppet.git Apache-INFRASTRUCTURE-PUPPET
+/home/mattmann/drat/deploy/data/clones/infrastructure-test Apache-INFRASTRUCTURE-TEST http://github.com/apache/infrastructure-test.git Apache-INFRASTRUCTURE-TEST
+/home/mattmann/drat/deploy/data/clones/infrastructure-website Apache-INFRASTRUCTURE-WEBSITE http://github.com/apache/infrastructure-website.git Apache-INFRASTRUCTURE-WEBSITE
+/home/mattmann/drat/deploy/data/clones/isis Apache-ISIS http://github.com/apache/isis.git Apache-ISIS
+/home/mattmann/drat/deploy/data/clones/james-hupa Apache-JAMES-HUPA http://github.com/apache/james-hupa.git Apache-JAMES-HUPA
+/home/mattmann/drat/deploy/data/clones/jspwiki-asf-docs Apache-JSPWIKI-ASF-DOCS http://github.com/apache/jspwiki-asf-docs.git Apache-JSPWIKI-ASF-DOCS
+/home/mattmann/drat/deploy/data/clones/jspwiki-site Apache-JSPWIKI-SITE http://github.com/apache/jspwiki-site.git Apache-JSPWIKI-SITE
+/home/mattmann/drat/deploy/data/clones/jspwiki Apache-JSPWIKI http://github.com/apache/jspwiki.git Apache-JSPWIKI
+/home/mattmann/drat/deploy/data/clones/juneau-website Apache-JUNEAU-WEBSITE http://github.com/apache/juneau-website.git Apache-JUNEAU-WEBSITE
+/home/mattmann/drat/deploy/data/clones/juneau Apache-JUNEAU http://github.com/apache/juneau.git Apache-JUNEAU
+/home/mattmann/drat/deploy/data/clones/kafka-site Apache-KAFKA-SITE http://github.com/apache/kafka-site.git Apache-KAFKA-SITE
+/home/mattmann/drat/deploy/data/clones/kafka Apache-KAFKA http://github.com/apache/kafka.git Apache-KAFKA
+/home/mattmann/drat/deploy/data/clones/karaf-boot Apache-KARAF-BOOT http://github.com/apache/karaf-boot.git Apache-KARAF-BOOT
+/home/mattmann/drat/deploy/data/clones/karaf-cave Apache-KARAF-CAVE http://github.com/apache/karaf-cave.git Apache-KARAF-CAVE
+/home/mattmann/drat/deploy/data/clones/karaf-cellar Apache-KARAF-CELLAR http://github.com/apache/karaf-cellar.git Apache-KARAF-CELLAR
+/home/mattmann/drat/deploy/data/clones/karaf-decanter Apache-KARAF-DECANTER http://github.com/apache/karaf-decanter.git Apache-KARAF-DECANTER
+/home/mattmann/drat/deploy/data/clones/karaf-eik Apache-KARAF-EIK http://github.com/apache/karaf-eik.git Apache-KARAF-EIK
+/home/mattmann/drat/deploy/data/clones/karaf-reactive-components Apache-KARAF-REACTIVE-COMPONENTS http://github.com/apache/karaf-reactive-components.git Apache-KARAF-REACTIVE-COMPONENTS
+/home/mattmann/drat/deploy/data/clones/karaf-site Apache-KARAF-SITE http://github.com/apache/karaf-site.git Apache-KARAF-SITE
+/home/mattmann/drat/deploy/data/clones/karaf-webconsole Apache-KARAF-WEBCONSOLE http://github.com/apache/karaf-webconsole.git Apache-KARAF-WEBCONSOLE
+/home/mattmann/drat/deploy/data/clones/karaf Apache-KARAF http://github.com/apache/karaf.git Apache-KARAF
+/home/mattmann/drat/deploy/data/clones/kibble-scanners Apache-KIBBLE-SCANNERS http://github.com/apache/kibble-scanners.git Apache-KIBBLE-SCANNERS
+/home/mattmann/drat/deploy/data/clones/kibble-website Apache-KIBBLE-WEBSITE http://github.com/apache/kibble-website.git Apache-KIBBLE-WEBSITE
+/home/mattmann/drat/deploy/data/clones/kibble Apache-KIBBLE http://github.com/apache/kibble.git Apache-KIBBLE
+/home/mattmann/drat/deploy/data/clones/kylin Apache-KYLIN http://github.com/apache/kylin.git Apache-KYLIN
+/home/mattmann/drat/deploy/data/clones/maven-acr-plugin Apache-MAVEN-ACR-PLUGIN http://github.com/apache/maven-acr-plugin.git Apache-MAVEN-ACR-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-ant-plugin Apache-MAVEN-ANT-PLUGIN http://github.com/apache/maven-ant-plugin.git Apache-MAVEN-ANT-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-antrun-plugin Apache-MAVEN-ANTRUN-PLUGIN http://github.com/apache/maven-antrun-plugin.git Apache-MAVEN-ANTRUN-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-apache-parent Apache-MAVEN-APACHE-PARENT http://github.com/apache/maven-apache-parent.git Apache-MAVEN-APACHE-PARENT
+/home/mattmann/drat/deploy/data/clones/maven-archetype Apache-MAVEN-ARCHETYPE http://github.com/apache/maven-archetype.git Apache-MAVEN-ARCHETYPE
+/home/mattmann/drat/deploy/data/clones/maven-archetypes Apache-MAVEN-ARCHETYPES http://github.com/apache/maven-archetypes.git Apache-MAVEN-ARCHETYPES
+/home/mattmann/drat/deploy/data/clones/maven-archiver Apache-MAVEN-ARCHIVER http://github.com/apache/maven-archiver.git Apache-MAVEN-ARCHIVER
+/home/mattmann/drat/deploy/data/clones/maven-artifact-resolver Apache-MAVEN-ARTIFACT-RESOLVER http://github.com/apache/maven-artifact-resolver.git Apache-MAVEN-ARTIFACT-RESOLVER
+/home/mattmann/drat/deploy/data/clones/maven-artifact-transfer Apache-MAVEN-ARTIFACT-TRANSFER http://github.com/apache/maven-artifact-transfer.git Apache-MAVEN-ARTIFACT-TRANSFER
+/home/mattmann/drat/deploy/data/clones/maven-assembly-plugin Apache-MAVEN-ASSEMBLY-PLUGIN http://github.com/apache/maven-assembly-plugin.git Apache-MAVEN-ASSEMBLY-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-changelog-plugin Apache-MAVEN-CHANGELOG-PLUGIN http://github.com/apache/maven-changelog-plugin.git Apache-MAVEN-CHANGELOG-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-changes-plugin Apache-MAVEN-CHANGES-PLUGIN http://github.com/apache/maven-changes-plugin.git Apache-MAVEN-CHANGES-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-checkstyle-plugin Apache-MAVEN-CHECKSTYLE-PLUGIN http://github.com/apache/maven-checkstyle-plugin.git Apache-MAVEN-CHECKSTYLE-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-clean-plugin Apache-MAVEN-CLEAN-PLUGIN http://github.com/apache/maven-clean-plugin.git Apache-MAVEN-CLEAN-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-common-artifact-filters Apache-MAVEN-COMMON-ARTIFACT-FILTERS http://github.com/apache/maven-common-artifact-filters.git Apache-MAVEN-COMMON-ARTIFACT-FILTERS
+/home/mattmann/drat/deploy/data/clones/maven-compiler-plugin Apache-MAVEN-COMPILER-PLUGIN http://github.com/apache/maven-compiler-plugin.git Apache-MAVEN-COMPILER-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-default-skin Apache-MAVEN-DEFAULT-SKIN http://github.com/apache/maven-default-skin.git Apache-MAVEN-DEFAULT-SKIN
+/home/mattmann/drat/deploy/data/clones/maven-dependency-analyzer Apache-MAVEN-DEPENDENCY-ANALYZER http://github.com/apache/maven-dependency-analyzer.git Apache-MAVEN-DEPENDENCY-ANALYZER
+/home/mattmann/drat/deploy/data/clones/maven-dependency-plugin Apache-MAVEN-DEPENDENCY-PLUGIN http://github.com/apache/maven-dependency-plugin.git Apache-MAVEN-DEPENDENCY-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-dependency-tree Apache-MAVEN-DEPENDENCY-TREE http://github.com/apache/maven-dependency-tree.git Apache-MAVEN-DEPENDENCY-TREE
+/home/mattmann/drat/deploy/data/clones/maven-deploy-plugin Apache-MAVEN-DEPLOY-PLUGIN http://github.com/apache/maven-deploy-plugin.git Apache-MAVEN-DEPLOY-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-dist-tool Apache-MAVEN-DIST-TOOL http://github.com/apache/maven-dist-tool.git Apache-MAVEN-DIST-TOOL
+/home/mattmann/drat/deploy/data/clones/maven-doap-plugin Apache-MAVEN-DOAP-PLUGIN http://github.com/apache/maven-doap-plugin.git Apache-MAVEN-DOAP-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-docck-plugin Apache-MAVEN-DOCCK-PLUGIN http://github.com/apache/maven-docck-plugin.git Apache-MAVEN-DOCCK-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-downloader Apache-MAVEN-DOWNLOADER http://github.com/apache/maven-downloader.git Apache-MAVEN-DOWNLOADER
+/home/mattmann/drat/deploy/data/clones/maven-doxia-converter Apache-MAVEN-DOXIA-CONVERTER http://github.com/apache/maven-doxia-converter.git Apache-MAVEN-DOXIA-CONVERTER
+/home/mattmann/drat/deploy/data/clones/maven-doxia-linkcheck Apache-MAVEN-DOXIA-LINKCHECK http://github.com/apache/maven-doxia-linkcheck.git Apache-MAVEN-DOXIA-LINKCHECK
+/home/mattmann/drat/deploy/data/clones/maven-doxia-site Apache-MAVEN-DOXIA-SITE http://github.com/apache/maven-doxia-site.git Apache-MAVEN-DOXIA-SITE
+/home/mattmann/drat/deploy/data/clones/maven-doxia-sitetools Apache-MAVEN-DOXIA-SITETOOLS http://github.com/apache/maven-doxia-sitetools.git Apache-MAVEN-DOXIA-SITETOOLS
+/home/mattmann/drat/deploy/data/clones/maven-doxia Apache-MAVEN-DOXIA http://github.com/apache/maven-doxia.git Apache-MAVEN-DOXIA
+/home/mattmann/drat/deploy/data/clones/maven-ear-plugin Apache-MAVEN-EAR-PLUGIN http://github.com/apache/maven-ear-plugin.git Apache-MAVEN-EAR-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-ejb-plugin Apache-MAVEN-EJB-PLUGIN http://github.com/apache/maven-ejb-plugin.git Apache-MAVEN-EJB-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-enforcer Apache-MAVEN-ENFORCER http://github.com/apache/maven-enforcer.git Apache-MAVEN-ENFORCER
+/home/mattmann/drat/deploy/data/clones/maven-file-management Apache-MAVEN-FILE-MANAGEMENT http://github.com/apache/maven-file-management.git Apache-MAVEN-FILE-MANAGEMENT
+/home/mattmann/drat/deploy/data/clones/maven-filtering Apache-MAVEN-FILTERING http://github.com/apache/maven-filtering.git Apache-MAVEN-FILTERING
+/home/mattmann/drat/deploy/data/clones/maven-fluido-skin Apache-MAVEN-FLUIDO-SKIN http://github.com/apache/maven-fluido-skin.git Apache-MAVEN-FLUIDO-SKIN
+/home/mattmann/drat/deploy/data/clones/maven-gpg-plugin Apache-MAVEN-GPG-PLUGIN http://github.com/apache/maven-gpg-plugin.git Apache-MAVEN-GPG-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-help-plugin Apache-MAVEN-HELP-PLUGIN http://github.com/apache/maven-help-plugin.git Apache-MAVEN-HELP-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-indexer Apache-MAVEN-INDEXER http://github.com/apache/maven-indexer.git Apache-MAVEN-INDEXER
+/home/mattmann/drat/deploy/data/clones/maven-install-plugin Apache-MAVEN-INSTALL-PLUGIN http://github.com/apache/maven-install-plugin.git Apache-MAVEN-INSTALL-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-integration-testing Apache-MAVEN-INTEGRATION-TESTING http://github.com/apache/maven-integration-testing.git Apache-MAVEN-INTEGRATION-TESTING
+/home/mattmann/drat/deploy/data/clones/maven-invoker-plugin Apache-MAVEN-INVOKER-PLUGIN http://github.com/apache/maven-invoker-plugin.git Apache-MAVEN-INVOKER-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-invoker Apache-MAVEN-INVOKER http://github.com/apache/maven-invoker.git Apache-MAVEN-INVOKER
+/home/mattmann/drat/deploy/data/clones/maven-jar-plugin Apache-MAVEN-JAR-PLUGIN http://github.com/apache/maven-jar-plugin.git Apache-MAVEN-JAR-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-jarsigner-plugin Apache-MAVEN-JARSIGNER-PLUGIN http://github.com/apache/maven-jarsigner-plugin.git Apache-MAVEN-JARSIGNER-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-jarsigner Apache-MAVEN-JARSIGNER http://github.com/apache/maven-jarsigner.git Apache-MAVEN-JARSIGNER
+/home/mattmann/drat/deploy/data/clones/maven-javadoc-plugin Apache-MAVEN-JAVADOC-PLUGIN http://github.com/apache/maven-javadoc-plugin.git Apache-MAVEN-JAVADOC-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-jdeprscan-plugin Apache-MAVEN-JDEPRSCAN-PLUGIN http://github.com/apache/maven-jdeprscan-plugin.git Apache-MAVEN-JDEPRSCAN-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-jdeps-plugin Apache-MAVEN-JDEPS-PLUGIN http://github.com/apache/maven-jdeps-plugin.git Apache-MAVEN-JDEPS-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-jenkins-env Apache-MAVEN-JENKINS-ENV http://github.com/apache/maven-jenkins-env.git Apache-MAVEN-JENKINS-ENV
+/home/mattmann/drat/deploy/data/clones/maven-jenkins-lib Apache-MAVEN-JENKINS-LIB http://github.com/apache/maven-jenkins-lib.git Apache-MAVEN-JENKINS-LIB
+/home/mattmann/drat/deploy/data/clones/maven-jlink-plugin Apache-MAVEN-JLINK-PLUGIN http://github.com/apache/maven-jlink-plugin.git Apache-MAVEN-JLINK-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-jmod-plugin Apache-MAVEN-JMOD-PLUGIN http://github.com/apache/maven-jmod-plugin.git Apache-MAVEN-JMOD-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-jxr Apache-MAVEN-JXR http://github.com/apache/maven-jxr.git Apache-MAVEN-JXR
+/home/mattmann/drat/deploy/data/clones/maven-linkcheck-plugin Apache-MAVEN-LINKCHECK-PLUGIN http://github.com/apache/maven-linkcheck-plugin.git Apache-MAVEN-LINKCHECK-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-mapping Apache-MAVEN-MAPPING http://github.com/apache/maven-mapping.git Apache-MAVEN-MAPPING
+/home/mattmann/drat/deploy/data/clones/maven-osgi Apache-MAVEN-OSGI http://github.com/apache/maven-osgi.git Apache-MAVEN-OSGI
+/home/mattmann/drat/deploy/data/clones/maven-parent Apache-MAVEN-PARENT http://github.com/apache/maven-parent.git Apache-MAVEN-PARENT
+/home/mattmann/drat/deploy/data/clones/maven-patch-plugin Apache-MAVEN-PATCH-PLUGIN http://github.com/apache/maven-patch-plugin.git Apache-MAVEN-PATCH-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-pdf-plugin Apache-MAVEN-PDF-PLUGIN http://github.com/apache/maven-pdf-plugin.git Apache-MAVEN-PDF-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-plugin-testing Apache-MAVEN-PLUGIN-TESTING http://github.com/apache/maven-plugin-testing.git Apache-MAVEN-PLUGIN-TESTING
+/home/mattmann/drat/deploy/data/clones/maven-plugin-tools Apache-MAVEN-PLUGIN-TOOLS http://github.com/apache/maven-plugin-tools.git Apache-MAVEN-PLUGIN-TOOLS
+/home/mattmann/drat/deploy/data/clones/maven-pmd-plugin Apache-MAVEN-PMD-PLUGIN http://github.com/apache/maven-pmd-plugin.git Apache-MAVEN-PMD-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-project-info-reports-plugin Apache-MAVEN-PROJECT-INFO-REPORTS-PLUGIN http://github.com/apache/maven-project-info-reports-plugin.git Apache-MAVEN-PROJECT-INFO-REPORTS-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-project-utils Apache-MAVEN-PROJECT-UTILS http://github.com/apache/maven-project-utils.git Apache-MAVEN-PROJECT-UTILS
+/home/mattmann/drat/deploy/data/clones/maven-rar-plugin Apache-MAVEN-RAR-PLUGIN http://github.com/apache/maven-rar-plugin.git Apache-MAVEN-RAR-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-release Apache-MAVEN-RELEASE http://github.com/apache/maven-release.git Apache-MAVEN-RELEASE
+/home/mattmann/drat/deploy/data/clones/maven-remote-resources-plugin Apache-MAVEN-REMOTE-RESOURCES-PLUGIN http://github.com/apache/maven-remote-resources-plugin.git Apache-MAVEN-REMOTE-RESOURCES-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-reporting-api Apache-MAVEN-REPORTING-API http://github.com/apache/maven-reporting-api.git Apache-MAVEN-REPORTING-API
+/home/mattmann/drat/deploy/data/clones/maven-reporting-exec Apache-MAVEN-REPORTING-EXEC http://github.com/apache/maven-reporting-exec.git Apache-MAVEN-REPORTING-EXEC
+/home/mattmann/drat/deploy/data/clones/maven-reporting-impl Apache-MAVEN-REPORTING-IMPL http://github.com/apache/maven-reporting-impl.git Apache-MAVEN-REPORTING-IMPL
+/home/mattmann/drat/deploy/data/clones/maven-repository-builder Apache-MAVEN-REPOSITORY-BUILDER http://github.com/apache/maven-repository-builder.git Apache-MAVEN-REPOSITORY-BUILDER
+/home/mattmann/drat/deploy/data/clones/maven-repository-plugin Apache-MAVEN-REPOSITORY-PLUGIN http://github.com/apache/maven-repository-plugin.git Apache-MAVEN-REPOSITORY-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-resolver-ant-tasks Apache-MAVEN-RESOLVER-ANT-TASKS http://github.com/apache/maven-resolver-ant-tasks.git Apache-MAVEN-RESOLVER-ANT-TASKS
+/home/mattmann/drat/deploy/data/clones/maven-resolver Apache-MAVEN-RESOLVER http://github.com/apache/maven-resolver.git Apache-MAVEN-RESOLVER
+/home/mattmann/drat/deploy/data/clones/maven-resources-plugin Apache-MAVEN-RESOURCES-PLUGIN http://github.com/apache/maven-resources-plugin.git Apache-MAVEN-RESOURCES-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-runtime Apache-MAVEN-RUNTIME http://github.com/apache/maven-runtime.git Apache-MAVEN-RUNTIME
+/home/mattmann/drat/deploy/data/clones/maven-scm-publish-plugin Apache-MAVEN-SCM-PUBLISH-PLUGIN http://github.com/apache/maven-scm-publish-plugin.git Apache-MAVEN-SCM-PUBLISH-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-scm Apache-MAVEN-SCM http://github.com/apache/maven-scm.git Apache-MAVEN-SCM
+/home/mattmann/drat/deploy/data/clones/maven-script-interpreter Apache-MAVEN-SCRIPT-INTERPRETER http://github.com/apache/maven-script-interpreter.git Apache-MAVEN-SCRIPT-INTERPRETER
+/home/mattmann/drat/deploy/data/clones/maven-scripting-plugin Apache-MAVEN-SCRIPTING-PLUGIN http://github.com/apache/maven-scripting-plugin.git Apache-MAVEN-SCRIPTING-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-shade-plugin Apache-MAVEN-SHADE-PLUGIN http://github.com/apache/maven-shade-plugin.git Apache-MAVEN-SHADE-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-shared-incremental Apache-MAVEN-SHARED-INCREMENTAL http://github.com/apache/maven-shared-incremental.git Apache-MAVEN-SHARED-INCREMENTAL
+/home/mattmann/drat/deploy/data/clones/maven-shared-io Apache-MAVEN-SHARED-IO http://github.com/apache/maven-shared-io.git Apache-MAVEN-SHARED-IO
+/home/mattmann/drat/deploy/data/clones/maven-shared-jar Apache-MAVEN-SHARED-JAR http://github.com/apache/maven-shared-jar.git Apache-MAVEN-SHARED-JAR
+/home/mattmann/drat/deploy/data/clones/maven-shared-resources Apache-MAVEN-SHARED-RESOURCES http://github.com/apache/maven-shared-resources.git Apache-MAVEN-SHARED-RESOURCES
+/home/mattmann/drat/deploy/data/clones/maven-shared-utils Apache-MAVEN-SHARED-UTILS http://github.com/apache/maven-shared-utils.git Apache-MAVEN-SHARED-UTILS
+/home/mattmann/drat/deploy/data/clones/maven-site-plugin Apache-MAVEN-SITE-PLUGIN http://github.com/apache/maven-site-plugin.git Apache-MAVEN-SITE-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-site Apache-MAVEN-SITE http://github.com/apache/maven-site.git Apache-MAVEN-SITE
+/home/mattmann/drat/deploy/data/clones/maven-source-plugin Apache-MAVEN-SOURCE-PLUGIN http://github.com/apache/maven-source-plugin.git Apache-MAVEN-SOURCE-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-sources Apache-MAVEN-SOURCES http://github.com/apache/maven-sources.git Apache-MAVEN-SOURCES
+/home/mattmann/drat/deploy/data/clones/maven-stage-plugin Apache-MAVEN-STAGE-PLUGIN http://github.com/apache/maven-stage-plugin.git Apache-MAVEN-STAGE-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-studies Apache-MAVEN-STUDIES http://github.com/apache/maven-studies.git Apache-MAVEN-STUDIES
+/home/mattmann/drat/deploy/data/clones/maven-surefire Apache-MAVEN-SUREFIRE http://github.com/apache/maven-surefire.git Apache-MAVEN-SUREFIRE
+/home/mattmann/drat/deploy/data/clones/maven-toolchains-plugin Apache-MAVEN-TOOLCHAINS-PLUGIN http://github.com/apache/maven-toolchains-plugin.git Apache-MAVEN-TOOLCHAINS-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-verifier-plugin Apache-MAVEN-VERIFIER-PLUGIN http://github.com/apache/maven-verifier-plugin.git Apache-MAVEN-VERIFIER-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven-verifier Apache-MAVEN-VERIFIER http://github.com/apache/maven-verifier.git Apache-MAVEN-VERIFIER
+/home/mattmann/drat/deploy/data/clones/maven-wagon Apache-MAVEN-WAGON http://github.com/apache/maven-wagon.git Apache-MAVEN-WAGON
+/home/mattmann/drat/deploy/data/clones/maven-war-plugin Apache-MAVEN-WAR-PLUGIN http://github.com/apache/maven-war-plugin.git Apache-MAVEN-WAR-PLUGIN
+/home/mattmann/drat/deploy/data/clones/maven Apache-MAVEN http://github.com/apache/maven.git Apache-MAVEN
+/home/mattmann/drat/deploy/data/clones/mesos-site Apache-MESOS-SITE http://github.com/apache/mesos-site.git Apache-MESOS-SITE
+/home/mattmann/drat/deploy/data/clones/mesos Apache-MESOS http://github.com/apache/mesos.git Apache-MESOS
+/home/mattmann/drat/deploy/data/clones/myfaces-build-tools Apache-MYFACES-BUILD-TOOLS http://github.com/apache/myfaces-build-tools.git Apache-MYFACES-BUILD-TOOLS
+/home/mattmann/drat/deploy/data/clones/myfaces-extcdi Apache-MYFACES-EXTCDI http://github.com/apache/myfaces-extcdi.git Apache-MYFACES-EXTCDI
+/home/mattmann/drat/deploy/data/clones/myfaces-extval Apache-MYFACES-EXTVAL http://github.com/apache/myfaces-extval.git Apache-MYFACES-EXTVAL
+/home/mattmann/drat/deploy/data/clones/myfaces-html5 Apache-MYFACES-HTML5 http://github.com/apache/myfaces-html5.git Apache-MYFACES-HTML5
+/home/mattmann/drat/deploy/data/clones/myfaces-master-pom Apache-MYFACES-MASTER-POM http://github.com/apache/myfaces-master-pom.git Apache-MYFACES-MASTER-POM
+/home/mattmann/drat/deploy/data/clones/myfaces-scripting Apache-MYFACES-SCRIPTING http://github.com/apache/myfaces-scripting.git Apache-MYFACES-SCRIPTING
+/home/mattmann/drat/deploy/data/clones/myfaces-test Apache-MYFACES-TEST http://github.com/apache/myfaces-test.git Apache-MYFACES-TEST
+/home/mattmann/drat/deploy/data/clones/myfaces-tobago Apache-MYFACES-TOBAGO http://github.com/apache/myfaces-tobago.git Apache-MYFACES-TOBAGO
+/home/mattmann/drat/deploy/data/clones/myfaces-trinidad-maven Apache-MYFACES-TRINIDAD-MAVEN http://github.com/apache/myfaces-trinidad-maven.git Apache-MYFACES-TRINIDAD-MAVEN
+/home/mattmann/drat/deploy/data/clones/myfaces-trinidad Apache-MYFACES-TRINIDAD http://github.com/apache/myfaces-trinidad.git Apache-MYFACES-TRINIDAD
+/home/mattmann/drat/deploy/data/clones/myfaces Apache-MYFACES http://github.com/apache/myfaces.git Apache-MYFACES
+/home/mattmann/drat/deploy/data/clones/mynewt-blinky Apache-MYNEWT-BLINKY http://github.com/apache/mynewt-blinky.git Apache-MYNEWT-BLINKY
+/home/mattmann/drat/deploy/data/clones/mynewt-core Apache-MYNEWT-CORE http://github.com/apache/mynewt-core.git Apache-MYNEWT-CORE
+/home/mattmann/drat/deploy/data/clones/mynewt-documentation Apache-MYNEWT-DOCUMENTATION http://github.com/apache/mynewt-documentation.git Apache-MYNEWT-DOCUMENTATION
+/home/mattmann/drat/deploy/data/clones/mynewt-lorawan Apache-MYNEWT-LORAWAN http://github.com/apache/mynewt-lorawan.git Apache-MYNEWT-LORAWAN
+/home/mattmann/drat/deploy/data/clones/mynewt-mcumgr-cli Apache-MYNEWT-MCUMGR-CLI http://github.com/apache/mynewt-mcumgr-cli.git Apache-MYNEWT-MCUMGR-CLI
+/home/mattmann/drat/deploy/data/clones/mynewt-mcumgr Apache-MYNEWT-MCUMGR http://github.com/apache/mynewt-mcumgr.git Apache-MYNEWT-MCUMGR
+/home/mattmann/drat/deploy/data/clones/mynewt-newt Apache-MYNEWT-NEWT http://github.com/apache/mynewt-newt.git Apache-MYNEWT-NEWT
+/home/mattmann/drat/deploy/data/clones/mynewt-newtmgr Apache-MYNEWT-NEWTMGR http://github.com/apache/mynewt-newtmgr.git Apache-MYNEWT-NEWTMGR
+/home/mattmann/drat/deploy/data/clones/mynewt-nfc Apache-MYNEWT-NFC http://github.com/apache/mynewt-nfc.git Apache-MYNEWT-NFC
+/home/mattmann/drat/deploy/data/clones/mynewt-nffs Apache-MYNEWT-NFFS http://github.com/apache/mynewt-nffs.git Apache-MYNEWT-NFFS
+/home/mattmann/drat/deploy/data/clones/mynewt-nimble Apache-MYNEWT-NIMBLE http://github.com/apache/mynewt-nimble.git Apache-MYNEWT-NIMBLE
+/home/mattmann/drat/deploy/data/clones/mynewt-pkg-bsp Apache-MYNEWT-PKG-BSP http://github.com/apache/mynewt-pkg-bsp.git Apache-MYNEWT-PKG-BSP
+/home/mattmann/drat/deploy/data/clones/mynewt-pkg-pkg Apache-MYNEWT-PKG-PKG http://github.com/apache/mynewt-pkg-pkg.git Apache-MYNEWT-PKG-PKG
+/home/mattmann/drat/deploy/data/clones/mynewt-pkg-sdk Apache-MYNEWT-PKG-SDK http://github.com/apache/mynewt-pkg-sdk.git Apache-MYNEWT-PKG-SDK
+/home/mattmann/drat/deploy/data/clones/mynewt-site Apache-MYNEWT-SITE http://github.com/apache/mynewt-site.git Apache-MYNEWT-SITE
+/home/mattmann/drat/deploy/data/clones/nutch Apache-NUTCH http://github.com/apache/nutch.git Apache-NUTCH
+/home/mattmann/drat/deploy/data/clones/odftoolkit Apache-ODFTOOLKIT http://github.com/apache/odftoolkit.git Apache-ODFTOOLKIT
+/home/mattmann/drat/deploy/data/clones/oodt Apache-OODT http://github.com/apache/oodt.git Apache-OODT
+/home/mattmann/drat/deploy/data/clones/openmeetings-site Apache-OPENMEETINGS-SITE http://github.com/apache/openmeetings-site.git Apache-OPENMEETINGS-SITE
+/home/mattmann/drat/deploy/data/clones/openmeetings Apache-OPENMEETINGS http://github.com/apache/openmeetings.git Apache-OPENMEETINGS
+/home/mattmann/drat/deploy/data/clones/opennlp-addons Apache-OPENNLP-ADDONS http://github.com/apache/opennlp-addons.git Apache-OPENNLP-ADDONS
+/home/mattmann/drat/deploy/data/clones/opennlp-corpus Apache-OPENNLP-CORPUS http://github.com/apache/opennlp-corpus.git Apache-OPENNLP-CORPUS
+/home/mattmann/drat/deploy/data/clones/opennlp-sandbox Apache-OPENNLP-SANDBOX http://github.com/apache/opennlp-sandbox.git Apache-OPENNLP-SANDBOX
+/home/mattmann/drat/deploy/data/clones/opennlp-site Apache-OPENNLP-SITE http://github.com/apache/opennlp-site.git Apache-OPENNLP-SITE
+/home/mattmann/drat/deploy/data/clones/opennlp Apache-OPENNLP http://github.com/apache/opennlp.git Apache-OPENNLP
+/home/mattmann/drat/deploy/data/clones/openwebbeans-meecrowave-examples Apache-OPENWEBBEANS-MEECROWAVE-EXAMPLES http://github.com/apache/openwebbeans-meecrowave-examples.git Apache-OPENWEBBEANS-MEECROWAVE-EXAMPLES
+/home/mattmann/drat/deploy/data/clones/parquet-cpp Apache-PARQUET-CPP http://github.com/apache/parquet-cpp.git Apache-PARQUET-CPP
+/home/mattmann/drat/deploy/data/clones/parquet-format Apache-PARQUET-FORMAT http://github.com/apache/parquet-format.git Apache-PARQUET-FORMAT
+/home/mattmann/drat/deploy/data/clones/parquet-mr Apache-PARQUET-MR http://github.com/apache/parquet-mr.git Apache-PARQUET-MR
+/home/mattmann/drat/deploy/data/clones/parquet-testing Apache-PARQUET-TESTING http://github.com/apache/parquet-testing.git Apache-PARQUET-TESTING
+/home/mattmann/drat/deploy/data/clones/reef Apache-REEF http://github.com/apache/reef.git Apache-REEF
+/home/mattmann/drat/deploy/data/clones/rocketmq-externals Apache-ROCKETMQ-EXTERNALS http://github.com/apache/rocketmq-externals.git Apache-ROCKETMQ-EXTERNALS
+/home/mattmann/drat/deploy/data/clones/rocketmq-site Apache-ROCKETMQ-SITE http://github.com/apache/rocketmq-site.git Apache-ROCKETMQ-SITE
+/home/mattmann/drat/deploy/data/clones/rocketmq Apache-ROCKETMQ http://github.com/apache/rocketmq.git Apache-ROCKETMQ
+/home/mattmann/drat/deploy/data/clones/royale-asjs Apache-ROYALE-ASJS http://github.com/apache/royale-asjs.git Apache-ROYALE-ASJS
+/home/mattmann/drat/deploy/data/clones/royale-compiler Apache-ROYALE-COMPILER http://github.com/apache/royale-compiler.git Apache-ROYALE-COMPILER
+/home/mattmann/drat/deploy/data/clones/royale-docs Apache-ROYALE-DOCS http://github.com/apache/royale-docs.git Apache-ROYALE-DOCS
+/home/mattmann/drat/deploy/data/clones/royale-tourjs Apache-ROYALE-TOURJS http://github.com/apache/royale-tourjs.git Apache-ROYALE-TOURJS
+/home/mattmann/drat/deploy/data/clones/royale-typedefs Apache-ROYALE-TYPEDEFS http://github.com/apache/royale-typedefs.git Apache-ROYALE-TYPEDEFS
+/home/mattmann/drat/deploy/data/clones/royale-website Apache-ROYALE-WEBSITE http://github.com/apache/royale-website.git Apache-ROYALE-WEBSITE
+/home/mattmann/drat/deploy/data/clones/sis Apache-SIS http://github.com/apache/sis.git Apache-SIS
+/home/mattmann/drat/deploy/data/clones/sling-adapter-annotations Apache-SLING-ADAPTER-ANNOTATIONS http://github.com/apache/sling-adapter-annotations.git Apache-SLING-ADAPTER-ANNOTATIONS
+/home/mattmann/drat/deploy/data/clones/sling-aggregator Apache-SLING-AGGREGATOR http://github.com/apache/sling-aggregator.git Apache-SLING-AGGREGATOR
+/home/mattmann/drat/deploy/data/clones/sling-apache-sling-jar-resource-bundle Apache-SLING-APACHE-SLING-JAR-RESOURCE-BUNDLE http://github.com/apache/sling-apache-sling-jar-resource-bundle.git Apache-SLING-APACHE-SLING-JAR-RESOURCE-BUNDLE
+/home/mattmann/drat/deploy/data/clones/sling-archetype-parent Apache-SLING-ARCHETYPE-PARENT http://github.com/apache/sling-archetype-parent.git Apache-SLING-ARCHETYPE-PARENT
+/home/mattmann/drat/deploy/data/clones/sling-bundle-archetype Apache-SLING-BUNDLE-ARCHETYPE http://github.com/apache/sling-bundle-archetype.git Apache-SLING-BUNDLE-ARCHETYPE
+/home/mattmann/drat/deploy/data/clones/sling-htl-maven-plugin Apache-SLING-HTL-MAVEN-PLUGIN http://github.com/apache/sling-htl-maven-plugin.git Apache-SLING-HTL-MAVEN-PLUGIN
+/home/mattmann/drat/deploy/data/clones/sling-ide-tooling Apache-SLING-IDE-TOOLING http://github.com/apache/sling-ide-tooling.git Apache-SLING-IDE-TOOLING
+/home/mattmann/drat/deploy/data/clones/sling-initial-content-archetype Apache-SLING-INITIAL-CONTENT-ARCHETYPE http://github.com/apache/sling-initial-content-archetype.git Apache-SLING-INITIAL-CONTENT-ARCHETYPE
+/home/mattmann/drat/deploy/data/clones/sling-jcrinstall-bundle-archetype Apache-SLING-JCRINSTALL-BUNDLE-ARCHETYPE http://github.com/apache/sling-jcrinstall-bundle-archetype.git Apache-SLING-JCRINSTALL-BUNDLE-ARCHETYPE
+/home/mattmann/drat/deploy/data/clones/sling-jspc-maven-plugin Apache-SLING-JSPC-MAVEN-PLUGIN http://github.com/apache/sling-jspc-maven-plugin.git Apache-SLING-JSPC-MAVEN-PLUGIN
+/home/mattmann/drat/deploy/data/clones/sling-launchpad-comparator Apache-SLING-LAUNCHPAD-COMPARATOR http://github.com/apache/sling-launchpad-comparator.git Apache-SLING-LAUNCHPAD-COMPARATOR
+/home/mattmann/drat/deploy/data/clones/sling-launchpad-debian Apache-SLING-LAUNCHPAD-DEBIAN http://github.com/apache/sling-launchpad-debian.git Apache-SLING-LAUNCHPAD-DEBIAN
+/home/mattmann/drat/deploy/data/clones/sling-launchpad-standalone-archetype Apache-SLING-LAUNCHPAD-STANDALONE-ARCHETYPE http://github.com/apache/sling-launchpad-standalone-archetype.git Apache-SLING-LAUNCHPAD-STANDALONE-ARCHETYPE
+/home/mattmann/drat/deploy/data/clones/sling-launchpad-webapp-archetype Apache-SLING-LAUNCHPAD-WEBAPP-ARCHETYPE http://github.com/apache/sling-launchpad-webapp-archetype.git Apache-SLING-LAUNCHPAD-WEBAPP-ARCHETYPE
+/home/mattmann/drat/deploy/data/clones/sling-maven-jcrocm-plugin Apache-SLING-MAVEN-JCROCM-PLUGIN http://github.com/apache/sling-maven-jcrocm-plugin.git Apache-SLING-MAVEN-JCROCM-PLUGIN
+/home/mattmann/drat/deploy/data/clones/sling-maven-launchpad-plugin Apache-SLING-MAVEN-LAUNCHPAD-PLUGIN http://github.com/apache/sling-maven-launchpad-plugin.git Apache-SLING-MAVEN-LAUNCHPAD-PLUGIN
+/home/mattmann/drat/deploy/data/clones/sling-maven-sling-plugin Apache-SLING-MAVEN-SLING-PLUGIN http://github.com/apache/sling-maven-sling-plugin.git Apache-SLING-MAVEN-SLING-PLUGIN
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-adapter Apache-SLING-ORG-APACHE-SLING-ADAPTER http://github.com/apache/sling-org-apache-sling-adapter.git Apache-SLING-ORG-APACHE-SLING-ADAPTER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-api Apache-SLING-ORG-APACHE-SLING-API http://github.com/apache/sling-org-apache-sling-api.git Apache-SLING-ORG-APACHE-SLING-API
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-app-cms Apache-SLING-ORG-APACHE-SLING-APP-CMS http://github.com/apache/sling-org-apache-sling-app-cms.git Apache-SLING-ORG-APACHE-SLING-APP-CMS
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-auth-core Apache-SLING-ORG-APACHE-SLING-AUTH-CORE http://github.com/apache/sling-org-apache-sling-auth-core.git Apache-SLING-ORG-APACHE-SLING-AUTH-CORE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-auth-form Apache-SLING-ORG-APACHE-SLING-AUTH-FORM http://github.com/apache/sling-org-apache-sling-auth-form.git Apache-SLING-ORG-APACHE-SLING-AUTH-FORM
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-auth-xing-api Apache-SLING-ORG-APACHE-SLING-AUTH-XING-API http://github.com/apache/sling-org-apache-sling-auth-xing-api.git Apache-SLING-ORG-APACHE-SLING-AUTH-XING-API
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-auth-xing-login Apache-SLING-ORG-APACHE-SLING-AUTH-XING-LOGIN http://github.com/apache/sling-org-apache-sling-auth-xing-login.git Apache-SLING-ORG-APACHE-SLING-AUTH-XING-LOGIN
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-auth-xing-oauth Apache-SLING-ORG-APACHE-SLING-AUTH-XING-OAUTH http://github.com/apache/sling-org-apache-sling-auth-xing-oauth.git Apache-SLING-ORG-APACHE-SLING-AUTH-XING-OAUTH
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-bnd-models Apache-SLING-ORG-APACHE-SLING-BND-MODELS http://github.com/apache/sling-org-apache-sling-bnd-models.git Apache-SLING-ORG-APACHE-SLING-BND-MODELS
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-bundleresource-impl Apache-SLING-ORG-APACHE-SLING-BUNDLERESOURCE-IMPL http://github.com/apache/sling-org-apache-sling-bundleresource-impl.git Apache-SLING-ORG-APACHE-SLING-BUNDLERESOURCE-IMPL
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-caconfig-api Apache-SLING-ORG-APACHE-SLING-CACONFIG-API http://github.com/apache/sling-org-apache-sling-caconfig-api.git Apache-SLING-ORG-APACHE-SLING-CACONFIG-API
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-caconfig-bnd-plugin Apache-SLING-ORG-APACHE-SLING-CACONFIG-BND-PLUGIN http://github.com/apache/sling-org-apache-sling-caconfig-bnd-plugin.git Apache-SLING-ORG-APACHE-SLING-CACONFIG-BND-PLUGIN
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-caconfig-impl Apache-SLING-ORG-APACHE-SLING-CACONFIG-IMPL http://github.com/apache/sling-org-apache-sling-caconfig-impl.git Apache-SLING-ORG-APACHE-SLING-CACONFIG-IMPL
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-caconfig-integration-tests Apache-SLING-ORG-APACHE-SLING-CACONFIG-INTEGRATION-TESTS http://github.com/apache/sling-org-apache-sling-caconfig-integration-tests.git Apache-SLING-ORG-APACHE-SLING-CACONFIG-INTEGRATION-TESTS
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-caconfig-spi Apache-SLING-ORG-APACHE-SLING-CACONFIG-SPI http://github.com/apache/sling-org-apache-sling-caconfig-spi.git Apache-SLING-ORG-APACHE-SLING-CACONFIG-SPI
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-capabilities Apache-SLING-ORG-APACHE-SLING-CAPABILITIES http://github.com/apache/sling-org-apache-sling-capabilities.git Apache-SLING-ORG-APACHE-SLING-CAPABILITIES
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-cassandra Apache-SLING-ORG-APACHE-SLING-CASSANDRA http://github.com/apache/sling-org-apache-sling-cassandra.git Apache-SLING-ORG-APACHE-SLING-CASSANDRA
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-commons-cache-api Apache-SLING-ORG-APACHE-SLING-COMMONS-CACHE-API http://github.com/apache/sling-org-apache-sling-commons-cache-api.git Apache-SLING-ORG-APACHE-SLING-COMMONS-CACHE-API
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-commons-cache-container-test Apache-SLING-ORG-APACHE-SLING-COMMONS-CACHE-CONTAINER-TEST http://github.com/apache/sling-org-apache-sling-commons-cache-container-test.git Apache-SLING-ORG-APACHE-SLING-COMMONS-CACHE-CONTAINER-TEST
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-commons-cache-ehcache Apache-SLING-ORG-APACHE-SLING-COMMONS-CACHE-EHCACHE http://github.com/apache/sling-org-apache-sling-commons-cache-ehcache.git Apache-SLING-ORG-APACHE-SLING-COMMONS-CACHE-EHCACHE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-commons-cache-impl Apache-SLING-ORG-APACHE-SLING-COMMONS-CACHE-IMPL http://github.com/apache/sling-org-apache-sling-commons-cache-impl.git Apache-SLING-ORG-APACHE-SLING-COMMONS-CACHE-IMPL
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-commons-cache-portal Apache-SLING-ORG-APACHE-SLING-COMMONS-CACHE-PORTAL http://github.com/apache/sling-org-apache-sling-commons-cache-portal.git Apache-SLING-ORG-APACHE-SLING-COMMONS-CACHE-PORTAL
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-commons-clam Apache-SLING-ORG-APACHE-SLING-COMMONS-CLAM http://github.com/apache/sling-org-apache-sling-commons-clam.git Apache-SLING-ORG-APACHE-SLING-COMMONS-CLAM
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-commons-classloader Apache-SLING-ORG-APACHE-SLING-COMMONS-CLASSLOADER http://github.com/apache/sling-org-apache-sling-commons-classloader.git Apache-SLING-ORG-APACHE-SLING-COMMONS-CLASSLOADER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-commons-compiler Apache-SLING-ORG-APACHE-SLING-COMMONS-COMPILER http://github.com/apache/sling-org-apache-sling-commons-compiler.git Apache-SLING-ORG-APACHE-SLING-COMMONS-COMPILER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-commons-contentdetection Apache-SLING-ORG-APACHE-SLING-COMMONS-CONTENTDETECTION http://github.com/apache/sling-org-apache-sling-commons-contentdetection.git Apache-SLING-ORG-APACHE-SLING-COMMONS-CONTENTDETECTION
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-commons-fsclassloader Apache-SLING-ORG-APACHE-SLING-COMMONS-FSCLASSLOADER http://github.com/apache/sling-org-apache-sling-commons-fsclassloader.git Apache-SLING-ORG-APACHE-SLING-COMMONS-FSCLASSLOADER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-commons-html Apache-SLING-ORG-APACHE-SLING-COMMONS-HTML http://github.com/apache/sling-org-apache-sling-commons-html.git Apache-SLING-ORG-APACHE-SLING-COMMONS-HTML
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-commons-johnzon Apache-SLING-ORG-APACHE-SLING-COMMONS-JOHNZON http://github.com/apache/sling-org-apache-sling-commons-johnzon.git Apache-SLING-ORG-APACHE-SLING-COMMONS-JOHNZON
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-commons-log-webconsole Apache-SLING-ORG-APACHE-SLING-COMMONS-LOG-WEBCONSOLE http://github.com/apache/sling-org-apache-sling-commons-log-webconsole.git Apache-SLING-ORG-APACHE-SLING-COMMONS-LOG-WEBCONSOLE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-commons-log Apache-SLING-ORG-APACHE-SLING-COMMONS-LOG http://github.com/apache/sling-org-apache-sling-commons-log.git Apache-SLING-ORG-APACHE-SLING-COMMONS-LOG
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-commons-logservice Apache-SLING-ORG-APACHE-SLING-COMMONS-LOGSERVICE http://github.com/apache/sling-org-apache-sling-commons-logservice.git Apache-SLING-ORG-APACHE-SLING-COMMONS-LOGSERVICE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-commons-messaging-mail Apache-SLING-ORG-APACHE-SLING-COMMONS-MESSAGING-MAIL http://github.com/apache/sling-org-apache-sling-commons-messaging-mail.git Apache-SLING-ORG-APACHE-SLING-COMMONS-MESSAGING-MAIL
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-commons-messaging Apache-SLING-ORG-APACHE-SLING-COMMONS-MESSAGING http://github.com/apache/sling-org-apache-sling-commons-messaging.git Apache-SLING-ORG-APACHE-SLING-COMMONS-MESSAGING
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-commons-metrics-rrd4j Apache-SLING-ORG-APACHE-SLING-COMMONS-METRICS-RRD4J http://github.com/apache/sling-org-apache-sling-commons-metrics-rrd4j.git Apache-SLING-ORG-APACHE-SLING-COMMONS-METRICS-RRD4J
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-commons-metrics Apache-SLING-ORG-APACHE-SLING-COMMONS-METRICS http://github.com/apache/sling-org-apache-sling-commons-metrics.git Apache-SLING-ORG-APACHE-SLING-COMMONS-METRICS
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-commons-mime Apache-SLING-ORG-APACHE-SLING-COMMONS-MIME http://github.com/apache/sling-org-apache-sling-commons-mime.git Apache-SLING-ORG-APACHE-SLING-COMMONS-MIME
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-commons-osgi Apache-SLING-ORG-APACHE-SLING-COMMONS-OSGI http://github.com/apache/sling-org-apache-sling-commons-osgi.git Apache-SLING-ORG-APACHE-SLING-COMMONS-OSGI
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-commons-scheduler Apache-SLING-ORG-APACHE-SLING-COMMONS-SCHEDULER http://github.com/apache/sling-org-apache-sling-commons-scheduler.git Apache-SLING-ORG-APACHE-SLING-COMMONS-SCHEDULER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-commons-testing Apache-SLING-ORG-APACHE-SLING-COMMONS-TESTING http://github.com/apache/sling-org-apache-sling-commons-testing.git Apache-SLING-ORG-APACHE-SLING-COMMONS-TESTING
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-commons-threaddump Apache-SLING-ORG-APACHE-SLING-COMMONS-THREADDUMP http://github.com/apache/sling-org-apache-sling-commons-threaddump.git Apache-SLING-ORG-APACHE-SLING-COMMONS-THREADDUMP
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-commons-threads Apache-SLING-ORG-APACHE-SLING-COMMONS-THREADS http://github.com/apache/sling-org-apache-sling-commons-threads.git Apache-SLING-ORG-APACHE-SLING-COMMONS-THREADS
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-crankstart-launcher Apache-SLING-ORG-APACHE-SLING-CRANKSTART-LAUNCHER http://github.com/apache/sling-org-apache-sling-crankstart-launcher.git Apache-SLING-ORG-APACHE-SLING-CRANKSTART-LAUNCHER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-crankstart-test-model Apache-SLING-ORG-APACHE-SLING-CRANKSTART-TEST-MODEL http://github.com/apache/sling-org-apache-sling-crankstart-test-model.git Apache-SLING-ORG-APACHE-SLING-CRANKSTART-TEST-MODEL
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-crankstart-test-services Apache-SLING-ORG-APACHE-SLING-CRANKSTART-TEST-SERVICES http://github.com/apache/sling-org-apache-sling-crankstart-test-services.git Apache-SLING-ORG-APACHE-SLING-CRANKSTART-TEST-SERVICES
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-datasource Apache-SLING-ORG-APACHE-SLING-DATASOURCE http://github.com/apache/sling-org-apache-sling-datasource.git Apache-SLING-ORG-APACHE-SLING-DATASOURCE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-discovery-api Apache-SLING-ORG-APACHE-SLING-DISCOVERY-API http://github.com/apache/sling-org-apache-sling-discovery-api.git Apache-SLING-ORG-APACHE-SLING-DISCOVERY-API
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-discovery-base Apache-SLING-ORG-APACHE-SLING-DISCOVERY-BASE http://github.com/apache/sling-org-apache-sling-discovery-base.git Apache-SLING-ORG-APACHE-SLING-DISCOVERY-BASE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-discovery-commons Apache-SLING-ORG-APACHE-SLING-DISCOVERY-COMMONS http://github.com/apache/sling-org-apache-sling-discovery-commons.git Apache-SLING-ORG-APACHE-SLING-DISCOVERY-COMMONS
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-discovery-impl Apache-SLING-ORG-APACHE-SLING-DISCOVERY-IMPL http://github.com/apache/sling-org-apache-sling-discovery-impl.git Apache-SLING-ORG-APACHE-SLING-DISCOVERY-IMPL
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-discovery-oak Apache-SLING-ORG-APACHE-SLING-DISCOVERY-OAK http://github.com/apache/sling-org-apache-sling-discovery-oak.git Apache-SLING-ORG-APACHE-SLING-DISCOVERY-OAK
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-discovery-standalone Apache-SLING-ORG-APACHE-SLING-DISCOVERY-STANDALONE http://github.com/apache/sling-org-apache-sling-discovery-standalone.git Apache-SLING-ORG-APACHE-SLING-DISCOVERY-STANDALONE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-discovery-support Apache-SLING-ORG-APACHE-SLING-DISCOVERY-SUPPORT http://github.com/apache/sling-org-apache-sling-discovery-support.git Apache-SLING-ORG-APACHE-SLING-DISCOVERY-SUPPORT
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-distribution-api Apache-SLING-ORG-APACHE-SLING-DISTRIBUTION-API http://github.com/apache/sling-org-apache-sling-distribution-api.git Apache-SLING-ORG-APACHE-SLING-DISTRIBUTION-API
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-distribution-avro-serializer Apache-SLING-ORG-APACHE-SLING-DISTRIBUTION-AVRO-SERIALIZER http://github.com/apache/sling-org-apache-sling-distribution-avro-serializer.git Apache-SLING-ORG-APACHE-SLING-DISTRIBUTION-AVRO-SERIALIZER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-distribution-core Apache-SLING-ORG-APACHE-SLING-DISTRIBUTION-CORE http://github.com/apache/sling-org-apache-sling-distribution-core.git Apache-SLING-ORG-APACHE-SLING-DISTRIBUTION-CORE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-distribution-it Apache-SLING-ORG-APACHE-SLING-DISTRIBUTION-IT http://github.com/apache/sling-org-apache-sling-distribution-it.git Apache-SLING-ORG-APACHE-SLING-DISTRIBUTION-IT
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-distribution-kryo-serializer Apache-SLING-ORG-APACHE-SLING-DISTRIBUTION-KRYO-SERIALIZER http://github.com/apache/sling-org-apache-sling-distribution-kryo-serializer.git Apache-SLING-ORG-APACHE-SLING-DISTRIBUTION-KRYO-SERIALIZER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-distribution-sample Apache-SLING-ORG-APACHE-SLING-DISTRIBUTION-SAMPLE http://github.com/apache/sling-org-apache-sling-distribution-sample.git Apache-SLING-ORG-APACHE-SLING-DISTRIBUTION-SAMPLE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-dynamic-include Apache-SLING-ORG-APACHE-SLING-DYNAMIC-INCLUDE http://github.com/apache/sling-org-apache-sling-dynamic-include.git Apache-SLING-ORG-APACHE-SLING-DYNAMIC-INCLUDE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-engine Apache-SLING-ORG-APACHE-SLING-ENGINE http://github.com/apache/sling-org-apache-sling-engine.git Apache-SLING-ORG-APACHE-SLING-ENGINE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-event-api Apache-SLING-ORG-APACHE-SLING-EVENT-API http://github.com/apache/sling-org-apache-sling-event-api.git Apache-SLING-ORG-APACHE-SLING-EVENT-API
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-event-dea Apache-SLING-ORG-APACHE-SLING-EVENT-DEA http://github.com/apache/sling-org-apache-sling-event-dea.git Apache-SLING-ORG-APACHE-SLING-EVENT-DEA
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-event Apache-SLING-ORG-APACHE-SLING-EVENT http://github.com/apache/sling-org-apache-sling-event.git Apache-SLING-ORG-APACHE-SLING-EVENT
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-extensions-classloader-leak-detector Apache-SLING-ORG-APACHE-SLING-EXTENSIONS-CLASSLOADER-LEAK-DETECTOR http://github.com/apache/sling-org-apache-sling-extensions-classloader-leak-detector.git Apache-SLING-ORG-APACHE-SLING-EXTENSIONS-CLASSLOADER-LEAK-DETECTOR
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-extensions-logback-groovy-fragment Apache-SLING-ORG-APACHE-SLING-EXTENSIONS-LOGBACK-GROOVY-FRAGMENT http://github.com/apache/sling-org-apache-sling-extensions-logback-groovy-fragment.git Apache-SLING-ORG-APACHE-SLING-EXTENSIONS-LOGBACK-GROOVY-FRAGMENT
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-extensions-slf4j-mdc Apache-SLING-ORG-APACHE-SLING-EXTENSIONS-SLF4J-MDC http://github.com/apache/sling-org-apache-sling-extensions-slf4j-mdc.git Apache-SLING-ORG-APACHE-SLING-EXTENSIONS-SLF4J-MDC
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-extensions-webconsolebranding Apache-SLING-ORG-APACHE-SLING-EXTENSIONS-WEBCONSOLEBRANDING http://github.com/apache/sling-org-apache-sling-extensions-webconsolebranding.git Apache-SLING-ORG-APACHE-SLING-EXTENSIONS-WEBCONSOLEBRANDING
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-extensions-webconsolesecurityprovider Apache-SLING-ORG-APACHE-SLING-EXTENSIONS-WEBCONSOLESECURITYPROVIDER http://github.com/apache/sling-org-apache-sling-extensions-webconsolesecurityprovider.git Apache-SLING-ORG-APACHE-SLING-EXTENSIONS-WEBCONSOLESECURITYPROVIDER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-feature-analyser Apache-SLING-ORG-APACHE-SLING-FEATURE-ANALYSER http://github.com/apache/sling-org-apache-sling-feature-analyser.git Apache-SLING-ORG-APACHE-SLING-FEATURE-ANALYSER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-feature-applicationbuilder Apache-SLING-ORG-APACHE-SLING-FEATURE-APPLICATIONBUILDER http://github.com/apache/sling-org-apache-sling-feature-applicationbuilder.git Apache-SLING-ORG-APACHE-SLING-FEATURE-APPLICATIONBUILDER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-feature-io Apache-SLING-ORG-APACHE-SLING-FEATURE-IO http://github.com/apache/sling-org-apache-sling-feature-io.git Apache-SLING-ORG-APACHE-SLING-FEATURE-IO
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-feature-karaf Apache-SLING-ORG-APACHE-SLING-FEATURE-KARAF http://github.com/apache/sling-org-apache-sling-feature-karaf.git Apache-SLING-ORG-APACHE-SLING-FEATURE-KARAF
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-feature-launcher Apache-SLING-ORG-APACHE-SLING-FEATURE-LAUNCHER http://github.com/apache/sling-org-apache-sling-feature-launcher.git Apache-SLING-ORG-APACHE-SLING-FEATURE-LAUNCHER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-feature-modelconverter Apache-SLING-ORG-APACHE-SLING-FEATURE-MODELCONVERTER http://github.com/apache/sling-org-apache-sling-feature-modelconverter.git Apache-SLING-ORG-APACHE-SLING-FEATURE-MODELCONVERTER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-feature-resolver Apache-SLING-ORG-APACHE-SLING-FEATURE-RESOLVER http://github.com/apache/sling-org-apache-sling-feature-resolver.git Apache-SLING-ORG-APACHE-SLING-FEATURE-RESOLVER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-feature Apache-SLING-ORG-APACHE-SLING-FEATURE http://github.com/apache/sling-org-apache-sling-feature.git Apache-SLING-ORG-APACHE-SLING-FEATURE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-featureflags Apache-SLING-ORG-APACHE-SLING-FEATUREFLAGS http://github.com/apache/sling-org-apache-sling-featureflags.git Apache-SLING-ORG-APACHE-SLING-FEATUREFLAGS
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-file-optimization Apache-SLING-ORG-APACHE-SLING-FILE-OPTIMIZATION http://github.com/apache/sling-org-apache-sling-file-optimization.git Apache-SLING-ORG-APACHE-SLING-FILE-OPTIMIZATION
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-fragment-activation Apache-SLING-ORG-APACHE-SLING-FRAGMENT-ACTIVATION http://github.com/apache/sling-org-apache-sling-fragment-activation.git Apache-SLING-ORG-APACHE-SLING-FRAGMENT-ACTIVATION
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-fragment-nashorn Apache-SLING-ORG-APACHE-SLING-FRAGMENT-NASHORN http://github.com/apache/sling-org-apache-sling-fragment-nashorn.git Apache-SLING-ORG-APACHE-SLING-FRAGMENT-NASHORN
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-fragment-transaction Apache-SLING-ORG-APACHE-SLING-FRAGMENT-TRANSACTION http://github.com/apache/sling-org-apache-sling-fragment-transaction.git Apache-SLING-ORG-APACHE-SLING-FRAGMENT-TRANSACTION
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-fragment-ws Apache-SLING-ORG-APACHE-SLING-FRAGMENT-WS http://github.com/apache/sling-org-apache-sling-fragment-ws.git Apache-SLING-ORG-APACHE-SLING-FRAGMENT-WS
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-fragment-xml Apache-SLING-ORG-APACHE-SLING-FRAGMENT-XML http://github.com/apache/sling-org-apache-sling-fragment-xml.git Apache-SLING-ORG-APACHE-SLING-FRAGMENT-XML
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-fsresource Apache-SLING-ORG-APACHE-SLING-FSRESOURCE http://github.com/apache/sling-org-apache-sling-fsresource.git Apache-SLING-ORG-APACHE-SLING-FSRESOURCE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-hapi-client Apache-SLING-ORG-APACHE-SLING-HAPI-CLIENT http://github.com/apache/sling-org-apache-sling-hapi-client.git Apache-SLING-ORG-APACHE-SLING-HAPI-CLIENT
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-hapi-samplecontent Apache-SLING-ORG-APACHE-SLING-HAPI-SAMPLECONTENT http://github.com/apache/sling-org-apache-sling-hapi-samplecontent.git Apache-SLING-ORG-APACHE-SLING-HAPI-SAMPLECONTENT
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-hapi Apache-SLING-ORG-APACHE-SLING-HAPI http://github.com/apache/sling-org-apache-sling-hapi.git Apache-SLING-ORG-APACHE-SLING-HAPI
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-hc-annotations Apache-SLING-ORG-APACHE-SLING-HC-ANNOTATIONS http://github.com/apache/sling-org-apache-sling-hc-annotations.git Apache-SLING-ORG-APACHE-SLING-HC-ANNOTATIONS
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-hc-api Apache-SLING-ORG-APACHE-SLING-HC-API http://github.com/apache/sling-org-apache-sling-hc-api.git Apache-SLING-ORG-APACHE-SLING-HC-API
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-hc-core Apache-SLING-ORG-APACHE-SLING-HC-CORE http://github.com/apache/sling-org-apache-sling-hc-core.git Apache-SLING-ORG-APACHE-SLING-HC-CORE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-hc-it Apache-SLING-ORG-APACHE-SLING-HC-IT http://github.com/apache/sling-org-apache-sling-hc-it.git Apache-SLING-ORG-APACHE-SLING-HC-IT
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-hc-junit-bridge Apache-SLING-ORG-APACHE-SLING-HC-JUNIT-BRIDGE http://github.com/apache/sling-org-apache-sling-hc-junit-bridge.git Apache-SLING-ORG-APACHE-SLING-HC-JUNIT-BRIDGE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-hc-samples Apache-SLING-ORG-APACHE-SLING-HC-SAMPLES http://github.com/apache/sling-org-apache-sling-hc-samples.git Apache-SLING-ORG-APACHE-SLING-HC-SAMPLES
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-hc-support Apache-SLING-ORG-APACHE-SLING-HC-SUPPORT http://github.com/apache/sling-org-apache-sling-hc-support.git Apache-SLING-ORG-APACHE-SLING-HC-SUPPORT
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-hc-webconsole Apache-SLING-ORG-APACHE-SLING-HC-WEBCONSOLE http://github.com/apache/sling-org-apache-sling-hc-webconsole.git Apache-SLING-ORG-APACHE-SLING-HC-WEBCONSOLE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-i18n Apache-SLING-ORG-APACHE-SLING-I18N http://github.com/apache/sling-org-apache-sling-i18n.git Apache-SLING-ORG-APACHE-SLING-I18N
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-installer-console Apache-SLING-ORG-APACHE-SLING-INSTALLER-CONSOLE http://github.com/apache/sling-org-apache-sling-installer-console.git Apache-SLING-ORG-APACHE-SLING-INSTALLER-CONSOLE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-installer-core Apache-SLING-ORG-APACHE-SLING-INSTALLER-CORE http://github.com/apache/sling-org-apache-sling-installer-core.git Apache-SLING-ORG-APACHE-SLING-INSTALLER-CORE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-installer-factory-configuration Apache-SLING-ORG-APACHE-SLING-INSTALLER-FACTORY-CONFIGURATION http://github.com/apache/sling-org-apache-sling-installer-factory-configuration.git Apache-SLING-ORG-APACHE-SLING-INSTALLER-FACTORY-CONFIGURATION
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-installer-factory-deploymentpackage Apache-SLING-ORG-APACHE-SLING-INSTALLER-FACTORY-DEPLOYMENTPACKAGE http://github.com/apache/sling-org-apache-sling-installer-factory-deploymentpackage.git Apache-SLING-ORG-APACHE-SLING-INSTALLER-FACTORY-DEPLOYMENTPACKAGE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-installer-factory-model Apache-SLING-ORG-APACHE-SLING-INSTALLER-FACTORY-MODEL http://github.com/apache/sling-org-apache-sling-installer-factory-model.git Apache-SLING-ORG-APACHE-SLING-INSTALLER-FACTORY-MODEL
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-installer-factory-packages Apache-SLING-ORG-APACHE-SLING-INSTALLER-FACTORY-PACKAGES http://github.com/apache/sling-org-apache-sling-installer-factory-packages.git Apache-SLING-ORG-APACHE-SLING-INSTALLER-FACTORY-PACKAGES
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-installer-factory-subsystems-base Apache-SLING-ORG-APACHE-SLING-INSTALLER-FACTORY-SUBSYSTEMS-BASE http://github.com/apache/sling-org-apache-sling-installer-factory-subsystems-base.git Apache-SLING-ORG-APACHE-SLING-INSTALLER-FACTORY-SUBSYSTEMS-BASE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-installer-factory-subsystems Apache-SLING-ORG-APACHE-SLING-INSTALLER-FACTORY-SUBSYSTEMS http://github.com/apache/sling-org-apache-sling-installer-factory-subsystems.git Apache-SLING-ORG-APACHE-SLING-INSTALLER-FACTORY-SUBSYSTEMS
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-installer-hc Apache-SLING-ORG-APACHE-SLING-INSTALLER-HC http://github.com/apache/sling-org-apache-sling-installer-hc.git Apache-SLING-ORG-APACHE-SLING-INSTALLER-HC
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-installer-it Apache-SLING-ORG-APACHE-SLING-INSTALLER-IT http://github.com/apache/sling-org-apache-sling-installer-it.git Apache-SLING-ORG-APACHE-SLING-INSTALLER-IT
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-installer-provider-file Apache-SLING-ORG-APACHE-SLING-INSTALLER-PROVIDER-FILE http://github.com/apache/sling-org-apache-sling-installer-provider-file.git Apache-SLING-ORG-APACHE-SLING-INSTALLER-PROVIDER-FILE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-installer-provider-jcr Apache-SLING-ORG-APACHE-SLING-INSTALLER-PROVIDER-JCR http://github.com/apache/sling-org-apache-sling-installer-provider-jcr.git Apache-SLING-ORG-APACHE-SLING-INSTALLER-PROVIDER-JCR
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-javax-activation Apache-SLING-ORG-APACHE-SLING-JAVAX-ACTIVATION http://github.com/apache/sling-org-apache-sling-javax-activation.git Apache-SLING-ORG-APACHE-SLING-JAVAX-ACTIVATION
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-jcr-api Apache-SLING-ORG-APACHE-SLING-JCR-API http://github.com/apache/sling-org-apache-sling-jcr-api.git Apache-SLING-ORG-APACHE-SLING-JCR-API
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-jcr-base Apache-SLING-ORG-APACHE-SLING-JCR-BASE http://github.com/apache/sling-org-apache-sling-jcr-base.git Apache-SLING-ORG-APACHE-SLING-JCR-BASE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-jcr-classloader Apache-SLING-ORG-APACHE-SLING-JCR-CLASSLOADER http://github.com/apache/sling-org-apache-sling-jcr-classloader.git Apache-SLING-ORG-APACHE-SLING-JCR-CLASSLOADER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-jcr-contentloader Apache-SLING-ORG-APACHE-SLING-JCR-CONTENTLOADER http://github.com/apache/sling-org-apache-sling-jcr-contentloader.git Apache-SLING-ORG-APACHE-SLING-JCR-CONTENTLOADER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-jcr-contentparser Apache-SLING-ORG-APACHE-SLING-JCR-CONTENTPARSER http://github.com/apache/sling-org-apache-sling-jcr-contentparser.git Apache-SLING-ORG-APACHE-SLING-JCR-CONTENTPARSER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-jcr-davex Apache-SLING-ORG-APACHE-SLING-JCR-DAVEX http://github.com/apache/sling-org-apache-sling-jcr-davex.git Apache-SLING-ORG-APACHE-SLING-JCR-DAVEX
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-jcr-jackrabbit-accessmanager Apache-SLING-ORG-APACHE-SLING-JCR-JACKRABBIT-ACCESSMANAGER http://github.com/apache/sling-org-apache-sling-jcr-jackrabbit-accessmanager.git Apache-SLING-ORG-APACHE-SLING-JCR-JACKRABBIT-ACCESSMANAGER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-jcr-jackrabbit-base Apache-SLING-ORG-APACHE-SLING-JCR-JACKRABBIT-BASE http://github.com/apache/sling-org-apache-sling-jcr-jackrabbit-base.git Apache-SLING-ORG-APACHE-SLING-JCR-JACKRABBIT-BASE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-jcr-jackrabbit-usermanager Apache-SLING-ORG-APACHE-SLING-JCR-JACKRABBIT-USERMANAGER http://github.com/apache/sling-org-apache-sling-jcr-jackrabbit-usermanager.git Apache-SLING-ORG-APACHE-SLING-JCR-JACKRABBIT-USERMANAGER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-jcr-jcr-wrapper Apache-SLING-ORG-APACHE-SLING-JCR-JCR-WRAPPER http://github.com/apache/sling-org-apache-sling-jcr-jcr-wrapper.git Apache-SLING-ORG-APACHE-SLING-JCR-JCR-WRAPPER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-jcr-js-nodetypes Apache-SLING-ORG-APACHE-SLING-JCR-JS-NODETYPES http://github.com/apache/sling-org-apache-sling-jcr-js-nodetypes.git Apache-SLING-ORG-APACHE-SLING-JCR-JS-NODETYPES
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-jcr-oak-server Apache-SLING-ORG-APACHE-SLING-JCR-OAK-SERVER http://github.com/apache/sling-org-apache-sling-jcr-oak-server.git Apache-SLING-ORG-APACHE-SLING-JCR-OAK-SERVER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-jcr-registration Apache-SLING-ORG-APACHE-SLING-JCR-REGISTRATION http://github.com/apache/sling-org-apache-sling-jcr-registration.git Apache-SLING-ORG-APACHE-SLING-JCR-REGISTRATION
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-jcr-repoinit Apache-SLING-ORG-APACHE-SLING-JCR-REPOINIT http://github.com/apache/sling-org-apache-sling-jcr-repoinit.git Apache-SLING-ORG-APACHE-SLING-JCR-REPOINIT
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-jcr-repository-it-resource-versioning Apache-SLING-ORG-APACHE-SLING-JCR-REPOSITORY-IT-RESOURCE-VERSIONING http://github.com/apache/sling-org-apache-sling-jcr-repository-it-resource-versioning.git Apache-SLING-ORG-APACHE-SLING-JCR-REPOSITORY-IT-RESOURCE-VERSIONING
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-jcr-resource Apache-SLING-ORG-APACHE-SLING-JCR-RESOURCE http://github.com/apache/sling-org-apache-sling-jcr-resource.git Apache-SLING-ORG-APACHE-SLING-JCR-RESOURCE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-jcr-resourcesecurity Apache-SLING-ORG-APACHE-SLING-JCR-RESOURCESECURITY http://github.com/apache/sling-org-apache-sling-jcr-resourcesecurity.git Apache-SLING-ORG-APACHE-SLING-JCR-RESOURCESECURITY
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-jcr-webconsole Apache-SLING-ORG-APACHE-SLING-JCR-WEBCONSOLE http://github.com/apache/sling-org-apache-sling-jcr-webconsole.git Apache-SLING-ORG-APACHE-SLING-JCR-WEBCONSOLE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-jcr-webdav Apache-SLING-ORG-APACHE-SLING-JCR-WEBDAV http://github.com/apache/sling-org-apache-sling-jcr-webdav.git Apache-SLING-ORG-APACHE-SLING-JCR-WEBDAV
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-jms Apache-SLING-ORG-APACHE-SLING-JMS http://github.com/apache/sling-org-apache-sling-jms.git Apache-SLING-ORG-APACHE-SLING-JMS
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-jmx-provider Apache-SLING-ORG-APACHE-SLING-JMX-PROVIDER http://github.com/apache/sling-org-apache-sling-jmx-provider.git Apache-SLING-ORG-APACHE-SLING-JMX-PROVIDER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-jobs-it-services Apache-SLING-ORG-APACHE-SLING-JOBS-IT-SERVICES http://github.com/apache/sling-org-apache-sling-jobs-it-services.git Apache-SLING-ORG-APACHE-SLING-JOBS-IT-SERVICES
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-jobs-it Apache-SLING-ORG-APACHE-SLING-JOBS-IT http://github.com/apache/sling-org-apache-sling-jobs-it.git Apache-SLING-ORG-APACHE-SLING-JOBS-IT
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-jobs Apache-SLING-ORG-APACHE-SLING-JOBS http://github.com/apache/sling-org-apache-sling-jobs.git Apache-SLING-ORG-APACHE-SLING-JOBS
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-junit-core Apache-SLING-ORG-APACHE-SLING-JUNIT-CORE http://github.com/apache/sling-org-apache-sling-junit-core.git Apache-SLING-ORG-APACHE-SLING-JUNIT-CORE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-junit-healthcheck Apache-SLING-ORG-APACHE-SLING-JUNIT-HEALTHCHECK http://github.com/apache/sling-org-apache-sling-junit-healthcheck.git Apache-SLING-ORG-APACHE-SLING-JUNIT-HEALTHCHECK
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-junit-performance Apache-SLING-ORG-APACHE-SLING-JUNIT-PERFORMANCE http://github.com/apache/sling-org-apache-sling-junit-performance.git Apache-SLING-ORG-APACHE-SLING-JUNIT-PERFORMANCE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-junit-remote Apache-SLING-ORG-APACHE-SLING-JUNIT-REMOTE http://github.com/apache/sling-org-apache-sling-junit-remote.git Apache-SLING-ORG-APACHE-SLING-JUNIT-REMOTE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-junit-scriptable Apache-SLING-ORG-APACHE-SLING-JUNIT-SCRIPTABLE http://github.com/apache/sling-org-apache-sling-junit-scriptable.git Apache-SLING-ORG-APACHE-SLING-JUNIT-SCRIPTABLE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-junit-teleporter Apache-SLING-ORG-APACHE-SLING-JUNIT-TELEPORTER http://github.com/apache/sling-org-apache-sling-junit-teleporter.git Apache-SLING-ORG-APACHE-SLING-JUNIT-TELEPORTER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-karaf-configs Apache-SLING-ORG-APACHE-SLING-KARAF-CONFIGS http://github.com/apache/sling-org-apache-sling-karaf-configs.git Apache-SLING-ORG-APACHE-SLING-KARAF-CONFIGS
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-karaf-distribution Apache-SLING-ORG-APACHE-SLING-KARAF-DISTRIBUTION http://github.com/apache/sling-org-apache-sling-karaf-distribution.git Apache-SLING-ORG-APACHE-SLING-KARAF-DISTRIBUTION
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-karaf-features Apache-SLING-ORG-APACHE-SLING-KARAF-FEATURES http://github.com/apache/sling-org-apache-sling-karaf-features.git Apache-SLING-ORG-APACHE-SLING-KARAF-FEATURES
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-karaf-integration-tests Apache-SLING-ORG-APACHE-SLING-KARAF-INTEGRATION-TESTS http://github.com/apache/sling-org-apache-sling-karaf-integration-tests.git Apache-SLING-ORG-APACHE-SLING-KARAF-INTEGRATION-TESTS
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-karaf-launchpad-oak-tar-integration-tests Apache-SLING-ORG-APACHE-SLING-KARAF-LAUNCHPAD-OAK-TAR-INTEGRATION-TESTS http://github.com/apache/sling-org-apache-sling-karaf-launchpad-oak-tar-integration-tests.git Apache-SLING-ORG-APACHE-SLING-KARAF-LAUNCHPAD-OAK-TAR-INTEGRATION-TESTS
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-launchpad-api Apache-SLING-ORG-APACHE-SLING-LAUNCHPAD-API http://github.com/apache/sling-org-apache-sling-launchpad-api.git Apache-SLING-ORG-APACHE-SLING-LAUNCHPAD-API
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-launchpad-base Apache-SLING-ORG-APACHE-SLING-LAUNCHPAD-BASE http://github.com/apache/sling-org-apache-sling-launchpad-base.git Apache-SLING-ORG-APACHE-SLING-LAUNCHPAD-BASE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-launchpad-contrib-testing Apache-SLING-ORG-APACHE-SLING-LAUNCHPAD-CONTRIB-TESTING http://github.com/apache/sling-org-apache-sling-launchpad-contrib-testing.git Apache-SLING-ORG-APACHE-SLING-LAUNCHPAD-CONTRIB-TESTING
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-launchpad-installer Apache-SLING-ORG-APACHE-SLING-LAUNCHPAD-INSTALLER http://github.com/apache/sling-org-apache-sling-launchpad-installer.git Apache-SLING-ORG-APACHE-SLING-LAUNCHPAD-INSTALLER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-launchpad-integration-tests Apache-SLING-ORG-APACHE-SLING-LAUNCHPAD-INTEGRATION-TESTS http://github.com/apache/sling-org-apache-sling-launchpad-integration-tests.git Apache-SLING-ORG-APACHE-SLING-LAUNCHPAD-INTEGRATION-TESTS
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-launchpad-test-bundles Apache-SLING-ORG-APACHE-SLING-LAUNCHPAD-TEST-BUNDLES http://github.com/apache/sling-org-apache-sling-launchpad-test-bundles.git Apache-SLING-ORG-APACHE-SLING-LAUNCHPAD-TEST-BUNDLES
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-launchpad-test-fragment Apache-SLING-ORG-APACHE-SLING-LAUNCHPAD-TEST-FRAGMENT http://github.com/apache/sling-org-apache-sling-launchpad-test-fragment.git Apache-SLING-ORG-APACHE-SLING-LAUNCHPAD-TEST-FRAGMENT
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-launchpad-test-services-war Apache-SLING-ORG-APACHE-SLING-LAUNCHPAD-TEST-SERVICES-WAR http://github.com/apache/sling-org-apache-sling-launchpad-test-services-war.git Apache-SLING-ORG-APACHE-SLING-LAUNCHPAD-TEST-SERVICES-WAR
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-launchpad-test-services Apache-SLING-ORG-APACHE-SLING-LAUNCHPAD-TEST-SERVICES http://github.com/apache/sling-org-apache-sling-launchpad-test-services.git Apache-SLING-ORG-APACHE-SLING-LAUNCHPAD-TEST-SERVICES
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-launchpad-testing-war Apache-SLING-ORG-APACHE-SLING-LAUNCHPAD-TESTING-WAR http://github.com/apache/sling-org-apache-sling-launchpad-testing-war.git Apache-SLING-ORG-APACHE-SLING-LAUNCHPAD-TESTING-WAR
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-launchpad-testing Apache-SLING-ORG-APACHE-SLING-LAUNCHPAD-TESTING http://github.com/apache/sling-org-apache-sling-launchpad-testing.git Apache-SLING-ORG-APACHE-SLING-LAUNCHPAD-TESTING
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-models-api Apache-SLING-ORG-APACHE-SLING-MODELS-API http://github.com/apache/sling-org-apache-sling-models-api.git Apache-SLING-ORG-APACHE-SLING-MODELS-API
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-models-impl Apache-SLING-ORG-APACHE-SLING-MODELS-IMPL http://github.com/apache/sling-org-apache-sling-models-impl.git Apache-SLING-ORG-APACHE-SLING-MODELS-IMPL
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-models-integration-tests Apache-SLING-ORG-APACHE-SLING-MODELS-INTEGRATION-TESTS http://github.com/apache/sling-org-apache-sling-models-integration-tests.git Apache-SLING-ORG-APACHE-SLING-MODELS-INTEGRATION-TESTS
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-models-jacksonexporter Apache-SLING-ORG-APACHE-SLING-MODELS-JACKSONEXPORTER http://github.com/apache/sling-org-apache-sling-models-jacksonexporter.git Apache-SLING-ORG-APACHE-SLING-MODELS-JACKSONEXPORTER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-models-validation-impl Apache-SLING-ORG-APACHE-SLING-MODELS-VALIDATION-IMPL http://github.com/apache/sling-org-apache-sling-models-validation-impl.git Apache-SLING-ORG-APACHE-SLING-MODELS-VALIDATION-IMPL
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-mom Apache-SLING-ORG-APACHE-SLING-MOM http://github.com/apache/sling-org-apache-sling-mom.git Apache-SLING-ORG-APACHE-SLING-MOM
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-mongodb Apache-SLING-ORG-APACHE-SLING-MONGODB http://github.com/apache/sling-org-apache-sling-mongodb.git Apache-SLING-ORG-APACHE-SLING-MONGODB
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-nosql-couchbase-client Apache-SLING-ORG-APACHE-SLING-NOSQL-COUCHBASE-CLIENT http://github.com/apache/sling-org-apache-sling-nosql-couchbase-client.git Apache-SLING-ORG-APACHE-SLING-NOSQL-COUCHBASE-CLIENT
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-nosql-couchbase-resourceprovider Apache-SLING-ORG-APACHE-SLING-NOSQL-COUCHBASE-RESOURCEPROVIDER http://github.com/apache/sling-org-apache-sling-nosql-couchbase-resourceprovider.git Apache-SLING-ORG-APACHE-SLING-NOSQL-COUCHBASE-RESOURCEPROVIDER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-nosql-generic Apache-SLING-ORG-APACHE-SLING-NOSQL-GENERIC http://github.com/apache/sling-org-apache-sling-nosql-generic.git Apache-SLING-ORG-APACHE-SLING-NOSQL-GENERIC
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-nosql-launchpad Apache-SLING-ORG-APACHE-SLING-NOSQL-LAUNCHPAD http://github.com/apache/sling-org-apache-sling-nosql-launchpad.git Apache-SLING-ORG-APACHE-SLING-NOSQL-LAUNCHPAD
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-nosql-mongodb-resourceprovider Apache-SLING-ORG-APACHE-SLING-NOSQL-MONGODB-RESOURCEPROVIDER http://github.com/apache/sling-org-apache-sling-nosql-mongodb-resourceprovider.git Apache-SLING-ORG-APACHE-SLING-NOSQL-MONGODB-RESOURCEPROVIDER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-oak-restrictions Apache-SLING-ORG-APACHE-SLING-OAK-RESTRICTIONS http://github.com/apache/sling-org-apache-sling-oak-restrictions.git Apache-SLING-ORG-APACHE-SLING-OAK-RESTRICTIONS
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-paxexam-util Apache-SLING-ORG-APACHE-SLING-PAXEXAM-UTIL http://github.com/apache/sling-org-apache-sling-paxexam-util.git Apache-SLING-ORG-APACHE-SLING-PAXEXAM-UTIL
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-performance Apache-SLING-ORG-APACHE-SLING-PERFORMANCE http://github.com/apache/sling-org-apache-sling-performance.git Apache-SLING-ORG-APACHE-SLING-PERFORMANCE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-pipes Apache-SLING-ORG-APACHE-SLING-PIPES http://github.com/apache/sling-org-apache-sling-pipes.git Apache-SLING-ORG-APACHE-SLING-PIPES
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-provisioning-model Apache-SLING-ORG-APACHE-SLING-PROVISIONING-MODEL http://github.com/apache/sling-org-apache-sling-provisioning-model.git Apache-SLING-ORG-APACHE-SLING-PROVISIONING-MODEL
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-query Apache-SLING-ORG-APACHE-SLING-QUERY http://github.com/apache/sling-org-apache-sling-query.git Apache-SLING-ORG-APACHE-SLING-QUERY
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-repoinit-it Apache-SLING-ORG-APACHE-SLING-REPOINIT-IT http://github.com/apache/sling-org-apache-sling-repoinit-it.git Apache-SLING-ORG-APACHE-SLING-REPOINIT-IT
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-repoinit-parser Apache-SLING-ORG-APACHE-SLING-REPOINIT-PARSER http://github.com/apache/sling-org-apache-sling-repoinit-parser.git Apache-SLING-ORG-APACHE-SLING-REPOINIT-PARSER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-reqanalyzer Apache-SLING-ORG-APACHE-SLING-REQANALYZER http://github.com/apache/sling-org-apache-sling-reqanalyzer.git Apache-SLING-ORG-APACHE-SLING-REQANALYZER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-resource-editor Apache-SLING-ORG-APACHE-SLING-RESOURCE-EDITOR http://github.com/apache/sling-org-apache-sling-resource-editor.git Apache-SLING-ORG-APACHE-SLING-RESOURCE-EDITOR
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-resource-filter Apache-SLING-ORG-APACHE-SLING-RESOURCE-FILTER http://github.com/apache/sling-org-apache-sling-resource-filter.git Apache-SLING-ORG-APACHE-SLING-RESOURCE-FILTER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-resource-inventory Apache-SLING-ORG-APACHE-SLING-RESOURCE-INVENTORY http://github.com/apache/sling-org-apache-sling-resource-inventory.git Apache-SLING-ORG-APACHE-SLING-RESOURCE-INVENTORY
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-resource-presence Apache-SLING-ORG-APACHE-SLING-RESOURCE-PRESENCE http://github.com/apache/sling-org-apache-sling-resource-presence.git Apache-SLING-ORG-APACHE-SLING-RESOURCE-PRESENCE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-resourceaccesssecurity-it Apache-SLING-ORG-APACHE-SLING-RESOURCEACCESSSECURITY-IT http://github.com/apache/sling-org-apache-sling-resourceaccesssecurity-it.git Apache-SLING-ORG-APACHE-SLING-RESOURCEACCESSSECURITY-IT
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-resourceaccesssecurity Apache-SLING-ORG-APACHE-SLING-RESOURCEACCESSSECURITY http://github.com/apache/sling-org-apache-sling-resourceaccesssecurity.git Apache-SLING-ORG-APACHE-SLING-RESOURCEACCESSSECURITY
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-resourcebuilder Apache-SLING-ORG-APACHE-SLING-RESOURCEBUILDER http://github.com/apache/sling-org-apache-sling-resourcebuilder.git Apache-SLING-ORG-APACHE-SLING-RESOURCEBUILDER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-resourcecollection Apache-SLING-ORG-APACHE-SLING-RESOURCECOLLECTION http://github.com/apache/sling-org-apache-sling-resourcecollection.git Apache-SLING-ORG-APACHE-SLING-RESOURCECOLLECTION
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-resourcemerger Apache-SLING-ORG-APACHE-SLING-RESOURCEMERGER http://github.com/apache/sling-org-apache-sling-resourcemerger.git Apache-SLING-ORG-APACHE-SLING-RESOURCEMERGER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-resourceresolver Apache-SLING-ORG-APACHE-SLING-RESOURCERESOLVER http://github.com/apache/sling-org-apache-sling-resourceresolver.git Apache-SLING-ORG-APACHE-SLING-RESOURCERESOLVER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-rewriter Apache-SLING-ORG-APACHE-SLING-REWRITER http://github.com/apache/sling-org-apache-sling-rewriter.git Apache-SLING-ORG-APACHE-SLING-REWRITER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-scripting-api Apache-SLING-ORG-APACHE-SLING-SCRIPTING-API http://github.com/apache/sling-org-apache-sling-scripting-api.git Apache-SLING-ORG-APACHE-SLING-SCRIPTING-API
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-scripting-console Apache-SLING-ORG-APACHE-SLING-SCRIPTING-CONSOLE http://github.com/apache/sling-org-apache-sling-scripting-console.git Apache-SLING-ORG-APACHE-SLING-SCRIPTING-CONSOLE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-scripting-core Apache-SLING-ORG-APACHE-SLING-SCRIPTING-CORE http://github.com/apache/sling-org-apache-sling-scripting-core.git Apache-SLING-ORG-APACHE-SLING-SCRIPTING-CORE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-scripting-el-api Apache-SLING-ORG-APACHE-SLING-SCRIPTING-EL-API http://github.com/apache/sling-org-apache-sling-scripting-el-api.git Apache-SLING-ORG-APACHE-SLING-SCRIPTING-EL-API
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-scripting-esx Apache-SLING-ORG-APACHE-SLING-SCRIPTING-ESX http://github.com/apache/sling-org-apache-sling-scripting-esx.git Apache-SLING-ORG-APACHE-SLING-SCRIPTING-ESX
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-scripting-freemarker Apache-SLING-ORG-APACHE-SLING-SCRIPTING-FREEMARKER http://github.com/apache/sling-org-apache-sling-scripting-freemarker.git Apache-SLING-ORG-APACHE-SLING-SCRIPTING-FREEMARKER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-scripting-groovy Apache-SLING-ORG-APACHE-SLING-SCRIPTING-GROOVY http://github.com/apache/sling-org-apache-sling-scripting-groovy.git Apache-SLING-ORG-APACHE-SLING-SCRIPTING-GROOVY
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-scripting-java Apache-SLING-ORG-APACHE-SLING-SCRIPTING-JAVA http://github.com/apache/sling-org-apache-sling-scripting-java.git Apache-SLING-ORG-APACHE-SLING-SCRIPTING-JAVA
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-scripting-javascript Apache-SLING-ORG-APACHE-SLING-SCRIPTING-JAVASCRIPT http://github.com/apache/sling-org-apache-sling-scripting-javascript.git Apache-SLING-ORG-APACHE-SLING-SCRIPTING-JAVASCRIPT
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-scripting-jsp-api Apache-SLING-ORG-APACHE-SLING-SCRIPTING-JSP-API http://github.com/apache/sling-org-apache-sling-scripting-jsp-api.git Apache-SLING-ORG-APACHE-SLING-SCRIPTING-JSP-API
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-scripting-jsp-jstl Apache-SLING-ORG-APACHE-SLING-SCRIPTING-JSP-JSTL http://github.com/apache/sling-org-apache-sling-scripting-jsp-jstl.git Apache-SLING-ORG-APACHE-SLING-SCRIPTING-JSP-JSTL
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-scripting-jsp-taglib Apache-SLING-ORG-APACHE-SLING-SCRIPTING-JSP-TAGLIB http://github.com/apache/sling-org-apache-sling-scripting-jsp-taglib.git Apache-SLING-ORG-APACHE-SLING-SCRIPTING-JSP-TAGLIB
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-scripting-jsp Apache-SLING-ORG-APACHE-SLING-SCRIPTING-JSP http://github.com/apache/sling-org-apache-sling-scripting-jsp.git Apache-SLING-ORG-APACHE-SLING-SCRIPTING-JSP
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-scripting-sightly-compiler-java Apache-SLING-ORG-APACHE-SLING-SCRIPTING-SIGHTLY-COMPILER-JAVA http://github.com/apache/sling-org-apache-sling-scripting-sightly-compiler-java.git Apache-SLING-ORG-APACHE-SLING-SCRIPTING-SIGHTLY-COMPILER-JAVA
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-scripting-sightly-compiler Apache-SLING-ORG-APACHE-SLING-SCRIPTING-SIGHTLY-COMPILER http://github.com/apache/sling-org-apache-sling-scripting-sightly-compiler.git Apache-SLING-ORG-APACHE-SLING-SCRIPTING-SIGHTLY-COMPILER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-scripting-sightly-js-provider Apache-SLING-ORG-APACHE-SLING-SCRIPTING-SIGHTLY-JS-PROVIDER http://github.com/apache/sling-org-apache-sling-scripting-sightly-js-provider.git Apache-SLING-ORG-APACHE-SLING-SCRIPTING-SIGHTLY-JS-PROVIDER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-scripting-sightly-models-provider Apache-SLING-ORG-APACHE-SLING-SCRIPTING-SIGHTLY-MODELS-PROVIDER http://github.com/apache/sling-org-apache-sling-scripting-sightly-models-provider.git Apache-SLING-ORG-APACHE-SLING-SCRIPTING-SIGHTLY-MODELS-PROVIDER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-scripting-sightly-repl Apache-SLING-ORG-APACHE-SLING-SCRIPTING-SIGHTLY-REPL http://github.com/apache/sling-org-apache-sling-scripting-sightly-repl.git Apache-SLING-ORG-APACHE-SLING-SCRIPTING-SIGHTLY-REPL
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-scripting-sightly-testing-content Apache-SLING-ORG-APACHE-SLING-SCRIPTING-SIGHTLY-TESTING-CONTENT http://github.com/apache/sling-org-apache-sling-scripting-sightly-testing-content.git Apache-SLING-ORG-APACHE-SLING-SCRIPTING-SIGHTLY-TESTING-CONTENT
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-scripting-sightly-testing Apache-SLING-ORG-APACHE-SLING-SCRIPTING-SIGHTLY-TESTING http://github.com/apache/sling-org-apache-sling-scripting-sightly-testing.git Apache-SLING-ORG-APACHE-SLING-SCRIPTING-SIGHTLY-TESTING
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-scripting-sightly Apache-SLING-ORG-APACHE-SLING-SCRIPTING-SIGHTLY http://github.com/apache/sling-org-apache-sling-scripting-sightly.git Apache-SLING-ORG-APACHE-SLING-SCRIPTING-SIGHTLY
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-scripting-thymeleaf Apache-SLING-ORG-APACHE-SLING-SCRIPTING-THYMELEAF http://github.com/apache/sling-org-apache-sling-scripting-thymeleaf.git Apache-SLING-ORG-APACHE-SLING-SCRIPTING-THYMELEAF
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-scripting-xproc Apache-SLING-ORG-APACHE-SLING-SCRIPTING-XPROC http://github.com/apache/sling-org-apache-sling-scripting-xproc.git Apache-SLING-ORG-APACHE-SLING-SCRIPTING-XPROC
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-security Apache-SLING-ORG-APACHE-SLING-SECURITY http://github.com/apache/sling-org-apache-sling-security.git Apache-SLING-ORG-APACHE-SLING-SECURITY
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-serviceuser-webconsole Apache-SLING-ORG-APACHE-SLING-SERVICEUSER-WEBCONSOLE http://github.com/apache/sling-org-apache-sling-serviceuser-webconsole.git Apache-SLING-ORG-APACHE-SLING-SERVICEUSER-WEBCONSOLE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-serviceusermapper Apache-SLING-ORG-APACHE-SLING-SERVICEUSERMAPPER http://github.com/apache/sling-org-apache-sling-serviceusermapper.git Apache-SLING-ORG-APACHE-SLING-SERVICEUSERMAPPER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-servlet-helpers Apache-SLING-ORG-APACHE-SLING-SERVLET-HELPERS http://github.com/apache/sling-org-apache-sling-servlet-helpers.git Apache-SLING-ORG-APACHE-SLING-SERVLET-HELPERS
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-servlets-annotations-it Apache-SLING-ORG-APACHE-SLING-SERVLETS-ANNOTATIONS-IT http://github.com/apache/sling-org-apache-sling-servlets-annotations-it.git Apache-SLING-ORG-APACHE-SLING-SERVLETS-ANNOTATIONS-IT
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-servlets-annotations Apache-SLING-ORG-APACHE-SLING-SERVLETS-ANNOTATIONS http://github.com/apache/sling-org-apache-sling-servlets-annotations.git Apache-SLING-ORG-APACHE-SLING-SERVLETS-ANNOTATIONS
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-servlets-get Apache-SLING-ORG-APACHE-SLING-SERVLETS-GET http://github.com/apache/sling-org-apache-sling-servlets-get.git Apache-SLING-ORG-APACHE-SLING-SERVLETS-GET
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-servlets-post Apache-SLING-ORG-APACHE-SLING-SERVLETS-POST http://github.com/apache/sling-org-apache-sling-servlets-post.git Apache-SLING-ORG-APACHE-SLING-SERVLETS-POST
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-servlets-resolver Apache-SLING-ORG-APACHE-SLING-SERVLETS-RESOLVER http://github.com/apache/sling-org-apache-sling-servlets-resolver.git Apache-SLING-ORG-APACHE-SLING-SERVLETS-RESOLVER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-settings Apache-SLING-ORG-APACHE-SLING-SETTINGS http://github.com/apache/sling-org-apache-sling-settings.git Apache-SLING-ORG-APACHE-SLING-SETTINGS
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-starter-content Apache-SLING-ORG-APACHE-SLING-STARTER-CONTENT http://github.com/apache/sling-org-apache-sling-starter-content.git Apache-SLING-ORG-APACHE-SLING-STARTER-CONTENT
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-starter-docker Apache-SLING-ORG-APACHE-SLING-STARTER-DOCKER http://github.com/apache/sling-org-apache-sling-starter-docker.git Apache-SLING-ORG-APACHE-SLING-STARTER-DOCKER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-starter-startup Apache-SLING-ORG-APACHE-SLING-STARTER-STARTUP http://github.com/apache/sling-org-apache-sling-starter-startup.git Apache-SLING-ORG-APACHE-SLING-STARTER-STARTUP
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-starter Apache-SLING-ORG-APACHE-SLING-STARTER http://github.com/apache/sling-org-apache-sling-starter.git Apache-SLING-ORG-APACHE-SLING-STARTER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-startupfilter-disabler Apache-SLING-ORG-APACHE-SLING-STARTUPFILTER-DISABLER http://github.com/apache/sling-org-apache-sling-startupfilter-disabler.git Apache-SLING-ORG-APACHE-SLING-STARTUPFILTER-DISABLER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-startupfilter Apache-SLING-ORG-APACHE-SLING-STARTUPFILTER http://github.com/apache/sling-org-apache-sling-startupfilter.git Apache-SLING-ORG-APACHE-SLING-STARTUPFILTER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-superimposing Apache-SLING-ORG-APACHE-SLING-SUPERIMPOSING http://github.com/apache/sling-org-apache-sling-superimposing.git Apache-SLING-ORG-APACHE-SLING-SUPERIMPOSING
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-tail Apache-SLING-ORG-APACHE-SLING-TAIL http://github.com/apache/sling-org-apache-sling-tail.git Apache-SLING-ORG-APACHE-SLING-TAIL
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-tenant Apache-SLING-ORG-APACHE-SLING-TENANT http://github.com/apache/sling-org-apache-sling-tenant.git Apache-SLING-ORG-APACHE-SLING-TENANT
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-testing-caconfig-mock-plugin Apache-SLING-ORG-APACHE-SLING-TESTING-CACONFIG-MOCK-PLUGIN http://github.com/apache/sling-org-apache-sling-testing-caconfig-mock-plugin.git Apache-SLING-ORG-APACHE-SLING-TESTING-CACONFIG-MOCK-PLUGIN
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-testing-clients Apache-SLING-ORG-APACHE-SLING-TESTING-CLIENTS http://github.com/apache/sling-org-apache-sling-testing-clients.git Apache-SLING-ORG-APACHE-SLING-TESTING-CLIENTS
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-testing-email Apache-SLING-ORG-APACHE-SLING-TESTING-EMAIL http://github.com/apache/sling-org-apache-sling-testing-email.git Apache-SLING-ORG-APACHE-SLING-TESTING-EMAIL
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-testing-hamcrest Apache-SLING-ORG-APACHE-SLING-TESTING-HAMCREST http://github.com/apache/sling-org-apache-sling-testing-hamcrest.git Apache-SLING-ORG-APACHE-SLING-TESTING-HAMCREST
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-testing-jcr-mock Apache-SLING-ORG-APACHE-SLING-TESTING-JCR-MOCK http://github.com/apache/sling-org-apache-sling-testing-jcr-mock.git Apache-SLING-ORG-APACHE-SLING-TESTING-JCR-MOCK
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-testing-logging-mock Apache-SLING-ORG-APACHE-SLING-TESTING-LOGGING-MOCK http://github.com/apache/sling-org-apache-sling-testing-logging-mock.git Apache-SLING-ORG-APACHE-SLING-TESTING-LOGGING-MOCK
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-testing-osgi-mock Apache-SLING-ORG-APACHE-SLING-TESTING-OSGI-MOCK http://github.com/apache/sling-org-apache-sling-testing-osgi-mock.git Apache-SLING-ORG-APACHE-SLING-TESTING-OSGI-MOCK
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-testing-paxexam Apache-SLING-ORG-APACHE-SLING-TESTING-PAXEXAM http://github.com/apache/sling-org-apache-sling-testing-paxexam.git Apache-SLING-ORG-APACHE-SLING-TESTING-PAXEXAM
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-testing-resourceresolver-mock Apache-SLING-ORG-APACHE-SLING-TESTING-RESOURCERESOLVER-MOCK http://github.com/apache/sling-org-apache-sling-testing-resourceresolver-mock.git Apache-SLING-ORG-APACHE-SLING-TESTING-RESOURCERESOLVER-MOCK
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-testing-rules Apache-SLING-ORG-APACHE-SLING-TESTING-RULES http://github.com/apache/sling-org-apache-sling-testing-rules.git Apache-SLING-ORG-APACHE-SLING-TESTING-RULES
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-testing-serversetup Apache-SLING-ORG-APACHE-SLING-TESTING-SERVERSETUP http://github.com/apache/sling-org-apache-sling-testing-serversetup.git Apache-SLING-ORG-APACHE-SLING-TESTING-SERVERSETUP
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-testing-sling-mock-oak Apache-SLING-ORG-APACHE-SLING-TESTING-SLING-MOCK-OAK http://github.com/apache/sling-org-apache-sling-testing-sling-mock-oak.git Apache-SLING-ORG-APACHE-SLING-TESTING-SLING-MOCK-OAK
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-testing-sling-mock Apache-SLING-ORG-APACHE-SLING-TESTING-SLING-MOCK http://github.com/apache/sling-org-apache-sling-testing-sling-mock.git Apache-SLING-ORG-APACHE-SLING-TESTING-SLING-MOCK
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-tooling-support-install Apache-SLING-ORG-APACHE-SLING-TOOLING-SUPPORT-INSTALL http://github.com/apache/sling-org-apache-sling-tooling-support-install.git Apache-SLING-ORG-APACHE-SLING-TOOLING-SUPPORT-INSTALL
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-tooling-support-source Apache-SLING-ORG-APACHE-SLING-TOOLING-SUPPORT-SOURCE http://github.com/apache/sling-org-apache-sling-tooling-support-source.git Apache-SLING-ORG-APACHE-SLING-TOOLING-SUPPORT-SOURCE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-tracer Apache-SLING-ORG-APACHE-SLING-TRACER http://github.com/apache/sling-org-apache-sling-tracer.git Apache-SLING-ORG-APACHE-SLING-TRACER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-urlrewriter Apache-SLING-ORG-APACHE-SLING-URLREWRITER http://github.com/apache/sling-org-apache-sling-urlrewriter.git Apache-SLING-ORG-APACHE-SLING-URLREWRITER
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-validation-api Apache-SLING-ORG-APACHE-SLING-VALIDATION-API http://github.com/apache/sling-org-apache-sling-validation-api.git Apache-SLING-ORG-APACHE-SLING-VALIDATION-API
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-validation-core Apache-SLING-ORG-APACHE-SLING-VALIDATION-CORE http://github.com/apache/sling-org-apache-sling-validation-core.git Apache-SLING-ORG-APACHE-SLING-VALIDATION-CORE
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-validation-examples Apache-SLING-ORG-APACHE-SLING-VALIDATION-EXAMPLES http://github.com/apache/sling-org-apache-sling-validation-examples.git Apache-SLING-ORG-APACHE-SLING-VALIDATION-EXAMPLES
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-validation-test-services Apache-SLING-ORG-APACHE-SLING-VALIDATION-TEST-SERVICES http://github.com/apache/sling-org-apache-sling-validation-test-services.git Apache-SLING-ORG-APACHE-SLING-VALIDATION-TEST-SERVICES
+/home/mattmann/drat/deploy/data/clones/sling-org-apache-sling-xss Apache-SLING-ORG-APACHE-SLING-XSS http://github.com/apache/sling-org-apache-sling-xss.git Apache-SLING-ORG-APACHE-SLING-XSS
+/home/mattmann/drat/deploy/data/clones/sling-parent Apache-SLING-PARENT http://github.com/apache/sling-parent.git Apache-SLING-PARENT
+/home/mattmann/drat/deploy/data/clones/sling-samples Apache-SLING-SAMPLES http://github.com/apache/sling-samples.git Apache-SLING-SAMPLES
+/home/mattmann/drat/deploy/data/clones/sling-servlet-archetype Apache-SLING-SERVLET-ARCHETYPE http://github.com/apache/sling-servlet-archetype.git Apache-SLING-SERVLET-ARCHETYPE
+/home/mattmann/drat/deploy/data/clones/sling-site Apache-SLING-SITE http://github.com/apache/sling-site.git Apache-SLING-SITE
+/home/mattmann/drat/deploy/data/clones/sling-slingfeature-maven-plugin Apache-SLING-SLINGFEATURE-MAVEN-PLUGIN http://github.com/apache/sling-slingfeature-maven-plugin.git Apache-SLING-SLINGFEATURE-MAVEN-PLUGIN
+/home/mattmann/drat/deploy/data/clones/sling-slingstart-archetype Apache-SLING-SLINGSTART-ARCHETYPE http://github.com/apache/sling-slingstart-archetype.git Apache-SLING-SLINGSTART-ARCHETYPE
+/home/mattmann/drat/deploy/data/clones/sling-slingstart-maven-plugin Apache-SLING-SLINGSTART-MAVEN-PLUGIN http://github.com/apache/sling-slingstart-maven-plugin.git Apache-SLING-SLINGSTART-MAVEN-PLUGIN
+/home/mattmann/drat/deploy/data/clones/sling-taglib-archetype Apache-SLING-TAGLIB-ARCHETYPE http://github.com/apache/sling-taglib-archetype.git Apache-SLING-TAGLIB-ARCHETYPE
+/home/mattmann/drat/deploy/data/clones/sling-tooling-jenkins Apache-SLING-TOOLING-JENKINS http://github.com/apache/sling-tooling-jenkins.git Apache-SLING-TOOLING-JENKINS
+/home/mattmann/drat/deploy/data/clones/sling-tooling-release Apache-SLING-TOOLING-RELEASE http://github.com/apache/sling-tooling-release.git Apache-SLING-TOOLING-RELEASE
+/home/mattmann/drat/deploy/data/clones/sling-tooling-scm Apache-SLING-TOOLING-SCM http://github.com/apache/sling-tooling-scm.git Apache-SLING-TOOLING-SCM
+/home/mattmann/drat/deploy/data/clones/sling-whiteboard Apache-SLING-WHITEBOARD http://github.com/apache/sling-whiteboard.git Apache-SLING-WHITEBOARD
+/home/mattmann/drat/deploy/data/clones/streams-examples Apache-STREAMS-EXAMPLES http://github.com/apache/streams-examples.git Apache-STREAMS-EXAMPLES
+/home/mattmann/drat/deploy/data/clones/streams-master Apache-STREAMS-MASTER http://github.com/apache/streams-master.git Apache-STREAMS-MASTER
+/home/mattmann/drat/deploy/data/clones/streams Apache-STREAMS http://github.com/apache/streams.git Apache-STREAMS
+/home/mattmann/drat/deploy/data/clones/struts-annotations Apache-STRUTS-ANNOTATIONS http://github.com/apache/struts-annotations.git Apache-STRUTS-ANNOTATIONS
+/home/mattmann/drat/deploy/data/clones/struts-archetypes Apache-STRUTS-ARCHETYPES http://github.com/apache/struts-archetypes.git Apache-STRUTS-ARCHETYPES
+/home/mattmann/drat/deploy/data/clones/struts-archive Apache-STRUTS-ARCHIVE http://github.com/apache/struts-archive.git Apache-STRUTS-ARCHIVE
+/home/mattmann/drat/deploy/data/clones/struts-examples Apache-STRUTS-EXAMPLES http://github.com/apache/struts-examples.git Apache-STRUTS-EXAMPLES
+/home/mattmann/drat/deploy/data/clones/struts-extras Apache-STRUTS-EXTRAS http://github.com/apache/struts-extras.git Apache-STRUTS-EXTRAS
+/home/mattmann/drat/deploy/data/clones/struts-master Apache-STRUTS-MASTER http://github.com/apache/struts-master.git Apache-STRUTS-MASTER
+/home/mattmann/drat/deploy/data/clones/struts-maven Apache-STRUTS-MAVEN http://github.com/apache/struts-maven.git Apache-STRUTS-MAVEN
+/home/mattmann/drat/deploy/data/clones/struts-sandbox Apache-STRUTS-SANDBOX http://github.com/apache/struts-sandbox.git Apache-STRUTS-SANDBOX
+/home/mattmann/drat/deploy/data/clones/struts-site Apache-STRUTS-SITE http://github.com/apache/struts-site.git Apache-STRUTS-SITE
+/home/mattmann/drat/deploy/data/clones/struts Apache-STRUTS http://github.com/apache/struts.git Apache-STRUTS
+/home/mattmann/drat/deploy/data/clones/tajo-site Apache-TAJO-SITE http://github.com/apache/tajo-site.git Apache-TAJO-SITE
+/home/mattmann/drat/deploy/data/clones/tajo Apache-TAJO http://github.com/apache/tajo.git Apache-TAJO
+/home/mattmann/drat/deploy/data/clones/tcl-moddtcl Apache-TCL-MODDTCL http://github.com/apache/tcl-moddtcl.git Apache-TCL-MODDTCL
+/home/mattmann/drat/deploy/data/clones/tcl-modtcl Apache-TCL-MODTCL http://github.com/apache/tcl-modtcl.git Apache-TCL-MODTCL
+/home/mattmann/drat/deploy/data/clones/tcl-rivet Apache-TCL-RIVET http://github.com/apache/tcl-rivet.git Apache-TCL-RIVET
+/home/mattmann/drat/deploy/data/clones/tcl-websh Apache-TCL-WEBSH http://github.com/apache/tcl-websh.git Apache-TCL-WEBSH
+/home/mattmann/drat/deploy/data/clones/thrift Apache-THRIFT http://github.com/apache/thrift.git Apache-THRIFT
+/home/mattmann/drat/deploy/data/clones/tika Apache-TIKA http://github.com/apache/tika.git Apache-TIKA
+/home/mattmann/drat/deploy/data/clones/tomcat-training Apache-TOMCAT-TRAINING http://github.com/apache/tomcat-training.git Apache-TOMCAT-TRAINING
+/home/mattmann/drat/deploy/data/clones/trafficcontrol-website Apache-TRAFFICCONTROL-WEBSITE http://github.com/apache/trafficcontrol-website.git Apache-TRAFFICCONTROL-WEBSITE
+/home/mattmann/drat/deploy/data/clones/trafficcontrol Apache-TRAFFICCONTROL http://github.com/apache/trafficcontrol.git Apache-TRAFFICCONTROL
+/home/mattmann/drat/deploy/data/clones/trafficserver-qa Apache-TRAFFICSERVER-QA http://github.com/apache/trafficserver-qa.git Apache-TRAFFICSERVER-QA
+/home/mattmann/drat/deploy/data/clones/trafficserver Apache-TRAFFICSERVER http://github.com/apache/trafficserver.git Apache-TRAFFICSERVER
+/home/mattmann/drat/deploy/data/clones/turbine-archetypes Apache-TURBINE-ARCHETYPES http://github.com/apache/turbine-archetypes.git Apache-TURBINE-ARCHETYPES
+/home/mattmann/drat/deploy/data/clones/uima-uimafit Apache-UIMA-UIMAFIT http://github.com/apache/uima-uimafit.git Apache-UIMA-UIMAFIT
+/home/mattmann/drat/deploy/data/clones/whimsy Apache-WHIMSY http://github.com/apache/whimsy.git Apache-WHIMSY
diff --git a/distribution/src/main/resources/conf/repo.default.txt b/distribution/src/main/resources/conf/repo.default.txt
new file mode 100644
index 0000000..341d53d
--- /dev/null
+++ b/distribution/src/main/resources/conf/repo.default.txt
@@ -0,0 +1 @@
+{"id":"http://drat.apache.org/#","repo":"","name":"","loc_url":"http://drat.apache.org/#","description":"DRAT : Command line","type":"project"}
diff --git a/extensions/pom.xml b/extensions/pom.xml
index a4b08f5..4b45ffa 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -77,7 +77,7 @@
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
- <version>3.8.2</version>
+ <version>${junit.version}</version>
</dependency>
</dependencies>
diff --git a/filemgr/pom.xml b/filemgr/pom.xml
index b4a9285..6ac033d 100644
--- a/filemgr/pom.xml
+++ b/filemgr/pom.xml
@@ -60,7 +60,7 @@
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
- <version>3.8.2</version>
+ <version>${junit.version}</version>
<scope>test</scope>
</dependency>
diff --git a/nohup.out b/nohup.out
new file mode 100644
index 0000000..bb32b5e
--- /dev/null
+++ b/nohup.out
@@ -0,0 +1,3 @@
+Started dynamic workflow with id '6453cca6-9f30-11e8-b99d-f5018c8e9233'
+
+Navigate to http://localhost:8080/opsui/ to view the OODT browser and http://localhost:8080/solr to view the Solr catalog.
diff --git a/pcs/pom.xml b/pcs/pom.xml
index 5be580e..548c271 100644
--- a/pcs/pom.xml
+++ b/pcs/pom.xml
@@ -60,7 +60,7 @@
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
- <version>3.8.2</version>
+ <version>${junit.version}</version>
<scope>test</scope>
</dependency>
diff --git a/pge/src/main/resources/bin/rat_aggregator/rat_aggregator.py b/pge/src/main/resources/bin/rat_aggregator/rat_aggregator.py
index 0cb3182..0b1b04d 100755
--- a/pge/src/main/resources/bin/rat_aggregator/rat_aggregator.py
+++ b/pge/src/main/resources/bin/rat_aggregator/rat_aggregator.py
@@ -26,6 +26,36 @@
import sys
import os
import getopt
+import subprocess
+import time
+import shutil
+import datetime
+import csv
+import urllib2
+import json
+import xmlrpclib
+import getopt
+import glob
+import md5
+import requests
+
+
+def parse_license(s):
+ li_dict = {'N': 'Notes', 'B': 'Binaries', 'A': 'Archives', 'AL': 'Apache', '!?????': 'Unknown'}
+ if s and not s.isspace():
+ arr = s.split("/", 1)
+ li = arr[0].strip()
+ if li in li_dict:
+ li = li_dict[li]
+
+ if len(arr) > 1 and len(arr[1].split("/")) > 0:
+ return [arr[1].split("/")[-1], li]
+ else:
+ #print('split not correct during license parsing '+str(arr))
+ return ["/dev/null", li_dict['!?????']]
+ else:
+ #print('blank line provided to parse license ['+s+']')
+ return ["/dev/null", li_dict['!?????']]
def parseFile(filepath):
@@ -55,15 +85,39 @@
if line.find('Unknown Licenses') != -1:
unknown = unknown + int(line.split(' ')[0].strip())
return (notes, binaries,archives,standards,apachelicensed,generated,unknown)
-
+
return (-1,-1,-1,-1,-1,-1,-1)
+def count_num_files(path, exclude):
+ count = 0
+ for root, dirs, files in os.walk(path):
+ for filename in files:
+ if exclude not in os.path.join(root, filename):
+ count += 1
+ return count
+
+def index_solr(json_data):
+ #print(json_data)
+ request = urllib2.Request(os.getenv("SOLR_URL") + "/statistics/update/json?commit=true")
+ request.add_header('Content-type', 'application/json')
+ urllib2.urlopen(request, json_data)
+
def main(argv=None):
usage = 'rat_aggregator.py logfile1 logfile2 ... logfileN'
+ #print("starting rat aggregator")
+
+ repo_file_url = os.getenv("DRAT_HOME") + "/data/repo"
+ with open(repo_file_url,'rb')as repoFile:
+ data = ''
+ for line in repoFile:
+ data+=line
+ rep = eval(data)
+
+ index_solr(json.dumps([rep]))
if len(argv) == 0:
- print usage
- sys.exit()
+ print usage
+ sys.exit()
totalNotes = 0
totalBinaries = 0
@@ -83,9 +137,151 @@
totalGenerated = totalGenerated + generated
totalUnknown = totalUnknown + unknown
- print "Notes,Binaries,Archives,Standards,Apache,Generated,Unknown"
- print str(totalNotes)+","+str(totalBinaries)+","+str(totalArchives)+","+str(totalStandards)+","+str(totalApache)+","+str(totalGenerated)+","+str(totalUnknown)
+ #Additionally
+ stats = {}
+ stats["license_Notes"] = totalNotes
+ stats["license_Binaries"] = totalBinaries
+ stats["license_Archives"] = totalArchives
+ stats["license_Standards"] = totalStandards
+ stats["license_Apache"] = totalApache
+ stats["license_Generated"] = totalGenerated
+ stats["license_Unknown"] = totalUnknown
+
+
+
+ stats['id'] =rep["repo"]
+ retVal = True
+
+ if retVal:
+ # Copy Data with datetime variables above, extract output from RatAggregate file, extract data from Solr Core
+ #print("\nCopying data to Solr and Output Directory...\n")
+
+ # Extract data from Solr
+ neg_mimetype = ["image", "application", "text", "video", "audio", "message", "multipart"]
+ connection = requests.get(os.getenv("SOLR_URL") + "/drat/select?q=*%3A*&rows=0&facet=true&facet.field=mimetype&wt=python&indent=true")
+
+ response = eval(connection.text)
+ mime_count = response["facet_counts"]["facet_fields"]["mimetype"]
+
+ for i in range(0, len(mime_count), 2):
+ if mime_count[i].split("/")[0] not in neg_mimetype:
+ stats["mime_" + mime_count[i]] = mime_count[i + 1]
+
+
+ # Count the number of files
+ stats["files"] = count_num_files(rep["repo"], ".git")
+
+ # Write data into Solr
+ stats["type"] = 'software'
+ stats_data = []
+ stats_data.append(stats)
+ json_data = json.dumps(stats_data)
+ index_solr(json_data)
+
+ # Parse RAT logs
+ rat_logs_dir = os.getenv("DRAT_HOME") + "/data/archive/rat/*/*.log"
+ rat_license = {}
+ rat_header = {}
+ for filename in glob.glob(rat_logs_dir):
+ l = 0
+ h = 0
+ cur_file = ''
+ cur_header = ''
+ cur_section = ''
+ parsedHeaders = False
+ parsedLicenses = False
+
+ with open(filename, 'rb') as f:
+ for line in f:
+ if '*****************************************************' in line:
+ l = 0
+ h = 0
+ if cur_section == 'licenses':
+ parsedLicenses = True
+ if cur_section == 'headers':
+ parsedHeaders = True
+
+ cur_file = ''
+ cur_header = ''
+ cur_section = ''
+ if line.startswith(' Files with Apache') and not parsedLicenses:
+ cur_section = 'licenses'
+ if line.startswith(' Printing headers for ') and not parsedHeaders:
+ cur_section = 'headers'
+ if cur_section == 'licenses':
+ l += 1
+ if l > 4:
+ line = line.strip()
+ if line:
+ #print("File: %s with License Line: %s" % (filename, line))
+ li = parse_license(line)
+ rat_license[li[0]] = li[1]
+ #print(li)
+ if cur_section == 'headers':
+ if '=====================================================' in line or '== File:' in line:
+ h += 1
+ if h == 2:
+ cur_file = line.split("/")[-1].strip()
+ if h == 3:
+ cur_header += line
+ if h == 4:
+ rat_header[cur_file] = cur_header.split("\n", 1)[1]
+ cur_file = ''
+ cur_header = ''
+ h = 1
+ if h == 3:
+ rat_header[cur_file] = cur_header.split("\n", 1)[1]
+ parsedHeaders = True
+ parsedLicenses = True
+
+ # Index RAT logs into Solr
+ connection = requests.get(os.getenv("SOLR_URL") +
+ "/drat/select?q=*%3A*&fl=filename%2Cfilelocation%2Cmimetype&wt=python&rows="
+ + str(stats["files"]) +"&indent=true")
+
+ response = eval(connection.text)
+ docs = response['response']['docs']
+ file_data = []
+ batch = 100
+ dc = 0
+
+ for doc in docs:
+ fdata = {}
+ fdata['id'] = os.path.join(doc['filelocation'][0], doc['filename'][0])
+ m = md5.new()
+ m.update(fdata['id'])
+ hashId = m.hexdigest()
+ fileId = hashId+"-"+doc['filename'][0]
+
+ if fileId not in rat_license:
+ #print "File: "+str(fdata['id'])+": ID: ["+fileId+"] not present in parsed licenses => Likely file copying issue. Skipping."
+ continue #handle issue with DRAT #93
+
+ fdata["type"] = 'file'
+ fdata['parent'] = rep["repo"]
+ fdata['mimetype'] = doc['mimetype'][0]
+ fdata['license'] = rat_license[fileId]
+ if fileId in rat_header:
+ fdata['header'] = rat_header[fileId]
+ file_data.append(fdata)
+ dc += 1
+ if dc % batch == 0:
+ json_data = json.dumps(file_data)
+ index_solr(json_data)
+ file_data = []
+ if dc % batch != 0:
+ json_data = json.dumps(file_data)
+ index_solr(json_data)
+
+ # Copying data to Output Directory
+ print ("Notes,Binaries,Archives,Standards,Apache,Generated,Unknown")
+ print str(totalNotes)+","+str(totalBinaries)+","+str(totalArchives)+","+str(totalStandards)+","+str(totalApache)+" ,"+str(totalGenerated)+","+str(totalUnknown)
+ #print("\nData copied to Solr and Output Directory: OK\n")
+
if __name__ == "__main__":
main(sys.argv[1:])
+
+
+
diff --git a/pom.xml b/pom.xml
index 013787b..acd8333 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,8 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
- <oodt.version>1.2.2</oodt.version>
+ <oodt.version>1.2.4</oodt.version>
+ <junit.version>4.12</junit.version>
</properties>
<repositories>
@@ -48,6 +49,7 @@
</distributionManagement>
<build>
+ <defaultGoal>clean install</defaultGoal>
<sourceDirectory>${basedir}/src/main/java</sourceDirectory>
<testSourceDirectory>${basedir}/src/test</testSourceDirectory>
<plugins>
@@ -56,14 +58,14 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
- <source>1.6</source>
- <target>1.6</target>
+ <source>1.8</source>
+ <target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
- <version>2.4</version>
+ <version>3.1.0</version>
<configuration>
<archive>
<index>true</index>
diff --git a/proteus/pom.xml b/proteus/pom.xml
index 18fe642..5f2d5e7 100644
--- a/proteus/pom.xml
+++ b/proteus/pom.xml
@@ -39,7 +39,6 @@
</licenses>
<properties>
<wicket.version>7.8.0</wicket.version>
- <junit.version>4.12</junit.version>
<log4j.version>2.3</log4j.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<cxf.version>2.2.3</cxf.version>
@@ -181,8 +180,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
- <source>1.7</source>
- <target>1.7</target>
+ <source>1.8</source>
+ <target>1.8</target>
<encoding>UTF-8</encoding>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
diff --git a/proteus/src/main/java/backend/AbstractDratWrapper.java b/proteus/src/main/java/backend/AbstractDratWrapper.java
index 229bab8..6ef4b33 100644
--- a/proteus/src/main/java/backend/AbstractDratWrapper.java
+++ b/proteus/src/main/java/backend/AbstractDratWrapper.java
@@ -17,6 +17,8 @@
package backend;
+import drat.proteus.rest.DratRequestWrapper;
+
/**
* This interface abstracts the main communication methods between Apache DRAT
* and Proteus
@@ -38,4 +40,5 @@
public String getIndexablePath();
+ void setData(DratRequestWrapper body);
}
diff --git a/proteus/src/main/java/backend/FileConstants.java b/proteus/src/main/java/backend/FileConstants.java
index f5a69d7..b502e3e 100644
--- a/proteus/src/main/java/backend/FileConstants.java
+++ b/proteus/src/main/java/backend/FileConstants.java
@@ -19,8 +19,6 @@
import org.apache.oodt.cas.metadata.util.PathUtils;
-import java.io.File;
-
/**
* Created by stevenfrancus on 10/13/15.
*/
@@ -30,9 +28,21 @@
public static final String OODT_PATH = buildDratSubdirectoryPath("/deploy/bin/oodt");
public static final String WORKFLOW_PATH = buildDratSubdirectoryPath("/deploy/workflow/bin/wmgr-client");
public static final String DRAT_PATH = buildDratSubdirectoryPath("/deploy/bin/drat");
+ public static final String DRAT_CLONES = buildDratSubdirectoryPath("/deploy/data/clones");
public static final String DRAT_TEMP_UNZIPPED_PATH = buildDratSubdirectoryPath("/deploy/data/staging");
+ public static final String CURRENT_REPO_DETAILS_FILE = buildDratSubdirectoryPath("/deploy/data/repo");
public static final String DRAT_TEMP_LOG_OUTPUT = buildDratSubdirectoryPath("/deploy/data/drat_output.log");
+ public static final String SOLR_INDEXER_CONFIG_PATH = buildDratSubdirectoryPath("/deploy/filemgr/etc/indexer.properties");
+ public static final String FILEMGR_URL=PathUtils.replaceEnvVariables("[FILEMGR_URL]");
+ public static final String SOLR_DRAT_URL=PathUtils.replaceEnvVariables("[SOLR_DRAT_URL]");
+ public static final String CLIENT_URL=PathUtils.replaceEnvVariables("[WORKFLOW_URL]");
+ public static final String OPSUI_URL=PathUtils.replaceEnvVariables("[OPSUI_URL]");
+
+ public static final String MET_EXT_CONFIG_PATH =buildDratSubdirectoryPath("/deploy/extractors/code/default.cpr.conf");
+ public static final String CRAWLER_CONFIG = buildDratSubdirectoryPath("/deploy/crawler/policy/crawler-config.xml");
+ public static final String SOLR_INDEXER_CONFIG = "SOLR_INDEXER_CONFIG";
+
private static String getDratDirectory() {
final String DRAT_HOME = PathUtils.replaceEnvVariables("[DRAT_HOME]");
return DRAT_HOME.substring(0, DRAT_HOME.lastIndexOf(DRAT) + DRAT.length());
@@ -41,4 +51,6 @@
public static String buildDratSubdirectoryPath(String additionalPath) {
return DRAT_SUPER_DIR + additionalPath;
}
+
+
}
diff --git a/proteus/src/main/java/backend/ProcessDratWrapper.java b/proteus/src/main/java/backend/ProcessDratWrapper.java
index e2c4188..c72f1a1 100644
--- a/proteus/src/main/java/backend/ProcessDratWrapper.java
+++ b/proteus/src/main/java/backend/ProcessDratWrapper.java
@@ -17,32 +17,53 @@
package backend;
+import com.google.gson.Gson;
+import drat.proteus.rest.DratRequestWrapper;
import org.apache.commons.exec.CommandLine;
import org.apache.commons.exec.DefaultExecutor;
import org.apache.commons.exec.PumpStreamHandler;
import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.ArrayUtils;
+import org.apache.commons.lang.time.DurationFormatUtils;
+import org.apache.oodt.cas.crawl.MetExtractorProductCrawler;
+import org.apache.oodt.cas.workflow.structs.WorkflowInstance;
+import org.apache.oodt.pcs.util.WorkflowManagerUtils;
+import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
import org.apache.oodt.cas.filemgr.structs.Product;
import org.apache.oodt.cas.filemgr.structs.ProductPage;
import org.apache.oodt.cas.filemgr.structs.ProductType;
import org.apache.oodt.cas.filemgr.tools.DeleteProduct;
+import org.apache.oodt.cas.filemgr.tools.SolrIndexer;
import org.apache.oodt.cas.metadata.util.PathUtils;
import org.apache.oodt.cas.workflow.system.XmlRpcWorkflowManagerClient;
import org.apache.oodt.pcs.util.FileManagerUtils;
import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Joiner;
+
+import drat.proteus.workflow.rest.DynamicWorkflowRequestWrapper;
+import drat.proteus.workflow.rest.WorkflowRestResource;
+import org.springframework.context.support.FileSystemXmlApplicationContext;
+
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URL;
import java.nio.charset.Charset;
+import java.nio.file.Files;
+import java.time.Instant;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.List;
-import java.util.Locale;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.FutureTask;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
import java.util.logging.Logger;
public class ProcessDratWrapper extends GenericProcess
@@ -53,22 +74,25 @@
private static final long DRAT_PROCESS_WAIT_DURATION = 3000;
private static final int MAX_RESET_TRIES = 10;
- private static final String GO_CMD = "go";
private static final String CRAWL_CMD = "crawl";
private static final String INDEX_CMD = "index";
private static final String MAP_CMD = "map";
private static final String REDUCE_CMD = "reduce";
- private static final String RESET_CMD = "reset";
private static final String STATUS_IDLE = "idle";
-
- private static final String MAPPER_TASK = "urn:drat:RatCodeAudit";
+ protected static final String PARTITION_AND_MAP_TASK_ID = "urn:drat:MimePartitioner";
+ protected static final String MAPPER_TASK_ID = "urn:drat:RatCodeAudit";
+ protected static final String REDUCE_TASK_ID = "urn:drat:RatAggregator";
private static final String[] WIPE_TYPES = { "RatLog", "GenericFile",
"RatAggregateLog" };
private String status;
+
private FileManagerUtils fm;
private String path;
+ private DratRequestWrapper body;
+
private static ProcessDratWrapper singletonDratWrapper = new ProcessDratWrapper();
+ private boolean runnning = false;
public static ProcessDratWrapper getInstance() {
return singletonDratWrapper;
@@ -77,6 +101,7 @@
private ProcessDratWrapper() {
super(DRAT);
this.path = "";
+ body = new DratRequestWrapper();
this.status = "IDLE";
this.fm = new FileManagerUtils(
PathUtils.replaceEnvVariables("[FILEMGR_URL]"));
@@ -89,7 +114,13 @@
public String getIndexablePath() {
return this.path;
}
-
+
+ @Override
+ public void setData(DratRequestWrapper body) {
+ this.body = body;
+ }
+
+
public String getStatus() {
return this.status;
}
@@ -100,28 +131,109 @@
@Override
public void crawl() throws Exception {
- simpleDratExec(CRAWL_CMD, this.path);
+ reset();
+ versionControlCheck();
+
+ dumpToFile(this.body);
+ simpleCrawl();
+
+ }
+
+ private void simpleCrawl() throws Exception{
+ DratLog crawlLog = new DratLog("CRAWLING");
+
+
+ try{
+ setStatus(CRAWL_CMD);
+
+ crawlLog.logInfo("Configuring");
+ String beanRepo = System.getProperty("org.apache.oodt.cas.crawl.bean.repo",
+ FileConstants.CRAWLER_CONFIG);
+ String crawlerId = "MetExtractorProductCrawler";
+ System.setProperty("DRAT_EXCLUDE","");
+ FileSystemXmlApplicationContext appContext = new FileSystemXmlApplicationContext("file:"+beanRepo);
+
+ MetExtractorProductCrawler crawler = new MetExtractorProductCrawler();
+ crawler.setApplicationContext(appContext);
+ crawler.setId(crawlerId);
+ crawler.setMetExtractor("org.apache.oodt.cas.metadata.extractors.CopyAndRewriteExtractor");
+ crawler.setMetExtractorConfig(FileConstants.MET_EXT_CONFIG_PATH);
+ crawler.setFilemgrUrl(FileConstants.FILEMGR_URL);
+ crawler.setClientTransferer("org.apache.oodt.cas.filemgr.datatransfer.InPlaceDataTransferFactory");
+ crawler.setPreCondIds(Arrays.asList("RegExExcludeComparator"));
+ crawler.setProductPath(this.path);
+ crawlLog.logInfo("Starting. ",null);
+ crawler.crawl();
+ crawlLog.logInfo("Completed.",null);
+ }catch (Exception ex) {
+ crawlLog.logSevere("ERROR ",ex.getLocalizedMessage());
+ ex.printStackTrace();
+ throw ex;
+ }
}
@Override
- public void index() throws IOException, DratWrapperException {
- simpleDratExec(INDEX_CMD, this.path);
+ public void index() throws IOException, DratWrapperException, InstantiationException, SolrServerException {
+ solrIndex();
+ }
+
+ private synchronized void solrIndex() throws InstantiationException, SolrServerException, IOException {
+ setStatus(INDEX_CMD);
+ DratLog idl = new DratLog("INDEXING");
+ idl.logInfo("Starting", null);
+ System.setProperty(FileConstants.SOLR_INDEXER_CONFIG,FileConstants.SOLR_INDEXER_CONFIG_PATH);
+ SolrIndexer sIndexer = new SolrIndexer(FileConstants.SOLR_DRAT_URL,FileConstants.FILEMGR_URL);
+ sIndexer.indexAll(false);
+ sIndexer.commit();
+ sIndexer.optimize();
+ idl.logInfo("Completed",null);
}
@Override
- public void map() throws IOException, DratWrapperException {
- simpleDratExec(MAP_CMD);
+ public synchronized void map() {
+ setStatus(MAP_CMD);
+ DratLog mapLog = new DratLog("MAPPING");
+ WorkflowRestResource restResource = new WorkflowRestResource();
+ DynamicWorkflowRequestWrapper requestBody = new DynamicWorkflowRequestWrapper();
+ requestBody.taskIds = new ArrayList<>();
+ requestBody.taskIds.add(PARTITION_AND_MAP_TASK_ID);
+ mapLog.logInfo("STARTING MAPPING");
+ mapLog.logInfo("STARTING", " (dynamic workflow with task "+PARTITION_AND_MAP_TASK_ID+")");
+ String resp = restResource.performDynamicWorkFlow(requestBody);
+ if(resp.equals("OK")) {
+ mapLog.logInfo("STARTED SUCCESSFULLY, "+PARTITION_AND_MAP_TASK_ID+" dynamic workflow");
+ }else {
+ mapLog.logSevere("FAILED", "Dynamic workflow starting failed "+resp);
+ }
+ mapLog.logInfo("Completed.", null);
+
}
@Override
- public void reduce() throws IOException, DratWrapperException {
- simpleDratExec(REDUCE_CMD);
+ public synchronized void reduce() throws IOException {
+ setStatus(REDUCE_CMD);
+ DratLog reduceLog = new DratLog("REDUCING");
+ WorkflowRestResource restResource = new WorkflowRestResource();
+ DynamicWorkflowRequestWrapper requestBody = new DynamicWorkflowRequestWrapper();
+ requestBody.taskIds = new ArrayList<>();
+ requestBody.taskIds.add(REDUCE_TASK_ID);
+ LOG.info("STARTING REDUCING");
+ reduceLog.logInfo("STARTING", " (dynamic workflow with task "+REDUCE_TASK_ID+")");
+ String resp = (String)restResource.performDynamicWorkFlow(requestBody);
+ if(resp.equals("OK")) {
+ reduceLog.logInfo("STARTED SUCCESSFULLY, "+REDUCE_TASK_ID+" dynamic workflow");
+ }else {
+ reduceLog.logSevere("FAILED", "Dynamic workflow starting failed "+resp);
+ throw new IOException(resp);
+ }
+ reduceLog.logInfo("Completed.", null);
}
@Override
- public void reset() throws Exception {
- LOG.info("DRAT: reset: wiping FM product catalog");
-
+ public synchronized void reset() {
+ DratLog resetLog = new DratLog("RESET");
+ resetLog.logInfo("Starting","");
+ resetLog.logInfo("DRAT: reset: wiping FM product catalog");
for (String type : WIPE_TYPES) {
int numTries = 0;
ProductType pType = fm.safeGetProductTypeByName(type);
@@ -135,92 +247,90 @@
if (numTries == MAX_RESET_TRIES
&& this.fm.safeGetNumProducts(pType) > 0) {
- LOG.warning("Unable to fully wipe type: [" + type + "]. Tried ["
+ resetLog.logWarning("Unable to fully wipe type: [" + type + "]. Tried ["
+ String.valueOf(numTries) + "] times. Max attempts: ["
+ String.valueOf(MAX_RESET_TRIES)
+ "]. Is your File Manager corrupt?");
}
}
- LOG.info("DRAT: reset: wiping WM instance repository.");
+ resetLog.logInfo("DRAT: reset: wiping WM instance repository.");
String wmUrl = PathUtils.replaceEnvVariables("[WORKFLOW_URL]");
this.wipeInstanceRepo(wmUrl);
- String coreName = "drat";
- LOG.info("DRAT: reset: wiping Solr core: [" + coreName + "]");
- this.wipeSolrCore(coreName);
-
- LOG.info("DRAT: reset: recursively removed: [" + Utils.getResetDirectories()
+ String[] coreNames = {"drat"}; // don't wipe stats or we can't aggregate data.
+ for(String coreName: coreNames){
+ resetLog.logInfo("DRAT: reset: wiping Solr core: [" + coreName + "]");
+ this.wipeSolrCore(coreName);
+ }
+
+ resetLog.logInfo("DRAT: reset: recursively removed: [" + Utils.getResetDirectories()
+ "]");
for (String dir : Utils.getResetDirectories()) {
File file = new File(dir);
if (file.exists()) {
try {
- LOG.info(
+ resetLog.logInfo(
"DRAT: reset: removing dir: [" + file.getAbsolutePath() + "]");
FileUtils.forceDelete(file);
} catch (FileNotFoundException e) {
- LOG.warning("Error removing: [" + file.getAbsolutePath()
+ resetLog.logInfo("Error removing: [" + file.getAbsolutePath()
+ "]: Message: " + e.getLocalizedMessage());
} catch (IOException e) {
- LOG.warning("Unable to remove file: [" + file.getAbsolutePath()
+ resetLog.logInfo("Unable to remove file: [" + file.getAbsolutePath()
+ "]: Message: " + e.getLocalizedMessage());
}
}
}
-
+
+ resetLog.logInfo("Completed",null);
}
- public void go() throws Exception {
+ public synchronized void go() throws Exception {
+ DratLog goLog = new DratLog("GO");
+ goLog.logInfo("Starting", "");
// before go, always reset
- this.reset();
- this.crawl();
- this.index();
+ goLog.logInfo("DRAT: go: resetting.");
+ reset();
+ goLog.logInfo("DRAT: go: Version Control Check");
+ versionControlCheck();
+ goLog.logInfo("DRAT: go: wrote repo to JSON");
+ dumpToFile(this.body);
+
+ this.simpleCrawl();
+ this.solrIndex();
this.map();
+ goLog.logInfo("DRAT: go: checking still running partition and map and maps.");
// don't run reduce until all maps are done
- while (mapsStillRunning()) {
+ while (stillRunning(PARTITION_AND_MAP_TASK_ID) || stillRunning(MAPPER_TASK_ID)) {
+ goLog.logInfo("MAPS STILL RUNNING: Sleeping: "+String.valueOf(DRAT_PROCESS_WAIT_DURATION));
Thread.sleep(DRAT_PROCESS_WAIT_DURATION);
}
+
+ goLog.logInfo("DRAT: go: Waiting for rat aggregate log to be generated.");
// you're not done until the final log is generated.
while (!hasAggregateRatLog()) {
try {
- reduce();
+ if (!stillRunning(REDUCE_TASK_ID)) {
+ goLog.logInfo("DRAT: go: no reduces running, and no rat aggregate log, so firing reducer.");
+ reduce();
+ }
+ else {
+ goLog.logInfo("DRAT: go: reduce running, and no rat aggregate log, so give it a chance to finish.");
+ }
} catch (IOException e) {
- LOG.warning("Fired reduce off before mappers were done. Sleeping: ["
+ goLog.logWarning("DRAT: go: Fired reduce off before mappers were done. Sleeping: ["
+ String.valueOf(DRAT_PROCESS_WAIT_DURATION / 1000)
+ "] seconds and will try again.");
}
Thread.sleep(DRAT_PROCESS_WAIT_DURATION);
}
+ goLog.logInfo("Completed.", null);
setStatus(STATUS_IDLE);
}
- public synchronized void simpleDratExec(String command, String... options)
- throws IOException, DratWrapperException {
- setStatus(command);
- String args[] = { FileConstants.DRAT_PATH, command };
- String all[] = (String[]) ArrayUtils.addAll(args, options);
- String cmd = Joiner.on(" ").join(all);
-
- String output = null;
- try {
- output = execToString(cmd);
- } catch (IOException e) {
- LOG.warning("Executing DRAT cmd: [" + command + "]: command line: [" + cmd
- + "] generated non-zero exit status. output is: [" + output
- + "]: Message: " + e.getLocalizedMessage());
- throw e;
- } catch (Exception e) {
- LOG.warning("Exception executing " + command + ". Output: [" + output
- + "]: Message: " + e.getLocalizedMessage());
- throw new IOException(e.getLocalizedMessage());
- }
-
- LOG.info(
- "Command: [" + command + "] completed normally. Output is: " + output);
- }
private synchronized boolean hasAggregateRatLog() {
int numLogs = -1;
@@ -231,16 +341,55 @@
+ "]: " + breakStatus);
return numLogs > 0;
}
+
+ private boolean stillRunning(String taskId) throws Exception {
+ DratLog workflowRunLog = new DratLog("CHECKING FOR RUNNING MAPPERS/PARTITIONERS");
+ workflowRunLog.logInfo("Starting.", "");
+ final WorkflowManagerUtils workflowManagerUtils = new WorkflowManagerUtils(FileConstants.CLIENT_URL);
+ FutureTask<List<WorkflowInstance>> timeoutWorkflowInst =
+ new FutureTask<List<WorkflowInstance>>(
+ new Callable<List<WorkflowInstance>>() {
+ @Override
+ public List<WorkflowInstance> call() throws Exception {
+ return workflowManagerUtils.getClient().getWorkflowInstances();
+ }
+ }
+ );
+
+ List<WorkflowInstance> workflowInstances = null;
+ Thread instCheckThread = null;
+ try {
+ instCheckThread = new Thread(timeoutWorkflowInst);
+ instCheckThread.start();
+ workflowInstances = timeoutWorkflowInst.get(3L, TimeUnit.SECONDS);
+ }
+ catch(InterruptedException e) {
+ workflowRunLog.logInfo("Drat::Checking Workflows:: Interrupted exception: "+e.getLocalizedMessage());
+ workflowInstances = Collections.EMPTY_LIST;
+ }
+ catch(ExecutionException e) {
+ workflowRunLog.logInfo("Drat::Checking Workflows:: Execution exception: "+e.getLocalizedMessage());
+ workflowInstances = Collections.EMPTY_LIST;
+ }
+ catch(TimeoutException e) {
+ workflowRunLog.logInfo("Drat::Checking Workflows:: Timeout exception: "+e.getLocalizedMessage());
+ workflowInstances = Collections.EMPTY_LIST;
+ }
+ finally {
+ try {
+ instCheckThread.join();
+ }
+ catch(InterruptedException ignore) {}
+ }
+
+ for(WorkflowInstance instance : workflowInstances){
+ LOG.info("Running Instances : id: "+instance.getId()
+ +" state name "+instance.getState().getName()+" current task name : "+instance.getCurrentTask().getTaskName());
+ }
+
+ workflowRunLog.logInfo("Completed.", null);
+ return taskStillRunning(workflowInstances, taskId);
- private boolean mapsStillRunning() throws Exception {
- String args[] = { FileConstants.WORKFLOW_PATH, "--url",
- "http://localhost:9001", "--operation", "--getWorkflowInsts" };
- String cmd = Joiner.on(" ").join(args);
- LOG.info("Maps Still Running: Executing: " + cmd);
- String output = execToString(cmd);
- LOG.info("Output from maps still running: " + output);
- List<WorkflowItem> items = parseWorkflows(output);
- return stillRunning(items);
}
@VisibleForTesting
@@ -285,38 +434,40 @@
}
return items;
}
-
- @VisibleForTesting
- protected boolean stillRunning(List<WorkflowItem> items) {
- List<WorkflowItem> mapperItems = filterMappers(items);
- LOG.info("Checking mappers: inspecting ["
- + String.valueOf(mapperItems.size()) + "] mappers.");
- for (WorkflowItem mapperItem : mapperItems) {
- if (isRunning(mapperItem.getStatus())) {
- LOG.info("Mapper: [" + mapperItem.getId() + "] still running.");
- return true;
- }
- }
-
- return false;
- }
-
- @VisibleForTesting
- protected List<WorkflowItem> filterMappers(List<WorkflowItem> items) {
- List<WorkflowItem> mappers = new ArrayList<WorkflowItem>();
- if (items != null && items.size() > 0) {
- for (WorkflowItem item : items) {
- if (item.getCurrentTask().equals(MAPPER_TASK)) {
- LOG.info("Adding mapper: [" + item.getCurrentTask() + "]");
- mappers.add(item);
- } else {
- LOG.info("Filtering task: [" + item.getCurrentTask() + "]");
+
+ protected boolean taskStillRunning(List<WorkflowInstance> instances, String ...taskIds) {
+ if (taskIds != null && taskIds.length > 0) {
+ for(String taskId: taskIds) {
+ List<WorkflowInstance> insts = filterInstances(instances, taskId);
+ LOG.info("Checking task: "+taskId+" : inspecting ["+String.valueOf(instances.size())+"] tasks.");
+ for(WorkflowInstance i: insts) {
+ if(isRunning(i.getState().getName())) {
+ LOG.info("Task: [" + i.getId() + "] still running.");
+ return true;
+ }
}
}
}
-
- return mappers;
+
+ return false;
}
+
+ @VisibleForTesting
+ protected List<WorkflowInstance> filterInstances(List<WorkflowInstance> instances, String taskId){
+ List<WorkflowInstance> insts = new ArrayList<>();
+ if(instances!=null && instances.size()>0){
+ for(WorkflowInstance instance:instances){
+ if(instance.getCurrentTask().getTaskId().equals(taskId)){
+ LOG.info("Adding "+taskId+" instance: [" + instance.getCurrentTask().getTaskId() + "]");
+ insts.add(instance);
+ }else{
+ LOG.info("Filtering task: [" + instance.getCurrentTask().getTaskId() + "]");
+ }
+ }
+ }
+ return insts;
+ }
+
@VisibleForTesting
protected boolean isRunning(String status) {
@@ -396,6 +547,54 @@
}
+
+ private void versionControlCheck() throws Exception {
+ if (path.startsWith("http://") || path.startsWith("https://")) {
+ this.body.loc_url = this.path;
+ String projectName = null;
+ boolean git = path.endsWith(".git");
+ File tmpDir = new File(FileConstants.DRAT_CLONES);
+ String tmpDirPath = tmpDir.getCanonicalPath();
+ String line = null;
+ if (git) {
+ projectName = path.substring(path.lastIndexOf("/") + 1,
+ path.lastIndexOf("."));
+ line = "git clone --depth 1 --branch master " + path;
+ } else {
+ projectName = path.substring(path.lastIndexOf("/") + 1);
+ line = "svn export " + path;
+ }
+ String clonePath = tmpDirPath + File.separator + projectName;
+ File cloneDir = new File(clonePath);
+ if (cloneDir.isDirectory() && cloneDir.exists()) {
+ LOG.info(
+ "Git / SVN clone: [" + clonePath + "] already exists, removing it.");
+ org.apache.cxf.helpers.FileUtils.removeDir(cloneDir);
+ }
+ LOG.info("Cloning Git / SVN project: [" + projectName + "] remote repo: ["
+ + path + "] into " + tmpDirPath);
+
+ CommandLine cmdLine = CommandLine.parse(line);
+ DefaultExecutor executor = new DefaultExecutor();
+ executor.setWorkingDirectory(tmpDir);
+ int exitValue = executor.execute(cmdLine);
+
+ if (git) {
+ String gitHiddenDirPath = clonePath + File.separator + ".git";
+ File gitHiddenDir = new File(gitHiddenDirPath);
+ LOG.info("Removing .git directory from " + gitHiddenDirPath);
+ org.apache.cxf.helpers.FileUtils.removeDir(gitHiddenDir);
+ }
+
+ this.path = clonePath;
+ }else{
+ this.body.loc_url = "http://drat.apache.org/#";
+ }
+
+ this.body.id = "id:"+this.path;
+ this.body.repo = this.path;
+ }
+
private synchronized void wipeInstanceRepo(String wmUrl) {
XmlRpcWorkflowManagerClient wm;
try {
@@ -422,5 +621,68 @@
+ e.getLocalizedMessage());
}
}
+
+
+ public void dumpToFile(DratRequestWrapper body) throws IOException {
+ File repo = new File(FileConstants.CURRENT_REPO_DETAILS_FILE);
+ Files.write(repo.toPath(),new Gson().toJson(body).getBytes());
+ }
+
+ private class DratLog{
+ private static final String MODULE = "DRAT_LOG";
+ long startTime =0;
+ private long lastActionTime=-1L;
+ private long timeDiff =-1L;
+ private ZonedDateTime zdt;
+ private String action;
+ public DratLog(String action) {
+ this.action = action;
+
+ }
+
+ private void logWarning(String status,String desc) {
+ LOG.warning(getMsg(status,desc));
+ }
+
+ private void logWarning(String desc) {
+ LOG.warning(MODULE+" : "+desc);
+ }
+
+ private void logInfo(String status,String desc) {
+ LOG.info(getMsg(status,desc));
+ }
+
+ private void logInfo(String desc) {
+ LOG.info(MODULE+" : "+desc);
+ }
+
+ private void logSevere(String status,String desc) {
+ LOG.fine(getMsg(status,desc));
+ }
+
+ private String getMsg(String status,String desc) {
+ String basic = "";
+ if(startTime==0) {
+ startTime = System.currentTimeMillis();
+ zdt = ZonedDateTime.ofInstant(Instant.ofEpochMilli(startTime), ZoneId.systemDefault());
+ basic = String.format("%1$s : %2$s : %3$s, at time %4$s", MODULE,action,status,
+ zdt.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME));
+ }else {
+ lastActionTime = System.currentTimeMillis();
+ timeDiff = lastActionTime - startTime;
+ zdt = ZonedDateTime.ofInstant(Instant.ofEpochMilli(startTime), ZoneId.systemDefault());
+ basic = String.format("%1$s : %2$s : %3$s, at time %4$s with duration %5$s", MODULE,action,status,
+ zdt.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME),DurationFormatUtils.formatDuration(timeDiff,"MM-dd T HH-mm-ss"));
+ }
+
+ if(desc==null) {
+ return basic;
+ }else {
+ return String.format("%1$s : %2$s", basic,desc);
+ }
+ }
+
+
+ }
}
diff --git a/proteus/src/main/java/backend/Utils.java b/proteus/src/main/java/backend/Utils.java
index 64cab3d..16c9d3b 100644
--- a/proteus/src/main/java/backend/Utils.java
+++ b/proteus/src/main/java/backend/Utils.java
@@ -27,6 +27,7 @@
public class Utils {
private static Map<String, String> environment = new HashMap<String, String>();
private static List<String> resetDratConstants = new ArrayList<String>();
+ private static String resetRepoFile = null;
static {
environment.put("JAVA_HOME", PathUtils.replaceEnvVariables("[JAVA_HOME]"));
environment.put("DRAT_HOME", PathUtils.replaceEnvVariables("[DRAT_HOME]"));
@@ -37,7 +38,7 @@
String DRAT_HOME = environment.get("DRAT_HOME");
resetDratConstants.add(DRAT_HOME + "/data/archive/");
- resetDratConstants.add(DRAT_HOME + "/data/jobs/");
+ resetDratConstants.add(DRAT_HOME + "/data/jobs/");
}
public static Map<String, String> getEnvironment() {
diff --git a/proteus/src/main/java/backend/WorkflowItem.java b/proteus/src/main/java/backend/WorkflowItem.java
index 24eb65c..2a63e33 100644
--- a/proteus/src/main/java/backend/WorkflowItem.java
+++ b/proteus/src/main/java/backend/WorkflowItem.java
@@ -17,6 +17,10 @@
package backend;
+import org.apache.oodt.cas.workflow.structs.Workflow;
+import org.apache.oodt.cas.workflow.structs.WorkflowInstance;
+import org.apache.oodt.cas.workflow.structs.WorkflowTask;
+
public class WorkflowItem {
private String id;
@@ -167,5 +171,19 @@
+ wallClockTime + ", currentTaskWallClock=" + currentTaskWallClock
+ "]";
}
+
+ public WorkflowInstance toInstance() {
+ WorkflowInstance i = new WorkflowInstance();
+ i.setId(this.id);
+ i.setStatus(this.status);
+ i.setCurrentTaskId(this.currentTask);
+ WorkflowTask task = new WorkflowTask();
+ task.setTaskId(this.currentTask);
+ Workflow w = new Workflow();
+ w.getTasks().add(task);
+ w.setName(this.workflowName);
+ i.setWorkflow(w);;
+ return i;
+ }
}
diff --git a/proteus/src/main/java/drat/proteus/WicketApplication.java b/proteus/src/main/java/drat/proteus/WicketApplication.java
index cf46ca2..4d65c79 100644
--- a/proteus/src/main/java/drat/proteus/WicketApplication.java
+++ b/proteus/src/main/java/drat/proteus/WicketApplication.java
@@ -25,8 +25,11 @@
import java.util.logging.Logger;
import java.util.regex.Pattern;
+import drat.proteus.filemgr.rest.FileManagerProgressResponse;
+import drat.proteus.filemgr.rest.FileManagerRestResource;
import drat.proteus.rest.DratRestResource;
import drat.proteus.rest.ServicesRestResource;
+import drat.proteus.workflow.rest.WorkflowRestResource;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.protocol.http.WebApplication;
@@ -73,6 +76,20 @@
return resource;
}
});
+
+ mountResource("/workflowservice",new ResourceReference("restReference"){
+ WorkflowRestResource resource = new WorkflowRestResource();
+ @Override
+ public IResource getResource() {
+ return resource;
+ }
+ });
+ mountResource("/filemanager", new ResourceReference("restReference") {
+ @Override
+ public IResource getResource() {
+ return new FileManagerRestResource();
+ }
+ });
mountPage("/workflow", DratWorkflow.class);
doImageMounts(
diff --git a/proteus/src/main/java/drat/proteus/filemgr/rest/FileManagerProgressResponse.java b/proteus/src/main/java/drat/proteus/filemgr/rest/FileManagerProgressResponse.java
new file mode 100644
index 0000000..7b564c3
--- /dev/null
+++ b/proteus/src/main/java/drat/proteus/filemgr/rest/FileManagerProgressResponse.java
@@ -0,0 +1,5 @@
+package drat.proteus.filemgr.rest;
+
+public class FileManagerProgressResponse {
+ public int crawledFiles;
+}
diff --git a/proteus/src/main/java/drat/proteus/filemgr/rest/FileManagerRestResource.java b/proteus/src/main/java/drat/proteus/filemgr/rest/FileManagerRestResource.java
new file mode 100644
index 0000000..805d520
--- /dev/null
+++ b/proteus/src/main/java/drat/proteus/filemgr/rest/FileManagerRestResource.java
@@ -0,0 +1,43 @@
+package drat.proteus.filemgr.rest;
+
+import backend.FileConstants;
+import org.apache.oodt.cas.filemgr.structs.ProductType;
+import org.apache.oodt.cas.filemgr.structs.exceptions.CatalogException;
+import org.apache.oodt.cas.filemgr.structs.exceptions.ConnectionException;
+import org.apache.oodt.cas.filemgr.system.XmlRpcFileManagerClient;
+import org.apache.oodt.cas.metadata.Metadata;
+import org.apache.oodt.cas.metadata.util.PathUtils;
+import org.wicketstuff.rest.annotations.MethodMapping;
+import org.wicketstuff.rest.contenthandling.json.webserialdeserial.GsonWebSerialDeserial;
+import org.wicketstuff.rest.resource.AbstractRestResource;
+import org.wicketstuff.rest.utils.http.HttpMethod;
+
+import java.net.URL;
+import java.util.logging.Logger;
+
+public class FileManagerRestResource extends AbstractRestResource<GsonWebSerialDeserial> {
+
+ private static final long serialVersionUID = -588588505908995065L;
+ XmlRpcFileManagerClient fileManagerClient;
+
+ private static final Logger LOG = Logger.getLogger(FileManagerRestResource.class.getName());
+
+ public FileManagerRestResource() {
+ super(new GsonWebSerialDeserial());
+ try{
+ fileManagerClient = new XmlRpcFileManagerClient(new URL(PathUtils.replaceEnvVariables(FileConstants.FILEMGR_URL)));
+ }catch (Exception ex){
+ LOG.severe(ex.getMessage());
+ }
+
+ }
+
+ @MethodMapping(value = "/progress",httpMethod = HttpMethod.GET)
+ public FileManagerProgressResponse getProgress() throws Exception {
+ FileManagerProgressResponse response = new FileManagerProgressResponse();
+ response.crawledFiles = fileManagerClient.getNumProducts(fileManagerClient.getProductTypeByName("GenericFile"));
+ return response;
+ }
+
+
+}
diff --git a/proteus/src/main/java/drat/proteus/rest/DratRequestWrapper.java b/proteus/src/main/java/drat/proteus/rest/DratRequestWrapper.java
index 64cb6f2..f2c9af3 100644
--- a/proteus/src/main/java/drat/proteus/rest/DratRequestWrapper.java
+++ b/proteus/src/main/java/drat/proteus/rest/DratRequestWrapper.java
@@ -19,5 +19,13 @@
public class DratRequestWrapper {
//needed for JSON Requests
- public String dirPath;
+ public String id;
+ public String repo;
+ public String name;
+ public String loc_url;
+ public String description;
+ public String type="project";
+
+
+
}
\ No newline at end of file
diff --git a/proteus/src/main/java/drat/proteus/rest/DratRestResource.java b/proteus/src/main/java/drat/proteus/rest/DratRestResource.java
index 6b1562c..35c402b 100644
--- a/proteus/src/main/java/drat/proteus/rest/DratRestResource.java
+++ b/proteus/src/main/java/drat/proteus/rest/DratRestResource.java
@@ -17,11 +17,12 @@
package drat.proteus.rest;
-import java.io.File;
-import java.io.IOException;
+import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;
+import java.util.logging.Logger;
+import com.google.gson.Gson;
import org.wicketstuff.rest.annotations.MethodMapping;
import org.wicketstuff.rest.annotations.parameters.RequestBody;
import org.wicketstuff.rest.contenthandling.json.webserialdeserial.GsonWebSerialDeserial;
@@ -34,7 +35,7 @@
import backend.ProcessOodtWrapper;
public class DratRestResource extends AbstractRestResource<GsonWebSerialDeserial> {
-
+ private static final Logger LOG = Logger.getLogger(DratRestResource.class.getName());
private static final long serialVersionUID = -5885535059043262485L;
public AbstractOodtWrapper oodtWrapper;
public AbstractDratWrapper dratWrapper;
@@ -47,19 +48,23 @@
@MethodMapping(value = "/go", httpMethod = HttpMethod.POST)
public void go(@RequestBody DratRequestWrapper body) throws Exception {
- dratWrapper.setIndexablePath(body.dirPath);
+
+ dratWrapper.setData(body);
+ dratWrapper.setIndexablePath(body.repo);
dratWrapper.go();
}
@MethodMapping(value = "/index", httpMethod = HttpMethod.POST)
public void index(@RequestBody DratRequestWrapper body) throws Exception {
- dratWrapper.setIndexablePath(body.dirPath);
+ dratWrapper.setData(body);
+ dratWrapper.setIndexablePath(body.repo);
dratWrapper.index();
}
@MethodMapping(value = "/crawl", httpMethod = HttpMethod.POST)
public void crawl(@RequestBody DratRequestWrapper body) throws Exception {
- dratWrapper.setIndexablePath(body.dirPath);
+ dratWrapper.setData(body);
+ dratWrapper.setIndexablePath(body.repo);
dratWrapper.crawl();
}
@@ -77,6 +82,11 @@
public void reset() throws Exception {
dratWrapper.reset();
}
+
+ @MethodMapping(value = "/currentrepo",httpMethod = HttpMethod.GET)
+ public String currentRepo() throws Exception{
+ return dratWrapper.getIndexablePath();
+ }
@MethodMapping(value = "/log", httpMethod = HttpMethod.GET)
public String getProcessLog() {
@@ -92,4 +102,5 @@
return "Log is empty!";
}
}
+
}
diff --git a/proteus/src/main/java/drat/proteus/workflow/rest/DynamicWorkflowRequestWrapper.java b/proteus/src/main/java/drat/proteus/workflow/rest/DynamicWorkflowRequestWrapper.java
new file mode 100644
index 0000000..f3a917c
--- /dev/null
+++ b/proteus/src/main/java/drat/proteus/workflow/rest/DynamicWorkflowRequestWrapper.java
@@ -0,0 +1,28 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package drat.proteus.workflow.rest;
+
+import java.util.List;
+
+/**
+ * This is the wrapper which wraps the dynamicWorkflow request body
+ * of execute dynamic workflow rest api
+ */
+public class DynamicWorkflowRequestWrapper {
+ public List<String> taskIds;
+}
diff --git a/proteus/src/main/java/drat/proteus/workflow/rest/WorkflowRestResource.java b/proteus/src/main/java/drat/proteus/workflow/rest/WorkflowRestResource.java
new file mode 100644
index 0000000..21be1bf
--- /dev/null
+++ b/proteus/src/main/java/drat/proteus/workflow/rest/WorkflowRestResource.java
@@ -0,0 +1,72 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package drat.proteus.workflow.rest;
+
+
+import java.io.IOException;
+import java.util.logging.Logger;
+
+
+import org.apache.oodt.cas.metadata.Metadata;
+import org.apache.oodt.cas.metadata.util.PathUtils;
+import org.apache.oodt.cas.workflow.system.XmlRpcWorkflowManagerClient;
+import org.apache.oodt.pcs.util.WorkflowManagerUtils;
+import org.wicketstuff.rest.annotations.MethodMapping;
+import org.wicketstuff.rest.annotations.parameters.RequestBody;
+import org.wicketstuff.rest.contenthandling.json.webserialdeserial.GsonWebSerialDeserial;
+import org.wicketstuff.rest.resource.AbstractRestResource;
+import org.wicketstuff.rest.utils.http.HttpMethod;
+
+import backend.FileConstants;
+
+/**
+ * This is where all the rest apis related to workflow in drat are declared
+ * */
+public class WorkflowRestResource extends AbstractRestResource<GsonWebSerialDeserial> {
+
+
+ private static final long serialVersionUID = -5885885059043262485L;
+ XmlRpcWorkflowManagerClient wm;
+
+
+
+ private static final Logger LOG = Logger.getLogger(WorkflowRestResource.class.getName());
+ public WorkflowRestResource() {
+ super(new GsonWebSerialDeserial());
+ wm = new WorkflowManagerUtils(PathUtils.replaceEnvVariables(FileConstants.CLIENT_URL)).getClient();
+ }
+
+ @MethodMapping(value = "/dynamic", httpMethod = HttpMethod.POST)
+ public String performDynamicWorkFlow(@RequestBody DynamicWorkflowRequestWrapper requestBody ) {
+
+ try {
+ Metadata metaData = new Metadata();
+ LOG.info(requestBody.taskIds.get(0));
+ wm.executeDynamicWorkflow(requestBody.taskIds,metaData);
+ return "OK";
+ }catch(IOException ex) {
+ LOG.info("Workflow Service Error " + ex.getMessage());
+ return "Connectiing to Server Eroor";
+ }catch(Exception ex) {
+ LOG.info("Workflow Service Error " + ex.getMessage());
+ return "Failed to connect to client Url";
+ }
+ }
+
+
+}
diff --git a/proteus/src/test/java/backend/TestProcessDratWrapper.java b/proteus/src/test/java/backend/TestProcessDratWrapper.java
index 95b8a1e..c816512 100644
--- a/proteus/src/test/java/backend/TestProcessDratWrapper.java
+++ b/proteus/src/test/java/backend/TestProcessDratWrapper.java
@@ -17,9 +17,12 @@
package backend;
+import java.util.ArrayList;
import java.util.List;
-
+import org.apache.oodt.cas.workflow.structs.WorkflowInstance;
import backend.ProcessDratWrapper;
+import static backend.ProcessDratWrapper.MAPPER_TASK_ID;
+import static backend.ProcessDratWrapper.PARTITION_AND_MAP_TASK_ID;
import junit.framework.TestCase;
public class TestProcessDratWrapper extends TestCase {
@@ -47,7 +50,31 @@
List<WorkflowItem> items = null;
items = wrapper.parseWorkflows(cmdLines);
assertNotNull(items);
- assertTrue(wrapper.stillRunning(items));
+ List<WorkflowInstance> insts = new ArrayList<WorkflowInstance>(items.size());
+ for(WorkflowItem wi: items) {
+ insts.add(wi.toInstance());
+ }
+ assertTrue(wrapper.taskStillRunning(insts, PARTITION_AND_MAP_TASK_ID, MAPPER_TASK_ID));
+ }
+
+ public void testFilterPartitioners(){
+ ProcessDratWrapper wrapper = ProcessDratWrapper.getInstance();
+ assertNotNull(wrapper);
+ String cmdLines = "Instance: [id=d3aed64f-6e7c-11e7-af03-cb83c51de744, status=FINISHED, currentTask=urn:drat:MimePartitioner, workflow=Dynamic Workflow-6fc5fc4c-d27a-47f6-905c-2f2e99fa92e9,wallClockTime=0.13265,currentTaskWallClockTime=0.0]\n" +
+ "Instance: [id=d3aed64f-6e7c-11e7-af03-cb83c51de744, status=PGE EXEC, currentTask=urn:drat:MimePartitioner, workflow=Dynamic Workflow-6fc5fc4c-d27a-47f6-905c-2f2e99fa92e9,wallClockTime=0.13265,currentTaskWallClockTime=0.0]\n" +
+ "Instance: [id=d3aed64f-6e7c-11e7-af03-cb83c51de744, status=PGE EXEC, currentTask=urn:drat:RatCodeAudit, workflow=Dynamic Workflow-6fc5fc4c-d27a-47f6-905c-2f2e99fa92e9,wallClockTime=0.13265,currentTaskWallClockTime=0.0]";
+
+ List<WorkflowItem> items = null;
+ items = wrapper.parseWorkflows(cmdLines);
+ assertNotNull(items);
+ List<WorkflowInstance> insts = new ArrayList<WorkflowInstance>(items.size());
+ for(WorkflowItem wi: items) {
+ insts.add(wi.toInstance());
+ }
+ List<WorkflowInstance> partitioners = null;
+ partitioners = wrapper.filterInstances(insts, PARTITION_AND_MAP_TASK_ID);
+ assertNotNull(partitioners);
+ assertEquals(2, partitioners.size());
}
public void testFilterMappers(){
@@ -60,8 +87,12 @@
List<WorkflowItem> items = null;
items = wrapper.parseWorkflows(cmdLines);
assertNotNull(items);
- List<WorkflowItem> mappers = null;
- mappers = wrapper.filterMappers(items);
+ List<WorkflowInstance> insts = new ArrayList<WorkflowInstance>(items.size());
+ for(WorkflowItem wi: items) {
+ insts.add(wi.toInstance());
+ }
+ List<WorkflowInstance> mappers = null;
+ mappers = wrapper.filterInstances(insts, MAPPER_TASK_ID);
assertNotNull(mappers);
assertEquals(1, mappers.size());
}
diff --git a/provision.sh b/provision.sh
index 21e117c..10698cf 100755
--- a/provision.sh
+++ b/provision.sh
@@ -27,7 +27,7 @@
mkdir -p /usr/local/drat/deploy
mkdir -p /usr/local/drat/src
cd /usr/local/drat/src
-git clone -q https://github.com/chrismattmann/drat.git .
+git clone -q https://github.com/apache/drat.git .
mvn install
cp -R distribution/target/dms-distribution-0.1-bin.tar.gz ../deploy/
cd ../deploy/
diff --git a/resmgr/pom.xml b/resmgr/pom.xml
index 1c246cb..a561867 100644
--- a/resmgr/pom.xml
+++ b/resmgr/pom.xml
@@ -60,7 +60,7 @@
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
- <version>3.8.2</version>
+ <version>${junit.version}</version>
<scope>test</scope>
</dependency>
diff --git a/webapps/fmprod/.gitignore b/webapps/fmprod/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/webapps/fmprod/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/webapps/opsui/.gitignore b/webapps/opsui/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/webapps/opsui/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/webapps/pcs-services/.gitignore b/webapps/pcs-services/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/webapps/pcs-services/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/webapps/pom.xml b/webapps/pom.xml
index 321ebab..a0a1254 100644
--- a/webapps/pom.xml
+++ b/webapps/pom.xml
@@ -17,5 +17,6 @@
<module>fmprod</module>
<module>solr-webapp</module>
<module>viz</module>
+ <module>proteus-new</module>
</modules>
</project>
diff --git a/webapps/proteus-new/pom.xml b/webapps/proteus-new/pom.xml
new file mode 100644
index 0000000..9ff9649
--- /dev/null
+++ b/webapps/proteus-new/pom.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.drat</groupId>
+ <artifactId>dms</artifactId>
+ <version>0.1</version>
+ <relativePath>../../pom.xml</relativePath>
+ </parent>
+ <name>DRAT Proteus (new)</name>
+ <artifactId>dms-proteus-new</artifactId>
+ <packaging>war</packaging>
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <maven.test.skip>false</maven.test.skip>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <version>1.3.2</version>
+ <executions>
+ <execution>
+ <id>npm install (initialize)</id>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <phase>initialize</phase>
+ <configuration>
+ <executable>npm</executable>
+ <arguments>
+ <argument>install</argument>
+ </arguments>
+ </configuration>
+ </execution>
+ <execution>
+ <id>npm config list (validate)</id>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <phase>validate</phase>
+ <configuration>
+ <executable>npm</executable>
+ <arguments>
+ <argument>config</argument>
+ <argument>list</argument>
+ </arguments>
+ </configuration>
+ </execution>
+
+ <execution>
+ <id>npm run build (compile)</id>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <phase>compile</phase>
+ <configuration>
+ <executable>npm</executable>
+ <arguments>
+ <argument>run</argument>
+ <argument>build</argument>
+ </arguments>
+ </configuration>
+ </execution>
+
+ <execution>
+ <id>npm run clean (clean)</id>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <phase>clean</phase>
+ <configuration>
+ <executable>npm</executable>
+ <arguments>
+ <argument>run</argument>
+ <argument>clean</argument>
+ </arguments>
+ </configuration>
+ </execution>
+ </executions>
+ <configuration>
+ <workingDirectory>src/main/webapp/resources/</workingDirectory>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <version>2.1.1</version>
+ <configuration>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ </dependencies>
+</project>
diff --git a/webapps/proteus-new/src/main/webapp/META-INF/context.xml b/webapps/proteus-new/src/main/webapp/META-INF/context.xml
new file mode 100755
index 0000000..a6d489c
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/META-INF/context.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Context path="/proteus-new">
+
+</Context>
diff --git a/webapps/proteus-new/src/main/webapp/WEB-INF/web.xml b/webapps/proteus-new/src/main/webapp/WEB-INF/web.xml
new file mode 100755
index 0000000..7bc5985
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<web-app xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
+ version="2.5"
+ metadata-complete="true"
+>
+
+ <!-- Uncomment if you are trying to use a Resin version before 3.0.19.
+ Their XML implementation isn't entirely compatible with Xerces.
+ Below are the implementations to use with Sun's JVM.
+ <system-property javax.xml.xpath.XPathFactory=
+ "com.sun.org.apache.xpath.internal.jaxp.XPathFactoryImpl"/>
+ <system-property javax.xml.parsers.DocumentBuilderFactory=
+ "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl"/>
+ <system-property javax.xml.parsers.SAXParserFactory=
+ "com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl"/>
+ -->
+
+
+
+ <!-- <env-entry/> <env-entry-name>solr/home</env-entry-name>
+ <env-entry-value>../solr</env-entry-value>
+ <env-entry-type>java.lang.String</env-entry-type> </env-entry>-->
+
+
+ <welcome-file-list>
+ <welcome-file>index.html</welcome-file>
+ </welcome-file-list>
+</web-app>
diff --git a/webapps/proteus-new/src/main/webapp/resources/babel.config.js b/webapps/proteus-new/src/main/webapp/resources/babel.config.js
new file mode 100644
index 0000000..448ce93
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/resources/babel.config.js
@@ -0,0 +1,14 @@
+module.exports = {
+ presets: [
+ [
+ "@babel/preset-env",
+ {
+ modules: false
+ }
+ ]
+ ],
+ plugins: [
+ "@babel/plugin-syntax-dynamic-import"
+ ],
+ sourceRoot:"./src",
+}
\ No newline at end of file
diff --git a/webapps/proteus-new/src/main/webapp/resources/package-lock.json b/webapps/proteus-new/src/main/webapp/resources/package-lock.json
new file mode 100644
index 0000000..92b1e28
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/resources/package-lock.json
@@ -0,0 +1,12999 @@
+{
+ "name": "proteus",
+ "version": "0.1.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.47.tgz",
+ "integrity": "sha512-W7IeG4MoVf4oUvWfHUx9VG9if3E0xSUDf1urrnNYtC2ow1dz2ptvQ6YsJfyVXDuPTFXz66jkHhzMW7a5Eld7TA==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "7.0.0-beta.47"
+ }
+ },
+ "@babel/core": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.0.0-beta.47.tgz",
+ "integrity": "sha512-7EIuAX0UVnCgZ0E9tz9rFK0gd+aovwMA9bul+dnkmBQYLrJdas2EHMUSmaK67i1cyZpvgVvXhHtXJxC7wo3rlQ==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "7.0.0-beta.47",
+ "@babel/generator": "7.0.0-beta.47",
+ "@babel/helpers": "7.0.0-beta.47",
+ "@babel/template": "7.0.0-beta.47",
+ "@babel/traverse": "7.0.0-beta.47",
+ "@babel/types": "7.0.0-beta.47",
+ "babylon": "7.0.0-beta.47",
+ "convert-source-map": "^1.1.0",
+ "debug": "^3.1.0",
+ "json5": "^0.5.0",
+ "lodash": "^4.17.5",
+ "micromatch": "^2.3.11",
+ "resolve": "^1.3.2",
+ "semver": "^5.4.1",
+ "source-map": "^0.5.0"
+ }
+ },
+ "@babel/generator": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.47.tgz",
+ "integrity": "sha512-fJP+9X+gqgTTZzTqrKJHwebPwt6S/e/4YuyRyKyWHAIirGgUwjRoZgbFci24wwGYMJW7nlkCSwWG7QvCVsG0eg==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.47",
+ "jsesc": "^2.5.1",
+ "lodash": "^4.17.5",
+ "source-map": "^0.5.0",
+ "trim-right": "^1.0.1"
+ }
+ },
+ "@babel/helper-annotate-as-pure": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0-beta.47.tgz",
+ "integrity": "sha512-Pjxb/PrxyKWc7jcAXlawvNAQMxxY+tSSNC5wxJstJjpO10mocmGzBOqNYjxdvVhMb3d0BEPQ8mR+D65fFpZ+TA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.47"
+ }
+ },
+ "@babel/helper-builder-binary-assignment-operator-visitor": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.0.0-beta.47.tgz",
+ "integrity": "sha512-nv8d6TcDBb1CJMQzwab/e0rqyqoP9d2AQBjr4GdSiVRpJX4aiLEiLBm2XprdEb/sVIRmmBnVxPXJaHDsS/K2fw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-explode-assignable-expression": "7.0.0-beta.47",
+ "@babel/types": "7.0.0-beta.47"
+ }
+ },
+ "@babel/helper-call-delegate": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.0.0-beta.47.tgz",
+ "integrity": "sha512-Rx9TRmCCEP0pWau9gfR6ubcbbX3nVc4ImNY143ftC70jrKdSv5rS20yz2cmCilDzhexwGZQ3PFwOLKe3C/5aEg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-hoist-variables": "7.0.0-beta.47",
+ "@babel/traverse": "7.0.0-beta.47",
+ "@babel/types": "7.0.0-beta.47"
+ }
+ },
+ "@babel/helper-define-map": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.0.0-beta.47.tgz",
+ "integrity": "sha512-pLB9RY7GZKcc/frzgfDY/HwdqxWPe60qMAvNUef1V1bDZ8i4AUgxAANgltFzj61t100WGhqaS0xGkALD+9VA+g==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "7.0.0-beta.47",
+ "@babel/types": "7.0.0-beta.47",
+ "lodash": "^4.17.5"
+ }
+ },
+ "@babel/helper-explode-assignable-expression": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.0.0-beta.47.tgz",
+ "integrity": "sha512-1mwk27zmhSuMUcVWxw5ZKiPYfuWXviZNqgA4OvFBloPf9R+dKDhNgP2uUrkHh68ltVVc3Bup1nsbd/2KM5AxEw==",
+ "dev": true,
+ "requires": {
+ "@babel/traverse": "7.0.0-beta.47",
+ "@babel/types": "7.0.0-beta.47"
+ }
+ },
+ "@babel/helper-function-name": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.47.tgz",
+ "integrity": "sha512-0LSvt95XCYaOrDA5K68KkTyldKXizDwBnKACdYzQszp1GdbtzmSeGwFU5Ecw86fU6bkYXtDvkFTOQwk/WQSJPw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-get-function-arity": "7.0.0-beta.47",
+ "@babel/template": "7.0.0-beta.47",
+ "@babel/types": "7.0.0-beta.47"
+ }
+ },
+ "@babel/helper-get-function-arity": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.47.tgz",
+ "integrity": "sha512-63j0i3YUW8CO//uQc3ACffJdIlYcIlysuHjMF0yzQhqKoQ/CUPv0hf3nBwdRGjiWrr3JcL6++NF4XmXdwSU+fA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.47"
+ }
+ },
+ "@babel/helper-hoist-variables": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0-beta.47.tgz",
+ "integrity": "sha512-5BcKFhyzrsInlrfO/tGoe6khUuJzGfROD7oozF/5MWsKo/c3gVJfQ5y83lZ4XoTKJt/x4PQlLU0aHd/SJpYONA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.47"
+ }
+ },
+ "@babel/helper-member-expression-to-functions": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0-beta.47.tgz",
+ "integrity": "sha512-gpipslnZw2hcVGADUtqQII9KF8FPpRZsVUXwKP/0EnWwtujRFSVL+u2Fh+VXODRAxFmTLo6eGcOr/Vfan0MqYw==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.47"
+ }
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.47.tgz",
+ "integrity": "sha512-Rk43Ty+a6npu9znK22IqFlseStRGWxEHi2cjmLbbi63VGiseofdUtIJI65F9MTCuMTXAX7VbY/ghef1Jp5qpvw==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.47",
+ "lodash": "^4.17.5"
+ }
+ },
+ "@babel/helper-module-transforms": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.0.0-beta.47.tgz",
+ "integrity": "sha512-CziMe30ZunAhe6j05oNOFOg7im1lcv3dYuMxrwBYVe9YdP4NHPU7a1wrDBUhaPmyqTIZDwGnFne7k1KP79SeGQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "7.0.0-beta.47",
+ "@babel/helper-simple-access": "7.0.0-beta.47",
+ "@babel/helper-split-export-declaration": "7.0.0-beta.47",
+ "@babel/template": "7.0.0-beta.47",
+ "@babel/types": "7.0.0-beta.47",
+ "lodash": "^4.17.5"
+ }
+ },
+ "@babel/helper-optimise-call-expression": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0-beta.47.tgz",
+ "integrity": "sha512-NhnGhjwrhzGas4A/PoBDEtEPCGJHrzhaT6qGmo1hmkA2orG4UNi7KENC38DhJII0n2oUrKUuzTwgCvxKOTiHbw==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.47"
+ }
+ },
+ "@babel/helper-plugin-utils": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0-beta.47.tgz",
+ "integrity": "sha512-GR67o8boOKVJRKM5Nhk7oVEHpxYy8R00lwu0F82WxxBH+iiT26DqW1e/4w/mo7Bdn1A6l0pNaOlNk1PdM2Hgag==",
+ "dev": true
+ },
+ "@babel/helper-regex": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0-beta.47.tgz",
+ "integrity": "sha512-dafidvVkjJP5AIWkJspV+7RGj1jeNts0qYvlmVzqAGb6BmQzEldJr6ZPzrmlpW/AW1YJGdw7br2yiwvlCRqDvQ==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.5"
+ }
+ },
+ "@babel/helper-remap-async-to-generator": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.0.0-beta.47.tgz",
+ "integrity": "sha512-Nmj3lUHQscD160asav2bZ3sMIjGwGY9r6Vrriy9TqH7bmaClKUKUs5Twv0htFWfOKNFLEeY/MaqiAXylr1GS2w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "7.0.0-beta.47",
+ "@babel/helper-wrap-function": "7.0.0-beta.47",
+ "@babel/template": "7.0.0-beta.47",
+ "@babel/traverse": "7.0.0-beta.47",
+ "@babel/types": "7.0.0-beta.47"
+ }
+ },
+ "@babel/helper-replace-supers": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.0.0-beta.47.tgz",
+ "integrity": "sha512-yf2JAD1+xNTjavqazqknRgPfd6MbGfvfIcAkxWsPURynAwOMSs4zThED8ImT2d5a97rGPysRJcq1jNh2L0WYxg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-member-expression-to-functions": "7.0.0-beta.47",
+ "@babel/helper-optimise-call-expression": "7.0.0-beta.47",
+ "@babel/traverse": "7.0.0-beta.47",
+ "@babel/types": "7.0.0-beta.47"
+ }
+ },
+ "@babel/helper-simple-access": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.0.0-beta.47.tgz",
+ "integrity": "sha512-sd2t3QDKjd+hHkJKaC2AX39l6oIil1N548oMZAtV5YHlVGoWWkAVGnPMxRg7ICEjIftCU3ZI6UeaogyEhF8t7Q==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "7.0.0-beta.47",
+ "@babel/types": "7.0.0-beta.47",
+ "lodash": "^4.17.5"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.47.tgz",
+ "integrity": "sha512-jx8GmxryT6Qy4+24W6M6TnVL9T8bxqdyg5UKHjxBdw0Y2Sano1n0WphUS2seuOugn04W2ZQLqGc0ut8nGe/taA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.47"
+ }
+ },
+ "@babel/helper-wrap-function": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.0.0-beta.47.tgz",
+ "integrity": "sha512-SAasvh80Mz5q9x15dqH6z8jpM0WTBmxQSNZATSwJwhmWdme6r2gxpufIMr8LwQIJHmXmgNLmvh0zdWSbE/PR4Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "7.0.0-beta.47",
+ "@babel/template": "7.0.0-beta.47",
+ "@babel/traverse": "7.0.0-beta.47",
+ "@babel/types": "7.0.0-beta.47"
+ }
+ },
+ "@babel/helpers": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.0.0-beta.47.tgz",
+ "integrity": "sha512-uWk7gIua2COEWLwZGxfF5Wq1bgXOt1V6xzWxqeFznrA6F1TUPiAhkK5zORiZEa5RAILp6Mswsn3xFjDyCpp3rQ==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "7.0.0-beta.47",
+ "@babel/traverse": "7.0.0-beta.47",
+ "@babel/types": "7.0.0-beta.47"
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.47.tgz",
+ "integrity": "sha512-d505K3Hth1eg0b2swfEF7oFMw3J9M8ceFg0s6dhCSxOOF+07WDvJ0HKT/YbK/Jk9wn8Wyr6HIRAUPKJ9Wfv8Rg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.0",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.0"
+ }
+ },
+ "@babel/plugin-proposal-async-generator-functions": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.0.0-beta.47.tgz",
+ "integrity": "sha512-TQMLYVIqQ0MqVS1Z7jsuv3HlEetLo/7EnDY9mGBZ4c4/WLD/mu+tFuLiK2/2QH5wgi5viRfJGs/+L5TaDzxWng==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47",
+ "@babel/helper-remap-async-to-generator": "7.0.0-beta.47",
+ "@babel/plugin-syntax-async-generators": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-proposal-class-properties": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.0.0-beta.47.tgz",
+ "integrity": "sha512-6yuCiF+ZZHPLgAa+0a6/teNeAMsWqY6AVtZA4NhCWnwP4OH0JrRaY7rwvFCJSqNGurf8rF65W9IucM/l0+HOCg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "7.0.0-beta.47",
+ "@babel/helper-plugin-utils": "7.0.0-beta.47",
+ "@babel/helper-replace-supers": "7.0.0-beta.47",
+ "@babel/plugin-syntax-class-properties": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-proposal-decorators": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.0.0-beta.47.tgz",
+ "integrity": "sha512-sI+cO1okrlOyV4I63HDXf/SFsCr492HLjzNsMsd7Lk9WrViA+eQIboIiI9wHicozdgD1WrpZGJTjz7Z3xwl2Qw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47",
+ "@babel/plugin-syntax-decorators": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-proposal-object-rest-spread": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0-beta.47.tgz",
+ "integrity": "sha512-ujUjQUyTxUWHfixRD7Y5Nm8VCgHSf6YgbM37LEnojKp5lPahZO42qJfDty+Kh0tEanpI5H8BLPkJbFSzx6TNEw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47",
+ "@babel/plugin-syntax-object-rest-spread": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-proposal-optional-catch-binding": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0-beta.47.tgz",
+ "integrity": "sha512-XMZavW6uior8KD4BeMavxF3PGrwVpIFlZk/GJQGkd3lOeOHil8nhHDuTWvsbsJptKFWMPkhGR18boNdxgmxyFQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47",
+ "@babel/plugin-syntax-optional-catch-binding": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-proposal-unicode-property-regex": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0-beta.47.tgz",
+ "integrity": "sha512-TCQqSmPrgVB0Txr6WzCpxJyLuVTb9KoT0+oECKELtF717bvHOI4woR7o8D8DFkXzVQeb7Kqfu5w05gsvPq591g==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47",
+ "@babel/helper-regex": "7.0.0-beta.47",
+ "regexpu-core": "^4.1.4"
+ }
+ },
+ "@babel/plugin-syntax-async-generators": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0-beta.47.tgz",
+ "integrity": "sha512-LCNGYTLpQAsvTmVmT/I2pz7dIh3Bu+9BLxqL7b3QfplsMQxNsoBBMend33Arb4EtPt5dX7KeeVof8tL0trDRRA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-syntax-class-properties": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.0.0-beta.47.tgz",
+ "integrity": "sha512-vLoAuLSjHSenX3TQmri6ttQWZp3rEtGcRp4LgYEBQ012fN5h+KmcssvkCAqm6V6ozS5KzUWpBlZ6t7YhZG6oBw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-syntax-decorators": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.0.0-beta.47.tgz",
+ "integrity": "sha512-Lv10BM3C+0Ki53lI7T9xZsSsgzQqfoQZq4pZj0F6tkK54E5BBSFfUxGavRE43CFXHbK0Hd9uMqmpGWPGtCvgAw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-syntax-dynamic-import": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.0.0-beta.47.tgz",
+ "integrity": "sha512-J2y7RAH2NwQ+ahJahj2eS1PqS2NWNWTDaEibqrE55VTJU7nPL8AhthRwIQfQkCH+8UIeL/T3Jh1iHIRkvJ6dXA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-syntax-jsx": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.0.0-beta.47.tgz",
+ "integrity": "sha512-5scuJzIYZY8M+A1ra8mcKANIwB5TtsRD6Aw94xZxfvnjhhVMFR5RYE9HshVlBrZVY+r3cJDNIQLJMC/fGJHImA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-syntax-object-rest-spread": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0-beta.47.tgz",
+ "integrity": "sha512-UOGQCmzvNlZMQOuys7xPiTa2EjTT3xHuhUghcdJnYikqGV43obpIIaP+VDCWPvIT8g0QDIvmRWx5UefvkWXN+w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-syntax-optional-catch-binding": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0-beta.47.tgz",
+ "integrity": "sha512-Dmq+REMR95Syg+VjV3bh63DD/tDxdraNQ4ErAOXFobfSCDbfov9YGkqSJ4K61LHTQwinQ0+dIUlgdFL2kbedIw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-transform-arrow-functions": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0-beta.47.tgz",
+ "integrity": "sha512-xiU+7RJAsqx+iZqWSQQWBu9ZDTruWimkg4puDSdRVfEwgZQdOtiU2LuO0+xGFyitJPHkKuje0WvK1tFu1dmxCw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-transform-async-to-generator": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.0.0-beta.47.tgz",
+ "integrity": "sha512-/TXK3v6ipvmhMO81Y2Vjc7RYROkS2PcmRc+kvmU3CWA7r5I73KWg10UEW/fpWqCuoTCHHHXu1ZcZ5u+nduJeFw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "7.0.0-beta.47",
+ "@babel/helper-plugin-utils": "7.0.0-beta.47",
+ "@babel/helper-remap-async-to-generator": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0-beta.47.tgz",
+ "integrity": "sha512-8KPxKyE6kb9VRbHwQ8XKsg/IPlxHaOMRyg2WfyV5C4dCmXbRdHDJy4hZKB3o4rGxjggmC/Bx8Fh51/P7UNtTcA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-transform-block-scoping": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0-beta.47.tgz",
+ "integrity": "sha512-V/u3Zdy40KjVQeyYUaQnCGiHQbRNJoc6IEtNDERltuW9vYPHS1n6YGc+EHKi8JVYT4kE6UHOjD+BrbCCV4kjRw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47",
+ "lodash": "^4.17.5"
+ }
+ },
+ "@babel/plugin-transform-classes": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.0.0-beta.47.tgz",
+ "integrity": "sha512-hzW/jL6TPBMHJXeXwzuxMN0PFAfjVD0UzATHrFSejY5A7SvhWWrv1cZ3K0/SzCXJ9LpMdxCNiREvVjeD/Tyx2g==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "7.0.0-beta.47",
+ "@babel/helper-define-map": "7.0.0-beta.47",
+ "@babel/helper-function-name": "7.0.0-beta.47",
+ "@babel/helper-optimise-call-expression": "7.0.0-beta.47",
+ "@babel/helper-plugin-utils": "7.0.0-beta.47",
+ "@babel/helper-replace-supers": "7.0.0-beta.47",
+ "@babel/helper-split-export-declaration": "7.0.0-beta.47",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/plugin-transform-computed-properties": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0-beta.47.tgz",
+ "integrity": "sha512-V78qyzmjj4aq/tjpkMFbV5gPtrx7xdclW1Rn6vV9hIwMSMbtstYEXF4msy614MofvYj6gYbPbNfyhXFIUvz/xw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-transform-destructuring": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0-beta.47.tgz",
+ "integrity": "sha512-3AaXC9H7qPybJbSs/QMhhj9EZF9MYrb/HRytwki1tckaYifqCJquENIZxDAYmwsWIGIHiq34WqwPRMIsz/b5uQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-transform-dotall-regex": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0-beta.47.tgz",
+ "integrity": "sha512-ofB5GwipMoaOH3Qyr5g5FpXWePhIAaD4zMDOoAHDYBPuLWxzAME8YQCa0S3HJf3eTu/HTN/c/G1gDwDB8Z/gKQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47",
+ "@babel/helper-regex": "7.0.0-beta.47",
+ "regexpu-core": "^4.1.3"
+ }
+ },
+ "@babel/plugin-transform-duplicate-keys": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0-beta.47.tgz",
+ "integrity": "sha512-r3xNVYTLVasjqTowIr6s+27oc5n7A5TKbB0/4u9FHjF7ONTWaggO8UFbbj07DOJ4Ll2RkigrZA8/D+w2nJ+XlA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.0.0-beta.47.tgz",
+ "integrity": "sha512-vyGG3kLIXpMuaPL485aqowdWFrxCxXtbzMXy9p1QTK5Q/+9UHpK9XoAVJZGknnsm091m0Ss7spo8uHaxbzYVog==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-builder-binary-assignment-operator-visitor": "7.0.0-beta.47",
+ "@babel/helper-plugin-utils": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-transform-for-of": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0-beta.47.tgz",
+ "integrity": "sha512-tfH5OMzV9fWLYJTzWDhoRJKr8kvBZWH26jiCgM0ayNq75ES/X947MqMNAgBjJdTAVEV2kOyks2ItgNAJT4rOUw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-transform-function-name": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.0.0-beta.47.tgz",
+ "integrity": "sha512-/5I/f8NCouugsRT6ORB1UjCP3N+Rgv/OB6SzmaeIUEpYYPM6D7WQ+4BaRYXQn4eqtOJmTgxDXYa8FgYtoeqP9A==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "7.0.0-beta.47",
+ "@babel/helper-plugin-utils": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-transform-literals": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0-beta.47.tgz",
+ "integrity": "sha512-PxBw+52qWypwR76YfS2FlW4wZfp61SjIyt3OSPZeWnf0zVQWNVrlRRunJ7lBYudDYvyMwStAE/VynZ0fHtPgng==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-transform-modules-amd": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.0.0-beta.47.tgz",
+ "integrity": "sha512-zW84YqQ5Kt8+t5pYrnFhjWQP2w2wq6Nxz9pozxpnvXP+lhqyJPqNdWM1lcVApORpWL1BF7BlgP08yk+5MVRfGA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "7.0.0-beta.47",
+ "@babel/helper-plugin-utils": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-transform-modules-commonjs": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.0.0-beta.47.tgz",
+ "integrity": "sha512-MYoLyexybBJ9ODWWMsMFzxAQey68RzhQNPjfNAYPhPPB3X160EZ5qOjWxRS2rYNvuYAxs6guy5OdrDpESqFSrQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "7.0.0-beta.47",
+ "@babel/helper-plugin-utils": "7.0.0-beta.47",
+ "@babel/helper-simple-access": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-transform-modules-systemjs": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.0.0-beta.47.tgz",
+ "integrity": "sha512-bMQy3/jEZRpoUg7RdOouphBO8+7Sfjl7XrO84PtgBx4ck+ZPc4xOlBQyr2rkmsJNmmGLi42nnMI1cZZJT3LVnQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-hoist-variables": "7.0.0-beta.47",
+ "@babel/helper-plugin-utils": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-transform-modules-umd": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.0.0-beta.47.tgz",
+ "integrity": "sha512-rG7KioAFCLxZ33wNBqUoxPhtXOmVEvnZNIy9wv0fSbNIQr8lO1avZ7SeBL3OZduNvLocqrESt9Xhh1nzb/zOvA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "7.0.0-beta.47",
+ "@babel/helper-plugin-utils": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-transform-new-target": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0-beta.47.tgz",
+ "integrity": "sha512-2IRZtdoPXJn7KSwrmp0xtLTZ0PnhlQxhcTZ0XZ5wfFXmsZ9vi6AK4whIZ2IXI/c2qrYK9FEYLwR5QRfL5Qe6eQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-transform-object-super": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.0.0-beta.47.tgz",
+ "integrity": "sha512-JN6ox2rH1xe6hlsd6/7d2kPjZSA97wH4oOdNOSaNqaFGEFuaP/Je4+ojHMgyHKU2nx9QHNBCTxHEj+ko+Ij6HQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47",
+ "@babel/helper-replace-supers": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-transform-parameters": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.0.0-beta.47.tgz",
+ "integrity": "sha512-UzQG8draO+30Y8eNEREuGBfmEHLL7WFxOjmTBbaTrbdOrm/znCUThqcuNz8cyn2nrZbln7M/loQ3stjf9Pt9fQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-call-delegate": "7.0.0-beta.47",
+ "@babel/helper-get-function-arity": "7.0.0-beta.47",
+ "@babel/helper-plugin-utils": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-transform-regenerator": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0-beta.47.tgz",
+ "integrity": "sha512-JEPIiJyqYRfjOYUTZguLkb2HTwudReqLyOljpOXnJ/1ymwsiof4D6ul611DGlMxJMZJGQ6TBi59iY9GoJ6j4Iw==",
+ "dev": true,
+ "requires": {
+ "regenerator-transform": "^0.12.3"
+ }
+ },
+ "@babel/plugin-transform-runtime": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.0.0-beta.47.tgz",
+ "integrity": "sha512-RhnhjYsOxmKDGa1ePM5RQWFBYe1PnEZAhXTNEeIwtw1jluEoLL+PCTZDbt/aAcAkZvqwIWccjkNM/FwKTd5Sxw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "7.0.0-beta.47",
+ "@babel/helper-plugin-utils": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-transform-shorthand-properties": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0-beta.47.tgz",
+ "integrity": "sha512-+o7/yb0Nrk4Gg/tnBgfBf+G1uGZbtkSluUnj8RyD37ajpDlWmysDjFEHSfktKcuD8YHeGz2M9AYNGcClk1fr/g==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-transform-spread": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0-beta.47.tgz",
+ "integrity": "sha512-LFAozFdfT4bE2AQw2BnjzLufTX4GBsTUHUGRhT8XNoDYuGnV+7k9Yj6JU3/7csJc9u6W91PArYgoO+D56CMw6Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-transform-sticky-regex": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0-beta.47.tgz",
+ "integrity": "sha512-+Rc6NihGoXcwAqAxbiumvzOYxRR0aUg1ZExfyHnI5QnQf0sf4xAfgT/YpGvEgLd5Ci0rka+IWSj54PhzZkhuTg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47",
+ "@babel/helper-regex": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-transform-template-literals": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0-beta.47.tgz",
+ "integrity": "sha512-ORfrfN/gQoRuI+xf+kOa2i/yvXfedFRgH+KtgoIrpUQom7OhexxzD280x80LMCIkdaVGzYhvlC3kdJkFMWAfUg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "7.0.0-beta.47",
+ "@babel/helper-plugin-utils": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-transform-typeof-symbol": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0-beta.47.tgz",
+ "integrity": "sha512-PhPy5NUY5MT++fEr7/sxN1/ERSM2siHSbGgdkbqgDlyvf1NlU1HeqyfomHJEFE1Y4PX0hj+XmtjSAali/6XqYA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47"
+ }
+ },
+ "@babel/plugin-transform-unicode-regex": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0-beta.47.tgz",
+ "integrity": "sha512-44nWn421tMVZ/A4+1uppzoAO7nrlwWzefMr9JUi5G+tXl0DLEtWy+F7L6zCVw19C4OAOA6WlolVro5CEs6g6AQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.47",
+ "@babel/helper-regex": "7.0.0-beta.47",
+ "regexpu-core": "^4.1.3"
+ }
+ },
+ "@babel/preset-env": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.0.0-beta.47.tgz",
+ "integrity": "sha512-ZFUgKdQDqw2H5TCMaWq6iDDO9+16RZPdDfOuoPID8Agm8I2MBlrqTI1MKWwqgEHICdZIOXkVszAMuuDTBwdzHA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "7.0.0-beta.47",
+ "@babel/helper-plugin-utils": "7.0.0-beta.47",
+ "@babel/plugin-proposal-async-generator-functions": "7.0.0-beta.47",
+ "@babel/plugin-proposal-object-rest-spread": "7.0.0-beta.47",
+ "@babel/plugin-proposal-optional-catch-binding": "7.0.0-beta.47",
+ "@babel/plugin-proposal-unicode-property-regex": "7.0.0-beta.47",
+ "@babel/plugin-syntax-async-generators": "7.0.0-beta.47",
+ "@babel/plugin-syntax-object-rest-spread": "7.0.0-beta.47",
+ "@babel/plugin-syntax-optional-catch-binding": "7.0.0-beta.47",
+ "@babel/plugin-transform-arrow-functions": "7.0.0-beta.47",
+ "@babel/plugin-transform-async-to-generator": "7.0.0-beta.47",
+ "@babel/plugin-transform-block-scoped-functions": "7.0.0-beta.47",
+ "@babel/plugin-transform-block-scoping": "7.0.0-beta.47",
+ "@babel/plugin-transform-classes": "7.0.0-beta.47",
+ "@babel/plugin-transform-computed-properties": "7.0.0-beta.47",
+ "@babel/plugin-transform-destructuring": "7.0.0-beta.47",
+ "@babel/plugin-transform-dotall-regex": "7.0.0-beta.47",
+ "@babel/plugin-transform-duplicate-keys": "7.0.0-beta.47",
+ "@babel/plugin-transform-exponentiation-operator": "7.0.0-beta.47",
+ "@babel/plugin-transform-for-of": "7.0.0-beta.47",
+ "@babel/plugin-transform-function-name": "7.0.0-beta.47",
+ "@babel/plugin-transform-literals": "7.0.0-beta.47",
+ "@babel/plugin-transform-modules-amd": "7.0.0-beta.47",
+ "@babel/plugin-transform-modules-commonjs": "7.0.0-beta.47",
+ "@babel/plugin-transform-modules-systemjs": "7.0.0-beta.47",
+ "@babel/plugin-transform-modules-umd": "7.0.0-beta.47",
+ "@babel/plugin-transform-new-target": "7.0.0-beta.47",
+ "@babel/plugin-transform-object-super": "7.0.0-beta.47",
+ "@babel/plugin-transform-parameters": "7.0.0-beta.47",
+ "@babel/plugin-transform-regenerator": "7.0.0-beta.47",
+ "@babel/plugin-transform-shorthand-properties": "7.0.0-beta.47",
+ "@babel/plugin-transform-spread": "7.0.0-beta.47",
+ "@babel/plugin-transform-sticky-regex": "7.0.0-beta.47",
+ "@babel/plugin-transform-template-literals": "7.0.0-beta.47",
+ "@babel/plugin-transform-typeof-symbol": "7.0.0-beta.47",
+ "@babel/plugin-transform-unicode-regex": "7.0.0-beta.47",
+ "browserslist": "^3.0.0",
+ "invariant": "^2.2.2",
+ "semver": "^5.3.0"
+ }
+ },
+ "@babel/runtime": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.0.0-beta.47.tgz",
+ "integrity": "sha512-3IaakAC5B4bHJ0aCUKVw0pt+GruavdgWDFbf7TfKh7ZJ8yQuUp7af7MNwf3e+jH8776cjqYmMO1JNDDAE9WfrA==",
+ "dev": true,
+ "requires": {
+ "core-js": "^2.5.3",
+ "regenerator-runtime": "^0.11.1"
+ }
+ },
+ "@babel/template": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.47.tgz",
+ "integrity": "sha512-mAzrOCLwOb4jAobHi0kTwIkoamP1Do28c6zxvrDXjYSJFZHz6KGuzMaT0AV7ZCq7M3si7QypVVMVX2bE6IsuOg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "7.0.0-beta.47",
+ "@babel/types": "7.0.0-beta.47",
+ "babylon": "7.0.0-beta.47",
+ "lodash": "^4.17.5"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.47.tgz",
+ "integrity": "sha512-kYGGs//OnUnei+9TTldxlgf7llprj7VUeDKtG50+g+0k1g0yZyrkEgbyFheYFdnudR8IDEHOEXVsUuY82r5Aiw==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "7.0.0-beta.47",
+ "@babel/generator": "7.0.0-beta.47",
+ "@babel/helper-function-name": "7.0.0-beta.47",
+ "@babel/helper-split-export-declaration": "7.0.0-beta.47",
+ "@babel/types": "7.0.0-beta.47",
+ "babylon": "7.0.0-beta.47",
+ "debug": "^3.1.0",
+ "globals": "^11.1.0",
+ "invariant": "^2.2.0",
+ "lodash": "^4.17.5"
+ }
+ },
+ "@babel/types": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.47.tgz",
+ "integrity": "sha512-MOP5pOosg7JETrVGg8OQyzmUmbyoSopT5j2HlblHsto89mPz3cmxzn1IA4UNUmnWKgeticSwfhS+Gdy25IIlBQ==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.5",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "@intervolga/optimize-cssnano-plugin": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/@intervolga/optimize-cssnano-plugin/-/optimize-cssnano-plugin-1.0.6.tgz",
+ "integrity": "sha512-zN69TnSr0viRSU6cEDIcuPcP67QcpQ6uHACg58FiN9PDrU6SLyGW3MR4tiISbYxy1kDWAVPwD+XwQTWE5cigAA==",
+ "dev": true,
+ "requires": {
+ "cssnano": "^4.0.0",
+ "cssnano-preset-default": "^4.0.0",
+ "postcss": "^7.0.0"
+ }
+ },
+ "@mrmlnc/readdir-enhanced": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz",
+ "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==",
+ "dev": true,
+ "requires": {
+ "call-me-maybe": "^1.0.1",
+ "glob-to-regexp": "^0.3.0"
+ }
+ },
+ "@nodelib/fs.stat": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.1.tgz",
+ "integrity": "sha512-KU/VDjC5RwtDUZiz3d+DHXJF2lp5hB9dn552TXIyptj8SH1vXmR40mG0JgGq03IlYsOgGfcv8xrLpSQ0YUMQdA==",
+ "dev": true
+ },
+ "@vue/babel-preset-app": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-3.0.1.tgz",
+ "integrity": "sha512-TYTNe+v7nuWoIQlIPjGQJxFztk2b7eWIrXOP6lzgRVVOJzRsUwVg9SWF444+0yBTDot8A3Ej3gPgeQCd/HdiHw==",
+ "dev": true,
+ "requires": {
+ "@babel/plugin-proposal-class-properties": "7.0.0-beta.47",
+ "@babel/plugin-proposal-decorators": "7.0.0-beta.47",
+ "@babel/plugin-syntax-dynamic-import": "7.0.0-beta.47",
+ "@babel/plugin-syntax-jsx": "7.0.0-beta.47",
+ "@babel/plugin-transform-runtime": "7.0.0-beta.47",
+ "@babel/preset-env": "7.0.0-beta.47",
+ "@babel/runtime": "7.0.0-beta.47",
+ "babel-helper-vue-jsx-merge-props": "^2.0.3",
+ "babel-plugin-dynamic-import-node": "^2.0.0",
+ "babel-plugin-transform-vue-jsx": "^4.0.1"
+ }
+ },
+ "@vue/cli-overlay": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-3.0.1.tgz",
+ "integrity": "sha512-2ziQZ/mjFAf9IO+xdHRTjRzWCOiuojVAzp4TPqH34fTAsgf0qHTG9/wLVEKHVZ3Pcrl0nMIeYUseGKJEB9S9pw==",
+ "dev": true
+ },
+ "@vue/cli-plugin-babel": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@vue/cli-plugin-babel/-/cli-plugin-babel-3.0.1.tgz",
+ "integrity": "sha512-b8qiyvs3Tx8RvPJ6Y4WqOPvDEw8JRzCUAQjF+Y1bH6yvcJ6JHEKq0JKkvvuBNWzD6Ba0y+SSiBjJofy1QITFYg==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "7.0.0-beta.47",
+ "@vue/babel-preset-app": "^3.0.1",
+ "babel-loader": "^8.0.0-0"
+ }
+ },
+ "@vue/cli-plugin-eslint": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@vue/cli-plugin-eslint/-/cli-plugin-eslint-3.0.1.tgz",
+ "integrity": "sha512-I1N8iHKI1wlU1769mS8X7CbWJi8G3aecmTrIgSn0Mco00ANxyU63aWFY08+NTMwwt/C4dZqpfoSu9H/piqHLBQ==",
+ "dev": true,
+ "requires": {
+ "@vue/cli-shared-utils": "^3.0.1",
+ "babel-eslint": "^8.2.5",
+ "eslint": "^4.19.1",
+ "eslint-loader": "^2.0.0",
+ "eslint-plugin-vue": "^4.5.0"
+ }
+ },
+ "@vue/cli-service": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-3.0.1.tgz",
+ "integrity": "sha512-eRwjGHolm6FcLNibcepKL+CvsqkU3Nv/9wOzOzJT4u+kw620IoP9FXev58h6FD4dAEtatoCiKqHLVqFoCYUUBw==",
+ "dev": true,
+ "requires": {
+ "@intervolga/optimize-cssnano-plugin": "^1.0.5",
+ "@vue/cli-overlay": "^3.0.0",
+ "@vue/cli-shared-utils": "^3.0.1",
+ "@vue/preload-webpack-plugin": "^1.1.0",
+ "@vue/web-component-wrapper": "^1.2.0",
+ "acorn": "^5.7.1",
+ "address": "^1.0.3",
+ "autoprefixer": "^8.6.5",
+ "cache-loader": "^1.2.2",
+ "case-sensitive-paths-webpack-plugin": "^2.1.2",
+ "chalk": "^2.4.1",
+ "clipboardy": "^1.2.3",
+ "cliui": "^4.1.0",
+ "copy-webpack-plugin": "^4.5.2",
+ "css-loader": "^1.0.0",
+ "cssnano": "^4.0.0",
+ "debug": "^3.1.0",
+ "escape-string-regexp": "^1.0.5",
+ "file-loader": "^1.1.11",
+ "friendly-errors-webpack-plugin": "^1.7.0",
+ "fs-extra": "^6.0.1",
+ "globby": "^8.0.1",
+ "hash-sum": "^1.0.2",
+ "html-webpack-plugin": "^3.2.0",
+ "launch-editor-middleware": "^2.2.1",
+ "lodash.defaultsdeep": "^4.6.0",
+ "lodash.mapvalues": "^4.6.0",
+ "lodash.transform": "^4.6.0",
+ "mini-css-extract-plugin": "^0.4.1",
+ "minimist": "^1.2.0",
+ "ora": "^2.1.0",
+ "portfinder": "^1.0.13",
+ "postcss-loader": "^2.1.6",
+ "read-pkg": "^4.0.1",
+ "semver": "^5.5.0",
+ "slash": "^2.0.0",
+ "source-map-url": "^0.4.0",
+ "ssri": "^6.0.0",
+ "string.prototype.padend": "^3.0.0",
+ "thread-loader": "^1.1.5",
+ "uglifyjs-webpack-plugin": "^1.2.7",
+ "url-loader": "^1.1.0",
+ "vue-loader": "^15.3.0",
+ "webpack": "^4.15.1",
+ "webpack-bundle-analyzer": "^2.13.1",
+ "webpack-chain": "^4.8.0",
+ "webpack-dev-server": "^3.1.4",
+ "webpack-merge": "^4.1.3",
+ "yorkie": "^2.0.0"
+ },
+ "dependencies": {
+ "globby": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.1.tgz",
+ "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==",
+ "dev": true,
+ "requires": {
+ "array-union": "^1.0.1",
+ "dir-glob": "^2.0.0",
+ "fast-glob": "^2.0.2",
+ "glob": "^7.1.2",
+ "ignore": "^3.3.5",
+ "pify": "^3.0.0",
+ "slash": "^1.0.0"
+ },
+ "dependencies": {
+ "slash": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+ "dev": true
+ }
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "@vue/cli-shared-utils": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-3.0.1.tgz",
+ "integrity": "sha512-bdFxerHn/Tz/yIsZH9d1QkegdJR2KzkVHcn1ejDM/QV1RM3OteFbDcTBEIaAOd3OcAtyikzkRrsr1o9iBsBqVg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "execa": "^0.10.0",
+ "joi": "^13.0.0",
+ "launch-editor": "^2.2.1",
+ "node-ipc": "^9.1.1",
+ "opn": "^5.3.0",
+ "ora": "^2.1.0",
+ "request": "^2.87.0",
+ "request-promise-native": "^1.0.5",
+ "semver": "^5.5.0",
+ "string.prototype.padstart": "^3.0.0"
+ }
+ },
+ "@vue/component-compiler-utils": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-2.2.0.tgz",
+ "integrity": "sha512-pS4zlcdD7BvedyB+IfiTfrbi6C977UMIfulSk8r6uL0BU46ZE2+fUj/zbSNSfVxeaj9ElmnSni5OMwF9np+b+w==",
+ "dev": true,
+ "requires": {
+ "consolidate": "^0.15.1",
+ "hash-sum": "^1.0.2",
+ "lru-cache": "^4.1.2",
+ "merge-source-map": "^1.1.0",
+ "postcss": "^6.0.20",
+ "postcss-selector-parser": "^3.1.1",
+ "prettier": "1.13.7",
+ "source-map": "^0.5.6",
+ "vue-template-es2015-compiler": "^1.6.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz",
+ "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=",
+ "dev": true,
+ "requires": {
+ "dot-prop": "^4.1.1",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ }
+ }
+ }
+ },
+ "@vue/preload-webpack-plugin": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.0.tgz",
+ "integrity": "sha512-rcn2KhSHESBFMPj5vc5X2pI9bcBNQQixvJXhD5gZ4rN2iym/uH2qfDSQfUS5+qwiz0a85TCkeUs6w6jxFDudbw==",
+ "dev": true
+ },
+ "@vue/web-component-wrapper": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@vue/web-component-wrapper/-/web-component-wrapper-1.2.0.tgz",
+ "integrity": "sha512-Xn/+vdm9CjuC9p3Ae+lTClNutrVhsXpzxvoTXXtoys6kVRX9FkueSUAqSWAyZntmVLlR4DosBV4pH8y5Z/HbUw==",
+ "dev": true
+ },
+ "@webassemblyjs/ast": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.5.13.tgz",
+ "integrity": "sha512-49nwvW/Hx9i+OYHg+mRhKZfAlqThr11Dqz8TsrvqGKMhdI2ijy3KBJOun2Z4770TPjrIJhR6KxChQIDaz8clDA==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/helper-module-context": "1.5.13",
+ "@webassemblyjs/helper-wasm-bytecode": "1.5.13",
+ "@webassemblyjs/wast-parser": "1.5.13",
+ "debug": "^3.1.0",
+ "mamacro": "^0.0.3"
+ }
+ },
+ "@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.5.13.tgz",
+ "integrity": "sha512-vrvvB18Kh4uyghSKb0NTv+2WZx871WL2NzwMj61jcq2bXkyhRC+8Q0oD7JGVf0+5i/fKQYQSBCNMMsDMRVAMqA==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-api-error": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.5.13.tgz",
+ "integrity": "sha512-dBh2CWYqjaDlvMmRP/kudxpdh30uXjIbpkLj9HQe+qtYlwvYjPRjdQXrq1cTAAOUSMTtzqbXIxEdEZmyKfcwsg==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-buffer": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.5.13.tgz",
+ "integrity": "sha512-v7igWf1mHcpJNbn4m7e77XOAWXCDT76Xe7Is1VQFXc4K5jRcFrl9D0NrqM4XifQ0bXiuTSkTKMYqDxu5MhNljA==",
+ "dev": true,
+ "requires": {
+ "debug": "^3.1.0"
+ }
+ },
+ "@webassemblyjs/helper-code-frame": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.5.13.tgz",
+ "integrity": "sha512-yN6ScQQDFCiAXnVctdVO/J5NQRbwyTbQzsGzEgXsAnrxhjp0xihh+nNHQTMrq5UhOqTb5LykpJAvEv9AT0jnAQ==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/wast-printer": "1.5.13"
+ }
+ },
+ "@webassemblyjs/helper-fsm": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.5.13.tgz",
+ "integrity": "sha512-hSIKzbXjVMRvy3Jzhgu+vDd/aswJ+UMEnLRCkZDdknZO3Z9e6rp1DAs0tdLItjCFqkz9+0BeOPK/mk3eYvVzZg==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-module-context": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.5.13.tgz",
+ "integrity": "sha512-zxJXULGPLB7r+k+wIlvGlXpT4CYppRz8fLUM/xobGHc9Z3T6qlmJD9ySJ2jknuktuuiR9AjnNpKYDECyaiX+QQ==",
+ "dev": true,
+ "requires": {
+ "debug": "^3.1.0",
+ "mamacro": "^0.0.3"
+ }
+ },
+ "@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.5.13.tgz",
+ "integrity": "sha512-0n3SoNGLvbJIZPhtMFq0XmmnA/YmQBXaZKQZcW8maGKwLpVcgjNrxpFZHEOLKjXJYVN5Il8vSfG7nRX50Zn+aw==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-wasm-section": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.5.13.tgz",
+ "integrity": "sha512-IJ/goicOZ5TT1axZFSnlAtz4m8KEjYr12BNOANAwGFPKXM4byEDaMNXYowHMG0yKV9a397eU/NlibFaLwr1fbw==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.5.13",
+ "@webassemblyjs/helper-buffer": "1.5.13",
+ "@webassemblyjs/helper-wasm-bytecode": "1.5.13",
+ "@webassemblyjs/wasm-gen": "1.5.13",
+ "debug": "^3.1.0"
+ }
+ },
+ "@webassemblyjs/ieee754": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.5.13.tgz",
+ "integrity": "sha512-TseswvXEPpG5TCBKoLx9tT7+/GMACjC1ruo09j46ULRZWYm8XHpDWaosOjTnI7kr4SRJFzA6MWoUkAB+YCGKKg==",
+ "dev": true,
+ "requires": {
+ "ieee754": "^1.1.11"
+ }
+ },
+ "@webassemblyjs/leb128": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.5.13.tgz",
+ "integrity": "sha512-0NRMxrL+GG3eISGZBmLBLAVjphbN8Si15s7jzThaw1UE9e5BY1oH49/+MA1xBzxpf1OW5sf9OrPDOclk9wj2yg==",
+ "dev": true,
+ "requires": {
+ "long": "4.0.0"
+ },
+ "dependencies": {
+ "long": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
+ "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==",
+ "dev": true
+ }
+ }
+ },
+ "@webassemblyjs/utf8": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.5.13.tgz",
+ "integrity": "sha512-Ve1ilU2N48Ew0lVGB8FqY7V7hXjaC4+PeZM+vDYxEd+R2iQ0q+Wb3Rw8v0Ri0+rxhoz6gVGsnQNb4FjRiEH/Ng==",
+ "dev": true
+ },
+ "@webassemblyjs/wasm-edit": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.5.13.tgz",
+ "integrity": "sha512-X7ZNW4+Hga4f2NmqENnHke2V/mGYK/xnybJSIXImt1ulxbCOEs/A+ZK/Km2jgihjyVxp/0z0hwIcxC6PrkWtgw==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.5.13",
+ "@webassemblyjs/helper-buffer": "1.5.13",
+ "@webassemblyjs/helper-wasm-bytecode": "1.5.13",
+ "@webassemblyjs/helper-wasm-section": "1.5.13",
+ "@webassemblyjs/wasm-gen": "1.5.13",
+ "@webassemblyjs/wasm-opt": "1.5.13",
+ "@webassemblyjs/wasm-parser": "1.5.13",
+ "@webassemblyjs/wast-printer": "1.5.13",
+ "debug": "^3.1.0"
+ }
+ },
+ "@webassemblyjs/wasm-gen": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.5.13.tgz",
+ "integrity": "sha512-yfv94Se8R73zmr8GAYzezFHc3lDwE/lBXQddSiIZEKZFuqy7yWtm3KMwA1uGbv5G1WphimJxboXHR80IgX1hQA==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.5.13",
+ "@webassemblyjs/helper-wasm-bytecode": "1.5.13",
+ "@webassemblyjs/ieee754": "1.5.13",
+ "@webassemblyjs/leb128": "1.5.13",
+ "@webassemblyjs/utf8": "1.5.13"
+ }
+ },
+ "@webassemblyjs/wasm-opt": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.5.13.tgz",
+ "integrity": "sha512-IkXSkgzVhQ0QYAdIayuCWMmXSYx0dHGU8Ah/AxJf1gBvstMWVnzJnBwLsXLyD87VSBIcsqkmZ28dVb0mOC3oBg==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.5.13",
+ "@webassemblyjs/helper-buffer": "1.5.13",
+ "@webassemblyjs/wasm-gen": "1.5.13",
+ "@webassemblyjs/wasm-parser": "1.5.13",
+ "debug": "^3.1.0"
+ }
+ },
+ "@webassemblyjs/wasm-parser": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.5.13.tgz",
+ "integrity": "sha512-XnYoIcu2iqq8/LrtmdnN3T+bRjqYFjRHqWbqK3osD/0r/Fcv4d9ecRzjVtC29ENEuNTK4mQ9yyxCBCbK8S/cpg==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.5.13",
+ "@webassemblyjs/helper-api-error": "1.5.13",
+ "@webassemblyjs/helper-wasm-bytecode": "1.5.13",
+ "@webassemblyjs/ieee754": "1.5.13",
+ "@webassemblyjs/leb128": "1.5.13",
+ "@webassemblyjs/utf8": "1.5.13"
+ }
+ },
+ "@webassemblyjs/wast-parser": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.5.13.tgz",
+ "integrity": "sha512-Lbz65T0LQ1LgzKiUytl34CwuhMNhaCLgrh0JW4rJBN6INnBB8NMwUfQM+FxTnLY9qJ+lHJL/gCM5xYhB9oWi4A==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.5.13",
+ "@webassemblyjs/floating-point-hex-parser": "1.5.13",
+ "@webassemblyjs/helper-api-error": "1.5.13",
+ "@webassemblyjs/helper-code-frame": "1.5.13",
+ "@webassemblyjs/helper-fsm": "1.5.13",
+ "long": "^3.2.0",
+ "mamacro": "^0.0.3"
+ }
+ },
+ "@webassemblyjs/wast-printer": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.5.13.tgz",
+ "integrity": "sha512-QcwogrdqcBh8Z+eUF8SG+ag5iwQSXxQJELBEHmLkk790wgQgnIMmntT2sMAMw53GiFNckArf5X0bsCA44j3lWQ==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.5.13",
+ "@webassemblyjs/wast-parser": "1.5.13",
+ "long": "^3.2.0"
+ }
+ },
+ "@webpack-contrib/schema-utils": {
+ "version": "1.0.0-beta.0",
+ "resolved": "https://registry.npmjs.org/@webpack-contrib/schema-utils/-/schema-utils-1.0.0-beta.0.tgz",
+ "integrity": "sha512-LonryJP+FxQQHsjGBi6W786TQB1Oym+agTpY0c+Kj8alnIw+DLUJb6SI8Y1GHGhLCH1yPRrucjObUmxNICQ1pg==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-keywords": "^3.1.0",
+ "chalk": "^2.3.2",
+ "strip-ansi": "^4.0.0",
+ "text-table": "^0.2.0",
+ "webpack-log": "^1.1.2"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz",
+ "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^2.0.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-keywords": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz",
+ "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=",
+ "dev": true
+ },
+ "fast-deep-equal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
+ }
+ }
+ },
+ "accepts": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
+ "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
+ "dev": true,
+ "requires": {
+ "mime-types": "~2.1.18",
+ "negotiator": "0.6.1"
+ }
+ },
+ "acorn": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz",
+ "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==",
+ "dev": true
+ },
+ "acorn-dynamic-import": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz",
+ "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==",
+ "dev": true,
+ "requires": {
+ "acorn": "^5.0.0"
+ }
+ },
+ "acorn-jsx": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
+ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
+ "dev": true,
+ "requires": {
+ "acorn": "^3.0.4"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
+ "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
+ "dev": true
+ }
+ }
+ },
+ "address": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/address/-/address-1.0.3.tgz",
+ "integrity": "sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg==",
+ "dev": true
+ },
+ "ajv": {
+ "version": "5.5.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+ "dev": true,
+ "requires": {
+ "co": "^4.6.0",
+ "fast-deep-equal": "^1.0.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.3.0"
+ }
+ },
+ "ajv-errors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.0.tgz",
+ "integrity": "sha1-7PAh+hCP0X37Xms4Py3SM+Mf/Fk=",
+ "dev": true
+ },
+ "ajv-keywords": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz",
+ "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=",
+ "dev": true
+ },
+ "alphanum-sort": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
+ "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=",
+ "dev": true
+ },
+ "ansi-escapes": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
+ "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==",
+ "dev": true
+ },
+ "ansi-html": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz",
+ "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "anymatch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+ "dev": true,
+ "requires": {
+ "micromatch": "^3.1.4",
+ "normalize-path": "^2.1.1"
+ },
+ "dependencies": {
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "dev": true,
+ "requires": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ }
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dev": true,
+ "requires": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ }
+ }
+ }
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+ "dev": true
+ },
+ "arch": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz",
+ "integrity": "sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==",
+ "dev": true
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "arr-diff": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
+ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "^1.0.1"
+ }
+ },
+ "arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+ "dev": true
+ },
+ "arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
+ "dev": true
+ },
+ "array-filter": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz",
+ "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=",
+ "dev": true
+ },
+ "array-find-index": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+ "dev": true
+ },
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
+ "dev": true
+ },
+ "array-includes": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz",
+ "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.7.0"
+ }
+ },
+ "array-map": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz",
+ "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=",
+ "dev": true
+ },
+ "array-reduce": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz",
+ "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=",
+ "dev": true
+ },
+ "array-union": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+ "dev": true,
+ "requires": {
+ "array-uniq": "^1.0.1"
+ }
+ },
+ "array-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
+ "dev": true
+ },
+ "arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+ "dev": true
+ },
+ "asn1": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
+ "asn1.js": {
+ "version": "4.10.1",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
+ "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "assert": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
+ "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
+ "dev": true,
+ "requires": {
+ "util": "0.10.3"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+ "dev": true
+ },
+ "util": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.1"
+ }
+ }
+ }
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ },
+ "assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
+ "dev": true
+ },
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "dev": true
+ },
+ "async-each": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
+ "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
+ "dev": true
+ },
+ "async-limiter": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
+ "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==",
+ "dev": true
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+ "dev": true
+ },
+ "atob": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
+ "dev": true
+ },
+ "autoprefixer": {
+ "version": "8.6.5",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-8.6.5.tgz",
+ "integrity": "sha512-PLWJN3Xo/rycNkx+mp8iBDMTm3FeWe4VmYaZDSqL5QQB9sLsQkG5k8n+LNDFnhh9kdq2K+egL/icpctOmDHwig==",
+ "dev": true,
+ "requires": {
+ "browserslist": "^3.2.8",
+ "caniuse-lite": "^1.0.30000864",
+ "normalize-range": "^0.1.2",
+ "num2fraction": "^1.2.2",
+ "postcss": "^6.0.23",
+ "postcss-value-parser": "^3.2.3"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+ "dev": true
+ },
+ "aws4": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
+ "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
+ "dev": true
+ },
+ "axios": {
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz",
+ "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=",
+ "requires": {
+ "follow-redirects": "^1.3.0",
+ "is-buffer": "^1.1.5"
+ }
+ },
+ "babel-code-frame": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.2"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "babel-eslint": {
+ "version": "8.2.6",
+ "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-8.2.6.tgz",
+ "integrity": "sha512-aCdHjhzcILdP8c9lej7hvXKvQieyRt20SF102SIGyY4cUIiw6UaAtK4j2o3dXX74jEmy0TJ0CEhv4fTIM3SzcA==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "7.0.0-beta.44",
+ "@babel/traverse": "7.0.0-beta.44",
+ "@babel/types": "7.0.0-beta.44",
+ "babylon": "7.0.0-beta.44",
+ "eslint-scope": "3.7.1",
+ "eslint-visitor-keys": "^1.0.0"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.0.0-beta.44",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.44.tgz",
+ "integrity": "sha512-cuAuTTIQ9RqcFRJ/Y8PvTh+paepNcaGxwQwjIDRWPXmzzyAeCO4KqS9ikMvq0MCbRk6GlYKwfzStrcP3/jSL8g==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "7.0.0-beta.44"
+ }
+ },
+ "@babel/generator": {
+ "version": "7.0.0-beta.44",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.44.tgz",
+ "integrity": "sha512-5xVb7hlhjGcdkKpMXgicAVgx8syK5VJz193k0i/0sLP6DzE6lRrU1K3B/rFefgdo9LPGMAOOOAWW4jycj07ShQ==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.44",
+ "jsesc": "^2.5.1",
+ "lodash": "^4.2.0",
+ "source-map": "^0.5.0",
+ "trim-right": "^1.0.1"
+ }
+ },
+ "@babel/helper-function-name": {
+ "version": "7.0.0-beta.44",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.44.tgz",
+ "integrity": "sha512-MHRG2qZMKMFaBavX0LWpfZ2e+hLloT++N7rfM3DYOMUOGCD8cVjqZpwiL8a0bOX3IYcQev1ruciT0gdFFRTxzg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-get-function-arity": "7.0.0-beta.44",
+ "@babel/template": "7.0.0-beta.44",
+ "@babel/types": "7.0.0-beta.44"
+ }
+ },
+ "@babel/helper-get-function-arity": {
+ "version": "7.0.0-beta.44",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.44.tgz",
+ "integrity": "sha512-w0YjWVwrM2HwP6/H3sEgrSQdkCaxppqFeJtAnB23pRiJB5E/O9Yp7JAAeWBl+gGEgmBFinnTyOv2RN7rcSmMiw==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.44"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.0.0-beta.44",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz",
+ "integrity": "sha512-aQ7QowtkgKKzPGf0j6u77kBMdUFVBKNHw2p/3HX/POt5/oz8ec5cs0GwlgM8Hz7ui5EwJnzyfRmkNF1Nx1N7aA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.44"
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.0.0-beta.44",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.44.tgz",
+ "integrity": "sha512-Il19yJvy7vMFm8AVAh6OZzaFoAd0hbkeMZiX3P5HGD+z7dyI7RzndHB0dg6Urh/VAFfHtpOIzDUSxmY6coyZWQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.0",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.0"
+ }
+ },
+ "@babel/template": {
+ "version": "7.0.0-beta.44",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.44.tgz",
+ "integrity": "sha512-w750Sloq0UNifLx1rUqwfbnC6uSUk0mfwwgGRfdLiaUzfAOiH0tHJE6ILQIUi3KYkjiCDTskoIsnfqZvWLBDng==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "7.0.0-beta.44",
+ "@babel/types": "7.0.0-beta.44",
+ "babylon": "7.0.0-beta.44",
+ "lodash": "^4.2.0"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.0.0-beta.44",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.44.tgz",
+ "integrity": "sha512-UHuDz8ukQkJCDASKHf+oDt3FVUzFd+QYfuBIsiNu/4+/ix6pP/C+uQZJ6K1oEfbCMv/IKWbgDEh7fcsnIE5AtA==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "7.0.0-beta.44",
+ "@babel/generator": "7.0.0-beta.44",
+ "@babel/helper-function-name": "7.0.0-beta.44",
+ "@babel/helper-split-export-declaration": "7.0.0-beta.44",
+ "@babel/types": "7.0.0-beta.44",
+ "babylon": "7.0.0-beta.44",
+ "debug": "^3.1.0",
+ "globals": "^11.1.0",
+ "invariant": "^2.2.0",
+ "lodash": "^4.2.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.0.0-beta.44",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.44.tgz",
+ "integrity": "sha512-5eTV4WRmqbaFM3v9gHAIljEQJU4Ssc6fxL61JN+Oe2ga/BwyjzjamwkCVVAQjHGuAX8i0BWo42dshL8eO5KfLQ==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2",
+ "lodash": "^4.2.0",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "babylon": {
+ "version": "7.0.0-beta.44",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz",
+ "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==",
+ "dev": true
+ }
+ }
+ },
+ "babel-helper-vue-jsx-merge-props": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz",
+ "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==",
+ "dev": true
+ },
+ "babel-loader": {
+ "version": "8.0.0-beta.4",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.0-beta.4.tgz",
+ "integrity": "sha512-fQMCj8jRpF/2CPuVnpFrOb8+8pRuquKqoC+tspy5RWBmL37/2qc104sLLLqpwWltrFzpYb30utPpKc3H6P3ETQ==",
+ "dev": true,
+ "requires": {
+ "find-cache-dir": "^1.0.0",
+ "loader-utils": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "util.promisify": "^1.0.0"
+ }
+ },
+ "babel-plugin-dynamic-import-node": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.0.0.tgz",
+ "integrity": "sha512-meifxRxzzoT4j2+mYFYnlOZRuZOQVHis9DFv1GpYkufLMHL0W2n3z/Re7bjNN9rftcWonvGWgInRDsHiayqFXg==",
+ "dev": true,
+ "requires": {
+ "babel-plugin-syntax-dynamic-import": "^6.18.0",
+ "object.assign": "^4.1.0"
+ }
+ },
+ "babel-plugin-syntax-dynamic-import": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz",
+ "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=",
+ "dev": true
+ },
+ "babel-plugin-transform-vue-jsx": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-4.0.1.tgz",
+ "integrity": "sha512-wbOz7ITB5cloLSjKUU1hWn8zhR+Dwah/RZiTiJY/CQliCwhowmzu6m7NEF+y5EJX/blDzGjRtZvC10Vdb3Q7vw==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "babylon": {
+ "version": "7.0.0-beta.47",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.47.tgz",
+ "integrity": "sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ==",
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "dev": true,
+ "requires": {
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ }
+ }
+ },
+ "base-href-webpack-plugin": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/base-href-webpack-plugin/-/base-href-webpack-plugin-2.0.0.tgz",
+ "integrity": "sha512-e/EJg7MZrKvc5MzaGN+kvGOvq0xOetGvvMYcplAkz2VQZcSQmo4IpRiuhcHpH0AQsxMyNYyNtOixQvuqr+2sFA==",
+ "dev": true
+ },
+ "base64-js": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
+ "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==",
+ "dev": true
+ },
+ "batch": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
+ "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=",
+ "dev": true
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "bfj-node4": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/bfj-node4/-/bfj-node4-5.3.1.tgz",
+ "integrity": "sha512-SOmOsowQWfXc7ybFARsK3C4MCOWzERaOMV/Fl3Tgjs+5dJWyzo3oa127jL44eMbQiAN17J7SvAs2TRxEScTUmg==",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.5.1",
+ "check-types": "^7.3.0",
+ "tryer": "^1.0.0"
+ }
+ },
+ "big.js": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
+ "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
+ "dev": true
+ },
+ "binary-extensions": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz",
+ "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=",
+ "dev": true
+ },
+ "bluebird": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
+ "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==",
+ "dev": true
+ },
+ "bn.js": {
+ "version": "4.11.8",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+ "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+ "dev": true
+ },
+ "body-parser": {
+ "version": "1.18.2",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
+ "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
+ "dev": true,
+ "requires": {
+ "bytes": "3.0.0",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "~1.1.1",
+ "http-errors": "~1.6.2",
+ "iconv-lite": "0.4.19",
+ "on-finished": "~2.3.0",
+ "qs": "6.5.1",
+ "raw-body": "2.3.2",
+ "type-is": "~1.6.15"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.19",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
+ "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
+ "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
+ "dev": true
+ }
+ }
+ },
+ "bonjour": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz",
+ "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=",
+ "dev": true,
+ "requires": {
+ "array-flatten": "^2.1.0",
+ "deep-equal": "^1.0.1",
+ "dns-equal": "^1.0.0",
+ "dns-txt": "^2.0.2",
+ "multicast-dns": "^6.0.1",
+ "multicast-dns-service-types": "^1.1.0"
+ },
+ "dependencies": {
+ "array-flatten": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz",
+ "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=",
+ "dev": true
+ }
+ }
+ },
+ "boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
+ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+ "dev": true,
+ "requires": {
+ "expand-range": "^1.8.1",
+ "preserve": "^0.2.0",
+ "repeat-element": "^1.1.2"
+ }
+ },
+ "brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
+ "dev": true
+ },
+ "browserify-aes": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+ "dev": true,
+ "requires": {
+ "buffer-xor": "^1.0.3",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.3",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "browserify-cipher": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
+ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
+ "dev": true,
+ "requires": {
+ "browserify-aes": "^1.0.4",
+ "browserify-des": "^1.0.0",
+ "evp_bytestokey": "^1.0.0"
+ }
+ },
+ "browserify-des": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
+ "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
+ "dev": true,
+ "requires": {
+ "cipher-base": "^1.0.1",
+ "des.js": "^1.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "browserify-rsa": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
+ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "randombytes": "^2.0.1"
+ }
+ },
+ "browserify-sign": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
+ "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.1",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.2",
+ "elliptic": "^6.0.0",
+ "inherits": "^2.0.1",
+ "parse-asn1": "^5.0.0"
+ }
+ },
+ "browserify-zlib": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
+ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
+ "dev": true,
+ "requires": {
+ "pako": "~1.0.5"
+ }
+ },
+ "browserslist": {
+ "version": "3.2.8",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz",
+ "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30000844",
+ "electron-to-chromium": "^1.3.47"
+ }
+ },
+ "buffer": {
+ "version": "4.9.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
+ "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4",
+ "isarray": "^1.0.0"
+ }
+ },
+ "buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
+ "dev": true
+ },
+ "buffer-indexof": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz",
+ "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==",
+ "dev": true
+ },
+ "buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
+ "dev": true
+ },
+ "builtin-modules": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+ "dev": true
+ },
+ "builtin-status-codes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
+ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
+ "dev": true
+ },
+ "bytes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
+ "dev": true
+ },
+ "cacache": {
+ "version": "10.0.4",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz",
+ "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.5.1",
+ "chownr": "^1.0.1",
+ "glob": "^7.1.2",
+ "graceful-fs": "^4.1.11",
+ "lru-cache": "^4.1.1",
+ "mississippi": "^2.0.0",
+ "mkdirp": "^0.5.1",
+ "move-concurrently": "^1.0.1",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^2.6.2",
+ "ssri": "^5.2.4",
+ "unique-filename": "^1.1.0",
+ "y18n": "^4.0.0"
+ },
+ "dependencies": {
+ "ssri": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz",
+ "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.1.1"
+ }
+ }
+ }
+ },
+ "cache-base": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "dev": true,
+ "requires": {
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ }
+ }
+ },
+ "cache-loader": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/cache-loader/-/cache-loader-1.2.2.tgz",
+ "integrity": "sha512-rsGh4SIYyB9glU+d0OcHwiXHXBoUgDhHZaQ1KAbiXqfz1CDPxtTboh1gPbJ0q2qdO8a9lfcjgC5CJ2Ms32y5bw==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "^1.1.0",
+ "mkdirp": "^0.5.1",
+ "neo-async": "^2.5.0",
+ "schema-utils": "^0.4.2"
+ }
+ },
+ "call-me-maybe": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz",
+ "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=",
+ "dev": true
+ },
+ "caller-path": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
+ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=",
+ "dev": true,
+ "requires": {
+ "callsites": "^0.2.0"
+ }
+ },
+ "callsites": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz",
+ "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=",
+ "dev": true
+ },
+ "camel-case": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
+ "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=",
+ "dev": true,
+ "requires": {
+ "no-case": "^2.2.0",
+ "upper-case": "^1.1.1"
+ }
+ },
+ "camelcase": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+ "dev": true
+ },
+ "camelcase-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^2.0.0",
+ "map-obj": "^1.0.0"
+ }
+ },
+ "caniuse-api": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
+ "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.0.0",
+ "caniuse-lite": "^1.0.0",
+ "lodash.memoize": "^4.1.2",
+ "lodash.uniq": "^4.5.0"
+ },
+ "dependencies": {
+ "browserslist": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.0.2.tgz",
+ "integrity": "sha512-lpujC4zv1trcKUUwfD4pFVNga4YSpB3sLB+/I+A8gvGQxno1c0dMB2aCQy0FE5oUNIDjD9puFiFF0zeS6Ji48w==",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30000876",
+ "electron-to-chromium": "^1.3.57",
+ "node-releases": "^1.0.0-alpha.11"
+ }
+ }
+ }
+ },
+ "caniuse-lite": {
+ "version": "1.0.30000877",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000877.tgz",
+ "integrity": "sha512-h04kV/lcuhItU1CZTJOxUEk/9R+1XeJqgc67E+XC8J9TjPM8kzVgOn27ZtRdDUo8O5F8U4QRCzDWJrVym3w3Cg==",
+ "dev": true
+ },
+ "case-sensitive-paths-webpack-plugin": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.2.tgz",
+ "integrity": "sha512-oEZgAFfEvKtjSRCu6VgYkuGxwrWXMnQzyBmlLPP7r6PWQVtHxP5Z5N6XsuJvtoVax78am/r7lr46bwo3IVEBOg==",
+ "dev": true
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
+ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "chardet": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
+ "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
+ "dev": true
+ },
+ "check-types": {
+ "version": "7.4.0",
+ "resolved": "https://registry.npmjs.org/check-types/-/check-types-7.4.0.tgz",
+ "integrity": "sha512-YbulWHdfP99UfZ73NcUDlNJhEIDgm9Doq9GhpyXbF+7Aegi3CVV7qqMCKTTqJxlvEvnQBp9IA+dxsGN6xK/nSg==",
+ "dev": true
+ },
+ "chokidar": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz",
+ "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==",
+ "dev": true,
+ "requires": {
+ "anymatch": "^2.0.0",
+ "async-each": "^1.0.0",
+ "braces": "^2.3.0",
+ "fsevents": "^1.2.2",
+ "glob-parent": "^3.1.0",
+ "inherits": "^2.0.1",
+ "is-binary-path": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "lodash.debounce": "^4.0.8",
+ "normalize-path": "^2.1.1",
+ "path-is-absolute": "^1.0.0",
+ "readdirp": "^2.0.0",
+ "upath": "^1.0.5"
+ },
+ "dependencies": {
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ }
+ },
+ "glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "dev": true,
+ "requires": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ },
+ "dependencies": {
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.0"
+ }
+ }
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
+ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ }
+ }
+ },
+ "chownr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz",
+ "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=",
+ "dev": true
+ },
+ "chrome-trace-event": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz",
+ "integrity": "sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.9.0"
+ }
+ },
+ "ci-info": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.4.0.tgz",
+ "integrity": "sha512-Oqmw2pVfCl8sCL+1QgMywPfdxPJPkC51y4usw0iiE2S9qnEOAqXy8bwl1CpMpnoU39g4iKJTz6QZj+28FvOnjQ==",
+ "dev": true
+ },
+ "cipher-base": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "circular-json": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
+ "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==",
+ "dev": true
+ },
+ "class-utils": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "dev": true,
+ "requires": {
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ }
+ }
+ },
+ "clean-css": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.11.tgz",
+ "integrity": "sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=",
+ "dev": true,
+ "requires": {
+ "source-map": "0.5.x"
+ }
+ },
+ "cli-cursor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "^2.0.0"
+ }
+ },
+ "cli-spinners": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz",
+ "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==",
+ "dev": true
+ },
+ "cli-width": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
+ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
+ "dev": true
+ },
+ "clipboardy": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-1.2.3.tgz",
+ "integrity": "sha512-2WNImOvCRe6r63Gk9pShfkwXsVtKCroMAevIbiae021mS850UkWPbevxsBz3tnvjZIEGvlwaqCPsw+4ulzNgJA==",
+ "dev": true,
+ "requires": {
+ "arch": "^2.1.0",
+ "execa": "^0.8.0"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "execa": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz",
+ "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ }
+ }
+ }
+ },
+ "cliui": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
+ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
+ "dev": true,
+ "requires": {
+ "string-width": "^2.1.1",
+ "strip-ansi": "^4.0.0",
+ "wrap-ansi": "^2.0.0"
+ }
+ },
+ "clone": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+ "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
+ "dev": true
+ },
+ "co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
+ "dev": true
+ },
+ "coa": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.1.tgz",
+ "integrity": "sha512-5wfTTO8E2/ja4jFSxePXlG5nRu5bBtL/r1HCIpJW/lzT6yDtKl0u0Z4o/Vpz32IpKmBn7HerheEZQgA9N2DarQ==",
+ "dev": true,
+ "requires": {
+ "q": "^1.1.2"
+ }
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+ "dev": true
+ },
+ "collection-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+ "dev": true,
+ "requires": {
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
+ }
+ },
+ "color": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz",
+ "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.1",
+ "color-string": "^1.5.2"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz",
+ "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.1"
+ }
+ },
+ "color-name": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz",
+ "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=",
+ "dev": true
+ },
+ "color-string": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz",
+ "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==",
+ "dev": true,
+ "requires": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
+ "colors": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
+ "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
+ "dev": true
+ },
+ "combined-stream": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
+ "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
+ "dev": true,
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "commander": {
+ "version": "2.13.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz",
+ "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA=="
+ },
+ "commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
+ "dev": true
+ },
+ "component-emitter": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+ "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
+ "dev": true
+ },
+ "compressible": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.14.tgz",
+ "integrity": "sha1-MmxfUH+7BV9UEWeCuWmoG2einac=",
+ "dev": true,
+ "requires": {
+ "mime-db": ">= 1.34.0 < 2"
+ }
+ },
+ "compression": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz",
+ "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==",
+ "dev": true,
+ "requires": {
+ "accepts": "~1.3.5",
+ "bytes": "3.0.0",
+ "compressible": "~2.0.14",
+ "debug": "2.6.9",
+ "on-headers": "~1.0.1",
+ "safe-buffer": "5.1.2",
+ "vary": "~1.1.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "connect-history-api-fallback": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz",
+ "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=",
+ "dev": true
+ },
+ "console-browserify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
+ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
+ "dev": true,
+ "requires": {
+ "date-now": "^0.1.4"
+ }
+ },
+ "consolidate": {
+ "version": "0.15.1",
+ "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz",
+ "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.1.1"
+ }
+ },
+ "constants-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
+ "dev": true
+ },
+ "content-disposition": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
+ "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=",
+ "dev": true
+ },
+ "content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
+ "dev": true
+ },
+ "convert-source-map": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz",
+ "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=",
+ "dev": true
+ },
+ "cookie": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
+ "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
+ "dev": true
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
+ "dev": true
+ },
+ "copy-concurrently": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
+ "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
+ "dev": true,
+ "requires": {
+ "aproba": "^1.1.1",
+ "fs-write-stream-atomic": "^1.0.8",
+ "iferr": "^0.1.5",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.4",
+ "run-queue": "^1.0.0"
+ }
+ },
+ "copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+ "dev": true
+ },
+ "copy-webpack-plugin": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.5.2.tgz",
+ "integrity": "sha512-zmC33E8FFSq3AbflTvqvPvBo621H36Afsxlui91d+QyZxPIuXghfnTsa1CuqiAaCPgJoSUWfTFbKJnadZpKEbQ==",
+ "dev": true,
+ "requires": {
+ "cacache": "^10.0.4",
+ "find-cache-dir": "^1.0.0",
+ "globby": "^7.1.1",
+ "is-glob": "^4.0.0",
+ "loader-utils": "^1.1.0",
+ "minimatch": "^3.0.4",
+ "p-limit": "^1.0.0",
+ "serialize-javascript": "^1.4.0"
+ },
+ "dependencies": {
+ "globby": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz",
+ "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
+ "dev": true,
+ "requires": {
+ "array-union": "^1.0.1",
+ "dir-glob": "^2.0.0",
+ "glob": "^7.1.2",
+ "ignore": "^3.3.5",
+ "pify": "^3.0.0",
+ "slash": "^1.0.0"
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
+ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "slash": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+ "dev": true
+ }
+ }
+ },
+ "core-js": {
+ "version": "2.5.7",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz",
+ "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==",
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "dev": true
+ },
+ "cosmiconfig": {
+ "version": "5.0.6",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.6.tgz",
+ "integrity": "sha512-6DWfizHriCrFWURP1/qyhsiFvYdlJzbCzmtFWh744+KyWsJo5+kPzUZZaMRSSItoYc0pxFX7gEO7ZC1/gN/7AQ==",
+ "dev": true,
+ "requires": {
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.9.0",
+ "parse-json": "^4.0.0"
+ }
+ },
+ "create-ecdh": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
+ "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "elliptic": "^6.0.0"
+ }
+ },
+ "create-hash": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+ "dev": true,
+ "requires": {
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "md5.js": "^1.3.4",
+ "ripemd160": "^2.0.1",
+ "sha.js": "^2.4.0"
+ }
+ },
+ "create-hmac": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+ "dev": true,
+ "requires": {
+ "cipher-base": "^1.0.3",
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1",
+ "ripemd160": "^2.0.0",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dev": true,
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "crypto-browserify": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
+ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
+ "dev": true,
+ "requires": {
+ "browserify-cipher": "^1.0.0",
+ "browserify-sign": "^4.0.0",
+ "create-ecdh": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.0",
+ "diffie-hellman": "^5.0.0",
+ "inherits": "^2.0.1",
+ "pbkdf2": "^3.0.3",
+ "public-encrypt": "^4.0.0",
+ "randombytes": "^2.0.0",
+ "randomfill": "^1.0.3"
+ }
+ },
+ "css-color-names": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
+ "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
+ "dev": true
+ },
+ "css-declaration-sorter": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-3.0.1.tgz",
+ "integrity": "sha512-jH4024SHZ3e0M7ann9VxpFpH3moplRXNz9ZBqvFMZqi09Yo5ARbs2wdPH8GqN9iRTlQynrbGbraNbBxBLei85Q==",
+ "dev": true,
+ "requires": {
+ "postcss": "^6.0.0",
+ "timsort": "^0.3.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "css-loader": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.0.tgz",
+ "integrity": "sha512-tMXlTYf3mIMt3b0dDCOQFJiVvxbocJ5Ho577WiGPYPZcqVEO218L2iU22pDXzkTZCLDE+9AmGSUkWxeh/nZReA==",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "^6.26.0",
+ "css-selector-tokenizer": "^0.7.0",
+ "icss-utils": "^2.1.0",
+ "loader-utils": "^1.0.2",
+ "lodash.camelcase": "^4.3.0",
+ "postcss": "^6.0.23",
+ "postcss-modules-extract-imports": "^1.2.0",
+ "postcss-modules-local-by-default": "^1.2.0",
+ "postcss-modules-scope": "^1.1.0",
+ "postcss-modules-values": "^1.3.0",
+ "postcss-value-parser": "^3.3.0",
+ "source-list-map": "^2.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "css-select": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
+ "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+ "dev": true,
+ "requires": {
+ "boolbase": "~1.0.0",
+ "css-what": "2.1",
+ "domutils": "1.5.1",
+ "nth-check": "~1.0.1"
+ }
+ },
+ "css-select-base-adapter": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.0.tgz",
+ "integrity": "sha1-AQKz0UYw34bD65+p9UVicBBs+ZA=",
+ "dev": true
+ },
+ "css-selector-tokenizer": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz",
+ "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=",
+ "dev": true,
+ "requires": {
+ "cssesc": "^0.1.0",
+ "fastparse": "^1.1.1",
+ "regexpu-core": "^1.0.0"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ },
+ "regexpu-core": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
+ "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
+ "dev": true,
+ "requires": {
+ "regenerate": "^1.2.1",
+ "regjsgen": "^0.2.0",
+ "regjsparser": "^0.1.4"
+ }
+ },
+ "regjsgen": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
+ "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
+ "dev": true
+ },
+ "regjsparser": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
+ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+ "dev": true,
+ "requires": {
+ "jsesc": "~0.5.0"
+ }
+ }
+ }
+ },
+ "css-tree": {
+ "version": "1.0.0-alpha25",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha25.tgz",
+ "integrity": "sha512-XC6xLW/JqIGirnZuUWHXCHRaAjje2b3OIB0Vj5RIJo6mIi/AdJo30quQl5LxUl0gkXDIrTrFGbMlcZjyFplz1A==",
+ "dev": true,
+ "requires": {
+ "mdn-data": "^1.0.0",
+ "source-map": "^0.5.3"
+ }
+ },
+ "css-unit-converter": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz",
+ "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=",
+ "dev": true
+ },
+ "css-url-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/css-url-regex/-/css-url-regex-1.1.0.tgz",
+ "integrity": "sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w=",
+ "dev": true
+ },
+ "css-what": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz",
+ "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=",
+ "dev": true
+ },
+ "cssesc": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz",
+ "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=",
+ "dev": true
+ },
+ "cssnano": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.0.5.tgz",
+ "integrity": "sha512-P2O0sz/YAAzqZVsSWOrbliPCr0c6abwVNQmFZ48AgejN/GbzwEf6IVFGQAj0UKHC+crv60wUAPQocAnDmeWlkg==",
+ "dev": true,
+ "requires": {
+ "cosmiconfig": "^5.0.0",
+ "cssnano-preset-default": "^4.0.0",
+ "is-resolvable": "^1.0.0",
+ "postcss": "^6.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "cssnano-preset-default": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.0.tgz",
+ "integrity": "sha1-wzQoe099SfstFwqS+SFGVXiOO2s=",
+ "dev": true,
+ "requires": {
+ "css-declaration-sorter": "^3.0.0",
+ "cssnano-util-raw-cache": "^4.0.0",
+ "postcss": "^6.0.0",
+ "postcss-calc": "^6.0.0",
+ "postcss-colormin": "^4.0.0",
+ "postcss-convert-values": "^4.0.0",
+ "postcss-discard-comments": "^4.0.0",
+ "postcss-discard-duplicates": "^4.0.0",
+ "postcss-discard-empty": "^4.0.0",
+ "postcss-discard-overridden": "^4.0.0",
+ "postcss-merge-longhand": "^4.0.0",
+ "postcss-merge-rules": "^4.0.0",
+ "postcss-minify-font-values": "^4.0.0",
+ "postcss-minify-gradients": "^4.0.0",
+ "postcss-minify-params": "^4.0.0",
+ "postcss-minify-selectors": "^4.0.0",
+ "postcss-normalize-charset": "^4.0.0",
+ "postcss-normalize-display-values": "^4.0.0",
+ "postcss-normalize-positions": "^4.0.0",
+ "postcss-normalize-repeat-style": "^4.0.0",
+ "postcss-normalize-string": "^4.0.0",
+ "postcss-normalize-timing-functions": "^4.0.0",
+ "postcss-normalize-unicode": "^4.0.0",
+ "postcss-normalize-url": "^4.0.0",
+ "postcss-normalize-whitespace": "^4.0.0",
+ "postcss-ordered-values": "^4.0.0",
+ "postcss-reduce-initial": "^4.0.0",
+ "postcss-reduce-transforms": "^4.0.0",
+ "postcss-svgo": "^4.0.0",
+ "postcss-unique-selectors": "^4.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "cssnano-util-get-arguments": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz",
+ "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=",
+ "dev": true
+ },
+ "cssnano-util-get-match": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz",
+ "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=",
+ "dev": true
+ },
+ "cssnano-util-raw-cache": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.0.tgz",
+ "integrity": "sha1-vgooVuJfGF9feivMBiTii38Xmp8=",
+ "dev": true,
+ "requires": {
+ "postcss": "^6.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "cssnano-util-same-parent": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.0.tgz",
+ "integrity": "sha1-0qPeEDmqmLxOwlAB+gUDMMKhbaw=",
+ "dev": true
+ },
+ "csso": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/csso/-/csso-3.5.1.tgz",
+ "integrity": "sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==",
+ "dev": true,
+ "requires": {
+ "css-tree": "1.0.0-alpha.29"
+ },
+ "dependencies": {
+ "css-tree": {
+ "version": "1.0.0-alpha.29",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz",
+ "integrity": "sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==",
+ "dev": true,
+ "requires": {
+ "mdn-data": "~1.1.0",
+ "source-map": "^0.5.3"
+ }
+ }
+ }
+ },
+ "currently-unhandled": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+ "dev": true,
+ "requires": {
+ "array-find-index": "^1.0.1"
+ }
+ },
+ "cyclist": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz",
+ "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=",
+ "dev": true
+ },
+ "d": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
+ "dev": true,
+ "requires": {
+ "es5-ext": "^0.10.9"
+ }
+ },
+ "d3": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/d3/-/d3-5.6.0.tgz",
+ "integrity": "sha512-+Wnm5K+gBPF5kOJ+zf+yyIWMHw64jKXEo3AjZZMpqlHHgrrnlOkPZIfoBi9Yt3D1lvY1b8V7Dat7NbDt7gLnqw==",
+ "requires": {
+ "d3-array": "1",
+ "d3-axis": "1",
+ "d3-brush": "1",
+ "d3-chord": "1",
+ "d3-collection": "1",
+ "d3-color": "1",
+ "d3-contour": "1",
+ "d3-dispatch": "1",
+ "d3-drag": "1",
+ "d3-dsv": "1",
+ "d3-ease": "1",
+ "d3-fetch": "1",
+ "d3-force": "1",
+ "d3-format": "1",
+ "d3-geo": "1",
+ "d3-hierarchy": "1",
+ "d3-interpolate": "1",
+ "d3-path": "1",
+ "d3-polygon": "1",
+ "d3-quadtree": "1",
+ "d3-random": "1",
+ "d3-scale": "2",
+ "d3-scale-chromatic": "1",
+ "d3-selection": "1",
+ "d3-shape": "1",
+ "d3-time": "1",
+ "d3-time-format": "2",
+ "d3-timer": "1",
+ "d3-transition": "1",
+ "d3-voronoi": "1",
+ "d3-zoom": "1"
+ }
+ },
+ "d3-array": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.1.tgz",
+ "integrity": "sha512-CyINJQ0SOUHojDdFDH4JEM0552vCR1utGyLHegJHyYH0JyCpSeTPxi4OBqHMA2jJZq4NH782LtaJWBImqI/HBw=="
+ },
+ "d3-axis": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.9.tgz",
+ "integrity": "sha512-bmpzuuHtRVgjWr1OiZjiyX+2dSm9ks0CZtKt6yz9UHGdIcLLHpuY4f7A/IHC6AIjrfRNzerWYQSUK1ygIFmzzg=="
+ },
+ "d3-brush": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.0.4.tgz",
+ "integrity": "sha1-AMLyOAGfJPbAoZSibUGhUw/+e8Q=",
+ "requires": {
+ "d3-dispatch": "1",
+ "d3-drag": "1",
+ "d3-interpolate": "1",
+ "d3-selection": "1",
+ "d3-transition": "1"
+ }
+ },
+ "d3-chord": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.4.tgz",
+ "integrity": "sha1-fexPC6iG9xP+ERxF92NBT290yiw=",
+ "requires": {
+ "d3-array": "1",
+ "d3-path": "1"
+ }
+ },
+ "d3-collection": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.4.tgz",
+ "integrity": "sha1-NC39EoN8kJdPM/HMCnha6lcNzcI="
+ },
+ "d3-color": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.2.0.tgz",
+ "integrity": "sha512-dmL9Zr/v39aSSMnLOTd58in2RbregCg4UtGyUArvEKTTN6S3HKEy+ziBWVYo9PTzRyVW+pUBHUtRKz0HYX+SQg=="
+ },
+ "d3-contour": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.0.tgz",
+ "integrity": "sha512-6zccxidQRtcydx0lWqHawdW1UcBzKZTxv0cW90Dlx98pY/L7GjQJmftH1tWopYFDaLCoXU0ECg9x/z2EuFT8tg==",
+ "requires": {
+ "d3-array": "^1.1.1"
+ }
+ },
+ "d3-dispatch": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.3.tgz",
+ "integrity": "sha1-RuFJHqqbWMNY/OW+TovtYm54cfg="
+ },
+ "d3-drag": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.1.tgz",
+ "integrity": "sha512-Cg8/K2rTtzxzrb0fmnYOUeZHvwa4PHzwXOLZZPwtEs2SKLLKLXeYwZKBB+DlOxUvFmarOnmt//cU4+3US2lyyQ==",
+ "requires": {
+ "d3-dispatch": "1",
+ "d3-selection": "1"
+ }
+ },
+ "d3-dsv": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.0.8.tgz",
+ "integrity": "sha512-IVCJpQ+YGe3qu6odkPQI0KPqfxkhbP/oM1XhhE/DFiYmcXKfCRub4KXyiuehV1d4drjWVXHUWx4gHqhdZb6n/A==",
+ "requires": {
+ "commander": "2",
+ "iconv-lite": "0.4",
+ "rw": "1"
+ }
+ },
+ "d3-ease": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.3.tgz",
+ "integrity": "sha1-aL+8NJM4o4DETYrMT7wzBKotjA4="
+ },
+ "d3-fetch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.1.0.tgz",
+ "integrity": "sha512-j+V4vtT6dceQbcKYLtpTueB8Zvc+wb9I93WaFtEQIYNADXl0c1ZJMN3qQo0CssiTsAqK8pePwc7f4qiW+b0WOg==",
+ "requires": {
+ "d3-dsv": "1"
+ }
+ },
+ "d3-force": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.1.0.tgz",
+ "integrity": "sha512-2HVQz3/VCQs0QeRNZTYb7GxoUCeb6bOzMp/cGcLa87awY9ZsPvXOGeZm0iaGBjXic6I1ysKwMn+g+5jSAdzwcg==",
+ "requires": {
+ "d3-collection": "1",
+ "d3-dispatch": "1",
+ "d3-quadtree": "1",
+ "d3-timer": "1"
+ }
+ },
+ "d3-format": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.3.0.tgz",
+ "integrity": "sha512-ycfLEIzHVZC3rOvuBOKVyQXSiUyCDjeAPIj9n/wugrr+s5AcTQC2Bz6aKkubG7rQaQF0SGW/OV4UEJB9nfioFg=="
+ },
+ "d3-geo": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.10.0.tgz",
+ "integrity": "sha512-VK/buVGgexthTTqGRNXQ/LSo3EbOFu4p2Pjud5drSIaEnOaF2moc8A3P7WEljEO1JEBEwbpAJjFWMuJiUtoBcw==",
+ "requires": {
+ "d3-array": "1"
+ }
+ },
+ "d3-hierarchy": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.6.tgz",
+ "integrity": "sha512-nn4bhBnwWnMSoZgkBXD7vRyZ0xVUsNMQRKytWYHhP1I4qHw+qzApCTgSQTZqMdf4XXZbTMqA59hFusga+THA/g=="
+ },
+ "d3-interpolate": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.2.0.tgz",
+ "integrity": "sha512-zLvTk8CREPFfc/2XglPQriAsXkzoRDAyBzndtKJWrZmHw7kmOWHNS11e40kPTd/oGk8P5mFJW5uBbcFQ+ybxyA==",
+ "requires": {
+ "d3-color": "1"
+ }
+ },
+ "d3-path": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.5.tgz",
+ "integrity": "sha1-JB6xhJvZ6egCHA0KeZ+KDo5EF2Q="
+ },
+ "d3-polygon": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.3.tgz",
+ "integrity": "sha1-FoiOkCZGCTPysXllKtN4Ik04LGI="
+ },
+ "d3-quadtree": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.3.tgz",
+ "integrity": "sha1-rHmH4+I/6AWpkPKOG1DTj8uCJDg="
+ },
+ "d3-random": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.0.tgz",
+ "integrity": "sha1-ZkLlBsb6OmSFldKyRpeIqNElKdM="
+ },
+ "d3-scale": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.1.0.tgz",
+ "integrity": "sha512-Bb2N3ZgzPdKVEoWGkt8lPV6R7YdpSBWI70Xf26NQHOVjs77a6gLUmBOOPt9d9nB8JiQhwXY1RHCa+eSyWCJZIQ==",
+ "requires": {
+ "d3-array": "^1.2.0",
+ "d3-collection": "1",
+ "d3-format": "1",
+ "d3-interpolate": "1",
+ "d3-time": "1",
+ "d3-time-format": "2"
+ }
+ },
+ "d3-scale-chromatic": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.3.0.tgz",
+ "integrity": "sha512-YwMbiaW2bStWvQFByK8hA6hk7ToWflspIo2TRukCqERd8isiafEMBXmwfh8c7/0Z94mVvIzIveRLVC6RAjhgeA==",
+ "requires": {
+ "d3-color": "1",
+ "d3-interpolate": "1"
+ }
+ },
+ "d3-selection": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.3.0.tgz",
+ "integrity": "sha512-qgpUOg9tl5CirdqESUAu0t9MU/t3O9klYfGfyKsXEmhyxyzLpzpeh08gaxBUTQw1uXIOkr/30Ut2YRjSSxlmHA=="
+ },
+ "d3-shape": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.2.0.tgz",
+ "integrity": "sha1-RdAVOPBkuv0F6j1tLLdI/YxB93c=",
+ "requires": {
+ "d3-path": "1"
+ }
+ },
+ "d3-time": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.0.8.tgz",
+ "integrity": "sha512-YRZkNhphZh3KcnBfitvF3c6E0JOFGikHZ4YqD+Lzv83ZHn1/u6yGenRU1m+KAk9J1GnZMnKcrtfvSktlA1DXNQ=="
+ },
+ "d3-time-format": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.1.1.tgz",
+ "integrity": "sha512-8kAkymq2WMfzW7e+s/IUNAtN/y3gZXGRrdGfo6R8NKPAA85UBTxZg5E61bR6nLwjPjj4d3zywSQe1CkYLPFyrw==",
+ "requires": {
+ "d3-time": "1"
+ }
+ },
+ "d3-timer": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.7.tgz",
+ "integrity": "sha512-vMZXR88XujmG/L5oB96NNKH5lCWwiLM/S2HyyAQLcjWJCloK5shxta4CwOFYLZoY3AWX73v8Lgv4cCAdWtRmOA=="
+ },
+ "d3-transition": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.1.1.tgz",
+ "integrity": "sha512-xeg8oggyQ+y5eb4J13iDgKIjUcEfIOZs2BqV/eEmXm2twx80wTzJ4tB4vaZ5BKfz7XsI/DFmQL5me6O27/5ykQ==",
+ "requires": {
+ "d3-color": "1",
+ "d3-dispatch": "1",
+ "d3-ease": "1",
+ "d3-interpolate": "1",
+ "d3-selection": "^1.1.0",
+ "d3-timer": "1"
+ }
+ },
+ "d3-voronoi": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.2.tgz",
+ "integrity": "sha1-Fodmfo8TotFYyAwUgMWinLDYlzw="
+ },
+ "d3-zoom": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.7.1.tgz",
+ "integrity": "sha512-sZHQ55DGq5BZBFGnRshUT8tm2sfhPHFnOlmPbbwTkAoPeVdRTkB4Xsf9GCY0TSHrTD8PeJPZGmP/TpGicwJDJQ==",
+ "requires": {
+ "d3-dispatch": "1",
+ "d3-drag": "1",
+ "d3-interpolate": "1",
+ "d3-selection": "1",
+ "d3-transition": "1"
+ }
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "date-now": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
+ "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
+ "dev": true
+ },
+ "de-indent": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
+ "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=",
+ "dev": true
+ },
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true
+ },
+ "decode-uri-component": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+ "dev": true
+ },
+ "deep-equal": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
+ "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=",
+ "dev": true
+ },
+ "deep-is": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
+ "dev": true
+ },
+ "deepmerge": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz",
+ "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==",
+ "dev": true
+ },
+ "defaults": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
+ "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
+ "dev": true,
+ "requires": {
+ "clone": "^1.0.2"
+ }
+ },
+ "define-properties": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
+ "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=",
+ "dev": true,
+ "requires": {
+ "foreach": "^2.0.5",
+ "object-keys": "^1.0.8"
+ }
+ },
+ "define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "dependencies": {
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ }
+ }
+ },
+ "del": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
+ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
+ "dev": true,
+ "requires": {
+ "globby": "^5.0.0",
+ "is-path-cwd": "^1.0.0",
+ "is-path-in-cwd": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "rimraf": "^2.2.8"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ }
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "dev": true
+ },
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
+ "dev": true
+ },
+ "des.js": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
+ "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
+ "dev": true
+ },
+ "detect-node": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz",
+ "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=",
+ "dev": true
+ },
+ "diffie-hellman": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
+ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "miller-rabin": "^4.0.0",
+ "randombytes": "^2.0.0"
+ }
+ },
+ "dir-glob": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz",
+ "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==",
+ "dev": true,
+ "requires": {
+ "arrify": "^1.0.1",
+ "path-type": "^3.0.0"
+ }
+ },
+ "dns-equal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
+ "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=",
+ "dev": true
+ },
+ "dns-packet": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz",
+ "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==",
+ "dev": true,
+ "requires": {
+ "ip": "^1.1.0",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "dns-txt": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz",
+ "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=",
+ "dev": true,
+ "requires": {
+ "buffer-indexof": "^1.0.0"
+ }
+ },
+ "doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "dom-converter": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.1.4.tgz",
+ "integrity": "sha1-pF71cnuJDJv/5tfIduexnLDhfzs=",
+ "dev": true,
+ "requires": {
+ "utila": "~0.3"
+ },
+ "dependencies": {
+ "utila": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz",
+ "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=",
+ "dev": true
+ }
+ }
+ },
+ "dom-serializer": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
+ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "~1.1.1",
+ "entities": "~1.1.1"
+ },
+ "dependencies": {
+ "domelementtype": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
+ "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=",
+ "dev": true
+ }
+ }
+ },
+ "domain-browser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
+ "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
+ "dev": true
+ },
+ "domelementtype": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
+ "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=",
+ "dev": true
+ },
+ "domhandler": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz",
+ "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1"
+ }
+ },
+ "domutils": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+ "dev": true,
+ "requires": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
+ "dot-prop": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
+ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
+ "dev": true,
+ "requires": {
+ "is-obj": "^1.0.0"
+ }
+ },
+ "duplexer": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
+ "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
+ "dev": true
+ },
+ "duplexify": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz",
+ "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "easy-stack": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/easy-stack/-/easy-stack-1.0.0.tgz",
+ "integrity": "sha1-EskbMIWjfwuqM26UhurEv5Tj54g=",
+ "dev": true
+ },
+ "ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
+ "dev": true
+ },
+ "ejs": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz",
+ "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==",
+ "dev": true
+ },
+ "electron-to-chromium": {
+ "version": "1.3.59",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.59.tgz",
+ "integrity": "sha512-PbJGGpDSNn3fyUN1eQESAmnMT+a1QAO4NEZgikDuGOn7tbAuMHF87jNna+NoVsMBfEEYzfpn/ay88HgDCJUbQA==",
+ "dev": true
+ },
+ "elliptic": {
+ "version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz",
+ "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.4.0",
+ "brorand": "^1.0.1",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.0"
+ }
+ },
+ "emojis-list": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+ "dev": true
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+ "dev": true
+ },
+ "end-of-stream": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
+ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
+ "dev": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "enhanced-resolve": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz",
+ "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "memory-fs": "^0.4.0",
+ "tapable": "^1.0.0"
+ }
+ },
+ "entities": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
+ "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
+ "dev": true
+ },
+ "errno": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
+ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
+ "dev": true,
+ "requires": {
+ "prr": "~1.0.1"
+ }
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "error-stack-parser": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.2.tgz",
+ "integrity": "sha512-E1fPutRDdIj/hohG0UpT5mayXNCxXP9d+snxFsPU9X0XgccOumKraa3juDMwTUyi7+Bu5+mCGagjg4IYeNbOdw==",
+ "dev": true,
+ "requires": {
+ "stackframe": "^1.0.4"
+ }
+ },
+ "es-abstract": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz",
+ "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.1.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.1",
+ "is-callable": "^1.1.3",
+ "is-regex": "^1.0.4"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz",
+ "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.1",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.1"
+ }
+ },
+ "es5-ext": {
+ "version": "0.10.46",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz",
+ "integrity": "sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==",
+ "dev": true,
+ "requires": {
+ "es6-iterator": "~2.0.3",
+ "es6-symbol": "~3.1.1",
+ "next-tick": "1"
+ }
+ },
+ "es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
+ "dev": true,
+ "requires": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "es6-object-assign": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz",
+ "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw="
+ },
+ "es6-symbol": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
+ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
+ "dev": true,
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "eslint": {
+ "version": "4.19.1",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz",
+ "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==",
+ "dev": true,
+ "requires": {
+ "ajv": "^5.3.0",
+ "babel-code-frame": "^6.22.0",
+ "chalk": "^2.1.0",
+ "concat-stream": "^1.6.0",
+ "cross-spawn": "^5.1.0",
+ "debug": "^3.1.0",
+ "doctrine": "^2.1.0",
+ "eslint-scope": "^3.7.1",
+ "eslint-visitor-keys": "^1.0.0",
+ "espree": "^3.5.4",
+ "esquery": "^1.0.0",
+ "esutils": "^2.0.2",
+ "file-entry-cache": "^2.0.0",
+ "functional-red-black-tree": "^1.0.1",
+ "glob": "^7.1.2",
+ "globals": "^11.0.1",
+ "ignore": "^3.3.3",
+ "imurmurhash": "^0.1.4",
+ "inquirer": "^3.0.6",
+ "is-resolvable": "^1.0.0",
+ "js-yaml": "^3.9.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.3.0",
+ "lodash": "^4.17.4",
+ "minimatch": "^3.0.2",
+ "mkdirp": "^0.5.1",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.8.2",
+ "path-is-inside": "^1.0.2",
+ "pluralize": "^7.0.0",
+ "progress": "^2.0.0",
+ "regexpp": "^1.0.1",
+ "require-uncached": "^1.0.3",
+ "semver": "^5.3.0",
+ "strip-ansi": "^4.0.0",
+ "strip-json-comments": "~2.0.1",
+ "table": "4.0.2",
+ "text-table": "~0.2.0"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ }
+ }
+ },
+ "eslint-loader": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.1.0.tgz",
+ "integrity": "sha512-f4A/Yk7qF+HcFSz5Tck2QoKIwJVHlX0soJk5MkROYahb5uvspad5Ba60rrz4u/V2/MEj1dtp/uBi6LlLWVaY7Q==",
+ "dev": true,
+ "requires": {
+ "loader-fs-cache": "^1.0.0",
+ "loader-utils": "^1.0.2",
+ "object-assign": "^4.0.1",
+ "object-hash": "^1.1.4",
+ "rimraf": "^2.6.1"
+ }
+ },
+ "eslint-plugin-vue": {
+ "version": "4.7.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-4.7.1.tgz",
+ "integrity": "sha512-esETKhVMI7Vdli70Wt4bvAwnZBJeM0pxVX9Yb0wWKxdCJc2EADalVYK/q2FzMw8oKN0wPMdqVCKS8kmR89recA==",
+ "dev": true,
+ "requires": {
+ "vue-eslint-parser": "^2.0.3"
+ }
+ },
+ "eslint-scope": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz",
+ "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
+ "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==",
+ "dev": true
+ },
+ "espree": {
+ "version": "3.5.4",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz",
+ "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==",
+ "dev": true,
+ "requires": {
+ "acorn": "^5.5.0",
+ "acorn-jsx": "^3.0.0"
+ }
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true
+ },
+ "esquery": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz",
+ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^4.0.0"
+ }
+ },
+ "esrecurse": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
+ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^4.1.0"
+ }
+ },
+ "estraverse": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+ "dev": true
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
+ "dev": true
+ },
+ "event-pubsub": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/event-pubsub/-/event-pubsub-4.3.0.tgz",
+ "integrity": "sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==",
+ "dev": true
+ },
+ "eventemitter3": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz",
+ "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==",
+ "dev": true
+ },
+ "events": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
+ "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=",
+ "dev": true
+ },
+ "eventsource": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz",
+ "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=",
+ "dev": true,
+ "requires": {
+ "original": ">=0.0.5"
+ }
+ },
+ "evp_bytestokey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+ "dev": true,
+ "requires": {
+ "md5.js": "^1.3.4",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "execa": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
+ "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^3.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ }
+ },
+ "expand-brackets": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
+ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+ "dev": true,
+ "requires": {
+ "is-posix-bracket": "^0.1.0"
+ }
+ },
+ "expand-range": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
+ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
+ "dev": true,
+ "requires": {
+ "fill-range": "^2.1.0"
+ }
+ },
+ "express": {
+ "version": "4.16.3",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz",
+ "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=",
+ "dev": true,
+ "requires": {
+ "accepts": "~1.3.5",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.18.2",
+ "content-disposition": "0.5.2",
+ "content-type": "~1.0.4",
+ "cookie": "0.3.1",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "1.1.1",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.2",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.3",
+ "qs": "6.5.1",
+ "range-parser": "~1.2.0",
+ "safe-buffer": "5.1.1",
+ "send": "0.16.2",
+ "serve-static": "1.13.2",
+ "setprototypeof": "1.1.0",
+ "statuses": "~1.4.0",
+ "type-is": "~1.6.16",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "qs": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
+ "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
+ "dev": true
+ },
+ "safe-buffer": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
+ "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
+ "dev": true
+ }
+ }
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "dev": true
+ },
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "dev": true,
+ "requires": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
+ }
+ },
+ "external-editor": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
+ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
+ "dev": true,
+ "requires": {
+ "chardet": "^0.4.0",
+ "iconv-lite": "^0.4.17",
+ "tmp": "^0.0.33"
+ }
+ },
+ "extglob": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
+ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+ "dev": true
+ },
+ "fast-deep-equal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
+ "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
+ "dev": true
+ },
+ "fast-glob": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.2.tgz",
+ "integrity": "sha512-TR6zxCKftDQnUAPvkrCWdBgDq/gbqx8A3ApnBrR5rMvpp6+KMJI0Igw7fkWPgeVK0uhRXTXdvO3O+YP0CaUX2g==",
+ "dev": true,
+ "requires": {
+ "@mrmlnc/readdir-enhanced": "^2.2.1",
+ "@nodelib/fs.stat": "^1.0.1",
+ "glob-parent": "^3.1.0",
+ "is-glob": "^4.0.0",
+ "merge2": "^1.2.1",
+ "micromatch": "^3.1.10"
+ },
+ "dependencies": {
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "dev": true,
+ "requires": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ }
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dev": true,
+ "requires": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "dev": true,
+ "requires": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ },
+ "dependencies": {
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.0"
+ }
+ }
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
+ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ }
+ }
+ }
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
+ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
+ "dev": true
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "dev": true
+ },
+ "fastparse": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz",
+ "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=",
+ "dev": true
+ },
+ "faye-websocket": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
+ "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
+ "dev": true,
+ "requires": {
+ "websocket-driver": ">=0.5.1"
+ }
+ },
+ "figures": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.5"
+ }
+ },
+ "file-entry-cache": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
+ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
+ "dev": true,
+ "requires": {
+ "flat-cache": "^1.2.1",
+ "object-assign": "^4.0.1"
+ }
+ },
+ "file-loader": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz",
+ "integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "^1.0.2",
+ "schema-utils": "^0.4.5"
+ }
+ },
+ "filename-regex": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
+ "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
+ "dev": true
+ },
+ "filesize": {
+ "version": "3.6.1",
+ "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz",
+ "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==",
+ "dev": true
+ },
+ "fill-range": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
+ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
+ "dev": true,
+ "requires": {
+ "is-number": "^2.1.0",
+ "isobject": "^2.0.0",
+ "randomatic": "^3.0.0",
+ "repeat-element": "^1.1.2",
+ "repeat-string": "^1.5.2"
+ }
+ },
+ "finalhandler": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
+ "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.2",
+ "statuses": "~1.4.0",
+ "unpipe": "~1.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "find-cache-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
+ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
+ "dev": true,
+ "requires": {
+ "commondir": "^1.0.1",
+ "make-dir": "^1.0.0",
+ "pkg-dir": "^2.0.0"
+ }
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^2.0.0"
+ }
+ },
+ "flat-cache": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz",
+ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=",
+ "dev": true,
+ "requires": {
+ "circular-json": "^0.3.1",
+ "del": "^2.0.2",
+ "graceful-fs": "^4.1.2",
+ "write": "^0.2.1"
+ }
+ },
+ "flatten": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz",
+ "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=",
+ "dev": true
+ },
+ "flush-write-stream": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz",
+ "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.4"
+ }
+ },
+ "follow-redirects": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.0.tgz",
+ "integrity": "sha512-fdrt472/9qQ6Kgjvb935ig6vJCuofpBUD14f9Vb+SLlm7xIe4Qva5gey8EKtv8lp7ahE1wilg3xL1znpVGtZIA==",
+ "requires": {
+ "debug": "^3.1.0"
+ }
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+ "dev": true
+ },
+ "for-own": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
+ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+ "dev": true,
+ "requires": {
+ "for-in": "^1.0.1"
+ }
+ },
+ "foreach": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
+ "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=",
+ "dev": true
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+ "dev": true
+ },
+ "form-data": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
+ "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
+ "dev": true,
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "forwarded": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
+ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
+ "dev": true
+ },
+ "fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "dev": true,
+ "requires": {
+ "map-cache": "^0.2.2"
+ }
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
+ "dev": true
+ },
+ "friendly-errors-webpack-plugin": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0.tgz",
+ "integrity": "sha512-K27M3VK30wVoOarP651zDmb93R9zF28usW4ocaK3mfQeIEI5BPht/EzZs5E8QLLwbLRJQMwscAjDxYPb1FuNiw==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "error-stack-parser": "^2.0.0",
+ "string-width": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "from2": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
+ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0"
+ }
+ },
+ "fs-extra": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz",
+ "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "fs-write-stream-atomic": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
+ "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "iferr": "^0.1.5",
+ "imurmurhash": "^0.1.4",
+ "readable-stream": "1 || 2"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "fsevents": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz",
+ "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "nan": "^2.9.2",
+ "node-pre-gyp": "^0.10.0"
+ },
+ "dependencies": {
+ "abbrev": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "chownr": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "debug": {
+ "version": "2.6.9",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "deep-extend": {
+ "version": "0.5.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "detect-libc": {
+ "version": "1.0.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "fs-minipass": {
+ "version": "1.2.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minipass": "^2.2.1"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "iconv-lite": {
+ "version": "0.4.21",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "ignore-walk": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minimatch": "^3.0.4"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "bundled": true,
+ "dev": true
+ },
+ "ini": {
+ "version": "1.3.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "bundled": true,
+ "dev": true
+ },
+ "minipass": {
+ "version": "2.2.4",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.1.1",
+ "yallist": "^3.0.0"
+ }
+ },
+ "minizlib": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minipass": "^2.2.1"
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "needle": {
+ "version": "2.2.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "debug": "^2.1.2",
+ "iconv-lite": "^0.4.4",
+ "sax": "^1.2.4"
+ }
+ },
+ "node-pre-gyp": {
+ "version": "0.10.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "detect-libc": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "needle": "^2.2.0",
+ "nopt": "^4.0.1",
+ "npm-packlist": "^1.1.6",
+ "npmlog": "^4.0.2",
+ "rc": "^1.1.7",
+ "rimraf": "^2.6.1",
+ "semver": "^5.3.0",
+ "tar": "^4"
+ }
+ },
+ "nopt": {
+ "version": "4.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "abbrev": "1",
+ "osenv": "^0.1.4"
+ }
+ },
+ "npm-bundled": {
+ "version": "1.0.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "npm-packlist": {
+ "version": "1.1.10",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ignore-walk": "^3.0.1",
+ "npm-bundled": "^1.0.1"
+ }
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "osenv": {
+ "version": "0.1.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "rc": {
+ "version": "1.2.7",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "deep-extend": "^0.5.1",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "glob": "^7.0.5"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "sax": {
+ "version": "1.2.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "semver": {
+ "version": "5.5.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "tar": {
+ "version": "4.4.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "chownr": "^1.0.1",
+ "fs-minipass": "^1.2.5",
+ "minipass": "^2.2.4",
+ "minizlib": "^1.1.0",
+ "mkdirp": "^0.5.0",
+ "safe-buffer": "^5.1.1",
+ "yallist": "^3.0.2"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "wide-align": {
+ "version": "1.1.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "string-width": "^1.0.2"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "yallist": {
+ "version": "3.0.2",
+ "bundled": true,
+ "dev": true
+ }
+ }
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
+ "dev": true
+ },
+ "get-caller-file": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
+ "dev": true
+ },
+ "get-stdin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+ "dev": true
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+ "dev": true
+ },
+ "get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
+ "dev": true
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-base": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
+ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
+ "dev": true,
+ "requires": {
+ "glob-parent": "^2.0.0",
+ "is-glob": "^2.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
+ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+ "dev": true,
+ "requires": {
+ "is-glob": "^2.0.0"
+ }
+ },
+ "glob-to-regexp": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz",
+ "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=",
+ "dev": true
+ },
+ "globals": {
+ "version": "11.7.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz",
+ "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==",
+ "dev": true
+ },
+ "globby": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
+ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
+ "dev": true,
+ "requires": {
+ "array-union": "^1.0.1",
+ "arrify": "^1.0.0",
+ "glob": "^7.0.3",
+ "object-assign": "^4.0.1",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ }
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
+ },
+ "gzip-size": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-4.1.0.tgz",
+ "integrity": "sha1-iuCWJX6r59acRb4rZ8RIEk/7UXw=",
+ "dev": true,
+ "requires": {
+ "duplexer": "^0.1.1",
+ "pify": "^3.0.0"
+ }
+ },
+ "handle-thing": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz",
+ "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=",
+ "dev": true
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+ "dev": true
+ },
+ "har-validator": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz",
+ "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==",
+ "dev": true,
+ "requires": {
+ "ajv": "^5.3.0",
+ "har-schema": "^2.0.0"
+ }
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "has-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
+ "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
+ "dev": true
+ },
+ "has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+ "dev": true,
+ "requires": {
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ }
+ }
+ },
+ "has-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+ "dev": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
+ "dependencies": {
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "hash-base": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
+ "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "hash-sum": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
+ "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
+ "dev": true
+ },
+ "hash.js": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz",
+ "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
+ }
+ },
+ "he": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
+ "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
+ "dev": true
+ },
+ "hex-color-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz",
+ "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==",
+ "dev": true
+ },
+ "hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
+ "dev": true,
+ "requires": {
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "hoek": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.4.tgz",
+ "integrity": "sha512-Alr4ZQgoMlnere5FZJsIyfIjORBqZll5POhDsF4q64dPuJR6rNxXdDxtHSQq8OXRurhmx+PWYEE8bXRROY8h0w==",
+ "dev": true
+ },
+ "hosted-git-info": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
+ "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==",
+ "dev": true
+ },
+ "hpack.js": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
+ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "obuf": "^1.0.0",
+ "readable-stream": "^2.0.1",
+ "wbuf": "^1.1.0"
+ }
+ },
+ "hsl-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz",
+ "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=",
+ "dev": true
+ },
+ "hsla-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz",
+ "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=",
+ "dev": true
+ },
+ "html-comment-regex": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz",
+ "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=",
+ "dev": true
+ },
+ "html-entities": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz",
+ "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=",
+ "dev": true
+ },
+ "html-minifier": {
+ "version": "3.5.18",
+ "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.18.tgz",
+ "integrity": "sha512-sczoq/9zeXiKZMj8tsQzHJE7EyjrpMHvblTLuh9o8h5923a6Ts5uQ/3YdY+xIqJYRjzHQPlrHjfjh0BtwPJG0g==",
+ "dev": true,
+ "requires": {
+ "camel-case": "3.0.x",
+ "clean-css": "4.1.x",
+ "commander": "2.16.x",
+ "he": "1.1.x",
+ "param-case": "2.1.x",
+ "relateurl": "0.2.x",
+ "uglify-js": "3.4.x"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.16.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz",
+ "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==",
+ "dev": true
+ }
+ }
+ },
+ "html-webpack-plugin": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz",
+ "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=",
+ "dev": true,
+ "requires": {
+ "html-minifier": "^3.2.3",
+ "loader-utils": "^0.2.16",
+ "lodash": "^4.17.3",
+ "pretty-error": "^2.0.2",
+ "tapable": "^1.0.0",
+ "toposort": "^1.0.0",
+ "util.promisify": "1.0.0"
+ },
+ "dependencies": {
+ "loader-utils": {
+ "version": "0.2.17",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
+ "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
+ "dev": true,
+ "requires": {
+ "big.js": "^3.1.3",
+ "emojis-list": "^2.0.0",
+ "json5": "^0.5.0",
+ "object-assign": "^4.0.1"
+ }
+ }
+ }
+ },
+ "htmlparser2": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz",
+ "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1",
+ "domhandler": "2.1",
+ "domutils": "1.1",
+ "readable-stream": "1.0"
+ },
+ "dependencies": {
+ "domutils": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz",
+ "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1"
+ }
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
+ }
+ }
+ },
+ "http-deceiver": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
+ "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=",
+ "dev": true
+ },
+ "http-errors": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
+ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
+ "dev": true,
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.0",
+ "statuses": ">= 1.4.0 < 2"
+ }
+ },
+ "http-parser-js": {
+ "version": "0.4.13",
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz",
+ "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=",
+ "dev": true
+ },
+ "http-proxy": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz",
+ "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==",
+ "dev": true,
+ "requires": {
+ "eventemitter3": "^3.0.0",
+ "follow-redirects": "^1.0.0",
+ "requires-port": "^1.0.0"
+ }
+ },
+ "http-proxy-middleware": {
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz",
+ "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==",
+ "dev": true,
+ "requires": {
+ "http-proxy": "^1.16.2",
+ "is-glob": "^4.0.0",
+ "lodash": "^4.17.5",
+ "micromatch": "^3.1.9"
+ },
+ "dependencies": {
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "dev": true,
+ "requires": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ }
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dev": true,
+ "requires": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
+ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ }
+ }
+ }
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "https-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
+ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
+ "dev": true
+ },
+ "iconv-lite": {
+ "version": "0.4.23",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
+ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "icss-replace-symbols": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz",
+ "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=",
+ "dev": true
+ },
+ "icss-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz",
+ "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=",
+ "dev": true,
+ "requires": {
+ "postcss": "^6.0.1"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "ieee754": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz",
+ "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==",
+ "dev": true
+ },
+ "iferr": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
+ "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
+ "dev": true
+ },
+ "ignore": {
+ "version": "3.3.10",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
+ "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
+ "dev": true
+ },
+ "import-cwd": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz",
+ "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=",
+ "dev": true,
+ "requires": {
+ "import-from": "^2.1.0"
+ }
+ },
+ "import-from": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz",
+ "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=",
+ "dev": true,
+ "requires": {
+ "resolve-from": "^3.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
+ "dev": true
+ }
+ }
+ },
+ "import-local": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz",
+ "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==",
+ "dev": true,
+ "requires": {
+ "pkg-dir": "^2.0.0",
+ "resolve-cwd": "^2.0.0"
+ }
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true
+ },
+ "indent-string": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+ "dev": true,
+ "requires": {
+ "repeating": "^2.0.0"
+ }
+ },
+ "indexes-of": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
+ "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
+ "dev": true
+ },
+ "indexof": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
+ "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ },
+ "inquirer": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
+ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "^3.0.0",
+ "chalk": "^2.0.0",
+ "cli-cursor": "^2.1.0",
+ "cli-width": "^2.0.0",
+ "external-editor": "^2.0.4",
+ "figures": "^2.0.0",
+ "lodash": "^4.3.0",
+ "mute-stream": "0.0.7",
+ "run-async": "^2.2.0",
+ "rx-lite": "^4.0.8",
+ "rx-lite-aggregates": "^4.0.8",
+ "string-width": "^2.1.0",
+ "strip-ansi": "^4.0.0",
+ "through": "^2.3.6"
+ }
+ },
+ "internal-ip": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz",
+ "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=",
+ "dev": true,
+ "requires": {
+ "meow": "^3.3.0"
+ }
+ },
+ "invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "dev": true,
+ "requires": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "invert-kv": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+ "dev": true
+ },
+ "ip": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
+ "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
+ "dev": true
+ },
+ "ipaddr.js": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz",
+ "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=",
+ "dev": true
+ },
+ "is-absolute-url": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
+ "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=",
+ "dev": true
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ }
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+ "dev": true,
+ "requires": {
+ "binary-extensions": "^1.0.0"
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ },
+ "is-builtin-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
+ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
+ "dev": true,
+ "requires": {
+ "builtin-modules": "^1.0.0"
+ }
+ },
+ "is-callable": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz",
+ "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=",
+ "dev": true
+ },
+ "is-ci": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.0.tgz",
+ "integrity": "sha512-plgvKjQtalH2P3Gytb7L61Lmz95g2DlpzFiQyRSFew8WoJKxtKRzrZMeyRN2supblm3Psc8OQGy7Xjb6XG11jw==",
+ "dev": true,
+ "requires": {
+ "ci-info": "^1.3.0"
+ }
+ },
+ "is-color-stop": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz",
+ "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=",
+ "dev": true,
+ "requires": {
+ "css-color-names": "^0.0.4",
+ "hex-color-regex": "^1.1.0",
+ "hsl-regex": "^1.0.0",
+ "hsla-regex": "^1.0.0",
+ "rgb-regex": "^1.0.1",
+ "rgba-regex": "^1.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ }
+ },
+ "is-date-object": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
+ "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
+ "dev": true
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
+ }
+ },
+ "is-directory": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
+ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
+ "dev": true
+ },
+ "is-dotfile": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
+ "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
+ "dev": true
+ },
+ "is-equal-shallow": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
+ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
+ "dev": true,
+ "requires": {
+ "is-primitive": "^2.0.0"
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true
+ },
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+ "dev": true
+ },
+ "is-finite": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ },
+ "is-number": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
+ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ }
+ },
+ "is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
+ "dev": true
+ },
+ "is-path-cwd": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
+ "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
+ "dev": true
+ },
+ "is-path-in-cwd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
+ "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
+ "dev": true,
+ "requires": {
+ "is-path-inside": "^1.0.0"
+ }
+ },
+ "is-path-inside": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
+ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
+ "dev": true,
+ "requires": {
+ "path-is-inside": "^1.0.1"
+ }
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ }
+ }
+ },
+ "is-posix-bracket": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
+ "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
+ "dev": true
+ },
+ "is-primitive": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
+ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
+ "dev": true
+ },
+ "is-promise": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
+ "dev": true
+ },
+ "is-regex": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
+ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.1"
+ }
+ },
+ "is-resolvable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
+ "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
+ "dev": true
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "dev": true
+ },
+ "is-svg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz",
+ "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==",
+ "dev": true,
+ "requires": {
+ "html-comment-regex": "^1.1.0"
+ }
+ },
+ "is-symbol": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz",
+ "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=",
+ "dev": true
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "dev": true
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+ "dev": true
+ },
+ "is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "dev": true
+ },
+ "is-wsl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+ "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "isemail": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.1.3.tgz",
+ "integrity": "sha512-5xbsG5wYADIcB+mfLsd+nst1V/D+I7EU7LEZPo2GOIMu4JzfcRs5yQoypP4avA7QtUqgxYLKBYNv4IdzBmbhdw==",
+ "dev": true,
+ "requires": {
+ "punycode": "2.x.x"
+ }
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "dev": true,
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+ "dev": true
+ },
+ "javascript-stringify": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-1.6.0.tgz",
+ "integrity": "sha1-FC0RHzpuPa6PSpr9d9RYVbWpzOM=",
+ "dev": true
+ },
+ "joi": {
+ "version": "13.6.0",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-13.6.0.tgz",
+ "integrity": "sha512-E4QB0yRgEa6ZZKcSHJuBC+QeAwy+akCG0Bsa9edLqljyhlr+GuGDSmXYW1q7sj/FuAPy+ECUI3evVtK52tVfwg==",
+ "dev": true,
+ "requires": {
+ "hoek": "5.x.x",
+ "isemail": "3.x.x",
+ "topo": "3.x.x"
+ }
+ },
+ "js-message": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/js-message/-/js-message-1.0.5.tgz",
+ "integrity": "sha1-IwDSSxrwjondCVvBpMnJz8uJLRU=",
+ "dev": true
+ },
+ "js-queue": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/js-queue/-/js-queue-2.0.0.tgz",
+ "integrity": "sha1-NiITz4YPRo8BJfxslqvBdCUx+Ug=",
+ "dev": true,
+ "requires": {
+ "easy-stack": "^1.0.0"
+ }
+ },
+ "js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz",
+ "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "dev": true,
+ "optional": true
+ },
+ "jsesc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz",
+ "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=",
+ "dev": true
+ },
+ "json-parse-better-errors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
+ "dev": true
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
+ "dev": true
+ },
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
+ "dev": true
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+ "dev": true
+ },
+ "json3": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz",
+ "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=",
+ "dev": true
+ },
+ "json5": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
+ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+ "dev": true
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "jsonify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
+ "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
+ "dev": true
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ }
+ },
+ "killable": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.0.tgz",
+ "integrity": "sha1-2ouEvUfeU5WHj5XWTQLyRJ/gXms=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ },
+ "launch-editor": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.2.1.tgz",
+ "integrity": "sha512-On+V7K2uZK6wK7x691ycSUbLD/FyKKelArkbaAMSSJU8JmqmhwN2+mnJDNINuJWSrh2L0kDk+ZQtbC/gOWUwLw==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.3.0",
+ "shell-quote": "^1.6.1"
+ }
+ },
+ "launch-editor-middleware": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/launch-editor-middleware/-/launch-editor-middleware-2.2.1.tgz",
+ "integrity": "sha512-s0UO2/gEGiCgei3/2UN3SMuUj1phjQN8lcpnvgLSz26fAzNWPQ6Nf/kF5IFClnfU2ehp6LrmKdMU/beveO+2jg==",
+ "dev": true,
+ "requires": {
+ "launch-editor": "^2.2.1"
+ }
+ },
+ "lcid": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
+ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+ "dev": true,
+ "requires": {
+ "invert-kv": "^1.0.0"
+ }
+ },
+ "levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ }
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "strip-bom": "^2.0.0"
+ },
+ "dependencies": {
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.2.0"
+ }
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ }
+ }
+ },
+ "loader-fs-cache": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz",
+ "integrity": "sha1-VuC/CL2XCLJqdltoUJhAyN7J/bw=",
+ "dev": true,
+ "requires": {
+ "find-cache-dir": "^0.1.1",
+ "mkdirp": "0.5.1"
+ },
+ "dependencies": {
+ "find-cache-dir": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz",
+ "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=",
+ "dev": true,
+ "requires": {
+ "commondir": "^1.0.1",
+ "mkdirp": "^0.5.1",
+ "pkg-dir": "^1.0.0"
+ }
+ },
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "pkg-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
+ "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
+ "dev": true,
+ "requires": {
+ "find-up": "^1.0.0"
+ }
+ }
+ }
+ },
+ "loader-runner": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz",
+ "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=",
+ "dev": true
+ },
+ "loader-utils": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
+ "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
+ "dev": true,
+ "requires": {
+ "big.js": "^3.1.3",
+ "emojis-list": "^2.0.0",
+ "json5": "^0.5.0"
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "requires": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.10",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz",
+ "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==",
+ "dev": true
+ },
+ "lodash.camelcase": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
+ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=",
+ "dev": true
+ },
+ "lodash.debounce": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=",
+ "dev": true
+ },
+ "lodash.defaultsdeep": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.0.tgz",
+ "integrity": "sha1-vsECT4WxvZbL6kBbI8FK1kQ6b4E=",
+ "dev": true
+ },
+ "lodash.mapvalues": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz",
+ "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=",
+ "dev": true
+ },
+ "lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
+ "dev": true
+ },
+ "lodash.transform": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.transform/-/lodash.transform-4.6.0.tgz",
+ "integrity": "sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A=",
+ "dev": true
+ },
+ "lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
+ "dev": true
+ },
+ "log-symbols": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
+ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.1"
+ }
+ },
+ "loglevel": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz",
+ "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=",
+ "dev": true
+ },
+ "loglevelnext": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/loglevelnext/-/loglevelnext-1.0.5.tgz",
+ "integrity": "sha512-V/73qkPuJmx4BcBF19xPBr+0ZRVBhc4POxvZTZdMeXpJ4NItXSJ/MSwuFT0kQJlCbXvdlZoQQ/418bS1y9Jh6A==",
+ "dev": true,
+ "requires": {
+ "es6-symbol": "^3.1.1",
+ "object.assign": "^4.1.0"
+ }
+ },
+ "long": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz",
+ "integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=",
+ "dev": true
+ },
+ "loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "dev": true,
+ "requires": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ }
+ },
+ "loud-rejection": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+ "dev": true,
+ "requires": {
+ "currently-unhandled": "^0.4.1",
+ "signal-exit": "^3.0.0"
+ }
+ },
+ "lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=",
+ "dev": true
+ },
+ "lru-cache": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
+ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "make-dir": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+ "dev": true,
+ "requires": {
+ "pify": "^3.0.0"
+ }
+ },
+ "mamacro": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz",
+ "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==",
+ "dev": true
+ },
+ "map-cache": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
+ "dev": true
+ },
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ "dev": true
+ },
+ "map-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+ "dev": true,
+ "requires": {
+ "object-visit": "^1.0.0"
+ }
+ },
+ "material-design-icons-iconfont": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/material-design-icons-iconfont/-/material-design-icons-iconfont-3.0.3.tgz",
+ "integrity": "sha1-FUoQhAR9Ticjf6f1o34Qdc7qbfI=",
+ "dev": true
+ },
+ "math-random": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz",
+ "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=",
+ "dev": true
+ },
+ "md5.js": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz",
+ "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=",
+ "dev": true,
+ "requires": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1"
+ }
+ },
+ "mdn-data": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.4.tgz",
+ "integrity": "sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==",
+ "dev": true
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
+ "dev": true
+ },
+ "mem": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
+ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^1.0.0"
+ }
+ },
+ "memory-fs": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
+ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+ "dev": true,
+ "requires": {
+ "errno": "^0.1.3",
+ "readable-stream": "^2.0.1"
+ }
+ },
+ "meow": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+ "dev": true,
+ "requires": {
+ "camelcase-keys": "^2.0.0",
+ "decamelize": "^1.1.2",
+ "loud-rejection": "^1.0.0",
+ "map-obj": "^1.0.1",
+ "minimist": "^1.1.3",
+ "normalize-package-data": "^2.3.4",
+ "object-assign": "^4.0.1",
+ "read-pkg-up": "^1.0.1",
+ "redent": "^1.0.0",
+ "trim-newlines": "^1.0.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
+ "dev": true
+ },
+ "merge-source-map": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz",
+ "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==",
+ "dev": true,
+ "requires": {
+ "source-map": "^0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "merge2": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.2.tgz",
+ "integrity": "sha512-bgM8twH86rWni21thii6WCMQMRMmwqqdW3sGWi9IipnVAszdLXRjwDwAnyrVXo6DuP3AjRMMttZKUB48QWIFGg==",
+ "dev": true
+ },
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "2.3.11",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^2.0.0",
+ "array-unique": "^0.2.1",
+ "braces": "^1.8.2",
+ "expand-brackets": "^0.1.4",
+ "extglob": "^0.3.1",
+ "filename-regex": "^2.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.1",
+ "kind-of": "^3.0.2",
+ "normalize-path": "^2.0.1",
+ "object.omit": "^2.0.0",
+ "parse-glob": "^3.0.4",
+ "regex-cache": "^0.4.2"
+ }
+ },
+ "miller-rabin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.0.0",
+ "brorand": "^1.0.1"
+ }
+ },
+ "mime": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz",
+ "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==",
+ "dev": true
+ },
+ "mime-db": {
+ "version": "1.35.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz",
+ "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.19",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz",
+ "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==",
+ "dev": true,
+ "requires": {
+ "mime-db": "~1.35.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+ "dev": true
+ },
+ "mini-css-extract-plugin": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.1.tgz",
+ "integrity": "sha512-XWuB3G61Rtasq/gLe7cp5cuozehE6hN+E4sxCamRR/WDiHTg+f7ZIAS024r8UJQffY+e2gGELXQZgQoFDfNDCg==",
+ "dev": true,
+ "requires": {
+ "@webpack-contrib/schema-utils": "^1.0.0-beta.0",
+ "loader-utils": "^1.1.0",
+ "webpack-sources": "^1.1.0"
+ }
+ },
+ "minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
+ "dev": true
+ },
+ "minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ },
+ "mississippi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz",
+ "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==",
+ "dev": true,
+ "requires": {
+ "concat-stream": "^1.5.0",
+ "duplexify": "^3.4.2",
+ "end-of-stream": "^1.1.0",
+ "flush-write-stream": "^1.0.0",
+ "from2": "^2.1.0",
+ "parallel-transform": "^1.1.0",
+ "pump": "^2.0.1",
+ "pumpify": "^1.3.3",
+ "stream-each": "^1.1.0",
+ "through2": "^2.0.0"
+ }
+ },
+ "mixin-deep": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
+ "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
+ "dev": true,
+ "requires": {
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "move-concurrently": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
+ "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
+ "dev": true,
+ "requires": {
+ "aproba": "^1.1.1",
+ "copy-concurrently": "^1.0.0",
+ "fs-write-stream-atomic": "^1.0.8",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.4",
+ "run-queue": "^1.0.3"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "multicast-dns": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz",
+ "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==",
+ "dev": true,
+ "requires": {
+ "dns-packet": "^1.3.1",
+ "thunky": "^1.0.2"
+ }
+ },
+ "multicast-dns-service-types": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz",
+ "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
+ "dev": true
+ },
+ "mute-stream": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
+ "dev": true
+ },
+ "nan": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz",
+ "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==",
+ "dev": true,
+ "optional": true
+ },
+ "nanomatch": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "fragment-cache": "^0.2.1",
+ "is-windows": "^1.0.2",
+ "kind-of": "^6.0.2",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ }
+ }
+ },
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
+ "dev": true
+ },
+ "negotiator": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
+ "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=",
+ "dev": true
+ },
+ "neo-async": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.2.tgz",
+ "integrity": "sha512-vdqTKI9GBIYcAEbFAcpKPErKINfPF5zIuz3/niBfq8WUZjpT2tytLlFVrBgWdOtqI4uaA/Rb6No0hux39XXDuw==",
+ "dev": true
+ },
+ "next-tick": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
+ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
+ "dev": true
+ },
+ "nice-try": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz",
+ "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==",
+ "dev": true
+ },
+ "no-case": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+ "dev": true,
+ "requires": {
+ "lower-case": "^1.1.1"
+ }
+ },
+ "node-forge": {
+ "version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz",
+ "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==",
+ "dev": true
+ },
+ "node-ipc": {
+ "version": "9.1.1",
+ "resolved": "https://registry.npmjs.org/node-ipc/-/node-ipc-9.1.1.tgz",
+ "integrity": "sha512-FAyICv0sIRJxVp3GW5fzgaf9jwwRQxAKDJlmNFUL5hOy+W4X/I5AypyHoq0DXXbo9o/gt79gj++4cMr4jVWE/w==",
+ "dev": true,
+ "requires": {
+ "event-pubsub": "4.3.0",
+ "js-message": "1.0.5",
+ "js-queue": "2.0.0"
+ }
+ },
+ "node-libs-browser": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz",
+ "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==",
+ "dev": true,
+ "requires": {
+ "assert": "^1.1.1",
+ "browserify-zlib": "^0.2.0",
+ "buffer": "^4.3.0",
+ "console-browserify": "^1.1.0",
+ "constants-browserify": "^1.0.0",
+ "crypto-browserify": "^3.11.0",
+ "domain-browser": "^1.1.1",
+ "events": "^1.0.0",
+ "https-browserify": "^1.0.0",
+ "os-browserify": "^0.3.0",
+ "path-browserify": "0.0.0",
+ "process": "^0.11.10",
+ "punycode": "^1.2.4",
+ "querystring-es3": "^0.2.0",
+ "readable-stream": "^2.3.3",
+ "stream-browserify": "^2.0.1",
+ "stream-http": "^2.7.2",
+ "string_decoder": "^1.0.0",
+ "timers-browserify": "^2.0.4",
+ "tty-browserify": "0.0.0",
+ "url": "^0.11.0",
+ "util": "^0.10.3",
+ "vm-browserify": "0.0.4"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+ "dev": true
+ }
+ }
+ },
+ "node-releases": {
+ "version": "1.0.0-alpha.11",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.0.0-alpha.11.tgz",
+ "integrity": "sha512-CaViu+2FqTNYOYNihXa5uPS/zry92I3vPU4nCB6JB3OeZ2UGtOpF5gRwuN4+m3hbEcL47bOXyun1jX2iC+3uEQ==",
+ "dev": true,
+ "requires": {
+ "semver": "^5.3.0"
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
+ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "is-builtin-module": "^1.0.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "dev": true,
+ "requires": {
+ "remove-trailing-separator": "^1.0.1"
+ }
+ },
+ "normalize-range": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
+ "dev": true
+ },
+ "normalize-url": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.2.0.tgz",
+ "integrity": "sha512-WvF3Myk0NhXkG8S9bygFM4IC1KOvnVJGq0QoGeoqOYOBeinBZp5ybW3QuYbTc89lkWBMM9ZBO4QGRoc0353kKA==",
+ "dev": true
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "dev": true,
+ "requires": {
+ "path-key": "^2.0.0"
+ }
+ },
+ "nth-check": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz",
+ "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=",
+ "dev": true,
+ "requires": {
+ "boolbase": "~1.0.0"
+ }
+ },
+ "num2fraction": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
+ "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
+ "dev": true
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "dev": true
+ },
+ "oauth-sign": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
+ "dev": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ },
+ "object-copy": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+ "dev": true,
+ "requires": {
+ "copy-descriptor": "^0.1.0",
+ "define-property": "^0.2.5",
+ "kind-of": "^3.0.3"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "object-hash": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.0.tgz",
+ "integrity": "sha512-05KzQ70lSeGSrZJQXE5wNDiTkBJDlUT/myi6RX9dVIvz7a7Qh4oH93BQdiPMn27nldYvVQCKMUaM83AfizZlsQ==",
+ "dev": true
+ },
+ "object-keys": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz",
+ "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=",
+ "dev": true
+ },
+ "object-visit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ }
+ }
+ },
+ "object.assign": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
+ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "function-bind": "^1.1.1",
+ "has-symbols": "^1.0.0",
+ "object-keys": "^1.0.11"
+ }
+ },
+ "object.getownpropertydescriptors": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
+ "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.5.1"
+ }
+ },
+ "object.omit": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
+ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
+ "dev": true,
+ "requires": {
+ "for-own": "^0.1.4",
+ "is-extendable": "^0.1.1"
+ }
+ },
+ "object.pick": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ }
+ }
+ },
+ "object.values": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz",
+ "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.6.1",
+ "function-bind": "^1.1.0",
+ "has": "^1.0.1"
+ }
+ },
+ "obuf": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
+ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
+ "dev": true
+ },
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "dev": true,
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "on-headers": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz",
+ "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=",
+ "dev": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "onetime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^1.0.0"
+ }
+ },
+ "opener": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.0.tgz",
+ "integrity": "sha512-MD4s/o61y2slS27zm2s4229V2gAUHX0/e3/XOmY/jsXwhysjjCIHN8lx7gqZCrZk19ym+HjCUWHeMKD7YJtKCQ==",
+ "dev": true
+ },
+ "opn": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz",
+ "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==",
+ "dev": true,
+ "requires": {
+ "is-wsl": "^1.1.0"
+ }
+ },
+ "optionator": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
+ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
+ "dev": true,
+ "requires": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.4",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "wordwrap": "~1.0.0"
+ }
+ },
+ "ora": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-2.1.0.tgz",
+ "integrity": "sha512-hNNlAd3gfv/iPmsNxYoAPLvxg7HuPozww7fFonMZvL84tP6Ox5igfk5j/+a9rtJJwqMgKK+JgWsAQik5o0HTLA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.3.1",
+ "cli-cursor": "^2.1.0",
+ "cli-spinners": "^1.1.0",
+ "log-symbols": "^2.2.0",
+ "strip-ansi": "^4.0.0",
+ "wcwidth": "^1.0.1"
+ }
+ },
+ "original": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz",
+ "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==",
+ "dev": true,
+ "requires": {
+ "url-parse": "^1.4.3"
+ }
+ },
+ "os-browserify": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
+ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
+ "dev": true
+ },
+ "os-locale": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
+ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
+ "dev": true,
+ "requires": {
+ "execa": "^0.7.0",
+ "lcid": "^1.0.0",
+ "mem": "^1.1.0"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "execa": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ }
+ }
+ }
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "dev": true
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "dev": true,
+ "requires": {
+ "p-try": "^1.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
+ "requires": {
+ "p-limit": "^1.1.0"
+ }
+ },
+ "p-map": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz",
+ "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==",
+ "dev": true
+ },
+ "p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "dev": true
+ },
+ "pako": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz",
+ "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==",
+ "dev": true
+ },
+ "parallel-transform": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz",
+ "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=",
+ "dev": true,
+ "requires": {
+ "cyclist": "~0.2.2",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.1.5"
+ }
+ },
+ "param-case": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz",
+ "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=",
+ "dev": true,
+ "requires": {
+ "no-case": "^2.2.0"
+ }
+ },
+ "parse-asn1": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz",
+ "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==",
+ "dev": true,
+ "requires": {
+ "asn1.js": "^4.0.0",
+ "browserify-aes": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.0",
+ "pbkdf2": "^3.0.3"
+ }
+ },
+ "parse-glob": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
+ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+ "dev": true,
+ "requires": {
+ "glob-base": "^0.3.0",
+ "is-dotfile": "^1.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ }
+ },
+ "parseurl": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
+ "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=",
+ "dev": true
+ },
+ "pascalcase": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
+ "dev": true
+ },
+ "path-browserify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
+ "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=",
+ "dev": true
+ },
+ "path-dirname": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "path-is-inside": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
+ "dev": true
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "dev": true
+ },
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
+ "dev": true
+ },
+ "path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "dev": true,
+ "requires": {
+ "pify": "^3.0.0"
+ }
+ },
+ "pbkdf2": {
+ "version": "3.0.16",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz",
+ "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==",
+ "dev": true,
+ "requires": {
+ "create-hash": "^1.1.2",
+ "create-hmac": "^1.1.4",
+ "ripemd160": "^2.0.1",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
+ "dev": true
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dev": true,
+ "requires": {
+ "pinkie": "^2.0.0"
+ }
+ },
+ "pkg-dir": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
+ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
+ "dev": true,
+ "requires": {
+ "find-up": "^2.1.0"
+ }
+ },
+ "pluralize": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
+ "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
+ "dev": true
+ },
+ "portfinder": {
+ "version": "1.0.17",
+ "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.17.tgz",
+ "integrity": "sha512-syFcRIRzVI1BoEFOCaAiizwDolh1S1YXSodsVhncbhjzjZQulhczNRbqnUl9N31Q4dKGOXsNDqxC2BWBgSMqeQ==",
+ "dev": true,
+ "requires": {
+ "async": "^1.5.2",
+ "debug": "^2.2.0",
+ "mkdirp": "0.5.x"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "posix-character-classes": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.2.tgz",
+ "integrity": "sha512-fmaUY5370keLUTx+CnwRxtGiuFTcNBLQBqr1oE3WZ/euIYmGAo0OAgOhVJ3ByDnVmOR3PK+0V9VebzfjRIUcqw==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-calc": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-6.0.1.tgz",
+ "integrity": "sha1-PSQXG79udinUIqQ26/5t2VEfQzA=",
+ "dev": true,
+ "requires": {
+ "css-unit-converter": "^1.1.1",
+ "postcss": "^6.0.0",
+ "postcss-selector-parser": "^2.2.2",
+ "reduce-css-calc": "^2.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-colormin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.1.tgz",
+ "integrity": "sha1-bxwYoBVbxpYT8v8ThD4uSuj/C74=",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.0.0",
+ "color": "^3.0.0",
+ "has": "^1.0.0",
+ "postcss": "^6.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "browserslist": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.0.2.tgz",
+ "integrity": "sha512-lpujC4zv1trcKUUwfD4pFVNga4YSpB3sLB+/I+A8gvGQxno1c0dMB2aCQy0FE5oUNIDjD9puFiFF0zeS6Ji48w==",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30000876",
+ "electron-to-chromium": "^1.3.57",
+ "node-releases": "^1.0.0-alpha.11"
+ }
+ },
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-convert-values": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.0.tgz",
+ "integrity": "sha1-d9d9mu0dxOaVbmUcw0nVMwWHb2I=",
+ "dev": true,
+ "requires": {
+ "postcss": "^6.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-discard-comments": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.0.tgz",
+ "integrity": "sha1-loSimedrPpMmPvj9KtvxocCP2I0=",
+ "dev": true,
+ "requires": {
+ "postcss": "^6.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-discard-duplicates": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.0.tgz",
+ "integrity": "sha1-QvPCZ/hfqQngQsNXZ+z9Zcsr1yw=",
+ "dev": true,
+ "requires": {
+ "postcss": "^6.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-discard-empty": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.0.tgz",
+ "integrity": "sha1-VeGKWcdBKOOMfSgEvPpAVmEfuX8=",
+ "dev": true,
+ "requires": {
+ "postcss": "^6.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-discard-overridden": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.0.tgz",
+ "integrity": "sha1-Sgv4WXh4TPH4HtLBwf2dlkodofo=",
+ "dev": true,
+ "requires": {
+ "postcss": "^6.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-load-config": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.0.0.tgz",
+ "integrity": "sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==",
+ "dev": true,
+ "requires": {
+ "cosmiconfig": "^4.0.0",
+ "import-cwd": "^2.0.0"
+ },
+ "dependencies": {
+ "cosmiconfig": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz",
+ "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==",
+ "dev": true,
+ "requires": {
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.9.0",
+ "parse-json": "^4.0.0",
+ "require-from-string": "^2.0.1"
+ }
+ }
+ }
+ },
+ "postcss-loader": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.6.tgz",
+ "integrity": "sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "^1.1.0",
+ "postcss": "^6.0.0",
+ "postcss-load-config": "^2.0.0",
+ "schema-utils": "^0.4.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-merge-longhand": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.4.tgz",
+ "integrity": "sha512-wLi2u22mSdBDBjLF8pyaPCNppOmqb+B4O0Dlt/4nUwn79EltDUJmCeCDYqo7SB2z9puOHTftnxviY4J9xS+ygQ==",
+ "dev": true,
+ "requires": {
+ "css-color-names": "0.0.4",
+ "postcss": "^6.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "stylehacks": "^4.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-merge-rules": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.1.tgz",
+ "integrity": "sha1-Qw/Vmz8u0uivzQsxJ47aOYVKuxA=",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.0.0",
+ "caniuse-api": "^3.0.0",
+ "cssnano-util-same-parent": "^4.0.0",
+ "postcss": "^6.0.0",
+ "postcss-selector-parser": "^3.0.0",
+ "vendors": "^1.0.0"
+ },
+ "dependencies": {
+ "browserslist": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.0.2.tgz",
+ "integrity": "sha512-lpujC4zv1trcKUUwfD4pFVNga4YSpB3sLB+/I+A8gvGQxno1c0dMB2aCQy0FE5oUNIDjD9puFiFF0zeS6Ji48w==",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30000876",
+ "electron-to-chromium": "^1.3.57",
+ "node-releases": "^1.0.0-alpha.11"
+ }
+ },
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz",
+ "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=",
+ "dev": true,
+ "requires": {
+ "dot-prop": "^4.1.1",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-minify-font-values": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.0.tgz",
+ "integrity": "sha1-TMM9KD1qgXWQNudX75gdksvYW+0=",
+ "dev": true,
+ "requires": {
+ "postcss": "^6.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-minify-gradients": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.0.tgz",
+ "integrity": "sha1-P8ORZDnSepu4Bm23za2AFlDrCQ4=",
+ "dev": true,
+ "requires": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "is-color-stop": "^1.0.0",
+ "postcss": "^6.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-minify-params": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.0.tgz",
+ "integrity": "sha1-BekWbuSMBa9lGYnOhNOcG015BnQ=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "^1.0.0",
+ "cssnano-util-get-arguments": "^4.0.0",
+ "postcss": "^6.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "uniqs": "^2.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-minify-selectors": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.0.tgz",
+ "integrity": "sha1-sen2xGNBbT/Nyybnt4XZX2FXiq0=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "^1.0.0",
+ "has": "^1.0.0",
+ "postcss": "^6.0.0",
+ "postcss-selector-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz",
+ "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=",
+ "dev": true,
+ "requires": {
+ "dot-prop": "^4.1.1",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-modules-extract-imports": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz",
+ "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=",
+ "dev": true,
+ "requires": {
+ "postcss": "^6.0.1"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-modules-local-by-default": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz",
+ "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "^0.7.0",
+ "postcss": "^6.0.1"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-modules-scope": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz",
+ "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "^0.7.0",
+ "postcss": "^6.0.1"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-modules-values": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz",
+ "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=",
+ "dev": true,
+ "requires": {
+ "icss-replace-symbols": "^1.1.0",
+ "postcss": "^6.0.1"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-normalize-charset": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.0.tgz",
+ "integrity": "sha1-JFJyknAtXoEp6vo9HeSe1RpqtzA=",
+ "dev": true,
+ "requires": {
+ "postcss": "^6.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-normalize-display-values": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz",
+ "integrity": "sha1-lQ4Me+NEV3ChYP/9a2ZEw8DNj4k=",
+ "dev": true,
+ "requires": {
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^6.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-normalize-positions": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.0.tgz",
+ "integrity": "sha1-7pNDq5gbgixjq3JhXszNCFZERaM=",
+ "dev": true,
+ "requires": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "has": "^1.0.0",
+ "postcss": "^6.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-normalize-repeat-style": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.0.tgz",
+ "integrity": "sha1-txHFks8W+vn/V15C+hALZ5kIPv8=",
+ "dev": true,
+ "requires": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^6.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-normalize-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.0.tgz",
+ "integrity": "sha1-cYy20wpvrGrGqDDjLAbAfbxm/l0=",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.0",
+ "postcss": "^6.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-normalize-timing-functions": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.0.tgz",
+ "integrity": "sha1-A1HymIaqmB1D2RssK9GuptCvbSM=",
+ "dev": true,
+ "requires": {
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^6.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-normalize-unicode": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.0.tgz",
+ "integrity": "sha1-Ws1dR7rqXRdnSyzMSuUWb6iM35c=",
+ "dev": true,
+ "requires": {
+ "postcss": "^6.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-normalize-url": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.0.tgz",
+ "integrity": "sha1-t6nIrSbPJmlMFG6y1ovQz0mVbw0=",
+ "dev": true,
+ "requires": {
+ "is-absolute-url": "^2.0.0",
+ "normalize-url": "^3.0.0",
+ "postcss": "^6.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-normalize-whitespace": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.0.tgz",
+ "integrity": "sha1-HafnaxCuY8EYJ/oE/Du0oe/pnMA=",
+ "dev": true,
+ "requires": {
+ "postcss": "^6.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-ordered-values": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.0.0.tgz",
+ "integrity": "sha1-WLQMdPcuAi6zQVLBLksPk1RIL8I=",
+ "dev": true,
+ "requires": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "postcss": "^6.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-reduce-initial": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.1.tgz",
+ "integrity": "sha1-8tWPUM6isMXcEnjW6l7Q/1gpwpM=",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.0.0",
+ "caniuse-api": "^3.0.0",
+ "has": "^1.0.0",
+ "postcss": "^6.0.0"
+ },
+ "dependencies": {
+ "browserslist": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.0.2.tgz",
+ "integrity": "sha512-lpujC4zv1trcKUUwfD4pFVNga4YSpB3sLB+/I+A8gvGQxno1c0dMB2aCQy0FE5oUNIDjD9puFiFF0zeS6Ji48w==",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30000876",
+ "electron-to-chromium": "^1.3.57",
+ "node-releases": "^1.0.0-alpha.11"
+ }
+ },
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-reduce-transforms": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.0.tgz",
+ "integrity": "sha1-9kX8dEDDUnT0DegQThStcWPt8Yg=",
+ "dev": true,
+ "requires": {
+ "cssnano-util-get-match": "^4.0.0",
+ "has": "^1.0.0",
+ "postcss": "^6.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz",
+ "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=",
+ "dev": true,
+ "requires": {
+ "flatten": "^1.0.2",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ }
+ },
+ "postcss-svgo": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.0.tgz",
+ "integrity": "sha1-wLutAlIPxjbJ14sOhAPi5RXDIoU=",
+ "dev": true,
+ "requires": {
+ "is-svg": "^3.0.0",
+ "postcss": "^6.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "svgo": "^1.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-unique-selectors": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.0.tgz",
+ "integrity": "sha1-BMHpdkx1h0JhMDQCxB8Ol2n8VQE=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "^1.0.0",
+ "postcss": "^6.0.0",
+ "uniqs": "^2.0.0"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-value-parser": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz",
+ "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=",
+ "dev": true
+ },
+ "prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
+ "dev": true
+ },
+ "preserve": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
+ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
+ "dev": true
+ },
+ "prettier": {
+ "version": "1.13.7",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.13.7.tgz",
+ "integrity": "sha512-KIU72UmYPGk4MujZGYMFwinB7lOf2LsDNGSOC8ufevsrPLISrZbNJlWstRi3m0AMuszbH+EFSQ/r6w56RSPK6w==",
+ "dev": true
+ },
+ "pretty-error": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz",
+ "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=",
+ "dev": true,
+ "requires": {
+ "renderkid": "^2.0.1",
+ "utila": "~0.4"
+ }
+ },
+ "private": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
+ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
+ "dev": true
+ },
+ "process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
+ "dev": true
+ },
+ "progress": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz",
+ "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=",
+ "dev": true
+ },
+ "promise-inflight": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
+ "dev": true
+ },
+ "proxy-addr": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz",
+ "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==",
+ "dev": true,
+ "requires": {
+ "forwarded": "~0.1.2",
+ "ipaddr.js": "1.8.0"
+ }
+ },
+ "prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
+ "dev": true
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+ "dev": true
+ },
+ "psl": {
+ "version": "1.1.29",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz",
+ "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==",
+ "dev": true
+ },
+ "public-encrypt": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz",
+ "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "parse-asn1": "^5.0.0",
+ "randombytes": "^2.0.1"
+ }
+ },
+ "pump": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "pumpify": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
+ "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
+ "dev": true,
+ "requires": {
+ "duplexify": "^3.6.0",
+ "inherits": "^2.0.3",
+ "pump": "^2.0.0"
+ }
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "dev": true
+ },
+ "q": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
+ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
+ "dev": true
+ },
+ "querystring": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
+ "dev": true
+ },
+ "querystring-es3": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
+ "dev": true
+ },
+ "querystringify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.0.0.tgz",
+ "integrity": "sha512-eTPo5t/4bgaMNZxyjWx6N2a6AuE0mq51KWvpc7nU/MAqixcI6v6KrGUKES0HaomdnolQBBXU/++X6/QQ9KL4tw==",
+ "dev": true
+ },
+ "randomatic": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz",
+ "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^4.0.0",
+ "kind-of": "^6.0.0",
+ "math-random": "^1.0.1"
+ },
+ "dependencies": {
+ "is-number": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
+ "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ }
+ }
+ },
+ "randombytes": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz",
+ "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "randomfill": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
+ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
+ "dev": true,
+ "requires": {
+ "randombytes": "^2.0.5",
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "range-parser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
+ "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=",
+ "dev": true
+ },
+ "raw-body": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz",
+ "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=",
+ "dev": true,
+ "requires": {
+ "bytes": "3.0.0",
+ "http-errors": "1.6.2",
+ "iconv-lite": "0.4.19",
+ "unpipe": "1.0.0"
+ },
+ "dependencies": {
+ "depd": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz",
+ "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=",
+ "dev": true
+ },
+ "http-errors": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
+ "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
+ "dev": true,
+ "requires": {
+ "depd": "1.1.1",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.0.3",
+ "statuses": ">= 1.3.1 < 2"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.19",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
+ "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
+ "dev": true
+ },
+ "setprototypeof": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
+ "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=",
+ "dev": true
+ }
+ }
+ },
+ "read-pkg": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz",
+ "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=",
+ "dev": true,
+ "requires": {
+ "normalize-package-data": "^2.3.2",
+ "parse-json": "^4.0.0",
+ "pify": "^3.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "dev": true,
+ "requires": {
+ "find-up": "^1.0.0",
+ "read-pkg": "^1.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "^1.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^1.0.0"
+ }
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "readdirp": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz",
+ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "minimatch": "^3.0.2",
+ "readable-stream": "^2.0.2",
+ "set-immediate-shim": "^1.0.1"
+ }
+ },
+ "redent": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+ "dev": true,
+ "requires": {
+ "indent-string": "^2.1.0",
+ "strip-indent": "^1.0.1"
+ }
+ },
+ "reduce-css-calc": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.4.tgz",
+ "integrity": "sha512-i/vWQbyd3aJRmip9OVSN9V6nIjLf/gg/ctxb0CpvHWtcRysFl/ngDBQD+rqavxdw/doScA3GMBXhzkHQ4GCzFQ==",
+ "dev": true,
+ "requires": {
+ "css-unit-converter": "^1.1.1",
+ "postcss-value-parser": "^3.3.0"
+ }
+ },
+ "regenerate": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz",
+ "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==",
+ "dev": true
+ },
+ "regenerate-unicode-properties": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz",
+ "integrity": "sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw==",
+ "dev": true,
+ "requires": {
+ "regenerate": "^1.4.0"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
+ "dev": true
+ },
+ "regenerator-transform": {
+ "version": "0.12.4",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.12.4.tgz",
+ "integrity": "sha512-p2I0fY+TbSLD2/VFTFb/ypEHxs3e3AjU0DzttdPqk2bSmDhfSh5E54b86Yc6XhUa5KykK1tgbvZ4Nr82oCJWkQ==",
+ "dev": true,
+ "requires": {
+ "private": "^0.1.6"
+ }
+ },
+ "regex-cache": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
+ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
+ "dev": true,
+ "requires": {
+ "is-equal-shallow": "^0.1.3"
+ }
+ },
+ "regex-not": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
+ "regexpp": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz",
+ "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==",
+ "dev": true
+ },
+ "regexpu-core": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.2.0.tgz",
+ "integrity": "sha512-Z835VSnJJ46CNBttalHD/dB+Sj2ezmY6Xp38npwU87peK6mqOzOpV8eYktdkLTEkzzD+JsTcxd84ozd8I14+rw==",
+ "dev": true,
+ "requires": {
+ "regenerate": "^1.4.0",
+ "regenerate-unicode-properties": "^7.0.0",
+ "regjsgen": "^0.4.0",
+ "regjsparser": "^0.3.0",
+ "unicode-match-property-ecmascript": "^1.0.4",
+ "unicode-match-property-value-ecmascript": "^1.0.2"
+ }
+ },
+ "regjsgen": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.4.0.tgz",
+ "integrity": "sha512-X51Lte1gCYUdlwhF28+2YMO0U6WeN0GLpgpA7LK7mbdDnkQYiwvEpmpe0F/cv5L14EbxgrdayAG3JETBv0dbXA==",
+ "dev": true
+ },
+ "regjsparser": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.3.0.tgz",
+ "integrity": "sha512-zza72oZBBHzt64G7DxdqrOo/30bhHkwMUoT0WqfGu98XLd7N+1tsy5MJ96Bk4MD0y74n629RhmrGW6XlnLLwCA==",
+ "dev": true,
+ "requires": {
+ "jsesc": "~0.5.0"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ }
+ }
+ },
+ "relateurl": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
+ "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=",
+ "dev": true
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+ "dev": true
+ },
+ "renderkid": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.1.tgz",
+ "integrity": "sha1-iYyr/Ivt5Le5ETWj/9Mj5YwNsxk=",
+ "dev": true,
+ "requires": {
+ "css-select": "^1.1.0",
+ "dom-converter": "~0.1",
+ "htmlparser2": "~3.3.0",
+ "strip-ansi": "^3.0.0",
+ "utila": "~0.3"
+ },
+ "dependencies": {
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "utila": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz",
+ "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=",
+ "dev": true
+ }
+ }
+ },
+ "repeat-element": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
+ "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
+ "dev": true
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+ "dev": true
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "dev": true,
+ "requires": {
+ "is-finite": "^1.0.0"
+ }
+ },
+ "request": {
+ "version": "2.88.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
+ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
+ "dev": true,
+ "requires": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.0",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.4.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
+ }
+ },
+ "request-promise-core": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz",
+ "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.13.1"
+ }
+ },
+ "request-promise-native": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.5.tgz",
+ "integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=",
+ "dev": true,
+ "requires": {
+ "request-promise-core": "1.1.1",
+ "stealthy-require": "^1.1.0",
+ "tough-cookie": ">=2.3.3"
+ }
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+ "dev": true
+ },
+ "require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "dev": true
+ },
+ "require-main-filename": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
+ "dev": true
+ },
+ "require-uncached": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
+ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
+ "dev": true,
+ "requires": {
+ "caller-path": "^0.1.0",
+ "resolve-from": "^1.0.0"
+ }
+ },
+ "requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
+ "dev": true
+ },
+ "resolve": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz",
+ "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.5"
+ }
+ },
+ "resolve-cwd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz",
+ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=",
+ "dev": true,
+ "requires": {
+ "resolve-from": "^3.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
+ "dev": true
+ }
+ }
+ },
+ "resolve-from": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
+ "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=",
+ "dev": true
+ },
+ "resolve-url": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+ "dev": true
+ },
+ "restore-cursor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+ "dev": true,
+ "requires": {
+ "onetime": "^2.0.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+ "dev": true
+ },
+ "rgb-regex": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz",
+ "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=",
+ "dev": true
+ },
+ "rgba-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz",
+ "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=",
+ "dev": true
+ },
+ "rimraf": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
+ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.0.5"
+ }
+ },
+ "ripemd160": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+ "dev": true,
+ "requires": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1"
+ }
+ },
+ "run-async": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
+ "dev": true,
+ "requires": {
+ "is-promise": "^2.1.0"
+ }
+ },
+ "run-queue": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
+ "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
+ "dev": true,
+ "requires": {
+ "aproba": "^1.1.1"
+ }
+ },
+ "rw": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
+ "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q="
+ },
+ "rx-lite": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
+ "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=",
+ "dev": true
+ },
+ "rx-lite-aggregates": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
+ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
+ "dev": true,
+ "requires": {
+ "rx-lite": "*"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ },
+ "safe-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+ "dev": true,
+ "requires": {
+ "ret": "~0.1.10"
+ }
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+ "dev": true
+ },
+ "schema-utils": {
+ "version": "0.4.7",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz",
+ "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-keywords": "^3.1.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz",
+ "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^2.0.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-keywords": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz",
+ "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=",
+ "dev": true
+ },
+ "fast-deep-equal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
+ }
+ }
+ },
+ "select-hose": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
+ "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=",
+ "dev": true
+ },
+ "selfsigned": {
+ "version": "1.10.3",
+ "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.3.tgz",
+ "integrity": "sha512-vmZenZ+8Al3NLHkWnhBQ0x6BkML1eCP2xEi3JE+f3D9wW9fipD9NNJHYtE9XJM4TsPaHGZJIamrSI6MTg1dU2Q==",
+ "dev": true,
+ "requires": {
+ "node-forge": "0.7.5"
+ }
+ },
+ "semver": {
+ "version": "5.5.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
+ "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==",
+ "dev": true
+ },
+ "send": {
+ "version": "0.16.2",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
+ "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "~1.6.2",
+ "mime": "1.4.1",
+ "ms": "2.0.0",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.0",
+ "statuses": "~1.4.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "mime": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
+ "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
+ "dev": true
+ }
+ }
+ },
+ "serialize-javascript": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz",
+ "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==",
+ "dev": true
+ },
+ "serve-index": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
+ "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
+ "dev": true,
+ "requires": {
+ "accepts": "~1.3.4",
+ "batch": "0.6.1",
+ "debug": "2.6.9",
+ "escape-html": "~1.0.3",
+ "http-errors": "~1.6.2",
+ "mime-types": "~2.1.17",
+ "parseurl": "~1.3.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "serve-static": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
+ "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
+ "dev": true,
+ "requires": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.2",
+ "send": "0.16.2"
+ }
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+ "dev": true
+ },
+ "set-immediate-shim": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
+ "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
+ "dev": true
+ },
+ "set-value": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
+ "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
+ "dev": true
+ },
+ "setprototypeof": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
+ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
+ "dev": true
+ },
+ "sha.js": {
+ "version": "2.4.11",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "dev": true
+ },
+ "shell-quote": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz",
+ "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=",
+ "dev": true,
+ "requires": {
+ "array-filter": "~0.0.0",
+ "array-map": "~0.0.0",
+ "array-reduce": "~0.0.0",
+ "jsonify": "~0.0.0"
+ }
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "dev": true
+ },
+ "simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.3.1"
+ },
+ "dependencies": {
+ "is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
+ "dev": true
+ }
+ }
+ },
+ "slash": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
+ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0"
+ }
+ },
+ "snapdragon": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "dev": true,
+ "requires": {
+ "base": "^0.11.1",
+ "debug": "^2.2.0",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "map-cache": "^0.2.2",
+ "source-map": "^0.5.6",
+ "source-map-resolve": "^0.5.0",
+ "use": "^3.1.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "snapdragon-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+ "dev": true,
+ "requires": {
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ }
+ }
+ },
+ "snapdragon-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.2.0"
+ }
+ },
+ "sockjs": {
+ "version": "0.3.19",
+ "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz",
+ "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==",
+ "dev": true,
+ "requires": {
+ "faye-websocket": "^0.10.0",
+ "uuid": "^3.0.1"
+ }
+ },
+ "sockjs-client": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.5.tgz",
+ "integrity": "sha1-G7fA9yIsQPQq3xT0RCy9Eml3GoM=",
+ "dev": true,
+ "requires": {
+ "debug": "^2.6.6",
+ "eventsource": "0.1.6",
+ "faye-websocket": "~0.11.0",
+ "inherits": "^2.0.1",
+ "json3": "^3.3.2",
+ "url-parse": "^1.1.8"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "faye-websocket": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz",
+ "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=",
+ "dev": true,
+ "requires": {
+ "websocket-driver": ">=0.5.1"
+ }
+ }
+ }
+ },
+ "source-list-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz",
+ "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "source-map-resolve": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
+ "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
+ "dev": true,
+ "requires": {
+ "atob": "^2.1.1",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
+ }
+ },
+ "source-map-url": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
+ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
+ "dev": true
+ },
+ "spdx-correct": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz",
+ "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==",
+ "dev": true,
+ "requires": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-exceptions": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz",
+ "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==",
+ "dev": true
+ },
+ "spdx-expression-parse": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
+ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
+ "dev": true,
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-license-ids": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz",
+ "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==",
+ "dev": true
+ },
+ "spdy": {
+ "version": "3.4.7",
+ "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz",
+ "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=",
+ "dev": true,
+ "requires": {
+ "debug": "^2.6.8",
+ "handle-thing": "^1.2.5",
+ "http-deceiver": "^1.2.7",
+ "safe-buffer": "^5.0.1",
+ "select-hose": "^2.0.0",
+ "spdy-transport": "^2.0.18"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "spdy-transport": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.0.tgz",
+ "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==",
+ "dev": true,
+ "requires": {
+ "debug": "^2.6.8",
+ "detect-node": "^2.0.3",
+ "hpack.js": "^2.1.6",
+ "obuf": "^1.1.1",
+ "readable-stream": "^2.2.9",
+ "safe-buffer": "^5.0.1",
+ "wbuf": "^1.7.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "split-string": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^3.0.0"
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
+ "sshpk": {
+ "version": "1.14.2",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz",
+ "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
+ "dev": true,
+ "requires": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ }
+ },
+ "ssri": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.0.tgz",
+ "integrity": "sha512-zYOGfVHPhxyzwi8MdtdNyxv3IynWCIM4jYReR48lqu0VngxgH1c+C6CmipRdJ55eVByTJV/gboFEEI7TEQI8DA==",
+ "dev": true
+ },
+ "stable": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz",
+ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==",
+ "dev": true
+ },
+ "stackframe": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.0.4.tgz",
+ "integrity": "sha512-to7oADIniaYwS3MhtCa/sQhrxidCCQiF/qp4/m5iN3ipf0Y7Xlri0f6eG29r08aL7JYl8n32AF3Q5GYBZ7K8vw==",
+ "dev": true
+ },
+ "static-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+ "dev": true,
+ "requires": {
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "statuses": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
+ "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==",
+ "dev": true
+ },
+ "stealthy-require": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
+ "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=",
+ "dev": true
+ },
+ "stream-browserify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
+ "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
+ "dev": true,
+ "requires": {
+ "inherits": "~2.0.1",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "stream-each": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
+ "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "stream-http": {
+ "version": "2.8.3",
+ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
+ "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
+ "dev": true,
+ "requires": {
+ "builtin-status-codes": "^3.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.3.6",
+ "to-arraybuffer": "^1.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "stream-shift": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
+ "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ }
+ },
+ "string.prototype.padend": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz",
+ "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.4.3",
+ "function-bind": "^1.0.2"
+ }
+ },
+ "string.prototype.padstart": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.padstart/-/string.prototype.padstart-3.0.0.tgz",
+ "integrity": "sha1-W8+tOfRkm7LQMSkuGbzwtRDUskI=",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.4.3",
+ "function-bind": "^1.0.2"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ }
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true,
+ "requires": {
+ "is-utf8": "^0.2.0"
+ }
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+ "dev": true
+ },
+ "strip-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "^4.0.1"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "dev": true
+ },
+ "stylehacks": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.0.tgz",
+ "integrity": "sha1-ZLMjlRxKJOX8ey7AbBN78y0VXoo=",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.0.0",
+ "postcss": "^6.0.0",
+ "postcss-selector-parser": "^3.0.0"
+ },
+ "dependencies": {
+ "browserslist": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.0.2.tgz",
+ "integrity": "sha512-lpujC4zv1trcKUUwfD4pFVNga4YSpB3sLB+/I+A8gvGQxno1c0dMB2aCQy0FE5oUNIDjD9puFiFF0zeS6Ji48w==",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30000876",
+ "electron-to-chromium": "^1.3.57",
+ "node-releases": "^1.0.0-alpha.11"
+ }
+ },
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz",
+ "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=",
+ "dev": true,
+ "requires": {
+ "dot-prop": "^4.1.1",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "svgo": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.0.5.tgz",
+ "integrity": "sha512-nYrifviB77aNKDNKKyuay3M9aYiK6Hv5gJVDdjj2ZXTQmI8WZc8+UPLR5IpVlktJfSu3co/4XcWgrgI6seGBPg==",
+ "dev": true,
+ "requires": {
+ "coa": "~2.0.1",
+ "colors": "~1.1.2",
+ "css-select": "~1.3.0-rc0",
+ "css-select-base-adapter": "~0.1.0",
+ "css-tree": "1.0.0-alpha25",
+ "css-url-regex": "^1.1.0",
+ "csso": "^3.5.0",
+ "js-yaml": "~3.10.0",
+ "mkdirp": "~0.5.1",
+ "object.values": "^1.0.4",
+ "sax": "~1.2.4",
+ "stable": "~0.1.6",
+ "unquote": "~1.1.1",
+ "util.promisify": "~1.0.0"
+ },
+ "dependencies": {
+ "css-select": {
+ "version": "1.3.0-rc0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.3.0-rc0.tgz",
+ "integrity": "sha1-b5MZaqrnN2ZuoQNqjLFKj8t6kjE=",
+ "dev": true,
+ "requires": {
+ "boolbase": "^1.0.0",
+ "css-what": "2.1",
+ "domutils": "1.5.1",
+ "nth-check": "^1.0.1"
+ }
+ },
+ "js-yaml": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz",
+ "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ }
+ }
+ },
+ "table": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz",
+ "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==",
+ "dev": true,
+ "requires": {
+ "ajv": "^5.2.3",
+ "ajv-keywords": "^2.1.0",
+ "chalk": "^2.1.0",
+ "lodash": "^4.17.4",
+ "slice-ansi": "1.0.0",
+ "string-width": "^2.1.1"
+ }
+ },
+ "tapable": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz",
+ "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==",
+ "dev": true
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
+ "dev": true
+ },
+ "thread-loader": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/thread-loader/-/thread-loader-1.2.0.tgz",
+ "integrity": "sha512-acJ0rvUk53+ly9cqYWNOpPqOgCkNpmHLPDGduNm4hDQWF7EDKEJXAopG9iEWsPPcml09wePkq3NF+ZUqnO6tbg==",
+ "dev": true,
+ "requires": {
+ "async": "^2.3.0",
+ "loader-runner": "^2.3.0",
+ "loader-utils": "^1.1.0"
+ },
+ "dependencies": {
+ "async": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
+ "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.10"
+ }
+ }
+ }
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "dev": true
+ },
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^2.1.5",
+ "xtend": "~4.0.1"
+ }
+ },
+ "thunky": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.2.tgz",
+ "integrity": "sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=",
+ "dev": true
+ },
+ "timers-browserify": {
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz",
+ "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==",
+ "dev": true,
+ "requires": {
+ "setimmediate": "^1.0.4"
+ }
+ },
+ "timsort": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz",
+ "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
+ "dev": true
+ },
+ "tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dev": true,
+ "requires": {
+ "os-tmpdir": "~1.0.2"
+ }
+ },
+ "to-arraybuffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
+ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
+ "dev": true
+ },
+ "to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
+ "dev": true
+ },
+ "to-object-path": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ }
+ },
+ "to-regex": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "dev": true,
+ "requires": {
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ "dev": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ },
+ "dependencies": {
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ }
+ }
+ }
+ },
+ "topo": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.0.tgz",
+ "integrity": "sha512-Tlu1fGlR90iCdIPURqPiufqAlCZYzLjHYVVbcFWDMcX7+tK8hdZWAfsMrD/pBul9jqHHwFjNdf1WaxA9vTRRhw==",
+ "dev": true,
+ "requires": {
+ "hoek": "5.x.x"
+ }
+ },
+ "toposort": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz",
+ "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=",
+ "dev": true
+ },
+ "tough-cookie": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
+ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
+ "dev": true,
+ "requires": {
+ "psl": "^1.1.24",
+ "punycode": "^1.4.1"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+ "dev": true
+ }
+ }
+ },
+ "trim-newlines": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
+ "dev": true
+ },
+ "trim-right": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
+ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
+ "dev": true
+ },
+ "tryer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz",
+ "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==",
+ "dev": true
+ },
+ "tslib": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
+ "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
+ "dev": true
+ },
+ "tty-browserify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
+ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
+ "dev": true
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "tween.js": {
+ "version": "16.6.0",
+ "resolved": "https://registry.npmjs.org/tween.js/-/tween.js-16.6.0.tgz",
+ "integrity": "sha1-c5EEyTNsxPEe5T+c587eUeZyNiQ="
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "dev": true,
+ "optional": true
+ },
+ "type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "~1.1.2"
+ }
+ },
+ "type-is": {
+ "version": "1.6.16",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
+ "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
+ "dev": true,
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.18"
+ }
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "dev": true
+ },
+ "uglify-js": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.3.tgz",
+ "integrity": "sha512-RbOgGjF04sFUNSi8xGOTB9AmtVmMmVVAL5a7lxIgJ8urejJen+priq0ooRIHHa8AXI/dSvNF9yYMz9OP4PhybQ==",
+ "dev": true,
+ "requires": {
+ "commander": "~2.16.0",
+ "source-map": "~0.6.1"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.16.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz",
+ "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "uglifyjs-webpack-plugin": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz",
+ "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==",
+ "dev": true,
+ "requires": {
+ "cacache": "^10.0.4",
+ "find-cache-dir": "^1.0.0",
+ "schema-utils": "^0.4.5",
+ "serialize-javascript": "^1.4.0",
+ "source-map": "^0.6.1",
+ "uglify-es": "^3.3.4",
+ "webpack-sources": "^1.1.0",
+ "worker-farm": "^1.5.2"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "uglify-es": {
+ "version": "3.3.9",
+ "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz",
+ "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==",
+ "dev": true,
+ "requires": {
+ "commander": "~2.13.0",
+ "source-map": "~0.6.1"
+ }
+ }
+ }
+ },
+ "unicode-canonical-property-names-ecmascript": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
+ "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==",
+ "dev": true
+ },
+ "unicode-match-property-ecmascript": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz",
+ "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==",
+ "dev": true,
+ "requires": {
+ "unicode-canonical-property-names-ecmascript": "^1.0.4",
+ "unicode-property-aliases-ecmascript": "^1.0.4"
+ }
+ },
+ "unicode-match-property-value-ecmascript": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz",
+ "integrity": "sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ==",
+ "dev": true
+ },
+ "unicode-property-aliases-ecmascript": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz",
+ "integrity": "sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg==",
+ "dev": true
+ },
+ "union-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
+ "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
+ "dev": true,
+ "requires": {
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^0.4.3"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "set-value": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
+ "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.1",
+ "to-object-path": "^0.3.0"
+ }
+ }
+ }
+ },
+ "uniq": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
+ "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
+ "dev": true
+ },
+ "uniqs": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz",
+ "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=",
+ "dev": true
+ },
+ "unique-filename": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz",
+ "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=",
+ "dev": true,
+ "requires": {
+ "unique-slug": "^2.0.0"
+ }
+ },
+ "unique-slug": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz",
+ "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=",
+ "dev": true,
+ "requires": {
+ "imurmurhash": "^0.1.4"
+ }
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+ "dev": true
+ },
+ "unquote": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz",
+ "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=",
+ "dev": true
+ },
+ "unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+ "dev": true,
+ "requires": {
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
+ },
+ "dependencies": {
+ "has-value": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+ "dev": true,
+ "requires": {
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "dev": true,
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ }
+ }
+ },
+ "has-values": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+ "dev": true
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ }
+ }
+ },
+ "upath": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz",
+ "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==",
+ "dev": true
+ },
+ "upper-case": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
+ "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=",
+ "dev": true
+ },
+ "uri-js": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+ "dev": true,
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+ "dev": true
+ },
+ "url": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+ "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+ "dev": true,
+ "requires": {
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
+ "dev": true
+ }
+ }
+ },
+ "url-join": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz",
+ "integrity": "sha1-TTNA6AfTdzvamZH4MFrNzCpmXSo=",
+ "dev": true
+ },
+ "url-loader": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.1.tgz",
+ "integrity": "sha512-vugEeXjyYFBCUOpX+ZuaunbK3QXMKaQ3zUnRfIpRBlGkY7QizCnzyyn2ASfcxsvyU3ef+CJppVywnl3Kgf13Gg==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "^1.1.0",
+ "mime": "^2.0.3",
+ "schema-utils": "^1.0.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz",
+ "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^2.0.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-keywords": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz",
+ "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=",
+ "dev": true
+ },
+ "fast-deep-equal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
+ },
+ "schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ }
+ }
+ }
+ },
+ "url-parse": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.3.tgz",
+ "integrity": "sha512-rh+KuAW36YKo0vClhQzLLveoj8FwPJNu65xLb7Mrt+eZht0IPT0IXgSv8gcMegZ6NvjJUALf6Mf25POlMwD1Fw==",
+ "dev": true,
+ "requires": {
+ "querystringify": "^2.0.0",
+ "requires-port": "^1.0.0"
+ }
+ },
+ "use": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+ "dev": true
+ },
+ "util": {
+ "version": "0.10.4",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
+ "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "util.promisify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz",
+ "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "object.getownpropertydescriptors": "^2.0.3"
+ }
+ },
+ "utila": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
+ "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=",
+ "dev": true
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+ "dev": true
+ },
+ "uuid": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
+ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
+ "dev": true
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dev": true,
+ "requires": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+ "dev": true
+ },
+ "vendors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.2.tgz",
+ "integrity": "sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ==",
+ "dev": true
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ }
+ },
+ "vm-browserify": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
+ "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=",
+ "dev": true,
+ "requires": {
+ "indexof": "0.0.1"
+ }
+ },
+ "vue": {
+ "version": "2.5.17",
+ "resolved": "https://registry.npmjs.org/vue/-/vue-2.5.17.tgz",
+ "integrity": "sha512-mFbcWoDIJi0w0Za4emyLiW72Jae0yjANHbCVquMKijcavBGypqlF7zHRgMa5k4sesdv7hv2rB4JPdZfR+TPfhQ=="
+ },
+ "vue-eslint-parser": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz",
+ "integrity": "sha512-ZezcU71Owm84xVF6gfurBQUGg8WQ+WZGxgDEQu1IHFBZNx7BFZg3L1yHxrCBNNwbwFtE1GuvfJKMtb6Xuwc/Bw==",
+ "dev": true,
+ "requires": {
+ "debug": "^3.1.0",
+ "eslint-scope": "^3.7.1",
+ "eslint-visitor-keys": "^1.0.0",
+ "espree": "^3.5.2",
+ "esquery": "^1.0.0",
+ "lodash": "^4.17.4"
+ }
+ },
+ "vue-hot-reload-api": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.0.tgz",
+ "integrity": "sha512-2j/t+wIbyVMP5NvctQoSUvLkYKoWAAk2QlQiilrM2a6/ulzFgdcLUJfTvs4XQ/3eZhHiBmmEojbjmM4AzZj8JA==",
+ "dev": true
+ },
+ "vue-loader": {
+ "version": "15.4.0",
+ "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.4.0.tgz",
+ "integrity": "sha512-qhc1fnflEVhFq5dYLDXXTXf3PoRiGxeMhBmGDeLqlg0XAaikZEU224ZLqsTkQQVUT2uA2PN9haYlBUqq/6iEtA==",
+ "dev": true,
+ "requires": {
+ "@vue/component-compiler-utils": "^2.0.0",
+ "hash-sum": "^1.0.2",
+ "loader-utils": "^1.1.0",
+ "vue-hot-reload-api": "^2.3.0",
+ "vue-style-loader": "^4.1.0"
+ }
+ },
+ "vue-material-design-icons": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/vue-material-design-icons/-/vue-material-design-icons-1.6.0.tgz",
+ "integrity": "sha1-oGJe4jqJkkGHlr2xhK2NiAD8qhk="
+ },
+ "vue-style-loader": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.2.tgz",
+ "integrity": "sha512-0ip8ge6Gzz/Bk0iHovU9XAUQaFt/G2B61bnWa2tCcqqdgfHs1lF9xXorFbE55Gmy92okFT+8bfmySuUOu13vxQ==",
+ "dev": true,
+ "requires": {
+ "hash-sum": "^1.0.2",
+ "loader-utils": "^1.0.2"
+ }
+ },
+ "vue-template-compiler": {
+ "version": "2.5.17",
+ "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.5.17.tgz",
+ "integrity": "sha512-63uI4syCwtGR5IJvZM0LN5tVsahrelomHtCxvRkZPJ/Tf3ADm1U1wG6KWycK3qCfqR+ygM5vewUvmJ0REAYksg==",
+ "dev": true,
+ "requires": {
+ "de-indent": "^1.0.2",
+ "he": "^1.1.0"
+ }
+ },
+ "vue-template-es2015-compiler": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.6.0.tgz",
+ "integrity": "sha512-x3LV3wdmmERhVCYy3quqA57NJW7F3i6faas++pJQWtknWT+n7k30F4TVdHvCLn48peTJFRvCpxs3UuFPqgeELg==",
+ "dev": true
+ },
+ "vuejs-dialog": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/vuejs-dialog/-/vuejs-dialog-0.9.0.tgz",
+ "integrity": "sha512-nVWy+S9SCS95ECtvd3jZ978PHUx/zlMUg8kJ9ckmas7xPTIt2p5ZtRKwTwcQ173X4IhryBiUOVJYTBQyrabw5Q=="
+ },
+ "vuejs-logger": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/vuejs-logger/-/vuejs-logger-1.5.3.tgz",
+ "integrity": "sha512-jw+AQ+IMJBz18fA4opHsqaU7P7yQNugoGywT6i3DCd1BWqg9eUx03Fr21kayqGcP4dxUwhVkkjuOyeirxLJC8g==",
+ "requires": {
+ "es6-object-assign": "1.1.0"
+ }
+ },
+ "vuetify": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-1.1.13.tgz",
+ "integrity": "sha512-7EuKQdFfKi6LEu+y5OtVvErfXBJT0aL1MtXEvnPALRM6ynAVcXVUi8PLxccBiOfTRHTTdcbijp5gx6XvL3rECQ=="
+ },
+ "vuex": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.0.1.tgz",
+ "integrity": "sha512-wLoqz0B7DSZtgbWL1ShIBBCjv22GV5U+vcBFox658g6V0s4wZV9P4YjCNyoHSyIBpj1f29JBoNQIqD82cR4O3w=="
+ },
+ "watchpack": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz",
+ "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==",
+ "dev": true,
+ "requires": {
+ "chokidar": "^2.0.2",
+ "graceful-fs": "^4.1.2",
+ "neo-async": "^2.5.0"
+ }
+ },
+ "wbuf": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
+ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
+ "dev": true,
+ "requires": {
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "wcwidth": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
+ "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
+ "dev": true,
+ "requires": {
+ "defaults": "^1.0.3"
+ }
+ },
+ "webpack": {
+ "version": "4.16.5",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.16.5.tgz",
+ "integrity": "sha512-i5cHYHonzSc1zBuwB5MSzW4v9cScZFbprkHK8ZgzPDCRkQXGGpYzPmJhbus5bOrZ0tXTcQp+xyImRSvKb0b+Kw==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.5.13",
+ "@webassemblyjs/helper-module-context": "1.5.13",
+ "@webassemblyjs/wasm-edit": "1.5.13",
+ "@webassemblyjs/wasm-opt": "1.5.13",
+ "@webassemblyjs/wasm-parser": "1.5.13",
+ "acorn": "^5.6.2",
+ "acorn-dynamic-import": "^3.0.0",
+ "ajv": "^6.1.0",
+ "ajv-keywords": "^3.1.0",
+ "chrome-trace-event": "^1.0.0",
+ "enhanced-resolve": "^4.1.0",
+ "eslint-scope": "^4.0.0",
+ "json-parse-better-errors": "^1.0.2",
+ "loader-runner": "^2.3.0",
+ "loader-utils": "^1.1.0",
+ "memory-fs": "~0.4.1",
+ "micromatch": "^3.1.8",
+ "mkdirp": "~0.5.0",
+ "neo-async": "^2.5.0",
+ "node-libs-browser": "^2.0.0",
+ "schema-utils": "^0.4.4",
+ "tapable": "^1.0.0",
+ "uglifyjs-webpack-plugin": "^1.2.4",
+ "watchpack": "^1.5.0",
+ "webpack-sources": "^1.0.1"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz",
+ "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^2.0.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-keywords": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz",
+ "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=",
+ "dev": true
+ },
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "eslint-scope": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz",
+ "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "dev": true,
+ "requires": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ }
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dev": true,
+ "requires": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "fast-deep-equal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
+ "dev": true
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ }
+ }
+ }
+ },
+ "webpack-bundle-analyzer": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-2.13.1.tgz",
+ "integrity": "sha512-rwxyfecTAxoarCC9VlHlIpfQCmmJ/qWD5bpbjkof+7HrNhTNZIwZITxN6CdlYL2axGmwNUQ+tFgcSOiNXMf/sQ==",
+ "dev": true,
+ "requires": {
+ "acorn": "^5.3.0",
+ "bfj-node4": "^5.2.0",
+ "chalk": "^2.3.0",
+ "commander": "^2.13.0",
+ "ejs": "^2.5.7",
+ "express": "^4.16.2",
+ "filesize": "^3.5.11",
+ "gzip-size": "^4.1.0",
+ "lodash": "^4.17.4",
+ "mkdirp": "^0.5.1",
+ "opener": "^1.4.3",
+ "ws": "^4.0.0"
+ }
+ },
+ "webpack-chain": {
+ "version": "4.9.0",
+ "resolved": "https://registry.npmjs.org/webpack-chain/-/webpack-chain-4.9.0.tgz",
+ "integrity": "sha512-DQbqFAVEQg1+u9kXDMNyA4yZzQIf/tZD34GQ4ev97G3DrKtGYMyUyyUYZxt50qBPG1MMlKG12PwMrUjlth3uxg==",
+ "dev": true,
+ "requires": {
+ "deepmerge": "^1.5.2",
+ "javascript-stringify": "^1.6.0"
+ }
+ },
+ "webpack-dev-middleware": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.1.3.tgz",
+ "integrity": "sha512-I6Mmy/QjWU/kXwCSFGaiOoL5YEQIVmbb0o45xMoCyQAg/mClqZVTcsX327sPfekDyJWpCxb+04whNyLOIxpJdQ==",
+ "dev": true,
+ "requires": {
+ "loud-rejection": "^1.6.0",
+ "memory-fs": "~0.4.1",
+ "mime": "^2.1.0",
+ "path-is-absolute": "^1.0.0",
+ "range-parser": "^1.0.3",
+ "url-join": "^4.0.0",
+ "webpack-log": "^1.0.1"
+ }
+ },
+ "webpack-dev-server": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.5.tgz",
+ "integrity": "sha512-LVHg+EPwZLHIlfvokSTgtJqO/vI5CQi89fASb5JEDtVMDjY0yuIEqPPdMiKaBJIB/Ab7v/UN/sYZ7WsZvntQKw==",
+ "dev": true,
+ "requires": {
+ "ansi-html": "0.0.7",
+ "array-includes": "^3.0.3",
+ "bonjour": "^3.5.0",
+ "chokidar": "^2.0.0",
+ "compression": "^1.5.2",
+ "connect-history-api-fallback": "^1.3.0",
+ "debug": "^3.1.0",
+ "del": "^3.0.0",
+ "express": "^4.16.2",
+ "html-entities": "^1.2.0",
+ "http-proxy-middleware": "~0.18.0",
+ "import-local": "^1.0.0",
+ "internal-ip": "1.2.0",
+ "ip": "^1.1.5",
+ "killable": "^1.0.0",
+ "loglevel": "^1.4.1",
+ "opn": "^5.1.0",
+ "portfinder": "^1.0.9",
+ "selfsigned": "^1.9.1",
+ "serve-index": "^1.7.2",
+ "sockjs": "0.3.19",
+ "sockjs-client": "1.1.5",
+ "spdy": "^3.4.1",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^5.1.0",
+ "webpack-dev-middleware": "3.1.3",
+ "webpack-log": "^1.1.2",
+ "yargs": "11.0.0"
+ },
+ "dependencies": {
+ "del": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz",
+ "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=",
+ "dev": true,
+ "requires": {
+ "globby": "^6.1.0",
+ "is-path-cwd": "^1.0.0",
+ "is-path-in-cwd": "^1.0.0",
+ "p-map": "^1.1.1",
+ "pify": "^3.0.0",
+ "rimraf": "^2.2.8"
+ }
+ },
+ "globby": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
+ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
+ "dev": true,
+ "requires": {
+ "array-union": "^1.0.1",
+ "glob": "^7.0.3",
+ "object-assign": "^4.0.1",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ }
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ }
+ }
+ },
+ "webpack-log": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-1.2.0.tgz",
+ "integrity": "sha512-U9AnICnu50HXtiqiDxuli5gLB5PGBo7VvcHx36jRZHwK4vzOYLbImqT4lwWwoMHdQWwEKw736fCHEekokTEKHA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.1.0",
+ "log-symbols": "^2.1.0",
+ "loglevelnext": "^1.0.1",
+ "uuid": "^3.1.0"
+ }
+ },
+ "webpack-merge": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.4.tgz",
+ "integrity": "sha512-TmSe1HZKeOPey3oy1Ov2iS3guIZjWvMT2BBJDzzT5jScHTjVC3mpjJofgueEzaEd6ibhxRDD6MIblDr8tzh8iQ==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.5"
+ }
+ },
+ "webpack-sources": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz",
+ "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==",
+ "dev": true,
+ "requires": {
+ "source-list-map": "^2.0.0",
+ "source-map": "~0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "websocket-driver": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz",
+ "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
+ "dev": true,
+ "requires": {
+ "http-parser-js": ">=0.4.0",
+ "websocket-extensions": ">=0.1.1"
+ }
+ },
+ "websocket-extensions": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
+ "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
+ "dev": true
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
+ },
+ "wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
+ "dev": true
+ },
+ "worker-farm": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz",
+ "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==",
+ "dev": true,
+ "requires": {
+ "errno": "~0.1.7"
+ }
+ },
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ }
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "write": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
+ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
+ "dev": true,
+ "requires": {
+ "mkdirp": "^0.5.1"
+ }
+ },
+ "ws": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz",
+ "integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==",
+ "dev": true,
+ "requires": {
+ "async-limiter": "~1.0.0",
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+ "dev": true
+ },
+ "y18n": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+ "dev": true
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.0.0.tgz",
+ "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==",
+ "dev": true,
+ "requires": {
+ "cliui": "^4.0.0",
+ "decamelize": "^1.1.1",
+ "find-up": "^2.1.0",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^2.0.0",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^2.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^3.2.1",
+ "yargs-parser": "^9.0.2"
+ },
+ "dependencies": {
+ "y18n": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
+ "dev": true
+ }
+ }
+ },
+ "yargs-parser": {
+ "version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz",
+ "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^4.1.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+ "dev": true
+ }
+ }
+ },
+ "yorkie": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/yorkie/-/yorkie-2.0.0.tgz",
+ "integrity": "sha512-jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw==",
+ "dev": true,
+ "requires": {
+ "execa": "^0.8.0",
+ "is-ci": "^1.0.10",
+ "normalize-path": "^1.0.0",
+ "strip-indent": "^2.0.0"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "execa": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz",
+ "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ }
+ },
+ "normalize-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz",
+ "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=",
+ "dev": true
+ },
+ "strip-indent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
+ "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
+ "dev": true
+ }
+ }
+ }
+ }
+}
diff --git a/webapps/proteus-new/src/main/webapp/resources/package.json b/webapps/proteus-new/src/main/webapp/resources/package.json
new file mode 100644
index 0000000..c2b9944
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/resources/package.json
@@ -0,0 +1,57 @@
+{
+ "name": "proteus",
+ "version": "0.1.0",
+ "private": true,
+ "scripts": {
+ "serve": "vue-cli-service serve",
+ "clean": "test -e ../index.html && rm -r ../css ../favicon.ico ../fonts ../index.html ../js ../logo.png ../leaf-logo.png|| echo 'Already Clean'",
+ "build": "vue-cli-service build && mv dist/* ./.. && rm -r dist",
+ "lint": "vue-cli-service lint"
+ },
+ "dependencies": {
+ "axios": "^0.18.0",
+ "d3": "^5.6.0",
+ "tween.js": "^16.6.0",
+ "vue": "^2.5.17",
+ "vue-material-design-icons": "^1.6.0",
+ "vuejs-dialog": "^0.9.0",
+ "vuejs-logger": "^1.5.3",
+ "vuetify": "^1.1.13",
+ "vuex": "^3.0.1"
+ },
+ "devDependencies": {
+ "@vue/cli-plugin-babel": "^3.0.1",
+ "@vue/cli-plugin-eslint": "^3.0.1",
+ "@vue/cli-service": "^3.0.1",
+ "base-href-webpack-plugin": "^2.0.0",
+ "html-webpack-plugin": "^3.2.0",
+ "material-design-icons-iconfont": "^3.0.3",
+ "vue-template-compiler": "^2.5.17"
+ },
+ "eslintConfig": {
+ "root": false,
+ "env": {
+ "node": true
+ },
+ "extends": [
+ "plugin:vue/essential",
+ "eslint:recommended"
+ ],
+ "rules": {
+ "no-console": "warn"
+ },
+ "parserOptions": {
+ "parser": "babel-eslint"
+ }
+ },
+ "postcss": {
+ "plugins": {
+ "autoprefixer": {}
+ }
+ },
+ "browserslist": [
+ "> 1%",
+ "last 2 versions",
+ "not ie <= 8"
+ ]
+}
diff --git a/webapps/proteus-new/src/main/webapp/resources/public/favicon.ico b/webapps/proteus-new/src/main/webapp/resources/public/favicon.ico
new file mode 100644
index 0000000..c7b9a43
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/resources/public/favicon.ico
Binary files differ
diff --git a/webapps/proteus-new/src/main/webapp/resources/public/index.html b/webapps/proteus-new/src/main/webapp/resources/public/index.html
new file mode 100644
index 0000000..d2ea7e5
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/resources/public/index.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width,initial-scale=1.0">
+ <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Roboto:300,400,500,700,400italic">
+ <link rel="stylesheet" href="http://fonts.googleapis.com/icon?family=Material+Icons">
+ <link rel="icon" href="favicon.ico">
+ <base href="./"/>
+ <!-- <link rel="icon" href="<%= BASE_URL %>favicon.ico"> -->
+ <title>Proteus</title>
+</head>
+
+<body>
+ <noscript>
+ <strong>We're sorry but proteus doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
+ </noscript>
+ <div id="app"></div>
+ <!-- built files will be auto injected -->
+</body>
+
+</html>
\ No newline at end of file
diff --git a/webapps/proteus-new/src/main/webapp/resources/public/leaf-logo.png b/webapps/proteus-new/src/main/webapp/resources/public/leaf-logo.png
new file mode 100644
index 0000000..d9456e6
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/resources/public/leaf-logo.png
Binary files differ
diff --git a/webapps/proteus-new/src/main/webapp/resources/public/logo.png b/webapps/proteus-new/src/main/webapp/resources/public/logo.png
new file mode 100644
index 0000000..7800df9
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/resources/public/logo.png
Binary files differ
diff --git a/webapps/proteus-new/src/main/webapp/resources/src/App.vue b/webapps/proteus-new/src/main/webapp/resources/src/App.vue
new file mode 100644
index 0000000..23768ae
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/resources/src/App.vue
@@ -0,0 +1,310 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more contributor
+license agreements. See the NOTICE.txt file distributed with this work for
+additional information regarding copyright ownership. The ASF licenses this
+file to you under the Apache License, Version 2.0 (the "License"); you may not
+use this file except in compliance with the License. You may obtain a copy of
+the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations under
+the License.
+-->
+<template>
+ <div id="app">
+ <v-app >
+
+ <controllbar />
+ <v-navigation-drawer
+ :mini-variant.sync="mini"
+ v-model="drawer"
+ hide-overlay
+ absolute
+ stateless
+ >
+
+ <v-toolbar flat class="transparent">
+
+ <v-list class="pa-0">
+ <v-list-tile avatar>
+ <v-list-tile-avatar>
+ <img width=10px height=10px src="leaf-logo.png">
+ </v-list-tile-avatar>
+
+ <v-list-tile-content>
+ <v-list-tile-title>Proteus</v-list-tile-title>
+ </v-list-tile-content>
+
+ <v-list-tile-action>
+ <v-btn
+ icon
+ @click.stop="mini = !mini"
+ >
+ <v-icon>chevron_left</v-icon>
+ </v-btn>
+ </v-list-tile-action>
+ </v-list-tile>
+ </v-list>
+ </v-toolbar>
+ <v-spacer/>
+ <v-list class="pt-0" dense>
+ <v-divider></v-divider>
+
+ <v-list-tile
+ v-for="item in items"
+ :key="item.title"
+ @click="selectmenu(item)"
+ >
+ <v-list-tile-action>
+ <v-icon>{{ item.icon }}</v-icon>
+ </v-list-tile-action>
+
+ <v-list-tile-content>
+ <v-list-tile-title>{{ item.title }}</v-list-tile-title>
+ </v-list-tile-content>
+ </v-list-tile>
+ </v-list>
+ </v-navigation-drawer>
+ <div id="contentpane" >
+
+ <v-layout row wrap v-if="progress">
+ <v-flex xs3>
+ <filelistcomp/>
+ </v-flex>
+
+ <v-flex xs3>
+ <progresscomp/>
+ <statisticscomp/>
+ </v-flex>
+ <v-flex xs6>
+ <section >
+ <barchartcomp />
+ <piechart/>
+ </section>
+ </v-flex>
+
+ </v-layout>
+ <section v-else-if="stateView=='summary'">
+ <projectstable />
+ <v-flex xs12>
+ <section>
+ <bublechartcomp/>
+ </section>
+ </v-flex>
+ <v-spacer />
+
+ <v-layout row>
+
+ <licensepiecomp/>
+ <v-spacer/>
+ <topmimepiecomp/>
+
+ </v-layout>
+
+ </section>
+ <auditsummarycomp v-else/>
+ <v-snackbar
+ v-model="snackbar"
+ top
+ right
+ :timeout="6000"
+
+ >
+ <v-badge left center>
+ <span slot="badge">{{snackbarmessageindex}}</span>
+
+ </v-badge>
+ <v-icon
+ @click="snackbarmessageindex--"
+ color="grey lighten-1"
+ >
+ navigate_before
+ </v-icon>
+ {{snackbarmessages[snackbarmessageindex]}}
+
+ <v-icon
+ color="grey lighten-1"
+ @click="snackbarmessageindex++;
+ if(snackbarmessageindex>=snackbarmessages.length)snackbarmessageindex=snackbarmessages.length-1"
+ >
+ navigate_next
+ </v-icon>
+ <v-icon
+ color="red lighten-1"
+ @click="removeelement(snackbarmessageindex);"
+ >
+ clear
+ </v-icon>
+ <v-btn
+ color="pink"
+ flat
+ @click="snackbar = false"
+ >
+ Close
+ </v-btn>
+ </v-snackbar>
+ </div>
+
+ <v-spacer/>
+ <v-card id="footercard">
+ <img height="80px" src="logo.png">
+ </v-card>
+
+ </v-app>
+ </div>
+</template>
+<script>
+
+
+import controllbar from './components/controll_bar.vue'
+import projectstable from './components/projectstable.vue'
+import barchartcomp from './components/barchartcomp.vue'
+import piechart from './components/piechart.vue'
+import filelistcomp from './components/filelistcomp.vue'
+import statisticscomp from './components/statisticscomp.vue'
+import progresscomp from './components/progresscomp.vue'
+import bublechartcomp from './components/bublechartcomp.vue'
+import licensepiecomp from './components/licensepiecomp.vue'
+import topmimepiecomp from './components/topmimepiecomp.vue'
+import auditsummarycomp from './components/auditsummarycomp.vue'
+import store from './store/store'
+export default {
+ name: 'app',
+ store,
+ components: {
+
+ controllbar,
+ projectstable,
+ barchartcomp,
+ filelistcomp,
+ statisticscomp,
+ piechart,
+ progresscomp,
+ bublechartcomp,
+ licensepiecomp,
+ topmimepiecomp,
+ auditsummarycomp
+ },
+ data(){
+ return{
+ snackbar:false,
+ snackbarmessage:'',
+ snackbarmessageindex:0,
+ snackbarmessages:[],
+ drawer: true,
+ items: [
+ { title: 'Summary', icon: 'dashboard' },
+ { title: 'Audit', icon: 'question_answer' },
+
+ ],
+ mini: true,
+ right: null
+ }
+ },
+ methods:{
+ setHost(){
+ this.$log.info(location.origin)
+ store.commit("setOrigin",location.origin);
+ },
+ selectmenu(menu){
+ let options = {
+ html: false, // set to true if your message contains HTML tags. eg: "Delete <b>Foo</b> ?"
+ loader: false, // set to true if you want the dailog to show a loader after click on "proceed"
+ reverse: false, // switch the button positions (left to right, and vise versa)
+ okText: 'Yes',
+ cancelText: 'No',
+ animation: 'zoom', // Available: "zoom", "bounce", "fade"
+ type: 'basic', // coming soon: 'soft', 'hard'
+ verification: 'continue', // for hard confirm, user will be prompted to type this to enable the proceed button
+ verificationHelp: 'Type "[+:verification]" below to confirm', // Verification help text. [+:verification] will be matched with 'options.verification' (i.e 'Type "continue" below to confirm')
+ clicksCount: 3, // for soft confirm, user will be asked to click on "proceed" btn 3 times before actually proceeding
+ backdropClose: false // set to true to close the dialog when clicking outside of the dialog window, i.e. click landing on the mask
+ };
+ if(menu.title=="Summary"){
+ if(this.progress){
+
+ this.$dialog.confirm({title:"Confirm",body:'Currently on progress, do you want to close ?'},options)
+ .then(function () {
+ store.commit("setprogress",false);
+ })
+ .catch(function () {
+
+ });
+ }
+ store.commit("setView","summary");
+ }else if(menu.title=="Audit"){
+ if(this.progress){
+
+ this.$dialog.confirm({title:"Confirm",body:'Currently on progress, do you want to close ?'},options)
+ .then(function () {
+ store.commit("setprogress",false);
+ })
+ .catch(function () {
+
+ });
+ }
+ store.commit("setView","audit");
+ }
+ this.showsnackbar();
+ },
+ showsnackbar(){
+ this.snackbarmessageindex = this.snackbarmessages.length-1;
+ if(this.snackbarmessageindex>-1) this.snackbar=true;
+ },
+ addsnackbarmessage(message){
+ if(this.snackbarmessages.length==10){
+ this.snackbarmessages.shift();
+ }
+ this.snackbarmessages.push(message);
+
+ },
+ removeelement(position){
+ this.snackbarmessages.splice(position,1);
+ if(this.snackbarmessageindex!=0)this.snackbarmessageindex--;
+ }
+
+ },
+ computed:{
+ progress (){
+ return store.state.progress;
+ },
+ stateView(){
+ return store.state.view;
+ },
+ },
+ mounted(){
+ this.setHost();
+ }
+}
+</script>
+
+<style>
+#app {
+ font-family: 'Avenir', Helvetica, Arial, sans-serif;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ text-align: center;
+ color: #2c3e50;
+ margin-top: 0px;
+}
+
+#contentpane{
+ padding-left: 10%;
+ padding-right: 10%;
+ margin-bottom: 80px;
+}
+#footercard{
+ background-color: #2c3e50;
+ width: 100%;
+ height: auto;
+ position: fixed;
+ bottom: 0%;
+ z-index: 900;
+}
+
+#logospace{
+ width: 80%;
+}
+</style>
diff --git a/webapps/proteus-new/src/main/webapp/resources/src/components/auditsummarycomp.vue b/webapps/proteus-new/src/main/webapp/resources/src/components/auditsummarycomp.vue
new file mode 100644
index 0000000..bee6ae0
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/resources/src/components/auditsummarycomp.vue
@@ -0,0 +1,287 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more contributor
+license agreements. See the NOTICE.txt file distributed with this work for
+additional information regarding copyright ownership. The ASF licenses this
+file to you under the Apache License, Version 2.0 (the "License"); you may not
+use this file except in compliance with the License. You may obtain a copy of
+the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations under
+the License.
+-->
+<template lang="html">
+
+ <section class="auditsummarycomp">
+ <v-card>
+ <v-toolbar dark color="primary">
+ <v-toolbar-title class="white--text">Audit Summary</v-toolbar-title>
+ </v-toolbar>
+ <svg id="hzBarChart"/>
+ </v-card>
+
+ </section>
+
+</template>
+
+<script lang="js">
+ import * as d3 from 'd3';
+ import axios from 'axios';
+ import store from './../store/store'
+ export default {
+ name: 'auditsummarycomp',
+ store,
+ props: [],
+ mounted() {
+ this.loadData();
+ },
+ data() {
+ return {
+
+ }
+ },
+ methods: {
+ loadData(){
+ var label_names = [];
+ var Standards = [];
+ var Apache = [];
+ var Binaries = [];
+ var Generated = [];
+ var Unknown = [];
+ var Archives = [];
+ var Notes = [];
+
+ var rowCount = 0;
+
+ axios.get(this.origin + '/solr/statistics/select?q=type:software&fl=license_*,id&sort=id+asc&wt=json')
+ .then(response2=>{
+ rowCount = response2.data.response.numFound;
+ if(response2.data.response.numFound!=null){
+ axios.get(this.origin + '/solr/statistics/select?q=type:software&rows='+rowCount+'&fl=license_*,id&sort=id+asc&wt=json')
+ .then(response=>{
+
+
+ var docs = response.data.response.docs;
+
+ for(var i = 0; i < docs.length; i++) {
+ var doc = docs[i];
+ var repo = doc.id.split("/");
+ var reponame = repo[repo.length - 1];
+ if (reponame.indexOf("part") == 0)
+ reponame = repo[repo.length - 2];
+
+ if (label_names[label_names.length - 1] == reponame) {
+ Standards[Standards.length - 1] += doc["license_Standards"];
+ Apache[Apache.length - 1] += doc["license_Apache"];
+ Binaries[Binaries.length - 1] += doc["license_Binaries"];
+ Generated[Generated.length - 1] += doc["license_Generated"];
+ Unknown[Unknown.length - 1] += doc["license_Unknown"];
+ Archives[Archives.length - 1] += doc["license_Archives"];
+ Notes[Notes.length - 1] += doc["license_Notes"];
+ continue;
+ }
+
+ label_names.push(reponame);
+ Standards.push(doc["license_Standards"]);
+ Apache.push(doc["license_Apache"]);
+ Binaries.push(doc["license_Binaries"]);
+ Generated.push(doc["license_Generated"]);
+ Unknown.push(doc["license_Unknown"]);
+ Archives.push(doc["license_Archives"]);
+ Notes.push(doc["license_Notes"]);
+
+
+ }
+
+
+
+ var data = {
+ "labels": label_names,
+ "series": [
+ {
+ label: 'Standards',
+ values: Standards
+ },
+ {
+ label: 'Apache',
+ values: Apache
+ },
+ {
+ label: 'Binaries',
+ values: Binaries
+ },
+ {
+ label: 'Generated',
+ values: Generated
+ },
+ {
+ label: 'Unknown',
+ values: Unknown
+ },
+ {
+ label: 'Archives',
+ values: Archives
+ },
+ {
+ label: 'Notes',
+ values: Notes
+ }]
+ };
+
+
+ var chartWidth = 600,
+ barHeight = 25,
+ groupHeight = barHeight * data.series.length,
+ gapBetweenGroups = 25,
+ spaceForLabels = 150,
+ spaceForLegend = 150;
+
+ // Zip the series data together (first values, second values, etc.)
+ var zippedData = [];
+ for (i=0; i<data.labels.length; i++) {
+ for (var j=0; j<data.series.length; j++) {
+ zippedData.push(data.series[j].values[i]);
+ }
+ }
+
+ // Color scale
+ var color = d3.scaleOrdinal(d3.schemeAccent);
+ var mylabels = ["Standards", "Apache", "Binaries", "Generated", "Unknown", "Archives", "Notes"];
+ var chartHeight = barHeight * zippedData.length + gapBetweenGroups * data.labels.length;
+
+ var x = d3.scaleLinear()
+ .domain([0, d3.max(zippedData)])
+ .range([0, chartWidth]);
+
+ var y = d3.scaleLinear()
+ .range([chartHeight + gapBetweenGroups, 0]);
+
+ var yAxis = d3.axisLeft(x)
+ .tickFormat('')
+ .tickSize(0);
+
+ // Specify the chart area and dimensions
+ var chart = d3.select("#hzBarChart")
+ .attr("width", spaceForLabels + chartWidth + spaceForLegend)
+ .attr("height", chartHeight);
+
+ // Create bars
+ var bar = chart.selectAll("g")
+ .data(zippedData)
+ .enter().append("g")
+ .attr("transform", function(d, i) {
+ return "translate(" + spaceForLabels + "," + (i * barHeight + gapBetweenGroups * (0.5 + Math.floor(i/data.series.length))) + ")";
+ });
+
+ // Create rectangles of the correct width
+ bar.append("rect")
+ .attr("style", function(d,i) { return "fill:"+color(i % data.series.length); })
+ .attr("class", "bar")
+ .attr("width", function(x){return x>0?x:0})
+ .attr("height", barHeight - 1);
+
+ bar.append('rect')
+ .attr("x", function(d) {
+ var xtoreturn = x(d);
+ if(x(d) < 10) xtoreturn = x(d) + 10;
+ else if(x(d) < 75) xtoreturn = x(d) - 77;
+ else xtoreturn = x(d) - 83;
+ if(xtoreturn<0) return 0;
+ else return xtoreturn;
+ })
+ .attr("y", 7)
+ .attr('width', 80)
+ .attr('height', barHeight - 15)
+ .attr('fill', 'white')
+
+ // Add text label in bar
+ bar.append("text")
+ .attr("x", function(d) {
+ var xtoreturn = x(d)
+ if(x(d) < 80) xtoreturn = 5;
+ else xtoreturn = x(d) - 63;
+ if(xtoreturn<0) return 0;
+ else return xtoreturn })
+ .attr("y", (barHeight / 2)+1.5)
+ .attr("style", function(d,i) { return "fill:"+color(i % data.series.length); })
+ .attr("style", "font-size:.55em")
+ .text(function(d, i) { return d + " " + mylabels[i % data.series.length]; });
+
+
+ // Draw labels
+ bar.append("text")
+ .attr("class", "label")
+ .attr("x", function(d,i) {
+ console.log(d);
+ var x = -groupHeight/2;
+ if (i % data.series.length === 0)
+ x-= (data.labels[Math.floor(i/data.series.length)].length)*3;
+ return x; })
+ .attr("y", -20)
+ .attr("dy", ".35em")
+ .attr("transform","rotate(-90)")
+ .text(function(d,i) {
+ if (i % data.series.length === 0)
+ return data.labels[Math.floor(i/data.series.length)];
+ else
+ return ""});
+
+ chart.append("g")
+ .attr("class", "y axis")
+ .attr("transform", "translate(" + spaceForLabels + ", " + -gapBetweenGroups/2 + ")")
+ .call(yAxis);
+
+ // Draw legend
+ var legendRectSize = 18,
+ legendSpacing = 4;
+
+ var legend = chart.selectAll('.legend')
+ .data(data.series)
+ .enter()
+ .append('g')
+ .attr('transform', function (d, i) {
+ var height = legendRectSize + legendSpacing;
+ var offset = -gapBetweenGroups/2;
+ var horz = spaceForLabels + chartWidth + 40 - legendRectSize;
+ var vert = i * height - offset;
+ return 'translate(' + 0+ ',' + vert + ')';
+ });
+
+ legend.append('rect')
+ .attr('width', legendRectSize)
+ .attr('height', legendRectSize)
+ .style('fill', function (d, i) { return color(i); })
+ .style('stroke', function (d, i) { return color(i); });
+
+ legend.append('text')
+ .attr('class', 'legend')
+ .attr('x', legendRectSize + legendSpacing)
+ .attr('y', legendRectSize - legendSpacing)
+ .text(function (d) { return d.label; });
+
+
+ });
+ }
+
+ });
+
+
+
+ }
+ },
+ computed: {
+ origin(){
+ return store.state.origin;
+ }
+ }
+}
+</script>
+
+<style scoped >
+ .auditsummarycomp {
+ margin-top: 5%;
+ margin-bottom: 10%;
+ }
+</style>
diff --git a/webapps/proteus-new/src/main/webapp/resources/src/components/barchartcomp.vue b/webapps/proteus-new/src/main/webapp/resources/src/components/barchartcomp.vue
new file mode 100644
index 0000000..648c113
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/resources/src/components/barchartcomp.vue
@@ -0,0 +1,175 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more contributor
+license agreements. See the NOTICE.txt file distributed with this work for
+additional information regarding copyright ownership. The ASF licenses this
+file to you under the Apache License, Version 2.0 (the "License"); you may not
+use this file except in compliance with the License. You may obtain a copy of
+the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations under
+the License.
+-->
+<template lang="html">
+
+ <section class="barchartcomp">
+ <v-card id = "barchart">
+ <v-toolbar height="50" color="primary" dark>
+ <v-toolbar-title>License Breakdown</v-toolbar-title>
+ <v-spacer></v-spacer>
+ </v-toolbar>
+
+ <svg id="barsvg" width="400" height="270">
+
+ </svg>
+
+ </v-card>
+ </section>
+
+</template>
+
+<script lang="js">
+import * as d3 from 'd3';
+import axios from 'axios';
+import store from './../store/store'
+
+ export default {
+ name: 'barchartcomp',
+ props: [],
+ store,
+ mounted() {
+ this.timerClearvar = setInterval(function () {
+ if(this.currentState=="MAP" || this.currentState=="REDUCE")this.loadData();
+ }.bind(this), 1000);
+
+ },
+ beforeDestroy(){
+ clearInterval(this.timerClearvar);
+ },
+ data() {
+ return {
+ licenseTypes : [],
+ emptynote : '',
+ timerClearvar:''
+
+ }
+ },
+ watch:{
+
+ },
+ methods: {
+ loadData(){
+
+ axios.get(this.origin+"/proteus/service/repo/breakdown/license")
+ .then(response=>{
+ this.licenseTypes=response.data;
+ this.init();
+ })
+ .catch(error=>{
+ this.emptynote = error.toString();
+ throw error;
+ })
+
+ },
+ init(){
+ var svg = d3.select("#barsvg"),
+ margin = {top: 20, right: 20, bottom: 50, left: 40},
+ width = +svg.attr("width") - margin.left - margin.right,
+ height = +svg.attr("height") - margin.top - margin.bottom;
+
+ svg.selectAll("*").remove();
+
+ var x = d3.scaleBand().rangeRound([0, width]).padding(0.1),
+ y = d3.scaleLinear().rangeRound([height, 0]);
+
+ var g = svg.append("g")
+ .attr("transform", "translate(" + margin.left + "," + margin.top + ")");
+
+
+
+ var dataval = this.dts;
+ if(dataval.length!=0){
+ this.emptynote='';
+ x.domain(dataval.map(function(d) { return d.letter; }));
+ y.domain([0, d3.max(dataval, function(d) { return d.frequency; })]);
+
+ g.append("g")
+ .attr("class", "axis axis--x")
+ .attr("transform", "translate(0," + height + ")")
+
+ .call(d3.axisBottom(x))
+ .selectAll("text")
+ .attr("transform", "rotate(15)")
+ .style("text-anchor", "start");
+
+
+
+
+ g.append("g")
+ .attr("class", "axis axis--y")
+ .call(d3.axisLeft(y).ticks(10, "%"))
+ .append("text")
+ .attr("transform", "rotate(-90)")
+ .attr("y", 6)
+ .attr("dy", "0.71em")
+ .attr("text-anchor", "end")
+
+ .text("Frequency");
+
+
+ g.selectAll(".bar")
+ .data(dataval)
+ .enter()
+ .append("rect")
+ .attr("class", "bar")
+ .attr("x", function(d) { return x(d.letter); })
+ .attr("y", function(d) { return y(d.frequency); })
+ .attr("width", x.bandwidth())
+ .attr("height", function(d) { return height - y(d.frequency); });
+
+ }else{
+ this.emptynote = "Retrieving Data...";
+ }
+
+ },
+
+
+
+ },
+ computed: {
+ dts:function (){
+ var out = [];
+ for(var item in this.licenseTypes){
+ out.push({letter:this.licenseTypes[item].type,frequency:this.licenseTypes[item].weight});
+ }
+ return out;
+ },
+ origin(){
+ return store.state.origin;
+ },
+ currentState(){
+ return store.state.currentActionStep;
+ }
+ }
+}
+</script>
+
+<style>
+.bar {
+ fill: steelblue;
+}
+
+.bar:hover {
+ fill: brown;
+}
+
+
+
+ #barchart {
+ margin-top: 5%;
+ margin-bottom :5%;
+ margin-left:5%
+ }
+</style>
diff --git a/webapps/proteus-new/src/main/webapp/resources/src/components/bublechartcomp.vue b/webapps/proteus-new/src/main/webapp/resources/src/components/bublechartcomp.vue
new file mode 100644
index 0000000..95766ab
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/resources/src/components/bublechartcomp.vue
@@ -0,0 +1,195 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more contributor
+license agreements. See the NOTICE.txt file distributed with this work for
+additional information regarding copyright ownership. The ASF licenses this
+file to you under the Apache License, Version 2.0 (the "License"); you may not
+use this file except in compliance with the License. You may obtain a copy of
+the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations under
+the License.
+-->
+<template lang="html">
+
+ <section class="bublechartcomp">
+ <v-card id="bublecard">
+ <v-toolbar dark color="primary">
+ <v-toolbar-title class="white--text">All MIME Types</v-toolbar-title>
+ </v-toolbar>
+
+ <svg id="bublesvg" width="400" height="300"></svg>
+ </v-card>
+
+ </section>
+
+</template>
+
+<script lang="js">
+ import * as d3 from 'd3';
+ import axios from 'axios';
+ import store from './../store/store';
+ export default {
+ name: 'bublechartcomp',
+ store,
+ props: [],
+ mounted() {
+ this.init();
+ this.timerClearVar = setInterval(function(){
+ this.init();
+ }.bind(this),30000);
+ },
+ data() {
+ return {
+ data:[],
+ timerClearVar:'',
+ }
+ },
+ beforeDestroy(){
+ clearInterval(this.timerClearVar)
+ },
+ methods: {
+ init(){
+
+ var diameter = 860,
+ format = d3.format(",d"),
+ color = d3.scaleOrdinal(d3.schemeBrBG[11]);
+
+
+
+ var bubble = d3.pack()
+ .size([diameter, diameter])
+ .padding(1.5);
+
+
+ var svg = d3.select("#bublesvg")
+ .attr("width", diameter)
+ .attr("height", diameter)
+ .attr("class", "bubble");
+
+
+ axios.get(this.origin + '/solr/statistics/select?q=type:software&fl=mime_*&wt=json')
+ .then(response2=>{
+ if(response2.data.response.numFound!=null){
+ axios.get(this.origin + '/solr/statistics/select?q=type:software&rows='+response2.data.response.numFound+'&fl=mime_*&wt=json')
+ .then(response=>{
+
+
+ var docs = response.data.response.docs;
+ var resultingData = [];
+ var mime = {};
+
+ for(var i = 0; i < docs.length; i++) {
+ var doc = docs[i];
+ for(var x in doc) {
+ var key = x.split("mime_")[1];
+ var value = doc[x];
+ if(typeof mime[key] === 'undefined') {
+ mime[key] = value;
+ }
+ else {
+ mime[key] += value;
+ }
+ }
+ }
+
+
+ for(x in mime) {
+ var obj = {};
+ var jsonObject = {};
+ var child = [];
+ obj["name"] = x;
+ jsonObject["name"] = x;
+
+ jsonObject["size"] = mime[x];
+ child.push(jsonObject);
+ obj["children"] = child;
+ resultingData.push(obj);
+ }
+
+
+
+ var test = {}
+ test["name"] = "flare"
+ test["children"] = resultingData
+
+ var range = d3.schemeBrBG[11];
+ range = range.concat(d3.schemePRGn[11]);
+
+ color = d3.scaleOrdinal(range);
+
+ var root = d3.hierarchy(classes(test))
+ .sum(function(d){
+ return d.value;
+ })
+
+
+ bubble(root);
+
+ var node = svg.selectAll(".node")
+ .data(root.children)
+
+ .enter().append("g")
+ .attr("class", "node")
+ .attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; });
+
+ node.append("title")
+ .text(function(d) {
+ return d.data.className + ": " + format(d.value);
+ });
+
+ node.append("circle")
+ .attr("r", function(d) { return d.r; })
+ .attr("style",function(d){
+
+ return "fill:"+color(d.data.className);});
+
+ node.append("text")
+ .attr("dy", ".3em")
+ .style("text-anchor", "middle")
+ .text(function(d) { return d.data.className.substring(0, d.r / 3); });
+ });
+ }
+
+ });
+
+
+
+ // Returns a flattened hierarchy containing all leaf nodes under the root.
+ function classes(root) {
+ var classes = [];
+
+ function recurse(name, node) {
+ if (node.children) node.children.forEach(function(child) { recurse(node.name, child); });
+ else classes.push({packageName: name, className: node.name, value: node.size});
+ }
+
+ recurse(null, root);
+ return {children: classes};
+ }
+
+ d3.select(self.frameElement).style("height", diameter + "px");
+ },
+
+
+ },
+
+
+
+
+ computed: {
+ origin(){
+ return store.state.origin;
+ }
+ }
+}
+</script>
+
+<style scoped>
+ .bublechartcomp {
+ margin-top: 5%;
+ margin-bottom: 5%;
+ }
+</style>
diff --git a/webapps/proteus-new/src/main/webapp/resources/src/components/controll_bar.vue b/webapps/proteus-new/src/main/webapp/resources/src/components/controll_bar.vue
new file mode 100644
index 0000000..09ad7af
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/resources/src/components/controll_bar.vue
@@ -0,0 +1,229 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more contributor
+license agreements. See the NOTICE.txt file distributed with this work for
+additional information regarding copyright ownership. The ASF licenses this
+file to you under the Apache License, Version 2.0 (the "License"); you may not
+use this file except in compliance with the License. You may obtain a copy of
+the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations under
+the License.
+-->
+<template lang="html">
+ <section class="controll-bar">
+ <v-card id="controllbarcard">
+ <v-layout row wrap>
+ <v-text-field
+ solo
+ name="url"
+ label="Repository to add to DRAT"
+ single-line
+ v-model="url"
+ />
+ <v-btn v-on:click="dialog=true" color="primary" medium> Run </v-btn>
+ <v-dialog v-model="dialog" persistent max-width="500px">
+ <v-card id="repodetailscard">
+ <v-text-field
+ solo
+ name="url"
+ label="Repository to add to DRAT"
+ single-line
+ v-model="url"
+ />
+ <hr>
+ <v-text-field
+ solo
+ name="name"
+ label="Name of the repository"
+ single-line
+ v-model="reponame"
+ />
+
+ <v-spacer/>
+ <hr/>
+ <v-text-field
+ solo
+ name="description"
+ label="Description about the repository"
+
+ v-model="repodesc"
+ />
+ <hr/>
+
+ <v-select xs1
+ v-model="selectedAction"
+ :items="dratoptions"
+ label="Action"
+ required
+ dense
+ nudge-width
+ @change="$v.select.$touch()"
+ @blur="$v.select.$touch()"
+ />
+ <v-btn v-on:click="dialog=false">Close</v-btn>
+ <v-btn v-on:click="go" color="primary">Run</v-btn>
+ </v-card>
+ </v-dialog>
+ </v-layout>
+ </v-card>
+ </section>
+
+</template>
+
+<script lang="js">
+ import store from './../store/store'
+ import axios from 'axios'
+
+ export default {
+ name: 'controllbar',
+ store,
+ props: [],
+ mounted() {
+
+ },
+ watch:{
+ progress:function(newVal){
+ if(newVal==false){
+ this.clearRepoDetails();
+ }
+ }
+ },
+ data() {
+ return {
+ dialog:false,
+ msg: 'null for now',
+ url: '',
+ repo:'',
+ repodesc:'',
+ repoloc:'',
+ reponame:'',
+ dratoptions:["Go","Crawl","Index","Map","Reduce","Reset"],
+ selectedAction:'Go'
+ }
+ },
+ methods: {
+ clearRepoDetails:function(){
+ this.url="";
+ this.repo="";
+ this.repodesc="";
+ this.repoloc="";
+ this.reponame="";
+ },
+ run: function(){
+
+ store.commit("invert");
+ store.commit("setCurrentRepo",this.url);
+ },
+ search:function(){
+ store.commit("setprogress",false);
+ },
+ go: function(){
+ let options = {
+ html: false, // set to true if your message contains HTML tags. eg: "Delete <b>Foo</b> ?"
+ loader: false, // set to true if you want the dailog to show a loader after click on "proceed"
+ reverse: true, // switch the button positions (left to right, and vise versa)
+ okText: 'Ok',
+ cancelText: 'Close',
+ animation: 'zoom', // Available: "zoom", "bounce", "fade"
+ type: 'basic', // coming soon: 'soft', 'hard'
+ verification: 'continue', // for hard confirm, user will be prompted to type this to enable the proceed button
+ verificationHelp: 'Type "[+:verification]" below to confirm', // Verification help text. [+:verification] will be matched with 'options.verification' (i.e 'Type "continue" below to confirm')
+ clicksCount: 3, // for soft confirm, user will be asked to click on "proceed" btn 3 times before actually proceeding
+ backdropClose: false // set to true to close the dialog when clicking outside of the dialog window, i.e. click landing on the mask
+ };
+ var action = "go";
+ switch(this.selectedAction){
+ case "Go":
+ action = "go";
+ break;
+ case "Index":
+ action = "index";
+ break;
+ case "Crawl":
+ action= "crawl";
+ break;
+
+ case "Map":
+ action = "map";
+ break;
+
+ case "Reduce":
+ action = "reduce";
+ break;
+ case "Reset":
+ action = "reset";
+ break;
+
+ }
+
+ if(this.url.length==0 ){
+ this.$dialog.alert({title:"Invalid input",body:'Please enter valid path and location, then continue'},options)
+ .then(function () {
+
+ })
+ .catch(function () {
+
+ });
+ }else{
+ if(action==="reset"){
+ axios.post(this.origin+"/proteus/drat/reset","")
+ .then(response=>{
+ this.$log.info(response.data);
+ })
+ }else{
+ store.commit("setCurrentActionRequest",action.toUpperCase());
+ store.commit("setprogress",true);
+ store.commit("setCurrentRepo",this.url);
+ this.dialog = false;
+ var body = {
+ id:this.repoloc,
+ repo:this.url,
+ name:this.reponame,
+ loc_url:this.repoloc,
+ description:this.repodesc
+ };
+ axios.post(this.origin+"/proteus/drat/"+action,body)
+ .then(response=>{
+ this.$log.info(response.data);
+ })
+ .catch(error=>{
+ throw error;
+ })
+ }
+ }
+
+ }
+
+ },
+ computed: {
+ currentRepo (){
+ return store.state.currentRepo;
+ },
+ origin(){
+ return store.state.origin;
+ },
+ progress(){
+ return store.state.progress;
+ }
+
+ }
+}
+</script>
+
+<style scoped>
+
+
+ #controllbarcard{
+ padding: 1%;
+ padding-left: 10%;
+ padding-right: 10%;
+ }
+
+ #repodetailscard{
+ padding: 2%;
+ }
+</style>
+run
\ No newline at end of file
diff --git a/webapps/proteus-new/src/main/webapp/resources/src/components/filelistcomp.vue b/webapps/proteus-new/src/main/webapp/resources/src/components/filelistcomp.vue
new file mode 100644
index 0000000..a4dc90b
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/resources/src/components/filelistcomp.vue
@@ -0,0 +1,116 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more contributor
+license agreements. See the NOTICE.txt file distributed with this work for
+additional information regarding copyright ownership. The ASF licenses this
+file to you under the Apache License, Version 2.0 (the "License"); you may not
+use this file except in compliance with the License. You may obtain a copy of
+the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations under
+the License.
+-->
+
+<template lang="html">
+
+ <section class="filelistcomp" >
+ <v-card id="filelistcard">
+ <v-toolbar height="50" color="primary" dark>
+ <v-toolbar-title>Files List</v-toolbar-title>
+ <v-spacer></v-spacer>
+ </v-toolbar>
+ <strong v-if="fileslist.length==0">Empty List of files</strong>
+ <v-list >
+ <template v-for="(file) in fileslist">
+ <v-list-tile id="tile"
+ :key="file.link"
+ avatar
+ ripple
+ >
+ <v-list-tile-content>
+ <v-list-tile-title>{{file.title}}</v-list-tile-title>
+ </v-list-tile-content>
+ </v-list-tile>
+ <v-divider :key="file.link"/>
+ </template>
+ </v-list>
+ </v-card>
+ </section>
+
+</template>
+
+<script lang="js">
+import axios from 'axios';
+import store from './../store/store';
+ export default {
+ name: 'filelistcomp',
+ store,
+ props: [],
+ mounted() {
+ this.timerClearVar = setInterval(function () {
+ if(this.currentState=="CRAWL")this.loadData();
+ }.bind(this), 1000);
+
+ },
+ beforeDestroy(){
+ clearInterval(this.timerClearVar);
+ },
+ data() {
+ return {
+ data:[],
+ fileslist:[],
+ timerClearVar:'',
+ }
+ },
+ methods: {
+ loadData(){
+ if(this.currentRepo.indexOf("http")>=0){
+ axios.get(this.origin+"/proteus/drat/currentrepo")
+ .then(response=>{
+ store.commit("setCurrentRepo",response.data);
+ });
+ }
+ if(this.currentRepo!=''){
+ axios.get(this.origin+"/proteus/service/products?topn=10")
+ .then(response=>{
+
+ response.data.forEach((v, i) => {
+ const val = (typeof v === 'object') ? Object.assign({}, v) : v;
+ this.fileslist.splice(i,1,val)
+ });
+
+ })
+ .catch(error=>{
+ this.$log.info(error.toString()+"Progress");
+ })
+
+ }
+
+ }
+ },
+ computed: {
+ currentRepo (){
+ return store.state.currentRepo;
+ },
+ origin(){
+ return store.state.origin;
+ },
+ currentState(){
+ return store.state.currentActionStep;
+ }
+
+ }
+}
+</script>
+
+<style >
+ #filelistcard{
+ margin-top:10%
+ }
+ #tile{
+ height: 35px;
+
+ }
+</style>
diff --git a/webapps/proteus-new/src/main/webapp/resources/src/components/licensepiecomp.vue b/webapps/proteus-new/src/main/webapp/resources/src/components/licensepiecomp.vue
new file mode 100644
index 0000000..7b6f078
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/resources/src/components/licensepiecomp.vue
@@ -0,0 +1,177 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more contributor
+license agreements. See the NOTICE.txt file distributed with this work for
+additional information regarding copyright ownership. The ASF licenses this
+file to you under the Apache License, Version 2.0 (the "License"); you may not
+use this file except in compliance with the License. You may obtain a copy of
+the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations under
+the License.
+-->
+
+<template lang="html">
+
+ <section class="licensepiecomp">
+ <v-card id="licensecard">
+ <v-toolbar dark color="primary">
+ <v-toolbar-title class="white--text">License Types</v-toolbar-title>
+ </v-toolbar>
+
+ <svg id="pielicensesvg" width="420" height="600"></svg>
+ </v-card>
+ </section>
+
+</template>
+
+<script lang="js">
+ import * as d3 from 'd3';
+ import axios from 'axios';
+ import store from './../store/store'
+ export default {
+ name: 'licensepiecomp',
+ store,
+ props: [],
+ mounted() {
+ this.init();
+ },
+ data() {
+ return {
+
+ }
+ },
+ methods: {
+ init(){
+ axios.get(this.origin + '/solr/statistics/select?q=type:software&fl=license_*&wt=json')
+ .then(response2=>{
+ if(response2.data.response.numFound!=null){
+ axios.get(this.origin + '/solr/statistics/select?q=type:software&rows='+response2.data.response.numFound+'&fl=license_*&wt=json')
+ .then(function(response) {
+
+ console.log(response.data);
+ var docs = response.data.response.docs;
+ var resultingData = [];
+ var result = [];
+ var license = {};
+
+ for(var i = 0; i < docs.length; i++) {
+ var doc = docs[i];
+ for(var x in doc) {
+ var key = x.split("license_")[1];
+ var value = doc[x];
+ if(typeof license[key] === 'undefined') {
+ license[key] = value;
+ }
+ else {
+ license[key] += value;
+ }
+ }
+ }
+
+ for(x in license) {
+ var jsonObject = {};
+ jsonObject["key"] = x;
+ jsonObject["y"] = license[x];
+ resultingData.push(jsonObject);
+ }
+
+ resultingData.sort(function(a, b) {
+ return b.y - a.y;
+ });
+
+ for( i = 0; i < resultingData.length; i++) {
+ if(resultingData[i]["y"] == 0)
+ break;
+ result[i] = resultingData[i];
+ }
+
+ var svg = d3.select("#pielicensesvg"),
+ width = +svg.attr("width"),
+ height = +svg.attr("height"),
+ radius = Math.min(width, height) / 2,
+ g = svg.append("g").attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");
+
+ var color = d3.scaleOrdinal(d3.schemeSet3);
+
+ var pie = d3.pie()
+ .sort(null)
+ .value(function(d) { return d.y; });
+
+ var path = d3.arc()
+ .outerRadius(radius - 10)
+ .innerRadius(0);
+
+ var label = d3.arc()
+ .outerRadius(radius - 40)
+ .innerRadius(radius - 40);
+ var arc = g.selectAll(".arc")
+ .data(pie(result))
+ .enter().append("g")
+ .attr("class", "arc");
+
+ arc.append("path")
+ .attr("d", path)
+ .attr("style", function(d) { return "fill:"+color(d.data.key) });
+
+ arc.append("text")
+ .attr("transform", function(d) { return "translate(" + label.centroid(d) + ")"; })
+ .attr("dy", "0.35em")
+ .text(function(d) { return d.data.key; });
+
+ var legend = d3.select("#pielicensesvg").append("svg")
+ .attr("class", "legend")
+ .selectAll("g")
+ .data(pie(result))//setting the data as we know there are only two set of data[programmar/tester] as per the nest function you have written
+ .enter().append("g")
+ .attr("transform", function(d, i) { return "translate(0," + ((i + 1)* 20) + ")"; });
+
+ legend.append("rect")
+ .attr("width", 18)
+ .attr("height", 18)
+ .style("fill", function(d, i) {
+ return color(d.data.key);
+ });
+
+ legend.append("text")
+ .attr("x", 24)
+ .attr("y", 9)
+ .attr("dy", ".35em")
+ .text(function(d) { return d.data.key; });
+
+ console.log(result);
+ });
+ }
+
+ });
+
+ }
+ },
+ computed: {
+ origin(){
+ return store.state.origin;
+ }
+ }
+}
+</script>
+
+<style>
+
+ .arc text {
+ font: 10px sans-serif;
+ text-anchor: middle;
+ }
+
+.arc path {
+ stroke: transparent
+
+}
+
+#licensecard {
+ /* margin-top: 5%; */
+ margin-bottom :5%;
+ padding: 5%;
+ }
+</style>
diff --git a/webapps/proteus-new/src/main/webapp/resources/src/components/piechart.vue b/webapps/proteus-new/src/main/webapp/resources/src/components/piechart.vue
new file mode 100644
index 0000000..03e9df0
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/resources/src/components/piechart.vue
@@ -0,0 +1,160 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more contributor
+license agreements. See the NOTICE.txt file distributed with this work for
+additional information regarding copyright ownership. The ASF licenses this
+file to you under the Apache License, Version 2.0 (the "License"); you may not
+use this file except in compliance with the License. You may obtain a copy of
+the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations under
+the License.
+-->
+
+
+<template lang="html">
+
+ <section class="piechart">
+ <v-card id="piecard">
+ <v-toolbar height="50" color="primary" dark>
+ <v-toolbar-title>Mime Type Breakdown</v-toolbar-title>
+ <v-spacer></v-spacer>
+ </v-toolbar>
+ <svg id="piesvg" width="400" height="300"></svg>
+ <svg id="pielegend"/>
+ </v-card>
+ </section>
+
+</template>
+
+<script lang="js">
+import * as d3 from 'd3';
+import axios from 'axios';
+import store from './../store/store';
+ export default {
+ name: 'piechart',
+ store,
+ props: [],
+ mounted() {
+ this.timerClearVar = setInterval(function () {
+ if(this.currentState=="INDEX")this.loadData();
+ }.bind(this), 1000);
+ },
+ beforeDestroy(){
+ clearInterval(this.timerClearVar);
+ },
+ data() {
+ return {
+ data:[]
+ }
+ },
+ methods: {
+ translateLegend(d,i){
+ var x = 0;
+ var y = 0;
+ var legend = d3.select("#piesvg");
+ for(var j=0;j<i;j++){
+ x += (this.data[j].type.length) * 5 + 50;
+ if(x>250){
+ x = 0;
+ y+=25;
+ }
+ }
+ return "translate("+x+"," + y + ")";
+ },
+ init(){
+
+ var svg = d3.select("#piesvg");
+ svg.selectAll("*").remove();
+ var width = +svg.attr("width"),
+ height = +svg.attr("height"),
+ radius = Math.min(width, height) / 2,
+ g = svg.append("g").attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");
+
+ var color = d3.scaleOrdinal(["#98abc5", "#8a89a6", "#7b6888", "#6b486b", "#a05d56", "#d0743c", "#ff8c00"]);
+
+ var pie = d3.pie()
+ .sort(null)
+ .value(function(d) { return d.weight; });
+
+ var path = d3.arc()
+ .outerRadius(radius - 10)
+ .innerRadius(0);
+
+
+ var arc = g.selectAll(".arc")
+ .data(pie(this.data))
+ .enter().append("g")
+ .attr("class", "arc");
+
+ arc.append("path")
+ .attr("d", path)
+ .attr("style", function(d) { return "fill:"+color(d.data.type) });
+
+ var legend = d3.select("#pielegend")
+ .attr("class", "legend")
+ .selectAll("g")
+ .data(pie(this.data))//setting the data as we know there are only two set of data[programmar/tester] as per the nest function you have written
+ .enter().append("g")
+ .attr("transform", this.translateLegend);
+
+ legend.append("rect")
+ .attr("width", 18)
+ .attr("height", 18)
+ .style("fill", function(d) {
+ return color(d.data.type);
+ });
+
+ legend.append("text")
+ .attr("x", 24)
+ .attr("y", 9)
+ .attr("dy", ".35em")
+ .text(function(d) { return d.data.type; });
+
+ },
+ loadData(){
+ axios.get(this.origin+"/proteus/service/repo/breakdown/mime?limit=5")
+ .then(response=>{
+ this.$log.info(response.data);
+ this.data=response.data;
+ this.init();
+ })
+ .catch(error=>{
+
+ throw error;
+ })
+ }
+ },
+ computed: {
+ origin(){
+ return store.state.origin;
+ },
+ currentState(){
+ return store.state.currentActionStep;
+ }
+ }
+}
+</script>
+
+<style>
+ .piechart {
+
+ }
+ .arc text {
+ font: 10px sans-serif;
+ text-anchor: middle;
+ }
+
+.arc path {
+ stroke: transparent
+
+}
+
+#piecard {
+ margin-top: 5%;
+ margin-bottom :5%;
+ margin-left:5%
+ }
+</style>
diff --git a/webapps/proteus-new/src/main/webapp/resources/src/components/progresscomp.vue b/webapps/proteus-new/src/main/webapp/resources/src/components/progresscomp.vue
new file mode 100644
index 0000000..8c03a6a
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/resources/src/components/progresscomp.vue
@@ -0,0 +1,162 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more contributor
+license agreements. See the NOTICE.txt file distributed with this work for
+additional information regarding copyright ownership. The ASF licenses this
+file to you under the Apache License, Version 2.0 (the "License"); you may not
+use this file except in compliance with the License. You may obtain a copy of
+the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations under
+the License.
+-->
+<template lang="html">
+
+ <section class="progresscomp">
+ <v-card id="progresscard">
+ <h1>Progress</h1>
+ <hr>
+
+ <v-progress-circular
+ id="progresscircle"
+ :rotate="-90"
+ :size="100"
+ :width="15"
+ :value="value"
+ color="primary"
+ >
+ {{ value }}
+ </v-progress-circular><br/>
+ {{status}}
+ </v-card>
+ </section>
+
+</template>
+
+<script lang="js">
+ import axios from 'axios';
+ import store from './../store/store';
+ export default {
+ name: 'progresscomp',
+ props: [],
+ mounted() {
+ this.loaddata();
+ this.timerClearVar = setInterval(function () {
+ this.loaddata();
+ }.bind(this), 5000);
+ },
+ beforeDestroy(){
+ clearInterval(this.timerClearVar);
+ },
+ data() {
+ return {
+ value:0,
+ status:"IDLE",
+ crawled:false,
+ indexed:false,
+ maped:false,
+ reduced:false,
+ completed:false,
+ timerClearVar:''
+ }
+ },
+ methods: {
+ loaddata(){
+ axios.get(this.origin+"/proteus/service/status/drat")
+ .then(response=>{
+ if(response.data=="CRAWL"){
+ this.status="Crawling...";
+ this.crawled=true;
+ store.commit("setCurrentActionStep","CRAWL");
+ this.value=0;
+ }else if(response.data=="INDEX"){
+ this.status="Indexing...";
+ this.indexed=true
+ store.commit("setCurrentActionStep","INDEX");
+ this.value=25;
+ }else if(response.data=="MAP"){
+ this.status="Mapping...";
+ this.mapped=true;
+ store.commit("setCurrentActionStep","MAP");
+ this.value=50;
+ }else if(response.data=="REDUCE" ){
+ this.status="Reducing...";
+ this.reduced = true;
+ store.commit("setCurrentActionStep","REDUCE");
+ this.value=75;
+ }else if(response.data=="IDLE"){
+ if(this.currentActionRequest=="GO" && this.reduced){
+ this.completed=true;
+ }else if(this.currentActionRequest=="INDEX" && this.indexed){
+ this.completed = true;
+
+ }else if(this.currentActionRequest=="CRAWL" && this.crawled){
+ this.completed = true;
+
+ }else if(this.currentActionRequest=="MAP" && this.mapped){
+ this.completed = true;
+
+ }else if(this.currentActionRequest=="REDUCE" && this.reduced){
+ this.completed = true;
+ }
+ if(this.status!="Completed" && this.completed ){
+ this.status="Completed"
+ store.commit("setCurrentActionStep","DONE");
+ this.completed=true;
+ this.value=100;
+ let options = {
+ html: false, // set to true if your message contains HTML tags. eg: "Delete <b>Foo</b> ?"
+ loader: false, // set to true if you want the dailog to show a loader after click on "proceed"
+ reverse: false, // switch the button positions (left to right, and vise versa)
+ okText: 'Yes',
+ cancelText: 'No',
+ animation: 'zoom', // Available: "zoom", "bounce", "fade"
+ type: 'basic', // coming soon: 'soft', 'hard'
+ verification: 'continue', // for hard confirm, user will be prompted to type this to enable the proceed button
+ verificationHelp: 'Type "[+:verification]" below to confirm', // Verification help text. [+:verification] will be matched with 'options.verification' (i.e 'Type "continue" below to confirm')
+ clicksCount: 3, // for soft confirm, user will be asked to click on "proceed" btn 3 times before actually proceeding
+ backdropClose: false // set to true to close the dialog when clicking outside of the dialog window, i.e. click landing on the mask
+ };
+ this.$dialog.confirm({title:"Done",body:'Progress Completed.Click yes to close'},options)
+ .then(function () {
+ store.commit("setprogress",false);
+ })
+ .catch(function () {
+
+ });
+ }
+
+ }
+ })
+ .catch(error=>{
+ throw error;
+ })
+
+ },
+
+ },
+ computed: {
+ origin(){
+ return store.state.origin;
+ },
+ currentActionRequest(){
+ return store.state.currentActionRequest;
+ }
+ }
+}
+</script>
+
+<style scoped >
+ #progresscard {
+ margin-left: 10%;
+ margin-top: 10%;
+ padding:4%;
+ background: lightgray
+ }
+
+ #progresscircle{
+ margin-top: 4%;
+ }
+</style>
diff --git a/webapps/proteus-new/src/main/webapp/resources/src/components/projectstable.vue b/webapps/proteus-new/src/main/webapp/resources/src/components/projectstable.vue
new file mode 100644
index 0000000..037c3b5
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/resources/src/components/projectstable.vue
@@ -0,0 +1,476 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more contributor
+license agreements. See the NOTICE.txt file distributed with this work for
+additional information regarding copyright ownership. The ASF licenses this
+file to you under the Apache License, Version 2.0 (the "License"); you may not
+use this file except in compliance with the License. You may obtain a copy of
+the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations under
+the License.
+-->
+<template lang="html">
+
+<v-card id="tablecard">
+
+ <v-toolbar dark color="primary">
+ <v-toolbar-title class="white--text">Projects</v-toolbar-title>
+ </v-toolbar>
+ <section class="projectstable">
+ <v-text-field
+ id="projectsearch"
+ v-model="projectsearch"
+ append-icon="search"
+ solo
+ label="Search"
+ single-line
+ hide-details>
+ </v-text-field>
+ <v-data-table id="ttx"
+ :headers="headers"
+ :items="docs"
+ :search="projectsearch"
+ :filter="filterProjects"
+ :custom-filter="customfilterprojects"
+ :rows-per-page-items="rowsPerPageItemsforProjects"
+ class="elevation-1"
+ >
+ <template slot="items" slot-scope="props">
+ <td class="text-xs-left" >{{props.index+1+count.start}}</td>
+ <td class="text-xs-left">{{ props.item.repo }}</td>
+ <td class="text-xs-left">{{ props.item.name }}</td>
+ <td class="text-xs-left">{{ props.item.description }}</td>
+ <td >
+ <v-btn @click="moreClicked(props.index)">
+ <v-icon medium
+
+ >description</v-icon>
+ </v-btn>
+ </td>
+ </template>
+ </v-data-table>
+ </section>
+ <section class="fulldialog">
+ <v-layout row justify-center>
+ <v-dialog v-model="dialog" fullscreen hide-overlay transition="dialog-bottom-transition">
+
+ <v-card>
+ <v-toolbar dark color="primary">
+ <v-btn icon dark @click.native="dialog = false">
+ <v-icon>close</v-icon>
+ </v-btn>
+ <v-toolbar-title>{{selectedItem.name}}</v-toolbar-title>
+ <v-spacer></v-spacer>
+ <!-- <v-toolbar-items>
+ <v-btn dark flat @click.native="dialog = false">Save</v-btn>
+ </v-toolbar-items> -->
+ </v-toolbar>
+ <v-layout row justify-space-between>
+ <v-flex xs10 offset-xs1>
+ <v-card >
+ <v-card id="projectdetails" color="grey lighten-3">
+ <v-layout align-center justify-space-between row>
+ <v-flex xs6 >
+ <p class="text-sm-left">Project Name</p>
+
+ </v-flex>
+ <v-flex xs6>
+ <v-text-field
+ solo
+ uneditable
+ :value="selectedItem.name"
+ readonly
+ ></v-text-field>
+ </v-flex>
+ </v-layout>
+
+ <v-layout justify-space-between row>
+ <v-flex xs6 >
+ <p class="text-sm-left"> Project Description</p>
+
+ </v-flex>
+ <v-flex xs6>
+ <v-text-field
+ name="input-7-1"
+ solo
+ textarea
+ :value="selectedItem.description"
+ flat
+ ></v-text-field>
+
+ </v-flex>
+ </v-layout>
+ <v-layout align-center justify-space-between row>
+ <v-flex xs6 >
+ <p class="text-sm-left">Project Repository</p>
+
+ </v-flex>
+ <v-flex xs6>
+ <v-text-field
+ label="Solo"
+
+ solo
+ uneditable
+ :value="selectedItem.repo"
+ readonly
+ ></v-text-field>
+ </v-flex>
+ </v-layout>
+ <v-layout align-center justify-space-between row>
+ <v-flex xs6 >
+ <p class="text-sm-left">Project Location</p>
+ </v-flex>
+ <v-flex xs6>
+ <v-text-field
+ label="Solo"
+
+ solo
+ uneditable
+ :value="selectedItem.loc_url"
+ readonly
+ ></v-text-field>
+ </v-flex>
+ </v-layout>
+ </v-card>
+ </v-card>
+ </v-flex>
+
+
+ </v-layout>
+ <v-layout row >
+ <v-flex xs10 offset-xs1>
+ <v-card color="grey lighten-3" id="licenselist">
+
+ <br/>
+ <v-chip close v-model="license.standard">
+ <v-avatar class="teal">{{license.docs.license_Standards}}</v-avatar>
+ Standard
+ </v-chip>
+ <v-chip close v-model="license.unknown">
+ <v-avatar class="teal">{{license.docs.license_Unknown}}</v-avatar>
+ Unknown
+ </v-chip>
+ <v-chip close v-model="license.apache">
+ <v-avatar class="teal">{{license.docs.license_Apache}}</v-avatar>
+ Apache
+ </v-chip>
+ <v-chip close v-model="license.binaries">
+ <v-avatar class="teal">{{license.docs.license_Binaries}}</v-avatar>
+ Binaries
+ </v-chip>
+ <v-chip close v-model="license.generated">
+ <v-avatar class="teal">{{license.docs.license_Generated}}</v-avatar>
+ Generated
+ </v-chip>
+ <v-chip close v-model="license.notes">
+ <v-avatar class="teal">{{license.docs.license_Notes}}</v-avatar>
+ Notes
+ </v-chip>
+ <v-chip close v-model="license.archives">
+ <v-avatar class="teal">{{license.docs.license_Archives}}</v-avatar>
+ Archives
+ </v-chip>
+ <br/>
+ <v-btn float color="primary"
+ @click="license.unknown =true,license.standard=true,license.apache=true
+ ,license.binaries=true,license.generated=true,license.notes=true,license.archives=true"
+ >Reset</v-btn>
+
+ </v-card>
+ </v-flex>
+ </v-layout>
+ <v-card id="licensefiletable">
+ <v-layout>
+ <v-flex xs10 offset-xs1>
+ <v-text-field
+ v-model="search"
+ append-icon="search"
+ label="Search"
+ single-line
+ hide-details>
+ </v-text-field>
+
+ <v-data-table
+ :headers="license.headers"
+ :items="sortedfiles"
+ :search="search"
+ >
+ <template slot="items" slot-scope="props">
+ <td class="text-xs-left">{{props.index+1 }}</td>
+ <td class="text-xs-left">{{ props.item.id }}</td>
+ <td class="text-xs-left">{{ props.item.mimetype }}</td>
+ <td class="text-xs-left">{{ props.item.license }}</td>
+ <td class="text-xs-left" id="headercell">{{ props.item.header }}</td>
+ </template>
+ <v-alert slot="no-results" :value="true" color="error" icon="warning">
+ Your search for "{{ search }}" found no results.
+ </v-alert>
+ </v-data-table>
+ </v-flex>
+ </v-layout>
+ </v-card>
+ </v-card>
+
+ </v-dialog>
+ </v-layout>
+ </section>
+</v-card>
+</template>
+
+<script lang="js">
+import axios from 'axios';
+import store from './../store/store';
+ export default {
+ name: 'projectstable',
+ store,
+ props: [],
+ mounted() {
+ this.loadData();
+ this.timerClearVar= setInterval(function () {
+ this.loadData();
+ }.bind(this), 10000);
+
+
+ },
+ beforeDestroy(){
+ clearInterval(this.timerClearVar);
+ },
+ data() {
+ return {
+ projectsearch:'',
+ search:'',
+ timerClearVar:'',
+ license:{
+ files:[],
+ unknown:true,
+ standard:true,
+ apache:true,
+ binaries:true,
+ generated:true,
+ notes:true,
+ archives:true,
+ docs:[],
+ headers:[
+ { text: '#',sortable: true, value: 'num' },
+ { text: 'Location',sortable: false, value: 'loc' },
+ { text: 'Mime Type',sortable: true, value: 'mtype' },
+ { text: 'License',sortable: true, value: 'license' },
+ { text: 'Header',sortable:false,value:'header',width:'20px'}
+ ]
+ },
+ dialog:false,
+ selectedItem:'',
+ headers: [
+ {
+ text: '#',
+ align: 'center',
+ sortable: false,
+ value: 'num'
+ },
+ { text: 'Repository',sortable: false, value: 'repository' },
+ { text: 'Name',sortable: false, value: 'name' },
+ { text: 'Description',sortable: false, value: 'description' },
+ { text: 'Audit',sortable: false, value: 'audit' },
+ ],
+ count:{
+ numFound :0,
+ start:0
+ },
+
+ docs:[],
+ rowsPerPageItemsforProjects: [50,100,200,500,1000,3000,5000,{"text":"$vuetify.dataIterator.rowsPerPageAll","value":-1}]
+ }
+
+ },
+ methods: {
+ customfilterprojects(items,search,filter){
+ if(search!=undefined){
+ search = search.toString().toLowerCase()
+ return items.filter(row=>filter(row,search))
+ }else{
+ return items;
+ }
+
+ },
+ filterProjects(inputObject,search){
+ if(inputObject.repo.toLowerCase().includes(search)){
+ return true;
+ }
+ if(inputObject.name.toLowerCase().includes(search)){
+ return true;
+ }
+ if(inputObject.description.toLowerCase().includes(search)){
+ return true;
+ }
+ return false;
+ },
+ moreClicked :function(index){
+ this.$log.info("as");
+ this.dialog =true;
+ this.selectedItem = this.docs[index];
+ this.loadLicenseData();
+ this.loadFileDetails();
+ },
+ loadData(){
+
+ axios.get(this.origin+"/solr/statistics/select?q=type:project&wt=json")
+ .then(response=>{
+ this.$log.info(response.data);
+ this.docs=response.data.response.docs;
+ this.count.numFound = response.data.response.numFound;
+ this.count.start = response.data.response.start;
+ if(response.data.response.numFound != null && response.data.response.numFound>10){
+ axios.get(this.origin+"/solr/statistics/select?q=type:project&rows="+this.count.numFound+"&wt=json")
+ .then(response=>{
+ this.docs=response.data.response.docs;
+ this.count.numFound = response.data.response.numFound;
+ this.count.start = response.data.response.start;
+ })
+ .catch(error=>{
+
+ })
+ }
+
+ })
+ .catch(error=>{
+
+ throw error;
+ })
+ },
+ loadLicenseData(){
+ axios.get(this.origin+"/solr/statistics/select?q=id:\""+this.selectedItem.repo+"\"&fl=license_*&wt=json")
+ .then(response2=>{
+ if(response2.data.response.numFound!=null){
+ axios.get(this.origin+"/solr/statistics/select?q=id:\""+this.selectedItem.repo+"\"&fl=license_*&rows="+response2.data.response.numFound+"&wt=json")
+ .then(response=>{
+ this.$log.info(response.data);
+ this.license.docs=response.data.response.docs[0];
+ });
+ }
+
+
+ })
+ },
+ loadFileDetails(){
+ axios.get(this.origin+"/solr/statistics/select?q=parent:\""+this.selectedItem.repo+"\"&rows=5000&wt=json")
+ .then(response2=>{
+ axios.get(this.origin+"/solr/statistics/select?q=parent:\""+this.selectedItem.repo+"\"&rows="+response2.data.response.numFound+"&wt=json")
+ .then(response=>{
+ this.sortedfiles = response.data.response.docs;
+ });
+ });
+
+ }
+
+ },
+ computed: {
+ origin(){
+ return store.state.origin;
+ },
+ currentrepo(){
+ return store.state.currentRepo;
+ },
+ sortedfiles:{
+
+ get:function(){
+ var listToReturn = [];
+
+ if(this.license.files){
+ this.license.files.forEach(file => {
+
+ switch(file.license){
+ case "Apache":
+ if(this.license.apache) listToReturn.push(file);
+ break;
+
+ case "Unknown":
+ if(this.license.unknown) listToReturn.push(file);
+ break;
+
+ case "Standard":
+ if(this.license.standard) listToReturn.push(file);
+ break;
+ case "Binaries":
+ if(this.license.binaries) listToReturn.push(file);
+ break;
+
+ case "Generated":
+ if(this.license.generated) listToReturn.push(file);
+ break;
+ case "Notes":
+ if(this.license.notes) listToReturn.push(file);
+ break;
+ case "Archives":
+ if(this.license.archives) listToReturn.push(file);
+ break;
+ }
+ });
+
+ }
+
+ return listToReturn;
+ },
+
+ set:function(docs){
+ this.license.files = docs;
+ }
+
+ }
+ },
+ filters:{
+
+ }
+}
+</script>
+
+<style>
+ .projectstable {
+ padding-top:10px;
+ padding-bottom: 10px;
+ }
+
+ .row{
+ margin:2%
+ }
+
+ #projectdetails .row{
+ margin:1%;
+ }
+
+ tr:nth-child(even){background-color :#f2f2f2}
+ tr{background-color :#ddd}
+ th{background-color: #2196F3}
+
+ #projectdetails{
+ padding: 2%;
+ padding-left:10%;
+ padding-right:10%;
+ }
+
+ #licenselist{
+ padding: 2%;
+ margin-top: 2%;
+ }
+
+ #headercell{
+ max-width: 400px;
+ overflow: hidden;
+ white-space: nowrap;
+ }
+
+ #tablecard{
+ margin-top: 20px;
+ padding : 10px;
+ }
+
+ #licensefiletable{
+ margin-bottom: 80px;
+ z-index: 950;
+ }
+ #projectsearch{
+
+ }
+</style>
diff --git a/webapps/proteus-new/src/main/webapp/resources/src/components/statisticscomp.vue b/webapps/proteus-new/src/main/webapp/resources/src/components/statisticscomp.vue
new file mode 100644
index 0000000..adebf8b
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/resources/src/components/statisticscomp.vue
@@ -0,0 +1,176 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more contributor
+license agreements. See the NOTICE.txt file distributed with this work for
+additional information regarding copyright ownership. The ASF licenses this
+file to you under the Apache License, Version 2.0 (the "License"); you may not
+use this file except in compliance with the License. You may obtain a copy of
+the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations under
+the License.
+-->
+<template lang="html">
+
+ <section class="statisticscomp">
+ <v-card id="statisticscard">
+
+ <v-card id="crawlingprogress">
+ <v-progress-linear height="10" v-model="crawlingprogress"></v-progress-linear>
+ <strong>{{stat.crawledfiles}}</strong> of <strong>{{stat.numOfFiles}}</strong> files Crawled
+
+ </v-card>
+ <v-card id="indexingprogress">
+ <v-progress-linear height="10" v-model="indexingprogress"></v-progress-linear>
+ <strong>{{stat.indexedfiles}}</strong> of <strong>{{stat.numOfFiles}}</strong> files Indexed
+
+ </v-card>
+
+ <v-toolbar height="50" color="primary" dark>
+ <v-toolbar-title>Statistics</v-toolbar-title>
+ <v-spacer></v-spacer>
+ </v-toolbar>
+ <hr>
+ <v-expansion-panel
+ v-model="panel"
+ expand
+ >
+ <v-expansion-panel-content id="header"
+ >
+ <div slot="header"><b>Repository</b></div>
+ <v-card>
+ <v-card-text>
+ <p style="text-align:left;">In-Memory Size : <span style="float:right;"> <strong> {{stat.size}}</strong> <br></span></p>
+ <p style="text-align:left;">Number of files :<span style="float:right;"> <strong>{{stat.numOfFiles}} </strong><br></span></p>
+ </v-card-text>
+ </v-card>
+
+ </v-expansion-panel-content>
+ <v-expansion-panel-content id="header"
+ >
+ <div slot="header"><b>Drat</b></div>
+ <v-card>
+ <v-card-text>
+ <strong>{{stat.runningRatInstances}}</strong> Rat Instances <strong>Running</strong><br>
+ <strong>{{stat.finishedRatInstances}}</strong> Rat Instances <strong> Finished</strong>
+ </v-card-text>
+ </v-card>
+
+ </v-expansion-panel-content>
+ </v-expansion-panel>
+ </v-card>
+ </section>
+
+</template>
+
+<script lang="js">
+ import store from './../store/store'
+ import axios from 'axios'
+ export default {
+ name: 'statisticscomp',
+ store,
+ props: [],
+ mounted() {
+ this.loadSizeData();
+ this.timerClearVar = setInterval(function () {
+ if(this.currentState!="IDLE") this.loadSizeData();
+ if(this.currentState=="MAP" || this.currentState=="REDUCE")this.loadInstanceCount()
+ if(this.currentState=="CRAWL") this.loadCrawledFiles();
+ if(this.currentState=="INDEX" || this.currentState=="MAP")this.loadIndexedFiles();
+ }.bind(this), 1000);
+ },
+ beforeDestroy(){
+ clearInterval(this.timerClearVar);
+ },
+ data() {
+ return {
+ timerClearVar:'',
+ stat:{
+ size:0,
+ numOfFiles:0,
+ runningRatInstances:0,
+ finishedRatInstances:0,
+ crawledfiles:0,
+ indexedfiles:0,
+ },
+ panel:[false,true,true]
+
+ }
+ },
+ methods: {
+ loadSizeData(){
+ axios.get(this.origin+"/proteus/service/repo/size?dir="+this.currentRepo)
+ .then(response=>{
+ if (!(isNaN(parseFloat(response.data.memorySize)) || !isFinite(response.data.memorySize))){
+ var units = ['bytes', 'kB', 'MB', 'GB', 'TB', 'PB'],
+ number = Math.floor(Math.log(response.data.memorySize) / Math.log(1024)) | 0;
+ this.stat.size = (response.data.memorySize / Math.pow(1024, Math.floor(number))).toFixed(1) + ' ' + units[number];
+ this.stat.numOfFiles = response.data.numberOfFiles;
+ }
+ })
+ .catch(error=>{
+ throw error;
+ });
+
+ },
+ loadInstanceCount(){
+ axios.get(this.origin+"/proteus/service/status/oodt/raw")
+ .then(response=> {
+ var temp = response.data.report.jobHealth;
+ for (var i = 0; i < temp.length; i++) {
+ if (temp[i].state == "PGE EXEC") {
+ this.stat.runningRatInstances = temp[i].numJobs;
+ } else if (temp[i].state == "FINISHED") {
+ this.stat.finishedRatInstances = temp[i].numJobs;
+ }
+ }
+ });
+ },
+ loadCrawledFiles(){
+ axios.get(this.origin+"/proteus/filemanager/progress")
+ .then(response=> {
+ this.stat.crawledfiles = response.data.crawledFiles;
+ });
+ },
+ loadIndexedFiles(){
+ axios.get(this.origin+"/solr/drat/select?q=producttype:GenericFile&fl=numFound&wt=json&indent=true")
+ .then(response=>{
+ this.stat.indexedfiles = response.data.response.numFound;
+ });
+ }
+
+ },
+ computed: {
+ currentRepo (){
+ return store.state.currentRepo;
+ },
+ origin(){
+ return store.state.origin;
+ },
+ currentState(){
+ return store.state.currentActionStep;
+ },
+ crawlingprogress(){
+ return this.stat.crawledfiles/this.stat.numOfFiles *100;
+ },
+ indexingprogress(){
+ return this.stat.indexedfiles/this.stat.numOfFiles * 100;
+ }
+ }
+}
+</script>
+
+<style scoped>
+ #statisticscard{
+ margin-top:10%;
+ margin-left:10%;
+ }
+ #header{
+ background-color:lightgray
+ }
+ #indexingprogress{
+ margin-bottom: 5%;
+ }
+</style>
diff --git a/webapps/proteus-new/src/main/webapp/resources/src/components/topmimepiecomp.vue b/webapps/proteus-new/src/main/webapp/resources/src/components/topmimepiecomp.vue
new file mode 100644
index 0000000..ea15f77
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/resources/src/components/topmimepiecomp.vue
@@ -0,0 +1,185 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more contributor
+license agreements. See the NOTICE.txt file distributed with this work for
+additional information regarding copyright ownership. The ASF licenses this
+file to you under the Apache License, Version 2.0 (the "License"); you may not
+use this file except in compliance with the License. You may obtain a copy of
+the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations under
+the License.
+-->
+<template lang="html">
+
+ <section class="topmimepiecomp">
+ <v-card id="topmimecard">
+ <v-toolbar dark color="primary">
+ <v-toolbar-title class="white--text">Top MIME Types</v-toolbar-title>
+ </v-toolbar>
+ <v-layout>
+ <v-spacer/>
+ <v-flex xs3>
+ <v-btn @click="count--;if(count<0)count=0">-</v-btn>
+ </v-flex>
+ <v-flex xs3 >
+
+ <v-text-field label="Count" :value="count"></v-text-field>
+ </v-flex>
+ <v-flex xs3>
+ <v-btn @click="count++;if(count>50)count=25">+</v-btn>
+ </v-flex>
+ <v-spacer/>
+ </v-layout>
+
+ <svg id="pietopmimesvg" width="420" height="525"></svg>
+ </v-card>
+ </section>
+
+</template>
+
+<script lang="js">
+ import * as d3 from 'd3';
+ import axios from 'axios';
+ import store from './../store/store'
+ export default {
+ name: 'topmimepiecomp',
+ store,
+ props: [],
+ mounted() {
+ this.init(this.count);
+ },
+ watch:{
+ count:function(val) {
+ this.init(val);
+ }
+ },
+ data() {
+ return {
+ count:10,
+ }
+ },
+ methods: {
+ init(rows){
+ axios.get(this.origin + '/solr/statistics/select?q=type:software&fl=mime_*&wt=json')
+ .then(response2=>{
+ if(response2.data.response.numFound!=null){
+ axios.get(this.origin + '/solr/statistics/select?q=type:software&rows='+response2.data.response.numFound+'&fl=mime_*&wt=json')
+ .then(function(response) {
+
+ console.log(response.data);
+ var docs = response.data.response.docs;
+ var resultingData = [];
+ var result = [];
+ var mime = {};
+
+ for(var i = 0; i < docs.length; i++) {
+ var doc = docs[i];
+ for(var x in doc) {
+ var key = x.split("mime_")[1];
+ var value = doc[x];
+ if(typeof mime[key] === 'undefined') {
+ mime[key] = value;
+ }
+ else {
+ mime[key] += value;
+ }
+ }
+ }
+
+ for(x in mime) {
+ var jsonObject = {};
+ jsonObject["key"] = x;
+ jsonObject["y"] = mime[x];
+ resultingData.push(jsonObject);
+ }
+
+ resultingData.sort(function(a, b) {
+ return b.y - a.y;
+ });
+ if(rows > resultingData.length)rows=resultingData.length;
+ for( i = 1; i <= rows; i++) {
+ result[i-1] = resultingData[i-1];
+ }
+
+ console.log(result);
+
+ var svg = d3.select("#pietopmimesvg");
+ svg.selectAll("*").remove();
+ var width = +svg.attr("width"),
+ height = +svg.attr("height"),
+ radius = Math.min(width, height) / 4,
+ pieposx = (width / 2)+90,
+ pieposy = (height / 2)-140,
+ g = svg.append("g").attr("transform", "translate(" +pieposx + "," +pieposy + ")");
+
+ var color = d3.scaleOrdinal(d3.schemePiYG[11]);
+
+ var pie = d3.pie()
+ .sort(null)
+ .value(function(d) { return d.y; });
+
+ var path = d3.arc()
+ .outerRadius(radius - 10)
+ .innerRadius(0);
+
+ var label = d3.arc()
+ .outerRadius(radius - 40)
+ .innerRadius(radius - 40);
+ var arc = g.selectAll(".arc")
+ .data(pie(result))
+ .enter().append("g")
+ .attr("class", "arc");
+
+ arc.append("path")
+ .attr("d", path)
+ .attr("style", function(d) { return "fill:"+color(d.data.key) });
+
+ arc.append("text")
+ .attr("transform", function(d) { return "translate(" + label.centroid(d) + ")"; })
+ .attr("dy", "0.35em")
+ .text(function(d) { return d.data.key; });
+
+ var legend = d3.select("#pietopmimesvg").append("svg")
+ .attr("class", "legend")
+ .selectAll("g")
+ .data(pie(result))//setting the data as we know there are only two set of data[programmar/tester] as per the nest function you have written
+ .enter().append("g")
+ .attr("transform", function(d, i) { return "translate(0," + ((i + 1)* 20) + ")"; });
+
+ legend.append("rect")
+ .attr("width", 18)
+ .attr("height", 18)
+ .style("fill", function(d, i) {
+ return color(d.data.key);
+ });
+
+ legend.append("text")
+ .attr("x", 24)
+ .attr("y", 9)
+ .attr("dy", ".35em")
+ .text(function(d) { return d.data.key; });
+
+ console.log(result);
+ });
+ }
+
+ });
+
+ }
+ },
+ computed: {
+ origin(){
+ return store.state.origin;
+ }
+ }
+}
+</script>
+
+<style scoped >
+ #topmimecard {
+ padding:5%;
+ }
+</style>
diff --git a/webapps/proteus-new/src/main/webapp/resources/src/leaf-logo.png b/webapps/proteus-new/src/main/webapp/resources/src/leaf-logo.png
new file mode 100644
index 0000000..d9456e6
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/resources/src/leaf-logo.png
Binary files differ
diff --git a/webapps/proteus-new/src/main/webapp/resources/src/logo.png b/webapps/proteus-new/src/main/webapp/resources/src/logo.png
new file mode 100644
index 0000000..7800df9
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/resources/src/logo.png
Binary files differ
diff --git a/webapps/proteus-new/src/main/webapp/resources/src/main.js b/webapps/proteus-new/src/main/webapp/resources/src/main.js
new file mode 100644
index 0000000..bf4432f
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/resources/src/main.js
@@ -0,0 +1,47 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more contributor
+license agreements. See the NOTICE.txt file distributed with this work for
+additional information regarding copyright ownership. The ASF licenses this
+file to you under the Apache License, Version 2.0 (the "License"); you may not
+use this file except in compliance with the License. You may obtain a copy of
+the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations under
+the License.
+*/
+
+import Vue from 'vue'
+import Vuetify from 'vuetify'
+import App from './App.vue'
+import VueLogger from 'vuejs-logger'
+import store from './store/store'
+import VuejsDialog from 'vuejs-dialog'
+import 'vuetify/dist/vuetify.min.css'
+import 'material-design-icons-iconfont/dist/material-design-icons.css'
+
+
+Vue.config.productionTip = true
+Vue.use(Vuetify)
+Vue.use(VuejsDialog)
+
+
+
+const options = {
+ logLevel : 'debug',
+ // optional : defaults to false if not specified
+ stringifyArguments : false,
+ // optional : defaults to false if not specified
+ showLogLevel : false
+}
+
+Vue.use(VueLogger,options)
+
+
+
+new Vue({
+ store,
+ render: h => h(App)
+}).$mount('#app')
diff --git a/webapps/proteus-new/src/main/webapp/resources/src/store/store.js b/webapps/proteus-new/src/main/webapp/resources/src/store/store.js
new file mode 100644
index 0000000..347193d
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/resources/src/store/store.js
@@ -0,0 +1,65 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more contributor
+license agreements. See the NOTICE.txt file distributed with this work for
+additional information regarding copyright ownership. The ASF licenses this
+file to you under the Apache License, Version 2.0 (the "License"); you may not
+use this file except in compliance with the License. You may obtain a copy of
+the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations under
+the License.
+*/
+
+import Vuex from 'vuex';
+import Vue from 'vue';
+Vue.use(Vuex);
+
+const store = new Vuex.Store({
+ state:{
+ progress:false,
+ view:"summary",
+ currentRepo:'',
+ origin:'',
+ currentActionRequest:'',
+ currentActionStep:'IDLE'
+ },
+ mutations:{
+ invert(state){
+ state.progress = !state.progress;
+ },
+ setprogress(state,val){
+ state.progress = val;
+ },
+ setCurrentRepo(state,newVal){
+ state.currentRepo = newVal;
+ },
+ setOrigin(state,neworigin){
+ state.origin = neworigin;
+ },
+ setView(state,newVal){
+ state.view = newVal;
+ },
+ setCurrentActionRequest(state,newVal){
+ state.currentActionRequest = newVal;
+ },
+ setCurrentActionStep(state,newVal){
+ state.currentActionStep = newVal;
+ }
+
+ },
+ getters:{
+ getprog(state){
+ return state.progress;
+ },
+ getcurrentrepo(state){
+ return state.currentRepo;
+ },
+ getCurrentOrigin(state){
+ return state.origin;
+ }
+ }
+});
+export default store;
\ No newline at end of file
diff --git a/webapps/proteus-new/src/main/webapp/resources/vue.config.js b/webapps/proteus-new/src/main/webapp/resources/vue.config.js
new file mode 100644
index 0000000..b0c7201
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/resources/vue.config.js
@@ -0,0 +1,3 @@
+module.exports = {
+ baseUrl: './'
+}
diff --git a/webapps/proteus-new/src/main/webapp/resources/webpack.config.js b/webapps/proteus-new/src/main/webapp/resources/webpack.config.js
new file mode 100644
index 0000000..36451e9
--- /dev/null
+++ b/webapps/proteus-new/src/main/webapp/resources/webpack.config.js
@@ -0,0 +1,47 @@
+const { VueLoaderPlugin } = require('vue-loader');
+const path = require('path');
+
+const HtmlWebpackPlugin = require('html-webpack-plugin');
+const {BaseHrefWebpackPlugin} = require('base-href-webpack-plugin');
+
+const env = process.env.NODE_ENV;
+
+const config = {
+ entry: path.join(__dirname, './src', 'main.js'),
+ mode: env,
+ output: {
+ publicPath: './',
+ },
+ optimization: {
+ splitChunks: {
+ // Must be specified for HtmlWebpackPlugin to work correctly.
+ // See: https://github.com/jantimon/html-webpack-plugin/issues/882
+ chunks: 'all',
+ },
+ },
+ module: {
+ rules: [
+ {
+ test: /\.vue$/,
+ loader: 'vue-loader',
+ },
+ {
+ test: /\.js$/,
+ loader: 'babel-loader',
+ include: [path.join(__dirname, './src')],
+ },
+
+ ],
+ },
+ plugins: [
+ new VueLoaderPlugin(),
+ new HtmlWebpackPlugin({
+ filename: path.join(__dirname, 'dist', 'index.html'),
+ template: path.join(__dirname, 'public', 'index.html'),
+ inject: true,
+ }),
+ new BaseHrefWebpackPlugin({baseHref:'./'})
+ ],
+};
+
+module.exports = config;
\ No newline at end of file
diff --git a/webapps/solr-webapp/.gitignore b/webapps/solr-webapp/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/webapps/solr-webapp/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/webapps/viz/.gitignore b/webapps/viz/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/webapps/viz/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/workflow/pom.xml b/workflow/pom.xml
index 99934c4..9c48fb5 100644
--- a/workflow/pom.xml
+++ b/workflow/pom.xml
@@ -83,7 +83,7 @@
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
- <version>3.8.2</version>
+ <version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>