diff --git a/sample/ONS2014demo/scripts/all-linkup-hw.sh b/sample/ONS2014demo/scripts/all-linkup-hw.sh
new file mode 100755
index 0000000..41d6be8
--- /dev/null
+++ b/sample/ONS2014demo/scripts/all-linkup-hw.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+#   BRINGS BACK UP ALL THE LINKS FOR THE HARDWARE DEMO AS SHOWN IN ONS 2013
+#   link-hw.sh %s %s %s  % (src_dpid, port1, cmd)
+
+./link-hw.sh 00:00:00:00:ba:5e:ba:11 24 up 
+./link-hw.sh 00:00:00:00:ba:5e:ba:11 23 up 
+
+./link-hw.sh 00:00:00:00:ba:5e:ba:13 22 up
+./link-hw.sh 00:00:00:00:ba:5e:ba:13 23 up
+
+./link-hw.sh 00:00:00:00:00:00:ba:12 23 up
+./link-hw.sh 00:00:00:00:00:00:ba:12 22 up
+./link-hw.sh 00:00:00:00:00:00:ba:12 24 up
+
+./link-hw.sh 00:01:00:16:97:08:9a:46 23 up
+./link-hw.sh 00:01:00:16:97:08:9a:46 24 up
+
+./link-hw.sh 00:00:20:4e:7f:51:8a:35 21 up 
+./link-hw.sh 00:00:20:4e:7f:51:8a:35 22 up 
+./link-hw.sh 00:00:20:4e:7f:51:8a:35 24 up 
+./link-hw.sh 00:00:20:4e:7f:51:8a:35 23 up 
diff --git a/sample/ONS2014demo/scripts/check-cluster-hw.sh b/sample/ONS2014demo/scripts/check-cluster-hw.sh
new file mode 100755
index 0000000..1243e3a
--- /dev/null
+++ b/sample/ONS2014demo/scripts/check-cluster-hw.sh
@@ -0,0 +1,30 @@
+#! /bin/bash
+
+# This checks the overall status of Cassandra, onos, zookeeper, and the web server 
+# Checks status on all 8 onos nodes.
+# Built to run only on the hw testbed from ONOS1.
+# 
+
+echo 	""
+echo    "****************************"
+echo 	"***** CASSANDRA STATUS *****"
+echo    "****************************"
+dsh -w onos1 'cd ONOS; ./start-cassandra.sh status'
+
+echo 	""
+echo    "***********************"
+echo 	"***** ONOS STATUS *****"
+echo    "***********************"
+dsh -g onos 'cd ONOS; ./start-onos.sh status; echo "Open ports on 9160: "; netstat -nat | grep 9160 | wc -l'
+
+echo 	""
+echo    "****************************"
+echo 	"***** ZOOKEEPER STATUS *****"
+echo    "****************************"
+dsh -g onos '~/zookeeper-3.4.5/bin/zkServer.sh status'
+
+echo 	""
+echo    "**************************"
+echo 	"***** WEB GUI STATUS *****"
+echo    "**************************"
+~/ONOS/start-rest.sh status
diff --git a/sample/ONS2014demo/scripts/config.json.dev.1node b/sample/ONS2014demo/scripts/config.json.dev.1node
new file mode 100644
index 0000000..580a136
--- /dev/null
+++ b/sample/ONS2014demo/scripts/config.json.dev.1node
@@ -0,0 +1,26 @@
+{
+    "LB": false, 
+    "TESTBED": "sw",
+    "ONOS_DEFAULT_HOST": "localhost",
+    "ONOS_GUI3_CONTROL_HOST": "http://localhost:9000", 
+    "ONOS_GUI3_HOST": "http://localhost:9000", 
+    "cluster_basename": "onosdev", 
+    "controllers": [
+        "onosdev1", 
+        "onosdev1", 
+        "onosdev1",
+        "onosdev1", 
+        "onosdev1", 
+        "onosdev1", 
+        "onosdev1", 
+        "onosdev1"
+    ], 
+    "core_switches": [
+        "00:00:00:00:00:00:01:01", 
+        "00:00:00:00:00:00:01:02", 
+        "00:00:00:00:00:00:01:03", 
+        "00:00:00:00:00:00:01:04", 
+        "00:00:00:00:00:00:01:05", 
+        "00:00:00:00:00:00:01:06"
+    ]
+}
diff --git a/sample/ONS2014demo/scripts/config.json.devA b/sample/ONS2014demo/scripts/config.json.devA
new file mode 100644
index 0000000..b20639e
--- /dev/null
+++ b/sample/ONS2014demo/scripts/config.json.devA
@@ -0,0 +1,22 @@
+{
+    "LB": false, 
+    "TESTBED": "sw",
+    "ONOS_DEFAULT_HOST": "localhost",
+    "ONOS_GUI3_CONTROL_HOST": "http://10.128.4.51:9000", 
+    "ONOS_GUI3_HOST": "http://10.128.4.51:9000", 
+    "cluster_basename": "ONOS", 
+    "controllers": [
+        "DevA-ONOS1", 
+        "DevA-ONOS2", 
+        "DevA-ONOS3", 
+        "DevA-ONOS4" 
+    ], 
+ "core_switches": [
+        "00:00:00:00:ba:5e:ba:11", 
+        "00:00:00:00:00:00:ba:12", 
+        "00:00:20:4e:7f:51:8a:35", 
+        "00:00:00:00:ba:5e:ba:13", 
+        "00:00:00:08:a2:08:f9:01", 
+        "00:00:00:16:97:08:9a:46"
+    ]
+}
diff --git a/sample/ONS2014demo/scripts/config.json.hw b/sample/ONS2014demo/scripts/config.json.hw
new file mode 100644
index 0000000..533bbee
--- /dev/null
+++ b/sample/ONS2014demo/scripts/config.json.hw
@@ -0,0 +1,26 @@
+{
+    "LB": false, 
+    "TESTBED": "hw",
+    "ONOS_DEFAULT_HOST": "localhost",
+    "ONOS_GUI3_CONTROL_HOST": "http://10.128.4.11:9000", 
+    "ONOS_GUI3_HOST": "http://10.128.4.11:9000", 
+    "cluster_basename": "ONOS", 
+    "controllers": [
+        "ONOS1", 
+        "ONOS2", 
+        "ONOS3", 
+        "ONOS4", 
+        "ONOS5", 
+        "ONOS6", 
+        "ONOS7", 
+        "ONOS8"
+    ], 
+    "core_switches": [
+        "00:00:00:00:ba:5e:ba:11", 
+        "00:00:00:00:00:00:ba:12", 
+        "00:00:20:4e:7f:51:8a:35", 
+        "00:00:00:00:ba:5e:ba:13", 
+        "00:00:00:08:a2:08:f9:01", 
+        "00:01:00:16:97:08:9a:46"
+    ]
+}
diff --git a/sample/ONS2014demo/scripts/config.json.sw b/sample/ONS2014demo/scripts/config.json.sw
new file mode 100644
index 0000000..7c6e702
--- /dev/null
+++ b/sample/ONS2014demo/scripts/config.json.sw
@@ -0,0 +1,26 @@
+{
+    "LB": false, 
+    "TESTBED": "sw",
+    "ONOS_DEFAULT_HOST": "localhost",
+    "ONOS_GUI3_CONTROL_HOST": "http://gui3.onlab.us:8081", 
+    "ONOS_GUI3_HOST": "http://gui3.onlab.us:8080", 
+    "cluster_basename": "onosgui", 
+    "controllers": [
+        "onosgui1", 
+        "onosgui2", 
+        "onosgui3", 
+        "onosgui4", 
+        "onosgui5", 
+        "onosgui6", 
+        "onosgui7", 
+        "onosgui8"
+    ], 
+    "core_switches": [
+        "00:00:00:00:ba:5e:ba:11", 
+        "00:00:00:00:00:00:ba:12", 
+        "00:00:20:4e:7f:51:8a:35", 
+        "00:00:00:00:ba:5e:ba:13", 
+        "00:00:00:08:a2:08:f9:01", 
+        "00:00:00:16:97:08:9a:46"
+    ]
+}
diff --git a/sample/ONS2014demo/scripts/config.json.sw_dev b/sample/ONS2014demo/scripts/config.json.sw_dev
new file mode 100644
index 0000000..bb89670
--- /dev/null
+++ b/sample/ONS2014demo/scripts/config.json.sw_dev
@@ -0,0 +1,26 @@
+{
+    "LB": false, 
+    "TESTBED": "sw",
+    "ONOS_DEFAULT_HOST": "localhost",
+    "ONOS_GUI3_CONTROL_HOST": "http://devy-gui.onlab.us:8080", 
+    "ONOS_GUI3_HOST": "http://devy-gui.onlab.us:8080", 
+    "cluster_basename": "onosdevy", 
+    "controllers": [
+        "onosdevy1", 
+        "onosdevy2", 
+        "onosdevy3", 
+        "onosdevy4", 
+        "onosdevy5", 
+        "onosdevy6", 
+        "onosdevy7", 
+        "onosdevy8"
+    ], 
+    "core_switches": [
+        "00:00:00:00:00:00:01:01", 
+        "00:00:00:00:00:00:01:02", 
+        "00:00:00:00:00:00:01:03", 
+        "00:00:00:00:00:00:01:04", 
+        "00:00:00:00:00:00:01:05", 
+        "00:00:00:00:00:00:01:06"
+    ]
+}
diff --git a/sample/ONS2014demo/scripts/ctrl-add-ext.sh b/sample/ONS2014demo/scripts/ctrl-add-ext.sh
new file mode 100755
index 0000000..88be2f3
--- /dev/null
+++ b/sample/ONS2014demo/scripts/ctrl-add-ext.sh
@@ -0,0 +1,29 @@
+#! /usr/bin/env python
+import sys
+import time
+import os
+import re
+import json
+import socket
+
+CONFIG_FILE=os.getenv("HOME") + "/ONOS/web/config.json"
+
+def read_config():
+  global controllers
+  f = open(CONFIG_FILE)
+  conf = json.load(f)
+  controllers = conf['controllers']
+  f.close()
+
+if __name__ == "__main__":
+  read_config()
+  controllers.pop(0) 
+  url = ""
+  for c in controllers:
+    url += " " + "tcp:%s:6633" % socket.gethostbyname(c)
+
+  switches = os.popen("sudo ovs-vsctl list-br").read().split("\n");
+  switches.remove('')
+  for s in switches:
+    print "set switch %s controller %s" % (s, url)  
+    os.popen("sudo ovs-vsctl set-controller %s %s" % (s, url) )
diff --git a/sample/ONS2014demo/scripts/ctrl-local.sh b/sample/ONS2014demo/scripts/ctrl-local.sh
new file mode 100755
index 0000000..1418a2c
--- /dev/null
+++ b/sample/ONS2014demo/scripts/ctrl-local.sh
@@ -0,0 +1,17 @@
+#! /bin/bash
+controller=`hostname`
+switches=`sudo ovs-vsctl list-br`
+function host2ip (){
+   ip=`getent hosts $1 |  awk '{print $1}' | tail -n 1`
+   echo $ip
+}
+
+url=""
+for c in $controller; do
+  url="$url tcp:`host2ip $c`:6633"
+done
+echo $url
+for s in $switches; do
+    echo "set switch $s controller $url"
+    sudo ovs-vsctl set-controller $s $url
+done
diff --git a/sample/ONS2014demo/scripts/ctrl-none.sh b/sample/ONS2014demo/scripts/ctrl-none.sh
new file mode 100755
index 0000000..fb8d2a0
--- /dev/null
+++ b/sample/ONS2014demo/scripts/ctrl-none.sh
@@ -0,0 +1,17 @@
+#! /bin/bash
+controller=""
+switches=`sudo ovs-vsctl list-br`
+function host2ip (){
+   ip=`getent hosts $1 |  awk '{print $1}' | tail -n 1`
+   echo $ip
+}
+
+url=""
+for c in $controller; do
+  url="$url tcp:`host2ip $c`:6633"
+done
+echo $url
+for s in $switches; do
+    echo "set switch $s controller $url"
+    sudo ovs-vsctl set-controller $s $url
+done
diff --git a/sample/ONS2014demo/scripts/ctrl-one.sh b/sample/ONS2014demo/scripts/ctrl-one.sh
new file mode 100755
index 0000000..9fe8341
--- /dev/null
+++ b/sample/ONS2014demo/scripts/ctrl-one.sh
@@ -0,0 +1,25 @@
+#! /bin/bash
+
+if [ "x$1" == "x" ];
+then
+    echo "No controller specified"
+    exit 1
+fi
+
+#controller=`hostname`
+controller=$1
+switches=`sudo ovs-vsctl list-br`
+function host2ip (){
+   ip=`getent hosts $1 |  awk '{print $1}' | tail -n 1`
+   echo $ip
+}
+
+url=""
+for c in $controller; do
+  url="$url tcp:`host2ip $c`:6633"
+done
+echo $url
+for s in $switches; do
+    echo "set switch $s controller $url"
+    sudo ovs-vsctl set-controller $s $url
+done
diff --git a/sample/ONS2014demo/scripts/ctrl-sw.sh b/sample/ONS2014demo/scripts/ctrl-sw.sh
new file mode 100755
index 0000000..401b7fa
--- /dev/null
+++ b/sample/ONS2014demo/scripts/ctrl-sw.sh
@@ -0,0 +1,31 @@
+#! /usr/bin/env python
+import sys
+import time
+import os
+import re
+import json
+import socket
+
+CONFIG_FILE=os.getenv("HOME") + "/ONOS/web/config.json"
+
+def read_config():
+  global controllers
+  f = open(CONFIG_FILE)
+  conf = json.load(f)
+  controllers = conf['controllers']
+  f.close()
+
+if __name__ == "__main__":
+  read_config()
+
+  url = ""
+  for idx in sys.argv[1:]:
+    url += "tcp:%s:6633" % socket.gethostbyname(controllers[int(idx)-1]) + " "
+
+  print url[:-1]
+
+  switches = os.popen("sudo ovs-vsctl list-br").read().split("\n");
+  switches.remove('')
+  for s in switches:
+    print "set switch %s controller %s" % (s, url)  
+    os.popen("sudo ovs-vsctl set-controller %s %s" % (s, url) )
diff --git a/sample/ONS2014demo/scripts/delflow.sh b/sample/ONS2014demo/scripts/delflow.sh
new file mode 100755
index 0000000..f9ec506
--- /dev/null
+++ b/sample/ONS2014demo/scripts/delflow.sh
@@ -0,0 +1,17 @@
+#! /bin/bash
+controller=""
+switches=`ifconfig -a | grep sw |grep -v eth | awk '{print $1}'`
+
+function host2ip (){
+   ip=`grep $1 /etc/hosts |grep -v "ip6"|  awk '{print $1}'`
+   echo $ip
+}
+
+url=""
+for c in $controller; do
+  url="$url tcp:`host2ip $c`:6633"
+done
+echo $url
+for s in $switches; do
+    sudo ovs-ofctl  del-flows  $s
+done
diff --git a/sample/ONS2014demo/scripts/demo-reset-sw.sh b/sample/ONS2014demo/scripts/demo-reset-sw.sh
new file mode 100755
index 0000000..34950c5
--- /dev/null
+++ b/sample/ONS2014demo/scripts/demo-reset-sw.sh
@@ -0,0 +1,26 @@
+#! /bin/bash
+source ~/env_cluster
+basename=$ONOS_CLUSTER_BASENAME
+DIR=${HOME}/ONOS
+tstart=`date +"%s"`
+echo "All Link Up"
+$DIR/scripts/all-linkup.sh
+echo "Delete Flows"
+$DIR/web/delete_flow.py 1 300
+$DIR/web/clear_flow.py 1 300
+echo "Adding Flows"
+$DIR/web/add_flow.py -m onos -f $DIR/web/flowdef_demo_start.txt
+ssh -i ~/.ssh/onlabkey.pem  ${basename}5 'cd ONOS;./start-onos.sh stop'
+ssh -i ~/.ssh/onlabkey.pem  ${basename}6 'cd ONOS;./start-onos.sh stop'
+ssh -i ~/.ssh/onlabkey.pem  ${basename}7 'cd ONOS;./start-onos.sh stop'
+ssh -i ~/.ssh/onlabkey.pem  ${basename}8 'cd ONOS;./start-onos.sh stop'
+for i in 1 2 3 4 ; do
+    ssh -i ~/.ssh/onlabkey.pem  ${basename}$i 'cd ONOS;./start-onos.sh startifdown'
+done
+sleep 2
+for i in 1 2 3 4 5 6 7 8; do
+    ssh -i ~/.ssh/onlabkey.pem  ${basename}$i 'cd ONOS/scripts; ./ctrl-local.sh'
+done
+tend=`date +"%s"`
+(( delta = tend - tstart ))
+echo "Demo Reset Done: took $delta sec"
diff --git a/sample/ONS2014demo/scripts/demo-scale-out-sw.sh b/sample/ONS2014demo/scripts/demo-scale-out-sw.sh
new file mode 100755
index 0000000..762a00e
--- /dev/null
+++ b/sample/ONS2014demo/scripts/demo-scale-out-sw.sh
@@ -0,0 +1,31 @@
+#! /bin/bash
+source ~/env_cluster
+basename=$ONOS_CLUSTER_BASENAME
+DIR=${HOME}/ONOS
+
+function scale_onos(){
+  for i in 5 6 7 8 ; do
+    ssh -i ~/.ssh/onlabkey.pem  ${basename}${i} 'cd ONOS;./start-onos.sh start' &
+  done
+
+  while [ 1 ]; do
+    up=`for i in 5 6 7 8 ; do
+      ssh -i ~/.ssh/onlabkey.pem  ${basename}${i} 'cd ONOS;./start-onos.sh status' &
+    done | grep "instance" | awk '{s+=$1}END{print s}'`
+
+    if [ x$up == "x4" ]; then
+      break;
+    fi 
+    sleep 1
+  done
+}
+
+start=`date +"%s"`
+echo "bring up four nodes"
+scale_onos
+sleep 2
+echo "Adding more flows"
+$DIR/web/add_flow.py -m onos -f $DIR/web/flowdef_demo_add.txt
+endt=`date +"%s"`
+(( delta = endt -start ))
+echo "Scale Up Done: took $delta sec"
diff --git a/sample/ONS2014demo/scripts/iperf b/sample/ONS2014demo/scripts/iperf
new file mode 100755
index 0000000..bf1f490
--- /dev/null
+++ b/sample/ONS2014demo/scripts/iperf
Binary files differ
diff --git a/sample/ONS2014demo/scripts/link-hw.sh b/sample/ONS2014demo/scripts/link-hw.sh
new file mode 100755
index 0000000..e6f2487
--- /dev/null
+++ b/sample/ONS2014demo/scripts/link-hw.sh
@@ -0,0 +1,95 @@
+#! /bin/bash
+
+SCRIPT_DIR=$(cd `dirname $0`; pwd)
+
+#controller=`hostname`
+switches=`ifconfig -a | grep sw |grep -v eth | awk '{print $1}'`
+
+function host2ip (){
+   ip=`grep $1 /etc/hosts |grep -v "ip6"|  awk '{print $1}'`
+   echo $ip
+}
+
+# link.sh 00:00:00:00:ba:5e:ba:11 1 up
+
+if [ $# != 3 ];then
+ echo "usage: $0 <dpid> <port> <up|down>"
+fi
+
+src_dpid="dpid:"`echo $1 | sed s'/://g'`
+src_port=$2
+cmd=$3
+
+if [  "x00:00:00:00:ba:5e:ba:11" == "x$1" ]; then
+        if [ x$cmd == "xup" ]; then
+                ${SCRIPT_DIR}/prontolink.exp 10.128.0.61 $src_port 1  
+        elif [ x$cmd == "xdown" ]; then
+                ${SCRIPT_DIR}/prontolink.exp 10.128.0.61 $src_port 0 
+        else
+		echo "no cmd"
+        fi
+elif [  "x00:00:00:00:00:00:ba:12" == "x$1" ]; then
+        if [ x$cmd == "xup" ]; then
+                ${SCRIPT_DIR}/prontolink.exp 10.128.0.62 $src_port 1  
+        elif [ x$cmd == "xdown" ]; then
+                ${SCRIPT_DIR}/prontolink.exp 10.128.0.62 $src_port 0 
+        else
+		echo "no cmd"
+        fi
+elif [  "x00:00:00:00:ba:5e:ba:13" == "x$1" ]; then
+        if [ x$cmd == "xup" ]; then
+                ${SCRIPT_DIR}/prontolink.exp 10.128.0.63 $src_port 1 
+        elif [ x$cmd == "xdown" ]; then
+                ${SCRIPT_DIR}/prontolink.exp 10.128.0.63 $src_port 0 
+        else
+		echo "no cmd"
+        fi
+elif [  "x00:00:20:4e:7f:51:8a:35" == "x$1" ]; then
+        if [ x$cmd == "xup" ]; then
+                ${SCRIPT_DIR}/prontolink.exp 10.128.0.50 $src_port 1 
+        elif [ x$cmd == "xdown" ]; then
+                ${SCRIPT_DIR}/prontolink.exp 10.128.0.50 $src_port 0 
+        else
+		echo "no cmd"
+        fi
+
+elif [  "x00:01:00:16:97:08:9a:46" == "x$1" ]; then
+        if [ x$cmd == "xup" ]; then
+                ${SCRIPT_DIR}/neclink.exp $src_port no
+        elif [ x$cmd == "xdown" ]; then
+                ${SCRIPT_DIR}/neclink.exp $src_port 
+        else
+		echo "no cmd"
+        fi
+
+
+fi
+
+
+
+#for s in $switches; do
+#    dpid=`sudo ovs-ofctl  show  $s |grep dpid | awk '{print $4}'`
+#    if [  "x$dpid" == "x$src_dpid" ]; then
+#
+##       intf=`sudo ovs-ofctl show $s |grep addr | awk -v p=$src_port 'BEGIN {pat="^ "p"\("}
+##	$0 ~ pat {w=match ($0, /\(.*\)/); if (w) print substr($0, RSTART+1, RLENGTH-2)}'`
+#
+#        sudo ovs-ofctl show $s |grep addr | sed 's/[\(\)]/,/g'>/tmp/baz.out
+#	intf=`cat /tmp/baz.out | awk -v p=$src_port 'BEGIN {pat="^ "p","}
+#	$0 ~ pat {w=match($0, /,.*,/); if (w) print substr($0, RSTART+1, RLENGTH-2)}'`
+#
+#	if [ x$intf != "x" ]; then
+#	        if [ x$cmd == "xup" ]; then
+#		    echo "sudo ifconfig ${intf}  up"
+#		    sudo ifconfig ${intf}  up
+#       		elif [ x$cmd == "xdown" ]; then
+#		    echo "sudo ifconfig ${intf}  down"
+#		    sudo ifconfig ${intf}  down
+#	        else
+#		    echo "sudo ifconfig ${intf}"
+#		    sudo ifconfig ${intf} 
+#		fi
+#		break
+#        fi
+#    fi
+#done
diff --git a/sample/ONS2014demo/scripts/link.sh b/sample/ONS2014demo/scripts/link.sh
new file mode 100755
index 0000000..57323ef
--- /dev/null
+++ b/sample/ONS2014demo/scripts/link.sh
@@ -0,0 +1,48 @@
+#! /bin/bash
+
+controller=`hostname`
+switches=`sudo ovs-vsctl list-br`
+
+function host2ip (){
+   ip=`grep $1 /etc/hosts |grep -v "ip6"|  awk '{print $1}'`
+   echo $ip
+}
+
+# link.sh 00:00:00:00:ba:5e:ba:11 1 up
+
+if [ $# != 3 ];then
+ echo "usage: $0 <dpid> <port> <up|down>"
+ echo " example: $0 00:00:00:00:ba:5e:ba:11 1 up"
+ exit
+fi
+
+src_dpid=`echo $1 | sed s'/://g'`
+src_port=$2
+cmd=$3
+
+for s in $switches; do
+    dpid=`sudo ovs-ofctl show  $s |grep dpid | awk '{if(match($0,/dpid:[0-9|a-d]*/)){ print substr($0,RSTART+5,RLENGTH)}}'`
+    if [  "x$dpid" == "x$src_dpid" ]; then
+
+#       intf=`sudo ovs-ofctl show $s |grep addr | awk -v p=$src_port 'BEGIN {pat="^ "p"\("}
+#	$0 ~ pat {w=match ($0, /\(.*\)/); if (w) print substr($0, RSTART+1, RLENGTH-2)}'`
+
+        sudo ovs-ofctl show $s |grep addr | sed 's/[\(\)]/,/g'>/tmp/baz.out
+	intf=`cat /tmp/baz.out | awk -v p=$src_port 'BEGIN {pat="^ "p","}
+	$0 ~ pat {w=match($0, /,.*,/); if (w) print substr($0, RSTART+1, RLENGTH-2)}'`
+
+	if [ x$intf != "x" ]; then
+	        if [ x$cmd == "xup" ]; then
+		    echo "sudo ifconfig ${intf}  up"
+		    sudo ifconfig ${intf}  up
+       		elif [ x$cmd == "xdown" ]; then
+		    echo "sudo ifconfig ${intf}  down"
+		    sudo ifconfig ${intf}  down
+	        else
+		    echo "sudo ifconfig ${intf}"
+		    sudo ifconfig ${intf} 
+		fi
+		break
+        fi
+    fi
+done
diff --git a/sample/ONS2014demo/scripts/localssh.sh b/sample/ONS2014demo/scripts/localssh.sh
new file mode 100755
index 0000000..666330f
--- /dev/null
+++ b/sample/ONS2014demo/scripts/localssh.sh
@@ -0,0 +1,2 @@
+#! /bin/sh
+ssh -i ~/.ssh/onlabkey.pem 1.1.$1.1
diff --git a/sample/ONS2014demo/scripts/neclink.exp b/sample/ONS2014demo/scripts/neclink.exp
new file mode 100755
index 0000000..0815843
--- /dev/null
+++ b/sample/ONS2014demo/scripts/neclink.exp
@@ -0,0 +1,28 @@
+#!/usr/bin/expect -f
+# ./neclink.exp <ip of port> <'no' or blank>
+set timeout 5
+set port [lindex $argv 0]
+set no [lindex $argv 1]
+
+spawn ssh ons@10.128.0.11 
+expect ": "
+send "onos_test\r"
+expect ">"
+send "enable\r"
+expect ":"
+send "onos_test\r"
+expect "#"
+send "configure\r"
+expect "(config)# "
+send "interface gigabitethernet 0/$port\r"
+expect "if)# "
+send "$no shutdown\r"
+expect "# " 
+send "exit\r"
+expect "# " 
+send "exit\r"
+expect ": " 
+send "y\r"
+expect "#"
+send "exit\r"
+expect "closed."
diff --git a/sample/ONS2014demo/scripts/prontolink.exp b/sample/ONS2014demo/scripts/prontolink.exp
new file mode 100755
index 0000000..501cccd
--- /dev/null
+++ b/sample/ONS2014demo/scripts/prontolink.exp
@@ -0,0 +1,19 @@
+#!/usr/bin/expect -f
+# ./prontolink.exp <ip of switch> <port> <0 or 1 (on or off)>
+set timeout 5
+set arg0 [lindex $argv 0]
+set port [lindex $argv 1]
+set onoff [lindex $argv 2]
+
+spawn ssh root@$arg0 
+expect ": "
+send "OpenFlow\r"
+expect "# "
+send "cli\r"
+expect "CLI# "
+send "port set $port enable=$onoff\r"
+expect "CLI# "
+send "quit\r"
+expect "# " 
+send "exit\r"
+expect "closed."
diff --git a/sample/ONS2014demo/scripts/runiperf.sh b/sample/ONS2014demo/scripts/runiperf.sh
new file mode 100755
index 0000000..6233986
--- /dev/null
+++ b/sample/ONS2014demo/scripts/runiperf.sh
@@ -0,0 +1,70 @@
+#! /usr/bin/env python
+import sys
+import os
+
+ONOSDIR=os.getenv("HOME") + "/ONOS"
+IPERF=ONOSDIR + "/scripts/iperf"
+IPERFLOGDIR=ONOSDIR + "/web/log"
+
+# Usage: flowid src_dpid dst_dpid params
+def usage():
+  print "%s flowid src_dpid dst_dpid hw:svr|sw:svr|hw:client|sw:client <proto>/<duration>/<interval>/<samples>" % sys.argv[0]
+  sys.exit()
+
+
+
+def main():
+  flowid = sys.argv[1]
+  src_dpid = sys.argv[2]
+  dst_dpid = sys.argv[3]
+  (testbed,server) = sys.argv[4].upper().split(':')
+  server = server[0]
+  params = sys.argv[5].split('/')
+  proto = params[0]
+  duration = params[1]
+  interval = params[2]
+  samples = params[3]
+
+  src_nwid=int(src_dpid.split(':')[-2], 16)
+  dst_nwid=int(dst_dpid.split(':')[-2], 16)
+  src_hostid=int(src_dpid.split(':')[-1], 16)
+  dst_hostid=int(dst_dpid.split(':')[-1], 16)
+
+  if (testbed == "SW"):
+    MRUN=ONOSDIR + "/test-network/mininet/mrun"
+    HOST_FMT="host%d.%d"
+  else:
+    MRUN=ONOSDIR + "$HOME/mininet/util/m"
+    HOST_FMT="g%sh%02d"
+
+  if (proto == "tcp"):
+      mininet_host = HOST_FMT % (dst_nwid, dst_hostid)
+      cmd="%s %s \'%s -t%s -i%s -k%s -yJ -o %s/iperf_%s.out -c 192.168.%d.%d 2>&1 &\' &" % (MRUN, mininet_host, IPERF, src_hostid, duration, interval, samples, IPERFLOGDIR, flowid, dst_nwid, dst_hostid)
+      killcmd='sudo pkill -KILL -f \"iperf .* -o .*/iperf_%s.out\"' % (flowid)
+      print killcmd
+      print cmd
+      os.popen(killcmd)
+      os.popen(cmd)
+  else:
+    if (server == 'S'):
+      mininet_host = HOST_FMT % (dst_nwid, dst_hostid)
+      cmd="%s %s \'%s -us -i%s -k%s -yJ -o %s/iperfsvr_%s.out 2>&1 &\' &" % (MRUN, mininet_host, IPERF, interval, samples, IPERFLOGDIR, flowid)
+      killcmd='sudo pkill -KILL -f \"iperf .* -o .*/iperfsvr_%s.out\"' % (flowid)
+      print killcmd
+      print cmd
+    else:
+      mininet_host = HOST_FMT % (src_nwid, src_hostid)
+      cmd="%s %s \'%s -u  -t%s -i%s -k%s -yJ -o %s/iperfclient_%s.out -c 192.168.%d.%d 2>&1 &\' &" % (MRUN, mininet_host, IPERF, duration, interval, samples, IPERFLOGDIR, flowid, dst_nwid, dst_hostid)
+      killcmd='sudo pkill -KILL -f \"iperf .* -o .*/iperfclient_%s.out\"' % (flowid)
+      print killcmd
+      print cmd
+
+    os.popen(killcmd)
+    os.popen(cmd)
+
+if __name__ == "__main__":
+  if len(sys.argv) != 6:
+    print len(sys.argv)
+    usage()
+
+  main()
diff --git a/sample/ONS2014demo/scripts/showdpid.sh b/sample/ONS2014demo/scripts/showdpid.sh
new file mode 100755
index 0000000..14b6345
--- /dev/null
+++ b/sample/ONS2014demo/scripts/showdpid.sh
@@ -0,0 +1,8 @@
+#! /bin/bash
+controller=""
+#switches=`ifconfig -a | grep sw |grep -v eth | awk '{print $1}'`
+switches=`sudo ovs-vsctl list-br`
+for s in $switches; do
+    echo -n "$s : "
+    sudo ovs-ofctl  show  $s |grep dpid
+done
diff --git a/sample/ONS2014demo/scripts/switch.sh b/sample/ONS2014demo/scripts/switch.sh
new file mode 100755
index 0000000..eba0f34
--- /dev/null
+++ b/sample/ONS2014demo/scripts/switch.sh
@@ -0,0 +1,29 @@
+#! /bin/bash
+controller=`hostname`
+switches=`ifconfig -a | grep sw |grep -v eth | awk '{print $1}'`
+
+function host2ip (){
+   ip=`grep $1 /etc/hosts |grep -v "ip6"|  awk '{print $1}'`
+   echo $ip
+}
+
+url=""
+for c in $controller; do
+  url="$url tcp:`host2ip $c`:6633"
+done
+
+for s in $switches; do
+    dpid=`sudo ovs-ofctl  show  $s |grep dpid | awk '{split($4,x,":"); print x[2]}'`
+    if [  "x$dpid" == "x$1" ]; then
+        if [ x$2 == "xup" ]; then
+           sudo ovs-vsctl set-controller $s $url 
+           echo "$s up"
+        elif [ x$2 == "xdown" ]; then
+           sudo ovs-vsctl set-controller $s
+           echo "$s down"
+        else
+           echo -n "$s controller: "
+           sudo ovs-vsctl get-controller $s
+        fi
+    fi
+done
diff --git a/sample/ONS2014demo/scripts/template/ctrl-add-ext-template.sh b/sample/ONS2014demo/scripts/template/ctrl-add-ext-template.sh
new file mode 100755
index 0000000..6cbf565
--- /dev/null
+++ b/sample/ONS2014demo/scripts/template/ctrl-add-ext-template.sh
@@ -0,0 +1,20 @@
+#! /bin/bash
+controller="onos9vpc onos10vpc onos11vpc"
+me=`hostname`
+controller=`echo $controller | sed "s/$me//g"`
+switches=`ifconfig -a | grep sw |grep -v eth | awk '{print $1}'`
+
+function host2ip (){
+   ip=`grep $1 /etc/hosts |grep -v "ip6"|  awk '{print $1}'`
+   echo $ip
+}
+
+url=""
+for c in $controller; do
+  url="$url tcp:`host2ip $c`:6633"
+done
+echo $url
+for s in $switches; do
+    echo "set switch $s controller $url"
+    sudo ovs-vsctl set-controller $s $url
+done
diff --git a/sample/ONS2014demo/scripts/topology_rest.py b/sample/ONS2014demo/scripts/topology_rest.py
new file mode 100755
index 0000000..9871057
--- /dev/null
+++ b/sample/ONS2014demo/scripts/topology_rest.py
@@ -0,0 +1,1003 @@
+#! /usr/bin/env python
+import pprint
+import os
+import sys
+import subprocess
+import json
+import argparse
+import io
+import time
+import random
+import re
+from urllib2 import Request, urlopen, URLError, HTTPError
+
+from flask import Flask, json, Response, render_template, make_response, request
+
+# paths for local access
+ONOS_DIR = os.getenv("HOME") + "/ONOS"
+ONOS_SCRIPTS_DIR = ONOS_DIR + "/scripts"
+ONS2014_DEMO_SCRIPTS_DIR = ONOS_DIR + "/sample/ONS2014demo/scripts"
+ONS2014_DEMO_WEB_DIR = ONOS_DIR + "/sample/ONS2014demo/web"
+LINK_FILE = ONS2014_DEMO_SCRIPTS_DIR + "/link.json"
+CONFIG_FILE = ONS2014_DEMO_SCRIPTS_DIR + "/config.json"
+
+# paths for remote access
+REMOTE_DEMO_SCRIPTS_DIR = "ONOS/sample/ONS2014demo/scripts"
+
+## Global Var for this proxy script setting.
+# "0.0.0.0" means any interface
+ProxyIP="0.0.0.0"
+ProxyPort=9000
+
+## Global Var for ON.Lab local REST ##
+RestIP="localhost"
+RestPort=8080
+ONOS_DEFAULT_HOST="localhost" ;# Has to set if LB=False
+DEBUG=1
+
+pp = pprint.PrettyPrinter(indent=4)
+app = Flask(__name__)
+
+def read_config():
+  global LB, TESTBED, controllers, core_switches, ONOS_GUI3_HOST, ONOS_GUI3_CONTROL_HOST
+  f = open(CONFIG_FILE)
+  conf = json.load(f)
+  LB = conf['LB']
+  TESTBED = conf['TESTBED']
+  controllers = conf['controllers']
+  core_switches=conf['core_switches']
+  ONOS_GUI3_HOST=conf['ONOS_GUI3_HOST']
+  ONOS_GUI3_CONTROL_HOST=conf['ONOS_GUI3_CONTROL_HOST']
+  f.close()
+
+def read_link_def():
+  global link_def
+  f=open(LINK_FILE)
+  try:
+    link_def=json.load(f)
+    f.close()
+  except:
+    print "Can't read link def file (link.json)"
+    sys.exit(1)
+
+def get_link_ports(src_dpid, dst_dpid):
+  ret = (-1, -1)
+  for link in link_def:
+    if link['src-switch'] == src_dpid and link['dst-switch'] == dst_dpid:
+        ret = (link['src-port'], link['dst-port'])
+        break
+  return ret
+
+## Worker Functions ##
+def log_error(txt):
+  print '%s' % (txt)
+
+def debug(txt):
+  if DEBUG:
+    print '%s' % (txt)
+
+### File Fetch ###
+@app.route('/', methods=['GET'])
+@app.route('/<filename>', methods=['GET'])
+@app.route('/js/<filename>', methods=['GET'])
+@app.route('/d3/<filename>', methods=['GET'])
+@app.route('/css/<filename>', methods=['GET'])
+@app.route('/assets/<filename>', methods=['GET'])
+@app.route('/data/<filename>', methods=['GET'])
+def return_file(filename="index.html"):
+  if request.path == "/":
+    fullpath = ONS2014_DEMO_WEB_DIR + "/index.html"
+  else:
+    fullpath = ONS2014_DEMO_WEB_DIR + "/" + str(request.path)[1:]
+
+  try:
+    open(fullpath)
+  except:
+    response = make_response("Cannot find a file: %s" % (fullpath), 500)
+    response.headers["Content-type"] = "text/html"
+    return response
+
+  response = make_response(open(fullpath).read())
+  suffix = fullpath.split(".")[-1]
+
+  if suffix == "html" or suffix == "htm":
+    response.headers["Content-type"] = "text/html"
+  elif suffix == "js":
+    response.headers["Content-type"] = "application/javascript"
+  elif suffix == "css":
+    response.headers["Content-type"] = "text/css"
+  elif suffix == "png":
+    response.headers["Content-type"] = "image/png"
+  elif suffix == "svg":
+    response.headers["Content-type"] = "image/svg+xml"
+
+  return response
+
+## Proxy ##
+@app.route("/proxy/gui/link/<cmd>/<src_dpid>/<src_port>/<dst_dpid>/<dst_port>")
+def proxy_link_change(cmd, src_dpid, src_port, dst_dpid, dst_port):
+  url = "%s/gui/link/%s/%s/%s/%s/%s" % (ONOS_GUI3_CONTROL_HOST, cmd, src_dpid, src_port, dst_dpid, dst_port)
+  try:
+    response = urlopen(url)
+    result = response.read()
+  except:
+    result = ""
+    print "REST IF has issue %s" % url
+
+  resp = Response(result, status=200, mimetype='application/json')
+  return resp
+
+@app.route("/proxy/gui/switchctrl/<cmd>")
+def proxy_switch_controller_setting(cmd):
+  url = "%s/gui/switchctrl/%s" % (ONOS_GUI3_CONTROL_HOST, cmd)
+  try:
+    response = urlopen(url)
+    result = response.read()
+  except:
+    result = ""
+    print "REST IF has issue %s" % url
+
+  resp = Response(result, status=200, mimetype='application/json')
+  return resp
+
+@app.route("/proxy/gui/switch/<cmd>/<dpid>")
+def proxy_switch_status_change(cmd, dpid):
+  url = "%s/gui/switch/%s/%s" % (ONOS_GUI3_CONTROL_HOST, cmd, dpid)
+  try:
+    response = urlopen(url)
+    result = response.read()
+  except:
+    result = ""
+    print "REST IF has issue %s" % url
+
+  resp = Response(result, status=200, mimetype='application/json')
+  return resp
+
+@app.route("/proxy/gui/controller/<cmd>/<controller_name>")
+def proxy_controller_status_change(cmd, controller_name):
+  url = "%s/gui/controller/%s/%s" % (ONOS_GUI3_CONTROL_HOST, cmd, controller_name)
+  try:
+    response = urlopen(url)
+    result = response.read()
+  except:
+    result = ""
+    print "REST IF has issue %s" % url
+ 
+  resp = Response(result, status=200, mimetype='application/json')
+  return resp
+
+@app.route("/proxy/gui/addflow/<src_dpid>/<src_port>/<dst_dpid>/<dst_port>/<srcMAC>/<dstMAC>")
+def proxy_add_flow(src_dpid, src_port, dst_dpid, dst_port, srcMAC, dstMAC):
+  try:
+    url = "%s/gui/addflow/%s/%s/%s/%s/%s/%s" % (ONOS_GUI3_CONTROL_HOST, src_dpid, src_port, dst_dpid, dst_port, srcMAC, dstMAC)
+    #print "proxy gui addflow " + url
+    (code, result) = get_json(url)
+  except:
+    print "REST IF has issue %s" % url
+    print "Result %s" % result
+    exit()
+
+  resp = Response(result, status=200, mimetype='application/json')
+  return resp
+
+@app.route("/proxy/gui/delflow/<flow_id>")
+def proxy_del_flow(flow_id):
+  url = "%s/gui/delflow/%s" % (ONOS_GUI3_CONTROL_HOST, flow_id)
+  try:
+    response = urlopen(url)
+    result = response.read()
+  except:
+    result = ""
+    print "REST IF has issue %s" % url
+
+  resp = Response(result, status=200, mimetype='application/json')
+  return resp
+
+@app.route("/proxy/gui/iperf/start/<flow_id>/<duration>/<samples>")
+def proxy_iperf_start(flow_id,duration,samples):
+  url = "%s/gui/iperf/start/%s/%s/%s" % (ONOS_GUI3_CONTROL_HOST, flow_id, duration, samples)
+  try:
+    response = urlopen(url)
+    result = response.read()
+  except:
+    result = ""
+    print "REST IF has issue %s" % url
+
+  resp = Response(result, status=200, mimetype='application/json')
+  return resp
+
+@app.route("/proxy/gui/iperf/rate/<flow_id>")
+def proxy_iperf_rate(flow_id):
+  url = "%s/gui/iperf/rate/%s" % (ONOS_GUI3_CONTROL_HOST, flow_id)
+  try:
+    response = urlopen(url)
+    result = response.read()
+  except:
+    result = ""
+    print "REST IF has issue %s" % url
+
+  resp = Response(result, status=200, mimetype='application/json')
+  return resp
+
+@app.route("/proxy/gui/reset")
+def proxy_gui_reset():
+  url = "%s/gui/reset" % (ONOS_GUI3_CONTROL_HOST)
+  try:
+    response = urlopen(url)
+    result = response.read()
+  except:
+    result = ""
+    print "REST IF has issue %s" % url
+
+  resp = Response(result, status=200, mimetype='application/json')
+  return resp
+
+@app.route("/proxy/gui/scale")
+def proxy_gui_scale():
+  url = "%s/gui/scale" % (ONOS_GUI3_CONTROL_HOST)
+  try:
+    response = urlopen(url)
+    result = response.read()
+  except:
+    result = ""
+    print "REST IF has issue %s" % url
+
+  resp = Response(result, status=200, mimetype='application/json')
+  return resp
+
+###### ONOS REST API ##############################
+## Worker Func ###
+def get_json(url):
+  code = 200;
+  try:
+    response = urlopen(url)
+  except URLError, e:
+    print "get_json: REST IF %s has issue. Reason: %s" % (url, e.reason)
+    result = ""
+    return (500, result)
+  except HTTPError, e:
+    print "get_json: REST IF %s has issue. Code %s" % (url, e.code)
+    result = ""
+    return (e.code, result)
+
+  result = response.read()
+#  parsedResult = json.loads(result)
+  return (code, result)
+
+def pick_host():
+  if LB == True:
+    nr_host=len(controllers)
+    r=random.randint(0, nr_host - 1)
+    host=controllers[r]
+  else:
+    host=ONOS_DEFAULT_HOST
+
+  return "http://" + host + ":8080"
+
+## Switch ##
+@app.route("/wm/onos/topology/switches/json")
+def switches():
+  if request.args.get('proxy') == None:
+    host = pick_host()
+  else:
+    host = ONOS_GUI3_HOST
+
+  url ="%s/wm/onos/topology/switches/json" % (host)
+  (code, result) = get_json(url)
+
+  resp = Response(result, status=code, mimetype='application/json')
+  return resp
+
+## Link ##
+@app.route("/wm/onos/topology/links/json")
+def links():
+  if request.args.get('proxy') == None:
+    host = pick_host()
+  else:
+    host = ONOS_GUI3_HOST
+
+  url ="%s/wm/onos/topology/links/json" % (host)
+  (code, result) = get_json(url)
+
+  resp = Response(result, status=code, mimetype='application/json')
+  return resp
+
+## FlowSummary ##
+@app.route("/wm/onos/flows/getsummary/<start>/<range>/json")
+def flows(start, range):
+  if request.args.get('proxy') == None:
+    host = pick_host()
+  else:
+    host = ONOS_GUI3_HOST
+
+  url ="%s/wm/onos/flows/getsummary/%s/%s/json" % (host, start, range)
+  (code, result) = get_json(url)
+
+  resp = Response(result, status=code, mimetype='application/json')
+  return resp
+
+@app.route("/wm/onos/registry/controllers/json")
+def registry_controllers():
+  if request.args.get('proxy') == None:
+    host = pick_host()
+  else:
+    host = ONOS_GUI3_HOST
+
+  url= "%s/wm/onos/registry/controllers/json" % (host)
+  (code, result) = get_json(url)
+
+  resp = Response(result, status=code, mimetype='application/json')
+  return resp
+
+
+@app.route("/wm/onos/registry/switches/json")
+def registry_switches():
+  if request.args.get('proxy') == None:
+    host = pick_host()
+  else:
+    host = ONOS_GUI3_HOST
+
+  url="%s/wm/onos/registry/switches/json" % (host)
+  (code, result) = get_json(url)
+
+  resp = Response(result, status=code, mimetype='application/json')
+  return resp
+
+def node_id(switch_array, dpid):
+  id = -1
+  for i, val in enumerate(switch_array):
+    if val['name'] == dpid:
+      id = i
+      break
+
+  return id
+
+## API for ON.Lab local GUI ##
+@app.route('/topology', methods=['GET'])
+def topology_for_gui():
+  try:
+    url="http://%s:%s/wm/onos/topology/switches/json" % (RestIP, RestPort)
+    (code, result) = get_json(url)
+    parsedResult = json.loads(result)
+  except:
+    log_error("REST IF has issue: %s" % url)
+    log_error("%s" % result)
+    return
+
+  topo = {}
+  switches = []
+  links = []
+  devices = []
+
+  for v in parsedResult:
+    if v.has_key('dpid'):
+#      if v.has_key('dpid') and str(v['state']) == "ACTIVE":#;if you want only ACTIVE nodes
+      dpid = str(v['dpid'])
+      state = str(v['state'])
+      sw = {}
+      sw['name']=dpid
+      sw['group']= -1
+
+      if state == "INACTIVE":
+        sw['group']=0
+      switches.append(sw)
+
+  try:
+    url="http://%s:%s/wm/onos/registry/switches/json" % (RestIP, RestPort)
+    (code, result) = get_json(url)
+    parsedResult = json.loads(result)
+  except:
+    log_error("REST IF has issue: %s" % url)
+    log_error("%s" % result)
+
+  for key in parsedResult:
+    dpid = key
+    ctrl = parsedResult[dpid][0]['controllerId']
+    sw_id = node_id(switches, dpid)
+    if sw_id != -1:
+      if switches[sw_id]['group'] != 0:
+        switches[sw_id]['group'] = controllers.index(ctrl) + 1
+
+  try:
+    url = "http://%s:%s/wm/onos/topology/links/json" % (RestIP, RestPort)
+    (code, result) = get_json(url)
+    parsedResult = json.loads(result)
+  except:
+    log_error("REST IF has issue: %s" % url)
+    log_error("%s" % result)
+    return
+#    sys.exit(0)
+
+  for v in parsedResult:
+    link = {}
+    if v.has_key('dst-switch'):
+      dst_dpid = str(v['dst-switch'])
+      dst_id = node_id(switches, dst_dpid)
+    if v.has_key('src-switch'):
+      src_dpid = str(v['src-switch'])
+      src_id = node_id(switches, src_dpid)
+    link['source'] = src_id
+    link['target'] = dst_id
+
+    #onpath = 0
+    #for (s,d) in path:
+    #  if s == v['src-switch'] and d == v['dst-switch']:
+    #    onpath = 1
+    #    break
+    #link['type'] = onpath
+
+    links.append(link)
+
+  topo['nodes'] = switches
+  topo['links'] = links
+
+  js = json.dumps(topo)
+  resp = Response(js, status=200, mimetype='application/json')
+  return resp
+
+@app.route("/wm/floodlight/topology/toporoute/<v1>/<p1>/<v2>/<p2>/json")
+def shortest_path(v1, p1, v2, p2):
+  try:
+    url = "http://%s:%s/wm/onos/topology/switches/json" % (RestIP, RestPort)
+    (code, result) = get_json(url)
+    parsedResult = json.loads(result)
+  except:
+    log_error("REST IF has issue: %s" % command)
+    log_error("%s" % result)
+    return
+
+  topo = {}
+  switches = []
+  links = []
+
+  for v in parsedResult:
+    if v.has_key('dpid'):
+      dpid = str(v['dpid'])
+      state = str(v['state'])
+      sw = {}
+      sw['name']=dpid
+      if str(v['state']) == "ACTIVE":
+        if dpid[-2:-1] == "a":
+         sw['group']=1
+        if dpid[-2:-1] == "b":
+         sw['group']=2
+        if dpid[-2:-1] == "c":
+         sw['group']=3
+      if str(v['state']) == "INACTIVE":
+         sw['group']=0
+
+      switches.append(sw)
+
+  try:
+    url = "http://%s:%s/wm/onos/topology/route/%s/%s/%s/%s/json" % (RestIP, RestPort, v1, p1, v2, p2)
+    (code, result) = get_json(url)
+    parsedResult = json.loads(result)
+  except:
+    log_error("No route")
+    parsedResult = []
+
+  path = [];
+  for i, v in enumerate(parsedResult):
+    if i < len(parsedResult) - 1:
+      sdpid= parsedResult['flowEntries'][i]['dpid']['value']
+      ddpid= parsedResult['flowEntries'][i+1]['dpid']['value']
+      path.append( (sdpid, ddpid))
+
+  try:
+    url = "http://%s:%s/wm/onos/topology/links/json" % (RestIP, RestPort)
+    (code, result) = get_json(url)
+    parsedResult = json.loads(result)
+  except:
+    log_error("REST IF has issue: %s" % command)
+    log_error("%s" % result)
+    return
+
+  for v in parsedResult:
+    link = {}
+    if v.has_key('dst-switch'):
+      dst_dpid = str(v['dst-switch'])
+      dst_id = node_id(switches, dst_dpid)
+    if v.has_key('src-switch'):
+      src_dpid = str(v['src-switch'])
+      src_id = node_id(switches, src_dpid)
+    link['source'] = src_id
+    link['target'] = dst_id
+    onpath = 0
+    for (s,d) in path:
+      if s == v['src-switch'] and d == v['dst-switch']:
+        onpath = 1
+        break
+
+    link['type'] = onpath
+    links.append(link)
+
+  topo['nodes'] = switches
+  topo['links'] = links
+
+  js = json.dumps(topo)
+  resp = Response(js, status=200, mimetype='application/json')
+  return resp
+
+@app.route("/wm/floodlight/core/controller/switches/json")
+def query_switch():
+  try:
+    url = "http://%s:%s/wm/onos/topology/switches/json" % (RestIP, RestPort)
+    (code, result) = get_json(url)
+    parsedResult = json.loads(result)
+  except:
+    log_error("REST IF has issue: %s" % url)
+    log_error("%s" % result)
+    return
+#    sys.exit(0)
+
+#  print command
+#  print result
+  switches_ = []
+  for v in parsedResult:
+    if v.has_key('dpid'):
+      if v.has_key('dpid') and str(v['state']) == "ACTIVE":#;if you want only ACTIVE nodes
+        dpid = str(v['dpid'])
+        state = str(v['state'])
+        sw = {}
+        sw['dpid']=dpid
+        sw['active']=state
+        switches_.append(sw)
+
+#  pp.pprint(switches_)
+  js = json.dumps(switches_)
+  resp = Response(js, status=200, mimetype='application/json')
+  return resp
+
+## return fake stat for now
+@app.route("/wm/floodlight/core/switch/<switchId>/<statType>/json")
+def switch_stat(switchId, statType):
+    if statType == "desc":
+        desc=[{"length":1056,"serialNumber":"None","manufacturerDescription":"Nicira Networks, Inc.","hardwareDescription":"Open vSwitch","softwareDescription":"1.4.0+build0","datapathDescription":"None"}]
+        ret = {}
+        ret[switchId]=desc
+    elif statType == "aggregate":
+        aggr = {"packetCount":0,"byteCount":0,"flowCount":0}
+        ret = {}
+        ret[switchId]=aggr
+    else:
+        ret = {}
+
+    js = json.dumps(ret)
+    resp = Response(js, status=200, mimetype='application/json')
+    return resp
+
+@app.route("/controller_status")
+def controller_status():
+  url= "http://%s:%d/wm/onos/registry/controllers/json" % (RestIP, RestPort)
+  (code, result) = get_json(url)
+  parsedResult = json.loads(result)
+
+  cont_status=[]
+  for i in controllers:
+    status={}
+    if i in parsedResult:
+      onos=1
+    else:
+      onos=0
+    status["name"]=i
+    status["onos"]=onos
+    status["cassandra"]=0
+    cont_status.append(status)
+
+  js = json.dumps(cont_status)
+  resp = Response(js, status=200, mimetype='application/json')
+  return resp
+
+
+### Command ###
+@app.route("/gui/controller/<cmd>/<controller_name>")
+def controller_status_change(cmd, controller_name):
+  if (TESTBED == "hw"):
+    start_onos="/home/admin/bin/onos start %s" % (controller_name[-1:])
+#    start_onos="/home/admin/bin/onos start %s > /tmp/debug " % (controller_name[-1:])
+    stop_onos="/home/admin/bin/onos stop %s" % (controller_name[-1:])
+#    stop_onos="/home/admin/bin/onos stop %s > /tmp/debug " % (controller_name[-1:])
+#    print "Debug: Controller command %s called %s" % (cmd, controller_name)
+  else:
+    # No longer use -i to specify keys (use .ssh/config to specify it)
+    start_onos="ssh %s \"cd ONOS; ./onos.sh core start\"" % (controller_name)
+    stop_onos="ssh %s \"cd ONOS; ./onos.sh core stop\"" % (controller_name)
+#    start_onos="ssh -i ~/.ssh/onlabkey.pem %s ONOS/start-onos.sh start" % (controller_name)
+#    stop_onos="ssh -i ~/.ssh/onlabkey.pem %s ONOS/start-onos.sh stop" % (controller_name)
+
+  if cmd == "up":
+    result=os.popen(start_onos).read()
+    ret = "controller %s is up: %s" % (controller_name, result)
+  elif cmd == "down":
+    result=os.popen(stop_onos).read()
+    ret = "controller %s is down: %s" % (controller_name, result)
+
+  return ret
+
+@app.route("/gui/switchctrl/<cmd>")
+def switch_controller_setting(cmd):
+  if cmd =="local":
+    print "All aggr switches connects to local controller only"
+    result=""
+    if (TESTBED == "sw"):
+      for i in range(1, len(controllers)):
+          cmd_string="ssh %s 'cd %s; ./ctrl-local.sh'" % (controllers[i], REMOTE_DEMO_SCRIPTS_DIR)
+          result += os.popen(cmd_string).read()
+    else:
+      cmd_string="cd; switch local > /tmp/watch"
+      result += os.popen(cmd_string).read()
+  elif cmd =="all":
+    print "All aggr switches connects to all controllers except for core controller"
+    result=""
+    if (TESTBED == "sw"):
+      for i in range(1, len(controllers)):
+        cmd_string="ssh %s 'cd %s; ./ctrl-add-ext.sh'" % (controllers[i], REMOTE_DEMO_SCRIPTS_DIR)
+#        cmd_string="ssh -i ~/.ssh/onlabkey.pem %s 'cd %s; ./ctrl-add-ext.sh'" % (controllers[i], REMOTE_DEMO_SCRIPTS_DIR)
+        print "cmd is: "+cmd_string
+        result += os.popen(cmd_string).read()
+    else:
+      cmd_string="/home/admin/bin/switch all > /tmp/watch"
+      result += os.popen(cmd_string).read()
+
+  return result
+
+@app.route("/gui/reset")
+def reset_demo():
+  if (TESTBED == "hw"):
+    cmd_string="cd ~/bin; ./demo-reset-hw.sh > /tmp/watch &"
+  else:
+    cmd_string="cd %s; ./demo-reset-sw.sh > /tmp/watch &" % (REMOTE_DEMO_SCRIPTS_DIR)
+  os.popen(cmd_string)
+  return "Reset" 
+
+@app.route("/gui/scale")
+def scale_demo():
+  if (TESTBED == "hw"):
+    cmd_string="cd ~/bin;  ~/bin/demo-scale-out-hw.sh > /tmp/watch &"
+  else:
+    cmd_string="cd %s; ./demo-scale-out-sw.sh > /tmp/watch &" % (REMOTE_DEMO_SCRIPTS_DIR)
+  os.popen(cmd_string)
+  return "scale"
+
+@app.route("/gui/switch/<cmd>/<dpid>")
+def switch_status_change(cmd, dpid):
+  result = ""
+  if (TESTBED == "hw"):
+    return result
+
+  r = re.compile(':')
+  dpid = re.sub(r, '', dpid)
+  host=controllers[0]
+  cmd_string="ssh %s 'cd %s; ./switch.sh %s %s'" % (host, REMOTE_DEMO_SCRIPTS_DIR, dpid, cmd)
+#  cmd_string="ssh -i ~/.ssh/onlabkey.pem %s 'cd %s; ./switch.sh %s %s'" % (host, REMOTE_DEMO_SCRIPTS_DIR, dpid, cmd)
+  get_status="ssh -i ~/.ssh/onlabkey.pem %s 'cd %s; ./switch.sh %s'" % (host, REMOTE_DEMO_SCRIPTS_DIR, dpid)
+  print "cmd_string"
+
+  if cmd =="up" or cmd=="down":
+    print "make dpid %s %s" % (dpid, cmd)
+    os.popen(cmd_string)
+    result=os.popen(get_status).read()
+
+  return result
+
+#* Link Up
+#http://localhost:9000/gui/link/up/<src_dpid>/<src_port>/<dst_dpid>/<dst_port>
+@app.route("/gui/link/up/<src_dpid>/<src_port>/<dst_dpid>/<dst_port>")
+def link_up(src_dpid, src_port, dst_dpid, dst_port):
+  result = ""
+
+  if (TESTBED == "sw"):
+    result = link_up_sw(src_dpid, src_port, dst_dpid, dst_port)
+  else:
+    result = link_up_hw(src_dpid, src_port, dst_dpid, dst_port)
+  return result
+
+# Link up on software testbed
+def link_up_sw(src_dpid, src_port, dst_dpid, dst_port):
+
+  cmd = 'up'
+  result=""
+  for dpid in (src_dpid, dst_dpid):
+    if dpid in core_switches:
+      host = controllers[0]
+    else:
+      hostid=int(dpid.split(':')[-2])
+      host = controllers[hostid-1]
+
+    if dpid == src_dpid:
+      (port, dontcare) = get_link_ports(dpid, dst_dpid)
+    else:
+      (port, dontcare) = get_link_ports(dpid, src_dpid)
+
+#    cmd_string="ssh -i ~/.ssh/onlabkey.pem %s 'cd %s; ./link.sh %s %s %s'" % (host, REMOTE_DEMO_SCRIPTS_DIR, dpid, port, cmd)
+    cmd_string="ssh %s 'cd %s; ./link.sh %s %s %s'" % (host, REMOTE_DEMO_SCRIPTS_DIR, dpid, port, cmd)
+    print cmd_string
+    res=os.popen(cmd_string).read()
+    result = result + ' ' + res
+
+  return result
+
+#      if hostid == 2 :
+#        src_ports = [51]
+#      else :
+#        src_ports = [26]
+#
+#    for port in src_ports :
+#      cmd_string="ssh -i ~/.ssh/onlabkey.pem %s 'cd %s; ./link.sh %s %s %s'" % (host, REMOTE_DEMO_SCRIPTS_DIR, dpid, port, cmd)
+#      print cmd_string
+#      res=os.popen(cmd_string).read()
+
+
+
+# Link up on hardware testbed
+def link_up_hw(src_dpid, src_port, dst_dpid, dst_port):
+
+	port1 = src_port
+	port2 = dst_port
+	if src_dpid == "00:00:00:00:ba:5e:ba:11":
+		if dst_dpid == "00:00:00:08:a2:08:f9:01":
+			port1 = 24
+			port2 = 24
+		elif dst_dpid == "00:01:00:16:97:08:9a:46":
+			port1 = 23
+			port2 = 23
+	elif src_dpid == "00:00:00:00:ba:5e:ba:13":
+                if dst_dpid == "00:00:20:4e:7f:51:8a:35":
+			port1 = 22
+			port2 = 22
+                elif dst_dpid == "00:00:00:00:00:00:ba:12":
+			port1 = 23
+			port2 = 23
+	elif src_dpid == "00:00:00:00:00:00:ba:12":
+                if dst_dpid == "00:00:00:00:ba:5e:ba:13":
+			port1 = 23
+			port2 = 23
+                elif dst_dpid == "00:00:00:08:a2:08:f9:01":
+			port1 = 22
+			port2 = 22
+                elif dst_dpid == "00:00:20:4e:7f:51:8a:35":
+			port1 = 24
+			port2 = 21
+	elif src_dpid == "00:01:00:16:97:08:9a:46":
+                if dst_dpid == "00:00:00:00:ba:5e:ba:11":
+			port1 = 23
+			port2 = 23
+                elif dst_dpid == "00:00:20:4e:7f:51:8a:35":
+			port1 = 24
+			port2 = 24
+	elif src_dpid == "00:00:00:08:a2:08:f9:01":
+                if dst_dpid == "00:00:00:00:ba:5e:ba:11":
+			port1 = 24
+			port2 = 24
+                elif dst_dpid == "00:00:00:00:00:00:ba:12":
+			port1 = 22
+			port2 = 22
+                elif dst_dpid == "00:00:20:4e:7f:51:8a:35":
+			port1 = 23
+			port2 = 23
+	elif src_dpid == "00:00:20:4e:7f:51:8a:35":
+                if dst_dpid == "00:00:00:00:00:00:ba:12":
+			port1 = 21
+			port2 = 24
+                elif dst_dpid == "00:00:00:00:ba:5e:ba:13":
+			port1 = 22
+			port2 = 22
+                elif dst_dpid == "00:01:00:16:97:08:9a:46":
+			port1 = 24
+			port2 = 24
+                elif dst_dpid == "00:00:00:08:a2:08:f9:01":
+			port1 = 23
+			port2 = 23
+
+	cmd = 'up'
+	result=""
+	host = controllers[0]
+	cmd_string="%s/link-hw.sh %s %s %s " % (ONS2014_DEMO_SCRIPTS_DIR, src_dpid, port1, cmd)
+	print cmd_string
+	res=os.popen(cmd_string).read()
+	result = result + ' ' + res
+	cmd_string="%s/link-hw.sh %s %s %s " % (ONS2014_DEMO_SCRIPTS_DIR, dst_dpid, port2, cmd)
+	print cmd_string
+	res=os.popen(cmd_string).read()
+	result = result + ' ' + res
+
+
+	return result
+
+
+#* Link Down
+#http://localhost:9000/gui/link/down/<src_dpid>/<src_port>/<dst_dpid>/<dst_port>
+@app.route("/gui/link/<cmd>/<src_dpid>/<src_port>/<dst_dpid>/<dst_port>")
+def link_down(cmd, src_dpid, src_port, dst_dpid, dst_port):
+
+  if src_dpid in core_switches:
+    host = controllers[0]
+  else:
+    hostid=int(src_dpid.split(':')[-2])
+    host = controllers[hostid-1]
+
+  if (TESTBED == "sw"):
+    cmd_string="ssh %s 'cd %s; ./link.sh %s %s %s'" % (host, REMOTE_DEMO_SCRIPTS_DIR, src_dpid, src_port, cmd)
+  else:
+    if ( src_dpid == "00:00:00:08:a2:08:f9:01" ):
+      cmd_string="%s/link-hw.sh %s %s %s " % (ONS2014_DEMO_SCRIPTS_DIR, dst_dpid, dst_port, cmd)
+    else:
+      cmd_string="%s/link-hw.sh %s %s %s " % (ONS2014_DEMO_SCRIPTS_DIR, src_dpid, src_port, cmd)
+  print cmd_string
+
+  result=os.popen(cmd_string).read()
+
+  return result
+
+#* Create Flow
+#http://localhost:9000/gui/addflow/<src_dpid>/<src_port>/<dst_dpid>/<dst_port>/<srcMAC>/<dstMAC>
+#1 FOOBAR 00:00:00:00:00:00:01:01 1 00:00:00:00:00:00:01:0b 1 matchSrcMac 00:00:00:00:00:00 matchDstMac 00:01:00:00:00:00
+@app.route("/gui/addflow/<src_dpid>/<src_port>/<dst_dpid>/<dst_port>/<srcMAC>/<dstMAC>")
+def add_flow(src_dpid, src_port, dst_dpid, dst_port, srcMAC, dstMAC):
+  host = pick_host()
+  url ="%s/wm/onos/flows/getsummary/%s/%s/json" % (host, 0, 0)
+  (code, result) = get_json(url)
+  parsedResult = json.loads(result)
+  if len(parsedResult) > 0:
+    if parsedResult[-1].has_key('flowId'):
+      flow_nr = int(parsedResult[-1]['flowId']['value'], 16)
+  else:
+    flow_nr = -1  # first flow
+    print "first flow"
+
+  flow_nr += 1
+  command =  "%s/add_flow.py -m onos %d %s %s %s %s %s matchSrcMac %s matchDstMac %s" % (ONOS_SCRIPTS_DIR, flow_nr, "dummy", src_dpid, src_port, dst_dpid, dst_port, srcMAC, dstMAC)
+  flow_nr += 1
+  command1 = "%s/add_flow.py -m onos %d %s %s %s %s %s matchSrcMac %s matchDstMac %s" % (ONOS_SCRIPTS_DIR, flow_nr, "dummy", dst_dpid, dst_port, src_dpid, src_port, dstMAC, srcMAC)
+  print "add flow: %s, %s" % (command, command1)
+  errcode = os.popen(command).read()
+  errcode1 = os.popen(command1).read()
+  ret=command+":"+errcode+" "+command1+":"+errcode1
+  print ret 
+  return ret
+
+#* Delete Flow
+#http://localhost:9000/gui/delflow/<flow_id>
+@app.route("/gui/delflow/<flow_id>")
+def del_flow(flow_id):
+  command = "%s/delete_flow.py %s" % (ONOS_SCRIPTS_DIR, flow_id)
+  print command
+  errcode = os.popen(command).read()
+  return errcode
+
+#* Start Iperf Througput
+#http://localhost:9000/gui/iperf/start/<flow_id>/<duration>
+@app.route("/gui/iperf/start/<flow_id>/<duration>/<samples>")
+def iperf_start(flow_id,duration,samples):
+  url = "http://%s:%s/wm/onos/flows/get/%s/json" % (RestIP, RestPort, flow_id)
+  try:
+    response = urlopen(url)
+    result = response.read()
+    if len(result) == 0:
+      print "No Flow found"
+      return "Flow %s not found" % (flow_id);
+  except:
+    print "REST IF has issue %s" % url
+    return "REST IF has issue %s" % url
+
+  parsedResult = json.loads(result)
+
+  flowId = int(parsedResult['flowId']['value'], 16)
+  src_dpid = parsedResult['dataPath']['srcPort']['dpid']['value']
+  src_port = parsedResult['dataPath']['srcPort']['port']['value']
+  dst_dpid = parsedResult['dataPath']['dstPort']['dpid']['value']
+  dst_port = parsedResult['dataPath']['dstPort']['port']['value']
+#  print "FlowPath: (flowId = %s src = %s/%s dst = %s/%s" % (flowId, src_dpid, src_port, dst_dpid, dst_port)
+
+  if src_dpid in core_switches:
+      src_host = controllers[0]
+  else:
+      hostid=int(src_dpid.split(':')[-2])
+      if TESTBED == "hw":
+        src_host = "mininet%i" % hostid
+      else:
+        src_host = controllers[hostid-1]
+
+  if dst_dpid in core_switches:
+      dst_host = controllers[0]
+  else:
+      hostid=int(dst_dpid.split(':')[-2])
+      if TESTBED == "hw":
+        dst_host = "mininet%i" % hostid
+      else:
+        dst_host = controllers[hostid-1]
+
+# /runiperf.sh <flowid> <src_dpid> <dst_dpid> hw:svr|sw:svr|hw:client|sw:client <proto>/<duration>/<interval>/<samples>
+  protocol="udp"
+  interval=0.1
+  if TESTBED == "hw":
+    cmd_string="dsh -w %s 'cd %s; " % (dst_host, REMOTE_DEMO_SCRIPTS_DIR)
+  else:
+    cmd_string="ssh %s 'cd %s; " % (dst_host, REMOTE_DEMO_SCRIPTS_DIR)
+  cmd_string += "./runiperf.sh %d %s %s %s:%s %s/%s/%s/%s'" % (flowId, src_dpid, dst_dpid, TESTBED, "svr", protocol, duration, interval, samples)
+  print cmd_string
+  os.popen(cmd_string)
+
+  if TESTBED == "hw":
+    cmd_string="dsh -w %s 'cd %s; " % (src_host, REMOTE_DEMO_SCRIPTS_DIR)
+  else:
+    cmd_string="ssh %s 'cd %s;" % (src_host, REMOTE_DEMO_SCRIPTS_DIR)
+  cmd_string+="./runiperf.sh %d %s %s %s:%s %s/%s/%s/%s'" % (flowId, src_dpid, dst_dpid, TESTBED, "client", protocol, duration, interval, samples)
+  print cmd_string
+  os.popen(cmd_string)
+
+  return cmd_string
+
+
+#* Get Iperf Throughput
+#http://localhost:9000/gui/iperf/rate/<flow_id>
+@app.route("/gui/iperf/rate/<flow_id>")
+def iperf_rate(flow_id):
+  url = "http://%s:%s/wm/onos/flows/get/%s/json" % (RestIP, RestPort, flow_id)
+  try:
+    response = urlopen(url)
+    result = response.read()
+    if len(result) == 0:
+      return "no such iperf flow (flowid %s)" % flow_id
+  except:
+    print "REST IF has issue %s" % url
+    exit
+
+  parsedResult = json.loads(result)
+
+  flowId = int(parsedResult['flowId']['value'], 16)
+  src_dpid = parsedResult['dataPath']['srcPort']['dpid']['value']
+  src_port = parsedResult['dataPath']['srcPort']['port']['value']
+  dst_dpid = parsedResult['dataPath']['dstPort']['dpid']['value']
+  dst_port = parsedResult['dataPath']['dstPort']['port']['value']
+
+  if dst_dpid in core_switches:
+    host = controllers[0]
+  else:
+    hostid=int(dst_dpid.split(':')[-2])
+    if TESTBED == "hw":
+      host = "mininet%i" % hostid
+    else:
+      host = controllers[hostid-1]
+
+  url="http://%s:%s/log/iperfsvr_%s.out" % (host, 9000, flow_id)
+  try:
+    response = urlopen(url)
+    result = response.read()
+  except:
+    print "REST IF has issue %s" % url
+    return 
+
+  if re.match("Cannot", result):
+    resp = Response(result, status=400, mimetype='text/html')
+    return "no iperf file found (host %s flowid %s): %s" % (host, flow_id, result)
+  else:
+    resp = Response(result, status=200, mimetype='application/json')
+    return resp
+
+if __name__ == "__main__":
+  random.seed()
+  read_config()
+  read_link_def()
+  if len(sys.argv) > 1 and sys.argv[1] == "-d":
+    # for debugging
+    #add_flow("00:00:00:00:00:00:02:02", 1, "00:00:00:00:00:00:03:02", 1, "00:00:00:00:02:02", "00:00:00:00:03:0c")
+    #proxy_link_change("up", "00:00:00:00:ba:5e:ba:11", 1, "00:00:00:00:00:00:00:00", 1)
+    #proxy_link_change("down", "00:00:20:4e:7f:51:8a:35", 1, "00:00:00:00:00:00:00:00", 1)
+    #proxy_link_change("up", "00:00:00:00:00:00:02:03", 1, "00:00:00:00:00:00:00:00", 1)
+    #proxy_link_change("down", "00:00:00:00:00:00:07:12", 1, "00:00:00:00:00:00:00:00", 1)
+    #print "-- query all switches --"
+    #query_switch()
+    #print "-- query topo --"
+    #topology_for_gui()
+    ##print "-- query all links --"
+    ##query_links()
+    #print "-- query all devices --"
+    #devices()
+    #links()
+    #switches()
+    #reset_demo()
+    pass
+  else:
+    app.debug = True
+    app.run(threaded=True, host=ProxyIP, port=ProxyPort)
diff --git a/sample/ONS2014demo/web/README.txt b/sample/ONS2014demo/web/README.txt
new file mode 100644
index 0000000..2807fec
--- /dev/null
+++ b/sample/ONS2014demo/web/README.txt
@@ -0,0 +1,5 @@
+from main web directory
+
+	 python ./restapi2.py
+
+http://localhost:9000/ons-demo/index.html
\ No newline at end of file
diff --git a/sample/ONS2014demo/web/RELEASE_NOTES.txt b/sample/ONS2014demo/web/RELEASE_NOTES.txt
new file mode 100644
index 0000000..19d5e58
--- /dev/null
+++ b/sample/ONS2014demo/web/RELEASE_NOTES.txt
@@ -0,0 +1,121 @@
+** April 12, 2013 **
+- fixed bug in iperf fetch
+- improved iperf logging
+
+** April 11, 2013 **
+- Use timestamps for iperf display
+This elimates spurious gaps when server responds slowly. However, gaps still appear if the server drops buffers entirely
+- Add "K" action for killing a controller
+
+** April 9, 2013 **
+- display number of flows for each core<->core link
+- graphics tweaks
+
+** April 8, 2013 **
+- map view
+- onos nodes at top
+- count only active switches in header
+- hook up switchctrl all and local actions
+- various small ui improvements (hover feedback, flow chooser animation e.g.)
+- splash screen and use vector graphics for on.lab logo
+- only show "marching ants" animation when iperf data is flowing
+- NOTE: the map view dynamically sizes with browser resize. so no need to refresh after resizing anymore
+
+
+** April 8, 2013 **
+- add explicit timeout logic so that the GUI doesn't have to be refreshed if the API misbehaves
+
+** April 8, 2013 **
+- merge from master
+- fix gradually increasing latency of iperf data display
+
+** April 4, 2013 **
+- denser iperf display
+- don't pop alert on command error response. just log it
+
+** April 4, 2013 **
+iperf display implemented
+- scaled to 50,000,000
+- update rate is every 2s
+- the display does not draw until receiving 2 buffers of data (this way if there is a stale buffer it doesn't get displayed)
+- duration is 10000 seconds. seems like there is no need for a button to restart?
+- displaying 10s data
+- if the data underruns (either because the server response is too slow or because the iperf data stops being updated) the display draws 0s
+- seeing the data stall a lot (timestamp and end-time remain the same through many fetches)
+
+** April 4, 2013 **
+Fix issues:
+	305 - "close x" now unselects flow. double click to delete a flow
+	323 - gui now recovers on timeout errors and polls again
+	324 - fixed problem with added flows not displaying
+	325 - fixed logic displaying flows in topology view
+
+** March 28, 2013 **
+- add and delete flow implemented
+- to add flow
+	- mouse down in src edge switch
+	- drag to dst edge switch
+	- release/confirm to create flow
+- to delete flow
+	- select flow in flow chooser
+	- click "close" button in flow table
+	- confirm
+- same "pending" style as other actions
+
+** March 28, 2013 **
+- basic flow chooser
+	- click in "eye" to show full list
+	- click on "eye" in full list to monitor that flow in the top slot (and show the flow in topology)
+		- other flows get pushed down one slot
+		- when a flow is pushed off the list, it is no longer displayed in topology
+- bug fix for link disappearing after being added
+- color improvements
+- draw vector while linking to make it clearer what's going to happen
+
+** March 27, 2013 **
+- click onos node "eye" icon to highlight switches associated with that controller
+- double click onos node else where to activate/deactivate
+- double click core switch to activate/deactivate
+- mouse down on switch, drag to other switch, mouse up to make link up/down
+	allowed links are
+		aggregation->core (link up/down)
+		core->core (link up/down)
+- pending states for links, switches and controllers after executing command
+	object pulses until state change or timeout (12s)
+- merge from upstream/master
+
+** March 25, 2013 **
+- First pass at flow chooser
+	- Uses mock data
+	- Select flow to show the flow in topology view
+	- Selected flow currently always shows "marching ants" Once iperf is setup the movement will only be when there is iperf traffic
+	- Still need to do popup flow chooser to "monitor" flows in the flow panel
+
+** March 23, 2013 **
+- Link and switch state updates dynamically
+- Link direction is indicated with arrow heads
+
+** March 22, 2013 **
+- Workarounds for Chrome v25 rendering bugs
+- Fixed broken proxy functionality in restapi2.py
+- webui should now work when hosted from a different server than the controller (where it uses gui3.onlab.us:8080) and also when run from the same server (where it uses localhost:8080)
+
+** March 20, 2013 **
+- URL parameters control functions as follows:
+	http://localhost:9000/ons-demo/index.html
+		uses the ONOS_HOST defined in restapi2.py. currently http://gui3.onlab.us:8080
+	http://localhost:9000/ons-demo/index.html?proxy
+		uses the index.html host to proxy to ONOS_HOST (works around cross site scripting restrictions to allow the WebUI to be served from a different server than the one that hosts the controller)
+	http://localhost:9000/ons-demo/index.html?mock
+		uses the mock JSON responses under ons-dmo/data
+- clicking a controller behavior change
+	1) if all controllers are selected, deselects all controllers except the one clicked
+	2) if only the clicked controller is selected, selects all controllers again
+- Update configuration files to match test bed
+- Update sample JSON files from test bed
+
+** March 19, 2013 **
+- aggregation switch sample data DPIDs do not match official switch config.
+	- switch config hacked 00:00:00:00:00:00:01:01 ==> 00:00:00:00:00:00:01:00 etc.
+- layout does not dynamically adjust when window is resized
+	- refresh browser window after resizing to fix layout
diff --git a/sample/ONS2014demo/web/assets/black-eye.svg b/sample/ONS2014demo/web/assets/black-eye.svg
new file mode 100644
index 0000000..73596c2
--- /dev/null
+++ b/sample/ONS2014demo/web/assets/black-eye.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+	<path d="M506.637,242.501c-5.362-6.347-11.263-12.33-17.171-18.193c-31.897-31.679-68.549-59.921-108.648-80.411
+		c-25.618-13.08-53.038-23.655-81.451-28.721c-14.453-2.586-28.617-3.912-43.474-3.938c-14.447,0.025-28.908,1.353-43.361,3.938
+		c-28.412,5.065-55.775,15.641-81.393,28.721c-40.102,20.489-76.724,48.733-108.622,80.411
+		c-5.909,5.862-11.794,11.847-17.155,18.193c-7.147,8.484-7.147,18.515,0,27c16.344,19.353,35.774,36.575,55.542,52.321
+		c42.57,33.915,91.25,62.278,144.993,73.711c16.621,3.524,33.299,5.244,49.998,5.228c16.904,0.018,33.488-1.702,50.107-5.228
+		c53.744-11.433,102.534-39.796,145.104-73.711c19.768-15.745,39.194-32.969,55.538-52.321
+		C513.79,261.018,513.783,250.987,506.637,242.501z M255.892,354.552c-54.334-0.104-98.348-44.177-98.348-98.554
+		c0-54.351,44.014-98.438,98.348-98.543c54.809,0.104,98.347,44.192,98.347,98.543C354.24,310.374,310.701,354.445,255.892,354.552z
+		"/>
+	<path d="M255.86,217.881c-21.06,0-38.106,17.059-38.106,38.115c0,21.068,17.047,38.123,38.106,38.123
+		c21.058,0,38.124-17.055,38.124-38.123C293.984,234.94,276.917,217.881,255.86,217.881z"/>
+</g>
+</svg>
diff --git a/sample/ONS2014demo/web/assets/delete.svg b/sample/ONS2014demo/web/assets/delete.svg
new file mode 100644
index 0000000..a32a278
--- /dev/null
+++ b/sample/ONS2014demo/web/assets/delete.svg
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363)  -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   id="Layer_1"
+   x="0px"
+   y="0px"
+   width="283.465px"
+   height="283.465px"
+   viewBox="0 0 283.465 283.465"
+   enable-background="new 0 0 283.465 283.465"
+   xml:space="preserve"
+   inkscape:version="0.48.0 r9654"
+   sodipodi:docname="delete.svg"><metadata
+   id="metadata9"><rdf:RDF><cc:Work
+       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
+   id="defs7" /><sodipodi:namedview
+   pagecolor="#ffffff"
+   bordercolor="#666666"
+   borderopacity="1"
+   objecttolerance="10"
+   gridtolerance="10"
+   guidetolerance="10"
+   inkscape:pageopacity="0"
+   inkscape:pageshadow="2"
+   inkscape:window-width="721"
+   inkscape:window-height="480"
+   id="namedview5"
+   showgrid="false"
+   inkscape:zoom="0.92427638"
+   inkscape:cx="141.7325"
+   inkscape:cy="141.7325"
+   inkscape:window-x="0"
+   inkscape:window-y="0"
+   inkscape:window-maximized="0"
+   inkscape:current-layer="Layer_1" />
+<path
+   fill="#772953"
+   d="M141.733,198.425c-15.143,0-29.38-5.897-40.088-16.605c-10.708-10.708-16.605-24.945-16.605-40.088  c0-15.142,5.897-29.378,16.605-40.086c10.708-10.708,24.945-16.605,40.088-16.605c15.142,0,29.379,5.896,40.087,16.604  c10.708,10.708,16.605,24.946,16.605,40.089c0,15.143-5.897,29.381-16.605,40.088C171.112,192.528,156.875,198.425,141.733,198.425  L141.733,198.425z M141.733,99.213c-11.357,0-22.035,4.423-30.067,12.454c-8.031,8.031-12.454,18.708-12.454,30.064  c0,11.357,4.423,22.035,12.454,30.065c8.032,8.031,18.709,12.455,30.067,12.455c11.356,0,22.034-4.423,30.064-12.453  c8.031-8.03,12.455-18.709,12.455-30.066s-4.424-22.036-12.455-30.067C163.768,103.636,153.09,99.213,141.733,99.213L141.733,99.213  z M151.703,141.79l10.021-10.022c2.768-2.768,2.768-7.254,0-10.021c-2.767-2.767-7.255-2.767-10.021,0l-10.022,10.021  l-10.021-10.021c-2.767-2.767-7.255-2.767-10.022,0c-2.768,2.768-2.768,7.254,0,10.021l10.022,10.022l-10.023,10.023  c-2.768,2.768-2.768,7.254,0,10.021c1.383,1.384,3.197,2.076,5.011,2.076c1.813,0,3.627-0.692,5.011-2.076l10.023-10.023  l10.022,10.021c1.383,1.384,3.197,2.076,5.011,2.076s3.627-0.692,5.011-2.076c2.768-2.768,2.768-7.254,0-10.021L151.703,141.79z"
+   id="path3"
+   style="fill:#ffffff;fill-opacity:1" />
+</svg>
\ No newline at end of file
diff --git a/sample/ONS2014demo/web/assets/logo.svg b/sample/ONS2014demo/web/assets/logo.svg
new file mode 100644
index 0000000..373e072
--- /dev/null
+++ b/sample/ONS2014demo/web/assets/logo.svg
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg3166"
+   version="1.1"
+   inkscape:version="0.48.0 r9654"
+   width="236.41251"
+   height="60.909126"
+   xml:space="preserve"
+   sodipodi:docname="logo.svg"><metadata
+     id="metadata3172"><rdf:RDF><cc:Work
+         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+     id="defs3170"><clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3182"><path
+         d="M 0,327.273 0,0 l 1731.3,0 0,327.273 -1731.3,0 z"
+         id="path3184"
+         inkscape:connector-curvature="0" /></clipPath></defs><sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1158"
+     inkscape:window-height="739"
+     id="namedview3168"
+     showgrid="false"
+     inkscape:zoom="0.26464646"
+     inkscape:cx="124.21755"
+     inkscape:cy="40.229009"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="g3174"
+     fit-margin-top="10"
+     fit-margin-left="10"
+     fit-margin-right="10"
+     fit-margin-bottom="10" /><g
+     id="g3174"
+     inkscape:groupmode="layer"
+     inkscape:label="ink_ext_XXXXXX"
+     transform="matrix(1.25,0,0,-1.25,-258.28245,515.68011)"><g
+       id="g3176"
+       transform="matrix(0.1,0,0,0.1,214.62596,371.81679)"><g
+         id="g3178"><g
+           id="g3180"
+           clip-path="url(#clipPath3182)"><path
+             d="m 164.363,70.2617 c -58.078,0 -101.8982,42.3673 -101.8982,98.5503 0,34.516 21.5743,99.797 103.1802,99.797 70.007,0 101.507,-57.371 101.507,-98.113 0,-23.973 -10.742,-52.461 -26.117,-69.277 C 223.723,82.4297 193.609,70.2617 164.363,70.2617 z m -0.41,257.0113 C 56.3242,327.273 0,247.559 0,168.812 0,79.4414 69.5664,12.0312 161.848,12.0312 c 96.941,0 167.328,66.4727 167.328,158.0508 0,76.203 -57.903,157.191 -165.223,157.191"
+             style="fill:#325cb3;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             id="path3186"
+             inkscape:connector-curvature="0" /><path
+             d="m 656.363,323.477 -9.922,0 0,-206.633 -176.695,203.222 -2.965,3.411 -47.797,0 0,-307.6372 58.684,0 0,204.9182 175.043,-201.5002 2.937,-3.418 49.895,0 0,307.6372 -49.18,0"
+             style="fill:#204476;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             id="path3188"
+             inkscape:connector-curvature="0" /><path
+             d="m 925.344,59.7148 0,265.7772 -64.188,0 0,-325.492 201.784,0 0,59.7148 -137.596,0"
+             style="fill:#461f35;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             id="path3190"
+             inkscape:connector-curvature="0" /><path
+             d="m 1308.12,149.355 -64.91,0 31.25,75.622 33.66,-75.622 z m -8.81,172.036 -2.6,5.882 -43.93,0 -2.57,-6.027 L 1118.88,13.8164 1112.98,0 l 66.39,0 2.59,6.02344 35.94,84.06246 117.03,0 38.15,-84.25778 2.63,-5.82812 66.49,0 -6.19,13.9453 -136.7,307.4457"
+             style="fill:#971a1f;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             id="path3192"
+             inkscape:connector-curvature="0" /><path
+             d="m 1621.32,200.641 c -6.74,-3.907 -19.94,-6.028 -36.62,-6.028 l -19.2,0 0,72.035 19.2,0 c 12.13,0 28.75,0 39.33,-4.902 9.69,-4.523 15.73,-15.676 15.73,-29.09 0,-20.129 -12.91,-29.097 -18.44,-32.015 z m -22.25,-141.8246 -33.57,0 0,76.5236 31.29,0 c 24.33,0 36.89,-1.485 46.36,-5.488 21.41,-8.817 23.07,-27.129 23.07,-32.5395 0,-11.5195 -6.66,-27.5156 -25.45,-34.6445 -9.61,-3.8516 -30.49,-3.8516 -41.7,-3.8516 z m 74.77,115.7146 c 20.6,14.879 31.03,35.555 31.03,61.699 0,38.442 -21.17,68.29 -58.02,81.911 -16.27,6.117 -32.93,7.351 -54.54,7.351 l -90.11,0 0,-325.492 94.59,0 c 33.47,0 48.75,0 68.28,6.84375 31.97,10.91015 66.23,39.37505 66.23,86.43745 0,36.6488 -21.9,66.7068 -57.46,81.2498"
+             style="fill:#c41e25;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             id="path3194"
+             inkscape:connector-curvature="0" /><path
+             d="m 780.367,59.7148 c -16.476,0 -29.863,-13.3984 -29.863,-29.8632 C 750.504,13.3984 763.891,0 780.367,0 c 16.485,0 29.863,13.3984 29.863,29.8516 0,16.4648 -13.378,29.8632 -29.863,29.8632"
+             style="fill:#461f35;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             id="path3196"
+             inkscape:connector-curvature="0" /></g></g></g></g></svg>
\ No newline at end of file
diff --git a/sample/ONS2014demo/web/assets/switch.svg b/sample/ONS2014demo/web/assets/switch.svg
new file mode 100644
index 0000000..7a69e98
--- /dev/null
+++ b/sample/ONS2014demo/web/assets/switch.svg
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   height="60"
+   id="svg6140"
+   inkscape:version="0.48.0 r9654"
+   sodipodi:docname="switch.svg"
+   sodipodi:version="0.32"
+   width="60"
+   version="1.1">
+  <metadata
+     id="metadata4412">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:title>switch</dc:title>
+        <dc:description />
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>symbol</rdf:li>
+            <rdf:li>network</rdf:li>
+            <rdf:li>switch</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://www.openclipart.org/">
+            <dc:title>Open Clip Art Library</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Angelis</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:rights>
+          <cc:Agent>
+            <dc:title>Jakub Angelis</dc:title>
+          </cc:Agent>
+        </dc:rights>
+        <dc:date />
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://web.resource.org/cc/PublicDomain" />
+        <dc:language>en</dc:language>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://web.resource.org/cc/PublicDomain">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     bordercolor="#666666"
+     borderopacity="1.0"
+     id="namedview6144"
+     inkscape:current-layer="layer1"
+     inkscape:cx="-65.089664"
+     inkscape:cy="-73.508205"
+     inkscape:document-units="mm"
+     inkscape:guide-bbox="true"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:window-height="746"
+     inkscape:window-width="1028"
+     inkscape:window-x="-4"
+     inkscape:window-y="0"
+     inkscape:zoom="1"
+     pagecolor="#ffffff"
+     showguides="false"
+     showgrid="false"
+     inkscape:window-maximized="0"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     showborder="false"
+     inkscape:showpageshadow="false" />
+  <g
+     id="layer1"
+     inkscape:groupmode="layer"
+     inkscape:label="Layer 1"
+     transform="translate(-350.71012,-251.97973)">
+    <rect
+       height="18.093575"
+       id="rect1944"
+       width="48.643852"
+       x="350.85608"
+       y="293.55972" />
+    <rect
+       height="18.093575"
+       id="rect1946"
+       transform="matrix(0.20031099,-0.97973237,0,1,0,0)"
+       width="38.694553"
+       x="1994.4028"
+       y="2247.5422" />
+    <g
+       id="g9312"
+       transform="matrix(0.1641042,0,0,0.35267689,231.88841,175.74726)">
+      <path
+         d="m 772.21875,226.4375 -47.34375,107.625 296.5,0 47.3438,-107.625 -296.50005,0 z"
+         id="path4749"
+         sodipodi:nodetypes="ccccc"
+         inkscape:connector-curvature="0" />
+      <g
+         id="g9298">
+        <g
+           id="g9282">
+          <path
+             d="m 772.66454,271.72258 40.19422,-18.1307"
+             id="path7440"
+             sodipodi:nodetypes="cc"
+             inkscape:connector-curvature="0" />
+          <path
+             d="m 807.7045,264.2106 92.50521,-0.0884"
+             id="path7442"
+             sodipodi:nodetypes="cc"
+             inkscape:connector-curvature="0" />
+        </g>
+        <g
+           id="g9294">
+          <path
+             d="m 913.2487,258.25739 6.36742,-14.48613 92.16548,-0.0165 4.1023,-9.59965 22.5745,16.94194"
+             id="path7444"
+             sodipodi:nodetypes="ccccc"
+             inkscape:connector-curvature="0" />
+          <path
+             d="m 1003.8684,257.40378 -4.4934,10.25247 4.4915,-2.05647 0,-8.196 z"
+             id="path7446"
+             sodipodi:nodetypes="cccc"
+             inkscape:connector-curvature="0" />
+        </g>
+        <g
+           id="g9286">
+          <path
+             d="m 754.65476,312.558 40.38172,-18.16195"
+             id="path9238"
+             sodipodi:nodetypes="cc"
+             inkscape:connector-curvature="0" />
+          <path
+             d="m 789.69472,304.95227 92.50521,0.005"
+             id="path9240"
+             sodipodi:nodetypes="cc"
+             inkscape:connector-curvature="0" />
+        </g>
+        <g
+           id="g9290">
+          <path
+             d="m 895.23892,299.09281 6.36742,-14.48613 92.16548,-0.0165 4.1023,-9.59965 22.57448,16.94194"
+             id="path9242"
+             sodipodi:nodetypes="ccccc"
+             inkscape:connector-curvature="0" />
+          <path
+             d="m 985.85862,298.2392 -4.4934,10.25247 4.4915,-1.83772 0.002,-8.41475 z"
+             id="path9244"
+             sodipodi:nodetypes="cccc"
+             inkscape:connector-curvature="0" />
+        </g>
+      </g>
+      <path
+         d="m 772.21875,226.4375 -47.34375,107.625 296.5,0 47.3438,-107.625 -296.50005,0 z m 243.00005,5.1875 24.2187,18.0625 -40.03125,17.90625 4.46875,-10.1875 -92.1875,0 6.75,-15.40625 92.2188,0 4.5625,-10.375 z m -203.06255,20.40625 -4.53125,10.375 92.1875,0 -6.78125,15.40625 -92.1875,0 -4.5,10.1875 -24.28125,-17.90625 40.09375,-18.0625 z m 185.09375,20.4375 24.2188,18.0625 -40.0313,17.90625 4.46875,-10.21875 -92.1875,0 6.78125,-15.40625 92.1875,0 4.5625,-10.34375 z m -203.03125,20.40625 -4.5625,10.34375 92.1875,0 -6.75,15.4375 -92.21875,0 -4.46875,10.1875 -24.3125,-17.90625 40.125,-18.0625 z"
+         id="rect1948"
+         inkscape:connector-curvature="0" />
+    </g>
+    <path
+       d="m 350.85884,293.2658 -0.14872,0.3086 0,18.09675 0.14872,0.30858 48.62613,0 0.14359,-0.30858 0,-18.09675 -0.14359,-0.3086 -48.62613,0 z m 0.14359,0.62824 48.33382,0 0,17.45751 -48.33382,0 0,-17.45751 z m 7.5129,-38.60712 -0.041,0.18736 -7.71291,37.78051 0.26668,0.25349 7.677,-37.59317 48.41074,0.0111 -0.0154,17.76613 -7.74367,37.74742 0.26668,0.2535 7.75906,-37.82461 0.0103,-0.0662 0,-0.0662 0.0103,-18.43839 -48.79537,-0.0111 -0.0923,0 z m 48.61074,0.12122 -7.81033,38.22137 0.26666,0.25347 7.81035,-38.22133 -0.26668,-0.25351 z"
+       id="rect10242"
+       sodipodi:nodetypes="cccccccccccccccccccccccccccccccccc"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/sample/ONS2014demo/web/assets/white-eye.svg b/sample/ONS2014demo/web/assets/white-eye.svg
new file mode 100644
index 0000000..8f3b180
--- /dev/null
+++ b/sample/ONS2014demo/web/assets/white-eye.svg
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.1"
+   width="512"
+   height="512"
+   viewBox="0 0 512 512"
+   id="Layer_1"
+   xml:space="preserve"><metadata
+   id="metadata13"><rdf:RDF><cc:Work
+       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+   id="defs11" />
+<g
+   id="g3"
+   style="fill:#ffffff;fill-opacity:1">
+	<path
+   d="m 506.637,242.501 c -5.362,-6.347 -11.263,-12.33 -17.171,-18.193 -31.897,-31.679 -68.549,-59.921 -108.648,-80.411 -25.618,-13.08 -53.038,-23.655 -81.451,-28.721 -14.453,-2.586 -28.617,-3.912 -43.474,-3.938 -14.447,0.025 -28.908,1.353 -43.361,3.938 -28.412,5.065 -55.775,15.641 -81.393,28.721 -40.102,20.489 -76.724,48.733 -108.622,80.411 -5.909,5.862 -11.794,11.847 -17.155,18.193 -7.147,8.484 -7.147,18.515 0,27 16.344,19.353 35.774,36.575 55.542,52.321 42.57,33.915 91.25,62.278 144.993,73.711 16.621,3.524 33.299,5.244 49.998,5.228 16.904,0.018 33.488,-1.702 50.107,-5.228 53.744,-11.433 102.534,-39.796 145.104,-73.711 19.768,-15.745 39.194,-32.969 55.538,-52.321 7.146,-8.483 7.139,-18.514 -0.007,-27 z M 255.892,354.552 c -54.334,-0.104 -98.348,-44.177 -98.348,-98.554 0,-54.351 44.014,-98.438 98.348,-98.543 54.809,0.104 98.347,44.192 98.347,98.543 0.001,54.376 -43.538,98.447 -98.347,98.554 z"
+   id="path5"
+   style="fill:#ffffff;fill-opacity:1" />
+	<path
+   d="m 255.86,217.881 c -21.06,0 -38.106,17.059 -38.106,38.115 0,21.068 17.047,38.123 38.106,38.123 21.058,0 38.124,-17.055 38.124,-38.123 0,-21.056 -17.067,-38.115 -38.124,-38.115 z"
+   id="path7"
+   style="fill:#ffffff;fill-opacity:1" />
+</g>
+</svg>
\ No newline at end of file
diff --git a/sample/ONS2014demo/web/css/layout.default.css b/sample/ONS2014demo/web/css/layout.default.css
new file mode 100644
index 0000000..f3daf04
--- /dev/null
+++ b/sample/ONS2014demo/web/css/layout.default.css
@@ -0,0 +1,162 @@
+html, body {
+	height: 100%;
+}
+
+body {
+	display: -webkit-box;
+	-webkit-user-select: none;
+}
+
+#background, #background-image {
+	width: 100%;
+	height: 100%;
+}
+
+#contents {
+	width: 100%;
+	height: 100%;
+	display: -webkit-box;
+	-webkit-box-orient: vertical;
+	position: absolute;
+	top: 0px;
+	left: 0px;
+}
+
+#columns {
+	display: -webkit-box;
+	-webkit-box-flex: 1.0;
+}
+
+#confirm {
+	position: absolute;
+	top: 0px;
+	left: 0px;
+	width: 100%;
+	height: 100%;
+	display: -webkit-box;
+	-webkit-box-align: center;
+	-webkit-box-pack: center;
+}
+
+#confirm-background {
+	position: absolute;
+	top: 0px;
+	left: 0px;
+	width: 100%;
+	height: 100%;
+}
+
+#confirm-panel {
+	display: -webkit-box;
+	-webkit-box-orient: vertical;
+	-webkit-box-pack: justify;
+}
+
+#confirm-buttons {
+	display: -webkit-box;
+	-webkit-box-pack: center;
+	-webkit-box-flex: 1.0;
+	-webkit-box-align: center;
+}
+
+.header {
+	width: 100%;
+	display: -webkit-box;
+	-webkit-box-pack: justify;
+	-webkit-box-align: center;
+}
+
+#status {
+	display: -webkit-box;
+	-webkit-box-flex: 1.0;
+}
+
+#left, #right {
+	display: -webkit-box;
+	-webkit-box-orient: vertical;
+}
+
+#right {
+	width: 100%;
+	-webkit-box-flex: 1.0;
+}
+
+#topologyArea {
+	-webkit-box-flex: 1.0;
+	position: relative;
+}
+
+#selectedFlows {
+	display: -webkit-box;
+	-webkit-box-orient: vertical;
+}
+
+#flowChooser {
+	position: absolute;
+	top: 0px;
+	left: 0px;
+	height: 100%;
+	display: -webkit-box;
+	overflow: scroll;
+}
+
+.selectedFlow {
+	display: -webkit-box;
+	position: relative;
+}
+
+#showFlowChooser {
+	position: relative;
+	display: -webkit-box;
+	-webkit-box-pack: center;
+}
+
+.selectedFlow .srcDPID, .selectedFlow .dstDPID {
+	-webkit-user-select: auto;
+}
+
+#selectedFlowsHeader {
+	display: -webkit-box;
+	height: 1.5em;
+}
+
+.iperf {
+	width: 100%;
+	-webkit-box-flex: 1.0;
+	position: relative;
+	display: -webkit-box;
+}
+
+.iperf-container {
+	position: absolute;
+	top: 0px;
+	height: 100%;
+	width: 100%;
+}
+
+#onos {
+	display: -webkit-box;
+}
+
+#actions {
+	display: -webkit-box;
+}
+
+#controllers {
+	display: -webkit-box;
+	overflow: scroll;
+	-webkit-box-flex: 1.0;
+}
+
+.controller {
+	margin: .25em;
+	background-color: blue;
+	-webkit-box-flex: 1.0;
+}
+
+#svg-container {
+	position: absolute;
+	top: 0px;
+	height: 100%;
+	width: 100%;
+}
diff --git a/sample/ONS2014demo/web/css/skin.default.css b/sample/ONS2014demo/web/css/skin.default.css
new file mode 100644
index 0000000..b860f1d
--- /dev/null
+++ b/sample/ONS2014demo/web/css/skin.default.css
@@ -0,0 +1,559 @@
+
+body {
+	background-color: black;
+	color: white;
+	font-family: Helvetica;
+	margin: 0px;
+}
+
+#contents {
+	visibility: hidden;
+	background-color: black;
+}
+
+#topologyArea.linking {
+	cursor: crosshair;
+}
+
+
+#map path {
+	fill:none;
+	stroke:#333;
+	stroke-width:2;
+}
+
+.nodrop {
+	cursor: not-allowed;
+}
+
+.status {
+	padding: 1em;
+}
+
+
+.status:last-child {
+	border-right: none;
+}
+
+.status .static {
+	color: #AAA;
+	padding: .25em;
+}
+
+.status .dynamic {
+	color: #FFF;
+	padding: .25em;
+}
+
+#status span {
+	font-size: 24px;
+}
+
+.button {
+	padding: 1em;
+	background-color: lightgray;
+	color: black;
+	border: 1px solid #AAA;
+}
+
+#arrow {
+	stroke: none;
+	fill: rgba(255, 255, 255, .35);
+}
+
+.header {
+	height: 50px;
+}
+
+.selectedFlow {
+	border-bottom: 1px solid #AAA;
+}
+
+.selectedFlow:hover {
+	background-color: #222;
+}
+
+.selectedFlow:last-child {
+	border-bottom: none;
+}
+
+#flowChooser .selectedFlow:hover {
+	background-color: white;
+}
+
+#lastUpdated {
+	padding-bottom: 0px;
+}
+
+#right .header {
+	font-size: 12px;
+	padding-right: .25em;
+	-webkit-box-sizing: border-box;
+}
+
+#selectedFlows {
+	border-top: 1px solid #AAA;
+	border-bottom: 1px solid #AAA;
+}
+
+.selectedFlow {
+	height: 2em;
+	color: white;
+	background-color: black;
+}
+
+.header, #onos {
+	border-bottom: 1px solid #AAA;;
+}
+
+#onos {
+	background-color: #333;
+}
+
+#cluster-label {
+	font-size: 22px;
+	display: -webkit-box;
+	-webkit-box-align: center;
+	padding-left: .5em;
+	padding-right: .5em;
+	color: #EEE;
+}
+
+#actions {
+	padding-right: .25em;
+	padding-left: .25em;
+	padding-top: .25em;
+	padding-bottom: .25em;
+	border-left: 1px solid white;
+	display: -webkit-box;
+	-webkit-box-align: center;
+	-webkit-box-orient: vertical;
+	-webkit-box-pack: center;
+}
+
+#controllers {
+	padding: .25em;
+	background-color: black;
+	margin: .25em;
+	border-radius: 8px;
+	overflow: hidden;
+	display: -webkit-box;
+	-webkit-box-align: center;
+}
+
+#flowChooser .selectedFlow {
+	background-color: rgba(255, 255, 255, .75);
+	color: black;
+}
+
+#flowChooser .flowId {
+	padding-left: 2em;
+}
+
+
+.selectedFlow.selected {
+	color: black;
+	background-color:#AAA;
+}
+
+.highlight circle {
+	stroke: rgba(255, 255, 255, .5);
+	stroke-width: 2px;
+}
+
+#linkVector {
+	fill: none;
+	stroke-width: 1px;
+	stroke: rgba(255, 255, 255, .75);
+	pointer-events: none;
+}
+
+path {
+	pointer-events: none;
+}
+
+path.flow {
+	fill: none;
+	stroke-width: 10px;
+	stroke: rgba(255, 255, 255, .35);
+}
+
+path.flow.highlight {
+	stroke-width: 16px;
+	stroke: rgba(255, 255, 255, .75);
+}
+
+#selectedFlowsHeader {
+	border-top: 1px solid #AAA;
+}
+
+path.iperfdata {
+	fill: none;
+	stroke-width: 1px;
+	stroke: #ccc;
+}
+
+.iperf {
+	background-color: black;
+}
+
+#selectedFlowsHeader .iperf {
+	background-color: black;
+}
+
+#flowChooser {
+	pointer-events: none;
+	background-color: rgba(0, 0, 0, .25);
+}
+
+
+.flowId, .srcDPID, .dstDPID, .iperf, #deleteFlow, .deleteFlow {
+	display: -webkit-box;
+	-webkit-box-pack: center;
+	-webkit-box-align: center;
+	width: 4em;
+}
+
+
+.srcDPID, .dstDPID {
+	width: 12em;
+}
+
+
+.srcDPID, .dstDPID, .deleteFlow, #showFlowChooser {
+	border-right: 1px solid #AAA;
+}
+
+#showFlowChooser:hover, .deleteFlow:hover {
+	background-color: #444;
+}
+
+#showFlowChooser:active, .deleteFlow:active {
+	background-color: black;
+}
+
+.srcDPID {
+	border-left: 1px solid #AAA;
+}
+
+.controller {
+	padding: .25em;
+	padding-left: 2.5em;
+	position: relative;
+	height: 1.5em;
+	border: 1px solid #444;
+	color: white;
+	position: relative;
+	border-radius: 8px;
+	display: -webkit-box;
+	-webkit-box-align: center;
+}
+
+.controller:hover {
+	border: 1px solid white;
+}
+
+.controller {
+	font-size: 18px;
+}
+
+
+.black-eye {
+	position: absolute;
+	top: 0px;
+	left: 0px;
+	height: 100%;
+	width: 2.25em;
+	background-image: url('../assets/black-eye.svg');
+	background-size: auto 100%;
+	background-repeat: no-repeat;
+	background-position: .25em center;
+}
+
+.white-eye {
+	height: 100%;
+	width: 2.25em;
+	background-image: url('../assets/white-eye.svg');
+	background-size: auto 100%;
+	background-repeat: no-repeat;
+	background-position: .4em center;
+}
+
+.deleteFlow {
+	height: 100%;
+	background-image: url('../assets/delete.svg');
+	background-size: auto 150%;
+	background-repeat: no-repeat;
+	background-position: center;
+}
+
+#logo {
+	height: 50px;
+}
+
+.edge {
+	stroke: black;
+	stroke-width: 1.5px;
+}
+
+.nolabel text {
+	display: none;
+}
+
+text {
+	stroke: none;
+	fill: white;
+	font-size: 28px;
+	pointer-events: none;
+}
+
+text.label {
+	fill: #888;
+}
+
+path {
+	stroke: rgba(255, 255, 255, .25);
+	stroke-width: 1.5px;
+}
+
+.aggregation {
+	stroke: black;
+	stroke-width: 2px;
+}
+
+#traceButton {
+	visibility: hidden
+}
+
+.color1-selected .color1,
+.color2-selected .color2,
+.color3-selected .color3,
+.color4-selected .color4,
+.color5-selected .color5,
+.color6-selected .color6,
+.color7-selected .color7,
+.color8-selected .color8,
+.color9-selected .color9,
+.color10-selected .color10,
+.color11-selected .color11,
+.color12-selected .color12  {
+	opacity: 1;
+	pointer-events: auto;
+}
+
+.colorInactive {
+	opacity: 1;
+	fill: #444;
+	background-color: #444;
+	color: #222;
+}
+
+.color1 {
+	opacity: .15;
+	pointer-events: none;
+	fill: #FF0000;
+	background-color: #FF0000;
+}
+
+.color2 {
+	opacity: .15;
+	pointer-events: none;
+	fill: #FFBA00;
+	background-color: #FFBA00;
+}
+
+.color3 {
+	opacity: .2;
+	pointer-events: none;
+	fill: #3714B0;
+	background-color: #3714B0;
+}
+
+.color4 {
+	opacity: .2;
+	pointer-events: none;
+	fill: #800080;
+	background-color: #800080;
+}
+
+.color5 {
+	opacity: .2;
+	pointer-events: none;
+	fill: #402C84;
+	background-color: #402C84;
+}
+
+.color6 {
+	opacity: .2;
+	pointer-events: none;
+	fill: #5555FF;
+	background-color: #2222FF;
+}
+
+.color7 {
+	opacity: .2;
+	pointer-events: none;
+	fill: #5555FF;
+	background-color: #2222FF;
+}
+
+.color8 {
+	opacity: .2;
+	pointer-events: none;
+	fill: #A0522D;
+	background-color: #A0522D;
+}
+
+.color9 {
+	opacity: .2;
+	pointer-events: none;
+	fill: #66CDAA;
+	background-color: #66CDAA;
+}
+
+.color10 {
+	opacity: .2;
+	pointer-events: none;
+	fill: #FFA500;
+	background-color: #FFA500;
+}
+
+.color11 {
+	opacity: .2;
+	pointer-events: none;
+	fill: #FFA500;
+	background-color: #FFA500;
+}
+
+.color12 {
+	opacity: .2;
+	pointer-events: none;
+	fill: #FF69B4;
+	background-color: #FF69B4;
+}
+
+.action {
+	margin: .1em;
+	border: 2px solid #AAA;
+	height: 1.5em;
+	width: 5em;
+	font-size: 9px;
+	background-color: #444;
+	display: -webkit-box;
+	-webkit-box-pack: center;
+	-webkit-box-align: center;
+	color: #AAA;
+	border-radius: 0%;
+	-webkit-box-sizing: border-box;
+}
+
+.action:hover {
+	border: 2px solid #FFF;
+	color: white;
+}
+
+.action:active {
+	background-color: #222;
+}
+
+
+@-webkit-keyframes pending {
+	from {
+		opacity: 1.0;
+	}
+	to {
+		opacity: 0.5;
+	}
+}
+
+.pending {
+	-webkit-animation-name: pending;
+	-webkit-animation-duration: .5s;
+	-webkit-animation-direction: alternate;
+	-webkit-animation-timing-function: ease-in-out;
+	-webkit-animation-iteration-count: 70;
+}
+
+.core path {
+	stroke-width: 1px;
+	stroke: black;
+}
+
+.flowCount {
+	font-size: 32px;
+	fill: rgba(255, 255, 255, .99);
+}
+
+#confirm {
+	display: none;
+	-webkit-transition: opacity .25s;
+	font-size: 20px;
+}
+
+#confirm-background {
+	background-color: black;
+	opacity: .5;
+}
+
+#confirm-prompt {
+	display: -webkit-box;
+	-webkit-box-pack: center;
+	-webkit-box-align: center;
+	-webkit-box-flex: 1.0;
+	text-align: center;
+}
+
+#confirm-buttons {
+	padding: 1em;
+}
+
+#confirm-prompt {
+	margin-top:1em;
+	line-height: 1.5em;
+}
+
+#confirm-panel {
+	position: relative;
+	background-color: #222;
+	border: 2px solid #aaa;
+	border-radius: 12px;
+	width: 20em;
+	padding: 1em;
+}
+
+.confirm-button {
+	padding: .5em;
+	border: 2px solid #aaa;
+	color: #aaa;
+	border-radius: 6px;
+	margin-left: .5em;
+	margin-right: .5em;
+}
+
+.confirm-button:hover{
+	border: 2px solid white;
+	color: white;
+}
+
+.confirm-button:active{
+	background-color: black;
+}
+
+select {
+	margin-top: 1em;
+	-webkit-appearance: none;
+	border-radius: 0px;
+	font-size: 18px;
+	padding: .5em;
+	background-color: black;
+	color: white;
+	border: 1px solid white;
+}
+
+select:after {
+	content: 'a';
+	position: absolute;
+	right: 0px;
+	top: 0px;
+}
+
diff --git a/sample/ONS2014demo/web/d3/d3.v3.js b/sample/ONS2014demo/web/d3/d3.v3.js
new file mode 100644
index 0000000..3726652
--- /dev/null
+++ b/sample/ONS2014demo/web/d3/d3.v3.js
@@ -0,0 +1,7801 @@
+d3 = function() {
+  var π = Math.PI, ε = 1e-6, d3 = {
+    version: "3.0.8"
+  }, d3_radians = π / 180, d3_degrees = 180 / π, d3_document = document, d3_window = window;
+  function d3_target(d) {
+    return d.target;
+  }
+  function d3_source(d) {
+    return d.source;
+  }
+  var d3_format_decimalPoint = ".", d3_format_thousandsSeparator = ",", d3_format_grouping = [ 3, 3 ];
+  if (!Date.now) Date.now = function() {
+    return +new Date();
+  };
+  try {
+    d3_document.createElement("div").style.setProperty("opacity", 0, "");
+  } catch (error) {
+    var d3_style_prototype = d3_window.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty;
+    d3_style_prototype.setProperty = function(name, value, priority) {
+      d3_style_setProperty.call(this, name, value + "", priority);
+    };
+  }
+  function d3_class(ctor, properties) {
+    try {
+      for (var key in properties) {
+        Object.defineProperty(ctor.prototype, key, {
+          value: properties[key],
+          enumerable: false
+        });
+      }
+    } catch (e) {
+      ctor.prototype = properties;
+    }
+  }
+  var d3_array = d3_arraySlice;
+  function d3_arrayCopy(pseudoarray) {
+    var i = -1, n = pseudoarray.length, array = [];
+    while (++i < n) array.push(pseudoarray[i]);
+    return array;
+  }
+  function d3_arraySlice(pseudoarray) {
+    return Array.prototype.slice.call(pseudoarray);
+  }
+  try {
+    d3_array(d3_document.documentElement.childNodes)[0].nodeType;
+  } catch (e) {
+    d3_array = d3_arrayCopy;
+  }
+  var d3_arraySubclass = [].__proto__ ? function(array, prototype) {
+    array.__proto__ = prototype;
+  } : function(array, prototype) {
+    for (var property in prototype) array[property] = prototype[property];
+  };
+  d3.map = function(object) {
+    var map = new d3_Map();
+    for (var key in object) map.set(key, object[key]);
+    return map;
+  };
+  function d3_Map() {}
+  d3_class(d3_Map, {
+    has: function(key) {
+      return d3_map_prefix + key in this;
+    },
+    get: function(key) {
+      return this[d3_map_prefix + key];
+    },
+    set: function(key, value) {
+      return this[d3_map_prefix + key] = value;
+    },
+    remove: function(key) {
+      key = d3_map_prefix + key;
+      return key in this && delete this[key];
+    },
+    keys: function() {
+      var keys = [];
+      this.forEach(function(key) {
+        keys.push(key);
+      });
+      return keys;
+    },
+    values: function() {
+      var values = [];
+      this.forEach(function(key, value) {
+        values.push(value);
+      });
+      return values;
+    },
+    entries: function() {
+      var entries = [];
+      this.forEach(function(key, value) {
+        entries.push({
+          key: key,
+          value: value
+        });
+      });
+      return entries;
+    },
+    forEach: function(f) {
+      for (var key in this) {
+        if (key.charCodeAt(0) === d3_map_prefixCode) {
+          f.call(this, key.substring(1), this[key]);
+        }
+      }
+    }
+  });
+  var d3_map_prefix = "\0", d3_map_prefixCode = d3_map_prefix.charCodeAt(0);
+  function d3_identity(d) {
+    return d;
+  }
+  function d3_true() {
+    return true;
+  }
+  function d3_functor(v) {
+    return typeof v === "function" ? v : function() {
+      return v;
+    };
+  }
+  d3.functor = d3_functor;
+  d3.rebind = function(target, source) {
+    var i = 1, n = arguments.length, method;
+    while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]);
+    return target;
+  };
+  function d3_rebind(target, source, method) {
+    return function() {
+      var value = method.apply(source, arguments);
+      return value === source ? target : value;
+    };
+  }
+  d3.ascending = function(a, b) {
+    return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
+  };
+  d3.descending = function(a, b) {
+    return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
+  };
+  d3.mean = function(array, f) {
+    var n = array.length, a, m = 0, i = -1, j = 0;
+    if (arguments.length === 1) {
+      while (++i < n) if (d3_number(a = array[i])) m += (a - m) / ++j;
+    } else {
+      while (++i < n) if (d3_number(a = f.call(array, array[i], i))) m += (a - m) / ++j;
+    }
+    return j ? m : undefined;
+  };
+  d3.median = function(array, f) {
+    if (arguments.length > 1) array = array.map(f);
+    array = array.filter(d3_number);
+    return array.length ? d3.quantile(array.sort(d3.ascending), .5) : undefined;
+  };
+  d3.min = function(array, f) {
+    var i = -1, n = array.length, a, b;
+    if (arguments.length === 1) {
+      while (++i < n && ((a = array[i]) == null || a != a)) a = undefined;
+      while (++i < n) if ((b = array[i]) != null && a > b) a = b;
+    } else {
+      while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined;
+      while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;
+    }
+    return a;
+  };
+  d3.max = function(array, f) {
+    var i = -1, n = array.length, a, b;
+    if (arguments.length === 1) {
+      while (++i < n && ((a = array[i]) == null || a != a)) a = undefined;
+      while (++i < n) if ((b = array[i]) != null && b > a) a = b;
+    } else {
+      while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined;
+      while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;
+    }
+    return a;
+  };
+  d3.extent = function(array, f) {
+    var i = -1, n = array.length, a, b, c;
+    if (arguments.length === 1) {
+      while (++i < n && ((a = c = array[i]) == null || a != a)) a = c = undefined;
+      while (++i < n) if ((b = array[i]) != null) {
+        if (a > b) a = b;
+        if (c < b) c = b;
+      }
+    } else {
+      while (++i < n && ((a = c = f.call(array, array[i], i)) == null || a != a)) a = undefined;
+      while (++i < n) if ((b = f.call(array, array[i], i)) != null) {
+        if (a > b) a = b;
+        if (c < b) c = b;
+      }
+    }
+    return [ a, c ];
+  };
+  d3.random = {
+    normal: function(µ, σ) {
+      var n = arguments.length;
+      if (n < 2) σ = 1;
+      if (n < 1) µ = 0;
+      return function() {
+        var x, y, r;
+        do {
+          x = Math.random() * 2 - 1;
+          y = Math.random() * 2 - 1;
+          r = x * x + y * y;
+        } while (!r || r > 1);
+        return µ + σ * x * Math.sqrt(-2 * Math.log(r) / r);
+      };
+    },
+    logNormal: function() {
+      var random = d3.random.normal.apply(d3, arguments);
+      return function() {
+        return Math.exp(random());
+      };
+    },
+    irwinHall: function(m) {
+      return function() {
+        for (var s = 0, j = 0; j < m; j++) s += Math.random();
+        return s / m;
+      };
+    }
+  };
+  function d3_number(x) {
+    return x != null && !isNaN(x);
+  }
+  d3.sum = function(array, f) {
+    var s = 0, n = array.length, a, i = -1;
+    if (arguments.length === 1) {
+      while (++i < n) if (!isNaN(a = +array[i])) s += a;
+    } else {
+      while (++i < n) if (!isNaN(a = +f.call(array, array[i], i))) s += a;
+    }
+    return s;
+  };
+  d3.quantile = function(values, p) {
+    var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h;
+    return e ? v + e * (values[h] - v) : v;
+  };
+  d3.shuffle = function(array) {
+    var m = array.length, t, i;
+    while (m) {
+      i = Math.random() * m-- | 0;
+      t = array[m], array[m] = array[i], array[i] = t;
+    }
+    return array;
+  };
+  d3.transpose = function(matrix) {
+    return d3.zip.apply(d3, matrix);
+  };
+  d3.zip = function() {
+    if (!(n = arguments.length)) return [];
+    for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m; ) {
+      for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n; ) {
+        zip[j] = arguments[j][i];
+      }
+    }
+    return zips;
+  };
+  function d3_zipLength(d) {
+    return d.length;
+  }
+  d3.bisector = function(f) {
+    return {
+      left: function(a, x, lo, hi) {
+        if (arguments.length < 3) lo = 0;
+        if (arguments.length < 4) hi = a.length;
+        while (lo < hi) {
+          var mid = lo + hi >>> 1;
+          if (f.call(a, a[mid], mid) < x) lo = mid + 1; else hi = mid;
+        }
+        return lo;
+      },
+      right: function(a, x, lo, hi) {
+        if (arguments.length < 3) lo = 0;
+        if (arguments.length < 4) hi = a.length;
+        while (lo < hi) {
+          var mid = lo + hi >>> 1;
+          if (x < f.call(a, a[mid], mid)) hi = mid; else lo = mid + 1;
+        }
+        return lo;
+      }
+    };
+  };
+  var d3_bisector = d3.bisector(function(d) {
+    return d;
+  });
+  d3.bisectLeft = d3_bisector.left;
+  d3.bisect = d3.bisectRight = d3_bisector.right;
+  d3.nest = function() {
+    var nest = {}, keys = [], sortKeys = [], sortValues, rollup;
+    function map(array, depth) {
+      if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array;
+      var i = -1, n = array.length, key = keys[depth++], keyValue, object, valuesByKey = new d3_Map(), values, o = {};
+      while (++i < n) {
+        if (values = valuesByKey.get(keyValue = key(object = array[i]))) {
+          values.push(object);
+        } else {
+          valuesByKey.set(keyValue, [ object ]);
+        }
+      }
+      valuesByKey.forEach(function(keyValue, values) {
+        o[keyValue] = map(values, depth);
+      });
+      return o;
+    }
+    function entries(map, depth) {
+      if (depth >= keys.length) return map;
+      var a = [], sortKey = sortKeys[depth++], key;
+      for (key in map) {
+        a.push({
+          key: key,
+          values: entries(map[key], depth)
+        });
+      }
+      if (sortKey) a.sort(function(a, b) {
+        return sortKey(a.key, b.key);
+      });
+      return a;
+    }
+    nest.map = function(array) {
+      return map(array, 0);
+    };
+    nest.entries = function(array) {
+      return entries(map(array, 0), 0);
+    };
+    nest.key = function(d) {
+      keys.push(d);
+      return nest;
+    };
+    nest.sortKeys = function(order) {
+      sortKeys[keys.length - 1] = order;
+      return nest;
+    };
+    nest.sortValues = function(order) {
+      sortValues = order;
+      return nest;
+    };
+    nest.rollup = function(f) {
+      rollup = f;
+      return nest;
+    };
+    return nest;
+  };
+  d3.keys = function(map) {
+    var keys = [];
+    for (var key in map) keys.push(key);
+    return keys;
+  };
+  d3.values = function(map) {
+    var values = [];
+    for (var key in map) values.push(map[key]);
+    return values;
+  };
+  d3.entries = function(map) {
+    var entries = [];
+    for (var key in map) entries.push({
+      key: key,
+      value: map[key]
+    });
+    return entries;
+  };
+  d3.permute = function(array, indexes) {
+    var permutes = [], i = -1, n = indexes.length;
+    while (++i < n) permutes[i] = array[indexes[i]];
+    return permutes;
+  };
+  d3.merge = function(arrays) {
+    return Array.prototype.concat.apply([], arrays);
+  };
+  function d3_collapse(s) {
+    return s.trim().replace(/\s+/g, " ");
+  }
+  d3.range = function(start, stop, step) {
+    if (arguments.length < 3) {
+      step = 1;
+      if (arguments.length < 2) {
+        stop = start;
+        start = 0;
+      }
+    }
+    if ((stop - start) / step === Infinity) throw new Error("infinite range");
+    var range = [], k = d3_range_integerScale(Math.abs(step)), i = -1, j;
+    start *= k, stop *= k, step *= k;
+    if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); else while ((j = start + step * ++i) < stop) range.push(j / k);
+    return range;
+  };
+  function d3_range_integerScale(x) {
+    var k = 1;
+    while (x * k % 1) k *= 10;
+    return k;
+  }
+  d3.requote = function(s) {
+    return s.replace(d3_requote_re, "\\$&");
+  };
+  var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;
+  d3.round = function(x, n) {
+    return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x);
+  };
+  d3.xhr = function(url, mimeType, callback) {
+    var xhr = {}, dispatch = d3.dispatch("progress", "load", "error"), headers = {}, response = d3_identity, request = new (d3_window.XDomainRequest && /^(http(s)?:)?\/\//.test(url) ? XDomainRequest : XMLHttpRequest)();
+    "onload" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() {
+      request.readyState > 3 && respond();
+    };
+    function respond() {
+      var s = request.status;
+      !s && request.responseText || s >= 200 && s < 300 || s === 304 ? dispatch.load.call(xhr, response.call(xhr, request)) : dispatch.error.call(xhr, request);
+    }
+    request.onprogress = function(event) {
+      var o = d3.event;
+      d3.event = event;
+      try {
+        dispatch.progress.call(xhr, request);
+      } finally {
+        d3.event = o;
+      }
+    };
+    xhr.header = function(name, value) {
+      name = (name + "").toLowerCase();
+      if (arguments.length < 2) return headers[name];
+      if (value == null) delete headers[name]; else headers[name] = value + "";
+      return xhr;
+    };
+    xhr.mimeType = function(value) {
+      if (!arguments.length) return mimeType;
+      mimeType = value == null ? null : value + "";
+      return xhr;
+    };
+    xhr.response = function(value) {
+      response = value;
+      return xhr;
+    };
+    [ "get", "post" ].forEach(function(method) {
+      xhr[method] = function() {
+        return xhr.send.apply(xhr, [ method ].concat(d3_array(arguments)));
+      };
+    });
+    xhr.send = function(method, data, callback) {
+      if (arguments.length === 2 && typeof data === "function") callback = data, data = null;
+      request.open(method, url, true);
+      if (mimeType != null && !("accept" in headers)) headers["accept"] = mimeType + ",*/*";
+      if (request.setRequestHeader) for (var name in headers) request.setRequestHeader(name, headers[name]);
+      if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType);
+      if (callback != null) xhr.on("error", callback).on("load", function(request) {
+        callback(null, request);
+      });
+      request.send(data == null ? null : data);
+      return xhr;
+    };
+    xhr.abort = function() {
+      request.abort();
+      return xhr;
+    };
+    d3.rebind(xhr, dispatch, "on");
+    if (arguments.length === 2 && typeof mimeType === "function") callback = mimeType,
+    mimeType = null;
+    return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback));
+  };
+  function d3_xhr_fixCallback(callback) {
+    return callback.length === 1 ? function(error, request) {
+      callback(error == null ? request : null);
+    } : callback;
+  }
+  d3.text = function() {
+    return d3.xhr.apply(d3, arguments).response(d3_text);
+  };
+  function d3_text(request) {
+    return request.responseText;
+  }
+  d3.json = function(url, callback) {
+    return d3.xhr(url, "application/json", callback).response(d3_json);
+  };
+  function d3_json(request) {
+    return JSON.parse(request.responseText);
+  }
+  d3.html = function(url, callback) {
+    return d3.xhr(url, "text/html", callback).response(d3_html);
+  };
+  function d3_html(request) {
+    var range = d3_document.createRange();
+    range.selectNode(d3_document.body);
+    return range.createContextualFragment(request.responseText);
+  }
+  d3.xml = function() {
+    return d3.xhr.apply(d3, arguments).response(d3_xml);
+  };
+  function d3_xml(request) {
+    return request.responseXML;
+  }
+  var d3_nsPrefix = {
+    svg: "http://www.w3.org/2000/svg",
+    xhtml: "http://www.w3.org/1999/xhtml",
+    xlink: "http://www.w3.org/1999/xlink",
+    xml: "http://www.w3.org/XML/1998/namespace",
+    xmlns: "http://www.w3.org/2000/xmlns/"
+  };
+  d3.ns = {
+    prefix: d3_nsPrefix,
+    qualify: function(name) {
+      var i = name.indexOf(":"), prefix = name;
+      if (i >= 0) {
+        prefix = name.substring(0, i);
+        name = name.substring(i + 1);
+      }
+      return d3_nsPrefix.hasOwnProperty(prefix) ? {
+        space: d3_nsPrefix[prefix],
+        local: name
+      } : name;
+    }
+  };
+  d3.dispatch = function() {
+    var dispatch = new d3_dispatch(), i = -1, n = arguments.length;
+    while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
+    return dispatch;
+  };
+  function d3_dispatch() {}
+  d3_dispatch.prototype.on = function(type, listener) {
+    var i = type.indexOf("."), name = "";
+    if (i > 0) {
+      name = type.substring(i + 1);
+      type = type.substring(0, i);
+    }
+    return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener);
+  };
+  function d3_dispatch_event(dispatch) {
+    var listeners = [], listenerByName = new d3_Map();
+    function event() {
+      var z = listeners, i = -1, n = z.length, l;
+      while (++i < n) if (l = z[i].on) l.apply(this, arguments);
+      return dispatch;
+    }
+    event.on = function(name, listener) {
+      var l = listenerByName.get(name), i;
+      if (arguments.length < 2) return l && l.on;
+      if (l) {
+        l.on = null;
+        listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));
+        listenerByName.remove(name);
+      }
+      if (listener) listeners.push(listenerByName.set(name, {
+        on: listener
+      }));
+      return dispatch;
+    };
+    return event;
+  }
+  d3.format = function(specifier) {
+    var match = d3_format_re.exec(specifier), fill = match[1] || " ", align = match[2] || ">", sign = match[3] || "", basePrefix = match[4] || "", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, suffix = "", integer = false;
+    if (precision) precision = +precision.substring(1);
+    if (zfill || fill === "0" && align === "=") {
+      zfill = fill = "0";
+      align = "=";
+      if (comma) width -= Math.floor((width - 1) / 4);
+    }
+    switch (type) {
+     case "n":
+      comma = true;
+      type = "g";
+      break;
+
+     case "%":
+      scale = 100;
+      suffix = "%";
+      type = "f";
+      break;
+
+     case "p":
+      scale = 100;
+      suffix = "%";
+      type = "r";
+      break;
+
+     case "b":
+     case "o":
+     case "x":
+     case "X":
+      if (basePrefix) basePrefix = "0" + type.toLowerCase();
+
+     case "c":
+     case "d":
+      integer = true;
+      precision = 0;
+      break;
+
+     case "s":
+      scale = -1;
+      type = "r";
+      break;
+    }
+    if (basePrefix === "#") basePrefix = "";
+    if (type == "r" && !precision) type = "g";
+    type = d3_format_types.get(type) || d3_format_typeDefault;
+    var zcomma = zfill && comma;
+    return function(value) {
+      if (integer && value % 1) return "";
+      var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, "-") : sign;
+      if (scale < 0) {
+        var prefix = d3.formatPrefix(value, precision);
+        value = prefix.scale(value);
+        suffix = prefix.symbol;
+      } else {
+        value *= scale;
+      }
+      value = type(value, precision);
+      if (!zfill && comma) value = d3_format_group(value);
+      var length = basePrefix.length + value.length + (zcomma ? 0 : negative.length), padding = length < width ? new Array(length = width - length + 1).join(fill) : "";
+      if (zcomma) value = d3_format_group(padding + value);
+      if (d3_format_decimalPoint) value.replace(".", d3_format_decimalPoint);
+      negative += basePrefix;
+      return (align === "<" ? negative + value + padding : align === ">" ? padding + negative + value : align === "^" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) + suffix;
+    };
+  };
+  var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/;
+  var d3_format_types = d3.map({
+    b: function(x) {
+      return x.toString(2);
+    },
+    c: function(x) {
+      return String.fromCharCode(x);
+    },
+    o: function(x) {
+      return x.toString(8);
+    },
+    x: function(x) {
+      return x.toString(16);
+    },
+    X: function(x) {
+      return x.toString(16).toUpperCase();
+    },
+    g: function(x, p) {
+      return x.toPrecision(p);
+    },
+    e: function(x, p) {
+      return x.toExponential(p);
+    },
+    f: function(x, p) {
+      return x.toFixed(p);
+    },
+    r: function(x, p) {
+      return (x = d3.round(x, d3_format_precision(x, p))).toFixed(Math.max(0, Math.min(20, d3_format_precision(x * (1 + 1e-15), p))));
+    }
+  });
+  function d3_format_precision(x, p) {
+    return p - (x ? Math.ceil(Math.log(x) / Math.LN10) : 1);
+  }
+  function d3_format_typeDefault(x) {
+    return x + "";
+  }
+  var d3_format_group = d3_identity;
+  if (d3_format_grouping) {
+    var d3_format_groupingLength = d3_format_grouping.length;
+    d3_format_group = function(value) {
+      var i = value.lastIndexOf("."), f = i >= 0 ? "." + value.substring(i + 1) : (i = value.length,
+      ""), t = [], j = 0, g = d3_format_grouping[0];
+      while (i > 0 && g > 0) {
+        t.push(value.substring(i -= g, i + g));
+        g = d3_format_grouping[j = (j + 1) % d3_format_groupingLength];
+      }
+      return t.reverse().join(d3_format_thousandsSeparator || "") + f;
+    };
+  }
+  var d3_formatPrefixes = [ "y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y" ].map(d3_formatPrefix);
+  d3.formatPrefix = function(value, precision) {
+    var i = 0;
+    if (value) {
+      if (value < 0) value *= -1;
+      if (precision) value = d3.round(value, d3_format_precision(value, precision));
+      i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);
+      i = Math.max(-24, Math.min(24, Math.floor((i <= 0 ? i + 1 : i - 1) / 3) * 3));
+    }
+    return d3_formatPrefixes[8 + i / 3];
+  };
+  function d3_formatPrefix(d, i) {
+    var k = Math.pow(10, Math.abs(8 - i) * 3);
+    return {
+      scale: i > 8 ? function(d) {
+        return d / k;
+      } : function(d) {
+        return d * k;
+      },
+      symbol: d
+    };
+  }
+  var d3_ease_default = function() {
+    return d3_identity;
+  };
+  var d3_ease = d3.map({
+    linear: d3_ease_default,
+    poly: d3_ease_poly,
+    quad: function() {
+      return d3_ease_quad;
+    },
+    cubic: function() {
+      return d3_ease_cubic;
+    },
+    sin: function() {
+      return d3_ease_sin;
+    },
+    exp: function() {
+      return d3_ease_exp;
+    },
+    circle: function() {
+      return d3_ease_circle;
+    },
+    elastic: d3_ease_elastic,
+    back: d3_ease_back,
+    bounce: function() {
+      return d3_ease_bounce;
+    }
+  });
+  var d3_ease_mode = d3.map({
+    "in": d3_identity,
+    out: d3_ease_reverse,
+    "in-out": d3_ease_reflect,
+    "out-in": function(f) {
+      return d3_ease_reflect(d3_ease_reverse(f));
+    }
+  });
+  d3.ease = function(name) {
+    var i = name.indexOf("-"), t = i >= 0 ? name.substring(0, i) : name, m = i >= 0 ? name.substring(i + 1) : "in";
+    t = d3_ease.get(t) || d3_ease_default;
+    m = d3_ease_mode.get(m) || d3_identity;
+    return d3_ease_clamp(m(t.apply(null, Array.prototype.slice.call(arguments, 1))));
+  };
+  function d3_ease_clamp(f) {
+    return function(t) {
+      return t <= 0 ? 0 : t >= 1 ? 1 : f(t);
+    };
+  }
+  function d3_ease_reverse(f) {
+    return function(t) {
+      return 1 - f(1 - t);
+    };
+  }
+  function d3_ease_reflect(f) {
+    return function(t) {
+      return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t));
+    };
+  }
+  function d3_ease_quad(t) {
+    return t * t;
+  }
+  function d3_ease_cubic(t) {
+    return t * t * t;
+  }
+  function d3_ease_cubicInOut(t) {
+    if (t <= 0) return 0;
+    if (t >= 1) return 1;
+    var t2 = t * t, t3 = t2 * t;
+    return 4 * (t < .5 ? t3 : 3 * (t - t2) + t3 - .75);
+  }
+  function d3_ease_poly(e) {
+    return function(t) {
+      return Math.pow(t, e);
+    };
+  }
+  function d3_ease_sin(t) {
+    return 1 - Math.cos(t * π / 2);
+  }
+  function d3_ease_exp(t) {
+    return Math.pow(2, 10 * (t - 1));
+  }
+  function d3_ease_circle(t) {
+    return 1 - Math.sqrt(1 - t * t);
+  }
+  function d3_ease_elastic(a, p) {
+    var s;
+    if (arguments.length < 2) p = .45;
+    if (arguments.length) s = p / (2 * π) * Math.asin(1 / a); else a = 1, s = p / 4;
+    return function(t) {
+      return 1 + a * Math.pow(2, 10 * -t) * Math.sin((t - s) * 2 * π / p);
+    };
+  }
+  function d3_ease_back(s) {
+    if (!s) s = 1.70158;
+    return function(t) {
+      return t * t * ((s + 1) * t - s);
+    };
+  }
+  function d3_ease_bounce(t) {
+    return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;
+  }
+  d3.event = null;
+  function d3_eventCancel() {
+    d3.event.stopPropagation();
+    d3.event.preventDefault();
+  }
+  function d3_eventSource() {
+    var e = d3.event, s;
+    while (s = e.sourceEvent) e = s;
+    return e;
+  }
+  function d3_eventDispatch(target) {
+    var dispatch = new d3_dispatch(), i = 0, n = arguments.length;
+    while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
+    dispatch.of = function(thiz, argumentz) {
+      return function(e1) {
+        try {
+          var e0 = e1.sourceEvent = d3.event;
+          e1.target = target;
+          d3.event = e1;
+          dispatch[e1.type].apply(thiz, argumentz);
+        } finally {
+          d3.event = e0;
+        }
+      };
+    };
+    return dispatch;
+  }
+  d3.transform = function(string) {
+    var g = d3_document.createElementNS(d3.ns.prefix.svg, "g");
+    return (d3.transform = function(string) {
+      g.setAttribute("transform", string);
+      var t = g.transform.baseVal.consolidate();
+      return new d3_transform(t ? t.matrix : d3_transformIdentity);
+    })(string);
+  };
+  function d3_transform(m) {
+    var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0;
+    if (r0[0] * r1[1] < r1[0] * r0[1]) {
+      r0[0] *= -1;
+      r0[1] *= -1;
+      kx *= -1;
+      kz *= -1;
+    }
+    this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees;
+    this.translate = [ m.e, m.f ];
+    this.scale = [ kx, ky ];
+    this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0;
+  }
+  d3_transform.prototype.toString = function() {
+    return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")";
+  };
+  function d3_transformDot(a, b) {
+    return a[0] * b[0] + a[1] * b[1];
+  }
+  function d3_transformNormalize(a) {
+    var k = Math.sqrt(d3_transformDot(a, a));
+    if (k) {
+      a[0] /= k;
+      a[1] /= k;
+    }
+    return k;
+  }
+  function d3_transformCombine(a, b, k) {
+    a[0] += k * b[0];
+    a[1] += k * b[1];
+    return a;
+  }
+  var d3_transformIdentity = {
+    a: 1,
+    b: 0,
+    c: 0,
+    d: 1,
+    e: 0,
+    f: 0
+  };
+  d3.interpolate = function(a, b) {
+    var i = d3.interpolators.length, f;
+    while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ;
+    return f;
+  };
+  d3.interpolateNumber = function(a, b) {
+    b -= a;
+    return function(t) {
+      return a + b * t;
+    };
+  };
+  d3.interpolateRound = function(a, b) {
+    b -= a;
+    return function(t) {
+      return Math.round(a + b * t);
+    };
+  };
+  d3.interpolateString = function(a, b) {
+    var m, i, j, s0 = 0, s1 = 0, s = [], q = [], n, o;
+    d3_interpolate_number.lastIndex = 0;
+    for (i = 0; m = d3_interpolate_number.exec(b); ++i) {
+      if (m.index) s.push(b.substring(s0, s1 = m.index));
+      q.push({
+        i: s.length,
+        x: m[0]
+      });
+      s.push(null);
+      s0 = d3_interpolate_number.lastIndex;
+    }
+    if (s0 < b.length) s.push(b.substring(s0));
+    for (i = 0, n = q.length; (m = d3_interpolate_number.exec(a)) && i < n; ++i) {
+      o = q[i];
+      if (o.x == m[0]) {
+        if (o.i) {
+          if (s[o.i + 1] == null) {
+            s[o.i - 1] += o.x;
+            s.splice(o.i, 1);
+            for (j = i + 1; j < n; ++j) q[j].i--;
+          } else {
+            s[o.i - 1] += o.x + s[o.i + 1];
+            s.splice(o.i, 2);
+            for (j = i + 1; j < n; ++j) q[j].i -= 2;
+          }
+        } else {
+          if (s[o.i + 1] == null) {
+            s[o.i] = o.x;
+          } else {
+            s[o.i] = o.x + s[o.i + 1];
+            s.splice(o.i + 1, 1);
+            for (j = i + 1; j < n; ++j) q[j].i--;
+          }
+        }
+        q.splice(i, 1);
+        n--;
+        i--;
+      } else {
+        o.x = d3.interpolateNumber(parseFloat(m[0]), parseFloat(o.x));
+      }
+    }
+    while (i < n) {
+      o = q.pop();
+      if (s[o.i + 1] == null) {
+        s[o.i] = o.x;
+      } else {
+        s[o.i] = o.x + s[o.i + 1];
+        s.splice(o.i + 1, 1);
+      }
+      n--;
+    }
+    if (s.length === 1) {
+      return s[0] == null ? q[0].x : function() {
+        return b;
+      };
+    }
+    return function(t) {
+      for (i = 0; i < n; ++i) s[(o = q[i]).i] = o.x(t);
+      return s.join("");
+    };
+  };
+  d3.interpolateTransform = function(a, b) {
+    var s = [], q = [], n, A = d3.transform(a), B = d3.transform(b), ta = A.translate, tb = B.translate, ra = A.rotate, rb = B.rotate, wa = A.skew, wb = B.skew, ka = A.scale, kb = B.scale;
+    if (ta[0] != tb[0] || ta[1] != tb[1]) {
+      s.push("translate(", null, ",", null, ")");
+      q.push({
+        i: 1,
+        x: d3.interpolateNumber(ta[0], tb[0])
+      }, {
+        i: 3,
+        x: d3.interpolateNumber(ta[1], tb[1])
+      });
+    } else if (tb[0] || tb[1]) {
+      s.push("translate(" + tb + ")");
+    } else {
+      s.push("");
+    }
+    if (ra != rb) {
+      if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360;
+      q.push({
+        i: s.push(s.pop() + "rotate(", null, ")") - 2,
+        x: d3.interpolateNumber(ra, rb)
+      });
+    } else if (rb) {
+      s.push(s.pop() + "rotate(" + rb + ")");
+    }
+    if (wa != wb) {
+      q.push({
+        i: s.push(s.pop() + "skewX(", null, ")") - 2,
+        x: d3.interpolateNumber(wa, wb)
+      });
+    } else if (wb) {
+      s.push(s.pop() + "skewX(" + wb + ")");
+    }
+    if (ka[0] != kb[0] || ka[1] != kb[1]) {
+      n = s.push(s.pop() + "scale(", null, ",", null, ")");
+      q.push({
+        i: n - 4,
+        x: d3.interpolateNumber(ka[0], kb[0])
+      }, {
+        i: n - 2,
+        x: d3.interpolateNumber(ka[1], kb[1])
+      });
+    } else if (kb[0] != 1 || kb[1] != 1) {
+      s.push(s.pop() + "scale(" + kb + ")");
+    }
+    n = q.length;
+    return function(t) {
+      var i = -1, o;
+      while (++i < n) s[(o = q[i]).i] = o.x(t);
+      return s.join("");
+    };
+  };
+  d3.interpolateRgb = function(a, b) {
+    a = d3.rgb(a);
+    b = d3.rgb(b);
+    var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab;
+    return function(t) {
+      return "#" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t));
+    };
+  };
+  d3.interpolateHsl = function(a, b) {
+    a = d3.hsl(a);
+    b = d3.hsl(b);
+    var h0 = a.h, s0 = a.s, l0 = a.l, h1 = b.h - h0, s1 = b.s - s0, l1 = b.l - l0;
+    if (h1 > 180) h1 -= 360; else if (h1 < -180) h1 += 360;
+    return function(t) {
+      return d3_hsl_rgb(h0 + h1 * t, s0 + s1 * t, l0 + l1 * t) + "";
+    };
+  };
+  d3.interpolateLab = function(a, b) {
+    a = d3.lab(a);
+    b = d3.lab(b);
+    var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab;
+    return function(t) {
+      return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + "";
+    };
+  };
+  d3.interpolateHcl = function(a, b) {
+    a = d3.hcl(a);
+    b = d3.hcl(b);
+    var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al;
+    if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;
+    return function(t) {
+      return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + "";
+    };
+  };
+  d3.interpolateArray = function(a, b) {
+    var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i;
+    for (i = 0; i < n0; ++i) x.push(d3.interpolate(a[i], b[i]));
+    for (;i < na; ++i) c[i] = a[i];
+    for (;i < nb; ++i) c[i] = b[i];
+    return function(t) {
+      for (i = 0; i < n0; ++i) c[i] = x[i](t);
+      return c;
+    };
+  };
+  d3.interpolateObject = function(a, b) {
+    var i = {}, c = {}, k;
+    for (k in a) {
+      if (k in b) {
+        i[k] = d3_interpolateByName(k)(a[k], b[k]);
+      } else {
+        c[k] = a[k];
+      }
+    }
+    for (k in b) {
+      if (!(k in a)) {
+        c[k] = b[k];
+      }
+    }
+    return function(t) {
+      for (k in i) c[k] = i[k](t);
+      return c;
+    };
+  };
+  var d3_interpolate_number = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g;
+  function d3_interpolateByName(name) {
+    return name == "transform" ? d3.interpolateTransform : d3.interpolate;
+  }
+  d3.interpolators = [ d3.interpolateObject, function(a, b) {
+    return b instanceof Array && d3.interpolateArray(a, b);
+  }, function(a, b) {
+    return (typeof a === "string" || typeof b === "string") && d3.interpolateString(a + "", b + "");
+  }, function(a, b) {
+    return (typeof b === "string" ? d3_rgb_names.has(b) || /^(#|rgb\(|hsl\()/.test(b) : b instanceof d3_Color) && d3.interpolateRgb(a, b);
+  }, function(a, b) {
+    return !isNaN(a = +a) && !isNaN(b = +b) && d3.interpolateNumber(a, b);
+  } ];
+  function d3_uninterpolateNumber(a, b) {
+    b = b - (a = +a) ? 1 / (b - a) : 0;
+    return function(x) {
+      return (x - a) * b;
+    };
+  }
+  function d3_uninterpolateClamp(a, b) {
+    b = b - (a = +a) ? 1 / (b - a) : 0;
+    return function(x) {
+      return Math.max(0, Math.min(1, (x - a) * b));
+    };
+  }
+  function d3_Color() {}
+  d3_Color.prototype.toString = function() {
+    return this.rgb() + "";
+  };
+  d3.rgb = function(r, g, b) {
+    return arguments.length === 1 ? r instanceof d3_Rgb ? d3_rgb(r.r, r.g, r.b) : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb) : d3_rgb(~~r, ~~g, ~~b);
+  };
+  function d3_rgb(r, g, b) {
+    return new d3_Rgb(r, g, b);
+  }
+  function d3_Rgb(r, g, b) {
+    this.r = r;
+    this.g = g;
+    this.b = b;
+  }
+  var d3_rgbPrototype = d3_Rgb.prototype = new d3_Color();
+  d3_rgbPrototype.brighter = function(k) {
+    k = Math.pow(.7, arguments.length ? k : 1);
+    var r = this.r, g = this.g, b = this.b, i = 30;
+    if (!r && !g && !b) return d3_rgb(i, i, i);
+    if (r && r < i) r = i;
+    if (g && g < i) g = i;
+    if (b && b < i) b = i;
+    return d3_rgb(Math.min(255, Math.floor(r / k)), Math.min(255, Math.floor(g / k)), Math.min(255, Math.floor(b / k)));
+  };
+  d3_rgbPrototype.darker = function(k) {
+    k = Math.pow(.7, arguments.length ? k : 1);
+    return d3_rgb(Math.floor(k * this.r), Math.floor(k * this.g), Math.floor(k * this.b));
+  };
+  d3_rgbPrototype.hsl = function() {
+    return d3_rgb_hsl(this.r, this.g, this.b);
+  };
+  d3_rgbPrototype.toString = function() {
+    return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);
+  };
+  function d3_rgb_hex(v) {
+    return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16);
+  }
+  function d3_rgb_parse(format, rgb, hsl) {
+    var r = 0, g = 0, b = 0, m1, m2, name;
+    m1 = /([a-z]+)\((.*)\)/i.exec(format);
+    if (m1) {
+      m2 = m1[2].split(",");
+      switch (m1[1]) {
+       case "hsl":
+        {
+          return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100);
+        }
+
+       case "rgb":
+        {
+          return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2]));
+        }
+      }
+    }
+    if (name = d3_rgb_names.get(format)) return rgb(name.r, name.g, name.b);
+    if (format != null && format.charAt(0) === "#") {
+      if (format.length === 4) {
+        r = format.charAt(1);
+        r += r;
+        g = format.charAt(2);
+        g += g;
+        b = format.charAt(3);
+        b += b;
+      } else if (format.length === 7) {
+        r = format.substring(1, 3);
+        g = format.substring(3, 5);
+        b = format.substring(5, 7);
+      }
+      r = parseInt(r, 16);
+      g = parseInt(g, 16);
+      b = parseInt(b, 16);
+    }
+    return rgb(r, g, b);
+  }
+  function d3_rgb_hsl(r, g, b) {
+    var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2;
+    if (d) {
+      s = l < .5 ? d / (max + min) : d / (2 - max - min);
+      if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4;
+      h *= 60;
+    } else {
+      s = h = 0;
+    }
+    return d3_hsl(h, s, l);
+  }
+  function d3_rgb_lab(r, g, b) {
+    r = d3_rgb_xyz(r);
+    g = d3_rgb_xyz(g);
+    b = d3_rgb_xyz(b);
+    var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z);
+    return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z));
+  }
+  function d3_rgb_xyz(r) {
+    return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4);
+  }
+  function d3_rgb_parseNumber(c) {
+    var f = parseFloat(c);
+    return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f;
+  }
+  var d3_rgb_names = d3.map({
+    aliceblue: "#f0f8ff",
+    antiquewhite: "#faebd7",
+    aqua: "#00ffff",
+    aquamarine: "#7fffd4",
+    azure: "#f0ffff",
+    beige: "#f5f5dc",
+    bisque: "#ffe4c4",
+    black: "#000000",
+    blanchedalmond: "#ffebcd",
+    blue: "#0000ff",
+    blueviolet: "#8a2be2",
+    brown: "#a52a2a",
+    burlywood: "#deb887",
+    cadetblue: "#5f9ea0",
+    chartreuse: "#7fff00",
+    chocolate: "#d2691e",
+    coral: "#ff7f50",
+    cornflowerblue: "#6495ed",
+    cornsilk: "#fff8dc",
+    crimson: "#dc143c",
+    cyan: "#00ffff",
+    darkblue: "#00008b",
+    darkcyan: "#008b8b",
+    darkgoldenrod: "#b8860b",
+    darkgray: "#a9a9a9",
+    darkgreen: "#006400",
+    darkgrey: "#a9a9a9",
+    darkkhaki: "#bdb76b",
+    darkmagenta: "#8b008b",
+    darkolivegreen: "#556b2f",
+    darkorange: "#ff8c00",
+    darkorchid: "#9932cc",
+    darkred: "#8b0000",
+    darksalmon: "#e9967a",
+    darkseagreen: "#8fbc8f",
+    darkslateblue: "#483d8b",
+    darkslategray: "#2f4f4f",
+    darkslategrey: "#2f4f4f",
+    darkturquoise: "#00ced1",
+    darkviolet: "#9400d3",
+    deeppink: "#ff1493",
+    deepskyblue: "#00bfff",
+    dimgray: "#696969",
+    dimgrey: "#696969",
+    dodgerblue: "#1e90ff",
+    firebrick: "#b22222",
+    floralwhite: "#fffaf0",
+    forestgreen: "#228b22",
+    fuchsia: "#ff00ff",
+    gainsboro: "#dcdcdc",
+    ghostwhite: "#f8f8ff",
+    gold: "#ffd700",
+    goldenrod: "#daa520",
+    gray: "#808080",
+    green: "#008000",
+    greenyellow: "#adff2f",
+    grey: "#808080",
+    honeydew: "#f0fff0",
+    hotpink: "#ff69b4",
+    indianred: "#cd5c5c",
+    indigo: "#4b0082",
+    ivory: "#fffff0",
+    khaki: "#f0e68c",
+    lavender: "#e6e6fa",
+    lavenderblush: "#fff0f5",
+    lawngreen: "#7cfc00",
+    lemonchiffon: "#fffacd",
+    lightblue: "#add8e6",
+    lightcoral: "#f08080",
+    lightcyan: "#e0ffff",
+    lightgoldenrodyellow: "#fafad2",
+    lightgray: "#d3d3d3",
+    lightgreen: "#90ee90",
+    lightgrey: "#d3d3d3",
+    lightpink: "#ffb6c1",
+    lightsalmon: "#ffa07a",
+    lightseagreen: "#20b2aa",
+    lightskyblue: "#87cefa",
+    lightslategray: "#778899",
+    lightslategrey: "#778899",
+    lightsteelblue: "#b0c4de",
+    lightyellow: "#ffffe0",
+    lime: "#00ff00",
+    limegreen: "#32cd32",
+    linen: "#faf0e6",
+    magenta: "#ff00ff",
+    maroon: "#800000",
+    mediumaquamarine: "#66cdaa",
+    mediumblue: "#0000cd",
+    mediumorchid: "#ba55d3",
+    mediumpurple: "#9370db",
+    mediumseagreen: "#3cb371",
+    mediumslateblue: "#7b68ee",
+    mediumspringgreen: "#00fa9a",
+    mediumturquoise: "#48d1cc",
+    mediumvioletred: "#c71585",
+    midnightblue: "#191970",
+    mintcream: "#f5fffa",
+    mistyrose: "#ffe4e1",
+    moccasin: "#ffe4b5",
+    navajowhite: "#ffdead",
+    navy: "#000080",
+    oldlace: "#fdf5e6",
+    olive: "#808000",
+    olivedrab: "#6b8e23",
+    orange: "#ffa500",
+    orangered: "#ff4500",
+    orchid: "#da70d6",
+    palegoldenrod: "#eee8aa",
+    palegreen: "#98fb98",
+    paleturquoise: "#afeeee",
+    palevioletred: "#db7093",
+    papayawhip: "#ffefd5",
+    peachpuff: "#ffdab9",
+    peru: "#cd853f",
+    pink: "#ffc0cb",
+    plum: "#dda0dd",
+    powderblue: "#b0e0e6",
+    purple: "#800080",
+    red: "#ff0000",
+    rosybrown: "#bc8f8f",
+    royalblue: "#4169e1",
+    saddlebrown: "#8b4513",
+    salmon: "#fa8072",
+    sandybrown: "#f4a460",
+    seagreen: "#2e8b57",
+    seashell: "#fff5ee",
+    sienna: "#a0522d",
+    silver: "#c0c0c0",
+    skyblue: "#87ceeb",
+    slateblue: "#6a5acd",
+    slategray: "#708090",
+    slategrey: "#708090",
+    snow: "#fffafa",
+    springgreen: "#00ff7f",
+    steelblue: "#4682b4",
+    tan: "#d2b48c",
+    teal: "#008080",
+    thistle: "#d8bfd8",
+    tomato: "#ff6347",
+    turquoise: "#40e0d0",
+    violet: "#ee82ee",
+    wheat: "#f5deb3",
+    white: "#ffffff",
+    whitesmoke: "#f5f5f5",
+    yellow: "#ffff00",
+    yellowgreen: "#9acd32"
+  });
+  d3_rgb_names.forEach(function(key, value) {
+    d3_rgb_names.set(key, d3_rgb_parse(value, d3_rgb, d3_hsl_rgb));
+  });
+  d3.hsl = function(h, s, l) {
+    return arguments.length === 1 ? h instanceof d3_Hsl ? d3_hsl(h.h, h.s, h.l) : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) : d3_hsl(+h, +s, +l);
+  };
+  function d3_hsl(h, s, l) {
+    return new d3_Hsl(h, s, l);
+  }
+  function d3_Hsl(h, s, l) {
+    this.h = h;
+    this.s = s;
+    this.l = l;
+  }
+  var d3_hslPrototype = d3_Hsl.prototype = new d3_Color();
+  d3_hslPrototype.brighter = function(k) {
+    k = Math.pow(.7, arguments.length ? k : 1);
+    return d3_hsl(this.h, this.s, this.l / k);
+  };
+  d3_hslPrototype.darker = function(k) {
+    k = Math.pow(.7, arguments.length ? k : 1);
+    return d3_hsl(this.h, this.s, k * this.l);
+  };
+  d3_hslPrototype.rgb = function() {
+    return d3_hsl_rgb(this.h, this.s, this.l);
+  };
+  function d3_hsl_rgb(h, s, l) {
+    var m1, m2;
+    h = h % 360;
+    if (h < 0) h += 360;
+    s = s < 0 ? 0 : s > 1 ? 1 : s;
+    l = l < 0 ? 0 : l > 1 ? 1 : l;
+    m2 = l <= .5 ? l * (1 + s) : l + s - l * s;
+    m1 = 2 * l - m2;
+    function v(h) {
+      if (h > 360) h -= 360; else if (h < 0) h += 360;
+      if (h < 60) return m1 + (m2 - m1) * h / 60;
+      if (h < 180) return m2;
+      if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;
+      return m1;
+    }
+    function vv(h) {
+      return Math.round(v(h) * 255);
+    }
+    return d3_rgb(vv(h + 120), vv(h), vv(h - 120));
+  }
+  d3.hcl = function(h, c, l) {
+    return arguments.length === 1 ? h instanceof d3_Hcl ? d3_hcl(h.h, h.c, h.l) : h instanceof d3_Lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : d3_hcl(+h, +c, +l);
+  };
+  function d3_hcl(h, c, l) {
+    return new d3_Hcl(h, c, l);
+  }
+  function d3_Hcl(h, c, l) {
+    this.h = h;
+    this.c = c;
+    this.l = l;
+  }
+  var d3_hclPrototype = d3_Hcl.prototype = new d3_Color();
+  d3_hclPrototype.brighter = function(k) {
+    return d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)));
+  };
+  d3_hclPrototype.darker = function(k) {
+    return d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)));
+  };
+  d3_hclPrototype.rgb = function() {
+    return d3_hcl_lab(this.h, this.c, this.l).rgb();
+  };
+  function d3_hcl_lab(h, c, l) {
+    return d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c);
+  }
+  d3.lab = function(l, a, b) {
+    return arguments.length === 1 ? l instanceof d3_Lab ? d3_lab(l.l, l.a, l.b) : l instanceof d3_Hcl ? d3_hcl_lab(l.l, l.c, l.h) : d3_rgb_lab((l = d3.rgb(l)).r, l.g, l.b) : d3_lab(+l, +a, +b);
+  };
+  function d3_lab(l, a, b) {
+    return new d3_Lab(l, a, b);
+  }
+  function d3_Lab(l, a, b) {
+    this.l = l;
+    this.a = a;
+    this.b = b;
+  }
+  var d3_lab_K = 18;
+  var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883;
+  var d3_labPrototype = d3_Lab.prototype = new d3_Color();
+  d3_labPrototype.brighter = function(k) {
+    return d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
+  };
+  d3_labPrototype.darker = function(k) {
+    return d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
+  };
+  d3_labPrototype.rgb = function() {
+    return d3_lab_rgb(this.l, this.a, this.b);
+  };
+  function d3_lab_rgb(l, a, b) {
+    var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200;
+    x = d3_lab_xyz(x) * d3_lab_X;
+    y = d3_lab_xyz(y) * d3_lab_Y;
+    z = d3_lab_xyz(z) * d3_lab_Z;
+    return d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z));
+  }
+  function d3_lab_hcl(l, a, b) {
+    return d3_hcl(Math.atan2(b, a) / π * 180, Math.sqrt(a * a + b * b), l);
+  }
+  function d3_lab_xyz(x) {
+    return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037;
+  }
+  function d3_xyz_lab(x) {
+    return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29;
+  }
+  function d3_xyz_rgb(r) {
+    return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055));
+  }
+  function d3_selection(groups) {
+    d3_arraySubclass(groups, d3_selectionPrototype);
+    return groups;
+  }
+  var d3_select = function(s, n) {
+    return n.querySelector(s);
+  }, d3_selectAll = function(s, n) {
+    return n.querySelectorAll(s);
+  }, d3_selectRoot = d3_document.documentElement, d3_selectMatcher = d3_selectRoot.matchesSelector || d3_selectRoot.webkitMatchesSelector || d3_selectRoot.mozMatchesSelector || d3_selectRoot.msMatchesSelector || d3_selectRoot.oMatchesSelector, d3_selectMatches = function(n, s) {
+    return d3_selectMatcher.call(n, s);
+  };
+  if (typeof Sizzle === "function") {
+    d3_select = function(s, n) {
+      return Sizzle(s, n)[0] || null;
+    };
+    d3_selectAll = function(s, n) {
+      return Sizzle.uniqueSort(Sizzle(s, n));
+    };
+    d3_selectMatches = Sizzle.matchesSelector;
+  }
+  var d3_selectionPrototype = [];
+  d3.selection = function() {
+    return d3_selectionRoot;
+  };
+  d3.selection.prototype = d3_selectionPrototype;
+  d3_selectionPrototype.select = function(selector) {
+    var subgroups = [], subgroup, subnode, group, node;
+    if (typeof selector !== "function") selector = d3_selection_selector(selector);
+    for (var j = -1, m = this.length; ++j < m; ) {
+      subgroups.push(subgroup = []);
+      subgroup.parentNode = (group = this[j]).parentNode;
+      for (var i = -1, n = group.length; ++i < n; ) {
+        if (node = group[i]) {
+          subgroup.push(subnode = selector.call(node, node.__data__, i));
+          if (subnode && "__data__" in node) subnode.__data__ = node.__data__;
+        } else {
+          subgroup.push(null);
+        }
+      }
+    }
+    return d3_selection(subgroups);
+  };
+  function d3_selection_selector(selector) {
+    return function() {
+      return d3_select(selector, this);
+    };
+  }
+  d3_selectionPrototype.selectAll = function(selector) {
+    var subgroups = [], subgroup, node;
+    if (typeof selector !== "function") selector = d3_selection_selectorAll(selector);
+    for (var j = -1, m = this.length; ++j < m; ) {
+      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
+        if (node = group[i]) {
+          subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i)));
+          subgroup.parentNode = node;
+        }
+      }
+    }
+    return d3_selection(subgroups);
+  };
+  function d3_selection_selectorAll(selector) {
+    return function() {
+      return d3_selectAll(selector, this);
+    };
+  }
+  d3_selectionPrototype.attr = function(name, value) {
+    if (arguments.length < 2) {
+      if (typeof name === "string") {
+        var node = this.node();
+        name = d3.ns.qualify(name);
+        return name.local ? node.getAttributeNS(name.space, name.local) : node.getAttribute(name);
+      }
+      for (value in name) this.each(d3_selection_attr(value, name[value]));
+      return this;
+    }
+    return this.each(d3_selection_attr(name, value));
+  };
+  function d3_selection_attr(name, value) {
+    name = d3.ns.qualify(name);
+    function attrNull() {
+      this.removeAttribute(name);
+    }
+    function attrNullNS() {
+      this.removeAttributeNS(name.space, name.local);
+    }
+    function attrConstant() {
+      this.setAttribute(name, value);
+    }
+    function attrConstantNS() {
+      this.setAttributeNS(name.space, name.local, value);
+    }
+    function attrFunction() {
+      var x = value.apply(this, arguments);
+      if (x == null) this.removeAttribute(name); else this.setAttribute(name, x);
+    }
+    function attrFunctionNS() {
+      var x = value.apply(this, arguments);
+      if (x == null) this.removeAttributeNS(name.space, name.local); else this.setAttributeNS(name.space, name.local, x);
+    }
+    return value == null ? name.local ? attrNullNS : attrNull : typeof value === "function" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant;
+  }
+  d3_selectionPrototype.classed = function(name, value) {
+    if (arguments.length < 2) {
+      if (typeof name === "string") {
+        var node = this.node(), n = (name = name.trim().split(/^|\s+/g)).length, i = -1;
+        if (value = node.classList) {
+          while (++i < n) if (!value.contains(name[i])) return false;
+        } else {
+          value = node.className;
+          if (value.baseVal != null) value = value.baseVal;
+          while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false;
+        }
+        return true;
+      }
+      for (value in name) this.each(d3_selection_classed(value, name[value]));
+      return this;
+    }
+    return this.each(d3_selection_classed(name, value));
+  };
+  function d3_selection_classedRe(name) {
+    return new RegExp("(?:^|\\s+)" + d3.requote(name) + "(?:\\s+|$)", "g");
+  }
+  function d3_selection_classed(name, value) {
+    name = name.trim().split(/\s+/).map(d3_selection_classedName);
+    var n = name.length;
+    function classedConstant() {
+      var i = -1;
+      while (++i < n) name[i](this, value);
+    }
+    function classedFunction() {
+      var i = -1, x = value.apply(this, arguments);
+      while (++i < n) name[i](this, x);
+    }
+    return typeof value === "function" ? classedFunction : classedConstant;
+  }
+  function d3_selection_classedName(name) {
+    var re = d3_selection_classedRe(name);
+    return function(node, value) {
+      if (c = node.classList) return value ? c.add(name) : c.remove(name);
+      var c = node.className, cb = c.baseVal != null, cv = cb ? c.baseVal : c;
+      if (value) {
+        re.lastIndex = 0;
+        if (!re.test(cv)) {
+          cv = d3_collapse(cv + " " + name);
+          if (cb) c.baseVal = cv; else node.className = cv;
+        }
+      } else if (cv) {
+        cv = d3_collapse(cv.replace(re, " "));
+        if (cb) c.baseVal = cv; else node.className = cv;
+      }
+    };
+  }
+  d3_selectionPrototype.style = function(name, value, priority) {
+    var n = arguments.length;
+    if (n < 3) {
+      if (typeof name !== "string") {
+        if (n < 2) value = "";
+        for (priority in name) this.each(d3_selection_style(priority, name[priority], value));
+        return this;
+      }
+      if (n < 2) return d3_window.getComputedStyle(this.node(), null).getPropertyValue(name);
+      priority = "";
+    }
+    return this.each(d3_selection_style(name, value, priority));
+  };
+  function d3_selection_style(name, value, priority) {
+    function styleNull() {
+      this.style.removeProperty(name);
+    }
+    function styleConstant() {
+      this.style.setProperty(name, value, priority);
+    }
+    function styleFunction() {
+      var x = value.apply(this, arguments);
+      if (x == null) this.style.removeProperty(name); else this.style.setProperty(name, x, priority);
+    }
+    return value == null ? styleNull : typeof value === "function" ? styleFunction : styleConstant;
+  }
+  d3_selectionPrototype.property = function(name, value) {
+    if (arguments.length < 2) {
+      if (typeof name === "string") return this.node()[name];
+      for (value in name) this.each(d3_selection_property(value, name[value]));
+      return this;
+    }
+    return this.each(d3_selection_property(name, value));
+  };
+  function d3_selection_property(name, value) {
+    function propertyNull() {
+      delete this[name];
+    }
+    function propertyConstant() {
+      this[name] = value;
+    }
+    function propertyFunction() {
+      var x = value.apply(this, arguments);
+      if (x == null) delete this[name]; else this[name] = x;
+    }
+    return value == null ? propertyNull : typeof value === "function" ? propertyFunction : propertyConstant;
+  }
+  d3_selectionPrototype.text = function(value) {
+    return arguments.length ? this.each(typeof value === "function" ? function() {
+      var v = value.apply(this, arguments);
+      this.textContent = v == null ? "" : v;
+    } : value == null ? function() {
+      this.textContent = "";
+    } : function() {
+      this.textContent = value;
+    }) : this.node().textContent;
+  };
+  d3_selectionPrototype.html = function(value) {
+    return arguments.length ? this.each(typeof value === "function" ? function() {
+      var v = value.apply(this, arguments);
+      this.innerHTML = v == null ? "" : v;
+    } : value == null ? function() {
+      this.innerHTML = "";
+    } : function() {
+      this.innerHTML = value;
+    }) : this.node().innerHTML;
+  };
+  d3_selectionPrototype.append = function(name) {
+    name = d3.ns.qualify(name);
+    function append() {
+      return this.appendChild(d3_document.createElementNS(this.namespaceURI, name));
+    }
+    function appendNS() {
+      return this.appendChild(d3_document.createElementNS(name.space, name.local));
+    }
+    return this.select(name.local ? appendNS : append);
+  };
+  d3_selectionPrototype.insert = function(name, before) {
+    name = d3.ns.qualify(name);
+    function insert() {
+      return this.insertBefore(d3_document.createElementNS(this.namespaceURI, name), d3_select(before, this));
+    }
+    function insertNS() {
+      return this.insertBefore(d3_document.createElementNS(name.space, name.local), d3_select(before, this));
+    }
+    return this.select(name.local ? insertNS : insert);
+  };
+  d3_selectionPrototype.remove = function() {
+    return this.each(function() {
+      var parent = this.parentNode;
+      if (parent) parent.removeChild(this);
+    });
+  };
+  d3_selectionPrototype.data = function(value, key) {
+    var i = -1, n = this.length, group, node;
+    if (!arguments.length) {
+      value = new Array(n = (group = this[0]).length);
+      while (++i < n) {
+        if (node = group[i]) {
+          value[i] = node.__data__;
+        }
+      }
+      return value;
+    }
+    function bind(group, groupData) {
+      var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData;
+      if (key) {
+        var nodeByKeyValue = new d3_Map(), dataByKeyValue = new d3_Map(), keyValues = [], keyValue;
+        for (i = -1; ++i < n; ) {
+          keyValue = key.call(node = group[i], node.__data__, i);
+          if (nodeByKeyValue.has(keyValue)) {
+            exitNodes[i] = node;
+          } else {
+            nodeByKeyValue.set(keyValue, node);
+          }
+          keyValues.push(keyValue);
+        }
+        for (i = -1; ++i < m; ) {
+          keyValue = key.call(groupData, nodeData = groupData[i], i);
+          if (node = nodeByKeyValue.get(keyValue)) {
+            updateNodes[i] = node;
+            node.__data__ = nodeData;
+          } else if (!dataByKeyValue.has(keyValue)) {
+            enterNodes[i] = d3_selection_dataNode(nodeData);
+          }
+          dataByKeyValue.set(keyValue, nodeData);
+          nodeByKeyValue.remove(keyValue);
+        }
+        for (i = -1; ++i < n; ) {
+          if (nodeByKeyValue.has(keyValues[i])) {
+            exitNodes[i] = group[i];
+          }
+        }
+      } else {
+        for (i = -1; ++i < n0; ) {
+          node = group[i];
+          nodeData = groupData[i];
+          if (node) {
+            node.__data__ = nodeData;
+            updateNodes[i] = node;
+          } else {
+            enterNodes[i] = d3_selection_dataNode(nodeData);
+          }
+        }
+        for (;i < m; ++i) {
+          enterNodes[i] = d3_selection_dataNode(groupData[i]);
+        }
+        for (;i < n; ++i) {
+          exitNodes[i] = group[i];
+        }
+      }
+      enterNodes.update = updateNodes;
+      enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group.parentNode;
+      enter.push(enterNodes);
+      update.push(updateNodes);
+      exit.push(exitNodes);
+    }
+    var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]);
+    if (typeof value === "function") {
+      while (++i < n) {
+        bind(group = this[i], value.call(group, group.parentNode.__data__, i));
+      }
+    } else {
+      while (++i < n) {
+        bind(group = this[i], value);
+      }
+    }
+    update.enter = function() {
+      return enter;
+    };
+    update.exit = function() {
+      return exit;
+    };
+    return update;
+  };
+  function d3_selection_dataNode(data) {
+    return {
+      __data__: data
+    };
+  }
+  d3_selectionPrototype.datum = function(value) {
+    return arguments.length ? this.property("__data__", value) : this.property("__data__");
+  };
+  d3_selectionPrototype.filter = function(filter) {
+    var subgroups = [], subgroup, group, node;
+    if (typeof filter !== "function") filter = d3_selection_filter(filter);
+    for (var j = 0, m = this.length; j < m; j++) {
+      subgroups.push(subgroup = []);
+      subgroup.parentNode = (group = this[j]).parentNode;
+      for (var i = 0, n = group.length; i < n; i++) {
+        if ((node = group[i]) && filter.call(node, node.__data__, i)) {
+          subgroup.push(node);
+        }
+      }
+    }
+    return d3_selection(subgroups);
+  };
+  function d3_selection_filter(selector) {
+    return function() {
+      return d3_selectMatches(this, selector);
+    };
+  }
+  d3_selectionPrototype.order = function() {
+    for (var j = -1, m = this.length; ++j < m; ) {
+      for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {
+        if (node = group[i]) {
+          if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);
+          next = node;
+        }
+      }
+    }
+    return this;
+  };
+  d3_selectionPrototype.sort = function(comparator) {
+    comparator = d3_selection_sortComparator.apply(this, arguments);
+    for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator);
+    return this.order();
+  };
+  function d3_selection_sortComparator(comparator) {
+    if (!arguments.length) comparator = d3.ascending;
+    return function(a, b) {
+      return !a - !b || comparator(a.__data__, b.__data__);
+    };
+  }
+  d3_selectionPrototype.on = function(type, listener, capture) {
+    var n = arguments.length;
+    if (n < 3) {
+      if (typeof type !== "string") {
+        if (n < 2) listener = false;
+        for (capture in type) this.each(d3_selection_on(capture, type[capture], listener));
+        return this;
+      }
+      if (n < 2) return (n = this.node()["__on" + type]) && n._;
+      capture = false;
+    }
+    return this.each(d3_selection_on(type, listener, capture));
+  };
+  function d3_selection_on(type, listener, capture) {
+    var name = "__on" + type, i = type.indexOf(".");
+    if (i > 0) type = type.substring(0, i);
+    function onRemove() {
+      var wrapper = this[name];
+      if (wrapper) {
+        this.removeEventListener(type, wrapper, wrapper.$);
+        delete this[name];
+      }
+    }
+    function onAdd() {
+      var node = this, args = d3_array(arguments);
+      onRemove.call(this);
+      this.addEventListener(type, this[name] = wrapper, wrapper.$ = capture);
+      wrapper._ = listener;
+      function wrapper(e) {
+        var o = d3.event;
+        d3.event = e;
+        args[0] = node.__data__;
+        try {
+          listener.apply(node, args);
+        } finally {
+          d3.event = o;
+        }
+      }
+    }
+    return listener ? onAdd : onRemove;
+  }
+  d3_selectionPrototype.each = function(callback) {
+    return d3_selection_each(this, function(node, i, j) {
+      callback.call(node, node.__data__, i, j);
+    });
+  };
+  function d3_selection_each(groups, callback) {
+    for (var j = 0, m = groups.length; j < m; j++) {
+      for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) {
+        if (node = group[i]) callback(node, i, j);
+      }
+    }
+    return groups;
+  }
+  d3_selectionPrototype.call = function(callback) {
+    var args = d3_array(arguments);
+    callback.apply(args[0] = this, args);
+    return this;
+  };
+  d3_selectionPrototype.empty = function() {
+    return !this.node();
+  };
+  d3_selectionPrototype.node = function() {
+    for (var j = 0, m = this.length; j < m; j++) {
+      for (var group = this[j], i = 0, n = group.length; i < n; i++) {
+        var node = group[i];
+        if (node) return node;
+      }
+    }
+    return null;
+  };
+  d3_selectionPrototype.transition = function() {
+    var id = d3_transitionInheritId || ++d3_transitionId, subgroups = [], subgroup, node, transition = Object.create(d3_transitionInherit);
+    transition.time = Date.now();
+    for (var j = -1, m = this.length; ++j < m; ) {
+      subgroups.push(subgroup = []);
+      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
+        if (node = group[i]) d3_transitionNode(node, i, id, transition);
+        subgroup.push(node);
+      }
+    }
+    return d3_transition(subgroups, id);
+  };
+  var d3_selectionRoot = d3_selection([ [ d3_document ] ]);
+  d3_selectionRoot[0].parentNode = d3_selectRoot;
+  d3.select = function(selector) {
+    return typeof selector === "string" ? d3_selectionRoot.select(selector) : d3_selection([ [ selector ] ]);
+  };
+  d3.selectAll = function(selector) {
+    return typeof selector === "string" ? d3_selectionRoot.selectAll(selector) : d3_selection([ d3_array(selector) ]);
+  };
+  function d3_selection_enter(selection) {
+    d3_arraySubclass(selection, d3_selection_enterPrototype);
+    return selection;
+  }
+  var d3_selection_enterPrototype = [];
+  d3.selection.enter = d3_selection_enter;
+  d3.selection.enter.prototype = d3_selection_enterPrototype;
+  d3_selection_enterPrototype.append = d3_selectionPrototype.append;
+  d3_selection_enterPrototype.insert = d3_selectionPrototype.insert;
+  d3_selection_enterPrototype.empty = d3_selectionPrototype.empty;
+  d3_selection_enterPrototype.node = d3_selectionPrototype.node;
+  d3_selection_enterPrototype.select = function(selector) {
+    var subgroups = [], subgroup, subnode, upgroup, group, node;
+    for (var j = -1, m = this.length; ++j < m; ) {
+      upgroup = (group = this[j]).update;
+      subgroups.push(subgroup = []);
+      subgroup.parentNode = group.parentNode;
+      for (var i = -1, n = group.length; ++i < n; ) {
+        if (node = group[i]) {
+          subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i));
+          subnode.__data__ = node.__data__;
+        } else {
+          subgroup.push(null);
+        }
+      }
+    }
+    return d3_selection(subgroups);
+  };
+  function d3_transition(groups, id) {
+    d3_arraySubclass(groups, d3_transitionPrototype);
+    groups.id = id;
+    return groups;
+  }
+  var d3_transitionPrototype = [], d3_transitionId = 0, d3_transitionInheritId, d3_transitionInherit = {
+    ease: d3_ease_cubicInOut,
+    delay: 0,
+    duration: 250
+  };
+  d3_transitionPrototype.call = d3_selectionPrototype.call;
+  d3_transitionPrototype.empty = d3_selectionPrototype.empty;
+  d3_transitionPrototype.node = d3_selectionPrototype.node;
+  d3.transition = function(selection) {
+    return arguments.length ? d3_transitionInheritId ? selection.transition() : selection : d3_selectionRoot.transition();
+  };
+  d3.transition.prototype = d3_transitionPrototype;
+  function d3_transitionNode(node, i, id, inherit) {
+    var lock = node.__transition__ || (node.__transition__ = {
+      active: 0,
+      count: 0
+    }), transition = lock[id];
+    if (!transition) {
+      var time = inherit.time;
+      transition = lock[id] = {
+        tween: new d3_Map(),
+        event: d3.dispatch("start", "end"),
+        time: time,
+        ease: inherit.ease,
+        delay: inherit.delay,
+        duration: inherit.duration
+      };
+      ++lock.count;
+      d3.timer(function(elapsed) {
+        var d = node.__data__, ease = transition.ease, event = transition.event, delay = transition.delay, duration = transition.duration, tweened = [];
+        return delay <= elapsed ? start(elapsed) : d3.timer(start, delay, time), 1;
+        function start(elapsed) {
+          if (lock.active > id) return stop();
+          lock.active = id;
+          event.start.call(node, d, i);
+          transition.tween.forEach(function(key, value) {
+            if (value = value.call(node, d, i)) {
+              tweened.push(value);
+            }
+          });
+          if (!tick(elapsed)) d3.timer(tick, 0, time);
+          return 1;
+        }
+        function tick(elapsed) {
+          if (lock.active !== id) return stop();
+          var t = (elapsed - delay) / duration, e = ease(t), n = tweened.length;
+          while (n > 0) {
+            tweened[--n].call(node, e);
+          }
+          if (t >= 1) {
+            stop();
+            event.end.call(node, d, i);
+            return 1;
+          }
+        }
+        function stop() {
+          if (--lock.count) delete lock[id]; else delete node.__transition__;
+          return 1;
+        }
+      }, 0, time);
+      return transition;
+    }
+  }
+  d3_transitionPrototype.select = function(selector) {
+    var id = this.id, subgroups = [], subgroup, subnode, node;
+    if (typeof selector !== "function") selector = d3_selection_selector(selector);
+    for (var j = -1, m = this.length; ++j < m; ) {
+      subgroups.push(subgroup = []);
+      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
+        if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i))) {
+          if ("__data__" in node) subnode.__data__ = node.__data__;
+          d3_transitionNode(subnode, i, id, node.__transition__[id]);
+          subgroup.push(subnode);
+        } else {
+          subgroup.push(null);
+        }
+      }
+    }
+    return d3_transition(subgroups, id);
+  };
+  d3_transitionPrototype.selectAll = function(selector) {
+    var id = this.id, subgroups = [], subgroup, subnodes, node, subnode, transition;
+    if (typeof selector !== "function") selector = d3_selection_selectorAll(selector);
+    for (var j = -1, m = this.length; ++j < m; ) {
+      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
+        if (node = group[i]) {
+          transition = node.__transition__[id];
+          subnodes = selector.call(node, node.__data__, i);
+          subgroups.push(subgroup = []);
+          for (var k = -1, o = subnodes.length; ++k < o; ) {
+            d3_transitionNode(subnode = subnodes[k], k, id, transition);
+            subgroup.push(subnode);
+          }
+        }
+      }
+    }
+    return d3_transition(subgroups, id);
+  };
+  d3_transitionPrototype.filter = function(filter) {
+    var subgroups = [], subgroup, group, node;
+    if (typeof filter !== "function") filter = d3_selection_filter(filter);
+    for (var j = 0, m = this.length; j < m; j++) {
+      subgroups.push(subgroup = []);
+      for (var group = this[j], i = 0, n = group.length; i < n; i++) {
+        if ((node = group[i]) && filter.call(node, node.__data__, i)) {
+          subgroup.push(node);
+        }
+      }
+    }
+    return d3_transition(subgroups, this.id, this.time).ease(this.ease());
+  };
+  d3_transitionPrototype.attr = function(nameNS, value) {
+    if (arguments.length < 2) {
+      for (value in nameNS) this.attr(value, nameNS[value]);
+      return this;
+    }
+    var interpolate = d3_interpolateByName(nameNS), name = d3.ns.qualify(nameNS);
+    function attrNull() {
+      this.removeAttribute(name);
+    }
+    function attrNullNS() {
+      this.removeAttributeNS(name.space, name.local);
+    }
+    return d3_transition_tween(this, "attr." + nameNS, value, function(b) {
+      function attrString() {
+        var a = this.getAttribute(name), i;
+        return a !== b && (i = interpolate(a, b), function(t) {
+          this.setAttribute(name, i(t));
+        });
+      }
+      function attrStringNS() {
+        var a = this.getAttributeNS(name.space, name.local), i;
+        return a !== b && (i = interpolate(a, b), function(t) {
+          this.setAttributeNS(name.space, name.local, i(t));
+        });
+      }
+      return b == null ? name.local ? attrNullNS : attrNull : (b += "", name.local ? attrStringNS : attrString);
+    });
+  };
+  d3_transitionPrototype.attrTween = function(nameNS, tween) {
+    var name = d3.ns.qualify(nameNS);
+    function attrTween(d, i) {
+      var f = tween.call(this, d, i, this.getAttribute(name));
+      return f && function(t) {
+        this.setAttribute(name, f(t));
+      };
+    }
+    function attrTweenNS(d, i) {
+      var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local));
+      return f && function(t) {
+        this.setAttributeNS(name.space, name.local, f(t));
+      };
+    }
+    return this.tween("attr." + nameNS, name.local ? attrTweenNS : attrTween);
+  };
+  d3_transitionPrototype.style = function(name, value, priority) {
+    var n = arguments.length;
+    if (n < 3) {
+      if (typeof name !== "string") {
+        if (n < 2) value = "";
+        for (priority in name) this.style(priority, name[priority], value);
+        return this;
+      }
+      priority = "";
+    }
+    var interpolate = d3_interpolateByName(name);
+    function styleNull() {
+      this.style.removeProperty(name);
+    }
+    return d3_transition_tween(this, "style." + name, value, function(b) {
+      function styleString() {
+        var a = d3_window.getComputedStyle(this, null).getPropertyValue(name), i;
+        return a !== b && (i = interpolate(a, b), function(t) {
+          this.style.setProperty(name, i(t), priority);
+        });
+      }
+      return b == null ? styleNull : (b += "", styleString);
+    });
+  };
+  d3_transitionPrototype.styleTween = function(name, tween, priority) {
+    if (arguments.length < 3) priority = "";
+    return this.tween("style." + name, function(d, i) {
+      var f = tween.call(this, d, i, d3_window.getComputedStyle(this, null).getPropertyValue(name));
+      return f && function(t) {
+        this.style.setProperty(name, f(t), priority);
+      };
+    });
+  };
+  d3_transitionPrototype.text = function(value) {
+    return d3_transition_tween(this, "text", value, d3_transition_text);
+  };
+  function d3_transition_text(b) {
+    if (b == null) b = "";
+    return function() {
+      this.textContent = b;
+    };
+  }
+  d3_transitionPrototype.remove = function() {
+    return this.each("end.transition", function() {
+      var p;
+      if (!this.__transition__ && (p = this.parentNode)) p.removeChild(this);
+    });
+  };
+  d3_transitionPrototype.ease = function(value) {
+    var id = this.id;
+    if (arguments.length < 1) return this.node().__transition__[id].ease;
+    if (typeof value !== "function") value = d3.ease.apply(d3, arguments);
+    return d3_selection_each(this, function(node) {
+      node.__transition__[id].ease = value;
+    });
+  };
+  d3_transitionPrototype.delay = function(value) {
+    var id = this.id;
+    return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
+      node.__transition__[id].delay = value.call(node, node.__data__, i, j) | 0;
+    } : (value |= 0, function(node) {
+      node.__transition__[id].delay = value;
+    }));
+  };
+  d3_transitionPrototype.duration = function(value) {
+    var id = this.id;
+    return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
+      node.__transition__[id].duration = Math.max(1, value.call(node, node.__data__, i, j) | 0);
+    } : (value = Math.max(1, value | 0), function(node) {
+      node.__transition__[id].duration = value;
+    }));
+  };
+  d3_transitionPrototype.each = function(type, listener) {
+    var id = this.id;
+    if (arguments.length < 2) {
+      var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId;
+      d3_transitionInheritId = id;
+      d3_selection_each(this, function(node, i, j) {
+        d3_transitionInherit = node.__transition__[id];
+        type.call(node, node.__data__, i, j);
+      });
+      d3_transitionInherit = inherit;
+      d3_transitionInheritId = inheritId;
+    } else {
+      d3_selection_each(this, function(node) {
+        node.__transition__[id].event.on(type, listener);
+      });
+    }
+    return this;
+  };
+  d3_transitionPrototype.transition = function() {
+    var id0 = this.id, id1 = ++d3_transitionId, subgroups = [], subgroup, group, node, transition;
+    for (var j = 0, m = this.length; j < m; j++) {
+      subgroups.push(subgroup = []);
+      for (var group = this[j], i = 0, n = group.length; i < n; i++) {
+        if (node = group[i]) {
+          transition = Object.create(node.__transition__[id0]);
+          transition.delay += transition.duration;
+          d3_transitionNode(node, i, id1, transition);
+        }
+        subgroup.push(node);
+      }
+    }
+    return d3_transition(subgroups, id1);
+  };
+  d3_transitionPrototype.tween = function(name, tween) {
+    var id = this.id;
+    if (arguments.length < 2) return this.node().__transition__[id].tween.get(name);
+    return d3_selection_each(this, tween == null ? function(node) {
+      node.__transition__[id].tween.remove(name);
+    } : function(node) {
+      node.__transition__[id].tween.set(name, tween);
+    });
+  };
+  function d3_transition_tween(groups, name, value, tween) {
+    var id = groups.id;
+    return d3_selection_each(groups, typeof value === "function" ? function(node, i, j) {
+      node.__transition__[id].tween.set(name, tween(value.call(node, node.__data__, i, j)));
+    } : (value = tween(value), function(node) {
+      node.__transition__[id].tween.set(name, value);
+    }));
+  }
+  var d3_timer_id = 0, d3_timer_byId = {}, d3_timer_queue = null, d3_timer_interval, d3_timer_timeout;
+  d3.timer = function(callback, delay, then) {
+    if (arguments.length < 3) {
+      if (arguments.length < 2) delay = 0; else if (!isFinite(delay)) return;
+      then = Date.now();
+    }
+    var timer = d3_timer_byId[callback.id];
+    if (timer && timer.callback === callback) {
+      timer.then = then;
+      timer.delay = delay;
+    } else d3_timer_byId[callback.id = ++d3_timer_id] = d3_timer_queue = {
+      callback: callback,
+      then: then,
+      delay: delay,
+      next: d3_timer_queue
+    };
+    if (!d3_timer_interval) {
+      d3_timer_timeout = clearTimeout(d3_timer_timeout);
+      d3_timer_interval = 1;
+      d3_timer_frame(d3_timer_step);
+    }
+  };
+  function d3_timer_step() {
+    var elapsed, now = Date.now(), t1 = d3_timer_queue;
+    while (t1) {
+      elapsed = now - t1.then;
+      if (elapsed >= t1.delay) t1.flush = t1.callback(elapsed);
+      t1 = t1.next;
+    }
+    var delay = d3_timer_flush() - now;
+    if (delay > 24) {
+      if (isFinite(delay)) {
+        clearTimeout(d3_timer_timeout);
+        d3_timer_timeout = setTimeout(d3_timer_step, delay);
+      }
+      d3_timer_interval = 0;
+    } else {
+      d3_timer_interval = 1;
+      d3_timer_frame(d3_timer_step);
+    }
+  }
+  d3.timer.flush = function() {
+    var elapsed, now = Date.now(), t1 = d3_timer_queue;
+    while (t1) {
+      elapsed = now - t1.then;
+      if (!t1.delay) t1.flush = t1.callback(elapsed);
+      t1 = t1.next;
+    }
+    d3_timer_flush();
+  };
+  function d3_timer_flush() {
+    var t0 = null, t1 = d3_timer_queue, then = Infinity;
+    while (t1) {
+      if (t1.flush) {
+        delete d3_timer_byId[t1.callback.id];
+        t1 = t0 ? t0.next = t1.next : d3_timer_queue = t1.next;
+      } else {
+        then = Math.min(then, t1.then + t1.delay);
+        t1 = (t0 = t1).next;
+      }
+    }
+    return then;
+  }
+  var d3_timer_frame = d3_window.requestAnimationFrame || d3_window.webkitRequestAnimationFrame || d3_window.mozRequestAnimationFrame || d3_window.oRequestAnimationFrame || d3_window.msRequestAnimationFrame || function(callback) {
+    setTimeout(callback, 17);
+  };
+  d3.mouse = function(container) {
+    return d3_mousePoint(container, d3_eventSource());
+  };
+  var d3_mouse_bug44083 = /WebKit/.test(d3_window.navigator.userAgent) ? -1 : 0;
+  function d3_mousePoint(container, e) {
+    var svg = container.ownerSVGElement || container;
+    if (svg.createSVGPoint) {
+      var point = svg.createSVGPoint();
+      if (d3_mouse_bug44083 < 0 && (d3_window.scrollX || d3_window.scrollY)) {
+        svg = d3.select(d3_document.body).append("svg").style("position", "absolute").style("top", 0).style("left", 0);
+        var ctm = svg[0][0].getScreenCTM();
+        d3_mouse_bug44083 = !(ctm.f || ctm.e);
+        svg.remove();
+      }
+      if (d3_mouse_bug44083) {
+        point.x = e.pageX;
+        point.y = e.pageY;
+      } else {
+        point.x = e.clientX;
+        point.y = e.clientY;
+      }
+      point = point.matrixTransform(container.getScreenCTM().inverse());
+      return [ point.x, point.y ];
+    }
+    var rect = container.getBoundingClientRect();
+    return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ];
+  }
+  d3.touches = function(container, touches) {
+    if (arguments.length < 2) touches = d3_eventSource().touches;
+    return touches ? d3_array(touches).map(function(touch) {
+      var point = d3_mousePoint(container, touch);
+      point.identifier = touch.identifier;
+      return point;
+    }) : [];
+  };
+  function d3_noop() {}
+  d3.scale = {};
+  function d3_scaleExtent(domain) {
+    var start = domain[0], stop = domain[domain.length - 1];
+    return start < stop ? [ start, stop ] : [ stop, start ];
+  }
+  function d3_scaleRange(scale) {
+    return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range());
+  }
+  function d3_scale_nice(domain, nice) {
+    var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx;
+    if (x1 < x0) {
+      dx = i0, i0 = i1, i1 = dx;
+      dx = x0, x0 = x1, x1 = dx;
+    }
+    if (nice = nice(x1 - x0)) {
+      domain[i0] = nice.floor(x0);
+      domain[i1] = nice.ceil(x1);
+    }
+    return domain;
+  }
+  function d3_scale_niceDefault() {
+    return Math;
+  }
+  d3.scale.linear = function() {
+    return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3.interpolate, false);
+  };
+  function d3_scale_linear(domain, range, interpolate, clamp) {
+    var output, input;
+    function rescale() {
+      var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber;
+      output = linear(domain, range, uninterpolate, interpolate);
+      input = linear(range, domain, uninterpolate, d3.interpolate);
+      return scale;
+    }
+    function scale(x) {
+      return output(x);
+    }
+    scale.invert = function(y) {
+      return input(y);
+    };
+    scale.domain = function(x) {
+      if (!arguments.length) return domain;
+      domain = x.map(Number);
+      return rescale();
+    };
+    scale.range = function(x) {
+      if (!arguments.length) return range;
+      range = x;
+      return rescale();
+    };
+    scale.rangeRound = function(x) {
+      return scale.range(x).interpolate(d3.interpolateRound);
+    };
+    scale.clamp = function(x) {
+      if (!arguments.length) return clamp;
+      clamp = x;
+      return rescale();
+    };
+    scale.interpolate = function(x) {
+      if (!arguments.length) return interpolate;
+      interpolate = x;
+      return rescale();
+    };
+    scale.ticks = function(m) {
+      return d3_scale_linearTicks(domain, m);
+    };
+    scale.tickFormat = function(m) {
+      return d3_scale_linearTickFormat(domain, m);
+    };
+    scale.nice = function() {
+      d3_scale_nice(domain, d3_scale_linearNice);
+      return rescale();
+    };
+    scale.copy = function() {
+      return d3_scale_linear(domain, range, interpolate, clamp);
+    };
+    return rescale();
+  }
+  function d3_scale_linearRebind(scale, linear) {
+    return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp");
+  }
+  function d3_scale_linearNice(dx) {
+    dx = Math.pow(10, Math.round(Math.log(dx) / Math.LN10) - 1);
+    return dx && {
+      floor: function(x) {
+        return Math.floor(x / dx) * dx;
+      },
+      ceil: function(x) {
+        return Math.ceil(x / dx) * dx;
+      }
+    };
+  }
+  function d3_scale_linearTickRange(domain, m) {
+    var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step;
+    if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2;
+    extent[0] = Math.ceil(extent[0] / step) * step;
+    extent[1] = Math.floor(extent[1] / step) * step + step * .5;
+    extent[2] = step;
+    return extent;
+  }
+  function d3_scale_linearTicks(domain, m) {
+    return d3.range.apply(d3, d3_scale_linearTickRange(domain, m));
+  }
+  function d3_scale_linearTickFormat(domain, m) {
+    return d3.format(",." + Math.max(0, -Math.floor(Math.log(d3_scale_linearTickRange(domain, m)[2]) / Math.LN10 + .01)) + "f");
+  }
+  function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {
+    var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]);
+    return function(x) {
+      return i(u(x));
+    };
+  }
+  function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {
+    var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1;
+    if (domain[k] < domain[0]) {
+      domain = domain.slice().reverse();
+      range = range.slice().reverse();
+    }
+    while (++j <= k) {
+      u.push(uninterpolate(domain[j - 1], domain[j]));
+      i.push(interpolate(range[j - 1], range[j]));
+    }
+    return function(x) {
+      var j = d3.bisect(domain, x, 1, k) - 1;
+      return i[j](u[j](x));
+    };
+  }
+  d3.scale.log = function() {
+    return d3_scale_log(d3.scale.linear(), d3_scale_logp);
+  };
+  function d3_scale_log(linear, log) {
+    var pow = log.pow;
+    function scale(x) {
+      return linear(log(x));
+    }
+    scale.invert = function(x) {
+      return pow(linear.invert(x));
+    };
+    scale.domain = function(x) {
+      if (!arguments.length) return linear.domain().map(pow);
+      log = x[0] < 0 ? d3_scale_logn : d3_scale_logp;
+      pow = log.pow;
+      linear.domain(x.map(log));
+      return scale;
+    };
+    scale.nice = function() {
+      linear.domain(d3_scale_nice(linear.domain(), d3_scale_niceDefault));
+      return scale;
+    };
+    scale.ticks = function() {
+      var extent = d3_scaleExtent(linear.domain()), ticks = [];
+      if (extent.every(isFinite)) {
+        var i = Math.floor(extent[0]), j = Math.ceil(extent[1]), u = pow(extent[0]), v = pow(extent[1]);
+        if (log === d3_scale_logn) {
+          ticks.push(pow(i));
+          for (;i++ < j; ) for (var k = 9; k > 0; k--) ticks.push(pow(i) * k);
+        } else {
+          for (;i < j; i++) for (var k = 1; k < 10; k++) ticks.push(pow(i) * k);
+          ticks.push(pow(i));
+        }
+        for (i = 0; ticks[i] < u; i++) {}
+        for (j = ticks.length; ticks[j - 1] > v; j--) {}
+        ticks = ticks.slice(i, j);
+      }
+      return ticks;
+    };
+    scale.tickFormat = function(n, format) {
+      if (arguments.length < 2) format = d3_scale_logFormat;
+      if (!arguments.length) return format;
+      var k = Math.max(.1, n / scale.ticks().length), f = log === d3_scale_logn ? (e = -1e-12,
+      Math.floor) : (e = 1e-12, Math.ceil), e;
+      return function(d) {
+        return d / pow(f(log(d) + e)) <= k ? format(d) : "";
+      };
+    };
+    scale.copy = function() {
+      return d3_scale_log(linear.copy(), log);
+    };
+    return d3_scale_linearRebind(scale, linear);
+  }
+  var d3_scale_logFormat = d3.format(".0e");
+  function d3_scale_logp(x) {
+    return Math.log(x < 0 ? 0 : x) / Math.LN10;
+  }
+  function d3_scale_logn(x) {
+    return -Math.log(x > 0 ? 0 : -x) / Math.LN10;
+  }
+  d3_scale_logp.pow = function(x) {
+    return Math.pow(10, x);
+  };
+  d3_scale_logn.pow = function(x) {
+    return -Math.pow(10, -x);
+  };
+  d3.scale.pow = function() {
+    return d3_scale_pow(d3.scale.linear(), 1);
+  };
+  function d3_scale_pow(linear, exponent) {
+    var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent);
+    function scale(x) {
+      return linear(powp(x));
+    }
+    scale.invert = function(x) {
+      return powb(linear.invert(x));
+    };
+    scale.domain = function(x) {
+      if (!arguments.length) return linear.domain().map(powb);
+      linear.domain(x.map(powp));
+      return scale;
+    };
+    scale.ticks = function(m) {
+      return d3_scale_linearTicks(scale.domain(), m);
+    };
+    scale.tickFormat = function(m) {
+      return d3_scale_linearTickFormat(scale.domain(), m);
+    };
+    scale.nice = function() {
+      return scale.domain(d3_scale_nice(scale.domain(), d3_scale_linearNice));
+    };
+    scale.exponent = function(x) {
+      if (!arguments.length) return exponent;
+      var domain = scale.domain();
+      powp = d3_scale_powPow(exponent = x);
+      powb = d3_scale_powPow(1 / exponent);
+      return scale.domain(domain);
+    };
+    scale.copy = function() {
+      return d3_scale_pow(linear.copy(), exponent);
+    };
+    return d3_scale_linearRebind(scale, linear);
+  }
+  function d3_scale_powPow(e) {
+    return function(x) {
+      return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e);
+    };
+  }
+  d3.scale.sqrt = function() {
+    return d3.scale.pow().exponent(.5);
+  };
+  d3.scale.ordinal = function() {
+    return d3_scale_ordinal([], {
+      t: "range",
+      a: [ [] ]
+    });
+  };
+  function d3_scale_ordinal(domain, ranger) {
+    var index, range, rangeBand;
+    function scale(x) {
+      return range[((index.get(x) || index.set(x, domain.push(x))) - 1) % range.length];
+    }
+    function steps(start, step) {
+      return d3.range(domain.length).map(function(i) {
+        return start + step * i;
+      });
+    }
+    scale.domain = function(x) {
+      if (!arguments.length) return domain;
+      domain = [];
+      index = new d3_Map();
+      var i = -1, n = x.length, xi;
+      while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi));
+      return scale[ranger.t].apply(scale, ranger.a);
+    };
+    scale.range = function(x) {
+      if (!arguments.length) return range;
+      range = x;
+      rangeBand = 0;
+      ranger = {
+        t: "range",
+        a: arguments
+      };
+      return scale;
+    };
+    scale.rangePoints = function(x, padding) {
+      if (arguments.length < 2) padding = 0;
+      var start = x[0], stop = x[1], step = (stop - start) / (Math.max(1, domain.length - 1) + padding);
+      range = steps(domain.length < 2 ? (start + stop) / 2 : start + step * padding / 2, step);
+      rangeBand = 0;
+      ranger = {
+        t: "rangePoints",
+        a: arguments
+      };
+      return scale;
+    };
+    scale.rangeBands = function(x, padding, outerPadding) {
+      if (arguments.length < 2) padding = 0;
+      if (arguments.length < 3) outerPadding = padding;
+      var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding);
+      range = steps(start + step * outerPadding, step);
+      if (reverse) range.reverse();
+      rangeBand = step * (1 - padding);
+      ranger = {
+        t: "rangeBands",
+        a: arguments
+      };
+      return scale;
+    };
+    scale.rangeRoundBands = function(x, padding, outerPadding) {
+      if (arguments.length < 2) padding = 0;
+      if (arguments.length < 3) outerPadding = padding;
+      var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding)), error = stop - start - (domain.length - padding) * step;
+      range = steps(start + Math.round(error / 2), step);
+      if (reverse) range.reverse();
+      rangeBand = Math.round(step * (1 - padding));
+      ranger = {
+        t: "rangeRoundBands",
+        a: arguments
+      };
+      return scale;
+    };
+    scale.rangeBand = function() {
+      return rangeBand;
+    };
+    scale.rangeExtent = function() {
+      return d3_scaleExtent(ranger.a[0]);
+    };
+    scale.copy = function() {
+      return d3_scale_ordinal(domain, ranger);
+    };
+    return scale.domain(domain);
+  }
+  d3.scale.category10 = function() {
+    return d3.scale.ordinal().range(d3_category10);
+  };
+  d3.scale.category20 = function() {
+    return d3.scale.ordinal().range(d3_category20);
+  };
+  d3.scale.category20b = function() {
+    return d3.scale.ordinal().range(d3_category20b);
+  };
+  d3.scale.category20c = function() {
+    return d3.scale.ordinal().range(d3_category20c);
+  };
+  var d3_category10 = [ "#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf" ];
+  var d3_category20 = [ "#1f77b4", "#aec7e8", "#ff7f0e", "#ffbb78", "#2ca02c", "#98df8a", "#d62728", "#ff9896", "#9467bd", "#c5b0d5", "#8c564b", "#c49c94", "#e377c2", "#f7b6d2", "#7f7f7f", "#c7c7c7", "#bcbd22", "#dbdb8d", "#17becf", "#9edae5" ];
+  var d3_category20b = [ "#393b79", "#5254a3", "#6b6ecf", "#9c9ede", "#637939", "#8ca252", "#b5cf6b", "#cedb9c", "#8c6d31", "#bd9e39", "#e7ba52", "#e7cb94", "#843c39", "#ad494a", "#d6616b", "#e7969c", "#7b4173", "#a55194", "#ce6dbd", "#de9ed6" ];
+  var d3_category20c = [ "#3182bd", "#6baed6", "#9ecae1", "#c6dbef", "#e6550d", "#fd8d3c", "#fdae6b", "#fdd0a2", "#31a354", "#74c476", "#a1d99b", "#c7e9c0", "#756bb1", "#9e9ac8", "#bcbddc", "#dadaeb", "#636363", "#969696", "#bdbdbd", "#d9d9d9" ];
+  d3.scale.quantile = function() {
+    return d3_scale_quantile([], []);
+  };
+  function d3_scale_quantile(domain, range) {
+    var thresholds;
+    function rescale() {
+      var k = 0, q = range.length;
+      thresholds = [];
+      while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q);
+      return scale;
+    }
+    function scale(x) {
+      if (isNaN(x = +x)) return NaN;
+      return range[d3.bisect(thresholds, x)];
+    }
+    scale.domain = function(x) {
+      if (!arguments.length) return domain;
+      domain = x.filter(function(d) {
+        return !isNaN(d);
+      }).sort(d3.ascending);
+      return rescale();
+    };
+    scale.range = function(x) {
+      if (!arguments.length) return range;
+      range = x;
+      return rescale();
+    };
+    scale.quantiles = function() {
+      return thresholds;
+    };
+    scale.copy = function() {
+      return d3_scale_quantile(domain, range);
+    };
+    return rescale();
+  }
+  d3.scale.quantize = function() {
+    return d3_scale_quantize(0, 1, [ 0, 1 ]);
+  };
+  function d3_scale_quantize(x0, x1, range) {
+    var kx, i;
+    function scale(x) {
+      return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];
+    }
+    function rescale() {
+      kx = range.length / (x1 - x0);
+      i = range.length - 1;
+      return scale;
+    }
+    scale.domain = function(x) {
+      if (!arguments.length) return [ x0, x1 ];
+      x0 = +x[0];
+      x1 = +x[x.length - 1];
+      return rescale();
+    };
+    scale.range = function(x) {
+      if (!arguments.length) return range;
+      range = x;
+      return rescale();
+    };
+    scale.copy = function() {
+      return d3_scale_quantize(x0, x1, range);
+    };
+    return rescale();
+  }
+  d3.scale.threshold = function() {
+    return d3_scale_threshold([ .5 ], [ 0, 1 ]);
+  };
+  function d3_scale_threshold(domain, range) {
+    function scale(x) {
+      return range[d3.bisect(domain, x)];
+    }
+    scale.domain = function(_) {
+      if (!arguments.length) return domain;
+      domain = _;
+      return scale;
+    };
+    scale.range = function(_) {
+      if (!arguments.length) return range;
+      range = _;
+      return scale;
+    };
+    scale.copy = function() {
+      return d3_scale_threshold(domain, range);
+    };
+    return scale;
+  }
+  d3.scale.identity = function() {
+    return d3_scale_identity([ 0, 1 ]);
+  };
+  function d3_scale_identity(domain) {
+    function identity(x) {
+      return +x;
+    }
+    identity.invert = identity;
+    identity.domain = identity.range = function(x) {
+      if (!arguments.length) return domain;
+      domain = x.map(identity);
+      return identity;
+    };
+    identity.ticks = function(m) {
+      return d3_scale_linearTicks(domain, m);
+    };
+    identity.tickFormat = function(m) {
+      return d3_scale_linearTickFormat(domain, m);
+    };
+    identity.copy = function() {
+      return d3_scale_identity(domain);
+    };
+    return identity;
+  }
+  d3.svg = {};
+  d3.svg.arc = function() {
+    var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;
+    function arc() {
+      var r0 = innerRadius.apply(this, arguments), r1 = outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) + d3_svg_arcOffset, a1 = endAngle.apply(this, arguments) + d3_svg_arcOffset, da = (a1 < a0 && (da = a0,
+      a0 = a1, a1 = da), a1 - a0), df = da < π ? "0" : "1", c0 = Math.cos(a0), s0 = Math.sin(a0), c1 = Math.cos(a1), s1 = Math.sin(a1);
+      return da >= d3_svg_arcMax ? r0 ? "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "M0," + r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + -r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + r0 + "Z" : "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "Z" : r0 ? "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L" + r0 * c1 + "," + r0 * s1 + "A" + r0 + "," + r0 + " 0 " + df + ",0 " + r0 * c0 + "," + r0 * s0 + "Z" : "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L0,0" + "Z";
+    }
+    arc.innerRadius = function(v) {
+      if (!arguments.length) return innerRadius;
+      innerRadius = d3_functor(v);
+      return arc;
+    };
+    arc.outerRadius = function(v) {
+      if (!arguments.length) return outerRadius;
+      outerRadius = d3_functor(v);
+      return arc;
+    };
+    arc.startAngle = function(v) {
+      if (!arguments.length) return startAngle;
+      startAngle = d3_functor(v);
+      return arc;
+    };
+    arc.endAngle = function(v) {
+      if (!arguments.length) return endAngle;
+      endAngle = d3_functor(v);
+      return arc;
+    };
+    arc.centroid = function() {
+      var r = (innerRadius.apply(this, arguments) + outerRadius.apply(this, arguments)) / 2, a = (startAngle.apply(this, arguments) + endAngle.apply(this, arguments)) / 2 + d3_svg_arcOffset;
+      return [ Math.cos(a) * r, Math.sin(a) * r ];
+    };
+    return arc;
+  };
+  var d3_svg_arcOffset = -π / 2, d3_svg_arcMax = 2 * π - 1e-6;
+  function d3_svg_arcInnerRadius(d) {
+    return d.innerRadius;
+  }
+  function d3_svg_arcOuterRadius(d) {
+    return d.outerRadius;
+  }
+  function d3_svg_arcStartAngle(d) {
+    return d.startAngle;
+  }
+  function d3_svg_arcEndAngle(d) {
+    return d.endAngle;
+  }
+  function d3_svg_line(projection) {
+    var x = d3_svg_lineX, y = d3_svg_lineY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7;
+    function line(data) {
+      var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y);
+      function segment() {
+        segments.push("M", interpolate(projection(points), tension));
+      }
+      while (++i < n) {
+        if (defined.call(this, d = data[i], i)) {
+          points.push([ +fx.call(this, d, i), +fy.call(this, d, i) ]);
+        } else if (points.length) {
+          segment();
+          points = [];
+        }
+      }
+      if (points.length) segment();
+      return segments.length ? segments.join("") : null;
+    }
+    line.x = function(_) {
+      if (!arguments.length) return x;
+      x = _;
+      return line;
+    };
+    line.y = function(_) {
+      if (!arguments.length) return y;
+      y = _;
+      return line;
+    };
+    line.defined = function(_) {
+      if (!arguments.length) return defined;
+      defined = _;
+      return line;
+    };
+    line.interpolate = function(_) {
+      if (!arguments.length) return interpolateKey;
+      if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;
+      return line;
+    };
+    line.tension = function(_) {
+      if (!arguments.length) return tension;
+      tension = _;
+      return line;
+    };
+    return line;
+  }
+  d3.svg.line = function() {
+    return d3_svg_line(d3_identity);
+  };
+  function d3_svg_lineX(d) {
+    return d[0];
+  }
+  function d3_svg_lineY(d) {
+    return d[1];
+  }
+  var d3_svg_lineInterpolators = d3.map({
+    linear: d3_svg_lineLinear,
+    "linear-closed": d3_svg_lineLinearClosed,
+    "step-before": d3_svg_lineStepBefore,
+    "step-after": d3_svg_lineStepAfter,
+    basis: d3_svg_lineBasis,
+    "basis-open": d3_svg_lineBasisOpen,
+    "basis-closed": d3_svg_lineBasisClosed,
+    bundle: d3_svg_lineBundle,
+    cardinal: d3_svg_lineCardinal,
+    "cardinal-open": d3_svg_lineCardinalOpen,
+    "cardinal-closed": d3_svg_lineCardinalClosed,
+    monotone: d3_svg_lineMonotone
+  });
+  d3_svg_lineInterpolators.forEach(function(key, value) {
+    value.key = key;
+    value.closed = /-closed$/.test(key);
+  });
+  function d3_svg_lineLinear(points) {
+    return points.join("L");
+  }
+  function d3_svg_lineLinearClosed(points) {
+    return d3_svg_lineLinear(points) + "Z";
+  }
+  function d3_svg_lineStepBefore(points) {
+    var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
+    while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]);
+    return path.join("");
+  }
+  function d3_svg_lineStepAfter(points) {
+    var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
+    while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]);
+    return path.join("");
+  }
+  function d3_svg_lineCardinalOpen(points, tension) {
+    return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, points.length - 1), d3_svg_lineCardinalTangents(points, tension));
+  }
+  function d3_svg_lineCardinalClosed(points, tension) {
+    return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite((points.push(points[0]),
+    points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension));
+  }
+  function d3_svg_lineCardinal(points, tension) {
+    return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension));
+  }
+  function d3_svg_lineHermite(points, tangents) {
+    if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) {
+      return d3_svg_lineLinear(points);
+    }
+    var quad = points.length != tangents.length, path = "", p0 = points[0], p = points[1], t0 = tangents[0], t = t0, pi = 1;
+    if (quad) {
+      path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3) + "," + p[0] + "," + p[1];
+      p0 = points[1];
+      pi = 2;
+    }
+    if (tangents.length > 1) {
+      t = tangents[1];
+      p = points[pi];
+      pi++;
+      path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1]) + "," + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1];
+      for (var i = 2; i < tangents.length; i++, pi++) {
+        p = points[pi];
+        t = tangents[i];
+        path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1];
+      }
+    }
+    if (quad) {
+      var lp = points[pi];
+      path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3) + "," + lp[0] + "," + lp[1];
+    }
+    return path;
+  }
+  function d3_svg_lineCardinalTangents(points, tension) {
+    var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length;
+    while (++i < n) {
+      p0 = p1;
+      p1 = p2;
+      p2 = points[i];
+      tangents.push([ a * (p2[0] - p0[0]), a * (p2[1] - p0[1]) ]);
+    }
+    return tangents;
+  }
+  function d3_svg_lineBasis(points) {
+    if (points.length < 3) return d3_svg_lineLinear(points);
+    var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [ x0, x0, x0, (pi = points[1])[0] ], py = [ y0, y0, y0, pi[1] ], path = [ x0, ",", y0 ];
+    d3_svg_lineBasisBezier(path, px, py);
+    while (++i < n) {
+      pi = points[i];
+      px.shift();
+      px.push(pi[0]);
+      py.shift();
+      py.push(pi[1]);
+      d3_svg_lineBasisBezier(path, px, py);
+    }
+    i = -1;
+    while (++i < 2) {
+      px.shift();
+      px.push(pi[0]);
+      py.shift();
+      py.push(pi[1]);
+      d3_svg_lineBasisBezier(path, px, py);
+    }
+    return path.join("");
+  }
+  function d3_svg_lineBasisOpen(points) {
+    if (points.length < 4) return d3_svg_lineLinear(points);
+    var path = [], i = -1, n = points.length, pi, px = [ 0 ], py = [ 0 ];
+    while (++i < 3) {
+      pi = points[i];
+      px.push(pi[0]);
+      py.push(pi[1]);
+    }
+    path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py));
+    --i;
+    while (++i < n) {
+      pi = points[i];
+      px.shift();
+      px.push(pi[0]);
+      py.shift();
+      py.push(pi[1]);
+      d3_svg_lineBasisBezier(path, px, py);
+    }
+    return path.join("");
+  }
+  function d3_svg_lineBasisClosed(points) {
+    var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = [];
+    while (++i < 4) {
+      pi = points[i % n];
+      px.push(pi[0]);
+      py.push(pi[1]);
+    }
+    path = [ d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];
+    --i;
+    while (++i < m) {
+      pi = points[i % n];
+      px.shift();
+      px.push(pi[0]);
+      py.shift();
+      py.push(pi[1]);
+      d3_svg_lineBasisBezier(path, px, py);
+    }
+    return path.join("");
+  }
+  function d3_svg_lineBundle(points, tension) {
+    var n = points.length - 1;
+    if (n) {
+      var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t;
+      while (++i <= n) {
+        p = points[i];
+        t = i / n;
+        p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx);
+        p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy);
+      }
+    }
+    return d3_svg_lineBasis(points);
+  }
+  function d3_svg_lineDot4(a, b) {
+    return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
+  }
+  var d3_svg_lineBasisBezier1 = [ 0, 2 / 3, 1 / 3, 0 ], d3_svg_lineBasisBezier2 = [ 0, 1 / 3, 2 / 3, 0 ], d3_svg_lineBasisBezier3 = [ 0, 1 / 6, 2 / 3, 1 / 6 ];
+  function d3_svg_lineBasisBezier(path, x, y) {
+    path.push("C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y));
+  }
+  function d3_svg_lineSlope(p0, p1) {
+    return (p1[1] - p0[1]) / (p1[0] - p0[0]);
+  }
+  function d3_svg_lineFiniteDifferences(points) {
+    var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1);
+    while (++i < j) {
+      m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2;
+    }
+    m[i] = d;
+    return m;
+  }
+  function d3_svg_lineMonotoneTangents(points) {
+    var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1;
+    while (++i < j) {
+      d = d3_svg_lineSlope(points[i], points[i + 1]);
+      if (Math.abs(d) < 1e-6) {
+        m[i] = m[i + 1] = 0;
+      } else {
+        a = m[i] / d;
+        b = m[i + 1] / d;
+        s = a * a + b * b;
+        if (s > 9) {
+          s = d * 3 / Math.sqrt(s);
+          m[i] = s * a;
+          m[i + 1] = s * b;
+        }
+      }
+    }
+    i = -1;
+    while (++i <= j) {
+      s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i]));
+      tangents.push([ s || 0, m[i] * s || 0 ]);
+    }
+    return tangents;
+  }
+  function d3_svg_lineMonotone(points) {
+    return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points));
+  }
+  d3.svg.line.radial = function() {
+    var line = d3_svg_line(d3_svg_lineRadial);
+    line.radius = line.x, delete line.x;
+    line.angle = line.y, delete line.y;
+    return line;
+  };
+  function d3_svg_lineRadial(points) {
+    var point, i = -1, n = points.length, r, a;
+    while (++i < n) {
+      point = points[i];
+      r = point[0];
+      a = point[1] + d3_svg_arcOffset;
+      point[0] = r * Math.cos(a);
+      point[1] = r * Math.sin(a);
+    }
+    return points;
+  }
+  function d3_svg_area(projection) {
+    var x0 = d3_svg_lineX, x1 = d3_svg_lineX, y0 = 0, y1 = d3_svg_lineY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = "L", tension = .7;
+    function area(data) {
+      var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() {
+        return x;
+      } : d3_functor(x1), fy1 = y0 === y1 ? function() {
+        return y;
+      } : d3_functor(y1), x, y;
+      function segment() {
+        segments.push("M", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), "Z");
+      }
+      while (++i < n) {
+        if (defined.call(this, d = data[i], i)) {
+          points0.push([ x = +fx0.call(this, d, i), y = +fy0.call(this, d, i) ]);
+          points1.push([ +fx1.call(this, d, i), +fy1.call(this, d, i) ]);
+        } else if (points0.length) {
+          segment();
+          points0 = [];
+          points1 = [];
+        }
+      }
+      if (points0.length) segment();
+      return segments.length ? segments.join("") : null;
+    }
+    area.x = function(_) {
+      if (!arguments.length) return x1;
+      x0 = x1 = _;
+      return area;
+    };
+    area.x0 = function(_) {
+      if (!arguments.length) return x0;
+      x0 = _;
+      return area;
+    };
+    area.x1 = function(_) {
+      if (!arguments.length) return x1;
+      x1 = _;
+      return area;
+    };
+    area.y = function(_) {
+      if (!arguments.length) return y1;
+      y0 = y1 = _;
+      return area;
+    };
+    area.y0 = function(_) {
+      if (!arguments.length) return y0;
+      y0 = _;
+      return area;
+    };
+    area.y1 = function(_) {
+      if (!arguments.length) return y1;
+      y1 = _;
+      return area;
+    };
+    area.defined = function(_) {
+      if (!arguments.length) return defined;
+      defined = _;
+      return area;
+    };
+    area.interpolate = function(_) {
+      if (!arguments.length) return interpolateKey;
+      if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;
+      interpolateReverse = interpolate.reverse || interpolate;
+      L = interpolate.closed ? "M" : "L";
+      return area;
+    };
+    area.tension = function(_) {
+      if (!arguments.length) return tension;
+      tension = _;
+      return area;
+    };
+    return area;
+  }
+  d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter;
+  d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore;
+  d3.svg.area = function() {
+    return d3_svg_area(d3_identity);
+  };
+  d3.svg.area.radial = function() {
+    var area = d3_svg_area(d3_svg_lineRadial);
+    area.radius = area.x, delete area.x;
+    area.innerRadius = area.x0, delete area.x0;
+    area.outerRadius = area.x1, delete area.x1;
+    area.angle = area.y, delete area.y;
+    area.startAngle = area.y0, delete area.y0;
+    area.endAngle = area.y1, delete area.y1;
+    return area;
+  };
+  d3.svg.chord = function() {
+    var source = d3_source, target = d3_target, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;
+    function chord(d, i) {
+      var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i);
+      return "M" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + "Z";
+    }
+    function subgroup(self, f, d, i) {
+      var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) + d3_svg_arcOffset, a1 = endAngle.call(self, subgroup, i) + d3_svg_arcOffset;
+      return {
+        r: r,
+        a0: a0,
+        a1: a1,
+        p0: [ r * Math.cos(a0), r * Math.sin(a0) ],
+        p1: [ r * Math.cos(a1), r * Math.sin(a1) ]
+      };
+    }
+    function equals(a, b) {
+      return a.a0 == b.a0 && a.a1 == b.a1;
+    }
+    function arc(r, p, a) {
+      return "A" + r + "," + r + " 0 " + +(a > π) + ",1 " + p;
+    }
+    function curve(r0, p0, r1, p1) {
+      return "Q 0,0 " + p1;
+    }
+    chord.radius = function(v) {
+      if (!arguments.length) return radius;
+      radius = d3_functor(v);
+      return chord;
+    };
+    chord.source = function(v) {
+      if (!arguments.length) return source;
+      source = d3_functor(v);
+      return chord;
+    };
+    chord.target = function(v) {
+      if (!arguments.length) return target;
+      target = d3_functor(v);
+      return chord;
+    };
+    chord.startAngle = function(v) {
+      if (!arguments.length) return startAngle;
+      startAngle = d3_functor(v);
+      return chord;
+    };
+    chord.endAngle = function(v) {
+      if (!arguments.length) return endAngle;
+      endAngle = d3_functor(v);
+      return chord;
+    };
+    return chord;
+  };
+  function d3_svg_chordRadius(d) {
+    return d.radius;
+  }
+  d3.svg.diagonal = function() {
+    var source = d3_source, target = d3_target, projection = d3_svg_diagonalProjection;
+    function diagonal(d, i) {
+      var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [ p0, {
+        x: p0.x,
+        y: m
+      }, {
+        x: p3.x,
+        y: m
+      }, p3 ];
+      p = p.map(projection);
+      return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3];
+    }
+    diagonal.source = function(x) {
+      if (!arguments.length) return source;
+      source = d3_functor(x);
+      return diagonal;
+    };
+    diagonal.target = function(x) {
+      if (!arguments.length) return target;
+      target = d3_functor(x);
+      return diagonal;
+    };
+    diagonal.projection = function(x) {
+      if (!arguments.length) return projection;
+      projection = x;
+      return diagonal;
+    };
+    return diagonal;
+  };
+  function d3_svg_diagonalProjection(d) {
+    return [ d.x, d.y ];
+  }
+  d3.svg.diagonal.radial = function() {
+    var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection;
+    diagonal.projection = function(x) {
+      return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection;
+    };
+    return diagonal;
+  };
+  function d3_svg_diagonalRadialProjection(projection) {
+    return function() {
+      var d = projection.apply(this, arguments), r = d[0], a = d[1] + d3_svg_arcOffset;
+      return [ r * Math.cos(a), r * Math.sin(a) ];
+    };
+  }
+  d3.svg.symbol = function() {
+    var type = d3_svg_symbolType, size = d3_svg_symbolSize;
+    function symbol(d, i) {
+      return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i));
+    }
+    symbol.type = function(x) {
+      if (!arguments.length) return type;
+      type = d3_functor(x);
+      return symbol;
+    };
+    symbol.size = function(x) {
+      if (!arguments.length) return size;
+      size = d3_functor(x);
+      return symbol;
+    };
+    return symbol;
+  };
+  function d3_svg_symbolSize() {
+    return 64;
+  }
+  function d3_svg_symbolType() {
+    return "circle";
+  }
+  function d3_svg_symbolCircle(size) {
+    var r = Math.sqrt(size / π);
+    return "M0," + r + "A" + r + "," + r + " 0 1,1 0," + -r + "A" + r + "," + r + " 0 1,1 0," + r + "Z";
+  }
+  var d3_svg_symbols = d3.map({
+    circle: d3_svg_symbolCircle,
+    cross: function(size) {
+      var r = Math.sqrt(size / 5) / 2;
+      return "M" + -3 * r + "," + -r + "H" + -r + "V" + -3 * r + "H" + r + "V" + -r + "H" + 3 * r + "V" + r + "H" + r + "V" + 3 * r + "H" + -r + "V" + r + "H" + -3 * r + "Z";
+    },
+    diamond: function(size) {
+      var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30;
+      return "M0," + -ry + "L" + rx + ",0" + " 0," + ry + " " + -rx + ",0" + "Z";
+    },
+    square: function(size) {
+      var r = Math.sqrt(size) / 2;
+      return "M" + -r + "," + -r + "L" + r + "," + -r + " " + r + "," + r + " " + -r + "," + r + "Z";
+    },
+    "triangle-down": function(size) {
+      var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;
+      return "M0," + ry + "L" + rx + "," + -ry + " " + -rx + "," + -ry + "Z";
+    },
+    "triangle-up": function(size) {
+      var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;
+      return "M0," + -ry + "L" + rx + "," + ry + " " + -rx + "," + ry + "Z";
+    }
+  });
+  d3.svg.symbolTypes = d3_svg_symbols.keys();
+  var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians);
+  d3.svg.axis = function() {
+    var scale = d3.scale.linear(), orient = d3_svg_axisDefaultOrient, tickMajorSize = 6, tickMinorSize = 6, tickEndSize = 6, tickPadding = 3, tickArguments_ = [ 10 ], tickValues = null, tickFormat_, tickSubdivide = 0;
+    function axis(g) {
+      g.each(function() {
+        var g = d3.select(this);
+        var ticks = tickValues == null ? scale.ticks ? scale.ticks.apply(scale, tickArguments_) : scale.domain() : tickValues, tickFormat = tickFormat_ == null ? scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments_) : String : tickFormat_;
+        var subticks = d3_svg_axisSubdivide(scale, ticks, tickSubdivide), subtick = g.selectAll(".tick.minor").data(subticks, String), subtickEnter = subtick.enter().insert("line", ".tick").attr("class", "tick minor").style("opacity", 1e-6), subtickExit = d3.transition(subtick.exit()).style("opacity", 1e-6).remove(), subtickUpdate = d3.transition(subtick).style("opacity", 1);
+        var tick = g.selectAll(".tick.major").data(ticks, String), tickEnter = tick.enter().insert("g", "path").attr("class", "tick major").style("opacity", 1e-6), tickExit = d3.transition(tick.exit()).style("opacity", 1e-6).remove(), tickUpdate = d3.transition(tick).style("opacity", 1), tickTransform;
+        var range = d3_scaleRange(scale), path = g.selectAll(".domain").data([ 0 ]), pathUpdate = (path.enter().append("path").attr("class", "domain"),
+        d3.transition(path));
+        var scale1 = scale.copy(), scale0 = this.__chart__ || scale1;
+        this.__chart__ = scale1;
+        tickEnter.append("line");
+        tickEnter.append("text");
+        var lineEnter = tickEnter.select("line"), lineUpdate = tickUpdate.select("line"), text = tick.select("text").text(tickFormat), textEnter = tickEnter.select("text"), textUpdate = tickUpdate.select("text");
+        switch (orient) {
+         case "bottom":
+          {
+            tickTransform = d3_svg_axisX;
+            subtickEnter.attr("y2", tickMinorSize);
+            subtickUpdate.attr("x2", 0).attr("y2", tickMinorSize);
+            lineEnter.attr("y2", tickMajorSize);
+            textEnter.attr("y", Math.max(tickMajorSize, 0) + tickPadding);
+            lineUpdate.attr("x2", 0).attr("y2", tickMajorSize);
+            textUpdate.attr("x", 0).attr("y", Math.max(tickMajorSize, 0) + tickPadding);
+            text.attr("dy", ".71em").style("text-anchor", "middle");
+            pathUpdate.attr("d", "M" + range[0] + "," + tickEndSize + "V0H" + range[1] + "V" + tickEndSize);
+            break;
+          }
+
+         case "top":
+          {
+            tickTransform = d3_svg_axisX;
+            subtickEnter.attr("y2", -tickMinorSize);
+            subtickUpdate.attr("x2", 0).attr("y2", -tickMinorSize);
+            lineEnter.attr("y2", -tickMajorSize);
+            textEnter.attr("y", -(Math.max(tickMajorSize, 0) + tickPadding));
+            lineUpdate.attr("x2", 0).attr("y2", -tickMajorSize);
+            textUpdate.attr("x", 0).attr("y", -(Math.max(tickMajorSize, 0) + tickPadding));
+            text.attr("dy", "0em").style("text-anchor", "middle");
+            pathUpdate.attr("d", "M" + range[0] + "," + -tickEndSize + "V0H" + range[1] + "V" + -tickEndSize);
+            break;
+          }
+
+         case "left":
+          {
+            tickTransform = d3_svg_axisY;
+            subtickEnter.attr("x2", -tickMinorSize);
+            subtickUpdate.attr("x2", -tickMinorSize).attr("y2", 0);
+            lineEnter.attr("x2", -tickMajorSize);
+            textEnter.attr("x", -(Math.max(tickMajorSize, 0) + tickPadding));
+            lineUpdate.attr("x2", -tickMajorSize).attr("y2", 0);
+            textUpdate.attr("x", -(Math.max(tickMajorSize, 0) + tickPadding)).attr("y", 0);
+            text.attr("dy", ".32em").style("text-anchor", "end");
+            pathUpdate.attr("d", "M" + -tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + -tickEndSize);
+            break;
+          }
+
+         case "right":
+          {
+            tickTransform = d3_svg_axisY;
+            subtickEnter.attr("x2", tickMinorSize);
+            subtickUpdate.attr("x2", tickMinorSize).attr("y2", 0);
+            lineEnter.attr("x2", tickMajorSize);
+            textEnter.attr("x", Math.max(tickMajorSize, 0) + tickPadding);
+            lineUpdate.attr("x2", tickMajorSize).attr("y2", 0);
+            textUpdate.attr("x", Math.max(tickMajorSize, 0) + tickPadding).attr("y", 0);
+            text.attr("dy", ".32em").style("text-anchor", "start");
+            pathUpdate.attr("d", "M" + tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + tickEndSize);
+            break;
+          }
+        }
+        if (scale.ticks) {
+          tickEnter.call(tickTransform, scale0);
+          tickUpdate.call(tickTransform, scale1);
+          tickExit.call(tickTransform, scale1);
+          subtickEnter.call(tickTransform, scale0);
+          subtickUpdate.call(tickTransform, scale1);
+          subtickExit.call(tickTransform, scale1);
+        } else {
+          var dx = scale1.rangeBand() / 2, x = function(d) {
+            return scale1(d) + dx;
+          };
+          tickEnter.call(tickTransform, x);
+          tickUpdate.call(tickTransform, x);
+        }
+      });
+    }
+    axis.scale = function(x) {
+      if (!arguments.length) return scale;
+      scale = x;
+      return axis;
+    };
+    axis.orient = function(x) {
+      if (!arguments.length) return orient;
+      orient = x in d3_svg_axisOrients ? x + "" : d3_svg_axisDefaultOrient;
+      return axis;
+    };
+    axis.ticks = function() {
+      if (!arguments.length) return tickArguments_;
+      tickArguments_ = arguments;
+      return axis;
+    };
+    axis.tickValues = function(x) {
+      if (!arguments.length) return tickValues;
+      tickValues = x;
+      return axis;
+    };
+    axis.tickFormat = function(x) {
+      if (!arguments.length) return tickFormat_;
+      tickFormat_ = x;
+      return axis;
+    };
+    axis.tickSize = function(x, y) {
+      if (!arguments.length) return tickMajorSize;
+      var n = arguments.length - 1;
+      tickMajorSize = +x;
+      tickMinorSize = n > 1 ? +y : tickMajorSize;
+      tickEndSize = n > 0 ? +arguments[n] : tickMajorSize;
+      return axis;
+    };
+    axis.tickPadding = function(x) {
+      if (!arguments.length) return tickPadding;
+      tickPadding = +x;
+      return axis;
+    };
+    axis.tickSubdivide = function(x) {
+      if (!arguments.length) return tickSubdivide;
+      tickSubdivide = +x;
+      return axis;
+    };
+    return axis;
+  };
+  var d3_svg_axisDefaultOrient = "bottom", d3_svg_axisOrients = {
+    top: 1,
+    right: 1,
+    bottom: 1,
+    left: 1
+  };
+  function d3_svg_axisX(selection, x) {
+    selection.attr("transform", function(d) {
+      return "translate(" + x(d) + ",0)";
+    });
+  }
+  function d3_svg_axisY(selection, y) {
+    selection.attr("transform", function(d) {
+      return "translate(0," + y(d) + ")";
+    });
+  }
+  function d3_svg_axisSubdivide(scale, ticks, m) {
+    subticks = [];
+    if (m && ticks.length > 1) {
+      var extent = d3_scaleExtent(scale.domain()), subticks, i = -1, n = ticks.length, d = (ticks[1] - ticks[0]) / ++m, j, v;
+      while (++i < n) {
+        for (j = m; --j > 0; ) {
+          if ((v = +ticks[i] - j * d) >= extent[0]) {
+            subticks.push(v);
+          }
+        }
+      }
+      for (--i, j = 0; ++j < m && (v = +ticks[i] + j * d) < extent[1]; ) {
+        subticks.push(v);
+      }
+    }
+    return subticks;
+  }
+  d3.svg.brush = function() {
+    var event = d3_eventDispatch(brush, "brushstart", "brush", "brushend"), x = null, y = null, resizes = d3_svg_brushResizes[0], extent = [ [ 0, 0 ], [ 0, 0 ] ], extentDomain;
+    function brush(g) {
+      g.each(function() {
+        var g = d3.select(this), bg = g.selectAll(".background").data([ 0 ]), fg = g.selectAll(".extent").data([ 0 ]), tz = g.selectAll(".resize").data(resizes, String), e;
+        g.style("pointer-events", "all").on("mousedown.brush", brushstart).on("touchstart.brush", brushstart);
+        bg.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair");
+        fg.enter().append("rect").attr("class", "extent").style("cursor", "move");
+        tz.enter().append("g").attr("class", function(d) {
+          return "resize " + d;
+        }).style("cursor", function(d) {
+          return d3_svg_brushCursor[d];
+        }).append("rect").attr("x", function(d) {
+          return /[ew]$/.test(d) ? -3 : null;
+        }).attr("y", function(d) {
+          return /^[ns]/.test(d) ? -3 : null;
+        }).attr("width", 6).attr("height", 6).style("visibility", "hidden");
+        tz.style("display", brush.empty() ? "none" : null);
+        tz.exit().remove();
+        if (x) {
+          e = d3_scaleRange(x);
+          bg.attr("x", e[0]).attr("width", e[1] - e[0]);
+          redrawX(g);
+        }
+        if (y) {
+          e = d3_scaleRange(y);
+          bg.attr("y", e[0]).attr("height", e[1] - e[0]);
+          redrawY(g);
+        }
+        redraw(g);
+      });
+    }
+    function redraw(g) {
+      g.selectAll(".resize").attr("transform", function(d) {
+        return "translate(" + extent[+/e$/.test(d)][0] + "," + extent[+/^s/.test(d)][1] + ")";
+      });
+    }
+    function redrawX(g) {
+      g.select(".extent").attr("x", extent[0][0]);
+      g.selectAll(".extent,.n>rect,.s>rect").attr("width", extent[1][0] - extent[0][0]);
+    }
+    function redrawY(g) {
+      g.select(".extent").attr("y", extent[0][1]);
+      g.selectAll(".extent,.e>rect,.w>rect").attr("height", extent[1][1] - extent[0][1]);
+    }
+    function brushstart() {
+      var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed("extent"), center, origin = mouse(), offset;
+      var w = d3.select(d3_window).on("mousemove.brush", brushmove).on("mouseup.brush", brushend).on("touchmove.brush", brushmove).on("touchend.brush", brushend).on("keydown.brush", keydown).on("keyup.brush", keyup);
+      if (dragging) {
+        origin[0] = extent[0][0] - origin[0];
+        origin[1] = extent[0][1] - origin[1];
+      } else if (resizing) {
+        var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing);
+        offset = [ extent[1 - ex][0] - origin[0], extent[1 - ey][1] - origin[1] ];
+        origin[0] = extent[ex][0];
+        origin[1] = extent[ey][1];
+      } else if (d3.event.altKey) center = origin.slice();
+      g.style("pointer-events", "none").selectAll(".resize").style("display", null);
+      d3.select("body").style("cursor", eventTarget.style("cursor"));
+      event_({
+        type: "brushstart"
+      });
+      brushmove();
+      d3_eventCancel();
+      function mouse() {
+        var touches = d3.event.changedTouches;
+        return touches ? d3.touches(target, touches)[0] : d3.mouse(target);
+      }
+      function keydown() {
+        if (d3.event.keyCode == 32) {
+          if (!dragging) {
+            center = null;
+            origin[0] -= extent[1][0];
+            origin[1] -= extent[1][1];
+            dragging = 2;
+          }
+          d3_eventCancel();
+        }
+      }
+      function keyup() {
+        if (d3.event.keyCode == 32 && dragging == 2) {
+          origin[0] += extent[1][0];
+          origin[1] += extent[1][1];
+          dragging = 0;
+          d3_eventCancel();
+        }
+      }
+      function brushmove() {
+        var point = mouse(), moved = false;
+        if (offset) {
+          point[0] += offset[0];
+          point[1] += offset[1];
+        }
+        if (!dragging) {
+          if (d3.event.altKey) {
+            if (!center) center = [ (extent[0][0] + extent[1][0]) / 2, (extent[0][1] + extent[1][1]) / 2 ];
+            origin[0] = extent[+(point[0] < center[0])][0];
+            origin[1] = extent[+(point[1] < center[1])][1];
+          } else center = null;
+        }
+        if (resizingX && move1(point, x, 0)) {
+          redrawX(g);
+          moved = true;
+        }
+        if (resizingY && move1(point, y, 1)) {
+          redrawY(g);
+          moved = true;
+        }
+        if (moved) {
+          redraw(g);
+          event_({
+            type: "brush",
+            mode: dragging ? "move" : "resize"
+          });
+        }
+      }
+      function move1(point, scale, i) {
+        var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], size = extent[1][i] - extent[0][i], min, max;
+        if (dragging) {
+          r0 -= position;
+          r1 -= size + position;
+        }
+        min = Math.max(r0, Math.min(r1, point[i]));
+        if (dragging) {
+          max = (min += position) + size;
+        } else {
+          if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min));
+          if (position < min) {
+            max = min;
+            min = position;
+          } else {
+            max = position;
+          }
+        }
+        if (extent[0][i] !== min || extent[1][i] !== max) {
+          extentDomain = null;
+          extent[0][i] = min;
+          extent[1][i] = max;
+          return true;
+        }
+      }
+      function brushend() {
+        brushmove();
+        g.style("pointer-events", "all").selectAll(".resize").style("display", brush.empty() ? "none" : null);
+        d3.select("body").style("cursor", null);
+        w.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null);
+        event_({
+          type: "brushend"
+        });
+        d3_eventCancel();
+      }
+    }
+    brush.x = function(z) {
+      if (!arguments.length) return x;
+      x = z;
+      resizes = d3_svg_brushResizes[!x << 1 | !y];
+      return brush;
+    };
+    brush.y = function(z) {
+      if (!arguments.length) return y;
+      y = z;
+      resizes = d3_svg_brushResizes[!x << 1 | !y];
+      return brush;
+    };
+    brush.extent = function(z) {
+      var x0, x1, y0, y1, t;
+      if (!arguments.length) {
+        z = extentDomain || extent;
+        if (x) {
+          x0 = z[0][0], x1 = z[1][0];
+          if (!extentDomain) {
+            x0 = extent[0][0], x1 = extent[1][0];
+            if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1);
+            if (x1 < x0) t = x0, x0 = x1, x1 = t;
+          }
+        }
+        if (y) {
+          y0 = z[0][1], y1 = z[1][1];
+          if (!extentDomain) {
+            y0 = extent[0][1], y1 = extent[1][1];
+            if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1);
+            if (y1 < y0) t = y0, y0 = y1, y1 = t;
+          }
+        }
+        return x && y ? [ [ x0, y0 ], [ x1, y1 ] ] : x ? [ x0, x1 ] : y && [ y0, y1 ];
+      }
+      extentDomain = [ [ 0, 0 ], [ 0, 0 ] ];
+      if (x) {
+        x0 = z[0], x1 = z[1];
+        if (y) x0 = x0[0], x1 = x1[0];
+        extentDomain[0][0] = x0, extentDomain[1][0] = x1;
+        if (x.invert) x0 = x(x0), x1 = x(x1);
+        if (x1 < x0) t = x0, x0 = x1, x1 = t;
+        extent[0][0] = x0 | 0, extent[1][0] = x1 | 0;
+      }
+      if (y) {
+        y0 = z[0], y1 = z[1];
+        if (x) y0 = y0[1], y1 = y1[1];
+        extentDomain[0][1] = y0, extentDomain[1][1] = y1;
+        if (y.invert) y0 = y(y0), y1 = y(y1);
+        if (y1 < y0) t = y0, y0 = y1, y1 = t;
+        extent[0][1] = y0 | 0, extent[1][1] = y1 | 0;
+      }
+      return brush;
+    };
+    brush.clear = function() {
+      extentDomain = null;
+      extent[0][0] = extent[0][1] = extent[1][0] = extent[1][1] = 0;
+      return brush;
+    };
+    brush.empty = function() {
+      return x && extent[0][0] === extent[1][0] || y && extent[0][1] === extent[1][1];
+    };
+    return d3.rebind(brush, event, "on");
+  };
+  var d3_svg_brushCursor = {
+    n: "ns-resize",
+    e: "ew-resize",
+    s: "ns-resize",
+    w: "ew-resize",
+    nw: "nwse-resize",
+    ne: "nesw-resize",
+    se: "nwse-resize",
+    sw: "nesw-resize"
+  };
+  var d3_svg_brushResizes = [ [ "n", "e", "s", "w", "nw", "ne", "se", "sw" ], [ "e", "w" ], [ "n", "s" ], [] ];
+  d3.behavior = {};
+  d3.behavior.drag = function() {
+    var event = d3_eventDispatch(drag, "drag", "dragstart", "dragend"), origin = null;
+    function drag() {
+      this.on("mousedown.drag", mousedown).on("touchstart.drag", mousedown);
+    }
+    function mousedown() {
+      var target = this, event_ = event.of(target, arguments), eventTarget = d3.event.target, touchId = d3.event.touches ? d3.event.changedTouches[0].identifier : null, offset, origin_ = point(), moved = 0;
+      var w = d3.select(d3_window).on(touchId != null ? "touchmove.drag-" + touchId : "mousemove.drag", dragmove).on(touchId != null ? "touchend.drag-" + touchId : "mouseup.drag", dragend, true);
+      if (origin) {
+        offset = origin.apply(target, arguments);
+        offset = [ offset.x - origin_[0], offset.y - origin_[1] ];
+      } else {
+        offset = [ 0, 0 ];
+      }
+      if (touchId == null) d3_eventCancel();
+      event_({
+        type: "dragstart"
+      });
+      function point() {
+        var p = target.parentNode;
+        return touchId != null ? d3.touches(p).filter(function(p) {
+          return p.identifier === touchId;
+        })[0] : d3.mouse(p);
+      }
+      function dragmove() {
+        if (!target.parentNode) return dragend();
+        var p = point(), dx = p[0] - origin_[0], dy = p[1] - origin_[1];
+        moved |= dx | dy;
+        origin_ = p;
+        d3_eventCancel();
+        event_({
+          type: "drag",
+          x: p[0] + offset[0],
+          y: p[1] + offset[1],
+          dx: dx,
+          dy: dy
+        });
+      }
+      function dragend() {
+        event_({
+          type: "dragend"
+        });
+        if (moved) {
+          d3_eventCancel();
+          if (d3.event.target === eventTarget) w.on("click.drag", click, true);
+        }
+        w.on(touchId != null ? "touchmove.drag-" + touchId : "mousemove.drag", null).on(touchId != null ? "touchend.drag-" + touchId : "mouseup.drag", null);
+      }
+      function click() {
+        d3_eventCancel();
+        w.on("click.drag", null);
+      }
+    }
+    drag.origin = function(x) {
+      if (!arguments.length) return origin;
+      origin = x;
+      return drag;
+    };
+    return d3.rebind(drag, event, "on");
+  };
+  d3.behavior.zoom = function() {
+    var translate = [ 0, 0 ], translate0, scale = 1, scale0, scaleExtent = d3_behavior_zoomInfinity, event = d3_eventDispatch(zoom, "zoom"), x0, x1, y0, y1, touchtime;
+    function zoom() {
+      this.on("mousedown.zoom", mousedown).on("mousemove.zoom", mousemove).on(d3_behavior_zoomWheel + ".zoom", mousewheel).on("dblclick.zoom", dblclick).on("touchstart.zoom", touchstart).on("touchmove.zoom", touchmove).on("touchend.zoom", touchstart);
+    }
+    zoom.translate = function(x) {
+      if (!arguments.length) return translate;
+      translate = x.map(Number);
+      rescale();
+      return zoom;
+    };
+    zoom.scale = function(x) {
+      if (!arguments.length) return scale;
+      scale = +x;
+      rescale();
+      return zoom;
+    };
+    zoom.scaleExtent = function(x) {
+      if (!arguments.length) return scaleExtent;
+      scaleExtent = x == null ? d3_behavior_zoomInfinity : x.map(Number);
+      return zoom;
+    };
+    zoom.x = function(z) {
+      if (!arguments.length) return x1;
+      x1 = z;
+      x0 = z.copy();
+      translate = [ 0, 0 ];
+      scale = 1;
+      return zoom;
+    };
+    zoom.y = function(z) {
+      if (!arguments.length) return y1;
+      y1 = z;
+      y0 = z.copy();
+      translate = [ 0, 0 ];
+      scale = 1;
+      return zoom;
+    };
+    function location(p) {
+      return [ (p[0] - translate[0]) / scale, (p[1] - translate[1]) / scale ];
+    }
+    function point(l) {
+      return [ l[0] * scale + translate[0], l[1] * scale + translate[1] ];
+    }
+    function scaleTo(s) {
+      scale = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s));
+    }
+    function translateTo(p, l) {
+      l = point(l);
+      translate[0] += p[0] - l[0];
+      translate[1] += p[1] - l[1];
+    }
+    function rescale() {
+      if (x1) x1.domain(x0.range().map(function(x) {
+        return (x - translate[0]) / scale;
+      }).map(x0.invert));
+      if (y1) y1.domain(y0.range().map(function(y) {
+        return (y - translate[1]) / scale;
+      }).map(y0.invert));
+    }
+    function dispatch(event) {
+      rescale();
+      d3.event.preventDefault();
+      event({
+        type: "zoom",
+        scale: scale,
+        translate: translate
+      });
+    }
+    function mousedown() {
+      var target = this, event_ = event.of(target, arguments), eventTarget = d3.event.target, moved = 0, w = d3.select(d3_window).on("mousemove.zoom", mousemove).on("mouseup.zoom", mouseup), l = location(d3.mouse(target));
+      d3_window.focus();
+      d3_eventCancel();
+      function mousemove() {
+        moved = 1;
+        translateTo(d3.mouse(target), l);
+        dispatch(event_);
+      }
+      function mouseup() {
+        if (moved) d3_eventCancel();
+        w.on("mousemove.zoom", null).on("mouseup.zoom", null);
+        if (moved && d3.event.target === eventTarget) w.on("click.zoom", click, true);
+      }
+      function click() {
+        d3_eventCancel();
+        w.on("click.zoom", null);
+      }
+    }
+    function mousewheel() {
+      if (!translate0) translate0 = location(d3.mouse(this));
+      scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * scale);
+      translateTo(d3.mouse(this), translate0);
+      dispatch(event.of(this, arguments));
+    }
+    function mousemove() {
+      translate0 = null;
+    }
+    function dblclick() {
+      var p = d3.mouse(this), l = location(p), k = Math.log(scale) / Math.LN2;
+      scaleTo(Math.pow(2, d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1));
+      translateTo(p, l);
+      dispatch(event.of(this, arguments));
+    }
+    function touchstart() {
+      var touches = d3.touches(this), now = Date.now();
+      scale0 = scale;
+      translate0 = {};
+      touches.forEach(function(t) {
+        translate0[t.identifier] = location(t);
+      });
+      d3_eventCancel();
+      if (touches.length === 1) {
+        if (now - touchtime < 500) {
+          var p = touches[0], l = location(touches[0]);
+          scaleTo(scale * 2);
+          translateTo(p, l);
+          dispatch(event.of(this, arguments));
+        }
+        touchtime = now;
+      }
+    }
+    function touchmove() {
+      var touches = d3.touches(this), p0 = touches[0], l0 = translate0[p0.identifier];
+      if (p1 = touches[1]) {
+        var p1, l1 = translate0[p1.identifier];
+        p0 = [ (p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2 ];
+        l0 = [ (l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2 ];
+        scaleTo(d3.event.scale * scale0);
+      }
+      translateTo(p0, l0);
+      touchtime = null;
+      dispatch(event.of(this, arguments));
+    }
+    return d3.rebind(zoom, event, "on");
+  };
+  var d3_behavior_zoomInfinity = [ 0, Infinity ];
+  var d3_behavior_zoomDelta, d3_behavior_zoomWheel = "onwheel" in document ? (d3_behavior_zoomDelta = function() {
+    return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1);
+  }, "wheel") : "onmousewheel" in document ? (d3_behavior_zoomDelta = function() {
+    return d3.event.wheelDelta;
+  }, "mousewheel") : (d3_behavior_zoomDelta = function() {
+    return -d3.event.detail;
+  }, "MozMousePixelScroll");
+  d3.layout = {};
+  d3.layout.bundle = function() {
+    return function(links) {
+      var paths = [], i = -1, n = links.length;
+      while (++i < n) paths.push(d3_layout_bundlePath(links[i]));
+      return paths;
+    };
+  };
+  function d3_layout_bundlePath(link) {
+    var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [ start ];
+    while (start !== lca) {
+      start = start.parent;
+      points.push(start);
+    }
+    var k = points.length;
+    while (end !== lca) {
+      points.splice(k, 0, end);
+      end = end.parent;
+    }
+    return points;
+  }
+  function d3_layout_bundleAncestors(node) {
+    var ancestors = [], parent = node.parent;
+    while (parent != null) {
+      ancestors.push(node);
+      node = parent;
+      parent = parent.parent;
+    }
+    ancestors.push(node);
+    return ancestors;
+  }
+  function d3_layout_bundleLeastCommonAncestor(a, b) {
+    if (a === b) return a;
+    var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null;
+    while (aNode === bNode) {
+      sharedNode = aNode;
+      aNode = aNodes.pop();
+      bNode = bNodes.pop();
+    }
+    return sharedNode;
+  }
+  d3.layout.chord = function() {
+    var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords;
+    function relayout() {
+      var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j;
+      chords = [];
+      groups = [];
+      k = 0, i = -1;
+      while (++i < n) {
+        x = 0, j = -1;
+        while (++j < n) {
+          x += matrix[i][j];
+        }
+        groupSums.push(x);
+        subgroupIndex.push(d3.range(n));
+        k += x;
+      }
+      if (sortGroups) {
+        groupIndex.sort(function(a, b) {
+          return sortGroups(groupSums[a], groupSums[b]);
+        });
+      }
+      if (sortSubgroups) {
+        subgroupIndex.forEach(function(d, i) {
+          d.sort(function(a, b) {
+            return sortSubgroups(matrix[i][a], matrix[i][b]);
+          });
+        });
+      }
+      k = (2 * π - padding * n) / k;
+      x = 0, i = -1;
+      while (++i < n) {
+        x0 = x, j = -1;
+        while (++j < n) {
+          var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k;
+          subgroups[di + "-" + dj] = {
+            index: di,
+            subindex: dj,
+            startAngle: a0,
+            endAngle: a1,
+            value: v
+          };
+        }
+        groups[di] = {
+          index: di,
+          startAngle: x0,
+          endAngle: x,
+          value: (x - x0) / k
+        };
+        x += padding;
+      }
+      i = -1;
+      while (++i < n) {
+        j = i - 1;
+        while (++j < n) {
+          var source = subgroups[i + "-" + j], target = subgroups[j + "-" + i];
+          if (source.value || target.value) {
+            chords.push(source.value < target.value ? {
+              source: target,
+              target: source
+            } : {
+              source: source,
+              target: target
+            });
+          }
+        }
+      }
+      if (sortChords) resort();
+    }
+    function resort() {
+      chords.sort(function(a, b) {
+        return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2);
+      });
+    }
+    chord.matrix = function(x) {
+      if (!arguments.length) return matrix;
+      n = (matrix = x) && matrix.length;
+      chords = groups = null;
+      return chord;
+    };
+    chord.padding = function(x) {
+      if (!arguments.length) return padding;
+      padding = x;
+      chords = groups = null;
+      return chord;
+    };
+    chord.sortGroups = function(x) {
+      if (!arguments.length) return sortGroups;
+      sortGroups = x;
+      chords = groups = null;
+      return chord;
+    };
+    chord.sortSubgroups = function(x) {
+      if (!arguments.length) return sortSubgroups;
+      sortSubgroups = x;
+      chords = null;
+      return chord;
+    };
+    chord.sortChords = function(x) {
+      if (!arguments.length) return sortChords;
+      sortChords = x;
+      if (chords) resort();
+      return chord;
+    };
+    chord.chords = function() {
+      if (!chords) relayout();
+      return chords;
+    };
+    chord.groups = function() {
+      if (!groups) relayout();
+      return groups;
+    };
+    return chord;
+  };
+  d3.layout.force = function() {
+    var force = {}, event = d3.dispatch("start", "tick", "end"), size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, gravity = .1, theta = .8, nodes = [], links = [], distances, strengths, charges;
+    function repulse(node) {
+      return function(quad, x1, _, x2) {
+        if (quad.point !== node) {
+          var dx = quad.cx - node.x, dy = quad.cy - node.y, dn = 1 / Math.sqrt(dx * dx + dy * dy);
+          if ((x2 - x1) * dn < theta) {
+            var k = quad.charge * dn * dn;
+            node.px -= dx * k;
+            node.py -= dy * k;
+            return true;
+          }
+          if (quad.point && isFinite(dn)) {
+            var k = quad.pointCharge * dn * dn;
+            node.px -= dx * k;
+            node.py -= dy * k;
+          }
+        }
+        return !quad.charge;
+      };
+    }
+    force.tick = function() {
+      if ((alpha *= .99) < .005) {
+        event.end({
+          type: "end",
+          alpha: alpha = 0
+        });
+        return true;
+      }
+      var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y;
+      for (i = 0; i < m; ++i) {
+        o = links[i];
+        s = o.source;
+        t = o.target;
+        x = t.x - s.x;
+        y = t.y - s.y;
+        if (l = x * x + y * y) {
+          l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;
+          x *= l;
+          y *= l;
+          t.x -= x * (k = s.weight / (t.weight + s.weight));
+          t.y -= y * k;
+          s.x += x * (k = 1 - k);
+          s.y += y * k;
+        }
+      }
+      if (k = alpha * gravity) {
+        x = size[0] / 2;
+        y = size[1] / 2;
+        i = -1;
+        if (k) while (++i < n) {
+          o = nodes[i];
+          o.x += (x - o.x) * k;
+          o.y += (y - o.y) * k;
+        }
+      }
+      if (charge) {
+        d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges);
+        i = -1;
+        while (++i < n) {
+          if (!(o = nodes[i]).fixed) {
+            q.visit(repulse(o));
+          }
+        }
+      }
+      i = -1;
+      while (++i < n) {
+        o = nodes[i];
+        if (o.fixed) {
+          o.x = o.px;
+          o.y = o.py;
+        } else {
+          o.x -= (o.px - (o.px = o.x)) * friction;
+          o.y -= (o.py - (o.py = o.y)) * friction;
+        }
+      }
+      event.tick({
+        type: "tick",
+        alpha: alpha
+      });
+    };
+    force.nodes = function(x) {
+      if (!arguments.length) return nodes;
+      nodes = x;
+      return force;
+    };
+    force.links = function(x) {
+      if (!arguments.length) return links;
+      links = x;
+      return force;
+    };
+    force.size = function(x) {
+      if (!arguments.length) return size;
+      size = x;
+      return force;
+    };
+    force.linkDistance = function(x) {
+      if (!arguments.length) return linkDistance;
+      linkDistance = typeof x === "function" ? x : +x;
+      return force;
+    };
+    force.distance = force.linkDistance;
+    force.linkStrength = function(x) {
+      if (!arguments.length) return linkStrength;
+      linkStrength = typeof x === "function" ? x : +x;
+      return force;
+    };
+    force.friction = function(x) {
+      if (!arguments.length) return friction;
+      friction = +x;
+      return force;
+    };
+    force.charge = function(x) {
+      if (!arguments.length) return charge;
+      charge = typeof x === "function" ? x : +x;
+      return force;
+    };
+    force.gravity = function(x) {
+      if (!arguments.length) return gravity;
+      gravity = +x;
+      return force;
+    };
+    force.theta = function(x) {
+      if (!arguments.length) return theta;
+      theta = +x;
+      return force;
+    };
+    force.alpha = function(x) {
+      if (!arguments.length) return alpha;
+      x = +x;
+      if (alpha) {
+        if (x > 0) alpha = x; else alpha = 0;
+      } else if (x > 0) {
+        event.start({
+          type: "start",
+          alpha: alpha = x
+        });
+        d3.timer(force.tick);
+      }
+      return force;
+    };
+    force.start = function() {
+      var i, j, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o;
+      for (i = 0; i < n; ++i) {
+        (o = nodes[i]).index = i;
+        o.weight = 0;
+      }
+      for (i = 0; i < m; ++i) {
+        o = links[i];
+        if (typeof o.source == "number") o.source = nodes[o.source];
+        if (typeof o.target == "number") o.target = nodes[o.target];
+        ++o.source.weight;
+        ++o.target.weight;
+      }
+      for (i = 0; i < n; ++i) {
+        o = nodes[i];
+        if (isNaN(o.x)) o.x = position("x", w);
+        if (isNaN(o.y)) o.y = position("y", h);
+        if (isNaN(o.px)) o.px = o.x;
+        if (isNaN(o.py)) o.py = o.y;
+      }
+      distances = [];
+      if (typeof linkDistance === "function") for (i = 0; i < m; ++i) distances[i] = +linkDistance.call(this, links[i], i); else for (i = 0; i < m; ++i) distances[i] = linkDistance;
+      strengths = [];
+      if (typeof linkStrength === "function") for (i = 0; i < m; ++i) strengths[i] = +linkStrength.call(this, links[i], i); else for (i = 0; i < m; ++i) strengths[i] = linkStrength;
+      charges = [];
+      if (typeof charge === "function") for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i); else for (i = 0; i < n; ++i) charges[i] = charge;
+      function position(dimension, size) {
+        var neighbors = neighbor(i), j = -1, m = neighbors.length, x;
+        while (++j < m) if (!isNaN(x = neighbors[j][dimension])) return x;
+        return Math.random() * size;
+      }
+      function neighbor() {
+        if (!neighbors) {
+          neighbors = [];
+          for (j = 0; j < n; ++j) {
+            neighbors[j] = [];
+          }
+          for (j = 0; j < m; ++j) {
+            var o = links[j];
+            neighbors[o.source.index].push(o.target);
+            neighbors[o.target.index].push(o.source);
+          }
+        }
+        return neighbors[i];
+      }
+      return force.resume();
+    };
+    force.resume = function() {
+      return force.alpha(.1);
+    };
+    force.stop = function() {
+      return force.alpha(0);
+    };
+    force.drag = function() {
+      if (!drag) drag = d3.behavior.drag().origin(d3_identity).on("dragstart.force", d3_layout_forceDragstart).on("drag.force", dragmove).on("dragend.force", d3_layout_forceDragend);
+      if (!arguments.length) return drag;
+      this.on("mouseover.force", d3_layout_forceMouseover).on("mouseout.force", d3_layout_forceMouseout).call(drag);
+    };
+    function dragmove(d) {
+      d.px = d3.event.x, d.py = d3.event.y;
+      force.resume();
+    }
+    return d3.rebind(force, event, "on");
+  };
+  function d3_layout_forceDragstart(d) {
+    d.fixed |= 2;
+  }
+  function d3_layout_forceDragend(d) {
+    d.fixed &= ~6;
+  }
+  function d3_layout_forceMouseover(d) {
+    d.fixed |= 4;
+    d.px = d.x, d.py = d.y;
+  }
+  function d3_layout_forceMouseout(d) {
+    d.fixed &= ~4;
+  }
+  function d3_layout_forceAccumulate(quad, alpha, charges) {
+    var cx = 0, cy = 0;
+    quad.charge = 0;
+    if (!quad.leaf) {
+      var nodes = quad.nodes, n = nodes.length, i = -1, c;
+      while (++i < n) {
+        c = nodes[i];
+        if (c == null) continue;
+        d3_layout_forceAccumulate(c, alpha, charges);
+        quad.charge += c.charge;
+        cx += c.charge * c.cx;
+        cy += c.charge * c.cy;
+      }
+    }
+    if (quad.point) {
+      if (!quad.leaf) {
+        quad.point.x += Math.random() - .5;
+        quad.point.y += Math.random() - .5;
+      }
+      var k = alpha * charges[quad.point.index];
+      quad.charge += quad.pointCharge = k;
+      cx += k * quad.point.x;
+      cy += k * quad.point.y;
+    }
+    quad.cx = cx / quad.charge;
+    quad.cy = cy / quad.charge;
+  }
+  var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1;
+  d3.layout.partition = function() {
+    var hierarchy = d3.layout.hierarchy(), size = [ 1, 1 ];
+    function position(node, x, dx, dy) {
+      var children = node.children;
+      node.x = x;
+      node.y = node.depth * dy;
+      node.dx = dx;
+      node.dy = dy;
+      if (children && (n = children.length)) {
+        var i = -1, n, c, d;
+        dx = node.value ? dx / node.value : 0;
+        while (++i < n) {
+          position(c = children[i], x, d = c.value * dx, dy);
+          x += d;
+        }
+      }
+    }
+    function depth(node) {
+      var children = node.children, d = 0;
+      if (children && (n = children.length)) {
+        var i = -1, n;
+        while (++i < n) d = Math.max(d, depth(children[i]));
+      }
+      return 1 + d;
+    }
+    function partition(d, i) {
+      var nodes = hierarchy.call(this, d, i);
+      position(nodes[0], 0, size[0], size[1] / depth(nodes[0]));
+      return nodes;
+    }
+    partition.size = function(x) {
+      if (!arguments.length) return size;
+      size = x;
+      return partition;
+    };
+    return d3_layout_hierarchyRebind(partition, hierarchy);
+  };
+  d3.layout.pie = function() {
+    var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = 2 * π;
+    function pie(data) {
+      var values = data.map(function(d, i) {
+        return +value.call(pie, d, i);
+      });
+      var a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle);
+      var k = ((typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - startAngle) / d3.sum(values);
+      var index = d3.range(data.length);
+      if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) {
+        return values[j] - values[i];
+      } : function(i, j) {
+        return sort(data[i], data[j]);
+      });
+      var arcs = [];
+      index.forEach(function(i) {
+        var d;
+        arcs[i] = {
+          data: data[i],
+          value: d = values[i],
+          startAngle: a,
+          endAngle: a += d * k
+        };
+      });
+      return arcs;
+    }
+    pie.value = function(x) {
+      if (!arguments.length) return value;
+      value = x;
+      return pie;
+    };
+    pie.sort = function(x) {
+      if (!arguments.length) return sort;
+      sort = x;
+      return pie;
+    };
+    pie.startAngle = function(x) {
+      if (!arguments.length) return startAngle;
+      startAngle = x;
+      return pie;
+    };
+    pie.endAngle = function(x) {
+      if (!arguments.length) return endAngle;
+      endAngle = x;
+      return pie;
+    };
+    return pie;
+  };
+  var d3_layout_pieSortByValue = {};
+  d3.layout.stack = function() {
+    var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY;
+    function stack(data, index) {
+      var series = data.map(function(d, i) {
+        return values.call(stack, d, i);
+      });
+      var points = series.map(function(d) {
+        return d.map(function(v, i) {
+          return [ x.call(stack, v, i), y.call(stack, v, i) ];
+        });
+      });
+      var orders = order.call(stack, points, index);
+      series = d3.permute(series, orders);
+      points = d3.permute(points, orders);
+      var offsets = offset.call(stack, points, index);
+      var n = series.length, m = series[0].length, i, j, o;
+      for (j = 0; j < m; ++j) {
+        out.call(stack, series[0][j], o = offsets[j], points[0][j][1]);
+        for (i = 1; i < n; ++i) {
+          out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]);
+        }
+      }
+      return data;
+    }
+    stack.values = function(x) {
+      if (!arguments.length) return values;
+      values = x;
+      return stack;
+    };
+    stack.order = function(x) {
+      if (!arguments.length) return order;
+      order = typeof x === "function" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault;
+      return stack;
+    };
+    stack.offset = function(x) {
+      if (!arguments.length) return offset;
+      offset = typeof x === "function" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero;
+      return stack;
+    };
+    stack.x = function(z) {
+      if (!arguments.length) return x;
+      x = z;
+      return stack;
+    };
+    stack.y = function(z) {
+      if (!arguments.length) return y;
+      y = z;
+      return stack;
+    };
+    stack.out = function(z) {
+      if (!arguments.length) return out;
+      out = z;
+      return stack;
+    };
+    return stack;
+  };
+  function d3_layout_stackX(d) {
+    return d.x;
+  }
+  function d3_layout_stackY(d) {
+    return d.y;
+  }
+  function d3_layout_stackOut(d, y0, y) {
+    d.y0 = y0;
+    d.y = y;
+  }
+  var d3_layout_stackOrders = d3.map({
+    "inside-out": function(data) {
+      var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) {
+        return max[a] - max[b];
+      }), top = 0, bottom = 0, tops = [], bottoms = [];
+      for (i = 0; i < n; ++i) {
+        j = index[i];
+        if (top < bottom) {
+          top += sums[j];
+          tops.push(j);
+        } else {
+          bottom += sums[j];
+          bottoms.push(j);
+        }
+      }
+      return bottoms.reverse().concat(tops);
+    },
+    reverse: function(data) {
+      return d3.range(data.length).reverse();
+    },
+    "default": d3_layout_stackOrderDefault
+  });
+  var d3_layout_stackOffsets = d3.map({
+    silhouette: function(data) {
+      var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = [];
+      for (j = 0; j < m; ++j) {
+        for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
+        if (o > max) max = o;
+        sums.push(o);
+      }
+      for (j = 0; j < m; ++j) {
+        y0[j] = (max - sums[j]) / 2;
+      }
+      return y0;
+    },
+    wiggle: function(data) {
+      var n = data.length, x = data[0], m = x.length, i, j, k, s1, s2, s3, dx, o, o0, y0 = [];
+      y0[0] = o = o0 = 0;
+      for (j = 1; j < m; ++j) {
+        for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1];
+        for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) {
+          for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) {
+            s3 += (data[k][j][1] - data[k][j - 1][1]) / dx;
+          }
+          s2 += s3 * data[i][j][1];
+        }
+        y0[j] = o -= s1 ? s2 / s1 * dx : 0;
+        if (o < o0) o0 = o;
+      }
+      for (j = 0; j < m; ++j) y0[j] -= o0;
+      return y0;
+    },
+    expand: function(data) {
+      var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = [];
+      for (j = 0; j < m; ++j) {
+        for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
+        if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; else for (i = 0; i < n; i++) data[i][j][1] = k;
+      }
+      for (j = 0; j < m; ++j) y0[j] = 0;
+      return y0;
+    },
+    zero: d3_layout_stackOffsetZero
+  });
+  function d3_layout_stackOrderDefault(data) {
+    return d3.range(data.length);
+  }
+  function d3_layout_stackOffsetZero(data) {
+    var j = -1, m = data[0].length, y0 = [];
+    while (++j < m) y0[j] = 0;
+    return y0;
+  }
+  function d3_layout_stackMaxIndex(array) {
+    var i = 1, j = 0, v = array[0][1], k, n = array.length;
+    for (;i < n; ++i) {
+      if ((k = array[i][1]) > v) {
+        j = i;
+        v = k;
+      }
+    }
+    return j;
+  }
+  function d3_layout_stackReduceSum(d) {
+    return d.reduce(d3_layout_stackSum, 0);
+  }
+  function d3_layout_stackSum(p, d) {
+    return p + d[1];
+  }
+  d3.layout.histogram = function() {
+    var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges;
+    function histogram(data, i) {
+      var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x;
+      while (++i < m) {
+        bin = bins[i] = [];
+        bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]);
+        bin.y = 0;
+      }
+      if (m > 0) {
+        i = -1;
+        while (++i < n) {
+          x = values[i];
+          if (x >= range[0] && x <= range[1]) {
+            bin = bins[d3.bisect(thresholds, x, 1, m) - 1];
+            bin.y += k;
+            bin.push(data[i]);
+          }
+        }
+      }
+      return bins;
+    }
+    histogram.value = function(x) {
+      if (!arguments.length) return valuer;
+      valuer = x;
+      return histogram;
+    };
+    histogram.range = function(x) {
+      if (!arguments.length) return ranger;
+      ranger = d3_functor(x);
+      return histogram;
+    };
+    histogram.bins = function(x) {
+      if (!arguments.length) return binner;
+      binner = typeof x === "number" ? function(range) {
+        return d3_layout_histogramBinFixed(range, x);
+      } : d3_functor(x);
+      return histogram;
+    };
+    histogram.frequency = function(x) {
+      if (!arguments.length) return frequency;
+      frequency = !!x;
+      return histogram;
+    };
+    return histogram;
+  };
+  function d3_layout_histogramBinSturges(range, values) {
+    return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1));
+  }
+  function d3_layout_histogramBinFixed(range, n) {
+    var x = -1, b = +range[0], m = (range[1] - b) / n, f = [];
+    while (++x <= n) f[x] = m * x + b;
+    return f;
+  }
+  function d3_layout_histogramRange(values) {
+    return [ d3.min(values), d3.max(values) ];
+  }
+  d3.layout.hierarchy = function() {
+    var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue;
+    function recurse(node, depth, nodes) {
+      var childs = children.call(hierarchy, node, depth);
+      node.depth = depth;
+      nodes.push(node);
+      if (childs && (n = childs.length)) {
+        var i = -1, n, c = node.children = [], v = 0, j = depth + 1, d;
+        while (++i < n) {
+          d = recurse(childs[i], j, nodes);
+          d.parent = node;
+          c.push(d);
+          v += d.value;
+        }
+        if (sort) c.sort(sort);
+        if (value) node.value = v;
+      } else if (value) {
+        node.value = +value.call(hierarchy, node, depth) || 0;
+      }
+      return node;
+    }
+    function revalue(node, depth) {
+      var children = node.children, v = 0;
+      if (children && (n = children.length)) {
+        var i = -1, n, j = depth + 1;
+        while (++i < n) v += revalue(children[i], j);
+      } else if (value) {
+        v = +value.call(hierarchy, node, depth) || 0;
+      }
+      if (value) node.value = v;
+      return v;
+    }
+    function hierarchy(d) {
+      var nodes = [];
+      recurse(d, 0, nodes);
+      return nodes;
+    }
+    hierarchy.sort = function(x) {
+      if (!arguments.length) return sort;
+      sort = x;
+      return hierarchy;
+    };
+    hierarchy.children = function(x) {
+      if (!arguments.length) return children;
+      children = x;
+      return hierarchy;
+    };
+    hierarchy.value = function(x) {
+      if (!arguments.length) return value;
+      value = x;
+      return hierarchy;
+    };
+    hierarchy.revalue = function(root) {
+      revalue(root, 0);
+      return root;
+    };
+    return hierarchy;
+  };
+  function d3_layout_hierarchyRebind(object, hierarchy) {
+    d3.rebind(object, hierarchy, "sort", "children", "value");
+    object.nodes = object;
+    object.links = d3_layout_hierarchyLinks;
+    return object;
+  }
+  function d3_layout_hierarchyChildren(d) {
+    return d.children;
+  }
+  function d3_layout_hierarchyValue(d) {
+    return d.value;
+  }
+  function d3_layout_hierarchySort(a, b) {
+    return b.value - a.value;
+  }
+  function d3_layout_hierarchyLinks(nodes) {
+    return d3.merge(nodes.map(function(parent) {
+      return (parent.children || []).map(function(child) {
+        return {
+          source: parent,
+          target: child
+        };
+      });
+    }));
+  }
+  d3.layout.pack = function() {
+    var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ];
+    function pack(d, i) {
+      var nodes = hierarchy.call(this, d, i), root = nodes[0];
+      root.x = 0;
+      root.y = 0;
+      d3_layout_treeVisitAfter(root, function(d) {
+        d.r = Math.sqrt(d.value);
+      });
+      d3_layout_treeVisitAfter(root, d3_layout_packSiblings);
+      var w = size[0], h = size[1], k = Math.max(2 * root.r / w, 2 * root.r / h);
+      if (padding > 0) {
+        var dr = padding * k / 2;
+        d3_layout_treeVisitAfter(root, function(d) {
+          d.r += dr;
+        });
+        d3_layout_treeVisitAfter(root, d3_layout_packSiblings);
+        d3_layout_treeVisitAfter(root, function(d) {
+          d.r -= dr;
+        });
+        k = Math.max(2 * root.r / w, 2 * root.r / h);
+      }
+      d3_layout_packTransform(root, w / 2, h / 2, 1 / k);
+      return nodes;
+    }
+    pack.size = function(x) {
+      if (!arguments.length) return size;
+      size = x;
+      return pack;
+    };
+    pack.padding = function(_) {
+      if (!arguments.length) return padding;
+      padding = +_;
+      return pack;
+    };
+    return d3_layout_hierarchyRebind(pack, hierarchy);
+  };
+  function d3_layout_packSort(a, b) {
+    return a.value - b.value;
+  }
+  function d3_layout_packInsert(a, b) {
+    var c = a._pack_next;
+    a._pack_next = b;
+    b._pack_prev = a;
+    b._pack_next = c;
+    c._pack_prev = b;
+  }
+  function d3_layout_packSplice(a, b) {
+    a._pack_next = b;
+    b._pack_prev = a;
+  }
+  function d3_layout_packIntersects(a, b) {
+    var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r;
+    return dr * dr - dx * dx - dy * dy > .001;
+  }
+  function d3_layout_packSiblings(node) {
+    if (!(nodes = node.children) || !(n = nodes.length)) return;
+    var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n;
+    function bound(node) {
+      xMin = Math.min(node.x - node.r, xMin);
+      xMax = Math.max(node.x + node.r, xMax);
+      yMin = Math.min(node.y - node.r, yMin);
+      yMax = Math.max(node.y + node.r, yMax);
+    }
+    nodes.forEach(d3_layout_packLink);
+    a = nodes[0];
+    a.x = -a.r;
+    a.y = 0;
+    bound(a);
+    if (n > 1) {
+      b = nodes[1];
+      b.x = b.r;
+      b.y = 0;
+      bound(b);
+      if (n > 2) {
+        c = nodes[2];
+        d3_layout_packPlace(a, b, c);
+        bound(c);
+        d3_layout_packInsert(a, c);
+        a._pack_prev = c;
+        d3_layout_packInsert(c, b);
+        b = a._pack_next;
+        for (i = 3; i < n; i++) {
+          d3_layout_packPlace(a, b, c = nodes[i]);
+          var isect = 0, s1 = 1, s2 = 1;
+          for (j = b._pack_next; j !== b; j = j._pack_next, s1++) {
+            if (d3_layout_packIntersects(j, c)) {
+              isect = 1;
+              break;
+            }
+          }
+          if (isect == 1) {
+            for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) {
+              if (d3_layout_packIntersects(k, c)) {
+                break;
+              }
+            }
+          }
+          if (isect) {
+            if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j); else d3_layout_packSplice(a = k, b);
+            i--;
+          } else {
+            d3_layout_packInsert(a, c);
+            b = c;
+            bound(c);
+          }
+        }
+      }
+    }
+    var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0;
+    for (i = 0; i < n; i++) {
+      c = nodes[i];
+      c.x -= cx;
+      c.y -= cy;
+      cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y));
+    }
+    node.r = cr;
+    nodes.forEach(d3_layout_packUnlink);
+  }
+  function d3_layout_packLink(node) {
+    node._pack_next = node._pack_prev = node;
+  }
+  function d3_layout_packUnlink(node) {
+    delete node._pack_next;
+    delete node._pack_prev;
+  }
+  function d3_layout_packTransform(node, x, y, k) {
+    var children = node.children;
+    node.x = x += k * node.x;
+    node.y = y += k * node.y;
+    node.r *= k;
+    if (children) {
+      var i = -1, n = children.length;
+      while (++i < n) d3_layout_packTransform(children[i], x, y, k);
+    }
+  }
+  function d3_layout_packPlace(a, b, c) {
+    var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y;
+    if (db && (dx || dy)) {
+      var da = b.r + c.r, dc = dx * dx + dy * dy;
+      da *= da;
+      db *= db;
+      var x = .5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc);
+      c.x = a.x + x * dx + y * dy;
+      c.y = a.y + x * dy - y * dx;
+    } else {
+      c.x = a.x + db;
+      c.y = a.y;
+    }
+  }
+  d3.layout.cluster = function() {
+    var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ];
+    function cluster(d, i) {
+      var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0;
+      d3_layout_treeVisitAfter(root, function(node) {
+        var children = node.children;
+        if (children && children.length) {
+          node.x = d3_layout_clusterX(children);
+          node.y = d3_layout_clusterY(children);
+        } else {
+          node.x = previousNode ? x += separation(node, previousNode) : 0;
+          node.y = 0;
+          previousNode = node;
+        }
+      });
+      var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2;
+      d3_layout_treeVisitAfter(root, function(node) {
+        node.x = (node.x - x0) / (x1 - x0) * size[0];
+        node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1];
+      });
+      return nodes;
+    }
+    cluster.separation = function(x) {
+      if (!arguments.length) return separation;
+      separation = x;
+      return cluster;
+    };
+    cluster.size = function(x) {
+      if (!arguments.length) return size;
+      size = x;
+      return cluster;
+    };
+    return d3_layout_hierarchyRebind(cluster, hierarchy);
+  };
+  function d3_layout_clusterY(children) {
+    return 1 + d3.max(children, function(child) {
+      return child.y;
+    });
+  }
+  function d3_layout_clusterX(children) {
+    return children.reduce(function(x, child) {
+      return x + child.x;
+    }, 0) / children.length;
+  }
+  function d3_layout_clusterLeft(node) {
+    var children = node.children;
+    return children && children.length ? d3_layout_clusterLeft(children[0]) : node;
+  }
+  function d3_layout_clusterRight(node) {
+    var children = node.children, n;
+    return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node;
+  }
+  d3.layout.tree = function() {
+    var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ];
+    function tree(d, i) {
+      var nodes = hierarchy.call(this, d, i), root = nodes[0];
+      function firstWalk(node, previousSibling) {
+        var children = node.children, layout = node._tree;
+        if (children && (n = children.length)) {
+          var n, firstChild = children[0], previousChild, ancestor = firstChild, child, i = -1;
+          while (++i < n) {
+            child = children[i];
+            firstWalk(child, previousChild);
+            ancestor = apportion(child, previousChild, ancestor);
+            previousChild = child;
+          }
+          d3_layout_treeShift(node);
+          var midpoint = .5 * (firstChild._tree.prelim + child._tree.prelim);
+          if (previousSibling) {
+            layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
+            layout.mod = layout.prelim - midpoint;
+          } else {
+            layout.prelim = midpoint;
+          }
+        } else {
+          if (previousSibling) {
+            layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
+          }
+        }
+      }
+      function secondWalk(node, x) {
+        node.x = node._tree.prelim + x;
+        var children = node.children;
+        if (children && (n = children.length)) {
+          var i = -1, n;
+          x += node._tree.mod;
+          while (++i < n) {
+            secondWalk(children[i], x);
+          }
+        }
+      }
+      function apportion(node, previousSibling, ancestor) {
+        if (previousSibling) {
+          var vip = node, vop = node, vim = previousSibling, vom = node.parent.children[0], sip = vip._tree.mod, sop = vop._tree.mod, sim = vim._tree.mod, som = vom._tree.mod, shift;
+          while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {
+            vom = d3_layout_treeLeft(vom);
+            vop = d3_layout_treeRight(vop);
+            vop._tree.ancestor = node;
+            shift = vim._tree.prelim + sim - vip._tree.prelim - sip + separation(vim, vip);
+            if (shift > 0) {
+              d3_layout_treeMove(d3_layout_treeAncestor(vim, node, ancestor), node, shift);
+              sip += shift;
+              sop += shift;
+            }
+            sim += vim._tree.mod;
+            sip += vip._tree.mod;
+            som += vom._tree.mod;
+            sop += vop._tree.mod;
+          }
+          if (vim && !d3_layout_treeRight(vop)) {
+            vop._tree.thread = vim;
+            vop._tree.mod += sim - sop;
+          }
+          if (vip && !d3_layout_treeLeft(vom)) {
+            vom._tree.thread = vip;
+            vom._tree.mod += sip - som;
+            ancestor = node;
+          }
+        }
+        return ancestor;
+      }
+      d3_layout_treeVisitAfter(root, function(node, previousSibling) {
+        node._tree = {
+          ancestor: node,
+          prelim: 0,
+          mod: 0,
+          change: 0,
+          shift: 0,
+          number: previousSibling ? previousSibling._tree.number + 1 : 0
+        };
+      });
+      firstWalk(root);
+      secondWalk(root, -root._tree.prelim);
+      var left = d3_layout_treeSearch(root, d3_layout_treeLeftmost), right = d3_layout_treeSearch(root, d3_layout_treeRightmost), deep = d3_layout_treeSearch(root, d3_layout_treeDeepest), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2, y1 = deep.depth || 1;
+      d3_layout_treeVisitAfter(root, function(node) {
+        node.x = (node.x - x0) / (x1 - x0) * size[0];
+        node.y = node.depth / y1 * size[1];
+        delete node._tree;
+      });
+      return nodes;
+    }
+    tree.separation = function(x) {
+      if (!arguments.length) return separation;
+      separation = x;
+      return tree;
+    };
+    tree.size = function(x) {
+      if (!arguments.length) return size;
+      size = x;
+      return tree;
+    };
+    return d3_layout_hierarchyRebind(tree, hierarchy);
+  };
+  function d3_layout_treeSeparation(a, b) {
+    return a.parent == b.parent ? 1 : 2;
+  }
+  function d3_layout_treeLeft(node) {
+    var children = node.children;
+    return children && children.length ? children[0] : node._tree.thread;
+  }
+  function d3_layout_treeRight(node) {
+    var children = node.children, n;
+    return children && (n = children.length) ? children[n - 1] : node._tree.thread;
+  }
+  function d3_layout_treeSearch(node, compare) {
+    var children = node.children;
+    if (children && (n = children.length)) {
+      var child, n, i = -1;
+      while (++i < n) {
+        if (compare(child = d3_layout_treeSearch(children[i], compare), node) > 0) {
+          node = child;
+        }
+      }
+    }
+    return node;
+  }
+  function d3_layout_treeRightmost(a, b) {
+    return a.x - b.x;
+  }
+  function d3_layout_treeLeftmost(a, b) {
+    return b.x - a.x;
+  }
+  function d3_layout_treeDeepest(a, b) {
+    return a.depth - b.depth;
+  }
+  function d3_layout_treeVisitAfter(node, callback) {
+    function visit(node, previousSibling) {
+      var children = node.children;
+      if (children && (n = children.length)) {
+        var child, previousChild = null, i = -1, n;
+        while (++i < n) {
+          child = children[i];
+          visit(child, previousChild);
+          previousChild = child;
+        }
+      }
+      callback(node, previousSibling);
+    }
+    visit(node, null);
+  }
+  function d3_layout_treeShift(node) {
+    var shift = 0, change = 0, children = node.children, i = children.length, child;
+    while (--i >= 0) {
+      child = children[i]._tree;
+      child.prelim += shift;
+      child.mod += shift;
+      shift += child.shift + (change += child.change);
+    }
+  }
+  function d3_layout_treeMove(ancestor, node, shift) {
+    ancestor = ancestor._tree;
+    node = node._tree;
+    var change = shift / (node.number - ancestor.number);
+    ancestor.change += change;
+    node.change -= change;
+    node.shift += shift;
+    node.prelim += shift;
+    node.mod += shift;
+  }
+  function d3_layout_treeAncestor(vim, node, ancestor) {
+    return vim._tree.ancestor.parent == node.parent ? vim._tree.ancestor : ancestor;
+  }
+  d3.layout.treemap = function() {
+    var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, mode = "squarify", ratio = .5 * (1 + Math.sqrt(5));
+    function scale(children, k) {
+      var i = -1, n = children.length, child, area;
+      while (++i < n) {
+        area = (child = children[i]).value * (k < 0 ? 0 : k);
+        child.area = isNaN(area) || area <= 0 ? 0 : area;
+      }
+    }
+    function squarify(node) {
+      var children = node.children;
+      if (children && children.length) {
+        var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = mode === "slice" ? rect.dx : mode === "dice" ? rect.dy : mode === "slice-dice" ? node.depth & 1 ? rect.dy : rect.dx : Math.min(rect.dx, rect.dy), n;
+        scale(remaining, rect.dx * rect.dy / node.value);
+        row.area = 0;
+        while ((n = remaining.length) > 0) {
+          row.push(child = remaining[n - 1]);
+          row.area += child.area;
+          if (mode !== "squarify" || (score = worst(row, u)) <= best) {
+            remaining.pop();
+            best = score;
+          } else {
+            row.area -= row.pop().area;
+            position(row, u, rect, false);
+            u = Math.min(rect.dx, rect.dy);
+            row.length = row.area = 0;
+            best = Infinity;
+          }
+        }
+        if (row.length) {
+          position(row, u, rect, true);
+          row.length = row.area = 0;
+        }
+        children.forEach(squarify);
+      }
+    }
+    function stickify(node) {
+      var children = node.children;
+      if (children && children.length) {
+        var rect = pad(node), remaining = children.slice(), child, row = [];
+        scale(remaining, rect.dx * rect.dy / node.value);
+        row.area = 0;
+        while (child = remaining.pop()) {
+          row.push(child);
+          row.area += child.area;
+          if (child.z != null) {
+            position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length);
+            row.length = row.area = 0;
+          }
+        }
+        children.forEach(stickify);
+      }
+    }
+    function worst(row, u) {
+      var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length;
+      while (++i < n) {
+        if (!(r = row[i].area)) continue;
+        if (r < rmin) rmin = r;
+        if (r > rmax) rmax = r;
+      }
+      s *= s;
+      u *= u;
+      return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity;
+    }
+    function position(row, u, rect, flush) {
+      var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o;
+      if (u == rect.dx) {
+        if (flush || v > rect.dy) v = rect.dy;
+        while (++i < n) {
+          o = row[i];
+          o.x = x;
+          o.y = y;
+          o.dy = v;
+          x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0);
+        }
+        o.z = true;
+        o.dx += rect.x + rect.dx - x;
+        rect.y += v;
+        rect.dy -= v;
+      } else {
+        if (flush || v > rect.dx) v = rect.dx;
+        while (++i < n) {
+          o = row[i];
+          o.x = x;
+          o.y = y;
+          o.dx = v;
+          y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0);
+        }
+        o.z = false;
+        o.dy += rect.y + rect.dy - y;
+        rect.x += v;
+        rect.dx -= v;
+      }
+    }
+    function treemap(d) {
+      var nodes = stickies || hierarchy(d), root = nodes[0];
+      root.x = 0;
+      root.y = 0;
+      root.dx = size[0];
+      root.dy = size[1];
+      if (stickies) hierarchy.revalue(root);
+      scale([ root ], root.dx * root.dy / root.value);
+      (stickies ? stickify : squarify)(root);
+      if (sticky) stickies = nodes;
+      return nodes;
+    }
+    treemap.size = function(x) {
+      if (!arguments.length) return size;
+      size = x;
+      return treemap;
+    };
+    treemap.padding = function(x) {
+      if (!arguments.length) return padding;
+      function padFunction(node) {
+        var p = x.call(treemap, node, node.depth);
+        return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === "number" ? [ p, p, p, p ] : p);
+      }
+      function padConstant(node) {
+        return d3_layout_treemapPad(node, x);
+      }
+      var type;
+      pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === "function" ? padFunction : type === "number" ? (x = [ x, x, x, x ],
+      padConstant) : padConstant;
+      return treemap;
+    };
+    treemap.round = function(x) {
+      if (!arguments.length) return round != Number;
+      round = x ? Math.round : Number;
+      return treemap;
+    };
+    treemap.sticky = function(x) {
+      if (!arguments.length) return sticky;
+      sticky = x;
+      stickies = null;
+      return treemap;
+    };
+    treemap.ratio = function(x) {
+      if (!arguments.length) return ratio;
+      ratio = x;
+      return treemap;
+    };
+    treemap.mode = function(x) {
+      if (!arguments.length) return mode;
+      mode = x + "";
+      return treemap;
+    };
+    return d3_layout_hierarchyRebind(treemap, hierarchy);
+  };
+  function d3_layout_treemapPadNull(node) {
+    return {
+      x: node.x,
+      y: node.y,
+      dx: node.dx,
+      dy: node.dy
+    };
+  }
+  function d3_layout_treemapPad(node, padding) {
+    var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2];
+    if (dx < 0) {
+      x += dx / 2;
+      dx = 0;
+    }
+    if (dy < 0) {
+      y += dy / 2;
+      dy = 0;
+    }
+    return {
+      x: x,
+      y: y,
+      dx: dx,
+      dy: dy
+    };
+  }
+  function d3_dsv(delimiter, mimeType) {
+    var reFormat = new RegExp('["' + delimiter + "\n]"), delimiterCode = delimiter.charCodeAt(0);
+    function dsv(url, callback) {
+      return d3.xhr(url, mimeType, callback).response(response);
+    }
+    function response(request) {
+      return dsv.parse(request.responseText);
+    }
+    dsv.parse = function(text) {
+      var o;
+      return dsv.parseRows(text, function(row) {
+        if (o) return o(row);
+        o = new Function("d", "return {" + row.map(function(name, i) {
+          return JSON.stringify(name) + ": d[" + i + "]";
+        }).join(",") + "}");
+      });
+    };
+    dsv.parseRows = function(text, f) {
+      var EOL = {}, EOF = {}, rows = [], N = text.length, I = 0, n = 0, t, eol;
+      function token() {
+        if (I >= N) return EOF;
+        if (eol) return eol = false, EOL;
+        var j = I;
+        if (text.charCodeAt(j) === 34) {
+          var i = j;
+          while (i++ < N) {
+            if (text.charCodeAt(i) === 34) {
+              if (text.charCodeAt(i + 1) !== 34) break;
+              ++i;
+            }
+          }
+          I = i + 2;
+          var c = text.charCodeAt(i + 1);
+          if (c === 13) {
+            eol = true;
+            if (text.charCodeAt(i + 2) === 10) ++I;
+          } else if (c === 10) {
+            eol = true;
+          }
+          return text.substring(j + 1, i).replace(/""/g, '"');
+        }
+        while (I < N) {
+          var c = text.charCodeAt(I++), k = 1;
+          if (c === 10) eol = true; else if (c === 13) {
+            eol = true;
+            if (text.charCodeAt(I) === 10) ++I, ++k;
+          } else if (c !== delimiterCode) continue;
+          return text.substring(j, I - k);
+        }
+        return text.substring(j);
+      }
+      while ((t = token()) !== EOF) {
+        var a = [];
+        while (t !== EOL && t !== EOF) {
+          a.push(t);
+          t = token();
+        }
+        if (f && !(a = f(a, n++))) continue;
+        rows.push(a);
+      }
+      return rows;
+    };
+    dsv.format = function(rows) {
+      return rows.map(formatRow).join("\n");
+    };
+    function formatRow(row) {
+      return row.map(formatValue).join(delimiter);
+    }
+    function formatValue(text) {
+      return reFormat.test(text) ? '"' + text.replace(/\"/g, '""') + '"' : text;
+    }
+    return dsv;
+  }
+  d3.csv = d3_dsv(",", "text/csv");
+  d3.tsv = d3_dsv("	", "text/tab-separated-values");
+  d3.geo = {};
+  d3.geo.stream = function(object, listener) {
+    if (d3_geo_streamObjectType.hasOwnProperty(object.type)) {
+      d3_geo_streamObjectType[object.type](object, listener);
+    } else {
+      d3_geo_streamGeometry(object, listener);
+    }
+  };
+  function d3_geo_streamGeometry(geometry, listener) {
+    if (d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) {
+      d3_geo_streamGeometryType[geometry.type](geometry, listener);
+    }
+  }
+  var d3_geo_streamObjectType = {
+    Feature: function(feature, listener) {
+      d3_geo_streamGeometry(feature.geometry, listener);
+    },
+    FeatureCollection: function(object, listener) {
+      var features = object.features, i = -1, n = features.length;
+      while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener);
+    }
+  };
+  var d3_geo_streamGeometryType = {
+    Sphere: function(object, listener) {
+      listener.sphere();
+    },
+    Point: function(object, listener) {
+      var coordinate = object.coordinates;
+      listener.point(coordinate[0], coordinate[1]);
+    },
+    MultiPoint: function(object, listener) {
+      var coordinates = object.coordinates, i = -1, n = coordinates.length, coordinate;
+      while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1]);
+    },
+    LineString: function(object, listener) {
+      d3_geo_streamLine(object.coordinates, listener, 0);
+    },
+    MultiLineString: function(object, listener) {
+      var coordinates = object.coordinates, i = -1, n = coordinates.length;
+      while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0);
+    },
+    Polygon: function(object, listener) {
+      d3_geo_streamPolygon(object.coordinates, listener);
+    },
+    MultiPolygon: function(object, listener) {
+      var coordinates = object.coordinates, i = -1, n = coordinates.length;
+      while (++i < n) d3_geo_streamPolygon(coordinates[i], listener);
+    },
+    GeometryCollection: function(object, listener) {
+      var geometries = object.geometries, i = -1, n = geometries.length;
+      while (++i < n) d3_geo_streamGeometry(geometries[i], listener);
+    }
+  };
+  function d3_geo_streamLine(coordinates, listener, closed) {
+    var i = -1, n = coordinates.length - closed, coordinate;
+    listener.lineStart();
+    while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1]);
+    listener.lineEnd();
+  }
+  function d3_geo_streamPolygon(coordinates, listener) {
+    var i = -1, n = coordinates.length;
+    listener.polygonStart();
+    while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1);
+    listener.polygonEnd();
+  }
+  function d3_geo_spherical(cartesian) {
+    return [ Math.atan2(cartesian[1], cartesian[0]), Math.asin(Math.max(-1, Math.min(1, cartesian[2]))) ];
+  }
+  function d3_geo_sphericalEqual(a, b) {
+    return Math.abs(a[0] - b[0]) < ε && Math.abs(a[1] - b[1]) < ε;
+  }
+  function d3_geo_cartesian(spherical) {
+    var λ = spherical[0], φ = spherical[1], cosφ = Math.cos(φ);
+    return [ cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ) ];
+  }
+  function d3_geo_cartesianDot(a, b) {
+    return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
+  }
+  function d3_geo_cartesianCross(a, b) {
+    return [ a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0] ];
+  }
+  function d3_geo_cartesianAdd(a, b) {
+    a[0] += b[0];
+    a[1] += b[1];
+    a[2] += b[2];
+  }
+  function d3_geo_cartesianScale(vector, k) {
+    return [ vector[0] * k, vector[1] * k, vector[2] * k ];
+  }
+  function d3_geo_cartesianNormalize(d) {
+    var l = Math.sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);
+    d[0] /= l;
+    d[1] /= l;
+    d[2] /= l;
+  }
+  function d3_geo_resample(project) {
+    var δ2 = .5, maxDepth = 16;
+    function resample(stream) {
+      var λ0, x0, y0, a0, b0, c0;
+      var resample = {
+        point: point,
+        lineStart: lineStart,
+        lineEnd: lineEnd,
+        polygonStart: function() {
+          stream.polygonStart();
+          resample.lineStart = polygonLineStart;
+        },
+        polygonEnd: function() {
+          stream.polygonEnd();
+          resample.lineStart = lineStart;
+        }
+      };
+      function point(x, y) {
+        x = project(x, y);
+        stream.point(x[0], x[1]);
+      }
+      function lineStart() {
+        x0 = NaN;
+        resample.point = linePoint;
+        stream.lineStart();
+      }
+      function linePoint(λ, φ) {
+        var c = d3_geo_cartesian([ λ, φ ]), p = project(λ, φ);
+        resampleLineTo(x0, y0, λ0, a0, b0, c0, x0 = p[0], y0 = p[1], λ0 = λ, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);
+        stream.point(x0, y0);
+      }
+      function lineEnd() {
+        resample.point = point;
+        stream.lineEnd();
+      }
+      function polygonLineStart() {
+        var λ00, φ00, x00, y00, a00, b00, c00;
+        lineStart();
+        resample.point = function(λ, φ) {
+          linePoint(λ00 = λ, φ00 = φ), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;
+          resample.point = linePoint;
+        };
+        resample.lineEnd = function() {
+          resampleLineTo(x0, y0, λ0, a0, b0, c0, x00, y00, λ00, a00, b00, c00, maxDepth, stream);
+          resample.lineEnd = lineEnd;
+          lineEnd();
+        };
+      }
+      return resample;
+    }
+    function resampleLineTo(x0, y0, λ0, a0, b0, c0, x1, y1, λ1, a1, b1, c1, depth, stream) {
+      var dx = x1 - x0, dy = y1 - y0, d2 = dx * dx + dy * dy;
+      if (d2 > 4 * δ2 && depth--) {
+        var a = a0 + a1, b = b0 + b1, c = c0 + c1, m = Math.sqrt(a * a + b * b + c * c), φ2 = Math.asin(c /= m), λ2 = Math.abs(Math.abs(c) - 1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a), p = project(λ2, φ2), x2 = p[0], y2 = p[1], dx2 = x2 - x0, dy2 = y2 - y0, dz = dy * dx2 - dx * dy2;
+        if (dz * dz / d2 > δ2 || Math.abs((dx * dx2 + dy * dy2) / d2 - .5) > .3) {
+          resampleLineTo(x0, y0, λ0, a0, b0, c0, x2, y2, λ2, a /= m, b /= m, c, depth, stream);
+          stream.point(x2, y2);
+          resampleLineTo(x2, y2, λ2, a, b, c, x1, y1, λ1, a1, b1, c1, depth, stream);
+        }
+      }
+    }
+    resample.precision = function(_) {
+      if (!arguments.length) return Math.sqrt(δ2);
+      maxDepth = (δ2 = _ * _) > 0 && 16;
+      return resample;
+    };
+    return resample;
+  }
+  d3.geo.albersUsa = function() {
+    var lower48 = d3.geo.albers();
+    var alaska = d3.geo.albers().rotate([ 160, 0 ]).center([ 0, 60 ]).parallels([ 55, 65 ]);
+    var hawaii = d3.geo.albers().rotate([ 160, 0 ]).center([ 0, 20 ]).parallels([ 8, 18 ]);
+    var puertoRico = d3.geo.albers().rotate([ 60, 0 ]).center([ 0, 10 ]).parallels([ 8, 18 ]);
+    function albersUsa(coordinates) {
+      return projection(coordinates)(coordinates);
+    }
+    function projection(point) {
+      var lon = point[0], lat = point[1];
+      return lat > 50 ? alaska : lon < -140 ? hawaii : lat < 21 ? puertoRico : lower48;
+    }
+    albersUsa.scale = function(x) {
+      if (!arguments.length) return lower48.scale();
+      lower48.scale(x);
+      alaska.scale(x * .6);
+      hawaii.scale(x);
+      puertoRico.scale(x * 1.5);
+      return albersUsa.translate(lower48.translate());
+    };
+    albersUsa.translate = function(x) {
+      if (!arguments.length) return lower48.translate();
+      var dz = lower48.scale(), dx = x[0], dy = x[1];
+      lower48.translate(x);
+      alaska.translate([ dx - .4 * dz, dy + .17 * dz ]);
+      hawaii.translate([ dx - .19 * dz, dy + .2 * dz ]);
+      puertoRico.translate([ dx + .58 * dz, dy + .43 * dz ]);
+      return albersUsa;
+    };
+    return albersUsa.scale(lower48.scale());
+  };
+  function d3_geo_albers(φ0, φ1) {
+    var sinφ0 = Math.sin(φ0), n = (sinφ0 + Math.sin(φ1)) / 2, C = 1 + sinφ0 * (2 * n - sinφ0), ρ0 = Math.sqrt(C) / n;
+    function albers(λ, φ) {
+      var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n;
+      return [ ρ * Math.sin(λ *= n), ρ0 - ρ * Math.cos(λ) ];
+    }
+    albers.invert = function(x, y) {
+      var ρ0_y = ρ0 - y;
+      return [ Math.atan2(x, ρ0_y) / n, Math.asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n)) ];
+    };
+    return albers;
+  }
+  (d3.geo.albers = function() {
+    var φ0 = 29.5 * d3_radians, φ1 = 45.5 * d3_radians, m = d3_geo_projectionMutator(d3_geo_albers), p = m(φ0, φ1);
+    p.parallels = function(_) {
+      if (!arguments.length) return [ φ0 * d3_degrees, φ1 * d3_degrees ];
+      return m(φ0 = _[0] * d3_radians, φ1 = _[1] * d3_radians);
+    };
+    return p.rotate([ 98, 0 ]).center([ 0, 38 ]).scale(1e3);
+  }).raw = d3_geo_albers;
+  var d3_geo_azimuthalEqualArea = d3_geo_azimuthal(function(cosλcosφ) {
+    return Math.sqrt(2 / (1 + cosλcosφ));
+  }, function(ρ) {
+    return 2 * Math.asin(ρ / 2);
+  });
+  (d3.geo.azimuthalEqualArea = function() {
+    return d3_geo_projection(d3_geo_azimuthalEqualArea);
+  }).raw = d3_geo_azimuthalEqualArea;
+  var d3_geo_azimuthalEquidistant = d3_geo_azimuthal(function(cosλcosφ) {
+    var c = Math.acos(cosλcosφ);
+    return c && c / Math.sin(c);
+  }, d3_identity);
+  (d3.geo.azimuthalEquidistant = function() {
+    return d3_geo_projection(d3_geo_azimuthalEquidistant);
+  }).raw = d3_geo_azimuthalEquidistant;
+  d3.geo.bounds = d3_geo_bounds(d3_identity);
+  function d3_geo_bounds(projectStream) {
+    var x0, y0, x1, y1;
+    var bound = {
+      point: boundPoint,
+      lineStart: d3_noop,
+      lineEnd: d3_noop,
+      polygonStart: function() {
+        bound.lineEnd = boundPolygonLineEnd;
+      },
+      polygonEnd: function() {
+        bound.point = boundPoint;
+      }
+    };
+    function boundPoint(x, y) {
+      if (x < x0) x0 = x;
+      if (x > x1) x1 = x;
+      if (y < y0) y0 = y;
+      if (y > y1) y1 = y;
+    }
+    function boundPolygonLineEnd() {
+      bound.point = bound.lineEnd = d3_noop;
+    }
+    return function(feature) {
+      y1 = x1 = -(x0 = y0 = Infinity);
+      d3.geo.stream(feature, projectStream(bound));
+      return [ [ x0, y0 ], [ x1, y1 ] ];
+    };
+  }
+  d3.geo.centroid = function(object) {
+    d3_geo_centroidDimension = d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
+    d3.geo.stream(object, d3_geo_centroid);
+    var m;
+    if (d3_geo_centroidW && Math.abs(m = Math.sqrt(d3_geo_centroidX * d3_geo_centroidX + d3_geo_centroidY * d3_geo_centroidY + d3_geo_centroidZ * d3_geo_centroidZ)) > ε) {
+      return [ Math.atan2(d3_geo_centroidY, d3_geo_centroidX) * d3_degrees, Math.asin(Math.max(-1, Math.min(1, d3_geo_centroidZ / m))) * d3_degrees ];
+    }
+  };
+  var d3_geo_centroidDimension, d3_geo_centroidW, d3_geo_centroidX, d3_geo_centroidY, d3_geo_centroidZ;
+  var d3_geo_centroid = {
+    sphere: function() {
+      if (d3_geo_centroidDimension < 2) {
+        d3_geo_centroidDimension = 2;
+        d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
+      }
+    },
+    point: d3_geo_centroidPoint,
+    lineStart: d3_geo_centroidLineStart,
+    lineEnd: d3_geo_centroidLineEnd,
+    polygonStart: function() {
+      if (d3_geo_centroidDimension < 2) {
+        d3_geo_centroidDimension = 2;
+        d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
+      }
+      d3_geo_centroid.lineStart = d3_geo_centroidRingStart;
+    },
+    polygonEnd: function() {
+      d3_geo_centroid.lineStart = d3_geo_centroidLineStart;
+    }
+  };
+  function d3_geo_centroidPoint(λ, φ) {
+    if (d3_geo_centroidDimension) return;
+    ++d3_geo_centroidW;
+    λ *= d3_radians;
+    var cosφ = Math.cos(φ *= d3_radians);
+    d3_geo_centroidX += (cosφ * Math.cos(λ) - d3_geo_centroidX) / d3_geo_centroidW;
+    d3_geo_centroidY += (cosφ * Math.sin(λ) - d3_geo_centroidY) / d3_geo_centroidW;
+    d3_geo_centroidZ += (Math.sin(φ) - d3_geo_centroidZ) / d3_geo_centroidW;
+  }
+  function d3_geo_centroidRingStart() {
+    var λ00, φ00;
+    d3_geo_centroidDimension = 1;
+    d3_geo_centroidLineStart();
+    d3_geo_centroidDimension = 2;
+    var linePoint = d3_geo_centroid.point;
+    d3_geo_centroid.point = function(λ, φ) {
+      linePoint(λ00 = λ, φ00 = φ);
+    };
+    d3_geo_centroid.lineEnd = function() {
+      d3_geo_centroid.point(λ00, φ00);
+      d3_geo_centroidLineEnd();
+      d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd;
+    };
+  }
+  function d3_geo_centroidLineStart() {
+    var x0, y0, z0;
+    if (d3_geo_centroidDimension > 1) return;
+    if (d3_geo_centroidDimension < 1) {
+      d3_geo_centroidDimension = 1;
+      d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
+    }
+    d3_geo_centroid.point = function(λ, φ) {
+      λ *= d3_radians;
+      var cosφ = Math.cos(φ *= d3_radians);
+      x0 = cosφ * Math.cos(λ);
+      y0 = cosφ * Math.sin(λ);
+      z0 = Math.sin(φ);
+      d3_geo_centroid.point = nextPoint;
+    };
+    function nextPoint(λ, φ) {
+      λ *= d3_radians;
+      var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), w = Math.atan2(Math.sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);
+      d3_geo_centroidW += w;
+      d3_geo_centroidX += w * (x0 + (x0 = x));
+      d3_geo_centroidY += w * (y0 + (y0 = y));
+      d3_geo_centroidZ += w * (z0 + (z0 = z));
+    }
+  }
+  function d3_geo_centroidLineEnd() {
+    d3_geo_centroid.point = d3_geo_centroidPoint;
+  }
+  d3.geo.circle = function() {
+    var origin = [ 0, 0 ], angle, precision = 6, interpolate;
+    function circle() {
+      var center = typeof origin === "function" ? origin.apply(this, arguments) : origin, rotate = d3_geo_rotation(-center[0] * d3_radians, -center[1] * d3_radians, 0).invert, ring = [];
+      interpolate(null, null, 1, {
+        point: function(x, y) {
+          ring.push(x = rotate(x, y));
+          x[0] *= d3_degrees, x[1] *= d3_degrees;
+        }
+      });
+      return {
+        type: "Polygon",
+        coordinates: [ ring ]
+      };
+    }
+    circle.origin = function(x) {
+      if (!arguments.length) return origin;
+      origin = x;
+      return circle;
+    };
+    circle.angle = function(x) {
+      if (!arguments.length) return angle;
+      interpolate = d3_geo_circleInterpolate((angle = +x) * d3_radians, precision * d3_radians);
+      return circle;
+    };
+    circle.precision = function(_) {
+      if (!arguments.length) return precision;
+      interpolate = d3_geo_circleInterpolate(angle * d3_radians, (precision = +_) * d3_radians);
+      return circle;
+    };
+    return circle.angle(90);
+  };
+  function d3_geo_circleInterpolate(radians, precision) {
+    var cr = Math.cos(radians), sr = Math.sin(radians);
+    return function(from, to, direction, listener) {
+      if (from != null) {
+        from = d3_geo_circleAngle(cr, from);
+        to = d3_geo_circleAngle(cr, to);
+        if (direction > 0 ? from < to : from > to) from += direction * 2 * π;
+      } else {
+        from = radians + direction * 2 * π;
+        to = radians;
+      }
+      var point;
+      for (var step = direction * precision, t = from; direction > 0 ? t > to : t < to; t -= step) {
+        listener.point((point = d3_geo_spherical([ cr, -sr * Math.cos(t), -sr * Math.sin(t) ]))[0], point[1]);
+      }
+    };
+  }
+  function d3_geo_circleAngle(cr, point) {
+    var a = d3_geo_cartesian(point);
+    a[0] -= cr;
+    d3_geo_cartesianNormalize(a);
+    var angle = Math.acos(Math.max(-1, Math.min(1, -a[1])));
+    return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ε) % (2 * Math.PI);
+  }
+  function d3_geo_clip(pointVisible, clipLine, interpolate) {
+    return function(listener) {
+      var line = clipLine(listener);
+      var clip = {
+        point: point,
+        lineStart: lineStart,
+        lineEnd: lineEnd,
+        polygonStart: function() {
+          clip.point = pointRing;
+          clip.lineStart = ringStart;
+          clip.lineEnd = ringEnd;
+          invisible = false;
+          invisibleArea = visibleArea = 0;
+          segments = [];
+          listener.polygonStart();
+        },
+        polygonEnd: function() {
+          clip.point = point;
+          clip.lineStart = lineStart;
+          clip.lineEnd = lineEnd;
+          segments = d3.merge(segments);
+          if (segments.length) {
+            d3_geo_clipPolygon(segments, interpolate, listener);
+          } else if (visibleArea < -ε || invisible && invisibleArea < -ε) {
+            listener.lineStart();
+            interpolate(null, null, 1, listener);
+            listener.lineEnd();
+          }
+          listener.polygonEnd();
+          segments = null;
+        },
+        sphere: function() {
+          listener.polygonStart();
+          listener.lineStart();
+          interpolate(null, null, 1, listener);
+          listener.lineEnd();
+          listener.polygonEnd();
+        }
+      };
+      function point(λ, φ) {
+        if (pointVisible(λ, φ)) listener.point(λ, φ);
+      }
+      function pointLine(λ, φ) {
+        line.point(λ, φ);
+      }
+      function lineStart() {
+        clip.point = pointLine;
+        line.lineStart();
+      }
+      function lineEnd() {
+        clip.point = point;
+        line.lineEnd();
+      }
+      var segments, visibleArea, invisibleArea, invisible;
+      var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), ring;
+      function pointRing(λ, φ) {
+        ringListener.point(λ, φ);
+        ring.push([ λ, φ ]);
+      }
+      function ringStart() {
+        ringListener.lineStart();
+        ring = [];
+      }
+      function ringEnd() {
+        pointRing(ring[0][0], ring[0][1]);
+        ringListener.lineEnd();
+        var clean = ringListener.clean(), ringSegments = buffer.buffer(), segment, n = ringSegments.length;
+        if (!n) {
+          invisible = true;
+          invisibleArea += d3_geo_clipAreaRing(ring, -1);
+          ring = null;
+          return;
+        }
+        ring = null;
+        if (clean & 1) {
+          segment = ringSegments[0];
+          visibleArea += d3_geo_clipAreaRing(segment, 1);
+          var n = segment.length - 1, i = -1, point;
+          listener.lineStart();
+          while (++i < n) listener.point((point = segment[i])[0], point[1]);
+          listener.lineEnd();
+          return;
+        }
+        if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));
+        segments.push(ringSegments.filter(d3_geo_clipSegmentLength1));
+      }
+      return clip;
+    };
+  }
+  function d3_geo_clipPolygon(segments, interpolate, listener) {
+    var subject = [], clip = [];
+    segments.forEach(function(segment) {
+      if ((n = segment.length) <= 1) return;
+      var n, p0 = segment[0], p1 = segment[n - 1];
+      if (d3_geo_sphericalEqual(p0, p1)) {
+        listener.lineStart();
+        for (var i = 0; i < n; ++i) listener.point((p0 = segment[i])[0], p0[1]);
+        listener.lineEnd();
+        return;
+      }
+      var a = {
+        point: p0,
+        points: segment,
+        other: null,
+        visited: false,
+        entry: true,
+        subject: true
+      }, b = {
+        point: p0,
+        points: [ p0 ],
+        other: a,
+        visited: false,
+        entry: false,
+        subject: false
+      };
+      a.other = b;
+      subject.push(a);
+      clip.push(b);
+      a = {
+        point: p1,
+        points: [ p1 ],
+        other: null,
+        visited: false,
+        entry: false,
+        subject: true
+      };
+      b = {
+        point: p1,
+        points: [ p1 ],
+        other: a,
+        visited: false,
+        entry: true,
+        subject: false
+      };
+      a.other = b;
+      subject.push(a);
+      clip.push(b);
+    });
+    clip.sort(d3_geo_clipSort);
+    d3_geo_clipLinkCircular(subject);
+    d3_geo_clipLinkCircular(clip);
+    if (!subject.length) return;
+    var start = subject[0], current, points, point;
+    while (1) {
+      current = start;
+      while (current.visited) if ((current = current.next) === start) return;
+      points = current.points;
+      listener.lineStart();
+      do {
+        current.visited = current.other.visited = true;
+        if (current.entry) {
+          if (current.subject) {
+            for (var i = 0; i < points.length; i++) listener.point((point = points[i])[0], point[1]);
+          } else {
+            interpolate(current.point, current.next.point, 1, listener);
+          }
+          current = current.next;
+        } else {
+          if (current.subject) {
+            points = current.prev.points;
+            for (var i = points.length; --i >= 0; ) listener.point((point = points[i])[0], point[1]);
+          } else {
+            interpolate(current.point, current.prev.point, -1, listener);
+          }
+          current = current.prev;
+        }
+        current = current.other;
+        points = current.points;
+      } while (!current.visited);
+      listener.lineEnd();
+    }
+  }
+  function d3_geo_clipLinkCircular(array) {
+    if (!(n = array.length)) return;
+    var n, i = 0, a = array[0], b;
+    while (++i < n) {
+      a.next = b = array[i];
+      b.prev = a;
+      a = b;
+    }
+    a.next = b = array[0];
+    b.prev = a;
+  }
+  function d3_geo_clipSort(a, b) {
+    return ((a = a.point)[0] < 0 ? a[1] - π / 2 - ε : π / 2 - a[1]) - ((b = b.point)[0] < 0 ? b[1] - π / 2 - ε : π / 2 - b[1]);
+  }
+  function d3_geo_clipSegmentLength1(segment) {
+    return segment.length > 1;
+  }
+  function d3_geo_clipBufferListener() {
+    var lines = [], line;
+    return {
+      lineStart: function() {
+        lines.push(line = []);
+      },
+      point: function(λ, φ) {
+        line.push([ λ, φ ]);
+      },
+      lineEnd: d3_noop,
+      buffer: function() {
+        var buffer = lines;
+        lines = [];
+        line = null;
+        return buffer;
+      }
+    };
+  }
+  function d3_geo_clipAreaRing(ring, invisible) {
+    if (!(n = ring.length)) return 0;
+    var n, i = 0, area = 0, p = ring[0], λ = p[0], φ = p[1], cosφ = Math.cos(φ), x0 = Math.atan2(invisible * Math.sin(λ) * cosφ, Math.sin(φ)), y0 = 1 - invisible * Math.cos(λ) * cosφ, x1 = x0, x, y;
+    while (++i < n) {
+      p = ring[i];
+      cosφ = Math.cos(φ = p[1]);
+      x = Math.atan2(invisible * Math.sin(λ = p[0]) * cosφ, Math.sin(φ));
+      y = 1 - invisible * Math.cos(λ) * cosφ;
+      if (Math.abs(y0 - 2) < ε && Math.abs(y - 2) < ε) continue;
+      if (Math.abs(y) < ε || Math.abs(y0) < ε) {} else if (Math.abs(Math.abs(x - x0) - π) < ε) {
+        if (y + y0 > 2) area += 4 * (x - x0);
+      } else if (Math.abs(y0 - 2) < ε) area += 4 * (x - x1); else area += ((3 * π + x - x0) % (2 * π) - π) * (y0 + y);
+      x1 = x0, x0 = x, y0 = y;
+    }
+    return area;
+  }
+  var d3_geo_clipAntimeridian = d3_geo_clip(d3_true, d3_geo_clipAntimeridianLine, d3_geo_clipAntimeridianInterpolate);
+  function d3_geo_clipAntimeridianLine(listener) {
+    var λ0 = NaN, φ0 = NaN, sλ0 = NaN, clean;
+    return {
+      lineStart: function() {
+        listener.lineStart();
+        clean = 1;
+      },
+      point: function(λ1, φ1) {
+        var sλ1 = λ1 > 0 ? π : -π, dλ = Math.abs(λ1 - λ0);
+        if (Math.abs(dλ - π) < ε) {
+          listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? π / 2 : -π / 2);
+          listener.point(sλ0, φ0);
+          listener.lineEnd();
+          listener.lineStart();
+          listener.point(sλ1, φ0);
+          listener.point(λ1, φ0);
+          clean = 0;
+        } else if (sλ0 !== sλ1 && dλ >= π) {
+          if (Math.abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε;
+          if (Math.abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε;
+          φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1);
+          listener.point(sλ0, φ0);
+          listener.lineEnd();
+          listener.lineStart();
+          listener.point(sλ1, φ0);
+          clean = 0;
+        }
+        listener.point(λ0 = λ1, φ0 = φ1);
+        sλ0 = sλ1;
+      },
+      lineEnd: function() {
+        listener.lineEnd();
+        λ0 = φ0 = NaN;
+      },
+      clean: function() {
+        return 2 - clean;
+      }
+    };
+  }
+  function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) {
+    var cosφ0, cosφ1, sinλ0_λ1 = Math.sin(λ0 - λ1);
+    return Math.abs(sinλ0_λ1) > ε ? Math.atan((Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1) - Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0)) / (cosφ0 * cosφ1 * sinλ0_λ1)) : (φ0 + φ1) / 2;
+  }
+  function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) {
+    var φ;
+    if (from == null) {
+      φ = direction * π / 2;
+      listener.point(-π, φ);
+      listener.point(0, φ);
+      listener.point(π, φ);
+      listener.point(π, 0);
+      listener.point(π, -φ);
+      listener.point(0, -φ);
+      listener.point(-π, -φ);
+      listener.point(-π, 0);
+      listener.point(-π, φ);
+    } else if (Math.abs(from[0] - to[0]) > ε) {
+      var s = (from[0] < to[0] ? 1 : -1) * π;
+      φ = direction * s / 2;
+      listener.point(-s, φ);
+      listener.point(0, φ);
+      listener.point(s, φ);
+    } else {
+      listener.point(to[0], to[1]);
+    }
+  }
+  function d3_geo_clipCircle(degrees) {
+    var radians = degrees * d3_radians, cr = Math.cos(radians), interpolate = d3_geo_circleInterpolate(radians, 6 * d3_radians);
+    return d3_geo_clip(visible, clipLine, interpolate);
+    function visible(λ, φ) {
+      return Math.cos(λ) * Math.cos(φ) > cr;
+    }
+    function clipLine(listener) {
+      var point0, v0, v00, clean;
+      return {
+        lineStart: function() {
+          v00 = v0 = false;
+          clean = 1;
+        },
+        point: function(λ, φ) {
+          var point1 = [ λ, φ ], point2, v = visible(λ, φ);
+          if (!point0 && (v00 = v0 = v)) listener.lineStart();
+          if (v !== v0) {
+            point2 = intersect(point0, point1);
+            if (d3_geo_sphericalEqual(point0, point2) || d3_geo_sphericalEqual(point1, point2)) {
+              point1[0] += ε;
+              point1[1] += ε;
+              v = visible(point1[0], point1[1]);
+            }
+          }
+          if (v !== v0) {
+            clean = 0;
+            if (v0 = v) {
+              listener.lineStart();
+              point2 = intersect(point1, point0);
+              listener.point(point2[0], point2[1]);
+            } else {
+              point2 = intersect(point0, point1);
+              listener.point(point2[0], point2[1]);
+              listener.lineEnd();
+            }
+            point0 = point2;
+          }
+          if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) listener.point(point1[0], point1[1]);
+          point0 = point1;
+        },
+        lineEnd: function() {
+          if (v0) listener.lineEnd();
+          point0 = null;
+        },
+        clean: function() {
+          return clean | (v00 && v0) << 1;
+        }
+      };
+    }
+    function intersect(a, b) {
+      var pa = d3_geo_cartesian(a, 0), pb = d3_geo_cartesian(b, 0);
+      var n1 = [ 1, 0, 0 ], n2 = d3_geo_cartesianCross(pa, pb), n2n2 = d3_geo_cartesianDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2;
+      if (!determinant) return a;
+      var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = d3_geo_cartesianCross(n1, n2), A = d3_geo_cartesianScale(n1, c1), B = d3_geo_cartesianScale(n2, c2);
+      d3_geo_cartesianAdd(A, B);
+      var u = n1xn2, w = d3_geo_cartesianDot(A, u), uu = d3_geo_cartesianDot(u, u), t = Math.sqrt(w * w - uu * (d3_geo_cartesianDot(A, A) - 1)), q = d3_geo_cartesianScale(u, (-w - t) / uu);
+      d3_geo_cartesianAdd(q, A);
+      return d3_geo_spherical(q);
+    }
+  }
+  function d3_geo_compose(a, b) {
+    function compose(x, y) {
+      return x = a(x, y), b(x[0], x[1]);
+    }
+    if (a.invert && b.invert) compose.invert = function(x, y) {
+      return x = b.invert(x, y), x && a.invert(x[0], x[1]);
+    };
+    return compose;
+  }
+  function d3_geo_equirectangular(λ, φ) {
+    return [ λ, φ ];
+  }
+  (d3.geo.equirectangular = function() {
+    return d3_geo_projection(d3_geo_equirectangular).scale(250 / π);
+  }).raw = d3_geo_equirectangular.invert = d3_geo_equirectangular;
+  var d3_geo_gnomonic = d3_geo_azimuthal(function(cosλcosφ) {
+    return 1 / cosλcosφ;
+  }, Math.atan);
+  (d3.geo.gnomonic = function() {
+    return d3_geo_projection(d3_geo_gnomonic);
+  }).raw = d3_geo_gnomonic;
+  d3.geo.graticule = function() {
+    var x1, x0, y1, y0, dx = 22.5, dy = dx, x, y, precision = 2.5;
+    function graticule() {
+      return {
+        type: "MultiLineString",
+        coordinates: lines()
+      };
+    }
+    function lines() {
+      return d3.range(Math.ceil(x0 / dx) * dx, x1, dx).map(x).concat(d3.range(Math.ceil(y0 / dy) * dy, y1, dy).map(y));
+    }
+    graticule.lines = function() {
+      return lines().map(function(coordinates) {
+        return {
+          type: "LineString",
+          coordinates: coordinates
+        };
+      });
+    };
+    graticule.outline = function() {
+      return {
+        type: "Polygon",
+        coordinates: [ x(x0).concat(y(y1).slice(1), x(x1).reverse().slice(1), y(y0).reverse().slice(1)) ]
+      };
+    };
+    graticule.extent = function(_) {
+      if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ];
+      x0 = +_[0][0], x1 = +_[1][0];
+      y0 = +_[0][1], y1 = +_[1][1];
+      if (x0 > x1) _ = x0, x0 = x1, x1 = _;
+      if (y0 > y1) _ = y0, y0 = y1, y1 = _;
+      return graticule.precision(precision);
+    };
+    graticule.step = function(_) {
+      if (!arguments.length) return [ dx, dy ];
+      dx = +_[0], dy = +_[1];
+      return graticule;
+    };
+    graticule.precision = function(_) {
+      if (!arguments.length) return precision;
+      precision = +_;
+      x = d3_geo_graticuleX(y0, y1, precision);
+      y = d3_geo_graticuleY(x0, x1, precision);
+      return graticule;
+    };
+    return graticule.extent([ [ -180 + ε, -90 + ε ], [ 180 - ε, 90 - ε ] ]);
+  };
+  function d3_geo_graticuleX(y0, y1, dy) {
+    var y = d3.range(y0, y1 - ε, dy).concat(y1);
+    return function(x) {
+      return y.map(function(y) {
+        return [ x, y ];
+      });
+    };
+  }
+  function d3_geo_graticuleY(x0, x1, dx) {
+    var x = d3.range(x0, x1 - ε, dx).concat(x1);
+    return function(y) {
+      return x.map(function(x) {
+        return [ x, y ];
+      });
+    };
+  }
+  function d3_geo_haversin(x) {
+    return (x = Math.sin(x / 2)) * x;
+  }
+  d3.geo.interpolate = function(source, target) {
+    return d3_geo_interpolate(source[0] * d3_radians, source[1] * d3_radians, target[0] * d3_radians, target[1] * d3_radians);
+  };
+  function d3_geo_interpolate(x0, y0, x1, y1) {
+    var cy0 = Math.cos(y0), sy0 = Math.sin(y0), cy1 = Math.cos(y1), sy1 = Math.sin(y1), kx0 = cy0 * Math.cos(x0), ky0 = cy0 * Math.sin(x0), kx1 = cy1 * Math.cos(x1), ky1 = cy1 * Math.sin(x1), d = 2 * Math.asin(Math.sqrt(d3_geo_haversin(y1 - y0) + cy0 * cy1 * d3_geo_haversin(x1 - x0))), k = 1 / Math.sin(d);
+    var interpolate = d ? function(t) {
+      var B = Math.sin(t *= d) * k, A = Math.sin(d - t) * k, x = A * kx0 + B * kx1, y = A * ky0 + B * ky1, z = A * sy0 + B * sy1;
+      return [ Math.atan2(y, x) * d3_degrees, Math.atan2(z, Math.sqrt(x * x + y * y)) * d3_degrees ];
+    } : function() {
+      return [ x0 * d3_degrees, y0 * d3_degrees ];
+    };
+    interpolate.distance = d;
+    return interpolate;
+  }
+  d3.geo.greatArc = function() {
+    var source = d3_source, source_, target = d3_target, target_, precision = 6 * d3_radians, interpolate;
+    function greatArc() {
+      var p0 = source_ || source.apply(this, arguments), p1 = target_ || target.apply(this, arguments), i = interpolate || d3.geo.interpolate(p0, p1), t = 0, dt = precision / i.distance, coordinates = [ p0 ];
+      while ((t += dt) < 1) coordinates.push(i(t));
+      coordinates.push(p1);
+      return {
+        type: "LineString",
+        coordinates: coordinates
+      };
+    }
+    greatArc.distance = function() {
+      return (interpolate || d3.geo.interpolate(source_ || source.apply(this, arguments), target_ || target.apply(this, arguments))).distance;
+    };
+    greatArc.source = function(_) {
+      if (!arguments.length) return source;
+      source = _, source_ = typeof _ === "function" ? null : _;
+      interpolate = source_ && target_ ? d3.geo.interpolate(source_, target_) : null;
+      return greatArc;
+    };
+    greatArc.target = function(_) {
+      if (!arguments.length) return target;
+      target = _, target_ = typeof _ === "function" ? null : _;
+      interpolate = source_ && target_ ? d3.geo.interpolate(source_, target_) : null;
+      return greatArc;
+    };
+    greatArc.precision = function(_) {
+      if (!arguments.length) return precision / d3_radians;
+      precision = _ * d3_radians;
+      return greatArc;
+    };
+    return greatArc;
+  };
+  function d3_geo_mercator(λ, φ) {
+    return [ λ / (2 * π), Math.max(-.5, Math.min(+.5, Math.log(Math.tan(π / 4 + φ / 2)) / (2 * π))) ];
+  }
+  d3_geo_mercator.invert = function(x, y) {
+    return [ 2 * π * x, 2 * Math.atan(Math.exp(2 * π * y)) - π / 2 ];
+  };
+  (d3.geo.mercator = function() {
+    return d3_geo_projection(d3_geo_mercator).scale(500);
+  }).raw = d3_geo_mercator;
+  var d3_geo_orthographic = d3_geo_azimuthal(function() {
+    return 1;
+  }, Math.asin);
+  (d3.geo.orthographic = function() {
+    return d3_geo_projection(d3_geo_orthographic);
+  }).raw = d3_geo_orthographic;
+  d3.geo.path = function() {
+    var pointRadius = 4.5, projection, context, projectStream, contextStream;
+    function path(object) {
+      if (object) d3.geo.stream(object, projectStream(contextStream.pointRadius(typeof pointRadius === "function" ? +pointRadius.apply(this, arguments) : pointRadius)));
+      return contextStream.result();
+    }
+    path.area = function(object) {
+      d3_geo_pathAreaSum = 0;
+      d3.geo.stream(object, projectStream(d3_geo_pathArea));
+      return d3_geo_pathAreaSum;
+    };
+    path.centroid = function(object) {
+      d3_geo_centroidDimension = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
+      d3.geo.stream(object, projectStream(d3_geo_pathCentroid));
+      return d3_geo_centroidZ ? [ d3_geo_centroidX / d3_geo_centroidZ, d3_geo_centroidY / d3_geo_centroidZ ] : undefined;
+    };
+    path.bounds = function(object) {
+      return d3_geo_bounds(projectStream)(object);
+    };
+    path.projection = function(_) {
+      if (!arguments.length) return projection;
+      projectStream = (projection = _) ? _.stream || d3_geo_pathProjectStream(_) : d3_identity;
+      return path;
+    };
+    path.context = function(_) {
+      if (!arguments.length) return context;
+      contextStream = (context = _) == null ? new d3_geo_pathBuffer() : new d3_geo_pathContext(_);
+      return path;
+    };
+    path.pointRadius = function(_) {
+      if (!arguments.length) return pointRadius;
+      pointRadius = typeof _ === "function" ? _ : +_;
+      return path;
+    };
+    return path.projection(d3.geo.albersUsa()).context(null);
+  };
+  function d3_geo_pathCircle(radius) {
+    return "m0," + radius + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius + "a" + radius + "," + radius + " 0 1,1 0," + +2 * radius + "z";
+  }
+  function d3_geo_pathProjectStream(project) {
+    var resample = d3_geo_resample(function(λ, φ) {
+      return project([ λ * d3_degrees, φ * d3_degrees ]);
+    });
+    return function(stream) {
+      stream = resample(stream);
+      return {
+        point: function(λ, φ) {
+          stream.point(λ * d3_radians, φ * d3_radians);
+        },
+        sphere: function() {
+          stream.sphere();
+        },
+        lineStart: function() {
+          stream.lineStart();
+        },
+        lineEnd: function() {
+          stream.lineEnd();
+        },
+        polygonStart: function() {
+          stream.polygonStart();
+        },
+        polygonEnd: function() {
+          stream.polygonEnd();
+        }
+      };
+    };
+  }
+  function d3_geo_pathBuffer() {
+    var pointCircle = d3_geo_pathCircle(4.5), buffer = [];
+    var stream = {
+      point: point,
+      lineStart: function() {
+        stream.point = pointLineStart;
+      },
+      lineEnd: lineEnd,
+      polygonStart: function() {
+        stream.lineEnd = lineEndPolygon;
+      },
+      polygonEnd: function() {
+        stream.lineEnd = lineEnd;
+        stream.point = point;
+      },
+      pointRadius: function(_) {
+        pointCircle = d3_geo_pathCircle(_);
+        return stream;
+      },
+      result: function() {
+        if (buffer.length) {
+          var result = buffer.join("");
+          buffer = [];
+          return result;
+        }
+      }
+    };
+    function point(x, y) {
+      buffer.push("M", x, ",", y, pointCircle);
+    }
+    function pointLineStart(x, y) {
+      buffer.push("M", x, ",", y);
+      stream.point = pointLine;
+    }
+    function pointLine(x, y) {
+      buffer.push("L", x, ",", y);
+    }
+    function lineEnd() {
+      stream.point = point;
+    }
+    function lineEndPolygon() {
+      buffer.push("Z");
+    }
+    return stream;
+  }
+  function d3_geo_pathContext(context) {
+    var pointRadius = 4.5;
+    var stream = {
+      point: point,
+      lineStart: function() {
+        stream.point = pointLineStart;
+      },
+      lineEnd: lineEnd,
+      polygonStart: function() {
+        stream.lineEnd = lineEndPolygon;
+      },
+      polygonEnd: function() {
+        stream.lineEnd = lineEnd;
+        stream.point = point;
+      },
+      pointRadius: function(_) {
+        pointRadius = _;
+        return stream;
+      },
+      result: d3_noop
+    };
+    function point(x, y) {
+      context.moveTo(x, y);
+      context.arc(x, y, pointRadius, 0, 2 * π);
+    }
+    function pointLineStart(x, y) {
+      context.moveTo(x, y);
+      stream.point = pointLine;
+    }
+    function pointLine(x, y) {
+      context.lineTo(x, y);
+    }
+    function lineEnd() {
+      stream.point = point;
+    }
+    function lineEndPolygon() {
+      context.closePath();
+    }
+    return stream;
+  }
+  var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = {
+    point: d3_noop,
+    lineStart: d3_noop,
+    lineEnd: d3_noop,
+    polygonStart: function() {
+      d3_geo_pathAreaPolygon = 0;
+      d3_geo_pathArea.lineStart = d3_geo_pathAreaRingStart;
+    },
+    polygonEnd: function() {
+      d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop;
+      d3_geo_pathAreaSum += Math.abs(d3_geo_pathAreaPolygon / 2);
+    }
+  };
+  function d3_geo_pathAreaRingStart() {
+    var x00, y00, x0, y0;
+    d3_geo_pathArea.point = function(x, y) {
+      d3_geo_pathArea.point = nextPoint;
+      x00 = x0 = x, y00 = y0 = y;
+    };
+    function nextPoint(x, y) {
+      d3_geo_pathAreaPolygon += y0 * x - x0 * y;
+      x0 = x, y0 = y;
+    }
+    d3_geo_pathArea.lineEnd = function() {
+      nextPoint(x00, y00);
+    };
+  }
+  var d3_geo_pathCentroid = {
+    point: d3_geo_pathCentroidPoint,
+    lineStart: d3_geo_pathCentroidLineStart,
+    lineEnd: d3_geo_pathCentroidLineEnd,
+    polygonStart: function() {
+      d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart;
+    },
+    polygonEnd: function() {
+      d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;
+      d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart;
+      d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd;
+    }
+  };
+  function d3_geo_pathCentroidPoint(x, y) {
+    if (d3_geo_centroidDimension) return;
+    d3_geo_centroidX += x;
+    d3_geo_centroidY += y;
+    ++d3_geo_centroidZ;
+  }
+  function d3_geo_pathCentroidLineStart() {
+    var x0, y0;
+    if (d3_geo_centroidDimension !== 1) {
+      if (d3_geo_centroidDimension < 1) {
+        d3_geo_centroidDimension = 1;
+        d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
+      } else return;
+    }
+    d3_geo_pathCentroid.point = function(x, y) {
+      d3_geo_pathCentroid.point = nextPoint;
+      x0 = x, y0 = y;
+    };
+    function nextPoint(x, y) {
+      var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);
+      d3_geo_centroidX += z * (x0 + x) / 2;
+      d3_geo_centroidY += z * (y0 + y) / 2;
+      d3_geo_centroidZ += z;
+      x0 = x, y0 = y;
+    }
+  }
+  function d3_geo_pathCentroidLineEnd() {
+    d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;
+  }
+  function d3_geo_pathCentroidRingStart() {
+    var x00, y00, x0, y0;
+    if (d3_geo_centroidDimension < 2) {
+      d3_geo_centroidDimension = 2;
+      d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
+    }
+    d3_geo_pathCentroid.point = function(x, y) {
+      d3_geo_pathCentroid.point = nextPoint;
+      x00 = x0 = x, y00 = y0 = y;
+    };
+    function nextPoint(x, y) {
+      var z = y0 * x - x0 * y;
+      d3_geo_centroidX += z * (x0 + x);
+      d3_geo_centroidY += z * (y0 + y);
+      d3_geo_centroidZ += z * 3;
+      x0 = x, y0 = y;
+    }
+    d3_geo_pathCentroid.lineEnd = function() {
+      nextPoint(x00, y00);
+    };
+  }
+  d3.geo.area = function(object) {
+    d3_geo_areaSum = 0;
+    d3.geo.stream(object, d3_geo_area);
+    return d3_geo_areaSum;
+  };
+  var d3_geo_areaSum, d3_geo_areaRingU, d3_geo_areaRingV;
+  var d3_geo_area = {
+    sphere: function() {
+      d3_geo_areaSum += 4 * π;
+    },
+    point: d3_noop,
+    lineStart: d3_noop,
+    lineEnd: d3_noop,
+    polygonStart: function() {
+      d3_geo_areaRingU = 1, d3_geo_areaRingV = 0;
+      d3_geo_area.lineStart = d3_geo_areaRingStart;
+    },
+    polygonEnd: function() {
+      var area = 2 * Math.atan2(d3_geo_areaRingV, d3_geo_areaRingU);
+      d3_geo_areaSum += area < 0 ? 4 * π + area : area;
+      d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop;
+    }
+  };
+  function d3_geo_areaRingStart() {
+    var λ00, φ00, λ0, cosφ0, sinφ0;
+    d3_geo_area.point = function(λ, φ) {
+      d3_geo_area.point = nextPoint;
+      λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4),
+      sinφ0 = Math.sin(φ);
+    };
+    function nextPoint(λ, φ) {
+      λ *= d3_radians;
+      φ = φ * d3_radians / 2 + π / 4;
+      var dλ = λ - λ0, cosφ = Math.cos(φ), sinφ = Math.sin(φ), k = sinφ0 * sinφ, u0 = d3_geo_areaRingU, v0 = d3_geo_areaRingV, u = cosφ0 * cosφ + k * Math.cos(dλ), v = k * Math.sin(dλ);
+      d3_geo_areaRingU = u0 * u - v0 * v;
+      d3_geo_areaRingV = v0 * u + u0 * v;
+      λ0 = λ, cosφ0 = cosφ, sinφ0 = sinφ;
+    }
+    d3_geo_area.lineEnd = function() {
+      nextPoint(λ00, φ00);
+    };
+  }
+  d3.geo.projection = d3_geo_projection;
+  d3.geo.projectionMutator = d3_geo_projectionMutator;
+  function d3_geo_projection(project) {
+    return d3_geo_projectionMutator(function() {
+      return project;
+    })();
+  }
+  function d3_geo_projectionMutator(projectAt) {
+    var project, rotate, projectRotate, projectResample = d3_geo_resample(function(x, y) {
+      x = project(x, y);
+      return [ x[0] * k + δx, δy - x[1] * k ];
+    }), k = 150, x = 480, y = 250, λ = 0, φ = 0, δλ = 0, δφ = 0, δγ = 0, δx, δy, clip = d3_geo_clipAntimeridian, clipAngle = null;
+    function projection(point) {
+      point = projectRotate(point[0] * d3_radians, point[1] * d3_radians);
+      return [ point[0] * k + δx, δy - point[1] * k ];
+    }
+    function invert(point) {
+      point = projectRotate.invert((point[0] - δx) / k, (δy - point[1]) / k);
+      return point && [ point[0] * d3_degrees, point[1] * d3_degrees ];
+    }
+    projection.stream = function(stream) {
+      return d3_geo_projectionRadiansRotate(rotate, clip(projectResample(stream)));
+    };
+    projection.clipAngle = function(_) {
+      if (!arguments.length) return clipAngle;
+      clip = _ == null ? (clipAngle = _, d3_geo_clipAntimeridian) : d3_geo_clipCircle(clipAngle = +_);
+      return projection;
+    };
+    projection.scale = function(_) {
+      if (!arguments.length) return k;
+      k = +_;
+      return reset();
+    };
+    projection.translate = function(_) {
+      if (!arguments.length) return [ x, y ];
+      x = +_[0];
+      y = +_[1];
+      return reset();
+    };
+    projection.center = function(_) {
+      if (!arguments.length) return [ λ * d3_degrees, φ * d3_degrees ];
+      λ = _[0] % 360 * d3_radians;
+      φ = _[1] % 360 * d3_radians;
+      return reset();
+    };
+    projection.rotate = function(_) {
+      if (!arguments.length) return [ δλ * d3_degrees, δφ * d3_degrees, δγ * d3_degrees ];
+      δλ = _[0] % 360 * d3_radians;
+      δφ = _[1] % 360 * d3_radians;
+      δγ = _.length > 2 ? _[2] % 360 * d3_radians : 0;
+      return reset();
+    };
+    d3.rebind(projection, projectResample, "precision");
+    function reset() {
+      projectRotate = d3_geo_compose(rotate = d3_geo_rotation(δλ, δφ, δγ), project);
+      var center = project(λ, φ);
+      δx = x - center[0] * k;
+      δy = y + center[1] * k;
+      return projection;
+    }
+    return function() {
+      project = projectAt.apply(this, arguments);
+      projection.invert = project.invert && invert;
+      return reset();
+    };
+  }
+  function d3_geo_projectionRadiansRotate(rotate, stream) {
+    return {
+      point: function(x, y) {
+        y = rotate(x * d3_radians, y * d3_radians), x = y[0];
+        stream.point(x > π ? x - 2 * π : x < -π ? x + 2 * π : x, y[1]);
+      },
+      sphere: function() {
+        stream.sphere();
+      },
+      lineStart: function() {
+        stream.lineStart();
+      },
+      lineEnd: function() {
+        stream.lineEnd();
+      },
+      polygonStart: function() {
+        stream.polygonStart();
+      },
+      polygonEnd: function() {
+        stream.polygonEnd();
+      }
+    };
+  }
+  function d3_geo_rotation(δλ, δφ, δγ) {
+    return δλ ? δφ || δγ ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ)) : d3_geo_rotationλ(δλ) : δφ || δγ ? d3_geo_rotationφγ(δφ, δγ) : d3_geo_equirectangular;
+  }
+  function d3_geo_forwardRotationλ(δλ) {
+    return function(λ, φ) {
+      return λ += δλ, [ λ > π ? λ - 2 * π : λ < -π ? λ + 2 * π : λ, φ ];
+    };
+  }
+  function d3_geo_rotationλ(δλ) {
+    var rotation = d3_geo_forwardRotationλ(δλ);
+    rotation.invert = d3_geo_forwardRotationλ(-δλ);
+    return rotation;
+  }
+  function d3_geo_rotationφγ(δφ, δγ) {
+    var cosδφ = Math.cos(δφ), sinδφ = Math.sin(δφ), cosδγ = Math.cos(δγ), sinδγ = Math.sin(δγ);
+    function rotation(λ, φ) {
+      var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδφ + x * sinδφ;
+      return [ Math.atan2(y * cosδγ - k * sinδγ, x * cosδφ - z * sinδφ), Math.asin(Math.max(-1, Math.min(1, k * cosδγ + y * sinδγ))) ];
+    }
+    rotation.invert = function(λ, φ) {
+      var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδγ - y * sinδγ;
+      return [ Math.atan2(y * cosδγ + z * sinδγ, x * cosδφ + k * sinδφ), Math.asin(Math.max(-1, Math.min(1, k * cosδφ - x * sinδφ))) ];
+    };
+    return rotation;
+  }
+  var d3_geo_stereographic = d3_geo_azimuthal(function(cosλcosφ) {
+    return 1 / (1 + cosλcosφ);
+  }, function(ρ) {
+    return 2 * Math.atan(ρ);
+  });
+  (d3.geo.stereographic = function() {
+    return d3_geo_projection(d3_geo_stereographic);
+  }).raw = d3_geo_stereographic;
+  function d3_geo_azimuthal(scale, angle) {
+    function azimuthal(λ, φ) {
+      var cosλ = Math.cos(λ), cosφ = Math.cos(φ), k = scale(cosλ * cosφ);
+      return [ k * cosφ * Math.sin(λ), k * Math.sin(φ) ];
+    }
+    azimuthal.invert = function(x, y) {
+      var ρ = Math.sqrt(x * x + y * y), c = angle(ρ), sinc = Math.sin(c), cosc = Math.cos(c);
+      return [ Math.atan2(x * sinc, ρ * cosc), Math.asin(ρ && y * sinc / ρ) ];
+    };
+    return azimuthal;
+  }
+  d3.geom = {};
+  d3.geom.hull = function(vertices) {
+    if (vertices.length < 3) return [];
+    var len = vertices.length, plen = len - 1, points = [], stack = [], i, j, h = 0, x1, y1, x2, y2, u, v, a, sp;
+    for (i = 1; i < len; ++i) {
+      if (vertices[i][1] < vertices[h][1]) {
+        h = i;
+      } else if (vertices[i][1] == vertices[h][1]) {
+        h = vertices[i][0] < vertices[h][0] ? i : h;
+      }
+    }
+    for (i = 0; i < len; ++i) {
+      if (i === h) continue;
+      y1 = vertices[i][1] - vertices[h][1];
+      x1 = vertices[i][0] - vertices[h][0];
+      points.push({
+        angle: Math.atan2(y1, x1),
+        index: i
+      });
+    }
+    points.sort(function(a, b) {
+      return a.angle - b.angle;
+    });
+    a = points[0].angle;
+    v = points[0].index;
+    u = 0;
+    for (i = 1; i < plen; ++i) {
+      j = points[i].index;
+      if (a == points[i].angle) {
+        x1 = vertices[v][0] - vertices[h][0];
+        y1 = vertices[v][1] - vertices[h][1];
+        x2 = vertices[j][0] - vertices[h][0];
+        y2 = vertices[j][1] - vertices[h][1];
+        if (x1 * x1 + y1 * y1 >= x2 * x2 + y2 * y2) {
+          points[i].index = -1;
+        } else {
+          points[u].index = -1;
+          a = points[i].angle;
+          u = i;
+          v = j;
+        }
+      } else {
+        a = points[i].angle;
+        u = i;
+        v = j;
+      }
+    }
+    stack.push(h);
+    for (i = 0, j = 0; i < 2; ++j) {
+      if (points[j].index !== -1) {
+        stack.push(points[j].index);
+        i++;
+      }
+    }
+    sp = stack.length;
+    for (;j < plen; ++j) {
+      if (points[j].index === -1) continue;
+      while (!d3_geom_hullCCW(stack[sp - 2], stack[sp - 1], points[j].index, vertices)) {
+        --sp;
+      }
+      stack[sp++] = points[j].index;
+    }
+    var poly = [];
+    for (i = 0; i < sp; ++i) {
+      poly.push(vertices[stack[i]]);
+    }
+    return poly;
+  };
+  function d3_geom_hullCCW(i1, i2, i3, v) {
+    var t, a, b, c, d, e, f;
+    t = v[i1];
+    a = t[0];
+    b = t[1];
+    t = v[i2];
+    c = t[0];
+    d = t[1];
+    t = v[i3];
+    e = t[0];
+    f = t[1];
+    return (f - b) * (c - a) - (d - b) * (e - a) > 0;
+  }
+  d3.geom.polygon = function(coordinates) {
+    coordinates.area = function() {
+      var i = 0, n = coordinates.length, area = coordinates[n - 1][1] * coordinates[0][0] - coordinates[n - 1][0] * coordinates[0][1];
+      while (++i < n) {
+        area += coordinates[i - 1][1] * coordinates[i][0] - coordinates[i - 1][0] * coordinates[i][1];
+      }
+      return area * .5;
+    };
+    coordinates.centroid = function(k) {
+      var i = -1, n = coordinates.length, x = 0, y = 0, a, b = coordinates[n - 1], c;
+      if (!arguments.length) k = -1 / (6 * coordinates.area());
+      while (++i < n) {
+        a = b;
+        b = coordinates[i];
+        c = a[0] * b[1] - b[0] * a[1];
+        x += (a[0] + b[0]) * c;
+        y += (a[1] + b[1]) * c;
+      }
+      return [ x * k, y * k ];
+    };
+    coordinates.clip = function(subject) {
+      var input, i = -1, n = coordinates.length, j, m, a = coordinates[n - 1], b, c, d;
+      while (++i < n) {
+        input = subject.slice();
+        subject.length = 0;
+        b = coordinates[i];
+        c = input[(m = input.length) - 1];
+        j = -1;
+        while (++j < m) {
+          d = input[j];
+          if (d3_geom_polygonInside(d, a, b)) {
+            if (!d3_geom_polygonInside(c, a, b)) {
+              subject.push(d3_geom_polygonIntersect(c, d, a, b));
+            }
+            subject.push(d);
+          } else if (d3_geom_polygonInside(c, a, b)) {
+            subject.push(d3_geom_polygonIntersect(c, d, a, b));
+          }
+          c = d;
+        }
+        a = b;
+      }
+      return subject;
+    };
+    return coordinates;
+  };
+  function d3_geom_polygonInside(p, a, b) {
+    return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]);
+  }
+  function d3_geom_polygonIntersect(c, d, a, b) {
+    var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21);
+    return [ x1 + ua * x21, y1 + ua * y21 ];
+  }
+  d3.geom.voronoi = function(vertices) {
+    var polygons = vertices.map(function() {
+      return [];
+    }), Z = 1e6;
+    d3_voronoi_tessellate(vertices, function(e) {
+      var s1, s2, x1, x2, y1, y2;
+      if (e.a === 1 && e.b >= 0) {
+        s1 = e.ep.r;
+        s2 = e.ep.l;
+      } else {
+        s1 = e.ep.l;
+        s2 = e.ep.r;
+      }
+      if (e.a === 1) {
+        y1 = s1 ? s1.y : -Z;
+        x1 = e.c - e.b * y1;
+        y2 = s2 ? s2.y : Z;
+        x2 = e.c - e.b * y2;
+      } else {
+        x1 = s1 ? s1.x : -Z;
+        y1 = e.c - e.a * x1;
+        x2 = s2 ? s2.x : Z;
+        y2 = e.c - e.a * x2;
+      }
+      var v1 = [ x1, y1 ], v2 = [ x2, y2 ];
+      polygons[e.region.l.index].push(v1, v2);
+      polygons[e.region.r.index].push(v1, v2);
+    });
+    polygons = polygons.map(function(polygon, i) {
+      var cx = vertices[i][0], cy = vertices[i][1], angle = polygon.map(function(v) {
+        return Math.atan2(v[0] - cx, v[1] - cy);
+      }), order = d3.range(polygon.length).sort(function(a, b) {
+        return angle[a] - angle[b];
+      });
+      return order.filter(function(d, i) {
+        return !i || angle[d] - angle[order[i - 1]] > ε;
+      }).map(function(d) {
+        return polygon[d];
+      });
+    });
+    polygons.forEach(function(polygon, i) {
+      var n = polygon.length;
+      if (!n) return polygon.push([ -Z, -Z ], [ -Z, Z ], [ Z, Z ], [ Z, -Z ]);
+      if (n > 2) return;
+      var p0 = vertices[i], p1 = polygon[0], p2 = polygon[1], x0 = p0[0], y0 = p0[1], x1 = p1[0], y1 = p1[1], x2 = p2[0], y2 = p2[1], dx = Math.abs(x2 - x1), dy = y2 - y1;
+      if (Math.abs(dy) < ε) {
+        var y = y0 < y1 ? -Z : Z;
+        polygon.push([ -Z, y ], [ Z, y ]);
+      } else if (dx < ε) {
+        var x = x0 < x1 ? -Z : Z;
+        polygon.push([ x, -Z ], [ x, Z ]);
+      } else {
+        var y = (x2 - x1) * (y1 - y0) < (x1 - x0) * (y2 - y1) ? Z : -Z, z = Math.abs(dy) - dx;
+        if (Math.abs(z) < ε) {
+          polygon.push([ dy < 0 ? y : -y, y ]);
+        } else {
+          if (z > 0) y *= -1;
+          polygon.push([ -Z, y ], [ Z, y ]);
+        }
+      }
+    });
+    return polygons;
+  };
+  var d3_voronoi_opposite = {
+    l: "r",
+    r: "l"
+  };
+  function d3_voronoi_tessellate(vertices, callback) {
+    var Sites = {
+      list: vertices.map(function(v, i) {
+        return {
+          index: i,
+          x: v[0],
+          y: v[1]
+        };
+      }).sort(function(a, b) {
+        return a.y < b.y ? -1 : a.y > b.y ? 1 : a.x < b.x ? -1 : a.x > b.x ? 1 : 0;
+      }),
+      bottomSite: null
+    };
+    var EdgeList = {
+      list: [],
+      leftEnd: null,
+      rightEnd: null,
+      init: function() {
+        EdgeList.leftEnd = EdgeList.createHalfEdge(null, "l");
+        EdgeList.rightEnd = EdgeList.createHalfEdge(null, "l");
+        EdgeList.leftEnd.r = EdgeList.rightEnd;
+        EdgeList.rightEnd.l = EdgeList.leftEnd;
+        EdgeList.list.unshift(EdgeList.leftEnd, EdgeList.rightEnd);
+      },
+      createHalfEdge: function(edge, side) {
+        return {
+          edge: edge,
+          side: side,
+          vertex: null,
+          l: null,
+          r: null
+        };
+      },
+      insert: function(lb, he) {
+        he.l = lb;
+        he.r = lb.r;
+        lb.r.l = he;
+        lb.r = he;
+      },
+      leftBound: function(p) {
+        var he = EdgeList.leftEnd;
+        do {
+          he = he.r;
+        } while (he != EdgeList.rightEnd && Geom.rightOf(he, p));
+        he = he.l;
+        return he;
+      },
+      del: function(he) {
+        he.l.r = he.r;
+        he.r.l = he.l;
+        he.edge = null;
+      },
+      right: function(he) {
+        return he.r;
+      },
+      left: function(he) {
+        return he.l;
+      },
+      leftRegion: function(he) {
+        return he.edge == null ? Sites.bottomSite : he.edge.region[he.side];
+      },
+      rightRegion: function(he) {
+        return he.edge == null ? Sites.bottomSite : he.edge.region[d3_voronoi_opposite[he.side]];
+      }
+    };
+    var Geom = {
+      bisect: function(s1, s2) {
+        var newEdge = {
+          region: {
+            l: s1,
+            r: s2
+          },
+          ep: {
+            l: null,
+            r: null
+          }
+        };
+        var dx = s2.x - s1.x, dy = s2.y - s1.y, adx = dx > 0 ? dx : -dx, ady = dy > 0 ? dy : -dy;
+        newEdge.c = s1.x * dx + s1.y * dy + (dx * dx + dy * dy) * .5;
+        if (adx > ady) {
+          newEdge.a = 1;
+          newEdge.b = dy / dx;
+          newEdge.c /= dx;
+        } else {
+          newEdge.b = 1;
+          newEdge.a = dx / dy;
+          newEdge.c /= dy;
+        }
+        return newEdge;
+      },
+      intersect: function(el1, el2) {
+        var e1 = el1.edge, e2 = el2.edge;
+        if (!e1 || !e2 || e1.region.r == e2.region.r) {
+          return null;
+        }
+        var d = e1.a * e2.b - e1.b * e2.a;
+        if (Math.abs(d) < 1e-10) {
+          return null;
+        }
+        var xint = (e1.c * e2.b - e2.c * e1.b) / d, yint = (e2.c * e1.a - e1.c * e2.a) / d, e1r = e1.region.r, e2r = e2.region.r, el, e;
+        if (e1r.y < e2r.y || e1r.y == e2r.y && e1r.x < e2r.x) {
+          el = el1;
+          e = e1;
+        } else {
+          el = el2;
+          e = e2;
+        }
+        var rightOfSite = xint >= e.region.r.x;
+        if (rightOfSite && el.side === "l" || !rightOfSite && el.side === "r") {
+          return null;
+        }
+        return {
+          x: xint,
+          y: yint
+        };
+      },
+      rightOf: function(he, p) {
+        var e = he.edge, topsite = e.region.r, rightOfSite = p.x > topsite.x;
+        if (rightOfSite && he.side === "l") {
+          return 1;
+        }
+        if (!rightOfSite && he.side === "r") {
+          return 0;
+        }
+        if (e.a === 1) {
+          var dyp = p.y - topsite.y, dxp = p.x - topsite.x, fast = 0, above = 0;
+          if (!rightOfSite && e.b < 0 || rightOfSite && e.b >= 0) {
+            above = fast = dyp >= e.b * dxp;
+          } else {
+            above = p.x + p.y * e.b > e.c;
+            if (e.b < 0) {
+              above = !above;
+            }
+            if (!above) {
+              fast = 1;
+            }
+          }
+          if (!fast) {
+            var dxs = topsite.x - e.region.l.x;
+            above = e.b * (dxp * dxp - dyp * dyp) < dxs * dyp * (1 + 2 * dxp / dxs + e.b * e.b);
+            if (e.b < 0) {
+              above = !above;
+            }
+          }
+        } else {
+          var yl = e.c - e.a * p.x, t1 = p.y - yl, t2 = p.x - topsite.x, t3 = yl - topsite.y;
+          above = t1 * t1 > t2 * t2 + t3 * t3;
+        }
+        return he.side === "l" ? above : !above;
+      },
+      endPoint: function(edge, side, site) {
+        edge.ep[side] = site;
+        if (!edge.ep[d3_voronoi_opposite[side]]) return;
+        callback(edge);
+      },
+      distance: function(s, t) {
+        var dx = s.x - t.x, dy = s.y - t.y;
+        return Math.sqrt(dx * dx + dy * dy);
+      }
+    };
+    var EventQueue = {
+      list: [],
+      insert: function(he, site, offset) {
+        he.vertex = site;
+        he.ystar = site.y + offset;
+        for (var i = 0, list = EventQueue.list, l = list.length; i < l; i++) {
+          var next = list[i];
+          if (he.ystar > next.ystar || he.ystar == next.ystar && site.x > next.vertex.x) {
+            continue;
+          } else {
+            break;
+          }
+        }
+        list.splice(i, 0, he);
+      },
+      del: function(he) {
+        for (var i = 0, ls = EventQueue.list, l = ls.length; i < l && ls[i] != he; ++i) {}
+        ls.splice(i, 1);
+      },
+      empty: function() {
+        return EventQueue.list.length === 0;
+      },
+      nextEvent: function(he) {
+        for (var i = 0, ls = EventQueue.list, l = ls.length; i < l; ++i) {
+          if (ls[i] == he) return ls[i + 1];
+        }
+        return null;
+      },
+      min: function() {
+        var elem = EventQueue.list[0];
+        return {
+          x: elem.vertex.x,
+          y: elem.ystar
+        };
+      },
+      extractMin: function() {
+        return EventQueue.list.shift();
+      }
+    };
+    EdgeList.init();
+    Sites.bottomSite = Sites.list.shift();
+    var newSite = Sites.list.shift(), newIntStar;
+    var lbnd, rbnd, llbnd, rrbnd, bisector;
+    var bot, top, temp, p, v;
+    var e, pm;
+    while (true) {
+      if (!EventQueue.empty()) {
+        newIntStar = EventQueue.min();
+      }
+      if (newSite && (EventQueue.empty() || newSite.y < newIntStar.y || newSite.y == newIntStar.y && newSite.x < newIntStar.x)) {
+        lbnd = EdgeList.leftBound(newSite);
+        rbnd = EdgeList.right(lbnd);
+        bot = EdgeList.rightRegion(lbnd);
+        e = Geom.bisect(bot, newSite);
+        bisector = EdgeList.createHalfEdge(e, "l");
+        EdgeList.insert(lbnd, bisector);
+        p = Geom.intersect(lbnd, bisector);
+        if (p) {
+          EventQueue.del(lbnd);
+          EventQueue.insert(lbnd, p, Geom.distance(p, newSite));
+        }
+        lbnd = bisector;
+        bisector = EdgeList.createHalfEdge(e, "r");
+        EdgeList.insert(lbnd, bisector);
+        p = Geom.intersect(bisector, rbnd);
+        if (p) {
+          EventQueue.insert(bisector, p, Geom.distance(p, newSite));
+        }
+        newSite = Sites.list.shift();
+      } else if (!EventQueue.empty()) {
+        lbnd = EventQueue.extractMin();
+        llbnd = EdgeList.left(lbnd);
+        rbnd = EdgeList.right(lbnd);
+        rrbnd = EdgeList.right(rbnd);
+        bot = EdgeList.leftRegion(lbnd);
+        top = EdgeList.rightRegion(rbnd);
+        v = lbnd.vertex;
+        Geom.endPoint(lbnd.edge, lbnd.side, v);
+        Geom.endPoint(rbnd.edge, rbnd.side, v);
+        EdgeList.del(lbnd);
+        EventQueue.del(rbnd);
+        EdgeList.del(rbnd);
+        pm = "l";
+        if (bot.y > top.y) {
+          temp = bot;
+          bot = top;
+          top = temp;
+          pm = "r";
+        }
+        e = Geom.bisect(bot, top);
+        bisector = EdgeList.createHalfEdge(e, pm);
+        EdgeList.insert(llbnd, bisector);
+        Geom.endPoint(e, d3_voronoi_opposite[pm], v);
+        p = Geom.intersect(llbnd, bisector);
+        if (p) {
+          EventQueue.del(llbnd);
+          EventQueue.insert(llbnd, p, Geom.distance(p, bot));
+        }
+        p = Geom.intersect(bisector, rrbnd);
+        if (p) {
+          EventQueue.insert(bisector, p, Geom.distance(p, bot));
+        }
+      } else {
+        break;
+      }
+    }
+    for (lbnd = EdgeList.right(EdgeList.leftEnd); lbnd != EdgeList.rightEnd; lbnd = EdgeList.right(lbnd)) {
+      callback(lbnd.edge);
+    }
+  }
+  d3.geom.delaunay = function(vertices) {
+    var edges = vertices.map(function() {
+      return [];
+    }), triangles = [];
+    d3_voronoi_tessellate(vertices, function(e) {
+      edges[e.region.l.index].push(vertices[e.region.r.index]);
+    });
+    edges.forEach(function(edge, i) {
+      var v = vertices[i], cx = v[0], cy = v[1];
+      edge.forEach(function(v) {
+        v.angle = Math.atan2(v[0] - cx, v[1] - cy);
+      });
+      edge.sort(function(a, b) {
+        return a.angle - b.angle;
+      });
+      for (var j = 0, m = edge.length - 1; j < m; j++) {
+        triangles.push([ v, edge[j], edge[j + 1] ]);
+      }
+    });
+    return triangles;
+  };
+  d3.geom.quadtree = function(points, x1, y1, x2, y2) {
+    var p, i = -1, n = points.length;
+    if (arguments.length < 5) {
+      if (arguments.length === 3) {
+        y2 = y1;
+        x2 = x1;
+        y1 = x1 = 0;
+      } else {
+        x1 = y1 = Infinity;
+        x2 = y2 = -Infinity;
+        while (++i < n) {
+          p = points[i];
+          if (p.x < x1) x1 = p.x;
+          if (p.y < y1) y1 = p.y;
+          if (p.x > x2) x2 = p.x;
+          if (p.y > y2) y2 = p.y;
+        }
+      }
+    }
+    var dx = x2 - x1, dy = y2 - y1;
+    if (dx > dy) y2 = y1 + dx; else x2 = x1 + dy;
+    function insert(n, p, x1, y1, x2, y2) {
+      if (isNaN(p.x) || isNaN(p.y)) return;
+      if (n.leaf) {
+        var v = n.point;
+        if (v) {
+          if (Math.abs(v.x - p.x) + Math.abs(v.y - p.y) < .01) {
+            insertChild(n, p, x1, y1, x2, y2);
+          } else {
+            n.point = null;
+            insertChild(n, v, x1, y1, x2, y2);
+            insertChild(n, p, x1, y1, x2, y2);
+          }
+        } else {
+          n.point = p;
+        }
+      } else {
+        insertChild(n, p, x1, y1, x2, y2);
+      }
+    }
+    function insertChild(n, p, x1, y1, x2, y2) {
+      var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, right = p.x >= sx, bottom = p.y >= sy, i = (bottom << 1) + right;
+      n.leaf = false;
+      n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode());
+      if (right) x1 = sx; else x2 = sx;
+      if (bottom) y1 = sy; else y2 = sy;
+      insert(n, p, x1, y1, x2, y2);
+    }
+    var root = d3_geom_quadtreeNode();
+    root.add = function(p) {
+      insert(root, p, x1, y1, x2, y2);
+    };
+    root.visit = function(f) {
+      d3_geom_quadtreeVisit(f, root, x1, y1, x2, y2);
+    };
+    points.forEach(root.add);
+    return root;
+  };
+  function d3_geom_quadtreeNode() {
+    return {
+      leaf: true,
+      nodes: [],
+      point: null
+    };
+  }
+  function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) {
+    if (!f(node, x1, y1, x2, y2)) {
+      var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, children = node.nodes;
+      if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy);
+      if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy);
+      if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2);
+      if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2);
+    }
+  }
+  d3.time = {};
+  var d3_time = Date, d3_time_daySymbols = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ];
+  function d3_time_utc() {
+    this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]);
+  }
+  d3_time_utc.prototype = {
+    getDate: function() {
+      return this._.getUTCDate();
+    },
+    getDay: function() {
+      return this._.getUTCDay();
+    },
+    getFullYear: function() {
+      return this._.getUTCFullYear();
+    },
+    getHours: function() {
+      return this._.getUTCHours();
+    },
+    getMilliseconds: function() {
+      return this._.getUTCMilliseconds();
+    },
+    getMinutes: function() {
+      return this._.getUTCMinutes();
+    },
+    getMonth: function() {
+      return this._.getUTCMonth();
+    },
+    getSeconds: function() {
+      return this._.getUTCSeconds();
+    },
+    getTime: function() {
+      return this._.getTime();
+    },
+    getTimezoneOffset: function() {
+      return 0;
+    },
+    valueOf: function() {
+      return this._.valueOf();
+    },
+    setDate: function() {
+      d3_time_prototype.setUTCDate.apply(this._, arguments);
+    },
+    setDay: function() {
+      d3_time_prototype.setUTCDay.apply(this._, arguments);
+    },
+    setFullYear: function() {
+      d3_time_prototype.setUTCFullYear.apply(this._, arguments);
+    },
+    setHours: function() {
+      d3_time_prototype.setUTCHours.apply(this._, arguments);
+    },
+    setMilliseconds: function() {
+      d3_time_prototype.setUTCMilliseconds.apply(this._, arguments);
+    },
+    setMinutes: function() {
+      d3_time_prototype.setUTCMinutes.apply(this._, arguments);
+    },
+    setMonth: function() {
+      d3_time_prototype.setUTCMonth.apply(this._, arguments);
+    },
+    setSeconds: function() {
+      d3_time_prototype.setUTCSeconds.apply(this._, arguments);
+    },
+    setTime: function() {
+      d3_time_prototype.setTime.apply(this._, arguments);
+    }
+  };
+  var d3_time_prototype = Date.prototype;
+  var d3_time_formatDateTime = "%a %b %e %X %Y", d3_time_formatDate = "%m/%d/%Y", d3_time_formatTime = "%H:%M:%S";
+  var d3_time_days = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], d3_time_dayAbbreviations = [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ], d3_time_months = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ], d3_time_monthAbbreviations = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ];
+  d3.time.format = function(template) {
+    var n = template.length;
+    function format(date) {
+      var string = [], i = -1, j = 0, c, p, f;
+      while (++i < n) {
+        if (template.charCodeAt(i) === 37) {
+          string.push(template.substring(j, i));
+          if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i);
+          if (f = d3_time_formats[c]) c = f(date, p == null ? c === "e" ? " " : "0" : p);
+          string.push(c);
+          j = i + 1;
+        }
+      }
+      string.push(template.substring(j, i));
+      return string.join("");
+    }
+    format.parse = function(string) {
+      var d = {
+        y: 1900,
+        m: 0,
+        d: 1,
+        H: 0,
+        M: 0,
+        S: 0,
+        L: 0
+      }, i = d3_time_parse(d, template, string, 0);
+      if (i != string.length) return null;
+      if ("p" in d) d.H = d.H % 12 + d.p * 12;
+      var date = new d3_time();
+      date.setFullYear(d.y, d.m, d.d);
+      date.setHours(d.H, d.M, d.S, d.L);
+      return date;
+    };
+    format.toString = function() {
+      return template;
+    };
+    return format;
+  };
+  function d3_time_parse(date, template, string, j) {
+    var c, p, i = 0, n = template.length, m = string.length;
+    while (i < n) {
+      if (j >= m) return -1;
+      c = template.charCodeAt(i++);
+      if (c === 37) {
+        p = d3_time_parsers[template.charAt(i++)];
+        if (!p || (j = p(date, string, j)) < 0) return -1;
+      } else if (c != string.charCodeAt(j++)) {
+        return -1;
+      }
+    }
+    return j;
+  }
+  function d3_time_formatRe(names) {
+    return new RegExp("^(?:" + names.map(d3.requote).join("|") + ")", "i");
+  }
+  function d3_time_formatLookup(names) {
+    var map = new d3_Map(), i = -1, n = names.length;
+    while (++i < n) map.set(names[i].toLowerCase(), i);
+    return map;
+  }
+  function d3_time_formatPad(value, fill, width) {
+    value += "";
+    var length = value.length;
+    return length < width ? new Array(width - length + 1).join(fill) + value : value;
+  }
+  var d3_time_dayRe = d3_time_formatRe(d3_time_days), d3_time_dayAbbrevRe = d3_time_formatRe(d3_time_dayAbbreviations), d3_time_monthRe = d3_time_formatRe(d3_time_months), d3_time_monthLookup = d3_time_formatLookup(d3_time_months), d3_time_monthAbbrevRe = d3_time_formatRe(d3_time_monthAbbreviations), d3_time_monthAbbrevLookup = d3_time_formatLookup(d3_time_monthAbbreviations);
+  var d3_time_formatPads = {
+    "-": "",
+    _: " ",
+    "0": "0"
+  };
+  var d3_time_formats = {
+    a: function(d) {
+      return d3_time_dayAbbreviations[d.getDay()];
+    },
+    A: function(d) {
+      return d3_time_days[d.getDay()];
+    },
+    b: function(d) {
+      return d3_time_monthAbbreviations[d.getMonth()];
+    },
+    B: function(d) {
+      return d3_time_months[d.getMonth()];
+    },
+    c: d3.time.format(d3_time_formatDateTime),
+    d: function(d, p) {
+      return d3_time_formatPad(d.getDate(), p, 2);
+    },
+    e: function(d, p) {
+      return d3_time_formatPad(d.getDate(), p, 2);
+    },
+    H: function(d, p) {
+      return d3_time_formatPad(d.getHours(), p, 2);
+    },
+    I: function(d, p) {
+      return d3_time_formatPad(d.getHours() % 12 || 12, p, 2);
+    },
+    j: function(d, p) {
+      return d3_time_formatPad(1 + d3.time.dayOfYear(d), p, 3);
+    },
+    L: function(d, p) {
+      return d3_time_formatPad(d.getMilliseconds(), p, 3);
+    },
+    m: function(d, p) {
+      return d3_time_formatPad(d.getMonth() + 1, p, 2);
+    },
+    M: function(d, p) {
+      return d3_time_formatPad(d.getMinutes(), p, 2);
+    },
+    p: function(d) {
+      return d.getHours() >= 12 ? "PM" : "AM";
+    },
+    S: function(d, p) {
+      return d3_time_formatPad(d.getSeconds(), p, 2);
+    },
+    U: function(d, p) {
+      return d3_time_formatPad(d3.time.sundayOfYear(d), p, 2);
+    },
+    w: function(d) {
+      return d.getDay();
+    },
+    W: function(d, p) {
+      return d3_time_formatPad(d3.time.mondayOfYear(d), p, 2);
+    },
+    x: d3.time.format(d3_time_formatDate),
+    X: d3.time.format(d3_time_formatTime),
+    y: function(d, p) {
+      return d3_time_formatPad(d.getFullYear() % 100, p, 2);
+    },
+    Y: function(d, p) {
+      return d3_time_formatPad(d.getFullYear() % 1e4, p, 4);
+    },
+    Z: d3_time_zone,
+    "%": function() {
+      return "%";
+    }
+  };
+  var d3_time_parsers = {
+    a: d3_time_parseWeekdayAbbrev,
+    A: d3_time_parseWeekday,
+    b: d3_time_parseMonthAbbrev,
+    B: d3_time_parseMonth,
+    c: d3_time_parseLocaleFull,
+    d: d3_time_parseDay,
+    e: d3_time_parseDay,
+    H: d3_time_parseHour24,
+    I: d3_time_parseHour24,
+    L: d3_time_parseMilliseconds,
+    m: d3_time_parseMonthNumber,
+    M: d3_time_parseMinutes,
+    p: d3_time_parseAmPm,
+    S: d3_time_parseSeconds,
+    x: d3_time_parseLocaleDate,
+    X: d3_time_parseLocaleTime,
+    y: d3_time_parseYear,
+    Y: d3_time_parseFullYear
+  };
+  function d3_time_parseWeekdayAbbrev(date, string, i) {
+    d3_time_dayAbbrevRe.lastIndex = 0;
+    var n = d3_time_dayAbbrevRe.exec(string.substring(i));
+    return n ? i += n[0].length : -1;
+  }
+  function d3_time_parseWeekday(date, string, i) {
+    d3_time_dayRe.lastIndex = 0;
+    var n = d3_time_dayRe.exec(string.substring(i));
+    return n ? i += n[0].length : -1;
+  }
+  function d3_time_parseMonthAbbrev(date, string, i) {
+    d3_time_monthAbbrevRe.lastIndex = 0;
+    var n = d3_time_monthAbbrevRe.exec(string.substring(i));
+    return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i += n[0].length) : -1;
+  }
+  function d3_time_parseMonth(date, string, i) {
+    d3_time_monthRe.lastIndex = 0;
+    var n = d3_time_monthRe.exec(string.substring(i));
+    return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i += n[0].length) : -1;
+  }
+  function d3_time_parseLocaleFull(date, string, i) {
+    return d3_time_parse(date, d3_time_formats.c.toString(), string, i);
+  }
+  function d3_time_parseLocaleDate(date, string, i) {
+    return d3_time_parse(date, d3_time_formats.x.toString(), string, i);
+  }
+  function d3_time_parseLocaleTime(date, string, i) {
+    return d3_time_parse(date, d3_time_formats.X.toString(), string, i);
+  }
+  function d3_time_parseFullYear(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.substring(i, i + 4));
+    return n ? (date.y = +n[0], i += n[0].length) : -1;
+  }
+  function d3_time_parseYear(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.substring(i, i + 2));
+    return n ? (date.y = d3_time_expandYear(+n[0]), i += n[0].length) : -1;
+  }
+  function d3_time_expandYear(d) {
+    return d + (d > 68 ? 1900 : 2e3);
+  }
+  function d3_time_parseMonthNumber(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.substring(i, i + 2));
+    return n ? (date.m = n[0] - 1, i += n[0].length) : -1;
+  }
+  function d3_time_parseDay(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.substring(i, i + 2));
+    return n ? (date.d = +n[0], i += n[0].length) : -1;
+  }
+  function d3_time_parseHour24(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.substring(i, i + 2));
+    return n ? (date.H = +n[0], i += n[0].length) : -1;
+  }
+  function d3_time_parseMinutes(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.substring(i, i + 2));
+    return n ? (date.M = +n[0], i += n[0].length) : -1;
+  }
+  function d3_time_parseSeconds(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.substring(i, i + 2));
+    return n ? (date.S = +n[0], i += n[0].length) : -1;
+  }
+  function d3_time_parseMilliseconds(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.substring(i, i + 3));
+    return n ? (date.L = +n[0], i += n[0].length) : -1;
+  }
+  var d3_time_numberRe = /^\s*\d+/;
+  function d3_time_parseAmPm(date, string, i) {
+    var n = d3_time_amPmLookup.get(string.substring(i, i += 2).toLowerCase());
+    return n == null ? -1 : (date.p = n, i);
+  }
+  var d3_time_amPmLookup = d3.map({
+    am: 0,
+    pm: 1
+  });
+  function d3_time_zone(d) {
+    var z = d.getTimezoneOffset(), zs = z > 0 ? "-" : "+", zh = ~~(Math.abs(z) / 60), zm = Math.abs(z) % 60;
+    return zs + d3_time_formatPad(zh, "0", 2) + d3_time_formatPad(zm, "0", 2);
+  }
+  d3.time.format.utc = function(template) {
+    var local = d3.time.format(template);
+    function format(date) {
+      try {
+        d3_time = d3_time_utc;
+        var utc = new d3_time();
+        utc._ = date;
+        return local(utc);
+      } finally {
+        d3_time = Date;
+      }
+    }
+    format.parse = function(string) {
+      try {
+        d3_time = d3_time_utc;
+        var date = local.parse(string);
+        return date && date._;
+      } finally {
+        d3_time = Date;
+      }
+    };
+    format.toString = local.toString;
+    return format;
+  };
+  var d3_time_formatIso = d3.time.format.utc("%Y-%m-%dT%H:%M:%S.%LZ");
+  d3.time.format.iso = Date.prototype.toISOString && +new Date("2000-01-01T00:00:00.000Z") ? d3_time_formatIsoNative : d3_time_formatIso;
+  function d3_time_formatIsoNative(date) {
+    return date.toISOString();
+  }
+  d3_time_formatIsoNative.parse = function(string) {
+    var date = new Date(string);
+    return isNaN(date) ? null : date;
+  };
+  d3_time_formatIsoNative.toString = d3_time_formatIso.toString;
+  function d3_time_interval(local, step, number) {
+    function round(date) {
+      var d0 = local(date), d1 = offset(d0, 1);
+      return date - d0 < d1 - date ? d0 : d1;
+    }
+    function ceil(date) {
+      step(date = local(new d3_time(date - 1)), 1);
+      return date;
+    }
+    function offset(date, k) {
+      step(date = new d3_time(+date), k);
+      return date;
+    }
+    function range(t0, t1, dt) {
+      var time = ceil(t0), times = [];
+      if (dt > 1) {
+        while (time < t1) {
+          if (!(number(time) % dt)) times.push(new Date(+time));
+          step(time, 1);
+        }
+      } else {
+        while (time < t1) times.push(new Date(+time)), step(time, 1);
+      }
+      return times;
+    }
+    function range_utc(t0, t1, dt) {
+      try {
+        d3_time = d3_time_utc;
+        var utc = new d3_time_utc();
+        utc._ = t0;
+        return range(utc, t1, dt);
+      } finally {
+        d3_time = Date;
+      }
+    }
+    local.floor = local;
+    local.round = round;
+    local.ceil = ceil;
+    local.offset = offset;
+    local.range = range;
+    var utc = local.utc = d3_time_interval_utc(local);
+    utc.floor = utc;
+    utc.round = d3_time_interval_utc(round);
+    utc.ceil = d3_time_interval_utc(ceil);
+    utc.offset = d3_time_interval_utc(offset);
+    utc.range = range_utc;
+    return local;
+  }
+  function d3_time_interval_utc(method) {
+    return function(date, k) {
+      try {
+        d3_time = d3_time_utc;
+        var utc = new d3_time_utc();
+        utc._ = date;
+        return method(utc, k)._;
+      } finally {
+        d3_time = Date;
+      }
+    };
+  }
+  d3.time.second = d3_time_interval(function(date) {
+    return new d3_time(Math.floor(date / 1e3) * 1e3);
+  }, function(date, offset) {
+    date.setTime(date.getTime() + Math.floor(offset) * 1e3);
+  }, function(date) {
+    return date.getSeconds();
+  });
+  d3.time.seconds = d3.time.second.range;
+  d3.time.seconds.utc = d3.time.second.utc.range;
+  d3.time.minute = d3_time_interval(function(date) {
+    return new d3_time(Math.floor(date / 6e4) * 6e4);
+  }, function(date, offset) {
+    date.setTime(date.getTime() + Math.floor(offset) * 6e4);
+  }, function(date) {
+    return date.getMinutes();
+  });
+  d3.time.minutes = d3.time.minute.range;
+  d3.time.minutes.utc = d3.time.minute.utc.range;
+  d3.time.hour = d3_time_interval(function(date) {
+    var timezone = date.getTimezoneOffset() / 60;
+    return new d3_time((Math.floor(date / 36e5 - timezone) + timezone) * 36e5);
+  }, function(date, offset) {
+    date.setTime(date.getTime() + Math.floor(offset) * 36e5);
+  }, function(date) {
+    return date.getHours();
+  });
+  d3.time.hours = d3.time.hour.range;
+  d3.time.hours.utc = d3.time.hour.utc.range;
+  d3.time.day = d3_time_interval(function(date) {
+    var day = new d3_time(1970, 0);
+    day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());
+    return day;
+  }, function(date, offset) {
+    date.setDate(date.getDate() + offset);
+  }, function(date) {
+    return date.getDate() - 1;
+  });
+  d3.time.days = d3.time.day.range;
+  d3.time.days.utc = d3.time.day.utc.range;
+  d3.time.dayOfYear = function(date) {
+    var year = d3.time.year(date);
+    return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5);
+  };
+  d3_time_daySymbols.forEach(function(day, i) {
+    day = day.toLowerCase();
+    i = 7 - i;
+    var interval = d3.time[day] = d3_time_interval(function(date) {
+      (date = d3.time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7);
+      return date;
+    }, function(date, offset) {
+      date.setDate(date.getDate() + Math.floor(offset) * 7);
+    }, function(date) {
+      var day = d3.time.year(date).getDay();
+      return Math.floor((d3.time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i);
+    });
+    d3.time[day + "s"] = interval.range;
+    d3.time[day + "s"].utc = interval.utc.range;
+    d3.time[day + "OfYear"] = function(date) {
+      var day = d3.time.year(date).getDay();
+      return Math.floor((d3.time.dayOfYear(date) + (day + i) % 7) / 7);
+    };
+  });
+  d3.time.week = d3.time.sunday;
+  d3.time.weeks = d3.time.sunday.range;
+  d3.time.weeks.utc = d3.time.sunday.utc.range;
+  d3.time.weekOfYear = d3.time.sundayOfYear;
+  d3.time.month = d3_time_interval(function(date) {
+    date = d3.time.day(date);
+    date.setDate(1);
+    return date;
+  }, function(date, offset) {
+    date.setMonth(date.getMonth() + offset);
+  }, function(date) {
+    return date.getMonth();
+  });
+  d3.time.months = d3.time.month.range;
+  d3.time.months.utc = d3.time.month.utc.range;
+  d3.time.year = d3_time_interval(function(date) {
+    date = d3.time.day(date);
+    date.setMonth(0, 1);
+    return date;
+  }, function(date, offset) {
+    date.setFullYear(date.getFullYear() + offset);
+  }, function(date) {
+    return date.getFullYear();
+  });
+  d3.time.years = d3.time.year.range;
+  d3.time.years.utc = d3.time.year.utc.range;
+  function d3_time_scale(linear, methods, format) {
+    function scale(x) {
+      return linear(x);
+    }
+    scale.invert = function(x) {
+      return d3_time_scaleDate(linear.invert(x));
+    };
+    scale.domain = function(x) {
+      if (!arguments.length) return linear.domain().map(d3_time_scaleDate);
+      linear.domain(x);
+      return scale;
+    };
+    scale.nice = function(m) {
+      return scale.domain(d3_scale_nice(scale.domain(), function() {
+        return m;
+      }));
+    };
+    scale.ticks = function(m, k) {
+      var extent = d3_time_scaleExtent(scale.domain());
+      if (typeof m !== "function") {
+        var span = extent[1] - extent[0], target = span / m, i = d3.bisect(d3_time_scaleSteps, target);
+        if (i == d3_time_scaleSteps.length) return methods.year(extent, m);
+        if (!i) return linear.ticks(m).map(d3_time_scaleDate);
+        if (Math.log(target / d3_time_scaleSteps[i - 1]) < Math.log(d3_time_scaleSteps[i] / target)) --i;
+        m = methods[i];
+        k = m[1];
+        m = m[0].range;
+      }
+      return m(extent[0], new Date(+extent[1] + 1), k);
+    };
+    scale.tickFormat = function() {
+      return format;
+    };
+    scale.copy = function() {
+      return d3_time_scale(linear.copy(), methods, format);
+    };
+    return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp");
+  }
+  function d3_time_scaleExtent(domain) {
+    var start = domain[0], stop = domain[domain.length - 1];
+    return start < stop ? [ start, stop ] : [ stop, start ];
+  }
+  function d3_time_scaleDate(t) {
+    return new Date(t);
+  }
+  function d3_time_scaleFormat(formats) {
+    return function(date) {
+      var i = formats.length - 1, f = formats[i];
+      while (!f[1](date)) f = formats[--i];
+      return f[0](date);
+    };
+  }
+  function d3_time_scaleSetYear(y) {
+    var d = new Date(y, 0, 1);
+    d.setFullYear(y);
+    return d;
+  }
+  function d3_time_scaleGetYear(d) {
+    var y = d.getFullYear(), d0 = d3_time_scaleSetYear(y), d1 = d3_time_scaleSetYear(y + 1);
+    return y + (d - d0) / (d1 - d0);
+  }
+  var d3_time_scaleSteps = [ 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6 ];
+  var d3_time_scaleLocalMethods = [ [ d3.time.second, 1 ], [ d3.time.second, 5 ], [ d3.time.second, 15 ], [ d3.time.second, 30 ], [ d3.time.minute, 1 ], [ d3.time.minute, 5 ], [ d3.time.minute, 15 ], [ d3.time.minute, 30 ], [ d3.time.hour, 1 ], [ d3.time.hour, 3 ], [ d3.time.hour, 6 ], [ d3.time.hour, 12 ], [ d3.time.day, 1 ], [ d3.time.day, 2 ], [ d3.time.week, 1 ], [ d3.time.month, 1 ], [ d3.time.month, 3 ], [ d3.time.year, 1 ] ];
+  var d3_time_scaleLocalFormats = [ [ d3.time.format("%Y"), d3_true ], [ d3.time.format("%B"), function(d) {
+    return d.getMonth();
+  } ], [ d3.time.format("%b %d"), function(d) {
+    return d.getDate() != 1;
+  } ], [ d3.time.format("%a %d"), function(d) {
+    return d.getDay() && d.getDate() != 1;
+  } ], [ d3.time.format("%I %p"), function(d) {
+    return d.getHours();
+  } ], [ d3.time.format("%I:%M"), function(d) {
+    return d.getMinutes();
+  } ], [ d3.time.format(":%S"), function(d) {
+    return d.getSeconds();
+  } ], [ d3.time.format(".%L"), function(d) {
+    return d.getMilliseconds();
+  } ] ];
+  var d3_time_scaleLinear = d3.scale.linear(), d3_time_scaleLocalFormat = d3_time_scaleFormat(d3_time_scaleLocalFormats);
+  d3_time_scaleLocalMethods.year = function(extent, m) {
+    return d3_time_scaleLinear.domain(extent.map(d3_time_scaleGetYear)).ticks(m).map(d3_time_scaleSetYear);
+  };
+  d3.time.scale = function() {
+    return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat);
+  };
+  var d3_time_scaleUTCMethods = d3_time_scaleLocalMethods.map(function(m) {
+    return [ m[0].utc, m[1] ];
+  });
+  var d3_time_scaleUTCFormats = [ [ d3.time.format.utc("%Y"), d3_true ], [ d3.time.format.utc("%B"), function(d) {
+    return d.getUTCMonth();
+  } ], [ d3.time.format.utc("%b %d"), function(d) {
+    return d.getUTCDate() != 1;
+  } ], [ d3.time.format.utc("%a %d"), function(d) {
+    return d.getUTCDay() && d.getUTCDate() != 1;
+  } ], [ d3.time.format.utc("%I %p"), function(d) {
+    return d.getUTCHours();
+  } ], [ d3.time.format.utc("%I:%M"), function(d) {
+    return d.getUTCMinutes();
+  } ], [ d3.time.format.utc(":%S"), function(d) {
+    return d.getUTCSeconds();
+  } ], [ d3.time.format.utc(".%L"), function(d) {
+    return d.getUTCMilliseconds();
+  } ] ];
+  var d3_time_scaleUTCFormat = d3_time_scaleFormat(d3_time_scaleUTCFormats);
+  function d3_time_scaleUTCSetYear(y) {
+    var d = new Date(Date.UTC(y, 0, 1));
+    d.setUTCFullYear(y);
+    return d;
+  }
+  function d3_time_scaleUTCGetYear(d) {
+    var y = d.getUTCFullYear(), d0 = d3_time_scaleUTCSetYear(y), d1 = d3_time_scaleUTCSetYear(y + 1);
+    return y + (d - d0) / (d1 - d0);
+  }
+  d3_time_scaleUTCMethods.year = function(extent, m) {
+    return d3_time_scaleLinear.domain(extent.map(d3_time_scaleUTCGetYear)).ticks(m).map(d3_time_scaleUTCSetYear);
+  };
+  d3.time.scale.utc = function() {
+    return d3_time_scale(d3.scale.linear(), d3_time_scaleUTCMethods, d3_time_scaleUTCFormat);
+  };
+  return d3;
+}();
\ No newline at end of file
diff --git a/sample/ONS2014demo/web/d3/d3.v3.min.js b/sample/ONS2014demo/web/d3/d3.v3.min.js
new file mode 100644
index 0000000..7f3faa4
--- /dev/null
+++ b/sample/ONS2014demo/web/d3/d3.v3.min.js
@@ -0,0 +1,4 @@
+d3=function(){function t(t){return t.target}function n(t){return t.source}function e(t,n){try{for(var e in n)Object.defineProperty(t.prototype,e,{value:n[e],enumerable:!1})}catch(r){t.prototype=n}}function r(t){for(var n=-1,e=t.length,r=[];e>++n;)r.push(t[n]);return r}function u(t){return Array.prototype.slice.call(t)}function i(){}function a(t){return t}function o(){return!0}function c(t){return"function"==typeof t?t:function(){return t}}function l(t,n,e){return function(){var r=e.apply(n,arguments);return r===n?t:r}}function f(t){return null!=t&&!isNaN(t)}function s(t){return t.length}function h(t){return t.trim().replace(/\s+/g," ")}function g(t){for(var n=1;t*n%1;)n*=10;return n}function p(t){return 1===t.length?function(n,e){t(null==n?e:null)}:t}function d(t){return t.responseText}function m(t){return JSON.parse(t.responseText)}function v(t){var n=Li.createRange();return n.selectNode(Li.body),n.createContextualFragment(t.responseText)}function y(t){return t.responseXML}function M(){}function b(t){function n(){for(var n,r=e,u=-1,i=r.length;i>++u;)(n=r[u].on)&&n.apply(this,arguments);return t}var e=[],r=new i;return n.on=function(n,u){var i,a=r.get(n);return 2>arguments.length?a&&a.on:(a&&(a.on=null,e=e.slice(0,i=e.indexOf(a)).concat(e.slice(i+1)),r.remove(n)),u&&e.push(r.set(n,{on:u})),t)},n}function x(t,n){return n-(t?Math.ceil(Math.log(t)/Math.LN10):1)}function _(t){return t+""}function w(t,n){var e=Math.pow(10,3*Math.abs(8-n));return{scale:n>8?function(t){return t/e}:function(t){return t*e},symbol:t}}function S(t){return function(n){return 0>=n?0:n>=1?1:t(n)}}function k(t){return function(n){return 1-t(1-n)}}function E(t){return function(n){return.5*(.5>n?t(2*n):2-t(2-2*n))}}function A(t){return t*t}function N(t){return t*t*t}function T(t){if(0>=t)return 0;if(t>=1)return 1;var n=t*t,e=n*t;return 4*(.5>t?e:3*(t-n)+e-.75)}function q(t){return function(n){return Math.pow(n,t)}}function C(t){return 1-Math.cos(t*Ti/2)}function z(t){return Math.pow(2,10*(t-1))}function D(t){return 1-Math.sqrt(1-t*t)}function L(t,n){var e;return 2>arguments.length&&(n=.45),arguments.length?e=n/(2*Ti)*Math.asin(1/t):(t=1,e=n/4),function(r){return 1+t*Math.pow(2,10*-r)*Math.sin(2*(r-e)*Ti/n)}}function F(t){return t||(t=1.70158),function(n){return n*n*((t+1)*n-t)}}function H(t){return 1/2.75>t?7.5625*t*t:2/2.75>t?7.5625*(t-=1.5/2.75)*t+.75:2.5/2.75>t?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}function j(){Ci.event.stopPropagation(),Ci.event.preventDefault()}function P(){for(var t,n=Ci.event;t=n.sourceEvent;)n=t;return n}function R(t){for(var n=new M,e=0,r=arguments.length;r>++e;)n[arguments[e]]=b(n);return n.of=function(e,r){return function(u){try{var i=u.sourceEvent=Ci.event;u.target=t,Ci.event=u,n[u.type].apply(e,r)}finally{Ci.event=i}}},n}function O(t){var n=[t.a,t.b],e=[t.c,t.d],r=U(n),u=Y(n,e),i=U(I(e,n,-u))||0;n[0]*e[1]<e[0]*n[1]&&(n[0]*=-1,n[1]*=-1,r*=-1,u*=-1),this.rotate=(r?Math.atan2(n[1],n[0]):Math.atan2(-e[0],e[1]))*Di,this.translate=[t.e,t.f],this.scale=[r,i],this.skew=i?Math.atan2(u,i)*Di:0}function Y(t,n){return t[0]*n[0]+t[1]*n[1]}function U(t){var n=Math.sqrt(Y(t,t));return n&&(t[0]/=n,t[1]/=n),n}function I(t,n,e){return t[0]+=e*n[0],t[1]+=e*n[1],t}function V(t){return"transform"==t?Ci.interpolateTransform:Ci.interpolate}function Z(t,n){return n=n-(t=+t)?1/(n-t):0,function(e){return(e-t)*n}}function X(t,n){return n=n-(t=+t)?1/(n-t):0,function(e){return Math.max(0,Math.min(1,(e-t)*n))}}function B(){}function $(t,n,e){return new J(t,n,e)}function J(t,n,e){this.r=t,this.g=n,this.b=e}function G(t){return 16>t?"0"+Math.max(0,t).toString(16):Math.min(255,t).toString(16)}function K(t,n,e){var r,u,i,a=0,o=0,c=0;if(r=/([a-z]+)\((.*)\)/i.exec(t))switch(u=r[2].split(","),r[1]){case"hsl":return e(parseFloat(u[0]),parseFloat(u[1])/100,parseFloat(u[2])/100);case"rgb":return n(nn(u[0]),nn(u[1]),nn(u[2]))}return(i=oa.get(t))?n(i.r,i.g,i.b):(null!=t&&"#"===t.charAt(0)&&(4===t.length?(a=t.charAt(1),a+=a,o=t.charAt(2),o+=o,c=t.charAt(3),c+=c):7===t.length&&(a=t.substring(1,3),o=t.substring(3,5),c=t.substring(5,7)),a=parseInt(a,16),o=parseInt(o,16),c=parseInt(c,16)),n(a,o,c))}function W(t,n,e){var r,u,i=Math.min(t/=255,n/=255,e/=255),a=Math.max(t,n,e),o=a-i,c=(a+i)/2;return o?(u=.5>c?o/(a+i):o/(2-a-i),r=t==a?(n-e)/o+(e>n?6:0):n==a?(e-t)/o+2:(t-n)/o+4,r*=60):u=r=0,en(r,u,c)}function Q(t,n,e){t=tn(t),n=tn(n),e=tn(e);var r=pn((.4124564*t+.3575761*n+.1804375*e)/sa),u=pn((.2126729*t+.7151522*n+.072175*e)/ha),i=pn((.0193339*t+.119192*n+.9503041*e)/ga);return ln(116*u-16,500*(r-u),200*(u-i))}function tn(t){return.04045>=(t/=255)?t/12.92:Math.pow((t+.055)/1.055,2.4)}function nn(t){var n=parseFloat(t);return"%"===t.charAt(t.length-1)?Math.round(2.55*n):n}function en(t,n,e){return new rn(t,n,e)}function rn(t,n,e){this.h=t,this.s=n,this.l=e}function un(t,n,e){function r(t){return t>360?t-=360:0>t&&(t+=360),60>t?i+(a-i)*t/60:180>t?a:240>t?i+(a-i)*(240-t)/60:i}function u(t){return Math.round(255*r(t))}var i,a;return t%=360,0>t&&(t+=360),n=0>n?0:n>1?1:n,e=0>e?0:e>1?1:e,a=.5>=e?e*(1+n):e+n-e*n,i=2*e-a,$(u(t+120),u(t),u(t-120))}function an(t,n,e){return new on(t,n,e)}function on(t,n,e){this.h=t,this.c=n,this.l=e}function cn(t,n,e){return ln(e,Math.cos(t*=zi)*n,Math.sin(t)*n)}function ln(t,n,e){return new fn(t,n,e)}function fn(t,n,e){this.l=t,this.a=n,this.b=e}function sn(t,n,e){var r=(t+16)/116,u=r+n/500,i=r-e/200;return u=gn(u)*sa,r=gn(r)*ha,i=gn(i)*ga,$(dn(3.2404542*u-1.5371385*r-.4985314*i),dn(-.969266*u+1.8760108*r+.041556*i),dn(.0556434*u-.2040259*r+1.0572252*i))}function hn(t,n,e){return an(180*(Math.atan2(e,n)/Ti),Math.sqrt(n*n+e*e),t)}function gn(t){return t>.206893034?t*t*t:(t-4/29)/7.787037}function pn(t){return t>.008856?Math.pow(t,1/3):7.787037*t+4/29}function dn(t){return Math.round(255*(.00304>=t?12.92*t:1.055*Math.pow(t,1/2.4)-.055))}function mn(t){return Vi(t,ba),t}function vn(t){return function(){return da(t,this)}}function yn(t){return function(){return ma(t,this)}}function Mn(t,n){function e(){this.removeAttribute(t)}function r(){this.removeAttributeNS(t.space,t.local)}function u(){this.setAttribute(t,n)}function i(){this.setAttributeNS(t.space,t.local,n)}function a(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}function o(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}return t=Ci.ns.qualify(t),null==n?t.local?r:e:"function"==typeof n?t.local?o:a:t.local?i:u}function bn(t){return RegExp("(?:^|\\s+)"+Ci.requote(t)+"(?:\\s+|$)","g")}function xn(t,n){function e(){for(var e=-1;u>++e;)t[e](this,n)}function r(){for(var e=-1,r=n.apply(this,arguments);u>++e;)t[e](this,r)}t=t.trim().split(/\s+/).map(_n);var u=t.length;return"function"==typeof n?r:e}function _n(t){var n=bn(t);return function(e,r){if(u=e.classList)return r?u.add(t):u.remove(t);var u=e.className,i=null!=u.baseVal,a=i?u.baseVal:u;r?(n.lastIndex=0,n.test(a)||(a=h(a+" "+t),i?u.baseVal=a:e.className=a)):a&&(a=h(a.replace(n," ")),i?u.baseVal=a:e.className=a)}}function wn(t,n,e){function r(){this.style.removeProperty(t)}function u(){this.style.setProperty(t,n,e)}function i(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}return null==n?r:"function"==typeof n?i:u}function Sn(t,n){function e(){delete this[t]}function r(){this[t]=n}function u(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}return null==n?e:"function"==typeof n?u:r}function kn(t){return{__data__:t}}function En(t){return function(){return Ma(this,t)}}function An(t){return arguments.length||(t=Ci.ascending),function(n,e){return!n-!e||t(n.__data__,e.__data__)}}function Nn(t,n,e){function r(){var n=this[i];n&&(this.removeEventListener(t,n,n.$),delete this[i])}function u(){function u(t){var e=Ci.event;Ci.event=t,o[0]=a.__data__;try{n.apply(a,o)}finally{Ci.event=e}}var a=this,o=Ui(arguments);r.call(this),this.addEventListener(t,this[i]=u,u.$=e),u._=n}var i="__on"+t,a=t.indexOf(".");return a>0&&(t=t.substring(0,a)),n?u:r}function Tn(t,n){for(var e=0,r=t.length;r>e;e++)for(var u,i=t[e],a=0,o=i.length;o>a;a++)(u=i[a])&&n(u,a,e);return t}function qn(t){return Vi(t,_a),t}function Cn(t,n){return Vi(t,Sa),t.id=n,t}function zn(t,n,e,r){var u=t.__transition__||(t.__transition__={active:0,count:0}),a=u[e];if(!a){var o=r.time;return a=u[e]={tween:new i,event:Ci.dispatch("start","end"),time:o,ease:r.ease,delay:r.delay,duration:r.duration},++u.count,Ci.timer(function(r){function i(r){return u.active>e?l():(u.active=e,h.start.call(t,f,n),a.tween.forEach(function(e,r){(r=r.call(t,f,n))&&d.push(r)}),c(r)||Ci.timer(c,0,o),1)}function c(r){if(u.active!==e)return l();for(var i=(r-g)/p,a=s(i),o=d.length;o>0;)d[--o].call(t,a);return i>=1?(l(),h.end.call(t,f,n),1):void 0}function l(){return--u.count?delete u[e]:delete t.__transition__,1}var f=t.__data__,s=a.ease,h=a.event,g=a.delay,p=a.duration,d=[];return r>=g?i(r):Ci.timer(i,g,o),1},0,o),a}}function Dn(t){return null==t&&(t=""),function(){this.textContent=t}}function Ln(t,n,e,r){var u=t.id;return Tn(t,"function"==typeof e?function(t,i,a){t.__transition__[u].tween.set(n,r(e.call(t,t.__data__,i,a)))}:(e=r(e),function(t){t.__transition__[u].tween.set(n,e)}))}function Fn(){for(var t,n=Date.now(),e=Ca;e;)t=n-e.then,t>=e.delay&&(e.flush=e.callback(t)),e=e.next;var r=Hn()-n;r>24?(isFinite(r)&&(clearTimeout(Na),Na=setTimeout(Fn,r)),Aa=0):(Aa=1,za(Fn))}function Hn(){for(var t=null,n=Ca,e=1/0;n;)n.flush?(delete qa[n.callback.id],n=t?t.next=n.next:Ca=n.next):(e=Math.min(e,n.then+n.delay),n=(t=n).next);return e}function jn(t,n){var e=t.ownerSVGElement||t;if(e.createSVGPoint){var r=e.createSVGPoint();if(0>Da&&(Fi.scrollX||Fi.scrollY)){e=Ci.select(Li.body).append("svg").style("position","absolute").style("top",0).style("left",0);var u=e[0][0].getScreenCTM();Da=!(u.f||u.e),e.remove()}return Da?(r.x=n.pageX,r.y=n.pageY):(r.x=n.clientX,r.y=n.clientY),r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}var i=t.getBoundingClientRect();return[n.clientX-i.left-t.clientLeft,n.clientY-i.top-t.clientTop]}function Pn(){}function Rn(t){var n=t[0],e=t[t.length-1];return e>n?[n,e]:[e,n]}function On(t){return t.rangeExtent?t.rangeExtent():Rn(t.range())}function Yn(t,n){var e,r=0,u=t.length-1,i=t[r],a=t[u];return i>a&&(e=r,r=u,u=e,e=i,i=a,a=e),(n=n(a-i))&&(t[r]=n.floor(i),t[u]=n.ceil(a)),t}function Un(){return Math}function In(t,n,e,r){function u(){var u=Math.min(t.length,n.length)>2?Gn:Jn,c=r?X:Z;return a=u(t,n,c,e),o=u(n,t,c,Ci.interpolate),i}function i(t){return a(t)}var a,o;return i.invert=function(t){return o(t)},i.domain=function(n){return arguments.length?(t=n.map(Number),u()):t},i.range=function(t){return arguments.length?(n=t,u()):n},i.rangeRound=function(t){return i.range(t).interpolate(Ci.interpolateRound)},i.clamp=function(t){return arguments.length?(r=t,u()):r},i.interpolate=function(t){return arguments.length?(e=t,u()):e},i.ticks=function(n){return Bn(t,n)},i.tickFormat=function(n){return $n(t,n)},i.nice=function(){return Yn(t,Zn),u()},i.copy=function(){return In(t,n,e,r)},u()}function Vn(t,n){return Ci.rebind(t,n,"range","rangeRound","interpolate","clamp")}function Zn(t){return t=Math.pow(10,Math.round(Math.log(t)/Math.LN10)-1),t&&{floor:function(n){return Math.floor(n/t)*t},ceil:function(n){return Math.ceil(n/t)*t}}}function Xn(t,n){var e=Rn(t),r=e[1]-e[0],u=Math.pow(10,Math.floor(Math.log(r/n)/Math.LN10)),i=n/r*u;return.15>=i?u*=10:.35>=i?u*=5:.75>=i&&(u*=2),e[0]=Math.ceil(e[0]/u)*u,e[1]=Math.floor(e[1]/u)*u+.5*u,e[2]=u,e}function Bn(t,n){return Ci.range.apply(Ci,Xn(t,n))}function $n(t,n){return Ci.format(",."+Math.max(0,-Math.floor(Math.log(Xn(t,n)[2])/Math.LN10+.01))+"f")}function Jn(t,n,e,r){var u=e(t[0],t[1]),i=r(n[0],n[1]);return function(t){return i(u(t))}}function Gn(t,n,e,r){var u=[],i=[],a=0,o=Math.min(t.length,n.length)-1;for(t[o]<t[0]&&(t=t.slice().reverse(),n=n.slice().reverse());o>=++a;)u.push(e(t[a-1],t[a])),i.push(r(n[a-1],n[a]));return function(n){var e=Ci.bisect(t,n,1,o)-1;return i[e](u[e](n))}}function Kn(t,n){function e(e){return t(n(e))}var r=n.pow;return e.invert=function(n){return r(t.invert(n))},e.domain=function(u){return arguments.length?(n=0>u[0]?Qn:Wn,r=n.pow,t.domain(u.map(n)),e):t.domain().map(r)},e.nice=function(){return t.domain(Yn(t.domain(),Un)),e},e.ticks=function(){var e=Rn(t.domain()),u=[];if(e.every(isFinite)){var i=Math.floor(e[0]),a=Math.ceil(e[1]),o=r(e[0]),c=r(e[1]);if(n===Qn)for(u.push(r(i));a>i++;)for(var l=9;l>0;l--)u.push(r(i)*l);else{for(;a>i;i++)for(var l=1;10>l;l++)u.push(r(i)*l);u.push(r(i))}for(i=0;o>u[i];i++);for(a=u.length;u[a-1]>c;a--);u=u.slice(i,a)}return u},e.tickFormat=function(t,u){if(2>arguments.length&&(u=La),!arguments.length)return u;var i,a=Math.max(.1,t/e.ticks().length),o=n===Qn?(i=-1e-12,Math.floor):(i=1e-12,Math.ceil);return function(t){return a>=t/r(o(n(t)+i))?u(t):""}},e.copy=function(){return Kn(t.copy(),n)},Vn(e,t)}function Wn(t){return Math.log(0>t?0:t)/Math.LN10}function Qn(t){return-Math.log(t>0?0:-t)/Math.LN10}function te(t,n){function e(n){return t(r(n))}var r=ne(n),u=ne(1/n);return e.invert=function(n){return u(t.invert(n))},e.domain=function(n){return arguments.length?(t.domain(n.map(r)),e):t.domain().map(u)},e.ticks=function(t){return Bn(e.domain(),t)},e.tickFormat=function(t){return $n(e.domain(),t)},e.nice=function(){return e.domain(Yn(e.domain(),Zn))},e.exponent=function(t){if(!arguments.length)return n;var i=e.domain();return r=ne(n=t),u=ne(1/n),e.domain(i)},e.copy=function(){return te(t.copy(),n)},Vn(e,t)}function ne(t){return function(n){return 0>n?-Math.pow(-n,t):Math.pow(n,t)}}function ee(t,n){function e(n){return a[((u.get(n)||u.set(n,t.push(n)))-1)%a.length]}function r(n,e){return Ci.range(t.length).map(function(t){return n+e*t})}var u,a,o;return e.domain=function(r){if(!arguments.length)return t;t=[],u=new i;for(var a,o=-1,c=r.length;c>++o;)u.has(a=r[o])||u.set(a,t.push(a));return e[n.t].apply(e,n.a)},e.range=function(t){return arguments.length?(a=t,o=0,n={t:"range",a:arguments},e):a},e.rangePoints=function(u,i){2>arguments.length&&(i=0);var c=u[0],l=u[1],f=(l-c)/(Math.max(1,t.length-1)+i);return a=r(2>t.length?(c+l)/2:c+f*i/2,f),o=0,n={t:"rangePoints",a:arguments},e},e.rangeBands=function(u,i,c){2>arguments.length&&(i=0),3>arguments.length&&(c=i);var l=u[1]<u[0],f=u[l-0],s=u[1-l],h=(s-f)/(t.length-i+2*c);return a=r(f+h*c,h),l&&a.reverse(),o=h*(1-i),n={t:"rangeBands",a:arguments},e},e.rangeRoundBands=function(u,i,c){2>arguments.length&&(i=0),3>arguments.length&&(c=i);var l=u[1]<u[0],f=u[l-0],s=u[1-l],h=Math.floor((s-f)/(t.length-i+2*c)),g=s-f-(t.length-i)*h;return a=r(f+Math.round(g/2),h),l&&a.reverse(),o=Math.round(h*(1-i)),n={t:"rangeRoundBands",a:arguments},e},e.rangeBand=function(){return o},e.rangeExtent=function(){return Rn(n.a[0])},e.copy=function(){return ee(t,n)},e.domain(t)}function re(t,n){function e(){var e=0,i=n.length;for(u=[];i>++e;)u[e-1]=Ci.quantile(t,e/i);return r}function r(t){return isNaN(t=+t)?0/0:n[Ci.bisect(u,t)]}var u;return r.domain=function(n){return arguments.length?(t=n.filter(function(t){return!isNaN(t)}).sort(Ci.ascending),e()):t},r.range=function(t){return arguments.length?(n=t,e()):n},r.quantiles=function(){return u},r.copy=function(){return re(t,n)},e()}function ue(t,n,e){function r(n){return e[Math.max(0,Math.min(a,Math.floor(i*(n-t))))]}function u(){return i=e.length/(n-t),a=e.length-1,r}var i,a;return r.domain=function(e){return arguments.length?(t=+e[0],n=+e[e.length-1],u()):[t,n]},r.range=function(t){return arguments.length?(e=t,u()):e},r.copy=function(){return ue(t,n,e)},u()}function ie(t,n){function e(e){return n[Ci.bisect(t,e)]}return e.domain=function(n){return arguments.length?(t=n,e):t},e.range=function(t){return arguments.length?(n=t,e):n},e.copy=function(){return ie(t,n)},e}function ae(t){function n(t){return+t}return n.invert=n,n.domain=n.range=function(e){return arguments.length?(t=e.map(n),n):t},n.ticks=function(n){return Bn(t,n)},n.tickFormat=function(n){return $n(t,n)},n.copy=function(){return ae(t)},n}function oe(t){return t.innerRadius}function ce(t){return t.outerRadius}function le(t){return t.startAngle}function fe(t){return t.endAngle}function se(t){function n(n){function a(){f.push("M",i(t(s),l))}for(var o,f=[],s=[],h=-1,g=n.length,p=c(e),d=c(r);g>++h;)u.call(this,o=n[h],h)?s.push([+p.call(this,o,h),+d.call(this,o,h)]):s.length&&(a(),s=[]);return s.length&&a(),f.length?f.join(""):null}var e=he,r=ge,u=o,i=pe,a=i.key,l=.7;return n.x=function(t){return arguments.length?(e=t,n):e},n.y=function(t){return arguments.length?(r=t,n):r},n.defined=function(t){return arguments.length?(u=t,n):u},n.interpolate=function(t){return arguments.length?(a="function"==typeof t?i=t:(i=Ya.get(t)||pe).key,n):a},n.tension=function(t){return arguments.length?(l=t,n):l},n}function he(t){return t[0]}function ge(t){return t[1]}function pe(t){return t.join("L")}function de(t){return pe(t)+"Z"}function me(t){for(var n=0,e=t.length,r=t[0],u=[r[0],",",r[1]];e>++n;)u.push("V",(r=t[n])[1],"H",r[0]);return u.join("")}function ve(t){for(var n=0,e=t.length,r=t[0],u=[r[0],",",r[1]];e>++n;)u.push("H",(r=t[n])[0],"V",r[1]);return u.join("")}function ye(t,n){return 4>t.length?pe(t):t[1]+xe(t.slice(1,t.length-1),_e(t,n))}function Me(t,n){return 3>t.length?pe(t):t[0]+xe((t.push(t[0]),t),_e([t[t.length-2]].concat(t,[t[1]]),n))}function be(t,n){return 3>t.length?pe(t):t[0]+xe(t,_e(t,n))}function xe(t,n){if(1>n.length||t.length!=n.length&&t.length!=n.length+2)return pe(t);var e=t.length!=n.length,r="",u=t[0],i=t[1],a=n[0],o=a,c=1;if(e&&(r+="Q"+(i[0]-2*a[0]/3)+","+(i[1]-2*a[1]/3)+","+i[0]+","+i[1],u=t[1],c=2),n.length>1){o=n[1],i=t[c],c++,r+="C"+(u[0]+a[0])+","+(u[1]+a[1])+","+(i[0]-o[0])+","+(i[1]-o[1])+","+i[0]+","+i[1];for(var l=2;n.length>l;l++,c++)i=t[c],o=n[l],r+="S"+(i[0]-o[0])+","+(i[1]-o[1])+","+i[0]+","+i[1]}if(e){var f=t[c];r+="Q"+(i[0]+2*o[0]/3)+","+(i[1]+2*o[1]/3)+","+f[0]+","+f[1]}return r}function _e(t,n){for(var e,r=[],u=(1-n)/2,i=t[0],a=t[1],o=1,c=t.length;c>++o;)e=i,i=a,a=t[o],r.push([u*(a[0]-e[0]),u*(a[1]-e[1])]);return r}function we(t){if(3>t.length)return pe(t);var n=1,e=t.length,r=t[0],u=r[0],i=r[1],a=[u,u,u,(r=t[1])[0]],o=[i,i,i,r[1]],c=[u,",",i];for(Ne(c,a,o);e>++n;)r=t[n],a.shift(),a.push(r[0]),o.shift(),o.push(r[1]),Ne(c,a,o);for(n=-1;2>++n;)a.shift(),a.push(r[0]),o.shift(),o.push(r[1]),Ne(c,a,o);return c.join("")}function Se(t){if(4>t.length)return pe(t);for(var n,e=[],r=-1,u=t.length,i=[0],a=[0];3>++r;)n=t[r],i.push(n[0]),a.push(n[1]);for(e.push(Ae(Va,i)+","+Ae(Va,a)),--r;u>++r;)n=t[r],i.shift(),i.push(n[0]),a.shift(),a.push(n[1]),Ne(e,i,a);return e.join("")}function ke(t){for(var n,e,r=-1,u=t.length,i=u+4,a=[],o=[];4>++r;)e=t[r%u],a.push(e[0]),o.push(e[1]);for(n=[Ae(Va,a),",",Ae(Va,o)],--r;i>++r;)e=t[r%u],a.shift(),a.push(e[0]),o.shift(),o.push(e[1]),Ne(n,a,o);return n.join("")}function Ee(t,n){var e=t.length-1;if(e)for(var r,u,i=t[0][0],a=t[0][1],o=t[e][0]-i,c=t[e][1]-a,l=-1;e>=++l;)r=t[l],u=l/e,r[0]=n*r[0]+(1-n)*(i+u*o),r[1]=n*r[1]+(1-n)*(a+u*c);return we(t)}function Ae(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]+t[3]*n[3]}function Ne(t,n,e){t.push("C",Ae(Ua,n),",",Ae(Ua,e),",",Ae(Ia,n),",",Ae(Ia,e),",",Ae(Va,n),",",Ae(Va,e))}function Te(t,n){return(n[1]-t[1])/(n[0]-t[0])}function qe(t){for(var n=0,e=t.length-1,r=[],u=t[0],i=t[1],a=r[0]=Te(u,i);e>++n;)r[n]=(a+(a=Te(u=i,i=t[n+1])))/2;return r[n]=a,r}function Ce(t){for(var n,e,r,u,i=[],a=qe(t),o=-1,c=t.length-1;c>++o;)n=Te(t[o],t[o+1]),1e-6>Math.abs(n)?a[o]=a[o+1]=0:(e=a[o]/n,r=a[o+1]/n,u=e*e+r*r,u>9&&(u=3*n/Math.sqrt(u),a[o]=u*e,a[o+1]=u*r));for(o=-1;c>=++o;)u=(t[Math.min(c,o+1)][0]-t[Math.max(0,o-1)][0])/(6*(1+a[o]*a[o])),i.push([u||0,a[o]*u||0]);return i}function ze(t){return 3>t.length?pe(t):t[0]+xe(t,Ce(t))}function De(t){for(var n,e,r,u=-1,i=t.length;i>++u;)n=t[u],e=n[0],r=n[1]+Ra,n[0]=e*Math.cos(r),n[1]=e*Math.sin(r);return t}function Le(t){function n(n){function o(){m.push("M",l(t(y),g),h,s(t(v.reverse()),g),"Z")}for(var f,p,d,m=[],v=[],y=[],M=-1,b=n.length,x=c(e),_=c(u),w=e===r?function(){return p}:c(r),S=u===i?function(){return d}:c(i);b>++M;)a.call(this,f=n[M],M)?(v.push([p=+x.call(this,f,M),d=+_.call(this,f,M)]),y.push([+w.call(this,f,M),+S.call(this,f,M)])):v.length&&(o(),v=[],y=[]);return v.length&&o(),m.length?m.join(""):null}var e=he,r=he,u=0,i=ge,a=o,l=pe,f=l.key,s=l,h="L",g=.7;return n.x=function(t){return arguments.length?(e=r=t,n):r},n.x0=function(t){return arguments.length?(e=t,n):e},n.x1=function(t){return arguments.length?(r=t,n):r},n.y=function(t){return arguments.length?(u=i=t,n):i},n.y0=function(t){return arguments.length?(u=t,n):u},n.y1=function(t){return arguments.length?(i=t,n):i},n.defined=function(t){return arguments.length?(a=t,n):a},n.interpolate=function(t){return arguments.length?(f="function"==typeof t?l=t:(l=Ya.get(t)||pe).key,s=l.reverse||l,h=l.closed?"M":"L",n):f},n.tension=function(t){return arguments.length?(g=t,n):g},n}function Fe(t){return t.radius}function He(t){return[t.x,t.y]}function je(t){return function(){var n=t.apply(this,arguments),e=n[0],r=n[1]+Ra;return[e*Math.cos(r),e*Math.sin(r)]}}function Pe(){return 64}function Re(){return"circle"}function Oe(t){var n=Math.sqrt(t/Ti);return"M0,"+n+"A"+n+","+n+" 0 1,1 0,"+-n+"A"+n+","+n+" 0 1,1 0,"+n+"Z"}function Ye(t,n){t.attr("transform",function(t){return"translate("+n(t)+",0)"})}function Ue(t,n){t.attr("transform",function(t){return"translate(0,"+n(t)+")"})}function Ie(t,n,e){if(r=[],e&&n.length>1){for(var r,u,i,a=Rn(t.domain()),o=-1,c=n.length,l=(n[1]-n[0])/++e;c>++o;)for(u=e;--u>0;)(i=+n[o]-u*l)>=a[0]&&r.push(i);for(--o,u=0;e>++u&&(i=+n[o]+u*l)<a[1];)r.push(i)}return r}function Ve(t){for(var n=t.source,e=t.target,r=Xe(n,e),u=[n];n!==r;)n=n.parent,u.push(n);for(var i=u.length;e!==r;)u.splice(i,0,e),e=e.parent;return u}function Ze(t){for(var n=[],e=t.parent;null!=e;)n.push(t),t=e,e=e.parent;return n.push(t),n}function Xe(t,n){if(t===n)return t;for(var e=Ze(t),r=Ze(n),u=e.pop(),i=r.pop(),a=null;u===i;)a=u,u=e.pop(),i=r.pop();return a}function Be(t){t.fixed|=2}function $e(t){t.fixed&=-7}function Je(t){t.fixed|=4,t.px=t.x,t.py=t.y}function Ge(t){t.fixed&=-5}function Ke(t,n,e){var r=0,u=0;if(t.charge=0,!t.leaf)for(var i,a=t.nodes,o=a.length,c=-1;o>++c;)i=a[c],null!=i&&(Ke(i,n,e),t.charge+=i.charge,r+=i.charge*i.cx,u+=i.charge*i.cy);if(t.point){t.leaf||(t.point.x+=Math.random()-.5,t.point.y+=Math.random()-.5);var l=n*e[t.point.index];t.charge+=t.pointCharge=l,r+=l*t.point.x,u+=l*t.point.y}t.cx=r/t.charge,t.cy=u/t.charge}function We(t){return t.x}function Qe(t){return t.y}function tr(t,n,e){t.y0=n,t.y=e}function nr(t){return Ci.range(t.length)}function er(t){for(var n=-1,e=t[0].length,r=[];e>++n;)r[n]=0;return r}function rr(t){for(var n,e=1,r=0,u=t[0][1],i=t.length;i>e;++e)(n=t[e][1])>u&&(r=e,u=n);return r}function ur(t){return t.reduce(ir,0)}function ir(t,n){return t+n[1]}function ar(t,n){return or(t,Math.ceil(Math.log(n.length)/Math.LN2+1))}function or(t,n){for(var e=-1,r=+t[0],u=(t[1]-r)/n,i=[];n>=++e;)i[e]=u*e+r;return i}function cr(t){return[Ci.min(t),Ci.max(t)]}function lr(t,n){return Ci.rebind(t,n,"sort","children","value"),t.nodes=t,t.links=gr,t}function fr(t){return t.children}function sr(t){return t.value}function hr(t,n){return n.value-t.value}function gr(t){return Ci.merge(t.map(function(t){return(t.children||[]).map(function(n){return{source:t,target:n}})}))}function pr(t,n){return t.value-n.value}function dr(t,n){var e=t._pack_next;t._pack_next=n,n._pack_prev=t,n._pack_next=e,e._pack_prev=n}function mr(t,n){t._pack_next=n,n._pack_prev=t}function vr(t,n){var e=n.x-t.x,r=n.y-t.y,u=t.r+n.r;return u*u-e*e-r*r>.001}function yr(t){function n(t){f=Math.min(t.x-t.r,f),s=Math.max(t.x+t.r,s),h=Math.min(t.y-t.r,h),g=Math.max(t.y+t.r,g)}if((e=t.children)&&(l=e.length)){var e,r,u,i,a,o,c,l,f=1/0,s=-1/0,h=1/0,g=-1/0;if(e.forEach(Mr),r=e[0],r.x=-r.r,r.y=0,n(r),l>1&&(u=e[1],u.x=u.r,u.y=0,n(u),l>2))for(i=e[2],_r(r,u,i),n(i),dr(r,i),r._pack_prev=i,dr(i,u),u=r._pack_next,a=3;l>a;a++){_r(r,u,i=e[a]);var p=0,d=1,m=1;for(o=u._pack_next;o!==u;o=o._pack_next,d++)if(vr(o,i)){p=1;break}if(1==p)for(c=r._pack_prev;c!==o._pack_prev&&!vr(c,i);c=c._pack_prev,m++);p?(m>d||d==m&&u.r<r.r?mr(r,u=o):mr(r=c,u),a--):(dr(r,i),u=i,n(i))}var v=(f+s)/2,y=(h+g)/2,M=0;for(a=0;l>a;a++)i=e[a],i.x-=v,i.y-=y,M=Math.max(M,i.r+Math.sqrt(i.x*i.x+i.y*i.y));t.r=M,e.forEach(br)}}function Mr(t){t._pack_next=t._pack_prev=t}function br(t){delete t._pack_next,delete t._pack_prev}function xr(t,n,e,r){var u=t.children;if(t.x=n+=r*t.x,t.y=e+=r*t.y,t.r*=r,u)for(var i=-1,a=u.length;a>++i;)xr(u[i],n,e,r)}function _r(t,n,e){var r=t.r+e.r,u=n.x-t.x,i=n.y-t.y;if(r&&(u||i)){var a=n.r+e.r,o=u*u+i*i;a*=a,r*=r;var c=.5+(r-a)/(2*o),l=Math.sqrt(Math.max(0,2*a*(r+o)-(r-=o)*r-a*a))/(2*o);e.x=t.x+c*u+l*i,e.y=t.y+c*i-l*u}else e.x=t.x+r,e.y=t.y}function wr(t){return 1+Ci.max(t,function(t){return t.y})}function Sr(t){return t.reduce(function(t,n){return t+n.x},0)/t.length}function kr(t){var n=t.children;return n&&n.length?kr(n[0]):t}function Er(t){var n,e=t.children;return e&&(n=e.length)?Er(e[n-1]):t}function Ar(t,n){return t.parent==n.parent?1:2}function Nr(t){var n=t.children;return n&&n.length?n[0]:t._tree.thread}function Tr(t){var n,e=t.children;return e&&(n=e.length)?e[n-1]:t._tree.thread}function qr(t,n){var e=t.children;if(e&&(u=e.length))for(var r,u,i=-1;u>++i;)n(r=qr(e[i],n),t)>0&&(t=r);return t}function Cr(t,n){return t.x-n.x}function zr(t,n){return n.x-t.x}function Dr(t,n){return t.depth-n.depth}function Lr(t,n){function e(t,r){var u=t.children;if(u&&(a=u.length))for(var i,a,o=null,c=-1;a>++c;)i=u[c],e(i,o),o=i;n(t,r)}e(t,null)}function Fr(t){for(var n,e=0,r=0,u=t.children,i=u.length;--i>=0;)n=u[i]._tree,n.prelim+=e,n.mod+=e,e+=n.shift+(r+=n.change)}function Hr(t,n,e){t=t._tree,n=n._tree;var r=e/(n.number-t.number);t.change+=r,n.change-=r,n.shift+=e,n.prelim+=e,n.mod+=e}function jr(t,n,e){return t._tree.ancestor.parent==n.parent?t._tree.ancestor:e}function Pr(t){return{x:t.x,y:t.y,dx:t.dx,dy:t.dy}}function Rr(t,n){var e=t.x+n[3],r=t.y+n[0],u=t.dx-n[1]-n[3],i=t.dy-n[0]-n[2];return 0>u&&(e+=u/2,u=0),0>i&&(r+=i/2,i=0),{x:e,y:r,dx:u,dy:i}}function Or(t,n){function e(t,e){return Ci.xhr(t,n,e).response(r)}function r(t){return e.parse(t.responseText)}function u(n){return n.map(i).join(t)}function i(t){return a.test(t)?'"'+t.replace(/\"/g,'""')+'"':t}var a=RegExp('["'+t+"\n]"),o=t.charCodeAt(0);return e.parse=function(t){var n;return e.parseRows(t,function(t){return n?n(t):(n=Function("d","return {"+t.map(function(t,n){return JSON.stringify(t)+": d["+n+"]"}).join(",")+"}"),void 0)})},e.parseRows=function(t,n){function e(){if(f>=l)return a;if(u)return u=!1,i;var n=f;if(34===t.charCodeAt(n)){for(var e=n;l>e++;)if(34===t.charCodeAt(e)){if(34!==t.charCodeAt(e+1))break;++e}f=e+2;var r=t.charCodeAt(e+1);return 13===r?(u=!0,10===t.charCodeAt(e+2)&&++f):10===r&&(u=!0),t.substring(n+1,e).replace(/""/g,'"')}for(;l>f;){var r=t.charCodeAt(f++),c=1;if(10===r)u=!0;else if(13===r)u=!0,10===t.charCodeAt(f)&&(++f,++c);else if(r!==o)continue;return t.substring(n,f-c)}return t.substring(n)}for(var r,u,i={},a={},c=[],l=t.length,f=0,s=0;(r=e())!==a;){for(var h=[];r!==i&&r!==a;)h.push(r),r=e();(!n||(h=n(h,s++)))&&c.push(h)}return c},e.format=function(t){return t.map(u).join("\n")},e}function Yr(t,n){oo.hasOwnProperty(t.type)&&oo[t.type](t,n)}function Ur(t,n,e){var r,u=-1,i=t.length-e;for(n.lineStart();i>++u;)r=t[u],n.point(r[0],r[1]);n.lineEnd()}function Ir(t,n){var e=-1,r=t.length;for(n.polygonStart();r>++e;)Ur(t[e],n,1);n.polygonEnd()}function Vr(t){return[Math.atan2(t[1],t[0]),Math.asin(Math.max(-1,Math.min(1,t[2])))]}function Zr(t,n){return qi>Math.abs(t[0]-n[0])&&qi>Math.abs(t[1]-n[1])}function Xr(t){var n=t[0],e=t[1],r=Math.cos(e);return[r*Math.cos(n),r*Math.sin(n),Math.sin(e)]}function Br(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function $r(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function Jr(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function Gr(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function Kr(t){var n=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}function Wr(t){function n(n){function r(e,r){e=t(e,r),n.point(e[0],e[1])}function i(){f=0/0,d.point=a,n.lineStart()}function a(r,i){var a=Xr([r,i]),o=t(r,i);e(f,s,l,h,g,p,f=o[0],s=o[1],l=r,h=a[0],g=a[1],p=a[2],u,n),n.point(f,s)}function o(){d.point=r,n.lineEnd()}function c(){var t,r,c,m,v,y,M;i(),d.point=function(n,e){a(t=n,r=e),c=f,m=s,v=h,y=g,M=p,d.point=a},d.lineEnd=function(){e(f,s,l,h,g,p,c,m,t,v,y,M,u,n),d.lineEnd=o,o()}}var l,f,s,h,g,p,d={point:r,lineStart:i,lineEnd:o,polygonStart:function(){n.polygonStart(),d.lineStart=c},polygonEnd:function(){n.polygonEnd(),d.lineStart=i}};return d}function e(n,u,i,a,o,c,l,f,s,h,g,p,d,m){var v=l-n,y=f-u,M=v*v+y*y;if(M>4*r&&d--){var b=a+h,x=o+g,_=c+p,w=Math.sqrt(b*b+x*x+_*_),S=Math.asin(_/=w),k=qi>Math.abs(Math.abs(_)-1)?(i+s)/2:Math.atan2(x,b),E=t(k,S),A=E[0],N=E[1],T=A-n,q=N-u,C=y*T-v*q;(C*C/M>r||Math.abs((v*T+y*q)/M-.5)>.3)&&(e(n,u,i,a,o,c,A,N,k,b/=w,x/=w,_,d,m),m.point(A,N),e(A,N,k,b,x,_,l,f,s,h,g,p,d,m))}}var r=.5,u=16;return n.precision=function(t){return arguments.length?(u=(r=t*t)>0&&16,n):Math.sqrt(r)},n}function Qr(t,n){function e(t,n){var e=Math.sqrt(i-2*u*Math.sin(n))/u;return[e*Math.sin(t*=u),a-e*Math.cos(t)]}var r=Math.sin(t),u=(r+Math.sin(n))/2,i=1+r*(2*u-r),a=Math.sqrt(i)/u;return e.invert=function(t,n){var e=a-n;return[Math.atan2(t,e)/u,Math.asin((i-(t*t+e*e)*u*u)/(2*u))]},e}function tu(t){function n(t,n){r>t&&(r=t),t>i&&(i=t),u>n&&(u=n),n>a&&(a=n)}function e(){o.point=o.lineEnd=Pn}var r,u,i,a,o={point:n,lineStart:Pn,lineEnd:Pn,polygonStart:function(){o.lineEnd=e},polygonEnd:function(){o.point=n}};return function(n){return a=i=-(r=u=1/0),Ci.geo.stream(n,t(o)),[[r,u],[i,a]]}}function nu(t,n){if(!fo){++so,t*=zi;var e=Math.cos(n*=zi);ho+=(e*Math.cos(t)-ho)/so,go+=(e*Math.sin(t)-go)/so,po+=(Math.sin(n)-po)/so}}function eu(){var t,n;fo=1,ru(),fo=2;var e=mo.point;mo.point=function(r,u){e(t=r,n=u)},mo.lineEnd=function(){mo.point(t,n),uu(),mo.lineEnd=uu}}function ru(){function t(t,u){t*=zi;var i=Math.cos(u*=zi),a=i*Math.cos(t),o=i*Math.sin(t),c=Math.sin(u),l=Math.atan2(Math.sqrt((l=e*c-r*o)*l+(l=r*a-n*c)*l+(l=n*o-e*a)*l),n*a+e*o+r*c);so+=l,ho+=l*(n+(n=a)),go+=l*(e+(e=o)),po+=l*(r+(r=c))}var n,e,r;fo>1||(1>fo&&(fo=1,so=ho=go=po=0),mo.point=function(u,i){u*=zi;var a=Math.cos(i*=zi);n=a*Math.cos(u),e=a*Math.sin(u),r=Math.sin(i),mo.point=t})}function uu(){mo.point=nu}function iu(t,n){var e=Math.cos(t),r=Math.sin(t);return function(u,i,a,o){null!=u?(u=au(e,u),i=au(e,i),(a>0?i>u:u>i)&&(u+=2*a*Ti)):(u=t+2*a*Ti,i=t);for(var c,l=a*n,f=u;a>0?f>i:i>f;f-=l)o.point((c=Vr([e,-r*Math.cos(f),-r*Math.sin(f)]))[0],c[1])}}function au(t,n){var e=Xr(n);e[0]-=t,Kr(e);var r=Math.acos(Math.max(-1,Math.min(1,-e[1])));return((0>-e[2]?-r:r)+2*Math.PI-qi)%(2*Math.PI)}function ou(t,n,e){return function(r){function u(n,e){t(n,e)&&r.point(n,e)}function i(t,n){m.point(t,n)}function a(){v.point=i,m.lineStart()}function o(){v.point=u,m.lineEnd()}function c(t,n){M.point(t,n),d.push([t,n])}function l(){M.lineStart(),d=[]}function f(){c(d[0][0],d[0][1]),M.lineEnd();var t,n=M.clean(),e=y.buffer(),u=e.length;if(!u)return p=!0,g+=gu(d,-1),d=null,void 0;if(d=null,1&n){t=e[0],h+=gu(t,1);var i,u=t.length-1,a=-1;for(r.lineStart();u>++a;)r.point((i=t[a])[0],i[1]);return r.lineEnd(),void 0}u>1&&2&n&&e.push(e.pop().concat(e.shift())),s.push(e.filter(su))}var s,h,g,p,d,m=n(r),v={point:u,lineStart:a,lineEnd:o,polygonStart:function(){v.point=c,v.lineStart=l,v.lineEnd=f,p=!1,g=h=0,s=[],r.polygonStart()},polygonEnd:function(){v.point=u,v.lineStart=a,v.lineEnd=o,s=Ci.merge(s),s.length?cu(s,e,r):(-qi>h||p&&-qi>g)&&(r.lineStart(),e(null,null,1,r),r.lineEnd()),r.polygonEnd(),s=null},sphere:function(){r.polygonStart(),r.lineStart(),e(null,null,1,r),r.lineEnd(),r.polygonEnd()}},y=hu(),M=n(y);return v}}function cu(t,n,e){var r=[],u=[];if(t.forEach(function(t){if(!(1>=(n=t.length))){var n,i=t[0],a=t[n-1];if(Zr(i,a)){e.lineStart();
+for(var o=0;n>o;++o)e.point((i=t[o])[0],i[1]);return e.lineEnd(),void 0}var c={point:i,points:t,other:null,visited:!1,entry:!0,subject:!0},l={point:i,points:[i],other:c,visited:!1,entry:!1,subject:!1};c.other=l,r.push(c),u.push(l),c={point:a,points:[a],other:null,visited:!1,entry:!1,subject:!0},l={point:a,points:[a],other:c,visited:!1,entry:!0,subject:!1},c.other=l,r.push(c),u.push(l)}}),u.sort(fu),lu(r),lu(u),r.length)for(var i,a,o,c=r[0];;){for(i=c;i.visited;)if((i=i.next)===c)return;a=i.points,e.lineStart();do{if(i.visited=i.other.visited=!0,i.entry){if(i.subject)for(var l=0;a.length>l;l++)e.point((o=a[l])[0],o[1]);else n(i.point,i.next.point,1,e);i=i.next}else{if(i.subject){a=i.prev.points;for(var l=a.length;--l>=0;)e.point((o=a[l])[0],o[1])}else n(i.point,i.prev.point,-1,e);i=i.prev}i=i.other,a=i.points}while(!i.visited);e.lineEnd()}}function lu(t){if(n=t.length){for(var n,e,r=0,u=t[0];n>++r;)u.next=e=t[r],e.prev=u,u=e;u.next=e=t[0],e.prev=u}}function fu(t,n){return(0>(t=t.point)[0]?t[1]-Ti/2-qi:Ti/2-t[1])-(0>(n=n.point)[0]?n[1]-Ti/2-qi:Ti/2-n[1])}function su(t){return t.length>1}function hu(){var t,n=[];return{lineStart:function(){n.push(t=[])},point:function(n,e){t.push([n,e])},lineEnd:Pn,buffer:function(){var e=n;return n=[],t=null,e}}}function gu(t,n){if(!(e=t.length))return 0;for(var e,r,u,i=0,a=0,o=t[0],c=o[0],l=o[1],f=Math.cos(l),s=Math.atan2(n*Math.sin(c)*f,Math.sin(l)),h=1-n*Math.cos(c)*f,g=s;e>++i;)o=t[i],f=Math.cos(l=o[1]),r=Math.atan2(n*Math.sin(c=o[0])*f,Math.sin(l)),u=1-n*Math.cos(c)*f,qi>Math.abs(h-2)&&qi>Math.abs(u-2)||(qi>Math.abs(u)||qi>Math.abs(h)||(qi>Math.abs(Math.abs(r-s)-Ti)?u+h>2&&(a+=4*(r-s)):a+=qi>Math.abs(h-2)?4*(r-g):((3*Ti+r-s)%(2*Ti)-Ti)*(h+u)),g=s,s=r,h=u);return a}function pu(t){var n,e=0/0,r=0/0,u=0/0;return{lineStart:function(){t.lineStart(),n=1},point:function(i,a){var o=i>0?Ti:-Ti,c=Math.abs(i-e);qi>Math.abs(c-Ti)?(t.point(e,r=(r+a)/2>0?Ti/2:-Ti/2),t.point(u,r),t.lineEnd(),t.lineStart(),t.point(o,r),t.point(i,r),n=0):u!==o&&c>=Ti&&(qi>Math.abs(e-u)&&(e-=u*qi),qi>Math.abs(i-o)&&(i-=o*qi),r=du(e,r,i,a),t.point(u,r),t.lineEnd(),t.lineStart(),t.point(o,r),n=0),t.point(e=i,r=a),u=o},lineEnd:function(){t.lineEnd(),e=r=0/0},clean:function(){return 2-n}}}function du(t,n,e,r){var u,i,a=Math.sin(t-e);return Math.abs(a)>qi?Math.atan((Math.sin(n)*(i=Math.cos(r))*Math.sin(e)-Math.sin(r)*(u=Math.cos(n))*Math.sin(t))/(u*i*a)):(n+r)/2}function mu(t,n,e,r){var u;if(null==t)u=e*Ti/2,r.point(-Ti,u),r.point(0,u),r.point(Ti,u),r.point(Ti,0),r.point(Ti,-u),r.point(0,-u),r.point(-Ti,-u),r.point(-Ti,0),r.point(-Ti,u);else if(Math.abs(t[0]-n[0])>qi){var i=(t[0]<n[0]?1:-1)*Ti;u=e*i/2,r.point(-i,u),r.point(0,u),r.point(i,u)}else r.point(n[0],n[1])}function vu(t){function n(t,n){return Math.cos(t)*Math.cos(n)>i}function e(t){var e,u,i,a;return{lineStart:function(){i=u=!1,a=1},point:function(o,c){var l,f=[o,c],s=n(o,c);!e&&(i=u=s)&&t.lineStart(),s!==u&&(l=r(e,f),(Zr(e,l)||Zr(f,l))&&(f[0]+=qi,f[1]+=qi,s=n(f[0],f[1]))),s!==u&&(a=0,(u=s)?(t.lineStart(),l=r(f,e),t.point(l[0],l[1])):(l=r(e,f),t.point(l[0],l[1]),t.lineEnd()),e=l),!s||e&&Zr(e,f)||t.point(f[0],f[1]),e=f},lineEnd:function(){u&&t.lineEnd(),e=null},clean:function(){return a|(i&&u)<<1}}}function r(t,n){var e=Xr(t,0),r=Xr(n,0),u=[1,0,0],a=$r(e,r),o=Br(a,a),c=a[0],l=o-c*c;if(!l)return t;var f=i*o/l,s=-i*c/l,h=$r(u,a),g=Gr(u,f),p=Gr(a,s);Jr(g,p);var d=h,m=Br(g,d),v=Br(d,d),y=Math.sqrt(m*m-v*(Br(g,g)-1)),M=Gr(d,(-m-y)/v);return Jr(M,g),Vr(M)}var u=t*zi,i=Math.cos(u),a=iu(u,6*zi);return ou(n,e,a)}function yu(t,n){function e(e,r){return e=t(e,r),n(e[0],e[1])}return t.invert&&n.invert&&(e.invert=function(e,r){return e=n.invert(e,r),e&&t.invert(e[0],e[1])}),e}function Mu(t,n){return[t,n]}function bu(t,n,e){var r=Ci.range(t,n-qi,e).concat(n);return function(t){return r.map(function(n){return[t,n]})}}function xu(t,n,e){var r=Ci.range(t,n-qi,e).concat(n);return function(t){return r.map(function(n){return[n,t]})}}function _u(t){return(t=Math.sin(t/2))*t}function wu(t,n,e,r){var u=Math.cos(n),i=Math.sin(n),a=Math.cos(r),o=Math.sin(r),c=u*Math.cos(t),l=u*Math.sin(t),f=a*Math.cos(e),s=a*Math.sin(e),h=2*Math.asin(Math.sqrt(_u(r-n)+u*a*_u(e-t))),g=1/Math.sin(h),p=h?function(t){var n=Math.sin(t*=h)*g,e=Math.sin(h-t)*g,r=e*c+n*f,u=e*l+n*s,a=e*i+n*o;return[Math.atan2(u,r)*Di,Math.atan2(a,Math.sqrt(r*r+u*u))*Di]}:function(){return[t*Di,n*Di]};return p.distance=h,p}function Su(t,n){return[t/(2*Ti),Math.max(-.5,Math.min(.5,Math.log(Math.tan(Ti/4+n/2))/(2*Ti)))]}function ku(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function Eu(t){var n=Wr(function(n,e){return t([n*Di,e*Di])});return function(t){return t=n(t),{point:function(n,e){t.point(n*zi,e*zi)},sphere:function(){t.sphere()},lineStart:function(){t.lineStart()},lineEnd:function(){t.lineEnd()},polygonStart:function(){t.polygonStart()},polygonEnd:function(){t.polygonEnd()}}}}function Au(){function t(t,n){a.push("M",t,",",n,i)}function n(t,n){a.push("M",t,",",n),o.point=e}function e(t,n){a.push("L",t,",",n)}function r(){o.point=t}function u(){a.push("Z")}var i=ku(4.5),a=[],o={point:t,lineStart:function(){o.point=n},lineEnd:r,polygonStart:function(){o.lineEnd=u},polygonEnd:function(){o.lineEnd=r,o.point=t},pointRadius:function(t){return i=ku(t),o},result:function(){if(a.length){var t=a.join("");return a=[],t}}};return o}function Nu(t){function n(n,e){t.moveTo(n,e),t.arc(n,e,a,0,2*Ti)}function e(n,e){t.moveTo(n,e),o.point=r}function r(n,e){t.lineTo(n,e)}function u(){o.point=n}function i(){t.closePath()}var a=4.5,o={point:n,lineStart:function(){o.point=e},lineEnd:u,polygonStart:function(){o.lineEnd=i},polygonEnd:function(){o.lineEnd=u,o.point=n},pointRadius:function(t){return a=t,o},result:Pn};return o}function Tu(){function t(t,n){xo+=u*t-r*n,r=t,u=n}var n,e,r,u;_o.point=function(i,a){_o.point=t,n=r=i,e=u=a},_o.lineEnd=function(){t(n,e)}}function qu(t,n){fo||(ho+=t,go+=n,++po)}function Cu(){function t(t,r){var u=t-n,i=r-e,a=Math.sqrt(u*u+i*i);ho+=a*(n+t)/2,go+=a*(e+r)/2,po+=a,n=t,e=r}var n,e;if(1!==fo){if(!(1>fo))return;fo=1,ho=go=po=0}wo.point=function(r,u){wo.point=t,n=r,e=u}}function zu(){wo.point=qu}function Du(){function t(t,n){var e=u*t-r*n;ho+=e*(r+t),go+=e*(u+n),po+=3*e,r=t,u=n}var n,e,r,u;2>fo&&(fo=2,ho=go=po=0),wo.point=function(i,a){wo.point=t,n=r=i,e=u=a},wo.lineEnd=function(){t(n,e)}}function Lu(){function t(t,n){t*=zi,n=n*zi/2+Ti/4;var e=t-r,a=Math.cos(n),o=Math.sin(n),c=i*o,l=ko,f=Eo,s=u*a+c*Math.cos(e),h=c*Math.sin(e);ko=l*s-f*h,Eo=f*s+l*h,r=t,u=a,i=o}var n,e,r,u,i;Ao.point=function(a,o){Ao.point=t,r=(n=a)*zi,u=Math.cos(o=(e=o)*zi/2+Ti/4),i=Math.sin(o)},Ao.lineEnd=function(){t(n,e)}}function Fu(t){return Hu(function(){return t})()}function Hu(t){function n(t){return t=a(t[0]*zi,t[1]*zi),[t[0]*f+o,c-t[1]*f]}function e(t){return t=a.invert((t[0]-o)/f,(c-t[1])/f),t&&[t[0]*Di,t[1]*Di]}function r(){a=yu(i=Pu(d,m,v),u);var t=u(g,p);return o=s-t[0]*f,c=h+t[1]*f,n}var u,i,a,o,c,l=Wr(function(t,n){return t=u(t,n),[t[0]*f+o,c-t[1]*f]}),f=150,s=480,h=250,g=0,p=0,d=0,m=0,v=0,y=vo,M=null;return n.stream=function(t){return ju(i,y(l(t)))},n.clipAngle=function(t){return arguments.length?(y=null==t?(M=t,vo):vu(M=+t),n):M},n.scale=function(t){return arguments.length?(f=+t,r()):f},n.translate=function(t){return arguments.length?(s=+t[0],h=+t[1],r()):[s,h]},n.center=function(t){return arguments.length?(g=t[0]%360*zi,p=t[1]%360*zi,r()):[g*Di,p*Di]},n.rotate=function(t){return arguments.length?(d=t[0]%360*zi,m=t[1]%360*zi,v=t.length>2?t[2]%360*zi:0,r()):[d*Di,m*Di,v*Di]},Ci.rebind(n,l,"precision"),function(){return u=t.apply(this,arguments),n.invert=u.invert&&e,r()}}function ju(t,n){return{point:function(e,r){r=t(e*zi,r*zi),e=r[0],n.point(e>Ti?e-2*Ti:-Ti>e?e+2*Ti:e,r[1])},sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function Pu(t,n,e){return t?n||e?yu(Ou(t),Yu(n,e)):Ou(t):n||e?Yu(n,e):Mu}function Ru(t){return function(n,e){return n+=t,[n>Ti?n-2*Ti:-Ti>n?n+2*Ti:n,e]}}function Ou(t){var n=Ru(t);return n.invert=Ru(-t),n}function Yu(t,n){function e(t,n){var e=Math.cos(n),o=Math.cos(t)*e,c=Math.sin(t)*e,l=Math.sin(n),f=l*r+o*u;return[Math.atan2(c*i-f*a,o*r-l*u),Math.asin(Math.max(-1,Math.min(1,f*i+c*a)))]}var r=Math.cos(t),u=Math.sin(t),i=Math.cos(n),a=Math.sin(n);return e.invert=function(t,n){var e=Math.cos(n),o=Math.cos(t)*e,c=Math.sin(t)*e,l=Math.sin(n),f=l*i-c*a;return[Math.atan2(c*i+l*a,o*r+f*u),Math.asin(Math.max(-1,Math.min(1,f*r-o*u)))]},e}function Uu(t,n){function e(n,e){var r=Math.cos(n),u=Math.cos(e),i=t(r*u);return[i*u*Math.sin(n),i*Math.sin(e)]}return e.invert=function(t,e){var r=Math.sqrt(t*t+e*e),u=n(r),i=Math.sin(u),a=Math.cos(u);return[Math.atan2(t*i,r*a),Math.asin(r&&e*i/r)]},e}function Iu(t,n,e,r){var u,i,a,o,c,l,f;return u=r[t],i=u[0],a=u[1],u=r[n],o=u[0],c=u[1],u=r[e],l=u[0],f=u[1],(f-a)*(o-i)-(c-a)*(l-i)>0}function Vu(t,n,e){return(e[0]-n[0])*(t[1]-n[1])<(e[1]-n[1])*(t[0]-n[0])}function Zu(t,n,e,r){var u=t[0],i=e[0],a=n[0]-u,o=r[0]-i,c=t[1],l=e[1],f=n[1]-c,s=r[1]-l,h=(o*(c-l)-s*(u-i))/(s*a-o*f);return[u+h*a,c+h*f]}function Xu(t,n){var e={list:t.map(function(t,n){return{index:n,x:t[0],y:t[1]}}).sort(function(t,n){return t.y<n.y?-1:t.y>n.y?1:t.x<n.x?-1:t.x>n.x?1:0}),bottomSite:null},r={list:[],leftEnd:null,rightEnd:null,init:function(){r.leftEnd=r.createHalfEdge(null,"l"),r.rightEnd=r.createHalfEdge(null,"l"),r.leftEnd.r=r.rightEnd,r.rightEnd.l=r.leftEnd,r.list.unshift(r.leftEnd,r.rightEnd)},createHalfEdge:function(t,n){return{edge:t,side:n,vertex:null,l:null,r:null}},insert:function(t,n){n.l=t,n.r=t.r,t.r.l=n,t.r=n},leftBound:function(t){var n=r.leftEnd;do n=n.r;while(n!=r.rightEnd&&u.rightOf(n,t));return n=n.l},del:function(t){t.l.r=t.r,t.r.l=t.l,t.edge=null},right:function(t){return t.r},left:function(t){return t.l},leftRegion:function(t){return null==t.edge?e.bottomSite:t.edge.region[t.side]},rightRegion:function(t){return null==t.edge?e.bottomSite:t.edge.region[To[t.side]]}},u={bisect:function(t,n){var e={region:{l:t,r:n},ep:{l:null,r:null}},r=n.x-t.x,u=n.y-t.y,i=r>0?r:-r,a=u>0?u:-u;return e.c=t.x*r+t.y*u+.5*(r*r+u*u),i>a?(e.a=1,e.b=u/r,e.c/=r):(e.b=1,e.a=r/u,e.c/=u),e},intersect:function(t,n){var e=t.edge,r=n.edge;if(!e||!r||e.region.r==r.region.r)return null;var u=e.a*r.b-e.b*r.a;if(1e-10>Math.abs(u))return null;var i,a,o=(e.c*r.b-r.c*e.b)/u,c=(r.c*e.a-e.c*r.a)/u,l=e.region.r,f=r.region.r;l.y<f.y||l.y==f.y&&l.x<f.x?(i=t,a=e):(i=n,a=r);var s=o>=a.region.r.x;return s&&"l"===i.side||!s&&"r"===i.side?null:{x:o,y:c}},rightOf:function(t,n){var e=t.edge,r=e.region.r,u=n.x>r.x;if(u&&"l"===t.side)return 1;if(!u&&"r"===t.side)return 0;if(1===e.a){var i=n.y-r.y,a=n.x-r.x,o=0,c=0;if(!u&&0>e.b||u&&e.b>=0?c=o=i>=e.b*a:(c=n.x+n.y*e.b>e.c,0>e.b&&(c=!c),c||(o=1)),!o){var l=r.x-e.region.l.x;c=e.b*(a*a-i*i)<l*i*(1+2*a/l+e.b*e.b),0>e.b&&(c=!c)}}else{var f=e.c-e.a*n.x,s=n.y-f,h=n.x-r.x,g=f-r.y;c=s*s>h*h+g*g}return"l"===t.side?c:!c},endPoint:function(t,e,r){t.ep[e]=r,t.ep[To[e]]&&n(t)},distance:function(t,n){var e=t.x-n.x,r=t.y-n.y;return Math.sqrt(e*e+r*r)}},i={list:[],insert:function(t,n,e){t.vertex=n,t.ystar=n.y+e;for(var r=0,u=i.list,a=u.length;a>r;r++){var o=u[r];if(!(t.ystar>o.ystar||t.ystar==o.ystar&&n.x>o.vertex.x))break}u.splice(r,0,t)},del:function(t){for(var n=0,e=i.list,r=e.length;r>n&&e[n]!=t;++n);e.splice(n,1)},empty:function(){return 0===i.list.length},nextEvent:function(t){for(var n=0,e=i.list,r=e.length;r>n;++n)if(e[n]==t)return e[n+1];return null},min:function(){var t=i.list[0];return{x:t.vertex.x,y:t.ystar}},extractMin:function(){return i.list.shift()}};r.init(),e.bottomSite=e.list.shift();for(var a,o,c,l,f,s,h,g,p,d,m,v,y,M=e.list.shift();;)if(i.empty()||(a=i.min()),M&&(i.empty()||M.y<a.y||M.y==a.y&&M.x<a.x))o=r.leftBound(M),c=r.right(o),h=r.rightRegion(o),v=u.bisect(h,M),s=r.createHalfEdge(v,"l"),r.insert(o,s),d=u.intersect(o,s),d&&(i.del(o),i.insert(o,d,u.distance(d,M))),o=s,s=r.createHalfEdge(v,"r"),r.insert(o,s),d=u.intersect(s,c),d&&i.insert(s,d,u.distance(d,M)),M=e.list.shift();else{if(i.empty())break;o=i.extractMin(),l=r.left(o),c=r.right(o),f=r.right(c),h=r.leftRegion(o),g=r.rightRegion(c),m=o.vertex,u.endPoint(o.edge,o.side,m),u.endPoint(c.edge,c.side,m),r.del(o),i.del(c),r.del(c),y="l",h.y>g.y&&(p=h,h=g,g=p,y="r"),v=u.bisect(h,g),s=r.createHalfEdge(v,y),r.insert(l,s),u.endPoint(v,To[y],m),d=u.intersect(l,s),d&&(i.del(l),i.insert(l,d,u.distance(d,h))),d=u.intersect(s,f),d&&i.insert(s,d,u.distance(d,h))}for(o=r.right(r.leftEnd);o!=r.rightEnd;o=r.right(o))n(o.edge)}function Bu(){return{leaf:!0,nodes:[],point:null}}function $u(t,n,e,r,u,i){if(!t(n,e,r,u,i)){var a=.5*(e+u),o=.5*(r+i),c=n.nodes;c[0]&&$u(t,c[0],e,r,a,o),c[1]&&$u(t,c[1],a,r,u,o),c[2]&&$u(t,c[2],e,o,a,i),c[3]&&$u(t,c[3],a,o,u,i)}}function Ju(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Gu(t,n,e,r){for(var u,i,a=0,o=n.length,c=e.length;o>a;){if(r>=c)return-1;if(u=n.charCodeAt(a++),37===u){if(i=$o[n.charAt(a++)],!i||0>(r=i(t,e,r)))return-1}else if(u!=e.charCodeAt(r++))return-1}return r}function Ku(t){return RegExp("^(?:"+t.map(Ci.requote).join("|")+")","i")}function Wu(t){for(var n=new i,e=-1,r=t.length;r>++e;)n.set(t[e].toLowerCase(),e);return n}function Qu(t,n,e){t+="";var r=t.length;return e>r?Array(e-r+1).join(n)+t:t}function ti(t,n,e){Yo.lastIndex=0;var r=Yo.exec(n.substring(e));return r?e+=r[0].length:-1}function ni(t,n,e){Oo.lastIndex=0;var r=Oo.exec(n.substring(e));return r?e+=r[0].length:-1}function ei(t,n,e){Vo.lastIndex=0;var r=Vo.exec(n.substring(e));return r?(t.m=Zo.get(r[0].toLowerCase()),e+=r[0].length):-1}function ri(t,n,e){Uo.lastIndex=0;var r=Uo.exec(n.substring(e));return r?(t.m=Io.get(r[0].toLowerCase()),e+=r[0].length):-1}function ui(t,n,e){return Gu(t,""+Bo.c,n,e)}function ii(t,n,e){return Gu(t,""+Bo.x,n,e)}function ai(t,n,e){return Gu(t,""+Bo.X,n,e)}function oi(t,n,e){Jo.lastIndex=0;var r=Jo.exec(n.substring(e,e+4));return r?(t.y=+r[0],e+=r[0].length):-1}function ci(t,n,e){Jo.lastIndex=0;var r=Jo.exec(n.substring(e,e+2));return r?(t.y=li(+r[0]),e+=r[0].length):-1}function li(t){return t+(t>68?1900:2e3)}function fi(t,n,e){Jo.lastIndex=0;var r=Jo.exec(n.substring(e,e+2));return r?(t.m=r[0]-1,e+=r[0].length):-1}function si(t,n,e){Jo.lastIndex=0;var r=Jo.exec(n.substring(e,e+2));return r?(t.d=+r[0],e+=r[0].length):-1}function hi(t,n,e){Jo.lastIndex=0;var r=Jo.exec(n.substring(e,e+2));return r?(t.H=+r[0],e+=r[0].length):-1}function gi(t,n,e){Jo.lastIndex=0;var r=Jo.exec(n.substring(e,e+2));return r?(t.M=+r[0],e+=r[0].length):-1}function pi(t,n,e){Jo.lastIndex=0;var r=Jo.exec(n.substring(e,e+2));return r?(t.S=+r[0],e+=r[0].length):-1}function di(t,n,e){Jo.lastIndex=0;var r=Jo.exec(n.substring(e,e+3));return r?(t.L=+r[0],e+=r[0].length):-1}function mi(t,n,e){var r=Go.get(n.substring(e,e+=2).toLowerCase());return null==r?-1:(t.p=r,e)}function vi(t){var n=t.getTimezoneOffset(),e=n>0?"-":"+",r=~~(Math.abs(n)/60),u=Math.abs(n)%60;return e+Qu(r,"0",2)+Qu(u,"0",2)}function yi(t){return t.toISOString()}function Mi(t,n,e){function r(n){var e=t(n),r=i(e,1);return r-n>n-e?e:r}function u(e){return n(e=t(new qo(e-1)),1),e}function i(t,e){return n(t=new qo(+t),e),t}function a(t,r,i){var a=u(t),o=[];if(i>1)for(;r>a;)e(a)%i||o.push(new Date(+a)),n(a,1);else for(;r>a;)o.push(new Date(+a)),n(a,1);return o}function o(t,n,e){try{qo=Ju;var r=new Ju;return r._=t,a(r,n,e)}finally{qo=Date}}t.floor=t,t.round=r,t.ceil=u,t.offset=i,t.range=a;var c=t.utc=bi(t);return c.floor=c,c.round=bi(r),c.ceil=bi(u),c.offset=bi(i),c.range=o,t}function bi(t){return function(n,e){try{qo=Ju;var r=new Ju;return r._=n,t(r,e)._}finally{qo=Date}}}function xi(t,n,e){function r(n){return t(n)}return r.invert=function(n){return wi(t.invert(n))},r.domain=function(n){return arguments.length?(t.domain(n),r):t.domain().map(wi)},r.nice=function(t){return r.domain(Yn(r.domain(),function(){return t}))},r.ticks=function(e,u){var i=_i(r.domain());if("function"!=typeof e){var a=i[1]-i[0],o=a/e,c=Ci.bisect(Wo,o);if(c==Wo.length)return n.year(i,e);if(!c)return t.ticks(e).map(wi);Math.log(o/Wo[c-1])<Math.log(Wo[c]/o)&&--c,e=n[c],u=e[1],e=e[0].range}return e(i[0],new Date(+i[1]+1),u)},r.tickFormat=function(){return e},r.copy=function(){return xi(t.copy(),n,e)},Ci.rebind(r,t,"range","rangeRound","interpolate","clamp")}function _i(t){var n=t[0],e=t[t.length-1];return e>n?[n,e]:[e,n]}function wi(t){return new Date(t)}function Si(t){return function(n){for(var e=t.length-1,r=t[e];!r[1](n);)r=t[--e];return r[0](n)}}function ki(t){var n=new Date(t,0,1);return n.setFullYear(t),n}function Ei(t){var n=t.getFullYear(),e=ki(n),r=ki(n+1);return n+(t-e)/(r-e)}function Ai(t){var n=new Date(Date.UTC(t,0,1));return n.setUTCFullYear(t),n}function Ni(t){var n=t.getUTCFullYear(),e=Ai(n),r=Ai(n+1);return n+(t-e)/(r-e)}var Ti=Math.PI,qi=1e-6,Ci={version:"3.0.8"},zi=Ti/180,Di=180/Ti,Li=document,Fi=window,Hi=".",ji=",",Pi=[3,3];Date.now||(Date.now=function(){return+new Date});try{Li.createElement("div").style.setProperty("opacity",0,"")}catch(Ri){var Oi=Fi.CSSStyleDeclaration.prototype,Yi=Oi.setProperty;Oi.setProperty=function(t,n,e){Yi.call(this,t,n+"",e)}}var Ui=u;try{Ui(Li.documentElement.childNodes)[0].nodeType}catch(Ii){Ui=r}var Vi=[].__proto__?function(t,n){t.__proto__=n}:function(t,n){for(var e in n)t[e]=n[e]};Ci.map=function(t){var n=new i;for(var e in t)n.set(e,t[e]);return n},e(i,{has:function(t){return Zi+t in this},get:function(t){return this[Zi+t]},set:function(t,n){return this[Zi+t]=n},remove:function(t){return t=Zi+t,t in this&&delete this[t]},keys:function(){var t=[];return this.forEach(function(n){t.push(n)}),t},values:function(){var t=[];return this.forEach(function(n,e){t.push(e)}),t},entries:function(){var t=[];return this.forEach(function(n,e){t.push({key:n,value:e})}),t},forEach:function(t){for(var n in this)n.charCodeAt(0)===Xi&&t.call(this,n.substring(1),this[n])}});var Zi="\0",Xi=Zi.charCodeAt(0);Ci.functor=c,Ci.rebind=function(t,n){for(var e,r=1,u=arguments.length;u>++r;)t[e=arguments[r]]=l(t,n,n[e]);return t},Ci.ascending=function(t,n){return n>t?-1:t>n?1:t>=n?0:0/0},Ci.descending=function(t,n){return t>n?-1:n>t?1:n>=t?0:0/0},Ci.mean=function(t,n){var e,r=t.length,u=0,i=-1,a=0;if(1===arguments.length)for(;r>++i;)f(e=t[i])&&(u+=(e-u)/++a);else for(;r>++i;)f(e=n.call(t,t[i],i))&&(u+=(e-u)/++a);return a?u:void 0},Ci.median=function(t,n){return arguments.length>1&&(t=t.map(n)),t=t.filter(f),t.length?Ci.quantile(t.sort(Ci.ascending),.5):void 0},Ci.min=function(t,n){var e,r,u=-1,i=t.length;if(1===arguments.length){for(;i>++u&&(null==(e=t[u])||e!=e);)e=void 0;for(;i>++u;)null!=(r=t[u])&&e>r&&(e=r)}else{for(;i>++u&&(null==(e=n.call(t,t[u],u))||e!=e);)e=void 0;for(;i>++u;)null!=(r=n.call(t,t[u],u))&&e>r&&(e=r)}return e},Ci.max=function(t,n){var e,r,u=-1,i=t.length;if(1===arguments.length){for(;i>++u&&(null==(e=t[u])||e!=e);)e=void 0;for(;i>++u;)null!=(r=t[u])&&r>e&&(e=r)}else{for(;i>++u&&(null==(e=n.call(t,t[u],u))||e!=e);)e=void 0;for(;i>++u;)null!=(r=n.call(t,t[u],u))&&r>e&&(e=r)}return e},Ci.extent=function(t,n){var e,r,u,i=-1,a=t.length;if(1===arguments.length){for(;a>++i&&(null==(e=u=t[i])||e!=e);)e=u=void 0;for(;a>++i;)null!=(r=t[i])&&(e>r&&(e=r),r>u&&(u=r))}else{for(;a>++i&&(null==(e=u=n.call(t,t[i],i))||e!=e);)e=void 0;for(;a>++i;)null!=(r=n.call(t,t[i],i))&&(e>r&&(e=r),r>u&&(u=r))}return[e,u]},Ci.random={normal:function(t,n){var e=arguments.length;return 2>e&&(n=1),1>e&&(t=0),function(){var e,r,u;do e=2*Math.random()-1,r=2*Math.random()-1,u=e*e+r*r;while(!u||u>1);return t+n*e*Math.sqrt(-2*Math.log(u)/u)}},logNormal:function(){var t=Ci.random.normal.apply(Ci,arguments);return function(){return Math.exp(t())}},irwinHall:function(t){return function(){for(var n=0,e=0;t>e;e++)n+=Math.random();return n/t}}},Ci.sum=function(t,n){var e,r=0,u=t.length,i=-1;if(1===arguments.length)for(;u>++i;)isNaN(e=+t[i])||(r+=e);else for(;u>++i;)isNaN(e=+n.call(t,t[i],i))||(r+=e);return r},Ci.quantile=function(t,n){var e=(t.length-1)*n+1,r=Math.floor(e),u=+t[r-1],i=e-r;return i?u+i*(t[r]-u):u},Ci.shuffle=function(t){for(var n,e,r=t.length;r;)e=0|Math.random()*r--,n=t[r],t[r]=t[e],t[e]=n;return t},Ci.transpose=function(t){return Ci.zip.apply(Ci,t)},Ci.zip=function(){if(!(r=arguments.length))return[];for(var t=-1,n=Ci.min(arguments,s),e=Array(n);n>++t;)for(var r,u=-1,i=e[t]=Array(r);r>++u;)i[u]=arguments[u][t];return e},Ci.bisector=function(t){return{left:function(n,e,r,u){for(3>arguments.length&&(r=0),4>arguments.length&&(u=n.length);u>r;){var i=r+u>>>1;e>t.call(n,n[i],i)?r=i+1:u=i}return r},right:function(n,e,r,u){for(3>arguments.length&&(r=0),4>arguments.length&&(u=n.length);u>r;){var i=r+u>>>1;t.call(n,n[i],i)>e?u=i:r=i+1}return r}}};var Bi=Ci.bisector(function(t){return t});Ci.bisectLeft=Bi.left,Ci.bisect=Ci.bisectRight=Bi.right,Ci.nest=function(){function t(n,o){if(o>=a.length)return r?r.call(u,n):e?n.sort(e):n;for(var c,l,f,s=-1,h=n.length,g=a[o++],p=new i,d={};h>++s;)(f=p.get(c=g(l=n[s])))?f.push(l):p.set(c,[l]);return p.forEach(function(n,e){d[n]=t(e,o)}),d}function n(t,e){if(e>=a.length)return t;var r,u=[],i=o[e++];for(r in t)u.push({key:r,values:n(t[r],e)});return i&&u.sort(function(t,n){return i(t.key,n.key)}),u}var e,r,u={},a=[],o=[];return u.map=function(n){return t(n,0)},u.entries=function(e){return n(t(e,0),0)},u.key=function(t){return a.push(t),u},u.sortKeys=function(t){return o[a.length-1]=t,u},u.sortValues=function(t){return e=t,u},u.rollup=function(t){return r=t,u},u},Ci.keys=function(t){var n=[];for(var e in t)n.push(e);return n},Ci.values=function(t){var n=[];for(var e in t)n.push(t[e]);return n},Ci.entries=function(t){var n=[];for(var e in t)n.push({key:e,value:t[e]});return n},Ci.permute=function(t,n){for(var e=[],r=-1,u=n.length;u>++r;)e[r]=t[n[r]];return e},Ci.merge=function(t){return Array.prototype.concat.apply([],t)},Ci.range=function(t,n,e){if(3>arguments.length&&(e=1,2>arguments.length&&(n=t,t=0)),1/0===(n-t)/e)throw Error("infinite range");var r,u=[],i=g(Math.abs(e)),a=-1;if(t*=i,n*=i,e*=i,0>e)for(;(r=t+e*++a)>n;)u.push(r/i);else for(;n>(r=t+e*++a);)u.push(r/i);return u},Ci.requote=function(t){return t.replace($i,"\\$&")};var $i=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;Ci.round=function(t,n){return n?Math.round(t*(n=Math.pow(10,n)))/n:Math.round(t)},Ci.xhr=function(t,n,e){function r(){var t=l.status;!t&&l.responseText||t>=200&&300>t||304===t?i.load.call(u,c.call(u,l)):i.error.call(u,l)}var u={},i=Ci.dispatch("progress","load","error"),o={},c=a,l=new(Fi.XDomainRequest&&/^(http(s)?:)?\/\//.test(t)?XDomainRequest:XMLHttpRequest);return"onload"in l?l.onload=l.onerror=r:l.onreadystatechange=function(){l.readyState>3&&r()},l.onprogress=function(t){var n=Ci.event;Ci.event=t;try{i.progress.call(u,l)}finally{Ci.event=n}},u.header=function(t,n){return t=(t+"").toLowerCase(),2>arguments.length?o[t]:(null==n?delete o[t]:o[t]=n+"",u)},u.mimeType=function(t){return arguments.length?(n=null==t?null:t+"",u):n},u.response=function(t){return c=t,u},["get","post"].forEach(function(t){u[t]=function(){return u.send.apply(u,[t].concat(Ui(arguments)))}}),u.send=function(e,r,i){if(2===arguments.length&&"function"==typeof r&&(i=r,r=null),l.open(e,t,!0),null==n||"accept"in o||(o.accept=n+",*/*"),l.setRequestHeader)for(var a in o)l.setRequestHeader(a,o[a]);return null!=n&&l.overrideMimeType&&l.overrideMimeType(n),null!=i&&u.on("error",i).on("load",function(t){i(null,t)}),l.send(null==r?null:r),u},u.abort=function(){return l.abort(),u},Ci.rebind(u,i,"on"),2===arguments.length&&"function"==typeof n&&(e=n,n=null),null==e?u:u.get(p(e))},Ci.text=function(){return Ci.xhr.apply(Ci,arguments).response(d)},Ci.json=function(t,n){return Ci.xhr(t,"application/json",n).response(m)},Ci.html=function(t,n){return Ci.xhr(t,"text/html",n).response(v)},Ci.xml=function(){return Ci.xhr.apply(Ci,arguments).response(y)};var Ji={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};Ci.ns={prefix:Ji,qualify:function(t){var n=t.indexOf(":"),e=t;return n>=0&&(e=t.substring(0,n),t=t.substring(n+1)),Ji.hasOwnProperty(e)?{space:Ji[e],local:t}:t}},Ci.dispatch=function(){for(var t=new M,n=-1,e=arguments.length;e>++n;)t[arguments[n]]=b(t);return t},M.prototype.on=function(t,n){var e=t.indexOf("."),r="";return e>0&&(r=t.substring(e+1),t=t.substring(0,e)),2>arguments.length?this[t].on(r):this[t].on(r,n)},Ci.format=function(t){var n=Gi.exec(t),e=n[1]||" ",r=n[2]||">",u=n[3]||"",i=n[4]||"",a=n[5],o=+n[6],c=n[7],l=n[8],f=n[9],s=1,h="",g=!1;switch(l&&(l=+l.substring(1)),(a||"0"===e&&"="===r)&&(a=e="0",r="=",c&&(o-=Math.floor((o-1)/4))),f){case"n":c=!0,f="g";break;case"%":s=100,h="%",f="f";break;case"p":s=100,h="%",f="r";break;case"b":case"o":case"x":case"X":i&&(i="0"+f.toLowerCase());case"c":case"d":g=!0,l=0;break;case"s":s=-1,f="r"}"#"===i&&(i=""),"r"!=f||l||(f="g"),f=Ki.get(f)||_;var p=a&&c;return function(t){if(g&&t%1)return"";var n=0>t||0===t&&0>1/t?(t=-t,"-"):u;if(0>s){var d=Ci.formatPrefix(t,l);t=d.scale(t),h=d.symbol}else t*=s;t=f(t,l),!a&&c&&(t=Wi(t));var m=i.length+t.length+(p?0:n.length),v=o>m?Array(m=o-m+1).join(e):"";return p&&(t=Wi(v+t)),Hi&&t.replace(".",Hi),n+=i,("<"===r?n+t+v:">"===r?v+n+t:"^"===r?v.substring(0,m>>=1)+n+t+v.substring(m):n+(p?t:v+t))+h}};var Gi=/(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/,Ki=Ci.map({b:function(t){return t.toString(2)},c:function(t){return String.fromCharCode(t)},o:function(t){return t.toString(8)},x:function(t){return t.toString(16)},X:function(t){return t.toString(16).toUpperCase()},g:function(t,n){return t.toPrecision(n)},e:function(t,n){return t.toExponential(n)},f:function(t,n){return t.toFixed(n)},r:function(t,n){return(t=Ci.round(t,x(t,n))).toFixed(Math.max(0,Math.min(20,x(t*(1+1e-15),n))))}}),Wi=a;if(Pi){var Qi=Pi.length;Wi=function(t){for(var n=t.lastIndexOf("."),e=n>=0?"."+t.substring(n+1):(n=t.length,""),r=[],u=0,i=Pi[0];n>0&&i>0;)r.push(t.substring(n-=i,n+i)),i=Pi[u=(u+1)%Qi];return r.reverse().join(ji||"")+e}}var ta=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"].map(w);Ci.formatPrefix=function(t,n){var e=0;return t&&(0>t&&(t*=-1),n&&(t=Ci.round(t,x(t,n))),e=1+Math.floor(1e-12+Math.log(t)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((0>=e?e+1:e-1)/3)))),ta[8+e/3]};var na=function(){return a},ea=Ci.map({linear:na,poly:q,quad:function(){return A},cubic:function(){return N},sin:function(){return C},exp:function(){return z},circle:function(){return D},elastic:L,back:F,bounce:function(){return H}}),ra=Ci.map({"in":a,out:k,"in-out":E,"out-in":function(t){return E(k(t))}});Ci.ease=function(t){var n=t.indexOf("-"),e=n>=0?t.substring(0,n):t,r=n>=0?t.substring(n+1):"in";return e=ea.get(e)||na,r=ra.get(r)||a,S(r(e.apply(null,Array.prototype.slice.call(arguments,1))))},Ci.event=null,Ci.transform=function(t){var n=Li.createElementNS(Ci.ns.prefix.svg,"g");return(Ci.transform=function(t){n.setAttribute("transform",t);var e=n.transform.baseVal.consolidate();return new O(e?e.matrix:ua)})(t)},O.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var ua={a:1,b:0,c:0,d:1,e:0,f:0};Ci.interpolate=function(t,n){for(var e,r=Ci.interpolators.length;--r>=0&&!(e=Ci.interpolators[r](t,n)););return e},Ci.interpolateNumber=function(t,n){return n-=t,function(e){return t+n*e}},Ci.interpolateRound=function(t,n){return n-=t,function(e){return Math.round(t+n*e)}},Ci.interpolateString=function(t,n){var e,r,u,i,a,o=0,c=0,l=[],f=[];for(ia.lastIndex=0,r=0;e=ia.exec(n);++r)e.index&&l.push(n.substring(o,c=e.index)),f.push({i:l.length,x:e[0]}),l.push(null),o=ia.lastIndex;for(n.length>o&&l.push(n.substring(o)),r=0,i=f.length;(e=ia.exec(t))&&i>r;++r)if(a=f[r],a.x==e[0]){if(a.i)if(null==l[a.i+1])for(l[a.i-1]+=a.x,l.splice(a.i,1),u=r+1;i>u;++u)f[u].i--;else for(l[a.i-1]+=a.x+l[a.i+1],l.splice(a.i,2),u=r+1;i>u;++u)f[u].i-=2;else if(null==l[a.i+1])l[a.i]=a.x;else for(l[a.i]=a.x+l[a.i+1],l.splice(a.i+1,1),u=r+1;i>u;++u)f[u].i--;f.splice(r,1),i--,r--}else a.x=Ci.interpolateNumber(parseFloat(e[0]),parseFloat(a.x));for(;i>r;)a=f.pop(),null==l[a.i+1]?l[a.i]=a.x:(l[a.i]=a.x+l[a.i+1],l.splice(a.i+1,1)),i--;return 1===l.length?null==l[0]?f[0].x:function(){return n}:function(t){for(r=0;i>r;++r)l[(a=f[r]).i]=a.x(t);return l.join("")}},Ci.interpolateTransform=function(t,n){var e,r=[],u=[],i=Ci.transform(t),a=Ci.transform(n),o=i.translate,c=a.translate,l=i.rotate,f=a.rotate,s=i.skew,h=a.skew,g=i.scale,p=a.scale;return o[0]!=c[0]||o[1]!=c[1]?(r.push("translate(",null,",",null,")"),u.push({i:1,x:Ci.interpolateNumber(o[0],c[0])},{i:3,x:Ci.interpolateNumber(o[1],c[1])})):c[0]||c[1]?r.push("translate("+c+")"):r.push(""),l!=f?(l-f>180?f+=360:f-l>180&&(l+=360),u.push({i:r.push(r.pop()+"rotate(",null,")")-2,x:Ci.interpolateNumber(l,f)})):f&&r.push(r.pop()+"rotate("+f+")"),s!=h?u.push({i:r.push(r.pop()+"skewX(",null,")")-2,x:Ci.interpolateNumber(s,h)}):h&&r.push(r.pop()+"skewX("+h+")"),g[0]!=p[0]||g[1]!=p[1]?(e=r.push(r.pop()+"scale(",null,",",null,")"),u.push({i:e-4,x:Ci.interpolateNumber(g[0],p[0])},{i:e-2,x:Ci.interpolateNumber(g[1],p[1])})):(1!=p[0]||1!=p[1])&&r.push(r.pop()+"scale("+p+")"),e=u.length,function(t){for(var n,i=-1;e>++i;)r[(n=u[i]).i]=n.x(t);return r.join("")}},Ci.interpolateRgb=function(t,n){t=Ci.rgb(t),n=Ci.rgb(n);var e=t.r,r=t.g,u=t.b,i=n.r-e,a=n.g-r,o=n.b-u;return function(t){return"#"+G(Math.round(e+i*t))+G(Math.round(r+a*t))+G(Math.round(u+o*t))}},Ci.interpolateHsl=function(t,n){t=Ci.hsl(t),n=Ci.hsl(n);var e=t.h,r=t.s,u=t.l,i=n.h-e,a=n.s-r,o=n.l-u;return i>180?i-=360:-180>i&&(i+=360),function(t){return un(e+i*t,r+a*t,u+o*t)+""}},Ci.interpolateLab=function(t,n){t=Ci.lab(t),n=Ci.lab(n);var e=t.l,r=t.a,u=t.b,i=n.l-e,a=n.a-r,o=n.b-u;return function(t){return sn(e+i*t,r+a*t,u+o*t)+""}},Ci.interpolateHcl=function(t,n){t=Ci.hcl(t),n=Ci.hcl(n);var e=t.h,r=t.c,u=t.l,i=n.h-e,a=n.c-r,o=n.l-u;return i>180?i-=360:-180>i&&(i+=360),function(t){return cn(e+i*t,r+a*t,u+o*t)+""}},Ci.interpolateArray=function(t,n){var e,r=[],u=[],i=t.length,a=n.length,o=Math.min(t.length,n.length);for(e=0;o>e;++e)r.push(Ci.interpolate(t[e],n[e]));for(;i>e;++e)u[e]=t[e];for(;a>e;++e)u[e]=n[e];return function(t){for(e=0;o>e;++e)u[e]=r[e](t);return u}},Ci.interpolateObject=function(t,n){var e,r={},u={};for(e in t)e in n?r[e]=V(e)(t[e],n[e]):u[e]=t[e];for(e in n)e in t||(u[e]=n[e]);return function(t){for(e in r)u[e]=r[e](t);return u}};var ia=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g;Ci.interpolators=[Ci.interpolateObject,function(t,n){return n instanceof Array&&Ci.interpolateArray(t,n)},function(t,n){return("string"==typeof t||"string"==typeof n)&&Ci.interpolateString(t+"",n+"")},function(t,n){return("string"==typeof n?oa.has(n)||/^(#|rgb\(|hsl\()/.test(n):n instanceof B)&&Ci.interpolateRgb(t,n)},function(t,n){return!isNaN(t=+t)&&!isNaN(n=+n)&&Ci.interpolateNumber(t,n)}],B.prototype.toString=function(){return this.rgb()+""},Ci.rgb=function(t,n,e){return 1===arguments.length?t instanceof J?$(t.r,t.g,t.b):K(""+t,$,un):$(~~t,~~n,~~e)};var aa=J.prototype=new B;aa.brighter=function(t){t=Math.pow(.7,arguments.length?t:1);var n=this.r,e=this.g,r=this.b,u=30;return n||e||r?(n&&u>n&&(n=u),e&&u>e&&(e=u),r&&u>r&&(r=u),$(Math.min(255,Math.floor(n/t)),Math.min(255,Math.floor(e/t)),Math.min(255,Math.floor(r/t)))):$(u,u,u)},aa.darker=function(t){return t=Math.pow(.7,arguments.length?t:1),$(Math.floor(t*this.r),Math.floor(t*this.g),Math.floor(t*this.b))},aa.hsl=function(){return W(this.r,this.g,this.b)},aa.toString=function(){return"#"+G(this.r)+G(this.g)+G(this.b)};var oa=Ci.map({aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"});
+oa.forEach(function(t,n){oa.set(t,K(n,$,un))}),Ci.hsl=function(t,n,e){return 1===arguments.length?t instanceof rn?en(t.h,t.s,t.l):K(""+t,W,en):en(+t,+n,+e)};var ca=rn.prototype=new B;ca.brighter=function(t){return t=Math.pow(.7,arguments.length?t:1),en(this.h,this.s,this.l/t)},ca.darker=function(t){return t=Math.pow(.7,arguments.length?t:1),en(this.h,this.s,t*this.l)},ca.rgb=function(){return un(this.h,this.s,this.l)},Ci.hcl=function(t,n,e){return 1===arguments.length?t instanceof on?an(t.h,t.c,t.l):t instanceof fn?hn(t.l,t.a,t.b):hn((t=Q((t=Ci.rgb(t)).r,t.g,t.b)).l,t.a,t.b):an(+t,+n,+e)};var la=on.prototype=new B;la.brighter=function(t){return an(this.h,this.c,Math.min(100,this.l+fa*(arguments.length?t:1)))},la.darker=function(t){return an(this.h,this.c,Math.max(0,this.l-fa*(arguments.length?t:1)))},la.rgb=function(){return cn(this.h,this.c,this.l).rgb()},Ci.lab=function(t,n,e){return 1===arguments.length?t instanceof fn?ln(t.l,t.a,t.b):t instanceof on?cn(t.l,t.c,t.h):Q((t=Ci.rgb(t)).r,t.g,t.b):ln(+t,+n,+e)};var fa=18,sa=.95047,ha=1,ga=1.08883,pa=fn.prototype=new B;pa.brighter=function(t){return ln(Math.min(100,this.l+fa*(arguments.length?t:1)),this.a,this.b)},pa.darker=function(t){return ln(Math.max(0,this.l-fa*(arguments.length?t:1)),this.a,this.b)},pa.rgb=function(){return sn(this.l,this.a,this.b)};var da=function(t,n){return n.querySelector(t)},ma=function(t,n){return n.querySelectorAll(t)},va=Li.documentElement,ya=va.matchesSelector||va.webkitMatchesSelector||va.mozMatchesSelector||va.msMatchesSelector||va.oMatchesSelector,Ma=function(t,n){return ya.call(t,n)};"function"==typeof Sizzle&&(da=function(t,n){return Sizzle(t,n)[0]||null},ma=function(t,n){return Sizzle.uniqueSort(Sizzle(t,n))},Ma=Sizzle.matchesSelector);var ba=[];Ci.selection=function(){return xa},Ci.selection.prototype=ba,ba.select=function(t){var n,e,r,u,i=[];"function"!=typeof t&&(t=vn(t));for(var a=-1,o=this.length;o>++a;){i.push(n=[]),n.parentNode=(r=this[a]).parentNode;for(var c=-1,l=r.length;l>++c;)(u=r[c])?(n.push(e=t.call(u,u.__data__,c)),e&&"__data__"in u&&(e.__data__=u.__data__)):n.push(null)}return mn(i)},ba.selectAll=function(t){var n,e,r=[];"function"!=typeof t&&(t=yn(t));for(var u=-1,i=this.length;i>++u;)for(var a=this[u],o=-1,c=a.length;c>++o;)(e=a[o])&&(r.push(n=Ui(t.call(e,e.__data__,o))),n.parentNode=e);return mn(r)},ba.attr=function(t,n){if(2>arguments.length){if("string"==typeof t){var e=this.node();return t=Ci.ns.qualify(t),t.local?e.getAttributeNS(t.space,t.local):e.getAttribute(t)}for(n in t)this.each(Mn(n,t[n]));return this}return this.each(Mn(t,n))},ba.classed=function(t,n){if(2>arguments.length){if("string"==typeof t){var e=this.node(),r=(t=t.trim().split(/^|\s+/g)).length,u=-1;if(n=e.classList){for(;r>++u;)if(!n.contains(t[u]))return!1}else for(n=e.className,null!=n.baseVal&&(n=n.baseVal);r>++u;)if(!bn(t[u]).test(n))return!1;return!0}for(n in t)this.each(xn(n,t[n]));return this}return this.each(xn(t,n))},ba.style=function(t,n,e){var r=arguments.length;if(3>r){if("string"!=typeof t){2>r&&(n="");for(e in t)this.each(wn(e,t[e],n));return this}if(2>r)return Fi.getComputedStyle(this.node(),null).getPropertyValue(t);e=""}return this.each(wn(t,n,e))},ba.property=function(t,n){if(2>arguments.length){if("string"==typeof t)return this.node()[t];for(n in t)this.each(Sn(n,t[n]));return this}return this.each(Sn(t,n))},ba.text=function(t){return arguments.length?this.each("function"==typeof t?function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}:null==t?function(){this.textContent=""}:function(){this.textContent=t}):this.node().textContent},ba.html=function(t){return arguments.length?this.each("function"==typeof t?function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}:null==t?function(){this.innerHTML=""}:function(){this.innerHTML=t}):this.node().innerHTML},ba.append=function(t){function n(){return this.appendChild(Li.createElementNS(this.namespaceURI,t))}function e(){return this.appendChild(Li.createElementNS(t.space,t.local))}return t=Ci.ns.qualify(t),this.select(t.local?e:n)},ba.insert=function(t,n){function e(){return this.insertBefore(Li.createElementNS(this.namespaceURI,t),da(n,this))}function r(){return this.insertBefore(Li.createElementNS(t.space,t.local),da(n,this))}return t=Ci.ns.qualify(t),this.select(t.local?r:e)},ba.remove=function(){return this.each(function(){var t=this.parentNode;t&&t.removeChild(this)})},ba.data=function(t,n){function e(t,e){var r,u,a,o=t.length,s=e.length,h=Math.min(o,s),g=Array(s),p=Array(s),d=Array(o);if(n){var m,v=new i,y=new i,M=[];for(r=-1;o>++r;)m=n.call(u=t[r],u.__data__,r),v.has(m)?d[r]=u:v.set(m,u),M.push(m);for(r=-1;s>++r;)m=n.call(e,a=e[r],r),(u=v.get(m))?(g[r]=u,u.__data__=a):y.has(m)||(p[r]=kn(a)),y.set(m,a),v.remove(m);for(r=-1;o>++r;)v.has(M[r])&&(d[r]=t[r])}else{for(r=-1;h>++r;)u=t[r],a=e[r],u?(u.__data__=a,g[r]=u):p[r]=kn(a);for(;s>r;++r)p[r]=kn(e[r]);for(;o>r;++r)d[r]=t[r]}p.update=g,p.parentNode=g.parentNode=d.parentNode=t.parentNode,c.push(p),l.push(g),f.push(d)}var r,u,a=-1,o=this.length;if(!arguments.length){for(t=Array(o=(r=this[0]).length);o>++a;)(u=r[a])&&(t[a]=u.__data__);return t}var c=qn([]),l=mn([]),f=mn([]);if("function"==typeof t)for(;o>++a;)e(r=this[a],t.call(r,r.parentNode.__data__,a));else for(;o>++a;)e(r=this[a],t);return l.enter=function(){return c},l.exit=function(){return f},l},ba.datum=function(t){return arguments.length?this.property("__data__",t):this.property("__data__")},ba.filter=function(t){var n,e,r,u=[];"function"!=typeof t&&(t=En(t));for(var i=0,a=this.length;a>i;i++){u.push(n=[]),n.parentNode=(e=this[i]).parentNode;for(var o=0,c=e.length;c>o;o++)(r=e[o])&&t.call(r,r.__data__,o)&&n.push(r)}return mn(u)},ba.order=function(){for(var t=-1,n=this.length;n>++t;)for(var e,r=this[t],u=r.length-1,i=r[u];--u>=0;)(e=r[u])&&(i&&i!==e.nextSibling&&i.parentNode.insertBefore(e,i),i=e);return this},ba.sort=function(t){t=An.apply(this,arguments);for(var n=-1,e=this.length;e>++n;)this[n].sort(t);return this.order()},ba.on=function(t,n,e){var r=arguments.length;if(3>r){if("string"!=typeof t){2>r&&(n=!1);for(e in t)this.each(Nn(e,t[e],n));return this}if(2>r)return(r=this.node()["__on"+t])&&r._;e=!1}return this.each(Nn(t,n,e))},ba.each=function(t){return Tn(this,function(n,e,r){t.call(n,n.__data__,e,r)})},ba.call=function(t){var n=Ui(arguments);return t.apply(n[0]=this,n),this},ba.empty=function(){return!this.node()},ba.node=function(){for(var t=0,n=this.length;n>t;t++)for(var e=this[t],r=0,u=e.length;u>r;r++){var i=e[r];if(i)return i}return null},ba.transition=function(){var t,n,e=wa||++ka,r=[],u=Object.create(Ea);u.time=Date.now();for(var i=-1,a=this.length;a>++i;){r.push(t=[]);for(var o=this[i],c=-1,l=o.length;l>++c;)(n=o[c])&&zn(n,c,e,u),t.push(n)}return Cn(r,e)};var xa=mn([[Li]]);xa[0].parentNode=va,Ci.select=function(t){return"string"==typeof t?xa.select(t):mn([[t]])},Ci.selectAll=function(t){return"string"==typeof t?xa.selectAll(t):mn([Ui(t)])};var _a=[];Ci.selection.enter=qn,Ci.selection.enter.prototype=_a,_a.append=ba.append,_a.insert=ba.insert,_a.empty=ba.empty,_a.node=ba.node,_a.select=function(t){for(var n,e,r,u,i,a=[],o=-1,c=this.length;c>++o;){r=(u=this[o]).update,a.push(n=[]),n.parentNode=u.parentNode;for(var l=-1,f=u.length;f>++l;)(i=u[l])?(n.push(r[l]=e=t.call(u.parentNode,i.__data__,l)),e.__data__=i.__data__):n.push(null)}return mn(a)};var wa,Sa=[],ka=0,Ea={ease:T,delay:0,duration:250};Sa.call=ba.call,Sa.empty=ba.empty,Sa.node=ba.node,Ci.transition=function(t){return arguments.length?wa?t.transition():t:xa.transition()},Ci.transition.prototype=Sa,Sa.select=function(t){var n,e,r,u=this.id,i=[];"function"!=typeof t&&(t=vn(t));for(var a=-1,o=this.length;o>++a;){i.push(n=[]);for(var c=this[a],l=-1,f=c.length;f>++l;)(r=c[l])&&(e=t.call(r,r.__data__,l))?("__data__"in r&&(e.__data__=r.__data__),zn(e,l,u,r.__transition__[u]),n.push(e)):n.push(null)}return Cn(i,u)},Sa.selectAll=function(t){var n,e,r,u,i,a=this.id,o=[];"function"!=typeof t&&(t=yn(t));for(var c=-1,l=this.length;l>++c;)for(var f=this[c],s=-1,h=f.length;h>++s;)if(r=f[s]){i=r.__transition__[a],e=t.call(r,r.__data__,s),o.push(n=[]);for(var g=-1,p=e.length;p>++g;)zn(u=e[g],g,a,i),n.push(u)}return Cn(o,a)},Sa.filter=function(t){var n,e,r,u=[];"function"!=typeof t&&(t=En(t));for(var i=0,a=this.length;a>i;i++){u.push(n=[]);for(var e=this[i],o=0,c=e.length;c>o;o++)(r=e[o])&&t.call(r,r.__data__,o)&&n.push(r)}return Cn(u,this.id,this.time).ease(this.ease())},Sa.attr=function(t,n){function e(){this.removeAttribute(i)}function r(){this.removeAttributeNS(i.space,i.local)}if(2>arguments.length){for(n in t)this.attr(n,t[n]);return this}var u=V(t),i=Ci.ns.qualify(t);return Ln(this,"attr."+t,n,function(t){function n(){var n,e=this.getAttribute(i);return e!==t&&(n=u(e,t),function(t){this.setAttribute(i,n(t))})}function a(){var n,e=this.getAttributeNS(i.space,i.local);return e!==t&&(n=u(e,t),function(t){this.setAttributeNS(i.space,i.local,n(t))})}return null==t?i.local?r:e:(t+="",i.local?a:n)})},Sa.attrTween=function(t,n){function e(t,e){var r=n.call(this,t,e,this.getAttribute(u));return r&&function(t){this.setAttribute(u,r(t))}}function r(t,e){var r=n.call(this,t,e,this.getAttributeNS(u.space,u.local));return r&&function(t){this.setAttributeNS(u.space,u.local,r(t))}}var u=Ci.ns.qualify(t);return this.tween("attr."+t,u.local?r:e)},Sa.style=function(t,n,e){function r(){this.style.removeProperty(t)}var u=arguments.length;if(3>u){if("string"!=typeof t){2>u&&(n="");for(e in t)this.style(e,t[e],n);return this}e=""}var i=V(t);return Ln(this,"style."+t,n,function(n){function u(){var r,u=Fi.getComputedStyle(this,null).getPropertyValue(t);return u!==n&&(r=i(u,n),function(n){this.style.setProperty(t,r(n),e)})}return null==n?r:(n+="",u)})},Sa.styleTween=function(t,n,e){return 3>arguments.length&&(e=""),this.tween("style."+t,function(r,u){var i=n.call(this,r,u,Fi.getComputedStyle(this,null).getPropertyValue(t));return i&&function(n){this.style.setProperty(t,i(n),e)}})},Sa.text=function(t){return Ln(this,"text",t,Dn)},Sa.remove=function(){return this.each("end.transition",function(){var t;!this.__transition__&&(t=this.parentNode)&&t.removeChild(this)})},Sa.ease=function(t){var n=this.id;return 1>arguments.length?this.node().__transition__[n].ease:("function"!=typeof t&&(t=Ci.ease.apply(Ci,arguments)),Tn(this,function(e){e.__transition__[n].ease=t}))},Sa.delay=function(t){var n=this.id;return Tn(this,"function"==typeof t?function(e,r,u){e.__transition__[n].delay=0|t.call(e,e.__data__,r,u)}:(t|=0,function(e){e.__transition__[n].delay=t}))},Sa.duration=function(t){var n=this.id;return Tn(this,"function"==typeof t?function(e,r,u){e.__transition__[n].duration=Math.max(1,0|t.call(e,e.__data__,r,u))}:(t=Math.max(1,0|t),function(e){e.__transition__[n].duration=t}))},Sa.each=function(t,n){var e=this.id;if(2>arguments.length){var r=Ea,u=wa;wa=e,Tn(this,function(n,r,u){Ea=n.__transition__[e],t.call(n,n.__data__,r,u)}),Ea=r,wa=u}else Tn(this,function(r){r.__transition__[e].event.on(t,n)});return this},Sa.transition=function(){for(var t,n,e,r,u=this.id,i=++ka,a=[],o=0,c=this.length;c>o;o++){a.push(t=[]);for(var n=this[o],l=0,f=n.length;f>l;l++)(e=n[l])&&(r=Object.create(e.__transition__[u]),r.delay+=r.duration,zn(e,l,i,r)),t.push(e)}return Cn(a,i)},Sa.tween=function(t,n){var e=this.id;return 2>arguments.length?this.node().__transition__[e].tween.get(t):Tn(this,null==n?function(n){n.__transition__[e].tween.remove(t)}:function(r){r.__transition__[e].tween.set(t,n)})};var Aa,Na,Ta=0,qa={},Ca=null;Ci.timer=function(t,n,e){if(3>arguments.length){if(2>arguments.length)n=0;else if(!isFinite(n))return;e=Date.now()}var r=qa[t.id];r&&r.callback===t?(r.then=e,r.delay=n):qa[t.id=++Ta]=Ca={callback:t,then:e,delay:n,next:Ca},Aa||(Na=clearTimeout(Na),Aa=1,za(Fn))},Ci.timer.flush=function(){for(var t,n=Date.now(),e=Ca;e;)t=n-e.then,e.delay||(e.flush=e.callback(t)),e=e.next;Hn()};var za=Fi.requestAnimationFrame||Fi.webkitRequestAnimationFrame||Fi.mozRequestAnimationFrame||Fi.oRequestAnimationFrame||Fi.msRequestAnimationFrame||function(t){setTimeout(t,17)};Ci.mouse=function(t){return jn(t,P())};var Da=/WebKit/.test(Fi.navigator.userAgent)?-1:0;Ci.touches=function(t,n){return 2>arguments.length&&(n=P().touches),n?Ui(n).map(function(n){var e=jn(t,n);return e.identifier=n.identifier,e}):[]},Ci.scale={},Ci.scale.linear=function(){return In([0,1],[0,1],Ci.interpolate,!1)},Ci.scale.log=function(){return Kn(Ci.scale.linear(),Wn)};var La=Ci.format(".0e");Wn.pow=function(t){return Math.pow(10,t)},Qn.pow=function(t){return-Math.pow(10,-t)},Ci.scale.pow=function(){return te(Ci.scale.linear(),1)},Ci.scale.sqrt=function(){return Ci.scale.pow().exponent(.5)},Ci.scale.ordinal=function(){return ee([],{t:"range",a:[[]]})},Ci.scale.category10=function(){return Ci.scale.ordinal().range(Fa)},Ci.scale.category20=function(){return Ci.scale.ordinal().range(Ha)},Ci.scale.category20b=function(){return Ci.scale.ordinal().range(ja)},Ci.scale.category20c=function(){return Ci.scale.ordinal().range(Pa)};var Fa=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],Ha=["#1f77b4","#aec7e8","#ff7f0e","#ffbb78","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5","#8c564b","#c49c94","#e377c2","#f7b6d2","#7f7f7f","#c7c7c7","#bcbd22","#dbdb8d","#17becf","#9edae5"],ja=["#393b79","#5254a3","#6b6ecf","#9c9ede","#637939","#8ca252","#b5cf6b","#cedb9c","#8c6d31","#bd9e39","#e7ba52","#e7cb94","#843c39","#ad494a","#d6616b","#e7969c","#7b4173","#a55194","#ce6dbd","#de9ed6"],Pa=["#3182bd","#6baed6","#9ecae1","#c6dbef","#e6550d","#fd8d3c","#fdae6b","#fdd0a2","#31a354","#74c476","#a1d99b","#c7e9c0","#756bb1","#9e9ac8","#bcbddc","#dadaeb","#636363","#969696","#bdbdbd","#d9d9d9"];Ci.scale.quantile=function(){return re([],[])},Ci.scale.quantize=function(){return ue(0,1,[0,1])},Ci.scale.threshold=function(){return ie([.5],[0,1])},Ci.scale.identity=function(){return ae([0,1])},Ci.svg={},Ci.svg.arc=function(){function t(){var t=n.apply(this,arguments),i=e.apply(this,arguments),a=r.apply(this,arguments)+Ra,o=u.apply(this,arguments)+Ra,c=(a>o&&(c=a,a=o,o=c),o-a),l=Ti>c?"0":"1",f=Math.cos(a),s=Math.sin(a),h=Math.cos(o),g=Math.sin(o);return c>=Oa?t?"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"M0,"+t+"A"+t+","+t+" 0 1,0 0,"+-t+"A"+t+","+t+" 0 1,0 0,"+t+"Z":"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"Z":t?"M"+i*f+","+i*s+"A"+i+","+i+" 0 "+l+",1 "+i*h+","+i*g+"L"+t*h+","+t*g+"A"+t+","+t+" 0 "+l+",0 "+t*f+","+t*s+"Z":"M"+i*f+","+i*s+"A"+i+","+i+" 0 "+l+",1 "+i*h+","+i*g+"L0,0"+"Z"}var n=oe,e=ce,r=le,u=fe;return t.innerRadius=function(e){return arguments.length?(n=c(e),t):n},t.outerRadius=function(n){return arguments.length?(e=c(n),t):e},t.startAngle=function(n){return arguments.length?(r=c(n),t):r},t.endAngle=function(n){return arguments.length?(u=c(n),t):u},t.centroid=function(){var t=(n.apply(this,arguments)+e.apply(this,arguments))/2,i=(r.apply(this,arguments)+u.apply(this,arguments))/2+Ra;return[Math.cos(i)*t,Math.sin(i)*t]},t};var Ra=-Ti/2,Oa=2*Ti-1e-6;Ci.svg.line=function(){return se(a)};var Ya=Ci.map({linear:pe,"linear-closed":de,"step-before":me,"step-after":ve,basis:we,"basis-open":Se,"basis-closed":ke,bundle:Ee,cardinal:be,"cardinal-open":ye,"cardinal-closed":Me,monotone:ze});Ya.forEach(function(t,n){n.key=t,n.closed=/-closed$/.test(t)});var Ua=[0,2/3,1/3,0],Ia=[0,1/3,2/3,0],Va=[0,1/6,2/3,1/6];Ci.svg.line.radial=function(){var t=se(De);return t.radius=t.x,delete t.x,t.angle=t.y,delete t.y,t},me.reverse=ve,ve.reverse=me,Ci.svg.area=function(){return Le(a)},Ci.svg.area.radial=function(){var t=Le(De);return t.radius=t.x,delete t.x,t.innerRadius=t.x0,delete t.x0,t.outerRadius=t.x1,delete t.x1,t.angle=t.y,delete t.y,t.startAngle=t.y0,delete t.y0,t.endAngle=t.y1,delete t.y1,t},Ci.svg.chord=function(){function e(t,n){var e=r(this,o,t,n),c=r(this,l,t,n);return"M"+e.p0+i(e.r,e.p1,e.a1-e.a0)+(u(e,c)?a(e.r,e.p1,e.r,e.p0):a(e.r,e.p1,c.r,c.p0)+i(c.r,c.p1,c.a1-c.a0)+a(c.r,c.p1,e.r,e.p0))+"Z"}function r(t,n,e,r){var u=n.call(t,e,r),i=f.call(t,u,r),a=s.call(t,u,r)+Ra,o=h.call(t,u,r)+Ra;return{r:i,a0:a,a1:o,p0:[i*Math.cos(a),i*Math.sin(a)],p1:[i*Math.cos(o),i*Math.sin(o)]}}function u(t,n){return t.a0==n.a0&&t.a1==n.a1}function i(t,n,e){return"A"+t+","+t+" 0 "+ +(e>Ti)+",1 "+n}function a(t,n,e,r){return"Q 0,0 "+r}var o=n,l=t,f=Fe,s=le,h=fe;return e.radius=function(t){return arguments.length?(f=c(t),e):f},e.source=function(t){return arguments.length?(o=c(t),e):o},e.target=function(t){return arguments.length?(l=c(t),e):l},e.startAngle=function(t){return arguments.length?(s=c(t),e):s},e.endAngle=function(t){return arguments.length?(h=c(t),e):h},e},Ci.svg.diagonal=function(){function e(t,n){var e=r.call(this,t,n),a=u.call(this,t,n),o=(e.y+a.y)/2,c=[e,{x:e.x,y:o},{x:a.x,y:o},a];return c=c.map(i),"M"+c[0]+"C"+c[1]+" "+c[2]+" "+c[3]}var r=n,u=t,i=He;return e.source=function(t){return arguments.length?(r=c(t),e):r},e.target=function(t){return arguments.length?(u=c(t),e):u},e.projection=function(t){return arguments.length?(i=t,e):i},e},Ci.svg.diagonal.radial=function(){var t=Ci.svg.diagonal(),n=He,e=t.projection;return t.projection=function(t){return arguments.length?e(je(n=t)):n},t},Ci.svg.symbol=function(){function t(t,r){return(Za.get(n.call(this,t,r))||Oe)(e.call(this,t,r))}var n=Re,e=Pe;return t.type=function(e){return arguments.length?(n=c(e),t):n},t.size=function(n){return arguments.length?(e=c(n),t):e},t};var Za=Ci.map({circle:Oe,cross:function(t){var n=Math.sqrt(t/5)/2;return"M"+-3*n+","+-n+"H"+-n+"V"+-3*n+"H"+n+"V"+-n+"H"+3*n+"V"+n+"H"+n+"V"+3*n+"H"+-n+"V"+n+"H"+-3*n+"Z"},diamond:function(t){var n=Math.sqrt(t/(2*Ba)),e=n*Ba;return"M0,"+-n+"L"+e+",0"+" 0,"+n+" "+-e+",0"+"Z"},square:function(t){var n=Math.sqrt(t)/2;return"M"+-n+","+-n+"L"+n+","+-n+" "+n+","+n+" "+-n+","+n+"Z"},"triangle-down":function(t){var n=Math.sqrt(t/Xa),e=n*Xa/2;return"M0,"+e+"L"+n+","+-e+" "+-n+","+-e+"Z"},"triangle-up":function(t){var n=Math.sqrt(t/Xa),e=n*Xa/2;return"M0,"+-e+"L"+n+","+e+" "+-n+","+e+"Z"}});Ci.svg.symbolTypes=Za.keys();var Xa=Math.sqrt(3),Ba=Math.tan(30*zi);Ci.svg.axis=function(){function t(t){t.each(function(){var t,s=Ci.select(this),h=null==l?e.ticks?e.ticks.apply(e,c):e.domain():l,g=null==n?e.tickFormat?e.tickFormat.apply(e,c):String:n,p=Ie(e,h,f),d=s.selectAll(".tick.minor").data(p,String),m=d.enter().insert("line",".tick").attr("class","tick minor").style("opacity",1e-6),v=Ci.transition(d.exit()).style("opacity",1e-6).remove(),y=Ci.transition(d).style("opacity",1),M=s.selectAll(".tick.major").data(h,String),b=M.enter().insert("g","path").attr("class","tick major").style("opacity",1e-6),x=Ci.transition(M.exit()).style("opacity",1e-6).remove(),_=Ci.transition(M).style("opacity",1),w=On(e),S=s.selectAll(".domain").data([0]),k=(S.enter().append("path").attr("class","domain"),Ci.transition(S)),E=e.copy(),A=this.__chart__||E;this.__chart__=E,b.append("line"),b.append("text");var N=b.select("line"),T=_.select("line"),q=M.select("text").text(g),C=b.select("text"),z=_.select("text");switch(r){case"bottom":t=Ye,m.attr("y2",i),y.attr("x2",0).attr("y2",i),N.attr("y2",u),C.attr("y",Math.max(u,0)+o),T.attr("x2",0).attr("y2",u),z.attr("x",0).attr("y",Math.max(u,0)+o),q.attr("dy",".71em").style("text-anchor","middle"),k.attr("d","M"+w[0]+","+a+"V0H"+w[1]+"V"+a);break;case"top":t=Ye,m.attr("y2",-i),y.attr("x2",0).attr("y2",-i),N.attr("y2",-u),C.attr("y",-(Math.max(u,0)+o)),T.attr("x2",0).attr("y2",-u),z.attr("x",0).attr("y",-(Math.max(u,0)+o)),q.attr("dy","0em").style("text-anchor","middle"),k.attr("d","M"+w[0]+","+-a+"V0H"+w[1]+"V"+-a);break;case"left":t=Ue,m.attr("x2",-i),y.attr("x2",-i).attr("y2",0),N.attr("x2",-u),C.attr("x",-(Math.max(u,0)+o)),T.attr("x2",-u).attr("y2",0),z.attr("x",-(Math.max(u,0)+o)).attr("y",0),q.attr("dy",".32em").style("text-anchor","end"),k.attr("d","M"+-a+","+w[0]+"H0V"+w[1]+"H"+-a);break;case"right":t=Ue,m.attr("x2",i),y.attr("x2",i).attr("y2",0),N.attr("x2",u),C.attr("x",Math.max(u,0)+o),T.attr("x2",u).attr("y2",0),z.attr("x",Math.max(u,0)+o).attr("y",0),q.attr("dy",".32em").style("text-anchor","start"),k.attr("d","M"+a+","+w[0]+"H0V"+w[1]+"H"+a)}if(e.ticks)b.call(t,A),_.call(t,E),x.call(t,E),m.call(t,A),y.call(t,E),v.call(t,E);else{var D=E.rangeBand()/2,L=function(t){return E(t)+D};b.call(t,L),_.call(t,L)}})}var n,e=Ci.scale.linear(),r=$a,u=6,i=6,a=6,o=3,c=[10],l=null,f=0;return t.scale=function(n){return arguments.length?(e=n,t):e},t.orient=function(n){return arguments.length?(r=n in Ja?n+"":$a,t):r},t.ticks=function(){return arguments.length?(c=arguments,t):c},t.tickValues=function(n){return arguments.length?(l=n,t):l},t.tickFormat=function(e){return arguments.length?(n=e,t):n},t.tickSize=function(n,e){if(!arguments.length)return u;var r=arguments.length-1;return u=+n,i=r>1?+e:u,a=r>0?+arguments[r]:u,t},t.tickPadding=function(n){return arguments.length?(o=+n,t):o},t.tickSubdivide=function(n){return arguments.length?(f=+n,t):f},t};var $a="bottom",Ja={top:1,right:1,bottom:1,left:1};Ci.svg.brush=function(){function t(i){i.each(function(){var i,a=Ci.select(this),f=a.selectAll(".background").data([0]),s=a.selectAll(".extent").data([0]),h=a.selectAll(".resize").data(l,String);a.style("pointer-events","all").on("mousedown.brush",u).on("touchstart.brush",u),f.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),s.enter().append("rect").attr("class","extent").style("cursor","move"),h.enter().append("g").attr("class",function(t){return"resize "+t}).style("cursor",function(t){return Ga[t]}).append("rect").attr("x",function(t){return/[ew]$/.test(t)?-3:null}).attr("y",function(t){return/^[ns]/.test(t)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),h.style("display",t.empty()?"none":null),h.exit().remove(),o&&(i=On(o),f.attr("x",i[0]).attr("width",i[1]-i[0]),e(a)),c&&(i=On(c),f.attr("y",i[0]).attr("height",i[1]-i[0]),r(a)),n(a)})}function n(t){t.selectAll(".resize").attr("transform",function(t){return"translate("+f[+/e$/.test(t)][0]+","+f[+/^s/.test(t)][1]+")"})}function e(t){t.select(".extent").attr("x",f[0][0]),t.selectAll(".extent,.n>rect,.s>rect").attr("width",f[1][0]-f[0][0])}function r(t){t.select(".extent").attr("y",f[0][1]),t.selectAll(".extent,.e>rect,.w>rect").attr("height",f[1][1]-f[0][1])}function u(){function u(){var t=Ci.event.changedTouches;return t?Ci.touches(v,t)[0]:Ci.mouse(v)}function l(){32==Ci.event.keyCode&&(S||(d=null,k[0]-=f[1][0],k[1]-=f[1][1],S=2),j())}function s(){32==Ci.event.keyCode&&2==S&&(k[0]+=f[1][0],k[1]+=f[1][1],S=0,j())}function h(){var t=u(),i=!1;m&&(t[0]+=m[0],t[1]+=m[1]),S||(Ci.event.altKey?(d||(d=[(f[0][0]+f[1][0])/2,(f[0][1]+f[1][1])/2]),k[0]=f[+(t[0]<d[0])][0],k[1]=f[+(t[1]<d[1])][1]):d=null),_&&g(t,o,0)&&(e(b),i=!0),w&&g(t,c,1)&&(r(b),i=!0),i&&(n(b),M({type:"brush",mode:S?"move":"resize"}))}function g(t,n,e){var r,u,a=On(n),o=a[0],c=a[1],l=k[e],s=f[1][e]-f[0][e];return S&&(o-=l,c-=s+l),r=Math.max(o,Math.min(c,t[e])),S?u=(r+=l)+s:(d&&(l=Math.max(o,Math.min(c,2*d[e]-r))),r>l?(u=r,r=l):u=l),f[0][e]!==r||f[1][e]!==u?(i=null,f[0][e]=r,f[1][e]=u,!0):void 0}function p(){h(),b.style("pointer-events","all").selectAll(".resize").style("display",t.empty()?"none":null),Ci.select("body").style("cursor",null),E.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),M({type:"brushend"}),j()}var d,m,v=this,y=Ci.select(Ci.event.target),M=a.of(v,arguments),b=Ci.select(v),x=y.datum(),_=!/^(n|s)$/.test(x)&&o,w=!/^(e|w)$/.test(x)&&c,S=y.classed("extent"),k=u(),E=Ci.select(Fi).on("mousemove.brush",h).on("mouseup.brush",p).on("touchmove.brush",h).on("touchend.brush",p).on("keydown.brush",l).on("keyup.brush",s);if(S)k[0]=f[0][0]-k[0],k[1]=f[0][1]-k[1];else if(x){var A=+/w$/.test(x),N=+/^n/.test(x);m=[f[1-A][0]-k[0],f[1-N][1]-k[1]],k[0]=f[A][0],k[1]=f[N][1]}else Ci.event.altKey&&(d=k.slice());b.style("pointer-events","none").selectAll(".resize").style("display",null),Ci.select("body").style("cursor",y.style("cursor")),M({type:"brushstart"}),h(),j()}var i,a=R(t,"brushstart","brush","brushend"),o=null,c=null,l=Ka[0],f=[[0,0],[0,0]];return t.x=function(n){return arguments.length?(o=n,l=Ka[!o<<1|!c],t):o},t.y=function(n){return arguments.length?(c=n,l=Ka[!o<<1|!c],t):c},t.extent=function(n){var e,r,u,a,l;return arguments.length?(i=[[0,0],[0,0]],o&&(e=n[0],r=n[1],c&&(e=e[0],r=r[0]),i[0][0]=e,i[1][0]=r,o.invert&&(e=o(e),r=o(r)),e>r&&(l=e,e=r,r=l),f[0][0]=0|e,f[1][0]=0|r),c&&(u=n[0],a=n[1],o&&(u=u[1],a=a[1]),i[0][1]=u,i[1][1]=a,c.invert&&(u=c(u),a=c(a)),u>a&&(l=u,u=a,a=l),f[0][1]=0|u,f[1][1]=0|a),t):(n=i||f,o&&(e=n[0][0],r=n[1][0],i||(e=f[0][0],r=f[1][0],o.invert&&(e=o.invert(e),r=o.invert(r)),e>r&&(l=e,e=r,r=l))),c&&(u=n[0][1],a=n[1][1],i||(u=f[0][1],a=f[1][1],c.invert&&(u=c.invert(u),a=c.invert(a)),u>a&&(l=u,u=a,a=l))),o&&c?[[e,u],[r,a]]:o?[e,r]:c&&[u,a])},t.clear=function(){return i=null,f[0][0]=f[0][1]=f[1][0]=f[1][1]=0,t},t.empty=function(){return o&&f[0][0]===f[1][0]||c&&f[0][1]===f[1][1]},Ci.rebind(t,a,"on")};var Ga={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Ka=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]];Ci.behavior={},Ci.behavior.drag=function(){function t(){this.on("mousedown.drag",n).on("touchstart.drag",n)}function n(){function t(){var t=o.parentNode;return null!=f?Ci.touches(t).filter(function(t){return t.identifier===f})[0]:Ci.mouse(t)}function n(){if(!o.parentNode)return u();var n=t(),e=n[0]-s[0],r=n[1]-s[1];h|=e|r,s=n,j(),c({type:"drag",x:n[0]+a[0],y:n[1]+a[1],dx:e,dy:r})}function u(){c({type:"dragend"}),h&&(j(),Ci.event.target===l&&g.on("click.drag",i,!0)),g.on(null!=f?"touchmove.drag-"+f:"mousemove.drag",null).on(null!=f?"touchend.drag-"+f:"mouseup.drag",null)}function i(){j(),g.on("click.drag",null)}var a,o=this,c=e.of(o,arguments),l=Ci.event.target,f=Ci.event.touches?Ci.event.changedTouches[0].identifier:null,s=t(),h=0,g=Ci.select(Fi).on(null!=f?"touchmove.drag-"+f:"mousemove.drag",n).on(null!=f?"touchend.drag-"+f:"mouseup.drag",u,!0);r?(a=r.apply(o,arguments),a=[a.x-s[0],a.y-s[1]]):a=[0,0],null==f&&j(),c({type:"dragstart"})}var e=R(t,"drag","dragstart","dragend"),r=null;return t.origin=function(n){return arguments.length?(r=n,t):r},Ci.rebind(t,e,"on")},Ci.behavior.zoom=function(){function t(){this.on("mousedown.zoom",o).on("mousemove.zoom",l).on(to+".zoom",c).on("dblclick.zoom",f).on("touchstart.zoom",s).on("touchmove.zoom",h).on("touchend.zoom",s)}function n(t){return[(t[0]-b[0])/x,(t[1]-b[1])/x]}function e(t){return[t[0]*x+b[0],t[1]*x+b[1]]}function r(t){x=Math.max(_[0],Math.min(_[1],t))}function u(t,n){n=e(n),b[0]+=t[0]-n[0],b[1]+=t[1]-n[1]}function i(){m&&m.domain(d.range().map(function(t){return(t-b[0])/x}).map(d.invert)),y&&y.domain(v.range().map(function(t){return(t-b[1])/x}).map(v.invert))}function a(t){i(),Ci.event.preventDefault(),t({type:"zoom",scale:x,translate:b})}function o(){function t(){l=1,u(Ci.mouse(i),s),a(o)}function e(){l&&j(),f.on("mousemove.zoom",null).on("mouseup.zoom",null),l&&Ci.event.target===c&&f.on("click.zoom",r,!0)}function r(){j(),f.on("click.zoom",null)}var i=this,o=w.of(i,arguments),c=Ci.event.target,l=0,f=Ci.select(Fi).on("mousemove.zoom",t).on("mouseup.zoom",e),s=n(Ci.mouse(i));Fi.focus(),j()}function c(){g||(g=n(Ci.mouse(this))),r(Math.pow(2,.002*Wa())*x),u(Ci.mouse(this),g),a(w.of(this,arguments))}function l(){g=null}function f(){var t=Ci.mouse(this),e=n(t),i=Math.log(x)/Math.LN2;r(Math.pow(2,Ci.event.shiftKey?Math.ceil(i)-1:Math.floor(i)+1)),u(t,e),a(w.of(this,arguments))}function s(){var t=Ci.touches(this),e=Date.now();if(p=x,g={},t.forEach(function(t){g[t.identifier]=n(t)}),j(),1===t.length){if(500>e-M){var i=t[0],o=n(t[0]);r(2*x),u(i,o),a(w.of(this,arguments))}M=e}}function h(){var t=Ci.touches(this),n=t[0],e=g[n.identifier];if(i=t[1]){var i,o=g[i.identifier];n=[(n[0]+i[0])/2,(n[1]+i[1])/2],e=[(e[0]+o[0])/2,(e[1]+o[1])/2],r(Ci.event.scale*p)}u(n,e),M=null,a(w.of(this,arguments))}var g,p,d,m,v,y,M,b=[0,0],x=1,_=Qa,w=R(t,"zoom");return t.translate=function(n){return arguments.length?(b=n.map(Number),i(),t):b},t.scale=function(n){return arguments.length?(x=+n,i(),t):x},t.scaleExtent=function(n){return arguments.length?(_=null==n?Qa:n.map(Number),t):_},t.x=function(n){return arguments.length?(m=n,d=n.copy(),b=[0,0],x=1,t):m},t.y=function(n){return arguments.length?(y=n,v=n.copy(),b=[0,0],x=1,t):y},Ci.rebind(t,w,"on")};var Wa,Qa=[0,1/0],to="onwheel"in document?(Wa=function(){return-Ci.event.deltaY*(Ci.event.deltaMode?120:1)},"wheel"):"onmousewheel"in document?(Wa=function(){return Ci.event.wheelDelta},"mousewheel"):(Wa=function(){return-Ci.event.detail},"MozMousePixelScroll");Ci.layout={},Ci.layout.bundle=function(){return function(t){for(var n=[],e=-1,r=t.length;r>++e;)n.push(Ve(t[e]));return n}},Ci.layout.chord=function(){function t(){var t,l,s,h,g,p={},d=[],m=Ci.range(i),v=[];for(e=[],r=[],t=0,h=-1;i>++h;){for(l=0,g=-1;i>++g;)l+=u[h][g];d.push(l),v.push(Ci.range(i)),t+=l}for(a&&m.sort(function(t,n){return a(d[t],d[n])}),o&&v.forEach(function(t,n){t.sort(function(t,e){return o(u[n][t],u[n][e])})}),t=(2*Ti-f*i)/t,l=0,h=-1;i>++h;){for(s=l,g=-1;i>++g;){var y=m[h],M=v[y][g],b=u[y][M],x=l,_=l+=b*t;p[y+"-"+M]={index:y,subindex:M,startAngle:x,endAngle:_,value:b}}r[y]={index:y,startAngle:s,endAngle:l,value:(l-s)/t},l+=f}for(h=-1;i>++h;)for(g=h-1;i>++g;){var w=p[h+"-"+g],S=p[g+"-"+h];(w.value||S.value)&&e.push(w.value<S.value?{source:S,target:w}:{source:w,target:S})}c&&n()}function n(){e.sort(function(t,n){return c((t.source.value+t.target.value)/2,(n.source.value+n.target.value)/2)})}var e,r,u,i,a,o,c,l={},f=0;return l.matrix=function(t){return arguments.length?(i=(u=t)&&u.length,e=r=null,l):u},l.padding=function(t){return arguments.length?(f=t,e=r=null,l):f},l.sortGroups=function(t){return arguments.length?(a=t,e=r=null,l):a},l.sortSubgroups=function(t){return arguments.length?(o=t,e=null,l):o},l.sortChords=function(t){return arguments.length?(c=t,e&&n(),l):c},l.chords=function(){return e||t(),e},l.groups=function(){return r||t(),r},l},Ci.layout.force=function(){function t(t){return function(n,e,r,u){if(n.point!==t){var i=n.cx-t.x,a=n.cy-t.y,o=1/Math.sqrt(i*i+a*a);if(m>(u-e)*o){var c=n.charge*o*o;return t.px-=i*c,t.py-=a*c,!0}if(n.point&&isFinite(o)){var c=n.pointCharge*o*o;t.px-=i*c,t.py-=a*c}}return!n.charge}}function n(t){t.px=Ci.event.x,t.py=Ci.event.y,c.resume()}var e,r,u,i,o,c={},l=Ci.dispatch("start","tick","end"),f=[1,1],s=.9,h=no,g=eo,p=-30,d=.1,m=.8,v=[],y=[];return c.tick=function(){if(.005>(r*=.99))return l.end({type:"end",alpha:r=0}),!0;var n,e,a,c,h,g,m,M,b,x=v.length,_=y.length;for(e=0;_>e;++e)a=y[e],c=a.source,h=a.target,M=h.x-c.x,b=h.y-c.y,(g=M*M+b*b)&&(g=r*i[e]*((g=Math.sqrt(g))-u[e])/g,M*=g,b*=g,h.x-=M*(m=c.weight/(h.weight+c.weight)),h.y-=b*m,c.x+=M*(m=1-m),c.y+=b*m);if((m=r*d)&&(M=f[0]/2,b=f[1]/2,e=-1,m))for(;x>++e;)a=v[e],a.x+=(M-a.x)*m,a.y+=(b-a.y)*m;if(p)for(Ke(n=Ci.geom.quadtree(v),r,o),e=-1;x>++e;)(a=v[e]).fixed||n.visit(t(a));for(e=-1;x>++e;)a=v[e],a.fixed?(a.x=a.px,a.y=a.py):(a.x-=(a.px-(a.px=a.x))*s,a.y-=(a.py-(a.py=a.y))*s);l.tick({type:"tick",alpha:r})},c.nodes=function(t){return arguments.length?(v=t,c):v},c.links=function(t){return arguments.length?(y=t,c):y},c.size=function(t){return arguments.length?(f=t,c):f},c.linkDistance=function(t){return arguments.length?(h="function"==typeof t?t:+t,c):h},c.distance=c.linkDistance,c.linkStrength=function(t){return arguments.length?(g="function"==typeof t?t:+t,c):g},c.friction=function(t){return arguments.length?(s=+t,c):s},c.charge=function(t){return arguments.length?(p="function"==typeof t?t:+t,c):p},c.gravity=function(t){return arguments.length?(d=+t,c):d},c.theta=function(t){return arguments.length?(m=+t,c):m},c.alpha=function(t){return arguments.length?(t=+t,r?r=t>0?t:0:t>0&&(l.start({type:"start",alpha:r=t}),Ci.timer(c.tick)),c):r},c.start=function(){function t(t,r){for(var u,i=n(e),a=-1,o=i.length;o>++a;)if(!isNaN(u=i[a][t]))return u;
+return Math.random()*r}function n(){if(!a){for(a=[],r=0;s>r;++r)a[r]=[];for(r=0;d>r;++r){var t=y[r];a[t.source.index].push(t.target),a[t.target.index].push(t.source)}}return a[e]}var e,r,a,l,s=v.length,d=y.length,m=f[0],M=f[1];for(e=0;s>e;++e)(l=v[e]).index=e,l.weight=0;for(e=0;d>e;++e)l=y[e],"number"==typeof l.source&&(l.source=v[l.source]),"number"==typeof l.target&&(l.target=v[l.target]),++l.source.weight,++l.target.weight;for(e=0;s>e;++e)l=v[e],isNaN(l.x)&&(l.x=t("x",m)),isNaN(l.y)&&(l.y=t("y",M)),isNaN(l.px)&&(l.px=l.x),isNaN(l.py)&&(l.py=l.y);if(u=[],"function"==typeof h)for(e=0;d>e;++e)u[e]=+h.call(this,y[e],e);else for(e=0;d>e;++e)u[e]=h;if(i=[],"function"==typeof g)for(e=0;d>e;++e)i[e]=+g.call(this,y[e],e);else for(e=0;d>e;++e)i[e]=g;if(o=[],"function"==typeof p)for(e=0;s>e;++e)o[e]=+p.call(this,v[e],e);else for(e=0;s>e;++e)o[e]=p;return c.resume()},c.resume=function(){return c.alpha(.1)},c.stop=function(){return c.alpha(0)},c.drag=function(){return e||(e=Ci.behavior.drag().origin(a).on("dragstart.force",Be).on("drag.force",n).on("dragend.force",$e)),arguments.length?(this.on("mouseover.force",Je).on("mouseout.force",Ge).call(e),void 0):e},Ci.rebind(c,l,"on")};var no=20,eo=1;Ci.layout.partition=function(){function t(n,e,r,u){var i=n.children;if(n.x=e,n.y=n.depth*u,n.dx=r,n.dy=u,i&&(a=i.length)){var a,o,c,l=-1;for(r=n.value?r/n.value:0;a>++l;)t(o=i[l],e,c=o.value*r,u),e+=c}}function n(t){var e=t.children,r=0;if(e&&(u=e.length))for(var u,i=-1;u>++i;)r=Math.max(r,n(e[i]));return 1+r}function e(e,i){var a=r.call(this,e,i);return t(a[0],0,u[0],u[1]/n(a[0])),a}var r=Ci.layout.hierarchy(),u=[1,1];return e.size=function(t){return arguments.length?(u=t,e):u},lr(e,r)},Ci.layout.pie=function(){function t(i){var a=i.map(function(e,r){return+n.call(t,e,r)}),o=+("function"==typeof r?r.apply(this,arguments):r),c=(("function"==typeof u?u.apply(this,arguments):u)-r)/Ci.sum(a),l=Ci.range(i.length);null!=e&&l.sort(e===ro?function(t,n){return a[n]-a[t]}:function(t,n){return e(i[t],i[n])});var f=[];return l.forEach(function(t){var n;f[t]={data:i[t],value:n=a[t],startAngle:o,endAngle:o+=n*c}}),f}var n=Number,e=ro,r=0,u=2*Ti;return t.value=function(e){return arguments.length?(n=e,t):n},t.sort=function(n){return arguments.length?(e=n,t):e},t.startAngle=function(n){return arguments.length?(r=n,t):r},t.endAngle=function(n){return arguments.length?(u=n,t):u},t};var ro={};Ci.layout.stack=function(){function t(a,c){var l=a.map(function(e,r){return n.call(t,e,r)}),f=l.map(function(n){return n.map(function(n,e){return[i.call(t,n,e),o.call(t,n,e)]})}),s=e.call(t,f,c);l=Ci.permute(l,s),f=Ci.permute(f,s);var h,g,p,d=r.call(t,f,c),m=l.length,v=l[0].length;for(g=0;v>g;++g)for(u.call(t,l[0][g],p=d[g],f[0][g][1]),h=1;m>h;++h)u.call(t,l[h][g],p+=f[h-1][g][1],f[h][g][1]);return a}var n=a,e=nr,r=er,u=tr,i=We,o=Qe;return t.values=function(e){return arguments.length?(n=e,t):n},t.order=function(n){return arguments.length?(e="function"==typeof n?n:uo.get(n)||nr,t):e},t.offset=function(n){return arguments.length?(r="function"==typeof n?n:io.get(n)||er,t):r},t.x=function(n){return arguments.length?(i=n,t):i},t.y=function(n){return arguments.length?(o=n,t):o},t.out=function(n){return arguments.length?(u=n,t):u},t};var uo=Ci.map({"inside-out":function(t){var n,e,r=t.length,u=t.map(rr),i=t.map(ur),a=Ci.range(r).sort(function(t,n){return u[t]-u[n]}),o=0,c=0,l=[],f=[];for(n=0;r>n;++n)e=a[n],c>o?(o+=i[e],l.push(e)):(c+=i[e],f.push(e));return f.reverse().concat(l)},reverse:function(t){return Ci.range(t.length).reverse()},"default":nr}),io=Ci.map({silhouette:function(t){var n,e,r,u=t.length,i=t[0].length,a=[],o=0,c=[];for(e=0;i>e;++e){for(n=0,r=0;u>n;n++)r+=t[n][e][1];r>o&&(o=r),a.push(r)}for(e=0;i>e;++e)c[e]=(o-a[e])/2;return c},wiggle:function(t){var n,e,r,u,i,a,o,c,l,f=t.length,s=t[0],h=s.length,g=[];for(g[0]=c=l=0,e=1;h>e;++e){for(n=0,u=0;f>n;++n)u+=t[n][e][1];for(n=0,i=0,o=s[e][0]-s[e-1][0];f>n;++n){for(r=0,a=(t[n][e][1]-t[n][e-1][1])/(2*o);n>r;++r)a+=(t[r][e][1]-t[r][e-1][1])/o;i+=a*t[n][e][1]}g[e]=c-=u?i/u*o:0,l>c&&(l=c)}for(e=0;h>e;++e)g[e]-=l;return g},expand:function(t){var n,e,r,u=t.length,i=t[0].length,a=1/u,o=[];for(e=0;i>e;++e){for(n=0,r=0;u>n;n++)r+=t[n][e][1];if(r)for(n=0;u>n;n++)t[n][e][1]/=r;else for(n=0;u>n;n++)t[n][e][1]=a}for(e=0;i>e;++e)o[e]=0;return o},zero:er});Ci.layout.histogram=function(){function t(t,i){for(var a,o,c=[],l=t.map(e,this),f=r.call(this,l,i),s=u.call(this,f,l,i),i=-1,h=l.length,g=s.length-1,p=n?1:1/h;g>++i;)a=c[i]=[],a.dx=s[i+1]-(a.x=s[i]),a.y=0;if(g>0)for(i=-1;h>++i;)o=l[i],o>=f[0]&&f[1]>=o&&(a=c[Ci.bisect(s,o,1,g)-1],a.y+=p,a.push(t[i]));return c}var n=!0,e=Number,r=cr,u=ar;return t.value=function(n){return arguments.length?(e=n,t):e},t.range=function(n){return arguments.length?(r=c(n),t):r},t.bins=function(n){return arguments.length?(u="number"==typeof n?function(t){return or(t,n)}:c(n),t):u},t.frequency=function(e){return arguments.length?(n=!!e,t):n},t},Ci.layout.hierarchy=function(){function t(n,a,o){var c=u.call(e,n,a);if(n.depth=a,o.push(n),c&&(l=c.length)){for(var l,f,s=-1,h=n.children=[],g=0,p=a+1;l>++s;)f=t(c[s],p,o),f.parent=n,h.push(f),g+=f.value;r&&h.sort(r),i&&(n.value=g)}else i&&(n.value=+i.call(e,n,a)||0);return n}function n(t,r){var u=t.children,a=0;if(u&&(o=u.length))for(var o,c=-1,l=r+1;o>++c;)a+=n(u[c],l);else i&&(a=+i.call(e,t,r)||0);return i&&(t.value=a),a}function e(n){var e=[];return t(n,0,e),e}var r=hr,u=fr,i=sr;return e.sort=function(t){return arguments.length?(r=t,e):r},e.children=function(t){return arguments.length?(u=t,e):u},e.value=function(t){return arguments.length?(i=t,e):i},e.revalue=function(t){return n(t,0),t},e},Ci.layout.pack=function(){function t(t,u){var i=n.call(this,t,u),a=i[0];a.x=0,a.y=0,Lr(a,function(t){t.r=Math.sqrt(t.value)}),Lr(a,yr);var o=r[0],c=r[1],l=Math.max(2*a.r/o,2*a.r/c);if(e>0){var f=e*l/2;Lr(a,function(t){t.r+=f}),Lr(a,yr),Lr(a,function(t){t.r-=f}),l=Math.max(2*a.r/o,2*a.r/c)}return xr(a,o/2,c/2,1/l),i}var n=Ci.layout.hierarchy().sort(pr),e=0,r=[1,1];return t.size=function(n){return arguments.length?(r=n,t):r},t.padding=function(n){return arguments.length?(e=+n,t):e},lr(t,n)},Ci.layout.cluster=function(){function t(t,u){var i,a=n.call(this,t,u),o=a[0],c=0;Lr(o,function(t){var n=t.children;n&&n.length?(t.x=Sr(n),t.y=wr(n)):(t.x=i?c+=e(t,i):0,t.y=0,i=t)});var l=kr(o),f=Er(o),s=l.x-e(l,f)/2,h=f.x+e(f,l)/2;return Lr(o,function(t){t.x=(t.x-s)/(h-s)*r[0],t.y=(1-(o.y?t.y/o.y:1))*r[1]}),a}var n=Ci.layout.hierarchy().sort(null).value(null),e=Ar,r=[1,1];return t.separation=function(n){return arguments.length?(e=n,t):e},t.size=function(n){return arguments.length?(r=n,t):r},lr(t,n)},Ci.layout.tree=function(){function t(t,u){function i(t,n){var r=t.children,u=t._tree;if(r&&(a=r.length)){for(var a,c,l,f=r[0],s=f,h=-1;a>++h;)l=r[h],i(l,c),s=o(l,c,s),c=l;Fr(t);var g=.5*(f._tree.prelim+l._tree.prelim);n?(u.prelim=n._tree.prelim+e(t,n),u.mod=u.prelim-g):u.prelim=g}else n&&(u.prelim=n._tree.prelim+e(t,n))}function a(t,n){t.x=t._tree.prelim+n;var e=t.children;if(e&&(r=e.length)){var r,u=-1;for(n+=t._tree.mod;r>++u;)a(e[u],n)}}function o(t,n,r){if(n){for(var u,i=t,a=t,o=n,c=t.parent.children[0],l=i._tree.mod,f=a._tree.mod,s=o._tree.mod,h=c._tree.mod;o=Tr(o),i=Nr(i),o&&i;)c=Nr(c),a=Tr(a),a._tree.ancestor=t,u=o._tree.prelim+s-i._tree.prelim-l+e(o,i),u>0&&(Hr(jr(o,t,r),t,u),l+=u,f+=u),s+=o._tree.mod,l+=i._tree.mod,h+=c._tree.mod,f+=a._tree.mod;o&&!Tr(a)&&(a._tree.thread=o,a._tree.mod+=s-f),i&&!Nr(c)&&(c._tree.thread=i,c._tree.mod+=l-h,r=t)}return r}var c=n.call(this,t,u),l=c[0];Lr(l,function(t,n){t._tree={ancestor:t,prelim:0,mod:0,change:0,shift:0,number:n?n._tree.number+1:0}}),i(l),a(l,-l._tree.prelim);var f=qr(l,zr),s=qr(l,Cr),h=qr(l,Dr),g=f.x-e(f,s)/2,p=s.x+e(s,f)/2,d=h.depth||1;return Lr(l,function(t){t.x=(t.x-g)/(p-g)*r[0],t.y=t.depth/d*r[1],delete t._tree}),c}var n=Ci.layout.hierarchy().sort(null).value(null),e=Ar,r=[1,1];return t.separation=function(n){return arguments.length?(e=n,t):e},t.size=function(n){return arguments.length?(r=n,t):r},lr(t,n)},Ci.layout.treemap=function(){function t(t,n){for(var e,r,u=-1,i=t.length;i>++u;)r=(e=t[u]).value*(0>n?0:n),e.area=isNaN(r)||0>=r?0:r}function n(e){var i=e.children;if(i&&i.length){var a,o,c,l=s(e),f=[],h=i.slice(),p=1/0,d="slice"===g?l.dx:"dice"===g?l.dy:"slice-dice"===g?1&e.depth?l.dy:l.dx:Math.min(l.dx,l.dy);for(t(h,l.dx*l.dy/e.value),f.area=0;(c=h.length)>0;)f.push(a=h[c-1]),f.area+=a.area,"squarify"!==g||p>=(o=r(f,d))?(h.pop(),p=o):(f.area-=f.pop().area,u(f,d,l,!1),d=Math.min(l.dx,l.dy),f.length=f.area=0,p=1/0);f.length&&(u(f,d,l,!0),f.length=f.area=0),i.forEach(n)}}function e(n){var r=n.children;if(r&&r.length){var i,a=s(n),o=r.slice(),c=[];for(t(o,a.dx*a.dy/n.value),c.area=0;i=o.pop();)c.push(i),c.area+=i.area,null!=i.z&&(u(c,i.z?a.dx:a.dy,a,!o.length),c.length=c.area=0);r.forEach(e)}}function r(t,n){for(var e,r=t.area,u=0,i=1/0,a=-1,o=t.length;o>++a;)(e=t[a].area)&&(i>e&&(i=e),e>u&&(u=e));return r*=r,n*=n,r?Math.max(n*u*p/r,r/(n*i*p)):1/0}function u(t,n,e,r){var u,i=-1,a=t.length,o=e.x,l=e.y,f=n?c(t.area/n):0;if(n==e.dx){for((r||f>e.dy)&&(f=e.dy);a>++i;)u=t[i],u.x=o,u.y=l,u.dy=f,o+=u.dx=Math.min(e.x+e.dx-o,f?c(u.area/f):0);u.z=!0,u.dx+=e.x+e.dx-o,e.y+=f,e.dy-=f}else{for((r||f>e.dx)&&(f=e.dx);a>++i;)u=t[i],u.x=o,u.y=l,u.dx=f,l+=u.dy=Math.min(e.y+e.dy-l,f?c(u.area/f):0);u.z=!1,u.dy+=e.y+e.dy-l,e.x+=f,e.dx-=f}}function i(r){var u=a||o(r),i=u[0];return i.x=0,i.y=0,i.dx=l[0],i.dy=l[1],a&&o.revalue(i),t([i],i.dx*i.dy/i.value),(a?e:n)(i),h&&(a=u),u}var a,o=Ci.layout.hierarchy(),c=Math.round,l=[1,1],f=null,s=Pr,h=!1,g="squarify",p=.5*(1+Math.sqrt(5));return i.size=function(t){return arguments.length?(l=t,i):l},i.padding=function(t){function n(n){var e=t.call(i,n,n.depth);return null==e?Pr(n):Rr(n,"number"==typeof e?[e,e,e,e]:e)}function e(n){return Rr(n,t)}if(!arguments.length)return f;var r;return s=null==(f=t)?Pr:"function"==(r=typeof t)?n:"number"===r?(t=[t,t,t,t],e):e,i},i.round=function(t){return arguments.length?(c=t?Math.round:Number,i):c!=Number},i.sticky=function(t){return arguments.length?(h=t,a=null,i):h},i.ratio=function(t){return arguments.length?(p=t,i):p},i.mode=function(t){return arguments.length?(g=t+"",i):g},lr(i,o)},Ci.csv=Or(",","text/csv"),Ci.tsv=Or("	","text/tab-separated-values"),Ci.geo={},Ci.geo.stream=function(t,n){ao.hasOwnProperty(t.type)?ao[t.type](t,n):Yr(t,n)};var ao={Feature:function(t,n){Yr(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,u=e.length;u>++r;)Yr(e[r].geometry,n)}},oo={Sphere:function(t,n){n.sphere()},Point:function(t,n){var e=t.coordinates;n.point(e[0],e[1])},MultiPoint:function(t,n){for(var e,r=t.coordinates,u=-1,i=r.length;i>++u;)e=r[u],n.point(e[0],e[1])},LineString:function(t,n){Ur(t.coordinates,n,0)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,u=e.length;u>++r;)Ur(e[r],n,0)},Polygon:function(t,n){Ir(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,u=e.length;u>++r;)Ir(e[r],n)},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,u=e.length;u>++r;)Yr(e[r],n)}};Ci.geo.albersUsa=function(){function t(t){return n(t)(t)}function n(t){var n=t[0],a=t[1];return a>50?r:-140>n?u:21>a?i:e}var e=Ci.geo.albers(),r=Ci.geo.albers().rotate([160,0]).center([0,60]).parallels([55,65]),u=Ci.geo.albers().rotate([160,0]).center([0,20]).parallels([8,18]),i=Ci.geo.albers().rotate([60,0]).center([0,10]).parallels([8,18]);return t.scale=function(n){return arguments.length?(e.scale(n),r.scale(.6*n),u.scale(n),i.scale(1.5*n),t.translate(e.translate())):e.scale()},t.translate=function(n){if(!arguments.length)return e.translate();var a=e.scale(),o=n[0],c=n[1];return e.translate(n),r.translate([o-.4*a,c+.17*a]),u.translate([o-.19*a,c+.2*a]),i.translate([o+.58*a,c+.43*a]),t},t.scale(e.scale())},(Ci.geo.albers=function(){var t=29.5*zi,n=45.5*zi,e=Hu(Qr),r=e(t,n);return r.parallels=function(r){return arguments.length?e(t=r[0]*zi,n=r[1]*zi):[t*Di,n*Di]},r.rotate([98,0]).center([0,38]).scale(1e3)}).raw=Qr;var co=Uu(function(t){return Math.sqrt(2/(1+t))},function(t){return 2*Math.asin(t/2)});(Ci.geo.azimuthalEqualArea=function(){return Fu(co)}).raw=co;var lo=Uu(function(t){var n=Math.acos(t);return n&&n/Math.sin(n)},a);(Ci.geo.azimuthalEquidistant=function(){return Fu(lo)}).raw=lo,Ci.geo.bounds=tu(a),Ci.geo.centroid=function(t){fo=so=ho=go=po=0,Ci.geo.stream(t,mo);var n;return so&&Math.abs(n=Math.sqrt(ho*ho+go*go+po*po))>qi?[Math.atan2(go,ho)*Di,Math.asin(Math.max(-1,Math.min(1,po/n)))*Di]:void 0};var fo,so,ho,go,po,mo={sphere:function(){2>fo&&(fo=2,so=ho=go=po=0)},point:nu,lineStart:ru,lineEnd:uu,polygonStart:function(){2>fo&&(fo=2,so=ho=go=po=0),mo.lineStart=eu},polygonEnd:function(){mo.lineStart=ru}};Ci.geo.circle=function(){function t(){var t="function"==typeof r?r.apply(this,arguments):r,n=Pu(-t[0]*zi,-t[1]*zi,0).invert,u=[];return e(null,null,1,{point:function(t,e){u.push(t=n(t,e)),t[0]*=Di,t[1]*=Di}}),{type:"Polygon",coordinates:[u]}}var n,e,r=[0,0],u=6;return t.origin=function(n){return arguments.length?(r=n,t):r},t.angle=function(r){return arguments.length?(e=iu((n=+r)*zi,u*zi),t):n},t.precision=function(r){return arguments.length?(e=iu(n*zi,(u=+r)*zi),t):u},t.angle(90)};var vo=ou(o,pu,mu);(Ci.geo.equirectangular=function(){return Fu(Mu).scale(250/Ti)}).raw=Mu.invert=Mu;var yo=Uu(function(t){return 1/t},Math.atan);(Ci.geo.gnomonic=function(){return Fu(yo)}).raw=yo,Ci.geo.graticule=function(){function t(){return{type:"MultiLineString",coordinates:n()}}function n(){return Ci.range(Math.ceil(r/c)*c,e,c).map(a).concat(Ci.range(Math.ceil(i/l)*l,u,l).map(o))}var e,r,u,i,a,o,c=22.5,l=c,f=2.5;return t.lines=function(){return n().map(function(t){return{type:"LineString",coordinates:t}})},t.outline=function(){return{type:"Polygon",coordinates:[a(r).concat(o(u).slice(1),a(e).reverse().slice(1),o(i).reverse().slice(1))]}},t.extent=function(n){return arguments.length?(r=+n[0][0],e=+n[1][0],i=+n[0][1],u=+n[1][1],r>e&&(n=r,r=e,e=n),i>u&&(n=i,i=u,u=n),t.precision(f)):[[r,i],[e,u]]},t.step=function(n){return arguments.length?(c=+n[0],l=+n[1],t):[c,l]},t.precision=function(n){return arguments.length?(f=+n,a=bu(i,u,f),o=xu(r,e,f),t):f},t.extent([[-180+qi,-90+qi],[180-qi,90-qi]])},Ci.geo.interpolate=function(t,n){return wu(t[0]*zi,t[1]*zi,n[0]*zi,n[1]*zi)},Ci.geo.greatArc=function(){function e(){for(var t=r||a.apply(this,arguments),n=u||o.apply(this,arguments),e=i||Ci.geo.interpolate(t,n),l=0,f=c/e.distance,s=[t];1>(l+=f);)s.push(e(l));return s.push(n),{type:"LineString",coordinates:s}}var r,u,i,a=n,o=t,c=6*zi;return e.distance=function(){return(i||Ci.geo.interpolate(r||a.apply(this,arguments),u||o.apply(this,arguments))).distance},e.source=function(t){return arguments.length?(a=t,r="function"==typeof t?null:t,i=r&&u?Ci.geo.interpolate(r,u):null,e):a},e.target=function(t){return arguments.length?(o=t,u="function"==typeof t?null:t,i=r&&u?Ci.geo.interpolate(r,u):null,e):o},e.precision=function(t){return arguments.length?(c=t*zi,e):c/zi},e},Su.invert=function(t,n){return[2*Ti*t,2*Math.atan(Math.exp(2*Ti*n))-Ti/2]},(Ci.geo.mercator=function(){return Fu(Su).scale(500)}).raw=Su;var Mo=Uu(function(){return 1},Math.asin);(Ci.geo.orthographic=function(){return Fu(Mo)}).raw=Mo,Ci.geo.path=function(){function t(t){return t&&Ci.geo.stream(t,r(u.pointRadius("function"==typeof i?+i.apply(this,arguments):i))),u.result()}var n,e,r,u,i=4.5;return t.area=function(t){return bo=0,Ci.geo.stream(t,r(_o)),bo},t.centroid=function(t){return fo=ho=go=po=0,Ci.geo.stream(t,r(wo)),po?[ho/po,go/po]:void 0},t.bounds=function(t){return tu(r)(t)},t.projection=function(e){return arguments.length?(r=(n=e)?e.stream||Eu(e):a,t):n},t.context=function(n){return arguments.length?(u=null==(e=n)?new Au:new Nu(n),t):e},t.pointRadius=function(n){return arguments.length?(i="function"==typeof n?n:+n,t):i},t.projection(Ci.geo.albersUsa()).context(null)};var bo,xo,_o={point:Pn,lineStart:Pn,lineEnd:Pn,polygonStart:function(){xo=0,_o.lineStart=Tu},polygonEnd:function(){_o.lineStart=_o.lineEnd=_o.point=Pn,bo+=Math.abs(xo/2)}},wo={point:qu,lineStart:Cu,lineEnd:zu,polygonStart:function(){wo.lineStart=Du},polygonEnd:function(){wo.point=qu,wo.lineStart=Cu,wo.lineEnd=zu}};Ci.geo.area=function(t){return So=0,Ci.geo.stream(t,Ao),So};var So,ko,Eo,Ao={sphere:function(){So+=4*Ti},point:Pn,lineStart:Pn,lineEnd:Pn,polygonStart:function(){ko=1,Eo=0,Ao.lineStart=Lu},polygonEnd:function(){var t=2*Math.atan2(Eo,ko);So+=0>t?4*Ti+t:t,Ao.lineStart=Ao.lineEnd=Ao.point=Pn}};Ci.geo.projection=Fu,Ci.geo.projectionMutator=Hu;var No=Uu(function(t){return 1/(1+t)},function(t){return 2*Math.atan(t)});(Ci.geo.stereographic=function(){return Fu(No)}).raw=No,Ci.geom={},Ci.geom.hull=function(t){if(3>t.length)return[];var n,e,r,u,i,a,o,c,l,f,s=t.length,h=s-1,g=[],p=[],d=0;for(n=1;s>n;++n)t[n][1]<t[d][1]?d=n:t[n][1]==t[d][1]&&(d=t[n][0]<t[d][0]?n:d);for(n=0;s>n;++n)n!==d&&(u=t[n][1]-t[d][1],r=t[n][0]-t[d][0],g.push({angle:Math.atan2(u,r),index:n}));for(g.sort(function(t,n){return t.angle-n.angle}),l=g[0].angle,c=g[0].index,o=0,n=1;h>n;++n)e=g[n].index,l==g[n].angle?(r=t[c][0]-t[d][0],u=t[c][1]-t[d][1],i=t[e][0]-t[d][0],a=t[e][1]-t[d][1],r*r+u*u>=i*i+a*a?g[n].index=-1:(g[o].index=-1,l=g[n].angle,o=n,c=e)):(l=g[n].angle,o=n,c=e);for(p.push(d),n=0,e=0;2>n;++e)-1!==g[e].index&&(p.push(g[e].index),n++);for(f=p.length;h>e;++e)if(-1!==g[e].index){for(;!Iu(p[f-2],p[f-1],g[e].index,t);)--f;p[f++]=g[e].index}var m=[];for(n=0;f>n;++n)m.push(t[p[n]]);return m},Ci.geom.polygon=function(t){return t.area=function(){for(var n=0,e=t.length,r=t[e-1][1]*t[0][0]-t[e-1][0]*t[0][1];e>++n;)r+=t[n-1][1]*t[n][0]-t[n-1][0]*t[n][1];return.5*r},t.centroid=function(n){var e,r,u=-1,i=t.length,a=0,o=0,c=t[i-1];for(arguments.length||(n=-1/(6*t.area()));i>++u;)e=c,c=t[u],r=e[0]*c[1]-c[0]*e[1],a+=(e[0]+c[0])*r,o+=(e[1]+c[1])*r;return[a*n,o*n]},t.clip=function(n){for(var e,r,u,i,a,o,c=-1,l=t.length,f=t[l-1];l>++c;){for(e=n.slice(),n.length=0,i=t[c],a=e[(u=e.length)-1],r=-1;u>++r;)o=e[r],Vu(o,f,i)?(Vu(a,f,i)||n.push(Zu(a,o,f,i)),n.push(o)):Vu(a,f,i)&&n.push(Zu(a,o,f,i)),a=o;f=i}return n},t},Ci.geom.voronoi=function(t){var n=t.map(function(){return[]}),e=1e6;return Xu(t,function(t){var r,u,i,a,o,c;1===t.a&&t.b>=0?(r=t.ep.r,u=t.ep.l):(r=t.ep.l,u=t.ep.r),1===t.a?(o=r?r.y:-e,i=t.c-t.b*o,c=u?u.y:e,a=t.c-t.b*c):(i=r?r.x:-e,o=t.c-t.a*i,a=u?u.x:e,c=t.c-t.a*a);var l=[i,o],f=[a,c];n[t.region.l.index].push(l,f),n[t.region.r.index].push(l,f)}),n=n.map(function(n,e){var r=t[e][0],u=t[e][1],i=n.map(function(t){return Math.atan2(t[0]-r,t[1]-u)}),a=Ci.range(n.length).sort(function(t,n){return i[t]-i[n]});return a.filter(function(t,n){return!n||i[t]-i[a[n-1]]>qi}).map(function(t){return n[t]})}),n.forEach(function(n,r){var u=n.length;if(!u)return n.push([-e,-e],[-e,e],[e,e],[e,-e]);if(!(u>2)){var i=t[r],a=n[0],o=n[1],c=i[0],l=i[1],f=a[0],s=a[1],h=o[0],g=o[1],p=Math.abs(h-f),d=g-s;if(qi>Math.abs(d)){var m=s>l?-e:e;n.push([-e,m],[e,m])}else if(qi>p){var v=f>c?-e:e;n.push([v,-e],[v,e])}else{var m=(f-c)*(g-s)>(h-f)*(s-l)?e:-e,y=Math.abs(d)-p;qi>Math.abs(y)?n.push([0>d?m:-m,m]):(y>0&&(m*=-1),n.push([-e,m],[e,m]))}}}),n};var To={l:"r",r:"l"};Ci.geom.delaunay=function(t){var n=t.map(function(){return[]}),e=[];return Xu(t,function(e){n[e.region.l.index].push(t[e.region.r.index])}),n.forEach(function(n,r){var u=t[r],i=u[0],a=u[1];n.forEach(function(t){t.angle=Math.atan2(t[0]-i,t[1]-a)}),n.sort(function(t,n){return t.angle-n.angle});for(var o=0,c=n.length-1;c>o;o++)e.push([u,n[o],n[o+1]])}),e},Ci.geom.quadtree=function(t,n,e,r,u){function i(t,n,e,r,u,i){if(!isNaN(n.x)&&!isNaN(n.y))if(t.leaf){var o=t.point;o?.01>Math.abs(o.x-n.x)+Math.abs(o.y-n.y)?a(t,n,e,r,u,i):(t.point=null,a(t,o,e,r,u,i),a(t,n,e,r,u,i)):t.point=n}else a(t,n,e,r,u,i)}function a(t,n,e,r,u,a){var o=.5*(e+u),c=.5*(r+a),l=n.x>=o,f=n.y>=c,s=(f<<1)+l;t.leaf=!1,t=t.nodes[s]||(t.nodes[s]=Bu()),l?e=o:u=o,f?r=c:a=c,i(t,n,e,r,u,a)}var o,c=-1,l=t.length;if(5>arguments.length)if(3===arguments.length)u=e,r=n,e=n=0;else for(n=e=1/0,r=u=-1/0;l>++c;)o=t[c],n>o.x&&(n=o.x),e>o.y&&(e=o.y),o.x>r&&(r=o.x),o.y>u&&(u=o.y);var f=r-n,s=u-e;f>s?u=e+f:r=n+s;var h=Bu();return h.add=function(t){i(h,t,n,e,r,u)},h.visit=function(t){$u(t,h,n,e,r,u)},t.forEach(h.add),h},Ci.time={};var qo=Date,Co=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];Ju.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){zo.setUTCDate.apply(this._,arguments)},setDay:function(){zo.setUTCDay.apply(this._,arguments)},setFullYear:function(){zo.setUTCFullYear.apply(this._,arguments)},setHours:function(){zo.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){zo.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){zo.setUTCMinutes.apply(this._,arguments)},setMonth:function(){zo.setUTCMonth.apply(this._,arguments)},setSeconds:function(){zo.setUTCSeconds.apply(this._,arguments)},setTime:function(){zo.setTime.apply(this._,arguments)}};var zo=Date.prototype,Do="%a %b %e %X %Y",Lo="%m/%d/%Y",Fo="%H:%M:%S",Ho=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],jo=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],Po=["January","February","March","April","May","June","July","August","September","October","November","December"],Ro=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];Ci.time.format=function(t){function n(n){for(var r,u,i,a=[],o=-1,c=0;e>++o;)37===t.charCodeAt(o)&&(a.push(t.substring(c,o)),null!=(u=Xo[r=t.charAt(++o)])&&(r=t.charAt(++o)),(i=Bo[r])&&(r=i(n,null==u?"e"===r?" ":"0":u)),a.push(r),c=o+1);return a.push(t.substring(c,o)),a.join("")}var e=t.length;return n.parse=function(n){var e={y:1900,m:0,d:1,H:0,M:0,S:0,L:0},r=Gu(e,t,n,0);if(r!=n.length)return null;"p"in e&&(e.H=e.H%12+12*e.p);var u=new qo;return u.setFullYear(e.y,e.m,e.d),u.setHours(e.H,e.M,e.S,e.L),u},n.toString=function(){return t},n};var Oo=Ku(Ho),Yo=Ku(jo),Uo=Ku(Po),Io=Wu(Po),Vo=Ku(Ro),Zo=Wu(Ro),Xo={"-":"",_:" ",0:"0"},Bo={a:function(t){return jo[t.getDay()]},A:function(t){return Ho[t.getDay()]},b:function(t){return Ro[t.getMonth()]},B:function(t){return Po[t.getMonth()]},c:Ci.time.format(Do),d:function(t,n){return Qu(t.getDate(),n,2)},e:function(t,n){return Qu(t.getDate(),n,2)},H:function(t,n){return Qu(t.getHours(),n,2)},I:function(t,n){return Qu(t.getHours()%12||12,n,2)},j:function(t,n){return Qu(1+Ci.time.dayOfYear(t),n,3)},L:function(t,n){return Qu(t.getMilliseconds(),n,3)},m:function(t,n){return Qu(t.getMonth()+1,n,2)},M:function(t,n){return Qu(t.getMinutes(),n,2)},p:function(t){return t.getHours()>=12?"PM":"AM"},S:function(t,n){return Qu(t.getSeconds(),n,2)},U:function(t,n){return Qu(Ci.time.sundayOfYear(t),n,2)},w:function(t){return t.getDay()},W:function(t,n){return Qu(Ci.time.mondayOfYear(t),n,2)},x:Ci.time.format(Lo),X:Ci.time.format(Fo),y:function(t,n){return Qu(t.getFullYear()%100,n,2)},Y:function(t,n){return Qu(t.getFullYear()%1e4,n,4)},Z:vi,"%":function(){return"%"}},$o={a:ti,A:ni,b:ei,B:ri,c:ui,d:si,e:si,H:hi,I:hi,L:di,m:fi,M:gi,p:mi,S:pi,x:ii,X:ai,y:ci,Y:oi},Jo=/^\s*\d+/,Go=Ci.map({am:0,pm:1});Ci.time.format.utc=function(t){function n(t){try{qo=Ju;var n=new qo;return n._=t,e(n)}finally{qo=Date}}var e=Ci.time.format(t);return n.parse=function(t){try{qo=Ju;var n=e.parse(t);return n&&n._}finally{qo=Date}},n.toString=e.toString,n};var Ko=Ci.time.format.utc("%Y-%m-%dT%H:%M:%S.%LZ");Ci.time.format.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?yi:Ko,yi.parse=function(t){var n=new Date(t);return isNaN(n)?null:n},yi.toString=Ko.toString,Ci.time.second=Mi(function(t){return new qo(1e3*Math.floor(t/1e3))},function(t,n){t.setTime(t.getTime()+1e3*Math.floor(n))},function(t){return t.getSeconds()}),Ci.time.seconds=Ci.time.second.range,Ci.time.seconds.utc=Ci.time.second.utc.range,Ci.time.minute=Mi(function(t){return new qo(6e4*Math.floor(t/6e4))},function(t,n){t.setTime(t.getTime()+6e4*Math.floor(n))},function(t){return t.getMinutes()}),Ci.time.minutes=Ci.time.minute.range,Ci.time.minutes.utc=Ci.time.minute.utc.range,Ci.time.hour=Mi(function(t){var n=t.getTimezoneOffset()/60;return new qo(36e5*(Math.floor(t/36e5-n)+n))},function(t,n){t.setTime(t.getTime()+36e5*Math.floor(n))},function(t){return t.getHours()}),Ci.time.hours=Ci.time.hour.range,Ci.time.hours.utc=Ci.time.hour.utc.range,Ci.time.day=Mi(function(t){var n=new qo(1970,0);return n.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),n},function(t,n){t.setDate(t.getDate()+n)},function(t){return t.getDate()-1}),Ci.time.days=Ci.time.day.range,Ci.time.days.utc=Ci.time.day.utc.range,Ci.time.dayOfYear=function(t){var n=Ci.time.year(t);return Math.floor((t-n-6e4*(t.getTimezoneOffset()-n.getTimezoneOffset()))/864e5)},Co.forEach(function(t,n){t=t.toLowerCase(),n=7-n;var e=Ci.time[t]=Mi(function(t){return(t=Ci.time.day(t)).setDate(t.getDate()-(t.getDay()+n)%7),t},function(t,n){t.setDate(t.getDate()+7*Math.floor(n))},function(t){var e=Ci.time.year(t).getDay();return Math.floor((Ci.time.dayOfYear(t)+(e+n)%7)/7)-(e!==n)});Ci.time[t+"s"]=e.range,Ci.time[t+"s"].utc=e.utc.range,Ci.time[t+"OfYear"]=function(t){var e=Ci.time.year(t).getDay();return Math.floor((Ci.time.dayOfYear(t)+(e+n)%7)/7)}}),Ci.time.week=Ci.time.sunday,Ci.time.weeks=Ci.time.sunday.range,Ci.time.weeks.utc=Ci.time.sunday.utc.range,Ci.time.weekOfYear=Ci.time.sundayOfYear,Ci.time.month=Mi(function(t){return t=Ci.time.day(t),t.setDate(1),t},function(t,n){t.setMonth(t.getMonth()+n)},function(t){return t.getMonth()}),Ci.time.months=Ci.time.month.range,Ci.time.months.utc=Ci.time.month.utc.range,Ci.time.year=Mi(function(t){return t=Ci.time.day(t),t.setMonth(0,1),t},function(t,n){t.setFullYear(t.getFullYear()+n)},function(t){return t.getFullYear()}),Ci.time.years=Ci.time.year.range,Ci.time.years.utc=Ci.time.year.utc.range;var Wo=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Qo=[[Ci.time.second,1],[Ci.time.second,5],[Ci.time.second,15],[Ci.time.second,30],[Ci.time.minute,1],[Ci.time.minute,5],[Ci.time.minute,15],[Ci.time.minute,30],[Ci.time.hour,1],[Ci.time.hour,3],[Ci.time.hour,6],[Ci.time.hour,12],[Ci.time.day,1],[Ci.time.day,2],[Ci.time.week,1],[Ci.time.month,1],[Ci.time.month,3],[Ci.time.year,1]],tc=[[Ci.time.format("%Y"),o],[Ci.time.format("%B"),function(t){return t.getMonth()}],[Ci.time.format("%b %d"),function(t){return 1!=t.getDate()}],[Ci.time.format("%a %d"),function(t){return t.getDay()&&1!=t.getDate()}],[Ci.time.format("%I %p"),function(t){return t.getHours()}],[Ci.time.format("%I:%M"),function(t){return t.getMinutes()}],[Ci.time.format(":%S"),function(t){return t.getSeconds()}],[Ci.time.format(".%L"),function(t){return t.getMilliseconds()}]],nc=Ci.scale.linear(),ec=Si(tc);Qo.year=function(t,n){return nc.domain(t.map(Ei)).ticks(n).map(ki)},Ci.time.scale=function(){return xi(Ci.scale.linear(),Qo,ec)};var rc=Qo.map(function(t){return[t[0].utc,t[1]]}),uc=[[Ci.time.format.utc("%Y"),o],[Ci.time.format.utc("%B"),function(t){return t.getUTCMonth()}],[Ci.time.format.utc("%b %d"),function(t){return 1!=t.getUTCDate()}],[Ci.time.format.utc("%a %d"),function(t){return t.getUTCDay()&&1!=t.getUTCDate()}],[Ci.time.format.utc("%I %p"),function(t){return t.getUTCHours()}],[Ci.time.format.utc("%I:%M"),function(t){return t.getUTCMinutes()}],[Ci.time.format.utc(":%S"),function(t){return t.getUTCSeconds()}],[Ci.time.format.utc(".%L"),function(t){return t.getUTCMilliseconds()}]],ic=Si(uc);return rc.year=function(t,n){return nc.domain(t.map(Ni)).ticks(n).map(Ai)},Ci.time.scale.utc=function(){return xi(Ci.scale.linear(),rc,ic)},Ci}();
\ No newline at end of file
diff --git a/sample/ONS2014demo/web/d3/topojson.v0.min.js b/sample/ONS2014demo/web/d3/topojson.v0.min.js
new file mode 100644
index 0000000..c6aa3cd
--- /dev/null
+++ b/sample/ONS2014demo/web/d3/topojson.v0.min.js
@@ -0,0 +1 @@
+topojson=function(){function t(t,e){function n(e){var n=t.arcs[e],r=n[0],o=[0,0];return n.forEach(function(t){o[0]+=t[0],o[1]+=t[1]}),[r,o]}var r={},o={},a={};e.forEach(function(t){var e=n(t);(r[e[0]]||(r[e[0]]=[])).push(t),(r[e[1]]||(r[e[1]]=[])).push(~t)}),e.forEach(function(t){var e,r,i=n(t),c=i[0],s=i[1];if(e=a[c])if(delete a[e.end],e.push(t),e.end=s,r=o[s]){delete o[r.start];var u=r===e?e:e.concat(r);o[u.start=e.start]=a[u.end=r.end]=u}else if(r=a[s]){delete o[r.start],delete a[r.end];var u=e.concat(r.map(function(t){return~t}).reverse());o[u.start=e.start]=a[u.end=r.start]=u}else o[e.start]=a[e.end]=e;else if(e=o[s])if(delete o[e.start],e.unshift(t),e.start=c,r=a[c]){delete a[r.end];var f=r===e?e:r.concat(e);o[f.start=r.start]=a[f.end=e.end]=f}else if(r=o[c]){delete o[r.start],delete a[r.end];var f=r.map(function(t){return~t}).reverse().concat(e);o[f.start=r.end]=a[f.end=e.end]=f}else o[e.start]=a[e.end]=e;else if(e=o[c])if(delete o[e.start],e.unshift(~t),e.start=s,r=a[s]){delete a[r.end];var f=r===e?e:r.concat(e);o[f.start=r.start]=a[f.end=e.end]=f}else if(r=o[s]){delete o[r.start],delete a[r.end];var f=r.map(function(t){return~t}).reverse().concat(e);o[f.start=r.end]=a[f.end=e.end]=f}else o[e.start]=a[e.end]=e;else if(e=a[s])if(delete a[e.end],e.push(~t),e.end=c,r=a[c]){delete o[r.start];var u=r===e?e:e.concat(r);o[u.start=e.start]=a[u.end=r.end]=u}else if(r=o[c]){delete o[r.start],delete a[r.end];var u=e.concat(r.map(function(t){return~t}).reverse());o[u.start=e.start]=a[u.end=r.start]=u}else o[e.start]=a[e.end]=e;else e=[t],o[e.start=c]=a[e.end=s]=e});var i=[];for(var c in a)i.push(a[c]);return i}function e(e,r,o){function a(t){0>t&&(t=~t),(l[t]||(l[t]=[])).push(f)}function i(t){t.forEach(a)}function c(t){t.forEach(i)}function s(t){"GeometryCollection"===t.type?t.geometries.forEach(s):t.type in d&&(f=t,d[t.type](t.arcs))}var u=[];if(arguments.length>1){var f,l=[],d={LineString:i,MultiLineString:c,Polygon:c,MultiPolygon:function(t){t.forEach(c)}};s(r),l.forEach(3>arguments.length?function(t,e){u.push([e])}:function(t,e){o(t[0],t[t.length-1])&&u.push([e])})}else for(var p=0,h=e.arcs.length;h>p;++p)u.push([p]);return n(e,{type:"MultiLineString",arcs:t(e,u)})}function n(t,e){function n(t,e){e.length&&e.pop();for(var n,o=h[0>t?~t:t],a=0,i=o.length,c=0,s=0;i>a;++a)e.push([(c+=(n=o[a])[0])*f+d,(s+=n[1])*l+p]);0>t&&r(e,i)}function o(t){return[t[0]*f+d,t[1]*l+p]}function a(t){for(var e=[],r=0,o=t.length;o>r;++r)n(t[r],e);return 2>e.length&&e.push(e[0]),e}function i(t){for(var e=a(t);4>e.length;)e.push(e[0]);return e}function c(t){return t.map(i)}function s(t){var e=t.type,n="GeometryCollection"===e?{type:e,geometries:t.geometries.map(s)}:e in v?{type:e,coordinates:v[e](t)}:{type:null};return"id"in t&&(n.id=t.id),"properties"in t&&(n.properties=t.properties),n}var u=t.transform,f=u.scale[0],l=u.scale[1],d=u.translate[0],p=u.translate[1],h=t.arcs,v={Point:function(t){return o(t.coordinates)},MultiPoint:function(t){return t.coordinates.map(o)},LineString:function(t){return a(t.arcs)},MultiLineString:function(t){return t.arcs.map(a)},Polygon:function(t){return c(t.arcs)},MultiPolygon:function(t){return t.arcs.map(c)}};return s(e)}function r(t,e){for(var n,r=t.length,o=r-e;--r>o;)n=t[o],t[o++]=t[r],t[r]=n}function o(t,e){for(var n=0,r=t.length;r>n;){var o=n+r>>>1;e>t[o]?n=o+1:r=o}return n}function a(t){function e(t,e){t.forEach(function(t){0>t&&(t=~t);var n=a[t]||(a[t]=[]);n[e]||(n.forEach(function(t){var n,r;r=o(n=i[e],t),n[r]!==t&&n.splice(r,0,t),r=o(n=i[t],e),n[r]!==e&&n.splice(r,0,e)}),n[e]=e)})}function n(t,n){t.forEach(function(t){e(t,n)})}function r(t,e){"GeometryCollection"===t.type?t.geometries.forEach(function(t){r(t,e)}):t.type in c&&c[t.type](t.arcs,e)}var a=[],i=t.map(function(){return[]}),c={LineString:e,MultiLineString:n,Polygon:n,MultiPolygon:function(t,e){t.forEach(function(t){n(t,e)})}};return t.forEach(r),i}return{version:"0.0.32",mesh:e,object:n,neighbors:a}}();
\ No newline at end of file
diff --git a/sample/ONS2014demo/web/data/configuration.json b/sample/ONS2014demo/web/data/configuration.json
new file mode 100644
index 0000000..91490e4
--- /dev/null
+++ b/sample/ONS2014demo/web/data/configuration.json
@@ -0,0 +1,79 @@
+{
+	"core": [
+		"00:00:00:08:a2:08:f9:01",
+		"00:00:00:00:ba:5e:ba:11",
+		"00:00:20:4e:7f:51:8a:35",
+		"00:00:00:00:00:00:ba:12",
+		"00:00:00:00:ba:5e:ba:13",
+		"00:00:00:16:97:08:9a:46"
+	],
+	"aggregation": [
+		"00:00:00:00:00:00:01:01",
+		"00:00:00:00:00:00:02:01",
+		"00:00:00:00:00:00:03:01",
+		"00:00:00:00:00:00:04:01",
+		"00:00:00:00:00:00:05:01",
+		"00:00:00:00:00:00:06:01",
+		"00:00:00:00:00:00:07:01",
+		"00:00:00:00:00:00:08:01"
+	],
+	"association": {
+		"00:00:00:08:a2:08:f9:01": [
+			"00:00:00:00:00:00:03:01"
+		],
+		"00:00:00:00:ba:5e:ba:11": [
+			"00:00:00:00:00:00:02:01"
+		],
+		"00:00:20:4e:7f:51:8a:35": [
+			"00:00:00:00:00:00:07:01"
+		],
+		"00:00:00:00:00:00:ba:12": [
+			"00:00:00:00:00:00:04:01",
+			"00:00:00:00:00:00:05:01"
+		],
+		"00:00:00:00:ba:5e:ba:13": [
+			"00:00:00:00:00:00:06:01"
+		],
+		"00:00:00:16:97:08:9a:46": [
+			"00:00:00:00:00:00:08:01"
+		]
+	},
+	"geo": {
+		"00:00:00:08:a2:08:f9:01": {
+			"lat": 41.891033,
+			"lng": -87.628326,
+			"label": "CHI",
+			"fanOutAngle": 180
+		},
+		"00:00:00:00:ba:5e:ba:11": {
+			"lat": 47.611024,
+			"lng": -122.33242,
+			"label": "SEA",
+			"fanOutAngle": 270
+		},
+		"00:00:20:4e:7f:51:8a:35": {
+			"lat": 33.758599,
+			"lng": -84.387360,
+			"label": "ATL",
+			"fanOutAngle": 0
+		},
+		"00:00:00:00:00:00:ba:12": {
+			"lat": 41.225925,
+			"lng": -74.00528,
+			"label": "NYC",
+			"fanOutAngle": 150
+		},
+		"00:00:00:00:ba:5e:ba:13": {
+			"lat": 37.901187,
+			"lng": -76.037163,
+			"label": "DC",
+			"fanOutAngle": 45
+		},
+		"00:00:00:16:97:08:9a:46": {
+			"lat": 34.102708,
+			"lng": -118.238983,
+			"label": "LA",
+			"fanOutAngle": 315
+		}
+	}
+}
\ No newline at end of file
diff --git a/sample/ONS2014demo/web/data/configuration.json.dev b/sample/ONS2014demo/web/data/configuration.json.dev
new file mode 100644
index 0000000..829fa11
--- /dev/null
+++ b/sample/ONS2014demo/web/data/configuration.json.dev
@@ -0,0 +1,78 @@
+{
+	"core": [
+		"00:00:00:00:00:00:01:01",
+		"00:00:00:00:00:00:01:02",
+		"00:00:00:00:00:00:01:03",
+		"00:00:00:00:00:00:01:04",
+		"00:00:00:00:00:00:01:05",
+		"00:00:00:00:00:00:01:06"
+	],
+	"aggregation": [
+		"00:00:00:00:00:00:02:01",
+		"00:00:00:00:00:00:03:01",
+		"00:00:00:00:00:00:04:01",
+		"00:00:00:00:00:00:05:01",
+		"00:00:00:00:00:00:06:01",
+		"00:00:00:00:00:00:07:01",
+		"00:00:00:00:00:00:08:01"
+	],
+	"association": {
+		"00:00:00:00:00:00:01:01": [
+			"00:00:00:00:00:00:08:01"
+		],
+		"00:00:00:00:00:00:01:02": [
+			"00:00:00:00:00:00:02:01"
+		],
+		"00:00:00:00:00:00:01:03": [
+			"00:00:00:00:00:00:03:01"
+		],
+		"00:00:00:00:00:00:01:04": [
+			"00:00:00:00:00:00:04:01",
+			"00:00:00:00:00:00:05:01"
+		],
+		"00:00:00:00:00:00:01:05": [
+			"00:00:00:00:00:00:06:01"
+		],
+		"00:00:00:00:00:00:01:06": [
+			"00:00:00:00:00:00:07:01"
+		]
+	},
+	"geo": {
+		"00:00:00:00:00:00:01:03": {
+			"lat": 33.758599,
+			"lng": -84.387360,
+			"label": "ATL",
+			"fanOutAngle": 0
+		},
+		"00:00:00:00:00:00:01:02": {
+			"lat": 37.901187,
+			"lng": -76.037163,
+			"label": "DC",
+			"fanOutAngle": 45
+		},
+		"00:00:00:00:00:00:01:06": {
+			"lat": 41.891033,
+			"lng": -87.628326,
+			"label": "CHI",
+			"fanOutAngle": 180
+		},
+		"00:00:00:00:00:00:01:04": {
+			"lat": 34.102708,
+			"lng": -118.238983,
+			"label": "LA",
+			"fanOutAngle": 315
+		},
+		"00:00:00:00:00:00:01:05": {
+			"lat": 47.611024,
+			"lng": -122.33242,
+			"label": "SEA",
+			"fanOutAngle": 270
+		},
+		"00:00:00:00:00:00:01:01": {
+			"lat": 41.225925,
+			"lng": -74.00528,
+			"label": "NYC",
+			"fanOutAngle": 135
+		}
+	}
+}
diff --git a/sample/ONS2014demo/web/data/configuration.json.devA b/sample/ONS2014demo/web/data/configuration.json.devA
new file mode 100644
index 0000000..f8a6e63
--- /dev/null
+++ b/sample/ONS2014demo/web/data/configuration.json.devA
@@ -0,0 +1,78 @@
+{
+	"core": [
+		"00:00:00:08:a2:08:f9:01",
+		"00:00:00:00:ba:5e:ba:11",
+		"00:00:20:4e:7f:51:8a:35",
+		"00:00:00:00:00:00:ba:12",
+		"00:00:00:00:ba:5e:ba:13",
+		"00:00:00:16:97:08:9a:46"
+	],
+	"aggregation": [
+		"00:00:00:00:00:00:02:01",
+		"00:00:00:00:00:00:03:01",
+		"00:00:00:00:00:00:04:01",
+		"00:00:00:00:00:00:05:01",
+		"00:00:00:00:00:00:06:01",
+		"00:00:00:00:00:00:07:01",
+		"00:00:00:00:00:00:08:01"
+	],
+	"association": {
+		"00:00:20:4e:7f:51:8a:35": [
+			"00:00:00:00:00:00:07:01"
+		],
+		"00:00:00:00:ba:5e:ba:13": [
+			"00:00:00:00:00:00:06:01"
+		],
+		"00:00:00:08:a2:08:f9:01": [
+			"00:00:00:00:00:00:03:01"
+		],
+		"00:00:00:00:00:00:ba:12": [
+			"00:00:00:00:00:00:04:01",
+			"00:00:00:00:00:00:05:01"
+		],
+		"00:00:00:00:ba:5e:ba:11": [
+			"00:00:00:00:00:00:02:01"
+		],
+		"00:00:00:16:97:08:9a:46": [
+			"00:00:00:00:00:00:08:01"
+		]
+	},
+	"geo": {
+		"00:00:20:4e:7f:51:8a:35": {
+			"lat": 41.891033,
+			"lng": -87.628326,
+			"label": "CHI",
+			"fanOutAngle": 180
+		},
+		"00:00:00:00:ba:5e:ba:13": {
+			"lat": 47.611024,
+			"lng": -122.33242,
+			"label": "SEA",
+			"fanOutAngle": 270
+		},
+		"00:00:00:08:a2:08:f9:01": {
+			"lat": 33.758599,
+			"lng": -84.387360,
+			"label": "ATL",
+			"fanOutAngle": 5
+		},
+		"00:00:00:16:97:08:9a:46": {
+			"lat": 41.225925,
+			"lng": -74.00528,
+			"label": "NYC",
+			"fanOutAngle": 150
+		},
+		"00:00:00:00:ba:5e:ba:11": {
+			"lat": 37.901187,
+			"lng": -76.037163,
+			"label": "DC",
+			"fanOutAngle": 45
+		},
+		"00:00:00:00:00:00:ba:12": {
+			"lat": 34.102708,
+			"lng": -118.238983,
+			"label": "LA",
+			"fanOutAngle": 315
+		}
+	}
+}
diff --git a/sample/ONS2014demo/web/data/controllers.json b/sample/ONS2014demo/web/data/controllers.json
new file mode 100644
index 0000000..db2f5ad
--- /dev/null
+++ b/sample/ONS2014demo/web/data/controllers.json
@@ -0,0 +1,10 @@
+[
+	"onosgui1",
+	"onosgui2",
+	"onosgui3",
+	"onosgui4",
+	"onosgui5",
+	"onosgui6",
+	"onosgui7",
+	"onosgui8"
+]
\ No newline at end of file
diff --git a/sample/ONS2014demo/web/data/controllers.json.dev b/sample/ONS2014demo/web/data/controllers.json.dev
new file mode 100644
index 0000000..b936d96
--- /dev/null
+++ b/sample/ONS2014demo/web/data/controllers.json.dev
@@ -0,0 +1,10 @@
+[
+	"onosdev1",
+	"onosdev2",
+	"onosdev3",
+	"onosdev4",
+	"onosdev5",
+	"onosdev6",
+	"onosdev7",
+	"onosdev8"
+]
diff --git a/sample/ONS2014demo/web/data/wm_core_topology_links_json.json b/sample/ONS2014demo/web/data/wm_core_topology_links_json.json
new file mode 100644
index 0000000..0a60d71
--- /dev/null
+++ b/sample/ONS2014demo/web/data/wm_core_topology_links_json.json
@@ -0,0 +1 @@
+[{"src-switch":"00:00:00:00:00:00:02:04","src-port":2,"dst-switch":"00:00:00:00:00:00:02:01","dst-port":4},{"src-switch":"00:00:00:00:00:00:06:01","src-port":12,"dst-switch":"00:00:00:00:00:00:06:0c","dst-port":2},{"src-switch":"00:00:00:00:00:00:06:01","src-port":22,"dst-switch":"00:00:00:00:00:00:06:16","dst-port":2},{"src-switch":"00:00:00:00:00:00:06:01","src-port":20,"dst-switch":"00:00:00:00:00:00:06:14","dst-port":2},{"src-switch":"00:00:00:00:00:00:06:01","src-port":6,"dst-switch":"00:00:00:00:00:00:06:06","dst-port":2},{"src-switch":"00:00:00:00:00:00:06:01","src-port":13,"dst-switch":"00:00:00:00:00:00:06:0d","dst-port":2},{"src-switch":"00:00:00:00:00:00:06:01","src-port":19,"dst-switch":"00:00:00:00:00:00:06:13","dst-port":2},{"src-switch":"00:00:00:00:00:00:06:01","src-port":5,"dst-switch":"00:00:00:00:00:00:06:05","dst-port":2},{"src-switch":"00:00:00:00:00:00:06:01","src-port":18,"dst-switch":"00:00:00:00:00:00:06:12","dst-port":2},{"src-switch":"00:00:00:00:00:00:06:01","src-port":25,"dst-switch":"00:00:00:00:00:00:06:19","dst-port":2},{"src-switch":"00:00:00:00:00:00:06:01","src-port":7,"dst-switch":"00:00:00:00:00:00:06:07","dst-port":2},{"src-switch":"00:00:00:00:00:00:06:01","src-port":26,"dst-switch":"00:00:00:00:ba:5e:ba:13","dst-port":4},{"src-switch":"00:00:00:00:00:00:06:01","src-port":8,"dst-switch":"00:00:00:00:00:00:06:08","dst-port":2},{"src-switch":"00:00:00:00:00:00:06:01","src-port":17,"dst-switch":"00:00:00:00:00:00:06:11","dst-port":2},{"src-switch":"00:00:00:00:00:00:06:01","src-port":2,"dst-switch":"00:00:00:00:00:00:06:02","dst-port":2},{"src-switch":"00:00:00:00:00:00:06:01","src-port":9,"dst-switch":"00:00:00:00:00:00:06:09","dst-port":2},{"src-switch":"00:00:00:00:00:00:06:01","src-port":10,"dst-switch":"00:00:00:00:00:00:06:0a","dst-port":2},{"src-switch":"00:00:00:00:00:00:06:01","src-port":23,"dst-switch":"00:00:00:00:00:00:06:17","dst-port":2},{"src-switch":"00:00:00:00:00:00:06:01","src-port":16,"dst-switch":"00:00:00:00:00:00:06:10","dst-port":2},{"src-switch":"00:00:00:00:00:00:06:01","src-port":15,"dst-switch":"00:00:00:00:00:00:06:0f","dst-port":2},{"src-switch":"00:00:00:00:00:00:06:01","src-port":24,"dst-switch":"00:00:00:00:00:00:06:18","dst-port":2},{"src-switch":"00:00:00:00:00:00:06:01","src-port":14,"dst-switch":"00:00:00:00:00:00:06:0e","dst-port":2},{"src-switch":"00:00:00:00:00:00:06:01","src-port":21,"dst-switch":"00:00:00:00:00:00:06:15","dst-port":2},{"src-switch":"00:00:00:00:00:00:06:01","src-port":3,"dst-switch":"00:00:00:00:00:00:06:03","dst-port":2},{"src-switch":"00:00:00:00:00:00:06:01","src-port":11,"dst-switch":"00:00:00:00:00:00:06:0b","dst-port":2},{"src-switch":"00:00:00:00:00:00:06:01","src-port":4,"dst-switch":"00:00:00:00:00:00:06:04","dst-port":2},{"src-switch":"00:00:00:00:00:00:06:0a","src-port":2,"dst-switch":"00:00:00:00:00:00:06:01","dst-port":10},{"src-switch":"00:00:00:00:00:00:04:18","src-port":2,"dst-switch":"00:00:00:00:00:00:04:01","dst-port":24},{"src-switch":"00:00:00:00:00:00:03:0b","src-port":2,"dst-switch":"00:00:00:00:00:00:03:01","dst-port":11},{"src-switch":"00:00:00:00:00:00:06:09","src-port":2,"dst-switch":"00:00:00:00:00:00:06:01","dst-port":9},{"src-switch":"00:00:00:00:00:00:04:04","src-port":2,"dst-switch":"00:00:00:00:00:00:04:01","dst-port":4},{"src-switch":"00:00:00:00:00:00:02:0b","src-port":2,"dst-switch":"00:00:00:00:00:00:02:01","dst-port":11},{"src-switch":"00:00:00:00:00:00:02:1d","src-port":2,"dst-switch":"00:00:00:00:00:00:02:01","dst-port":29},{"src-switch":"00:00:00:00:00:00:04:08","src-port":2,"dst-switch":"00:00:00:00:00:00:04:01","dst-port":8},{"src-switch":"00:00:00:00:00:00:02:06","src-port":2,"dst-switch":"00:00:00:00:00:00:02:01","dst-port":6},{"src-switch":"00:00:00:00:00:00:02:0a","src-port":2,"dst-switch":"00:00:00:00:00:00:02:01","dst-port":10},{"src-switch":"00:00:00:00:00:00:02:10","src-port":2,"dst-switch":"00:00:00:00:00:00:02:01","dst-port":16},{"src-switch":"00:00:00:00:00:00:06:07","src-port":2,"dst-switch":"00:00:00:00:00:00:06:01","dst-port":7},{"src-switch":"00:00:00:00:00:00:07:12","src-port":2,"dst-switch":"00:00:00:00:00:00:07:01","dst-port":18},{"src-switch":"00:00:00:00:00:00:04:10","src-port":2,"dst-switch":"00:00:00:00:00:00:04:01","dst-port":16},{"src-switch":"00:00:00:00:00:00:06:0e","src-port":2,"dst-switch":"00:00:00:00:00:00:06:01","dst-port":14},{"src-switch":"00:00:00:00:00:00:04:0f","src-port":2,"dst-switch":"00:00:00:00:00:00:04:01","dst-port":15},{"src-switch":"00:00:00:00:00:00:06:16","src-port":2,"dst-switch":"00:00:00:00:00:00:06:01","dst-port":22},{"src-switch":"00:00:00:00:00:00:02:1f","src-port":2,"dst-switch":"00:00:00:00:00:00:02:01","dst-port":31},{"src-switch":"00:00:00:00:00:00:02:2e","src-port":2,"dst-switch":"00:00:00:00:00:00:02:01","dst-port":46},{"src-switch":"00:00:00:00:00:00:02:0d","src-port":2,"dst-switch":"00:00:00:00:00:00:02:01","dst-port":13},{"src-switch":"00:00:00:00:00:00:07:03","src-port":2,"dst-switch":"00:00:00:00:00:00:07:01","dst-port":3},{"src-switch":"00:00:00:00:00:00:07:05","src-port":2,"dst-switch":"00:00:00:00:00:00:07:01","dst-port":5},{"src-switch":"00:00:00:00:00:00:04:09","src-port":2,"dst-switch":"00:00:00:00:00:00:04:01","dst-port":9},{"src-switch":"00:00:00:00:00:00:07:0a","src-port":2,"dst-switch":"00:00:00:00:00:00:07:01","dst-port":10},{"src-switch":"00:00:00:00:00:00:06:02","src-port":2,"dst-switch":"00:00:00:00:00:00:06:01","dst-port":2},{"src-switch":"00:00:00:00:00:00:07:0d","src-port":2,"dst-switch":"00:00:00:00:00:00:07:01","dst-port":13},{"src-switch":"00:00:00:00:00:00:06:04","src-port":2,"dst-switch":"00:00:00:00:00:00:06:01","dst-port":4},{"src-switch":"00:00:00:00:00:00:04:0b","src-port":2,"dst-switch":"00:00:00:00:00:00:04:01","dst-port":11},{"src-switch":"00:00:00:00:00:00:07:01","src-port":12,"dst-switch":"00:00:00:00:00:00:07:0c","dst-port":2},{"src-switch":"00:00:00:00:00:00:07:01","src-port":22,"dst-switch":"00:00:00:00:00:00:07:16","dst-port":2},{"src-switch":"00:00:00:00:00:00:07:01","src-port":20,"dst-switch":"00:00:00:00:00:00:07:14","dst-port":2},{"src-switch":"00:00:00:00:00:00:07:01","src-port":6,"dst-switch":"00:00:00:00:00:00:07:06","dst-port":2},{"src-switch":"00:00:00:00:00:00:07:01","src-port":13,"dst-switch":"00:00:00:00:00:00:07:0d","dst-port":2},{"src-switch":"00:00:00:00:00:00:07:01","src-port":19,"dst-switch":"00:00:00:00:00:00:07:13","dst-port":2},{"src-switch":"00:00:00:00:00:00:07:01","src-port":5,"dst-switch":"00:00:00:00:00:00:07:05","dst-port":2},{"src-switch":"00:00:00:00:00:00:07:01","src-port":18,"dst-switch":"00:00:00:00:00:00:07:12","dst-port":2},{"src-switch":"00:00:00:00:00:00:07:01","src-port":25,"dst-switch":"00:00:00:00:00:00:07:19","dst-port":2},{"src-switch":"00:00:00:00:00:00:07:01","src-port":7,"dst-switch":"00:00:00:00:00:00:07:07","dst-port":2},{"src-switch":"00:00:00:00:00:00:07:01","src-port":26,"dst-switch":"00:00:20:4e:7f:51:8a:35","dst-port":5},{"src-switch":"00:00:00:00:00:00:07:01","src-port":8,"dst-switch":"00:00:00:00:00:00:07:08","dst-port":2},{"src-switch":"00:00:00:00:00:00:07:01","src-port":17,"dst-switch":"00:00:00:00:00:00:07:11","dst-port":2},{"src-switch":"00:00:00:00:00:00:07:01","src-port":2,"dst-switch":"00:00:00:00:00:00:07:02","dst-port":2},{"src-switch":"00:00:00:00:00:00:07:01","src-port":9,"dst-switch":"00:00:00:00:00:00:07:09","dst-port":2},{"src-switch":"00:00:00:00:00:00:07:01","src-port":10,"dst-switch":"00:00:00:00:00:00:07:0a","dst-port":2},{"src-switch":"00:00:00:00:00:00:07:01","src-port":23,"dst-switch":"00:00:00:00:00:00:07:17","dst-port":2},{"src-switch":"00:00:00:00:00:00:07:01","src-port":16,"dst-switch":"00:00:00:00:00:00:07:10","dst-port":2},{"src-switch":"00:00:00:00:00:00:07:01","src-port":15,"dst-switch":"00:00:00:00:00:00:07:0f","dst-port":2},{"src-switch":"00:00:00:00:00:00:07:01","src-port":24,"dst-switch":"00:00:00:00:00:00:07:18","dst-port":2},{"src-switch":"00:00:00:00:00:00:07:01","src-port":14,"dst-switch":"00:00:00:00:00:00:07:0e","dst-port":2},{"src-switch":"00:00:00:00:00:00:07:01","src-port":21,"dst-switch":"00:00:00:00:00:00:07:15","dst-port":2},{"src-switch":"00:00:00:00:00:00:07:01","src-port":3,"dst-switch":"00:00:00:00:00:00:07:03","dst-port":2},{"src-switch":"00:00:00:00:00:00:07:01","src-port":11,"dst-switch":"00:00:00:00:00:00:07:0b","dst-port":2},{"src-switch":"00:00:00:00:00:00:07:01","src-port":4,"dst-switch":"00:00:00:00:00:00:07:04","dst-port":2},{"src-switch":"00:00:00:00:00:00:06:14","src-port":2,"dst-switch":"00:00:00:00:00:00:06:01","dst-port":20},{"src-switch":"00:00:00:00:00:00:03:13","src-port":2,"dst-switch":"00:00:00:00:00:00:03:01","dst-port":19},{"src-switch":"00:00:00:00:00:00:07:14","src-port":2,"dst-switch":"00:00:00:00:00:00:07:01","dst-port":20},{"src-switch":"00:00:00:00:00:00:02:25","src-port":2,"dst-switch":"00:00:00:00:00:00:02:01","dst-port":37},{"src-switch":"00:00:00:00:00:00:07:15","src-port":2,"dst-switch":"00:00:00:00:00:00:07:01","dst-port":21},{"src-switch":"00:00:00:00:00:00:06:10","src-port":2,"dst-switch":"00:00:00:00:00:00:06:01","dst-port":16},{"src-switch":"00:00:00:00:00:00:07:08","src-port":2,"dst-switch":"00:00:00:00:00:00:07:01","dst-port":8},{"src-switch":"00:00:00:00:00:00:06:18","src-port":2,"dst-switch":"00:00:00:00:00:00:06:01","dst-port":24},{"src-switch":"00:00:00:00:00:00:06:03","src-port":2,"dst-switch":"00:00:00:00:00:00:06:01","dst-port":3},{"src-switch":"00:00:00:00:00:00:03:14","src-port":2,"dst-switch":"00:00:00:00:00:00:03:01","dst-port":20},{"src-switch":"00:00:00:00:00:00:02:13","src-port":2,"dst-switch":"00:00:00:00:00:00:02:01","dst-port":19},{"src-switch":"00:00:00:00:00:00:03:16","src-port":2,"dst-switch":"00:00:00:00:00:00:03:01","dst-port":22},{"src-switch":"00:00:00:00:00:00:03:06","src-port":2,"dst-switch":"00:00:00:00:00:00:03:01","dst-port":6},{"src-switch":"00:00:00:00:00:00:04:13","src-port":2,"dst-switch":"00:00:00:00:00:00:04:01","dst-port":19},{"src-switch":"00:00:00:00:00:00:06:15","src-port":2,"dst-switch":"00:00:00:00:00:00:06:01","dst-port":21},{"src-switch":"00:00:00:00:00:00:08:15","src-port":2,"dst-switch":"00:00:00:00:00:00:08:01","dst-port":21},{"src-switch":"00:00:00:00:00:00:05:05","src-port":2,"dst-switch":"00:00:00:00:00:00:05:01","dst-port":5},{"src-switch":"00:00:00:00:00:00:03:01","src-port":12,"dst-switch":"00:00:00:00:00:00:03:0c","dst-port":2},{"src-switch":"00:00:00:00:00:00:03:01","src-port":22,"dst-switch":"00:00:00:00:00:00:03:16","dst-port":2},{"src-switch":"00:00:00:00:00:00:03:01","src-port":20,"dst-switch":"00:00:00:00:00:00:03:14","dst-port":2},{"src-switch":"00:00:00:00:00:00:03:01","src-port":6,"dst-switch":"00:00:00:00:00:00:03:06","dst-port":2},{"src-switch":"00:00:00:00:00:00:03:01","src-port":13,"dst-switch":"00:00:00:00:00:00:03:0d","dst-port":2},{"src-switch":"00:00:00:00:00:00:03:01","src-port":19,"dst-switch":"00:00:00:00:00:00:03:13","dst-port":2},{"src-switch":"00:00:00:00:00:00:03:01","src-port":5,"dst-switch":"00:00:00:00:00:00:03:05","dst-port":2},{"src-switch":"00:00:00:00:00:00:03:01","src-port":18,"dst-switch":"00:00:00:00:00:00:03:12","dst-port":2},{"src-switch":"00:00:00:00:00:00:03:01","src-port":25,"dst-switch":"00:00:00:00:00:00:03:19","dst-port":2},{"src-switch":"00:00:00:00:00:00:03:01","src-port":7,"dst-switch":"00:00:00:00:00:00:03:07","dst-port":2},{"src-switch":"00:00:00:00:00:00:03:01","src-port":26,"dst-switch":"00:00:00:08:a2:08:f9:01","dst-port":5},{"src-switch":"00:00:00:00:00:00:03:01","src-port":8,"dst-switch":"00:00:00:00:00:00:03:08","dst-port":2},{"src-switch":"00:00:00:00:00:00:03:01","src-port":17,"dst-switch":"00:00:00:00:00:00:03:11","dst-port":2},{"src-switch":"00:00:00:00:00:00:03:01","src-port":2,"dst-switch":"00:00:00:00:00:00:03:02","dst-port":2},{"src-switch":"00:00:00:00:00:00:03:01","src-port":9,"dst-switch":"00:00:00:00:00:00:03:09","dst-port":2},{"src-switch":"00:00:00:00:00:00:03:01","src-port":10,"dst-switch":"00:00:00:00:00:00:03:0a","dst-port":2},{"src-switch":"00:00:00:00:00:00:03:01","src-port":23,"dst-switch":"00:00:00:00:00:00:03:17","dst-port":2},{"src-switch":"00:00:00:00:00:00:03:01","src-port":16,"dst-switch":"00:00:00:00:00:00:03:10","dst-port":2},{"src-switch":"00:00:00:00:00:00:03:01","src-port":15,"dst-switch":"00:00:00:00:00:00:03:0f","dst-port":2},{"src-switch":"00:00:00:00:00:00:03:01","src-port":24,"dst-switch":"00:00:00:00:00:00:03:18","dst-port":2},{"src-switch":"00:00:00:00:00:00:03:01","src-port":14,"dst-switch":"00:00:00:00:00:00:03:0e","dst-port":2},{"src-switch":"00:00:00:00:00:00:03:01","src-port":21,"dst-switch":"00:00:00:00:00:00:03:15","dst-port":2},{"src-switch":"00:00:00:00:00:00:03:01","src-port":3,"dst-switch":"00:00:00:00:00:00:03:03","dst-port":2},{"src-switch":"00:00:00:00:00:00:03:01","src-port":11,"dst-switch":"00:00:00:00:00:00:03:0b","dst-port":2},{"src-switch":"00:00:00:00:00:00:03:01","src-port":4,"dst-switch":"00:00:00:00:00:00:03:04","dst-port":2},{"src-switch":"00:00:00:00:00:00:07:0f","src-port":2,"dst-switch":"00:00:00:00:00:00:07:01","dst-port":15},{"src-switch":"00:00:00:00:00:00:03:17","src-port":2,"dst-switch":"00:00:00:00:00:00:03:01","dst-port":23},{"src-switch":"00:00:00:00:00:00:07:07","src-port":2,"dst-switch":"00:00:00:00:00:00:07:01","dst-port":7},{"src-switch":"00:00:00:00:00:00:03:04","src-port":2,"dst-switch":"00:00:00:00:00:00:03:01","dst-port":4},{"src-switch":"00:00:00:00:00:00:06:05","src-port":2,"dst-switch":"00:00:00:00:00:00:06:01","dst-port":5},{"src-switch":"00:00:00:00:00:00:05:16","src-port":2,"dst-switch":"00:00:00:00:00:00:05:01","dst-port":22},{"src-switch":"00:00:00:00:00:00:07:18","src-port":2,"dst-switch":"00:00:00:00:00:00:07:01","dst-port":24},{"src-switch":"00:00:00:00:00:00:07:16","src-port":2,"dst-switch":"00:00:00:00:00:00:07:01","dst-port":22},{"src-switch":"00:00:00:00:00:00:06:08","src-port":2,"dst-switch":"00:00:00:00:00:00:06:01","dst-port":8},{"src-switch":"00:00:00:00:00:00:08:0f","src-port":2,"dst-switch":"00:00:00:00:00:00:08:01","dst-port":15},{"src-switch":"00:00:00:00:00:00:03:19","src-port":2,"dst-switch":"00:00:00:00:00:00:03:01","dst-port":25},{"src-switch":"00:00:00:00:00:00:05:11","src-port":2,"dst-switch":"00:00:00:00:00:00:05:01","dst-port":17},{"src-switch":"00:00:00:00:00:00:07:17","src-port":2,"dst-switch":"00:00:00:00:00:00:07:01","dst-port":23},{"src-switch":"00:00:00:00:00:00:08:09","src-port":2,"dst-switch":"00:00:00:00:00:00:08:01","dst-port":9},{"src-switch":"00:00:00:00:00:00:06:0b","src-port":2,"dst-switch":"00:00:00:00:00:00:06:01","dst-port":11},{"src-switch":"00:00:00:00:00:00:05:02","src-port":2,"dst-switch":"00:00:00:00:00:00:05:01","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:14","src-port":2,"dst-switch":"00:00:00:00:00:00:08:01","dst-port":20},{"src-switch":"00:00:00:00:00:00:05:17","src-port":2,"dst-switch":"00:00:00:00:00:00:05:01","dst-port":23},{"src-switch":"00:00:00:00:00:00:06:0d","src-port":2,"dst-switch":"00:00:00:00:00:00:06:01","dst-port":13},{"src-switch":"00:00:00:00:00:00:08:02","src-port":2,"dst-switch":"00:00:00:00:00:00:08:01","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:17","src-port":2,"dst-switch":"00:00:00:00:00:00:08:01","dst-port":23},{"src-switch":"00:00:00:00:00:00:02:0c","src-port":2,"dst-switch":"00:00:00:00:00:00:02:01","dst-port":12},{"src-switch":"00:00:00:00:00:00:05:07","src-port":2,"dst-switch":"00:00:00:00:00:00:05:01","dst-port":7},{"src-switch":"00:00:00:00:00:00:08:13","src-port":2,"dst-switch":"00:00:00:00:00:00:08:01","dst-port":19},{"src-switch":"00:00:00:00:00:00:08:16","src-port":2,"dst-switch":"00:00:00:00:00:00:08:01","dst-port":22},{"src-switch":"00:00:00:00:00:00:03:11","src-port":2,"dst-switch":"00:00:00:00:00:00:03:01","dst-port":17},{"src-switch":"00:00:00:00:00:00:07:06","src-port":2,"dst-switch":"00:00:00:00:00:00:07:01","dst-port":6},{"src-switch":"00:00:00:00:00:00:05:10","src-port":2,"dst-switch":"00:00:00:00:00:00:05:01","dst-port":16},{"src-switch":"00:00:00:00:00:00:02:0f","src-port":2,"dst-switch":"00:00:00:00:00:00:02:01","dst-port":15},{"src-switch":"00:00:00:00:00:00:03:18","src-port":2,"dst-switch":"00:00:00:00:00:00:03:01","dst-port":24},{"src-switch":"00:00:00:00:00:00:07:13","src-port":2,"dst-switch":"00:00:00:00:00:00:07:01","dst-port":19},{"src-switch":"00:00:00:00:00:00:08:07","src-port":2,"dst-switch":"00:00:00:00:00:00:08:01","dst-port":7},{"src-switch":"00:00:00:00:00:00:05:14","src-port":2,"dst-switch":"00:00:00:00:00:00:05:01","dst-port":20},{"src-switch":"00:00:00:00:00:00:03:09","src-port":2,"dst-switch":"00:00:00:00:00:00:03:01","dst-port":9},{"src-switch":"00:00:00:00:00:00:08:10","src-port":2,"dst-switch":"00:00:00:00:00:00:08:01","dst-port":16},{"src-switch":"00:00:00:00:00:00:05:09","src-port":2,"dst-switch":"00:00:00:00:00:00:05:01","dst-port":9},{"src-switch":"00:00:00:00:00:00:08:0a","src-port":2,"dst-switch":"00:00:00:00:00:00:08:01","dst-port":10},{"src-switch":"00:00:00:00:00:00:03:15","src-port":2,"dst-switch":"00:00:00:00:00:00:03:01","dst-port":21},{"src-switch":"00:00:00:00:00:00:05:04","src-port":2,"dst-switch":"00:00:00:00:00:00:05:01","dst-port":4},{"src-switch":"00:00:00:00:00:00:08:0c","src-port":2,"dst-switch":"00:00:00:00:00:00:08:01","dst-port":12},{"src-switch":"00:00:00:00:00:00:06:06","src-port":2,"dst-switch":"00:00:00:00:00:00:06:01","dst-port":6},{"src-switch":"00:00:00:00:00:00:08:12","src-port":2,"dst-switch":"00:00:00:00:00:00:08:01","dst-port":18},{"src-switch":"00:00:00:00:00:00:06:19","src-port":2,"dst-switch":"00:00:00:00:00:00:06:01","dst-port":25},{"src-switch":"00:00:00:00:00:00:03:0d","src-port":2,"dst-switch":"00:00:00:00:00:00:03:01","dst-port":13},{"src-switch":"00:00:00:00:00:00:08:05","src-port":2,"dst-switch":"00:00:00:00:00:00:08:01","dst-port":5},{"src-switch":"00:00:00:00:00:00:03:0a","src-port":2,"dst-switch":"00:00:00:00:00:00:03:01","dst-port":10},{"src-switch":"00:00:00:00:00:00:06:13","src-port":2,"dst-switch":"00:00:00:00:00:00:06:01","dst-port":19},{"src-switch":"00:00:00:00:00:00:03:08","src-port":2,"dst-switch":"00:00:00:00:00:00:03:01","dst-port":8},{"src-switch":"00:00:00:00:00:00:02:12","src-port":2,"dst-switch":"00:00:00:00:00:00:02:01","dst-port":18},{"src-switch":"00:00:00:00:00:00:05:06","src-port":2,"dst-switch":"00:00:00:00:00:00:05:01","dst-port":6},{"src-switch":"00:00:00:00:00:00:06:11","src-port":2,"dst-switch":"00:00:00:00:00:00:06:01","dst-port":17},{"src-switch":"00:00:00:00:00:00:07:09","src-port":2,"dst-switch":"00:00:00:00:00:00:07:01","dst-port":9},{"src-switch":"00:00:00:00:00:00:05:08","src-port":2,"dst-switch":"00:00:00:00:00:00:05:01","dst-port":8},{"src-switch":"00:00:00:00:00:00:07:0b","src-port":2,"dst-switch":"00:00:00:00:00:00:07:01","dst-port":11},{"src-switch":"00:00:00:00:00:00:03:0c","src-port":2,"dst-switch":"00:00:00:00:00:00:03:01","dst-port":12},{"src-switch":"00:00:00:00:00:00:06:0f","src-port":2,"dst-switch":"00:00:00:00:00:00:06:01","dst-port":15},{"src-switch":"00:00:00:00:00:00:04:14","src-port":2,"dst-switch":"00:00:00:00:00:00:04:01","dst-port":20},{"src-switch":"00:00:00:00:00:00:05:0c","src-port":2,"dst-switch":"00:00:00:00:00:00:05:01","dst-port":12},{"src-switch":"00:00:00:00:00:00:03:07","src-port":2,"dst-switch":"00:00:00:00:00:00:03:01","dst-port":7},{"src-switch":"00:00:00:00:00:00:06:0c","src-port":2,"dst-switch":"00:00:00:00:00:00:06:01","dst-port":12},{"src-switch":"00:00:00:00:00:00:05:13","src-port":2,"dst-switch":"00:00:00:00:00:00:05:01","dst-port":19},{"src-switch":"00:00:00:00:00:00:03:05","src-port":2,"dst-switch":"00:00:00:00:00:00:03:01","dst-port":5},{"src-switch":"00:00:00:00:00:00:07:10","src-port":2,"dst-switch":"00:00:00:00:00:00:07:01","dst-port":16},{"src-switch":"00:00:00:00:00:00:03:0f","src-port":2,"dst-switch":"00:00:00:00:00:00:03:01","dst-port":15},{"src-switch":"00:00:00:00:00:00:05:03","src-port":2,"dst-switch":"00:00:00:00:00:00:05:01","dst-port":3},{"src-switch":"00:00:00:00:00:00:05:0f","src-port":2,"dst-switch":"00:00:00:00:00:00:05:01","dst-port":15},{"src-switch":"00:00:00:00:00:00:03:02","src-port":2,"dst-switch":"00:00:00:00:00:00:03:01","dst-port":2},{"src-switch":"00:00:00:00:00:00:04:02","src-port":2,"dst-switch":"00:00:00:00:00:00:04:01","dst-port":2},{"src-switch":"00:00:00:00:00:00:03:0e","src-port":2,"dst-switch":"00:00:00:00:00:00:03:01","dst-port":14},{"src-switch":"00:00:00:00:00:00:04:0c","src-port":2,"dst-switch":"00:00:00:00:00:00:04:01","dst-port":12},{"src-switch":"00:00:00:00:00:00:08:0d","src-port":2,"dst-switch":"00:00:00:00:00:00:08:01","dst-port":13},{"src-switch":"00:00:00:00:00:00:04:05","src-port":2,"dst-switch":"00:00:00:00:00:00:04:01","dst-port":5},{"src-switch":"00:00:00:00:00:00:05:0a","src-port":2,"dst-switch":"00:00:00:00:00:00:05:01","dst-port":10},{"src-switch":"00:00:00:00:00:00:03:03","src-port":2,"dst-switch":"00:00:00:00:00:00:03:01","dst-port":3},{"src-switch":"00:00:00:00:00:00:05:15","src-port":2,"dst-switch":"00:00:00:00:00:00:05:01","dst-port":21},{"src-switch":"00:00:00:00:00:00:03:10","src-port":2,"dst-switch":"00:00:00:00:00:00:03:01","dst-port":16},{"src-switch":"00:00:00:00:00:00:04:06","src-port":2,"dst-switch":"00:00:00:00:00:00:04:01","dst-port":6},{"src-switch":"00:00:00:00:00:00:05:0d","src-port":2,"dst-switch":"00:00:00:00:00:00:05:01","dst-port":13},{"src-switch":"00:00:00:00:00:00:04:12","src-port":2,"dst-switch":"00:00:00:00:00:00:04:01","dst-port":18},{"src-switch":"00:00:00:00:00:00:04:17","src-port":2,"dst-switch":"00:00:00:00:00:00:04:01","dst-port":23},{"src-switch":"00:00:00:00:00:00:06:17","src-port":2,"dst-switch":"00:00:00:00:00:00:06:01","dst-port":23},{"src-switch":"00:00:00:00:00:00:04:07","src-port":2,"dst-switch":"00:00:00:00:00:00:04:01","dst-port":7},{"src-switch":"00:00:00:00:00:00:08:06","src-port":2,"dst-switch":"00:00:00:00:00:00:08:01","dst-port":6},{"src-switch":"00:00:00:00:00:00:07:11","src-port":2,"dst-switch":"00:00:00:00:00:00:07:01","dst-port":17},{"src-switch":"00:00:00:00:00:00:08:0e","src-port":2,"dst-switch":"00:00:00:00:00:00:08:01","dst-port":14},{"src-switch":"00:00:00:00:00:00:04:15","src-port":2,"dst-switch":"00:00:00:00:00:00:04:01","dst-port":21},{"src-switch":"00:00:00:00:00:00:05:12","src-port":2,"dst-switch":"00:00:00:00:00:00:05:01","dst-port":18},{"src-switch":"00:00:00:00:00:00:05:01","src-port":12,"dst-switch":"00:00:00:00:00:00:05:0c","dst-port":2},{"src-switch":"00:00:00:00:00:00:05:01","src-port":22,"dst-switch":"00:00:00:00:00:00:05:16","dst-port":2},{"src-switch":"00:00:00:00:00:00:05:01","src-port":20,"dst-switch":"00:00:00:00:00:00:05:14","dst-port":2},{"src-switch":"00:00:00:00:00:00:05:01","src-port":6,"dst-switch":"00:00:00:00:00:00:05:06","dst-port":2},{"src-switch":"00:00:00:00:00:00:05:01","src-port":13,"dst-switch":"00:00:00:00:00:00:05:0d","dst-port":2},{"src-switch":"00:00:00:00:00:00:05:01","src-port":19,"dst-switch":"00:00:00:00:00:00:05:13","dst-port":2},{"src-switch":"00:00:00:00:00:00:05:01","src-port":5,"dst-switch":"00:00:00:00:00:00:05:05","dst-port":2},{"src-switch":"00:00:00:00:00:00:05:01","src-port":18,"dst-switch":"00:00:00:00:00:00:05:12","dst-port":2},{"src-switch":"00:00:00:00:00:00:05:01","src-port":25,"dst-switch":"00:00:00:00:00:00:05:19","dst-port":2},{"src-switch":"00:00:00:00:00:00:05:01","src-port":7,"dst-switch":"00:00:00:00:00:00:05:07","dst-port":2},{"src-switch":"00:00:00:00:00:00:05:01","src-port":26,"dst-switch":"00:00:00:00:00:00:ba:12","dst-port":5},{"src-switch":"00:00:00:00:00:00:05:01","src-port":8,"dst-switch":"00:00:00:00:00:00:05:08","dst-port":2},{"src-switch":"00:00:00:00:00:00:05:01","src-port":17,"dst-switch":"00:00:00:00:00:00:05:11","dst-port":2},{"src-switch":"00:00:00:00:00:00:05:01","src-port":2,"dst-switch":"00:00:00:00:00:00:05:02","dst-port":2},{"src-switch":"00:00:00:00:00:00:05:01","src-port":9,"dst-switch":"00:00:00:00:00:00:05:09","dst-port":2},{"src-switch":"00:00:00:00:00:00:05:01","src-port":10,"dst-switch":"00:00:00:00:00:00:05:0a","dst-port":2},{"src-switch":"00:00:00:00:00:00:05:01","src-port":23,"dst-switch":"00:00:00:00:00:00:05:17","dst-port":2},{"src-switch":"00:00:00:00:00:00:05:01","src-port":16,"dst-switch":"00:00:00:00:00:00:05:10","dst-port":2},{"src-switch":"00:00:00:00:00:00:05:01","src-port":15,"dst-switch":"00:00:00:00:00:00:05:0f","dst-port":2},{"src-switch":"00:00:00:00:00:00:05:01","src-port":24,"dst-switch":"00:00:00:00:00:00:05:18","dst-port":2},{"src-switch":"00:00:00:00:00:00:05:01","src-port":14,"dst-switch":"00:00:00:00:00:00:05:0e","dst-port":2},{"src-switch":"00:00:00:00:00:00:05:01","src-port":21,"dst-switch":"00:00:00:00:00:00:05:15","dst-port":2},{"src-switch":"00:00:00:00:00:00:05:01","src-port":3,"dst-switch":"00:00:00:00:00:00:05:03","dst-port":2},{"src-switch":"00:00:00:00:00:00:05:01","src-port":11,"dst-switch":"00:00:00:00:00:00:05:0b","dst-port":2},{"src-switch":"00:00:00:00:00:00:05:01","src-port":4,"dst-switch":"00:00:00:00:00:00:05:04","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:04","src-port":2,"dst-switch":"00:00:00:00:00:00:08:01","dst-port":4},{"src-switch":"00:00:00:00:00:00:07:0c","src-port":2,"dst-switch":"00:00:00:00:00:00:07:01","dst-port":12},{"src-switch":"00:00:00:16:97:08:9a:46","src-port":3,"dst-switch":"00:00:20:4e:7f:51:8a:35","dst-port":2},{"src-switch":"00:00:00:16:97:08:9a:46","src-port":4,"dst-switch":"00:00:00:00:00:00:08:01","dst-port":26},{"src-switch":"00:00:00:00:00:00:07:02","src-port":2,"dst-switch":"00:00:00:00:00:00:07:01","dst-port":2},{"src-switch":"00:00:00:00:00:00:07:19","src-port":2,"dst-switch":"00:00:00:00:00:00:07:01","dst-port":25},{"src-switch":"00:00:00:00:00:00:05:0b","src-port":2,"dst-switch":"00:00:00:00:00:00:05:01","dst-port":11},{"src-switch":"00:00:00:00:00:00:08:11","src-port":2,"dst-switch":"00:00:00:00:00:00:08:01","dst-port":17},{"src-switch":"00:00:00:00:00:00:05:19","src-port":2,"dst-switch":"00:00:00:00:00:00:05:01","dst-port":25},{"src-switch":"00:00:00:00:00:00:07:0e","src-port":2,"dst-switch":"00:00:00:00:00:00:07:01","dst-port":14},{"src-switch":"00:00:00:00:00:00:07:04","src-port":2,"dst-switch":"00:00:00:00:00:00:07:01","dst-port":4},{"src-switch":"00:00:00:00:00:00:05:18","src-port":2,"dst-switch":"00:00:00:00:00:00:05:01","dst-port":24},{"src-switch":"00:00:00:00:00:00:04:03","src-port":2,"dst-switch":"00:00:00:00:00:00:04:01","dst-port":3},{"src-switch":"00:00:00:00:00:00:08:03","src-port":2,"dst-switch":"00:00:00:00:00:00:08:01","dst-port":3},{"src-switch":"00:00:00:00:00:00:08:08","src-port":2,"dst-switch":"00:00:00:00:00:00:08:01","dst-port":8},{"src-switch":"00:00:00:00:00:00:05:0e","src-port":2,"dst-switch":"00:00:00:00:00:00:05:01","dst-port":14},{"src-switch":"00:00:00:00:00:00:04:0e","src-port":2,"dst-switch":"00:00:00:00:00:00:04:01","dst-port":14},{"src-switch":"00:00:00:00:00:00:04:0a","src-port":2,"dst-switch":"00:00:00:00:00:00:04:01","dst-port":10},{"src-switch":"00:00:00:00:00:00:04:11","src-port":2,"dst-switch":"00:00:00:00:00:00:04:01","dst-port":17},{"src-switch":"00:00:00:00:00:00:02:02","src-port":2,"dst-switch":"00:00:00:00:00:00:02:01","dst-port":2},{"src-switch":"00:00:00:00:00:00:04:16","src-port":2,"dst-switch":"00:00:00:00:00:00:04:01","dst-port":22},{"src-switch":"00:00:00:00:00:00:04:01","src-port":12,"dst-switch":"00:00:00:00:00:00:04:0c","dst-port":2},{"src-switch":"00:00:00:00:00:00:04:01","src-port":22,"dst-switch":"00:00:00:00:00:00:04:16","dst-port":2},{"src-switch":"00:00:00:00:00:00:04:01","src-port":20,"dst-switch":"00:00:00:00:00:00:04:14","dst-port":2},{"src-switch":"00:00:00:00:00:00:04:01","src-port":6,"dst-switch":"00:00:00:00:00:00:04:06","dst-port":2},{"src-switch":"00:00:00:00:00:00:04:01","src-port":13,"dst-switch":"00:00:00:00:00:00:04:0d","dst-port":2},{"src-switch":"00:00:00:00:00:00:04:01","src-port":19,"dst-switch":"00:00:00:00:00:00:04:13","dst-port":2},{"src-switch":"00:00:00:00:00:00:04:01","src-port":5,"dst-switch":"00:00:00:00:00:00:04:05","dst-port":2},{"src-switch":"00:00:00:00:00:00:04:01","src-port":18,"dst-switch":"00:00:00:00:00:00:04:12","dst-port":2},{"src-switch":"00:00:00:00:00:00:04:01","src-port":25,"dst-switch":"00:00:00:00:00:00:04:19","dst-port":2},{"src-switch":"00:00:00:00:00:00:04:01","src-port":7,"dst-switch":"00:00:00:00:00:00:04:07","dst-port":2},{"src-switch":"00:00:00:00:00:00:04:01","src-port":26,"dst-switch":"00:00:00:00:00:00:ba:12","dst-port":4},{"src-switch":"00:00:00:00:00:00:04:01","src-port":8,"dst-switch":"00:00:00:00:00:00:04:08","dst-port":2},{"src-switch":"00:00:00:00:00:00:04:01","src-port":17,"dst-switch":"00:00:00:00:00:00:04:11","dst-port":2},{"src-switch":"00:00:00:00:00:00:04:01","src-port":2,"dst-switch":"00:00:00:00:00:00:04:02","dst-port":2},{"src-switch":"00:00:00:00:00:00:04:01","src-port":9,"dst-switch":"00:00:00:00:00:00:04:09","dst-port":2},{"src-switch":"00:00:00:00:00:00:04:01","src-port":10,"dst-switch":"00:00:00:00:00:00:04:0a","dst-port":2},{"src-switch":"00:00:00:00:00:00:04:01","src-port":23,"dst-switch":"00:00:00:00:00:00:04:17","dst-port":2},{"src-switch":"00:00:00:00:00:00:04:01","src-port":16,"dst-switch":"00:00:00:00:00:00:04:10","dst-port":2},{"src-switch":"00:00:00:00:00:00:04:01","src-port":15,"dst-switch":"00:00:00:00:00:00:04:0f","dst-port":2},{"src-switch":"00:00:00:00:00:00:04:01","src-port":24,"dst-switch":"00:00:00:00:00:00:04:18","dst-port":2},{"src-switch":"00:00:00:00:00:00:04:01","src-port":14,"dst-switch":"00:00:00:00:00:00:04:0e","dst-port":2},{"src-switch":"00:00:00:00:00:00:04:01","src-port":21,"dst-switch":"00:00:00:00:00:00:04:15","dst-port":2},{"src-switch":"00:00:00:00:00:00:04:01","src-port":3,"dst-switch":"00:00:00:00:00:00:04:03","dst-port":2},{"src-switch":"00:00:00:00:00:00:04:01","src-port":11,"dst-switch":"00:00:00:00:00:00:04:0b","dst-port":2},{"src-switch":"00:00:00:00:00:00:04:01","src-port":4,"dst-switch":"00:00:00:00:00:00:04:04","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:19","src-port":2,"dst-switch":"00:00:00:00:00:00:08:01","dst-port":25},{"src-switch":"00:00:00:00:00:00:04:19","src-port":2,"dst-switch":"00:00:00:00:00:00:04:01","dst-port":25},{"src-switch":"00:00:00:00:00:00:08:0b","src-port":2,"dst-switch":"00:00:00:00:00:00:08:01","dst-port":11},{"src-switch":"00:00:00:00:00:00:08:18","src-port":2,"dst-switch":"00:00:00:00:00:00:08:01","dst-port":24},{"src-switch":"00:00:00:00:00:00:06:12","src-port":2,"dst-switch":"00:00:00:00:00:00:06:01","dst-port":18},{"src-switch":"00:00:00:00:00:00:08:01","src-port":12,"dst-switch":"00:00:00:00:00:00:08:0c","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:01","src-port":22,"dst-switch":"00:00:00:00:00:00:08:16","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:01","src-port":20,"dst-switch":"00:00:00:00:00:00:08:14","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:01","src-port":6,"dst-switch":"00:00:00:00:00:00:08:06","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:01","src-port":13,"dst-switch":"00:00:00:00:00:00:08:0d","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:01","src-port":19,"dst-switch":"00:00:00:00:00:00:08:13","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:01","src-port":5,"dst-switch":"00:00:00:00:00:00:08:05","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:01","src-port":18,"dst-switch":"00:00:00:00:00:00:08:12","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:01","src-port":25,"dst-switch":"00:00:00:00:00:00:08:19","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:01","src-port":7,"dst-switch":"00:00:00:00:00:00:08:07","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:01","src-port":26,"dst-switch":"00:00:00:16:97:08:9a:46","dst-port":4},{"src-switch":"00:00:00:00:00:00:08:01","src-port":8,"dst-switch":"00:00:00:00:00:00:08:08","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:01","src-port":17,"dst-switch":"00:00:00:00:00:00:08:11","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:01","src-port":2,"dst-switch":"00:00:00:00:00:00:08:02","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:01","src-port":9,"dst-switch":"00:00:00:00:00:00:08:09","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:01","src-port":10,"dst-switch":"00:00:00:00:00:00:08:0a","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:01","src-port":23,"dst-switch":"00:00:00:00:00:00:08:17","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:01","src-port":16,"dst-switch":"00:00:00:00:00:00:08:10","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:01","src-port":15,"dst-switch":"00:00:00:00:00:00:08:0f","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:01","src-port":24,"dst-switch":"00:00:00:00:00:00:08:18","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:01","src-port":14,"dst-switch":"00:00:00:00:00:00:08:0e","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:01","src-port":21,"dst-switch":"00:00:00:00:00:00:08:15","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:01","src-port":3,"dst-switch":"00:00:00:00:00:00:08:03","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:01","src-port":11,"dst-switch":"00:00:00:00:00:00:08:0b","dst-port":2},{"src-switch":"00:00:00:00:00:00:08:01","src-port":4,"dst-switch":"00:00:00:00:00:00:08:04","dst-port":2},{"src-switch":"00:00:00:00:00:00:04:0d","src-port":2,"dst-switch":"00:00:00:00:00:00:04:01","dst-port":13},{"src-switch":"00:00:00:00:00:00:03:12","src-port":2,"dst-switch":"00:00:00:00:00:00:03:01","dst-port":18}]
\ No newline at end of file
diff --git a/sample/ONS2014demo/web/data/wm_core_topology_switches_all_json.json b/sample/ONS2014demo/web/data/wm_core_topology_switches_all_json.json
new file mode 100644
index 0000000..5b659a2
--- /dev/null
+++ b/sample/ONS2014demo/web/data/wm_core_topology_switches_all_json.json
@@ -0,0 +1 @@
+[{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.04-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.04-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:04"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":12,"desc":"sw06.01-eth12","devices":[]},{"state":"ACTIVE","number":22,"desc":"sw06.01-eth22","devices":[]},{"state":"ACTIVE","number":20,"desc":"sw06.01-eth20","devices":[]},{"state":"ACTIVE","number":6,"desc":"sw06.01-eth6","devices":[]},{"state":"ACTIVE","number":13,"desc":"sw06.01-eth13","devices":[]},{"state":"ACTIVE","number":19,"desc":"sw06.01-eth19","devices":[]},{"state":"ACTIVE","number":5,"desc":"sw06.01-eth5","devices":[]},{"state":"ACTIVE","number":18,"desc":"sw06.01-eth18","devices":[]},{"state":"ACTIVE","number":25,"desc":"sw06.01-eth25","devices":[]},{"state":"ACTIVE","number":7,"desc":"sw06.01-eth7","devices":[]},{"state":"ACTIVE","number":26,"desc":"tap06_1","devices":[]},{"state":"ACTIVE","number":8,"desc":"sw06.01-eth8","devices":[]},{"state":"ACTIVE","number":17,"desc":"sw06.01-eth17","devices":[]},{"state":"ACTIVE","number":2,"desc":"sw06.01-eth2","devices":[]},{"state":"ACTIVE","number":9,"desc":"sw06.01-eth9","devices":[]},{"state":"ACTIVE","number":10,"desc":"sw06.01-eth10","devices":[]},{"state":"ACTIVE","number":23,"desc":"sw06.01-eth23","devices":[]},{"state":"ACTIVE","number":16,"desc":"sw06.01-eth16","devices":[]},{"state":"ACTIVE","number":15,"desc":"sw06.01-eth15","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw06.01-eth1","devices":[]},{"state":"ACTIVE","number":24,"desc":"sw06.01-eth24","devices":[]},{"state":"ACTIVE","number":14,"desc":"sw06.01-eth14","devices":[]},{"state":"ACTIVE","number":21,"desc":"sw06.01-eth21","devices":[]},{"state":"ACTIVE","number":3,"desc":"sw06.01-eth3","devices":[]},{"state":"ACTIVE","number":11,"desc":"sw06.01-eth11","devices":[]},{"state":"ACTIVE","number":4,"desc":"sw06.01-eth4","devices":[]}],"dpid":"00:00:00:00:00:00:06:01"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw06.10-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw06.10-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:06:0a"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw04.24-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw04.24-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:04:18"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw03.11-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw03.11-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:03:0b"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.38-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.38-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:26"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw06.09-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw06.09-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:06:09"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw04.04-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw04.04-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:04:04"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.11-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.11-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:0b"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.29-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.29-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:1d"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw04.08-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw04.08-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:04:08"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.06-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.06-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:06"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.10-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.10-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:0a"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.16-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.16-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:10"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.39-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.39-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:27"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw06.07-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw06.07-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:06:07"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw07.18-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw07.18-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:07:12"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw04.16-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw04.16-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:04:10"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw06.14-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw06.14-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:06:0e"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.25-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.25-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:19"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw04.15-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw04.15-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:04:0f"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw06.22-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw06.22-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:06:16"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.31-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.31-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:1f"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.32-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.32-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:20"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.46-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.46-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:2e"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.13-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.13-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:0d"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw07.03-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw07.03-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:07:03"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.21-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.21-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:15"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw07.05-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw07.05-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:07:05"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw04.09-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw04.09-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:04:09"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.33-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.33-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:21"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw07.10-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw07.10-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:07:0a"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw06.02-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw06.02-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:06:02"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw07.13-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw07.13-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:07:0d"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw06.04-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw06.04-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:06:04"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw04.11-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw04.11-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:04:0b"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":12,"desc":"sw07.01-eth12","devices":[]},{"state":"ACTIVE","number":22,"desc":"sw07.01-eth22","devices":[]},{"state":"ACTIVE","number":20,"desc":"sw07.01-eth20","devices":[]},{"state":"ACTIVE","number":6,"desc":"sw07.01-eth6","devices":[]},{"state":"ACTIVE","number":13,"desc":"sw07.01-eth13","devices":[]},{"state":"ACTIVE","number":19,"desc":"sw07.01-eth19","devices":[]},{"state":"ACTIVE","number":5,"desc":"sw07.01-eth5","devices":[]},{"state":"ACTIVE","number":18,"desc":"sw07.01-eth18","devices":[]},{"state":"ACTIVE","number":25,"desc":"sw07.01-eth25","devices":[]},{"state":"ACTIVE","number":7,"desc":"sw07.01-eth7","devices":[]},{"state":"ACTIVE","number":26,"desc":"tap07_1","devices":[]},{"state":"ACTIVE","number":8,"desc":"sw07.01-eth8","devices":[]},{"state":"ACTIVE","number":17,"desc":"sw07.01-eth17","devices":[]},{"state":"ACTIVE","number":2,"desc":"sw07.01-eth2","devices":[]},{"state":"ACTIVE","number":9,"desc":"sw07.01-eth9","devices":[]},{"state":"ACTIVE","number":10,"desc":"sw07.01-eth10","devices":[]},{"state":"ACTIVE","number":23,"desc":"sw07.01-eth23","devices":[]},{"state":"ACTIVE","number":16,"desc":"sw07.01-eth16","devices":[]},{"state":"ACTIVE","number":15,"desc":"sw07.01-eth15","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw07.01-eth1","devices":[]},{"state":"ACTIVE","number":24,"desc":"sw07.01-eth24","devices":[]},{"state":"ACTIVE","number":14,"desc":"sw07.01-eth14","devices":[]},{"state":"ACTIVE","number":21,"desc":"sw07.01-eth21","devices":[]},{"state":"ACTIVE","number":3,"desc":"sw07.01-eth3","devices":[]},{"state":"ACTIVE","number":11,"desc":"sw07.01-eth11","devices":[]},{"state":"ACTIVE","number":4,"desc":"sw07.01-eth4","devices":[]}],"dpid":"00:00:00:00:00:00:07:01"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw06.20-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw06.20-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:06:14"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw03.19-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw03.19-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:03:13"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.23-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.23-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:17"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.50-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.50-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:32"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw07.20-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw07.20-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:07:14"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.27-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.27-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:1b"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.37-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.37-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:25"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw07.21-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw07.21-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:07:15"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.28-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.28-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:1c"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw06.16-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw06.16-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:06:10"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw07.08-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw07.08-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:07:08"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw06.24-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw06.24-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:06:18"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.24-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.24-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:18"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw06.03-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw06.03-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:06:03"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw03.20-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw03.20-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:03:14"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.19-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.19-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:13"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw03.22-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw03.22-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:03:16"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw03.06-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw03.06-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:03:06"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw04.19-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw04.19-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:04:13"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw06.21-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw06.21-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:06:15"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw08.21-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw08.21-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:08:15"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw05.05-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw05.05-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:05:05"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":12,"desc":"sw03.01-eth12","devices":[]},{"state":"ACTIVE","number":22,"desc":"sw03.01-eth22","devices":[]},{"state":"ACTIVE","number":20,"desc":"sw03.01-eth20","devices":[]},{"state":"ACTIVE","number":6,"desc":"sw03.01-eth6","devices":[]},{"state":"ACTIVE","number":13,"desc":"sw03.01-eth13","devices":[]},{"state":"ACTIVE","number":19,"desc":"sw03.01-eth19","devices":[]},{"state":"ACTIVE","number":5,"desc":"sw03.01-eth5","devices":[]},{"state":"ACTIVE","number":18,"desc":"sw03.01-eth18","devices":[]},{"state":"ACTIVE","number":25,"desc":"sw03.01-eth25","devices":[]},{"state":"ACTIVE","number":7,"desc":"sw03.01-eth7","devices":[]},{"state":"ACTIVE","number":26,"desc":"tap03_1","devices":[]},{"state":"ACTIVE","number":8,"desc":"sw03.01-eth8","devices":[]},{"state":"ACTIVE","number":17,"desc":"sw03.01-eth17","devices":[]},{"state":"ACTIVE","number":2,"desc":"sw03.01-eth2","devices":[]},{"state":"ACTIVE","number":9,"desc":"sw03.01-eth9","devices":[]},{"state":"ACTIVE","number":10,"desc":"sw03.01-eth10","devices":[]},{"state":"ACTIVE","number":23,"desc":"sw03.01-eth23","devices":[]},{"state":"ACTIVE","number":16,"desc":"sw03.01-eth16","devices":[]},{"state":"ACTIVE","number":15,"desc":"sw03.01-eth15","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw03.01-eth1","devices":[]},{"state":"ACTIVE","number":24,"desc":"sw03.01-eth24","devices":[]},{"state":"ACTIVE","number":14,"desc":"sw03.01-eth14","devices":[]},{"state":"ACTIVE","number":21,"desc":"sw03.01-eth21","devices":[]},{"state":"ACTIVE","number":3,"desc":"sw03.01-eth3","devices":[]},{"state":"ACTIVE","number":11,"desc":"sw03.01-eth11","devices":[]},{"state":"ACTIVE","number":4,"desc":"sw03.01-eth4","devices":[]}],"dpid":"00:00:00:00:00:00:03:01"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw07.15-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw07.15-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:07:0f"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw03.23-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw03.23-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:03:17"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":40,"desc":"sw02.01-eth40","devices":[]},{"state":"ACTIVE","number":22,"desc":"sw02.01-eth22","devices":[]},{"state":"ACTIVE","number":49,"desc":"sw02.01-eth49","devices":[]},{"state":"ACTIVE","number":12,"desc":"sw02.01-eth12","devices":[]},{"state":"ACTIVE","number":31,"desc":"sw02.01-eth31","devices":[]},{"state":"ACTIVE","number":20,"desc":"sw02.01-eth20","devices":[]},{"state":"ACTIVE","number":6,"desc":"sw02.01-eth6","devices":[]},{"state":"ACTIVE","number":27,"desc":"sw02.01-eth27","devices":[]},{"state":"ACTIVE","number":34,"desc":"sw02.01-eth34","devices":[]},{"state":"ACTIVE","number":19,"desc":"sw02.01-eth19","devices":[]},{"state":"ACTIVE","number":13,"desc":"sw02.01-eth13","devices":[]},{"state":"ACTIVE","number":41,"desc":"sw02.01-eth41","devices":[]},{"state":"ACTIVE","number":48,"desc":"sw02.01-eth48","devices":[]},{"state":"ACTIVE","number":5,"desc":"sw02.01-eth5","devices":[]},{"state":"ACTIVE","number":28,"desc":"sw02.01-eth28","devices":[]},{"state":"ACTIVE","number":33,"desc":"sw02.01-eth33","devices":[]},{"state":"ACTIVE","number":18,"desc":"sw02.01-eth18","devices":[]},{"state":"ACTIVE","number":42,"desc":"sw02.01-eth42","devices":[]},{"state":"ACTIVE","number":25,"desc":"sw02.01-eth25","devices":[]},{"state":"ACTIVE","number":47,"desc":"sw02.01-eth47","devices":[]},{"state":"ACTIVE","number":46,"desc":"sw02.01-eth46","devices":[]},{"state":"ACTIVE","number":7,"desc":"sw02.01-eth7","devices":[]},{"state":"ACTIVE","number":26,"desc":"sw02.01-eth26","devices":[]},{"state":"ACTIVE","number":36,"desc":"sw02.01-eth36","devices":[]},{"state":"ACTIVE","number":8,"desc":"sw02.01-eth8","devices":[]},{"state":"ACTIVE","number":45,"desc":"sw02.01-eth45","devices":[]},{"state":"ACTIVE","number":35,"desc":"sw02.01-eth35","devices":[]},{"state":"ACTIVE","number":17,"desc":"sw02.01-eth17","devices":[]},{"state":"ACTIVE","number":2,"desc":"sw02.01-eth2","devices":[]},{"state":"ACTIVE","number":9,"desc":"sw02.01-eth9","devices":[]},{"state":"ACTIVE","number":51,"desc":"tap02_1","devices":[]},{"state":"ACTIVE","number":37,"desc":"sw02.01-eth37","devices":[]},{"state":"ACTIVE","number":44,"desc":"sw02.01-eth44","devices":[]},{"state":"ACTIVE","number":43,"desc":"sw02.01-eth43","devices":[]},{"state":"ACTIVE","number":16,"desc":"sw02.01-eth16","devices":[]},{"state":"ACTIVE","number":30,"desc":"sw02.01-eth30","devices":[]},{"state":"ACTIVE","number":23,"desc":"sw02.01-eth23","devices":[]},{"state":"ACTIVE","number":10,"desc":"sw02.01-eth10","devices":[]},{"state":"ACTIVE","number":15,"desc":"sw02.01-eth15","devices":[]},{"state":"ACTIVE","number":38,"desc":"sw02.01-eth38","devices":[]},{"state":"ACTIVE","number":29,"desc":"sw02.01-eth29","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.01-eth1","devices":[]},{"state":"ACTIVE","number":24,"desc":"sw02.01-eth24","devices":[]},{"state":"ACTIVE","number":14,"desc":"sw02.01-eth14","devices":[]},{"state":"ACTIVE","number":21,"desc":"sw02.01-eth21","devices":[]},{"state":"ACTIVE","number":3,"desc":"sw02.01-eth3","devices":[]},{"state":"ACTIVE","number":39,"desc":"sw02.01-eth39","devices":[]},{"state":"ACTIVE","number":32,"desc":"sw02.01-eth32","devices":[]},{"state":"ACTIVE","number":11,"desc":"sw02.01-eth11","devices":[]},{"state":"ACTIVE","number":4,"desc":"sw02.01-eth4","devices":[]},{"state":"ACTIVE","number":50,"desc":"sw02.01-eth50","devices":[]}],"dpid":"00:00:00:00:00:00:02:01"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.48-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.48-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:30"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw07.07-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw07.07-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:07:07"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw03.04-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw03.04-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:03:04"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.22-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.22-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:16"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw06.05-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw06.05-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:06:05"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw05.22-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw05.22-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:05:16"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw07.24-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw07.24-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:07:18"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw07.22-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw07.22-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:07:16"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw06.08-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw06.08-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:06:08"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw08.15-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw08.15-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:08:0f"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw03.25-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw03.25-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:03:19"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw05.17-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw05.17-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:05:11"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw07.23-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw07.23-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:07:17"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw08.09-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw08.09-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:08:09"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw06.11-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw06.11-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:06:0b"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw05.02-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw05.02-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:05:02"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw08.20-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw08.20-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:08:14"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.09-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.09-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:09"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw05.23-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw05.23-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:05:17"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw06.13-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw06.13-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:06:0d"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw08.02-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw08.02-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:08:02"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw08.23-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw08.23-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:08:17"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.12-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.12-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:0c"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw05.07-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw05.07-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:05:07"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw08.19-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw08.19-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:08:13"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.07-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.07-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:07"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw08.22-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw08.22-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:08:16"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw03.17-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw03.17-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:03:11"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw07.06-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw07.06-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:07:06"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw05.16-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw05.16-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:05:10"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.15-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.15-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:0f"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw03.24-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw03.24-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:03:18"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw07.19-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw07.19-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:07:13"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw08.07-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw08.07-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:08:07"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw05.20-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw05.20-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:05:14"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.41-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.41-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:29"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw03.09-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw03.09-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:03:09"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw08.16-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw08.16-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:08:10"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw05.09-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw05.09-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:05:09"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.03-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.03-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:03"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw08.10-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw08.10-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:08:0a"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw03.21-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw03.21-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:03:15"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.30-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.30-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:1e"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw05.04-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw05.04-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:05:04"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw08.12-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw08.12-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:08:0c"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw06.06-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw06.06-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:06:06"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw08.18-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw08.18-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:08:12"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw06.25-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw06.25-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:06:19"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw03.13-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw03.13-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:03:0d"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw08.05-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw08.05-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:08:05"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw03.10-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw03.10-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:03:0a"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw06.19-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw06.19-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:06:13"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw03.08-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw03.08-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:03:08"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.18-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.18-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:12"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw05.06-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw05.06-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:05:06"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw06.17-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw06.17-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:06:11"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw07.09-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw07.09-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:07:09"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw05.08-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw05.08-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:05:08"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw07.11-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw07.11-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:07:0b"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw03.12-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw03.12-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:03:0c"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.05-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.05-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:05"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw06.15-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw06.15-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:06:0f"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw04.20-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw04.20-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:04:14"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw05.12-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw05.12-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:05:0c"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw03.07-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw03.07-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:03:07"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw06.12-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw06.12-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:06:0c"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw05.19-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw05.19-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:05:13"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw03.05-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw03.05-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:03:05"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw07.16-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw07.16-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:07:10"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw03.15-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw03.15-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:03:0f"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw05.03-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw05.03-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:05:03"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.17-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.17-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:11"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw05.15-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw05.15-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:05:0f"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.26-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.26-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:1a"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw03.02-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw03.02-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:03:02"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.14-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.14-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:0e"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw04.02-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw04.02-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:04:02"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw03.14-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw03.14-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:03:0e"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw04.12-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw04.12-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:04:0c"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw08.13-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw08.13-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:08:0d"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.49-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.49-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:31"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw04.05-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw04.05-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:04:05"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw05.10-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw05.10-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:05:0a"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw03.03-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw03.03-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:03:03"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw05.21-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw05.21-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:05:15"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw03.16-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw03.16-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:03:10"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw04.06-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw04.06-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:04:06"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw3-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw3-eth1","devices":[]},{"state":"ACTIVE","number":3,"desc":"sw3-eth3","devices":[]},{"state":"ACTIVE","number":4,"desc":"sw3-eth4","devices":[]},{"state":"ACTIVE","number":5,"desc":"tap01_3","devices":[]}],"dpid":"00:00:00:08:a2:08:f9:01"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw05.13-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw05.13-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:05:0d"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw04.18-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw04.18-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:04:12"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw04.23-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw04.23-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:04:17"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw06.23-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw06.23-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:06:17"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw04.07-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw04.07-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:04:07"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw08.06-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw08.06-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:08:06"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.40-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.40-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:28"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.44-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.44-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:2c"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw07.17-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw07.17-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:07:11"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw08.14-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw08.14-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:08:0e"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw04.21-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw04.21-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:04:15"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw05.18-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw05.18-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:05:12"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":12,"desc":"sw05.01-eth12","devices":[]},{"state":"ACTIVE","number":22,"desc":"sw05.01-eth22","devices":[]},{"state":"ACTIVE","number":20,"desc":"sw05.01-eth20","devices":[]},{"state":"ACTIVE","number":6,"desc":"sw05.01-eth6","devices":[]},{"state":"ACTIVE","number":13,"desc":"sw05.01-eth13","devices":[]},{"state":"ACTIVE","number":19,"desc":"sw05.01-eth19","devices":[]},{"state":"ACTIVE","number":5,"desc":"sw05.01-eth5","devices":[]},{"state":"ACTIVE","number":18,"desc":"sw05.01-eth18","devices":[]},{"state":"ACTIVE","number":25,"desc":"sw05.01-eth25","devices":[]},{"state":"ACTIVE","number":7,"desc":"sw05.01-eth7","devices":[]},{"state":"ACTIVE","number":26,"desc":"tap05_1","devices":[]},{"state":"ACTIVE","number":8,"desc":"sw05.01-eth8","devices":[]},{"state":"ACTIVE","number":17,"desc":"sw05.01-eth17","devices":[]},{"state":"ACTIVE","number":2,"desc":"sw05.01-eth2","devices":[]},{"state":"ACTIVE","number":9,"desc":"sw05.01-eth9","devices":[]},{"state":"ACTIVE","number":10,"desc":"sw05.01-eth10","devices":[]},{"state":"ACTIVE","number":23,"desc":"sw05.01-eth23","devices":[]},{"state":"ACTIVE","number":16,"desc":"sw05.01-eth16","devices":[]},{"state":"ACTIVE","number":15,"desc":"sw05.01-eth15","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw05.01-eth1","devices":[]},{"state":"ACTIVE","number":24,"desc":"sw05.01-eth24","devices":[]},{"state":"ACTIVE","number":14,"desc":"sw05.01-eth14","devices":[]},{"state":"ACTIVE","number":21,"desc":"sw05.01-eth21","devices":[]},{"state":"ACTIVE","number":3,"desc":"sw05.01-eth3","devices":[]},{"state":"ACTIVE","number":11,"desc":"sw05.01-eth11","devices":[]},{"state":"ACTIVE","number":4,"desc":"sw05.01-eth4","devices":[]}],"dpid":"00:00:00:00:00:00:05:01"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw08.04-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw08.04-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:08:04"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw07.12-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw07.12-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:07:0c"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":1,"desc":"sw1-eth1","devices":[]},{"state":"ACTIVE","number":3,"desc":"sw1-eth3","devices":[]},{"state":"ACTIVE","number":4,"desc":"tap01_8","devices":[]}],"dpid":"00:00:00:16:97:08:9a:46"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw07.02-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw07.02-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:07:02"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.36-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.36-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:24"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw07.25-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw07.25-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:07:19"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw5-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw5-eth1","devices":[]},{"state":"ACTIVE","number":3,"desc":"sw5-eth3","devices":[]},{"state":"ACTIVE","number":4,"desc":"tap01_6","devices":[]}],"dpid":"00:00:00:00:ba:5e:ba:13"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw05.11-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw05.11-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:05:0b"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw08.17-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw08.17-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:08:11"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw6-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw6-eth1","devices":[]},{"state":"ACTIVE","number":3,"desc":"sw6-eth3","devices":[]},{"state":"ACTIVE","number":4,"desc":"sw6-eth4","devices":[]},{"state":"ACTIVE","number":5,"desc":"tap01_7","devices":[]}],"dpid":"00:00:20:4e:7f:51:8a:35"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw05.25-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw05.25-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:05:19"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw07.14-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw07.14-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:07:0e"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.20-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.20-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:14"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw07.04-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw07.04-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:07:04"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw05.24-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw05.24-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:05:18"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw04.03-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw04.03-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:04:03"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw08.03-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw08.03-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:08:03"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw08.08-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw08.08-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:08:08"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw05.14-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw05.14-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:05:0e"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw04.14-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw04.14-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:04:0e"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.08-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.08-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:08"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw04.10-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw04.10-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:04:0a"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw04.17-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw04.17-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:04:11"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.02-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.02-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:02"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw04.22-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw04.22-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:04:16"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":1,"desc":"sw2-eth1","devices":[]},{"state":"ACTIVE","number":3,"desc":"sw2-eth3","devices":[]},{"state":"ACTIVE","number":4,"desc":"tap01_2","devices":[]}],"dpid":"00:00:00:00:ba:5e:ba:11"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":12,"desc":"sw04.01-eth12","devices":[]},{"state":"ACTIVE","number":22,"desc":"sw04.01-eth22","devices":[]},{"state":"ACTIVE","number":20,"desc":"sw04.01-eth20","devices":[]},{"state":"ACTIVE","number":6,"desc":"sw04.01-eth6","devices":[]},{"state":"ACTIVE","number":13,"desc":"sw04.01-eth13","devices":[]},{"state":"ACTIVE","number":19,"desc":"sw04.01-eth19","devices":[]},{"state":"ACTIVE","number":5,"desc":"sw04.01-eth5","devices":[]},{"state":"ACTIVE","number":18,"desc":"sw04.01-eth18","devices":[]},{"state":"ACTIVE","number":25,"desc":"sw04.01-eth25","devices":[]},{"state":"ACTIVE","number":7,"desc":"sw04.01-eth7","devices":[]},{"state":"ACTIVE","number":26,"desc":"tap04_1","devices":[]},{"state":"ACTIVE","number":8,"desc":"sw04.01-eth8","devices":[]},{"state":"ACTIVE","number":17,"desc":"sw04.01-eth17","devices":[]},{"state":"ACTIVE","number":2,"desc":"sw04.01-eth2","devices":[]},{"state":"ACTIVE","number":9,"desc":"sw04.01-eth9","devices":[]},{"state":"ACTIVE","number":10,"desc":"sw04.01-eth10","devices":[]},{"state":"ACTIVE","number":23,"desc":"sw04.01-eth23","devices":[]},{"state":"ACTIVE","number":16,"desc":"sw04.01-eth16","devices":[]},{"state":"ACTIVE","number":15,"desc":"sw04.01-eth15","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw04.01-eth1","devices":[]},{"state":"ACTIVE","number":24,"desc":"sw04.01-eth24","devices":[]},{"state":"ACTIVE","number":14,"desc":"sw04.01-eth14","devices":[]},{"state":"ACTIVE","number":21,"desc":"sw04.01-eth21","devices":[]},{"state":"ACTIVE","number":3,"desc":"sw04.01-eth3","devices":[]},{"state":"ACTIVE","number":11,"desc":"sw04.01-eth11","devices":[]},{"state":"ACTIVE","number":4,"desc":"sw04.01-eth4","devices":[]}],"dpid":"00:00:00:00:00:00:04:01"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw08.25-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw08.25-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:08:19"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw04.25-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw04.25-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:04:19"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw08.11-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw08.11-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:08:0b"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.43-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.43-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:2b"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw08.24-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw08.24-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:08:18"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.45-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.45-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:2d"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw06.18-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw06.18-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:06:12"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":12,"desc":"sw08.01-eth12","devices":[]},{"state":"ACTIVE","number":22,"desc":"sw08.01-eth22","devices":[]},{"state":"ACTIVE","number":20,"desc":"sw08.01-eth20","devices":[]},{"state":"ACTIVE","number":6,"desc":"sw08.01-eth6","devices":[]},{"state":"ACTIVE","number":13,"desc":"sw08.01-eth13","devices":[]},{"state":"ACTIVE","number":19,"desc":"sw08.01-eth19","devices":[]},{"state":"ACTIVE","number":5,"desc":"sw08.01-eth5","devices":[]},{"state":"ACTIVE","number":18,"desc":"sw08.01-eth18","devices":[]},{"state":"ACTIVE","number":25,"desc":"sw08.01-eth25","devices":[]},{"state":"ACTIVE","number":7,"desc":"sw08.01-eth7","devices":[]},{"state":"ACTIVE","number":26,"desc":"tap08_1","devices":[]},{"state":"ACTIVE","number":8,"desc":"sw08.01-eth8","devices":[]},{"state":"ACTIVE","number":17,"desc":"sw08.01-eth17","devices":[]},{"state":"ACTIVE","number":2,"desc":"sw08.01-eth2","devices":[]},{"state":"ACTIVE","number":9,"desc":"sw08.01-eth9","devices":[]},{"state":"ACTIVE","number":10,"desc":"sw08.01-eth10","devices":[]},{"state":"ACTIVE","number":23,"desc":"sw08.01-eth23","devices":[]},{"state":"ACTIVE","number":16,"desc":"sw08.01-eth16","devices":[]},{"state":"ACTIVE","number":15,"desc":"sw08.01-eth15","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw08.01-eth1","devices":[]},{"state":"ACTIVE","number":24,"desc":"sw08.01-eth24","devices":[]},{"state":"ACTIVE","number":14,"desc":"sw08.01-eth14","devices":[]},{"state":"ACTIVE","number":21,"desc":"sw08.01-eth21","devices":[]},{"state":"ACTIVE","number":3,"desc":"sw08.01-eth3","devices":[]},{"state":"ACTIVE","number":11,"desc":"sw08.01-eth11","devices":[]},{"state":"ACTIVE","number":4,"desc":"sw08.01-eth4","devices":[]}],"dpid":"00:00:00:00:00:00:08:01"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.35-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.35-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:23"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw04.13-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw04.13-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:04:0d"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.47-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.47-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:2f"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.34-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.34-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:22"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw4-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw4-eth1","devices":[]},{"state":"ACTIVE","number":3,"desc":"sw4-eth3","devices":[]},{"state":"ACTIVE","number":4,"desc":"tap01_4","devices":[]},{"state":"ACTIVE","number":5,"desc":"tap01_5","devices":[]}],"dpid":"00:00:00:00:00:00:ba:12"},{"state":"INACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw02.42-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw02.42-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:02:2a"},{"state":"ACTIVE","ports":[{"state":"ACTIVE","number":2,"desc":"sw03.18-eth2","devices":[]},{"state":"ACTIVE","number":1,"desc":"sw03.18-eth1","devices":[]}],"dpid":"00:00:00:00:00:00:03:12"}]
\ No newline at end of file
diff --git a/sample/ONS2014demo/web/data/wm_flow_getall_json.json b/sample/ONS2014demo/web/data/wm_flow_getall_json.json
new file mode 100644
index 0000000..f56d017
--- /dev/null
+++ b/sample/ONS2014demo/web/data/wm_flow_getall_json.json
@@ -0,0 +1,439 @@
+[
+    {
+        "dataPath": {
+            "srcPort": {
+                "dpid": {
+                    "value": "00:00:00:00:00:00:06:02"
+                },
+                "port": {
+                    "value": 4
+                }
+            },
+            "flowEntries": [
+                {
+                    "dpid": {
+                        "value": "00:00:00:00:00:00:06:02"
+                    },
+                    "flowEntryActions": null,
+                    "flowEntryErrorState": null,
+                    "flowEntryId": "0x1",
+                    "flowEntryMatch": null,
+                    "flowEntrySwitchState": "FE_SWITCH_UPDATED",
+                    "flowEntryUserState": "FE_USER_ADD",
+                    "inPort": null,
+                    "outPort": null
+                },                {
+                    "dpid": {
+                        "value": "00:00:00:00:00:00:06:01"
+                    },
+                    "flowEntryActions": null,
+                    "flowEntryErrorState": null,
+                    "flowEntryId": "0x1",
+                    "flowEntryMatch": null,
+                    "flowEntrySwitchState": "FE_SWITCH_UPDATED",
+                    "flowEntryUserState": "FE_USER_ADD",
+                    "inPort": null,
+                    "outPort": null
+                },
+                {
+                    "dpid": {
+                        "value": "00:00:00:00:ba:5e:ba:13"
+                    },
+                    "flowEntryActions": null,
+                    "flowEntryErrorState": null,
+                    "flowEntryId": "0x2",
+                    "flowEntryMatch": null,
+                    "flowEntrySwitchState": "FE_SWITCH_UPDATED",
+                    "flowEntryUserState": "FE_USER_ADD",
+                    "inPort": null,
+                    "outPort": null
+                },
+                {
+                    "dpid": {
+                        "value": "00:00:00:00:ba:5e:ba:11"
+                    },
+                    "flowEntryActions": null,
+                    "flowEntryErrorState": null,
+                    "flowEntryId": "0x2",
+                    "flowEntryMatch": null,
+                    "flowEntrySwitchState": "FE_SWITCH_UPDATED",
+                    "flowEntryUserState": "FE_USER_ADD",
+                    "inPort": null,
+                    "outPort": null
+                },
+                {
+                    "dpid": {
+                        "value": "00:00:00:00:00:00:02:01"
+                    },
+                    "flowEntryActions": null,
+                    "flowEntryErrorState": null,
+                    "flowEntryId": "0x3",
+                    "flowEntryMatch": null,
+                    "flowEntrySwitchState": "FE_SWITCH_UPDATED",
+                    "flowEntryUserState": "FE_USER_ADD",
+                    "inPort": null,
+                    "outPort": null
+                },
+                {
+                    "dpid": {
+                        "value": "00:00:00:00:00:00:02:02"
+                    },
+                    "flowEntryActions": null,
+                    "flowEntryErrorState": null,
+                    "flowEntryId": "0x3",
+                    "flowEntryMatch": null,
+                    "flowEntrySwitchState": "FE_SWITCH_UPDATED",
+                    "flowEntryUserState": "FE_USER_ADD",
+                    "inPort": null,
+                    "outPort": null
+                }
+            ],
+            "dstPort": {
+                "dpid": {
+                    "value": "00:00:00:00:00:00:02:02"
+                },
+                "port": {
+                    "value": 4
+                }
+            }
+        },
+        "flowId": {
+            "value": "0x1"
+        },
+        "installerId": {
+            "value": "1"
+        }
+    },
+
+
+{
+        "dataPath": {
+            "srcPort": {
+                "dpid": {
+                    "value": "00:00:00:00:00:00:06:02"
+                },
+                "port": {
+                    "value": 4
+                }
+            },
+            "flowEntries": [
+                {
+                    "dpid": {
+                        "value": "00:00:00:00:00:00:06:02"
+                    },
+                    "flowEntryActions": null,
+                    "flowEntryErrorState": null,
+                    "flowEntryId": "0x1",
+                    "flowEntryMatch": null,
+                    "flowEntrySwitchState": "FE_SWITCH_UPDATED",
+                    "flowEntryUserState": "FE_USER_ADD",
+                    "inPort": null,
+                    "outPort": null
+                },                {
+                    "dpid": {
+                        "value": "00:00:00:00:00:00:06:01"
+                    },
+                    "flowEntryActions": null,
+                    "flowEntryErrorState": null,
+                    "flowEntryId": "0x1",
+                    "flowEntryMatch": null,
+                    "flowEntrySwitchState": "FE_SWITCH_UPDATED",
+                    "flowEntryUserState": "FE_USER_ADD",
+                    "inPort": null,
+                    "outPort": null
+                },
+                {
+                    "dpid": {
+                        "value": "00:00:00:00:ba:5e:ba:13"
+                    },
+                    "flowEntryActions": null,
+                    "flowEntryErrorState": null,
+                    "flowEntryId": "0x2",
+                    "flowEntryMatch": null,
+                    "flowEntrySwitchState": "FE_SWITCH_UPDATED",
+                    "flowEntryUserState": "FE_USER_ADD",
+                    "inPort": null,
+                    "outPort": null
+                },
+                {
+                    "dpid": {
+                        "value": "00:00:00:08:a2:08:f9:01"
+                    },
+                    "flowEntryActions": null,
+                    "flowEntryErrorState": null,
+                    "flowEntryId": "0x2",
+                    "flowEntryMatch": null,
+                    "flowEntrySwitchState": "FE_SWITCH_UPDATED",
+                    "flowEntryUserState": "FE_USER_ADD",
+                    "inPort": null,
+                    "outPort": null
+                },
+                {
+                    "dpid": {
+                        "value": "00:00:00:00:00:00:03:01"
+                    },
+                    "flowEntryActions": null,
+                    "flowEntryErrorState": null,
+                    "flowEntryId": "0x3",
+                    "flowEntryMatch": null,
+                    "flowEntrySwitchState": "FE_SWITCH_UPDATED",
+                    "flowEntryUserState": "FE_USER_ADD",
+                    "inPort": null,
+                    "outPort": null
+                },
+                {
+                    "dpid": {
+                        "value": "00:00:00:00:00:00:03:05"
+                    },
+                    "flowEntryActions": null,
+                    "flowEntryErrorState": null,
+                    "flowEntryId": "0x3",
+                    "flowEntryMatch": null,
+                    "flowEntrySwitchState": "FE_SWITCH_UPDATED",
+                    "flowEntryUserState": "FE_USER_ADD",
+                    "inPort": null,
+                    "outPort": null
+                }
+            ],
+            "dstPort": {
+                "dpid": {
+                    "value": "00:00:00:00:00:00:03:05"
+                },
+                "port": {
+                    "value": 4
+                }
+            }
+        },
+        "flowId": {
+            "value": "0x2"
+        },
+        "installerId": {
+            "value": "1"
+        }
+    },
+
+{
+        "dataPath": {
+            "srcPort": {
+                "dpid": {
+                    "value": "00:00:00:00:00:00:07:02"
+                },
+                "port": {
+                    "value": 4
+                }
+            },
+            "flowEntries": [
+                {
+                    "dpid": {
+                        "value": "00:00:00:00:00:00:07:02"
+                    },
+                    "flowEntryActions": null,
+                    "flowEntryErrorState": null,
+                    "flowEntryId": "0x1",
+                    "flowEntryMatch": null,
+                    "flowEntrySwitchState": "FE_SWITCH_UPDATED",
+                    "flowEntryUserState": "FE_USER_ADD",
+                    "inPort": null,
+                    "outPort": null
+                },                {
+                    "dpid": {
+                        "value": "00:00:00:00:00:00:07:01"
+                    },
+                    "flowEntryActions": null,
+                    "flowEntryErrorState": null,
+                    "flowEntryId": "0x1",
+                    "flowEntryMatch": null,
+                    "flowEntrySwitchState": "FE_SWITCH_UPDATED",
+                    "flowEntryUserState": "FE_USER_ADD",
+                    "inPort": null,
+                    "outPort": null
+                },
+                {
+                    "dpid": {
+                        "value": "00:00:20:4e:7f:51:8a:35"
+                    },
+                    "flowEntryActions": null,
+                    "flowEntryErrorState": null,
+                    "flowEntryId": "0x2",
+                    "flowEntryMatch": null,
+                    "flowEntrySwitchState": "FE_SWITCH_UPDATED",
+                    "flowEntryUserState": "FE_USER_ADD",
+                    "inPort": null,
+                    "outPort": null
+                },
+                {
+                    "dpid": {
+                        "value": "00:00:00:16:97:08:9a:46"
+                    },
+                    "flowEntryActions": null,
+                    "flowEntryErrorState": null,
+                    "flowEntryId": "0x2",
+                    "flowEntryMatch": null,
+                    "flowEntrySwitchState": "FE_SWITCH_UPDATED",
+                    "flowEntryUserState": "FE_USER_ADD",
+                    "inPort": null,
+                    "outPort": null
+                },
+                {
+                    "dpid": {
+                        "value": "00:00:00:00:00:00:08:01"
+                    },
+                    "flowEntryActions": null,
+                    "flowEntryErrorState": null,
+                    "flowEntryId": "0x3",
+                    "flowEntryMatch": null,
+                    "flowEntrySwitchState": "FE_SWITCH_UPDATED",
+                    "flowEntryUserState": "FE_USER_ADD",
+                    "inPort": null,
+                    "outPort": null
+                },
+                {
+                    "dpid": {
+                        "value": "00:00:00:00:00:00:08:02"
+                    },
+                    "flowEntryActions": null,
+                    "flowEntryErrorState": null,
+                    "flowEntryId": "0x3",
+                    "flowEntryMatch": null,
+                    "flowEntrySwitchState": "FE_SWITCH_UPDATED",
+                    "flowEntryUserState": "FE_USER_ADD",
+                    "inPort": null,
+                    "outPort": null
+                }
+            ],
+            "dstPort": {
+                "dpid": {
+                    "value": "00:00:00:00:00:00:08:02"
+                },
+                "port": {
+                    "value": 4
+                }
+            }
+        },
+        "flowId": {
+            "value": "0x3"
+        },
+        "installerId": {
+            "value": "1"
+        }
+    },
+{
+        "dataPath": {
+            "srcPort": {
+                "dpid": {
+                    "value": "00:00:00:00:00:00:05:02"
+                },
+                "port": {
+                    "value": 4
+                }
+            },
+            "flowEntries": [
+                {
+                    "dpid": {
+                        "value": "00:00:00:00:00:00:05:02"
+                    },
+                    "flowEntryActions": null,
+                    "flowEntryErrorState": null,
+                    "flowEntryId": "0x1",
+                    "flowEntryMatch": null,
+                    "flowEntrySwitchState": "FE_SWITCH_UPDATED",
+                    "flowEntryUserState": "FE_USER_ADD",
+                    "inPort": null,
+                    "outPort": null
+                },                {
+                    "dpid": {
+                        "value": "00:00:00:00:00:00:05:01"
+                    },
+                    "flowEntryActions": null,
+                    "flowEntryErrorState": null,
+                    "flowEntryId": "0x1",
+                    "flowEntryMatch": null,
+                    "flowEntrySwitchState": "FE_SWITCH_UPDATED",
+                    "flowEntryUserState": "FE_USER_ADD",
+                    "inPort": null,
+                    "outPort": null
+                },
+                {
+                    "dpid": {
+                        "value": "00:00:00:00:00:00:ba:12"
+                    },
+                    "flowEntryActions": null,
+                    "flowEntryErrorState": null,
+                    "flowEntryId": "0x2",
+                    "flowEntryMatch": null,
+                    "flowEntrySwitchState": "FE_SWITCH_UPDATED",
+                    "flowEntryUserState": "FE_USER_ADD",
+                    "inPort": null,
+                    "outPort": null
+                },
+                {
+                    "dpid": {
+                        "value": "00:00:00:08:a2:08:f9:01"
+                    },
+                    "flowEntryActions": null,
+                    "flowEntryErrorState": null,
+                    "flowEntryId": "0x2",
+                    "flowEntryMatch": null,
+                    "flowEntrySwitchState": "FE_SWITCH_UPDATED",
+                    "flowEntryUserState": "FE_USER_ADD",
+                    "inPort": null,
+                    "outPort": null
+                },
+                {
+                    "dpid": {
+                        "value": "00:00:00:00:ba:5e:ba:11"
+                    },
+                    "flowEntryActions": null,
+                    "flowEntryErrorState": null,
+                    "flowEntryId": "0x2",
+                    "flowEntryMatch": null,
+                    "flowEntrySwitchState": "FE_SWITCH_UPDATED",
+                    "flowEntryUserState": "FE_USER_ADD",
+                    "inPort": null,
+                    "outPort": null
+                },
+                {
+                    "dpid": {
+                        "value": "00:00:00:00:00:00:02:01"
+                    },
+                    "flowEntryActions": null,
+                    "flowEntryErrorState": null,
+                    "flowEntryId": "0x3",
+                    "flowEntryMatch": null,
+                    "flowEntrySwitchState": "FE_SWITCH_UPDATED",
+                    "flowEntryUserState": "FE_USER_ADD",
+                    "inPort": null,
+                    "outPort": null
+                },
+                {
+                    "dpid": {
+                        "value": "00:00:00:00:00:00:02:15"
+                    },
+                    "flowEntryActions": null,
+                    "flowEntryErrorState": null,
+                    "flowEntryId": "0x3",
+                    "flowEntryMatch": null,
+                    "flowEntrySwitchState": "FE_SWITCH_UPDATED",
+                    "flowEntryUserState": "FE_USER_ADD",
+                    "inPort": null,
+                    "outPort": null
+                }
+            ],
+            "dstPort": {
+                "dpid": {
+                    "value": "00:00:00:00:00:00:02:15"
+                },
+                "port": {
+                    "value": 4
+                }
+            }
+        },
+        "flowId": {
+            "value": "0x4"
+        },
+        "installerId": {
+            "value": "1"
+        }
+    }
+
+]
diff --git a/sample/ONS2014demo/web/data/wm_registry_controllers_json.json b/sample/ONS2014demo/web/data/wm_registry_controllers_json.json
new file mode 100644
index 0000000..38b0907
--- /dev/null
+++ b/sample/ONS2014demo/web/data/wm_registry_controllers_json.json
@@ -0,0 +1 @@
+["onosgui1","onosgui2","onosgui3","onosgui4","onosgui5","onosgui6","onosgui7","onosgui8"]
\ No newline at end of file
diff --git a/sample/ONS2014demo/web/data/wm_registry_switches_json.json b/sample/ONS2014demo/web/data/wm_registry_switches_json.json
new file mode 100644
index 0000000..841cdb6
--- /dev/null
+++ b/sample/ONS2014demo/web/data/wm_registry_switches_json.json
@@ -0,0 +1 @@
+{"00:00:00:00:00:00:02:08":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:09":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:16":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:15":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:18":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:17":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:07:0a":[{"controllerId":"onosgui7"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:02:12":[{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui6"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:07:0b":[{"controllerId":"onosgui7"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:02:11":[{"controllerId":"onosgui2"},{"controllerId":"onosgui7"}],"00:00:00:00:00:00:07:0c":[{"controllerId":"onosgui7"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:02:14":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:07:0d":[{"controllerId":"onosgui7"},{"controllerId":"onosgui3"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:02:13":[{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui6"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:07:0e":[{"controllerId":"onosgui7"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:07:0f":[{"controllerId":"onosgui7"},{"controllerId":"onosgui3"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:02:10":[{"controllerId":"onosgui2"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui6"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:02:0f":[{"controllerId":"onosgui2"},{"controllerId":"onosgui6"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:02:0d":[{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui6"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:02:0e":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:0b":[{"controllerId":"onosgui2"},{"controllerId":"onosgui6"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:02:0c":[{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui6"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:02:0a":[{"controllerId":"onosgui2"},{"controllerId":"onosgui6"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:02:19":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:29":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:28":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:27":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:26":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:25":[{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui6"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:02:24":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:23":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:22":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:21":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:20":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:07:02":[{"controllerId":"onosgui7"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:07:01":[{"controllerId":"onosgui7"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:07:04":[{"controllerId":"onosgui7"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:07:03":[{"controllerId":"onosgui7"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:08:17":[{"controllerId":"onosgui8"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:08:18":[{"controllerId":"onosgui8"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:08:19":[{"controllerId":"onosgui8"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:08:13":[{"controllerId":"onosgui8"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:08:14":[{"controllerId":"onosgui8"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:07:09":[{"controllerId":"onosgui7"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:08:15":[{"controllerId":"onosgui8"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:08:16":[{"controllerId":"onosgui8"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:07:06":[{"controllerId":"onosgui7"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:08:10":[{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:07:05":[{"controllerId":"onosgui7"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:08:11":[{"controllerId":"onosgui8"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:07:08":[{"controllerId":"onosgui7"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:08:12":[{"controllerId":"onosgui8"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:07:07":[{"controllerId":"onosgui7"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:16:97:08:9a:46":[{"controllerId":"onosgui1"},{"controllerId":"onosgui7"},{"controllerId":"onosgui8"},{"controllerId":"onosgui5"},{"controllerId":"onosgui6"},{"controllerId":"onosgui4"},{"controllerId":"onosgui2"},{"controllerId":"onosgui3"}],"00:00:00:00:00:00:04:10":[{"controllerId":"onosgui4"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:04:11":[{"controllerId":"onosgui4"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:04:12":[{"controllerId":"onosgui4"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:04:13":[{"controllerId":"onosgui4"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:04:14":[{"controllerId":"onosgui4"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:04:15":[{"controllerId":"onosgui4"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:04:16":[{"controllerId":"onosgui4"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:04:17":[{"controllerId":"onosgui4"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:04:18":[{"controllerId":"onosgui4"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:04:19":[{"controllerId":"onosgui4"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:07:15":[{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:07:14":[{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:07:13":[{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:07:12":[{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:07:11":[{"controllerId":"onosgui7"},{"controllerId":"onosgui3"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:04:0a":[{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:05:0f":[{"controllerId":"onosgui5"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:07:10":[{"controllerId":"onosgui7"},{"controllerId":"onosgui3"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:05:0e":[{"controllerId":"onosgui5"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:05:0d":[{"controllerId":"onosgui5"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:05:0c":[{"controllerId":"onosgui5"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:04:0e":[{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:05:0b":[{"controllerId":"onosgui5"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:04:0d":[{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:05:0a":[{"controllerId":"onosgui5"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:04:0c":[{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:04:0b":[{"controllerId":"onosgui4"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:07:19":[{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:07:18":[{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:07:17":[{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:07:16":[{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:04:0f":[{"controllerId":"onosgui4"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:02:03":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:02":[{"controllerId":"onosgui2"},{"controllerId":"onosgui6"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:02:01":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:07":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:06":[{"controllerId":"onosgui2"},{"controllerId":"onosgui6"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:02:05":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:04":[{"controllerId":"onosgui2"},{"controllerId":"onosgui6"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:08:0f":[{"controllerId":"onosgui8"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:08:0e":[{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:08:0d":[{"controllerId":"onosgui8"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:08:0c":[{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:08:0b":[{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:08:a2:08:f9:01":[{"controllerId":"onosgui1"}],"00:00:00:00:00:00:08:0a":[{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:05:11":[{"controllerId":"onosgui5"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:05:10":[{"controllerId":"onosgui5"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:05:13":[{"controllerId":"onosgui5"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:05:12":[{"controllerId":"onosgui5"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:05:15":[{"controllerId":"onosgui5"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:05:14":[{"controllerId":"onosgui5"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:05:17":[{"controllerId":"onosgui5"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:05:16":[{"controllerId":"onosgui5"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:05:19":[{"controllerId":"onosgui5"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:05:18":[{"controllerId":"onosgui5"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:08:01":[{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:08:05":[{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:08:04":[{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:08:03":[{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:08:02":[{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:08:09":[{"controllerId":"onosgui8"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:08:08":[{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:08:07":[{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:03:0e":[{"controllerId":"onosgui3"},{"controllerId":"onosgui8"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:08:06":[{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:03:0f":[{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:03:0c":[{"controllerId":"onosgui3"},{"controllerId":"onosgui8"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:03:0d":[{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:03:0a":[{"controllerId":"onosgui3"},{"controllerId":"onosgui8"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:03:0b":[{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:05:02":[{"controllerId":"onosgui5"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:05:01":[{"controllerId":"onosgui5"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:05:06":[{"controllerId":"onosgui5"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:05:05":[{"controllerId":"onosgui5"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:05:04":[{"controllerId":"onosgui5"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:05:03":[{"controllerId":"onosgui5"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:05:09":[{"controllerId":"onosgui5"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:05:08":[{"controllerId":"onosgui5"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:05:07":[{"controllerId":"onosgui5"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:03:09":[{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:02:1b":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:1a":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:1d":[{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui6"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:02:1c":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:1f":[{"controllerId":"onosgui2"},{"controllerId":"onosgui6"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:02:1e":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:30":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:31":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:03:11":[{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:02:32":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:03:10":[{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:03:13":[{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:03:12":[{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:03:15":[{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:03:14":[{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:03:17":[{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:03:16":[{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:03:19":[{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:03:18":[{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:02:2a":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:2e":[{"controllerId":"onosgui2"},{"controllerId":"onosgui5"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui6"},{"controllerId":"onosgui7"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:02:2d":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:2c":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:2b":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:02:2f":[{"controllerId":"onosgui2"}],"00:00:00:00:00:00:03:04":[{"controllerId":"onosgui3"},{"controllerId":"onosgui8"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:03:03":[{"controllerId":"onosgui3"},{"controllerId":"onosgui8"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:03:02":[{"controllerId":"onosgui3"},{"controllerId":"onosgui8"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:03:01":[{"controllerId":"onosgui3"},{"controllerId":"onosgui8"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:03:08":[{"controllerId":"onosgui3"},{"controllerId":"onosgui8"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:03:07":[{"controllerId":"onosgui3"},{"controllerId":"onosgui8"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:03:06":[{"controllerId":"onosgui3"},{"controllerId":"onosgui8"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:03:05":[{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:ba:12":[{"controllerId":"onosgui1"}],"00:00:20:4e:7f:51:8a:35":[{"controllerId":"onosgui1"}],"00:00:00:00:ba:5e:ba:11":[{"controllerId":"onosgui1"}],"00:00:00:00:ba:5e:ba:13":[{"controllerId":"onosgui1"}],"00:00:00:00:00:00:04:03":[{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:04:02":[{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:04:05":[{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:04:04":[{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:04:07":[{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:04:06":[{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:04:09":[{"controllerId":"onosgui4"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:04:08":[{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:04:01":[{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui6"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:06:09":[{"controllerId":"onosgui6"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:06:08":[{"controllerId":"onosgui6"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:06:05":[{"controllerId":"onosgui6"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:06:04":[{"controllerId":"onosgui6"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:06:07":[{"controllerId":"onosgui6"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:06:06":[{"controllerId":"onosgui6"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:06:01":[{"controllerId":"onosgui6"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:06:03":[{"controllerId":"onosgui6"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:06:02":[{"controllerId":"onosgui6"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:06:0d":[{"controllerId":"onosgui6"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:06:0e":[{"controllerId":"onosgui6"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:06:0f":[{"controllerId":"onosgui6"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:06:0a":[{"controllerId":"onosgui6"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:06:0b":[{"controllerId":"onosgui6"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:06:0c":[{"controllerId":"onosgui6"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:06:18":[{"controllerId":"onosgui6"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:06:17":[{"controllerId":"onosgui6"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:06:16":[{"controllerId":"onosgui6"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:06:15":[{"controllerId":"onosgui6"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:06:19":[{"controllerId":"onosgui6"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:06:10":[{"controllerId":"onosgui6"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:06:14":[{"controllerId":"onosgui6"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:06:13":[{"controllerId":"onosgui6"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:06:12":[{"controllerId":"onosgui6"},{"controllerId":"onosgui8"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui1"}],"00:00:00:00:00:00:06:11":[{"controllerId":"onosgui6"},{"controllerId":"onosgui3"},{"controllerId":"onosgui7"},{"controllerId":"onosgui5"},{"controllerId":"onosgui2"},{"controllerId":"onosgui4"},{"controllerId":"onosgui8"},{"controllerId":"onosgui1"}]}
\ No newline at end of file
diff --git a/sample/ONS2014demo/web/data/world.json b/sample/ONS2014demo/web/data/world.json
new file mode 100644
index 0000000..874582c
--- /dev/null
+++ b/sample/ONS2014demo/web/data/world.json
@@ -0,0 +1,39034 @@
+{
+  "type": "Topology",
+  "transform": {
+    "scale": [
+      0.011121861824577766,
+      0.005244902253759074
+    ],
+    "translate": [
+      -178.19451843993755,
+      18.96390918584938
+    ]
+  },
+  "objects": {
+    "world": {
+      "type": "GeometryCollection",
+      "geometries": [
+        {
+          "type": "MultiPolygon",
+          "arcs": [
+            [
+              [
+                0
+              ]
+            ],
+            [
+              [
+                1
+              ]
+            ],
+            [
+              [
+                2
+              ]
+            ],
+            [
+              [
+                3
+              ]
+            ],
+            [
+              [
+                4
+              ]
+            ],
+            [
+              [
+                5
+              ]
+            ],
+            [
+              [
+                6
+              ]
+            ],
+            [
+              [
+                7
+              ]
+            ],
+            [
+              [
+                8
+              ]
+            ],
+            [
+              [
+                9
+              ]
+            ],
+            [
+              [
+                10
+              ]
+            ],
+            [
+              [
+                11
+              ]
+            ],
+            [
+              [
+                12
+              ]
+            ],
+            [
+              [
+                13
+              ]
+            ],
+            [
+              [
+                14
+              ]
+            ],
+            [
+              [
+                15
+              ]
+            ],
+            [
+              [
+                16
+              ]
+            ],
+            [
+              [
+                17
+              ]
+            ],
+            [
+              [
+                18
+              ]
+            ],
+            [
+              [
+                19
+              ]
+            ],
+            [
+              [
+                20
+              ]
+            ],
+            [
+              [
+                21
+              ]
+            ],
+            [
+              [
+                22
+              ]
+            ],
+            [
+              [
+                23
+              ]
+            ],
+            [
+              [
+                24
+              ]
+            ],
+            [
+              [
+                25
+              ]
+            ],
+            [
+              [
+                26
+              ]
+            ],
+            [
+              [
+                27
+              ]
+            ],
+            [
+              [
+                28
+              ]
+            ],
+            [
+              [
+                29
+              ]
+            ],
+            [
+              [
+                30
+              ]
+            ],
+            [
+              [
+                31
+              ]
+            ],
+            [
+              [
+                32
+              ]
+            ],
+            [
+              [
+                33
+              ]
+            ],
+            [
+              [
+                34
+              ]
+            ],
+            [
+              [
+                35
+              ]
+            ],
+            [
+              [
+                36
+              ]
+            ],
+            [
+              [
+                37
+              ]
+            ],
+            [
+              [
+                38
+              ]
+            ],
+            [
+              [
+                39
+              ]
+            ],
+            [
+              [
+                40
+              ]
+            ],
+            [
+              [
+                41
+              ]
+            ],
+            [
+              [
+                42
+              ]
+            ],
+            [
+              [
+                43
+              ]
+            ],
+            [
+              [
+                44
+              ]
+            ],
+            [
+              [
+                45
+              ]
+            ],
+            [
+              [
+                46
+              ]
+            ],
+            [
+              [
+                47
+              ]
+            ],
+            [
+              [
+                48
+              ]
+            ],
+            [
+              [
+                49
+              ]
+            ],
+            [
+              [
+                50
+              ]
+            ],
+            [
+              [
+                51
+              ]
+            ],
+            [
+              [
+                52
+              ]
+            ],
+            [
+              [
+                53
+              ]
+            ],
+            [
+              [
+                54
+              ]
+            ],
+            [
+              [
+                55
+              ]
+            ],
+            [
+              [
+                56
+              ]
+            ],
+            [
+              [
+                57
+              ]
+            ],
+            [
+              [
+                58
+              ]
+            ],
+            [
+              [
+                59
+              ]
+            ],
+            [
+              [
+                60
+              ]
+            ],
+            [
+              [
+                61
+              ]
+            ]
+          ]
+        },
+        {
+          "type": "MultiPolygon",
+          "arcs": [
+            [
+              [
+                62
+              ]
+            ],
+            [
+              [
+                63,
+                64,
+                65,
+                66,
+                67
+              ]
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              68,
+              69,
+              70,
+              71,
+              72,
+              73
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              74,
+              75,
+              76,
+              77,
+              78
+            ]
+          ]
+        },
+        {
+          "type": "MultiPolygon",
+          "arcs": [
+            [
+              [
+                79
+              ]
+            ],
+            [
+              [
+                80
+              ]
+            ],
+            [
+              [
+                81
+              ]
+            ],
+            [
+              [
+                82
+              ]
+            ],
+            [
+              [
+                83
+              ]
+            ],
+            [
+              [
+                84
+              ]
+            ],
+            [
+              [
+                85,
+                -77,
+                86,
+                87
+              ]
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              88,
+              89,
+              90,
+              91,
+              92,
+              93
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              94,
+              95,
+              96,
+              97
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              98,
+              99
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              100,
+              101,
+              102
+            ]
+          ]
+        },
+        {
+          "type": "MultiPolygon",
+          "arcs": [
+            [
+              [
+                103
+              ]
+            ],
+            [
+              [
+                104
+              ]
+            ],
+            [
+              [
+                105
+              ]
+            ],
+            [
+              [
+                106
+              ]
+            ],
+            [
+              [
+                107
+              ]
+            ],
+            [
+              [
+                108
+              ]
+            ],
+            [
+              [
+                109
+              ]
+            ],
+            [
+              [
+                110
+              ]
+            ],
+            [
+              [
+                111
+              ]
+            ],
+            [
+              [
+                112
+              ]
+            ],
+            [
+              [
+                113
+              ]
+            ],
+            [
+              [
+                114,
+                -68,
+                115
+              ]
+            ]
+          ]
+        },
+        {
+          "type": "MultiPolygon",
+          "arcs": [
+            [
+              [
+                116
+              ]
+            ],
+            [
+              [
+                117,
+                -116,
+                -67,
+                118,
+                119,
+                120
+              ]
+            ]
+          ]
+        },
+        {
+          "type": "MultiPolygon",
+          "arcs": [
+            [
+              [
+                121
+              ]
+            ],
+            [
+              [
+                122
+              ]
+            ],
+            [
+              [
+                123
+              ]
+            ],
+            [
+              [
+                124
+              ]
+            ],
+            [
+              [
+                125
+              ]
+            ],
+            [
+              [
+                126
+              ]
+            ],
+            [
+              [
+                127
+              ]
+            ],
+            [
+              [
+                128
+              ]
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              129,
+              130,
+              131,
+              132,
+              133,
+              134
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              135,
+              136,
+              137,
+              138,
+              139,
+              140,
+              141
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              142,
+              143,
+              144,
+              145,
+              -130,
+              146
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              147,
+              148,
+              -144,
+              149,
+              150
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              151,
+              -89,
+              152,
+              153
+            ]
+          ]
+        },
+        {
+          "type": "MultiPolygon",
+          "arcs": [
+            [
+              [
+                154,
+                155
+              ]
+            ],
+            [
+              [
+                156,
+                157,
+                158,
+                159,
+                -145,
+                -149,
+                160
+              ]
+            ]
+          ]
+        },
+        {
+          "type": "MultiPolygon",
+          "arcs": [
+            [
+              [
+                161
+              ]
+            ],
+            [
+              [
+                162
+              ]
+            ],
+            [
+              [
+                163
+              ]
+            ],
+            [
+              [
+                164
+              ]
+            ],
+            [
+              [
+                165,
+                166,
+                -71,
+                167
+              ]
+            ]
+          ]
+        },
+        {
+          "type": "MultiPolygon",
+          "arcs": [
+            [
+              [
+                168
+              ]
+            ],
+            [
+              [
+                169
+              ]
+            ],
+            [
+              [
+                170,
+                -98,
+                171,
+                172,
+                173,
+                174
+              ]
+            ]
+          ]
+        },
+        {
+          "type": "MultiPolygon",
+          "arcs": [
+            [
+              [
+                175,
+                176
+              ]
+            ],
+            [
+              [
+                -102,
+                177,
+                178,
+                179,
+                -100,
+                180,
+                181,
+                182
+              ]
+            ]
+          ]
+        },
+        {
+          "type": "MultiPolygon",
+          "arcs": [
+            [
+              [
+                183
+              ]
+            ],
+            [
+              [
+                184
+              ]
+            ],
+            [
+              [
+                185,
+                186
+              ]
+            ]
+          ]
+        },
+        {
+          "type": "MultiPolygon",
+          "arcs": [
+            [
+              [
+                187
+              ]
+            ],
+            [
+              [
+                188
+              ]
+            ],
+            [
+              [
+                189,
+                -151,
+                190
+              ]
+            ],
+            [
+              [
+                191
+              ]
+            ],
+            [
+              [
+                192
+              ]
+            ],
+            [
+              [
+                193
+              ]
+            ],
+            [
+              [
+                194
+              ]
+            ],
+            [
+              [
+                195,
+                196
+              ]
+            ],
+            [
+              [
+                197
+              ]
+            ],
+            [
+              [
+                198
+              ]
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              199,
+              -134,
+              200,
+              201,
+              202
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              -146,
+              -160,
+              203,
+              -155,
+              204,
+              -74,
+              205,
+              -154,
+              206,
+              -131
+            ]
+          ]
+        },
+        {
+          "type": "MultiPolygon",
+          "arcs": [
+            [
+              [
+                207
+              ]
+            ],
+            [
+              [
+                208,
+                -168,
+                -70,
+                209,
+                -65
+              ]
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              210,
+              211,
+              -142,
+              212,
+              213
+            ]
+          ]
+        },
+        {
+          "type": "MultiPolygon",
+          "arcs": [
+            [
+              [
+                214
+              ]
+            ],
+            [
+              [
+                215
+              ]
+            ],
+            [
+              [
+                216
+              ]
+            ],
+            [
+              [
+                217
+              ]
+            ],
+            [
+              [
+                218
+              ]
+            ],
+            [
+              [
+                219,
+                220
+              ]
+            ],
+            [
+              [
+                221,
+                -120,
+                222,
+                223,
+                224
+              ]
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              225,
+              -214,
+              226,
+              -202
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              -132,
+              -207,
+              -153,
+              -94,
+              227,
+              228
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              229,
+              -174,
+              230,
+              231,
+              -186
+            ]
+          ]
+        },
+        {
+          "type": "MultiPolygon",
+          "arcs": [
+            [
+              [
+                232
+              ]
+            ],
+            [
+              [
+                233,
+                234,
+                235
+              ]
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              236,
+              237,
+              -75,
+              -91,
+              238
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              -78,
+              -86,
+              239,
+              -138,
+              240
+            ]
+          ]
+        },
+        {
+          "type": "MultiPolygon",
+          "arcs": [
+            [
+              [
+                241
+              ]
+            ],
+            [
+              [
+                242
+              ]
+            ],
+            [
+              [
+                243
+              ]
+            ],
+            [
+              [
+                244
+              ]
+            ],
+            [
+              [
+                245
+              ]
+            ],
+            [
+              [
+                -172,
+                -97,
+                246,
+                -235,
+                247,
+                248,
+                249
+              ]
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              250,
+              -161,
+              -148,
+              -190,
+              251,
+              252
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              -73,
+              253,
+              -239,
+              -90,
+              -152,
+              -206
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              -139,
+              -240,
+              -88,
+              254,
+              255
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              -234,
+              256,
+              -103,
+              -183,
+              257,
+              -253,
+              258,
+              -248
+            ]
+          ]
+        },
+        {
+          "type": "MultiPolygon",
+          "arcs": [
+            [
+              [
+                259
+              ]
+            ],
+            [
+              [
+                260
+              ]
+            ],
+            [
+              [
+                261,
+                -95,
+                -171
+              ]
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              262,
+              -121,
+              -222
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              -201,
+              -133,
+              -229,
+              263,
+              -211,
+              -226
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              264,
+              -223,
+              -119,
+              -66,
+              -210,
+              -69,
+              -205,
+              -156,
+              -204,
+              -159
+            ]
+          ]
+        },
+        {
+          "type": "MultiPolygon",
+          "arcs": [
+            [
+              [
+                265
+              ]
+            ],
+            [
+              [
+                266
+              ]
+            ],
+            [
+              [
+                267
+              ]
+            ],
+            [
+              [
+                268
+              ]
+            ],
+            [
+              [
+                269
+              ]
+            ],
+            [
+              [
+                -72,
+                -167,
+                270,
+                -237,
+                -254
+              ]
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              271,
+              -92,
+              -79,
+              -241,
+              -137
+            ]
+          ]
+        },
+        {
+          "type": "MultiPolygon",
+          "arcs": [
+            [
+              [
+                -179,
+                272
+              ]
+            ],
+            [
+              [
+                -177,
+                273
+              ]
+            ],
+            [
+              [
+                -181,
+                -99,
+                274,
+                -220,
+                275,
+                -224,
+                -265,
+                -158,
+                276
+              ]
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              -173,
+              -250,
+              277,
+              -231
+            ]
+          ]
+        },
+        {
+          "type": "MultiPolygon",
+          "arcs": [
+            [
+              [
+                278
+              ]
+            ],
+            [
+              [
+                279
+              ]
+            ],
+            [
+              [
+                280
+              ]
+            ],
+            [
+              [
+                281
+              ]
+            ],
+            [
+              [
+                282
+              ]
+            ],
+            [
+              [
+                283
+              ]
+            ],
+            [
+              [
+                284
+              ]
+            ],
+            [
+              [
+                285
+              ]
+            ],
+            [
+              [
+                -256,
+                286,
+                -140
+              ]
+            ]
+          ]
+        },
+        {
+          "type": "MultiPolygon",
+          "arcs": [
+            [
+              [
+                287
+              ]
+            ],
+            [
+              [
+                288
+              ]
+            ],
+            [
+              [
+                289
+              ]
+            ],
+            [
+              [
+                290
+              ]
+            ],
+            [
+              [
+                -196,
+                291,
+                -147,
+                -135,
+                -200,
+                292
+              ]
+            ],
+            [
+              [
+                293
+              ]
+            ],
+            [
+              [
+                294
+              ]
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              -182,
+              -277,
+              -157,
+              -251,
+              -258
+            ]
+          ]
+        },
+        {
+          "type": "Polygon",
+          "arcs": [
+            [
+              -228,
+              -93,
+              -272,
+              -136,
+              -212,
+              -264
+            ]
+          ]
+        }
+      ]
+    }
+  },
+  "arcs": [
+    [
+      [
+        172,
+        6259
+      ],
+      [
+        -6,
+        -11
+      ],
+      [
+        -4,
+        5
+      ],
+      [
+        -2,
+        15
+      ],
+      [
+        3,
+        4
+      ],
+      [
+        9,
+        -11
+      ],
+      [
+        0,
+        -2
+      ]
+    ],
+    [
+      [
+        197,
+        6263
+      ],
+      [
+        -8,
+        -4
+      ],
+      [
+        -10,
+        8
+      ],
+      [
+        1,
+        10
+      ],
+      [
+        11,
+        -8
+      ],
+      [
+        6,
+        -6
+      ]
+    ],
+    [
+      [
+        28,
+        6232
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        -2,
+        0
+      ],
+      [
+        -12,
+        10
+      ],
+      [
+        -2,
+        4
+      ],
+      [
+        7,
+        5
+      ],
+      [
+        3,
+        4
+      ],
+      [
+        -1,
+        5
+      ],
+      [
+        -6,
+        7
+      ],
+      [
+        -9,
+        9
+      ],
+      [
+        -4,
+        6
+      ],
+      [
+        2,
+        4
+      ],
+      [
+        5,
+        3
+      ],
+      [
+        15,
+        0
+      ],
+      [
+        8,
+        -11
+      ],
+      [
+        6,
+        -4
+      ],
+      [
+        13,
+        -2
+      ],
+      [
+        -7,
+        -5
+      ],
+      [
+        -4,
+        -5
+      ],
+      [
+        -5,
+        -17
+      ],
+      [
+        -5,
+        -7
+      ]
+    ],
+    [
+      [
+        94,
+        6245
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -4,
+        -2
+      ],
+      [
+        -14,
+        2
+      ],
+      [
+        -8,
+        0
+      ],
+      [
+        -10,
+        -2
+      ],
+      [
+        -6,
+        -3
+      ],
+      [
+        -2,
+        5
+      ],
+      [
+        0,
+        4
+      ],
+      [
+        30,
+        10
+      ],
+      [
+        7,
+        6
+      ],
+      [
+        5,
+        6
+      ],
+      [
+        3,
+        13
+      ],
+      [
+        4,
+        4
+      ],
+      [
+        2,
+        0
+      ],
+      [
+        4,
+        -5
+      ],
+      [
+        -2,
+        -7
+      ],
+      [
+        -4,
+        -6
+      ],
+      [
+        -1,
+        -5
+      ],
+      [
+        -1,
+        -17
+      ]
+    ],
+    [
+      [
+        144,
+        6273
+      ],
+      [
+        0,
+        -6
+      ],
+      [
+        11,
+        1
+      ],
+      [
+        3,
+        -4
+      ],
+      [
+        0,
+        -12
+      ],
+      [
+        -1,
+        -4
+      ],
+      [
+        -2,
+        -1
+      ],
+      [
+        -4,
+        3
+      ],
+      [
+        -4,
+        -6
+      ],
+      [
+        -19,
+        -16
+      ],
+      [
+        -6,
+        9
+      ],
+      [
+        -11,
+        -14
+      ],
+      [
+        8,
+        36
+      ],
+      [
+        9,
+        5
+      ],
+      [
+        3,
+        4
+      ],
+      [
+        -1,
+        11
+      ],
+      [
+        5,
+        17
+      ],
+      [
+        9,
+        -1
+      ],
+      [
+        4,
+        -7
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        -4,
+        -10
+      ]
+    ],
+    [
+      [
+        195,
+        6299
+      ],
+      [
+        -2,
+        -5
+      ],
+      [
+        -9,
+        6
+      ],
+      [
+        -3,
+        4
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        2,
+        9
+      ],
+      [
+        7,
+        0
+      ],
+      [
+        5,
+        -4
+      ],
+      [
+        3,
+        -6
+      ],
+      [
+        2,
+        -4
+      ],
+      [
+        -5,
+        -5
+      ]
+    ],
+    [
+      [
+        417,
+        6325
+      ],
+      [
+        18,
+        -8
+      ],
+      [
+        22,
+        1
+      ],
+      [
+        8,
+        -2
+      ],
+      [
+        0,
+        -2
+      ],
+      [
+        -14,
+        -3
+      ],
+      [
+        -5,
+        1
+      ],
+      [
+        -12,
+        -5
+      ],
+      [
+        -8,
+        0
+      ],
+      [
+        -19,
+        4
+      ],
+      [
+        -15,
+        -3
+      ],
+      [
+        -4,
+        1
+      ],
+      [
+        -5,
+        3
+      ],
+      [
+        -5,
+        6
+      ],
+      [
+        0,
+        4
+      ],
+      [
+        5,
+        2
+      ],
+      [
+        13,
+        -5
+      ],
+      [
+        1,
+        2
+      ],
+      [
+        11,
+        5
+      ],
+      [
+        9,
+        -1
+      ]
+    ],
+    [
+      [
+        515,
+        6351
+      ],
+      [
+        -7,
+        -3
+      ],
+      [
+        -7,
+        3
+      ],
+      [
+        4,
+        10
+      ],
+      [
+        3,
+        5
+      ],
+      [
+        7,
+        7
+      ],
+      [
+        8,
+        -3
+      ],
+      [
+        6,
+        -8
+      ],
+      [
+        -14,
+        -11
+      ]
+    ],
+    [
+      [
+        316,
+        6305
+      ],
+      [
+        -48,
+        -7
+      ],
+      [
+        -7,
+        5
+      ],
+      [
+        7,
+        3
+      ],
+      [
+        9,
+        2
+      ],
+      [
+        18,
+        9
+      ],
+      [
+        22,
+        7
+      ],
+      [
+        18,
+        10
+      ],
+      [
+        15,
+        6
+      ],
+      [
+        4,
+        10
+      ],
+      [
+        -13,
+        5
+      ],
+      [
+        -3,
+        4
+      ],
+      [
+        6,
+        5
+      ],
+      [
+        6,
+        7
+      ],
+      [
+        12,
+        8
+      ],
+      [
+        11,
+        -10
+      ],
+      [
+        2,
+        -7
+      ],
+      [
+        -1,
+        -8
+      ],
+      [
+        -2,
+        -8
+      ],
+      [
+        -10,
+        -5
+      ],
+      [
+        -1,
+        -4
+      ],
+      [
+        5,
+        -13
+      ],
+      [
+        -20,
+        -10
+      ],
+      [
+        -30,
+        -9
+      ]
+    ],
+    [
+      [
+        671,
+        6410
+      ],
+      [
+        -6,
+        -6
+      ],
+      [
+        -2,
+        2
+      ],
+      [
+        -1,
+        7
+      ],
+      [
+        4,
+        6
+      ],
+      [
+        9,
+        13
+      ],
+      [
+        7,
+        -3
+      ],
+      [
+        2,
+        -3
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        -4,
+        -3
+      ],
+      [
+        -3,
+        0
+      ],
+      [
+        -4,
+        -2
+      ]
+    ],
+    [
+      [
+        764,
+        6460
+      ],
+      [
+        -1,
+        -7
+      ],
+      [
+        -1,
+        -3
+      ],
+      [
+        -14,
+        4
+      ],
+      [
+        -9,
+        -2
+      ],
+      [
+        -1,
+        5
+      ],
+      [
+        0,
+        4
+      ],
+      [
+        15,
+        6
+      ],
+      [
+        6,
+        0
+      ],
+      [
+        4,
+        -3
+      ],
+      [
+        1,
+        -4
+      ]
+    ],
+    [
+      [
+        920,
+        6555
+      ],
+      [
+        -28,
+        -20
+      ],
+      [
+        -9,
+        -15
+      ],
+      [
+        -6,
+        -15
+      ],
+      [
+        -6,
+        -7
+      ],
+      [
+        -4,
+        -2
+      ],
+      [
+        -4,
+        -4
+      ],
+      [
+        -9,
+        -10
+      ],
+      [
+        -4,
+        -1
+      ],
+      [
+        -29,
+        -23
+      ],
+      [
+        -2,
+        -1
+      ],
+      [
+        1,
+        6
+      ],
+      [
+        9,
+        9
+      ],
+      [
+        6,
+        8
+      ],
+      [
+        6,
+        13
+      ],
+      [
+        4,
+        5
+      ],
+      [
+        1,
+        6
+      ],
+      [
+        1,
+        14
+      ],
+      [
+        1,
+        5
+      ],
+      [
+        7,
+        10
+      ],
+      [
+        4,
+        5
+      ],
+      [
+        6,
+        2
+      ],
+      [
+        12,
+        -2
+      ],
+      [
+        5,
+        5
+      ],
+      [
+        2,
+        4
+      ],
+      [
+        -3,
+        4
+      ],
+      [
+        -1,
+        6
+      ],
+      [
+        1,
+        10
+      ],
+      [
+        4,
+        10
+      ],
+      [
+        6,
+        8
+      ],
+      [
+        8,
+        6
+      ],
+      [
+        11,
+        5
+      ],
+      [
+        8,
+        0
+      ],
+      [
+        14,
+        -10
+      ],
+      [
+        2,
+        -4
+      ],
+      [
+        -3,
+        -10
+      ],
+      [
+        -2,
+        -9
+      ],
+      [
+        -9,
+        -8
+      ]
+    ],
+    [
+      [
+        1078,
+        6627
+      ],
+      [
+        -2,
+        0
+      ],
+      [
+        -2,
+        4
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        1,
+        3
+      ],
+      [
+        5,
+        7
+      ],
+      [
+        3,
+        3
+      ],
+      [
+        3,
+        1
+      ],
+      [
+        1,
+        -2
+      ],
+      [
+        -3,
+        -9
+      ],
+      [
+        -4,
+        -5
+      ],
+      [
+        -2,
+        -7
+      ]
+    ],
+    [
+      [
+        1041,
+        6661
+      ],
+      [
+        4,
+        -9
+      ],
+      [
+        7,
+        6
+      ],
+      [
+        5,
+        8
+      ],
+      [
+        3,
+        10
+      ],
+      [
+        3,
+        4
+      ],
+      [
+        3,
+        -6
+      ],
+      [
+        10,
+        -7
+      ],
+      [
+        -8,
+        -11
+      ],
+      [
+        -15,
+        -17
+      ],
+      [
+        -6,
+        -11
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        15,
+        4
+      ],
+      [
+        4,
+        -1
+      ],
+      [
+        3,
+        -4
+      ],
+      [
+        -4,
+        -4
+      ],
+      [
+        -8,
+        -4
+      ],
+      [
+        -7,
+        -8
+      ],
+      [
+        -17,
+        -14
+      ],
+      [
+        -6,
+        -12
+      ],
+      [
+        -7,
+        -4
+      ],
+      [
+        -10,
+        -1
+      ],
+      [
+        -17,
+        -8
+      ],
+      [
+        -11,
+        -7
+      ],
+      [
+        -2,
+        -4
+      ],
+      [
+        -4,
+        -2
+      ],
+      [
+        -4,
+        1
+      ],
+      [
+        -4,
+        -4
+      ],
+      [
+        -5,
+        -6
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -7,
+        -1
+      ],
+      [
+        -3,
+        -2
+      ],
+      [
+        -4,
+        0
+      ],
+      [
+        -10,
+        8
+      ],
+      [
+        -2,
+        4
+      ],
+      [
+        9,
+        9
+      ],
+      [
+        6,
+        3
+      ],
+      [
+        10,
+        1
+      ],
+      [
+        9,
+        9
+      ],
+      [
+        20,
+        11
+      ],
+      [
+        6,
+        6
+      ],
+      [
+        4,
+        21
+      ],
+      [
+        5,
+        3
+      ],
+      [
+        2,
+        9
+      ],
+      [
+        11,
+        -1
+      ],
+      [
+        5,
+        -9
+      ],
+      [
+        2,
+        -1
+      ],
+      [
+        1,
+        1
+      ],
+      [
+        0,
+        7
+      ],
+      [
+        6,
+        5
+      ],
+      [
+        -3,
+        4
+      ],
+      [
+        -11,
+        5
+      ],
+      [
+        -7,
+        2
+      ],
+      [
+        -5,
+        0
+      ],
+      [
+        -4,
+        3
+      ],
+      [
+        -3,
+        5
+      ],
+      [
+        -1,
+        6
+      ],
+      [
+        0,
+        6
+      ],
+      [
+        2,
+        6
+      ],
+      [
+        5,
+        7
+      ],
+      [
+        6,
+        4
+      ],
+      [
+        11,
+        3
+      ],
+      [
+        10,
+        4
+      ],
+      [
+        6,
+        1
+      ],
+      [
+        4,
+        -2
+      ],
+      [
+        1,
+        -18
+      ]
+    ],
+    [
+      [
+        1111,
+        6693
+      ],
+      [
+        -4,
+        -3
+      ],
+      [
+        -2,
+        -1
+      ],
+      [
+        -3,
+        2
+      ],
+      [
+        -9,
+        -2
+      ],
+      [
+        -2,
+        1
+      ],
+      [
+        -4,
+        12
+      ],
+      [
+        0,
+        6
+      ],
+      [
+        2,
+        4
+      ],
+      [
+        4,
+        4
+      ],
+      [
+        6,
+        4
+      ],
+      [
+        7,
+        -1
+      ],
+      [
+        12,
+        -10
+      ],
+      [
+        5,
+        -6
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        -4,
+        -4
+      ],
+      [
+        -9,
+        -2
+      ]
+    ],
+    [
+      [
+        1136,
+        6706
+      ],
+      [
+        -4,
+        -1
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        0,
+        8
+      ],
+      [
+        -3,
+        13
+      ],
+      [
+        5,
+        5
+      ],
+      [
+        4,
+        1
+      ],
+      [
+        1,
+        -2
+      ],
+      [
+        5,
+        -10
+      ],
+      [
+        4,
+        -2
+      ],
+      [
+        3,
+        -2
+      ],
+      [
+        -6,
+        -3
+      ],
+      [
+        -8,
+        -9
+      ]
+    ],
+    [
+      [
+        1406,
+        6757
+      ],
+      [
+        -8,
+        -5
+      ],
+      [
+        -8,
+        5
+      ],
+      [
+        -7,
+        8
+      ],
+      [
+        -1,
+        9
+      ],
+      [
+        16,
+        -6
+      ],
+      [
+        3,
+        -3
+      ],
+      [
+        5,
+        -8
+      ]
+    ],
+    [
+      [
+        1429,
+        6842
+      ],
+      [
+        -2,
+        -1
+      ],
+      [
+        -6,
+        5
+      ],
+      [
+        -2,
+        5
+      ],
+      [
+        -2,
+        7
+      ],
+      [
+        13,
+        9
+      ],
+      [
+        2,
+        1
+      ],
+      [
+        3,
+        -6
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        -3,
+        -13
+      ],
+      [
+        -3,
+        -3
+      ]
+    ],
+    [
+      [
+        1323,
+        6867
+      ],
+      [
+        9,
+        -31
+      ],
+      [
+        4,
+        -7
+      ],
+      [
+        6,
+        -3
+      ],
+      [
+        7,
+        -3
+      ],
+      [
+        5,
+        -5
+      ],
+      [
+        4,
+        -7
+      ],
+      [
+        1,
+        -3
+      ],
+      [
+        -25,
+        12
+      ],
+      [
+        -16,
+        -18
+      ],
+      [
+        -4,
+        -3
+      ],
+      [
+        -44,
+        -1
+      ],
+      [
+        -9,
+        -3
+      ],
+      [
+        -6,
+        -6
+      ],
+      [
+        -10,
+        -17
+      ],
+      [
+        -5,
+        -7
+      ],
+      [
+        -5,
+        -3
+      ],
+      [
+        -12,
+        -5
+      ],
+      [
+        -14,
+        1
+      ],
+      [
+        -7,
+        2
+      ],
+      [
+        -4,
+        8
+      ],
+      [
+        -3,
+        16
+      ],
+      [
+        0,
+        4
+      ],
+      [
+        1,
+        8
+      ],
+      [
+        13,
+        10
+      ],
+      [
+        4,
+        6
+      ],
+      [
+        16,
+        36
+      ],
+      [
+        4,
+        5
+      ],
+      [
+        5,
+        1
+      ],
+      [
+        14,
+        -2
+      ],
+      [
+        11,
+        10
+      ],
+      [
+        25,
+        16
+      ],
+      [
+        6,
+        2
+      ],
+      [
+        18,
+        0
+      ],
+      [
+        4,
+        -2
+      ],
+      [
+        4,
+        -5
+      ],
+      [
+        3,
+        -6
+      ]
+    ],
+    [
+      [
+        1693,
+        6865
+      ],
+      [
+        -3,
+        -1
+      ],
+      [
+        -2,
+        3
+      ],
+      [
+        -3,
+        10
+      ],
+      [
+        -1,
+        5
+      ],
+      [
+        7,
+        -4
+      ],
+      [
+        2,
+        -7
+      ],
+      [
+        0,
+        -6
+      ]
+    ],
+    [
+      [
+        1680,
+        6900
+      ],
+      [
+        -1,
+        -16
+      ],
+      [
+        -1,
+        -2
+      ],
+      [
+        -3,
+        4
+      ],
+      [
+        -5,
+        -4
+      ],
+      [
+        -2,
+        3
+      ],
+      [
+        1,
+        5
+      ],
+      [
+        -1,
+        4
+      ],
+      [
+        4,
+        1
+      ],
+      [
+        1,
+        7
+      ],
+      [
+        -1,
+        3
+      ],
+      [
+        2,
+        7
+      ],
+      [
+        3,
+        2
+      ],
+      [
+        3,
+        -14
+      ]
+    ],
+    [
+      [
+        4213,
+        6886
+      ],
+      [
+        9,
+        -25
+      ],
+      [
+        1,
+        -9
+      ],
+      [
+        -9,
+        -3
+      ],
+      [
+        -7,
+        2
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -1,
+        4
+      ],
+      [
+        3,
+        13
+      ],
+      [
+        -5,
+        7
+      ],
+      [
+        -5,
+        3
+      ],
+      [
+        -5,
+        -4
+      ],
+      [
+        0,
+        12
+      ],
+      [
+        3,
+        9
+      ],
+      [
+        -2,
+        12
+      ],
+      [
+        0,
+        9
+      ],
+      [
+        2,
+        3
+      ],
+      [
+        4,
+        0
+      ],
+      [
+        10,
+        -10
+      ],
+      [
+        6,
+        -25
+      ]
+    ],
+    [
+      [
+        1647,
+        6895
+      ],
+      [
+        -5,
+        -4
+      ],
+      [
+        -2,
+        -5
+      ],
+      [
+        -4,
+        -2
+      ],
+      [
+        -4,
+        -5
+      ],
+      [
+        -11,
+        -19
+      ],
+      [
+        -5,
+        -4
+      ],
+      [
+        5,
+        17
+      ],
+      [
+        1,
+        5
+      ],
+      [
+        0,
+        4
+      ],
+      [
+        -2,
+        12
+      ],
+      [
+        4,
+        0
+      ],
+      [
+        3,
+        2
+      ],
+      [
+        5,
+        11
+      ],
+      [
+        6,
+        1
+      ],
+      [
+        5,
+        14
+      ],
+      [
+        3,
+        1
+      ],
+      [
+        2,
+        -2
+      ],
+      [
+        -3,
+        -8
+      ],
+      [
+        5,
+        -8
+      ],
+      [
+        -1,
+        -7
+      ],
+      [
+        -2,
+        -3
+      ]
+    ],
+    [
+      [
+        4076,
+        6851
+      ],
+      [
+        2,
+        -3
+      ],
+      [
+        2,
+        2
+      ],
+      [
+        4,
+        7
+      ],
+      [
+        6,
+        -2
+      ],
+      [
+        5,
+        -2
+      ],
+      [
+        3,
+        -3
+      ],
+      [
+        -2,
+        -10
+      ],
+      [
+        -1,
+        -16
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        -3,
+        -8
+      ],
+      [
+        -9,
+        5
+      ],
+      [
+        -7,
+        10
+      ],
+      [
+        -11,
+        18
+      ],
+      [
+        -6,
+        13
+      ],
+      [
+        -1,
+        5
+      ],
+      [
+        -3,
+        4
+      ],
+      [
+        -8,
+        22
+      ],
+      [
+        -4,
+        17
+      ],
+      [
+        -7,
+        2
+      ],
+      [
+        -8,
+        5
+      ],
+      [
+        -3,
+        9
+      ],
+      [
+        2,
+        9
+      ],
+      [
+        12,
+        4
+      ],
+      [
+        18,
+        -22
+      ],
+      [
+        3,
+        -9
+      ],
+      [
+        6,
+        -10
+      ],
+      [
+        1,
+        -15
+      ],
+      [
+        3,
+        -6
+      ],
+      [
+        8,
+        -20
+      ]
+    ],
+    [
+      [
+        1606,
+        6935
+      ],
+      [
+        -1,
+        -15
+      ],
+      [
+        -12,
+        10
+      ],
+      [
+        -4,
+        4
+      ],
+      [
+        3,
+        4
+      ],
+      [
+        11,
+        1
+      ],
+      [
+        3,
+        -4
+      ]
+    ],
+    [
+      [
+        1574,
+        6931
+      ],
+      [
+        2,
+        0
+      ],
+      [
+        2,
+        1
+      ],
+      [
+        6,
+        11
+      ],
+      [
+        2,
+        0
+      ],
+      [
+        0,
+        -3
+      ],
+      [
+        -3,
+        -11
+      ],
+      [
+        5,
+        -14
+      ],
+      [
+        5,
+        -7
+      ],
+      [
+        -1,
+        -2
+      ],
+      [
+        -11,
+        -5
+      ],
+      [
+        -8,
+        4
+      ],
+      [
+        -5,
+        -2
+      ],
+      [
+        -4,
+        -5
+      ],
+      [
+        -2,
+        6
+      ],
+      [
+        -2,
+        26
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        5,
+        9
+      ],
+      [
+        6,
+        4
+      ],
+      [
+        2,
+        -1
+      ],
+      [
+        2,
+        -4
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        -2,
+        -8
+      ]
+    ],
+    [
+      [
+        4036,
+        6974
+      ],
+      [
+        2,
+        -5
+      ],
+      [
+        0,
+        -3
+      ],
+      [
+        -13,
+        -13
+      ],
+      [
+        0,
+        -3
+      ],
+      [
+        -3,
+        -7
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -5,
+        -9
+      ],
+      [
+        -9,
+        -9
+      ],
+      [
+        1,
+        27
+      ],
+      [
+        -9,
+        16
+      ],
+      [
+        10,
+        9
+      ],
+      [
+        6,
+        -3
+      ],
+      [
+        10,
+        -1
+      ],
+      [
+        10,
+        7
+      ],
+      [
+        3,
+        -3
+      ]
+    ],
+    [
+      [
+        2035,
+        7027
+      ],
+      [
+        -4,
+        -6
+      ],
+      [
+        -7,
+        1
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -1,
+        5
+      ],
+      [
+        11,
+        16
+      ],
+      [
+        2,
+        2
+      ],
+      [
+        2,
+        -1
+      ],
+      [
+        1,
+        -6
+      ],
+      [
+        0,
+        -13
+      ]
+    ],
+    [
+      [
+        4245,
+        6964
+      ],
+      [
+        -3,
+        -21
+      ],
+      [
+        -6,
+        -21
+      ],
+      [
+        -9,
+        -12
+      ],
+      [
+        -7,
+        3
+      ],
+      [
+        -5,
+        9
+      ],
+      [
+        -5,
+        -1
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -3,
+        8
+      ],
+      [
+        2,
+        10
+      ],
+      [
+        -2,
+        8
+      ],
+      [
+        -2,
+        -7
+      ],
+      [
+        -5,
+        -6
+      ],
+      [
+        -10,
+        -8
+      ],
+      [
+        -8,
+        -16
+      ],
+      [
+        -3,
+        -10
+      ],
+      [
+        -5,
+        11
+      ],
+      [
+        -2,
+        26
+      ],
+      [
+        -1,
+        11
+      ],
+      [
+        8,
+        17
+      ],
+      [
+        10,
+        15
+      ],
+      [
+        2,
+        47
+      ],
+      [
+        32,
+        24
+      ],
+      [
+        3,
+        -1
+      ],
+      [
+        11,
+        -18
+      ],
+      [
+        11,
+        -25
+      ],
+      [
+        2,
+        -11
+      ],
+      [
+        1,
+        -19
+      ],
+      [
+        -2,
+        -15
+      ]
+    ],
+    [
+      [
+        4013,
+        7126
+      ],
+      [
+        17,
+        -4
+      ],
+      [
+        15,
+        0
+      ],
+      [
+        6,
+        -8
+      ],
+      [
+        3,
+        -8
+      ],
+      [
+        2,
+        -8
+      ],
+      [
+        1,
+        -7
+      ],
+      [
+        -1,
+        -5
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        1,
+        -1
+      ],
+      [
+        30,
+        -19
+      ],
+      [
+        15,
+        -19
+      ],
+      [
+        5,
+        -10
+      ],
+      [
+        4,
+        -8
+      ],
+      [
+        6,
+        -21
+      ],
+      [
+        13,
+        -25
+      ],
+      [
+        6,
+        -7
+      ],
+      [
+        4,
+        -8
+      ],
+      [
+        -2,
+        0
+      ],
+      [
+        -9,
+        5
+      ],
+      [
+        -19,
+        17
+      ],
+      [
+        -2,
+        -1
+      ],
+      [
+        -2,
+        -9
+      ],
+      [
+        -3,
+        -7
+      ],
+      [
+        -4,
+        -6
+      ],
+      [
+        3,
+        -2
+      ],
+      [
+        16,
+        4
+      ],
+      [
+        13,
+        -16
+      ],
+      [
+        5,
+        -3
+      ],
+      [
+        5,
+        -12
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        -3,
+        -9
+      ],
+      [
+        -2,
+        -3
+      ],
+      [
+        1,
+        -3
+      ],
+      [
+        4,
+        -1
+      ],
+      [
+        14,
+        3
+      ],
+      [
+        3,
+        -5
+      ],
+      [
+        -3,
+        -33
+      ],
+      [
+        3,
+        -12
+      ],
+      [
+        -1,
+        -6
+      ],
+      [
+        -1,
+        -7
+      ],
+      [
+        0,
+        -6
+      ],
+      [
+        1,
+        -7
+      ],
+      [
+        0,
+        -6
+      ],
+      [
+        -3,
+        -14
+      ],
+      [
+        -4,
+        -3
+      ],
+      [
+        -7,
+        0
+      ],
+      [
+        -5,
+        4
+      ],
+      [
+        -6,
+        13
+      ],
+      [
+        -7,
+        20
+      ],
+      [
+        -3,
+        3
+      ],
+      [
+        -9,
+        3
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        -6,
+        1
+      ],
+      [
+        -4,
+        8
+      ],
+      [
+        1,
+        11
+      ],
+      [
+        -4,
+        11
+      ],
+      [
+        1,
+        5
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -4,
+        -3
+      ],
+      [
+        2,
+        -11
+      ],
+      [
+        -2,
+        -9
+      ],
+      [
+        -7,
+        4
+      ],
+      [
+        -12,
+        27
+      ],
+      [
+        -13,
+        21
+      ],
+      [
+        -5,
+        5
+      ],
+      [
+        1,
+        6
+      ],
+      [
+        7,
+        4
+      ],
+      [
+        5,
+        -1
+      ],
+      [
+        1,
+        4
+      ],
+      [
+        -11,
+        21
+      ],
+      [
+        1,
+        6
+      ],
+      [
+        4,
+        10
+      ],
+      [
+        -5,
+        4
+      ],
+      [
+        -14,
+        -3
+      ],
+      [
+        -5,
+        2
+      ],
+      [
+        -4,
+        9
+      ],
+      [
+        -3,
+        7
+      ],
+      [
+        -12,
+        1
+      ],
+      [
+        -4,
+        -1
+      ],
+      [
+        -8,
+        11
+      ],
+      [
+        -4,
+        7
+      ],
+      [
+        2,
+        4
+      ],
+      [
+        7,
+        6
+      ],
+      [
+        4,
+        -1
+      ],
+      [
+        8,
+        -6
+      ],
+      [
+        4,
+        0
+      ],
+      [
+        8,
+        9
+      ],
+      [
+        1,
+        8
+      ],
+      [
+        6,
+        6
+      ],
+      [
+        -1,
+        7
+      ],
+      [
+        -3,
+        12
+      ],
+      [
+        -8,
+        3
+      ],
+      [
+        -15,
+        -7
+      ],
+      [
+        -13,
+        -11
+      ],
+      [
+        -5,
+        5
+      ],
+      [
+        -1,
+        6
+      ],
+      [
+        14,
+        18
+      ],
+      [
+        6,
+        10
+      ],
+      [
+        -1,
+        6
+      ],
+      [
+        -5,
+        8
+      ],
+      [
+        0,
+        19
+      ],
+      [
+        3,
+        4
+      ]
+    ],
+    [
+      [
+        4083,
+        7108
+      ],
+      [
+        -4,
+        0
+      ],
+      [
+        -6,
+        3
+      ],
+      [
+        -13,
+        15
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        2,
+        5
+      ],
+      [
+        7,
+        10
+      ],
+      [
+        3,
+        2
+      ],
+      [
+        18,
+        -1
+      ],
+      [
+        6,
+        -3
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        -2,
+        -4
+      ],
+      [
+        -1,
+        -5
+      ],
+      [
+        1,
+        -5
+      ],
+      [
+        -2,
+        -5
+      ],
+      [
+        -10,
+        -8
+      ]
+    ],
+    [
+      [
+        4143,
+        7082
+      ],
+      [
+        -1,
+        -31
+      ],
+      [
+        -4,
+        1
+      ],
+      [
+        -3,
+        0
+      ],
+      [
+        -7,
+        -4
+      ],
+      [
+        -8,
+        2
+      ],
+      [
+        -3,
+        3
+      ],
+      [
+        -1,
+        4
+      ],
+      [
+        1,
+        10
+      ],
+      [
+        -4,
+        5
+      ],
+      [
+        -14,
+        2
+      ],
+      [
+        -5,
+        2
+      ],
+      [
+        -3,
+        10
+      ],
+      [
+        0,
+        13
+      ],
+      [
+        2,
+        5
+      ],
+      [
+        7,
+        3
+      ],
+      [
+        5,
+        16
+      ],
+      [
+        3,
+        2
+      ],
+      [
+        11,
+        31
+      ],
+      [
+        6,
+        -2
+      ],
+      [
+        10,
+        -19
+      ],
+      [
+        12,
+        -27
+      ],
+      [
+        -4,
+        -26
+      ]
+    ],
+    [
+      [
+        2114,
+        7144
+      ],
+      [
+        -6,
+        -4
+      ],
+      [
+        -2,
+        1
+      ],
+      [
+        0,
+        4
+      ],
+      [
+        1,
+        6
+      ],
+      [
+        3,
+        6
+      ],
+      [
+        9,
+        11
+      ],
+      [
+        10,
+        8
+      ],
+      [
+        5,
+        -1
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        -6,
+        -10
+      ],
+      [
+        -15,
+        -17
+      ]
+    ],
+    [
+      [
+        2157,
+        7160
+      ],
+      [
+        -5,
+        -1
+      ],
+      [
+        -6,
+        5
+      ],
+      [
+        0,
+        6
+      ],
+      [
+        10,
+        7
+      ],
+      [
+        9,
+        -1
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        -1,
+        -3
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -5,
+        -2
+      ]
+    ],
+    [
+      [
+        759,
+        7182
+      ],
+      [
+        12,
+        -3
+      ],
+      [
+        6,
+        2
+      ],
+      [
+        6,
+        -2
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        -10,
+        -10
+      ],
+      [
+        -4,
+        0
+      ],
+      [
+        -12,
+        12
+      ],
+      [
+        1,
+        5
+      ]
+    ],
+    [
+      [
+        4086,
+        7162
+      ],
+      [
+        -1,
+        -3
+      ],
+      [
+        -11,
+        0
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -2,
+        9
+      ],
+      [
+        1,
+        7
+      ],
+      [
+        3,
+        6
+      ],
+      [
+        3,
+        11
+      ],
+      [
+        3,
+        19
+      ],
+      [
+        17,
+        -21
+      ],
+      [
+        5,
+        -9
+      ],
+      [
+        2,
+        -12
+      ],
+      [
+        -6,
+        -4
+      ],
+      [
+        -7,
+        -2
+      ],
+      [
+        -3,
+        -3
+      ]
+    ],
+    [
+      [
+        3975,
+        7222
+      ],
+      [
+        5,
+        -13
+      ],
+      [
+        9,
+        1
+      ],
+      [
+        5,
+        -10
+      ],
+      [
+        3,
+        -15
+      ],
+      [
+        -2,
+        -9
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -4,
+        -6
+      ],
+      [
+        -3,
+        -18
+      ],
+      [
+        1,
+        -19
+      ],
+      [
+        -1,
+        -18
+      ],
+      [
+        -5,
+        -19
+      ],
+      [
+        -1,
+        -12
+      ],
+      [
+        -2,
+        -4
+      ],
+      [
+        -2,
+        -1
+      ],
+      [
+        -2,
+        3
+      ],
+      [
+        -4,
+        3
+      ],
+      [
+        -5,
+        -11
+      ],
+      [
+        -6,
+        0
+      ],
+      [
+        -5,
+        24
+      ],
+      [
+        4,
+        40
+      ],
+      [
+        10,
+        8
+      ],
+      [
+        -6,
+        11
+      ],
+      [
+        -12,
+        13
+      ],
+      [
+        1,
+        7
+      ],
+      [
+        -10,
+        20
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        1,
+        17
+      ],
+      [
+        9,
+        15
+      ],
+      [
+        12,
+        3
+      ],
+      [
+        8,
+        -6
+      ],
+      [
+        5,
+        -6
+      ],
+      [
+        1,
+        -5
+      ]
+    ],
+    [
+      [
+        4031,
+        7253
+      ],
+      [
+        6,
+        -6
+      ],
+      [
+        3,
+        6
+      ],
+      [
+        6,
+        0
+      ],
+      [
+        11,
+        -6
+      ],
+      [
+        7,
+        -8
+      ],
+      [
+        4,
+        -10
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        -1,
+        -13
+      ],
+      [
+        1,
+        -14
+      ],
+      [
+        -1,
+        -7
+      ],
+      [
+        -1,
+        -5
+      ],
+      [
+        -3,
+        -5
+      ],
+      [
+        -3,
+        0
+      ],
+      [
+        -8,
+        12
+      ],
+      [
+        -10,
+        21
+      ],
+      [
+        -8,
+        7
+      ],
+      [
+        0,
+        -3
+      ],
+      [
+        2,
+        -6
+      ],
+      [
+        6,
+        -11
+      ],
+      [
+        1,
+        -7
+      ],
+      [
+        5,
+        -9
+      ],
+      [
+        1,
+        -6
+      ],
+      [
+        2,
+        -9
+      ],
+      [
+        0,
+        -7
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        -2,
+        -4
+      ],
+      [
+        -3,
+        -2
+      ],
+      [
+        -15,
+        2
+      ],
+      [
+        -9,
+        -5
+      ],
+      [
+        -11,
+        3
+      ],
+      [
+        -2,
+        4
+      ],
+      [
+        -2,
+        6
+      ],
+      [
+        -1,
+        15
+      ],
+      [
+        -2,
+        22
+      ],
+      [
+        0,
+        16
+      ],
+      [
+        -7,
+        16
+      ],
+      [
+        -5,
+        9
+      ],
+      [
+        -9,
+        8
+      ],
+      [
+        -5,
+        8
+      ],
+      [
+        1,
+        6
+      ],
+      [
+        9,
+        5
+      ],
+      [
+        14,
+        -1
+      ],
+      [
+        31,
+        -11
+      ]
+    ],
+    [
+      [
+        2265,
+        7276
+      ],
+      [
+        -12,
+        -6
+      ],
+      [
+        -2,
+        0
+      ],
+      [
+        -7,
+        -13
+      ],
+      [
+        -5,
+        -5
+      ],
+      [
+        -7,
+        10
+      ],
+      [
+        1,
+        15
+      ],
+      [
+        7,
+        10
+      ],
+      [
+        31,
+        -3
+      ],
+      [
+        3,
+        -3
+      ],
+      [
+        0,
+        -2
+      ],
+      [
+        -3,
+        -2
+      ],
+      [
+        -6,
+        -1
+      ]
+    ],
+    [
+      [
+        722,
+        7287
+      ],
+      [
+        -9,
+        -9
+      ],
+      [
+        -8,
+        3
+      ],
+      [
+        -3,
+        7
+      ],
+      [
+        0,
+        3
+      ],
+      [
+        24,
+        7
+      ],
+      [
+        -4,
+        -11
+      ]
+    ],
+    [
+      [
+        3886,
+        7319
+      ],
+      [
+        8,
+        -21
+      ],
+      [
+        6,
+        -16
+      ],
+      [
+        5,
+        -20
+      ],
+      [
+        8,
+        -40
+      ],
+      [
+        4,
+        -15
+      ],
+      [
+        1,
+        -9
+      ],
+      [
+        1,
+        -22
+      ],
+      [
+        -1,
+        -4
+      ],
+      [
+        -3,
+        -5
+      ],
+      [
+        0,
+        -6
+      ],
+      [
+        2,
+        -17
+      ],
+      [
+        0,
+        -25
+      ],
+      [
+        -2,
+        -14
+      ],
+      [
+        -3,
+        -2
+      ],
+      [
+        -6,
+        4
+      ],
+      [
+        -5,
+        8
+      ],
+      [
+        -4,
+        8
+      ],
+      [
+        -9,
+        25
+      ],
+      [
+        -3,
+        12
+      ],
+      [
+        0,
+        9
+      ],
+      [
+        2,
+        6
+      ],
+      [
+        3,
+        4
+      ],
+      [
+        5,
+        10
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        -4,
+        -2
+      ],
+      [
+        -8,
+        -2
+      ],
+      [
+        -7,
+        8
+      ],
+      [
+        -6,
+        5
+      ],
+      [
+        2,
+        14
+      ],
+      [
+        -2,
+        4
+      ],
+      [
+        -11,
+        -4
+      ],
+      [
+        -4,
+        4
+      ],
+      [
+        -1,
+        6
+      ],
+      [
+        0,
+        8
+      ],
+      [
+        2,
+        7
+      ],
+      [
+        11,
+        18
+      ],
+      [
+        -1,
+        4
+      ],
+      [
+        -5,
+        0
+      ],
+      [
+        -7,
+        7
+      ],
+      [
+        -3,
+        20
+      ],
+      [
+        -7,
+        12
+      ],
+      [
+        -4,
+        -1
+      ],
+      [
+        -10,
+        -33
+      ],
+      [
+        -5,
+        -8
+      ],
+      [
+        -13,
+        -4
+      ],
+      [
+        2,
+        9
+      ],
+      [
+        2,
+        8
+      ],
+      [
+        -5,
+        25
+      ],
+      [
+        0,
+        9
+      ],
+      [
+        3,
+        8
+      ],
+      [
+        10,
+        2
+      ],
+      [
+        5,
+        5
+      ],
+      [
+        4,
+        6
+      ],
+      [
+        1,
+        7
+      ],
+      [
+        7,
+        17
+      ],
+      [
+        3,
+        4
+      ],
+      [
+        10,
+        0
+      ],
+      [
+        19,
+        -20
+      ],
+      [
+        6,
+        -3
+      ],
+      [
+        8,
+        -12
+      ]
+    ],
+    [
+      [
+        2244,
+        7414
+      ],
+      [
+        -3,
+        -5
+      ],
+      [
+        -2,
+        1
+      ],
+      [
+        -5,
+        6
+      ],
+      [
+        -10,
+        9
+      ],
+      [
+        -5,
+        7
+      ],
+      [
+        0,
+        2
+      ],
+      [
+        3,
+        3
+      ],
+      [
+        12,
+        -7
+      ],
+      [
+        5,
+        -7
+      ],
+      [
+        5,
+        -9
+      ]
+    ],
+    [
+      [
+        2274,
+        7409
+      ],
+      [
+        1,
+        -10
+      ],
+      [
+        4,
+        1
+      ],
+      [
+        14,
+        11
+      ],
+      [
+        7,
+        3
+      ],
+      [
+        9,
+        0
+      ],
+      [
+        8,
+        -5
+      ],
+      [
+        1,
+        -3
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        -6,
+        -9
+      ],
+      [
+        0,
+        -6
+      ],
+      [
+        6,
+        -11
+      ],
+      [
+        16,
+        -6
+      ],
+      [
+        2,
+        -3
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        -11,
+        -18
+      ],
+      [
+        -4,
+        -4
+      ],
+      [
+        -3,
+        -1
+      ],
+      [
+        -20,
+        3
+      ],
+      [
+        -18,
+        6
+      ],
+      [
+        -7,
+        1
+      ],
+      [
+        -2,
+        -2
+      ],
+      [
+        -5,
+        -6
+      ],
+      [
+        3,
+        -1
+      ],
+      [
+        16,
+        -2
+      ],
+      [
+        6,
+        -8
+      ],
+      [
+        2,
+        -6
+      ],
+      [
+        1,
+        -6
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -7,
+        -2
+      ],
+      [
+        -8,
+        0
+      ],
+      [
+        -10,
+        -7
+      ],
+      [
+        -5,
+        -9
+      ],
+      [
+        -20,
+        -2
+      ],
+      [
+        -16,
+        -11
+      ],
+      [
+        -5,
+        -6
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        -6,
+        -5
+      ],
+      [
+        -13,
+        -5
+      ],
+      [
+        8,
+        -4
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        1,
+        -5
+      ],
+      [
+        -2,
+        -4
+      ],
+      [
+        -10,
+        -20
+      ],
+      [
+        -19,
+        -16
+      ],
+      [
+        -5,
+        1
+      ],
+      [
+        -2,
+        2
+      ],
+      [
+        -2,
+        3
+      ],
+      [
+        0,
+        3
+      ],
+      [
+        25,
+        32
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        -7,
+        1
+      ],
+      [
+        -11,
+        9
+      ],
+      [
+        -7,
+        -6
+      ],
+      [
+        -2,
+        0
+      ],
+      [
+        2,
+        8
+      ],
+      [
+        5,
+        9
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        -2,
+        2
+      ],
+      [
+        -7,
+        2
+      ],
+      [
+        -10,
+        0
+      ],
+      [
+        -7,
+        -2
+      ],
+      [
+        -4,
+        -5
+      ],
+      [
+        -1,
+        -2
+      ],
+      [
+        10,
+        1
+      ],
+      [
+        3,
+        -2
+      ],
+      [
+        3,
+        -5
+      ],
+      [
+        1,
+        -5
+      ],
+      [
+        1,
+        -6
+      ],
+      [
+        -2,
+        -8
+      ],
+      [
+        -5,
+        -10
+      ],
+      [
+        -7,
+        2
+      ],
+      [
+        -14,
+        22
+      ],
+      [
+        -7,
+        32
+      ],
+      [
+        -12,
+        25
+      ],
+      [
+        -1,
+        6
+      ],
+      [
+        4,
+        15
+      ],
+      [
+        12,
+        22
+      ],
+      [
+        14,
+        6
+      ],
+      [
+        9,
+        9
+      ],
+      [
+        9,
+        2
+      ],
+      [
+        6,
+        0
+      ],
+      [
+        8,
+        -4
+      ],
+      [
+        3,
+        -8
+      ],
+      [
+        -2,
+        -4
+      ],
+      [
+        1,
+        -2
+      ],
+      [
+        5,
+        -5
+      ],
+      [
+        6,
+        -17
+      ],
+      [
+        7,
+        -16
+      ],
+      [
+        4,
+        -6
+      ],
+      [
+        6,
+        -4
+      ],
+      [
+        -6,
+        12
+      ],
+      [
+        -3,
+        15
+      ],
+      [
+        -2,
+        29
+      ],
+      [
+        -2,
+        7
+      ],
+      [
+        3,
+        2
+      ],
+      [
+        10,
+        -1
+      ],
+      [
+        0,
+        4
+      ],
+      [
+        -10,
+        10
+      ],
+      [
+        -7,
+        8
+      ],
+      [
+        -2,
+        7
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        6,
+        9
+      ],
+      [
+        3,
+        2
+      ],
+      [
+        3,
+        1
+      ],
+      [
+        7,
+        -2
+      ],
+      [
+        3,
+        -2
+      ],
+      [
+        8,
+        -19
+      ],
+      [
+        4,
+        -6
+      ],
+      [
+        3,
+        0
+      ],
+      [
+        3,
+        3
+      ],
+      [
+        3,
+        7
+      ],
+      [
+        3,
+        3
+      ],
+      [
+        3,
+        1
+      ],
+      [
+        10,
+        -2
+      ],
+      [
+        3,
+        1
+      ],
+      [
+        1,
+        4
+      ],
+      [
+        0,
+        9
+      ],
+      [
+        3,
+        3
+      ],
+      [
+        0,
+        6
+      ],
+      [
+        -5,
+        9
+      ],
+      [
+        6,
+        2
+      ],
+      [
+        19,
+        -7
+      ],
+      [
+        9,
+        -7
+      ],
+      [
+        -5,
+        -14
+      ]
+    ],
+    [
+      [
+        3818,
+        7489
+      ],
+      [
+        13,
+        -18
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        -3,
+        -12
+      ],
+      [
+        -7,
+        -4
+      ],
+      [
+        2,
+        -5
+      ],
+      [
+        6,
+        -4
+      ],
+      [
+        3,
+        3
+      ],
+      [
+        14,
+        18
+      ],
+      [
+        4,
+        4
+      ],
+      [
+        3,
+        0
+      ],
+      [
+        16,
+        -5
+      ],
+      [
+        15,
+        -9
+      ],
+      [
+        4,
+        -6
+      ],
+      [
+        2,
+        -12
+      ],
+      [
+        -4,
+        -26
+      ],
+      [
+        -11,
+        -5
+      ],
+      [
+        -6,
+        1
+      ],
+      [
+        -6,
+        4
+      ],
+      [
+        -10,
+        -9
+      ],
+      [
+        8,
+        -7
+      ],
+      [
+        25,
+        -2
+      ],
+      [
+        7,
+        -14
+      ],
+      [
+        2,
+        -12
+      ],
+      [
+        -5,
+        -20
+      ],
+      [
+        -14,
+        5
+      ],
+      [
+        -12,
+        12
+      ],
+      [
+        -25,
+        17
+      ],
+      [
+        -6,
+        1
+      ],
+      [
+        -4,
+        -3
+      ],
+      [
+        -1,
+        -10
+      ],
+      [
+        0,
+        -22
+      ],
+      [
+        -6,
+        -12
+      ],
+      [
+        -20,
+        5
+      ],
+      [
+        -8,
+        17
+      ],
+      [
+        -7,
+        27
+      ],
+      [
+        -27,
+        31
+      ],
+      [
+        -8,
+        6
+      ],
+      [
+        -9,
+        19
+      ],
+      [
+        4,
+        15
+      ],
+      [
+        1,
+        9
+      ],
+      [
+        5,
+        2
+      ],
+      [
+        8,
+        7
+      ],
+      [
+        4,
+        14
+      ],
+      [
+        7,
+        -11
+      ],
+      [
+        9,
+        -12
+      ],
+      [
+        0,
+        11
+      ],
+      [
+        4,
+        8
+      ],
+      [
+        9,
+        0
+      ],
+      [
+        5,
+        2
+      ],
+      [
+        5,
+        8
+      ],
+      [
+        9,
+        4
+      ],
+      [
+        5,
+        -5
+      ]
+    ],
+    [
+      [
+        3946,
+        7486
+      ],
+      [
+        -1,
+        -4
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -13,
+        7
+      ],
+      [
+        -6,
+        9
+      ],
+      [
+        1,
+        4
+      ],
+      [
+        12,
+        4
+      ],
+      [
+        11,
+        -9
+      ],
+      [
+        8,
+        -11
+      ]
+    ],
+    [
+      [
+        3912,
+        7473
+      ],
+      [
+        23,
+        -4
+      ],
+      [
+        17,
+        1
+      ],
+      [
+        15,
+        -28
+      ],
+      [
+        10,
+        -23
+      ],
+      [
+        5,
+        -17
+      ],
+      [
+        3,
+        -15
+      ],
+      [
+        5,
+        -15
+      ],
+      [
+        -1,
+        -2
+      ],
+      [
+        -9,
+        10
+      ],
+      [
+        -6,
+        20
+      ],
+      [
+        -3,
+        8
+      ],
+      [
+        -3,
+        4
+      ],
+      [
+        -4,
+        8
+      ],
+      [
+        -6,
+        19
+      ],
+      [
+        -1,
+        6
+      ],
+      [
+        -2,
+        5
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -4,
+        -1
+      ],
+      [
+        -1,
+        -2
+      ],
+      [
+        1,
+        -13
+      ],
+      [
+        3,
+        -15
+      ],
+      [
+        16,
+        -33
+      ],
+      [
+        11,
+        -19
+      ],
+      [
+        2,
+        -6
+      ],
+      [
+        2,
+        -17
+      ],
+      [
+        -5,
+        -8
+      ],
+      [
+        6,
+        -16
+      ],
+      [
+        0,
+        -3
+      ],
+      [
+        -2,
+        -3
+      ],
+      [
+        -15,
+        -7
+      ],
+      [
+        -15,
+        -29
+      ],
+      [
+        -15,
+        -17
+      ],
+      [
+        -8,
+        -3
+      ],
+      [
+        -3,
+        3
+      ],
+      [
+        -4,
+        7
+      ],
+      [
+        -1,
+        8
+      ],
+      [
+        -1,
+        11
+      ],
+      [
+        4,
+        7
+      ],
+      [
+        8,
+        36
+      ],
+      [
+        0,
+        12
+      ],
+      [
+        -10,
+        16
+      ],
+      [
+        -6,
+        14
+      ],
+      [
+        -3,
+        18
+      ],
+      [
+        -5,
+        50
+      ],
+      [
+        -3,
+        16
+      ],
+      [
+        -3,
+        13
+      ],
+      [
+        -5,
+        10
+      ],
+      [
+        -3,
+        12
+      ],
+      [
+        -2,
+        12
+      ],
+      [
+        1,
+        5
+      ],
+      [
+        7,
+        -6
+      ],
+      [
+        10,
+        -18
+      ],
+      [
+        4,
+        -13
+      ]
+    ],
+    [
+      [
+        2318,
+        7511
+      ],
+      [
+        3,
+        -1
+      ],
+      [
+        3,
+        11
+      ],
+      [
+        3,
+        1
+      ],
+      [
+        10,
+        -10
+      ],
+      [
+        7,
+        2
+      ],
+      [
+        4,
+        -12
+      ],
+      [
+        4,
+        -1
+      ],
+      [
+        3,
+        2
+      ],
+      [
+        3,
+        -1
+      ],
+      [
+        -1,
+        -13
+      ],
+      [
+        -8,
+        -12
+      ],
+      [
+        -4,
+        -4
+      ],
+      [
+        -5,
+        4
+      ],
+      [
+        -2,
+        1
+      ],
+      [
+        -3,
+        5
+      ],
+      [
+        -2,
+        8
+      ],
+      [
+        -2,
+        0
+      ],
+      [
+        -6,
+        -9
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        3,
+        -6
+      ],
+      [
+        -1,
+        -4
+      ],
+      [
+        -6,
+        -2
+      ],
+      [
+        -6,
+        1
+      ],
+      [
+        -8,
+        -5
+      ],
+      [
+        -2,
+        3
+      ],
+      [
+        -1,
+        10
+      ],
+      [
+        -3,
+        -1
+      ],
+      [
+        -3,
+        -12
+      ],
+      [
+        -4,
+        -7
+      ],
+      [
+        -7,
+        -6
+      ],
+      [
+        -2,
+        -3
+      ],
+      [
+        -5,
+        -1
+      ],
+      [
+        -8,
+        -4
+      ],
+      [
+        -5,
+        1
+      ],
+      [
+        -29,
+        13
+      ],
+      [
+        -7,
+        4
+      ],
+      [
+        24,
+        29
+      ],
+      [
+        12,
+        11
+      ],
+      [
+        8,
+        0
+      ],
+      [
+        7,
+        -4
+      ],
+      [
+        4,
+        1
+      ],
+      [
+        0,
+        13
+      ],
+      [
+        -7,
+        9
+      ],
+      [
+        1,
+        4
+      ],
+      [
+        15,
+        7
+      ],
+      [
+        5,
+        -1
+      ],
+      [
+        6,
+        -4
+      ],
+      [
+        6,
+        -5
+      ],
+      [
+        6,
+        -8
+      ]
+    ],
+    [
+      [
+        2312,
+        7535
+      ],
+      [
+        -3,
+        -1
+      ],
+      [
+        -7,
+        6
+      ],
+      [
+        -4,
+        6
+      ],
+      [
+        3,
+        5
+      ],
+      [
+        13,
+        10
+      ],
+      [
+        6,
+        0
+      ],
+      [
+        2,
+        -2
+      ],
+      [
+        1,
+        -3
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        -3,
+        -6
+      ],
+      [
+        -8,
+        -11
+      ]
+    ],
+    [
+      [
+        1553,
+        7553
+      ],
+      [
+        -6,
+        -3
+      ],
+      [
+        -7,
+        1
+      ],
+      [
+        -6,
+        19
+      ],
+      [
+        4,
+        1
+      ],
+      [
+        9,
+        12
+      ],
+      [
+        20,
+        10
+      ],
+      [
+        5,
+        1
+      ],
+      [
+        -19,
+        -41
+      ]
+    ],
+    [
+      [
+        3024,
+        7789
+      ],
+      [
+        -5,
+        -1
+      ],
+      [
+        7,
+        13
+      ],
+      [
+        9,
+        14
+      ],
+      [
+        8,
+        8
+      ],
+      [
+        10,
+        4
+      ],
+      [
+        -1,
+        -6
+      ],
+      [
+        -14,
+        -12
+      ],
+      [
+        -14,
+        -20
+      ]
+    ],
+    [
+      [
+        2713,
+        7836
+      ],
+      [
+        -5,
+        -5
+      ],
+      [
+        -18,
+        3
+      ],
+      [
+        4,
+        12
+      ],
+      [
+        14,
+        7
+      ],
+      [
+        15,
+        -11
+      ],
+      [
+        -10,
+        -6
+      ]
+    ],
+    [
+      [
+        2739,
+        7788
+      ],
+      [
+        -10,
+        -2
+      ],
+      [
+        -3,
+        5
+      ],
+      [
+        6,
+        14
+      ],
+      [
+        4,
+        8
+      ],
+      [
+        3,
+        2
+      ],
+      [
+        11,
+        16
+      ],
+      [
+        13,
+        11
+      ],
+      [
+        12,
+        17
+      ],
+      [
+        11,
+        24
+      ],
+      [
+        3,
+        9
+      ],
+      [
+        5,
+        1
+      ],
+      [
+        9,
+        -6
+      ],
+      [
+        6,
+        -8
+      ],
+      [
+        -3,
+        -7
+      ],
+      [
+        -30,
+        -34
+      ],
+      [
+        -2,
+        -4
+      ],
+      [
+        -3,
+        -12
+      ],
+      [
+        -3,
+        -4
+      ],
+      [
+        -3,
+        -2
+      ],
+      [
+        -3,
+        -5
+      ],
+      [
+        -2,
+        -8
+      ],
+      [
+        -4,
+        -4
+      ],
+      [
+        -5,
+        -1
+      ],
+      [
+        -4,
+        -2
+      ],
+      [
+        -2,
+        -4
+      ],
+      [
+        -6,
+        -4
+      ]
+    ],
+    [
+      [
+        1084,
+        7897
+      ],
+      [
+        9,
+        -9
+      ],
+      [
+        4,
+        -1
+      ],
+      [
+        14,
+        3
+      ],
+      [
+        5,
+        -2
+      ],
+      [
+        5,
+        -4
+      ],
+      [
+        3,
+        -6
+      ],
+      [
+        0,
+        -11
+      ],
+      [
+        -2,
+        -10
+      ],
+      [
+        1,
+        -14
+      ],
+      [
+        -1,
+        -6
+      ],
+      [
+        8,
+        -8
+      ],
+      [
+        2,
+        -10
+      ],
+      [
+        1,
+        -12
+      ],
+      [
+        -16,
+        -3
+      ],
+      [
+        -16,
+        -1
+      ],
+      [
+        -14,
+        -8
+      ],
+      [
+        -2,
+        -5
+      ],
+      [
+        2,
+        -9
+      ],
+      [
+        -4,
+        -2
+      ],
+      [
+        -3,
+        2
+      ],
+      [
+        -7,
+        8
+      ],
+      [
+        -7,
+        3
+      ],
+      [
+        -26,
+        6
+      ],
+      [
+        -32,
+        23
+      ],
+      [
+        -14,
+        5
+      ],
+      [
+        -14,
+        16
+      ],
+      [
+        -13,
+        21
+      ],
+      [
+        9,
+        4
+      ],
+      [
+        8,
+        2
+      ],
+      [
+        37,
+        -4
+      ],
+      [
+        5,
+        16
+      ],
+      [
+        5,
+        3
+      ],
+      [
+        12,
+        5
+      ],
+      [
+        11,
+        8
+      ],
+      [
+        5,
+        0
+      ],
+      [
+        5,
+        -3
+      ],
+      [
+        10,
+        5
+      ],
+      [
+        6,
+        1
+      ],
+      [
+        4,
+        -3
+      ]
+    ],
+    [
+      [
+        2974,
+        7888
+      ],
+      [
+        -3,
+        -4
+      ],
+      [
+        -8,
+        1
+      ],
+      [
+        -4,
+        3
+      ],
+      [
+        14,
+        12
+      ],
+      [
+        2,
+        -2
+      ],
+      [
+        -1,
+        -10
+      ]
+    ],
+    [
+      [
+        2859,
+        7910
+      ],
+      [
+        2,
+        -6
+      ],
+      [
+        18,
+        2
+      ],
+      [
+        5,
+        -1
+      ],
+      [
+        2,
+        -3
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -6,
+        -5
+      ],
+      [
+        -20,
+        -8
+      ],
+      [
+        -16,
+        -11
+      ],
+      [
+        -2,
+        1
+      ],
+      [
+        -3,
+        12
+      ],
+      [
+        -3,
+        5
+      ],
+      [
+        -1,
+        6
+      ],
+      [
+        0,
+        3
+      ],
+      [
+        2,
+        4
+      ],
+      [
+        6,
+        7
+      ],
+      [
+        4,
+        3
+      ],
+      [
+        15,
+        -6
+      ]
+    ],
+    [
+      [
+        2746,
+        7910
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        -3,
+        -5
+      ],
+      [
+        2,
+        -9
+      ],
+      [
+        -4,
+        -15
+      ],
+      [
+        -2,
+        -10
+      ],
+      [
+        -3,
+        -6
+      ],
+      [
+        -2,
+        -2
+      ],
+      [
+        -3,
+        1
+      ],
+      [
+        0,
+        4
+      ],
+      [
+        1,
+        5
+      ],
+      [
+        -6,
+        0
+      ],
+      [
+        -1,
+        13
+      ],
+      [
+        3,
+        4
+      ],
+      [
+        1,
+        6
+      ],
+      [
+        0,
+        4
+      ],
+      [
+        4,
+        17
+      ],
+      [
+        2,
+        1
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        1,
+        -1
+      ],
+      [
+        3,
+        1
+      ],
+      [
+        3,
+        8
+      ],
+      [
+        1,
+        1
+      ],
+      [
+        3,
+        -8
+      ]
+    ],
+    [
+      [
+        2353,
+        7893
+      ],
+      [
+        -4,
+        -1
+      ],
+      [
+        6,
+        10
+      ],
+      [
+        4,
+        18
+      ],
+      [
+        5,
+        -3
+      ],
+      [
+        1,
+        -3
+      ],
+      [
+        -9,
+        -19
+      ],
+      [
+        -3,
+        -2
+      ]
+    ],
+    [
+      [
+        490,
+        7911
+      ],
+      [
+        20,
+        -12
+      ],
+      [
+        12,
+        1
+      ],
+      [
+        10,
+        -10
+      ],
+      [
+        4,
+        -9
+      ],
+      [
+        -15,
+        6
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -29,
+        25
+      ],
+      [
+        -11,
+        6
+      ],
+      [
+        3,
+        14
+      ],
+      [
+        11,
+        8
+      ],
+      [
+        6,
+        -20
+      ],
+      [
+        10,
+        -9
+      ]
+    ],
+    [
+      [
+        2721,
+        7982
+      ],
+      [
+        -11,
+        -2
+      ],
+      [
+        -5,
+        2
+      ],
+      [
+        -1,
+        3
+      ],
+      [
+        2,
+        10
+      ],
+      [
+        0,
+        4
+      ],
+      [
+        5,
+        1
+      ],
+      [
+        7,
+        -4
+      ],
+      [
+        2,
+        -5
+      ],
+      [
+        1,
+        -9
+      ]
+    ],
+    [
+      [
+        605,
+        8518
+      ],
+      [
+        2,
+        -5
+      ],
+      [
+        9,
+        1
+      ],
+      [
+        13,
+        -2
+      ],
+      [
+        15,
+        -4
+      ],
+      [
+        14,
+        1
+      ],
+      [
+        18,
+        14
+      ],
+      [
+        11,
+        4
+      ],
+      [
+        11,
+        2
+      ],
+      [
+        12,
+        -3
+      ],
+      [
+        11,
+        -8
+      ],
+      [
+        5,
+        -4
+      ],
+      [
+        3,
+        -8
+      ],
+      [
+        3,
+        -10
+      ],
+      [
+        3,
+        -6
+      ],
+      [
+        22,
+        -9
+      ],
+      [
+        14,
+        -3
+      ],
+      [
+        3,
+        -4
+      ],
+      [
+        3,
+        -7
+      ],
+      [
+        11,
+        -5
+      ],
+      [
+        12,
+        2
+      ],
+      [
+        7,
+        -2
+      ],
+      [
+        20,
+        0
+      ],
+      [
+        25,
+        -7
+      ],
+      [
+        -4,
+        -18
+      ],
+      [
+        -8,
+        -8
+      ],
+      [
+        -23,
+        2
+      ],
+      [
+        -23,
+        -2
+      ],
+      [
+        -10,
+        -10
+      ],
+      [
+        -8,
+        -12
+      ],
+      [
+        -1,
+        -12
+      ],
+      [
+        -4,
+        -5
+      ],
+      [
+        -5,
+        -2
+      ],
+      [
+        -4,
+        6
+      ],
+      [
+        -5,
+        20
+      ],
+      [
+        -4,
+        5
+      ],
+      [
+        -4,
+        4
+      ],
+      [
+        -11,
+        6
+      ],
+      [
+        -12,
+        4
+      ],
+      [
+        -6,
+        0
+      ],
+      [
+        -5,
+        7
+      ],
+      [
+        -3,
+        10
+      ],
+      [
+        -4,
+        5
+      ],
+      [
+        -9,
+        8
+      ],
+      [
+        -10,
+        5
+      ],
+      [
+        -28,
+        13
+      ],
+      [
+        -10,
+        1
+      ],
+      [
+        -10,
+        -1
+      ],
+      [
+        -10,
+        -6
+      ],
+      [
+        -10,
+        -8
+      ],
+      [
+        -10,
+        -6
+      ],
+      [
+        -11,
+        -2
+      ],
+      [
+        -10,
+        4
+      ],
+      [
+        -9,
+        8
+      ],
+      [
+        -5,
+        6
+      ],
+      [
+        -3,
+        10
+      ],
+      [
+        0,
+        10
+      ],
+      [
+        2,
+        10
+      ],
+      [
+        5,
+        23
+      ],
+      [
+        9,
+        5
+      ],
+      [
+        16,
+        -17
+      ]
+    ],
+    [
+      [
+        1087,
+        9011
+      ],
+      [
+        -4,
+        -1
+      ],
+      [
+        0,
+        3
+      ],
+      [
+        11,
+        8
+      ],
+      [
+        18,
+        10
+      ],
+      [
+        0,
+        -3
+      ],
+      [
+        -10,
+        -7
+      ],
+      [
+        -15,
+        -10
+      ]
+    ],
+    [
+      [
+        1998,
+        9891
+      ],
+      [
+        9,
+        -1
+      ],
+      [
+        15,
+        4
+      ],
+      [
+        11,
+        7
+      ],
+      [
+        24,
+        23
+      ],
+      [
+        8,
+        13
+      ],
+      [
+        5,
+        3
+      ],
+      [
+        21,
+        -3
+      ],
+      [
+        11,
+        -6
+      ],
+      [
+        13,
+        -12
+      ],
+      [
+        -5,
+        -12
+      ],
+      [
+        -5,
+        -6
+      ],
+      [
+        17,
+        -9
+      ],
+      [
+        18,
+        -2
+      ],
+      [
+        18,
+        -7
+      ],
+      [
+        25,
+        15
+      ],
+      [
+        19,
+        3
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        23,
+        7
+      ],
+      [
+        41,
+        -10
+      ],
+      [
+        10,
+        2
+      ],
+      [
+        16,
+        -1
+      ],
+      [
+        17,
+        -7
+      ],
+      [
+        6,
+        -7
+      ],
+      [
+        -18,
+        -15
+      ],
+      [
+        -3,
+        -15
+      ],
+      [
+        6,
+        -6
+      ],
+      [
+        12,
+        -1
+      ],
+      [
+        1,
+        -9
+      ],
+      [
+        8,
+        -2
+      ],
+      [
+        36,
+        0
+      ],
+      [
+        -3,
+        -4
+      ],
+      [
+        -2,
+        -5
+      ],
+      [
+        -11,
+        -11
+      ],
+      [
+        65,
+        -7
+      ],
+      [
+        9,
+        7
+      ],
+      [
+        13,
+        2
+      ],
+      [
+        28,
+        9
+      ],
+      [
+        11,
+        -4
+      ],
+      [
+        13,
+        -9
+      ],
+      [
+        11,
+        -2
+      ],
+      [
+        11,
+        2
+      ],
+      [
+        26,
+        13
+      ],
+      [
+        29,
+        0
+      ],
+      [
+        12,
+        -4
+      ],
+      [
+        13,
+        2
+      ],
+      [
+        38,
+        -14
+      ],
+      [
+        14,
+        -2
+      ],
+      [
+        19,
+        -19
+      ],
+      [
+        10,
+        0
+      ],
+      [
+        11,
+        8
+      ],
+      [
+        9,
+        -1
+      ],
+      [
+        9,
+        -7
+      ],
+      [
+        16,
+        -3
+      ],
+      [
+        7,
+        -12
+      ],
+      [
+        7,
+        -4
+      ],
+      [
+        58,
+        -9
+      ],
+      [
+        29,
+        4
+      ],
+      [
+        41,
+        -1
+      ],
+      [
+        21,
+        -6
+      ],
+      [
+        21,
+        1
+      ],
+      [
+        34,
+        -21
+      ],
+      [
+        18,
+        -3
+      ],
+      [
+        4,
+        -5
+      ],
+      [
+        52,
+        -5
+      ],
+      [
+        18,
+        11
+      ],
+      [
+        32,
+        3
+      ],
+      [
+        28,
+        9
+      ],
+      [
+        17,
+        0
+      ],
+      [
+        18,
+        -2
+      ],
+      [
+        8,
+        1
+      ],
+      [
+        5,
+        4
+      ],
+      [
+        46,
+        -16
+      ],
+      [
+        25,
+        -18
+      ],
+      [
+        12,
+        -13
+      ],
+      [
+        53,
+        -19
+      ],
+      [
+        16,
+        -11
+      ],
+      [
+        11,
+        -11
+      ],
+      [
+        6,
+        -2
+      ],
+      [
+        4,
+        4
+      ],
+      [
+        19,
+        -1
+      ],
+      [
+        7,
+        -2
+      ],
+      [
+        0,
+        -56
+      ],
+      [
+        0,
+        -55
+      ],
+      [
+        0,
+        -56
+      ],
+      [
+        0,
+        -56
+      ],
+      [
+        0,
+        -56
+      ],
+      [
+        0,
+        -55
+      ],
+      [
+        0,
+        -56
+      ],
+      [
+        0,
+        -56
+      ],
+      [
+        0,
+        -55
+      ],
+      [
+        0,
+        -56
+      ],
+      [
+        0,
+        -56
+      ],
+      [
+        0,
+        -56
+      ],
+      [
+        0,
+        -55
+      ],
+      [
+        0,
+        -56
+      ],
+      [
+        0,
+        -56
+      ],
+      [
+        0,
+        -55
+      ],
+      [
+        0,
+        -56
+      ],
+      [
+        0,
+        -56
+      ],
+      [
+        0,
+        -56
+      ],
+      [
+        0,
+        -55
+      ],
+      [
+        0,
+        -56
+      ],
+      [
+        0,
+        -56
+      ],
+      [
+        0,
+        -55
+      ],
+      [
+        0,
+        -56
+      ],
+      [
+        0,
+        -56
+      ],
+      [
+        0,
+        -55
+      ],
+      [
+        0,
+        -56
+      ],
+      [
+        0,
+        -56
+      ],
+      [
+        0,
+        -56
+      ],
+      [
+        0,
+        -55
+      ],
+      [
+        0,
+        -56
+      ],
+      [
+        0,
+        -56
+      ],
+      [
+        22,
+        -8
+      ],
+      [
+        21,
+        -7
+      ],
+      [
+        6,
+        15
+      ],
+      [
+        23,
+        -12
+      ],
+      [
+        21,
+        -10
+      ],
+      [
+        12,
+        13
+      ],
+      [
+        14,
+        15
+      ],
+      [
+        19,
+        1
+      ],
+      [
+        21,
+        1
+      ],
+      [
+        14,
+        1
+      ],
+      [
+        0,
+        -13
+      ],
+      [
+        -5,
+        -20
+      ],
+      [
+        -5,
+        -17
+      ],
+      [
+        12,
+        -16
+      ],
+      [
+        1,
+        -1
+      ],
+      [
+        16,
+        -9
+      ],
+      [
+        15,
+        -9
+      ],
+      [
+        6,
+        -23
+      ],
+      [
+        16,
+        -18
+      ],
+      [
+        12,
+        -14
+      ],
+      [
+        12,
+        -13
+      ],
+      [
+        17,
+        -19
+      ],
+      [
+        12,
+        -13
+      ],
+      [
+        15,
+        -18
+      ],
+      [
+        10,
+        -11
+      ],
+      [
+        4,
+        -20
+      ],
+      [
+        5,
+        -24
+      ],
+      [
+        -3,
+        -15
+      ],
+      [
+        7,
+        -2
+      ],
+      [
+        15,
+        16
+      ],
+      [
+        14,
+        10
+      ],
+      [
+        16,
+        13
+      ],
+      [
+        12,
+        8
+      ],
+      [
+        21,
+        0
+      ],
+      [
+        10,
+        25
+      ],
+      [
+        0,
+        34
+      ],
+      [
+        11,
+        -1
+      ],
+      [
+        6,
+        5
+      ],
+      [
+        3,
+        10
+      ],
+      [
+        -7,
+        14
+      ],
+      [
+        20,
+        6
+      ],
+      [
+        15,
+        5
+      ],
+      [
+        21,
+        12
+      ],
+      [
+        20,
+        13
+      ],
+      [
+        10,
+        -10
+      ],
+      [
+        9,
+        -9
+      ],
+      [
+        19,
+        -22
+      ],
+      [
+        1,
+        -6
+      ],
+      [
+        -1,
+        -10
+      ],
+      [
+        -2,
+        -11
+      ],
+      [
+        12,
+        -29
+      ],
+      [
+        3,
+        -3
+      ],
+      [
+        10,
+        -4
+      ],
+      [
+        11,
+        -10
+      ],
+      [
+        5,
+        -8
+      ],
+      [
+        16,
+        -13
+      ],
+      [
+        3,
+        -6
+      ],
+      [
+        1,
+        -9
+      ],
+      [
+        3,
+        -8
+      ],
+      [
+        3,
+        -5
+      ],
+      [
+        3,
+        -8
+      ],
+      [
+        7,
+        -9
+      ],
+      [
+        13,
+        -11
+      ],
+      [
+        10,
+        -7
+      ],
+      [
+        13,
+        -10
+      ],
+      [
+        13,
+        -20
+      ],
+      [
+        11,
+        -18
+      ],
+      [
+        14,
+        -18
+      ],
+      [
+        -2,
+        -14
+      ],
+      [
+        13,
+        -22
+      ],
+      [
+        14,
+        -28
+      ],
+      [
+        10,
+        -24
+      ],
+      [
+        8,
+        -14
+      ],
+      [
+        9,
+        -20
+      ],
+      [
+        11,
+        -24
+      ],
+      [
+        13,
+        -28
+      ],
+      [
+        10,
+        -17
+      ],
+      [
+        12,
+        -25
+      ],
+      [
+        7,
+        -15
+      ],
+      [
+        -5,
+        -10
+      ],
+      [
+        -5,
+        -13
+      ],
+      [
+        16,
+        -6
+      ],
+      [
+        12,
+        -4
+      ],
+      [
+        -3,
+        -14
+      ],
+      [
+        -4,
+        -18
+      ],
+      [
+        13,
+        -8
+      ],
+      [
+        9,
+        -4
+      ],
+      [
+        -2,
+        -10
+      ],
+      [
+        4,
+        -11
+      ],
+      [
+        1,
+        -18
+      ],
+      [
+        16,
+        1
+      ],
+      [
+        7,
+        1
+      ],
+      [
+        9,
+        -9
+      ],
+      [
+        12,
+        -10
+      ],
+      [
+        12,
+        -10
+      ],
+      [
+        11,
+        -8
+      ],
+      [
+        14,
+        -5
+      ],
+      [
+        17,
+        -8
+      ],
+      [
+        8,
+        -14
+      ],
+      [
+        15,
+        -7
+      ],
+      [
+        6,
+        -20
+      ],
+      [
+        18,
+        -8
+      ],
+      [
+        11,
+        5
+      ],
+      [
+        3,
+        -8
+      ],
+      [
+        3,
+        -10
+      ],
+      [
+        1,
+        -12
+      ],
+      [
+        -1,
+        -12
+      ],
+      [
+        -4,
+        -10
+      ],
+      [
+        -4,
+        -11
+      ],
+      [
+        -2,
+        -11
+      ],
+      [
+        -1,
+        -13
+      ],
+      [
+        1,
+        -13
+      ],
+      [
+        1,
+        -11
+      ],
+      [
+        6,
+        -22
+      ],
+      [
+        2,
+        -13
+      ],
+      [
+        0,
+        -9
+      ],
+      [
+        -12,
+        -30
+      ],
+      [
+        -4,
+        -15
+      ],
+      [
+        0,
+        -6
+      ],
+      [
+        -9,
+        -16
+      ],
+      [
+        -16,
+        -21
+      ],
+      [
+        -7,
+        -12
+      ],
+      [
+        -4,
+        4
+      ],
+      [
+        -21,
+        3
+      ],
+      [
+        -8,
+        27
+      ],
+      [
+        -4,
+        21
+      ],
+      [
+        -6,
+        19
+      ],
+      [
+        0,
+        4
+      ],
+      [
+        6,
+        12
+      ],
+      [
+        21,
+        10
+      ],
+      [
+        0,
+        4
+      ],
+      [
+        -8,
+        3
+      ],
+      [
+        -2,
+        4
+      ],
+      [
+        -2,
+        20
+      ],
+      [
+        1,
+        18
+      ],
+      [
+        -1,
+        11
+      ],
+      [
+        -3,
+        24
+      ],
+      [
+        -6,
+        14
+      ],
+      [
+        -13,
+        29
+      ],
+      [
+        -1,
+        7
+      ],
+      [
+        6,
+        9
+      ],
+      [
+        3,
+        8
+      ],
+      [
+        -22,
+        -14
+      ],
+      [
+        -32,
+        -16
+      ],
+      [
+        -13,
+        -10
+      ],
+      [
+        -3,
+        -4
+      ],
+      [
+        -1,
+        -4
+      ],
+      [
+        3,
+        -10
+      ],
+      [
+        -1,
+        -3
+      ],
+      [
+        -3,
+        -6
+      ],
+      [
+        -3,
+        -17
+      ],
+      [
+        -7,
+        -18
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -12,
+        6
+      ],
+      [
+        -3,
+        6
+      ],
+      [
+        -7,
+        23
+      ],
+      [
+        2,
+        6
+      ],
+      [
+        4,
+        6
+      ],
+      [
+        6,
+        11
+      ],
+      [
+        8,
+        17
+      ],
+      [
+        15,
+        44
+      ],
+      [
+        9,
+        0
+      ],
+      [
+        17,
+        9
+      ],
+      [
+        -27,
+        4
+      ],
+      [
+        -3,
+        2
+      ],
+      [
+        -4,
+        6
+      ],
+      [
+        -3,
+        10
+      ],
+      [
+        -5,
+        11
+      ],
+      [
+        -10,
+        4
+      ],
+      [
+        -5,
+        4
+      ],
+      [
+        -6,
+        13
+      ],
+      [
+        -5,
+        5
+      ],
+      [
+        -2,
+        8
+      ],
+      [
+        -1,
+        8
+      ],
+      [
+        -2,
+        5
+      ],
+      [
+        -7,
+        1
+      ],
+      [
+        -3,
+        3
+      ],
+      [
+        -1,
+        22
+      ],
+      [
+        -14,
+        6
+      ],
+      [
+        -6,
+        5
+      ],
+      [
+        -9,
+        14
+      ],
+      [
+        -2,
+        7
+      ],
+      [
+        -1,
+        5
+      ],
+      [
+        2,
+        16
+      ],
+      [
+        -1,
+        3
+      ],
+      [
+        -8,
+        -2
+      ],
+      [
+        -49,
+        24
+      ],
+      [
+        2,
+        31
+      ],
+      [
+        -9,
+        42
+      ],
+      [
+        -10,
+        16
+      ],
+      [
+        2,
+        7
+      ],
+      [
+        2,
+        3
+      ],
+      [
+        5,
+        1
+      ],
+      [
+        19,
+        -13
+      ],
+      [
+        18,
+        -14
+      ],
+      [
+        2,
+        2
+      ],
+      [
+        -29,
+        31
+      ],
+      [
+        -7,
+        9
+      ],
+      [
+        -2,
+        11
+      ],
+      [
+        0,
+        6
+      ],
+      [
+        3,
+        3
+      ],
+      [
+        27,
+        -3
+      ],
+      [
+        1,
+        2
+      ],
+      [
+        -27,
+        9
+      ],
+      [
+        -6,
+        0
+      ],
+      [
+        -6,
+        -13
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -5,
+        1
+      ],
+      [
+        -2,
+        2
+      ],
+      [
+        -7,
+        16
+      ],
+      [
+        -7,
+        10
+      ],
+      [
+        -12,
+        15
+      ],
+      [
+        -2,
+        11
+      ],
+      [
+        -1,
+        16
+      ],
+      [
+        2,
+        15
+      ],
+      [
+        10,
+        34
+      ],
+      [
+        4,
+        6
+      ],
+      [
+        1,
+        3
+      ],
+      [
+        -3,
+        0
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -9,
+        -16
+      ],
+      [
+        -8,
+        -26
+      ],
+      [
+        -7,
+        -9
+      ],
+      [
+        -5,
+        2
+      ],
+      [
+        -6,
+        11
+      ],
+      [
+        -14,
+        13
+      ],
+      [
+        -16,
+        3
+      ],
+      [
+        -10,
+        13
+      ],
+      [
+        -15,
+        37
+      ],
+      [
+        -2,
+        18
+      ],
+      [
+        -2,
+        5
+      ],
+      [
+        -8,
+        6
+      ],
+      [
+        -5,
+        8
+      ],
+      [
+        -8,
+        45
+      ],
+      [
+        -10,
+        31
+      ],
+      [
+        -2,
+        16
+      ],
+      [
+        0,
+        17
+      ],
+      [
+        -1,
+        1
+      ],
+      [
+        -3,
+        -12
+      ],
+      [
+        -1,
+        -7
+      ],
+      [
+        -7,
+        -2
+      ],
+      [
+        6,
+        -13
+      ],
+      [
+        2,
+        -6
+      ],
+      [
+        -3,
+        1
+      ],
+      [
+        -6,
+        -2
+      ],
+      [
+        10,
+        -22
+      ],
+      [
+        5,
+        -34
+      ],
+      [
+        7,
+        -25
+      ],
+      [
+        4,
+        -20
+      ],
+      [
+        2,
+        -16
+      ],
+      [
+        3,
+        -15
+      ],
+      [
+        8,
+        -32
+      ],
+      [
+        1,
+        -7
+      ],
+      [
+        -1,
+        -5
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        -5,
+        -3
+      ],
+      [
+        -14,
+        4
+      ],
+      [
+        -6,
+        9
+      ],
+      [
+        -8,
+        14
+      ],
+      [
+        -11,
+        7
+      ],
+      [
+        -27,
+        -3
+      ],
+      [
+        -2,
+        1
+      ],
+      [
+        0,
+        12
+      ],
+      [
+        3,
+        22
+      ],
+      [
+        -2,
+        8
+      ],
+      [
+        -14,
+        32
+      ],
+      [
+        0,
+        6
+      ],
+      [
+        19,
+        15
+      ],
+      [
+        -9,
+        1
+      ],
+      [
+        -8,
+        -6
+      ],
+      [
+        -3,
+        4
+      ],
+      [
+        -4,
+        20
+      ],
+      [
+        -3,
+        8
+      ],
+      [
+        -2,
+        2
+      ],
+      [
+        -1,
+        -20
+      ],
+      [
+        4,
+        -10
+      ],
+      [
+        0,
+        -6
+      ],
+      [
+        0,
+        -8
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        -4,
+        -3
+      ],
+      [
+        -3,
+        -1
+      ],
+      [
+        -7,
+        4
+      ],
+      [
+        -7,
+        7
+      ],
+      [
+        -7,
+        4
+      ],
+      [
+        -2,
+        3
+      ],
+      [
+        -3,
+        9
+      ],
+      [
+        -5,
+        6
+      ],
+      [
+        -24,
+        8
+      ],
+      [
+        -14,
+        10
+      ],
+      [
+        -1,
+        -3
+      ],
+      [
+        4,
+        -10
+      ],
+      [
+        1,
+        -6
+      ],
+      [
+        -4,
+        -2
+      ],
+      [
+        -6,
+        -10
+      ],
+      [
+        1,
+        -1
+      ],
+      [
+        7,
+        3
+      ],
+      [
+        8,
+        0
+      ],
+      [
+        12,
+        -6
+      ],
+      [
+        12,
+        -8
+      ],
+      [
+        4,
+        -4
+      ],
+      [
+        1,
+        -7
+      ],
+      [
+        2,
+        -2
+      ],
+      [
+        11,
+        -8
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        -7,
+        -12
+      ],
+      [
+        15,
+        2
+      ],
+      [
+        9,
+        -4
+      ],
+      [
+        11,
+        -19
+      ],
+      [
+        3,
+        -10
+      ],
+      [
+        1,
+        -13
+      ],
+      [
+        -2,
+        -4
+      ],
+      [
+        -5,
+        -3
+      ],
+      [
+        -30,
+        -4
+      ],
+      [
+        -11,
+        -16
+      ],
+      [
+        -2,
+        0
+      ],
+      [
+        -8,
+        4
+      ],
+      [
+        -15,
+        13
+      ],
+      [
+        -19,
+        12
+      ],
+      [
+        -42,
+        35
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        -1,
+        7
+      ],
+      [
+        -3,
+        4
+      ],
+      [
+        -6,
+        2
+      ],
+      [
+        -8,
+        9
+      ],
+      [
+        -10,
+        15
+      ],
+      [
+        -6,
+        12
+      ],
+      [
+        -2,
+        9
+      ],
+      [
+        -6,
+        9
+      ],
+      [
+        -20,
+        20
+      ],
+      [
+        -10,
+        8
+      ],
+      [
+        -9,
+        4
+      ],
+      [
+        -7,
+        1
+      ],
+      [
+        -2,
+        3
+      ],
+      [
+        3,
+        4
+      ],
+      [
+        1,
+        3
+      ],
+      [
+        -17,
+        4
+      ],
+      [
+        -17,
+        10
+      ],
+      [
+        -41,
+        26
+      ],
+      [
+        -21,
+        17
+      ],
+      [
+        -12,
+        7
+      ],
+      [
+        -5,
+        5
+      ],
+      [
+        -3,
+        3
+      ],
+      [
+        3,
+        4
+      ],
+      [
+        8,
+        4
+      ],
+      [
+        6,
+        5
+      ],
+      [
+        9,
+        16
+      ],
+      [
+        1,
+        6
+      ],
+      [
+        -5,
+        12
+      ],
+      [
+        -2,
+        11
+      ],
+      [
+        0,
+        6
+      ],
+      [
+        1,
+        6
+      ],
+      [
+        1,
+        4
+      ],
+      [
+        4,
+        4
+      ],
+      [
+        3,
+        2
+      ],
+      [
+        3,
+        -1
+      ],
+      [
+        10,
+        -15
+      ],
+      [
+        2,
+        -6
+      ],
+      [
+        -1,
+        -21
+      ],
+      [
+        3,
+        -24
+      ],
+      [
+        1,
+        2
+      ],
+      [
+        1,
+        8
+      ],
+      [
+        1,
+        15
+      ],
+      [
+        1,
+        7
+      ],
+      [
+        2,
+        8
+      ],
+      [
+        4,
+        3
+      ],
+      [
+        12,
+        -2
+      ],
+      [
+        5,
+        2
+      ],
+      [
+        -23,
+        11
+      ],
+      [
+        -14,
+        20
+      ],
+      [
+        -3,
+        2
+      ],
+      [
+        -8,
+        1
+      ],
+      [
+        -8,
+        -8
+      ],
+      [
+        -21,
+        -27
+      ],
+      [
+        -6,
+        -5
+      ],
+      [
+        -27,
+        -15
+      ],
+      [
+        -19,
+        -3
+      ],
+      [
+        -20,
+        2
+      ],
+      [
+        -18,
+        5
+      ],
+      [
+        -44,
+        24
+      ],
+      [
+        -6,
+        5
+      ],
+      [
+        10,
+        15
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        -3,
+        15
+      ],
+      [
+        -3,
+        4
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -2,
+        -1
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        1,
+        -8
+      ],
+      [
+        -3,
+        -4
+      ],
+      [
+        -7,
+        -5
+      ],
+      [
+        -13,
+        -5
+      ],
+      [
+        -39,
+        12
+      ],
+      [
+        -40,
+        10
+      ],
+      [
+        -36,
+        2
+      ],
+      [
+        -50,
+        -8
+      ],
+      [
+        -27,
+        -8
+      ],
+      [
+        -16,
+        0
+      ],
+      [
+        -15,
+        1
+      ],
+      [
+        -1,
+        6
+      ],
+      [
+        7,
+        3
+      ],
+      [
+        0,
+        4
+      ],
+      [
+        -9,
+        13
+      ],
+      [
+        -13,
+        7
+      ],
+      [
+        -18,
+        3
+      ],
+      [
+        -10,
+        4
+      ],
+      [
+        -3,
+        5
+      ],
+      [
+        -6,
+        4
+      ],
+      [
+        -10,
+        4
+      ],
+      [
+        -5,
+        8
+      ],
+      [
+        4,
+        24
+      ],
+      [
+        3,
+        14
+      ],
+      [
+        4,
+        9
+      ],
+      [
+        8,
+        17
+      ],
+      [
+        -3,
+        -2
+      ],
+      [
+        -12,
+        -11
+      ],
+      [
+        -11,
+        -13
+      ],
+      [
+        -10,
+        -16
+      ],
+      [
+        -6,
+        -7
+      ],
+      [
+        -8,
+        -7
+      ],
+      [
+        -12,
+        2
+      ],
+      [
+        -16,
+        10
+      ],
+      [
+        -14,
+        5
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        8,
+        9
+      ],
+      [
+        4,
+        7
+      ],
+      [
+        7,
+        12
+      ],
+      [
+        1,
+        5
+      ],
+      [
+        -43,
+        2
+      ],
+      [
+        -1,
+        6
+      ],
+      [
+        0,
+        4
+      ],
+      [
+        -2,
+        4
+      ],
+      [
+        -6,
+        3
+      ],
+      [
+        -9,
+        -2
+      ],
+      [
+        -14,
+        -7
+      ],
+      [
+        -6,
+        5
+      ],
+      [
+        3,
+        3
+      ],
+      [
+        4,
+        2
+      ],
+      [
+        9,
+        11
+      ],
+      [
+        -12,
+        5
+      ],
+      [
+        -7,
+        6
+      ],
+      [
+        -3,
+        5
+      ],
+      [
+        1,
+        18
+      ],
+      [
+        3,
+        12
+      ],
+      [
+        28,
+        11
+      ],
+      [
+        -9,
+        5
+      ],
+      [
+        -18,
+        -2
+      ],
+      [
+        -12,
+        -10
+      ],
+      [
+        -14,
+        -13
+      ],
+      [
+        -9,
+        -6
+      ],
+      [
+        -5,
+        4
+      ],
+      [
+        -7,
+        1
+      ],
+      [
+        -8,
+        -1
+      ],
+      [
+        -5,
+        -3
+      ],
+      [
+        -3,
+        -6
+      ],
+      [
+        -3,
+        -5
+      ],
+      [
+        -4,
+        -2
+      ],
+      [
+        -2,
+        1
+      ],
+      [
+        -4,
+        6
+      ],
+      [
+        -8,
+        4
+      ],
+      [
+        -4,
+        5
+      ],
+      [
+        -2,
+        -3
+      ],
+      [
+        -3,
+        -9
+      ],
+      [
+        -3,
+        -5
+      ],
+      [
+        -14,
+        -4
+      ],
+      [
+        -7,
+        1
+      ],
+      [
+        -9,
+        11
+      ],
+      [
+        -2,
+        4
+      ],
+      [
+        3,
+        9
+      ],
+      [
+        20,
+        38
+      ],
+      [
+        -2,
+        0
+      ],
+      [
+        -6,
+        -6
+      ],
+      [
+        -13,
+        -15
+      ],
+      [
+        -6,
+        -5
+      ],
+      [
+        -9,
+        0
+      ],
+      [
+        -5,
+        1
+      ],
+      [
+        -5,
+        -1
+      ],
+      [
+        -7,
+        -4
+      ],
+      [
+        -4,
+        -4
+      ],
+      [
+        -2,
+        -5
+      ],
+      [
+        1,
+        -1
+      ],
+      [
+        10,
+        6
+      ],
+      [
+        6,
+        1
+      ],
+      [
+        1,
+        -3
+      ],
+      [
+        -7,
+        -17
+      ],
+      [
+        -5,
+        -16
+      ],
+      [
+        -4,
+        -4
+      ],
+      [
+        -7,
+        0
+      ],
+      [
+        -8,
+        -1
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        14,
+        -13
+      ],
+      [
+        5,
+        -2
+      ],
+      [
+        7,
+        -5
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        -3,
+        -13
+      ],
+      [
+        -2,
+        -5
+      ],
+      [
+        -3,
+        -2
+      ],
+      [
+        -11,
+        0
+      ],
+      [
+        -4,
+        -1
+      ],
+      [
+        -8,
+        -8
+      ],
+      [
+        -4,
+        -7
+      ],
+      [
+        2,
+        0
+      ],
+      [
+        7,
+        5
+      ],
+      [
+        9,
+        3
+      ],
+      [
+        13,
+        0
+      ],
+      [
+        10,
+        3
+      ],
+      [
+        6,
+        6
+      ],
+      [
+        6,
+        -2
+      ],
+      [
+        6,
+        -8
+      ],
+      [
+        2,
+        -8
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        -5,
+        -4
+      ],
+      [
+        -8,
+        -3
+      ],
+      [
+        -4,
+        -4
+      ],
+      [
+        -2,
+        -5
+      ],
+      [
+        -2,
+        -8
+      ],
+      [
+        0,
+        -11
+      ],
+      [
+        2,
+        -19
+      ],
+      [
+        -1,
+        -3
+      ],
+      [
+        -3,
+        -1
+      ],
+      [
+        -4,
+        0
+      ],
+      [
+        -4,
+        -5
+      ],
+      [
+        -9,
+        -25
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -4,
+        3
+      ],
+      [
+        -3,
+        0
+      ],
+      [
+        -3,
+        -4
+      ],
+      [
+        -6,
+        -2
+      ],
+      [
+        -10,
+        -2
+      ],
+      [
+        -8,
+        1
+      ],
+      [
+        -14,
+        5
+      ],
+      [
+        -6,
+        4
+      ],
+      [
+        -5,
+        6
+      ],
+      [
+        -13,
+        -6
+      ],
+      [
+        -3,
+        3
+      ],
+      [
+        -9,
+        17
+      ],
+      [
+        -1,
+        -1
+      ],
+      [
+        -2,
+        -19
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        -8,
+        -14
+      ],
+      [
+        -5,
+        -24
+      ],
+      [
+        -1,
+        0
+      ],
+      [
+        -2,
+        3
+      ],
+      [
+        -5,
+        21
+      ],
+      [
+        -2,
+        5
+      ],
+      [
+        -7,
+        -12
+      ],
+      [
+        -1,
+        -5
+      ],
+      [
+        2,
+        -16
+      ],
+      [
+        -2,
+        -2
+      ],
+      [
+        -15,
+        8
+      ],
+      [
+        -3,
+        1
+      ],
+      [
+        -1,
+        -2
+      ],
+      [
+        5,
+        -12
+      ],
+      [
+        -1,
+        -4
+      ],
+      [
+        -21,
+        -24
+      ],
+      [
+        -5,
+        1
+      ],
+      [
+        -4,
+        3
+      ],
+      [
+        -3,
+        -1
+      ],
+      [
+        -14,
+        -9
+      ],
+      [
+        -3,
+        1
+      ],
+      [
+        -5,
+        5
+      ],
+      [
+        -3,
+        0
+      ],
+      [
+        -1,
+        -6
+      ],
+      [
+        0,
+        -10
+      ],
+      [
+        -5,
+        -10
+      ],
+      [
+        -16,
+        -16
+      ],
+      [
+        -4,
+        -8
+      ],
+      [
+        -3,
+        -10
+      ],
+      [
+        -2,
+        -1
+      ],
+      [
+        -10,
+        6
+      ],
+      [
+        -10,
+        5
+      ],
+      [
+        -2,
+        -2
+      ],
+      [
+        3,
+        -7
+      ],
+      [
+        0,
+        -3
+      ],
+      [
+        -5,
+        -2
+      ],
+      [
+        -6,
+        1
+      ],
+      [
+        -7,
+        2
+      ],
+      [
+        -10,
+        -3
+      ],
+      [
+        -13,
+        -8
+      ],
+      [
+        -10,
+        0
+      ],
+      [
+        -15,
+        14
+      ],
+      [
+        -4,
+        1
+      ],
+      [
+        -2,
+        4
+      ],
+      [
+        3,
+        11
+      ],
+      [
+        5,
+        8
+      ],
+      [
+        3,
+        4
+      ],
+      [
+        14,
+        10
+      ],
+      [
+        16,
+        4
+      ],
+      [
+        10,
+        7
+      ],
+      [
+        13,
+        13
+      ],
+      [
+        6,
+        10
+      ],
+      [
+        13,
+        25
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        -3,
+        2
+      ],
+      [
+        -28,
+        -24
+      ],
+      [
+        -4,
+        -3
+      ],
+      [
+        -6,
+        1
+      ],
+      [
+        -23,
+        9
+      ],
+      [
+        -4,
+        4
+      ],
+      [
+        -4,
+        11
+      ],
+      [
+        7,
+        27
+      ],
+      [
+        4,
+        13
+      ],
+      [
+        11,
+        20
+      ],
+      [
+        15,
+        21
+      ],
+      [
+        5,
+        13
+      ],
+      [
+        7,
+        37
+      ],
+      [
+        0,
+        17
+      ],
+      [
+        -4,
+        20
+      ],
+      [
+        0,
+        12
+      ],
+      [
+        3,
+        4
+      ],
+      [
+        33,
+        18
+      ],
+      [
+        16,
+        14
+      ],
+      [
+        30,
+        21
+      ],
+      [
+        9,
+        0
+      ],
+      [
+        6,
+        -7
+      ],
+      [
+        7,
+        -6
+      ],
+      [
+        8,
+        -4
+      ],
+      [
+        10,
+        0
+      ],
+      [
+        13,
+        5
+      ],
+      [
+        20,
+        -1
+      ],
+      [
+        41,
+        -14
+      ],
+      [
+        9,
+        -1
+      ],
+      [
+        1,
+        2
+      ],
+      [
+        -7,
+        9
+      ],
+      [
+        -28,
+        6
+      ],
+      [
+        -12,
+        5
+      ],
+      [
+        -34,
+        25
+      ],
+      [
+        -8,
+        9
+      ],
+      [
+        3,
+        5
+      ],
+      [
+        9,
+        3
+      ],
+      [
+        2,
+        4
+      ],
+      [
+        2,
+        6
+      ],
+      [
+        4,
+        8
+      ],
+      [
+        9,
+        11
+      ],
+      [
+        12,
+        10
+      ],
+      [
+        24,
+        15
+      ],
+      [
+        -9,
+        1
+      ],
+      [
+        -17,
+        -3
+      ],
+      [
+        -7,
+        -3
+      ],
+      [
+        -11,
+        -11
+      ],
+      [
+        -5,
+        -7
+      ],
+      [
+        -6,
+        -15
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -12,
+        -2
+      ],
+      [
+        -32,
+        -2
+      ],
+      [
+        -6,
+        8
+      ],
+      [
+        -3,
+        1
+      ],
+      [
+        -4,
+        -1
+      ],
+      [
+        -30,
+        -20
+      ],
+      [
+        -11,
+        -10
+      ],
+      [
+        -7,
+        -11
+      ],
+      [
+        -12,
+        -8
+      ],
+      [
+        -16,
+        -6
+      ],
+      [
+        -12,
+        -6
+      ],
+      [
+        -13,
+        -13
+      ],
+      [
+        -4,
+        -10
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        3,
+        -15
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -8,
+        -1
+      ],
+      [
+        -11,
+        -10
+      ],
+      [
+        -25,
+        -29
+      ],
+      [
+        -3,
+        -11
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        4,
+        -8
+      ],
+      [
+        -3,
+        -5
+      ],
+      [
+        -7,
+        -9
+      ],
+      [
+        -15,
+        -13
+      ],
+      [
+        -11,
+        -6
+      ],
+      [
+        -6,
+        0
+      ],
+      [
+        -7,
+        2
+      ],
+      [
+        -11,
+        9
+      ],
+      [
+        -9,
+        0
+      ],
+      [
+        0,
+        -1
+      ],
+      [
+        12,
+        -9
+      ],
+      [
+        13,
+        -12
+      ],
+      [
+        7,
+        -10
+      ],
+      [
+        4,
+        -8
+      ],
+      [
+        0,
+        -8
+      ],
+      [
+        -3,
+        -9
+      ],
+      [
+        -9,
+        -14
+      ],
+      [
+        -9,
+        -4
+      ],
+      [
+        -22,
+        -5
+      ],
+      [
+        -7,
+        -3
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        16,
+        -6
+      ],
+      [
+        1,
+        -3
+      ],
+      [
+        -2,
+        -12
+      ],
+      [
+        -4,
+        -4
+      ],
+      [
+        -13,
+        -8
+      ],
+      [
+        -11,
+        -2
+      ],
+      [
+        -2,
+        2
+      ],
+      [
+        2,
+        9
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -6,
+        -3
+      ],
+      [
+        -15,
+        -14
+      ],
+      [
+        -2,
+        -3
+      ],
+      [
+        6,
+        -3
+      ],
+      [
+        -2,
+        -4
+      ],
+      [
+        -8,
+        -10
+      ],
+      [
+        -3,
+        -6
+      ],
+      [
+        -6,
+        -7
+      ],
+      [
+        -25,
+        -21
+      ],
+      [
+        2,
+        -6
+      ],
+      [
+        -6,
+        -18
+      ],
+      [
+        -4,
+        -16
+      ],
+      [
+        5,
+        -7
+      ],
+      [
+        20,
+        -8
+      ],
+      [
+        10,
+        -2
+      ],
+      [
+        12,
+        -5
+      ],
+      [
+        22,
+        -15
+      ],
+      [
+        7,
+        -10
+      ],
+      [
+        1,
+        -5
+      ],
+      [
+        -1,
+        -5
+      ],
+      [
+        -2,
+        -7
+      ],
+      [
+        -7,
+        -12
+      ],
+      [
+        -16,
+        -19
+      ],
+      [
+        -7,
+        -6
+      ],
+      [
+        -12,
+        -4
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -14,
+        -18
+      ],
+      [
+        -4,
+        -10
+      ],
+      [
+        0,
+        -9
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        -19,
+        -11
+      ],
+      [
+        1,
+        -2
+      ],
+      [
+        7,
+        -1
+      ],
+      [
+        -3,
+        -11
+      ],
+      [
+        -1,
+        -14
+      ],
+      [
+        -3,
+        -2
+      ],
+      [
+        -11,
+        0
+      ],
+      [
+        -15,
+        -6
+      ],
+      [
+        -1,
+        -1
+      ],
+      [
+        0,
+        -11
+      ],
+      [
+        -38,
+        -7
+      ],
+      [
+        -8,
+        -20
+      ],
+      [
+        -5,
+        -6
+      ],
+      [
+        -15,
+        -14
+      ],
+      [
+        -9,
+        -6
+      ],
+      [
+        -10,
+        -3
+      ],
+      [
+        -6,
+        -5
+      ],
+      [
+        0,
+        -6
+      ],
+      [
+        -3,
+        -6
+      ],
+      [
+        -9,
+        -9
+      ],
+      [
+        -4,
+        -11
+      ],
+      [
+        -4,
+        -1
+      ],
+      [
+        -16,
+        -3
+      ],
+      [
+        -4,
+        -4
+      ],
+      [
+        -1,
+        -15
+      ],
+      [
+        -4,
+        0
+      ],
+      [
+        -5,
+        3
+      ],
+      [
+        -8,
+        -2
+      ],
+      [
+        -18,
+        -17
+      ],
+      [
+        -3,
+        -6
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        3,
+        -3
+      ],
+      [
+        4,
+        -10
+      ],
+      [
+        0,
+        -7
+      ],
+      [
+        -7,
+        -19
+      ],
+      [
+        -2,
+        -3
+      ],
+      [
+        -9,
+        -5
+      ],
+      [
+        -3,
+        -10
+      ],
+      [
+        -8,
+        1
+      ],
+      [
+        -6,
+        -2
+      ],
+      [
+        -3,
+        -7
+      ],
+      [
+        -5,
+        -4
+      ],
+      [
+        -4,
+        -1
+      ],
+      [
+        -6,
+        -6
+      ],
+      [
+        -7,
+        -10
+      ],
+      [
+        -7,
+        -6
+      ],
+      [
+        -6,
+        -3
+      ],
+      [
+        -6,
+        -1
+      ],
+      [
+        -5,
+        2
+      ],
+      [
+        -5,
+        -1
+      ],
+      [
+        -5,
+        -4
+      ],
+      [
+        -4,
+        -6
+      ],
+      [
+        -4,
+        -16
+      ],
+      [
+        -4,
+        -8
+      ],
+      [
+        -3,
+        -1
+      ],
+      [
+        -6,
+        1
+      ],
+      [
+        -9,
+        4
+      ],
+      [
+        -8,
+        -2
+      ],
+      [
+        -15,
+        -10
+      ],
+      [
+        -4,
+        -7
+      ],
+      [
+        9,
+        -2
+      ],
+      [
+        4,
+        -2
+      ],
+      [
+        0,
+        -2
+      ],
+      [
+        -5,
+        -2
+      ],
+      [
+        -8,
+        0
+      ],
+      [
+        -4,
+        -2
+      ],
+      [
+        -6,
+        -4
+      ],
+      [
+        -15,
+        -5
+      ],
+      [
+        -6,
+        -4
+      ],
+      [
+        -11,
+        -19
+      ],
+      [
+        -1,
+        -4
+      ],
+      [
+        2,
+        -1
+      ],
+      [
+        6,
+        2
+      ],
+      [
+        7,
+        -3
+      ],
+      [
+        4,
+        -4
+      ],
+      [
+        2,
+        -5
+      ],
+      [
+        3,
+        -10
+      ],
+      [
+        1,
+        -1
+      ],
+      [
+        -14,
+        -16
+      ],
+      [
+        -4,
+        -7
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        -2,
+        18
+      ],
+      [
+        -1,
+        3
+      ],
+      [
+        -3,
+        1
+      ],
+      [
+        -4,
+        -6
+      ],
+      [
+        -7,
+        -21
+      ],
+      [
+        -7,
+        -11
+      ],
+      [
+        -58,
+        -28
+      ],
+      [
+        -8,
+        -6
+      ],
+      [
+        -2,
+        -12
+      ],
+      [
+        -2,
+        -10
+      ],
+      [
+        -4,
+        -8
+      ],
+      [
+        -4,
+        -5
+      ],
+      [
+        -1,
+        4
+      ],
+      [
+        0,
+        28
+      ],
+      [
+        -1,
+        6
+      ],
+      [
+        -6,
+        4
+      ],
+      [
+        -3,
+        -1
+      ],
+      [
+        -3,
+        -2
+      ],
+      [
+        -6,
+        -6
+      ],
+      [
+        -3,
+        -1
+      ],
+      [
+        -5,
+        0
+      ],
+      [
+        -7,
+        -6
+      ],
+      [
+        -18,
+        -19
+      ],
+      [
+        -12,
+        -5
+      ],
+      [
+        -3,
+        -4
+      ],
+      [
+        -5,
+        -11
+      ],
+      [
+        -3,
+        -4
+      ],
+      [
+        -5,
+        0
+      ],
+      [
+        -6,
+        3
+      ],
+      [
+        -5,
+        -2
+      ],
+      [
+        -4,
+        -8
+      ],
+      [
+        -4,
+        -3
+      ],
+      [
+        -12,
+        6
+      ],
+      [
+        -5,
+        -4
+      ],
+      [
+        -6,
+        -10
+      ],
+      [
+        -7,
+        -7
+      ],
+      [
+        -7,
+        -3
+      ],
+      [
+        -18,
+        -4
+      ],
+      [
+        -8,
+        3
+      ],
+      [
+        -1,
+        3
+      ],
+      [
+        0,
+        12
+      ],
+      [
+        3,
+        10
+      ],
+      [
+        3,
+        4
+      ],
+      [
+        3,
+        4
+      ],
+      [
+        6,
+        0
+      ],
+      [
+        10,
+        -3
+      ],
+      [
+        -1,
+        3
+      ],
+      [
+        -4,
+        4
+      ],
+      [
+        -9,
+        6
+      ],
+      [
+        -9,
+        4
+      ],
+      [
+        -5,
+        -2
+      ],
+      [
+        -8,
+        -5
+      ],
+      [
+        -5,
+        -6
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        -4,
+        -21
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        -21,
+        -36
+      ],
+      [
+        -9,
+        -12
+      ],
+      [
+        -8,
+        1
+      ],
+      [
+        -4,
+        -4
+      ],
+      [
+        -6,
+        -9
+      ],
+      [
+        -5,
+        -5
+      ],
+      [
+        -5,
+        1
+      ],
+      [
+        -3,
+        1
+      ],
+      [
+        -3,
+        4
+      ],
+      [
+        0,
+        2
+      ],
+      [
+        4,
+        3
+      ],
+      [
+        -1,
+        7
+      ],
+      [
+        -6,
+        12
+      ],
+      [
+        -5,
+        7
+      ],
+      [
+        -8,
+        1
+      ],
+      [
+        -1,
+        -6
+      ],
+      [
+        3,
+        -28
+      ],
+      [
+        -1,
+        -6
+      ],
+      [
+        -5,
+        -8
+      ],
+      [
+        -13,
+        -9
+      ],
+      [
+        -4,
+        1
+      ],
+      [
+        -11,
+        18
+      ],
+      [
+        -12,
+        3
+      ],
+      [
+        0,
+        -6
+      ],
+      [
+        2,
+        -11
+      ],
+      [
+        -3,
+        -11
+      ],
+      [
+        -8,
+        -10
+      ],
+      [
+        -6,
+        -5
+      ],
+      [
+        -4,
+        0
+      ],
+      [
+        0,
+        7
+      ],
+      [
+        4,
+        14
+      ],
+      [
+        0,
+        12
+      ],
+      [
+        -1,
+        9
+      ],
+      [
+        0,
+        7
+      ],
+      [
+        2,
+        5
+      ],
+      [
+        15,
+        14
+      ],
+      [
+        6,
+        2
+      ],
+      [
+        3,
+        -4
+      ],
+      [
+        5,
+        0
+      ],
+      [
+        5,
+        2
+      ],
+      [
+        3,
+        4
+      ],
+      [
+        1,
+        7
+      ],
+      [
+        6,
+        8
+      ],
+      [
+        12,
+        11
+      ],
+      [
+        13,
+        18
+      ],
+      [
+        15,
+        28
+      ],
+      [
+        17,
+        24
+      ],
+      [
+        20,
+        20
+      ],
+      [
+        21,
+        16
+      ],
+      [
+        44,
+        21
+      ],
+      [
+        3,
+        -1
+      ],
+      [
+        -4,
+        -7
+      ],
+      [
+        3,
+        -4
+      ],
+      [
+        4,
+        -1
+      ],
+      [
+        16,
+        4
+      ],
+      [
+        6,
+        4
+      ],
+      [
+        2,
+        -4
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        -10,
+        -5
+      ],
+      [
+        1,
+        -5
+      ],
+      [
+        13,
+        -22
+      ],
+      [
+        5,
+        -3
+      ],
+      [
+        3,
+        0
+      ],
+      [
+        2,
+        3
+      ],
+      [
+        -1,
+        16
+      ],
+      [
+        4,
+        3
+      ],
+      [
+        10,
+        0
+      ],
+      [
+        6,
+        -2
+      ],
+      [
+        3,
+        -5
+      ],
+      [
+        6,
+        -4
+      ],
+      [
+        8,
+        -3
+      ],
+      [
+        5,
+        1
+      ],
+      [
+        2,
+        5
+      ],
+      [
+        -4,
+        7
+      ],
+      [
+        -15,
+        13
+      ],
+      [
+        -5,
+        6
+      ],
+      [
+        -1,
+        8
+      ],
+      [
+        3,
+        10
+      ],
+      [
+        4,
+        15
+      ],
+      [
+        8,
+        19
+      ],
+      [
+        7,
+        14
+      ],
+      [
+        14,
+        16
+      ],
+      [
+        9,
+        8
+      ],
+      [
+        23,
+        23
+      ],
+      [
+        45,
+        25
+      ],
+      [
+        12,
+        15
+      ],
+      [
+        15,
+        17
+      ],
+      [
+        6,
+        5
+      ],
+      [
+        0,
+        -7
+      ],
+      [
+        2,
+        -6
+      ],
+      [
+        10,
+        -4
+      ],
+      [
+        7,
+        -1
+      ],
+      [
+        3,
+        1
+      ],
+      [
+        1,
+        6
+      ],
+      [
+        -1,
+        12
+      ],
+      [
+        -1,
+        10
+      ],
+      [
+        1,
+        11
+      ],
+      [
+        1,
+        8
+      ],
+      [
+        7,
+        14
+      ],
+      [
+        10,
+        16
+      ],
+      [
+        14,
+        19
+      ],
+      [
+        9,
+        8
+      ],
+      [
+        8,
+        5
+      ],
+      [
+        8,
+        8
+      ],
+      [
+        13,
+        20
+      ],
+      [
+        5,
+        3
+      ],
+      [
+        9,
+        4
+      ],
+      [
+        4,
+        -2
+      ],
+      [
+        2,
+        -5
+      ],
+      [
+        3,
+        -3
+      ],
+      [
+        10,
+        -3
+      ],
+      [
+        6,
+        5
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        -5,
+        1
+      ],
+      [
+        -4,
+        3
+      ],
+      [
+        -3,
+        12
+      ],
+      [
+        -7,
+        7
+      ],
+      [
+        -1,
+        8
+      ],
+      [
+        1,
+        12
+      ],
+      [
+        6,
+        29
+      ],
+      [
+        1,
+        29
+      ],
+      [
+        5,
+        17
+      ],
+      [
+        10,
+        7
+      ],
+      [
+        22,
+        4
+      ],
+      [
+        -13,
+        7
+      ],
+      [
+        -5,
+        0
+      ],
+      [
+        -8,
+        4
+      ],
+      [
+        -3,
+        19
+      ],
+      [
+        0,
+        13
+      ],
+      [
+        5,
+        16
+      ],
+      [
+        21,
+        26
+      ],
+      [
+        23,
+        18
+      ],
+      [
+        -3,
+        2
+      ],
+      [
+        -3,
+        5
+      ],
+      [
+        11,
+        36
+      ],
+      [
+        10,
+        33
+      ],
+      [
+        -14,
+        -28
+      ],
+      [
+        -16,
+        -21
+      ],
+      [
+        -47,
+        -25
+      ],
+      [
+        -32,
+        -20
+      ],
+      [
+        -15,
+        -5
+      ],
+      [
+        -10,
+        5
+      ],
+      [
+        -8,
+        20
+      ],
+      [
+        -5,
+        7
+      ],
+      [
+        -5,
+        13
+      ],
+      [
+        2,
+        17
+      ],
+      [
+        4,
+        11
+      ],
+      [
+        10,
+        2
+      ],
+      [
+        12,
+        -5
+      ],
+      [
+        10,
+        -1
+      ],
+      [
+        -13,
+        11
+      ],
+      [
+        -18,
+        10
+      ],
+      [
+        -9,
+        -3
+      ],
+      [
+        -6,
+        -16
+      ],
+      [
+        -8,
+        -11
+      ],
+      [
+        -8,
+        4
+      ],
+      [
+        -4,
+        4
+      ],
+      [
+        3,
+        -13
+      ],
+      [
+        -6,
+        -21
+      ],
+      [
+        -2,
+        -14
+      ],
+      [
+        8,
+        -38
+      ],
+      [
+        -1,
+        -15
+      ],
+      [
+        -15,
+        -7
+      ],
+      [
+        -12,
+        12
+      ],
+      [
+        -24,
+        48
+      ],
+      [
+        -9,
+        14
+      ],
+      [
+        -19,
+        22
+      ],
+      [
+        -7,
+        -3
+      ],
+      [
+        -8,
+        -11
+      ],
+      [
+        -8,
+        -3
+      ],
+      [
+        -21,
+        16
+      ],
+      [
+        -10,
+        13
+      ],
+      [
+        -9,
+        15
+      ],
+      [
+        -14,
+        -8
+      ],
+      [
+        -12,
+        -10
+      ],
+      [
+        -15,
+        -16
+      ],
+      [
+        -9,
+        0
+      ],
+      [
+        -26,
+        -14
+      ],
+      [
+        -3,
+        0
+      ],
+      [
+        -4,
+        -7
+      ],
+      [
+        -3,
+        -4
+      ],
+      [
+        -3,
+        -14
+      ],
+      [
+        -36,
+        -11
+      ],
+      [
+        -35,
+        7
+      ],
+      [
+        12,
+        7
+      ],
+      [
+        14,
+        6
+      ],
+      [
+        12,
+        15
+      ],
+      [
+        -5,
+        20
+      ],
+      [
+        -1,
+        10
+      ],
+      [
+        0,
+        12
+      ],
+      [
+        13,
+        18
+      ],
+      [
+        -13,
+        0
+      ],
+      [
+        -9,
+        -6
+      ],
+      [
+        -8,
+        13
+      ],
+      [
+        -4,
+        26
+      ],
+      [
+        9,
+        16
+      ],
+      [
+        5,
+        12
+      ],
+      [
+        3,
+        16
+      ],
+      [
+        1,
+        15
+      ],
+      [
+        -8,
+        23
+      ],
+      [
+        -20,
+        51
+      ],
+      [
+        -10,
+        38
+      ],
+      [
+        -16,
+        20
+      ],
+      [
+        12,
+        33
+      ],
+      [
+        14,
+        30
+      ],
+      [
+        17,
+        14
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        -10,
+        -1
+      ],
+      [
+        -6,
+        -1
+      ],
+      [
+        -6,
+        -10
+      ],
+      [
+        -6,
+        -8
+      ],
+      [
+        -18,
+        -38
+      ],
+      [
+        -12,
+        -18
+      ],
+      [
+        -7,
+        -6
+      ],
+      [
+        12,
+        -7
+      ],
+      [
+        2,
+        -6
+      ],
+      [
+        2,
+        -14
+      ],
+      [
+        -3,
+        -17
+      ],
+      [
+        -3,
+        -9
+      ],
+      [
+        -15,
+        1
+      ],
+      [
+        -13,
+        -14
+      ],
+      [
+        -31,
+        -14
+      ],
+      [
+        -41,
+        -9
+      ],
+      [
+        -20,
+        1
+      ],
+      [
+        -22,
+        17
+      ],
+      [
+        1,
+        10
+      ],
+      [
+        0,
+        9
+      ],
+      [
+        -30,
+        29
+      ],
+      [
+        -17,
+        30
+      ],
+      [
+        -13,
+        1
+      ],
+      [
+        -10,
+        7
+      ],
+      [
+        -13,
+        13
+      ],
+      [
+        1,
+        10
+      ],
+      [
+        2,
+        6
+      ],
+      [
+        -8,
+        5
+      ],
+      [
+        -10,
+        0
+      ],
+      [
+        -11,
+        3
+      ],
+      [
+        30,
+        38
+      ],
+      [
+        10,
+        25
+      ],
+      [
+        9,
+        4
+      ],
+      [
+        11,
+        -4
+      ],
+      [
+        15,
+        -10
+      ],
+      [
+        13,
+        -4
+      ],
+      [
+        5,
+        -5
+      ],
+      [
+        4,
+        -9
+      ],
+      [
+        -5,
+        -15
+      ],
+      [
+        -4,
+        -10
+      ],
+      [
+        5,
+        3
+      ],
+      [
+        16,
+        16
+      ],
+      [
+        12,
+        14
+      ],
+      [
+        6,
+        -1
+      ],
+      [
+        4,
+        -3
+      ],
+      [
+        6,
+        -15
+      ],
+      [
+        9,
+        -15
+      ],
+      [
+        18,
+        15
+      ],
+      [
+        9,
+        17
+      ],
+      [
+        -8,
+        8
+      ],
+      [
+        -10,
+        5
+      ],
+      [
+        -25,
+        6
+      ],
+      [
+        6,
+        5
+      ],
+      [
+        16,
+        -1
+      ],
+      [
+        6,
+        5
+      ],
+      [
+        -6,
+        7
+      ],
+      [
+        -8,
+        6
+      ],
+      [
+        -22,
+        -20
+      ],
+      [
+        -40,
+        1
+      ],
+      [
+        -29,
+        12
+      ],
+      [
+        -28,
+        -2
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -5,
+        6
+      ],
+      [
+        15,
+        15
+      ],
+      [
+        12,
+        8
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        -6,
+        1
+      ],
+      [
+        -13,
+        -4
+      ],
+      [
+        -5,
+        6
+      ],
+      [
+        1,
+        12
+      ],
+      [
+        -2,
+        -1
+      ],
+      [
+        -5,
+        -6
+      ],
+      [
+        -7,
+        3
+      ],
+      [
+        -6,
+        5
+      ],
+      [
+        3,
+        6
+      ],
+      [
+        6,
+        8
+      ],
+      [
+        -2,
+        1
+      ],
+      [
+        -6,
+        -2
+      ],
+      [
+        -5,
+        -10
+      ],
+      [
+        1,
+        -8
+      ],
+      [
+        0,
+        -12
+      ],
+      [
+        -9,
+        -2
+      ],
+      [
+        -8,
+        1
+      ],
+      [
+        -5,
+        12
+      ],
+      [
+        -6,
+        26
+      ],
+      [
+        -15,
+        7
+      ],
+      [
+        -4,
+        13
+      ],
+      [
+        10,
+        16
+      ],
+      [
+        -5,
+        9
+      ],
+      [
+        -10,
+        3
+      ],
+      [
+        -12,
+        -9
+      ],
+      [
+        -5,
+        8
+      ],
+      [
+        -1,
+        8
+      ],
+      [
+        -1,
+        12
+      ],
+      [
+        4,
+        1
+      ],
+      [
+        2,
+        -2
+      ],
+      [
+        24,
+        6
+      ],
+      [
+        3,
+        3
+      ],
+      [
+        -19,
+        10
+      ],
+      [
+        -6,
+        11
+      ],
+      [
+        8,
+        6
+      ],
+      [
+        14,
+        0
+      ],
+      [
+        20,
+        6
+      ],
+      [
+        -8,
+        11
+      ],
+      [
+        -2,
+        7
+      ],
+      [
+        -2,
+        10
+      ],
+      [
+        4,
+        16
+      ],
+      [
+        23,
+        39
+      ],
+      [
+        23,
+        33
+      ],
+      [
+        7,
+        7
+      ],
+      [
+        10,
+        4
+      ],
+      [
+        10,
+        -3
+      ],
+      [
+        10,
+        -7
+      ],
+      [
+        2,
+        3
+      ],
+      [
+        -3,
+        3
+      ],
+      [
+        -5,
+        13
+      ],
+      [
+        14,
+        5
+      ],
+      [
+        9,
+        15
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        -9,
+        -7
+      ],
+      [
+        -9,
+        -10
+      ],
+      [
+        -2,
+        10
+      ],
+      [
+        -3,
+        24
+      ],
+      [
+        4,
+        22
+      ],
+      [
+        4,
+        10
+      ],
+      [
+        7,
+        10
+      ],
+      [
+        23,
+        4
+      ],
+      [
+        4,
+        -2
+      ],
+      [
+        1,
+        4
+      ],
+      [
+        -14,
+        14
+      ],
+      [
+        6,
+        11
+      ],
+      [
+        4,
+        6
+      ],
+      [
+        28,
+        9
+      ],
+      [
+        14,
+        -3
+      ],
+      [
+        19,
+        -10
+      ],
+      [
+        11,
+        -13
+      ],
+      [
+        -2,
+        -7
+      ],
+      [
+        -2,
+        -4
+      ],
+      [
+        -6,
+        -4
+      ],
+      [
+        -2,
+        -3
+      ],
+      [
+        1,
+        -3
+      ],
+      [
+        8,
+        8
+      ],
+      [
+        13,
+        9
+      ],
+      [
+        7,
+        -4
+      ],
+      [
+        6,
+        -7
+      ],
+      [
+        6,
+        0
+      ],
+      [
+        21,
+        6
+      ],
+      [
+        10,
+        7
+      ],
+      [
+        12,
+        17
+      ],
+      [
+        17,
+        12
+      ],
+      [
+        24,
+        35
+      ],
+      [
+        7,
+        15
+      ],
+      [
+        8,
+        2
+      ],
+      [
+        7,
+        -1
+      ],
+      [
+        5,
+        -12
+      ],
+      [
+        7,
+        -4
+      ],
+      [
+        43,
+        3
+      ],
+      [
+        21,
+        6
+      ],
+      [
+        15,
+        11
+      ],
+      [
+        16,
+        20
+      ],
+      [
+        9,
+        13
+      ],
+      [
+        4,
+        17
+      ],
+      [
+        -6,
+        22
+      ],
+      [
+        -5,
+        19
+      ],
+      [
+        -8,
+        42
+      ],
+      [
+        -21,
+        27
+      ],
+      [
+        -15,
+        9
+      ],
+      [
+        -9,
+        -2
+      ],
+      [
+        7,
+        18
+      ],
+      [
+        20,
+        -2
+      ],
+      [
+        13,
+        4
+      ],
+      [
+        10,
+        8
+      ],
+      [
+        4,
+        6
+      ],
+      [
+        5,
+        14
+      ],
+      [
+        -2,
+        14
+      ],
+      [
+        -3,
+        7
+      ],
+      [
+        -7,
+        9
+      ],
+      [
+        -9,
+        12
+      ],
+      [
+        -6,
+        4
+      ],
+      [
+        -5,
+        0
+      ],
+      [
+        -25,
+        -25
+      ],
+      [
+        -15,
+        0
+      ],
+      [
+        -11,
+        4
+      ],
+      [
+        -10,
+        -14
+      ],
+      [
+        -27,
+        -12
+      ],
+      [
+        -15,
+        -13
+      ],
+      [
+        -27,
+        -30
+      ],
+      [
+        -7,
+        -14
+      ],
+      [
+        -8,
+        -1
+      ],
+      [
+        -7,
+        27
+      ],
+      [
+        -29,
+        26
+      ],
+      [
+        -9,
+        -9
+      ],
+      [
+        5,
+        -8
+      ],
+      [
+        7,
+        -6
+      ],
+      [
+        11,
+        -2
+      ],
+      [
+        -5,
+        -8
+      ],
+      [
+        -4,
+        -11
+      ],
+      [
+        -11,
+        10
+      ],
+      [
+        -20,
+        14
+      ],
+      [
+        -20,
+        8
+      ],
+      [
+        -53,
+        -1
+      ],
+      [
+        -35,
+        -15
+      ],
+      [
+        -3,
+        3
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -5,
+        -4
+      ],
+      [
+        -3,
+        -6
+      ],
+      [
+        -4,
+        -4
+      ],
+      [
+        -7,
+        -1
+      ],
+      [
+        -14,
+        2
+      ],
+      [
+        -28,
+        9
+      ],
+      [
+        -62,
+        14
+      ],
+      [
+        -17,
+        8
+      ],
+      [
+        -14,
+        19
+      ],
+      [
+        0,
+        14
+      ],
+      [
+        7,
+        5
+      ],
+      [
+        -1,
+        19
+      ],
+      [
+        -12,
+        5
+      ],
+      [
+        -25,
+        28
+      ],
+      [
+        -9,
+        11
+      ],
+      [
+        2,
+        2
+      ],
+      [
+        4,
+        -4
+      ],
+      [
+        9,
+        -2
+      ],
+      [
+        21,
+        4
+      ],
+      [
+        7,
+        17
+      ],
+      [
+        15,
+        6
+      ],
+      [
+        15,
+        -3
+      ],
+      [
+        -4,
+        5
+      ],
+      [
+        -3,
+        4
+      ],
+      [
+        -37,
+        9
+      ],
+      [
+        -5,
+        -3
+      ],
+      [
+        -67,
+        16
+      ],
+      [
+        -52,
+        28
+      ],
+      [
+        -5,
+        5
+      ],
+      [
+        -4,
+        12
+      ],
+      [
+        7,
+        11
+      ],
+      [
+        7,
+        6
+      ],
+      [
+        0,
+        -7
+      ],
+      [
+        1,
+        -6
+      ],
+      [
+        30,
+        15
+      ],
+      [
+        16,
+        19
+      ],
+      [
+        30,
+        4
+      ],
+      [
+        7,
+        5
+      ],
+      [
+        9,
+        10
+      ],
+      [
+        13,
+        18
+      ],
+      [
+        19,
+        9
+      ],
+      [
+        13,
+        9
+      ],
+      [
+        16,
+        4
+      ],
+      [
+        14,
+        -8
+      ],
+      [
+        5,
+        -1
+      ],
+      [
+        25,
+        -2
+      ],
+      [
+        9,
+        4
+      ],
+      [
+        3,
+        3
+      ],
+      [
+        3,
+        4
+      ],
+      [
+        -25,
+        15
+      ],
+      [
+        2,
+        8
+      ],
+      [
+        4,
+        6
+      ],
+      [
+        29,
+        17
+      ],
+      [
+        23,
+        6
+      ],
+      [
+        12,
+        -1
+      ],
+      [
+        35,
+        23
+      ],
+      [
+        19,
+        6
+      ],
+      [
+        36,
+        4
+      ],
+      [
+        30,
+        1
+      ],
+      [
+        8,
+        -7
+      ],
+      [
+        -16,
+        1
+      ],
+      [
+        -7,
+        -1
+      ],
+      [
+        5,
+        -3
+      ],
+      [
+        5,
+        -6
+      ],
+      [
+        -1,
+        -7
+      ],
+      [
+        -10,
+        -22
+      ],
+      [
+        1,
+        -17
+      ],
+      [
+        -7,
+        -6
+      ],
+      [
+        -6,
+        -8
+      ],
+      [
+        31,
+        -25
+      ],
+      [
+        47,
+        -2
+      ],
+      [
+        25,
+        5
+      ],
+      [
+        15,
+        -8
+      ],
+      [
+        12,
+        -1
+      ],
+      [
+        34,
+        4
+      ],
+      [
+        25,
+        -6
+      ],
+      [
+        11,
+        2
+      ],
+      [
+        23,
+        38
+      ],
+      [
+        9,
+        6
+      ],
+      [
+        10,
+        -7
+      ],
+      [
+        13,
+        -5
+      ],
+      [
+        8,
+        4
+      ],
+      [
+        7,
+        -10
+      ],
+      [
+        -3,
+        20
+      ],
+      [
+        -5,
+        8
+      ],
+      [
+        -38,
+        14
+      ],
+      [
+        -25,
+        -7
+      ],
+      [
+        -8,
+        7
+      ],
+      [
+        2,
+        16
+      ],
+      [
+        -27,
+        38
+      ],
+      [
+        -11,
+        8
+      ],
+      [
+        -14,
+        0
+      ],
+      [
+        -7,
+        13
+      ],
+      [
+        -6,
+        17
+      ],
+      [
+        12,
+        7
+      ],
+      [
+        11,
+        4
+      ],
+      [
+        9,
+        -6
+      ],
+      [
+        11,
+        -22
+      ],
+      [
+        11,
+        -4
+      ],
+      [
+        -3,
+        -22
+      ],
+      [
+        12,
+        -20
+      ],
+      [
+        29,
+        -19
+      ],
+      [
+        23,
+        7
+      ],
+      [
+        16,
+        -1
+      ],
+      [
+        10,
+        -4
+      ],
+      [
+        23,
+        -17
+      ],
+      [
+        12,
+        -2
+      ],
+      [
+        38,
+        9
+      ],
+      [
+        0,
+        17
+      ],
+      [
+        -3,
+        12
+      ],
+      [
+        -9,
+        8
+      ],
+      [
+        -25,
+        -2
+      ],
+      [
+        -20,
+        13
+      ],
+      [
+        -17,
+        -4
+      ],
+      [
+        -31,
+        -19
+      ],
+      [
+        -15,
+        8
+      ],
+      [
+        -10,
+        10
+      ],
+      [
+        -16,
+        10
+      ],
+      [
+        -2,
+        20
+      ],
+      [
+        13,
+        23
+      ],
+      [
+        10,
+        11
+      ],
+      [
+        -9,
+        8
+      ],
+      [
+        -22,
+        5
+      ],
+      [
+        -38,
+        -6
+      ],
+      [
+        -2,
+        8
+      ],
+      [
+        0,
+        8
+      ],
+      [
+        -15,
+        -16
+      ],
+      [
+        -16,
+        4
+      ],
+      [
+        -22,
+        -2
+      ],
+      [
+        -48,
+        14
+      ],
+      [
+        -17,
+        18
+      ],
+      [
+        -7,
+        14
+      ],
+      [
+        -13,
+        40
+      ],
+      [
+        -16,
+        24
+      ],
+      [
+        -113,
+        84
+      ],
+      [
+        -52,
+        21
+      ],
+      [
+        -25,
+        23
+      ],
+      [
+        -15,
+        6
+      ],
+      [
+        -15,
+        2
+      ],
+      [
+        -19,
+        8
+      ],
+      [
+        13,
+        9
+      ],
+      [
+        8,
+        3
+      ],
+      [
+        -9,
+        -9
+      ],
+      [
+        7,
+        -3
+      ],
+      [
+        11,
+        6
+      ],
+      [
+        6,
+        6
+      ],
+      [
+        9,
+        29
+      ],
+      [
+        9,
+        42
+      ],
+      [
+        -2,
+        17
+      ],
+      [
+        63,
+        -3
+      ],
+      [
+        41,
+        3
+      ],
+      [
+        14,
+        3
+      ],
+      [
+        53,
+        7
+      ],
+      [
+        14,
+        5
+      ],
+      [
+        25,
+        14
+      ],
+      [
+        30,
+        25
+      ],
+      [
+        26,
+        34
+      ],
+      [
+        4,
+        9
+      ],
+      [
+        1,
+        -3
+      ],
+      [
+        3,
+        2
+      ],
+      [
+        2,
+        13
+      ],
+      [
+        4,
+        29
+      ],
+      [
+        12,
+        28
+      ],
+      [
+        55,
+        65
+      ],
+      [
+        25,
+        25
+      ],
+      [
+        8,
+        11
+      ],
+      [
+        9,
+        9
+      ],
+      [
+        6,
+        -8
+      ],
+      [
+        3,
+        -3
+      ],
+      [
+        2,
+        -3
+      ],
+      [
+        -6,
+        -2
+      ],
+      [
+        -8,
+        -8
+      ],
+      [
+        -12,
+        -6
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        7,
+        1
+      ],
+      [
+        21,
+        6
+      ],
+      [
+        12,
+        7
+      ],
+      [
+        57,
+        14
+      ],
+      [
+        32,
+        22
+      ],
+      [
+        1,
+        5
+      ],
+      [
+        46,
+        27
+      ],
+      [
+        7,
+        -1
+      ],
+      [
+        7,
+        -3
+      ],
+      [
+        -13,
+        -18
+      ],
+      [
+        9,
+        -5
+      ],
+      [
+        -8,
+        -22
+      ],
+      [
+        17,
+        0
+      ],
+      [
+        4,
+        -10
+      ],
+      [
+        1,
+        8
+      ],
+      [
+        0,
+        13
+      ],
+      [
+        1,
+        12
+      ],
+      [
+        3,
+        8
+      ],
+      [
+        11,
+        -3
+      ],
+      [
+        27,
+        9
+      ],
+      [
+        -32,
+        1
+      ],
+      [
+        -20,
+        19
+      ],
+      [
+        -10,
+        1
+      ],
+      [
+        36,
+        29
+      ],
+      [
+        33,
+        17
+      ],
+      [
+        7,
+        0
+      ],
+      [
+        4,
+        -3
+      ],
+      [
+        0,
+        -6
+      ],
+      [
+        -7,
+        -3
+      ],
+      [
+        -7,
+        -6
+      ],
+      [
+        3,
+        -6
+      ],
+      [
+        5,
+        -1
+      ],
+      [
+        16,
+        5
+      ],
+      [
+        7,
+        5
+      ],
+      [
+        34,
+        0
+      ],
+      [
+        10,
+        4
+      ],
+      [
+        2,
+        4
+      ],
+      [
+        44,
+        1
+      ],
+      [
+        8,
+        3
+      ],
+      [
+        27,
+        15
+      ],
+      [
+        25,
+        19
+      ],
+      [
+        12,
+        10
+      ],
+      [
+        20,
+        26
+      ],
+      [
+        17,
+        17
+      ],
+      [
+        28,
+        17
+      ],
+      [
+        7,
+        -2
+      ],
+      [
+        -9,
+        -3
+      ],
+      [
+        -6,
+        -8
+      ],
+      [
+        8,
+        -9
+      ],
+      [
+        60,
+        -20
+      ],
+      [
+        14,
+        -1
+      ],
+      [
+        6,
+        -12
+      ],
+      [
+        -5,
+        -11
+      ],
+      [
+        -15,
+        -13
+      ],
+      [
+        -31,
+        -12
+      ],
+      [
+        10,
+        -5
+      ],
+      [
+        6,
+        -12
+      ]
+    ],
+    [
+      [
+        8103,
+        2152
+      ],
+      [
+        -8,
+        -4
+      ],
+      [
+        -11,
+        1
+      ],
+      [
+        -3,
+        1
+      ],
+      [
+        5,
+        3
+      ],
+      [
+        14,
+        3
+      ],
+      [
+        3,
+        -4
+      ]
+    ],
+    [
+      [
+        8156,
+        2176
+      ],
+      [
+        -3,
+        -2
+      ],
+      [
+        -9,
+        -19
+      ],
+      [
+        -35,
+        -7
+      ],
+      [
+        2,
+        5
+      ],
+      [
+        7,
+        1
+      ],
+      [
+        11,
+        6
+      ],
+      [
+        -3,
+        10
+      ],
+      [
+        -3,
+        12
+      ],
+      [
+        -4,
+        1
+      ],
+      [
+        -3,
+        7
+      ],
+      [
+        1,
+        21
+      ],
+      [
+        -3,
+        13
+      ],
+      [
+        -5,
+        13
+      ],
+      [
+        -2,
+        -3
+      ],
+      [
+        -4,
+        -22
+      ],
+      [
+        -4,
+        -29
+      ],
+      [
+        -2,
+        -9
+      ],
+      [
+        -10,
+        -1
+      ],
+      [
+        -9,
+        2
+      ],
+      [
+        -4,
+        0
+      ]
+    ],
+    [
+      [
+        8074,
+        2175
+      ],
+      [
+        -1,
+        39
+      ],
+      [
+        -1,
+        36
+      ],
+      [
+        -1,
+        36
+      ],
+      [
+        -1,
+        35
+      ],
+      [
+        -1,
+        36
+      ],
+      [
+        -1,
+        36
+      ],
+      [
+        -1,
+        36
+      ],
+      [
+        -1,
+        36
+      ],
+      [
+        2,
+        35
+      ],
+      [
+        2,
+        35
+      ],
+      [
+        3,
+        35
+      ],
+      [
+        2,
+        35
+      ],
+      [
+        2,
+        36
+      ],
+      [
+        2,
+        35
+      ],
+      [
+        2,
+        35
+      ],
+      [
+        3,
+        35
+      ],
+      [
+        2,
+        36
+      ],
+      [
+        2,
+        35
+      ],
+      [
+        2,
+        35
+      ],
+      [
+        2,
+        35
+      ],
+      [
+        2,
+        35
+      ],
+      [
+        3,
+        36
+      ],
+      [
+        2,
+        35
+      ],
+      [
+        2,
+        35
+      ],
+      [
+        1,
+        9
+      ],
+      [
+        0,
+        3
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        -8,
+        12
+      ]
+    ],
+    [
+      [
+        8094,
+        3057
+      ],
+      [
+        -1,
+        3
+      ],
+      [
+        -2,
+        2
+      ],
+      [
+        2,
+        0
+      ],
+      [
+        14,
+        0
+      ],
+      [
+        14,
+        0
+      ],
+      [
+        15,
+        -1
+      ],
+      [
+        14,
+        0
+      ],
+      [
+        15,
+        0
+      ],
+      [
+        14,
+        0
+      ],
+      [
+        15,
+        -1
+      ],
+      [
+        14,
+        0
+      ],
+      [
+        14,
+        0
+      ],
+      [
+        15,
+        -1
+      ],
+      [
+        14,
+        0
+      ],
+      [
+        15,
+        0
+      ],
+      [
+        14,
+        -1
+      ],
+      [
+        14,
+        0
+      ],
+      [
+        15,
+        0
+      ],
+      [
+        14,
+        0
+      ]
+    ],
+    [
+      [
+        8323,
+        3058
+      ],
+      [
+        3,
+        -25
+      ],
+      [
+        2,
+        -24
+      ],
+      [
+        2,
+        -24
+      ],
+      [
+        3,
+        -25
+      ],
+      [
+        2,
+        -24
+      ],
+      [
+        3,
+        -25
+      ],
+      [
+        2,
+        -24
+      ],
+      [
+        2,
+        -24
+      ],
+      [
+        3,
+        -25
+      ],
+      [
+        2,
+        -24
+      ],
+      [
+        2,
+        -24
+      ],
+      [
+        3,
+        -25
+      ],
+      [
+        2,
+        -24
+      ],
+      [
+        3,
+        -24
+      ],
+      [
+        2,
+        -25
+      ],
+      [
+        2,
+        -24
+      ],
+      [
+        3,
+        -11
+      ],
+      [
+        1,
+        -18
+      ],
+      [
+        13,
+        -53
+      ],
+      [
+        4,
+        -22
+      ],
+      [
+        -1,
+        -10
+      ],
+      [
+        1,
+        -8
+      ],
+      [
+        4,
+        -6
+      ],
+      [
+        0,
+        -8
+      ],
+      [
+        -6,
+        -8
+      ],
+      [
+        -4,
+        -10
+      ],
+      [
+        -2,
+        -19
+      ],
+      [
+        -6,
+        -32
+      ],
+      [
+        0,
+        -20
+      ],
+      [
+        5,
+        -27
+      ],
+      [
+        1,
+        -12
+      ],
+      [
+        -3,
+        -53
+      ],
+      [
+        2,
+        -34
+      ],
+      [
+        6,
+        -22
+      ]
+    ],
+    [
+      [
+        8379,
+        2295
+      ],
+      [
+        -29,
+        0
+      ],
+      [
+        -29,
+        0
+      ],
+      [
+        -29,
+        0
+      ],
+      [
+        -30,
+        0
+      ],
+      [
+        -29,
+        0
+      ],
+      [
+        -29,
+        0
+      ],
+      [
+        -29,
+        0
+      ],
+      [
+        -29,
+        0
+      ],
+      [
+        -1,
+        -14
+      ],
+      [
+        1,
+        -13
+      ],
+      [
+        3,
+        -12
+      ],
+      [
+        13,
+        -24
+      ],
+      [
+        1,
+        -6
+      ],
+      [
+        -2,
+        -18
+      ],
+      [
+        0,
+        -13
+      ],
+      [
+        -1,
+        -6
+      ],
+      [
+        -4,
+        -6
+      ],
+      [
+        0,
+        -7
+      ]
+    ],
+    [
+      [
+        7956,
+        3248
+      ],
+      [
+        0,
+        -3
+      ],
+      [
+        2,
+        -8
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        -2,
+        -3
+      ],
+      [
+        -3,
+        -1
+      ],
+      [
+        -2,
+        -2
+      ],
+      [
+        0,
+        -3
+      ],
+      [
+        0,
+        -2
+      ],
+      [
+        0,
+        -3
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        -1,
+        -4
+      ],
+      [
+        -11,
+        -10
+      ],
+      [
+        -4,
+        -14
+      ],
+      [
+        1,
+        -17
+      ],
+      [
+        -3,
+        -17
+      ],
+      [
+        -9,
+        -17
+      ],
+      [
+        -4,
+        -19
+      ],
+      [
+        1,
+        -21
+      ],
+      [
+        -4,
+        -17
+      ],
+      [
+        -10,
+        -13
+      ],
+      [
+        -4,
+        -8
+      ]
+    ],
+    [
+      [
+        7903,
+        3058
+      ],
+      [
+        0,
+        -6
+      ],
+      [
+        1,
+        -5
+      ],
+      [
+        -3,
+        -9
+      ],
+      [
+        -9,
+        -9
+      ],
+      [
+        -4,
+        -9
+      ],
+      [
+        -1,
+        -8
+      ],
+      [
+        -2,
+        -4
+      ],
+      [
+        -4,
+        -2
+      ],
+      [
+        -2,
+        -13
+      ],
+      [
+        -2,
+        -30
+      ],
+      [
+        -4,
+        -17
+      ],
+      [
+        -8,
+        -5
+      ],
+      [
+        -4,
+        -6
+      ],
+      [
+        0,
+        -9
+      ],
+      [
+        -5,
+        -11
+      ],
+      [
+        -8,
+        -12
+      ],
+      [
+        -3,
+        -12
+      ],
+      [
+        3,
+        -11
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        -3,
+        -4
+      ],
+      [
+        -9,
+        -5
+      ],
+      [
+        -2,
+        -2
+      ],
+      [
+        0,
+        -3
+      ],
+      [
+        1,
+        -6
+      ],
+      [
+        1,
+        -8
+      ],
+      [
+        -1,
+        -14
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        -8,
+        -9
+      ],
+      [
+        -2,
+        -8
+      ],
+      [
+        4,
+        -5
+      ],
+      [
+        -1,
+        -6
+      ],
+      [
+        -3,
+        -7
+      ],
+      [
+        1,
+        -7
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        3,
+        -4
+      ],
+      [
+        1,
+        -12
+      ],
+      [
+        -2,
+        -15
+      ],
+      [
+        0,
+        -13
+      ],
+      [
+        4,
+        -10
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        -4,
+        -34
+      ],
+      [
+        0,
+        -5
+      ]
+    ],
+    [
+      [
+        7826,
+        2679
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -16,
+        0
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -16,
+        0
+      ],
+      [
+        -16,
+        0
+      ],
+      [
+        -16,
+        0
+      ],
+      [
+        -16,
+        0
+      ],
+      [
+        -16,
+        0
+      ],
+      [
+        -16,
+        0
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -16,
+        0
+      ],
+      [
+        -16,
+        0
+      ],
+      [
+        -16,
+        0
+      ],
+      [
+        -16,
+        0
+      ],
+      [
+        -16,
+        -1
+      ],
+      [
+        -17,
+        0
+      ]
+    ],
+    [
+      [
+        7566,
+        2678
+      ],
+      [
+        0,
+        26
+      ],
+      [
+        0,
+        26
+      ],
+      [
+        0,
+        26
+      ],
+      [
+        0,
+        26
+      ],
+      [
+        -5,
+        4
+      ],
+      [
+        -8,
+        2
+      ],
+      [
+        -4,
+        -1
+      ],
+      [
+        -5,
+        1
+      ],
+      [
+        -4,
+        -4
+      ],
+      [
+        -2,
+        -1
+      ],
+      [
+        -2,
+        1
+      ],
+      [
+        -1,
+        4
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -4,
+        10
+      ]
+    ],
+    [
+      [
+        7527,
+        2800
+      ],
+      [
+        0,
+        20
+      ],
+      [
+        0,
+        21
+      ],
+      [
+        0,
+        21
+      ],
+      [
+        1,
+        21
+      ],
+      [
+        0,
+        20
+      ],
+      [
+        0,
+        21
+      ],
+      [
+        0,
+        21
+      ],
+      [
+        1,
+        21
+      ],
+      [
+        0,
+        20
+      ],
+      [
+        0,
+        21
+      ],
+      [
+        0,
+        21
+      ],
+      [
+        1,
+        20
+      ],
+      [
+        0,
+        21
+      ],
+      [
+        0,
+        21
+      ],
+      [
+        0,
+        21
+      ],
+      [
+        1,
+        20
+      ],
+      [
+        -2,
+        27
+      ],
+      [
+        -2,
+        26
+      ],
+      [
+        -2,
+        27
+      ],
+      [
+        -2,
+        26
+      ],
+      [
+        -2,
+        27
+      ],
+      [
+        -2,
+        27
+      ],
+      [
+        -2,
+        26
+      ],
+      [
+        -2,
+        27
+      ]
+    ],
+    [
+      [
+        7515,
+        3344
+      ],
+      [
+        25,
+        0
+      ],
+      [
+        25,
+        0
+      ],
+      [
+        25,
+        0
+      ],
+      [
+        25,
+        0
+      ],
+      [
+        25,
+        0
+      ],
+      [
+        25,
+        0
+      ],
+      [
+        25,
+        0
+      ],
+      [
+        25,
+        0
+      ],
+      [
+        25,
+        0
+      ],
+      [
+        25,
+        0
+      ],
+      [
+        25,
+        0
+      ],
+      [
+        25,
+        0
+      ],
+      [
+        25,
+        0
+      ],
+      [
+        25,
+        0
+      ],
+      [
+        25,
+        0
+      ],
+      [
+        25,
+        0
+      ],
+      [
+        4,
+        -15
+      ],
+      [
+        4,
+        -10
+      ],
+      [
+        1,
+        -7
+      ],
+      [
+        -1,
+        -7
+      ],
+      [
+        -7,
+        -16
+      ],
+      [
+        -6,
+        -7
+      ],
+      [
+        -3,
+        -8
+      ],
+      [
+        -4,
+        -7
+      ],
+      [
+        -7,
+        -20
+      ],
+      [
+        14,
+        0
+      ],
+      [
+        15,
+        1
+      ],
+      [
+        15,
+        0
+      ],
+      [
+        16,
+        0
+      ]
+    ],
+    [
+      [
+        6217,
+        3439
+      ],
+      [
+        0,
+        -68
+      ],
+      [
+        0,
+        -67
+      ],
+      [
+        0,
+        -68
+      ],
+      [
+        0,
+        -67
+      ],
+      [
+        0,
+        -68
+      ],
+      [
+        0,
+        -68
+      ],
+      [
+        0,
+        -67
+      ],
+      [
+        0,
+        -68
+      ],
+      [
+        0,
+        -67
+      ],
+      [
+        0,
+        -68
+      ],
+      [
+        0,
+        -68
+      ],
+      [
+        0,
+        -67
+      ],
+      [
+        0,
+        -68
+      ],
+      [
+        0,
+        -67
+      ],
+      [
+        0,
+        -68
+      ],
+      [
+        0,
+        -68
+      ]
+    ],
+    [
+      [
+        6217,
+        2357
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -32,
+        0
+      ],
+      [
+        -32,
+        0
+      ],
+      [
+        -32,
+        0
+      ],
+      [
+        -31,
+        0
+      ],
+      [
+        -32,
+        0
+      ],
+      [
+        -43,
+        28
+      ],
+      [
+        -42,
+        28
+      ],
+      [
+        -43,
+        28
+      ],
+      [
+        -43,
+        29
+      ],
+      [
+        -42,
+        28
+      ],
+      [
+        -43,
+        28
+      ],
+      [
+        -43,
+        28
+      ],
+      [
+        -42,
+        28
+      ],
+      [
+        4,
+        11
+      ],
+      [
+        6,
+        29
+      ]
+    ],
+    [
+      [
+        5707,
+        2622
+      ],
+      [
+        0,
+        2
+      ],
+      [
+        13,
+        2
+      ],
+      [
+        5,
+        7
+      ],
+      [
+        4,
+        13
+      ],
+      [
+        1,
+        13
+      ],
+      [
+        -2,
+        14
+      ],
+      [
+        -6,
+        10
+      ],
+      [
+        -8,
+        7
+      ],
+      [
+        -5,
+        19
+      ],
+      [
+        -2,
+        30
+      ],
+      [
+        2,
+        17
+      ],
+      [
+        4,
+        2
+      ],
+      [
+        5,
+        8
+      ],
+      [
+        4,
+        12
+      ],
+      [
+        3,
+        14
+      ],
+      [
+        2,
+        15
+      ],
+      [
+        0,
+        19
+      ],
+      [
+        -1,
+        22
+      ],
+      [
+        8,
+        29
+      ],
+      [
+        8,
+        17
+      ],
+      [
+        15,
+        21
+      ],
+      [
+        4,
+        6
+      ],
+      [
+        0,
+        6
+      ],
+      [
+        -3,
+        8
+      ],
+      [
+        -14,
+        14
+      ],
+      [
+        -5,
+        11
+      ],
+      [
+        -1,
+        10
+      ],
+      [
+        -2,
+        9
+      ],
+      [
+        -14,
+        39
+      ],
+      [
+        -5,
+        22
+      ],
+      [
+        0,
+        16
+      ]
+    ],
+    [
+      [
+        5717,
+        3056
+      ],
+      [
+        0,
+        1
+      ],
+      [
+        2,
+        68
+      ],
+      [
+        -5,
+        23
+      ],
+      [
+        -2,
+        13
+      ],
+      [
+        2,
+        17
+      ],
+      [
+        -1,
+        10
+      ],
+      [
+        -2,
+        9
+      ],
+      [
+        -1,
+        16
+      ],
+      [
+        0,
+        19
+      ],
+      [
+        -4,
+        13
+      ],
+      [
+        -1,
+        6
+      ],
+      [
+        3,
+        13
+      ],
+      [
+        4,
+        7
+      ],
+      [
+        7,
+        5
+      ],
+      [
+        7,
+        2
+      ],
+      [
+        9,
+        -2
+      ],
+      [
+        7,
+        -6
+      ],
+      [
+        5,
+        -10
+      ],
+      [
+        4,
+        -6
+      ],
+      [
+        4,
+        0
+      ],
+      [
+        6,
+        9
+      ],
+      [
+        5,
+        19
+      ],
+      [
+        2,
+        1
+      ],
+      [
+        0,
+        82
+      ],
+      [
+        0,
+        75
+      ]
+    ],
+    [
+      [
+        5768,
+        3440
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        28,
+        -1
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        29,
+        0
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        28,
+        0
+      ]
+    ],
+    [
+      [
+        5381,
+        2643
+      ],
+      [
+        -5,
+        -1
+      ],
+      [
+        -6,
+        3
+      ],
+      [
+        -5,
+        19
+      ],
+      [
+        -6,
+        14
+      ],
+      [
+        3,
+        4
+      ],
+      [
+        5,
+        -14
+      ],
+      [
+        11,
+        -21
+      ],
+      [
+        3,
+        -4
+      ]
+    ],
+    [
+      [
+        5283,
+        2718
+      ],
+      [
+        -4,
+        -1
+      ],
+      [
+        -6,
+        2
+      ],
+      [
+        -2,
+        10
+      ],
+      [
+        4,
+        1
+      ],
+      [
+        4,
+        -1
+      ],
+      [
+        4,
+        -9
+      ],
+      [
+        0,
+        -2
+      ]
+    ],
+    [
+      [
+        5381,
+        2750
+      ],
+      [
+        5,
+        -14
+      ],
+      [
+        -7,
+        1
+      ],
+      [
+        -7,
+        0
+      ],
+      [
+        -2,
+        7
+      ],
+      [
+        -2,
+        11
+      ],
+      [
+        -1,
+        3
+      ],
+      [
+        -5,
+        0
+      ],
+      [
+        0,
+        1
+      ],
+      [
+        -1,
+        6
+      ],
+      [
+        1,
+        2
+      ],
+      [
+        15,
+        -12
+      ],
+      [
+        4,
+        -5
+      ]
+    ],
+    [
+      [
+        5229,
+        2851
+      ],
+      [
+        -7,
+        -2
+      ],
+      [
+        -5,
+        2
+      ],
+      [
+        -7,
+        18
+      ],
+      [
+        16,
+        3
+      ],
+      [
+        7,
+        -8
+      ],
+      [
+        1,
+        -2
+      ],
+      [
+        -5,
+        -11
+      ]
+    ],
+    [
+      [
+        5205,
+        2872
+      ],
+      [
+        -5,
+        -1
+      ],
+      [
+        -7,
+        2
+      ],
+      [
+        2,
+        5
+      ],
+      [
+        4,
+        3
+      ],
+      [
+        2,
+        -3
+      ],
+      [
+        4,
+        -6
+      ]
+    ],
+    [
+      [
+        5243,
+        2882
+      ],
+      [
+        18,
+        -10
+      ],
+      [
+        10,
+        5
+      ],
+      [
+        2,
+        -5
+      ],
+      [
+        -1,
+        -4
+      ],
+      [
+        -22,
+        -7
+      ],
+      [
+        -7,
+        5
+      ],
+      [
+        -1,
+        7
+      ],
+      [
+        -2,
+        7
+      ],
+      [
+        3,
+        2
+      ]
+    ],
+    [
+      [
+        5232,
+        4392
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -35
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -35
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -35
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -35
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        21,
+        -31
+      ],
+      [
+        22,
+        -31
+      ],
+      [
+        21,
+        -31
+      ],
+      [
+        21,
+        -32
+      ],
+      [
+        21,
+        -31
+      ],
+      [
+        21,
+        -31
+      ],
+      [
+        21,
+        -31
+      ],
+      [
+        21,
+        -31
+      ],
+      [
+        16,
+        -26
+      ],
+      [
+        17,
+        -27
+      ],
+      [
+        16,
+        -26
+      ],
+      [
+        17,
+        -26
+      ],
+      [
+        16,
+        -27
+      ],
+      [
+        17,
+        -26
+      ],
+      [
+        16,
+        -26
+      ],
+      [
+        17,
+        -26
+      ],
+      [
+        23,
+        -38
+      ],
+      [
+        22,
+        -38
+      ],
+      [
+        23,
+        -38
+      ],
+      [
+        23,
+        -38
+      ],
+      [
+        23,
+        -37
+      ],
+      [
+        23,
+        -38
+      ],
+      [
+        23,
+        -38
+      ],
+      [
+        24,
+        -40
+      ]
+    ],
+    [
+      [
+        5707,
+        2622
+      ],
+      [
+        -11,
+        -2
+      ],
+      [
+        -25,
+        -4
+      ],
+      [
+        -26,
+        -4
+      ],
+      [
+        -26,
+        -4
+      ],
+      [
+        -25,
+        -4
+      ],
+      [
+        -26,
+        -5
+      ],
+      [
+        -26,
+        -4
+      ],
+      [
+        -26,
+        -4
+      ],
+      [
+        -25,
+        -4
+      ],
+      [
+        -1,
+        1
+      ],
+      [
+        0,
+        21
+      ],
+      [
+        -4,
+        8
+      ],
+      [
+        -6,
+        -5
+      ],
+      [
+        -2,
+        27
+      ],
+      [
+        1,
+        13
+      ],
+      [
+        0,
+        12
+      ],
+      [
+        -5,
+        31
+      ],
+      [
+        -14,
+        37
+      ],
+      [
+        -29,
+        47
+      ],
+      [
+        -14,
+        15
+      ],
+      [
+        -12,
+        20
+      ],
+      [
+        -7,
+        5
+      ],
+      [
+        -10,
+        2
+      ],
+      [
+        -2,
+        -9
+      ],
+      [
+        -11,
+        6
+      ],
+      [
+        2,
+        22
+      ],
+      [
+        -10,
+        30
+      ],
+      [
+        -9,
+        3
+      ],
+      [
+        -21,
+        -2
+      ],
+      [
+        -28,
+        17
+      ],
+      [
+        -8,
+        10
+      ],
+      [
+        -3,
+        18
+      ],
+      [
+        -13,
+        15
+      ],
+      [
+        -17,
+        15
+      ],
+      [
+        -10,
+        -3
+      ],
+      [
+        -12,
+        2
+      ],
+      [
+        -18,
+        11
+      ],
+      [
+        -11,
+        2
+      ],
+      [
+        -20,
+        -4
+      ],
+      [
+        -8,
+        3
+      ],
+      [
+        -7,
+        13
+      ],
+      [
+        -8,
+        7
+      ],
+      [
+        2,
+        17
+      ],
+      [
+        -1,
+        16
+      ],
+      [
+        1,
+        12
+      ],
+      [
+        -3,
+        26
+      ],
+      [
+        2,
+        24
+      ],
+      [
+        -2,
+        9
+      ],
+      [
+        -4,
+        7
+      ],
+      [
+        -14,
+        9
+      ],
+      [
+        -2,
+        13
+      ],
+      [
+        2,
+        17
+      ],
+      [
+        -3,
+        12
+      ],
+      [
+        -12,
+        10
+      ],
+      [
+        -10,
+        24
+      ],
+      [
+        -13,
+        13
+      ],
+      [
+        -5,
+        23
+      ],
+      [
+        -8,
+        13
+      ],
+      [
+        -3,
+        12
+      ],
+      [
+        -18,
+        43
+      ],
+      [
+        -19,
+        34
+      ],
+      [
+        -3,
+        20
+      ],
+      [
+        -1,
+        26
+      ],
+      [
+        7,
+        16
+      ],
+      [
+        4,
+        15
+      ],
+      [
+        0,
+        13
+      ],
+      [
+        -1,
+        9
+      ],
+      [
+        -7,
+        17
+      ],
+      [
+        -25,
+        10
+      ],
+      [
+        -21,
+        41
+      ],
+      [
+        -1,
+        32
+      ],
+      [
+        -8,
+        32
+      ],
+      [
+        0,
+        21
+      ],
+      [
+        -2,
+        23
+      ],
+      [
+        7,
+        5
+      ],
+      [
+        5,
+        -2
+      ],
+      [
+        0,
+        -9
+      ],
+      [
+        1,
+        -16
+      ],
+      [
+        7,
+        -12
+      ],
+      [
+        6,
+        -6
+      ],
+      [
+        6,
+        -12
+      ],
+      [
+        4,
+        -3
+      ],
+      [
+        4,
+        -1
+      ],
+      [
+        -2,
+        8
+      ],
+      [
+        -3,
+        4
+      ],
+      [
+        -3,
+        16
+      ],
+      [
+        -5,
+        20
+      ],
+      [
+        -7,
+        11
+      ],
+      [
+        -3,
+        21
+      ],
+      [
+        -3,
+        4
+      ],
+      [
+        -2,
+        8
+      ],
+      [
+        6,
+        9
+      ],
+      [
+        9,
+        6
+      ],
+      [
+        12,
+        2
+      ],
+      [
+        33,
+        -3
+      ],
+      [
+        7,
+        5
+      ],
+      [
+        6,
+        -2
+      ],
+      [
+        4,
+        1
+      ],
+      [
+        -9,
+        5
+      ],
+      [
+        -5,
+        -1
+      ],
+      [
+        -6,
+        1
+      ],
+      [
+        -12,
+        -1
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -6,
+        6
+      ],
+      [
+        -3,
+        1
+      ],
+      [
+        -11,
+        -11
+      ],
+      [
+        -5,
+        1
+      ],
+      [
+        -12,
+        12
+      ],
+      [
+        -5,
+        2
+      ],
+      [
+        -8,
+        -7
+      ],
+      [
+        -1,
+        -29
+      ],
+      [
+        3,
+        -22
+      ],
+      [
+        -5,
+        -3
+      ],
+      [
+        -6,
+        9
+      ],
+      [
+        -9,
+        6
+      ],
+      [
+        -7,
+        8
+      ],
+      [
+        -10,
+        15
+      ],
+      [
+        -5,
+        6
+      ],
+      [
+        -6,
+        -13
+      ],
+      [
+        0,
+        6
+      ],
+      [
+        3,
+        15
+      ],
+      [
+        -1,
+        25
+      ],
+      [
+        9,
+        -20
+      ],
+      [
+        -3,
+        14
+      ],
+      [
+        -7,
+        15
+      ],
+      [
+        -5,
+        6
+      ],
+      [
+        -7,
+        27
+      ],
+      [
+        -15,
+        17
+      ],
+      [
+        -12,
+        26
+      ],
+      [
+        -25,
+        44
+      ],
+      [
+        -2,
+        39
+      ],
+      [
+        -9,
+        49
+      ],
+      [
+        4,
+        28
+      ],
+      [
+        -1,
+        20
+      ],
+      [
+        -4,
+        30
+      ],
+      [
+        -5,
+        16
+      ],
+      [
+        -20,
+        45
+      ],
+      [
+        -19,
+        30
+      ],
+      [
+        -3,
+        23
+      ],
+      [
+        -2,
+        22
+      ],
+      [
+        5,
+        21
+      ],
+      [
+        3,
+        21
+      ],
+      [
+        3,
+        6
+      ],
+      [
+        1,
+        -2
+      ],
+      [
+        -1,
+        -5
+      ],
+      [
+        3,
+        -1
+      ],
+      [
+        1,
+        9
+      ],
+      [
+        2,
+        5
+      ],
+      [
+        -3,
+        1
+      ],
+      [
+        0,
+        3
+      ],
+      [
+        2,
+        6
+      ],
+      [
+        6,
+        28
+      ],
+      [
+        -1,
+        35
+      ],
+      [
+        7,
+        44
+      ],
+      [
+        -1,
+        14
+      ],
+      [
+        -4,
+        31
+      ],
+      [
+        -4,
+        19
+      ],
+      [
+        -7,
+        13
+      ],
+      [
+        3,
+        19
+      ],
+      [
+        0,
+        18
+      ],
+      [
+        -2,
+        3
+      ]
+    ],
+    [
+      [
+        4852,
+        4392
+      ],
+      [
+        25,
+        0
+      ],
+      [
+        23,
+        0
+      ],
+      [
+        24,
+        0
+      ],
+      [
+        24,
+        0
+      ],
+      [
+        24,
+        0
+      ],
+      [
+        23,
+        0
+      ],
+      [
+        24,
+        0
+      ],
+      [
+        24,
+        0
+      ],
+      [
+        23,
+        0
+      ],
+      [
+        24,
+        0
+      ],
+      [
+        24,
+        0
+      ],
+      [
+        24,
+        0
+      ],
+      [
+        23,
+        0
+      ],
+      [
+        24,
+        0
+      ],
+      [
+        24,
+        0
+      ],
+      [
+        23,
+        0
+      ]
+    ],
+    [
+      [
+        6849,
+        4011
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -35
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -35
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -35
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        1,
+        -36
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -35
+      ],
+      [
+        0,
+        -36
+      ]
+    ],
+    [
+      [
+        6850,
+        3439
+      ],
+      [
+        -22,
+        0
+      ],
+      [
+        -23,
+        0
+      ],
+      [
+        -22,
+        0
+      ],
+      [
+        -22,
+        0
+      ]
+    ],
+    [
+      [
+        6761,
+        3439
+      ],
+      [
+        -34,
+        0
+      ],
+      [
+        -34,
+        0
+      ],
+      [
+        -34,
+        0
+      ],
+      [
+        -34,
+        0
+      ],
+      [
+        -34,
+        0
+      ],
+      [
+        -34,
+        0
+      ],
+      [
+        -34,
+        0
+      ],
+      [
+        -34,
+        0
+      ],
+      [
+        -34,
+        0
+      ],
+      [
+        -34,
+        0
+      ],
+      [
+        -34,
+        0
+      ],
+      [
+        -34,
+        0
+      ],
+      [
+        -34,
+        0
+      ],
+      [
+        -34,
+        0
+      ],
+      [
+        -34,
+        0
+      ],
+      [
+        -34,
+        0
+      ]
+    ],
+    [
+      [
+        6217,
+        3439
+      ],
+      [
+        0,
+        48
+      ],
+      [
+        0,
+        47
+      ],
+      [
+        0,
+        48
+      ],
+      [
+        0,
+        48
+      ],
+      [
+        0,
+        47
+      ],
+      [
+        0,
+        48
+      ],
+      [
+        0,
+        48
+      ],
+      [
+        0,
+        47
+      ],
+      [
+        0,
+        48
+      ],
+      [
+        0,
+        48
+      ],
+      [
+        0,
+        47
+      ],
+      [
+        0,
+        48
+      ],
+      [
+        0,
+        48
+      ],
+      [
+        0,
+        47
+      ],
+      [
+        0,
+        48
+      ],
+      [
+        0,
+        48
+      ]
+    ],
+    [
+      [
+        6217,
+        4202
+      ],
+      [
+        29,
+        0
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        29,
+        0
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        29,
+        0
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        29,
+        0
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        28,
+        0
+      ]
+    ],
+    [
+      [
+        6669,
+        4202
+      ],
+      [
+        23,
+        0
+      ],
+      [
+        22,
+        0
+      ],
+      [
+        22,
+        0
+      ],
+      [
+        23,
+        0
+      ],
+      [
+        22,
+        0
+      ],
+      [
+        23,
+        0
+      ],
+      [
+        22,
+        0
+      ],
+      [
+        23,
+        0
+      ],
+      [
+        0,
+        -24
+      ],
+      [
+        0,
+        -24
+      ],
+      [
+        0,
+        -24
+      ],
+      [
+        0,
+        -24
+      ],
+      [
+        0,
+        -24
+      ],
+      [
+        0,
+        -23
+      ],
+      [
+        0,
+        -24
+      ],
+      [
+        0,
+        -24
+      ]
+    ],
+    [
+      [
+        9566,
+        4394
+      ],
+      [
+        0,
+        -10
+      ],
+      [
+        0,
+        -14
+      ],
+      [
+        0,
+        -11
+      ],
+      [
+        0,
+        -14
+      ],
+      [
+        0,
+        -16
+      ],
+      [
+        1,
+        -15
+      ],
+      [
+        0,
+        -13
+      ],
+      [
+        -1,
+        -8
+      ],
+      [
+        0,
+        -12
+      ],
+      [
+        -2,
+        -5
+      ],
+      [
+        -2,
+        -11
+      ]
+    ],
+    [
+      [
+        9562,
+        4265
+      ],
+      [
+        -7,
+        1
+      ],
+      [
+        -13,
+        -2
+      ],
+      [
+        -18,
+        -7
+      ],
+      [
+        -9,
+        4
+      ],
+      [
+        -10,
+        -7
+      ],
+      [
+        -33,
+        -2
+      ],
+      [
+        -7,
+        4
+      ],
+      [
+        -9,
+        -13
+      ],
+      [
+        -14,
+        -8
+      ],
+      [
+        -36,
+        -29
+      ],
+      [
+        -4,
+        -6
+      ]
+    ],
+    [
+      [
+        9402,
+        4200
+      ],
+      [
+        -5,
+        12
+      ],
+      [
+        -4,
+        9
+      ],
+      [
+        8,
+        8
+      ],
+      [
+        5,
+        5
+      ],
+      [
+        5,
+        6
+      ],
+      [
+        4,
+        3
+      ],
+      [
+        -3,
+        8
+      ],
+      [
+        -3,
+        7
+      ],
+      [
+        1,
+        18
+      ],
+      [
+        1,
+        18
+      ],
+      [
+        1,
+        18
+      ],
+      [
+        0,
+        18
+      ],
+      [
+        1,
+        18
+      ],
+      [
+        1,
+        18
+      ],
+      [
+        0,
+        19
+      ],
+      [
+        1,
+        18
+      ]
+    ],
+    [
+      [
+        9415,
+        4403
+      ],
+      [
+        8,
+        -1
+      ],
+      [
+        7,
+        0
+      ],
+      [
+        8,
+        -1
+      ],
+      [
+        7,
+        0
+      ],
+      [
+        8,
+        -1
+      ],
+      [
+        8,
+        0
+      ],
+      [
+        7,
+        -1
+      ],
+      [
+        8,
+        0
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        4,
+        0
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        11,
+        -1
+      ],
+      [
+        11,
+        0
+      ],
+      [
+        10,
+        0
+      ],
+      [
+        11,
+        0
+      ],
+      [
+        11,
+        -1
+      ],
+      [
+        11,
+        0
+      ],
+      [
+        10,
+        0
+      ],
+      [
+        11,
+        -1
+      ],
+      [
+        0,
+        -2
+      ]
+    ],
+    [
+      [
+        9096,
+        3799
+      ],
+      [
+        -2,
+        5
+      ],
+      [
+        -4,
+        4
+      ],
+      [
+        -2,
+        1
+      ]
+    ],
+    [
+      [
+        9088,
+        3809
+      ],
+      [
+        7,
+        13
+      ],
+      [
+        5,
+        -11
+      ],
+      [
+        5,
+        -12
+      ],
+      [
+        -8,
+        -16
+      ],
+      [
+        -1,
+        16
+      ]
+    ],
+    [
+      [
+        9241,
+        3976
+      ],
+      [
+        -4,
+        -7
+      ],
+      [
+        -4,
+        -12
+      ],
+      [
+        -7,
+        -15
+      ],
+      [
+        0,
+        -10
+      ],
+      [
+        2,
+        -6
+      ],
+      [
+        -1,
+        -15
+      ],
+      [
+        5,
+        -14
+      ],
+      [
+        9,
+        -23
+      ],
+      [
+        2,
+        -36
+      ],
+      [
+        8,
+        -24
+      ],
+      [
+        11,
+        -28
+      ],
+      [
+        9,
+        -8
+      ],
+      [
+        0,
+        -11
+      ],
+      [
+        -4,
+        -17
+      ],
+      [
+        -5,
+        -8
+      ],
+      [
+        7,
+        2
+      ],
+      [
+        3,
+        -4
+      ],
+      [
+        3,
+        -15
+      ],
+      [
+        0,
+        -9
+      ]
+    ],
+    [
+      [
+        9275,
+        3716
+      ],
+      [
+        -9,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -9,
+        0
+      ],
+      [
+        -1,
+        0
+      ],
+      [
+        -1,
+        0
+      ],
+      [
+        -1,
+        30
+      ],
+      [
+        -1,
+        31
+      ],
+      [
+        -1,
+        30
+      ],
+      [
+        -1,
+        30
+      ],
+      [
+        0,
+        30
+      ],
+      [
+        -1,
+        30
+      ],
+      [
+        -1,
+        31
+      ],
+      [
+        -1,
+        30
+      ]
+    ],
+    [
+      [
+        9208,
+        3958
+      ],
+      [
+        7,
+        15
+      ],
+      [
+        3,
+        5
+      ],
+      [
+        3,
+        2
+      ],
+      [
+        12,
+        1
+      ],
+      [
+        8,
+        -5
+      ]
+    ],
+    [
+      [
+        8669,
+        1064
+      ],
+      [
+        -3,
+        0
+      ],
+      [
+        0,
+        3
+      ],
+      [
+        4,
+        3
+      ],
+      [
+        3,
+        0
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        -4,
+        -2
+      ]
+    ],
+    [
+      [
+        8688,
+        1075
+      ],
+      [
+        -6,
+        -2
+      ],
+      [
+        5,
+        7
+      ],
+      [
+        1,
+        12
+      ],
+      [
+        3,
+        -9
+      ],
+      [
+        0,
+        -6
+      ],
+      [
+        -3,
+        -2
+      ]
+    ],
+    [
+      [
+        8709,
+        1084
+      ],
+      [
+        -3,
+        -4
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        -4,
+        13
+      ],
+      [
+        0,
+        3
+      ],
+      [
+        9,
+        -12
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        -1,
+        -3
+      ]
+    ],
+    [
+      [
+        8735,
+        1097
+      ],
+      [
+        -4,
+        -5
+      ],
+      [
+        -4,
+        4
+      ],
+      [
+        4,
+        4
+      ],
+      [
+        14,
+        5
+      ],
+      [
+        -5,
+        -6
+      ],
+      [
+        -5,
+        -2
+      ]
+    ],
+    [
+      [
+        8754,
+        1113
+      ],
+      [
+        -1,
+        0
+      ],
+      [
+        1,
+        3
+      ],
+      [
+        3,
+        6
+      ],
+      [
+        1,
+        -3
+      ],
+      [
+        0,
+        -2
+      ],
+      [
+        -4,
+        -4
+      ]
+    ],
+    [
+      [
+        8772,
+        1132
+      ],
+      [
+        -3,
+        -1
+      ],
+      [
+        4,
+        9
+      ],
+      [
+        1,
+        -1
+      ],
+      [
+        -2,
+        -7
+      ]
+    ],
+    [
+      [
+        8795,
+        1178
+      ],
+      [
+        -18,
+        -36
+      ],
+      [
+        2,
+        9
+      ],
+      [
+        7,
+        19
+      ],
+      [
+        2,
+        9
+      ],
+      [
+        5,
+        6
+      ],
+      [
+        4,
+        10
+      ],
+      [
+        0,
+        12
+      ],
+      [
+        7,
+        9
+      ],
+      [
+        2,
+        1
+      ],
+      [
+        -11,
+        -39
+      ]
+    ],
+    [
+      [
+        8646,
+        1428
+      ],
+      [
+        -3,
+        -5
+      ],
+      [
+        -7,
+        4
+      ],
+      [
+        -3,
+        6
+      ],
+      [
+        -2,
+        13
+      ],
+      [
+        6,
+        -14
+      ],
+      [
+        2,
+        -3
+      ],
+      [
+        7,
+        -1
+      ]
+    ],
+    [
+      [
+        8642,
+        1447
+      ],
+      [
+        -1,
+        -11
+      ],
+      [
+        -4,
+        18
+      ],
+      [
+        -3,
+        21
+      ],
+      [
+        4,
+        -7
+      ],
+      [
+        4,
+        -21
+      ]
+    ],
+    [
+      [
+        8812,
+        1585
+      ],
+      [
+        2,
+        -14
+      ],
+      [
+        -9,
+        33
+      ],
+      [
+        -10,
+        51
+      ],
+      [
+        -5,
+        39
+      ],
+      [
+        3,
+        -10
+      ],
+      [
+        4,
+        -22
+      ],
+      [
+        15,
+        -77
+      ]
+    ],
+    [
+      [
+        8388,
+        2036
+      ],
+      [
+        -9,
+        -7
+      ],
+      [
+        -10,
+        5
+      ],
+      [
+        6,
+        1
+      ],
+      [
+        4,
+        -2
+      ],
+      [
+        11,
+        10
+      ],
+      [
+        6,
+        7
+      ],
+      [
+        7,
+        3
+      ],
+      [
+        -15,
+        -17
+      ]
+    ],
+    [
+      [
+        8694,
+        2244
+      ],
+      [
+        4,
+        -18
+      ],
+      [
+        6,
+        -70
+      ],
+      [
+        5,
+        -25
+      ],
+      [
+        8,
+        -66
+      ],
+      [
+        13,
+        -64
+      ],
+      [
+        18,
+        -78
+      ],
+      [
+        30,
+        -94
+      ],
+      [
+        4,
+        -13
+      ],
+      [
+        -4,
+        -12
+      ],
+      [
+        -1,
+        -12
+      ],
+      [
+        -1,
+        -17
+      ],
+      [
+        1,
+        -18
+      ],
+      [
+        4,
+        -21
+      ],
+      [
+        7,
+        -32
+      ],
+      [
+        -4,
+        6
+      ],
+      [
+        -10,
+        47
+      ],
+      [
+        -1,
+        27
+      ],
+      [
+        1,
+        39
+      ],
+      [
+        -2,
+        -1
+      ],
+      [
+        -2,
+        -13
+      ],
+      [
+        -1,
+        -15
+      ],
+      [
+        -2,
+        -5
+      ],
+      [
+        -4,
+        22
+      ],
+      [
+        0,
+        10
+      ],
+      [
+        4,
+        12
+      ],
+      [
+        -1,
+        4
+      ],
+      [
+        -6,
+        6
+      ],
+      [
+        -1,
+        10
+      ],
+      [
+        1,
+        9
+      ],
+      [
+        -4,
+        6
+      ],
+      [
+        -2,
+        -1
+      ],
+      [
+        1,
+        -23
+      ],
+      [
+        3,
+        -14
+      ],
+      [
+        4,
+        -35
+      ],
+      [
+        5,
+        -20
+      ],
+      [
+        4,
+        -18
+      ],
+      [
+        38,
+        -185
+      ],
+      [
+        9,
+        -24
+      ],
+      [
+        3,
+        -17
+      ],
+      [
+        3,
+        -35
+      ],
+      [
+        1,
+        -46
+      ],
+      [
+        -6,
+        -83
+      ],
+      [
+        -1,
+        -57
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        -1,
+        5
+      ],
+      [
+        -1,
+        1
+      ],
+      [
+        -6,
+        -26
+      ],
+      [
+        -7,
+        -23
+      ],
+      [
+        -3,
+        -37
+      ],
+      [
+        -3,
+        -18
+      ],
+      [
+        -11,
+        -19
+      ],
+      [
+        -6,
+        0
+      ],
+      [
+        -16,
+        -14
+      ],
+      [
+        -12,
+        3
+      ],
+      [
+        -13,
+        -8
+      ],
+      [
+        -9,
+        1
+      ],
+      [
+        -5,
+        17
+      ],
+      [
+        1,
+        8
+      ],
+      [
+        2,
+        8
+      ],
+      [
+        3,
+        2
+      ],
+      [
+        12,
+        -18
+      ],
+      [
+        2,
+        7
+      ],
+      [
+        -3,
+        9
+      ],
+      [
+        -7,
+        5
+      ],
+      [
+        -5,
+        6
+      ],
+      [
+        -10,
+        41
+      ],
+      [
+        -11,
+        28
+      ],
+      [
+        -2,
+        19
+      ],
+      [
+        -18,
+        12
+      ],
+      [
+        -13,
+        17
+      ],
+      [
+        -9,
+        31
+      ],
+      [
+        -5,
+        55
+      ],
+      [
+        -6,
+        7
+      ],
+      [
+        -2,
+        4
+      ],
+      [
+        6,
+        20
+      ],
+      [
+        6,
+        18
+      ],
+      [
+        -5,
+        -5
+      ],
+      [
+        -4,
+        -6
+      ],
+      [
+        -4,
+        -15
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -3,
+        3
+      ],
+      [
+        -4,
+        29
+      ],
+      [
+        1,
+        35
+      ],
+      [
+        5,
+        14
+      ],
+      [
+        -7,
+        0
+      ],
+      [
+        -8,
+        -5
+      ],
+      [
+        1,
+        -12
+      ],
+      [
+        -1,
+        -6
+      ],
+      [
+        -6,
+        1
+      ],
+      [
+        -4,
+        5
+      ],
+      [
+        -6,
+        12
+      ],
+      [
+        -8,
+        24
+      ],
+      [
+        -16,
+        65
+      ],
+      [
+        -3,
+        9
+      ],
+      [
+        -5,
+        9
+      ],
+      [
+        2,
+        3
+      ],
+      [
+        5,
+        2
+      ],
+      [
+        10,
+        29
+      ],
+      [
+        8,
+        18
+      ],
+      [
+        3,
+        12
+      ],
+      [
+        0,
+        6
+      ],
+      [
+        -4,
+        7
+      ],
+      [
+        -5,
+        -6
+      ],
+      [
+        -2,
+        2
+      ],
+      [
+        -5,
+        15
+      ],
+      [
+        -5,
+        4
+      ],
+      [
+        -4,
+        -3
+      ],
+      [
+        4,
+        -13
+      ],
+      [
+        4,
+        -4
+      ],
+      [
+        -2,
+        -19
+      ],
+      [
+        -1,
+        -6
+      ],
+      [
+        -3,
+        -5
+      ],
+      [
+        -5,
+        3
+      ],
+      [
+        -3,
+        -5
+      ],
+      [
+        -3,
+        5
+      ],
+      [
+        -2,
+        8
+      ],
+      [
+        -4,
+        13
+      ],
+      [
+        9,
+        75
+      ],
+      [
+        8,
+        47
+      ],
+      [
+        1,
+        55
+      ],
+      [
+        0,
+        8
+      ],
+      [
+        0,
+        14
+      ],
+      [
+        -11,
+        31
+      ],
+      [
+        -47,
+        77
+      ],
+      [
+        -36,
+        90
+      ],
+      [
+        -32,
+        34
+      ],
+      [
+        -24,
+        -7
+      ],
+      [
+        -4,
+        -7
+      ],
+      [
+        -1,
+        -9
+      ],
+      [
+        1,
+        -10
+      ],
+      [
+        -2,
+        -5
+      ],
+      [
+        -7,
+        1
+      ],
+      [
+        -8,
+        -2
+      ],
+      [
+        -23,
+        -24
+      ],
+      [
+        -8,
+        1
+      ],
+      [
+        -7,
+        -6
+      ],
+      [
+        -5,
+        -5
+      ],
+      [
+        -14,
+        -3
+      ],
+      [
+        -12,
+        -5
+      ],
+      [
+        -5,
+        3
+      ],
+      [
+        -4,
+        14
+      ],
+      [
+        0,
+        14
+      ],
+      [
+        3,
+        -11
+      ],
+      [
+        4,
+        -8
+      ],
+      [
+        2,
+        3
+      ],
+      [
+        1,
+        8
+      ],
+      [
+        -4,
+        14
+      ],
+      [
+        -14,
+        20
+      ],
+      [
+        -15,
+        27
+      ],
+      [
+        4,
+        -1
+      ],
+      [
+        2,
+        6
+      ],
+      [
+        -5,
+        8
+      ],
+      [
+        2,
+        9
+      ],
+      [
+        3,
+        10
+      ],
+      [
+        -6,
+        -2
+      ],
+      [
+        -6,
+        -6
+      ],
+      [
+        0,
+        -8
+      ],
+      [
+        -2,
+        -7
+      ],
+      [
+        -3,
+        1
+      ],
+      [
+        -6,
+        8
+      ],
+      [
+        -28,
+        23
+      ],
+      [
+        -25,
+        12
+      ],
+      [
+        19,
+        6
+      ],
+      [
+        10,
+        -4
+      ],
+      [
+        -1,
+        6
+      ],
+      [
+        -2,
+        5
+      ],
+      [
+        -9,
+        5
+      ],
+      [
+        -10,
+        -2
+      ],
+      [
+        -7,
+        3
+      ],
+      [
+        -7,
+        -6
+      ],
+      [
+        -7,
+        -8
+      ],
+      [
+        -7,
+        -4
+      ],
+      [
+        -26,
+        -6
+      ],
+      [
+        -21,
+        -6
+      ],
+      [
+        4,
+        6
+      ],
+      [
+        3,
+        5
+      ],
+      [
+        13,
+        6
+      ],
+      [
+        2,
+        14
+      ],
+      [
+        -3,
+        13
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -4,
+        -10
+      ],
+      [
+        -4,
+        7
+      ],
+      [
+        -5,
+        0
+      ],
+      [
+        -1,
+        -16
+      ],
+      [
+        -6,
+        -11
+      ],
+      [
+        -3,
+        -11
+      ],
+      [
+        -17,
+        -9
+      ],
+      [
+        -2,
+        3
+      ],
+      [
+        5,
+        11
+      ],
+      [
+        -1,
+        5
+      ],
+      [
+        -3,
+        -3
+      ]
+    ],
+    [
+      [
+        8379,
+        2295
+      ],
+      [
+        3,
+        -15
+      ],
+      [
+        8,
+        -31
+      ],
+      [
+        0,
+        -7
+      ],
+      [
+        8,
+        -1
+      ],
+      [
+        15,
+        -2
+      ],
+      [
+        14,
+        -2
+      ],
+      [
+        14,
+        -2
+      ],
+      [
+        15,
+        -2
+      ],
+      [
+        14,
+        -1
+      ],
+      [
+        14,
+        -2
+      ],
+      [
+        15,
+        -2
+      ],
+      [
+        14,
+        -2
+      ],
+      [
+        14,
+        -2
+      ],
+      [
+        15,
+        -1
+      ],
+      [
+        14,
+        -2
+      ],
+      [
+        14,
+        -2
+      ],
+      [
+        15,
+        -2
+      ],
+      [
+        14,
+        -1
+      ],
+      [
+        14,
+        -2
+      ],
+      [
+        15,
+        -2
+      ],
+      [
+        0,
+        -6
+      ],
+      [
+        2,
+        -10
+      ],
+      [
+        1,
+        -11
+      ],
+      [
+        1,
+        -6
+      ],
+      [
+        3,
+        -3
+      ],
+      [
+        4,
+        -1
+      ],
+      [
+        5,
+        6
+      ],
+      [
+        2,
+        14
+      ],
+      [
+        1,
+        16
+      ],
+      [
+        -2,
+        18
+      ],
+      [
+        1,
+        15
+      ],
+      [
+        2,
+        9
+      ],
+      [
+        3,
+        2
+      ],
+      [
+        2,
+        4
+      ],
+      [
+        2,
+        1
+      ],
+      [
+        5,
+        -2
+      ],
+      [
+        19,
+        -13
+      ],
+      [
+        15,
+        -1
+      ]
+    ],
+    [
+      [
+        8701,
+        2289
+      ],
+      [
+        -4,
+        -46
+      ],
+      [
+        -1,
+        16
+      ],
+      [
+        -1,
+        16
+      ],
+      [
+        4,
+        10
+      ],
+      [
+        2,
+        4
+      ]
+    ],
+    [
+      [
+        8751,
+        2491
+      ],
+      [
+        -5,
+        -16
+      ],
+      [
+        -11,
+        -10
+      ],
+      [
+        -3,
+        0
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        1,
+        -7
+      ],
+      [
+        3,
+        -5
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        -3,
+        -7
+      ],
+      [
+        -6,
+        -1
+      ],
+      [
+        -3,
+        -8
+      ],
+      [
+        1,
+        -7
+      ],
+      [
+        2,
+        -4
+      ],
+      [
+        0,
+        -7
+      ],
+      [
+        -7,
+        -7
+      ],
+      [
+        -1,
+        -6
+      ],
+      [
+        3,
+        -2
+      ],
+      [
+        2,
+        2
+      ],
+      [
+        2,
+        -2
+      ],
+      [
+        -4,
+        -11
+      ],
+      [
+        -3,
+        -7
+      ],
+      [
+        -3,
+        -12
+      ],
+      [
+        -8,
+        -4
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        4,
+        -3
+      ],
+      [
+        4,
+        -10
+      ],
+      [
+        -7,
+        -17
+      ],
+      [
+        -4,
+        1
+      ],
+      [
+        -3,
+        4
+      ],
+      [
+        -1,
+        -14
+      ],
+      [
+        0,
+        -7
+      ],
+      [
+        -1,
+        -15
+      ],
+      [
+        -3,
+        -19
+      ],
+      [
+        -2,
+        -7
+      ],
+      [
+        1,
+        -14
+      ],
+      [
+        1,
+        -13
+      ]
+    ],
+    [
+      [
+        8323,
+        3058
+      ],
+      [
+        30,
+        -1
+      ],
+      [
+        29,
+        -1
+      ],
+      [
+        29,
+        0
+      ],
+      [
+        29,
+        -1
+      ]
+    ],
+    [
+      [
+        8440,
+        3055
+      ],
+      [
+        27,
+        1
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        27,
+        1
+      ],
+      [
+        27,
+        1
+      ]
+    ],
+    [
+      [
+        8549,
+        3058
+      ],
+      [
+        -1,
+        0
+      ],
+      [
+        -4,
+        -13
+      ],
+      [
+        -13,
+        -25
+      ],
+      [
+        -4,
+        -18
+      ],
+      [
+        17,
+        -21
+      ],
+      [
+        10,
+        -17
+      ],
+      [
+        7,
+        -6
+      ],
+      [
+        8,
+        -2
+      ],
+      [
+        4,
+        -6
+      ],
+      [
+        3,
+        -13
+      ],
+      [
+        20,
+        -67
+      ],
+      [
+        21,
+        -34
+      ],
+      [
+        9,
+        -17
+      ],
+      [
+        4,
+        -16
+      ],
+      [
+        19,
+        -27
+      ],
+      [
+        6,
+        -15
+      ],
+      [
+        0,
+        -11
+      ],
+      [
+        2,
+        -7
+      ],
+      [
+        4,
+        -5
+      ],
+      [
+        4,
+        -10
+      ],
+      [
+        4,
+        -15
+      ],
+      [
+        7,
+        -13
+      ],
+      [
+        11,
+        -11
+      ],
+      [
+        8,
+        -25
+      ],
+      [
+        5,
+        -40
+      ],
+      [
+        5,
+        -23
+      ],
+      [
+        8,
+        -9
+      ],
+      [
+        11,
+        -34
+      ],
+      [
+        3,
+        -20
+      ],
+      [
+        0,
+        -18
+      ],
+      [
+        5,
+        -14
+      ],
+      [
+        19,
+        -15
+      ]
+    ],
+    [
+      [
+        2033,
+        9
+      ],
+      [
+        -4,
+        -9
+      ],
+      [
+        -5,
+        1
+      ],
+      [
+        -18,
+        19
+      ],
+      [
+        -2,
+        11
+      ],
+      [
+        1,
+        49
+      ],
+      [
+        -6,
+        40
+      ],
+      [
+        -8,
+        30
+      ],
+      [
+        6,
+        15
+      ],
+      [
+        7,
+        12
+      ],
+      [
+        8,
+        23
+      ],
+      [
+        -7,
+        29
+      ],
+      [
+        2,
+        18
+      ],
+      [
+        4,
+        3
+      ],
+      [
+        19,
+        -21
+      ],
+      [
+        38,
+        -33
+      ],
+      [
+        10,
+        -22
+      ],
+      [
+        2,
+        -24
+      ],
+      [
+        6,
+        -4
+      ],
+      [
+        4,
+        -16
+      ],
+      [
+        10,
+        -15
+      ],
+      [
+        3,
+        -8
+      ],
+      [
+        -4,
+        -14
+      ],
+      [
+        -18,
+        -25
+      ],
+      [
+        -23,
+        -12
+      ],
+      [
+        -21,
+        -28
+      ],
+      [
+        -4,
+        -19
+      ]
+    ],
+    [
+      [
+        1919,
+        345
+      ],
+      [
+        -5,
+        -6
+      ],
+      [
+        -6,
+        3
+      ],
+      [
+        -1,
+        13
+      ],
+      [
+        -6,
+        17
+      ],
+      [
+        10,
+        3
+      ],
+      [
+        5,
+        -5
+      ],
+      [
+        3,
+        -5
+      ],
+      [
+        4,
+        -9
+      ],
+      [
+        -4,
+        -11
+      ]
+    ],
+    [
+      [
+        1952,
+        375
+      ],
+      [
+        2,
+        -3
+      ],
+      [
+        10,
+        5
+      ],
+      [
+        7,
+        2
+      ],
+      [
+        11,
+        -13
+      ],
+      [
+        4,
+        -8
+      ],
+      [
+        8,
+        -9
+      ],
+      [
+        2,
+        -7
+      ],
+      [
+        -2,
+        -8
+      ],
+      [
+        -8,
+        -14
+      ],
+      [
+        -12,
+        -3
+      ],
+      [
+        -6,
+        -5
+      ],
+      [
+        -9,
+        1
+      ],
+      [
+        -3,
+        2
+      ],
+      [
+        -1,
+        17
+      ],
+      [
+        -3,
+        18
+      ],
+      [
+        -5,
+        -2
+      ],
+      [
+        -7,
+        6
+      ],
+      [
+        -6,
+        15
+      ],
+      [
+        -1,
+        9
+      ],
+      [
+        4,
+        15
+      ],
+      [
+        6,
+        2
+      ],
+      [
+        5,
+        -8
+      ],
+      [
+        4,
+        -12
+      ]
+    ],
+    [
+      [
+        1886,
+        429
+      ],
+      [
+        19,
+        -5
+      ],
+      [
+        5,
+        2
+      ],
+      [
+        3,
+        -4
+      ],
+      [
+        16,
+        -3
+      ],
+      [
+        3,
+        -1
+      ],
+      [
+        -4,
+        -10
+      ],
+      [
+        -10,
+        -9
+      ],
+      [
+        -14,
+        8
+      ],
+      [
+        -24,
+        3
+      ],
+      [
+        1,
+        7
+      ],
+      [
+        2,
+        6
+      ],
+      [
+        0,
+        9
+      ],
+      [
+        3,
+        -3
+      ]
+    ],
+    [
+      [
+        1834,
+        475
+      ],
+      [
+        3,
+        -1
+      ],
+      [
+        4,
+        1
+      ],
+      [
+        1,
+        -15
+      ],
+      [
+        5,
+        -8
+      ],
+      [
+        2,
+        -5
+      ],
+      [
+        -5,
+        -5
+      ],
+      [
+        -10,
+        -3
+      ],
+      [
+        -5,
+        5
+      ],
+      [
+        -4,
+        9
+      ],
+      [
+        -6,
+        -2
+      ],
+      [
+        0,
+        7
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        -4,
+        -2
+      ],
+      [
+        3,
+        -10
+      ],
+      [
+        -8,
+        0
+      ],
+      [
+        -3,
+        1
+      ],
+      [
+        -3,
+        11
+      ],
+      [
+        -9,
+        22
+      ],
+      [
+        0,
+        8
+      ],
+      [
+        -3,
+        10
+      ],
+      [
+        14,
+        3
+      ],
+      [
+        9,
+        17
+      ],
+      [
+        5,
+        2
+      ],
+      [
+        10,
+        -28
+      ],
+      [
+        0,
+        -8
+      ],
+      [
+        2,
+        -8
+      ],
+      [
+        3,
+        -3
+      ]
+    ],
+    [
+      [
+        1620,
+        549
+      ],
+      [
+        -2,
+        -9
+      ],
+      [
+        -3,
+        1
+      ],
+      [
+        -1,
+        8
+      ],
+      [
+        2,
+        10
+      ],
+      [
+        5,
+        9
+      ],
+      [
+        6,
+        14
+      ],
+      [
+        5,
+        -2
+      ],
+      [
+        -3,
+        -9
+      ],
+      [
+        0,
+        -10
+      ],
+      [
+        -7,
+        -5
+      ],
+      [
+        -2,
+        -7
+      ]
+    ],
+    [
+      [
+        1692,
+        566
+      ],
+      [
+        -8,
+        -11
+      ],
+      [
+        -4,
+        5
+      ],
+      [
+        -9,
+        2
+      ],
+      [
+        -3,
+        8
+      ],
+      [
+        -9,
+        7
+      ],
+      [
+        -4,
+        10
+      ],
+      [
+        6,
+        19
+      ],
+      [
+        13,
+        15
+      ],
+      [
+        20,
+        0
+      ],
+      [
+        4,
+        -13
+      ],
+      [
+        1,
+        -9
+      ],
+      [
+        -3,
+        -10
+      ],
+      [
+        -1,
+        -15
+      ],
+      [
+        -3,
+        -8
+      ]
+    ],
+    [
+      [
+        74,
+        1761
+      ],
+      [
+        -2,
+        -1
+      ],
+      [
+        0,
+        3
+      ],
+      [
+        2,
+        2
+      ],
+      [
+        2,
+        -1
+      ],
+      [
+        -1,
+        -2
+      ],
+      [
+        -1,
+        -1
+      ]
+    ],
+    [
+      [
+        7871,
+        4490
+      ],
+      [
+        6,
+        -13
+      ],
+      [
+        9,
+        -12
+      ],
+      [
+        6,
+        -11
+      ],
+      [
+        1,
+        -10
+      ],
+      [
+        6,
+        -11
+      ],
+      [
+        10,
+        -12
+      ],
+      [
+        6,
+        -10
+      ],
+      [
+        1,
+        -9
+      ],
+      [
+        0,
+        -13
+      ],
+      [
+        -2,
+        -19
+      ],
+      [
+        -4,
+        -14
+      ],
+      [
+        -5,
+        -8
+      ],
+      [
+        -4,
+        -11
+      ],
+      [
+        -2,
+        -15
+      ],
+      [
+        -8,
+        -14
+      ],
+      [
+        -14,
+        -12
+      ],
+      [
+        -15,
+        -9
+      ],
+      [
+        -17,
+        -4
+      ],
+      [
+        -9,
+        -11
+      ],
+      [
+        -3,
+        -17
+      ],
+      [
+        1,
+        -14
+      ],
+      [
+        6,
+        -12
+      ],
+      [
+        3,
+        -12
+      ],
+      [
+        1,
+        -13
+      ],
+      [
+        -4,
+        -21
+      ],
+      [
+        -9,
+        -29
+      ],
+      [
+        -10,
+        -19
+      ],
+      [
+        -12,
+        -9
+      ],
+      [
+        -5,
+        -13
+      ],
+      [
+        2,
+        -17
+      ],
+      [
+        -1,
+        -10
+      ],
+      [
+        -5,
+        -3
+      ]
+    ],
+    [
+      [
+        7800,
+        4083
+      ],
+      [
+        -8,
+        10
+      ],
+      [
+        -1,
+        7
+      ],
+      [
+        -7,
+        7
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        -5,
+        4
+      ],
+      [
+        -5,
+        14
+      ],
+      [
+        -23,
+        0
+      ],
+      [
+        -22,
+        -1
+      ],
+      [
+        -23,
+        0
+      ],
+      [
+        -23,
+        0
+      ],
+      [
+        -22,
+        -1
+      ],
+      [
+        -23,
+        0
+      ],
+      [
+        -23,
+        0
+      ],
+      [
+        -22,
+        0
+      ],
+      [
+        -23,
+        -1
+      ],
+      [
+        -23,
+        0
+      ],
+      [
+        -22,
+        0
+      ],
+      [
+        -23,
+        0
+      ],
+      [
+        -23,
+        -1
+      ],
+      [
+        -22,
+        0
+      ],
+      [
+        -23,
+        0
+      ],
+      [
+        -23,
+        0
+      ]
+    ],
+    [
+      [
+        7411,
+        4126
+      ],
+      [
+        -5,
+        14
+      ],
+      [
+        -3,
+        13
+      ],
+      [
+        2,
+        6
+      ],
+      [
+        0,
+        21
+      ],
+      [
+        -1,
+        37
+      ],
+      [
+        -2,
+        20
+      ],
+      [
+        -3,
+        5
+      ],
+      [
+        -1,
+        6
+      ],
+      [
+        3,
+        8
+      ],
+      [
+        -1,
+        6
+      ],
+      [
+        -4,
+        3
+      ],
+      [
+        -1,
+        6
+      ],
+      [
+        1,
+        12
+      ],
+      [
+        -1,
+        6
+      ],
+      [
+        -3,
+        3
+      ],
+      [
+        -1,
+        4
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        -2,
+        3
+      ],
+      [
+        -4,
+        1
+      ],
+      [
+        -2,
+        13
+      ],
+      [
+        1,
+        23
+      ],
+      [
+        -1,
+        17
+      ],
+      [
+        -4,
+        10
+      ],
+      [
+        -2,
+        9
+      ],
+      [
+        -1,
+        8
+      ],
+      [
+        -4,
+        14
+      ],
+      [
+        -8,
+        18
+      ],
+      [
+        -6,
+        25
+      ],
+      [
+        -2,
+        30
+      ],
+      [
+        -6,
+        17
+      ],
+      [
+        -3,
+        1
+      ]
+    ],
+    [
+      [
+        7347,
+        4490
+      ],
+      [
+        -2,
+        15
+      ],
+      [
+        -3,
+        7
+      ],
+      [
+        0,
+        6
+      ],
+      [
+        -8,
+        13
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        1,
+        7
+      ],
+      [
+        5,
+        13
+      ],
+      [
+        4,
+        21
+      ],
+      [
+        1,
+        14
+      ],
+      [
+        4,
+        11
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        -1,
+        8
+      ],
+      [
+        -2,
+        7
+      ],
+      [
+        -6,
+        5
+      ],
+      [
+        0,
+        2
+      ],
+      [
+        -1,
+        8
+      ],
+      [
+        3,
+        5
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        0,
+        7
+      ],
+      [
+        -4,
+        12
+      ],
+      [
+        -1,
+        12
+      ],
+      [
+        13,
+        0
+      ]
+    ],
+    [
+      [
+        7350,
+        4678
+      ],
+      [
+        29,
+        0
+      ],
+      [
+        29,
+        0
+      ],
+      [
+        29,
+        0
+      ],
+      [
+        30,
+        0
+      ],
+      [
+        29,
+        0
+      ],
+      [
+        29,
+        0
+      ],
+      [
+        29,
+        0
+      ],
+      [
+        29,
+        0
+      ],
+      [
+        30,
+        0
+      ],
+      [
+        29,
+        0
+      ],
+      [
+        29,
+        0
+      ],
+      [
+        29,
+        0
+      ],
+      [
+        30,
+        0
+      ],
+      [
+        29,
+        0
+      ],
+      [
+        29,
+        0
+      ],
+      [
+        30,
+        1
+      ]
+    ],
+    [
+      [
+        7818,
+        4679
+      ],
+      [
+        0,
+        -12
+      ],
+      [
+        2,
+        -9
+      ],
+      [
+        4,
+        -7
+      ],
+      [
+        5,
+        -5
+      ],
+      [
+        1,
+        -10
+      ],
+      [
+        -3,
+        -15
+      ],
+      [
+        -2,
+        -19
+      ],
+      [
+        2,
+        -22
+      ],
+      [
+        2,
+        -20
+      ],
+      [
+        5,
+        -18
+      ],
+      [
+        10,
+        -13
+      ],
+      [
+        15,
+        -8
+      ],
+      [
+        9,
+        -13
+      ],
+      [
+        3,
+        -17
+      ],
+      [
+        0,
+        -1
+      ]
+    ],
+    [
+      [
+        6037,
+        4869
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -29
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -29
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -29
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -30
+      ]
+    ],
+    [
+      [
+        6037,
+        4392
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -16,
+        0
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -16,
+        0
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -16,
+        0
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -17,
+        0
+      ]
+    ],
+    [
+      [
+        5768,
+        4392
+      ],
+      [
+        -33,
+        0
+      ],
+      [
+        -34,
+        0
+      ],
+      [
+        -33,
+        0
+      ],
+      [
+        -34,
+        0
+      ],
+      [
+        -33,
+        0
+      ],
+      [
+        -33,
+        0
+      ],
+      [
+        -34,
+        0
+      ],
+      [
+        -33,
+        0
+      ]
+    ],
+    [
+      [
+        5501,
+        4392
+      ],
+      [
+        0,
+        43
+      ],
+      [
+        0,
+        42
+      ],
+      [
+        0,
+        43
+      ],
+      [
+        0,
+        42
+      ],
+      [
+        -1,
+        43
+      ],
+      [
+        0,
+        43
+      ],
+      [
+        0,
+        42
+      ],
+      [
+        0,
+        47
+      ],
+      [
+        0,
+        1
+      ],
+      [
+        6,
+        29
+      ],
+      [
+        1,
+        14
+      ],
+      [
+        -1,
+        7
+      ],
+      [
+        1,
+        8
+      ],
+      [
+        3,
+        7
+      ],
+      [
+        0,
+        8
+      ],
+      [
+        -4,
+        9
+      ],
+      [
+        -6,
+        6
+      ],
+      [
+        -10,
+        3
+      ],
+      [
+        -6,
+        10
+      ],
+      [
+        0,
+        18
+      ],
+      [
+        7,
+        27
+      ],
+      [
+        16,
+        36
+      ],
+      [
+        8,
+        26
+      ],
+      [
+        2,
+        15
+      ],
+      [
+        9,
+        35
+      ],
+      [
+        17,
+        55
+      ],
+      [
+        6,
+        35
+      ],
+      [
+        -4,
+        16
+      ],
+      [
+        -8,
+        14
+      ],
+      [
+        -14,
+        15
+      ],
+      [
+        -9,
+        16
+      ],
+      [
+        -3,
+        8
+      ]
+    ],
+    [
+      [
+        5511,
+        5155
+      ],
+      [
+        -3,
+        10
+      ],
+      [
+        -1,
+        13
+      ],
+      [
+        2,
+        8
+      ],
+      [
+        -2,
+        13
+      ],
+      [
+        -6,
+        19
+      ],
+      [
+        -2,
+        12
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        1,
+        2
+      ],
+      [
+        0,
+        30
+      ],
+      [
+        0,
+        31
+      ],
+      [
+        0,
+        30
+      ],
+      [
+        0,
+        31
+      ],
+      [
+        0,
+        30
+      ],
+      [
+        -1,
+        31
+      ],
+      [
+        0,
+        31
+      ],
+      [
+        0,
+        30
+      ],
+      [
+        0,
+        31
+      ],
+      [
+        0,
+        30
+      ],
+      [
+        0,
+        31
+      ],
+      [
+        0,
+        30
+      ],
+      [
+        0,
+        31
+      ],
+      [
+        0,
+        30
+      ],
+      [
+        0,
+        31
+      ],
+      [
+        0,
+        30
+      ]
+    ],
+    [
+      [
+        5499,
+        5725
+      ],
+      [
+        29,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        22,
+        0
+      ]
+    ],
+    [
+      [
+        5588,
+        5725
+      ],
+      [
+        0,
+        -47
+      ],
+      [
+        0,
+        -47
+      ],
+      [
+        0,
+        -47
+      ],
+      [
+        0,
+        -47
+      ],
+      [
+        9,
+        -19
+      ],
+      [
+        7,
+        -12
+      ],
+      [
+        5,
+        -13
+      ],
+      [
+        7,
+        -13
+      ],
+      [
+        1,
+        -5
+      ],
+      [
+        3,
+        -14
+      ],
+      [
+        -2,
+        -10
+      ],
+      [
+        4,
+        -11
+      ],
+      [
+        -1,
+        -5
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        0,
+        -1
+      ],
+      [
+        1,
+        -2
+      ],
+      [
+        10,
+        -10
+      ],
+      [
+        9,
+        -14
+      ],
+      [
+        13,
+        -10
+      ],
+      [
+        3,
+        -6
+      ],
+      [
+        17,
+        -27
+      ],
+      [
+        8,
+        -18
+      ],
+      [
+        9,
+        -13
+      ],
+      [
+        4,
+        -15
+      ],
+      [
+        9,
+        -13
+      ],
+      [
+        3,
+        -7
+      ],
+      [
+        0,
+        -1
+      ],
+      [
+        1,
+        0
+      ],
+      [
+        6,
+        3
+      ],
+      [
+        1,
+        -1
+      ],
+      [
+        3,
+        -5
+      ],
+      [
+        1,
+        -8
+      ],
+      [
+        2,
+        -3
+      ],
+      [
+        3,
+        -2
+      ],
+      [
+        4,
+        -1
+      ],
+      [
+        13,
+        4
+      ],
+      [
+        2,
+        0
+      ],
+      [
+        2,
+        -2
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        0,
+        -7
+      ],
+      [
+        -1,
+        -9
+      ],
+      [
+        -4,
+        -10
+      ],
+      [
+        1,
+        -9
+      ],
+      [
+        -3,
+        -21
+      ],
+      [
+        -3,
+        -14
+      ],
+      [
+        0,
+        -13
+      ],
+      [
+        -4,
+        -8
+      ],
+      [
+        2,
+        -9
+      ],
+      [
+        -1,
+        -14
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        5,
+        -7
+      ],
+      [
+        1,
+        -17
+      ],
+      [
+        -1,
+        -3
+      ],
+      [
+        -7,
+        -7
+      ],
+      [
+        -3,
+        -5
+      ],
+      [
+        -1,
+        -6
+      ],
+      [
+        3,
+        -18
+      ],
+      [
+        -3,
+        -10
+      ],
+      [
+        0,
+        -9
+      ],
+      [
+        0,
+        -2
+      ],
+      [
+        8,
+        -5
+      ],
+      [
+        8,
+        -10
+      ],
+      [
+        3,
+        -2
+      ],
+      [
+        2,
+        0
+      ],
+      [
+        4,
+        3
+      ],
+      [
+        4,
+        7
+      ],
+      [
+        8,
+        7
+      ],
+      [
+        10,
+        16
+      ],
+      [
+        1,
+        4
+      ],
+      [
+        1,
+        2
+      ],
+      [
+        1,
+        0
+      ],
+      [
+        3,
+        -2
+      ],
+      [
+        6,
+        -9
+      ],
+      [
+        6,
+        -5
+      ],
+      [
+        1,
+        -1
+      ],
+      [
+        0,
+        -3
+      ],
+      [
+        0,
+        -9
+      ],
+      [
+        3,
+        -7
+      ],
+      [
+        1,
+        -12
+      ],
+      [
+        3,
+        -12
+      ],
+      [
+        2,
+        -14
+      ],
+      [
+        8,
+        -18
+      ],
+      [
+        5,
+        -13
+      ],
+      [
+        5,
+        -6
+      ],
+      [
+        2,
+        -7
+      ],
+      [
+        3,
+        -8
+      ],
+      [
+        0,
+        -7
+      ],
+      [
+        -2,
+        -12
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        3,
+        -6
+      ],
+      [
+        8,
+        -13
+      ],
+      [
+        2,
+        -1
+      ],
+      [
+        8,
+        2
+      ],
+      [
+        4,
+        -2
+      ],
+      [
+        4,
+        -7
+      ],
+      [
+        4,
+        -9
+      ],
+      [
+        3,
+        -10
+      ],
+      [
+        1,
+        -11
+      ],
+      [
+        4,
+        -13
+      ],
+      [
+        1,
+        -11
+      ],
+      [
+        3,
+        -5
+      ],
+      [
+        5,
+        -7
+      ],
+      [
+        5,
+        -4
+      ],
+      [
+        2,
+        0
+      ],
+      [
+        1,
+        2
+      ],
+      [
+        1,
+        6
+      ],
+      [
+        2,
+        5
+      ],
+      [
+        6,
+        6
+      ],
+      [
+        6,
+        0
+      ],
+      [
+        23,
+        -5
+      ],
+      [
+        2,
+        0
+      ],
+      [
+        1,
+        2
+      ],
+      [
+        4,
+        10
+      ],
+      [
+        3,
+        4
+      ],
+      [
+        5,
+        1
+      ],
+      [
+        14,
+        -2
+      ],
+      [
+        16,
+        1
+      ],
+      [
+        9,
+        -3
+      ],
+      [
+        12,
+        4
+      ],
+      [
+        15,
+        -3
+      ],
+      [
+        2,
+        2
+      ],
+      [
+        0,
+        2
+      ],
+      [
+        -1,
+        4
+      ],
+      [
+        0,
+        7
+      ],
+      [
+        2,
+        9
+      ],
+      [
+        1,
+        8
+      ],
+      [
+        3,
+        4
+      ],
+      [
+        4,
+        3
+      ],
+      [
+        3,
+        -1
+      ],
+      [
+        3,
+        -4
+      ],
+      [
+        4,
+        -6
+      ],
+      [
+        6,
+        -19
+      ],
+      [
+        3,
+        -7
+      ],
+      [
+        4,
+        -5
+      ],
+      [
+        6,
+        -5
+      ]
+    ],
+    [
+      [
+        8127,
+        4487
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        1,
+        -25
+      ],
+      [
+        3,
+        -11
+      ],
+      [
+        3,
+        -8
+      ],
+      [
+        3,
+        -5
+      ],
+      [
+        4,
+        -16
+      ],
+      [
+        4,
+        -27
+      ],
+      [
+        5,
+        -18
+      ],
+      [
+        3,
+        -7
+      ]
+    ],
+    [
+      [
+        8153,
+        4340
+      ],
+      [
+        0,
+        -51
+      ],
+      [
+        -1,
+        -57
+      ],
+      [
+        0,
+        -57
+      ],
+      [
+        0,
+        -57
+      ],
+      [
+        0,
+        -57
+      ],
+      [
+        0,
+        -57
+      ],
+      [
+        0,
+        -58
+      ],
+      [
+        0,
+        -54
+      ],
+      [
+        -4,
+        -6
+      ],
+      [
+        -3,
+        -10
+      ],
+      [
+        0,
+        -11
+      ],
+      [
+        -1,
+        -8
+      ],
+      [
+        -3,
+        -5
+      ],
+      [
+        2,
+        -12
+      ],
+      [
+        5,
+        -19
+      ],
+      [
+        4,
+        -18
+      ],
+      [
+        1,
+        -19
+      ],
+      [
+        -1,
+        -13
+      ],
+      [
+        -5,
+        -12
+      ],
+      [
+        -5,
+        -26
+      ],
+      [
+        -4,
+        -11
+      ],
+      [
+        -5,
+        -3
+      ],
+      [
+        -4,
+        -10
+      ],
+      [
+        -4,
+        -16
+      ],
+      [
+        -4,
+        -7
+      ],
+      [
+        -4,
+        0
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -3,
+        -6
+      ],
+      [
+        1,
+        -7
+      ],
+      [
+        2,
+        -7
+      ],
+      [
+        -1,
+        -6
+      ],
+      [
+        -4,
+        -6
+      ],
+      [
+        0,
+        -3
+      ],
+      [
+        2,
+        -2
+      ],
+      [
+        -1,
+        -2
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -1,
+        -9
+      ],
+      [
+        0,
+        -15
+      ],
+      [
+        -2,
+        -7
+      ],
+      [
+        -3,
+        0
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        5,
+        -17
+      ]
+    ],
+    [
+      [
+        8106,
+        3589
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -5,
+        -14
+      ],
+      [
+        -1,
+        -15
+      ],
+      [
+        3,
+        -16
+      ],
+      [
+        -7,
+        -14
+      ],
+      [
+        -18,
+        -10
+      ],
+      [
+        -10,
+        -9
+      ],
+      [
+        -1,
+        -8
+      ],
+      [
+        1,
+        -11
+      ],
+      [
+        4,
+        -16
+      ],
+      [
+        1,
+        -11
+      ],
+      [
+        -3,
+        -6
+      ],
+      [
+        -13,
+        4
+      ],
+      [
+        -23,
+        14
+      ],
+      [
+        -15,
+        0
+      ],
+      [
+        -8,
+        -16
+      ],
+      [
+        -3,
+        -11
+      ],
+      [
+        1,
+        -10
+      ]
+    ],
+    [
+      [
+        8006,
+        3437
+      ],
+      [
+        -6,
+        12
+      ],
+      [
+        -5,
+        5
+      ],
+      [
+        -1,
+        0
+      ],
+      [
+        0,
+        -2
+      ],
+      [
+        -1,
+        -3
+      ],
+      [
+        0,
+        -3
+      ],
+      [
+        1,
+        -3
+      ],
+      [
+        0,
+        -2
+      ],
+      [
+        -1,
+        0
+      ],
+      [
+        -5,
+        5
+      ],
+      [
+        -5,
+        12
+      ],
+      [
+        -7,
+        21
+      ],
+      [
+        -1,
+        17
+      ],
+      [
+        3,
+        13
+      ],
+      [
+        0,
+        13
+      ],
+      [
+        -3,
+        13
+      ],
+      [
+        -2,
+        14
+      ],
+      [
+        0,
+        13
+      ],
+      [
+        -9,
+        19
+      ],
+      [
+        -18,
+        26
+      ],
+      [
+        -13,
+        16
+      ],
+      [
+        -9,
+        7
+      ],
+      [
+        -10,
+        13
+      ],
+      [
+        -11,
+        20
+      ],
+      [
+        -6,
+        15
+      ],
+      [
+        -1,
+        11
+      ],
+      [
+        5,
+        28
+      ],
+      [
+        15,
+        61
+      ],
+      [
+        2,
+        8
+      ],
+      [
+        0,
+        2
+      ],
+      [
+        0,
+        3
+      ],
+      [
+        -2,
+        2
+      ],
+      [
+        -6,
+        8
+      ],
+      [
+        -12,
+        6
+      ],
+      [
+        -11,
+        3
+      ],
+      [
+        -9,
+        -7
+      ],
+      [
+        -8,
+        15
+      ],
+      [
+        -6,
+        37
+      ],
+      [
+        -17,
+        39
+      ],
+      [
+        -26,
+        41
+      ],
+      [
+        -15,
+        28
+      ],
+      [
+        -4,
+        15
+      ],
+      [
+        -4,
+        22
+      ],
+      [
+        -3,
+        29
+      ],
+      [
+        0,
+        25
+      ],
+      [
+        5,
+        29
+      ]
+    ],
+    [
+      [
+        7871,
+        4490
+      ],
+      [
+        42,
+        -1
+      ],
+      [
+        40,
+        0
+      ],
+      [
+        41,
+        -1
+      ],
+      [
+        40,
+        0
+      ],
+      [
+        41,
+        -1
+      ],
+      [
+        40,
+        0
+      ],
+      [
+        12,
+        0
+      ]
+    ],
+    [
+      [
+        8398,
+        4335
+      ],
+      [
+        -1,
+        -62
+      ],
+      [
+        0,
+        -62
+      ],
+      [
+        0,
+        -62
+      ],
+      [
+        -1,
+        -62
+      ],
+      [
+        0,
+        -62
+      ],
+      [
+        0,
+        -62
+      ],
+      [
+        0,
+        -62
+      ],
+      [
+        -1,
+        -63
+      ]
+    ],
+    [
+      [
+        8395,
+        3838
+      ],
+      [
+        -1,
+        -2
+      ],
+      [
+        -2,
+        -8
+      ],
+      [
+        2,
+        -9
+      ],
+      [
+        0,
+        -6
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        1,
+        -3
+      ],
+      [
+        4,
+        -3
+      ],
+      [
+        1,
+        -6
+      ],
+      [
+        -1,
+        -9
+      ],
+      [
+        -9,
+        -10
+      ],
+      [
+        -17,
+        -11
+      ],
+      [
+        -4,
+        -3
+      ],
+      [
+        -3,
+        -1
+      ],
+      [
+        -1,
+        1
+      ],
+      [
+        -3,
+        2
+      ],
+      [
+        -3,
+        4
+      ],
+      [
+        -5,
+        2
+      ],
+      [
+        -9,
+        -1
+      ],
+      [
+        -4,
+        -9
+      ],
+      [
+        2,
+        -17
+      ],
+      [
+        -3,
+        -12
+      ],
+      [
+        -8,
+        -9
+      ],
+      [
+        -5,
+        -12
+      ],
+      [
+        -4,
+        -14
+      ],
+      [
+        -5,
+        -9
+      ],
+      [
+        -7,
+        -3
+      ],
+      [
+        -6,
+        -14
+      ],
+      [
+        -5,
+        -23
+      ],
+      [
+        -5,
+        -15
+      ],
+      [
+        -5,
+        -6
+      ],
+      [
+        -8,
+        2
+      ],
+      [
+        -9,
+        8
+      ],
+      [
+        -6,
+        9
+      ],
+      [
+        -1,
+        9
+      ],
+      [
+        -3,
+        7
+      ],
+      [
+        -2,
+        3
+      ],
+      [
+        -2,
+        0
+      ],
+      [
+        0,
+        -2
+      ],
+      [
+        1,
+        -2
+      ],
+      [
+        -1,
+        -3
+      ],
+      [
+        -6,
+        -1
+      ],
+      [
+        -3,
+        -4
+      ],
+      [
+        1,
+        -6
+      ],
+      [
+        -1,
+        -5
+      ],
+      [
+        -3,
+        -2
+      ],
+      [
+        -2,
+        -7
+      ],
+      [
+        0,
+        -9
+      ],
+      [
+        -3,
+        -9
+      ],
+      [
+        -4,
+        -8
+      ],
+      [
+        -7,
+        2
+      ],
+      [
+        -9,
+        14
+      ],
+      [
+        -9,
+        3
+      ],
+      [
+        -9,
+        -7
+      ],
+      [
+        -6,
+        -10
+      ],
+      [
+        -5,
+        -13
+      ],
+      [
+        -4,
+        -3
+      ],
+      [
+        -6,
+        10
+      ],
+      [
+        -15,
+        13
+      ],
+      [
+        -8,
+        3
+      ],
+      [
+        -5,
+        -4
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -1,
+        3
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        -1,
+        -2
+      ],
+      [
+        0,
+        -11
+      ],
+      [
+        -2,
+        -7
+      ],
+      [
+        -2,
+        -3
+      ],
+      [
+        -2,
+        2
+      ],
+      [
+        -2,
+        8
+      ],
+      [
+        -3,
+        2
+      ],
+      [
+        -5,
+        -2
+      ],
+      [
+        -5,
+        1
+      ],
+      [
+        -4,
+        4
+      ],
+      [
+        -2,
+        0
+      ],
+      [
+        -1,
+        -2
+      ],
+      [
+        0,
+        -9
+      ],
+      [
+        0,
+        -7
+      ],
+      [
+        -3,
+        -5
+      ],
+      [
+        -3,
+        -1
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -2,
+        -2
+      ]
+    ],
+    [
+      [
+        8153,
+        4340
+      ],
+      [
+        0,
+        -1
+      ],
+      [
+        4,
+        -5
+      ],
+      [
+        2,
+        -3
+      ],
+      [
+        2,
+        0
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        6,
+        -3
+      ],
+      [
+        9,
+        -1
+      ],
+      [
+        8,
+        2
+      ],
+      [
+        8,
+        4
+      ],
+      [
+        19,
+        17
+      ]
+    ],
+    [
+      [
+        8212,
+        4346
+      ],
+      [
+        22,
+        0
+      ],
+      [
+        27,
+        0
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        27,
+        0
+      ],
+      [
+        27,
+        0
+      ],
+      [
+        27,
+        0
+      ],
+      [
+        28,
+        0
+      ],
+      [
+        0,
+        -11
+      ]
+    ],
+    [
+      [
+        7515,
+        3439
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -21,
+        0
+      ]
+    ],
+    [
+      [
+        6849,
+        4011
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        18,
+        0
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        18,
+        0
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        18,
+        0
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        18,
+        0
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        18,
+        0
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        19,
+        0
+      ],
+      [
+        16,
+        0
+      ]
+    ],
+    [
+      [
+        7449,
+        4011
+      ],
+      [
+        21,
+        -25
+      ],
+      [
+        5,
+        0
+      ],
+      [
+        7,
+        4
+      ],
+      [
+        5,
+        -6
+      ],
+      [
+        3,
+        -15
+      ],
+      [
+        -1,
+        -8
+      ],
+      [
+        -4,
+        0
+      ],
+      [
+        -5,
+        -9
+      ],
+      [
+        -7,
+        -18
+      ],
+      [
+        2,
+        -17
+      ],
+      [
+        10,
+        -16
+      ],
+      [
+        6,
+        -15
+      ],
+      [
+        3,
+        -16
+      ],
+      [
+        6,
+        -13
+      ],
+      [
+        14,
+        -13
+      ],
+      [
+        0,
+        -7
+      ],
+      [
+        0,
+        -25
+      ],
+      [
+        0,
+        -25
+      ],
+      [
+        0,
+        -25
+      ],
+      [
+        0,
+        -25
+      ],
+      [
+        0,
+        -25
+      ],
+      [
+        0,
+        -25
+      ],
+      [
+        0,
+        -24
+      ],
+      [
+        0,
+        -25
+      ],
+      [
+        0,
+        -25
+      ],
+      [
+        0,
+        -25
+      ],
+      [
+        0,
+        -25
+      ],
+      [
+        0,
+        -25
+      ],
+      [
+        1,
+        -25
+      ],
+      [
+        0,
+        -24
+      ],
+      [
+        0,
+        -25
+      ],
+      [
+        0,
+        -25
+      ]
+    ],
+    [
+      [
+        7970,
+        3344
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        1,
+        5
+      ],
+      [
+        0,
+        3
+      ],
+      [
+        2,
+        0
+      ],
+      [
+        1,
+        0
+      ],
+      [
+        2,
+        -5
+      ],
+      [
+        1,
+        -5
+      ]
+    ],
+    [
+      [
+        7976,
+        3344
+      ],
+      [
+        -6,
+        0
+      ]
+    ],
+    [
+      [
+        8594,
+        3715
+      ],
+      [
+        2,
+        -5
+      ],
+      [
+        1,
+        -29
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        -4,
+        -12
+      ],
+      [
+        1,
+        -6
+      ],
+      [
+        2,
+        -10
+      ],
+      [
+        10,
+        -22
+      ],
+      [
+        1,
+        -8
+      ],
+      [
+        3,
+        -9
+      ],
+      [
+        4,
+        -12
+      ],
+      [
+        10,
+        -27
+      ],
+      [
+        16,
+        -22
+      ],
+      [
+        12,
+        -6
+      ]
+    ],
+    [
+      [
+        8652,
+        3542
+      ],
+      [
+        -34,
+        -47
+      ],
+      [
+        -15,
+        -16
+      ],
+      [
+        -15,
+        -14
+      ],
+      [
+        -1,
+        -2
+      ],
+      [
+        -4,
+        -15
+      ],
+      [
+        -9,
+        -13
+      ],
+      [
+        -5,
+        -14
+      ],
+      [
+        -14,
+        -12
+      ],
+      [
+        -9,
+        -16
+      ],
+      [
+        -24,
+        -15
+      ],
+      [
+        -14,
+        -5
+      ],
+      [
+        -9,
+        -10
+      ]
+    ],
+    [
+      [
+        8499,
+        3363
+      ],
+      [
+        -1,
+        0
+      ],
+      [
+        -1,
+        -1
+      ],
+      [
+        -1,
+        0
+      ],
+      [
+        0,
+        -1
+      ],
+      [
+        -1,
+        0
+      ],
+      [
+        -1,
+        -1
+      ],
+      [
+        -32,
+        2
+      ],
+      [
+        -31,
+        2
+      ],
+      [
+        -31,
+        2
+      ],
+      [
+        -31,
+        1
+      ],
+      [
+        -32,
+        2
+      ],
+      [
+        -31,
+        2
+      ],
+      [
+        -31,
+        2
+      ],
+      [
+        -31,
+        2
+      ],
+      [
+        -30,
+        -1
+      ],
+      [
+        -30,
+        -1
+      ],
+      [
+        -30,
+        -1
+      ],
+      [
+        -30,
+        -1
+      ],
+      [
+        -3,
+        6
+      ],
+      [
+        -7,
+        1
+      ],
+      [
+        -13,
+        2
+      ],
+      [
+        4,
+        -19
+      ],
+      [
+        0,
+        -17
+      ],
+      [
+        -1,
+        -1
+      ],
+      [
+        -14,
+        0
+      ],
+      [
+        -15,
+        0
+      ],
+      [
+        -16,
+        0
+      ],
+      [
+        -15,
+        0
+      ],
+      [
+        -16,
+        0
+      ],
+      [
+        -15,
+        0
+      ],
+      [
+        -16,
+        0
+      ],
+      [
+        -18,
+        0
+      ]
+    ],
+    [
+      [
+        7979,
+        3343
+      ],
+      [
+        5,
+        17
+      ],
+      [
+        4,
+        5
+      ],
+      [
+        2,
+        1
+      ],
+      [
+        5,
+        -3
+      ],
+      [
+        2,
+        -2
+      ],
+      [
+        4,
+        6
+      ],
+      [
+        5,
+        18
+      ],
+      [
+        2,
+        18
+      ],
+      [
+        1,
+        19
+      ],
+      [
+        -3,
+        15
+      ]
+    ],
+    [
+      [
+        8395,
+        3838
+      ],
+      [
+        5,
+        6
+      ],
+      [
+        6,
+        1
+      ],
+      [
+        4,
+        -7
+      ],
+      [
+        6,
+        -2
+      ],
+      [
+        8,
+        4
+      ],
+      [
+        7,
+        -3
+      ],
+      [
+        6,
+        -7
+      ],
+      [
+        6,
+        -15
+      ],
+      [
+        6,
+        -21
+      ],
+      [
+        10,
+        -12
+      ],
+      [
+        15,
+        -5
+      ],
+      [
+        11,
+        -8
+      ],
+      [
+        7,
+        -12
+      ],
+      [
+        5,
+        -4
+      ],
+      [
+        7,
+        7
+      ],
+      [
+        7,
+        3
+      ],
+      [
+        7,
+        -4
+      ],
+      [
+        9,
+        -10
+      ],
+      [
+        14,
+        2
+      ],
+      [
+        18,
+        15
+      ],
+      [
+        11,
+        -1
+      ],
+      [
+        3,
+        -16
+      ],
+      [
+        8,
+        -16
+      ],
+      [
+        12,
+        -18
+      ],
+      [
+        1,
+        0
+      ]
+    ],
+    [
+      [
+        7769,
+        2009
+      ],
+      [
+        -4,
+        -3
+      ],
+      [
+        -15,
+        17
+      ],
+      [
+        -1,
+        7
+      ],
+      [
+        8,
+        6
+      ],
+      [
+        4,
+        0
+      ],
+      [
+        7,
+        -9
+      ],
+      [
+        3,
+        -2
+      ],
+      [
+        1,
+        -3
+      ],
+      [
+        -1,
+        -6
+      ],
+      [
+        -2,
+        -7
+      ]
+    ],
+    [
+      [
+        8030,
+        2049
+      ],
+      [
+        -5,
+        -10
+      ],
+      [
+        0,
+        4
+      ],
+      [
+        4,
+        10
+      ],
+      [
+        2,
+        4
+      ],
+      [
+        -1,
+        -8
+      ]
+    ],
+    [
+      [
+        8035,
+        2067
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        2,
+        29
+      ],
+      [
+        -3,
+        25
+      ],
+      [
+        3,
+        -11
+      ],
+      [
+        2,
+        -13
+      ],
+      [
+        -2,
+        -24
+      ]
+    ],
+    [
+      [
+        8000,
+        2120
+      ],
+      [
+        0,
+        -9
+      ],
+      [
+        -4,
+        5
+      ],
+      [
+        -7,
+        0
+      ],
+      [
+        3,
+        3
+      ],
+      [
+        2,
+        3
+      ],
+      [
+        1,
+        3
+      ],
+      [
+        8,
+        11
+      ],
+      [
+        -2,
+        -8
+      ],
+      [
+        -1,
+        -8
+      ]
+    ],
+    [
+      [
+        7973,
+        2141
+      ],
+      [
+        -6,
+        -5
+      ],
+      [
+        -33,
+        19
+      ],
+      [
+        -8,
+        16
+      ],
+      [
+        -7,
+        4
+      ],
+      [
+        -9,
+        1
+      ],
+      [
+        -10,
+        -19
+      ],
+      [
+        -7,
+        -26
+      ],
+      [
+        11,
+        -14
+      ],
+      [
+        10,
+        -7
+      ],
+      [
+        16,
+        5
+      ],
+      [
+        9,
+        13
+      ],
+      [
+        8,
+        0
+      ],
+      [
+        3,
+        2
+      ],
+      [
+        3,
+        7
+      ],
+      [
+        7,
+        -5
+      ],
+      [
+        0,
+        -6
+      ],
+      [
+        -5,
+        -7
+      ],
+      [
+        -5,
+        -6
+      ],
+      [
+        -4,
+        -7
+      ],
+      [
+        7,
+        -15
+      ],
+      [
+        10,
+        -5
+      ],
+      [
+        4,
+        2
+      ],
+      [
+        2,
+        17
+      ],
+      [
+        6,
+        10
+      ],
+      [
+        9,
+        -2
+      ],
+      [
+        -1,
+        -7
+      ],
+      [
+        1,
+        -6
+      ],
+      [
+        4,
+        -11
+      ],
+      [
+        -1,
+        -15
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        -9,
+        -7
+      ],
+      [
+        -7,
+        -2
+      ],
+      [
+        -5,
+        -9
+      ],
+      [
+        2,
+        -5
+      ],
+      [
+        -5,
+        -5
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -2,
+        -2
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        -3,
+        -5
+      ],
+      [
+        4,
+        -16
+      ],
+      [
+        9,
+        -10
+      ],
+      [
+        6,
+        -12
+      ],
+      [
+        24,
+        -17
+      ],
+      [
+        5,
+        1
+      ],
+      [
+        6,
+        -17
+      ],
+      [
+        5,
+        -6
+      ],
+      [
+        4,
+        -3
+      ],
+      [
+        0,
+        -11
+      ],
+      [
+        -8,
+        -9
+      ],
+      [
+        -2,
+        -10
+      ],
+      [
+        -2,
+        -5
+      ],
+      [
+        -4,
+        7
+      ],
+      [
+        -3,
+        5
+      ],
+      [
+        -9,
+        -16
+      ],
+      [
+        -4,
+        -3
+      ],
+      [
+        2,
+        17
+      ],
+      [
+        -3,
+        7
+      ],
+      [
+        -5,
+        17
+      ],
+      [
+        -7,
+        10
+      ],
+      [
+        -5,
+        3
+      ],
+      [
+        -4,
+        7
+      ],
+      [
+        -5,
+        3
+      ],
+      [
+        -4,
+        -1
+      ],
+      [
+        -6,
+        4
+      ],
+      [
+        -1,
+        9
+      ],
+      [
+        -2,
+        7
+      ],
+      [
+        -5,
+        8
+      ],
+      [
+        -25,
+        15
+      ],
+      [
+        -1,
+        -6
+      ],
+      [
+        2,
+        -5
+      ],
+      [
+        4,
+        -3
+      ],
+      [
+        4,
+        -6
+      ],
+      [
+        0,
+        -18
+      ],
+      [
+        -2,
+        -8
+      ],
+      [
+        -1,
+        -11
+      ],
+      [
+        -1,
+        -11
+      ],
+      [
+        -3,
+        -9
+      ],
+      [
+        -7,
+        -5
+      ],
+      [
+        -3,
+        4
+      ],
+      [
+        -5,
+        24
+      ],
+      [
+        -7,
+        8
+      ],
+      [
+        -11,
+        1
+      ],
+      [
+        -8,
+        -6
+      ],
+      [
+        -8,
+        -23
+      ],
+      [
+        -7,
+        -4
+      ],
+      [
+        -22,
+        12
+      ],
+      [
+        -26,
+        19
+      ],
+      [
+        1,
+        6
+      ],
+      [
+        4,
+        2
+      ],
+      [
+        7,
+        -3
+      ],
+      [
+        0,
+        6
+      ],
+      [
+        -8,
+        21
+      ],
+      [
+        -1,
+        9
+      ],
+      [
+        1,
+        11
+      ],
+      [
+        -3,
+        0
+      ],
+      [
+        -5,
+        -10
+      ],
+      [
+        -16,
+        8
+      ],
+      [
+        -5,
+        10
+      ],
+      [
+        -10,
+        27
+      ],
+      [
+        -13,
+        1
+      ],
+      [
+        -6,
+        16
+      ],
+      [
+        -12,
+        -7
+      ],
+      [
+        -5,
+        -7
+      ],
+      [
+        -5,
+        -12
+      ],
+      [
+        2,
+        -6
+      ],
+      [
+        5,
+        -10
+      ],
+      [
+        -3,
+        -4
+      ],
+      [
+        -15,
+        -7
+      ],
+      [
+        -37,
+        7
+      ],
+      [
+        -11,
+        7
+      ],
+      [
+        -15,
+        16
+      ],
+      [
+        -20,
+        12
+      ],
+      [
+        -9,
+        2
+      ],
+      [
+        -10,
+        -2
+      ],
+      [
+        -27,
+        -2
+      ],
+      [
+        -7,
+        -3
+      ],
+      [
+        -5,
+        -5
+      ],
+      [
+        -4,
+        6
+      ],
+      [
+        -1,
+        10
+      ],
+      [
+        3,
+        2
+      ],
+      [
+        3,
+        6
+      ],
+      [
+        4,
+        12
+      ],
+      [
+        0,
+        7
+      ],
+      [
+        -2,
+        5
+      ]
+    ],
+    [
+      [
+        7589,
+        2100
+      ],
+      [
+        6,
+        19
+      ],
+      [
+        1,
+        7
+      ],
+      [
+        -1,
+        32
+      ],
+      [
+        -2,
+        12
+      ],
+      [
+        0,
+        7
+      ],
+      [
+        3,
+        17
+      ],
+      [
+        -1,
+        17
+      ],
+      [
+        5,
+        19
+      ],
+      [
+        4,
+        10
+      ],
+      [
+        4,
+        21
+      ],
+      [
+        1,
+        14
+      ],
+      [
+        2,
+        10
+      ],
+      [
+        -1,
+        11
+      ],
+      [
+        2,
+        8
+      ],
+      [
+        -1,
+        11
+      ],
+      [
+        -1,
+        14
+      ],
+      [
+        -4,
+        6
+      ],
+      [
+        -6,
+        21
+      ],
+      [
+        0,
+        10
+      ],
+      [
+        -6,
+        20
+      ],
+      [
+        0,
+        7
+      ],
+      [
+        -6,
+        10
+      ],
+      [
+        -2,
+        7
+      ],
+      [
+        0,
+        28
+      ],
+      [
+        -2,
+        8
+      ],
+      [
+        -5,
+        16
+      ],
+      [
+        -13,
+        23
+      ],
+      [
+        0,
+        24
+      ],
+      [
+        0,
+        25
+      ],
+      [
+        0,
+        24
+      ],
+      [
+        0,
+        24
+      ],
+      [
+        0,
+        24
+      ],
+      [
+        0,
+        24
+      ],
+      [
+        0,
+        24
+      ],
+      [
+        0,
+        24
+      ]
+    ],
+    [
+      [
+        7826,
+        2679
+      ],
+      [
+        1,
+        -9
+      ],
+      [
+        4,
+        -6
+      ],
+      [
+        1,
+        -10
+      ],
+      [
+        -4,
+        -14
+      ],
+      [
+        0,
+        -10
+      ],
+      [
+        4,
+        -6
+      ],
+      [
+        -1,
+        -6
+      ],
+      [
+        -4,
+        -6
+      ],
+      [
+        -1,
+        -7
+      ],
+      [
+        3,
+        -8
+      ],
+      [
+        2,
+        -8
+      ],
+      [
+        0,
+        -10
+      ],
+      [
+        4,
+        -13
+      ],
+      [
+        6,
+        -8
+      ],
+      [
+        4,
+        -9
+      ],
+      [
+        0,
+        -6
+      ],
+      [
+        1,
+        -5
+      ],
+      [
+        -1,
+        -7
+      ],
+      [
+        -5,
+        -10
+      ],
+      [
+        -4,
+        -8
+      ],
+      [
+        -3,
+        -2
+      ],
+      [
+        -1,
+        -6
+      ],
+      [
+        0,
+        -11
+      ],
+      [
+        -6,
+        -14
+      ],
+      [
+        -12,
+        -17
+      ],
+      [
+        -8,
+        -21
+      ],
+      [
+        -3,
+        -25
+      ],
+      [
+        -4,
+        -16
+      ],
+      [
+        -5,
+        -7
+      ],
+      [
+        -2,
+        -14
+      ],
+      [
+        0,
+        -19
+      ],
+      [
+        -2,
+        -11
+      ],
+      [
+        -6,
+        -2
+      ],
+      [
+        -1,
+        -12
+      ],
+      [
+        3,
+        -20
+      ],
+      [
+        -1,
+        -9
+      ],
+      [
+        -4,
+        -7
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        21,
+        0
+      ],
+      [
+        22,
+        0
+      ],
+      [
+        22,
+        0
+      ],
+      [
+        21,
+        0
+      ],
+      [
+        22,
+        0
+      ],
+      [
+        21,
+        0
+      ],
+      [
+        22,
+        0
+      ],
+      [
+        22,
+        0
+      ],
+      [
+        -3,
+        -22
+      ],
+      [
+        -6,
+        -30
+      ],
+      [
+        -1,
+        -7
+      ],
+      [
+        2,
+        -10
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        2,
+        -8
+      ],
+      [
+        6,
+        -8
+      ],
+      [
+        4,
+        -13
+      ],
+      [
+        4,
+        -21
+      ],
+      [
+        1,
+        -10
+      ],
+      [
+        4,
+        -14
+      ],
+      [
+        1,
+        -3
+      ],
+      [
+        3,
+        -2
+      ],
+      [
+        2,
+        -1
+      ]
+    ],
+    [
+      [
+        9730,
+        4252
+      ],
+      [
+        -7,
+        -3
+      ],
+      [
+        -16,
+        7
+      ],
+      [
+        13,
+        6
+      ],
+      [
+        2,
+        2
+      ],
+      [
+        2,
+        9
+      ],
+      [
+        0,
+        4
+      ],
+      [
+        5,
+        -19
+      ],
+      [
+        1,
+        -6
+      ]
+    ],
+    [
+      [
+        9682,
+        4273
+      ],
+      [
+        -25,
+        -9
+      ],
+      [
+        -3,
+        6
+      ],
+      [
+        6,
+        3
+      ],
+      [
+        8,
+        14
+      ],
+      [
+        5,
+        2
+      ],
+      [
+        8,
+        -8
+      ],
+      [
+        1,
+        -8
+      ]
+    ],
+    [
+      [
+        9617,
+        4336
+      ],
+      [
+        -3,
+        9
+      ],
+      [
+        -3,
+        4
+      ],
+      [
+        -3,
+        5
+      ],
+      [
+        0,
+        7
+      ],
+      [
+        0,
+        10
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        0,
+        14
+      ],
+      [
+        -1,
+        8
+      ],
+      [
+        -6,
+        0
+      ],
+      [
+        -6,
+        0
+      ],
+      [
+        -9,
+        0
+      ],
+      [
+        -9,
+        0
+      ],
+      [
+        -7,
+        -1
+      ]
+    ],
+    [
+      [
+        9415,
+        4403
+      ],
+      [
+        -2,
+        4
+      ],
+      [
+        3,
+        16
+      ],
+      [
+        2,
+        16
+      ],
+      [
+        3,
+        16
+      ],
+      [
+        3,
+        16
+      ],
+      [
+        3,
+        16
+      ],
+      [
+        3,
+        16
+      ],
+      [
+        3,
+        16
+      ],
+      [
+        3,
+        17
+      ]
+    ],
+    [
+      [
+        9436,
+        4536
+      ],
+      [
+        8,
+        -1
+      ],
+      [
+        9,
+        -1
+      ],
+      [
+        9,
+        0
+      ],
+      [
+        9,
+        -1
+      ],
+      [
+        9,
+        0
+      ],
+      [
+        9,
+        -1
+      ],
+      [
+        8,
+        0
+      ],
+      [
+        9,
+        -1
+      ]
+    ],
+    [
+      [
+        9506,
+        4531
+      ],
+      [
+        13,
+        0
+      ],
+      [
+        13,
+        -1
+      ],
+      [
+        13,
+        -1
+      ],
+      [
+        12,
+        0
+      ],
+      [
+        13,
+        -1
+      ],
+      [
+        13,
+        -1
+      ],
+      [
+        13,
+        0
+      ],
+      [
+        13,
+        -1
+      ],
+      [
+        7,
+        5
+      ],
+      [
+        10,
+        15
+      ],
+      [
+        5,
+        3
+      ],
+      [
+        10,
+        9
+      ],
+      [
+        4,
+        2
+      ],
+      [
+        11,
+        -1
+      ]
+    ],
+    [
+      [
+        9656,
+        4559
+      ],
+      [
+        -2,
+        -10
+      ],
+      [
+        2,
+        -9
+      ],
+      [
+        2,
+        -10
+      ],
+      [
+        4,
+        -10
+      ],
+      [
+        3,
+        -1
+      ],
+      [
+        4,
+        2
+      ],
+      [
+        3,
+        -1
+      ],
+      [
+        2,
+        -4
+      ],
+      [
+        -1,
+        -5
+      ],
+      [
+        -4,
+        -1
+      ],
+      [
+        -9,
+        -9
+      ],
+      [
+        -7,
+        -4
+      ],
+      [
+        -3,
+        -10
+      ],
+      [
+        -6,
+        -13
+      ],
+      [
+        -10,
+        -19
+      ],
+      [
+        4,
+        -6
+      ],
+      [
+        17,
+        -6
+      ],
+      [
+        7,
+        -7
+      ],
+      [
+        11,
+        -36
+      ],
+      [
+        -3,
+        -4
+      ],
+      [
+        -1,
+        -6
+      ],
+      [
+        10,
+        -10
+      ],
+      [
+        3,
+        -25
+      ],
+      [
+        8,
+        -9
+      ],
+      [
+        12,
+        -6
+      ],
+      [
+        14,
+        8
+      ],
+      [
+        12,
+        11
+      ],
+      [
+        0,
+        9
+      ],
+      [
+        -8,
+        20
+      ],
+      [
+        -2,
+        10
+      ],
+      [
+        -5,
+        6
+      ],
+      [
+        -3,
+        -5
+      ],
+      [
+        -3,
+        7
+      ],
+      [
+        -1,
+        3
+      ],
+      [
+        4,
+        2
+      ],
+      [
+        4,
+        0
+      ],
+      [
+        4,
+        -4
+      ],
+      [
+        12,
+        -22
+      ],
+      [
+        3,
+        -30
+      ],
+      [
+        1,
+        -18
+      ],
+      [
+        -1,
+        -6
+      ],
+      [
+        -4,
+        1
+      ],
+      [
+        -6,
+        -1
+      ],
+      [
+        -31,
+        -10
+      ],
+      [
+        -7,
+        -9
+      ],
+      [
+        -16,
+        -9
+      ],
+      [
+        -1,
+        5
+      ],
+      [
+        1,
+        9
+      ],
+      [
+        -1,
+        20
+      ],
+      [
+        -3,
+        1
+      ],
+      [
+        -25,
+        -32
+      ],
+      [
+        -9,
+        -2
+      ],
+      [
+        -8,
+        -9
+      ],
+      [
+        -2,
+        5
+      ],
+      [
+        -1,
+        24
+      ],
+      [
+        5,
+        20
+      ],
+      [
+        -3,
+        -1
+      ],
+      [
+        -5,
+        -7
+      ]
+    ],
+    [
+      [
+        9256,
+        3637
+      ],
+      [
+        2,
+        6
+      ],
+      [
+        8,
+        32
+      ],
+      [
+        4,
+        11
+      ],
+      [
+        -4,
+        -22
+      ],
+      [
+        -6,
+        -21
+      ],
+      [
+        -2,
+        -6
+      ]
+    ],
+    [
+      [
+        9258,
+        3637
+      ],
+      [
+        -2,
+        0
+      ]
+    ],
+    [
+      [
+        9275,
+        3716
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        -1,
+        -9
+      ],
+      [
+        -2,
+        -3
+      ],
+      [
+        0,
+        9
+      ],
+      [
+        -2,
+        3
+      ],
+      [
+        -2,
+        -4
+      ],
+      [
+        -2,
+        -4
+      ],
+      [
+        0,
+        -17
+      ],
+      [
+        -2,
+        -8
+      ],
+      [
+        -6,
+        -2
+      ],
+      [
+        -6,
+        -22
+      ],
+      [
+        -5,
+        -12
+      ],
+      [
+        -2,
+        -8
+      ]
+    ],
+    [
+      [
+        9245,
+        3634
+      ],
+      [
+        -9,
+        -2
+      ],
+      [
+        -13,
+        -3
+      ],
+      [
+        -4,
+        -8
+      ]
+    ],
+    [
+      [
+        9219,
+        3621
+      ],
+      [
+        -7,
+        3
+      ],
+      [
+        -10,
+        0
+      ],
+      [
+        2,
+        12
+      ],
+      [
+        3,
+        10
+      ],
+      [
+        -5,
+        10
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -3,
+        4
+      ],
+      [
+        4,
+        8
+      ],
+      [
+        2,
+        9
+      ],
+      [
+        -1,
+        11
+      ],
+      [
+        1,
+        8
+      ],
+      [
+        -2,
+        -1
+      ],
+      [
+        -5,
+        -9
+      ],
+      [
+        -2,
+        -3
+      ],
+      [
+        -2,
+        8
+      ],
+      [
+        -2,
+        -2
+      ],
+      [
+        -1,
+        -5
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -6,
+        7
+      ],
+      [
+        -8,
+        8
+      ],
+      [
+        -5,
+        15
+      ],
+      [
+        -3,
+        11
+      ],
+      [
+        3,
+        20
+      ],
+      [
+        6,
+        3
+      ],
+      [
+        7,
+        -3
+      ],
+      [
+        11,
+        0
+      ],
+      [
+        -2,
+        5
+      ],
+      [
+        -4,
+        -1
+      ],
+      [
+        -10,
+        16
+      ],
+      [
+        -4,
+        10
+      ],
+      [
+        -5,
+        3
+      ],
+      [
+        -3,
+        -10
+      ],
+      [
+        -3,
+        -2
+      ],
+      [
+        4,
+        20
+      ],
+      [
+        4,
+        1
+      ],
+      [
+        7,
+        6
+      ],
+      [
+        -2,
+        12
+      ],
+      [
+        -4,
+        5
+      ],
+      [
+        -8,
+        -6
+      ],
+      [
+        0,
+        8
+      ],
+      [
+        1,
+        11
+      ],
+      [
+        7,
+        0
+      ],
+      [
+        5,
+        -4
+      ],
+      [
+        4,
+        18
+      ],
+      [
+        1,
+        8
+      ],
+      [
+        -8,
+        -12
+      ],
+      [
+        -2,
+        25
+      ],
+      [
+        8,
+        23
+      ],
+      [
+        7,
+        10
+      ],
+      [
+        9,
+        0
+      ],
+      [
+        9,
+        2
+      ],
+      [
+        -6,
+        4
+      ],
+      [
+        -6,
+        2
+      ],
+      [
+        5,
+        10
+      ],
+      [
+        3,
+        1
+      ],
+      [
+        4,
+        9
+      ],
+      [
+        -9,
+        -2
+      ],
+      [
+        1,
+        16
+      ],
+      [
+        -4,
+        -3
+      ],
+      [
+        -5,
+        -2
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        0,
+        -11
+      ],
+      [
+        -1,
+        -7
+      ],
+      [
+        -4,
+        -6
+      ],
+      [
+        -7,
+        -4
+      ],
+      [
+        0,
+        7
+      ],
+      [
+        -3,
+        4
+      ],
+      [
+        0,
+        -17
+      ],
+      [
+        -2,
+        -5
+      ],
+      [
+        -5,
+        15
+      ],
+      [
+        -2,
+        -3
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        -2,
+        -8
+      ],
+      [
+        -4,
+        -4
+      ],
+      [
+        0,
+        -10
+      ],
+      [
+        -1,
+        -5
+      ],
+      [
+        -14,
+        8
+      ],
+      [
+        0,
+        -2
+      ],
+      [
+        8,
+        -19
+      ],
+      [
+        5,
+        -6
+      ],
+      [
+        1,
+        -10
+      ],
+      [
+        -5,
+        -8
+      ],
+      [
+        -6,
+        7
+      ],
+      [
+        -2,
+        0
+      ],
+      [
+        4,
+        -13
+      ],
+      [
+        2,
+        -10
+      ],
+      [
+        -2,
+        -9
+      ],
+      [
+        0,
+        -11
+      ],
+      [
+        0,
+        -10
+      ],
+      [
+        -2,
+        -9
+      ],
+      [
+        4,
+        -40
+      ],
+      [
+        3,
+        -11
+      ],
+      [
+        4,
+        -10
+      ],
+      [
+        2,
+        -10
+      ],
+      [
+        -4,
+        -2
+      ],
+      [
+        -6,
+        8
+      ],
+      [
+        -6,
+        7
+      ],
+      [
+        -7,
+        19
+      ],
+      [
+        -1,
+        8
+      ],
+      [
+        -1,
+        6
+      ],
+      [
+        1,
+        -14
+      ],
+      [
+        2,
+        -16
+      ],
+      [
+        21,
+        -35
+      ],
+      [
+        4,
+        -14
+      ],
+      [
+        3,
+        -11
+      ],
+      [
+        -1,
+        -10
+      ],
+      [
+        -6,
+        7
+      ],
+      [
+        -4,
+        10
+      ],
+      [
+        -13,
+        10
+      ],
+      [
+        -16,
+        7
+      ],
+      [
+        -8,
+        24
+      ],
+      [
+        0,
+        -10
+      ],
+      [
+        -2,
+        -9
+      ],
+      [
+        -6,
+        11
+      ],
+      [
+        -3,
+        9
+      ],
+      [
+        -1,
+        9
+      ],
+      [
+        -7,
+        0
+      ],
+      [
+        -7,
+        -9
+      ],
+      [
+        -7,
+        2
+      ],
+      [
+        -1,
+        17
+      ],
+      [
+        2,
+        9
+      ],
+      [
+        8,
+        20
+      ],
+      [
+        7,
+        11
+      ],
+      [
+        3,
+        14
+      ],
+      [
+        -1,
+        21
+      ]
+    ],
+    [
+      [
+        9088,
+        3809
+      ],
+      [
+        -6,
+        5
+      ],
+      [
+        -10,
+        16
+      ],
+      [
+        -17,
+        12
+      ],
+      [
+        -2,
+        5
+      ],
+      [
+        0,
+        7
+      ],
+      [
+        3,
+        8
+      ],
+      [
+        -5,
+        9
+      ],
+      [
+        -12,
+        8
+      ],
+      [
+        -6,
+        7
+      ]
+    ],
+    [
+      [
+        9033,
+        3886
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        0,
+        8
+      ],
+      [
+        -2,
+        6
+      ],
+      [
+        -2,
+        2
+      ],
+      [
+        -1,
+        4
+      ],
+      [
+        2,
+        5
+      ],
+      [
+        -2,
+        6
+      ],
+      [
+        -5,
+        6
+      ],
+      [
+        -2,
+        5
+      ],
+      [
+        2,
+        4
+      ],
+      [
+        -3,
+        3
+      ],
+      [
+        -6,
+        -1
+      ],
+      [
+        -7,
+        4
+      ],
+      [
+        -6,
+        9
+      ],
+      [
+        -7,
+        2
+      ],
+      [
+        -13,
+        -9
+      ],
+      [
+        -8,
+        -2
+      ],
+      [
+        -3,
+        -5
+      ],
+      [
+        -2,
+        -9
+      ],
+      [
+        -3,
+        -4
+      ],
+      [
+        -7,
+        0
+      ],
+      [
+        -1,
+        0
+      ],
+      [
+        -8,
+        3
+      ],
+      [
+        -6,
+        5
+      ],
+      [
+        -1,
+        3
+      ],
+      [
+        1,
+        4
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        -2,
+        1
+      ],
+      [
+        -2,
+        -3
+      ],
+      [
+        -1,
+        -8
+      ],
+      [
+        -15,
+        -22
+      ],
+      [
+        -6,
+        4
+      ],
+      [
+        -3,
+        0
+      ],
+      [
+        -20,
+        -31
+      ],
+      [
+        -5,
+        -5
+      ],
+      [
+        -12,
+        -15
+      ],
+      [
+        0,
+        25
+      ],
+      [
+        0,
+        24
+      ],
+      [
+        1,
+        25
+      ],
+      [
+        0,
+        24
+      ]
+    ],
+    [
+      [
+        8876,
+        3958
+      ],
+      [
+        21,
+        0
+      ],
+      [
+        20,
+        0
+      ],
+      [
+        21,
+        0
+      ],
+      [
+        21,
+        0
+      ],
+      [
+        21,
+        0
+      ],
+      [
+        20,
+        0
+      ],
+      [
+        21,
+        0
+      ],
+      [
+        21,
+        0
+      ],
+      [
+        21,
+        0
+      ],
+      [
+        20,
+        0
+      ],
+      [
+        21,
+        0
+      ],
+      [
+        21,
+        0
+      ],
+      [
+        21,
+        0
+      ],
+      [
+        20,
+        0
+      ],
+      [
+        21,
+        0
+      ],
+      [
+        21,
+        0
+      ]
+    ],
+    [
+      [
+        9852,
+        4811
+      ],
+      [
+        -4,
+        -4
+      ],
+      [
+        -3,
+        1
+      ],
+      [
+        0,
+        10
+      ],
+      [
+        1,
+        3
+      ],
+      [
+        1,
+        1
+      ],
+      [
+        2,
+        -2
+      ],
+      [
+        3,
+        -9
+      ]
+    ],
+    [
+      [
+        9891,
+        4837
+      ],
+      [
+        -5,
+        -4
+      ],
+      [
+        -6,
+        2
+      ],
+      [
+        0,
+        -10
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        -7,
+        5
+      ],
+      [
+        -2,
+        4
+      ],
+      [
+        0,
+        13
+      ],
+      [
+        6,
+        12
+      ],
+      [
+        4,
+        5
+      ],
+      [
+        6,
+        -3
+      ],
+      [
+        4,
+        -14
+      ],
+      [
+        0,
+        -6
+      ]
+    ],
+    [
+      [
+        9662,
+        4596
+      ],
+      [
+        -7,
+        18
+      ],
+      [
+        -1,
+        14
+      ],
+      [
+        -9,
+        17
+      ],
+      [
+        -3,
+        12
+      ],
+      [
+        -1,
+        13
+      ],
+      [
+        1,
+        14
+      ],
+      [
+        -1,
+        21
+      ],
+      [
+        -1,
+        21
+      ],
+      [
+        -1,
+        22
+      ],
+      [
+        0,
+        21
+      ],
+      [
+        -1,
+        21
+      ],
+      [
+        -1,
+        21
+      ],
+      [
+        0,
+        21
+      ],
+      [
+        -1,
+        21
+      ],
+      [
+        -1,
+        21
+      ],
+      [
+        0,
+        22
+      ],
+      [
+        -1,
+        21
+      ],
+      [
+        -1,
+        21
+      ],
+      [
+        0,
+        21
+      ],
+      [
+        -1,
+        21
+      ],
+      [
+        -1,
+        21
+      ],
+      [
+        0,
+        19
+      ]
+    ],
+    [
+      [
+        9631,
+        5020
+      ],
+      [
+        2,
+        3
+      ],
+      [
+        5,
+        5
+      ],
+      [
+        4,
+        0
+      ],
+      [
+        3,
+        -8
+      ],
+      [
+        2,
+        -6
+      ],
+      [
+        3,
+        2
+      ],
+      [
+        3,
+        7
+      ],
+      [
+        0,
+        11
+      ],
+      [
+        3,
+        7
+      ],
+      [
+        4,
+        1
+      ],
+      [
+        4,
+        0
+      ],
+      [
+        2,
+        4
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        -2,
+        8
+      ],
+      [
+        1,
+        10
+      ],
+      [
+        9,
+        18
+      ],
+      [
+        12,
+        12
+      ],
+      [
+        4,
+        6
+      ],
+      [
+        1,
+        12
+      ],
+      [
+        7,
+        13
+      ],
+      [
+        3,
+        7
+      ],
+      [
+        1,
+        6
+      ],
+      [
+        -1,
+        8
+      ],
+      [
+        0,
+        15
+      ],
+      [
+        2,
+        17
+      ],
+      [
+        3,
+        20
+      ],
+      [
+        6,
+        17
+      ],
+      [
+        10,
+        19
+      ],
+      [
+        3,
+        25
+      ],
+      [
+        2,
+        26
+      ],
+      [
+        13,
+        25
+      ],
+      [
+        13,
+        29
+      ],
+      [
+        8,
+        17
+      ],
+      [
+        15,
+        30
+      ],
+      [
+        10,
+        21
+      ],
+      [
+        5,
+        10
+      ],
+      [
+        5,
+        12
+      ],
+      [
+        9,
+        -4
+      ],
+      [
+        8,
+        -3
+      ],
+      [
+        -1,
+        -17
+      ],
+      [
+        1,
+        -8
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        4,
+        -8
+      ],
+      [
+        6,
+        -4
+      ],
+      [
+        4,
+        -2
+      ],
+      [
+        5,
+        0
+      ],
+      [
+        15,
+        10
+      ],
+      [
+        17,
+        6
+      ],
+      [
+        9,
+        6
+      ],
+      [
+        2,
+        5
+      ],
+      [
+        4,
+        2
+      ],
+      [
+        7,
+        -2
+      ],
+      [
+        12,
+        -13
+      ],
+      [
+        15,
+        -21
+      ],
+      [
+        11,
+        -16
+      ],
+      [
+        1,
+        -28
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -31
+      ],
+      [
+        0,
+        -22
+      ],
+      [
+        1,
+        -31
+      ],
+      [
+        0,
+        -24
+      ],
+      [
+        0,
+        -32
+      ],
+      [
+        0,
+        -17
+      ],
+      [
+        2,
+        -5
+      ],
+      [
+        -1,
+        -7
+      ],
+      [
+        -1,
+        -3
+      ],
+      [
+        1,
+        -3
+      ],
+      [
+        0,
+        -3
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        -1,
+        -4
+      ],
+      [
+        -1,
+        -5
+      ],
+      [
+        0,
+        -3
+      ],
+      [
+        -6,
+        -3
+      ],
+      [
+        8,
+        -13
+      ],
+      [
+        14,
+        -13
+      ],
+      [
+        10,
+        -3
+      ],
+      [
+        5,
+        4
+      ],
+      [
+        2,
+        -1
+      ],
+      [
+        2,
+        -7
+      ],
+      [
+        -1,
+        -7
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -3,
+        -2
+      ],
+      [
+        -1,
+        -6
+      ],
+      [
+        2,
+        -5
+      ],
+      [
+        2,
+        -5
+      ],
+      [
+        2,
+        -8
+      ],
+      [
+        -1,
+        -7
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        -1,
+        -6
+      ],
+      [
+        2,
+        -6
+      ],
+      [
+        5,
+        -7
+      ],
+      [
+        3,
+        -7
+      ],
+      [
+        4,
+        -4
+      ],
+      [
+        3,
+        3
+      ],
+      [
+        1,
+        4
+      ],
+      [
+        2,
+        2
+      ],
+      [
+        4,
+        -1
+      ],
+      [
+        3,
+        -2
+      ],
+      [
+        5,
+        -3
+      ],
+      [
+        -1,
+        -5
+      ],
+      [
+        3,
+        -10
+      ],
+      [
+        2,
+        -19
+      ],
+      [
+        -3,
+        -9
+      ],
+      [
+        0,
+        -11
+      ],
+      [
+        9,
+        -3
+      ],
+      [
+        2,
+        -4
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        -18,
+        -29
+      ],
+      [
+        -16,
+        4
+      ],
+      [
+        -8,
+        -7
+      ],
+      [
+        -9,
+        -3
+      ],
+      [
+        -4,
+        -13
+      ],
+      [
+        -5,
+        -2
+      ],
+      [
+        -7,
+        0
+      ],
+      [
+        -5,
+        4
+      ],
+      [
+        -5,
+        -2
+      ],
+      [
+        -6,
+        -23
+      ],
+      [
+        -5,
+        2
+      ],
+      [
+        -2,
+        -8
+      ],
+      [
+        -2,
+        -4
+      ],
+      [
+        -4,
+        -3
+      ],
+      [
+        -4,
+        10
+      ],
+      [
+        -2,
+        10
+      ],
+      [
+        -3,
+        2
+      ],
+      [
+        -4,
+        3
+      ],
+      [
+        -4,
+        0
+      ],
+      [
+        -3,
+        -2
+      ],
+      [
+        -4,
+        -6
+      ],
+      [
+        -5,
+        -6
+      ],
+      [
+        -4,
+        5
+      ],
+      [
+        -3,
+        7
+      ],
+      [
+        -2,
+        -12
+      ],
+      [
+        -4,
+        -12
+      ],
+      [
+        1,
+        -15
+      ],
+      [
+        -2,
+        -8
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -3,
+        8
+      ],
+      [
+        -10,
+        6
+      ],
+      [
+        -8,
+        -1
+      ],
+      [
+        2,
+        8
+      ],
+      [
+        7,
+        12
+      ],
+      [
+        -2,
+        2
+      ],
+      [
+        -4,
+        -2
+      ],
+      [
+        -2,
+        2
+      ],
+      [
+        3,
+        11
+      ],
+      [
+        0,
+        11
+      ],
+      [
+        -3,
+        -4
+      ],
+      [
+        -4,
+        -12
+      ],
+      [
+        -11,
+        -10
+      ],
+      [
+        1,
+        -16
+      ],
+      [
+        -10,
+        -34
+      ],
+      [
+        0,
+        -14
+      ],
+      [
+        -6,
+        -11
+      ],
+      [
+        -8,
+        -10
+      ],
+      [
+        -11,
+        3
+      ],
+      [
+        -8,
+        -9
+      ],
+      [
+        -4,
+        -10
+      ],
+      [
+        -4,
+        -1
+      ],
+      [
+        -2,
+        12
+      ],
+      [
+        -1,
+        4
+      ],
+      [
+        -3,
+        -18
+      ],
+      [
+        -3,
+        -1
+      ],
+      [
+        -1,
+        13
+      ],
+      [
+        -2,
+        8
+      ],
+      [
+        -4,
+        -7
+      ],
+      [
+        -3,
+        -20
+      ],
+      [
+        -3,
+        2
+      ],
+      [
+        0,
+        7
+      ],
+      [
+        -3,
+        2
+      ],
+      [
+        0,
+        -8
+      ],
+      [
+        1,
+        -12
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        -3,
+        3
+      ],
+      [
+        -2,
+        6
+      ],
+      [
+        -5,
+        -4
+      ],
+      [
+        -5,
+        -2
+      ],
+      [
+        0,
+        6
+      ],
+      [
+        1,
+        7
+      ],
+      [
+        -9,
+        -4
+      ],
+      [
+        -10,
+        -13
+      ],
+      [
+        -8,
+        -18
+      ],
+      [
+        3,
+        -3
+      ],
+      [
+        3,
+        -6
+      ],
+      [
+        -14,
+        -28
+      ],
+      [
+        -15,
+        -25
+      ],
+      [
+        -11,
+        -41
+      ],
+      [
+        -4,
+        -4
+      ],
+      [
+        -4,
+        -8
+      ]
+    ],
+    [
+      [
+        8292,
+        4984
+      ],
+      [
+        -1,
+        -3
+      ],
+      [
+        -3,
+        0
+      ],
+      [
+        -2,
+        3
+      ],
+      [
+        -2,
+        8
+      ],
+      [
+        1,
+        2
+      ],
+      [
+        5,
+        -1
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        1,
+        -5
+      ]
+    ],
+    [
+      [
+        8330,
+        5079
+      ],
+      [
+        -3,
+        -1
+      ],
+      [
+        -3,
+        2
+      ],
+      [
+        1,
+        9
+      ],
+      [
+        3,
+        16
+      ],
+      [
+        3,
+        7
+      ],
+      [
+        4,
+        -3
+      ],
+      [
+        -1,
+        -2
+      ],
+      [
+        1,
+        -17
+      ],
+      [
+        -1,
+        -7
+      ],
+      [
+        -4,
+        -4
+      ]
+    ],
+    [
+      [
+        8518,
+        4344
+      ],
+      [
+        -1,
+        -2
+      ],
+      [
+        -29,
+        -1
+      ],
+      [
+        -30,
+        -2
+      ],
+      [
+        -30,
+        -2
+      ],
+      [
+        -30,
+        -2
+      ]
+    ],
+    [
+      [
+        8212,
+        4346
+      ],
+      [
+        6,
+        6
+      ],
+      [
+        9,
+        12
+      ],
+      [
+        6,
+        11
+      ],
+      [
+        5,
+        15
+      ],
+      [
+        5,
+        18
+      ],
+      [
+        10,
+        27
+      ],
+      [
+        5,
+        16
+      ],
+      [
+        5,
+        21
+      ],
+      [
+        3,
+        21
+      ],
+      [
+        3,
+        23
+      ],
+      [
+        1,
+        23
+      ],
+      [
+        0,
+        25
+      ],
+      [
+        -3,
+        24
+      ],
+      [
+        -5,
+        25
+      ],
+      [
+        -2,
+        12
+      ],
+      [
+        -1,
+        4
+      ],
+      [
+        -9,
+        31
+      ],
+      [
+        -9,
+        44
+      ],
+      [
+        0,
+        4
+      ],
+      [
+        9,
+        26
+      ],
+      [
+        0,
+        4
+      ],
+      [
+        -1,
+        21
+      ],
+      [
+        -2,
+        11
+      ],
+      [
+        -4,
+        14
+      ],
+      [
+        0,
+        3
+      ],
+      [
+        9,
+        19
+      ],
+      [
+        6,
+        14
+      ],
+      [
+        5,
+        16
+      ],
+      [
+        3,
+        20
+      ],
+      [
+        2,
+        23
+      ],
+      [
+        0,
+        14
+      ],
+      [
+        -2,
+        8
+      ],
+      [
+        0,
+        6
+      ],
+      [
+        2,
+        4
+      ],
+      [
+        10,
+        5
+      ],
+      [
+        4,
+        9
+      ],
+      [
+        0,
+        15
+      ],
+      [
+        2,
+        8
+      ],
+      [
+        4,
+        0
+      ],
+      [
+        3,
+        3
+      ],
+      [
+        3,
+        7
+      ],
+      [
+        4,
+        2
+      ],
+      [
+        4,
+        -3
+      ],
+      [
+        7,
+        9
+      ],
+      [
+        8,
+        22
+      ],
+      [
+        7,
+        13
+      ],
+      [
+        5,
+        2
+      ],
+      [
+        0,
+        -2
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        -1,
+        -7
+      ],
+      [
+        1,
+        -8
+      ],
+      [
+        -1,
+        -8
+      ],
+      [
+        -2,
+        -10
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        -4,
+        -16
+      ],
+      [
+        0,
+        -9
+      ],
+      [
+        2,
+        -6
+      ],
+      [
+        3,
+        2
+      ],
+      [
+        3,
+        11
+      ],
+      [
+        1,
+        6
+      ],
+      [
+        -1,
+        0
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        2,
+        8
+      ],
+      [
+        2,
+        4
+      ],
+      [
+        2,
+        0
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        0,
+        -8
+      ],
+      [
+        -5,
+        -21
+      ],
+      [
+        -1,
+        -7
+      ],
+      [
+        1,
+        -1
+      ],
+      [
+        6,
+        13
+      ],
+      [
+        5,
+        20
+      ],
+      [
+        3,
+        16
+      ],
+      [
+        1,
+        9
+      ],
+      [
+        -1,
+        22
+      ],
+      [
+        0,
+        10
+      ],
+      [
+        2,
+        6
+      ],
+      [
+        5,
+        7
+      ],
+      [
+        8,
+        8
+      ],
+      [
+        9,
+        4
+      ],
+      [
+        8,
+        1
+      ],
+      [
+        6,
+        2
+      ],
+      [
+        4,
+        4
+      ],
+      [
+        -1,
+        3
+      ],
+      [
+        -6,
+        2
+      ],
+      [
+        -5,
+        5
+      ],
+      [
+        -2,
+        8
+      ],
+      [
+        -1,
+        9
+      ],
+      [
+        1,
+        9
+      ],
+      [
+        3,
+        10
+      ],
+      [
+        6,
+        10
+      ],
+      [
+        2,
+        7
+      ],
+      [
+        -2,
+        4
+      ],
+      [
+        3,
+        2
+      ],
+      [
+        7,
+        -1
+      ],
+      [
+        6,
+        1
+      ],
+      [
+        3,
+        4
+      ],
+      [
+        7,
+        -4
+      ],
+      [
+        12,
+        -12
+      ],
+      [
+        11,
+        -7
+      ],
+      [
+        10,
+        -2
+      ],
+      [
+        8,
+        -4
+      ],
+      [
+        4,
+        -6
+      ],
+      [
+        4,
+        -8
+      ],
+      [
+        2,
+        -7
+      ],
+      [
+        5,
+        -5
+      ],
+      [
+        8,
+        -1
+      ],
+      [
+        6,
+        -3
+      ],
+      [
+        4,
+        -6
+      ],
+      [
+        25,
+        -15
+      ],
+      [
+        10,
+        -7
+      ],
+      [
+        6,
+        -8
+      ],
+      [
+        2,
+        -5
+      ],
+      [
+        -1,
+        -5
+      ],
+      [
+        1,
+        -5
+      ],
+      [
+        4,
+        -10
+      ],
+      [
+        1,
+        -1
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        1,
+        -9
+      ],
+      [
+        1,
+        -6
+      ],
+      [
+        2,
+        -3
+      ],
+      [
+        -1,
+        -1
+      ],
+      [
+        -8,
+        5
+      ],
+      [
+        -4,
+        -2
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        0,
+        -6
+      ],
+      [
+        1,
+        -6
+      ],
+      [
+        10,
+        -18
+      ],
+      [
+        2,
+        -16
+      ],
+      [
+        1,
+        -19
+      ],
+      [
+        -1,
+        -8
+      ],
+      [
+        -1,
+        -16
+      ],
+      [
+        -1,
+        -26
+      ],
+      [
+        0,
+        -9
+      ],
+      [
+        -4,
+        -9
+      ],
+      [
+        -8,
+        -12
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        -2,
+        1
+      ],
+      [
+        -2,
+        -2
+      ],
+      [
+        -3,
+        -11
+      ],
+      [
+        -3,
+        -19
+      ],
+      [
+        -3,
+        -10
+      ],
+      [
+        -4,
+        -2
+      ],
+      [
+        -2,
+        -3
+      ],
+      [
+        -1,
+        -4
+      ],
+      [
+        -4,
+        -2
+      ],
+      [
+        -8,
+        -2
+      ],
+      [
+        -5,
+        -6
+      ],
+      [
+        -4,
+        -16
+      ],
+      [
+        1,
+        -8
+      ],
+      [
+        -2,
+        -10
+      ],
+      [
+        0,
+        -9
+      ],
+      [
+        2,
+        -7
+      ],
+      [
+        6,
+        -7
+      ],
+      [
+        10,
+        -7
+      ],
+      [
+        6,
+        -1
+      ],
+      [
+        4,
+        3
+      ],
+      [
+        5,
+        12
+      ],
+      [
+        4,
+        4
+      ],
+      [
+        5,
+        2
+      ],
+      [
+        2,
+        5
+      ],
+      [
+        8,
+        23
+      ],
+      [
+        0,
+        6
+      ],
+      [
+        -3,
+        2
+      ],
+      [
+        1,
+        1
+      ],
+      [
+        4,
+        1
+      ],
+      [
+        3,
+        3
+      ],
+      [
+        3,
+        5
+      ],
+      [
+        5,
+        4
+      ],
+      [
+        13,
+        6
+      ],
+      [
+        7,
+        7
+      ],
+      [
+        4,
+        1
+      ],
+      [
+        6,
+        -3
+      ],
+      [
+        8,
+        -9
+      ],
+      [
+        7,
+        -12
+      ],
+      [
+        4,
+        -16
+      ],
+      [
+        6,
+        -42
+      ],
+      [
+        8,
+        -68
+      ],
+      [
+        5,
+        -38
+      ],
+      [
+        2,
+        -8
+      ],
+      [
+        2,
+        -4
+      ],
+      [
+        -7,
+        -53
+      ],
+      [
+        -5,
+        -22
+      ],
+      [
+        -9,
+        -13
+      ],
+      [
+        1,
+        4
+      ],
+      [
+        0,
+        3
+      ],
+      [
+        0,
+        13
+      ],
+      [
+        -1,
+        5
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -4,
+        -1
+      ],
+      [
+        -5,
+        -5
+      ],
+      [
+        -1,
+        -5
+      ],
+      [
+        2,
+        -5
+      ],
+      [
+        -1,
+        -5
+      ],
+      [
+        -4,
+        -4
+      ],
+      [
+        -3,
+        -9
+      ],
+      [
+        -1,
+        -15
+      ],
+      [
+        -2,
+        -9
+      ],
+      [
+        -2,
+        -3
+      ],
+      [
+        -8,
+        -6
+      ],
+      [
+        -4,
+        -4
+      ],
+      [
+        -4,
+        -7
+      ],
+      [
+        -4,
+        -12
+      ],
+      [
+        -3,
+        -15
+      ],
+      [
+        -1,
+        -12
+      ],
+      [
+        1,
+        -7
+      ],
+      [
+        -2,
+        -4
+      ],
+      [
+        -5,
+        -8
+      ],
+      [
+        -1,
+        -3
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        -1,
+        -2
+      ],
+      [
+        -2,
+        0
+      ],
+      [
+        -2,
+        -3
+      ],
+      [
+        -4,
+        -8
+      ],
+      [
+        -7,
+        -21
+      ],
+      [
+        -2,
+        -4
+      ]
+    ],
+    [
+      [
+        8419,
+        5121
+      ],
+      [
+        12,
+        -3
+      ],
+      [
+        1,
+        1
+      ],
+      [
+        3,
+        -5
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        -2,
+        -4
+      ],
+      [
+        -2,
+        -2
+      ],
+      [
+        -2,
+        0
+      ],
+      [
+        -5,
+        4
+      ],
+      [
+        -6,
+        9
+      ],
+      [
+        0,
+        4
+      ]
+    ],
+    [
+      [
+        8514,
+        5157
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        -7,
+        -3
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -9,
+        2
+      ],
+      [
+        -4,
+        5
+      ],
+      [
+        0,
+        2
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        2,
+        0
+      ],
+      [
+        2,
+        -2
+      ],
+      [
+        5,
+        1
+      ],
+      [
+        5,
+        5
+      ],
+      [
+        3,
+        4
+      ],
+      [
+        0,
+        2
+      ],
+      [
+        -2,
+        5
+      ],
+      [
+        2,
+        2
+      ],
+      [
+        7,
+        -2
+      ],
+      [
+        2,
+        -3
+      ],
+      [
+        5,
+        -11
+      ],
+      [
+        2,
+        -2
+      ]
+    ],
+    [
+      [
+        8458,
+        5202
+      ],
+      [
+        -1,
+        -1
+      ],
+      [
+        -4,
+        7
+      ],
+      [
+        -1,
+        5
+      ],
+      [
+        0,
+        3
+      ],
+      [
+        2,
+        1
+      ],
+      [
+        3,
+        -4
+      ],
+      [
+        2,
+        -4
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        -1,
+        -2
+      ]
+    ],
+    [
+      [
+        8457,
+        5224
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        -2,
+        1
+      ],
+      [
+        -3,
+        2
+      ],
+      [
+        -2,
+        5
+      ],
+      [
+        -2,
+        11
+      ],
+      [
+        -3,
+        9
+      ],
+      [
+        5,
+        9
+      ],
+      [
+        3,
+        1
+      ],
+      [
+        4,
+        -2
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        -3,
+        -9
+      ],
+      [
+        1,
+        -9
+      ],
+      [
+        2,
+        -9
+      ]
+    ],
+    [
+      [
+        8145,
+        4985
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -4,
+        8
+      ],
+      [
+        -2,
+        7
+      ],
+      [
+        0,
+        8
+      ],
+      [
+        5,
+        20
+      ],
+      [
+        0,
+        3
+      ],
+      [
+        0,
+        2
+      ],
+      [
+        -3,
+        2
+      ],
+      [
+        -7,
+        -3
+      ],
+      [
+        -6,
+        -1
+      ],
+      [
+        -2,
+        1
+      ],
+      [
+        -1,
+        4
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        1,
+        6
+      ],
+      [
+        4,
+        12
+      ],
+      [
+        0,
+        10
+      ],
+      [
+        2,
+        7
+      ],
+      [
+        -2,
+        11
+      ],
+      [
+        1,
+        6
+      ],
+      [
+        -3,
+        6
+      ],
+      [
+        -7,
+        8
+      ],
+      [
+        -18,
+        11
+      ],
+      [
+        2,
+        12
+      ],
+      [
+        -1,
+        5
+      ],
+      [
+        -4,
+        7
+      ],
+      [
+        -18,
+        9
+      ],
+      [
+        -13,
+        4
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -9,
+        4
+      ],
+      [
+        -10,
+        1
+      ],
+      [
+        -6,
+        5
+      ],
+      [
+        -6,
+        5
+      ],
+      [
+        -7,
+        6
+      ],
+      [
+        -6,
+        5
+      ],
+      [
+        -11,
+        5
+      ],
+      [
+        -11,
+        4
+      ],
+      [
+        -12,
+        5
+      ],
+      [
+        -11,
+        5
+      ],
+      [
+        -11,
+        4
+      ],
+      [
+        -11,
+        5
+      ],
+      [
+        -12,
+        4
+      ],
+      [
+        -11,
+        5
+      ],
+      [
+        -2,
+        8
+      ],
+      [
+        -3,
+        8
+      ],
+      [
+        -2,
+        8
+      ],
+      [
+        -3,
+        8
+      ],
+      [
+        -5,
+        3
+      ],
+      [
+        -3,
+        2
+      ],
+      [
+        -2,
+        4
+      ],
+      [
+        -4,
+        -2
+      ],
+      [
+        -2,
+        7
+      ],
+      [
+        0,
+        2
+      ]
+    ],
+    [
+      [
+        7893,
+        5268
+      ],
+      [
+        6,
+        2
+      ],
+      [
+        17,
+        10
+      ],
+      [
+        14,
+        12
+      ],
+      [
+        12,
+        14
+      ],
+      [
+        15,
+        9
+      ],
+      [
+        18,
+        3
+      ],
+      [
+        13,
+        5
+      ],
+      [
+        8,
+        7
+      ],
+      [
+        10,
+        13
+      ],
+      [
+        6,
+        4
+      ],
+      [
+        7,
+        1
+      ],
+      [
+        5,
+        6
+      ],
+      [
+        4,
+        9
+      ],
+      [
+        7,
+        10
+      ],
+      [
+        10,
+        12
+      ],
+      [
+        6,
+        5
+      ],
+      [
+        2,
+        -3
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        0,
+        -6
+      ],
+      [
+        2,
+        -5
+      ],
+      [
+        6,
+        -3
+      ],
+      [
+        2,
+        -5
+      ],
+      [
+        0,
+        -7
+      ],
+      [
+        1,
+        -5
+      ],
+      [
+        4,
+        -4
+      ],
+      [
+        1,
+        -10
+      ],
+      [
+        -2,
+        -14
+      ],
+      [
+        0,
+        -10
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        1,
+        -2
+      ],
+      [
+        2,
+        2
+      ],
+      [
+        3,
+        5
+      ],
+      [
+        1,
+        3
+      ],
+      [
+        0,
+        3
+      ],
+      [
+        15,
+        15
+      ],
+      [
+        3,
+        1
+      ],
+      [
+        5,
+        -4
+      ],
+      [
+        23,
+        -5
+      ],
+      [
+        9,
+        -4
+      ],
+      [
+        9,
+        -8
+      ],
+      [
+        3,
+        -4
+      ],
+      [
+        12,
+        -27
+      ],
+      [
+        5,
+        -11
+      ],
+      [
+        3,
+        -3
+      ],
+      [
+        2,
+        -4
+      ],
+      [
+        2,
+        -9
+      ],
+      [
+        1,
+        -3
+      ],
+      [
+        17,
+        -2
+      ],
+      [
+        8,
+        1
+      ],
+      [
+        5,
+        4
+      ],
+      [
+        5,
+        -2
+      ],
+      [
+        5,
+        -9
+      ],
+      [
+        6,
+        -3
+      ],
+      [
+        5,
+        4
+      ],
+      [
+        6,
+        0
+      ],
+      [
+        4,
+        -4
+      ],
+      [
+        3,
+        -3
+      ],
+      [
+        1,
+        0
+      ],
+      [
+        10,
+        14
+      ],
+      [
+        11,
+        12
+      ],
+      [
+        16,
+        13
+      ],
+      [
+        9,
+        6
+      ],
+      [
+        2,
+        -2
+      ],
+      [
+        14,
+        5
+      ],
+      [
+        13,
+        0
+      ],
+      [
+        17,
+        -3
+      ],
+      [
+        16,
+        3
+      ],
+      [
+        14,
+        9
+      ],
+      [
+        13,
+        5
+      ],
+      [
+        11,
+        1
+      ],
+      [
+        4,
+        -2
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        -2,
+        -10
+      ],
+      [
+        0,
+        -15
+      ],
+      [
+        -1,
+        -9
+      ],
+      [
+        -2,
+        -4
+      ],
+      [
+        0,
+        -3
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        11,
+        -2
+      ],
+      [
+        6,
+        -5
+      ],
+      [
+        6,
+        0
+      ],
+      [
+        8,
+        4
+      ],
+      [
+        5,
+        -1
+      ],
+      [
+        4,
+        -8
+      ],
+      [
+        6,
+        -1
+      ],
+      [
+        5,
+        5
+      ],
+      [
+        4,
+        5
+      ],
+      [
+        4,
+        2
+      ],
+      [
+        2,
+        1
+      ],
+      [
+        3,
+        -3
+      ],
+      [
+        2,
+        -4
+      ],
+      [
+        4,
+        -12
+      ],
+      [
+        3,
+        -8
+      ],
+      [
+        1,
+        -11
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        0,
+        -7
+      ],
+      [
+        -3,
+        -5
+      ],
+      [
+        -1,
+        -4
+      ],
+      [
+        2,
+        -3
+      ],
+      [
+        11,
+        -1
+      ],
+      [
+        4,
+        -4
+      ],
+      [
+        2,
+        -4
+      ],
+      [
+        -1,
+        -5
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        2,
+        -6
+      ],
+      [
+        9,
+        -7
+      ],
+      [
+        2,
+        -4
+      ],
+      [
+        -1,
+        -4
+      ],
+      [
+        -2,
+        -2
+      ],
+      [
+        -5,
+        -2
+      ],
+      [
+        -32,
+        8
+      ],
+      [
+        -10,
+        1
+      ],
+      [
+        -1,
+        -3
+      ],
+      [
+        -1,
+        0
+      ],
+      [
+        -2,
+        1
+      ],
+      [
+        -3,
+        0
+      ],
+      [
+        -1,
+        1
+      ],
+      [
+        -1,
+        5
+      ],
+      [
+        -3,
+        3
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -4,
+        -4
+      ],
+      [
+        -5,
+        -14
+      ],
+      [
+        1,
+        -3
+      ],
+      [
+        -1,
+        -9
+      ],
+      [
+        1,
+        -3
+      ],
+      [
+        0,
+        -2
+      ],
+      [
+        -1,
+        -2
+      ],
+      [
+        -3,
+        1
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -15,
+        22
+      ],
+      [
+        -12,
+        11
+      ],
+      [
+        -14,
+        8
+      ],
+      [
+        -11,
+        3
+      ],
+      [
+        -9,
+        0
+      ],
+      [
+        -7,
+        -5
+      ],
+      [
+        -5,
+        -11
+      ],
+      [
+        -8,
+        -7
+      ],
+      [
+        -12,
+        -1
+      ],
+      [
+        -6,
+        -3
+      ],
+      [
+        -1,
+        -4
+      ],
+      [
+        -4,
+        -1
+      ],
+      [
+        -7,
+        5
+      ],
+      [
+        -8,
+        1
+      ],
+      [
+        -7,
+        -2
+      ],
+      [
+        -6,
+        -4
+      ],
+      [
+        -6,
+        -14
+      ],
+      [
+        -1,
+        -6
+      ],
+      [
+        -4,
+        -6
+      ],
+      [
+        -12,
+        -9
+      ],
+      [
+        -1,
+        -4
+      ],
+      [
+        -6,
+        -10
+      ],
+      [
+        -1,
+        -6
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        -2,
+        0
+      ],
+      [
+        -5,
+        6
+      ],
+      [
+        0,
+        9
+      ],
+      [
+        4,
+        10
+      ],
+      [
+        3,
+        5
+      ],
+      [
+        3,
+        0
+      ],
+      [
+        2,
+        5
+      ],
+      [
+        1,
+        9
+      ],
+      [
+        -1,
+        5
+      ],
+      [
+        -6,
+        -2
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -4,
+        -1
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -4,
+        -5
+      ],
+      [
+        -4,
+        -13
+      ],
+      [
+        -4,
+        -8
+      ],
+      [
+        -5,
+        -4
+      ],
+      [
+        -3,
+        4
+      ],
+      [
+        -2,
+        13
+      ],
+      [
+        0,
+        10
+      ],
+      [
+        2,
+        12
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        -2,
+        -4
+      ],
+      [
+        -3,
+        -10
+      ],
+      [
+        -4,
+        -22
+      ],
+      [
+        -3,
+        -7
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -6,
+        -13
+      ],
+      [
+        -8,
+        -24
+      ],
+      [
+        -8,
+        -22
+      ],
+      [
+        -10,
+        -22
+      ],
+      [
+        -6,
+        -12
+      ],
+      [
+        -2,
+        -2
+      ],
+      [
+        -1,
+        -4
+      ],
+      [
+        0,
+        -9
+      ]
+    ],
+    [
+      [
+        8090,
+        5386
+      ],
+      [
+        -2,
+        -7
+      ],
+      [
+        0,
+        -3
+      ],
+      [
+        -11,
+        -17
+      ],
+      [
+        -4,
+        -10
+      ],
+      [
+        -3,
+        -2
+      ],
+      [
+        -2,
+        7
+      ],
+      [
+        0,
+        6
+      ],
+      [
+        2,
+        4
+      ],
+      [
+        3,
+        6
+      ],
+      [
+        0,
+        9
+      ],
+      [
+        -1,
+        3
+      ],
+      [
+        -3,
+        -8
+      ],
+      [
+        2,
+        -1
+      ],
+      [
+        0,
+        -2
+      ],
+      [
+        0,
+        -2
+      ],
+      [
+        -13,
+        4
+      ],
+      [
+        -4,
+        6
+      ],
+      [
+        1,
+        8
+      ],
+      [
+        4,
+        10
+      ],
+      [
+        15,
+        23
+      ],
+      [
+        7,
+        6
+      ],
+      [
+        19,
+        9
+      ],
+      [
+        10,
+        3
+      ],
+      [
+        11,
+        0
+      ],
+      [
+        7,
+        -4
+      ],
+      [
+        5,
+        -6
+      ],
+      [
+        -5,
+        -4
+      ],
+      [
+        -20,
+        -4
+      ],
+      [
+        -1,
+        -1
+      ],
+      [
+        4,
+        -3
+      ],
+      [
+        1,
+        -3
+      ],
+      [
+        -4,
+        -6
+      ],
+      [
+        -18,
+        -21
+      ]
+    ],
+    [
+      [
+        8024,
+        5522
+      ],
+      [
+        -1,
+        -3
+      ],
+      [
+        4,
+        -1
+      ],
+      [
+        -1,
+        -2
+      ],
+      [
+        -4,
+        -3
+      ],
+      [
+        -10,
+        -5
+      ],
+      [
+        -6,
+        -2
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        0,
+        4
+      ],
+      [
+        3,
+        5
+      ],
+      [
+        0,
+        3
+      ],
+      [
+        -3,
+        0
+      ],
+      [
+        0,
+        3
+      ],
+      [
+        5,
+        4
+      ],
+      [
+        35,
+        29
+      ],
+      [
+        15,
+        10
+      ],
+      [
+        8,
+        4
+      ],
+      [
+        1,
+        -2
+      ],
+      [
+        -9,
+        -11
+      ],
+      [
+        -1,
+        -4
+      ],
+      [
+        0,
+        -3
+      ],
+      [
+        -3,
+        -6
+      ],
+      [
+        -25,
+        -20
+      ],
+      [
+        -4,
+        -2
+      ]
+    ],
+    [
+      [
+        7740,
+        5300
+      ],
+      [
+        -1,
+        0
+      ],
+      [
+        -6,
+        -10
+      ],
+      [
+        -3,
+        -7
+      ],
+      [
+        -6,
+        -2
+      ],
+      [
+        0,
+        -28
+      ],
+      [
+        0,
+        -27
+      ],
+      [
+        0,
+        -28
+      ],
+      [
+        0,
+        -27
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -4,
+        -6
+      ],
+      [
+        -5,
+        -2
+      ],
+      [
+        -24,
+        -23
+      ],
+      [
+        -4,
+        -6
+      ],
+      [
+        -5,
+        -15
+      ],
+      [
+        -8,
+        -17
+      ],
+      [
+        -2,
+        -9
+      ],
+      [
+        1,
+        -13
+      ],
+      [
+        12,
+        -9
+      ],
+      [
+        4,
+        -10
+      ],
+      [
+        3,
+        -11
+      ],
+      [
+        -1,
+        -10
+      ],
+      [
+        -6,
+        -20
+      ],
+      [
+        -1,
+        -8
+      ],
+      [
+        1,
+        -24
+      ],
+      [
+        -3,
+        -7
+      ],
+      [
+        2,
+        -20
+      ],
+      [
+        0,
+        -6
+      ],
+      [
+        -2,
+        -22
+      ],
+      [
+        -1,
+        -6
+      ],
+      [
+        3,
+        -11
+      ],
+      [
+        0,
+        -1
+      ],
+      [
+        11,
+        -16
+      ],
+      [
+        10,
+        -8
+      ],
+      [
+        8,
+        -3
+      ],
+      [
+        7,
+        -6
+      ],
+      [
+        5,
+        -11
+      ],
+      [
+        6,
+        -6
+      ],
+      [
+        9,
+        -4
+      ],
+      [
+        8,
+        -8
+      ],
+      [
+        13,
+        -22
+      ],
+      [
+        6,
+        -18
+      ],
+      [
+        12,
+        -12
+      ],
+      [
+        18,
+        -14
+      ],
+      [
+        12,
+        -12
+      ],
+      [
+        5,
+        -11
+      ],
+      [
+        4,
+        -26
+      ],
+      [
+        3,
+        -56
+      ]
+    ],
+    [
+      [
+        7350,
+        4678
+      ],
+      [
+        0,
+        43
+      ],
+      [
+        0,
+        43
+      ],
+      [
+        0,
+        43
+      ],
+      [
+        0,
+        43
+      ],
+      [
+        0,
+        42
+      ],
+      [
+        0,
+        43
+      ],
+      [
+        0,
+        43
+      ],
+      [
+        0,
+        43
+      ],
+      [
+        -7,
+        14
+      ],
+      [
+        -15,
+        11
+      ],
+      [
+        -4,
+        7
+      ],
+      [
+        -7,
+        17
+      ],
+      [
+        -3,
+        8
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        3,
+        7
+      ],
+      [
+        14,
+        18
+      ],
+      [
+        4,
+        9
+      ],
+      [
+        2,
+        8
+      ],
+      [
+        3,
+        19
+      ]
+    ],
+    [
+      [
+        7340,
+        5144
+      ],
+      [
+        -1,
+        14
+      ],
+      [
+        1,
+        23
+      ],
+      [
+        -3,
+        17
+      ],
+      [
+        0,
+        9
+      ],
+      [
+        -2,
+        10
+      ],
+      [
+        -10,
+        28
+      ],
+      [
+        -3,
+        22
+      ],
+      [
+        -2,
+        11
+      ],
+      [
+        -1,
+        29
+      ],
+      [
+        0,
+        8
+      ],
+      [
+        2,
+        15
+      ],
+      [
+        -4,
+        10
+      ],
+      [
+        -1,
+        9
+      ],
+      [
+        -2,
+        68
+      ],
+      [
+        -1,
+        9
+      ],
+      [
+        0,
+        32
+      ],
+      [
+        -8,
+        33
+      ],
+      [
+        -3,
+        11
+      ],
+      [
+        -2,
+        13
+      ],
+      [
+        0,
+        7
+      ],
+      [
+        -7,
+        22
+      ],
+      [
+        -4,
+        25
+      ],
+      [
+        1,
+        22
+      ],
+      [
+        -2,
+        16
+      ],
+      [
+        1,
+        12
+      ],
+      [
+        -2,
+        19
+      ],
+      [
+        2,
+        11
+      ],
+      [
+        0,
+        17
+      ],
+      [
+        -9,
+        59
+      ]
+    ],
+    [
+      [
+        7280,
+        5725
+      ],
+      [
+        11,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        39,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        22,
+        0
+      ],
+      [
+        0,
+        40
+      ],
+      [
+        0,
+        32
+      ],
+      [
+        20,
+        -4
+      ],
+      [
+        6,
+        -5
+      ],
+      [
+        1,
+        -3
+      ],
+      [
+        0,
+        -9
+      ],
+      [
+        1,
+        -27
+      ],
+      [
+        4,
+        -22
+      ],
+      [
+        8,
+        -26
+      ],
+      [
+        1,
+        -11
+      ],
+      [
+        2,
+        -6
+      ],
+      [
+        5,
+        -6
+      ],
+      [
+        19,
+        -8
+      ],
+      [
+        32,
+        -8
+      ],
+      [
+        19,
+        -10
+      ],
+      [
+        4,
+        -11
+      ],
+      [
+        8,
+        -5
+      ],
+      [
+        13,
+        2
+      ],
+      [
+        9,
+        5
+      ],
+      [
+        8,
+        11
+      ],
+      [
+        11,
+        2
+      ],
+      [
+        9,
+        -1
+      ],
+      [
+        9,
+        -1
+      ],
+      [
+        5,
+        -1
+      ],
+      [
+        15,
+        -9
+      ],
+      [
+        9,
+        -7
+      ],
+      [
+        14,
+        -12
+      ],
+      [
+        7,
+        -6
+      ],
+      [
+        4,
+        -13
+      ],
+      [
+        4,
+        -17
+      ],
+      [
+        6,
+        0
+      ],
+      [
+        4,
+        10
+      ],
+      [
+        12,
+        2
+      ],
+      [
+        15,
+        -7
+      ],
+      [
+        13,
+        -20
+      ],
+      [
+        19,
+        -18
+      ],
+      [
+        11,
+        -9
+      ],
+      [
+        12,
+        0
+      ],
+      [
+        15,
+        9
+      ],
+      [
+        16,
+        17
+      ],
+      [
+        11,
+        3
+      ],
+      [
+        7,
+        -2
+      ],
+      [
+        4,
+        -13
+      ],
+      [
+        5,
+        -5
+      ],
+      [
+        12,
+        2
+      ],
+      [
+        26,
+        -3
+      ],
+      [
+        21,
+        4
+      ],
+      [
+        4,
+        -8
+      ],
+      [
+        4,
+        -12
+      ],
+      [
+        9,
+        -4
+      ],
+      [
+        11,
+        4
+      ],
+      [
+        18,
+        -3
+      ],
+      [
+        -3,
+        -2
+      ],
+      [
+        -2,
+        1
+      ],
+      [
+        -4,
+        -3
+      ],
+      [
+        -4,
+        -6
+      ],
+      [
+        -10,
+        -9
+      ],
+      [
+        -15,
+        -11
+      ],
+      [
+        -18,
+        -11
+      ],
+      [
+        -36,
+        -18
+      ],
+      [
+        -22,
+        -20
+      ],
+      [
+        -10,
+        -12
+      ],
+      [
+        -39,
+        -59
+      ],
+      [
+        -23,
+        -31
+      ],
+      [
+        -38,
+        -44
+      ],
+      [
+        -3,
+        -6
+      ],
+      [
+        -1,
+        -5
+      ]
+    ],
+    [
+      [
+        7979,
+        3343
+      ],
+      [
+        -2,
+        -2
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        0,
+        1
+      ]
+    ],
+    [
+      [
+        7970,
+        3344
+      ],
+      [
+        1,
+        -15
+      ],
+      [
+        -1,
+        -10
+      ],
+      [
+        -5,
+        -4
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        2,
+        -7
+      ],
+      [
+        0,
+        -3
+      ],
+      [
+        -1,
+        -2
+      ],
+      [
+        -3,
+        -1
+      ],
+      [
+        -2,
+        -2
+      ],
+      [
+        -2,
+        -5
+      ],
+      [
+        4,
+        -10
+      ],
+      [
+        -1,
+        -12
+      ],
+      [
+        -5,
+        -14
+      ],
+      [
+        -1,
+        -6
+      ]
+    ],
+    [
+      [
+        7515,
+        3344
+      ],
+      [
+        0,
+        23
+      ],
+      [
+        0,
+        24
+      ],
+      [
+        0,
+        24
+      ],
+      [
+        0,
+        24
+      ]
+    ],
+    [
+      [
+        7449,
+        4011
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        -7,
+        16
+      ],
+      [
+        -2,
+        20
+      ],
+      [
+        -6,
+        12
+      ],
+      [
+        -7,
+        6
+      ],
+      [
+        -5,
+        13
+      ],
+      [
+        -2,
+        20
+      ],
+      [
+        -5,
+        20
+      ],
+      [
+        -3,
+        6
+      ]
+    ],
+    [
+      [
+        8059,
+        2145
+      ],
+      [
+        -1,
+        -2
+      ],
+      [
+        -8,
+        4
+      ],
+      [
+        -4,
+        4
+      ],
+      [
+        -1,
+        4
+      ],
+      [
+        13,
+        -7
+      ],
+      [
+        1,
+        -3
+      ]
+    ],
+    [
+      [
+        8074,
+        2175
+      ],
+      [
+        -27,
+        -3
+      ],
+      [
+        -11,
+        10
+      ],
+      [
+        -5,
+        2
+      ],
+      [
+        -3,
+        -1
+      ],
+      [
+        -13,
+        -9
+      ],
+      [
+        -15,
+        -6
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -5,
+        0
+      ],
+      [
+        -11,
+        -23
+      ],
+      [
+        -7,
+        -6
+      ]
+    ],
+    [
+      [
+        7903,
+        3058
+      ],
+      [
+        23,
+        0
+      ],
+      [
+        24,
+        0
+      ],
+      [
+        24,
+        0
+      ],
+      [
+        24,
+        -1
+      ],
+      [
+        24,
+        0
+      ],
+      [
+        24,
+        0
+      ],
+      [
+        24,
+        0
+      ],
+      [
+        24,
+        0
+      ]
+    ],
+    [
+      [
+        6670,
+        5144
+      ],
+      [
+        0,
+        -44
+      ],
+      [
+        0,
+        -45
+      ],
+      [
+        0,
+        -44
+      ],
+      [
+        1,
+        -44
+      ],
+      [
+        0,
+        -1
+      ],
+      [
+        0,
+        -1
+      ],
+      [
+        0,
+        -1
+      ],
+      [
+        -1,
+        0
+      ],
+      [
+        -1,
+        0
+      ],
+      [
+        -1,
+        0
+      ]
+    ],
+    [
+      [
+        6668,
+        4964
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -19,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -19,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -19,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -19,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -19,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -19,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -19,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -19,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -19,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        0,
+        -24
+      ],
+      [
+        0,
+        -24
+      ],
+      [
+        0,
+        -24
+      ],
+      [
+        0,
+        -23
+      ]
+    ],
+    [
+      [
+        5588,
+        5725
+      ],
+      [
+        16,
+        0
+      ],
+      [
+        39,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        39,
+        0
+      ],
+      [
+        8,
+        0
+      ],
+      [
+        30,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        39,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        39,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        39,
+        0
+      ],
+      [
+        29,
+        0
+      ],
+      [
+        9,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        39,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        39,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        39,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        39,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        29,
+        0
+      ]
+    ],
+    [
+      [
+        6668,
+        5725
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        1,
+        -37
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -37
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -37
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        1,
+        -37
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -36
+      ],
+      [
+        0,
+        -37
+      ],
+      [
+        0,
+        -36
+      ]
+    ],
+    [
+      [
+        9140,
+        2992
+      ],
+      [
+        -2,
+        -1
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -5,
+        4
+      ],
+      [
+        -1,
+        3
+      ],
+      [
+        5,
+        -1
+      ],
+      [
+        7,
+        -7
+      ]
+    ],
+    [
+      [
+        9143,
+        2989
+      ],
+      [
+        -2,
+        -2
+      ],
+      [
+        8,
+        24
+      ],
+      [
+        17,
+        30
+      ],
+      [
+        4,
+        5
+      ],
+      [
+        -14,
+        -26
+      ],
+      [
+        -13,
+        -31
+      ]
+    ],
+    [
+      [
+        9208,
+        3094
+      ],
+      [
+        -16,
+        -14
+      ],
+      [
+        -2,
+        1
+      ],
+      [
+        11,
+        10
+      ],
+      [
+        7,
+        3
+      ]
+    ],
+    [
+      [
+        9230,
+        3103
+      ],
+      [
+        -12,
+        -5
+      ],
+      [
+        -2,
+        2
+      ],
+      [
+        14,
+        11
+      ],
+      [
+        5,
+        38
+      ],
+      [
+        0,
+        18
+      ],
+      [
+        -2,
+        31
+      ],
+      [
+        0,
+        6
+      ],
+      [
+        3,
+        -10
+      ],
+      [
+        1,
+        -29
+      ],
+      [
+        0,
+        -22
+      ],
+      [
+        -4,
+        -32
+      ],
+      [
+        -3,
+        -8
+      ]
+    ],
+    [
+      [
+        9221,
+        3221
+      ],
+      [
+        -1,
+        -4
+      ],
+      [
+        -6,
+        21
+      ],
+      [
+        6,
+        -7
+      ],
+      [
+        1,
+        -6
+      ],
+      [
+        0,
+        -4
+      ]
+    ],
+    [
+      [
+        9199,
+        3353
+      ],
+      [
+        2,
+        0
+      ]
+    ],
+    [
+      [
+        9201,
+        3353
+      ],
+      [
+        9,
+        -61
+      ],
+      [
+        18,
+        -67
+      ],
+      [
+        2,
+        -11
+      ],
+      [
+        -4,
+        10
+      ],
+      [
+        -13,
+        44
+      ],
+      [
+        -7,
+        32
+      ],
+      [
+        -7,
+        53
+      ]
+    ],
+    [
+      [
+        8958,
+        2843
+      ],
+      [
+        -13,
+        23
+      ],
+      [
+        -12,
+        22
+      ],
+      [
+        -12,
+        22
+      ],
+      [
+        -12,
+        22
+      ],
+      [
+        -12,
+        21
+      ],
+      [
+        -13,
+        22
+      ],
+      [
+        -12,
+        22
+      ],
+      [
+        -12,
+        22
+      ],
+      [
+        -13,
+        0
+      ],
+      [
+        -12,
+        1
+      ],
+      [
+        -13,
+        1
+      ],
+      [
+        -13,
+        1
+      ],
+      [
+        -12,
+        1
+      ],
+      [
+        -13,
+        0
+      ],
+      [
+        -13,
+        1
+      ],
+      [
+        -13,
+        1
+      ],
+      [
+        0,
+        15
+      ],
+      [
+        0,
+        10
+      ],
+      [
+        -8,
+        19
+      ],
+      [
+        -5,
+        10
+      ],
+      [
+        -10,
+        -9
+      ],
+      [
+        -1,
+        4
+      ],
+      [
+        1,
+        8
+      ],
+      [
+        -1,
+        3
+      ],
+      [
+        -3,
+        2
+      ],
+      [
+        -14,
+        1
+      ],
+      [
+        -14,
+        1
+      ],
+      [
+        -15,
+        1
+      ],
+      [
+        -14,
+        2
+      ],
+      [
+        -14,
+        1
+      ],
+      [
+        -14,
+        1
+      ],
+      [
+        -15,
+        1
+      ],
+      [
+        -14,
+        1
+      ],
+      [
+        -3,
+        2
+      ],
+      [
+        -7,
+        -7
+      ],
+      [
+        -16,
+        -9
+      ],
+      [
+        -9,
+        -9
+      ],
+      [
+        -3,
+        1
+      ],
+      [
+        -14,
+        -8
+      ],
+      [
+        -14,
+        -8
+      ],
+      [
+        -2,
+        0
+      ]
+    ],
+    [
+      [
+        8440,
+        3055
+      ],
+      [
+        4,
+        41
+      ],
+      [
+        2,
+        9
+      ],
+      [
+        2,
+        2
+      ],
+      [
+        10,
+        0
+      ],
+      [
+        6,
+        5
+      ],
+      [
+        5,
+        24
+      ],
+      [
+        12,
+        20
+      ],
+      [
+        5,
+        4
+      ],
+      [
+        8,
+        4
+      ],
+      [
+        19,
+        5
+      ],
+      [
+        21,
+        19
+      ],
+      [
+        14,
+        17
+      ],
+      [
+        12,
+        5
+      ],
+      [
+        4,
+        7
+      ],
+      [
+        2,
+        8
+      ],
+      [
+        2,
+        12
+      ],
+      [
+        1,
+        2
+      ],
+      [
+        7,
+        -1
+      ],
+      [
+        5,
+        10
+      ],
+      [
+        5,
+        6
+      ],
+      [
+        5,
+        3
+      ],
+      [
+        3,
+        0
+      ],
+      [
+        1,
+        -3
+      ],
+      [
+        1,
+        -8
+      ],
+      [
+        1,
+        -3
+      ],
+      [
+        2,
+        0
+      ],
+      [
+        3,
+        2
+      ],
+      [
+        4,
+        5
+      ],
+      [
+        10,
+        17
+      ],
+      [
+        7,
+        7
+      ],
+      [
+        10,
+        3
+      ],
+      [
+        7,
+        -9
+      ],
+      [
+        5,
+        4
+      ],
+      [
+        12,
+        35
+      ],
+      [
+        6,
+        6
+      ],
+      [
+        3,
+        2
+      ],
+      [
+        7,
+        1
+      ],
+      [
+        0,
+        10
+      ],
+      [
+        2,
+        14
+      ],
+      [
+        1,
+        10
+      ],
+      [
+        4,
+        15
+      ]
+    ],
+    [
+      [
+        8680,
+        3365
+      ],
+      [
+        1,
+        -3
+      ],
+      [
+        33,
+        -1
+      ],
+      [
+        32,
+        0
+      ],
+      [
+        33,
+        -1
+      ],
+      [
+        32,
+        -1
+      ],
+      [
+        33,
+        0
+      ],
+      [
+        33,
+        -1
+      ],
+      [
+        32,
+        0
+      ],
+      [
+        33,
+        -1
+      ],
+      [
+        32,
+        0
+      ],
+      [
+        33,
+        -1
+      ],
+      [
+        32,
+        0
+      ],
+      [
+        33,
+        -1
+      ],
+      [
+        32,
+        0
+      ],
+      [
+        33,
+        -1
+      ],
+      [
+        32,
+        0
+      ],
+      [
+        23,
+        -1
+      ]
+    ],
+    [
+      [
+        9192,
+        3353
+      ],
+      [
+        -3,
+        -15
+      ],
+      [
+        2,
+        -8
+      ],
+      [
+        4,
+        -9
+      ],
+      [
+        6,
+        -22
+      ],
+      [
+        4,
+        -29
+      ],
+      [
+        -6,
+        12
+      ],
+      [
+        -6,
+        6
+      ],
+      [
+        -9,
+        5
+      ],
+      [
+        -9,
+        8
+      ],
+      [
+        1,
+        -12
+      ],
+      [
+        -1,
+        -13
+      ],
+      [
+        -6,
+        4
+      ],
+      [
+        -5,
+        4
+      ],
+      [
+        4,
+        -14
+      ],
+      [
+        -8,
+        4
+      ],
+      [
+        -6,
+        0
+      ],
+      [
+        -4,
+        -13
+      ],
+      [
+        -4,
+        -8
+      ],
+      [
+        -8,
+        -2
+      ],
+      [
+        -10,
+        11
+      ],
+      [
+        -4,
+        14
+      ],
+      [
+        -1,
+        16
+      ],
+      [
+        -1,
+        -18
+      ],
+      [
+        2,
+        -19
+      ],
+      [
+        -1,
+        -15
+      ],
+      [
+        11,
+        -3
+      ],
+      [
+        9,
+        3
+      ],
+      [
+        13,
+        -1
+      ],
+      [
+        9,
+        3
+      ],
+      [
+        5,
+        4
+      ],
+      [
+        12,
+        -4
+      ],
+      [
+        1,
+        -17
+      ],
+      [
+        -1,
+        -17
+      ],
+      [
+        -1,
+        -19
+      ],
+      [
+        4,
+        0
+      ],
+      [
+        4,
+        6
+      ],
+      [
+        2,
+        33
+      ],
+      [
+        11,
+        13
+      ],
+      [
+        4,
+        -1
+      ],
+      [
+        3,
+        -11
+      ],
+      [
+        1,
+        -11
+      ],
+      [
+        2,
+        -15
+      ],
+      [
+        -3,
+        -22
+      ],
+      [
+        -17,
+        -27
+      ],
+      [
+        -13,
+        -24
+      ],
+      [
+        -6,
+        -5
+      ],
+      [
+        -9,
+        3
+      ],
+      [
+        -10,
+        6
+      ],
+      [
+        -6,
+        1
+      ],
+      [
+        -3,
+        -2
+      ],
+      [
+        -3,
+        8
+      ],
+      [
+        -1,
+        13
+      ],
+      [
+        -4,
+        5
+      ],
+      [
+        -3,
+        -1
+      ],
+      [
+        -2,
+        -14
+      ],
+      [
+        -10,
+        -4
+      ],
+      [
+        -13,
+        6
+      ],
+      [
+        -14,
+        12
+      ],
+      [
+        6,
+        -13
+      ],
+      [
+        34,
+        -25
+      ],
+      [
+        4,
+        -4
+      ],
+      [
+        3,
+        -7
+      ],
+      [
+        -4,
+        -11
+      ],
+      [
+        -4,
+        -11
+      ],
+      [
+        -1,
+        -10
+      ],
+      [
+        -1,
+        -6
+      ],
+      [
+        -13,
+        -15
+      ],
+      [
+        -8,
+        2
+      ],
+      [
+        -19,
+        29
+      ],
+      [
+        9,
+        -25
+      ],
+      [
+        7,
+        -10
+      ],
+      [
+        14,
+        -6
+      ],
+      [
+        26,
+        9
+      ],
+      [
+        8,
+        -10
+      ],
+      [
+        -7,
+        -17
+      ],
+      [
+        -7,
+        -13
+      ],
+      [
+        -9,
+        -1
+      ],
+      [
+        -8,
+        -4
+      ],
+      [
+        -2,
+        -8
+      ],
+      [
+        -6,
+        -1
+      ],
+      [
+        -9,
+        0
+      ],
+      [
+        -14,
+        -1
+      ],
+      [
+        -7,
+        2
+      ],
+      [
+        -11,
+        -18
+      ],
+      [
+        -4,
+        -2
+      ],
+      [
+        -6,
+        3
+      ],
+      [
+        -2,
+        14
+      ],
+      [
+        -2,
+        7
+      ],
+      [
+        0,
+        -26
+      ],
+      [
+        1,
+        -7
+      ],
+      [
+        2,
+        -6
+      ],
+      [
+        -13,
+        -14
+      ],
+      [
+        -12,
+        -18
+      ],
+      [
+        -4,
+        -5
+      ],
+      [
+        -5,
+        -9
+      ],
+      [
+        -10,
+        -26
+      ],
+      [
+        -2,
+        -19
+      ],
+      [
+        -4,
+        -21
+      ],
+      [
+        0,
+        10
+      ],
+      [
+        0,
+        16
+      ],
+      [
+        -2,
+        18
+      ],
+      [
+        -2,
+        -33
+      ],
+      [
+        -3,
+        -16
+      ],
+      [
+        -36,
+        1
+      ],
+      [
+        -14,
+        -8
+      ]
+    ],
+    [
+      [
+        7340,
+        5144
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -21,
+        0
+      ]
+    ],
+    [
+      [
+        6668,
+        5725
+      ],
+      [
+        10,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        39,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        39,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        39,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        39,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        39,
+        0
+      ],
+      [
+        27,
+        0
+      ]
+    ],
+    [
+      [
+        6669,
+        4202
+      ],
+      [
+        0,
+        47
+      ],
+      [
+        0,
+        48
+      ],
+      [
+        0,
+        48
+      ],
+      [
+        0,
+        47
+      ],
+      [
+        0,
+        48
+      ],
+      [
+        0,
+        48
+      ],
+      [
+        0,
+        47
+      ],
+      [
+        -1,
+        48
+      ]
+    ],
+    [
+      [
+        6668,
+        4583
+      ],
+      [
+        32,
+        0
+      ],
+      [
+        31,
+        0
+      ],
+      [
+        31,
+        0
+      ],
+      [
+        31,
+        0
+      ],
+      [
+        31,
+        0
+      ],
+      [
+        31,
+        0
+      ],
+      [
+        31,
+        0
+      ],
+      [
+        31,
+        0
+      ],
+      [
+        32,
+        0
+      ],
+      [
+        31,
+        0
+      ],
+      [
+        31,
+        0
+      ],
+      [
+        31,
+        0
+      ],
+      [
+        31,
+        0
+      ],
+      [
+        31,
+        0
+      ],
+      [
+        31,
+        0
+      ],
+      [
+        36,
+        0
+      ],
+      [
+        27,
+        -28
+      ],
+      [
+        16,
+        -9
+      ],
+      [
+        7,
+        8
+      ],
+      [
+        17,
+        5
+      ],
+      [
+        25,
+        1
+      ],
+      [
+        16,
+        -4
+      ],
+      [
+        7,
+        -9
+      ],
+      [
+        13,
+        -10
+      ],
+      [
+        19,
+        -11
+      ],
+      [
+        12,
+        -12
+      ],
+      [
+        3,
+        -13
+      ],
+      [
+        7,
+        -9
+      ],
+      [
+        7,
+        -2
+      ]
+    ],
+    [
+      [
+        9662,
+        4596
+      ],
+      [
+        -4,
+        -25
+      ],
+      [
+        -2,
+        -12
+      ]
+    ],
+    [
+      [
+        9506,
+        4531
+      ],
+      [
+        -1,
+        7
+      ],
+      [
+        -5,
+        12
+      ],
+      [
+        -1,
+        5
+      ],
+      [
+        0,
+        6
+      ],
+      [
+        3,
+        15
+      ],
+      [
+        2,
+        5
+      ],
+      [
+        2,
+        9
+      ],
+      [
+        3,
+        36
+      ],
+      [
+        3,
+        20
+      ],
+      [
+        2,
+        38
+      ],
+      [
+        2,
+        11
+      ],
+      [
+        2,
+        6
+      ],
+      [
+        4,
+        18
+      ],
+      [
+        6,
+        15
+      ],
+      [
+        5,
+        17
+      ],
+      [
+        5,
+        16
+      ],
+      [
+        1,
+        9
+      ],
+      [
+        4,
+        20
+      ],
+      [
+        2,
+        35
+      ],
+      [
+        3,
+        5
+      ],
+      [
+        12,
+        5
+      ],
+      [
+        4,
+        4
+      ],
+      [
+        13,
+        14
+      ],
+      [
+        4,
+        6
+      ],
+      [
+        2,
+        6
+      ],
+      [
+        2,
+        10
+      ],
+      [
+        2,
+        3
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        -4,
+        23
+      ],
+      [
+        -1,
+        9
+      ],
+      [
+        10,
+        26
+      ],
+      [
+        -2,
+        15
+      ],
+      [
+        2,
+        4
+      ]
+    ],
+    [
+      [
+        9592,
+        4966
+      ],
+      [
+        9,
+        36
+      ],
+      [
+        8,
+        17
+      ],
+      [
+        11,
+        -5
+      ],
+      [
+        6,
+        0
+      ],
+      [
+        5,
+        6
+      ]
+    ],
+    [
+      [
+        9356,
+        3950
+      ],
+      [
+        -10,
+        -29
+      ],
+      [
+        0,
+        6
+      ],
+      [
+        13,
+        35
+      ],
+      [
+        -3,
+        -12
+      ]
+    ],
+    [
+      [
+        9272,
+        4008
+      ],
+      [
+        4,
+        6
+      ],
+      [
+        11,
+        12
+      ],
+      [
+        15,
+        14
+      ],
+      [
+        -21,
+        48
+      ],
+      [
+        -6,
+        3
+      ],
+      [
+        -5,
+        23
+      ],
+      [
+        -7,
+        7
+      ],
+      [
+        -1,
+        3
+      ],
+      [
+        -1,
+        18
+      ],
+      [
+        1,
+        11
+      ],
+      [
+        1,
+        6
+      ],
+      [
+        5,
+        5
+      ],
+      [
+        4,
+        10
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        -5,
+        17
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        9,
+        10
+      ],
+      [
+        10,
+        20
+      ],
+      [
+        7,
+        22
+      ],
+      [
+        2,
+        6
+      ],
+      [
+        4,
+        4
+      ],
+      [
+        7,
+        7
+      ]
+    ],
+    [
+      [
+        9306,
+        4270
+      ],
+      [
+        8,
+        -9
+      ],
+      [
+        9,
+        -9
+      ],
+      [
+        9,
+        -9
+      ],
+      [
+        9,
+        -8
+      ],
+      [
+        9,
+        -9
+      ],
+      [
+        9,
+        -9
+      ],
+      [
+        9,
+        -8
+      ],
+      [
+        9,
+        -9
+      ]
+    ],
+    [
+      [
+        9377,
+        4200
+      ],
+      [
+        -2,
+        -15
+      ],
+      [
+        -9,
+        -30
+      ],
+      [
+        -4,
+        -7
+      ],
+      [
+        -4,
+        -6
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -3,
+        -5
+      ],
+      [
+        -4,
+        -7
+      ],
+      [
+        -3,
+        -15
+      ],
+      [
+        2,
+        -14
+      ],
+      [
+        17,
+        -5
+      ],
+      [
+        5,
+        4
+      ],
+      [
+        2,
+        -10
+      ],
+      [
+        1,
+        -14
+      ],
+      [
+        -1,
+        -14
+      ],
+      [
+        -3,
+        -16
+      ],
+      [
+        -2,
+        -18
+      ],
+      [
+        -2,
+        -29
+      ],
+      [
+        -3,
+        -26
+      ],
+      [
+        0,
+        8
+      ],
+      [
+        2,
+        31
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -2,
+        -7
+      ],
+      [
+        -5,
+        -40
+      ],
+      [
+        -8,
+        -22
+      ],
+      [
+        -6,
+        -15
+      ],
+      [
+        -7,
+        3
+      ],
+      [
+        1,
+        -12
+      ],
+      [
+        -1,
+        -6
+      ],
+      [
+        -2,
+        -13
+      ],
+      [
+        -4,
+        -9
+      ],
+      [
+        -4,
+        1
+      ],
+      [
+        -6,
+        -6
+      ],
+      [
+        -2,
+        -4
+      ],
+      [
+        0,
+        -9
+      ],
+      [
+        -4,
+        -7
+      ],
+      [
+        -13,
+        -40
+      ],
+      [
+        -12,
+        -11
+      ],
+      [
+        -2,
+        2
+      ],
+      [
+        3,
+        18
+      ],
+      [
+        2,
+        19
+      ],
+      [
+        -7,
+        8
+      ],
+      [
+        -7,
+        4
+      ],
+      [
+        -8,
+        0
+      ],
+      [
+        -8,
+        14
+      ],
+      [
+        -11,
+        11
+      ],
+      [
+        -16,
+        29
+      ],
+      [
+        1,
+        8
+      ],
+      [
+        -1,
+        13
+      ],
+      [
+        5,
+        21
+      ],
+      [
+        5,
+        15
+      ],
+      [
+        6,
+        7
+      ],
+      [
+        18,
+        8
+      ],
+      [
+        4,
+        12
+      ],
+      [
+        3,
+        10
+      ]
+    ],
+    [
+      [
+        6761,
+        3344
+      ],
+      [
+        -4,
+        0
+      ],
+      [
+        0,
+        -54
+      ],
+      [
+        0,
+        -54
+      ],
+      [
+        0,
+        -53
+      ],
+      [
+        0,
+        -54
+      ],
+      [
+        0,
+        -53
+      ],
+      [
+        -1,
+        -54
+      ],
+      [
+        0,
+        -54
+      ],
+      [
+        0,
+        -53
+      ],
+      [
+        0,
+        -54
+      ],
+      [
+        0,
+        -53
+      ],
+      [
+        0,
+        -54
+      ],
+      [
+        0,
+        -54
+      ],
+      [
+        -1,
+        -53
+      ],
+      [
+        0,
+        -54
+      ],
+      [
+        0,
+        -53
+      ],
+      [
+        0,
+        -54
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -21,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -1,
+        0
+      ],
+      [
+        9,
+        -35
+      ],
+      [
+        11,
+        -10
+      ]
+    ],
+    [
+      [
+        6451,
+        2441
+      ],
+      [
+        -1,
+        1
+      ],
+      [
+        -19,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        1
+      ],
+      [
+        -19,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        -20,
+        0
+      ],
+      [
+        0,
+        -21
+      ],
+      [
+        0,
+        -21
+      ],
+      [
+        0,
+        -22
+      ],
+      [
+        0,
+        -21
+      ],
+      [
+        -32,
+        0
+      ],
+      [
+        -31,
+        -1
+      ],
+      [
+        -12,
+        0
+      ]
+    ],
+    [
+      [
+        6761,
+        3439
+      ],
+      [
+        0,
+        -24
+      ],
+      [
+        0,
+        -24
+      ],
+      [
+        0,
+        -23
+      ],
+      [
+        0,
+        -24
+      ]
+    ],
+    [
+      [
+        5232,
+        4392
+      ],
+      [
+        34,
+        0
+      ],
+      [
+        33,
+        0
+      ],
+      [
+        34,
+        0
+      ],
+      [
+        34,
+        0
+      ],
+      [
+        33,
+        0
+      ],
+      [
+        34,
+        0
+      ],
+      [
+        33,
+        0
+      ],
+      [
+        34,
+        0
+      ]
+    ],
+    [
+      [
+        5768,
+        4392
+      ],
+      [
+        0,
+        -29
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -29
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -29
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -29
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -29
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -29
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -29
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -30
+      ],
+      [
+        0,
+        -29
+      ]
+    ],
+    [
+      [
+        9352,
+        4110
+      ],
+      [
+        -5,
+        0
+      ],
+      [
+        5,
+        18
+      ],
+      [
+        7,
+        8
+      ],
+      [
+        3,
+        -1
+      ],
+      [
+        0,
+        -7
+      ],
+      [
+        -1,
+        -5
+      ],
+      [
+        -5,
+        -9
+      ],
+      [
+        -4,
+        -4
+      ]
+    ],
+    [
+      [
+        9502,
+        4199
+      ],
+      [
+        -6,
+        -13
+      ],
+      [
+        6,
+        -1
+      ],
+      [
+        5,
+        4
+      ],
+      [
+        4,
+        7
+      ],
+      [
+        11,
+        10
+      ],
+      [
+        10,
+        4
+      ],
+      [
+        3,
+        1
+      ],
+      [
+        4,
+        -7
+      ],
+      [
+        9,
+        6
+      ],
+      [
+        9,
+        3
+      ],
+      [
+        -39,
+        -32
+      ],
+      [
+        -8,
+        -3
+      ],
+      [
+        -12,
+        -10
+      ],
+      [
+        -11,
+        -6
+      ],
+      [
+        -7,
+        -3
+      ],
+      [
+        -39,
+        -23
+      ],
+      [
+        -3,
+        -1
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -31,
+        -12
+      ],
+      [
+        -14,
+        -1
+      ],
+      [
+        -12,
+        -4
+      ],
+      [
+        9,
+        9
+      ],
+      [
+        0,
+        4
+      ],
+      [
+        -2,
+        3
+      ],
+      [
+        -4,
+        -1
+      ],
+      [
+        -5,
+        -10
+      ],
+      [
+        -8,
+        -3
+      ],
+      [
+        -1,
+        11
+      ],
+      [
+        2,
+        8
+      ],
+      [
+        4,
+        8
+      ],
+      [
+        7,
+        13
+      ],
+      [
+        11,
+        8
+      ],
+      [
+        6,
+        7
+      ],
+      [
+        4,
+        -6
+      ],
+      [
+        1,
+        8
+      ],
+      [
+        3,
+        5
+      ],
+      [
+        3,
+        2
+      ],
+      [
+        8,
+        0
+      ],
+      [
+        4,
+        1
+      ],
+      [
+        3,
+        3
+      ],
+      [
+        3,
+        1
+      ],
+      [
+        8,
+        -4
+      ],
+      [
+        9,
+        1
+      ],
+      [
+        6,
+        5
+      ],
+      [
+        7,
+        2
+      ],
+      [
+        19,
+        1
+      ],
+      [
+        18,
+        4
+      ],
+      [
+        7,
+        7
+      ],
+      [
+        16,
+        18
+      ],
+      [
+        9,
+        6
+      ],
+      [
+        -14,
+        -22
+      ],
+      [
+        -8,
+        -10
+      ]
+    ],
+    [
+      [
+        8925,
+        4587
+      ],
+      [
+        -3,
+        -6
+      ],
+      [
+        -2,
+        0
+      ],
+      [
+        -2,
+        2
+      ],
+      [
+        -1,
+        4
+      ],
+      [
+        1,
+        6
+      ],
+      [
+        2,
+        2
+      ],
+      [
+        6,
+        -2
+      ],
+      [
+        1,
+        -2
+      ],
+      [
+        -2,
+        -4
+      ]
+    ],
+    [
+      [
+        9165,
+        4772
+      ],
+      [
+        -1,
+        -1
+      ],
+      [
+        0,
+        4
+      ],
+      [
+        1,
+        3
+      ],
+      [
+        3,
+        1
+      ],
+      [
+        0,
+        -2
+      ],
+      [
+        -3,
+        -5
+      ]
+    ],
+    [
+      [
+        9179,
+        4826
+      ],
+      [
+        -3,
+        -1
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        1,
+        2
+      ],
+      [
+        2,
+        3
+      ],
+      [
+        4,
+        0
+      ],
+      [
+        -1,
+        -2
+      ],
+      [
+        -2,
+        -4
+      ]
+    ],
+    [
+      [
+        9402,
+        4200
+      ],
+      [
+        -4,
+        -5
+      ],
+      [
+        -10,
+        -17
+      ],
+      [
+        -6,
+        -9
+      ],
+      [
+        -6,
+        -3
+      ],
+      [
+        -3,
+        -7
+      ],
+      [
+        -3,
+        -5
+      ],
+      [
+        3,
+        17
+      ],
+      [
+        4,
+        14
+      ],
+      [
+        3,
+        27
+      ],
+      [
+        -1,
+        22
+      ],
+      [
+        -4,
+        9
+      ],
+      [
+        -4,
+        6
+      ],
+      [
+        5,
+        -22
+      ],
+      [
+        1,
+        -26
+      ],
+      [
+        0,
+        -1
+      ]
+    ],
+    [
+      [
+        9306,
+        4270
+      ],
+      [
+        -2,
+        7
+      ],
+      [
+        -4,
+        5
+      ],
+      [
+        -16,
+        10
+      ],
+      [
+        -4,
+        6
+      ],
+      [
+        -4,
+        9
+      ],
+      [
+        -2,
+        10
+      ],
+      [
+        -1,
+        12
+      ],
+      [
+        0,
+        8
+      ],
+      [
+        1,
+        10
+      ],
+      [
+        -4,
+        7
+      ],
+      [
+        0,
+        6
+      ],
+      [
+        -2,
+        4
+      ],
+      [
+        -11,
+        8
+      ],
+      [
+        -3,
+        10
+      ],
+      [
+        -7,
+        10
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -13,
+        0
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -13,
+        0
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -13,
+        0
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -13,
+        0
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -13,
+        0
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -13,
+        0
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -13,
+        0
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -13,
+        0
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -13,
+        0
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -13,
+        0
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -13,
+        0
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -13,
+        0
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -13,
+        0
+      ],
+      [
+        0,
+        26
+      ],
+      [
+        0,
+        26
+      ],
+      [
+        0,
+        1
+      ]
+    ],
+    [
+      [
+        8850,
+        4445
+      ],
+      [
+        6,
+        4
+      ],
+      [
+        17,
+        18
+      ],
+      [
+        8,
+        12
+      ],
+      [
+        10,
+        11
+      ],
+      [
+        9,
+        8
+      ],
+      [
+        8,
+        11
+      ],
+      [
+        5,
+        13
+      ],
+      [
+        6,
+        9
+      ],
+      [
+        7,
+        7
+      ],
+      [
+        4,
+        6
+      ],
+      [
+        0,
+        7
+      ],
+      [
+        -1,
+        10
+      ],
+      [
+        -3,
+        12
+      ],
+      [
+        0,
+        9
+      ],
+      [
+        2,
+        7
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        -14,
+        7
+      ],
+      [
+        1,
+        33
+      ],
+      [
+        -1,
+        1
+      ],
+      [
+        1,
+        0
+      ],
+      [
+        33,
+        15
+      ],
+      [
+        21,
+        5
+      ],
+      [
+        25,
+        1
+      ],
+      [
+        30,
+        -7
+      ],
+      [
+        12,
+        -7
+      ],
+      [
+        8,
+        -8
+      ],
+      [
+        8,
+        -2
+      ],
+      [
+        10,
+        4
+      ],
+      [
+        13,
+        1
+      ],
+      [
+        18,
+        -1
+      ],
+      [
+        9,
+        -2
+      ],
+      [
+        1,
+        -3
+      ],
+      [
+        1,
+        1
+      ],
+      [
+        1,
+        4
+      ],
+      [
+        5,
+        5
+      ],
+      [
+        13,
+        6
+      ],
+      [
+        2,
+        -1
+      ],
+      [
+        2,
+        4
+      ],
+      [
+        4,
+        8
+      ],
+      [
+        6,
+        9
+      ],
+      [
+        10,
+        10
+      ],
+      [
+        9,
+        6
+      ],
+      [
+        8,
+        0
+      ],
+      [
+        5,
+        3
+      ],
+      [
+        2,
+        4
+      ],
+      [
+        1,
+        4
+      ],
+      [
+        -1,
+        4
+      ],
+      [
+        1,
+        4
+      ],
+      [
+        0,
+        2
+      ],
+      [
+        0,
+        1
+      ],
+      [
+        -1,
+        4
+      ],
+      [
+        -1,
+        16
+      ],
+      [
+        -2,
+        8
+      ],
+      [
+        -2,
+        6
+      ],
+      [
+        -2,
+        4
+      ],
+      [
+        0,
+        3
+      ],
+      [
+        5,
+        5
+      ],
+      [
+        -1,
+        -4
+      ],
+      [
+        2,
+        -2
+      ],
+      [
+        2,
+        2
+      ],
+      [
+        5,
+        10
+      ],
+      [
+        0,
+        4
+      ],
+      [
+        4,
+        4
+      ],
+      [
+        2,
+        6
+      ],
+      [
+        -3,
+        1
+      ],
+      [
+        -6,
+        -2
+      ],
+      [
+        -2,
+        2
+      ],
+      [
+        4,
+        8
+      ],
+      [
+        -1,
+        5
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        -2,
+        0
+      ],
+      [
+        -8,
+        -7
+      ],
+      [
+        -2,
+        0
+      ],
+      [
+        0,
+        3
+      ],
+      [
+        -4,
+        9
+      ],
+      [
+        10,
+        14
+      ],
+      [
+        37,
+        41
+      ],
+      [
+        3,
+        6
+      ],
+      [
+        2,
+        6
+      ],
+      [
+        -1,
+        5
+      ],
+      [
+        -1,
+        1
+      ],
+      [
+        0,
+        1
+      ],
+      [
+        35,
+        53
+      ],
+      [
+        20,
+        24
+      ],
+      [
+        17,
+        13
+      ],
+      [
+        12,
+        7
+      ],
+      [
+        9,
+        -1
+      ],
+      [
+        5,
+        1
+      ],
+      [
+        4,
+        0
+      ],
+      [
+        21,
+        0
+      ],
+      [
+        37,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        22,
+        0
+      ]
+    ],
+    [
+      [
+        9427,
+        4965
+      ],
+      [
+        0,
+        -13
+      ],
+      [
+        -2,
+        -15
+      ],
+      [
+        2,
+        -16
+      ],
+      [
+        -2,
+        -34
+      ],
+      [
+        6,
+        -26
+      ],
+      [
+        -2,
+        -17
+      ],
+      [
+        1,
+        -19
+      ],
+      [
+        -1,
+        -5
+      ],
+      [
+        -5,
+        -11
+      ],
+      [
+        -2,
+        -11
+      ],
+      [
+        -2,
+        -10
+      ],
+      [
+        0,
+        -7
+      ],
+      [
+        4,
+        -31
+      ],
+      [
+        1,
+        -14
+      ],
+      [
+        0,
+        -8
+      ],
+      [
+        -4,
+        -26
+      ],
+      [
+        0,
+        -7
+      ],
+      [
+        1,
+        -2
+      ],
+      [
+        1,
+        0
+      ],
+      [
+        4,
+        8
+      ],
+      [
+        2,
+        1
+      ],
+      [
+        2,
+        -2
+      ],
+      [
+        5,
+        -12
+      ],
+      [
+        0,
+        -21
+      ],
+      [
+        0,
+        -16
+      ],
+      [
+        -1,
+        -18
+      ],
+      [
+        0,
+        -26
+      ],
+      [
+        0,
+        -19
+      ],
+      [
+        0,
+        -18
+      ],
+      [
+        -1,
+        -13
+      ],
+      [
+        -1,
+        -10
+      ],
+      [
+        3,
+        -11
+      ]
+    ],
+    [
+      [
+        8782,
+        4134
+      ],
+      [
+        -10,
+        -8
+      ],
+      [
+        -2,
+        -8
+      ],
+      [
+        3,
+        -10
+      ],
+      [
+        2,
+        -12
+      ],
+      [
+        0,
+        -16
+      ],
+      [
+        -6,
+        -34
+      ],
+      [
+        -12,
+        -53
+      ],
+      [
+        -6,
+        -33
+      ],
+      [
+        -1,
+        -13
+      ],
+      [
+        -8,
+        -18
+      ],
+      [
+        -15,
+        -22
+      ],
+      [
+        -12,
+        -13
+      ],
+      [
+        -6,
+        -5
+      ],
+      [
+        -5,
+        1
+      ],
+      [
+        -4,
+        5
+      ],
+      [
+        -5,
+        -4
+      ],
+      [
+        -6,
+        -12
+      ],
+      [
+        -4,
+        -7
+      ],
+      [
+        -5,
+        0
+      ],
+      [
+        -4,
+        -8
+      ],
+      [
+        -3,
+        -16
+      ],
+      [
+        -3,
+        -9
+      ],
+      [
+        -3,
+        -2
+      ],
+      [
+        0,
+        -8
+      ],
+      [
+        2,
+        -14
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        -1,
+        0
+      ],
+      [
+        -2,
+        1
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -3,
+        -8
+      ],
+      [
+        -2,
+        0
+      ],
+      [
+        -1,
+        1
+      ],
+      [
+        -1,
+        10
+      ],
+      [
+        -2,
+        7
+      ],
+      [
+        -5,
+        4
+      ],
+      [
+        -6,
+        -9
+      ],
+      [
+        -9,
+        -22
+      ],
+      [
+        -3,
+        -15
+      ],
+      [
+        1,
+        -10
+      ],
+      [
+        1,
+        -15
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        -5,
+        -2
+      ],
+      [
+        -3,
+        -8
+      ],
+      [
+        -2,
+        -14
+      ],
+      [
+        -7,
+        -9
+      ],
+      [
+        -10,
+        -3
+      ],
+      [
+        -10,
+        6
+      ]
+    ],
+    [
+      [
+        8518,
+        4344
+      ],
+      [
+        0,
+        -1
+      ],
+      [
+        1,
+        -3
+      ],
+      [
+        9,
+        -2
+      ],
+      [
+        5,
+        -4
+      ],
+      [
+        4,
+        -6
+      ],
+      [
+        16,
+        -12
+      ],
+      [
+        5,
+        -7
+      ],
+      [
+        5,
+        -4
+      ],
+      [
+        4,
+        -1
+      ],
+      [
+        3,
+        2
+      ],
+      [
+        2,
+        6
+      ],
+      [
+        2,
+        0
+      ],
+      [
+        3,
+        -5
+      ],
+      [
+        9,
+        -5
+      ],
+      [
+        0,
+        -1
+      ],
+      [
+        -24,
+        -9
+      ],
+      [
+        -5,
+        -4
+      ],
+      [
+        6,
+        -3
+      ],
+      [
+        6,
+        1
+      ],
+      [
+        6,
+        4
+      ],
+      [
+        7,
+        0
+      ],
+      [
+        7,
+        -2
+      ],
+      [
+        2,
+        2
+      ],
+      [
+        11,
+        -11
+      ],
+      [
+        4,
+        -2
+      ],
+      [
+        4,
+        2
+      ],
+      [
+        4,
+        4
+      ],
+      [
+        10,
+        6
+      ],
+      [
+        14,
+        6
+      ],
+      [
+        14,
+        3
+      ],
+      [
+        14,
+        -1
+      ],
+      [
+        8,
+        2
+      ],
+      [
+        8,
+        7
+      ],
+      [
+        17,
+        23
+      ],
+      [
+        19,
+        19
+      ],
+      [
+        33,
+        24
+      ],
+      [
+        31,
+        18
+      ]
+    ],
+    [
+      [
+        8782,
+        4390
+      ],
+      [
+        0,
+        -16
+      ],
+      [
+        0,
+        -20
+      ],
+      [
+        0,
+        -20
+      ],
+      [
+        0,
+        -20
+      ],
+      [
+        0,
+        -20
+      ],
+      [
+        0,
+        -20
+      ],
+      [
+        0,
+        -20
+      ],
+      [
+        0,
+        -20
+      ],
+      [
+        0,
+        -20
+      ],
+      [
+        0,
+        -20
+      ],
+      [
+        0,
+        -20
+      ],
+      [
+        0,
+        -20
+      ],
+      [
+        0,
+        -20
+      ]
+    ],
+    [
+      [
+        7527,
+        2800
+      ],
+      [
+        -21,
+        9
+      ],
+      [
+        -5,
+        7
+      ],
+      [
+        -9,
+        7
+      ],
+      [
+        -8,
+        14
+      ],
+      [
+        -17,
+        18
+      ],
+      [
+        -6,
+        4
+      ],
+      [
+        -2,
+        0
+      ],
+      [
+        -4,
+        -9
+      ],
+      [
+        -8,
+        -7
+      ],
+      [
+        -5,
+        0
+      ],
+      [
+        -9,
+        2
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        -2,
+        6
+      ],
+      [
+        -3,
+        3
+      ],
+      [
+        -3,
+        -2
+      ],
+      [
+        -12,
+        -8
+      ],
+      [
+        -2,
+        -5
+      ],
+      [
+        -7,
+        0
+      ],
+      [
+        -7,
+        3
+      ],
+      [
+        -18,
+        -11
+      ],
+      [
+        -6,
+        -9
+      ],
+      [
+        -7,
+        -3
+      ],
+      [
+        -3,
+        -9
+      ],
+      [
+        -2,
+        1
+      ],
+      [
+        -7,
+        11
+      ],
+      [
+        -6,
+        3
+      ],
+      [
+        -10,
+        11
+      ],
+      [
+        0,
+        10
+      ],
+      [
+        -1,
+        1
+      ],
+      [
+        -2,
+        1
+      ],
+      [
+        -2,
+        -1
+      ],
+      [
+        -4,
+        -8
+      ],
+      [
+        -2,
+        -2
+      ],
+      [
+        -3,
+        0
+      ],
+      [
+        -9,
+        6
+      ],
+      [
+        -4,
+        9
+      ],
+      [
+        -2,
+        3
+      ],
+      [
+        -2,
+        1
+      ],
+      [
+        -4,
+        -3
+      ],
+      [
+        -2,
+        -11
+      ],
+      [
+        -1,
+        -3
+      ],
+      [
+        -4,
+        -2
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        -3,
+        -15
+      ],
+      [
+        -2,
+        -3
+      ],
+      [
+        -3,
+        1
+      ],
+      [
+        -2,
+        3
+      ],
+      [
+        -2,
+        6
+      ],
+      [
+        -1,
+        4
+      ],
+      [
+        2,
+        12
+      ],
+      [
+        -1,
+        4
+      ],
+      [
+        -2,
+        1
+      ],
+      [
+        -4,
+        -5
+      ],
+      [
+        -4,
+        0
+      ],
+      [
+        -5,
+        -6
+      ],
+      [
+        -3,
+        -1
+      ],
+      [
+        -3,
+        1
+      ],
+      [
+        -5,
+        9
+      ],
+      [
+        -8,
+        6
+      ],
+      [
+        -3,
+        10
+      ],
+      [
+        -1,
+        3
+      ],
+      [
+        -2,
+        1
+      ],
+      [
+        -2,
+        0
+      ],
+      [
+        -3,
+        -4
+      ],
+      [
+        -9,
+        -13
+      ],
+      [
+        -4,
+        -5
+      ],
+      [
+        -4,
+        -1
+      ],
+      [
+        -3,
+        2
+      ],
+      [
+        -3,
+        3
+      ],
+      [
+        0,
+        14
+      ],
+      [
+        -2,
+        5
+      ],
+      [
+        -9,
+        8
+      ],
+      [
+        -2,
+        9
+      ],
+      [
+        0,
+        11
+      ],
+      [
+        -11,
+        -1
+      ],
+      [
+        -12,
+        1
+      ],
+      [
+        -6,
+        -10
+      ],
+      [
+        -3,
+        -2
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        -10,
+        14
+      ],
+      [
+        -11,
+        -3
+      ],
+      [
+        -6,
+        1
+      ],
+      [
+        -16,
+        11
+      ],
+      [
+        -12,
+        1
+      ],
+      [
+        -5,
+        1
+      ],
+      [
+        -2,
+        3
+      ],
+      [
+        -1,
+        15
+      ],
+      [
+        -5,
+        14
+      ],
+      [
+        -2,
+        3
+      ],
+      [
+        -8,
+        10
+      ],
+      [
+        -1,
+        0
+      ],
+      [
+        -1,
+        -2
+      ],
+      [
+        -2,
+        -10
+      ],
+      [
+        -2,
+        -1
+      ],
+      [
+        -10,
+        3
+      ],
+      [
+        -8,
+        -3
+      ],
+      [
+        -5,
+        5
+      ],
+      [
+        -16,
+        24
+      ],
+      [
+        -7,
+        7
+      ],
+      [
+        -5,
+        2
+      ],
+      [
+        0,
+        22
+      ],
+      [
+        0,
+        23
+      ],
+      [
+        0,
+        23
+      ],
+      [
+        0,
+        23
+      ],
+      [
+        0,
+        23
+      ],
+      [
+        0,
+        23
+      ],
+      [
+        0,
+        22
+      ],
+      [
+        0,
+        23
+      ],
+      [
+        0,
+        23
+      ],
+      [
+        0,
+        23
+      ],
+      [
+        0,
+        23
+      ],
+      [
+        0,
+        22
+      ],
+      [
+        0,
+        23
+      ],
+      [
+        0,
+        23
+      ],
+      [
+        0,
+        23
+      ],
+      [
+        -1,
+        23
+      ],
+      [
+        -16,
+        0
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -16,
+        0
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -16,
+        0
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -17,
+        0
+      ]
+    ],
+    [
+      [
+        4852,
+        4392
+      ],
+      [
+        -11,
+        24
+      ],
+      [
+        -5,
+        34
+      ],
+      [
+        -1,
+        15
+      ],
+      [
+        1,
+        38
+      ],
+      [
+        -3,
+        17
+      ],
+      [
+        -9,
+        27
+      ],
+      [
+        4,
+        24
+      ],
+      [
+        4,
+        14
+      ],
+      [
+        10,
+        63
+      ],
+      [
+        2,
+        5
+      ],
+      [
+        4,
+        0
+      ],
+      [
+        7,
+        10
+      ],
+      [
+        -3,
+        3
+      ],
+      [
+        -5,
+        -5
+      ],
+      [
+        4,
+        25
+      ],
+      [
+        5,
+        21
+      ],
+      [
+        3,
+        8
+      ],
+      [
+        2,
+        69
+      ],
+      [
+        3,
+        53
+      ],
+      [
+        5,
+        18
+      ],
+      [
+        -2,
+        18
+      ],
+      [
+        2,
+        24
+      ],
+      [
+        -2,
+        25
+      ],
+      [
+        10,
+        119
+      ],
+      [
+        -1,
+        14
+      ],
+      [
+        3,
+        19
+      ],
+      [
+        -3,
+        51
+      ],
+      [
+        2,
+        57
+      ],
+      [
+        -3,
+        7
+      ],
+      [
+        -1,
+        8
+      ],
+      [
+        2,
+        1
+      ],
+      [
+        5,
+        -9
+      ],
+      [
+        21,
+        1
+      ],
+      [
+        14,
+        7
+      ],
+      [
+        5,
+        -2
+      ],
+      [
+        6,
+        -11
+      ],
+      [
+        7,
+        -2
+      ],
+      [
+        9,
+        2
+      ]
+    ],
+    [
+      [
+        4943,
+        5184
+      ],
+      [
+        9,
+        5
+      ],
+      [
+        7,
+        -4
+      ],
+      [
+        9,
+        -8
+      ],
+      [
+        9,
+        -26
+      ],
+      [
+        9,
+        -44
+      ],
+      [
+        1,
+        -14
+      ],
+      [
+        7,
+        -9
+      ],
+      [
+        8,
+        -1
+      ],
+      [
+        32,
+        -6
+      ],
+      [
+        5,
+        0
+      ],
+      [
+        6,
+        2
+      ],
+      [
+        18,
+        17
+      ],
+      [
+        20,
+        5
+      ],
+      [
+        23,
+        -1
+      ],
+      [
+        15,
+        -5
+      ],
+      [
+        5,
+        -8
+      ],
+      [
+        12,
+        -1
+      ],
+      [
+        30,
+        10
+      ],
+      [
+        33,
+        6
+      ],
+      [
+        17,
+        7
+      ],
+      [
+        20,
+        15
+      ],
+      [
+        46,
+        18
+      ],
+      [
+        22,
+        2
+      ],
+      [
+        12,
+        7
+      ],
+      [
+        3,
+        4
+      ],
+      [
+        1,
+        0
+      ],
+      [
+        24,
+        0
+      ],
+      [
+        24,
+        0
+      ],
+      [
+        24,
+        0
+      ],
+      [
+        24,
+        0
+      ],
+      [
+        23,
+        0
+      ],
+      [
+        24,
+        0
+      ],
+      [
+        24,
+        0
+      ],
+      [
+        22,
+        0
+      ]
+    ],
+    [
+      [
+        9272,
+        4008
+      ],
+      [
+        -9,
+        -17
+      ],
+      [
+        -13,
+        -6
+      ],
+      [
+        -7,
+        -6
+      ],
+      [
+        -2,
+        -3
+      ]
+    ],
+    [
+      [
+        8876,
+        3958
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -11,
+        0
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -11,
+        0
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        -12,
+        0
+      ],
+      [
+        0,
+        22
+      ],
+      [
+        0,
+        22
+      ],
+      [
+        0,
+        22
+      ],
+      [
+        0,
+        22
+      ],
+      [
+        0,
+        22
+      ],
+      [
+        0,
+        22
+      ],
+      [
+        0,
+        22
+      ],
+      [
+        0,
+        22
+      ]
+    ],
+    [
+      [
+        8782,
+        4390
+      ],
+      [
+        17,
+        10
+      ],
+      [
+        7,
+        6
+      ],
+      [
+        8,
+        7
+      ],
+      [
+        4,
+        4
+      ],
+      [
+        4,
+        3
+      ],
+      [
+        28,
+        25
+      ]
+    ],
+    [
+      [
+        9605,
+        4294
+      ],
+      [
+        -2,
+        -4
+      ],
+      [
+        -1,
+        10
+      ],
+      [
+        2,
+        10
+      ],
+      [
+        1,
+        0
+      ],
+      [
+        1,
+        -5
+      ],
+      [
+        -1,
+        -11
+      ]
+    ],
+    [
+      [
+        9616,
+        4295
+      ],
+      [
+        -4,
+        -5
+      ],
+      [
+        -5,
+        1
+      ],
+      [
+        3,
+        7
+      ],
+      [
+        1,
+        10
+      ],
+      [
+        2,
+        12
+      ],
+      [
+        1,
+        3
+      ],
+      [
+        3,
+        3
+      ],
+      [
+        -1,
+        -31
+      ]
+    ],
+    [
+      [
+        9617,
+        4336
+      ],
+      [
+        -3,
+        -5
+      ],
+      [
+        -4,
+        8
+      ],
+      [
+        -2,
+        8
+      ],
+      [
+        -2,
+        4
+      ],
+      [
+        -3,
+        2
+      ],
+      [
+        2,
+        -18
+      ],
+      [
+        -5,
+        -13
+      ],
+      [
+        -2,
+        -34
+      ],
+      [
+        -7,
+        -14
+      ],
+      [
+        -22,
+        -9
+      ],
+      [
+        -7,
+        0
+      ]
+    ],
+    [
+      [
+        8958,
+        2843
+      ],
+      [
+        -1,
+        0
+      ],
+      [
+        -24,
+        -29
+      ],
+      [
+        -7,
+        -12
+      ],
+      [
+        -20,
+        -48
+      ],
+      [
+        -5,
+        -31
+      ],
+      [
+        -4,
+        13
+      ],
+      [
+        1,
+        9
+      ],
+      [
+        1,
+        8
+      ],
+      [
+        -5,
+        -17
+      ],
+      [
+        4,
+        -25
+      ],
+      [
+        -4,
+        -9
+      ],
+      [
+        -13,
+        -18
+      ],
+      [
+        -7,
+        -3
+      ],
+      [
+        -8,
+        -5
+      ],
+      [
+        -2,
+        -17
+      ],
+      [
+        -11,
+        -16
+      ],
+      [
+        -7,
+        -7
+      ],
+      [
+        -11,
+        4
+      ],
+      [
+        4,
+        -16
+      ],
+      [
+        -5,
+        -11
+      ],
+      [
+        -7,
+        -9
+      ],
+      [
+        -9,
+        -6
+      ],
+      [
+        -5,
+        1
+      ],
+      [
+        -5,
+        -4
+      ],
+      [
+        -3,
+        -7
+      ],
+      [
+        -9,
+        -7
+      ],
+      [
+        -8,
+        4
+      ],
+      [
+        -10,
+        2
+      ],
+      [
+        -6,
+        -4
+      ],
+      [
+        9,
+        -7
+      ],
+      [
+        5,
+        -10
+      ],
+      [
+        -1,
+        -13
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        -6,
+        -7
+      ],
+      [
+        -3,
+        1
+      ],
+      [
+        -1,
+        7
+      ],
+      [
+        -2,
+        13
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        0,
+        -6
+      ],
+      [
+        -3,
+        -2
+      ],
+      [
+        -8,
+        21
+      ],
+      [
+        0,
+        -16
+      ],
+      [
+        3,
+        -13
+      ],
+      [
+        3,
+        -6
+      ],
+      [
+        3,
+        -4
+      ],
+      [
+        1,
+        -5
+      ],
+      [
+        -6,
+        -14
+      ],
+      [
+        -3,
+        -4
+      ],
+      [
+        -5,
+        -2
+      ],
+      [
+        -3,
+        -8
+      ],
+      [
+        1,
+        -8
+      ]
+    ],
+    [
+      [
+        6668,
+        4583
+      ],
+      [
+        0,
+        48
+      ],
+      [
+        0,
+        47
+      ],
+      [
+        0,
+        48
+      ],
+      [
+        0,
+        48
+      ],
+      [
+        0,
+        47
+      ],
+      [
+        0,
+        48
+      ],
+      [
+        0,
+        48
+      ],
+      [
+        0,
+        47
+      ]
+    ],
+    [
+      [
+        8499,
+        3363
+      ],
+      [
+        21,
+        0
+      ],
+      [
+        43,
+        0
+      ],
+      [
+        31,
+        0
+      ],
+      [
+        26,
+        -1
+      ],
+      [
+        15,
+        0
+      ],
+      [
+        18,
+        0
+      ],
+      [
+        5,
+        4
+      ],
+      [
+        9,
+        -1
+      ],
+      [
+        13,
+        0
+      ]
+    ],
+    [
+      [
+        7285,
+        1372
+      ],
+      [
+        -1,
+        -9
+      ],
+      [
+        -8,
+        41
+      ],
+      [
+        -12,
+        94
+      ],
+      [
+        0,
+        53
+      ],
+      [
+        2,
+        19
+      ],
+      [
+        3,
+        -76
+      ],
+      [
+        13,
+        -95
+      ],
+      [
+        3,
+        -27
+      ]
+    ],
+    [
+      [
+        7269,
+        1589
+      ],
+      [
+        -3,
+        -11
+      ],
+      [
+        1,
+        17
+      ],
+      [
+        7,
+        37
+      ],
+      [
+        15,
+        49
+      ],
+      [
+        6,
+        8
+      ],
+      [
+        -17,
+        -54
+      ],
+      [
+        -9,
+        -46
+      ]
+    ],
+    [
+      [
+        7299,
+        1704
+      ],
+      [
+        -2,
+        0
+      ],
+      [
+        5,
+        15
+      ],
+      [
+        0,
+        6
+      ],
+      [
+        7,
+        20
+      ],
+      [
+        4,
+        3
+      ],
+      [
+        2,
+        -8
+      ],
+      [
+        -7,
+        -14
+      ],
+      [
+        -9,
+        -22
+      ]
+    ],
+    [
+      [
+        7322,
+        1752
+      ],
+      [
+        -4,
+        -1
+      ],
+      [
+        4,
+        10
+      ],
+      [
+        7,
+        6
+      ],
+      [
+        15,
+        19
+      ],
+      [
+        6,
+        2
+      ],
+      [
+        3,
+        7
+      ],
+      [
+        1,
+        1
+      ],
+      [
+        -1,
+        -9
+      ],
+      [
+        -12,
+        -12
+      ],
+      [
+        -19,
+        -23
+      ]
+    ],
+    [
+      [
+        7477,
+        1941
+      ],
+      [
+        -5,
+        -2
+      ],
+      [
+        20,
+        30
+      ],
+      [
+        4,
+        10
+      ],
+      [
+        5,
+        -1
+      ],
+      [
+        -9,
+        -16
+      ],
+      [
+        -15,
+        -21
+      ]
+    ],
+    [
+      [
+        7589,
+        2100
+      ],
+      [
+        -5,
+        0
+      ],
+      [
+        -9,
+        -31
+      ],
+      [
+        5,
+        -18
+      ],
+      [
+        0,
+        -6
+      ],
+      [
+        -19,
+        -4
+      ],
+      [
+        -42,
+        -35
+      ],
+      [
+        -17,
+        -19
+      ],
+      [
+        1,
+        6
+      ],
+      [
+        20,
+        25
+      ],
+      [
+        -7,
+        4
+      ],
+      [
+        -12,
+        -6
+      ],
+      [
+        -4,
+        2
+      ],
+      [
+        5,
+        20
+      ],
+      [
+        -2,
+        18
+      ],
+      [
+        -8,
+        1
+      ],
+      [
+        -5,
+        -14
+      ],
+      [
+        -3,
+        0
+      ],
+      [
+        -5,
+        6
+      ],
+      [
+        -4,
+        -2
+      ],
+      [
+        3,
+        -32
+      ],
+      [
+        5,
+        -14
+      ],
+      [
+        4,
+        -17
+      ],
+      [
+        -11,
+        -21
+      ],
+      [
+        -11,
+        -18
+      ],
+      [
+        -1,
+        -16
+      ],
+      [
+        -11,
+        -22
+      ],
+      [
+        -11,
+        -13
+      ],
+      [
+        -24,
+        -29
+      ],
+      [
+        -7,
+        -6
+      ],
+      [
+        -10,
+        -14
+      ],
+      [
+        -15,
+        -10
+      ],
+      [
+        -15,
+        -16
+      ],
+      [
+        -5,
+        -3
+      ],
+      [
+        9,
+        14
+      ],
+      [
+        11,
+        13
+      ],
+      [
+        -9,
+        -2
+      ],
+      [
+        -14,
+        7
+      ],
+      [
+        -9,
+        0
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        -7,
+        -7
+      ],
+      [
+        -7,
+        10
+      ],
+      [
+        -3,
+        7
+      ],
+      [
+        -1,
+        6
+      ],
+      [
+        -3,
+        2
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        10,
+        -42
+      ],
+      [
+        5,
+        -2
+      ],
+      [
+        4,
+        -4
+      ],
+      [
+        -6,
+        -10
+      ],
+      [
+        -6,
+        -7
+      ],
+      [
+        -10,
+        -5
+      ],
+      [
+        -9,
+        15
+      ],
+      [
+        -2,
+        -19
+      ],
+      [
+        -1,
+        -19
+      ],
+      [
+        -3,
+        -5
+      ],
+      [
+        -5,
+        -7
+      ],
+      [
+        -2,
+        5
+      ],
+      [
+        -2,
+        8
+      ],
+      [
+        -3,
+        -7
+      ],
+      [
+        -4,
+        -5
+      ],
+      [
+        -7,
+        -1
+      ],
+      [
+        -6,
+        -3
+      ],
+      [
+        0,
+        -8
+      ],
+      [
+        2,
+        -8
+      ],
+      [
+        9,
+        7
+      ],
+      [
+        -3,
+        -21
+      ],
+      [
+        -9,
+        -20
+      ],
+      [
+        -7,
+        -5
+      ],
+      [
+        -11,
+        3
+      ],
+      [
+        -3,
+        -2
+      ],
+      [
+        -2,
+        -4
+      ],
+      [
+        12,
+        -32
+      ],
+      [
+        -8,
+        -48
+      ],
+      [
+        -5,
+        -17
+      ],
+      [
+        -4,
+        -2
+      ],
+      [
+        -4,
+        -1
+      ],
+      [
+        -14,
+        15
+      ],
+      [
+        -8,
+        12
+      ],
+      [
+        7,
+        -32
+      ],
+      [
+        19,
+        -10
+      ],
+      [
+        1,
+        -12
+      ],
+      [
+        0,
+        -10
+      ],
+      [
+        -4,
+        -13
+      ],
+      [
+        -3,
+        -16
+      ],
+      [
+        2,
+        -11
+      ],
+      [
+        3,
+        -29
+      ],
+      [
+        3,
+        -13
+      ],
+      [
+        2,
+        -39
+      ],
+      [
+        3,
+        -17
+      ],
+      [
+        17,
+        -63
+      ],
+      [
+        6,
+        0
+      ],
+      [
+        1,
+        -7
+      ],
+      [
+        -1,
+        -13
+      ],
+      [
+        -12,
+        -4
+      ],
+      [
+        -5,
+        -5
+      ],
+      [
+        -1,
+        -5
+      ],
+      [
+        -1,
+        -3
+      ],
+      [
+        -1,
+        0
+      ],
+      [
+        -6,
+        4
+      ],
+      [
+        -13,
+        17
+      ],
+      [
+        -20,
+        12
+      ],
+      [
+        -25,
+        4
+      ],
+      [
+        -17,
+        9
+      ],
+      [
+        -9,
+        13
+      ],
+      [
+        -10,
+        8
+      ],
+      [
+        -10,
+        3
+      ],
+      [
+        -9,
+        7
+      ],
+      [
+        -6,
+        12
+      ],
+      [
+        -10,
+        8
+      ],
+      [
+        -13,
+        4
+      ],
+      [
+        -8,
+        9
+      ],
+      [
+        -6,
+        22
+      ],
+      [
+        -5,
+        38
+      ],
+      [
+        -7,
+        23
+      ],
+      [
+        -12,
+        29
+      ],
+      [
+        -1,
+        4
+      ],
+      [
+        -1,
+        5
+      ],
+      [
+        2,
+        17
+      ],
+      [
+        -1,
+        12
+      ],
+      [
+        -4,
+        10
+      ],
+      [
+        -1,
+        10
+      ],
+      [
+        2,
+        11
+      ],
+      [
+        0,
+        13
+      ],
+      [
+        -2,
+        16
+      ],
+      [
+        -8,
+        16
+      ],
+      [
+        -14,
+        18
+      ],
+      [
+        -12,
+        27
+      ],
+      [
+        -10,
+        34
+      ],
+      [
+        -10,
+        24
+      ],
+      [
+        -10,
+        13
+      ],
+      [
+        -7,
+        16
+      ],
+      [
+        -4,
+        19
+      ],
+      [
+        -1,
+        12
+      ],
+      [
+        2,
+        3
+      ],
+      [
+        -6,
+        21
+      ],
+      [
+        -14,
+        39
+      ],
+      [
+        -8,
+        29
+      ],
+      [
+        -2,
+        19
+      ],
+      [
+        -8,
+        21
+      ],
+      [
+        -15,
+        25
+      ],
+      [
+        -9,
+        17
+      ],
+      [
+        -2,
+        11
+      ],
+      [
+        -24,
+        33
+      ],
+      [
+        -6,
+        21
+      ],
+      [
+        -6,
+        7
+      ],
+      [
+        -6,
+        -1
+      ],
+      [
+        -3,
+        2
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        -2,
+        0
+      ],
+      [
+        -4,
+        -4
+      ],
+      [
+        -13,
+        -1
+      ],
+      [
+        -21,
+        2
+      ],
+      [
+        -16,
+        6
+      ],
+      [
+        -9,
+        9
+      ],
+      [
+        -7,
+        -2
+      ],
+      [
+        -4,
+        -11
+      ],
+      [
+        -8,
+        -7
+      ],
+      [
+        -12,
+        -3
+      ],
+      [
+        -11,
+        -21
+      ],
+      [
+        -9,
+        -38
+      ],
+      [
+        -4,
+        -24
+      ],
+      [
+        1,
+        -11
+      ],
+      [
+        -2,
+        -8
+      ],
+      [
+        -6,
+        -5
+      ],
+      [
+        -6,
+        -11
+      ],
+      [
+        -6,
+        -18
+      ],
+      [
+        -7,
+        -8
+      ],
+      [
+        -8,
+        1
+      ],
+      [
+        -15,
+        13
+      ],
+      [
+        -22,
+        26
+      ],
+      [
+        -17,
+        16
+      ],
+      [
+        -12,
+        6
+      ],
+      [
+        -11,
+        12
+      ],
+      [
+        -9,
+        18
+      ],
+      [
+        -9,
+        12
+      ],
+      [
+        -8,
+        6
+      ],
+      [
+        -9,
+        20
+      ],
+      [
+        -11,
+        33
+      ],
+      [
+        -5,
+        26
+      ],
+      [
+        0,
+        28
+      ],
+      [
+        -14,
+        60
+      ],
+      [
+        -7,
+        25
+      ],
+      [
+        -6,
+        12
+      ],
+      [
+        -11,
+        15
+      ],
+      [
+        -16,
+        16
+      ],
+      [
+        -21,
+        33
+      ],
+      [
+        -27,
+        50
+      ],
+      [
+        -19,
+        30
+      ],
+      [
+        -11,
+        10
+      ],
+      [
+        -10,
+        18
+      ],
+      [
+        -8,
+        25
+      ],
+      [
+        -8,
+        17
+      ],
+      [
+        -1,
+        0
+      ]
+    ],
+    [
+      [
+        6037,
+        4392
+      ],
+      [
+        0,
+        -24
+      ],
+      [
+        0,
+        -23
+      ],
+      [
+        0,
+        -24
+      ],
+      [
+        0,
+        -24
+      ],
+      [
+        0,
+        -24
+      ],
+      [
+        0,
+        -24
+      ],
+      [
+        0,
+        -24
+      ],
+      [
+        0,
+        -23
+      ],
+      [
+        23,
+        0
+      ],
+      [
+        22,
+        0
+      ],
+      [
+        23,
+        0
+      ],
+      [
+        22,
+        0
+      ],
+      [
+        23,
+        0
+      ],
+      [
+        22,
+        0
+      ],
+      [
+        23,
+        0
+      ],
+      [
+        22,
+        0
+      ]
+    ],
+    [
+      [
+        9245,
+        3634
+      ],
+      [
+        -20,
+        -75
+      ],
+      [
+        1,
+        -14
+      ],
+      [
+        -4,
+        -4
+      ],
+      [
+        -6,
+        -4
+      ],
+      [
+        -6,
+        -8
+      ],
+      [
+        -4,
+        -9
+      ],
+      [
+        -4,
+        -25
+      ],
+      [
+        -7,
+        -27
+      ],
+      [
+        -5,
+        11
+      ],
+      [
+        -1,
+        10
+      ],
+      [
+        2,
+        26
+      ],
+      [
+        8,
+        42
+      ],
+      [
+        8,
+        26
+      ],
+      [
+        7,
+        12
+      ],
+      [
+        5,
+        26
+      ]
+    ],
+    [
+      [
+        9258,
+        3637
+      ],
+      [
+        -9,
+        -29
+      ],
+      [
+        -5,
+        -3
+      ],
+      [
+        12,
+        32
+      ]
+    ],
+    [
+      [
+        9096,
+        3799
+      ],
+      [
+        -1,
+        -22
+      ],
+      [
+        -5,
+        -10
+      ],
+      [
+        -6,
+        -9
+      ],
+      [
+        -9,
+        -14
+      ],
+      [
+        -2,
+        -14
+      ],
+      [
+        -3,
+        -25
+      ],
+      [
+        4,
+        -8
+      ],
+      [
+        4,
+        -3
+      ],
+      [
+        11,
+        6
+      ],
+      [
+        5,
+        -3
+      ],
+      [
+        13,
+        -30
+      ],
+      [
+        24,
+        -12
+      ],
+      [
+        8,
+        -8
+      ],
+      [
+        7,
+        -15
+      ],
+      [
+        11,
+        -10
+      ],
+      [
+        8,
+        -13
+      ],
+      [
+        0,
+        -9
+      ],
+      [
+        -3,
+        -10
+      ],
+      [
+        -1,
+        -14
+      ],
+      [
+        -3,
+        -8
+      ],
+      [
+        -9,
+        -1
+      ],
+      [
+        -5,
+        2
+      ],
+      [
+        -27,
+        49
+      ],
+      [
+        -3,
+        4
+      ],
+      [
+        -10,
+        26
+      ],
+      [
+        -12,
+        13
+      ],
+      [
+        -3,
+        0
+      ],
+      [
+        16,
+        -25
+      ],
+      [
+        7,
+        -18
+      ],
+      [
+        12,
+        -25
+      ],
+      [
+        9,
+        -10
+      ],
+      [
+        6,
+        -17
+      ],
+      [
+        6,
+        -7
+      ],
+      [
+        16,
+        -11
+      ],
+      [
+        -5,
+        -8
+      ],
+      [
+        8,
+        -7
+      ],
+      [
+        2,
+        -12
+      ],
+      [
+        -1,
+        -14
+      ],
+      [
+        -12,
+        5
+      ],
+      [
+        -1,
+        -10
+      ],
+      [
+        1,
+        -6
+      ],
+      [
+        -5,
+        -5
+      ],
+      [
+        -8,
+        7
+      ],
+      [
+        -20,
+        37
+      ],
+      [
+        1,
+        -5
+      ],
+      [
+        1,
+        -6
+      ],
+      [
+        12,
+        -24
+      ],
+      [
+        10,
+        -14
+      ],
+      [
+        9,
+        -7
+      ],
+      [
+        6,
+        -12
+      ],
+      [
+        3,
+        -7
+      ],
+      [
+        1,
+        -11
+      ],
+      [
+        -5,
+        -8
+      ],
+      [
+        -5,
+        -4
+      ],
+      [
+        -6,
+        8
+      ],
+      [
+        -4,
+        8
+      ],
+      [
+        -9,
+        13
+      ],
+      [
+        -2,
+        15
+      ],
+      [
+        -7,
+        -1
+      ],
+      [
+        -27,
+        19
+      ],
+      [
+        -22,
+        3
+      ],
+      [
+        2,
+        -4
+      ],
+      [
+        3,
+        -3
+      ],
+      [
+        18,
+        -5
+      ],
+      [
+        6,
+        -8
+      ],
+      [
+        15,
+        -8
+      ],
+      [
+        8,
+        -2
+      ],
+      [
+        4,
+        -24
+      ],
+      [
+        11,
+        -17
+      ],
+      [
+        2,
+        -12
+      ],
+      [
+        8,
+        -1
+      ],
+      [
+        14,
+        12
+      ],
+      [
+        9,
+        -4
+      ],
+      [
+        13,
+        -4
+      ],
+      [
+        3,
+        -10
+      ],
+      [
+        2,
+        -18
+      ],
+      [
+        4,
+        -21
+      ],
+      [
+        3,
+        -20
+      ]
+    ],
+    [
+      [
+        9199,
+        3353
+      ],
+      [
+        -7,
+        0
+      ]
+    ],
+    [
+      [
+        8652,
+        3542
+      ],
+      [
+        1,
+        -6
+      ],
+      [
+        -1,
+        -7
+      ],
+      [
+        3,
+        -8
+      ],
+      [
+        2,
+        -12
+      ],
+      [
+        3,
+        -7
+      ],
+      [
+        4,
+        -6
+      ],
+      [
+        7,
+        -6
+      ],
+      [
+        9,
+        -9
+      ],
+      [
+        6,
+        -3
+      ],
+      [
+        2,
+        1
+      ],
+      [
+        7,
+        9
+      ],
+      [
+        6,
+        5
+      ],
+      [
+        7,
+        9
+      ],
+      [
+        11,
+        -13
+      ],
+      [
+        4,
+        0
+      ],
+      [
+        11,
+        6
+      ],
+      [
+        10,
+        1
+      ],
+      [
+        3,
+        2
+      ],
+      [
+        3,
+        6
+      ],
+      [
+        1,
+        11
+      ],
+      [
+        0,
+        3
+      ],
+      [
+        2,
+        1
+      ],
+      [
+        2,
+        0
+      ],
+      [
+        5,
+        -4
+      ],
+      [
+        4,
+        0
+      ],
+      [
+        19,
+        13
+      ],
+      [
+        2,
+        -1
+      ],
+      [
+        2,
+        -6
+      ],
+      [
+        9,
+        8
+      ],
+      [
+        5,
+        7
+      ],
+      [
+        2,
+        11
+      ],
+      [
+        4,
+        10
+      ],
+      [
+        -1,
+        5
+      ],
+      [
+        -3,
+        6
+      ],
+      [
+        4,
+        14
+      ],
+      [
+        5,
+        14
+      ],
+      [
+        20,
+        42
+      ],
+      [
+        6,
+        26
+      ],
+      [
+        8,
+        16
+      ],
+      [
+        2,
+        14
+      ],
+      [
+        7,
+        12
+      ],
+      [
+        4,
+        27
+      ],
+      [
+        2,
+        6
+      ],
+      [
+        4,
+        0
+      ],
+      [
+        4,
+        -3
+      ],
+      [
+        3,
+        -5
+      ],
+      [
+        1,
+        -8
+      ],
+      [
+        10,
+        -7
+      ],
+      [
+        9,
+        -1
+      ],
+      [
+        5,
+        5
+      ],
+      [
+        4,
+        10
+      ],
+      [
+        4,
+        17
+      ],
+      [
+        5,
+        11
+      ],
+      [
+        2,
+        13
+      ],
+      [
+        3,
+        9
+      ],
+      [
+        5,
+        6
+      ],
+      [
+        11,
+        -1
+      ],
+      [
+        5,
+        8
+      ],
+      [
+        5,
+        10
+      ],
+      [
+        2,
+        3
+      ],
+      [
+        4,
+        -1
+      ],
+      [
+        10,
+        15
+      ],
+      [
+        13,
+        31
+      ],
+      [
+        2,
+        19
+      ],
+      [
+        4,
+        14
+      ],
+      [
+        1,
+        14
+      ],
+      [
+        3,
+        8
+      ],
+      [
+        11,
+        -15
+      ],
+      [
+        7,
+        -9
+      ],
+      [
+        15,
+        -21
+      ],
+      [
+        11,
+        -13
+      ],
+      [
+        4,
+        15
+      ],
+      [
+        5,
+        23
+      ]
+    ],
+    [
+      [
+        9427,
+        4965
+      ],
+      [
+        15,
+        0
+      ],
+      [
+        37,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        37,
+        0
+      ],
+      [
+        38,
+        1
+      ]
+    ],
+    [
+      [
+        4976,
+        5384
+      ],
+      [
+        -1,
+        -3
+      ],
+      [
+        -1,
+        0
+      ],
+      [
+        -3,
+        8
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        2,
+        4
+      ],
+      [
+        3,
+        -11
+      ],
+      [
+        0,
+        -3
+      ]
+    ],
+    [
+      [
+        5017,
+        5421
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        -4,
+        -3
+      ],
+      [
+        -1,
+        1
+      ],
+      [
+        -1,
+        5
+      ],
+      [
+        -1,
+        1
+      ],
+      [
+        -3,
+        -6
+      ],
+      [
+        0,
+        12
+      ],
+      [
+        2,
+        13
+      ],
+      [
+        1,
+        0
+      ],
+      [
+        3,
+        -9
+      ],
+      [
+        4,
+        -9
+      ]
+    ],
+    [
+      [
+        5008,
+        5459
+      ],
+      [
+        -1,
+        -4
+      ],
+      [
+        -5,
+        4
+      ],
+      [
+        -1,
+        5
+      ],
+      [
+        0,
+        9
+      ],
+      [
+        1,
+        5
+      ],
+      [
+        1,
+        2
+      ],
+      [
+        3,
+        -3
+      ],
+      [
+        1,
+        -1
+      ],
+      [
+        1,
+        -17
+      ]
+    ],
+    [
+      [
+        5001,
+        5566
+      ],
+      [
+        5,
+        -25
+      ],
+      [
+        1,
+        10
+      ],
+      [
+        13,
+        -18
+      ],
+      [
+        0,
+        -9
+      ],
+      [
+        -2,
+        -3
+      ],
+      [
+        -2,
+        -1
+      ],
+      [
+        -3,
+        3
+      ],
+      [
+        -2,
+        6
+      ],
+      [
+        -3,
+        3
+      ],
+      [
+        -6,
+        3
+      ],
+      [
+        -3,
+        7
+      ],
+      [
+        -1,
+        5
+      ],
+      [
+        0,
+        14
+      ],
+      [
+        -1,
+        4
+      ],
+      [
+        -3,
+        1
+      ],
+      [
+        -3,
+        3
+      ],
+      [
+        -5,
+        10
+      ],
+      [
+        -1,
+        3
+      ],
+      [
+        2,
+        8
+      ],
+      [
+        5,
+        13
+      ],
+      [
+        4,
+        6
+      ],
+      [
+        2,
+        0
+      ],
+      [
+        3,
+        -4
+      ],
+      [
+        3,
+        -8
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        -14,
+        -10
+      ],
+      [
+        0,
+        -2
+      ],
+      [
+        6,
+        -3
+      ],
+      [
+        3,
+        -3
+      ],
+      [
+        2,
+        -8
+      ]
+    ],
+    [
+      [
+        4979,
+        5618
+      ],
+      [
+        -2,
+        -2
+      ],
+      [
+        -4,
+        3
+      ],
+      [
+        -3,
+        4
+      ],
+      [
+        -1,
+        5
+      ],
+      [
+        2,
+        11
+      ],
+      [
+        2,
+        2
+      ],
+      [
+        1,
+        0
+      ],
+      [
+        1,
+        -9
+      ],
+      [
+        4,
+        -10
+      ],
+      [
+        0,
+        -4
+      ]
+    ],
+    [
+      [
+        4962,
+        5632
+      ],
+      [
+        2,
+        -7
+      ],
+      [
+        -10,
+        4
+      ],
+      [
+        -4,
+        4
+      ],
+      [
+        -1,
+        3
+      ],
+      [
+        -2,
+        12
+      ],
+      [
+        1,
+        4
+      ],
+      [
+        4,
+        1
+      ],
+      [
+        9,
+        -14
+      ],
+      [
+        1,
+        -7
+      ]
+    ],
+    [
+      [
+        4982,
+        5664
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        -3,
+        -4
+      ],
+      [
+        -3,
+        0
+      ],
+      [
+        -4,
+        6
+      ],
+      [
+        -2,
+        1
+      ],
+      [
+        2,
+        -10
+      ],
+      [
+        -1,
+        -4
+      ],
+      [
+        -8,
+        7
+      ],
+      [
+        -2,
+        4
+      ],
+      [
+        3,
+        6
+      ],
+      [
+        5,
+        5
+      ],
+      [
+        2,
+        0
+      ],
+      [
+        10,
+        -7
+      ]
+    ],
+    [
+      [
+        4958,
+        5725
+      ],
+      [
+        -1,
+        -3
+      ],
+      [
+        -1,
+        1
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        3,
+        0
+      ]
+    ],
+    [
+      [
+        4943,
+        5184
+      ],
+      [
+        -3,
+        3
+      ],
+      [
+        -4,
+        0
+      ],
+      [
+        -10,
+        10
+      ],
+      [
+        -5,
+        9
+      ],
+      [
+        -17,
+        0
+      ],
+      [
+        -3,
+        6
+      ],
+      [
+        -19,
+        -6
+      ],
+      [
+        -6,
+        6
+      ],
+      [
+        -10,
+        -4
+      ],
+      [
+        3,
+        18
+      ],
+      [
+        -1,
+        22
+      ],
+      [
+        1,
+        22
+      ],
+      [
+        2,
+        -16
+      ],
+      [
+        7,
+        -17
+      ],
+      [
+        3,
+        19
+      ],
+      [
+        2,
+        25
+      ],
+      [
+        -6,
+        9
+      ],
+      [
+        -11,
+        7
+      ],
+      [
+        -3,
+        22
+      ],
+      [
+        24,
+        19
+      ],
+      [
+        -13,
+        4
+      ],
+      [
+        -5,
+        9
+      ],
+      [
+        -6,
+        1
+      ],
+      [
+        -1,
+        -7
+      ],
+      [
+        -2,
+        -8
+      ],
+      [
+        -2,
+        11
+      ],
+      [
+        -1,
+        14
+      ],
+      [
+        -2,
+        23
+      ],
+      [
+        -10,
+        38
+      ],
+      [
+        -6,
+        48
+      ],
+      [
+        -8,
+        24
+      ],
+      [
+        -14,
+        23
+      ],
+      [
+        -4,
+        13
+      ],
+      [
+        -3,
+        34
+      ],
+      [
+        2,
+        26
+      ],
+      [
+        -3,
+        18
+      ],
+      [
+        7,
+        -1
+      ],
+      [
+        18,
+        -15
+      ],
+      [
+        23,
+        -11
+      ],
+      [
+        7,
+        -8
+      ],
+      [
+        11,
+        -6
+      ],
+      [
+        61,
+        -9
+      ],
+      [
+        4,
+        1
+      ],
+      [
+        8,
+        6
+      ],
+      [
+        4,
+        -1
+      ],
+      [
+        9,
+        -13
+      ],
+      [
+        4,
+        -2
+      ],
+      [
+        6,
+        1
+      ],
+      [
+        4,
+        2
+      ],
+      [
+        8,
+        9
+      ],
+      [
+        1,
+        -3
+      ],
+      [
+        -1,
+        -8
+      ],
+      [
+        3,
+        -12
+      ],
+      [
+        6,
+        -16
+      ],
+      [
+        2,
+        -10
+      ],
+      [
+        -11,
+        -27
+      ],
+      [
+        -2,
+        0
+      ],
+      [
+        -1,
+        9
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        -21,
+        -46
+      ],
+      [
+        -7,
+        -22
+      ],
+      [
+        -1,
+        -10
+      ],
+      [
+        0,
+        -6
+      ],
+      [
+        3,
+        -1
+      ],
+      [
+        7,
+        2
+      ],
+      [
+        10,
+        9
+      ],
+      [
+        0,
+        2
+      ],
+      [
+        -9,
+        -3
+      ],
+      [
+        -4,
+        0
+      ],
+      [
+        0,
+        10
+      ],
+      [
+        1,
+        5
+      ],
+      [
+        6,
+        15
+      ],
+      [
+        7,
+        9
+      ],
+      [
+        8,
+        10
+      ],
+      [
+        6,
+        8
+      ],
+      [
+        3,
+        12
+      ],
+      [
+        10,
+        14
+      ],
+      [
+        2,
+        4
+      ],
+      [
+        -1,
+        11
+      ],
+      [
+        1,
+        2
+      ],
+      [
+        5,
+        -1
+      ],
+      [
+        2,
+        -20
+      ],
+      [
+        -1,
+        -9
+      ],
+      [
+        -9,
+        -11
+      ],
+      [
+        -1,
+        -4
+      ],
+      [
+        1,
+        -14
+      ],
+      [
+        -1,
+        -2
+      ],
+      [
+        -3,
+        2
+      ],
+      [
+        -1,
+        -1
+      ],
+      [
+        8,
+        -16
+      ],
+      [
+        2,
+        -12
+      ],
+      [
+        1,
+        -11
+      ],
+      [
+        -2,
+        -22
+      ],
+      [
+        -3,
+        -3
+      ],
+      [
+        -4,
+        1
+      ],
+      [
+        -5,
+        7
+      ],
+      [
+        -1,
+        -2
+      ],
+      [
+        -4,
+        -17
+      ],
+      [
+        -2,
+        1
+      ],
+      [
+        -2,
+        20
+      ],
+      [
+        -2,
+        2
+      ],
+      [
+        -8,
+        -9
+      ],
+      [
+        -3,
+        -9
+      ],
+      [
+        -3,
+        -14
+      ],
+      [
+        -4,
+        -6
+      ],
+      [
+        10,
+        -2
+      ],
+      [
+        10,
+        3
+      ],
+      [
+        7,
+        -6
+      ],
+      [
+        3,
+        0
+      ],
+      [
+        6,
+        6
+      ],
+      [
+        2,
+        4
+      ],
+      [
+        6,
+        21
+      ],
+      [
+        3,
+        4
+      ],
+      [
+        4,
+        0
+      ],
+      [
+        4,
+        3
+      ],
+      [
+        6,
+        11
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        -2,
+        25
+      ],
+      [
+        0,
+        15
+      ],
+      [
+        -1,
+        4
+      ],
+      [
+        -2,
+        5
+      ],
+      [
+        0,
+        4
+      ],
+      [
+        2,
+        8
+      ],
+      [
+        0,
+        7
+      ],
+      [
+        -2,
+        6
+      ],
+      [
+        1,
+        7
+      ],
+      [
+        6,
+        15
+      ],
+      [
+        1,
+        6
+      ],
+      [
+        7,
+        15
+      ],
+      [
+        -2,
+        6
+      ],
+      [
+        -5,
+        7
+      ],
+      [
+        -3,
+        7
+      ],
+      [
+        -3,
+        10
+      ],
+      [
+        -3,
+        3
+      ],
+      [
+        -1,
+        -1
+      ],
+      [
+        4,
+        -17
+      ],
+      [
+        -1,
+        -1
+      ],
+      [
+        -9,
+        9
+      ],
+      [
+        -2,
+        5
+      ],
+      [
+        -1,
+        8
+      ],
+      [
+        1,
+        6
+      ],
+      [
+        5,
+        5
+      ],
+      [
+        5,
+        2
+      ],
+      [
+        0,
+        5
+      ],
+      [
+        -7,
+        15
+      ],
+      [
+        -5,
+        7
+      ],
+      [
+        -4,
+        4
+      ],
+      [
+        -5,
+        1
+      ],
+      [
+        -2,
+        2
+      ],
+      [
+        -1,
+        4
+      ],
+      [
+        2,
+        4
+      ],
+      [
+        2,
+        2
+      ],
+      [
+        8,
+        -2
+      ],
+      [
+        4,
+        3
+      ],
+      [
+        0,
+        7
+      ],
+      [
+        -2,
+        3
+      ],
+      [
+        1,
+        22
+      ],
+      [
+        -3,
+        17
+      ],
+      [
+        -2,
+        3
+      ],
+      [
+        -2,
+        1
+      ],
+      [
+        -1,
+        -3
+      ],
+      [
+        -5,
+        0
+      ],
+      [
+        -3,
+        5
+      ],
+      [
+        -3,
+        12
+      ],
+      [
+        -6,
+        26
+      ],
+      [
+        9,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        39,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        39,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        39,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        39,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        38,
+        0
+      ],
+      [
+        10,
+        0
+      ]
+    ],
+    [
+      [
+        8200,
+        5010
+      ],
+      [
+        -1,
+        -2
+      ],
+      [
+        -3,
+        1
+      ],
+      [
+        -1,
+        -3
+      ],
+      [
+        0,
+        -9
+      ],
+      [
+        -1,
+        -4
+      ],
+      [
+        -2,
+        0
+      ],
+      [
+        0,
+        -1
+      ],
+      [
+        2,
+        -4
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        -1,
+        -5
+      ],
+      [
+        -2,
+        -2
+      ],
+      [
+        -2,
+        0
+      ],
+      [
+        -2,
+        -5
+      ],
+      [
+        -3,
+        -11
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        1,
+        -2
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        -9,
+        -16
+      ],
+      [
+        -3,
+        -2
+      ],
+      [
+        -3,
+        2
+      ],
+      [
+        -3,
+        5
+      ],
+      [
+        -1,
+        8
+      ],
+      [
+        -1,
+        5
+      ],
+      [
+        1,
+        4
+      ],
+      [
+        7,
+        15
+      ],
+      [
+        3,
+        10
+      ],
+      [
+        2,
+        10
+      ],
+      [
+        4,
+        7
+      ],
+      [
+        5,
+        3
+      ],
+      [
+        4,
+        7
+      ],
+      [
+        3,
+        10
+      ],
+      [
+        3,
+        5
+      ],
+      [
+        4,
+        -2
+      ],
+      [
+        2,
+        -3
+      ],
+      [
+        -1,
+        -7
+      ]
+    ],
+    [
+      [
+        8212,
+        5031
+      ],
+      [
+        -3,
+        -2
+      ],
+      [
+        -5,
+        1
+      ],
+      [
+        -1,
+        4
+      ],
+      [
+        2,
+        11
+      ],
+      [
+        1,
+        -2
+      ],
+      [
+        5,
+        0
+      ],
+      [
+        1,
+        -1
+      ],
+      [
+        0,
+        -3
+      ],
+      [
+        0,
+        -8
+      ]
+    ],
+    [
+      [
+        7866,
+        5304
+      ],
+      [
+        -5,
+        -2
+      ],
+      [
+        -2,
+        0
+      ],
+      [
+        1,
+        4
+      ],
+      [
+        2,
+        4
+      ],
+      [
+        12,
+        11
+      ],
+      [
+        2,
+        -1
+      ],
+      [
+        1,
+        -2
+      ],
+      [
+        -6,
+        -5
+      ],
+      [
+        -2,
+        -3
+      ],
+      [
+        0,
+        -3
+      ],
+      [
+        -3,
+        -3
+      ]
+    ],
+    [
+      [
+        7881,
+        5330
+      ],
+      [
+        -3,
+        -1
+      ],
+      [
+        -7,
+        2
+      ],
+      [
+        0,
+        2
+      ],
+      [
+        7,
+        4
+      ],
+      [
+        3,
+        1
+      ],
+      [
+        1,
+        -1
+      ],
+      [
+        -1,
+        -7
+      ]
+    ],
+    [
+      [
+        8145,
+        4985
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        -2,
+        -10
+      ],
+      [
+        -5,
+        -7
+      ],
+      [
+        -13,
+        -10
+      ],
+      [
+        -2,
+        -6
+      ],
+      [
+        0,
+        -6
+      ],
+      [
+        -9,
+        -22
+      ],
+      [
+        -4,
+        -14
+      ],
+      [
+        -3,
+        -14
+      ],
+      [
+        1,
+        -9
+      ],
+      [
+        4,
+        -3
+      ],
+      [
+        4,
+        1
+      ],
+      [
+        3,
+        7
+      ],
+      [
+        4,
+        5
+      ],
+      [
+        6,
+        6
+      ],
+      [
+        4,
+        7
+      ],
+      [
+        6,
+        19
+      ],
+      [
+        6,
+        11
+      ],
+      [
+        4,
+        1
+      ],
+      [
+        1,
+        -1
+      ],
+      [
+        6,
+        5
+      ],
+      [
+        6,
+        -2
+      ],
+      [
+        3,
+        -7
+      ],
+      [
+        3,
+        -5
+      ],
+      [
+        1,
+        -5
+      ],
+      [
+        -1,
+        -10
+      ],
+      [
+        -4,
+        -11
+      ],
+      [
+        -4,
+        -12
+      ],
+      [
+        -4,
+        -18
+      ],
+      [
+        -4,
+        -23
+      ],
+      [
+        -1,
+        -18
+      ],
+      [
+        2,
+        -12
+      ],
+      [
+        -2,
+        -10
+      ],
+      [
+        -6,
+        -10
+      ],
+      [
+        -5,
+        -12
+      ],
+      [
+        -3,
+        -16
+      ],
+      [
+        -3,
+        -13
+      ],
+      [
+        0,
+        -11
+      ],
+      [
+        1,
+        -8
+      ],
+      [
+        2,
+        -11
+      ],
+      [
+        0,
+        -5
+      ],
+      [
+        -7,
+        -24
+      ],
+      [
+        -2,
+        -12
+      ],
+      [
+        -1,
+        -9
+      ],
+      [
+        -2,
+        -9
+      ],
+      [
+        -5,
+        -18
+      ],
+      [
+        -1,
+        -10
+      ],
+      [
+        0,
+        -10
+      ],
+      [
+        1,
+        -15
+      ],
+      [
+        -1,
+        -5
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        2,
+        -3
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        -2,
+        -7
+      ],
+      [
+        1,
+        -6
+      ],
+      [
+        2,
+        -4
+      ],
+      [
+        2,
+        -7
+      ],
+      [
+        0,
+        -11
+      ],
+      [
+        2,
+        -9
+      ],
+      [
+        3,
+        -8
+      ],
+      [
+        0,
+        -10
+      ],
+      [
+        -2,
+        -14
+      ],
+      [
+        0,
+        -26
+      ],
+      [
+        0,
+        -9
+      ]
+    ],
+    [
+      [
+        7740,
+        5300
+      ],
+      [
+        3,
+        -5
+      ],
+      [
+        8,
+        -7
+      ],
+      [
+        6,
+        -1
+      ],
+      [
+        8,
+        2
+      ],
+      [
+        30,
+        12
+      ],
+      [
+        13,
+        8
+      ],
+      [
+        12,
+        15
+      ],
+      [
+        2,
+        0
+      ],
+      [
+        5,
+        -3
+      ],
+      [
+        1,
+        -1
+      ],
+      [
+        17,
+        17
+      ],
+      [
+        5,
+        2
+      ],
+      [
+        4,
+        -1
+      ],
+      [
+        6,
+        -6
+      ],
+      [
+        1,
+        -4
+      ],
+      [
+        -2,
+        -8
+      ],
+      [
+        -5,
+        -11
+      ],
+      [
+        -2,
+        -9
+      ],
+      [
+        0,
+        -8
+      ],
+      [
+        -2,
+        -8
+      ],
+      [
+        -5,
+        -11
+      ],
+      [
+        2,
+        -3
+      ],
+      [
+        14,
+        8
+      ],
+      [
+        2,
+        3
+      ],
+      [
+        0,
+        2
+      ],
+      [
+        -1,
+        2
+      ],
+      [
+        2,
+        1
+      ],
+      [
+        10,
+        -11
+      ],
+      [
+        8,
+        -6
+      ],
+      [
+        6,
+        -3
+      ],
+      [
+        5,
+        2
+      ]
+    ],
+    [
+      [
+        7866,
+        5332
+      ],
+      [
+        -1,
+        -2
+      ],
+      [
+        -4,
+        3
+      ],
+      [
+        0,
+        3
+      ],
+      [
+        1,
+        3
+      ],
+      [
+        1,
+        -1
+      ],
+      [
+        3,
+        -4
+      ],
+      [
+        0,
+        -2
+      ]
+    ],
+    [
+      [
+        7891,
+        5350
+      ],
+      [
+        -2,
+        -3
+      ],
+      [
+        -2,
+        2
+      ],
+      [
+        1,
+        6
+      ],
+      [
+        2,
+        3
+      ],
+      [
+        2,
+        1
+      ],
+      [
+        1,
+        -1
+      ],
+      [
+        0,
+        -4
+      ],
+      [
+        -2,
+        -4
+      ]
+    ]
+  ]
+}
diff --git a/sample/ONS2014demo/web/data/world.txt b/sample/ONS2014demo/web/data/world.txt
new file mode 100644
index 0000000..04bfb53
--- /dev/null
+++ b/sample/ONS2014demo/web/data/world.txt
@@ -0,0 +1,10 @@
+see: http://bost.ocks.org/mike/map/
+
+brew install gdal
+npm install -g topojson
+
+download: http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/50m/cultural/ne_50m_admin_1_states_provinces_lakes_shp.zip
+
+$ ogr2ogr -f GeoJSON -where "sr_adm0_a3 IN ('USA')" states.json ~/Desktop/ne_50m_admin_1_states_provinces_lakes_shp/ne_50m_admin_1_states_provinces_lakes_shp.shp
+$ topojson -o states.json world.json
+
diff --git a/sample/ONS2014demo/web/index.html b/sample/ONS2014demo/web/index.html
new file mode 100644
index 0000000..ab13250
--- /dev/null
+++ b/sample/ONS2014demo/web/index.html
@@ -0,0 +1,86 @@
+<html>
+<head>
+	<link rel="stylesheet" href="css/layout.default.css" type="text/css"/>
+	<link rel="stylesheet" href="css/skin.default.css" type="text/css"/>
+</head>
+<body>
+<div id='background'>
+	<img id='background-image' src='assets/logo.svg'/>
+</div>
+
+<div id='contents'>
+
+	<div class='header'>
+		<img id='logo' src='assets/logo.svg'></img>
+		<div id='status'>
+			<div class='status'><span class='dynamic' id='activeFlows'>????</span><span class='static'>Flows</span></div>
+			<div class='status'><span class='dynamic' id='activeSwitches'>???</span><span class='static'>Active Switches</span></div>
+			<div class='status'><span class='dynamic' id='activeLinks'>???</span><span class='static'>Links</span></div>
+		</div>
+		<div id='lastUpdated' class='status'><span class='static'>Last updated:</span><span id='lastUpdate' class='dynamic'>Mon Mar 18 11:11:12 PDT 2013</span></div>
+	</div>
+
+	<div id='onos'>
+		<div id='cluster-label'>ONOS Instances</div>
+		<div id='controllers'></div>
+		<div id='actions'>
+			<!--<div id='action-local' class='action'>1</div>-->
+			<div id='action-reset' class='action'>Reset</div>
+			<div id='action-scale' class='action'>Scale</div>
+			<div id='action-all' class='action'>Backup</div>
+			<div id='action-kill' class='action'>Kill</div>
+		</div>
+	</div>
+
+	<div id='topologyArea'>
+		<div id='svg-container'></div>
+	</div>
+
+	<div id='selectedFlowsHeader'>
+		<div id='showFlowChooser' class='flowId'><div class='white-eye'></div></div>
+		<div class='flowId'>id</div>
+		<div class='srcDPID'>src</div>
+		<div class='dstDPID'>dst</div>
+		<div class='iperf'>iperf</div>
+	</div>
+
+	<div id='selectedFlows'></div>
+
+	<div id='flowChooser'></div>
+</div>
+<div id='confirm'>
+	<div id='confirm-background'></div>
+	<div id='confirm-panel'>
+		<div id='confirm-prompt'>A PROMPT</div>
+		<select id='confirm-select'></select>
+		<div id='confirm-buttons'>
+			<div id='confirm-ok' class='confirm-button'>OK</div>
+			<div id='confirm-cancel' class='confirm-button'>CANCEL</div>
+		</div>
+	</div>
+</div>
+
+<script src="d3/d3.v3.js" charset="utf-8"></script>
+<script src="d3/topojson.v0.min.js"></script>
+<script src="js/async.js"></script>
+<script src="js/debug.js"></script>
+<script src="js/constants.js"></script>
+<script src="js/globals.js"></script>
+<script src="js/utils.js"></script>
+<script src="js/model.js"></script>
+<script src="js/controller.js"></script>
+<script src="js/controllers.js"></script>
+
+<!-- choose ring or map layout -->
+<!--script src="js/rings.js"></script-->
+<script src="js/map.js"></script>
+
+<script src="js/topologyactions.js"></script>
+<script src="js/topology.js"></script>
+<script src="js/iperf.js"></script>
+<script src="js/flows.js"></script>
+<script src="js/init.js"></script>
+<script src="js/app.js"></script>
+</body>
+
+</html>
diff --git a/sample/ONS2014demo/web/js/app.js b/sample/ONS2014demo/web/js/app.js
new file mode 100644
index 0000000..d869de7
--- /dev/null
+++ b/sample/ONS2014demo/web/js/app.js
@@ -0,0 +1,73 @@
+/*global d3, document∆*/
+
+
+function updateFlow(model) {
+    model.flows.forEach(function (flow) {
+	flow.flowId = flow.flowId.value;
+	flow.installerId = flow.installerId.value;
+	flow.dstDpid = flow.dataPath.dstPort.dpid.value;
+	flow.srcDpid = flow.dataPath.srcPort.dpid.value;
+	flow.dstPort = flow.dataPath.dstPort.port.value;
+	flow.srcPort = flow.dataPath.srcPort.port.value;
+    });
+}
+
+function sync() {
+	var d = Date.now();
+
+	updateModel(function (newModel) {
+//		console.log('Update time: ' + (Date.now() - d)/1000 + 's');
+
+		if (newModel) {
+			updateFlow(newModel);
+			var modelChanged = false;
+			var newModelString = JSON.stringify(newModel);
+			if (!modelString || newModelString != modelString) {
+				modelChanged = true;
+				model = newModel;
+				modelString = newModelString;
+			} else {
+	//			console.log('no change');
+			}
+
+			if (modelChanged) {
+				updateControllers();
+				updateSelectedFlows();
+				updateTopology();
+			}
+
+			updateHeader(newModel);
+
+			d3.select('#contents').style('visibility', 'visible');
+		}
+
+		// do it again in 1s
+		setTimeout(function () {
+			sync()
+		}, 1000);
+	});
+}
+
+// workaround for another Chrome v25 bug
+// viewbox transform stuff doesn't work in combination with browser zoom
+// also works in Chrome v27
+function zoomWorkaround() {
+	var zoom = window.document.body.clientWidth/window.document.width;
+	// workaround does not seem to be effective for transforming mouse coordinates
+	// map display does not use the transform stuff, so commenting out
+//	d3.select('#svg-container').style('zoom',  zoom);
+}
+
+d3.select(window).on('resize', zoomWorkaround);
+
+appInit(function () {
+	// workaround for Chrome v25 bug
+	// if executed immediately, the view box transform logic doesn't work properly
+	// fixed in Chrome v27
+	setTimeout(function () {
+		zoomWorkaround();
+		sync();
+	}, 100);
+});
+
+
diff --git a/sample/ONS2014demo/web/js/async.js b/sample/ONS2014demo/web/js/async.js
new file mode 100644
index 0000000..5b277cd
--- /dev/null
+++ b/sample/ONS2014demo/web/js/async.js
@@ -0,0 +1,947 @@
+/*global setImmediate: false, setTimeout: false, console: false */
+(function () {
+
+    var async = {};
+
+    // global on the server, window in the browser
+    var root, previous_async;
+
+    root = this;
+    if (root != null) {
+      previous_async = root.async;
+    }
+
+    async.noConflict = function () {
+        root.async = previous_async;
+        return async;
+    };
+
+    function only_once(fn) {
+        var called = false;
+        return function() {
+            if (called) throw new Error("Callback was already called.");
+            called = true;
+            fn.apply(root, arguments);
+        }
+    }
+
+    //// cross-browser compatiblity functions ////
+
+    var _each = function (arr, iterator) {
+        if (arr.forEach) {
+            return arr.forEach(iterator);
+        }
+        for (var i = 0; i < arr.length; i += 1) {
+            iterator(arr[i], i, arr);
+        }
+    };
+
+    var _map = function (arr, iterator) {
+        if (arr.map) {
+            return arr.map(iterator);
+        }
+        var results = [];
+        _each(arr, function (x, i, a) {
+            results.push(iterator(x, i, a));
+        });
+        return results;
+    };
+
+    var _reduce = function (arr, iterator, memo) {
+        if (arr.reduce) {
+            return arr.reduce(iterator, memo);
+        }
+        _each(arr, function (x, i, a) {
+            memo = iterator(memo, x, i, a);
+        });
+        return memo;
+    };
+
+    var _keys = function (obj) {
+        if (Object.keys) {
+            return Object.keys(obj);
+        }
+        var keys = [];
+        for (var k in obj) {
+            if (obj.hasOwnProperty(k)) {
+                keys.push(k);
+            }
+        }
+        return keys;
+    };
+
+    //// exported async module functions ////
+
+    //// nextTick implementation with browser-compatible fallback ////
+    if (typeof process === 'undefined' || !(process.nextTick)) {
+        if (typeof setImmediate === 'function') {
+            async.setImmediate = setImmediate;
+            async.nextTick = setImmediate;
+        }
+        else {
+            async.setImmediate = async.nextTick;
+            async.nextTick = function (fn) {
+                setTimeout(fn, 0);
+            };
+        }
+    }
+    else {
+        async.nextTick = process.nextTick;
+        async.setImmediate = setImmediate;
+    }
+
+    async.each = function (arr, iterator, callback) {
+        callback = callback || function () {};
+        if (!arr.length) {
+            return callback();
+        }
+        var completed = 0;
+        _each(arr, function (x) {
+            iterator(x, only_once(function (err) {
+                if (err) {
+                    callback(err);
+                    callback = function () {};
+                }
+                else {
+                    completed += 1;
+                    if (completed >= arr.length) {
+                        callback(null);
+                    }
+                }
+            }));
+        });
+    };
+    async.forEach = async.each;
+
+    async.eachSeries = function (arr, iterator, callback) {
+        callback = callback || function () {};
+        if (!arr.length) {
+            return callback();
+        }
+        var completed = 0;
+        var iterate = function () {
+            iterator(arr[completed], function (err) {
+                if (err) {
+                    callback(err);
+                    callback = function () {};
+                }
+                else {
+                    completed += 1;
+                    if (completed >= arr.length) {
+                        callback(null);
+                    }
+                    else {
+                        iterate();
+                    }
+                }
+            });
+        };
+        iterate();
+    };
+    async.forEachSeries = async.eachSeries;
+
+    async.eachLimit = function (arr, limit, iterator, callback) {
+        var fn = _eachLimit(limit);
+        fn.apply(null, [arr, iterator, callback]);
+    };
+    async.forEachLimit = async.eachLimit;
+
+    var _eachLimit = function (limit) {
+
+        return function (arr, iterator, callback) {
+            callback = callback || function () {};
+            if (!arr.length || limit <= 0) {
+                return callback();
+            }
+            var completed = 0;
+            var started = 0;
+            var running = 0;
+
+            (function replenish () {
+                if (completed >= arr.length) {
+                    return callback();
+                }
+
+                while (running < limit && started < arr.length) {
+                    started += 1;
+                    running += 1;
+                    iterator(arr[started - 1], function (err) {
+                        if (err) {
+                            callback(err);
+                            callback = function () {};
+                        }
+                        else {
+                            completed += 1;
+                            running -= 1;
+                            if (completed >= arr.length) {
+                                callback();
+                            }
+                            else {
+                                replenish();
+                            }
+                        }
+                    });
+                }
+            })();
+        };
+    };
+
+
+    var doParallel = function (fn) {
+        return function () {
+            var args = Array.prototype.slice.call(arguments);
+            return fn.apply(null, [async.each].concat(args));
+        };
+    };
+    var doParallelLimit = function(limit, fn) {
+        return function () {
+            var args = Array.prototype.slice.call(arguments);
+            return fn.apply(null, [_eachLimit(limit)].concat(args));
+        };
+    };
+    var doSeries = function (fn) {
+        return function () {
+            var args = Array.prototype.slice.call(arguments);
+            return fn.apply(null, [async.eachSeries].concat(args));
+        };
+    };
+
+
+    var _asyncMap = function (eachfn, arr, iterator, callback) {
+        var results = [];
+        arr = _map(arr, function (x, i) {
+            return {index: i, value: x};
+        });
+        eachfn(arr, function (x, callback) {
+            iterator(x.value, function (err, v) {
+                results[x.index] = v;
+                callback(err);
+            });
+        }, function (err) {
+            callback(err, results);
+        });
+    };
+    async.map = doParallel(_asyncMap);
+    async.mapSeries = doSeries(_asyncMap);
+    async.mapLimit = function (arr, limit, iterator, callback) {
+        return _mapLimit(limit)(arr, iterator, callback);
+    };
+
+    var _mapLimit = function(limit) {
+        return doParallelLimit(limit, _asyncMap);
+    };
+
+    // reduce only has a series version, as doing reduce in parallel won't
+    // work in many situations.
+    async.reduce = function (arr, memo, iterator, callback) {
+        async.eachSeries(arr, function (x, callback) {
+            iterator(memo, x, function (err, v) {
+                memo = v;
+                callback(err);
+            });
+        }, function (err) {
+            callback(err, memo);
+        });
+    };
+    // inject alias
+    async.inject = async.reduce;
+    // foldl alias
+    async.foldl = async.reduce;
+
+    async.reduceRight = function (arr, memo, iterator, callback) {
+        var reversed = _map(arr, function (x) {
+            return x;
+        }).reverse();
+        async.reduce(reversed, memo, iterator, callback);
+    };
+    // foldr alias
+    async.foldr = async.reduceRight;
+
+    var _filter = function (eachfn, arr, iterator, callback) {
+        var results = [];
+        arr = _map(arr, function (x, i) {
+            return {index: i, value: x};
+        });
+        eachfn(arr, function (x, callback) {
+            iterator(x.value, function (v) {
+                if (v) {
+                    results.push(x);
+                }
+                callback();
+            });
+        }, function (err) {
+            callback(_map(results.sort(function (a, b) {
+                return a.index - b.index;
+            }), function (x) {
+                return x.value;
+            }));
+        });
+    };
+    async.filter = doParallel(_filter);
+    async.filterSeries = doSeries(_filter);
+    // select alias
+    async.select = async.filter;
+    async.selectSeries = async.filterSeries;
+
+    var _reject = function (eachfn, arr, iterator, callback) {
+        var results = [];
+        arr = _map(arr, function (x, i) {
+            return {index: i, value: x};
+        });
+        eachfn(arr, function (x, callback) {
+            iterator(x.value, function (v) {
+                if (!v) {
+                    results.push(x);
+                }
+                callback();
+            });
+        }, function (err) {
+            callback(_map(results.sort(function (a, b) {
+                return a.index - b.index;
+            }), function (x) {
+                return x.value;
+            }));
+        });
+    };
+    async.reject = doParallel(_reject);
+    async.rejectSeries = doSeries(_reject);
+
+    var _detect = function (eachfn, arr, iterator, main_callback) {
+        eachfn(arr, function (x, callback) {
+            iterator(x, function (result) {
+                if (result) {
+                    main_callback(x);
+                    main_callback = function () {};
+                }
+                else {
+                    callback();
+                }
+            });
+        }, function (err) {
+            main_callback();
+        });
+    };
+    async.detect = doParallel(_detect);
+    async.detectSeries = doSeries(_detect);
+
+    async.some = function (arr, iterator, main_callback) {
+        async.each(arr, function (x, callback) {
+            iterator(x, function (v) {
+                if (v) {
+                    main_callback(true);
+                    main_callback = function () {};
+                }
+                callback();
+            });
+        }, function (err) {
+            main_callback(false);
+        });
+    };
+    // any alias
+    async.any = async.some;
+
+    async.every = function (arr, iterator, main_callback) {
+        async.each(arr, function (x, callback) {
+            iterator(x, function (v) {
+                if (!v) {
+                    main_callback(false);
+                    main_callback = function () {};
+                }
+                callback();
+            });
+        }, function (err) {
+            main_callback(true);
+        });
+    };
+    // all alias
+    async.all = async.every;
+
+    async.sortBy = function (arr, iterator, callback) {
+        async.map(arr, function (x, callback) {
+            iterator(x, function (err, criteria) {
+                if (err) {
+                    callback(err);
+                }
+                else {
+                    callback(null, {value: x, criteria: criteria});
+                }
+            });
+        }, function (err, results) {
+            if (err) {
+                return callback(err);
+            }
+            else {
+                var fn = function (left, right) {
+                    var a = left.criteria, b = right.criteria;
+                    return a < b ? -1 : a > b ? 1 : 0;
+                };
+                callback(null, _map(results.sort(fn), function (x) {
+                    return x.value;
+                }));
+            }
+        });
+    };
+
+    async.auto = function (tasks, callback) {
+        callback = callback || function () {};
+        var keys = _keys(tasks);
+        if (!keys.length) {
+            return callback(null);
+        }
+
+        var results = {};
+
+        var listeners = [];
+        var addListener = function (fn) {
+            listeners.unshift(fn);
+        };
+        var removeListener = function (fn) {
+            for (var i = 0; i < listeners.length; i += 1) {
+                if (listeners[i] === fn) {
+                    listeners.splice(i, 1);
+                    return;
+                }
+            }
+        };
+        var taskComplete = function () {
+            _each(listeners.slice(0), function (fn) {
+                fn();
+            });
+        };
+
+        addListener(function () {
+            if (_keys(results).length === keys.length) {
+                callback(null, results);
+                callback = function () {};
+            }
+        });
+
+        _each(keys, function (k) {
+            var task = (tasks[k] instanceof Function) ? [tasks[k]]: tasks[k];
+            var taskCallback = function (err) {
+                var args = Array.prototype.slice.call(arguments, 1);
+                if (args.length <= 1) {
+                    args = args[0];
+                }
+                if (err) {
+                    var safeResults = {};
+                    _each(_keys(results), function(rkey) {
+                        safeResults[rkey] = results[rkey];
+                    });
+                    safeResults[k] = args;
+                    callback(err, safeResults);
+                    // stop subsequent errors hitting callback multiple times
+                    callback = function () {};
+                }
+                else {
+                    results[k] = args;
+                    async.setImmediate(taskComplete);
+                }
+            };
+            var requires = task.slice(0, Math.abs(task.length - 1)) || [];
+            var ready = function () {
+                return _reduce(requires, function (a, x) {
+                    return (a && results.hasOwnProperty(x));
+                }, true) && !results.hasOwnProperty(k);
+            };
+            if (ready()) {
+                task[task.length - 1](taskCallback, results);
+            }
+            else {
+                var listener = function () {
+                    if (ready()) {
+                        removeListener(listener);
+                        task[task.length - 1](taskCallback, results);
+                    }
+                };
+                addListener(listener);
+            }
+        });
+    };
+
+    async.waterfall = function (tasks, callback) {
+        callback = callback || function () {};
+        if (tasks.constructor !== Array) {
+          var err = new Error('First argument to waterfall must be an array of functions');
+          return callback(err);
+        }
+        if (!tasks.length) {
+            return callback();
+        }
+        var wrapIterator = function (iterator) {
+            return function (err) {
+                if (err) {
+                    callback.apply(null, arguments);
+                    callback = function () {};
+                }
+                else {
+                    var args = Array.prototype.slice.call(arguments, 1);
+                    var next = iterator.next();
+                    if (next) {
+                        args.push(wrapIterator(next));
+                    }
+                    else {
+                        args.push(callback);
+                    }
+                    async.setImmediate(function () {
+                        iterator.apply(null, args);
+                    });
+                }
+            };
+        };
+        wrapIterator(async.iterator(tasks))();
+    };
+
+    var _parallel = function(eachfn, tasks, callback) {
+        callback = callback || function () {};
+        if (tasks.constructor === Array) {
+            eachfn.map(tasks, function (fn, callback) {
+                if (fn) {
+                    fn(function (err) {
+                        var args = Array.prototype.slice.call(arguments, 1);
+                        if (args.length <= 1) {
+                            args = args[0];
+                        }
+                        callback.call(null, err, args);
+                    });
+                }
+            }, callback);
+        }
+        else {
+            var results = {};
+            eachfn.each(_keys(tasks), function (k, callback) {
+                tasks[k](function (err) {
+                    var args = Array.prototype.slice.call(arguments, 1);
+                    if (args.length <= 1) {
+                        args = args[0];
+                    }
+                    results[k] = args;
+                    callback(err);
+                });
+            }, function (err) {
+                callback(err, results);
+            });
+        }
+    };
+
+    async.parallel = function (tasks, callback) {
+        _parallel({ map: async.map, each: async.each }, tasks, callback);
+    };
+
+    async.parallelLimit = function(tasks, limit, callback) {
+        _parallel({ map: _mapLimit(limit), each: _eachLimit(limit) }, tasks, callback);
+    };
+
+    async.series = function (tasks, callback) {
+        callback = callback || function () {};
+        if (tasks.constructor === Array) {
+            async.mapSeries(tasks, function (fn, callback) {
+                if (fn) {
+                    fn(function (err) {
+                        var args = Array.prototype.slice.call(arguments, 1);
+                        if (args.length <= 1) {
+                            args = args[0];
+                        }
+                        callback.call(null, err, args);
+                    });
+                }
+            }, callback);
+        }
+        else {
+            var results = {};
+            async.eachSeries(_keys(tasks), function (k, callback) {
+                tasks[k](function (err) {
+                    var args = Array.prototype.slice.call(arguments, 1);
+                    if (args.length <= 1) {
+                        args = args[0];
+                    }
+                    results[k] = args;
+                    callback(err);
+                });
+            }, function (err) {
+                callback(err, results);
+            });
+        }
+    };
+
+    async.iterator = function (tasks) {
+        var makeCallback = function (index) {
+            var fn = function () {
+                if (tasks.length) {
+                    tasks[index].apply(null, arguments);
+                }
+                return fn.next();
+            };
+            fn.next = function () {
+                return (index < tasks.length - 1) ? makeCallback(index + 1): null;
+            };
+            return fn;
+        };
+        return makeCallback(0);
+    };
+
+    async.apply = function (fn) {
+        var args = Array.prototype.slice.call(arguments, 1);
+        return function () {
+            return fn.apply(
+                null, args.concat(Array.prototype.slice.call(arguments))
+            );
+        };
+    };
+
+    var _concat = function (eachfn, arr, fn, callback) {
+        var r = [];
+        eachfn(arr, function (x, cb) {
+            fn(x, function (err, y) {
+                r = r.concat(y || []);
+                cb(err);
+            });
+        }, function (err) {
+            callback(err, r);
+        });
+    };
+    async.concat = doParallel(_concat);
+    async.concatSeries = doSeries(_concat);
+
+    async.whilst = function (test, iterator, callback) {
+        if (test()) {
+            iterator(function (err) {
+                if (err) {
+                    return callback(err);
+                }
+                async.whilst(test, iterator, callback);
+            });
+        }
+        else {
+            callback();
+        }
+    };
+
+    async.doWhilst = function (iterator, test, callback) {
+        iterator(function (err) {
+            if (err) {
+                return callback(err);
+            }
+            if (test()) {
+                async.doWhilst(iterator, test, callback);
+            }
+            else {
+                callback();
+            }
+        });
+    };
+
+    async.until = function (test, iterator, callback) {
+        if (!test()) {
+            iterator(function (err) {
+                if (err) {
+                    return callback(err);
+                }
+                async.until(test, iterator, callback);
+            });
+        }
+        else {
+            callback();
+        }
+    };
+
+    async.doUntil = function (iterator, test, callback) {
+        iterator(function (err) {
+            if (err) {
+                return callback(err);
+            }
+            if (!test()) {
+                async.doUntil(iterator, test, callback);
+            }
+            else {
+                callback();
+            }
+        });
+    };
+
+    async.queue = function (worker, concurrency) {
+        if (concurrency === undefined) {
+            concurrency = 1;
+        }
+        function _insert(q, data, pos, callback) {
+          if(data.constructor !== Array) {
+              data = [data];
+          }
+          _each(data, function(task) {
+              var item = {
+                  data: task,
+                  callback: typeof callback === 'function' ? callback : null
+              };
+
+              if (pos) {
+                q.tasks.unshift(item);
+              } else {
+                q.tasks.push(item);
+              }
+
+              if (q.saturated && q.tasks.length === concurrency) {
+                  q.saturated();
+              }
+              async.setImmediate(q.process);
+          });
+        }
+
+        var workers = 0;
+        var q = {
+            tasks: [],
+            concurrency: concurrency,
+            saturated: null,
+            empty: null,
+            drain: null,
+            push: function (data, callback) {
+              _insert(q, data, false, callback);
+            },
+            unshift: function (data, callback) {
+              _insert(q, data, true, callback);
+            },
+            process: function () {
+                if (workers < q.concurrency && q.tasks.length) {
+                    var task = q.tasks.shift();
+                    if (q.empty && q.tasks.length === 0) {
+                        q.empty();
+                    }
+                    workers += 1;
+                    var next = function () {
+                        workers -= 1;
+                        if (task.callback) {
+                            task.callback.apply(task, arguments);
+                        }
+                        if (q.drain && q.tasks.length + workers === 0) {
+                            q.drain();
+                        }
+                        q.process();
+                    };
+                    var cb = only_once(next);
+                    worker(task.data, cb);
+                }
+            },
+            length: function () {
+                return q.tasks.length;
+            },
+            running: function () {
+                return workers;
+            }
+        };
+        return q;
+    };
+
+    async.cargo = function (worker, payload) {
+        var working     = false,
+            tasks       = [];
+
+        var cargo = {
+            tasks: tasks,
+            payload: payload,
+            saturated: null,
+            empty: null,
+            drain: null,
+            push: function (data, callback) {
+                if(data.constructor !== Array) {
+                    data = [data];
+                }
+                _each(data, function(task) {
+                    tasks.push({
+                        data: task,
+                        callback: typeof callback === 'function' ? callback : null
+                    });
+                    if (cargo.saturated && tasks.length === payload) {
+                        cargo.saturated();
+                    }
+                });
+                async.setImmediate(cargo.process);
+            },
+            process: function process() {
+                if (working) return;
+                if (tasks.length === 0) {
+                    if(cargo.drain) cargo.drain();
+                    return;
+                }
+
+                var ts = typeof payload === 'number'
+                            ? tasks.splice(0, payload)
+                            : tasks.splice(0);
+
+                var ds = _map(ts, function (task) {
+                    return task.data;
+                });
+
+                if(cargo.empty) cargo.empty();
+                working = true;
+                worker(ds, function () {
+                    working = false;
+
+                    var args = arguments;
+                    _each(ts, function (data) {
+                        if (data.callback) {
+                            data.callback.apply(null, args);
+                        }
+                    });
+
+                    process();
+                });
+            },
+            length: function () {
+                return tasks.length;
+            },
+            running: function () {
+                return working;
+            }
+        };
+        return cargo;
+    };
+
+    var _console_fn = function (name) {
+        return function (fn) {
+            var args = Array.prototype.slice.call(arguments, 1);
+            fn.apply(null, args.concat([function (err) {
+                var args = Array.prototype.slice.call(arguments, 1);
+                if (typeof console !== 'undefined') {
+                    if (err) {
+                        if (console.error) {
+                            console.error(err);
+                        }
+                    }
+                    else if (console[name]) {
+                        _each(args, function (x) {
+                            console[name](x);
+                        });
+                    }
+                }
+            }]));
+        };
+    };
+    async.log = _console_fn('log');
+    async.dir = _console_fn('dir');
+    /*async.info = _console_fn('info');
+    async.warn = _console_fn('warn');
+    async.error = _console_fn('error');*/
+
+    async.memoize = function (fn, hasher) {
+        var memo = {};
+        var queues = {};
+        hasher = hasher || function (x) {
+            return x;
+        };
+        var memoized = function () {
+            var args = Array.prototype.slice.call(arguments);
+            var callback = args.pop();
+            var key = hasher.apply(null, args);
+            if (key in memo) {
+                callback.apply(null, memo[key]);
+            }
+            else if (key in queues) {
+                queues[key].push(callback);
+            }
+            else {
+                queues[key] = [callback];
+                fn.apply(null, args.concat([function () {
+                    memo[key] = arguments;
+                    var q = queues[key];
+                    delete queues[key];
+                    for (var i = 0, l = q.length; i < l; i++) {
+                      q[i].apply(null, arguments);
+                    }
+                }]));
+            }
+        };
+        memoized.memo = memo;
+        memoized.unmemoized = fn;
+        return memoized;
+    };
+
+    async.unmemoize = function (fn) {
+      return function () {
+        return (fn.unmemoized || fn).apply(null, arguments);
+      };
+    };
+
+    async.times = function (count, iterator, callback) {
+        var counter = [];
+        for (var i = 0; i < count; i++) {
+            counter.push(i);
+        }
+        return async.map(counter, iterator, callback);
+    };
+
+    async.timesSeries = function (count, iterator, callback) {
+        var counter = [];
+        for (var i = 0; i < count; i++) {
+            counter.push(i);
+        }
+        return async.mapSeries(counter, iterator, callback);
+    };
+
+    async.compose = function (/* functions... */) {
+        var fns = Array.prototype.reverse.call(arguments);
+        return function () {
+            var that = this;
+            var args = Array.prototype.slice.call(arguments);
+            var callback = args.pop();
+            async.reduce(fns, args, function (newargs, fn, cb) {
+                fn.apply(that, newargs.concat([function () {
+                    var err = arguments[0];
+                    var nextargs = Array.prototype.slice.call(arguments, 1);
+                    cb(err, nextargs);
+                }]))
+            },
+            function (err, results) {
+                callback.apply(that, [err].concat(results));
+            });
+        };
+    };
+
+    var _applyEach = function (eachfn, fns /*args...*/) {
+        var go = function () {
+            var that = this;
+            var args = Array.prototype.slice.call(arguments);
+            var callback = args.pop();
+            return eachfn(fns, function (fn, cb) {
+                fn.apply(that, args.concat([cb]));
+            },
+            callback);
+        };
+        if (arguments.length > 2) {
+            var args = Array.prototype.slice.call(arguments, 2);
+            return go.apply(this, args);
+        }
+        else {
+            return go;
+        }
+    };
+    async.applyEach = doParallel(_applyEach);
+    async.applyEachSeries = doSeries(_applyEach);
+
+    async.forever = function (fn, callback) {
+        function next(err) {
+            if (err) {
+                if (callback) {
+                    return callback(err);
+                }
+                throw err;
+            }
+            fn(next);
+        }
+        next();
+    };
+
+    // AMD / RequireJS
+    if (typeof define !== 'undefined' && define.amd) {
+        define([], function () {
+            return async;
+        });
+    }
+    // Node.js
+    else if (typeof module !== 'undefined' && module.exports) {
+        module.exports = async;
+    }
+    // included directly via <script> tag
+    else {
+        root.async = async;
+    }
+
+}());
\ No newline at end of file
diff --git a/sample/ONS2014demo/web/js/constants.js b/sample/ONS2014demo/web/js/constants.js
new file mode 100644
index 0000000..236d79a
--- /dev/null
+++ b/sample/ONS2014demo/web/js/constants.js
@@ -0,0 +1,31 @@
+/***************************************************************************************************
+timeout used by controller functions. after the timeout expires the "pending" action
+is removed and the topology view is whatever is reported by the API
+***************************************************************************************************/
+/* var pendingTimeout = 30000; */
+var pendingTimeout = 60000;
+
+/***************************************************************************************************
+CSS names for the pallette of colors used by the topology view
+***************************************************************************************************/
+var colors = [
+	'color1',
+	'color2',
+	'color3',
+	'color4',
+	'color7',
+	'color8',
+	'color9',
+//	'color11',
+	'color12'
+];
+colors.reverse();
+
+/***************************************************************************************************
+Widths of each switch type
+***************************************************************************************************/
+var widths = {
+	edge: 6,
+	aggregation: 16,
+	core: 20
+}
diff --git a/sample/ONS2014demo/web/js/controller.js b/sample/ONS2014demo/web/js/controller.js
new file mode 100644
index 0000000..fb516ae
--- /dev/null
+++ b/sample/ONS2014demo/web/js/controller.js
@@ -0,0 +1,122 @@
+/*global d3*/
+
+function callURL(url, cb) {
+	d3.text(url, function (error, result) {
+		if (error) {
+			console.log(url + ' : ' + error.status);
+		} else {
+			if (cb) {
+				cb(result);
+			}
+//			console.log(result);
+		}
+	});
+}
+
+function MAC(dpid) {
+	var cmps = dpid.split(':');
+	var MAC = '00:00:c0:a8:' + [cmps[6], cmps[7]].join(':');
+	return MAC;
+}
+
+var controllerFunctions = {
+	linkCmd: function (cmd, link) {
+		var url = '/proxy/gui/link/' + [cmd, link['src-switch'], link['src-port'], link['dst-switch'], link['dst-port']].join('/');
+		callURL(url);
+
+	},
+	switchCmd: function (cmd, s) {
+		var url = '/proxy/gui/switch/' + [cmd, s.dpid].join('/');
+		callURL(url);
+	},
+	ctrlCmd: function (cmd, c) {
+		var url = '/proxy/gui/controller/' + [cmd, c].join('/');
+		callURL(url);
+	},
+	addFlowCmd: function (src, dst) {
+		var url = '/proxy/gui/addflow/' + [src.dpid, 1, dst.dpid, 1, MAC(src.dpid), MAC(dst.dpid)].join('/');
+		callURL(url);
+	},
+	delFlowCmd: function (flow) {
+		var url = '/proxy/gui/delflow/' + flow.flowId;
+		callURL(url);
+	},
+	startIPerfCmd: function (flow, duration, numSamples) {
+		var flowId = parseInt(flow.flowId, 16);
+		var url = '/proxy/gui/iperf/start/' + [flowId, duration, numSamples].join('/');
+		callURL(url)
+	},
+	getIPerfDataCmd: function (flow, cb) {
+		var flowId = parseInt(flow.flowId, 16);
+		var url = '/proxy/gui/iperf/rate/' + flowId;
+		callURL(url, cb);
+	},
+	switchControllerCmd: function (cmd) {
+		var url = '/proxy/gui/switchctrl/' + cmd;
+		callURL(url);
+	},
+	resetCmd: function () {
+		var url = '/proxy/gui/reset';
+		callURL(url);
+	},
+	scaleCmd: function () {
+		var url = '/proxy/gui/scale';
+		callURL(url);
+	}
+};
+
+function linkUp(link) {
+	controllerFunctions.linkCmd('up', link);
+}
+
+function linkDown(link) {
+	controllerFunctions.linkCmd('down', link);
+}
+
+function switchUp(s) {
+	controllerFunctions.switchCmd('up', s);
+}
+
+function switchDown(s) {
+	controllerFunctions.switchCmd('down', s);
+}
+
+function controllerUp(c) {
+	controllerFunctions.ctrlCmd('up', c);
+}
+
+function controllerDown(c) {
+	controllerFunctions.ctrlCmd('down', c);
+}
+
+function addFlow(src, dst) {
+	controllerFunctions.addFlowCmd(src, dst);
+}
+
+function deleteFlow(flow) {
+	controllerFunctions.delFlowCmd(flow);
+}
+
+function startIPerf(flow, duration, numSamples) {
+	controllerFunctions.startIPerfCmd(flow, duration, numSamples);
+}
+
+function getIPerfData(flow, cb) {
+	controllerFunctions.getIPerfDataCmd(flow, cb);
+}
+
+function switchLocal() {
+	controllerFunctions.switchControllerCmd('local');
+}
+function switchAll() {
+	controllerFunctions.switchControllerCmd('all');
+}
+
+function resetNetwork() {
+	controllerFunctions.resetCmd();
+}
+
+function scaleNetwork() {
+	controllerFunctions.scaleCmd();;
+}
+
diff --git a/sample/ONS2014demo/web/js/controllers.js b/sample/ONS2014demo/web/js/controllers.js
new file mode 100644
index 0000000..501ac1d
--- /dev/null
+++ b/sample/ONS2014demo/web/js/controllers.js
@@ -0,0 +1,71 @@
+function updateControllers() {
+	var controllers = d3.select('#controllers').selectAll('.controller').data(model.controllers);
+	controllers.enter().append('div')
+		.each(function (c) {
+			controllerColorMap[c] = colors.pop();
+			d3.select(document.body).classed(controllerColorMap[c] + '-selected', true);
+		})
+		.text(function (d) {
+			return d;
+		})
+		.append('div')
+		.attr('class', 'black-eye');
+
+	controllers.attr('class', function (d) {
+			var color = 'colorInactive';
+			if (model.activeControllers.indexOf(d) != -1) {
+				color = controllerColorMap[d];
+			}
+			var className = 'controller ' + color;
+			return className;
+		});
+
+	// this should never be needed
+	// controllers.exit().remove();
+
+	controllers.on('dblclick', function (c) {
+		if (model.activeControllers.indexOf(c) != -1) {
+			var prompt = 'Dectivate ' + c + '?';
+			var that = this;
+			doConfirm(prompt, function (result) {
+				if (result) {
+					controllerDown(c);
+					setPending(d3.select(that));
+				};
+			})
+		} else {
+			var prompt = 'Activate ' + c + '?';
+			var that = this;
+			doConfirm(prompt, function (result) {
+				if (result) {
+					controllerUp(c);
+					setPending(d3.select(that));
+				};
+			});
+		}
+	});
+
+	controllers.select('.black-eye').on('click', function (c) {
+		var allSelected = true;
+		for (var key in controllerColorMap) {
+			if (!d3.select(document.body).classed(controllerColorMap[key] + '-selected')) {
+				allSelected = false;
+				break;
+			}
+		}
+		if (allSelected) {
+			for (var key in controllerColorMap) {
+				d3.select(document.body).classed(controllerColorMap[key] + '-selected', key == c)
+			}
+		} else {
+			for (var key in controllerColorMap) {
+				d3.select(document.body).classed(controllerColorMap[key] + '-selected', true)
+			}
+		}
+
+		// var selected = d3.select(document.body).classed(controllerColorMap[c] + '-selected');
+		// d3.select(document.body).classed(controllerColorMap[c] + '-selected', !selected);
+	});
+
+
+}
\ No newline at end of file
diff --git a/sample/ONS2014demo/web/js/debug.js b/sample/ONS2014demo/web/js/debug.js
new file mode 100644
index 0000000..3d3b302
--- /dev/null
+++ b/sample/ONS2014demo/web/js/debug.js
@@ -0,0 +1,31 @@
+/***************************************************************************************************
+find the links that include the switch with this dpid
+***************************************************************************************************/
+function debug_findlink(model, dpid) {
+	var links = [];
+	model.links.forEach(function (link) {
+		if (link['src-switch'] == dpid || link['dst-switch'] == dpid) {
+			links.push(link);
+		}
+	});
+	return links;
+}
+
+function debug_findswitch(model, dpid) {
+	var sw;
+
+	model.edgeSwitches.forEach(function (s) {
+		if (s.dpid == dpid)
+			sw = s;
+	});
+	model.aggregationSwitches.forEach(function (s) {
+		if (s.dpid == dpid)
+			sw = s;
+	});
+	model.coreSwitches.forEach(function (s) {
+		if (s.dpid == dpid)
+			sw = s;
+	});
+
+	return sw;
+}
\ No newline at end of file
diff --git a/sample/ONS2014demo/web/js/flows.js b/sample/ONS2014demo/web/js/flows.js
new file mode 100644
index 0000000..9f72fe2
--- /dev/null
+++ b/sample/ONS2014demo/web/js/flows.js
@@ -0,0 +1,361 @@
+function startFlowAnimation(flow) {
+//	console.log('starting animation for flow: ' + flow.flowId);
+
+	var flowSelection = d3.select(document.getElementById(makeFlowKey(flow)));
+	if (flowSelection.select('animate').empty()) {
+		flowSelection.append('svg:animate')
+			.attr('attributeName', 'stroke-dashoffset')
+			.attr('attributeType', 'xml')
+			.attr('from', '500')
+			.attr('to', '-500')
+			.attr('dur', '20s')
+			.attr('repeatCount', 'indefinite');
+	}
+}
+
+function stopFlowAnimation(flow) {
+	var flowSelection = d3.select(document.getElementById(makeFlowKey(flow)));
+	flowSelection.select('animate').remove();
+}
+
+
+function updateSelectedFlowsTopology() {
+	// DRAW THE FLOWS
+	var topologyFlows = [];
+	selectedFlows.forEach(function (flow) {
+		if (flow) {
+			topologyFlows.push(flow);
+		}
+	});
+
+	var flows = flowLayer.selectAll('.flow').data(topologyFlows, function (d) {
+		return d.flowId;
+	});
+
+	flows.enter().append("svg:path").attr('class', 'flow')
+		.attr('stroke-dasharray', '4, 10')
+
+	flows.exit().remove();
+
+	flows.attr('d', function (d) {
+			if (!d) {
+				return;
+			}
+			var pts = [];
+			if (d.createPending) {
+				// create a temporary vector to indicate the pending flow
+				var s1 = d3.select(document.getElementById(d.srcDpid));
+				var s2 = d3.select(document.getElementById(d.dstDpid));
+
+				var pt1 = document.querySelector('svg').createSVGPoint();
+				pt1.x = s1.attr('x');
+				pt1.y = s1.attr('y');
+				if (drawingRings) {
+					pt1 = pt1.matrixTransform(s1[0][0].getCTM());
+				}
+				pts.push(pt1);
+
+				var pt2 = document.querySelector('svg').createSVGPoint();
+				pt2.x = s2.attr('x');
+				pt2.y = s2.attr('y');
+				if (drawingRings) {
+					pt2 = pt2.matrixTransform(s2[0][0].getCTM());
+				}
+				pts.push(pt2);
+
+			} else if (d.dataPath && d.dataPath.flowEntries) {
+				d.dataPath.flowEntries.forEach(function (flowEntry) {
+					var s = d3.select(document.getElementById(flowEntry.dpid.value));
+					// s[0] is null if the flow entry refers to a non-existent switch
+					if (s[0][0]) {
+						var pt = document.querySelector('svg').createSVGPoint();
+						pt.x = s.attr('x');
+						pt.y = s.attr('y');
+						if (drawingRings) {
+							pt = pt.matrixTransform(s[0][0].getCTM());
+						}
+						pts.push(pt);
+					} else {
+						console.log('flow refers to non-existent switch: ' + flowEntry.dpid.value);
+					}
+				});
+			}
+			if (pts.length) {
+				return line(pts);
+			} else {
+				return "M0,0";
+			}
+		})
+		.attr('id', function (d) {
+			if (d) {
+				return makeFlowKey(d);
+			}
+		})
+		.classed('pending', function (d) {
+			return d && (d.createPending || d.deletePending);
+		});
+}
+
+function updateSelectedFlowsTable() {
+	function rowEnter(d) {
+		var row = d3.select(this);
+		row.append('div').classed('deleteFlow', true);
+		row.append('div').classed('flowId', true);
+		row.append('div').classed('srcDPID', true);
+		row.append('div').classed('dstDPID', true);
+		row.append('div').classed('iperf', true);
+
+		row.select('.iperf')
+			.append('div')
+			.attr('class', 'iperf-container')
+			.append('svg:svg')
+			.attr('viewBox', '0 0 1000 32')
+			.attr('preserveAspectRatio', 'none')
+			.append('svg:g')
+			.append('svg:path')
+			.attr('class', 'iperfdata');
+
+		row.on('mouseover', function (d) {
+			if (d) {
+				var path = document.getElementById(makeFlowKey(d));
+				d3.select(path).classed('highlight', true);
+			}
+		});
+		row.on('mouseout', function (d) {
+			if (d) {
+				var path = document.getElementById(makeFlowKey(d));
+				d3.select(path).classed('highlight', false);
+			}
+		});
+	}
+
+	function rowUpdate(d) {
+		var row = d3.select(this);
+		row.attr('id', function (d) {
+			if (d) {
+				return makeSelectedFlowKey(d);
+			}
+		});
+
+		if (!d || !hasIPerf(d)) {
+			row.select('.iperfdata')
+				.attr('d', 'M0,0');
+		}
+
+		row.select('.deleteFlow').on('click', function () {
+			deselectFlow(d);
+		});
+		row.on('dblclick', function () {
+			if (d) {
+				var prompt = 'Delete flow ' + d.flowId + '?';
+				doConfirm(prompt, function (result) {
+					if (result) {
+						deleteFlow(d);
+						d.deletePending = true;
+						updateSelectedFlows();
+
+						setTimeout(function () {
+							d.deletePending = false;
+							updateSelectedFlows();
+						}, pendingTimeout)
+					};
+				});
+			}
+		});
+
+		row.select('.flowId')
+			.text(function (d) {
+				if (d) {
+					if (d.flowId) {
+						return d.flowId;
+					} else {
+						return '0x--';
+					}
+				}
+			})
+			.classed('pending', function (d) {
+				return d && (d.createPending || d.deletePending);
+			});
+
+		row.select('.srcDPID')
+			.text(function (d) {
+				if (d) {
+					return d.srcDpid;
+				}
+			});
+
+		row.select('.dstDPID')
+			.text(function (d) {
+				if (d) {
+					return d.dstDpid;
+				}
+			});
+	}
+
+	var flows = d3.select('#selectedFlows')
+		.selectAll('.selectedFlow')
+		.data(selectedFlows);
+
+	flows.enter()
+		.append('div')
+		.classed('selectedFlow', true)
+		.each(rowEnter);
+
+	flows.each(rowUpdate);
+
+	flows.exit().remove();
+}
+
+function updateSelectedFlows() {
+	// make sure that all of the selected flows are either
+	// 1) valid (meaning they are in the latest list of flows)
+	// 2) pending
+	if (model) {
+		var flowMap = {};
+		model.flows.forEach(function (flow) {
+			flowMap[makeFlowKey(flow)] = flow;
+		});
+
+		var newSelectedFlows = [];
+		selectedFlows.forEach(function (flow) {
+			if (flow) {
+				var liveFlow = flowMap[makeFlowKey(flow)];
+				if (liveFlow) {
+					flow.flowId = liveFlow.flowId;
+					if (flow.createPending) {
+						startIPerfForFlow(flow);
+						flow.createPending = false;
+					}
+					flow.dataPath = liveFlow.dataPath;
+					newSelectedFlows.push(flow);
+				} else if (flow.createPending) {
+					newSelectedFlows.push(flow);
+				} else if (hasIPerf(flow)) {
+					clearIPerf(flow);
+				}
+			}
+		});
+		selectedFlows = newSelectedFlows;
+	}
+	selectedFlows.forEach(function (flow) {
+		if (!hasIPerf(flow)) {
+			startIPerfForFlow(flow);
+		}
+	});
+	while (selectedFlows.length < 3) {
+		selectedFlows.push(null);
+	}
+
+	updateSelectedFlowsTable();
+	// on app init, the table is updated before the svg is constructed
+	if (flowLayer) {
+		updateSelectedFlowsTopology();
+	}
+}
+
+function selectFlow(flow) {
+	var flowKey = makeFlowKey(flow);
+	var alreadySelected = false;
+	selectedFlows.forEach(function (f) {
+		if (f && makeFlowKey(f) === flowKey) {
+			alreadySelected = true;
+		}
+	});
+
+	if (!alreadySelected) {
+		selectedFlows.unshift(flow);
+		selectedFlows = selectedFlows.slice(0, 3);
+		updateSelectedFlows();
+	}
+}
+
+function deselectFlow(flow, ifCreatePending) {
+	if (!flow) {
+		return;
+	}
+
+	var flowKey = makeFlowKey(flow);
+	var newSelectedFlows = [];
+	selectedFlows.forEach(function (flow) {
+		if (!flow ||
+				flowKey !== makeFlowKey(flow) ||
+				flowKey === makeFlowKey(flow) && ifCreatePending && !flow.createPending ) {
+			newSelectedFlows.push(flow);
+		} else {
+			if (hasIPerf(flow)) {
+				clearIPerf(flow);
+			}
+		}
+	});
+	selectedFlows = newSelectedFlows;
+	while (selectedFlows.length < 3) {
+		selectedFlows.push(null);
+	}
+
+	updateSelectedFlows();
+}
+
+function deselectFlowIfCreatePending(flow) {
+	deselectFlow(flow, true);
+}
+
+function showFlowChooser() {
+	function rowEnter(d) {
+		var row = d3.select(this);
+
+		row.append('div')
+			.classed('black-eye', true).
+			on('click', function () {
+				selectFlow(d);
+			});
+
+		row.append('div')
+			.classed('flowId', true)
+			.text(function (d) {
+				return d.flowId;
+			});
+
+		row.append('div')
+			.classed('srcDPID', true)
+			.text(function (d) {
+				return d.srcDpid;
+			});
+
+
+		row.append('div')
+			.classed('dstDPID', true)
+			.text(function (d) {
+				return d.dstDpid;
+			});
+
+	}
+
+	var flowChooser = d3.select(document.getElementById('flowChooser'));
+	flowChooser.html('');
+	flowChooser.style('-webkit-transform', 'translate3d(-100%, 0, 0)')
+		.style('-webkit-transition');
+
+	var flows = flowChooser
+		.append('div')
+		.style('pointer-events', 'auto')
+		.selectAll('.selectedFlow')
+		.data(model.flows)
+		.enter()
+		.append('div')
+		.classed('selectedFlow', true)
+		.each(rowEnter);
+
+
+	setTimeout(function () {
+		flowChooser.style('-webkit-transition', '-webkit-transform .25s');
+		setTimeout(function () {
+			flowChooser.style('-webkit-transform', 'translate3d(0,0,0)');
+		}, 0);
+
+
+		d3.select(document.body).on('click', function () {
+			flowChooser.style('-webkit-transform', 'translate3d(-100%, 0, 0)')
+			d3.select(document.body).on('click', null);
+		});
+	}, 0);
+}
diff --git a/sample/ONS2014demo/web/js/forward.js b/sample/ONS2014demo/web/js/forward.js
new file mode 100644
index 0000000..5e854ee
--- /dev/null
+++ b/sample/ONS2014demo/web/js/forward.js
@@ -0,0 +1,12 @@
+/***************************************************************************************************
+forward declarations for functions
+***************************************************************************************************/
+
+var updateTopology;
+
+
+/***************************************************************************************************
+defined by whichever topology module is included
+***************************************************************************************************/
+var createTopologyView;
+var drawTopology;
diff --git a/sample/ONS2014demo/web/js/globals.js b/sample/ONS2014demo/web/js/globals.js
new file mode 100644
index 0000000..2063ba5
--- /dev/null
+++ b/sample/ONS2014demo/web/js/globals.js
@@ -0,0 +1,57 @@
+/***************************************************************************************************
+global variables
+***************************************************************************************************/
+
+
+/***************************************************************************************************
+the latest update to the model
+***************************************************************************************************/
+var model;
+
+/***************************************************************************************************
+cached JSON representation of the model. used to detect model changes and update the UI.
+***************************************************************************************************/
+var modelString;
+
+/***************************************************************************************************
+the root element for the topology view
+***************************************************************************************************/
+var topology;
+
+/***************************************************************************************************
+links that were created in the webui but which have not appeared in the links API response yet
+these timeout after pendingTimeout
+***************************************************************************************************/
+var pendingLinks = {};
+
+/***************************************************************************************************
+current links including pending
+***************************************************************************************************/
+var links;
+
+/***************************************************************************************************
+a map from srcDPID => map of dstDPID=>link
+***************************************************************************************************/
+var linkMap;
+
+/***************************************************************************************************
+the flows that are displayed in the selected flow table
+this may include pending flows which have not appeared in the flows API response yet
+***************************************************************************************************/
+var selectedFlows = [];
+
+/***************************************************************************************************
+a mapping from controller name to color used for color coding the topology and ONOS nodes views
+***************************************************************************************************/
+var controllerColorMap = {};
+
+/***************************************************************************************************
+defined by rings.js or map.js this is where the flows are drawn.
+***************************************************************************************************/
+var flowLayer;
+
+/***************************************************************************************************
+hack to make the old ring drawing code compatible with the shared flow drawing code
+will be obsoleted once the ring drawing code is disposed of
+***************************************************************************************************/
+var drawingRings;
\ No newline at end of file
diff --git a/sample/ONS2014demo/web/js/init.js b/sample/ONS2014demo/web/js/init.js
new file mode 100644
index 0000000..2df38eb
--- /dev/null
+++ b/sample/ONS2014demo/web/js/init.js
@@ -0,0 +1,55 @@
+function appInit(cb) {
+
+	// populates selected flows with empty rows
+	updateSelectedFlows();
+
+	d3.select('#showFlowChooser').on('click', function () {
+		showFlowChooser();
+	});
+
+	d3.select('#action-all').on('click', function () {
+		var prompt = "Add backup controllers?"
+		doConfirm(prompt, function (result) {
+			if (result) {
+				switchAll();
+			}
+		});
+	});
+
+	d3.select('#action-local').on('click', function () {
+		var prompt = "Switch controllers to local?"
+		doConfirm(prompt, function (result) {
+			if (result) {
+				switchLocal();
+			}
+		});
+	});
+
+	d3.select('#action-scale').on('click', function () {
+		var prompt = "Scale network?"
+		doConfirm(prompt, function (result) {
+			if (result) {
+				scaleNetwork();
+			}
+		});
+	});
+
+	d3.select('#action-reset').on('click', function () {
+		var prompt = "Reset network?"
+		doConfirm(prompt, function (result) {
+			if (result) {
+				resetNetwork();
+			}
+		});
+	});
+
+	d3.select('#action-kill').on('click', function () {
+		var prompt = "Kill ONOS instance?";
+		var options = model.activeControllers;
+		doConfirm(prompt, function (result) {
+			controllerDown(result);
+		}, options);
+	});
+
+	createTopologyView(cb);
+}
diff --git a/sample/ONS2014demo/web/js/iperf.js b/sample/ONS2014demo/web/js/iperf.js
new file mode 100644
index 0000000..ee0e305
--- /dev/null
+++ b/sample/ONS2014demo/web/js/iperf.js
@@ -0,0 +1,190 @@
+var enableIPerfLog = false;
+
+function iperfLog(message, flow) {
+	if (enableIPerfLog) {
+		console.log('flow: ' + flow.flowId + '===>' + message);
+	}
+}
+
+function hasIPerf(flow) {
+	return flow && flow.iperfFetchTimeout;
+}
+
+function clearIPerf(flow) {
+	iperfLog('clearing iperf interval for: ' + flow.flowId, flow);
+	clearTimeout(flow.iperfFetchTimeout);
+	delete flow.iperfFetchTimeout;
+	clearInterval(flow.iperfDisplayInterval);
+	delete flow.iperfDisplayInterval;
+	clearTimeout(flow.animationTimeout);
+	delete flow.animationTimeout;
+	stopFlowAnimation(flow);
+	delete flow.iperfData.timestamp;
+
+	delete flow.iperfData;
+}
+
+function startIPerfForFlow(flow) {
+	var duration = 10000; // seconds
+	var interval = 100; // ms. this is defined by the server
+	var updateRate = 3000; // ms
+	var pointsToDisplay = 1000;
+
+	function makeGraph(iperfData) {
+		var d = 'M0,0';
+
+		var now = flow.iperfData.startTime + (Date.now() - flow.iperfData.localNow)/1000;
+
+		if (iperfData.samples && iperfData.samples.length) {
+
+			var lastX;
+			var i = iperfData.samples.length - 1;
+			while (i) {
+				var sample = iperfData.samples[i];
+
+				var x = (1000 - (now - sample.time)*10);
+				// workaround for discontinuity in iperf data
+				if (x < 0) {
+					i -= 1;
+					continue;
+				}
+
+				var y = 24 * sample.value/1000000;
+				if (y > 24) {
+					y = 24;
+				}
+				if (i == iperfData.samples.length - 1) {
+					d = 'M' + x + ',30';
+				}
+
+				// handle gaps
+				// 1.5 for rounding error
+				if (lastX && lastX - x > 1.5) {
+					d += 'L' + lastX + ',30';
+					d += 'M' + x + ',30'
+				}
+				lastX = x;
+
+				d += 'L' + x + ',' + (30-y);
+
+				i -= 1;
+			}
+			d += 'L' + lastX + ',30';
+		}
+		return d;
+	}
+
+	if (flow.flowId) {
+		iperfLog('starting iperf', flow);
+		startIPerf(flow, duration, updateRate/interval);
+
+		flow.iperfDisplayInterval = setInterval(function () {
+			if (flow.iperfData) {
+				var iperfPath = d3.select(document.getElementById(makeSelectedFlowKey(flow))).select('path');
+				flow.iperfData.samples.sort(function (a, b) {
+					return a.time - b.time;
+				});
+				iperfPath.attr('d', makeGraph(flow.iperfData));
+			}
+
+
+		}, interval);
+
+		var animationTimeout;
+		flow.iperfData = {
+			samples: []
+		}
+
+		function resetFlowAnimationTimeout() {
+			clearTimeout(flow.animationTimeout);
+			// kill the animation if iperfdata stops flowing
+			flow.animationTimeout = setTimeout(function () {
+				stopFlowAnimation(flow);
+			}, updateRate*1.5);
+		}
+
+		var lastTime;
+		function fetchData() {
+			iperfLog('Requesting iperf data', flow);
+			var fetchTime = Date.now();
+			getIPerfData(flow, function (data) {
+				var requestTime = Date.now() - fetchTime;
+				var requestTimeMessage = 'iperf request completed in: ' + requestTime + 'ms';
+				if (requestTime > 1000) {
+					requestTimeMessage = requestTimeMessage.toUpperCase();
+				}
+				iperfLog(requestTimeMessage, flow);
+
+				if (!flow.iperfData) {
+					iperfLog('iperf session closed', flow);
+					return;
+				}
+
+				try {
+					var iperfData = JSON.parse(data);
+
+//				console.log('end-time: ' + iperfData['end-time']);
+
+					// if the data is fresh
+					if (!(flow.iperfData.timestamp && iperfData.timestamp != flow.iperfData.timestamp)) {
+						if (!flow.iperfData.timestamp) {
+							iperfLog('received first iperf buffer', flow);
+						} else {
+							iperfLog('received duplicate iperf buffer with timestamp: ' + iperfData.timestamp, flow);
+						}
+					} else {
+						iperfLog('received new iperf buffer with timstamp: ' + iperfData.timestamp, flow);
+						startFlowAnimation(flow);
+						resetFlowAnimationTimeout();
+
+						var endTime = Math.floor(iperfData['end-time']*10)/10;
+
+						var startTime = endTime - (iperfData.samples.length * interval/1000);
+						// set now on the first buffer
+						if (!flow.iperfData.startTime) {
+							flow.iperfData.startTime = startTime;
+							flow.iperfData.localNow = Date.now();
+						}
+
+						iperfLog('iperf buffer start time: ' + startTime, flow);
+						if (lastTime && (startTime - lastTime) > updateRate/1000) {
+							iperfLog('iperf buffer gap: ' + (startTime - lastTime), flow);
+						}
+						lastTime = startTime;
+
+						// clear out the old data
+						while (flow.iperfData.samples.length > pointsToDisplay + iperfData.samples.length) {
+							flow.iperfData.samples.shift();
+						}
+
+						// if the client gets too out of sync, resynchronize
+						var clientNow = flow.iperfData.startTime + (Date.now() - flow.iperfData.localNow)/1000;
+						if (Math.abs(clientNow - startTime) > (updateRate/1000) * 2) {
+							iperfLog('resynchronizing now: ' + clientNow + ' => ' + startTime, flow);
+							flow.iperfData.startTime = startTime;
+							flow.iperfData.localNow = Date.now();
+						}
+
+						var time = startTime;
+						iperfData.samples.forEach(function (s) {
+							var sample = {
+								time: time,
+								value: s
+							};
+							flow.iperfData.samples.push(sample);
+							time += interval/1000;
+						});
+					}
+					flow.iperfData.timestamp = iperfData.timestamp;
+				} catch (e) {
+					iperfLog('bad iperf data: ' + data, flow);
+				}
+				flow.iperfFetchTimeout = setTimeout(fetchData, updateRate*.25); // over sample to avoid gaps
+//				iperfLog(data, flow);
+			});
+		}
+
+		// wait a buffer to make sure the old iperf session gets cleared out
+		flow.iperfFetchTimeout = setTimeout(fetchData, updateRate);
+	}
+}
\ No newline at end of file
diff --git a/sample/ONS2014demo/web/js/map.js b/sample/ONS2014demo/web/js/map.js
new file mode 100644
index 0000000..d0eb120
--- /dev/null
+++ b/sample/ONS2014demo/web/js/map.js
@@ -0,0 +1,405 @@
+(function () {
+
+var projection = d3.geo.mercator()
+    .center([82, 46])
+    .scale(10000)
+    .rotate([-180,0]);
+
+var switchXML;
+
+function createMap(svg, cb) {
+	topology = svg.append('svg:svg').attr('id', 'viewBox').attr('viewBox', '0 0 1000 1000').
+			attr('id', 'viewbox');
+
+	var map = topology.append("g").attr('id', 'map');
+
+	var path = d3.geo.path().projection(projection);
+
+	d3.json('data/world.json', function(error, topology) {
+		map.selectAll('path')
+			.data(topojson.object(topology, topology.objects.world).geometries)
+		    	.enter()
+		      		.append('path')
+		      		.attr('d', path)
+
+		d3.xml('assets/switch.svg', function (xml) {
+			switchXML = document.importNode(xml.documentElement, true);;
+			cb();
+		});
+	});
+}
+
+/***************************************************************************************************
+
+***************************************************************************************************/
+var switchMap;
+function makeSwitchMap() {
+	switchMap = {};
+	model.coreSwitches.forEach(function (s) {
+		switchMap[s.dpid] = s;
+	});
+	model.aggregationSwitches.forEach(function (s) {
+		switchMap[s.dpid] = s;
+	});
+	model.edgeSwitches.forEach(function (s) {
+		switchMap[s.dpid] = s;
+	});
+}
+
+/***************************************************************************************************
+create a map from edge->aggregation and aggreation->core switches
+***************************************************************************************************/
+var switchAssociations;
+function makeAssociations() {
+	switchAssociations = {};
+
+	var key;
+	for (key in model.configuration.association) {
+		var aggregationSwitches = model.configuration.association[key];
+		aggregationSwitches.forEach(function (s) {
+			switchAssociations[s] = key;
+		});
+	}
+}
+
+/***************************************************************************************************
+get the upstream switch. this only makes sense for aggregation and edge switches
+***************************************************************************************************/
+function getUpstream(dpid, className) {
+	if (className === 'aggregation') {
+		return switchAssociations[dpid];
+	} else if (className === 'edge') {
+		var aggregationDpid = dpid.split(':');
+		aggregationDpid[7] = '01'; // the last component of the agg switch is always '01'
+		return aggregationDpid.join(':');
+	}
+}
+
+
+
+/*****************a**********************************************************************************
+create a map to hold the fanout information for the switches
+***************************************************************************************************/
+var fanouts;
+function makeFanouts() {
+	fanouts = {};
+	model.coreSwitches.forEach(function (s) {
+		fanouts[s.dpid] = model.configuration.geo[s.dpid];
+		fanouts[s.dpid].count = 0;
+	});
+
+	model.aggregationSwitches.forEach(function (s) {
+		fanouts[s.dpid] = {count: 0};
+		var upstreamFanout = fanouts[getUpstream(s.dpid, 'aggregation')];
+		upstreamFanout.count += 1;
+	});
+
+	model.edgeSwitches.forEach(function (s) {
+		fanouts[s.dpid] = {};
+		var upstreamFanout = fanouts[getUpstream(s.dpid, 'edge')];
+		upstreamFanout.count += 1;
+	});
+}
+
+
+var projection;
+var switchLayer;
+var labelsLayer;
+var linksLayer;
+createTopologyView = function (cb) {
+	var svg = createRootSVG();
+
+	createMap(svg, function () {
+		switchLayer = topology.append('g');
+		labelsLayer = topology.append('g');
+		linksLayer = topology.append('g');
+		flowLayer = topology.append('g');
+
+
+		cb();
+	});
+}
+
+function drawCoreFlowCounts() {
+	var links = {};
+	model.links.forEach(function (l) {
+		links[makeLinkKey(l)] = l;
+	});
+
+	var flowCounts = [];
+	countCoreLinkFlows().forEach(function (count) {
+		var l = links[count.key];
+		if (l) {
+			var src = d3.select(document.getElementById(l['src-switch']));
+			var dst = d3.select(document.getElementById(l['dst-switch']));
+
+			if (!src.empty() && !dst.empty()) {
+				var x1 = parseFloat(src.attr('x'));
+				var x2 = parseFloat(dst.attr('x'));
+				var y1 = parseFloat(src.attr('y'));
+				var y2 = parseFloat(dst.attr('y'));
+
+				var slope = (y2 - y1)/(x2 - x1);
+
+				var offset = 15;
+				var xOffset = offset;
+				var yOffset = slope*offset;
+
+				var d = Math.sqrt(xOffset*xOffset + yOffset*yOffset);
+				var scaler = offset/d;
+
+				count.pt = {
+					x: x1 + (x2 - x1)/2 + xOffset*scaler,
+					y: y1 + (y2 - y1)/2 + yOffset*scaler
+				}
+			}
+			flowCounts.push(count);
+		}
+	});
+
+
+	var counts = linksLayer.selectAll('.flowCount').data(flowCounts, function (d) {
+		return d.key;
+	});
+
+	counts.enter().append('svg:text')
+		.attr('class', 'flowCount')
+		.attr('x', function (d) {
+			return d.pt.x;
+		})
+		.attr('y', function (d) {
+			return d.pt.y;
+		});
+
+	counts.text(function (d) {
+		return d.value;
+	});
+
+	counts.exit().remove();
+}
+
+function drawLinkLines() {
+
+	// key on link dpids since these will come/go during demo
+	var linkLines = linksLayer.selectAll('.link').data(links, function (d) {
+		return d['src-switch']+'->'+d['dst-switch'];
+	});
+
+	// add new links
+	linkLines.enter().append("svg:path").attr("class", "link");
+
+	linkLines.attr('id', function (d) {
+			return makeLinkKey(d);
+		}).attr("d", function (d) {
+			var src = d3.select(document.getElementById(d['src-switch']));
+			var dst = d3.select(document.getElementById(d['dst-switch']));
+
+			if (src.empty() || dst.empty()) {
+				return "M0,0";
+			}
+
+			var srcPt = document.querySelector('svg').createSVGPoint();
+			srcPt.x = src.attr('x');
+			srcPt.y = src.attr('y');
+
+			var dstPt = document.querySelector('svg').createSVGPoint();
+			dstPt.x = dst.attr('x');
+			dstPt.y = dst.attr('y');
+
+			var midPt = document.querySelector('svg').createSVGPoint();
+			midPt.x = (srcPt.x + dstPt.x)/2;
+			midPt.y = (srcPt.y + dstPt.y)/2;
+
+			return line([srcPt, midPt, dstPt]);
+		})
+		.attr("marker-mid", function(d) { return "url(#arrow)"; })
+		.classed('pending', function (d) {
+			return d.pending;
+		});
+
+	// remove old links
+	linkLines.exit().remove();
+}
+
+
+var fanOutAngles = {
+	aggregation: 100,
+	edge: 5
+}
+
+var fanOutDistances = {
+	aggregation: 60,
+	edge: 140
+}
+
+function makeSwitchesModel(switches, className) {
+	var switchesModel = [];
+	switches.forEach(function (s) {
+		var geo = model.configuration.geo[s.dpid];
+
+		var pos, label;
+		if (geo) {
+			pos = projection([geo.lng, geo.lat]);
+			label = geo.label;
+		} else {
+			var upstream = getUpstream(s.dpid, className);
+			if (upstream) {
+				var upstreamGeo = fanouts[upstream];
+				pos = projection([upstreamGeo.lng, upstreamGeo.lat]);
+
+				var fanOutAngle = upstreamGeo.fanOutAngle;
+				fanOutAngle -= (upstreamGeo.count - 1) * fanOutAngles[className]/2;
+
+				var angle = toRadians(fanOutAngle);
+				var xOff = Math.sin(angle) * fanOutDistances[className];
+				var yOff = Math.cos(angle) * fanOutDistances[className];
+
+				pos = [pos[0] + xOff, pos[1] + yOff];
+
+				var fakeGeo = projection.invert(pos);
+
+				var fanout = fanouts[s.dpid];
+				fanout.fanOutAngle = fanOutAngle;
+				fanout.lng = fakeGeo[0];
+				fanout.lat = fakeGeo[1];
+
+				upstreamGeo.fanOutAngle += fanOutAngles[className];
+
+			} else {
+				pos = projection([-98, 39]);
+			}
+		}
+
+		switchesModel.push({
+			dpid: s.dpid,
+			state: s.state,
+			className: className,
+			controller: s.controller,
+			label: label,
+			x: pos[0],
+			y: pos[1]
+		});
+	});
+
+	return switchesModel;
+}
+
+function switchEnter(d) {
+	var g = d3.select(this);
+	var width;
+
+	// attempt to draw an svg switch
+	if (false && d.className == 'core') {
+		width = 30;
+		g.select(function () {
+			return this.appendChild(switchXML.cloneNode(true));
+		})
+			.classed(d.className, true)
+			.attr('x', d.x - 30)
+			.attr('y', d.y - 30);
+
+	} else {
+		width = widths[d.className];
+		g.append('svg:circle').attr('r', width)
+			.classed(d.className, true)
+			.attr('cx', d.x)
+			.attr('cy', d.y);
+	}
+
+
+	if (d.label) {
+		g.append('svg:text')
+			.classed('label', true)
+			.text(d.label)
+			.attr("text-anchor", function (d) {
+				return d.x > 500 ? "end" : "start";
+			})
+			.attr('x', function (d) {
+				return d.x > 500 ? d.x - width*.8 : d.x + width*.8;
+			})
+			.attr('y', d.y - width*.8);
+	}
+}
+
+function labelsEnter(switches) {
+	return labelsLayer.selectAll('g').data(switches, function (d) {
+		return d.dpid;
+	}).enter().append('svg:g')
+		.classed('nolabel', true)
+		.attr("id", function (data) {
+			return data.dpid + '-label';
+		})
+		.append("svg:text")
+			.text(function (data) {return data.dpid;})
+			.attr('x', function (d) {
+				return d.x;
+			})
+			.attr('y', function (d) {
+				return d.y;
+			})
+			.attr("text-anchor", function (d) {
+				return d.x > 500 ? "end" : "start";
+			})
+
+}
+
+function switchesEnter(switches) {
+	switches.enter()
+			.append('svg:g')
+				.attr("id", function (d) {
+					return d.dpid;
+				})
+				.attr('x', function (d) {
+					return d.x;
+				})
+				.attr('y', function (d) {
+					return d.y;
+				})
+				.each(switchEnter);
+}
+
+
+function switchesUpdate(switches) {
+	switches.each(function (d) {
+			// if there's a pending state changed and then the state changes, clear the pending class
+			var circle = d3.select(this);
+			if (d.state === 'ACTIVE' && circle.classed('inactive') ||
+				d.state === 'INACTIVE' && circle.classed('active')) {
+				circle.classed('pending', false);
+			}
+		})
+		.attr('class', function (d)  {
+			if (d.state === 'ACTIVE' && d.controller) {
+				return 'active ' + controllerColorMap[d.controller];
+			} else {
+				return 'inactive ' + 'colorInactive';
+			}
+		});
+}
+
+drawTopology = function () {
+
+	makeSwitchMap();
+	makeAssociations();
+	makeFanouts();
+
+	var coreSwitches = makeSwitchesModel(model.coreSwitches, 'core');
+	var aggregationSwitches = makeSwitchesModel(model.aggregationSwitches, 'aggregation');
+	var edgeSwitches = makeSwitchesModel(model.edgeSwitches, 'edge');
+	var allSwitches = coreSwitches.concat(aggregationSwitches).concat(edgeSwitches);
+
+	var switchSelection = switchLayer.selectAll('g')
+		.data(allSwitches, function (d) {
+			return d.dpid;
+		});
+	switchesEnter(switchSelection)
+	switchesUpdate(switchSelection);
+
+	drawLinkLines();
+
+	drawCoreFlowCounts();
+
+	labelsEnter(allSwitches);
+}
+
+})();
\ No newline at end of file
diff --git a/sample/ONS2014demo/web/js/model.js b/sample/ONS2014demo/web/js/model.js
new file mode 100644
index 0000000..832cd99
--- /dev/null
+++ b/sample/ONS2014demo/web/js/model.js
@@ -0,0 +1,152 @@
+/*global async, d3*/
+
+function toD3(results) {
+	var model = {
+		edgeSwitches: [],
+		aggregationSwitches: [],
+		coreSwitches: [],
+		flows: [],
+		controllers: results.controllers,
+		activeControllers: results.activeControllers,
+		links: results.links,
+		configuration: results.configuration
+	};
+
+	// remove bad flows;
+	results.flows.forEach(function (f) {
+		if (f.dataPath && f.dataPath.flowEntries && f.dataPath.flowEntries.length > 1) {
+			model.flows.push(f);
+		}
+	})
+
+	// sort the switches
+	results.switches.sort(function (a, b) {
+		var aA = a.dpid.split(':');
+		var bB = b.dpid.split(':');
+		for (var i=0; i<aA.length; i+=1) {
+			if (aA[i] != bB[i]) {
+				return parseInt(aA[i], 16) - parseInt(bB[i], 16);
+			}
+		}
+		return 0;
+	});
+
+	// identify switch types
+	var coreSwitchDPIDs = {};
+	results.configuration.core.forEach(function (dpid) {
+		coreSwitchDPIDs[dpid] = true;
+	});
+
+	var aggregationSwitchDPIDs = {};
+	results.configuration.aggregation.forEach(function (dpid) {
+		aggregationSwitchDPIDs[dpid] = true;
+	});
+
+	results.switches.forEach(function (s) {
+		var mapping = results.mapping[s.dpid]
+		if (mapping) {
+			s.controller = mapping[0].controllerId;
+		}
+
+		if (coreSwitchDPIDs[s.dpid]) {
+			model.coreSwitches.push(s);
+		} else if (aggregationSwitchDPIDs[s.dpid]) {
+			model.aggregationSwitches.push(s);
+		} else {
+			model.edgeSwitches.push(s);
+		}
+	});
+
+	return model;
+}
+
+var urls = {
+	links: '/wm/onos/topology/links/json',
+	switches: '/wm/onos/topology/switches/json',
+	flows: '/wm/onos/flows/getsummary/0/0/json?proxy',
+	activeControllers: '/wm/onos/registry/controllers/json',
+	controllers: 'data/controllers.json',
+	mapping: '/wm/onos/registry/switches/json',
+	configuration: 'data/configuration.json'
+}
+
+var mockURLs = {
+	links: 'data/wm_core_topology_links_json.json',
+	switches: 'data/wm_core_topology_switches_all_json.json',
+	flows: 'data/wm_flow_getall_json.json',
+	activeControllers: 'data/wm_registry_controllers_json.json',
+	controllers: 'data/controllers.json',
+	mapping: 'data/wm_registry_switches_json.json',
+	configuration: 'data/configuration.json'
+}
+
+var proxyURLs = {
+	links: '/wm/onos/topology/links/json?proxy',
+	switches: '/wm/onos/topology/switches/json?proxy',
+	flows: '/wm/onos/flows/getsummary/0/0/json?proxy',
+	activeControllers: '/wm/onos/registry/controllers/json?proxy',
+	controllers: 'data/controllers.json',
+	mapping: '/wm/onos/registry/switches/json?proxy',
+	configuration: 'data/configuration.json'
+}
+
+var params = parseURLParameters();
+if (params.mock) {
+	urls = mockURLs;
+}
+if (params.proxy) {
+	urls = proxyURLs;
+}
+
+var timeoutMS = 20000;
+
+function makeRequest(key) {
+	var url = urls[key];
+	if (url) {
+		return function (cb) {
+			var timeout;
+			var xhr = d3.json(url, function (error, result) {
+				clearTimeout(timeout);
+
+				if (error) {
+					error = url + ' : ' + error.status;
+				}
+
+				if (cb) {
+					cb(error, result);
+				}
+			});
+			timeout = setTimeout(function () {
+				xhr.abort();
+				cb(url + ' timed out after ' + timeoutMS + ' ms');
+				cb = null;
+			}, timeoutMS);
+		}
+	} else {
+		return function (cb) {
+			cb(null, []);
+		}
+	}
+}
+
+
+function updateModel(cb) {
+	async.parallel({
+	    links: makeRequest('links'),
+	    switches: makeRequest('switches'),
+	    controllers: makeRequest('controllers'),
+	    activeControllers: makeRequest('activeControllers'),
+	    mapping: makeRequest('mapping'),
+	    configuration: makeRequest('configuration'),
+	    flows: makeRequest('flows')
+	},
+	function(err, results) {
+		if (!err) {
+			var model = toD3(results);
+			cb(model);
+		} else {
+			console.log(JSON.stringify(err));
+			cb(null);
+		}
+	});
+}
diff --git a/sample/ONS2014demo/web/js/rings.js b/sample/ONS2014demo/web/js/rings.js
new file mode 100644
index 0000000..979d28b
--- /dev/null
+++ b/sample/ONS2014demo/web/js/rings.js
@@ -0,0 +1,327 @@
+(function () {
+
+createTopologyView = function (cb) {
+
+	window.addEventListener('resize', function () {
+		// this is too slow. instead detect first resize event and hide the paths that have explicit matrix applied
+		// either that or is it possible to position the paths so they get the automatic transform as well?
+//		updateTopology();
+	});
+
+	var svg = createRootSVG();
+
+	topology = svg.append('svg:svg').attr('id', 'viewBox').attr('viewBox', '0 0 1000 1000').attr('preserveAspectRatio', 'none').
+			attr('id', 'viewbox').append('svg:g').attr('id', 'topology').attr('transform', 'translate(500 500)');
+
+	flowLayer = d3.select('svg');
+
+	// hack to make the shared flow drawing code work
+	drawingRings = true;
+
+	cb();
+}
+
+function updateLinkLines() {
+
+	// key on link dpids since these will come/go during demo
+	var linkLines = d3.select('svg').selectAll('.link').data(links, function (d) {
+		return d['src-switch']+'->'+d['dst-switch'];
+	});
+
+	// add new links
+	linkLines.enter().append("svg:path").attr("class", "link");
+
+	linkLines.attr('id', function (d) {
+			return makeLinkKey(d);
+		}).attr("d", function (d) {
+			var src = d3.select(document.getElementById(d['src-switch']));
+			var dst = d3.select(document.getElementById(d['dst-switch']));
+
+			if (src.empty() || dst.empty()) {
+				return "M0,0";
+			}
+
+			var srcPt = document.querySelector('svg').createSVGPoint();
+			srcPt.x = src.attr('x');
+			srcPt.y = src.attr('y');
+			srcPt = srcPt.matrixTransform(src[0][0].getCTM());
+
+			var dstPt = document.querySelector('svg').createSVGPoint();
+			dstPt.x = dst.attr('x');
+			dstPt.y = dst.attr('y');
+			dstPt = dstPt.matrixTransform(dst[0][0].getCTM());
+
+			var midPt = document.querySelector('svg').createSVGPoint();
+			midPt.x = (srcPt.x + dstPt.x)/2;
+			midPt.y = (srcPt.y + dstPt.y)/2;
+
+			return line([srcPt, midPt, dstPt]);
+		})
+		.attr("marker-mid", function(d) { return "url(#arrow)"; })
+		.classed('pending', function (d) {
+			return d.pending;
+		});
+
+	// remove old links
+	linkLines.exit().remove();
+}
+
+
+function createRingTopologyModel(model) {
+	var rings = [{
+		radius: 3,
+		width: widths.edge,
+		switches: model.edgeSwitches,
+		className: 'edge',
+		angles: []
+	}, {
+		radius: 2.25,
+		width: widths.aggregation,
+		switches: model.aggregationSwitches,
+		className: 'aggregation',
+		angles: []
+	}, {
+		radius: 0.75,
+		width: widths.core,
+		switches: model.coreSwitches,
+		className: 'core',
+		angles: []
+	}];
+
+
+	var aggRanges = {};
+
+	// arrange edge switches at equal increments
+	var k = 360 / rings[0].switches.length;
+	rings[0].switches.forEach(function (s, i) {
+		var angle = k * i;
+
+		rings[0].angles[i] = angle;
+
+		// record the angle for the agg switch layout
+		var dpid = s.dpid.split(':');
+		dpid[7] = '01'; // the last component of the agg switch is always '01'
+		var aggdpid = dpid.join(':');
+		var aggRange = aggRanges[aggdpid];
+		if (!aggRange) {
+			aggRange = aggRanges[aggdpid] = {};
+			aggRange.min = aggRange.max = angle;
+		} else {
+			aggRange.max = angle;
+		}
+	});
+
+	// arrange aggregation switches to "fan out" to edge switches
+	k = 360 / rings[1].switches.length;
+	rings[1].switches.forEach(function (s, i) {
+//		rings[1].angles[i] = k * i;
+		var range = aggRanges[s.dpid];
+
+		rings[1].angles[i] = (range.min + range.max)/2;
+	});
+
+	// find the association between core switches and aggregation switches
+	var aggregationSwitchMap = {};
+	model.aggregationSwitches.forEach(function (s, i) {
+		aggregationSwitchMap[s.dpid] = i;
+	});
+
+	// put core switches next to linked aggregation switches
+	k = 360 / rings[2].switches.length;
+	rings[2].switches.forEach(function (s, i) {
+//		rings[2].angles[i] = k * i;
+		var associatedAggregationSwitches = model.configuration.association[s.dpid];
+		// TODO: go between if there are multiple
+		var index = aggregationSwitchMap[associatedAggregationSwitches[0]];
+
+		rings[2].angles[i] = rings[1].angles[index];
+	});
+
+	// TODO: construct this form initially rather than converting. it works better because
+	// it allows binding by dpid
+	var testRings = [];
+	rings.forEach(function (ring) {
+		var testRing = [];
+		ring.switches.forEach(function (s, i) {
+			var testSwitch = {
+				dpid: s.dpid,
+				state: s.state,
+				radius: ring.radius,
+				width: ring.width,
+				className: ring.className,
+				angle: ring.angles[i],
+				controller: s.controller
+			};
+			testRing.push(testSwitch);
+		});
+
+
+		testRings.push(testRing);
+	});
+
+
+//	return rings;
+	return testRings;
+}
+
+drawTopology = function () {
+	// DRAW THE SWITCHES
+	var rings = topology.selectAll('.ring').data(createRingTopologyModel(model));
+
+	function ringEnter(data, i) {
+		if (!data.length) {
+			return;
+		}
+
+		// create the nodes
+		var nodes = d3.select(this).selectAll("g")
+			.data(data, function (data) {
+				return data.dpid;
+			})
+			.enter().append("svg:g")
+			.attr("id", function (data, i) {
+				return data.dpid;
+			})
+			.attr("transform", function(data, i) {
+				return "rotate(" + data.angle+ ")translate(" + data.radius * 150 + ")rotate(" + (-data.angle) + ")";
+			});
+
+		// add the cirles representing the switches
+		nodes.append("svg:circle")
+			.attr("transform", function(data, i) {
+				var m = document.querySelector('#viewbox').getTransformToElement().inverse();
+				if (data.scale) {
+					m = m.scale(data.scale);
+				}
+				return "matrix( " + m.a + " " + m.b + " " + m.c + " " + m.d + " " + m.e + " " + m.f + " )";
+			})
+			.attr("x", function (data) {
+				return -data.width / 2;
+			})
+			.attr("y", function (data) {
+				return -data.width / 2;
+			})
+			.attr("r", function (data) {
+				return data.width;
+			});
+	}
+
+	// append switches
+	rings.enter().append("svg:g")
+		.attr("class", "ring")
+		.each(ringEnter);
+
+
+	function ringUpdate(data, i) {
+		var nodes = d3.select(this).selectAll("g")
+			.data(data, function (data) {
+				return data.dpid;
+			});
+		nodes.select('circle')
+			.each(function (data) {
+				// if there's a pending state changed and then the state changes, clear the pending class
+				var circle = d3.select(this);
+				if (data.state === 'ACTIVE' && circle.classed('inactive') ||
+					data.state === 'INACTIVE' && circle.classed('active')) {
+					circle.classed('pending', false);
+				}
+			})
+			.attr('class', function (data)  {
+				if (data.state === 'ACTIVE' && data.controller) {
+					return data.className + ' active ' + controllerColorMap[data.controller];
+				} else {
+					return data.className + ' inactive ' + 'colorInactive';
+				}
+			});
+	}
+
+	// update  switches
+	rings.each(ringUpdate);
+
+
+	// Now setup the labels
+	// This is done separately because SVG draws in node order and we want the labels
+	// always on top
+	var labelRings = topology.selectAll('.labelRing').data(createRingTopologyModel(model));
+
+	function labelRingEnter(data) {
+		if (!data.length) {
+			return;
+		}
+
+		// create the nodes
+		var nodes = d3.select(this).selectAll("g")
+			.data(data, function (data) {
+				return data.dpid;
+			})
+			.enter().append("svg:g")
+			.classed('nolabel', true)
+			.attr("id", function (data) {
+				return data.dpid + '-label';
+			})
+			.attr("transform", function(data, i) {
+				return "rotate(" + data.angle+ ")translate(" + data.radius * 150 + ")rotate(" + (-data.angle) + ")";
+			})
+
+		// add the text nodes which show on mouse over
+		nodes.append("svg:text")
+				.text(function (data) {return data.dpid;})
+				.attr("x", function (data) {
+					if (data.angle <= 90 || data.angle >= 270 && data.angle <= 360) {
+						if (data.className == 'edge') {
+							return - data.width*3 - 4;
+						} else {
+							return - data.width - 4;
+						}
+					} else {
+						if (data.className == 'edge') {
+							return data.width*3 + 4;
+						} else {
+							return data.width + 4;
+						}
+					}
+				})
+				.attr("y", function (data) {
+					var y;
+					if (data.angle <= 90 || data.angle >= 270 && data.angle <= 360) {
+						if (data.className == 'edge') {
+							y = data.width*3/2 + 4;
+						} else {
+							y = data.width/2 + 4;
+						}
+					} else {
+						if (data.className == 'edge') {
+							y = data.width*3/2 + 4;
+						} else {
+							y = data.width/2 + 4;
+						}
+					}
+					return y - 6;
+				})
+				.attr("text-anchor", function (data) {
+					if (data.angle <= 90 || data.angle >= 270 && data.angle <= 360) {
+						return "end";
+					} else {
+						return "start";
+					}
+				})
+				.attr("transform", function(data) {
+					var m = document.querySelector('#viewbox').getTransformToElement().inverse();
+					if (data.scale) {
+						m = m.scale(data.scale);
+					}
+					return "matrix( " + m.a + " " + m.b + " " + m.c + " " + m.d + " " + m.e + " " + m.f + " )";
+				})
+	}
+
+	labelRings.enter().append("svg:g")
+		.attr("class", "textRing")
+		.each(labelRingEnter);
+
+	// switches should not change during operation of the ui so no
+	// rings.exit()
+
+	updateLinkLines();
+}
+
+})();
diff --git a/sample/ONS2014demo/web/js/topology.js b/sample/ONS2014demo/web/js/topology.js
new file mode 100644
index 0000000..7f91de8
--- /dev/null
+++ b/sample/ONS2014demo/web/js/topology.js
@@ -0,0 +1,30 @@
+/***************************************************************************************************
+functions for creating and interacting with the topology view of the webui
+
+flow related topology is in flows.js
+***************************************************************************************************/
+
+(function () {
+
+updateTopology = function() {
+
+	/* currently rings.js and map.js can be included to define the topology display */
+
+	reconcilePendingLinks(model);
+	updateLinkMap(links);
+
+	drawTopology();
+
+	// setup the mouseover behaviors
+	var allSwitches = d3.selectAll('.edge, .core, .aggregation');
+
+	allSwitches.on('mouseover', mouseOverSwitch);
+	allSwitches.on('mouseout', mouseOutSwitch);
+	allSwitches.on('mouseup', mouseUpSwitch);
+	allSwitches.on('mousedown', mouseDownSwitch);
+
+	// only do switch up/down for core switches
+	d3.selectAll('.core').on('dblclick', doubleClickSwitch);
+}
+
+})();
diff --git a/sample/ONS2014demo/web/js/topologyactions.js b/sample/ONS2014demo/web/js/topologyactions.js
new file mode 100644
index 0000000..28d418b
--- /dev/null
+++ b/sample/ONS2014demo/web/js/topologyactions.js
@@ -0,0 +1,286 @@
+function clearHighlight() {
+	topology.selectAll('circle').each(function (data) {
+		data.mouseDown = false;
+		d3.select('#topologyArea').classed('linking', false);
+		mouseOutSwitch(data);
+	});
+	d3.select('#linkVector').remove();
+};
+
+function mouseOverSwitch(data) {
+
+	d3.event.preventDefault();
+
+	d3.select(document.getElementById(data.dpid + '-label')).classed('nolabel', false);
+
+	if (data.highlighted) {
+		return;
+	}
+
+	// only highlight valid link or flow destination by checking for class of existing highlighted circle
+	var highlighted = topology.selectAll('.highlight')[0];
+	if (highlighted.length == 1) {
+		var s = d3.select(highlighted[0]).select('circle');
+		// only allow links
+		// 	edge->edge (flow)
+		//  aggregation->core
+		//	core->core
+		if (data.className == 'edge' && !s.classed('edge') ||
+			data.className == 'core' && !s.classed('core') && !s.classed('aggregation') ||
+			data.className == 'aggregation' && !s.classed('core')) {
+			return;
+		}
+
+		// the second highlighted switch is the target for a link or flow
+		data.target = true;
+	}
+
+	var node = d3.select(document.getElementById(data.dpid));
+	node.classed('highlight', true).select('circle').transition().duration(100).attr("r", widths.core);
+	data.highlighted = true;
+	node.moveToFront();
+}
+
+function mouseOutSwitch(data) {
+	d3.select(document.getElementById(data.dpid + '-label')).classed('nolabel', true);
+
+	if (data.mouseDown)
+		return;
+
+	var node = d3.select(document.getElementById(data.dpid));
+	node.classed('highlight', false).select('circle').transition().duration(100).attr("r", widths[data.className]);
+	data.highlighted = false;
+	data.target = false;
+}
+
+function mouseDownSwitch(data) {
+	mouseOverSwitch(data);
+	data.mouseDown = true;
+	d3.select('#topologyArea').classed('linking', true);
+
+	d3.select('svg')
+		.append('svg:path')
+		.attr('id', 'linkVector')
+		.attr('d', function () {
+			var s = d3.select(document.getElementById(data.dpid));
+
+			var pt = document.querySelector('svg').createSVGPoint();
+			pt.x = s.attr('x');
+			pt.y = s.attr('y');
+			pt = pt.matrixTransform(s[0][0].getCTM());
+
+			return line([pt, pt]);
+		});
+
+
+	if (data.className === 'core') {
+		d3.selectAll('.edge').classed('nodrop', true);
+	}
+	if (data.className === 'edge') {
+		d3.selectAll('.core').classed('nodrop', true);
+		d3.selectAll('.aggregation').classed('nodrop', true);
+	}
+	if (data.className === 'aggregation') {
+		d3.selectAll('.edge').classed('nodrop', true);
+		d3.selectAll('.aggregation').classed('nodrop', true);
+	}
+}
+
+function mouseUpSwitch(data) {
+	if (data.mouseDown) {
+		data.mouseDown = false;
+		d3.select('#topologyArea').classed('linking', false);
+		d3.event.stopPropagation();
+		d3.selectAll('.nodrop').classed('nodrop', false);
+	}
+}
+
+function doubleClickSwitch(data) {
+	clearHighlight();
+
+	var circle = d3.select(document.getElementById(data.dpid)).select('circle');
+	if (data.state == 'ACTIVE') {
+		var prompt = 'Deactivate ' + data.dpid + '?';
+		doConfirm(prompt, function(result) {
+			if (result) {
+				switchDown(data);
+				setPending(circle);
+			}
+		});
+	} else {
+		var prompt = 'Activate ' + data.dpid + '?';
+		doConfirm(prompt, function (result) {
+			if (result) {
+				switchUp(data);
+				setPending(circle);
+			}
+		});
+	}
+}
+
+d3.select(window).on('mouseup', function () {
+	d3.selectAll('.nodrop').classed('nodrop', false);
+
+	function removeLink(link) {
+		var path1 = document.getElementById(link['src-switch'] + '=>' + link['dst-switch']);
+		var path2 = document.getElementById(link['dst-switch'] + '=>' + link['src-switch']);
+
+		if (path1) {
+			setPending(d3.select(path1));
+		}
+		if (path2) {
+			setPending(d3.select(path2));
+		}
+
+		linkDown(link);
+	}
+
+
+	var highlighted = topology.selectAll('.highlight')[0];
+	if (highlighted.length == 2) {
+		var s1Data = highlighted[0].__data__;
+		var s2Data = highlighted[1].__data__;
+
+		var srcData, dstData;
+		if (s1Data.target) {
+			dstData = s1Data;
+			srcData = s2Data;
+		} else {
+			dstData = s2Data;
+			srcData = s1Data;
+		}
+
+		if (s1Data.className == 'edge' && s2Data.className == 'edge') {
+			var prompt = 'Create flow from ' + srcData.dpid + ' to ' + dstData.dpid + '?';
+			doConfirm(prompt, function (result) {
+				if (result) {
+					addFlow(srcData, dstData);
+
+					var flow = {
+						dataPath: {
+							srcPort: {
+								dpid: {
+									value: srcData.dpid
+								}
+							},
+							dstPort: {
+								dpid: {
+									value: dstData.dpid
+								}
+							}
+						},
+					        srcDpid: srcData.dpid,
+					        dstDpid: dstData.dpid,
+						createPending: true
+					};
+
+					selectFlow(flow);
+
+					setTimeout(function () {
+						deselectFlowIfCreatePending(flow);
+					}, pendingTimeout);
+				}
+			});
+
+		} else {
+			var map = linkMap[srcData.dpid];
+			if (map && map[dstData.dpid]) {
+				var prompt = 'Remove link between ' + srcData.dpid + ' and ' + dstData.dpid + '?';
+				doConfirm(prompt, function (result) {
+					if (result) {
+						removeLink(map[dstData.dpid]);
+					}
+				});
+			} else {
+				map = linkMap[dstData.dpid];
+				if (map && map[srcData.dpid]) {
+					var prompt = 'Remove link between ' + dstData.dpid + ' and ' + srcData.dpid + '?';
+					doConfirm(prompt, function (result) {
+						if (result) {
+							removeLink(map[srcData.dpid]);
+						}
+					});
+				} else {
+					var prompt = 'Create link between ' + srcData.dpid + ' and ' + dstData.dpid + '?';
+					doConfirm(prompt, function (result) {
+						if (result) {
+							var link1 = {
+								'src-switch': srcData.dpid,
+								'src-port': 1,
+								'dst-switch': dstData.dpid,
+								'dst-port': 1,
+								pending: true
+							};
+							pendingLinks[makeLinkKey(link1)] = link1;
+							var link2 = {
+								'src-switch': dstData.dpid,
+								'src-port': 1,
+								'dst-switch': srcData.dpid,
+								'dst-port': 1,
+								pending: true
+							};
+							pendingLinks[makeLinkKey(link2)] = link2;
+							updateTopology();
+
+							linkUp(link1);
+
+							// remove the pending links after 10s
+							setTimeout(function () {
+								delete pendingLinks[makeLinkKey(link1)];
+								delete pendingLinks[makeLinkKey(link2)];
+
+								updateTopology();
+							}, pendingTimeout);
+						}
+					});
+				}
+			}
+		}
+
+		clearHighlight();
+	} else {
+		clearHighlight();
+	}
+});
+
+d3.select(document.body).on('mousemove', function () {
+	if (!d3.select('#topologyArea').classed('linking')) {
+		return;
+	}
+	var linkVector = document.getElementById('linkVector');
+	if (!linkVector) {
+		return;
+	}
+	linkVector = d3.select(linkVector);
+
+	var highlighted = topology.selectAll('.highlight')[0];
+	var s1 = null, s2 = null;
+	if (highlighted.length > 1) {
+		var s1 = d3.select(highlighted[0]);
+		var s2 = d3.select(highlighted[1]);
+
+	} else if (highlighted.length > 0) {
+		var s1 = d3.select(highlighted[0]);
+	}
+	var src = s1;
+	if (s2 && !s2.data()[0].target) {
+		src = s2;
+	}
+	if (src) {
+		linkVector.attr('d', function () {
+				var srcPt = document.querySelector('svg').createSVGPoint();
+				srcPt.x = src.attr('x');
+				srcPt.y = src.attr('y');
+				srcPt = srcPt.matrixTransform(src[0][0].getCTM());
+
+				var svg = document.getElementById('topology');
+				var mouse = d3.mouse(viewbox);
+				var dstPt = document.querySelector('svg').createSVGPoint();
+				dstPt.x = mouse[0];
+				dstPt.y = mouse[1];
+				dstPt = dstPt.matrixTransform(viewbox.getCTM());
+
+				return line([srcPt, dstPt]);
+			});
+	}
+});
diff --git a/sample/ONS2014demo/web/js/utils.js b/sample/ONS2014demo/web/js/utils.js
new file mode 100644
index 0000000..d7220c5
--- /dev/null
+++ b/sample/ONS2014demo/web/js/utils.js
@@ -0,0 +1,264 @@
+/***************************************************************************************************
+extract url parameters into a map
+***************************************************************************************************/
+function parseURLParameters() {
+	var parameters = {};
+
+	var search = location.href.split('?')[1];
+	if (search) {
+		search.split('&').forEach(function (param) {
+			var key = param.split('=')[0];
+			var value = param.split('=')[1];
+			parameters[key] = decodeURIComponent(value);
+		});
+	}
+
+	return parameters;
+}
+
+/***************************************************************************************************
+convenience function for moving an SVG element to the front so that it draws on top
+***************************************************************************************************/
+d3.selection.prototype.moveToFront = function() {
+  return this.each(function(){
+    this.parentNode.appendChild(this);
+  });
+};
+
+/***************************************************************************************************
+standard function for generating the 'd' attribute for a path from an array of points
+***************************************************************************************************/
+var line = d3.svg.line()
+    .x(function(d) {
+    	return d.x;
+    })
+    .y(function(d) {
+    	return d.y;
+    });
+
+
+/***************************************************************************************************
+starts the "pending" animation
+***************************************************************************************************/
+function setPending(selection) {
+	selection.classed('pending', false);
+	setTimeout(function () {
+		selection.classed('pending', true);
+	}, 0);
+}
+
+/***************************************************************************************************
+convert angle in degrees to radians
+***************************************************************************************************/
+function toRadians (degrees) {
+  return degrees * (Math.PI / 180);
+}
+
+/***************************************************************************************************
+used to generate DOM element id for this link
+***************************************************************************************************/
+function makeLinkKey(link) {
+	return link['src-switch'] + '=>' + link['dst-switch'];
+}
+
+/***************************************************************************************************
+used to generate DOM element id for this flow in the topology view
+***************************************************************************************************/
+function makeFlowKey(flow) {
+	return flow.srcDpid + '=>' + flow.dstDpid;
+}
+
+/***************************************************************************************************
+used to generate DOM element id for this flow in the selected flows table
+***************************************************************************************************/
+function makeSelectedFlowKey(flow) {
+	return 'S' + makeFlowKey(flow);
+}
+
+/***************************************************************************************************
+update the app header using the current model
+***************************************************************************************************/
+function updateHeader() {
+	d3.select('#lastUpdate').text(new Date().toLocaleString());
+
+	var activeSwitchCount = 0;
+	model.edgeSwitches.forEach(function (s) {
+		if (s.state === 'ACTIVE') {
+			activeSwitchCount += 1;
+		}
+	});
+	model.aggregationSwitches.forEach(function (s) {
+		if (s.state === 'ACTIVE') {
+			activeSwitchCount += 1;
+		}
+	});
+	model.coreSwitches.forEach(function (s) {
+		if (s.state === 'ACTIVE') {
+			activeSwitchCount += 1;
+		}
+	});
+
+	d3.select('#activeSwitches').text(activeSwitchCount);
+
+
+
+	d3.select('#activeFlows').text(model.flows.length);
+	d3.select('#activeLinks').text(model.links.length);
+}
+
+/***************************************************************************************************
+update the global linkmap
+***************************************************************************************************/
+function updateLinkMap(links) {
+	linkMap = {};
+	links.forEach(function (link) {
+		var srcDPID = link['src-switch'];
+		var dstDPID = link['dst-switch'];
+
+		var srcMap = linkMap[srcDPID] || {};
+
+		srcMap[dstDPID] = link;
+
+		linkMap[srcDPID]  = srcMap;
+	});
+}
+
+/***************************************************************************************************
+// removes links from the pending list that are now in the model
+***************************************************************************************************/
+function reconcilePendingLinks(model) {
+	links = [];
+	model.links.forEach(function (link) {
+		links.push(link);
+		delete pendingLinks[makeLinkKey(link)]
+	})
+	var linkId;
+	for (linkId in pendingLinks) {
+		links.push(pendingLinks[linkId]);
+	}
+}
+
+/***************************************************************************************************
+used by both ring and map models
+***************************************************************************************************/
+function createRootSVG() {
+	var svg = d3.select('#svg-container').append('svg:svg');
+
+	svg.append("svg:defs").append("svg:marker")
+	    .attr("id", "arrow")
+	    .attr("viewBox", "0 -5 10 10")
+	    .attr("refX", -1)
+	    .attr("markerWidth", 5)
+	    .attr("markerHeight", 5)
+	    .attr("orient", "auto")
+	  .append("svg:path")
+	    .attr("d", "M0,-3L10,0L0,3");
+
+	return svg;
+}
+
+/***************************************************************************************************
+counts the number of flows which pass through each core<->core link
+***************************************************************************************************/
+function countCoreLinkFlows() {
+	var allCounts = {};
+	model.flows.forEach(function (f) {
+		if (f.dataPath && f.dataPath.flowEntries && f.dataPath.flowEntries.length > 1) {
+			var flowEntries = f.dataPath.flowEntries;
+			var i;
+
+			for (i = 0; i < flowEntries.length - 1; i += 1) {
+				var linkKey = flowEntries[i].dpid.value + '=>' + flowEntries[i+1].dpid.value;
+				if (!allCounts[linkKey]) {
+					allCounts[linkKey] = 1;
+				} else {
+					allCounts[linkKey] += 1;
+				}
+			}
+		}
+	});
+
+	var coreCounts = {};
+	var i, j;
+	for (i = 0; i < model.coreSwitches.length - 1; i += 1) {
+		for (j = i + 1; j < model.coreSwitches.length; j += 1) {
+			var si = model.coreSwitches[i];
+			var sj = model.coreSwitches[j];
+			var key1 =  si.dpid + '=>' + sj.dpid;
+			var key2 =  sj.dpid + '=>' + si.dpid;
+			var linkCount = 0;
+			if (allCounts[key1]) {
+				linkCount += allCounts[key1];
+			}
+			if (allCounts[key2]) {
+				linkCount += allCounts[key2];
+			}
+
+			coreCounts[key1] = linkCount;
+		}
+	}
+
+	return d3.entries(coreCounts);
+}
+
+
+/***************************************************************************************************
+
+***************************************************************************************************/
+function doConfirm(prompt, cb, options) {
+	var confirm = d3.select('#confirm');
+	confirm.select('#confirm-prompt').text(prompt);
+
+	var select = d3.select(document.getElementById('confirm-select'));
+	if (options) {
+		select.style('display', 'block');
+		select.text('');
+		select.selectAll('option').
+			data(options)
+			.enter()
+				.append('option')
+					.attr('value', function (d) {return d})
+					.text(function (d) {return d});
+	} else {
+		select.style('display', 'none');
+	}
+
+	function show() {
+		confirm.style('display', '-webkit-box');
+		confirm.style('opacity', 0);
+		setTimeout(function () {
+			confirm.style('opacity', 1);
+		}, 0);
+	}
+
+	function dismiss() {
+		confirm.style('opacity', 0);
+		confirm.on('webkitTransitionEnd', function () {
+			confirm.style('display', 'none');
+			confirm.on('webkitTransitionEnd', null);
+		});
+	}
+
+	confirm.select('#confirm-ok').on('click', function () {
+		d3.select(this).on('click', null);
+		dismiss();
+		if (options) {
+			cb(select[0][0].value);
+		} else {
+			cb(true);
+		}
+	});
+
+	confirm.select('#confirm-cancel').on('click', function () {
+		d3.select(this).on('click', null);
+		dismiss();
+		cb(false);
+	});
+
+	show();
+}
+
+
+
+
+
