From 179908bca35a3e56a6ddaefb0c0f5e3891ab1959 Mon Sep 17 00:00:00 2001 From: Inako <baptiste.signolle@free.fr> Date: Wed, 31 Mar 2021 23:10:08 +0200 Subject: [PATCH] ouerhvou --- .../heldAndKarp-checkpoint.ipynb | 1511 +++++++-- heldAndKarp.ipynb | 2711 +++-------------- 2 files changed, 1783 insertions(+), 2439 deletions(-) diff --git a/.ipynb_checkpoints/heldAndKarp-checkpoint.ipynb b/.ipynb_checkpoints/heldAndKarp-checkpoint.ipynb index bb23119..50f404e 100644 --- a/.ipynb_checkpoints/heldAndKarp-checkpoint.ipynb +++ b/.ipynb_checkpoints/heldAndKarp-checkpoint.ipynb @@ -53,8 +53,10 @@ }, { "cell_type": "code", - "execution_count": 2, - "metadata": {}, + "execution_count": 1, + "metadata": { + "tags": [] + }, "outputs": [ { "name": "stdout", @@ -67,18 +69,32 @@ "source": [ "using LinearAlgebra # Basic algebra structures & functions\n", "using JuMP # Modeling language\n", - "using GLPK, Cbc # LP and MIP solvers\n", + "using Cbc # MIP solver\n", "using LightGraphs # Efficient graph structures & functions\n", - "using GraphPlot # Graph visualization \n", + "using GraphPlot # Graph visualization\n", + "using Combinatorics # Combinatorials\n", "\n", "println(\"Modules loaded\")" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 2, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "checkTermination (generic function with 2 methods)" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "function checkTermination(m, verbose = true)\n", " if !( \n", @@ -100,12 +116,42 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 3, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "display_S (generic function with 2 methods)" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "function display(S, W = Nothing)\n", - " gplot(Graph(S), nodelabel=1:size(S,1))\n", + "# Graph display function\n", + "# S and W are assumed to be square matrices\n", + "# S the adjacency matrix of a graph\n", + "# W the weights of its edges\n", + "function display_S(S, W = nothing)\n", + " edgelabel = []\n", + " n = size(S,1)\n", + " if W != nothing\n", + " m = size(W, 1)\n", + " if m != n\n", + " error(\"display_S : S and W don't match ; S is of size \", n, \", W of size \", m)\n", + " end\n", + " for i in 1:n, j in i:n\n", + " if X[i, j] == 1\n", + " push!(edgelabel, W[i, j])\n", + " end\n", + " end\n", + " end\n", + " display(gplot(Graph(S), nodelabel=1:n, edgelabel = edgelabel))\n", "end" ] }, @@ -121,14 +167,14 @@ "\n", "However on such small graphs column generation techniques will not show their full potential, as these methods aim to tackle large scale problems.\n", "\n", - "\n", - "\n", - "" + "\n", + "\n", + "" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 4, "metadata": { "tags": [] }, @@ -220,10 +266,27 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 5, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "IPM (generic function with 1 method)" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ + "# Integer Programming Master problem\n", + "# C is a vector such that C[t] = dot(c, x^t) for t in 1:T_1\n", + "# where T_1 is the number of columns of the master problem\n", + "# D[i, t] is d_i^t the degree of vertex i in column number t\n", "function IPM(C, D)\n", " ipm = Model(Cbc.Optimizer)\n", " set_silent(ipm)\n", @@ -260,14 +323,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { - "jupyter": { - "source_hidden": true - }, "tags": [] }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "LPM (generic function with 1 method)" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "function LPM(C, D)\n", " lpm = Model(Cbc.Optimizer)\n", @@ -291,7 +362,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "In (LPM) there is a column $ ( c^T x^t , d_1^t , \\ldots , d_n^t , 1 )^T$ for every $x^t \\in X^1 \\ (t = 1, \\ldots, T_1)$ \n", + "In (LPM) there is a column $ ( c^{\\dagger} x^t , d_1^t , \\ldots , d_n^t , 1 )^{\\dagger}$ for every $x^t \\in X^1 \\ (t = 1, \\ldots, T_1) $ ($\\dagger$ means transpose in this context) \n", + "\n", "The second equation is a convexity constraint\n", "\n", "Associating the second equation with dual variable $\\mu$ and the degree constraints with dual variables $\\{\\pi_i\\}_{i=1}^m$ the dual of (LPM) is\n", @@ -299,26 +371,46 @@ "$$\\text{(DM)} \\quad\n", "\\begin{array}{r l}\n", "\\max_{\\mu, \\pi} & \\sum_{i=1}^m 2 \\pi_i + \\mu \\\\\n", - "\\text{s.t.} & \\pi^T d^t + \\mu \\leq c^T x^t \\quad (t = 1 \\ldots T_1)\n", + "\\text{s.t.} & \\pi^{\\dagger} d^t + \\mu \\leq c^{\\dagger} x^t \\quad (t = 1 \\ldots T_1)\n", "\\end{array}$$" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 7, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "DM (generic function with 1 method)" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ + "# Dual Master problem\n", + "# C is a vector such that C[t] = sum_e∈E(c_e * x_e^t) for t in 1:T_1\n", + "# where T_1 is the number of columns of the master problem\n", + "# D[i, t] is d_i^t the degree of vertex i in column number t, for i in 1:n, t in 1:T_1\n", + "\n", "function DM(C, D)\n", " dm = Model(Cbc.Optimizer)\n", " set_silent(dm)\n", " \n", - " @variable(dm, Ï€[1:size(D,1)])\n", + " n, T_1 = size(D) #number of vertices, number of columns\n", + " \n", + " @variable(dm, Ï€[1:n])\n", " @variable(dm, μ)\n", " \n", " @objective(dm, Max, 2*sum(Ï€) + μ)\n", " \n", - " @constraint(dm, oneTree[t in 1:size(D,2)], dot(Ï€, D[:,t]) + μ <= C[t])\n", + " @constraint(dm, oneTree[t in 1:T_1], dot(Ï€, D[:,t]) + μ <= C[t])\n", " \n", " optimize!(dm)\n", " checkTermination(dm)\n", @@ -332,26 +424,53 @@ "metadata": {}, "source": [ "The associated subsidiary problem is the following\n", - "\n" + "\n", + "\n", + "$$\\begin{array}{r l}\n", + "\\min c_x - \\pi^{\\dagger} D_x - \\mu \\\\\n", + "0 \\le x_e \\le 1 & e \\in E \\\\\n", + "x_e \\in \\mathbb{Z} & e \\in E \\\\\n", + "\\sum_{e \\in \\delta(1)} x_e = 2 \\\\\n", + "\\sum_{e \\in E [X] } x_e \\le |X| - 1 & X \\subseteq \\{2,...,n\\}, X \\ne \\emptyset \\\\\n", + "\\sum_{e \\in E} x_e = n \\\\\n", + "%\\sum_{e \\in \\delta(v)} x_e = 2 & v \\in \\{2,...,n\\} \\\\\n", + "\\end{array}$$" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "SP (generic function with 1 method)" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "function SP()\n", + "function SP(W, Ï€, μ)\n", + " n = size(W,1)\n", + "\n", " sp = Model(Cbc.Optimizer)\n", " set_silent(sp)\n", " \n", - " @variable(sp, )\n", + " @variable(sp, X[u in 1:n, v in 1:n], Bin)\n", " \n", - " @objective(sp, Min, (c - Ï€^T A ) x - μ)\n", + " @objective(sp, Min, sum(W .* X)/2 - dot(Ï€, [sum(X[u,:]) for u ∈ 1:n]) - μ)\n", " \n", - " @constraint(sp, degree1)\n", - " @constraint(sp, nbEdges, sum(x[2:]) == )\n", - " @constraint(sp, spanningTree)\n", + " @constraint(sp, degree1, sum(X[1,:]) == 2)\n", + " @constraint(sp, nbEdges, sum(X) == 2*n)\n", + " for np in 2:n, X2N in collect(permutations(collect(2:np),np-1))\n", + " @constraint(sp, sum(X[X2N[i], X2N[i+1]] for i in 1:length(X2N)-1) + X[X2N[length(X2N)], X2N[1]] <= length(X2N) - 1)\n", + " end\n", + " @constraint(sp, symmetry[u in 1:n, v in 1:n], X[u,v] == X[v,u])\n", + " @constraint(sp, diagonal[u in 1:n], X[u,u] == 0)\n", " \n", " optimize!(sp)\n", " checkTermination(sp)\n", @@ -368,7 +487,7 @@ "source": [ "Our algorithm will follow this flowchart, classic for column generation algorithm\n", "\n", - "" + "" ] }, { @@ -379,12 +498,12 @@ "source": [ "Our first \"dummy\" basis will consist in a collection of \"wheel\"-like 1-trees, as described in Held and Karp's paper\n", "\n", - "" + "" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 9, "metadata": { "tags": [] }, @@ -392,26 +511,32 @@ { "data": { "text/plain": [ - "wheel_like (generic function with 1 method)" + "wheel_like_1trees (generic function with 1 method)" ] }, - "execution_count": 6, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ + "# Returns an array of n-1 trivial 1-trees of a complete graph with n vertices\n", "function wheel_like_1trees(n)\n", " res = []\n", + " \n", + " # k is the \"center\" vertex of a wheel like tree : all other vertices are connected to it\n", " for k in 2:n\n", " one_tree = zeros(n,n)\n", " \n", - " for v in union(2:k-1, k+1:n)\n", + " for v in union(1:k-1, k+1:n)\n", " one_tree[k,v] = 1 ; one_tree[v,k] = 1\n", " end\n", " \n", - " one_tree[1,k] = 1 ; one_tree[1, n==k ? 2 : k+1] = 1\n", - " one_tree[k,1] = 1 ; one_tree[n==k ? 2 : k+1, 1] = 1 \n", + " # After the center is connected to all vertices,\n", + " # vertex 1 is connected to k+1 (or 2 if k = n), denoted as k_next,\n", + " # to form a 1-tree\n", + " k_next = n==k ? 2 : k+1\n", + " one_tree[1, k_next] = 1 ; one_tree[k_next, 1] = 1 \n", " \n", " push!(res, one_tree)\n", " end\n", @@ -423,47 +548,69 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "tags": [] + }, "outputs": [], "source": [ - "function column_generation(W)\n", + "wl = wheel_like_1trees(6)\n", + "\n", + "for t in wl\n", + " display_S(t)\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "function column_generation(W; max_iter = 1000)\n", " n = size(W, 1)\n", " one_trees_init = wheel_like_1trees(n)\n", " \n", " columns = one_trees_init[1:n-2]\n", " tree_degrees = [sum(columns[t][u,:]) for u ∈ 1:n, t ∈ 1:n-2]\n", - " tree_weights = [dot(columns[t], W) for t ∈ 1:n-2]\n", + " tree_weights = [dot(columns[t], W)/2 for t ∈ 1:n-2]\n", " \n", " reduced_cost = -1\n", " new_column = one_trees_init[n-1]\n", + " k = 1\n", " \n", - " while reduced_cost < 0\n", + " while reduced_cost < 0 && k <= max_iter\n", " \n", " push!(columns, new_column)\n", " tree_degrees = hcat(tree_degrees, [sum(new_column[u,:]) for u ∈ 1:n]) \n", - " push!(tree_weights, dot(new_column, W))\n", + " push!(tree_weights, dot(new_column, W)/2)\n", " \n", " dm = DM(tree_weights, tree_degrees)\n", " Ï€ = value.(dm[:Ï€])\n", " μ = value(dm[:μ])\n", " \n", " # Solve subproblem\n", - " sp = SP()\n", - " new_column = value.(sp[:??????])\n", + " sp = SP(W, Ï€, μ)\n", + " new_column = value.(sp[:X])\n", " new_degree = [sum(new_column[u,:]) for u ∈ 1:n]\n", - " new_weight = dot(new_column, W)\n", + " new_weight = dot(new_column, W)/2\n", " reduced_cost = objective_value(sp)\n", + " \n", + " k += 1\n", " end\n", " \n", " lpm = LPM(tree_weights, tree_degrees)\n", " # ipm = IPM(tree_weights, tree_degrees)\n", " \n", " λ = value.(lpm[:λ])\n", - " println(\"Lambda_t : \", λ)\n", + " #println(\"Lambda_t : \", λ)\n", " println(\"Minimal 1-tree \")\n", " println(\"Lambda : \", maximum(λ))\n", " println(\"Index : \", argmax(λ))\n", - " println(\"1-tree : \", columns[argmax(λ)])\n", + " #println(\"1-tree : \", columns[argmax(λ)])\n", + " println(\"Weight : \", tree_weights[argmax(λ)])\n", + " println(\"k : \", k)\n", " \n", " return columns[argmax(λ)]\n", "end" @@ -475,8 +622,16 @@ "metadata": {}, "outputs": [], "source": [ - "display(column_generation(W))\n", - "display(column_generation(W2))" + "display_S(column_generation(example))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "display_S(column_generation(exercise))" ] }, { @@ -485,236 +640,325 @@ "source": [ "## Held and Karp algorithm - attempt 1\n", "\n", - "This is the part where we implement the Held and Karp algorithm as described in J.E. Mitchell's slides using Kruskal's algorithm to solve the minimum spanning tree problem.\n", + "This is the part where we implement the Held and Karp algorithm as described in J.E. Mitchell's slides using Kruskal's algorithm to solve the minimum spanning tree problem. Since the goal of this algorithm is allegedly to provide a new column to the master problem, there is no guarantee that it gives an optimal solution.\n", "\n", - "However this approach seems to be flawed as the example is easily solved, however the exercise seems to alternate between two identical states. \n", + "Even though this approach seems to be flawed, the example is easily solved ; however the exercise seems to alternate between two identical states. \n", "This may be due to the update rule of $\\lambda$, results may vary by modifying it." ] }, { "cell_type": "code", - "execution_count": 88, + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "update_rule_3! (generic function with 1 method)" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "function update_rule!(λ, D, Ï::T) where T <: Integer\n", + " λ .= λ .+ Ï .* (2 .- D)\n", + "end\n", + "\n", + "update_rule_1!(λ, D) = update_rule!(λ, D, 1)\n", + "update_rule_2!(λ, D) = update_rule!(λ, D, 2)\n", + "update_rule_3!(λ, D) = update_rule!(λ, D, 3)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "held_and_karp_iter! (generic function with 1 method)" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "function held_and_karp_iter!(W, W_updated, Ï€, X, D, g, update_rule)\n", + " n = size(W, 1)\n", + " X .= falses(n, n) #X is reset every iteration because a different 1-tree is computed\n", + " W_updated .= convert(Matrix{Float64}, deepcopy(W)) #we need to modify the weights according to λ\n", + " \n", + " # Minimum spanning tree (span_tree : st)\n", + " for u in 2:n, v in 2:n\n", + " W_updated[u,v] -= Ï€[u] + Ï€[v]\n", + " end\n", + " st = kruskal_mst(g, W_updated[2:n,2:n])\n", + " \n", + " # Conversion of the spanning tree to an adjacency matrix\n", + " for i ∈ 1:size(st, 1)\n", + " X[src(st[i])+1, dst(st[i])+1] = 1\n", + " X[dst(st[i])+1, src(st[i])+1] = 1\n", + " end\n", + " \n", + " # We connect vertex 1 to two vertices to obtain a 1-tree\n", + " W_updated[1,2:n] .-= Ï€[2:n]\n", + " connect_v1!(X, W_updated[1,:], n)\n", + " \n", + " #then we compute the objective value\n", + " z = 2*sum(Ï€) + sum((W[u,v] - Ï€[u] - Ï€[v])*X[u,v] for u ∈ 1:n for v ∈ 1:u)\n", + " \n", + " #the degrees of all vertices in graph X\n", + " D = [sum(X[u,:]) for u ∈ 1:n]\n", + " \n", + " if all(D .== 2) # If not a tour, update\n", + " return true, z\n", + " else\n", + " update_rule(Ï€, D)\n", + " end\n", + " \n", + " return false, z\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "multiargmin (generic function with 1 method)" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#returns the nbmin indexes for smallest values of itr\n", + "#size is the length of itr\n", + "function multiargmin(itr, nbmin, size)\n", + " if nbmin > size\n", + " error(\"multiargmin : size of array is \", size, \" < nbmin = \", nbmin)\n", + " end\n", + " \n", + " argmins = [i for i in 1:nbmin]\n", + " itr_copy = deepcopy(itr)\n", + " maxitr = maximum(itr)\n", + " \n", + " #we find the nbmin smallest values of itr\n", + " for i in 1:nbmin\n", + " argmins[i] = argmin(itr_copy)\n", + " #once a min is found, it is set to maxitr to find a new minimum\n", + " itr_copy[argmins[i]] = maxitr\n", + " end\n", + " \n", + " return argmins\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 13, "metadata": { - "jupyter": { - "source_hidden": true - }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ - "hk (generic function with 1 method)" + "connect_v1! (generic function with 1 method)" ] }, - "execution_count": 88, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "function hk(W)\n", + "#connects the vertex 1 (of graph X) to the two vertices v1, v2 with smallest W1[v1], W1[v2]\n", + "#X is an adjacency matrix, W1 the weights of edges starting from 1, n the number of vertices\n", + "function connect_v1!(X, W1, n) \n", + " argmin1, argmin2 = multiargmin(W1[2:n], 2, n-1)\n", + " \n", + " X[1, argmin1+1] = 1\n", + " X[1, argmin2+1] = 1\n", + " \n", + " for u ∈ 2:n\n", + " X[u, 1] = X[1, u]\n", + " end \n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "function hk_mitchell(W; disp=true, maxiter=10000, update_rule=update_rule_2!)\n", " \n", " # Initialization\n", " n = size(W, 1)\n", " \n", - " if size(W, 2)!=n\n", - " error(\"Weight matrice must be square\")\n", - " end\n", - " # \n", + " if size(W, 2)!=n ; error(\"Weight matrice must be square\") ; end\n", " \n", " λ = zeros(n)\n", "\n", - " W_updated = W\n", - " g = complete_graph(n-1)\n", - " z = -1\n", - " S = zeros(n,n)\n", - " D = zeros(n)\n", - " while D != fill(2, n) # z!=sum(W .* S) # While not a tour\n", - " \n", - " # print(z, \" \")\n", - " \n", - " # Minimum spanning tree (span_tree : st)\n", - " for u in 1:n\n", - " for v in 1:n\n", - " W_updated[u,v] -= λ[u] + λ[v]\n", - " end\n", - " end\n", - " st = kruskal_mst(g, W_updated[2:n,2:n])\n", + " g = complete_graph(n-1) #in the TSP the graph is complete\n", + " z = -1 #the objective function\n", + " \n", + " k = 0 \n", + " X = Matrix{Bool}(undef, (n,n)) #the adjacency matrix of the 1-tree solutions\n", + " D = Array{Integer}(undef, n)\n", + " W_updated = Matrix{Integer}(undef, (n,n))\n", + " \n", + " converge = false #whether the algorithm has converged or not\n", "\n", - " # println(st)\n", - " \n", - " # Connect vertex 1\n", - " m = Model(Cbc.Optimizer) # PL(NE) Model\n", - " set_silent(m)\n", - " \n", - " @variable(m, X[1:n,1:n], Bin)\n", + " while !converge && k < maxiter # While not a tour\n", " \n", - " @objective(m, Min, \n", - " sum(W .* X) + \n", - " sum(λ[j]*(2-sum(X[1,:])) for j in 2:n)\n", - " )\n", + " converge, z = held_and_karp_iter!(W, W_updated, λ, X, D, g, update_rule)\n", " \n", - " @constraint(m, degreeRoot, sum(X[1,:]) == 2)\n", - " for i ∈ 1:size(st, 1)\n", - " @constraint(m, X[src(st[i])+1, dst(st[i])+1] == 1)\n", - " end\n", - " #@constraint(m, spanningTree[i ∈ 1:size(st,1)], X[src(st[i]), dst(st[i])] == 1)\n", - " for u ∈ 1:n\n", - " for v ∈ 1:n\n", - " @constraint(m, X[u,v] == X[v,u])\n", + " # We display the current 1-Tree\n", + " if disp && (k == 0 || k == maxiter || converge)\n", + " println(\"Iteration\", k)\n", + " \n", + " one_tree = SimpleGraph(X)\n", + " edgelabel = []\n", + " for i in 1:n, j in i:n\n", + " if X[i, j] == 1\n", + " push!(edgelabel, W_updated[i, j])\n", + " end\n", " end\n", - " @constraint(m, X[u,u] == 0)\n", - " end\n", - " \n", - " #@constraint(m, diagonalMatrix[u ∈ 1:n, v ∈ 1:n], X[u,v] == X[v,u])\n", - " \n", - " #@constraint(m, diagonalNulle[i ∈ 1:n], X[i,i] == 0)\n", - " \n", - " optimize!(m)\n", - " \n", - " if !( \n", - " ( termination_status(m) == MOI.OPTIMAL ) || \n", - " ( termination_status(m) == MOI.TIME_LIMIT \n", - " && has_values(m) ) \n", - " )\n", - " println(termination_status(m))\n", - " println(termination_status(m))\n", - " println(has_values(m))\n", - " println(m)\n", - " error(\"Couldn't connect vertex 1 (PLNE failed).\")\n", + " display(gplot(one_tree, nodelabel = 1:n, edgelabel = edgelabel, edgelabelc=\"red\"))\n", " end\n", " \n", - " z = objective_value(m)\n", - " S = value.(X)\n", - " D = [sum(S[u,:]) for u ∈ 1:n]\n", - " # For the degree, we suppose a null diagonal, to be checked later on\n", - " \n", - " if D != fill(2, n) # z!=sum(W .* S) # If not a tour, update\n", - " λ .= λ .+ 2 .* (2 .- D) # Experimenter d'autres règles\n", - " end\n", - " \n", - " println(D)\n", - " \n", + " k+=1\n", + "\n", " end\n", " \n", - " return S\n", + " return (z, X, λ)\n", " \n", "end" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - }, "tags": [] }, - "outputs": [ - { - "ename": "UndefVarError", - "evalue": "UndefVarError: hk not defined", - "output_type": "error", - "traceback": [ - "UndefVarError: hk not defined", - "", - "Stacktrace:", - " [1] top-level scope at In[9]:1" - ] - } - ], + "outputs": [], "source": [ - "columnGeneration(W)\n", - "columnGeneration(W2)\n", - "display(hk(W))\n", - "display(hk(W2))" + "z, X, λ = hk_mitchell(example; disp=true, maxiter=100000)" ] }, { - "cell_type": "markdown", - "metadata": {}, + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "source_hidden": true + }, + "tags": [] + }, + "outputs": [], "source": [ - "## Held and Karp algorithm - attempt 2\n", - "\n", - "Here we will work on the same Master Problem as seen in \"STSP using column generation\". \n", - "However the subsidiary problem will be solved using the algorithm presented by Held and Karp in the section 4 \"An ascent method\" of their paper (which correspond to the one J.E. Mitchell presents in his slides)." + "z, X, λ = hk_mitchell(exercise; disp=true, maxiter=100000, update_rule=update_rule_1!)" ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ - "function held_and_karp_algo()\n", - " \n", - "end" + "Linear changes in the update rule do not seem to impact the results" ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ - "function update_rule!(λ, D, Ï)\n", - " λ .= λ .+ Ï .* (2 .- D)\n", - "end\n", + "## Held and Karp algorithm - attempt 2\n", "\n", - "update_rule_1!(λ, D) = update_rule!(λ, D, 1)\n", - "update_rule_2!(λ, D) = update_rule!(λ, D, 2)\n", - "update_rule_3!(λ, D) = update_rule!(λ, D, 3)\n", - "update_rule_05!(λ, D) = update_rule!(λ, D, 0.5)" + "Here we will work on the same Master Problem as seen in \"STSP using column generation\". \n", + "However the subsidiary problem will be solved using the algorithm presented by Held and Karp in the section 4 \"An ascent method\" of their paper (which correspond to the one J.E. Mitchell presents in his slides)." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "held_and_karp_2 (generic function with 1 method)" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "function held_and_karp_2(W)\n", + "function held_and_karp_2(W; update_rule = update_rule_1!, max_iter = 1000)\n", " n = size(W, 1)\n", " one_trees_init = wheel_like_1trees(n)\n", " \n", " columns = one_trees_init[1:n-2]\n", " tree_degrees = [sum(columns[t][u,:]) for u ∈ 1:n, t ∈ 1:n-2]\n", - " tree_weights = [dot(columns[t], W) for t ∈ 1:n-2]\n", + " tree_weights = [dot(columns[t], W)/2 for t ∈ 1:n-2]\n", " \n", " reduced_cost = -1\n", " new_column = one_trees_init[n-1]\n", " new_degree = [sum(new_column[u,:]) for u ∈ 1:n]\n", - " new_weight = dot(new_column, W)\n", + " new_weight = dot(new_column, W)/2\n", " \n", - " while reduced_cost < 0\n", + " g = complete_graph(n-1)\n", + " k = 0\n", + " \n", + " while reduced_cost < 0 && k < max_iter\n", " \n", " push!(columns, new_column)\n", " tree_degrees = hcat(tree_degrees, new_degree)\n", - " push!(tree_weights, new_weights)\n", + " push!(tree_weights, new_weight)\n", " \n", " dm = DM(tree_weights, tree_degrees)\n", " Ï€ = value.(dm[:Ï€])\n", " μ = value.(dm[:μ])\n", " \n", - " new_column = held_and_karp_algo(W, , , update_rule_2!)\n", - " new_degree = [sum(new_column[u,:]) for u ∈ 1:n]\n", - " new_weight = dot(new_column, W)\n", " \n", + " held_and_karp_iter!(W, convert(Matrix{Float64}, deepcopy(W)), Ï€, new_column, new_degree, g, update_rule)\n", + " #new_column = held_and_karp_algo(W, , , update_rule_2!)\n", + " #reduced_cost, new_column, _ = hk_mitchell(W; disp=false, maxiter=100000, update_rule=update_rule_1!)\n", + " #new_degree = [sum(new_column[u,:]) for u ∈ 1:n]\n", + " new_weight = dot(new_column, W)/2\n", " reduced_cost = new_weight - dot(Ï€, new_degree) - μ\n", + " \n", + " k += 1\n", " end\n", " \n", " lpm = LPM(tree_weights, tree_degrees)\n", " # ipm = IPM(tree_weights, tree_degrees)\n", " \n", " λ = value.(lpm[:λ])\n", - " println(\"Lambda_t : \", λ)\n", + " #println(\"Lambda_t : \", λ)\n", " println(\"Minimal 1-tree \")\n", " println(\"Lambda : \", maximum(λ))\n", " println(\"Index : \", argmax(λ))\n", - " println(\"1-tree : \", columns[argmax(λ)])\n", + " #println(\"1-tree : \", columns[argmax(λ)])\n", " \n", " return columns[argmax(λ)] \n", "end" @@ -722,12 +966,768 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Lambda_t : [0.19999999999999976, 0.20000000000000004, 0.2, 0.19999999999999962, 0.0, 0.20000000000000057, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]\n", + "Minimal 1-tree \n", + "Lambda : 0.20000000000000057\n", + "Index : 6" + ] + }, + { + "data": { + "image/svg+xml": [ + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n", + "<svg xmlns=\"http://www.w3.org/2000/svg\"\n", + " xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n", + " version=\"1.2\"\n", + " width=\"141.42mm\" height=\"100mm\" viewBox=\"0 0 141.42 100\"\n", + " stroke=\"none\"\n", + " fill=\"#000000\"\n", + " stroke-width=\"0.3\"\n", + " font-size=\"3.88\"\n", + ">\n", + "<defs>\n", + " <marker id=\"arrow\" markerWidth=\"15\" markerHeight=\"7\" refX=\"5\" refY=\"3.5\" orient=\"auto\" markerUnits=\"strokeWidth\">\n", + " <path d=\"M0,0 L15,3.5 L0,7 z\" stroke=\"context-stroke\" fill=\"context-stroke\"/>\n", + " </marker>\n", + "</defs>\n", + "<g stroke-width=\"1.22\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#D3D3D3\" id=\"img-c48cf432-1\">\n", + " <g transform=\"translate(120.27,28.65)\">\n", + " <path fill=\"none\" d=\"M-7.5,-16.28 L7.5,16.28 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(90.36,14.42)\">\n", + " <path fill=\"none\" d=\"M15.01,-4.44 L-15.01,4.44 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(113.33,64.3)\">\n", + " <path fill=\"none\" d=\"M12.69,-11.92 L-12.69,11.92 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(60.72,44.5)\">\n", + " <path fill=\"none\" d=\"M7.53,-19.89 L-7.53,19.89 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(74.33,74.06)\">\n", + " <path fill=\"none\" d=\"M-17.01,-4.17 L17.01,4.17 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(31.71,80.08)\">\n", + " <path fill=\"none\" d=\"M15.28,-8.88 L-15.28,8.88 \" class=\"primitive\"/>\n", + " </g>\n", + "</g>\n", + "<g stroke-width=\"1.22\" stroke=\"#D3D3D3\" id=\"img-c48cf432-2\">\n", + "</g>\n", + "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-c48cf432-3\">\n", + "</g>\n", + "<g stroke-width=\"0\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#40E0D0\" id=\"img-c48cf432-4\">\n", + " <g transform=\"translate(110.91,8.33)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(129.64,48.98)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(69.8,20.51)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(51.64,68.5)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(97.02,79.62)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(11.79,91.67)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", + " </g>\n", + "</g>\n", + "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-c48cf432-5\">\n", + " <g transform=\"translate(110.91,8.33)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(129.64,48.98)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\">2</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(69.8,20.51)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\">3</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(51.64,68.5)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\">4</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(97.02,79.62)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(11.79,91.67)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\">6</text>\n", + " </g>\n", + " </g>\n", + "</g>\n", + "</svg>\n" + ], + "text/html": [ + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n", + "<svg xmlns=\"http://www.w3.org/2000/svg\"\n", + " xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n", + " version=\"1.2\"\n", + " width=\"141.42mm\" height=\"100mm\" viewBox=\"0 0 141.42 100\"\n", + " stroke=\"none\"\n", + " fill=\"#000000\"\n", + " stroke-width=\"0.3\"\n", + " font-size=\"3.88\"\n", + "\n", + " id=\"img-055c4996\">\n", + "<defs>\n", + " <marker id=\"arrow\" markerWidth=\"15\" markerHeight=\"7\" refX=\"5\" refY=\"3.5\" orient=\"auto\" markerUnits=\"strokeWidth\">\n", + " <path d=\"M0,0 L15,3.5 L0,7 z\" stroke=\"context-stroke\" fill=\"context-stroke\"/>\n", + " </marker>\n", + "</defs>\n", + "<g stroke-width=\"1.22\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#D3D3D3\" id=\"img-055c4996-1\">\n", + " <g transform=\"translate(120.27,28.65)\">\n", + " <path fill=\"none\" d=\"M-7.5,-16.28 L7.5,16.28 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(90.36,14.42)\">\n", + " <path fill=\"none\" d=\"M15.01,-4.44 L-15.01,4.44 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(113.33,64.3)\">\n", + " <path fill=\"none\" d=\"M12.69,-11.92 L-12.69,11.92 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(60.72,44.5)\">\n", + " <path fill=\"none\" d=\"M7.53,-19.89 L-7.53,19.89 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(74.33,74.06)\">\n", + " <path fill=\"none\" d=\"M-17.01,-4.17 L17.01,4.17 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(31.71,80.08)\">\n", + " <path fill=\"none\" d=\"M15.28,-8.88 L-15.28,8.88 \" class=\"primitive\"/>\n", + " </g>\n", + "</g>\n", + "<g stroke-width=\"1.22\" stroke=\"#D3D3D3\" id=\"img-055c4996-2\">\n", + "</g>\n", + "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-055c4996-3\">\n", + "</g>\n", + "<g stroke-width=\"0\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#40E0D0\" id=\"img-055c4996-4\">\n", + " <g transform=\"translate(110.91,8.33)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(129.64,48.98)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(69.8,20.51)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(51.64,68.5)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(97.02,79.62)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(11.79,91.67)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", + " </g>\n", + "</g>\n", + "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-055c4996-5\">\n", + " <g transform=\"translate(110.91,8.33)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(129.64,48.98)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\">2</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(69.8,20.51)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\">3</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(51.64,68.5)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\">4</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(97.02,79.62)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(11.79,91.67)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\">6</text>\n", + " </g>\n", + " </g>\n", + "</g>\n", + "<script> <![CDATA[\n", + "(function(N){var k=/[\\.\\/]/,L=/\\s*,\\s*/,C=function(a,d){return a-d},a,v,y={n:{}},M=function(){for(var a=0,d=this.length;a<d;a++)if(\"undefined\"!=typeof this[a])return this[a]},A=function(){for(var a=this.length;--a;)if(\"undefined\"!=typeof this[a])return this[a]},w=function(k,d){k=String(k);var f=v,n=Array.prototype.slice.call(arguments,2),u=w.listeners(k),p=0,b,q=[],e={},l=[],r=a;l.firstDefined=M;l.lastDefined=A;a=k;for(var s=v=0,x=u.length;s<x;s++)\"zIndex\"in u[s]&&(q.push(u[s].zIndex),0>u[s].zIndex&&\n", + "(e[u[s].zIndex]=u[s]));for(q.sort(C);0>q[p];)if(b=e[q[p++] ],l.push(b.apply(d,n)),v)return v=f,l;for(s=0;s<x;s++)if(b=u[s],\"zIndex\"in b)if(b.zIndex==q[p]){l.push(b.apply(d,n));if(v)break;do if(p++,(b=e[q[p] ])&&l.push(b.apply(d,n)),v)break;while(b)}else e[b.zIndex]=b;else if(l.push(b.apply(d,n)),v)break;v=f;a=r;return l};w._events=y;w.listeners=function(a){a=a.split(k);var d=y,f,n,u,p,b,q,e,l=[d],r=[];u=0;for(p=a.length;u<p;u++){e=[];b=0;for(q=l.length;b<q;b++)for(d=l[b].n,f=[d[a[u] ],d[\"*\"] ],n=2;n--;)if(d=\n", + "f[n])e.push(d),r=r.concat(d.f||[]);l=e}return r};w.on=function(a,d){a=String(a);if(\"function\"!=typeof d)return function(){};for(var f=a.split(L),n=0,u=f.length;n<u;n++)(function(a){a=a.split(k);for(var b=y,f,e=0,l=a.length;e<l;e++)b=b.n,b=b.hasOwnProperty(a[e])&&b[a[e] ]||(b[a[e] ]={n:{}});b.f=b.f||[];e=0;for(l=b.f.length;e<l;e++)if(b.f[e]==d){f=!0;break}!f&&b.f.push(d)})(f[n]);return function(a){+a==+a&&(d.zIndex=+a)}};w.f=function(a){var d=[].slice.call(arguments,1);return function(){w.apply(null,\n", + "[a,null].concat(d).concat([].slice.call(arguments,0)))}};w.stop=function(){v=1};w.nt=function(k){return k?(new RegExp(\"(?:\\\\.|\\\\/|^)\"+k+\"(?:\\\\.|\\\\/|$)\")).test(a):a};w.nts=function(){return a.split(k)};w.off=w.unbind=function(a,d){if(a){var f=a.split(L);if(1<f.length)for(var n=0,u=f.length;n<u;n++)w.off(f[n],d);else{for(var f=a.split(k),p,b,q,e,l=[y],n=0,u=f.length;n<u;n++)for(e=0;e<l.length;e+=q.length-2){q=[e,1];p=l[e].n;if(\"*\"!=f[n])p[f[n] ]&&q.push(p[f[n] ]);else for(b in p)p.hasOwnProperty(b)&&\n", + "q.push(p[b]);l.splice.apply(l,q)}n=0;for(u=l.length;n<u;n++)for(p=l[n];p.n;){if(d){if(p.f){e=0;for(f=p.f.length;e<f;e++)if(p.f[e]==d){p.f.splice(e,1);break}!p.f.length&&delete p.f}for(b in p.n)if(p.n.hasOwnProperty(b)&&p.n[b].f){q=p.n[b].f;e=0;for(f=q.length;e<f;e++)if(q[e]==d){q.splice(e,1);break}!q.length&&delete p.n[b].f}}else for(b in delete p.f,p.n)p.n.hasOwnProperty(b)&&p.n[b].f&&delete p.n[b].f;p=p.n}}}else w._events=y={n:{}}};w.once=function(a,d){var f=function(){w.unbind(a,f);return d.apply(this,\n", + "arguments)};return w.on(a,f)};w.version=\"0.4.2\";w.toString=function(){return\"You are running Eve 0.4.2\"};\"undefined\"!=typeof module&&module.exports?module.exports=w:\"function\"===typeof define&&define.amd?define(\"eve\",[],function(){return w}):N.eve=w})(this);\n", + "(function(N,k){\"function\"===typeof define&&define.amd?define(\"Snap.svg\",[\"eve\"],function(L){return k(N,L)}):k(N,N.eve)})(this,function(N,k){var L=function(a){var k={},y=N.requestAnimationFrame||N.webkitRequestAnimationFrame||N.mozRequestAnimationFrame||N.oRequestAnimationFrame||N.msRequestAnimationFrame||function(a){setTimeout(a,16)},M=Array.isArray||function(a){return a instanceof Array||\"[object Array]\"==Object.prototype.toString.call(a)},A=0,w=\"M\"+(+new Date).toString(36),z=function(a){if(null==\n", + "a)return this.s;var b=this.s-a;this.b+=this.dur*b;this.B+=this.dur*b;this.s=a},d=function(a){if(null==a)return this.spd;this.spd=a},f=function(a){if(null==a)return this.dur;this.s=this.s*a/this.dur;this.dur=a},n=function(){delete k[this.id];this.update();a(\"mina.stop.\"+this.id,this)},u=function(){this.pdif||(delete k[this.id],this.update(),this.pdif=this.get()-this.b)},p=function(){this.pdif&&(this.b=this.get()-this.pdif,delete this.pdif,k[this.id]=this)},b=function(){var a;if(M(this.start)){a=[];\n", + "for(var b=0,e=this.start.length;b<e;b++)a[b]=+this.start[b]+(this.end[b]-this.start[b])*this.easing(this.s)}else a=+this.start+(this.end-this.start)*this.easing(this.s);this.set(a)},q=function(){var l=0,b;for(b in k)if(k.hasOwnProperty(b)){var e=k[b],f=e.get();l++;e.s=(f-e.b)/(e.dur/e.spd);1<=e.s&&(delete k[b],e.s=1,l--,function(b){setTimeout(function(){a(\"mina.finish.\"+b.id,b)})}(e));e.update()}l&&y(q)},e=function(a,r,s,x,G,h,J){a={id:w+(A++).toString(36),start:a,end:r,b:s,s:0,dur:x-s,spd:1,get:G,\n", + "set:h,easing:J||e.linear,status:z,speed:d,duration:f,stop:n,pause:u,resume:p,update:b};k[a.id]=a;r=0;for(var K in k)if(k.hasOwnProperty(K)&&(r++,2==r))break;1==r&&y(q);return a};e.time=Date.now||function(){return+new Date};e.getById=function(a){return k[a]||null};e.linear=function(a){return a};e.easeout=function(a){return Math.pow(a,1.7)};e.easein=function(a){return Math.pow(a,0.48)};e.easeinout=function(a){if(1==a)return 1;if(0==a)return 0;var b=0.48-a/1.04,e=Math.sqrt(0.1734+b*b);a=e-b;a=Math.pow(Math.abs(a),\n", + "1/3)*(0>a?-1:1);b=-e-b;b=Math.pow(Math.abs(b),1/3)*(0>b?-1:1);a=a+b+0.5;return 3*(1-a)*a*a+a*a*a};e.backin=function(a){return 1==a?1:a*a*(2.70158*a-1.70158)};e.backout=function(a){if(0==a)return 0;a-=1;return a*a*(2.70158*a+1.70158)+1};e.elastic=function(a){return a==!!a?a:Math.pow(2,-10*a)*Math.sin(2*(a-0.075)*Math.PI/0.3)+1};e.bounce=function(a){a<1/2.75?a*=7.5625*a:a<2/2.75?(a-=1.5/2.75,a=7.5625*a*a+0.75):a<2.5/2.75?(a-=2.25/2.75,a=7.5625*a*a+0.9375):(a-=2.625/2.75,a=7.5625*a*a+0.984375);return a};\n", + "return N.mina=e}(\"undefined\"==typeof k?function(){}:k),C=function(){function a(c,t){if(c){if(c.tagName)return x(c);if(y(c,\"array\")&&a.set)return a.set.apply(a,c);if(c instanceof e)return c;if(null==t)return c=G.doc.querySelector(c),x(c)}return new s(null==c?\"100%\":c,null==t?\"100%\":t)}function v(c,a){if(a){\"#text\"==c&&(c=G.doc.createTextNode(a.text||\"\"));\"string\"==typeof c&&(c=v(c));if(\"string\"==typeof a)return\"xlink:\"==a.substring(0,6)?c.getAttributeNS(m,a.substring(6)):\"xml:\"==a.substring(0,4)?c.getAttributeNS(la,\n", + "a.substring(4)):c.getAttribute(a);for(var da in a)if(a[h](da)){var b=J(a[da]);b?\"xlink:\"==da.substring(0,6)?c.setAttributeNS(m,da.substring(6),b):\"xml:\"==da.substring(0,4)?c.setAttributeNS(la,da.substring(4),b):c.setAttribute(da,b):c.removeAttribute(da)}}else c=G.doc.createElementNS(la,c);return c}function y(c,a){a=J.prototype.toLowerCase.call(a);return\"finite\"==a?isFinite(c):\"array\"==a&&(c instanceof Array||Array.isArray&&Array.isArray(c))?!0:\"null\"==a&&null===c||a==typeof c&&null!==c||\"object\"==\n", + "a&&c===Object(c)||$.call(c).slice(8,-1).toLowerCase()==a}function M(c){if(\"function\"==typeof c||Object(c)!==c)return c;var a=new c.constructor,b;for(b in c)c[h](b)&&(a[b]=M(c[b]));return a}function A(c,a,b){function m(){var e=Array.prototype.slice.call(arguments,0),f=e.join(\"\\u2400\"),d=m.cache=m.cache||{},l=m.count=m.count||[];if(d[h](f)){a:for(var e=l,l=f,B=0,H=e.length;B<H;B++)if(e[B]===l){e.push(e.splice(B,1)[0]);break a}return b?b(d[f]):d[f]}1E3<=l.length&&delete d[l.shift()];l.push(f);d[f]=c.apply(a,\n", + "e);return b?b(d[f]):d[f]}return m}function w(c,a,b,m,e,f){return null==e?(c-=b,a-=m,c||a?(180*I.atan2(-a,-c)/C+540)%360:0):w(c,a,e,f)-w(b,m,e,f)}function z(c){return c%360*C/180}function d(c){var a=[];c=c.replace(/(?:^|\\s)(\\w+)\\(([^)]+)\\)/g,function(c,b,m){m=m.split(/\\s*,\\s*|\\s+/);\"rotate\"==b&&1==m.length&&m.push(0,0);\"scale\"==b&&(2<m.length?m=m.slice(0,2):2==m.length&&m.push(0,0),1==m.length&&m.push(m[0],0,0));\"skewX\"==b?a.push([\"m\",1,0,I.tan(z(m[0])),1,0,0]):\"skewY\"==b?a.push([\"m\",1,I.tan(z(m[0])),\n", + "0,1,0,0]):a.push([b.charAt(0)].concat(m));return c});return a}function f(c,t){var b=O(c),m=new a.Matrix;if(b)for(var e=0,f=b.length;e<f;e++){var h=b[e],d=h.length,B=J(h[0]).toLowerCase(),H=h[0]!=B,l=H?m.invert():0,E;\"t\"==B&&2==d?m.translate(h[1],0):\"t\"==B&&3==d?H?(d=l.x(0,0),B=l.y(0,0),H=l.x(h[1],h[2]),l=l.y(h[1],h[2]),m.translate(H-d,l-B)):m.translate(h[1],h[2]):\"r\"==B?2==d?(E=E||t,m.rotate(h[1],E.x+E.width/2,E.y+E.height/2)):4==d&&(H?(H=l.x(h[2],h[3]),l=l.y(h[2],h[3]),m.rotate(h[1],H,l)):m.rotate(h[1],\n", + "h[2],h[3])):\"s\"==B?2==d||3==d?(E=E||t,m.scale(h[1],h[d-1],E.x+E.width/2,E.y+E.height/2)):4==d?H?(H=l.x(h[2],h[3]),l=l.y(h[2],h[3]),m.scale(h[1],h[1],H,l)):m.scale(h[1],h[1],h[2],h[3]):5==d&&(H?(H=l.x(h[3],h[4]),l=l.y(h[3],h[4]),m.scale(h[1],h[2],H,l)):m.scale(h[1],h[2],h[3],h[4])):\"m\"==B&&7==d&&m.add(h[1],h[2],h[3],h[4],h[5],h[6])}return m}function n(c,t){if(null==t){var m=!0;t=\"linearGradient\"==c.type||\"radialGradient\"==c.type?c.node.getAttribute(\"gradientTransform\"):\"pattern\"==c.type?c.node.getAttribute(\"patternTransform\"):\n", + "c.node.getAttribute(\"transform\");if(!t)return new a.Matrix;t=d(t)}else t=a._.rgTransform.test(t)?J(t).replace(/\\.{3}|\\u2026/g,c._.transform||aa):d(t),y(t,\"array\")&&(t=a.path?a.path.toString.call(t):J(t)),c._.transform=t;var b=f(t,c.getBBox(1));if(m)return b;c.matrix=b}function u(c){c=c.node.ownerSVGElement&&x(c.node.ownerSVGElement)||c.node.parentNode&&x(c.node.parentNode)||a.select(\"svg\")||a(0,0);var t=c.select(\"defs\"),t=null==t?!1:t.node;t||(t=r(\"defs\",c.node).node);return t}function p(c){return c.node.ownerSVGElement&&\n", + "x(c.node.ownerSVGElement)||a.select(\"svg\")}function b(c,a,m){function b(c){if(null==c)return aa;if(c==+c)return c;v(B,{width:c});try{return B.getBBox().width}catch(a){return 0}}function h(c){if(null==c)return aa;if(c==+c)return c;v(B,{height:c});try{return B.getBBox().height}catch(a){return 0}}function e(b,B){null==a?d[b]=B(c.attr(b)||0):b==a&&(d=B(null==m?c.attr(b)||0:m))}var f=p(c).node,d={},B=f.querySelector(\".svg---mgr\");B||(B=v(\"rect\"),v(B,{x:-9E9,y:-9E9,width:10,height:10,\"class\":\"svg---mgr\",\n", + "fill:\"none\"}),f.appendChild(B));switch(c.type){case \"rect\":e(\"rx\",b),e(\"ry\",h);case \"image\":e(\"width\",b),e(\"height\",h);case \"text\":e(\"x\",b);e(\"y\",h);break;case \"circle\":e(\"cx\",b);e(\"cy\",h);e(\"r\",b);break;case \"ellipse\":e(\"cx\",b);e(\"cy\",h);e(\"rx\",b);e(\"ry\",h);break;case \"line\":e(\"x1\",b);e(\"x2\",b);e(\"y1\",h);e(\"y2\",h);break;case \"marker\":e(\"refX\",b);e(\"markerWidth\",b);e(\"refY\",h);e(\"markerHeight\",h);break;case \"radialGradient\":e(\"fx\",b);e(\"fy\",h);break;case \"tspan\":e(\"dx\",b);e(\"dy\",h);break;default:e(a,\n", + "b)}f.removeChild(B);return d}function q(c){y(c,\"array\")||(c=Array.prototype.slice.call(arguments,0));for(var a=0,b=0,m=this.node;this[a];)delete this[a++];for(a=0;a<c.length;a++)\"set\"==c[a].type?c[a].forEach(function(c){m.appendChild(c.node)}):m.appendChild(c[a].node);for(var h=m.childNodes,a=0;a<h.length;a++)this[b++]=x(h[a]);return this}function e(c){if(c.snap in E)return E[c.snap];var a=this.id=V(),b;try{b=c.ownerSVGElement}catch(m){}this.node=c;b&&(this.paper=new s(b));this.type=c.tagName;this.anims=\n", + "{};this._={transform:[]};c.snap=a;E[a]=this;\"g\"==this.type&&(this.add=q);if(this.type in{g:1,mask:1,pattern:1})for(var e in s.prototype)s.prototype[h](e)&&(this[e]=s.prototype[e])}function l(c){this.node=c}function r(c,a){var b=v(c);a.appendChild(b);return x(b)}function s(c,a){var b,m,f,d=s.prototype;if(c&&\"svg\"==c.tagName){if(c.snap in E)return E[c.snap];var l=c.ownerDocument;b=new e(c);m=c.getElementsByTagName(\"desc\")[0];f=c.getElementsByTagName(\"defs\")[0];m||(m=v(\"desc\"),m.appendChild(l.createTextNode(\"Created with Snap\")),\n", + "b.node.appendChild(m));f||(f=v(\"defs\"),b.node.appendChild(f));b.defs=f;for(var ca in d)d[h](ca)&&(b[ca]=d[ca]);b.paper=b.root=b}else b=r(\"svg\",G.doc.body),v(b.node,{height:a,version:1.1,width:c,xmlns:la});return b}function x(c){return!c||c instanceof e||c instanceof l?c:c.tagName&&\"svg\"==c.tagName.toLowerCase()?new s(c):c.tagName&&\"object\"==c.tagName.toLowerCase()&&\"image/svg+xml\"==c.type?new s(c.contentDocument.getElementsByTagName(\"svg\")[0]):new e(c)}a.version=\"0.3.0\";a.toString=function(){return\"Snap v\"+\n", + "this.version};a._={};var G={win:N,doc:N.document};a._.glob=G;var h=\"hasOwnProperty\",J=String,K=parseFloat,U=parseInt,I=Math,P=I.max,Q=I.min,Y=I.abs,C=I.PI,aa=\"\",$=Object.prototype.toString,F=/^\\s*((#[a-f\\d]{6})|(#[a-f\\d]{3})|rgba?\\(\\s*([\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?(?:\\s*,\\s*[\\d\\.]+%?)?)\\s*\\)|hsba?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?%?)\\s*\\)|hsla?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?%?)\\s*\\))\\s*$/i;a._.separator=\n", + "RegExp(\"[,\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]+\");var S=RegExp(\"[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*\"),X={hs:1,rg:1},W=RegExp(\"([a-z])[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)\",\n", + "\"ig\"),ma=RegExp(\"([rstm])[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)\",\"ig\"),Z=RegExp(\"(-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?)[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*\",\n", + "\"ig\"),na=0,ba=\"S\"+(+new Date).toString(36),V=function(){return ba+(na++).toString(36)},m=\"http://www.w3.org/1999/xlink\",la=\"http://www.w3.org/2000/svg\",E={},ca=a.url=function(c){return\"url('#\"+c+\"')\"};a._.$=v;a._.id=V;a.format=function(){var c=/\\{([^\\}]+)\\}/g,a=/(?:(?:^|\\.)(.+?)(?=\\[|\\.|$|\\()|\\[('|\")(.+?)\\2\\])(\\(\\))?/g,b=function(c,b,m){var h=m;b.replace(a,function(c,a,b,m,t){a=a||m;h&&(a in h&&(h=h[a]),\"function\"==typeof h&&t&&(h=h()))});return h=(null==h||h==m?c:h)+\"\"};return function(a,m){return J(a).replace(c,\n", + "function(c,a){return b(c,a,m)})}}();a._.clone=M;a._.cacher=A;a.rad=z;a.deg=function(c){return 180*c/C%360};a.angle=w;a.is=y;a.snapTo=function(c,a,b){b=y(b,\"finite\")?b:10;if(y(c,\"array\"))for(var m=c.length;m--;){if(Y(c[m]-a)<=b)return c[m]}else{c=+c;m=a%c;if(m<b)return a-m;if(m>c-b)return a-m+c}return a};a.getRGB=A(function(c){if(!c||(c=J(c)).indexOf(\"-\")+1)return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:ka};if(\"none\"==c)return{r:-1,g:-1,b:-1,hex:\"none\",toString:ka};!X[h](c.toLowerCase().substring(0,\n", + "2))&&\"#\"!=c.charAt()&&(c=T(c));if(!c)return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:ka};var b,m,e,f,d;if(c=c.match(F)){c[2]&&(e=U(c[2].substring(5),16),m=U(c[2].substring(3,5),16),b=U(c[2].substring(1,3),16));c[3]&&(e=U((d=c[3].charAt(3))+d,16),m=U((d=c[3].charAt(2))+d,16),b=U((d=c[3].charAt(1))+d,16));c[4]&&(d=c[4].split(S),b=K(d[0]),\"%\"==d[0].slice(-1)&&(b*=2.55),m=K(d[1]),\"%\"==d[1].slice(-1)&&(m*=2.55),e=K(d[2]),\"%\"==d[2].slice(-1)&&(e*=2.55),\"rgba\"==c[1].toLowerCase().slice(0,4)&&(f=K(d[3])),\n", + "d[3]&&\"%\"==d[3].slice(-1)&&(f/=100));if(c[5])return d=c[5].split(S),b=K(d[0]),\"%\"==d[0].slice(-1)&&(b/=100),m=K(d[1]),\"%\"==d[1].slice(-1)&&(m/=100),e=K(d[2]),\"%\"==d[2].slice(-1)&&(e/=100),\"deg\"!=d[0].slice(-3)&&\"\\u00b0\"!=d[0].slice(-1)||(b/=360),\"hsba\"==c[1].toLowerCase().slice(0,4)&&(f=K(d[3])),d[3]&&\"%\"==d[3].slice(-1)&&(f/=100),a.hsb2rgb(b,m,e,f);if(c[6])return d=c[6].split(S),b=K(d[0]),\"%\"==d[0].slice(-1)&&(b/=100),m=K(d[1]),\"%\"==d[1].slice(-1)&&(m/=100),e=K(d[2]),\"%\"==d[2].slice(-1)&&(e/=100),\n", + "\"deg\"!=d[0].slice(-3)&&\"\\u00b0\"!=d[0].slice(-1)||(b/=360),\"hsla\"==c[1].toLowerCase().slice(0,4)&&(f=K(d[3])),d[3]&&\"%\"==d[3].slice(-1)&&(f/=100),a.hsl2rgb(b,m,e,f);b=Q(I.round(b),255);m=Q(I.round(m),255);e=Q(I.round(e),255);f=Q(P(f,0),1);c={r:b,g:m,b:e,toString:ka};c.hex=\"#\"+(16777216|e|m<<8|b<<16).toString(16).slice(1);c.opacity=y(f,\"finite\")?f:1;return c}return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:ka}},a);a.hsb=A(function(c,b,m){return a.hsb2rgb(c,b,m).hex});a.hsl=A(function(c,b,m){return a.hsl2rgb(c,\n", + "b,m).hex});a.rgb=A(function(c,a,b,m){if(y(m,\"finite\")){var e=I.round;return\"rgba(\"+[e(c),e(a),e(b),+m.toFixed(2)]+\")\"}return\"#\"+(16777216|b|a<<8|c<<16).toString(16).slice(1)});var T=function(c){var a=G.doc.getElementsByTagName(\"head\")[0]||G.doc.getElementsByTagName(\"svg\")[0];T=A(function(c){if(\"red\"==c.toLowerCase())return\"rgb(255, 0, 0)\";a.style.color=\"rgb(255, 0, 0)\";a.style.color=c;c=G.doc.defaultView.getComputedStyle(a,aa).getPropertyValue(\"color\");return\"rgb(255, 0, 0)\"==c?null:c});return T(c)},\n", + "qa=function(){return\"hsb(\"+[this.h,this.s,this.b]+\")\"},ra=function(){return\"hsl(\"+[this.h,this.s,this.l]+\")\"},ka=function(){return 1==this.opacity||null==this.opacity?this.hex:\"rgba(\"+[this.r,this.g,this.b,this.opacity]+\")\"},D=function(c,b,m){null==b&&y(c,\"object\")&&\"r\"in c&&\"g\"in c&&\"b\"in c&&(m=c.b,b=c.g,c=c.r);null==b&&y(c,string)&&(m=a.getRGB(c),c=m.r,b=m.g,m=m.b);if(1<c||1<b||1<m)c/=255,b/=255,m/=255;return[c,b,m]},oa=function(c,b,m,e){c=I.round(255*c);b=I.round(255*b);m=I.round(255*m);c={r:c,\n", + "g:b,b:m,opacity:y(e,\"finite\")?e:1,hex:a.rgb(c,b,m),toString:ka};y(e,\"finite\")&&(c.opacity=e);return c};a.color=function(c){var b;y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"b\"in c?(b=a.hsb2rgb(c),c.r=b.r,c.g=b.g,c.b=b.b,c.opacity=1,c.hex=b.hex):y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"l\"in c?(b=a.hsl2rgb(c),c.r=b.r,c.g=b.g,c.b=b.b,c.opacity=1,c.hex=b.hex):(y(c,\"string\")&&(c=a.getRGB(c)),y(c,\"object\")&&\"r\"in c&&\"g\"in c&&\"b\"in c&&!(\"error\"in c)?(b=a.rgb2hsl(c),c.h=b.h,c.s=b.s,c.l=b.l,b=a.rgb2hsb(c),c.v=b.b):(c={hex:\"none\"},\n", + "c.r=c.g=c.b=c.h=c.s=c.v=c.l=-1,c.error=1));c.toString=ka;return c};a.hsb2rgb=function(c,a,b,m){y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"b\"in c&&(b=c.b,a=c.s,c=c.h,m=c.o);var e,h,d;c=360*c%360/60;d=b*a;a=d*(1-Y(c%2-1));b=e=h=b-d;c=~~c;b+=[d,a,0,0,a,d][c];e+=[a,d,d,a,0,0][c];h+=[0,0,a,d,d,a][c];return oa(b,e,h,m)};a.hsl2rgb=function(c,a,b,m){y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"l\"in c&&(b=c.l,a=c.s,c=c.h);if(1<c||1<a||1<b)c/=360,a/=100,b/=100;var e,h,d;c=360*c%360/60;d=2*a*(0.5>b?b:1-b);a=d*(1-Y(c%2-1));b=e=\n", + "h=b-d/2;c=~~c;b+=[d,a,0,0,a,d][c];e+=[a,d,d,a,0,0][c];h+=[0,0,a,d,d,a][c];return oa(b,e,h,m)};a.rgb2hsb=function(c,a,b){b=D(c,a,b);c=b[0];a=b[1];b=b[2];var m,e;m=P(c,a,b);e=m-Q(c,a,b);c=((0==e?0:m==c?(a-b)/e:m==a?(b-c)/e+2:(c-a)/e+4)+360)%6*60/360;return{h:c,s:0==e?0:e/m,b:m,toString:qa}};a.rgb2hsl=function(c,a,b){b=D(c,a,b);c=b[0];a=b[1];b=b[2];var m,e,h;m=P(c,a,b);e=Q(c,a,b);h=m-e;c=((0==h?0:m==c?(a-b)/h:m==a?(b-c)/h+2:(c-a)/h+4)+360)%6*60/360;m=(m+e)/2;return{h:c,s:0==h?0:0.5>m?h/(2*m):h/(2-2*\n", + "m),l:m,toString:ra}};a.parsePathString=function(c){if(!c)return null;var b=a.path(c);if(b.arr)return a.path.clone(b.arr);var m={a:7,c:6,o:2,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,u:3,z:0},e=[];y(c,\"array\")&&y(c[0],\"array\")&&(e=a.path.clone(c));e.length||J(c).replace(W,function(c,a,b){var h=[];c=a.toLowerCase();b.replace(Z,function(c,a){a&&h.push(+a)});\"m\"==c&&2<h.length&&(e.push([a].concat(h.splice(0,2))),c=\"l\",a=\"m\"==a?\"l\":\"L\");\"o\"==c&&1==h.length&&e.push([a,h[0] ]);if(\"r\"==c)e.push([a].concat(h));else for(;h.length>=\n", + "m[c]&&(e.push([a].concat(h.splice(0,m[c]))),m[c]););});e.toString=a.path.toString;b.arr=a.path.clone(e);return e};var O=a.parseTransformString=function(c){if(!c)return null;var b=[];y(c,\"array\")&&y(c[0],\"array\")&&(b=a.path.clone(c));b.length||J(c).replace(ma,function(c,a,m){var e=[];a.toLowerCase();m.replace(Z,function(c,a){a&&e.push(+a)});b.push([a].concat(e))});b.toString=a.path.toString;return b};a._.svgTransform2string=d;a._.rgTransform=RegExp(\"^[a-z][\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*-?\\\\.?\\\\d\",\n", + "\"i\");a._.transform2matrix=f;a._unit2px=b;a._.getSomeDefs=u;a._.getSomeSVG=p;a.select=function(c){return x(G.doc.querySelector(c))};a.selectAll=function(c){c=G.doc.querySelectorAll(c);for(var b=(a.set||Array)(),m=0;m<c.length;m++)b.push(x(c[m]));return b};setInterval(function(){for(var c in E)if(E[h](c)){var a=E[c],b=a.node;(\"svg\"!=a.type&&!b.ownerSVGElement||\"svg\"==a.type&&(!b.parentNode||\"ownerSVGElement\"in b.parentNode&&!b.ownerSVGElement))&&delete E[c]}},1E4);(function(c){function m(c){function a(c,\n", + "b){var m=v(c.node,b);(m=(m=m&&m.match(d))&&m[2])&&\"#\"==m.charAt()&&(m=m.substring(1))&&(f[m]=(f[m]||[]).concat(function(a){var m={};m[b]=ca(a);v(c.node,m)}))}function b(c){var a=v(c.node,\"xlink:href\");a&&\"#\"==a.charAt()&&(a=a.substring(1))&&(f[a]=(f[a]||[]).concat(function(a){c.attr(\"xlink:href\",\"#\"+a)}))}var e=c.selectAll(\"*\"),h,d=/^\\s*url\\((\"|'|)(.*)\\1\\)\\s*$/;c=[];for(var f={},l=0,E=e.length;l<E;l++){h=e[l];a(h,\"fill\");a(h,\"stroke\");a(h,\"filter\");a(h,\"mask\");a(h,\"clip-path\");b(h);var t=v(h.node,\n", + "\"id\");t&&(v(h.node,{id:h.id}),c.push({old:t,id:h.id}))}l=0;for(E=c.length;l<E;l++)if(e=f[c[l].old])for(h=0,t=e.length;h<t;h++)e[h](c[l].id)}function e(c,a,b){return function(m){m=m.slice(c,a);1==m.length&&(m=m[0]);return b?b(m):m}}function d(c){return function(){var a=c?\"<\"+this.type:\"\",b=this.node.attributes,m=this.node.childNodes;if(c)for(var e=0,h=b.length;e<h;e++)a+=\" \"+b[e].name+'=\"'+b[e].value.replace(/\"/g,'\\\\\"')+'\"';if(m.length){c&&(a+=\">\");e=0;for(h=m.length;e<h;e++)3==m[e].nodeType?a+=m[e].nodeValue:\n", + "1==m[e].nodeType&&(a+=x(m[e]).toString());c&&(a+=\"</\"+this.type+\">\")}else c&&(a+=\"/>\");return a}}c.attr=function(c,a){if(!c)return this;if(y(c,\"string\"))if(1<arguments.length){var b={};b[c]=a;c=b}else return k(\"snap.util.getattr.\"+c,this).firstDefined();for(var m in c)c[h](m)&&k(\"snap.util.attr.\"+m,this,c[m]);return this};c.getBBox=function(c){if(!a.Matrix||!a.path)return this.node.getBBox();var b=this,m=new a.Matrix;if(b.removed)return a._.box();for(;\"use\"==b.type;)if(c||(m=m.add(b.transform().localMatrix.translate(b.attr(\"x\")||\n", + "0,b.attr(\"y\")||0))),b.original)b=b.original;else var e=b.attr(\"xlink:href\"),b=b.original=b.node.ownerDocument.getElementById(e.substring(e.indexOf(\"#\")+1));var e=b._,h=a.path.get[b.type]||a.path.get.deflt;try{if(c)return e.bboxwt=h?a.path.getBBox(b.realPath=h(b)):a._.box(b.node.getBBox()),a._.box(e.bboxwt);b.realPath=h(b);b.matrix=b.transform().localMatrix;e.bbox=a.path.getBBox(a.path.map(b.realPath,m.add(b.matrix)));return a._.box(e.bbox)}catch(d){return a._.box()}};var f=function(){return this.string};\n", + "c.transform=function(c){var b=this._;if(null==c){var m=this;c=new a.Matrix(this.node.getCTM());for(var e=n(this),h=[e],d=new a.Matrix,l=e.toTransformString(),b=J(e)==J(this.matrix)?J(b.transform):l;\"svg\"!=m.type&&(m=m.parent());)h.push(n(m));for(m=h.length;m--;)d.add(h[m]);return{string:b,globalMatrix:c,totalMatrix:d,localMatrix:e,diffMatrix:c.clone().add(e.invert()),global:c.toTransformString(),total:d.toTransformString(),local:l,toString:f}}c instanceof a.Matrix?this.matrix=c:n(this,c);this.node&&\n", + "(\"linearGradient\"==this.type||\"radialGradient\"==this.type?v(this.node,{gradientTransform:this.matrix}):\"pattern\"==this.type?v(this.node,{patternTransform:this.matrix}):v(this.node,{transform:this.matrix}));return this};c.parent=function(){return x(this.node.parentNode)};c.append=c.add=function(c){if(c){if(\"set\"==c.type){var a=this;c.forEach(function(c){a.add(c)});return this}c=x(c);this.node.appendChild(c.node);c.paper=this.paper}return this};c.appendTo=function(c){c&&(c=x(c),c.append(this));return this};\n", + "c.prepend=function(c){if(c){if(\"set\"==c.type){var a=this,b;c.forEach(function(c){b?b.after(c):a.prepend(c);b=c});return this}c=x(c);var m=c.parent();this.node.insertBefore(c.node,this.node.firstChild);this.add&&this.add();c.paper=this.paper;this.parent()&&this.parent().add();m&&m.add()}return this};c.prependTo=function(c){c=x(c);c.prepend(this);return this};c.before=function(c){if(\"set\"==c.type){var a=this;c.forEach(function(c){var b=c.parent();a.node.parentNode.insertBefore(c.node,a.node);b&&b.add()});\n", + "this.parent().add();return this}c=x(c);var b=c.parent();this.node.parentNode.insertBefore(c.node,this.node);this.parent()&&this.parent().add();b&&b.add();c.paper=this.paper;return this};c.after=function(c){c=x(c);var a=c.parent();this.node.nextSibling?this.node.parentNode.insertBefore(c.node,this.node.nextSibling):this.node.parentNode.appendChild(c.node);this.parent()&&this.parent().add();a&&a.add();c.paper=this.paper;return this};c.insertBefore=function(c){c=x(c);var a=this.parent();c.node.parentNode.insertBefore(this.node,\n", + "c.node);this.paper=c.paper;a&&a.add();c.parent()&&c.parent().add();return this};c.insertAfter=function(c){c=x(c);var a=this.parent();c.node.parentNode.insertBefore(this.node,c.node.nextSibling);this.paper=c.paper;a&&a.add();c.parent()&&c.parent().add();return this};c.remove=function(){var c=this.parent();this.node.parentNode&&this.node.parentNode.removeChild(this.node);delete this.paper;this.removed=!0;c&&c.add();return this};c.select=function(c){return x(this.node.querySelector(c))};c.selectAll=\n", + "function(c){c=this.node.querySelectorAll(c);for(var b=(a.set||Array)(),m=0;m<c.length;m++)b.push(x(c[m]));return b};c.asPX=function(c,a){null==a&&(a=this.attr(c));return+b(this,c,a)};c.use=function(){var c,a=this.node.id;a||(a=this.id,v(this.node,{id:a}));c=\"linearGradient\"==this.type||\"radialGradient\"==this.type||\"pattern\"==this.type?r(this.type,this.node.parentNode):r(\"use\",this.node.parentNode);v(c.node,{\"xlink:href\":\"#\"+a});c.original=this;return c};var l=/\\S+/g;c.addClass=function(c){var a=(c||\n", + "\"\").match(l)||[];c=this.node;var b=c.className.baseVal,m=b.match(l)||[],e,h,d;if(a.length){for(e=0;d=a[e++];)h=m.indexOf(d),~h||m.push(d);a=m.join(\" \");b!=a&&(c.className.baseVal=a)}return this};c.removeClass=function(c){var a=(c||\"\").match(l)||[];c=this.node;var b=c.className.baseVal,m=b.match(l)||[],e,h;if(m.length){for(e=0;h=a[e++];)h=m.indexOf(h),~h&&m.splice(h,1);a=m.join(\" \");b!=a&&(c.className.baseVal=a)}return this};c.hasClass=function(c){return!!~(this.node.className.baseVal.match(l)||[]).indexOf(c)};\n", + "c.toggleClass=function(c,a){if(null!=a)return a?this.addClass(c):this.removeClass(c);var b=(c||\"\").match(l)||[],m=this.node,e=m.className.baseVal,h=e.match(l)||[],d,f,E;for(d=0;E=b[d++];)f=h.indexOf(E),~f?h.splice(f,1):h.push(E);b=h.join(\" \");e!=b&&(m.className.baseVal=b);return this};c.clone=function(){var c=x(this.node.cloneNode(!0));v(c.node,\"id\")&&v(c.node,{id:c.id});m(c);c.insertAfter(this);return c};c.toDefs=function(){u(this).appendChild(this.node);return this};c.pattern=c.toPattern=function(c,\n", + "a,b,m){var e=r(\"pattern\",u(this));null==c&&(c=this.getBBox());y(c,\"object\")&&\"x\"in c&&(a=c.y,b=c.width,m=c.height,c=c.x);v(e.node,{x:c,y:a,width:b,height:m,patternUnits:\"userSpaceOnUse\",id:e.id,viewBox:[c,a,b,m].join(\" \")});e.node.appendChild(this.node);return e};c.marker=function(c,a,b,m,e,h){var d=r(\"marker\",u(this));null==c&&(c=this.getBBox());y(c,\"object\")&&\"x\"in c&&(a=c.y,b=c.width,m=c.height,e=c.refX||c.cx,h=c.refY||c.cy,c=c.x);v(d.node,{viewBox:[c,a,b,m].join(\" \"),markerWidth:b,markerHeight:m,\n", + "orient:\"auto\",refX:e||0,refY:h||0,id:d.id});d.node.appendChild(this.node);return d};var E=function(c,a,b,m){\"function\"!=typeof b||b.length||(m=b,b=L.linear);this.attr=c;this.dur=a;b&&(this.easing=b);m&&(this.callback=m)};a._.Animation=E;a.animation=function(c,a,b,m){return new E(c,a,b,m)};c.inAnim=function(){var c=[],a;for(a in this.anims)this.anims[h](a)&&function(a){c.push({anim:new E(a._attrs,a.dur,a.easing,a._callback),mina:a,curStatus:a.status(),status:function(c){return a.status(c)},stop:function(){a.stop()}})}(this.anims[a]);\n", + "return c};a.animate=function(c,a,b,m,e,h){\"function\"!=typeof e||e.length||(h=e,e=L.linear);var d=L.time();c=L(c,a,d,d+m,L.time,b,e);h&&k.once(\"mina.finish.\"+c.id,h);return c};c.stop=function(){for(var c=this.inAnim(),a=0,b=c.length;a<b;a++)c[a].stop();return this};c.animate=function(c,a,b,m){\"function\"!=typeof b||b.length||(m=b,b=L.linear);c instanceof E&&(m=c.callback,b=c.easing,a=b.dur,c=c.attr);var d=[],f=[],l={},t,ca,n,T=this,q;for(q in c)if(c[h](q)){T.equal?(n=T.equal(q,J(c[q])),t=n.from,ca=\n", + "n.to,n=n.f):(t=+T.attr(q),ca=+c[q]);var la=y(t,\"array\")?t.length:1;l[q]=e(d.length,d.length+la,n);d=d.concat(t);f=f.concat(ca)}t=L.time();var p=L(d,f,t,t+a,L.time,function(c){var a={},b;for(b in l)l[h](b)&&(a[b]=l[b](c));T.attr(a)},b);T.anims[p.id]=p;p._attrs=c;p._callback=m;k(\"snap.animcreated.\"+T.id,p);k.once(\"mina.finish.\"+p.id,function(){delete T.anims[p.id];m&&m.call(T)});k.once(\"mina.stop.\"+p.id,function(){delete T.anims[p.id]});return T};var T={};c.data=function(c,b){var m=T[this.id]=T[this.id]||\n", + "{};if(0==arguments.length)return k(\"snap.data.get.\"+this.id,this,m,null),m;if(1==arguments.length){if(a.is(c,\"object\")){for(var e in c)c[h](e)&&this.data(e,c[e]);return this}k(\"snap.data.get.\"+this.id,this,m[c],c);return m[c]}m[c]=b;k(\"snap.data.set.\"+this.id,this,b,c);return this};c.removeData=function(c){null==c?T[this.id]={}:T[this.id]&&delete T[this.id][c];return this};c.outerSVG=c.toString=d(1);c.innerSVG=d()})(e.prototype);a.parse=function(c){var a=G.doc.createDocumentFragment(),b=!0,m=G.doc.createElement(\"div\");\n", + "c=J(c);c.match(/^\\s*<\\s*svg(?:\\s|>)/)||(c=\"<svg>\"+c+\"</svg>\",b=!1);m.innerHTML=c;if(c=m.getElementsByTagName(\"svg\")[0])if(b)a=c;else for(;c.firstChild;)a.appendChild(c.firstChild);m.innerHTML=aa;return new l(a)};l.prototype.select=e.prototype.select;l.prototype.selectAll=e.prototype.selectAll;a.fragment=function(){for(var c=Array.prototype.slice.call(arguments,0),b=G.doc.createDocumentFragment(),m=0,e=c.length;m<e;m++){var h=c[m];h.node&&h.node.nodeType&&b.appendChild(h.node);h.nodeType&&b.appendChild(h);\n", + "\"string\"==typeof h&&b.appendChild(a.parse(h).node)}return new l(b)};a._.make=r;a._.wrap=x;s.prototype.el=function(c,a){var b=r(c,this.node);a&&b.attr(a);return b};k.on(\"snap.util.getattr\",function(){var c=k.nt(),c=c.substring(c.lastIndexOf(\".\")+1),a=c.replace(/[A-Z]/g,function(c){return\"-\"+c.toLowerCase()});return pa[h](a)?this.node.ownerDocument.defaultView.getComputedStyle(this.node,null).getPropertyValue(a):v(this.node,c)});var pa={\"alignment-baseline\":0,\"baseline-shift\":0,clip:0,\"clip-path\":0,\n", + "\"clip-rule\":0,color:0,\"color-interpolation\":0,\"color-interpolation-filters\":0,\"color-profile\":0,\"color-rendering\":0,cursor:0,direction:0,display:0,\"dominant-baseline\":0,\"enable-background\":0,fill:0,\"fill-opacity\":0,\"fill-rule\":0,filter:0,\"flood-color\":0,\"flood-opacity\":0,font:0,\"font-family\":0,\"font-size\":0,\"font-size-adjust\":0,\"font-stretch\":0,\"font-style\":0,\"font-variant\":0,\"font-weight\":0,\"glyph-orientation-horizontal\":0,\"glyph-orientation-vertical\":0,\"image-rendering\":0,kerning:0,\"letter-spacing\":0,\n", + "\"lighting-color\":0,marker:0,\"marker-end\":0,\"marker-mid\":0,\"marker-start\":0,mask:0,opacity:0,overflow:0,\"pointer-events\":0,\"shape-rendering\":0,\"stop-color\":0,\"stop-opacity\":0,stroke:0,\"stroke-dasharray\":0,\"stroke-dashoffset\":0,\"stroke-linecap\":0,\"stroke-linejoin\":0,\"stroke-miterlimit\":0,\"stroke-opacity\":0,\"stroke-width\":0,\"text-anchor\":0,\"text-decoration\":0,\"text-rendering\":0,\"unicode-bidi\":0,visibility:0,\"word-spacing\":0,\"writing-mode\":0};k.on(\"snap.util.attr\",function(c){var a=k.nt(),b={},a=a.substring(a.lastIndexOf(\".\")+\n", + "1);b[a]=c;var m=a.replace(/-(\\w)/gi,function(c,a){return a.toUpperCase()}),a=a.replace(/[A-Z]/g,function(c){return\"-\"+c.toLowerCase()});pa[h](a)?this.node.style[m]=null==c?aa:c:v(this.node,b)});a.ajax=function(c,a,b,m){var e=new XMLHttpRequest,h=V();if(e){if(y(a,\"function\"))m=b,b=a,a=null;else if(y(a,\"object\")){var d=[],f;for(f in a)a.hasOwnProperty(f)&&d.push(encodeURIComponent(f)+\"=\"+encodeURIComponent(a[f]));a=d.join(\"&\")}e.open(a?\"POST\":\"GET\",c,!0);a&&(e.setRequestHeader(\"X-Requested-With\",\"XMLHttpRequest\"),\n", + "e.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded\"));b&&(k.once(\"snap.ajax.\"+h+\".0\",b),k.once(\"snap.ajax.\"+h+\".200\",b),k.once(\"snap.ajax.\"+h+\".304\",b));e.onreadystatechange=function(){4==e.readyState&&k(\"snap.ajax.\"+h+\".\"+e.status,m,e)};if(4==e.readyState)return e;e.send(a);return e}};a.load=function(c,b,m){a.ajax(c,function(c){c=a.parse(c.responseText);m?b.call(m,c):b(c)})};a.getElementByPoint=function(c,a){var b,m,e=G.doc.elementFromPoint(c,a);if(G.win.opera&&\"svg\"==e.tagName){b=\n", + "e;m=b.getBoundingClientRect();b=b.ownerDocument;var h=b.body,d=b.documentElement;b=m.top+(g.win.pageYOffset||d.scrollTop||h.scrollTop)-(d.clientTop||h.clientTop||0);m=m.left+(g.win.pageXOffset||d.scrollLeft||h.scrollLeft)-(d.clientLeft||h.clientLeft||0);h=e.createSVGRect();h.x=c-m;h.y=a-b;h.width=h.height=1;b=e.getIntersectionList(h,null);b.length&&(e=b[b.length-1])}return e?x(e):null};a.plugin=function(c){c(a,e,s,G,l)};return G.win.Snap=a}();C.plugin(function(a,k,y,M,A){function w(a,d,f,b,q,e){null==\n", + "d&&\"[object SVGMatrix]\"==z.call(a)?(this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.e=a.e,this.f=a.f):null!=a?(this.a=+a,this.b=+d,this.c=+f,this.d=+b,this.e=+q,this.f=+e):(this.a=1,this.c=this.b=0,this.d=1,this.f=this.e=0)}var z=Object.prototype.toString,d=String,f=Math;(function(n){function k(a){return a[0]*a[0]+a[1]*a[1]}function p(a){var d=f.sqrt(k(a));a[0]&&(a[0]/=d);a[1]&&(a[1]/=d)}n.add=function(a,d,e,f,n,p){var k=[[],[],[] ],u=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1] ];d=[[a,\n", + "e,n],[d,f,p],[0,0,1] ];a&&a instanceof w&&(d=[[a.a,a.c,a.e],[a.b,a.d,a.f],[0,0,1] ]);for(a=0;3>a;a++)for(e=0;3>e;e++){for(f=n=0;3>f;f++)n+=u[a][f]*d[f][e];k[a][e]=n}this.a=k[0][0];this.b=k[1][0];this.c=k[0][1];this.d=k[1][1];this.e=k[0][2];this.f=k[1][2];return this};n.invert=function(){var a=this.a*this.d-this.b*this.c;return new w(this.d/a,-this.b/a,-this.c/a,this.a/a,(this.c*this.f-this.d*this.e)/a,(this.b*this.e-this.a*this.f)/a)};n.clone=function(){return new w(this.a,this.b,this.c,this.d,this.e,\n", + "this.f)};n.translate=function(a,d){return this.add(1,0,0,1,a,d)};n.scale=function(a,d,e,f){null==d&&(d=a);(e||f)&&this.add(1,0,0,1,e,f);this.add(a,0,0,d,0,0);(e||f)&&this.add(1,0,0,1,-e,-f);return this};n.rotate=function(b,d,e){b=a.rad(b);d=d||0;e=e||0;var l=+f.cos(b).toFixed(9);b=+f.sin(b).toFixed(9);this.add(l,b,-b,l,d,e);return this.add(1,0,0,1,-d,-e)};n.x=function(a,d){return a*this.a+d*this.c+this.e};n.y=function(a,d){return a*this.b+d*this.d+this.f};n.get=function(a){return+this[d.fromCharCode(97+\n", + "a)].toFixed(4)};n.toString=function(){return\"matrix(\"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+\")\"};n.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]};n.determinant=function(){return this.a*this.d-this.b*this.c};n.split=function(){var b={};b.dx=this.e;b.dy=this.f;var d=[[this.a,this.c],[this.b,this.d] ];b.scalex=f.sqrt(k(d[0]));p(d[0]);b.shear=d[0][0]*d[1][0]+d[0][1]*d[1][1];d[1]=[d[1][0]-d[0][0]*b.shear,d[1][1]-d[0][1]*b.shear];b.scaley=f.sqrt(k(d[1]));\n", + "p(d[1]);b.shear/=b.scaley;0>this.determinant()&&(b.scalex=-b.scalex);var e=-d[0][1],d=d[1][1];0>d?(b.rotate=a.deg(f.acos(d)),0>e&&(b.rotate=360-b.rotate)):b.rotate=a.deg(f.asin(e));b.isSimple=!+b.shear.toFixed(9)&&(b.scalex.toFixed(9)==b.scaley.toFixed(9)||!b.rotate);b.isSuperSimple=!+b.shear.toFixed(9)&&b.scalex.toFixed(9)==b.scaley.toFixed(9)&&!b.rotate;b.noRotation=!+b.shear.toFixed(9)&&!b.rotate;return b};n.toTransformString=function(a){a=a||this.split();if(+a.shear.toFixed(9))return\"m\"+[this.get(0),\n", + "this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)];a.scalex=+a.scalex.toFixed(4);a.scaley=+a.scaley.toFixed(4);a.rotate=+a.rotate.toFixed(4);return(a.dx||a.dy?\"t\"+[+a.dx.toFixed(4),+a.dy.toFixed(4)]:\"\")+(1!=a.scalex||1!=a.scaley?\"s\"+[a.scalex,a.scaley,0,0]:\"\")+(a.rotate?\"r\"+[+a.rotate.toFixed(4),0,0]:\"\")}})(w.prototype);a.Matrix=w;a.matrix=function(a,d,f,b,k,e){return new w(a,d,f,b,k,e)}});C.plugin(function(a,v,y,M,A){function w(h){return function(d){k.stop();d instanceof A&&1==d.node.childNodes.length&&\n", + "(\"radialGradient\"==d.node.firstChild.tagName||\"linearGradient\"==d.node.firstChild.tagName||\"pattern\"==d.node.firstChild.tagName)&&(d=d.node.firstChild,b(this).appendChild(d),d=u(d));if(d instanceof v)if(\"radialGradient\"==d.type||\"linearGradient\"==d.type||\"pattern\"==d.type){d.node.id||e(d.node,{id:d.id});var f=l(d.node.id)}else f=d.attr(h);else f=a.color(d),f.error?(f=a(b(this).ownerSVGElement).gradient(d))?(f.node.id||e(f.node,{id:f.id}),f=l(f.node.id)):f=d:f=r(f);d={};d[h]=f;e(this.node,d);this.node.style[h]=\n", + "x}}function z(a){k.stop();a==+a&&(a+=\"px\");this.node.style.fontSize=a}function d(a){var b=[];a=a.childNodes;for(var e=0,f=a.length;e<f;e++){var l=a[e];3==l.nodeType&&b.push(l.nodeValue);\"tspan\"==l.tagName&&(1==l.childNodes.length&&3==l.firstChild.nodeType?b.push(l.firstChild.nodeValue):b.push(d(l)))}return b}function f(){k.stop();return this.node.style.fontSize}var n=a._.make,u=a._.wrap,p=a.is,b=a._.getSomeDefs,q=/^url\\(#?([^)]+)\\)$/,e=a._.$,l=a.url,r=String,s=a._.separator,x=\"\";k.on(\"snap.util.attr.mask\",\n", + "function(a){if(a instanceof v||a instanceof A){k.stop();a instanceof A&&1==a.node.childNodes.length&&(a=a.node.firstChild,b(this).appendChild(a),a=u(a));if(\"mask\"==a.type)var d=a;else d=n(\"mask\",b(this)),d.node.appendChild(a.node);!d.node.id&&e(d.node,{id:d.id});e(this.node,{mask:l(d.id)})}});(function(a){k.on(\"snap.util.attr.clip\",a);k.on(\"snap.util.attr.clip-path\",a);k.on(\"snap.util.attr.clipPath\",a)})(function(a){if(a instanceof v||a instanceof A){k.stop();if(\"clipPath\"==a.type)var d=a;else d=\n", + "n(\"clipPath\",b(this)),d.node.appendChild(a.node),!d.node.id&&e(d.node,{id:d.id});e(this.node,{\"clip-path\":l(d.id)})}});k.on(\"snap.util.attr.fill\",w(\"fill\"));k.on(\"snap.util.attr.stroke\",w(\"stroke\"));var G=/^([lr])(?:\\(([^)]*)\\))?(.*)$/i;k.on(\"snap.util.grad.parse\",function(a){a=r(a);var b=a.match(G);if(!b)return null;a=b[1];var e=b[2],b=b[3],e=e.split(/\\s*,\\s*/).map(function(a){return+a==a?+a:a});1==e.length&&0==e[0]&&(e=[]);b=b.split(\"-\");b=b.map(function(a){a=a.split(\":\");var b={color:a[0]};a[1]&&\n", + "(b.offset=parseFloat(a[1]));return b});return{type:a,params:e,stops:b}});k.on(\"snap.util.attr.d\",function(b){k.stop();p(b,\"array\")&&p(b[0],\"array\")&&(b=a.path.toString.call(b));b=r(b);b.match(/[ruo]/i)&&(b=a.path.toAbsolute(b));e(this.node,{d:b})})(-1);k.on(\"snap.util.attr.#text\",function(a){k.stop();a=r(a);for(a=M.doc.createTextNode(a);this.node.firstChild;)this.node.removeChild(this.node.firstChild);this.node.appendChild(a)})(-1);k.on(\"snap.util.attr.path\",function(a){k.stop();this.attr({d:a})})(-1);\n", + "k.on(\"snap.util.attr.class\",function(a){k.stop();this.node.className.baseVal=a})(-1);k.on(\"snap.util.attr.viewBox\",function(a){a=p(a,\"object\")&&\"x\"in a?[a.x,a.y,a.width,a.height].join(\" \"):p(a,\"array\")?a.join(\" \"):a;e(this.node,{viewBox:a});k.stop()})(-1);k.on(\"snap.util.attr.transform\",function(a){this.transform(a);k.stop()})(-1);k.on(\"snap.util.attr.r\",function(a){\"rect\"==this.type&&(k.stop(),e(this.node,{rx:a,ry:a}))})(-1);k.on(\"snap.util.attr.textpath\",function(a){k.stop();if(\"text\"==this.type){var d,\n", + "f;if(!a&&this.textPath){for(a=this.textPath;a.node.firstChild;)this.node.appendChild(a.node.firstChild);a.remove();delete this.textPath}else if(p(a,\"string\")?(d=b(this),a=u(d.parentNode).path(a),d.appendChild(a.node),d=a.id,a.attr({id:d})):(a=u(a),a instanceof v&&(d=a.attr(\"id\"),d||(d=a.id,a.attr({id:d})))),d)if(a=this.textPath,f=this.node,a)a.attr({\"xlink:href\":\"#\"+d});else{for(a=e(\"textPath\",{\"xlink:href\":\"#\"+d});f.firstChild;)a.appendChild(f.firstChild);f.appendChild(a);this.textPath=u(a)}}})(-1);\n", + "k.on(\"snap.util.attr.text\",function(a){if(\"text\"==this.type){for(var b=this.node,d=function(a){var b=e(\"tspan\");if(p(a,\"array\"))for(var f=0;f<a.length;f++)b.appendChild(d(a[f]));else b.appendChild(M.doc.createTextNode(a));b.normalize&&b.normalize();return b};b.firstChild;)b.removeChild(b.firstChild);for(a=d(a);a.firstChild;)b.appendChild(a.firstChild)}k.stop()})(-1);k.on(\"snap.util.attr.fontSize\",z)(-1);k.on(\"snap.util.attr.font-size\",z)(-1);k.on(\"snap.util.getattr.transform\",function(){k.stop();\n", + "return this.transform()})(-1);k.on(\"snap.util.getattr.textpath\",function(){k.stop();return this.textPath})(-1);(function(){function b(d){return function(){k.stop();var b=M.doc.defaultView.getComputedStyle(this.node,null).getPropertyValue(\"marker-\"+d);return\"none\"==b?b:a(M.doc.getElementById(b.match(q)[1]))}}function d(a){return function(b){k.stop();var d=\"marker\"+a.charAt(0).toUpperCase()+a.substring(1);if(\"\"==b||!b)this.node.style[d]=\"none\";else if(\"marker\"==b.type){var f=b.node.id;f||e(b.node,{id:b.id});\n", + "this.node.style[d]=l(f)}}}k.on(\"snap.util.getattr.marker-end\",b(\"end\"))(-1);k.on(\"snap.util.getattr.markerEnd\",b(\"end\"))(-1);k.on(\"snap.util.getattr.marker-start\",b(\"start\"))(-1);k.on(\"snap.util.getattr.markerStart\",b(\"start\"))(-1);k.on(\"snap.util.getattr.marker-mid\",b(\"mid\"))(-1);k.on(\"snap.util.getattr.markerMid\",b(\"mid\"))(-1);k.on(\"snap.util.attr.marker-end\",d(\"end\"))(-1);k.on(\"snap.util.attr.markerEnd\",d(\"end\"))(-1);k.on(\"snap.util.attr.marker-start\",d(\"start\"))(-1);k.on(\"snap.util.attr.markerStart\",\n", + "d(\"start\"))(-1);k.on(\"snap.util.attr.marker-mid\",d(\"mid\"))(-1);k.on(\"snap.util.attr.markerMid\",d(\"mid\"))(-1)})();k.on(\"snap.util.getattr.r\",function(){if(\"rect\"==this.type&&e(this.node,\"rx\")==e(this.node,\"ry\"))return k.stop(),e(this.node,\"rx\")})(-1);k.on(\"snap.util.getattr.text\",function(){if(\"text\"==this.type||\"tspan\"==this.type){k.stop();var a=d(this.node);return 1==a.length?a[0]:a}})(-1);k.on(\"snap.util.getattr.#text\",function(){return this.node.textContent})(-1);k.on(\"snap.util.getattr.viewBox\",\n", + "function(){k.stop();var b=e(this.node,\"viewBox\");if(b)return b=b.split(s),a._.box(+b[0],+b[1],+b[2],+b[3])})(-1);k.on(\"snap.util.getattr.points\",function(){var a=e(this.node,\"points\");k.stop();if(a)return a.split(s)})(-1);k.on(\"snap.util.getattr.path\",function(){var a=e(this.node,\"d\");k.stop();return a})(-1);k.on(\"snap.util.getattr.class\",function(){return this.node.className.baseVal})(-1);k.on(\"snap.util.getattr.fontSize\",f)(-1);k.on(\"snap.util.getattr.font-size\",f)(-1)});C.plugin(function(a,v,y,\n", + "M,A){function w(a){return a}function z(a){return function(b){return+b.toFixed(3)+a}}var d={\"+\":function(a,b){return a+b},\"-\":function(a,b){return a-b},\"/\":function(a,b){return a/b},\"*\":function(a,b){return a*b}},f=String,n=/[a-z]+$/i,u=/^\\s*([+\\-\\/*])\\s*=\\s*([\\d.eE+\\-]+)\\s*([^\\d\\s]+)?\\s*$/;k.on(\"snap.util.attr\",function(a){if(a=f(a).match(u)){var b=k.nt(),b=b.substring(b.lastIndexOf(\".\")+1),q=this.attr(b),e={};k.stop();var l=a[3]||\"\",r=q.match(n),s=d[a[1] ];r&&r==l?a=s(parseFloat(q),+a[2]):(q=this.asPX(b),\n", + "a=s(this.asPX(b),this.asPX(b,a[2]+l)));isNaN(q)||isNaN(a)||(e[b]=a,this.attr(e))}})(-10);k.on(\"snap.util.equal\",function(a,b){var q=f(this.attr(a)||\"\"),e=f(b).match(u);if(e){k.stop();var l=e[3]||\"\",r=q.match(n),s=d[e[1] ];if(r&&r==l)return{from:parseFloat(q),to:s(parseFloat(q),+e[2]),f:z(r)};q=this.asPX(a);return{from:q,to:s(q,this.asPX(a,e[2]+l)),f:w}}})(-10)});C.plugin(function(a,v,y,M,A){var w=y.prototype,z=a.is;w.rect=function(a,d,k,p,b,q){var e;null==q&&(q=b);z(a,\"object\")&&\"[object Object]\"==\n", + "a?e=a:null!=a&&(e={x:a,y:d,width:k,height:p},null!=b&&(e.rx=b,e.ry=q));return this.el(\"rect\",e)};w.circle=function(a,d,k){var p;z(a,\"object\")&&\"[object Object]\"==a?p=a:null!=a&&(p={cx:a,cy:d,r:k});return this.el(\"circle\",p)};var d=function(){function a(){this.parentNode.removeChild(this)}return function(d,k){var p=M.doc.createElement(\"img\"),b=M.doc.body;p.style.cssText=\"position:absolute;left:-9999em;top:-9999em\";p.onload=function(){k.call(p);p.onload=p.onerror=null;b.removeChild(p)};p.onerror=a;\n", + "b.appendChild(p);p.src=d}}();w.image=function(f,n,k,p,b){var q=this.el(\"image\");if(z(f,\"object\")&&\"src\"in f)q.attr(f);else if(null!=f){var e={\"xlink:href\":f,preserveAspectRatio:\"none\"};null!=n&&null!=k&&(e.x=n,e.y=k);null!=p&&null!=b?(e.width=p,e.height=b):d(f,function(){a._.$(q.node,{width:this.offsetWidth,height:this.offsetHeight})});a._.$(q.node,e)}return q};w.ellipse=function(a,d,k,p){var b;z(a,\"object\")&&\"[object Object]\"==a?b=a:null!=a&&(b={cx:a,cy:d,rx:k,ry:p});return this.el(\"ellipse\",b)};\n", + "w.path=function(a){var d;z(a,\"object\")&&!z(a,\"array\")?d=a:a&&(d={d:a});return this.el(\"path\",d)};w.group=w.g=function(a){var d=this.el(\"g\");1==arguments.length&&a&&!a.type?d.attr(a):arguments.length&&d.add(Array.prototype.slice.call(arguments,0));return d};w.svg=function(a,d,k,p,b,q,e,l){var r={};z(a,\"object\")&&null==d?r=a:(null!=a&&(r.x=a),null!=d&&(r.y=d),null!=k&&(r.width=k),null!=p&&(r.height=p),null!=b&&null!=q&&null!=e&&null!=l&&(r.viewBox=[b,q,e,l]));return this.el(\"svg\",r)};w.mask=function(a){var d=\n", + "this.el(\"mask\");1==arguments.length&&a&&!a.type?d.attr(a):arguments.length&&d.add(Array.prototype.slice.call(arguments,0));return d};w.ptrn=function(a,d,k,p,b,q,e,l){if(z(a,\"object\"))var r=a;else arguments.length?(r={},null!=a&&(r.x=a),null!=d&&(r.y=d),null!=k&&(r.width=k),null!=p&&(r.height=p),null!=b&&null!=q&&null!=e&&null!=l&&(r.viewBox=[b,q,e,l])):r={patternUnits:\"userSpaceOnUse\"};return this.el(\"pattern\",r)};w.use=function(a){return null!=a?(make(\"use\",this.node),a instanceof v&&(a.attr(\"id\")||\n", + "a.attr({id:ID()}),a=a.attr(\"id\")),this.el(\"use\",{\"xlink:href\":a})):v.prototype.use.call(this)};w.text=function(a,d,k){var p={};z(a,\"object\")?p=a:null!=a&&(p={x:a,y:d,text:k||\"\"});return this.el(\"text\",p)};w.line=function(a,d,k,p){var b={};z(a,\"object\")?b=a:null!=a&&(b={x1:a,x2:k,y1:d,y2:p});return this.el(\"line\",b)};w.polyline=function(a){1<arguments.length&&(a=Array.prototype.slice.call(arguments,0));var d={};z(a,\"object\")&&!z(a,\"array\")?d=a:null!=a&&(d={points:a});return this.el(\"polyline\",d)};\n", + "w.polygon=function(a){1<arguments.length&&(a=Array.prototype.slice.call(arguments,0));var d={};z(a,\"object\")&&!z(a,\"array\")?d=a:null!=a&&(d={points:a});return this.el(\"polygon\",d)};(function(){function d(){return this.selectAll(\"stop\")}function n(b,d){var f=e(\"stop\"),k={offset:+d+\"%\"};b=a.color(b);k[\"stop-color\"]=b.hex;1>b.opacity&&(k[\"stop-opacity\"]=b.opacity);e(f,k);this.node.appendChild(f);return this}function u(){if(\"linearGradient\"==this.type){var b=e(this.node,\"x1\")||0,d=e(this.node,\"x2\")||\n", + "1,f=e(this.node,\"y1\")||0,k=e(this.node,\"y2\")||0;return a._.box(b,f,math.abs(d-b),math.abs(k-f))}b=this.node.r||0;return a._.box((this.node.cx||0.5)-b,(this.node.cy||0.5)-b,2*b,2*b)}function p(a,d){function f(a,b){for(var d=(b-u)/(a-w),e=w;e<a;e++)h[e].offset=+(+u+d*(e-w)).toFixed(2);w=a;u=b}var n=k(\"snap.util.grad.parse\",null,d).firstDefined(),p;if(!n)return null;n.params.unshift(a);p=\"l\"==n.type.toLowerCase()?b.apply(0,n.params):q.apply(0,n.params);n.type!=n.type.toLowerCase()&&e(p.node,{gradientUnits:\"userSpaceOnUse\"});\n", + "var h=n.stops,n=h.length,u=0,w=0;n--;for(var v=0;v<n;v++)\"offset\"in h[v]&&f(v,h[v].offset);h[n].offset=h[n].offset||100;f(n,h[n].offset);for(v=0;v<=n;v++){var y=h[v];p.addStop(y.color,y.offset)}return p}function b(b,k,p,q,w){b=a._.make(\"linearGradient\",b);b.stops=d;b.addStop=n;b.getBBox=u;null!=k&&e(b.node,{x1:k,y1:p,x2:q,y2:w});return b}function q(b,k,p,q,w,h){b=a._.make(\"radialGradient\",b);b.stops=d;b.addStop=n;b.getBBox=u;null!=k&&e(b.node,{cx:k,cy:p,r:q});null!=w&&null!=h&&e(b.node,{fx:w,fy:h});\n", + "return b}var e=a._.$;w.gradient=function(a){return p(this.defs,a)};w.gradientLinear=function(a,d,e,f){return b(this.defs,a,d,e,f)};w.gradientRadial=function(a,b,d,e,f){return q(this.defs,a,b,d,e,f)};w.toString=function(){var b=this.node.ownerDocument,d=b.createDocumentFragment(),b=b.createElement(\"div\"),e=this.node.cloneNode(!0);d.appendChild(b);b.appendChild(e);a._.$(e,{xmlns:\"http://www.w3.org/2000/svg\"});b=b.innerHTML;d.removeChild(d.firstChild);return b};w.clear=function(){for(var a=this.node.firstChild,\n", + "b;a;)b=a.nextSibling,\"defs\"!=a.tagName?a.parentNode.removeChild(a):w.clear.call({node:a}),a=b}})()});C.plugin(function(a,k,y,M){function A(a){var b=A.ps=A.ps||{};b[a]?b[a].sleep=100:b[a]={sleep:100};setTimeout(function(){for(var d in b)b[L](d)&&d!=a&&(b[d].sleep--,!b[d].sleep&&delete b[d])});return b[a]}function w(a,b,d,e){null==a&&(a=b=d=e=0);null==b&&(b=a.y,d=a.width,e=a.height,a=a.x);return{x:a,y:b,width:d,w:d,height:e,h:e,x2:a+d,y2:b+e,cx:a+d/2,cy:b+e/2,r1:F.min(d,e)/2,r2:F.max(d,e)/2,r0:F.sqrt(d*\n", + "d+e*e)/2,path:s(a,b,d,e),vb:[a,b,d,e].join(\" \")}}function z(){return this.join(\",\").replace(N,\"$1\")}function d(a){a=C(a);a.toString=z;return a}function f(a,b,d,h,f,k,l,n,p){if(null==p)return e(a,b,d,h,f,k,l,n);if(0>p||e(a,b,d,h,f,k,l,n)<p)p=void 0;else{var q=0.5,O=1-q,s;for(s=e(a,b,d,h,f,k,l,n,O);0.01<Z(s-p);)q/=2,O+=(s<p?1:-1)*q,s=e(a,b,d,h,f,k,l,n,O);p=O}return u(a,b,d,h,f,k,l,n,p)}function n(b,d){function e(a){return+(+a).toFixed(3)}return a._.cacher(function(a,h,l){a instanceof k&&(a=a.attr(\"d\"));\n", + "a=I(a);for(var n,p,D,q,O=\"\",s={},c=0,t=0,r=a.length;t<r;t++){D=a[t];if(\"M\"==D[0])n=+D[1],p=+D[2];else{q=f(n,p,D[1],D[2],D[3],D[4],D[5],D[6]);if(c+q>h){if(d&&!s.start){n=f(n,p,D[1],D[2],D[3],D[4],D[5],D[6],h-c);O+=[\"C\"+e(n.start.x),e(n.start.y),e(n.m.x),e(n.m.y),e(n.x),e(n.y)];if(l)return O;s.start=O;O=[\"M\"+e(n.x),e(n.y)+\"C\"+e(n.n.x),e(n.n.y),e(n.end.x),e(n.end.y),e(D[5]),e(D[6])].join();c+=q;n=+D[5];p=+D[6];continue}if(!b&&!d)return n=f(n,p,D[1],D[2],D[3],D[4],D[5],D[6],h-c)}c+=q;n=+D[5];p=+D[6]}O+=\n", + "D.shift()+D}s.end=O;return n=b?c:d?s:u(n,p,D[0],D[1],D[2],D[3],D[4],D[5],1)},null,a._.clone)}function u(a,b,d,e,h,f,k,l,n){var p=1-n,q=ma(p,3),s=ma(p,2),c=n*n,t=c*n,r=q*a+3*s*n*d+3*p*n*n*h+t*k,q=q*b+3*s*n*e+3*p*n*n*f+t*l,s=a+2*n*(d-a)+c*(h-2*d+a),t=b+2*n*(e-b)+c*(f-2*e+b),x=d+2*n*(h-d)+c*(k-2*h+d),c=e+2*n*(f-e)+c*(l-2*f+e);a=p*a+n*d;b=p*b+n*e;h=p*h+n*k;f=p*f+n*l;l=90-180*F.atan2(s-x,t-c)/S;return{x:r,y:q,m:{x:s,y:t},n:{x:x,y:c},start:{x:a,y:b},end:{x:h,y:f},alpha:l}}function p(b,d,e,h,f,n,k,l){a.is(b,\n", + "\"array\")||(b=[b,d,e,h,f,n,k,l]);b=U.apply(null,b);return w(b.min.x,b.min.y,b.max.x-b.min.x,b.max.y-b.min.y)}function b(a,b,d){return b>=a.x&&b<=a.x+a.width&&d>=a.y&&d<=a.y+a.height}function q(a,d){a=w(a);d=w(d);return b(d,a.x,a.y)||b(d,a.x2,a.y)||b(d,a.x,a.y2)||b(d,a.x2,a.y2)||b(a,d.x,d.y)||b(a,d.x2,d.y)||b(a,d.x,d.y2)||b(a,d.x2,d.y2)||(a.x<d.x2&&a.x>d.x||d.x<a.x2&&d.x>a.x)&&(a.y<d.y2&&a.y>d.y||d.y<a.y2&&d.y>a.y)}function e(a,b,d,e,h,f,n,k,l){null==l&&(l=1);l=(1<l?1:0>l?0:l)/2;for(var p=[-0.1252,\n", + "0.1252,-0.3678,0.3678,-0.5873,0.5873,-0.7699,0.7699,-0.9041,0.9041,-0.9816,0.9816],q=[0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472],s=0,c=0;12>c;c++)var t=l*p[c]+l,r=t*(t*(-3*a+9*d-9*h+3*n)+6*a-12*d+6*h)-3*a+3*d,t=t*(t*(-3*b+9*e-9*f+3*k)+6*b-12*e+6*f)-3*b+3*e,s=s+q[c]*F.sqrt(r*r+t*t);return l*s}function l(a,b,d){a=I(a);b=I(b);for(var h,f,l,n,k,s,r,O,x,c,t=d?0:[],w=0,v=a.length;w<v;w++)if(x=a[w],\"M\"==x[0])h=k=x[1],f=s=x[2];else{\"C\"==x[0]?(x=[h,f].concat(x.slice(1)),\n", + "h=x[6],f=x[7]):(x=[h,f,h,f,k,s,k,s],h=k,f=s);for(var G=0,y=b.length;G<y;G++)if(c=b[G],\"M\"==c[0])l=r=c[1],n=O=c[2];else{\"C\"==c[0]?(c=[l,n].concat(c.slice(1)),l=c[6],n=c[7]):(c=[l,n,l,n,r,O,r,O],l=r,n=O);var z;var K=x,B=c;z=d;var H=p(K),J=p(B);if(q(H,J)){for(var H=e.apply(0,K),J=e.apply(0,B),H=~~(H/8),J=~~(J/8),U=[],A=[],F={},M=z?0:[],P=0;P<H+1;P++){var C=u.apply(0,K.concat(P/H));U.push({x:C.x,y:C.y,t:P/H})}for(P=0;P<J+1;P++)C=u.apply(0,B.concat(P/J)),A.push({x:C.x,y:C.y,t:P/J});for(P=0;P<H;P++)for(K=\n", + "0;K<J;K++){var Q=U[P],L=U[P+1],B=A[K],C=A[K+1],N=0.001>Z(L.x-Q.x)?\"y\":\"x\",S=0.001>Z(C.x-B.x)?\"y\":\"x\",R;R=Q.x;var Y=Q.y,V=L.x,ea=L.y,fa=B.x,ga=B.y,ha=C.x,ia=C.y;if(W(R,V)<X(fa,ha)||X(R,V)>W(fa,ha)||W(Y,ea)<X(ga,ia)||X(Y,ea)>W(ga,ia))R=void 0;else{var $=(R*ea-Y*V)*(fa-ha)-(R-V)*(fa*ia-ga*ha),aa=(R*ea-Y*V)*(ga-ia)-(Y-ea)*(fa*ia-ga*ha),ja=(R-V)*(ga-ia)-(Y-ea)*(fa-ha);if(ja){var $=$/ja,aa=aa/ja,ja=+$.toFixed(2),ba=+aa.toFixed(2);R=ja<+X(R,V).toFixed(2)||ja>+W(R,V).toFixed(2)||ja<+X(fa,ha).toFixed(2)||\n", + "ja>+W(fa,ha).toFixed(2)||ba<+X(Y,ea).toFixed(2)||ba>+W(Y,ea).toFixed(2)||ba<+X(ga,ia).toFixed(2)||ba>+W(ga,ia).toFixed(2)?void 0:{x:$,y:aa}}else R=void 0}R&&F[R.x.toFixed(4)]!=R.y.toFixed(4)&&(F[R.x.toFixed(4)]=R.y.toFixed(4),Q=Q.t+Z((R[N]-Q[N])/(L[N]-Q[N]))*(L.t-Q.t),B=B.t+Z((R[S]-B[S])/(C[S]-B[S]))*(C.t-B.t),0<=Q&&1>=Q&&0<=B&&1>=B&&(z?M++:M.push({x:R.x,y:R.y,t1:Q,t2:B})))}z=M}else z=z?0:[];if(d)t+=z;else{H=0;for(J=z.length;H<J;H++)z[H].segment1=w,z[H].segment2=G,z[H].bez1=x,z[H].bez2=c;t=t.concat(z)}}}return t}\n", + "function r(a){var b=A(a);if(b.bbox)return C(b.bbox);if(!a)return w();a=I(a);for(var d=0,e=0,h=[],f=[],l,n=0,k=a.length;n<k;n++)l=a[n],\"M\"==l[0]?(d=l[1],e=l[2],h.push(d),f.push(e)):(d=U(d,e,l[1],l[2],l[3],l[4],l[5],l[6]),h=h.concat(d.min.x,d.max.x),f=f.concat(d.min.y,d.max.y),d=l[5],e=l[6]);a=X.apply(0,h);l=X.apply(0,f);h=W.apply(0,h);f=W.apply(0,f);f=w(a,l,h-a,f-l);b.bbox=C(f);return f}function s(a,b,d,e,h){if(h)return[[\"M\",+a+ +h,b],[\"l\",d-2*h,0],[\"a\",h,h,0,0,1,h,h],[\"l\",0,e-2*h],[\"a\",h,h,0,0,1,\n", + "-h,h],[\"l\",2*h-d,0],[\"a\",h,h,0,0,1,-h,-h],[\"l\",0,2*h-e],[\"a\",h,h,0,0,1,h,-h],[\"z\"] ];a=[[\"M\",a,b],[\"l\",d,0],[\"l\",0,e],[\"l\",-d,0],[\"z\"] ];a.toString=z;return a}function x(a,b,d,e,h){null==h&&null==e&&(e=d);a=+a;b=+b;d=+d;e=+e;if(null!=h){var f=Math.PI/180,l=a+d*Math.cos(-e*f);a+=d*Math.cos(-h*f);var n=b+d*Math.sin(-e*f);b+=d*Math.sin(-h*f);d=[[\"M\",l,n],[\"A\",d,d,0,+(180<h-e),0,a,b] ]}else d=[[\"M\",a,b],[\"m\",0,-e],[\"a\",d,e,0,1,1,0,2*e],[\"a\",d,e,0,1,1,0,-2*e],[\"z\"] ];d.toString=z;return d}function G(b){var e=\n", + "A(b);if(e.abs)return d(e.abs);Q(b,\"array\")&&Q(b&&b[0],\"array\")||(b=a.parsePathString(b));if(!b||!b.length)return[[\"M\",0,0] ];var h=[],f=0,l=0,n=0,k=0,p=0;\"M\"==b[0][0]&&(f=+b[0][1],l=+b[0][2],n=f,k=l,p++,h[0]=[\"M\",f,l]);for(var q=3==b.length&&\"M\"==b[0][0]&&\"R\"==b[1][0].toUpperCase()&&\"Z\"==b[2][0].toUpperCase(),s,r,w=p,c=b.length;w<c;w++){h.push(s=[]);r=b[w];p=r[0];if(p!=p.toUpperCase())switch(s[0]=p.toUpperCase(),s[0]){case \"A\":s[1]=r[1];s[2]=r[2];s[3]=r[3];s[4]=r[4];s[5]=r[5];s[6]=+r[6]+f;s[7]=+r[7]+\n", + "l;break;case \"V\":s[1]=+r[1]+l;break;case \"H\":s[1]=+r[1]+f;break;case \"R\":for(var t=[f,l].concat(r.slice(1)),u=2,v=t.length;u<v;u++)t[u]=+t[u]+f,t[++u]=+t[u]+l;h.pop();h=h.concat(P(t,q));break;case \"O\":h.pop();t=x(f,l,r[1],r[2]);t.push(t[0]);h=h.concat(t);break;case \"U\":h.pop();h=h.concat(x(f,l,r[1],r[2],r[3]));s=[\"U\"].concat(h[h.length-1].slice(-2));break;case \"M\":n=+r[1]+f,k=+r[2]+l;default:for(u=1,v=r.length;u<v;u++)s[u]=+r[u]+(u%2?f:l)}else if(\"R\"==p)t=[f,l].concat(r.slice(1)),h.pop(),h=h.concat(P(t,\n", + "q)),s=[\"R\"].concat(r.slice(-2));else if(\"O\"==p)h.pop(),t=x(f,l,r[1],r[2]),t.push(t[0]),h=h.concat(t);else if(\"U\"==p)h.pop(),h=h.concat(x(f,l,r[1],r[2],r[3])),s=[\"U\"].concat(h[h.length-1].slice(-2));else for(t=0,u=r.length;t<u;t++)s[t]=r[t];p=p.toUpperCase();if(\"O\"!=p)switch(s[0]){case \"Z\":f=+n;l=+k;break;case \"H\":f=s[1];break;case \"V\":l=s[1];break;case \"M\":n=s[s.length-2],k=s[s.length-1];default:f=s[s.length-2],l=s[s.length-1]}}h.toString=z;e.abs=d(h);return h}function h(a,b,d,e){return[a,b,d,e,d,\n", + "e]}function J(a,b,d,e,h,f){var l=1/3,n=2/3;return[l*a+n*d,l*b+n*e,l*h+n*d,l*f+n*e,h,f]}function K(b,d,e,h,f,l,n,k,p,s){var r=120*S/180,q=S/180*(+f||0),c=[],t,x=a._.cacher(function(a,b,c){var d=a*F.cos(c)-b*F.sin(c);a=a*F.sin(c)+b*F.cos(c);return{x:d,y:a}});if(s)v=s[0],t=s[1],l=s[2],u=s[3];else{t=x(b,d,-q);b=t.x;d=t.y;t=x(k,p,-q);k=t.x;p=t.y;F.cos(S/180*f);F.sin(S/180*f);t=(b-k)/2;v=(d-p)/2;u=t*t/(e*e)+v*v/(h*h);1<u&&(u=F.sqrt(u),e*=u,h*=u);var u=e*e,w=h*h,u=(l==n?-1:1)*F.sqrt(Z((u*w-u*v*v-w*t*t)/\n", + "(u*v*v+w*t*t)));l=u*e*v/h+(b+k)/2;var u=u*-h*t/e+(d+p)/2,v=F.asin(((d-u)/h).toFixed(9));t=F.asin(((p-u)/h).toFixed(9));v=b<l?S-v:v;t=k<l?S-t:t;0>v&&(v=2*S+v);0>t&&(t=2*S+t);n&&v>t&&(v-=2*S);!n&&t>v&&(t-=2*S)}if(Z(t-v)>r){var c=t,w=k,G=p;t=v+r*(n&&t>v?1:-1);k=l+e*F.cos(t);p=u+h*F.sin(t);c=K(k,p,e,h,f,0,n,w,G,[t,c,l,u])}l=t-v;f=F.cos(v);r=F.sin(v);n=F.cos(t);t=F.sin(t);l=F.tan(l/4);e=4/3*e*l;l*=4/3*h;h=[b,d];b=[b+e*r,d-l*f];d=[k+e*t,p-l*n];k=[k,p];b[0]=2*h[0]-b[0];b[1]=2*h[1]-b[1];if(s)return[b,d,k].concat(c);\n", + "c=[b,d,k].concat(c).join().split(\",\");s=[];k=0;for(p=c.length;k<p;k++)s[k]=k%2?x(c[k-1],c[k],q).y:x(c[k],c[k+1],q).x;return s}function U(a,b,d,e,h,f,l,k){for(var n=[],p=[[],[] ],s,r,c,t,q=0;2>q;++q)0==q?(r=6*a-12*d+6*h,s=-3*a+9*d-9*h+3*l,c=3*d-3*a):(r=6*b-12*e+6*f,s=-3*b+9*e-9*f+3*k,c=3*e-3*b),1E-12>Z(s)?1E-12>Z(r)||(s=-c/r,0<s&&1>s&&n.push(s)):(t=r*r-4*c*s,c=F.sqrt(t),0>t||(t=(-r+c)/(2*s),0<t&&1>t&&n.push(t),s=(-r-c)/(2*s),0<s&&1>s&&n.push(s)));for(r=q=n.length;q--;)s=n[q],c=1-s,p[0][q]=c*c*c*a+3*\n", + "c*c*s*d+3*c*s*s*h+s*s*s*l,p[1][q]=c*c*c*b+3*c*c*s*e+3*c*s*s*f+s*s*s*k;p[0][r]=a;p[1][r]=b;p[0][r+1]=l;p[1][r+1]=k;p[0].length=p[1].length=r+2;return{min:{x:X.apply(0,p[0]),y:X.apply(0,p[1])},max:{x:W.apply(0,p[0]),y:W.apply(0,p[1])}}}function I(a,b){var e=!b&&A(a);if(!b&&e.curve)return d(e.curve);var f=G(a),l=b&&G(b),n={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},k={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},p=function(a,b,c){if(!a)return[\"C\",b.x,b.y,b.x,b.y,b.x,b.y];a[0]in{T:1,Q:1}||(b.qx=b.qy=null);\n", + "switch(a[0]){case \"M\":b.X=a[1];b.Y=a[2];break;case \"A\":a=[\"C\"].concat(K.apply(0,[b.x,b.y].concat(a.slice(1))));break;case \"S\":\"C\"==c||\"S\"==c?(c=2*b.x-b.bx,b=2*b.y-b.by):(c=b.x,b=b.y);a=[\"C\",c,b].concat(a.slice(1));break;case \"T\":\"Q\"==c||\"T\"==c?(b.qx=2*b.x-b.qx,b.qy=2*b.y-b.qy):(b.qx=b.x,b.qy=b.y);a=[\"C\"].concat(J(b.x,b.y,b.qx,b.qy,a[1],a[2]));break;case \"Q\":b.qx=a[1];b.qy=a[2];a=[\"C\"].concat(J(b.x,b.y,a[1],a[2],a[3],a[4]));break;case \"L\":a=[\"C\"].concat(h(b.x,b.y,a[1],a[2]));break;case \"H\":a=[\"C\"].concat(h(b.x,\n", + "b.y,a[1],b.y));break;case \"V\":a=[\"C\"].concat(h(b.x,b.y,b.x,a[1]));break;case \"Z\":a=[\"C\"].concat(h(b.x,b.y,b.X,b.Y))}return a},s=function(a,b){if(7<a[b].length){a[b].shift();for(var c=a[b];c.length;)q[b]=\"A\",l&&(u[b]=\"A\"),a.splice(b++,0,[\"C\"].concat(c.splice(0,6)));a.splice(b,1);v=W(f.length,l&&l.length||0)}},r=function(a,b,c,d,e){a&&b&&\"M\"==a[e][0]&&\"M\"!=b[e][0]&&(b.splice(e,0,[\"M\",d.x,d.y]),c.bx=0,c.by=0,c.x=a[e][1],c.y=a[e][2],v=W(f.length,l&&l.length||0))},q=[],u=[],c=\"\",t=\"\",x=0,v=W(f.length,\n", + "l&&l.length||0);for(;x<v;x++){f[x]&&(c=f[x][0]);\"C\"!=c&&(q[x]=c,x&&(t=q[x-1]));f[x]=p(f[x],n,t);\"A\"!=q[x]&&\"C\"==c&&(q[x]=\"C\");s(f,x);l&&(l[x]&&(c=l[x][0]),\"C\"!=c&&(u[x]=c,x&&(t=u[x-1])),l[x]=p(l[x],k,t),\"A\"!=u[x]&&\"C\"==c&&(u[x]=\"C\"),s(l,x));r(f,l,n,k,x);r(l,f,k,n,x);var w=f[x],z=l&&l[x],y=w.length,U=l&&z.length;n.x=w[y-2];n.y=w[y-1];n.bx=$(w[y-4])||n.x;n.by=$(w[y-3])||n.y;k.bx=l&&($(z[U-4])||k.x);k.by=l&&($(z[U-3])||k.y);k.x=l&&z[U-2];k.y=l&&z[U-1]}l||(e.curve=d(f));return l?[f,l]:f}function P(a,\n", + "b){for(var d=[],e=0,h=a.length;h-2*!b>e;e+=2){var f=[{x:+a[e-2],y:+a[e-1]},{x:+a[e],y:+a[e+1]},{x:+a[e+2],y:+a[e+3]},{x:+a[e+4],y:+a[e+5]}];b?e?h-4==e?f[3]={x:+a[0],y:+a[1]}:h-2==e&&(f[2]={x:+a[0],y:+a[1]},f[3]={x:+a[2],y:+a[3]}):f[0]={x:+a[h-2],y:+a[h-1]}:h-4==e?f[3]=f[2]:e||(f[0]={x:+a[e],y:+a[e+1]});d.push([\"C\",(-f[0].x+6*f[1].x+f[2].x)/6,(-f[0].y+6*f[1].y+f[2].y)/6,(f[1].x+6*f[2].x-f[3].x)/6,(f[1].y+6*f[2].y-f[3].y)/6,f[2].x,f[2].y])}return d}y=k.prototype;var Q=a.is,C=a._.clone,L=\"hasOwnProperty\",\n", + "N=/,?([a-z]),?/gi,$=parseFloat,F=Math,S=F.PI,X=F.min,W=F.max,ma=F.pow,Z=F.abs;M=n(1);var na=n(),ba=n(0,1),V=a._unit2px;a.path=A;a.path.getTotalLength=M;a.path.getPointAtLength=na;a.path.getSubpath=function(a,b,d){if(1E-6>this.getTotalLength(a)-d)return ba(a,b).end;a=ba(a,d,1);return b?ba(a,b).end:a};y.getTotalLength=function(){if(this.node.getTotalLength)return this.node.getTotalLength()};y.getPointAtLength=function(a){return na(this.attr(\"d\"),a)};y.getSubpath=function(b,d){return a.path.getSubpath(this.attr(\"d\"),\n", + "b,d)};a._.box=w;a.path.findDotsAtSegment=u;a.path.bezierBBox=p;a.path.isPointInsideBBox=b;a.path.isBBoxIntersect=q;a.path.intersection=function(a,b){return l(a,b)};a.path.intersectionNumber=function(a,b){return l(a,b,1)};a.path.isPointInside=function(a,d,e){var h=r(a);return b(h,d,e)&&1==l(a,[[\"M\",d,e],[\"H\",h.x2+10] ],1)%2};a.path.getBBox=r;a.path.get={path:function(a){return a.attr(\"path\")},circle:function(a){a=V(a);return x(a.cx,a.cy,a.r)},ellipse:function(a){a=V(a);return x(a.cx||0,a.cy||0,a.rx,\n", + "a.ry)},rect:function(a){a=V(a);return s(a.x||0,a.y||0,a.width,a.height,a.rx,a.ry)},image:function(a){a=V(a);return s(a.x||0,a.y||0,a.width,a.height)},line:function(a){return\"M\"+[a.attr(\"x1\")||0,a.attr(\"y1\")||0,a.attr(\"x2\"),a.attr(\"y2\")]},polyline:function(a){return\"M\"+a.attr(\"points\")},polygon:function(a){return\"M\"+a.attr(\"points\")+\"z\"},deflt:function(a){a=a.node.getBBox();return s(a.x,a.y,a.width,a.height)}};a.path.toRelative=function(b){var e=A(b),h=String.prototype.toLowerCase;if(e.rel)return d(e.rel);\n", + "a.is(b,\"array\")&&a.is(b&&b[0],\"array\")||(b=a.parsePathString(b));var f=[],l=0,n=0,k=0,p=0,s=0;\"M\"==b[0][0]&&(l=b[0][1],n=b[0][2],k=l,p=n,s++,f.push([\"M\",l,n]));for(var r=b.length;s<r;s++){var q=f[s]=[],x=b[s];if(x[0]!=h.call(x[0]))switch(q[0]=h.call(x[0]),q[0]){case \"a\":q[1]=x[1];q[2]=x[2];q[3]=x[3];q[4]=x[4];q[5]=x[5];q[6]=+(x[6]-l).toFixed(3);q[7]=+(x[7]-n).toFixed(3);break;case \"v\":q[1]=+(x[1]-n).toFixed(3);break;case \"m\":k=x[1],p=x[2];default:for(var c=1,t=x.length;c<t;c++)q[c]=+(x[c]-(c%2?l:\n", + "n)).toFixed(3)}else for(f[s]=[],\"m\"==x[0]&&(k=x[1]+l,p=x[2]+n),q=0,c=x.length;q<c;q++)f[s][q]=x[q];x=f[s].length;switch(f[s][0]){case \"z\":l=k;n=p;break;case \"h\":l+=+f[s][x-1];break;case \"v\":n+=+f[s][x-1];break;default:l+=+f[s][x-2],n+=+f[s][x-1]}}f.toString=z;e.rel=d(f);return f};a.path.toAbsolute=G;a.path.toCubic=I;a.path.map=function(a,b){if(!b)return a;var d,e,h,f,l,n,k;a=I(a);h=0;for(l=a.length;h<l;h++)for(k=a[h],f=1,n=k.length;f<n;f+=2)d=b.x(k[f],k[f+1]),e=b.y(k[f],k[f+1]),k[f]=d,k[f+1]=e;return a};\n", + "a.path.toString=z;a.path.clone=d});C.plugin(function(a,v,y,C){var A=Math.max,w=Math.min,z=function(a){this.items=[];this.bindings={};this.length=0;this.type=\"set\";if(a)for(var f=0,n=a.length;f<n;f++)a[f]&&(this[this.items.length]=this.items[this.items.length]=a[f],this.length++)};v=z.prototype;v.push=function(){for(var a,f,n=0,k=arguments.length;n<k;n++)if(a=arguments[n])f=this.items.length,this[f]=this.items[f]=a,this.length++;return this};v.pop=function(){this.length&&delete this[this.length--];\n", + "return this.items.pop()};v.forEach=function(a,f){for(var n=0,k=this.items.length;n<k&&!1!==a.call(f,this.items[n],n);n++);return this};v.animate=function(d,f,n,u){\"function\"!=typeof n||n.length||(u=n,n=L.linear);d instanceof a._.Animation&&(u=d.callback,n=d.easing,f=n.dur,d=d.attr);var p=arguments;if(a.is(d,\"array\")&&a.is(p[p.length-1],\"array\"))var b=!0;var q,e=function(){q?this.b=q:q=this.b},l=0,r=u&&function(){l++==this.length&&u.call(this)};return this.forEach(function(a,l){k.once(\"snap.animcreated.\"+\n", + "a.id,e);b?p[l]&&a.animate.apply(a,p[l]):a.animate(d,f,n,r)})};v.remove=function(){for(;this.length;)this.pop().remove();return this};v.bind=function(a,f,k){var u={};if(\"function\"==typeof f)this.bindings[a]=f;else{var p=k||a;this.bindings[a]=function(a){u[p]=a;f.attr(u)}}return this};v.attr=function(a){var f={},k;for(k in a)if(this.bindings[k])this.bindings[k](a[k]);else f[k]=a[k];a=0;for(k=this.items.length;a<k;a++)this.items[a].attr(f);return this};v.clear=function(){for(;this.length;)this.pop()};\n", + "v.splice=function(a,f,k){a=0>a?A(this.length+a,0):a;f=A(0,w(this.length-a,f));var u=[],p=[],b=[],q;for(q=2;q<arguments.length;q++)b.push(arguments[q]);for(q=0;q<f;q++)p.push(this[a+q]);for(;q<this.length-a;q++)u.push(this[a+q]);var e=b.length;for(q=0;q<e+u.length;q++)this.items[a+q]=this[a+q]=q<e?b[q]:u[q-e];for(q=this.items.length=this.length-=f-e;this[q];)delete this[q++];return new z(p)};v.exclude=function(a){for(var f=0,k=this.length;f<k;f++)if(this[f]==a)return this.splice(f,1),!0;return!1};\n", + "v.insertAfter=function(a){for(var f=this.items.length;f--;)this.items[f].insertAfter(a);return this};v.getBBox=function(){for(var a=[],f=[],k=[],u=[],p=this.items.length;p--;)if(!this.items[p].removed){var b=this.items[p].getBBox();a.push(b.x);f.push(b.y);k.push(b.x+b.width);u.push(b.y+b.height)}a=w.apply(0,a);f=w.apply(0,f);k=A.apply(0,k);u=A.apply(0,u);return{x:a,y:f,x2:k,y2:u,width:k-a,height:u-f,cx:a+(k-a)/2,cy:f+(u-f)/2}};v.clone=function(a){a=new z;for(var f=0,k=this.items.length;f<k;f++)a.push(this.items[f].clone());\n", + "return a};v.toString=function(){return\"Snap\\u2018s set\"};v.type=\"set\";a.set=function(){var a=new z;arguments.length&&a.push.apply(a,Array.prototype.slice.call(arguments,0));return a}});C.plugin(function(a,v,y,C){function A(a){var b=a[0];switch(b.toLowerCase()){case \"t\":return[b,0,0];case \"m\":return[b,1,0,0,1,0,0];case \"r\":return 4==a.length?[b,0,a[2],a[3] ]:[b,0];case \"s\":return 5==a.length?[b,1,1,a[3],a[4] ]:3==a.length?[b,1,1]:[b,1]}}function w(b,d,f){d=q(d).replace(/\\.{3}|\\u2026/g,b);b=a.parseTransformString(b)||\n", + "[];d=a.parseTransformString(d)||[];for(var k=Math.max(b.length,d.length),p=[],v=[],h=0,w,z,y,I;h<k;h++){y=b[h]||A(d[h]);I=d[h]||A(y);if(y[0]!=I[0]||\"r\"==y[0].toLowerCase()&&(y[2]!=I[2]||y[3]!=I[3])||\"s\"==y[0].toLowerCase()&&(y[3]!=I[3]||y[4]!=I[4])){b=a._.transform2matrix(b,f());d=a._.transform2matrix(d,f());p=[[\"m\",b.a,b.b,b.c,b.d,b.e,b.f] ];v=[[\"m\",d.a,d.b,d.c,d.d,d.e,d.f] ];break}p[h]=[];v[h]=[];w=0;for(z=Math.max(y.length,I.length);w<z;w++)w in y&&(p[h][w]=y[w]),w in I&&(v[h][w]=I[w])}return{from:u(p),\n", + "to:u(v),f:n(p)}}function z(a){return a}function d(a){return function(b){return+b.toFixed(3)+a}}function f(b){return a.rgb(b[0],b[1],b[2])}function n(a){var b=0,d,f,k,n,h,p,q=[];d=0;for(f=a.length;d<f;d++){h=\"[\";p=['\"'+a[d][0]+'\"'];k=1;for(n=a[d].length;k<n;k++)p[k]=\"val[\"+b++ +\"]\";h+=p+\"]\";q[d]=h}return Function(\"val\",\"return Snap.path.toString.call([\"+q+\"])\")}function u(a){for(var b=[],d=0,f=a.length;d<f;d++)for(var k=1,n=a[d].length;k<n;k++)b.push(a[d][k]);return b}var p={},b=/[a-z]+$/i,q=String;\n", + "p.stroke=p.fill=\"colour\";v.prototype.equal=function(a,b){return k(\"snap.util.equal\",this,a,b).firstDefined()};k.on(\"snap.util.equal\",function(e,k){var r,s;r=q(this.attr(e)||\"\");var x=this;if(r==+r&&k==+k)return{from:+r,to:+k,f:z};if(\"colour\"==p[e])return r=a.color(r),s=a.color(k),{from:[r.r,r.g,r.b,r.opacity],to:[s.r,s.g,s.b,s.opacity],f:f};if(\"transform\"==e||\"gradientTransform\"==e||\"patternTransform\"==e)return k instanceof a.Matrix&&(k=k.toTransformString()),a._.rgTransform.test(k)||(k=a._.svgTransform2string(k)),\n", + "w(r,k,function(){return x.getBBox(1)});if(\"d\"==e||\"path\"==e)return r=a.path.toCubic(r,k),{from:u(r[0]),to:u(r[1]),f:n(r[0])};if(\"points\"==e)return r=q(r).split(a._.separator),s=q(k).split(a._.separator),{from:r,to:s,f:function(a){return a}};aUnit=r.match(b);s=q(k).match(b);return aUnit&&aUnit==s?{from:parseFloat(r),to:parseFloat(k),f:d(aUnit)}:{from:this.asPX(e),to:this.asPX(e,k),f:z}})});C.plugin(function(a,v,y,C){var A=v.prototype,w=\"createTouch\"in C.doc;v=\"click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel\".split(\" \");\n", + "var z={mousedown:\"touchstart\",mousemove:\"touchmove\",mouseup:\"touchend\"},d=function(a,b){var d=\"y\"==a?\"scrollTop\":\"scrollLeft\",e=b&&b.node?b.node.ownerDocument:C.doc;return e[d in e.documentElement?\"documentElement\":\"body\"][d]},f=function(){this.returnValue=!1},n=function(){return this.originalEvent.preventDefault()},u=function(){this.cancelBubble=!0},p=function(){return this.originalEvent.stopPropagation()},b=function(){if(C.doc.addEventListener)return function(a,b,e,f){var k=w&&z[b]?z[b]:b,l=function(k){var l=\n", + "d(\"y\",f),q=d(\"x\",f);if(w&&z.hasOwnProperty(b))for(var r=0,u=k.targetTouches&&k.targetTouches.length;r<u;r++)if(k.targetTouches[r].target==a||a.contains(k.targetTouches[r].target)){u=k;k=k.targetTouches[r];k.originalEvent=u;k.preventDefault=n;k.stopPropagation=p;break}return e.call(f,k,k.clientX+q,k.clientY+l)};b!==k&&a.addEventListener(b,l,!1);a.addEventListener(k,l,!1);return function(){b!==k&&a.removeEventListener(b,l,!1);a.removeEventListener(k,l,!1);return!0}};if(C.doc.attachEvent)return function(a,\n", + "b,e,h){var k=function(a){a=a||h.node.ownerDocument.window.event;var b=d(\"y\",h),k=d(\"x\",h),k=a.clientX+k,b=a.clientY+b;a.preventDefault=a.preventDefault||f;a.stopPropagation=a.stopPropagation||u;return e.call(h,a,k,b)};a.attachEvent(\"on\"+b,k);return function(){a.detachEvent(\"on\"+b,k);return!0}}}(),q=[],e=function(a){for(var b=a.clientX,e=a.clientY,f=d(\"y\"),l=d(\"x\"),n,p=q.length;p--;){n=q[p];if(w)for(var r=a.touches&&a.touches.length,u;r--;){if(u=a.touches[r],u.identifier==n.el._drag.id||n.el.node.contains(u.target)){b=\n", + "u.clientX;e=u.clientY;(a.originalEvent?a.originalEvent:a).preventDefault();break}}else a.preventDefault();b+=l;e+=f;k(\"snap.drag.move.\"+n.el.id,n.move_scope||n.el,b-n.el._drag.x,e-n.el._drag.y,b,e,a)}},l=function(b){a.unmousemove(e).unmouseup(l);for(var d=q.length,f;d--;)f=q[d],f.el._drag={},k(\"snap.drag.end.\"+f.el.id,f.end_scope||f.start_scope||f.move_scope||f.el,b);q=[]};for(y=v.length;y--;)(function(d){a[d]=A[d]=function(e,f){a.is(e,\"function\")&&(this.events=this.events||[],this.events.push({name:d,\n", + "f:e,unbind:b(this.node||document,d,e,f||this)}));return this};a[\"un\"+d]=A[\"un\"+d]=function(a){for(var b=this.events||[],e=b.length;e--;)if(b[e].name==d&&(b[e].f==a||!a)){b[e].unbind();b.splice(e,1);!b.length&&delete this.events;break}return this}})(v[y]);A.hover=function(a,b,d,e){return this.mouseover(a,d).mouseout(b,e||d)};A.unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};var r=[];A.drag=function(b,d,f,h,n,p){function u(r,v,w){(r.originalEvent||r).preventDefault();this._drag.x=v;\n", + "this._drag.y=w;this._drag.id=r.identifier;!q.length&&a.mousemove(e).mouseup(l);q.push({el:this,move_scope:h,start_scope:n,end_scope:p});d&&k.on(\"snap.drag.start.\"+this.id,d);b&&k.on(\"snap.drag.move.\"+this.id,b);f&&k.on(\"snap.drag.end.\"+this.id,f);k(\"snap.drag.start.\"+this.id,n||h||this,v,w,r)}if(!arguments.length){var v;return this.drag(function(a,b){this.attr({transform:v+(v?\"T\":\"t\")+[a,b]})},function(){v=this.transform().local})}this._drag={};r.push({el:this,start:u});this.mousedown(u);return this};\n", + "A.undrag=function(){for(var b=r.length;b--;)r[b].el==this&&(this.unmousedown(r[b].start),r.splice(b,1),k.unbind(\"snap.drag.*.\"+this.id));!r.length&&a.unmousemove(e).unmouseup(l);return this}});C.plugin(function(a,v,y,C){y=y.prototype;var A=/^\\s*url\\((.+)\\)/,w=String,z=a._.$;a.filter={};y.filter=function(d){var f=this;\"svg\"!=f.type&&(f=f.paper);d=a.parse(w(d));var k=a._.id(),u=z(\"filter\");z(u,{id:k,filterUnits:\"userSpaceOnUse\"});u.appendChild(d.node);f.defs.appendChild(u);return new v(u)};k.on(\"snap.util.getattr.filter\",\n", + "function(){k.stop();var d=z(this.node,\"filter\");if(d)return(d=w(d).match(A))&&a.select(d[1])});k.on(\"snap.util.attr.filter\",function(d){if(d instanceof v&&\"filter\"==d.type){k.stop();var f=d.node.id;f||(z(d.node,{id:d.id}),f=d.id);z(this.node,{filter:a.url(f)})}d&&\"none\"!=d||(k.stop(),this.node.removeAttribute(\"filter\"))});a.filter.blur=function(d,f){null==d&&(d=2);return a.format('<feGaussianBlur stdDeviation=\"{def}\"/>',{def:null==f?d:[d,f]})};a.filter.blur.toString=function(){return this()};a.filter.shadow=\n", + "function(d,f,k,u,p){\"string\"==typeof k&&(p=u=k,k=4);\"string\"!=typeof u&&(p=u,u=\"#000\");null==k&&(k=4);null==p&&(p=1);null==d&&(d=0,f=2);null==f&&(f=d);u=a.color(u||\"#000\");return a.format('<feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"{blur}\"/><feOffset dx=\"{dx}\" dy=\"{dy}\" result=\"offsetblur\"/><feFlood flood-color=\"{color}\"/><feComposite in2=\"offsetblur\" operator=\"in\"/><feComponentTransfer><feFuncA type=\"linear\" slope=\"{opacity}\"/></feComponentTransfer><feMerge><feMergeNode/><feMergeNode in=\"SourceGraphic\"/></feMerge>',\n", + "{color:u,dx:d,dy:f,blur:k,opacity:p})};a.filter.shadow.toString=function(){return this()};a.filter.grayscale=function(d){null==d&&(d=1);return a.format('<feColorMatrix type=\"matrix\" values=\"{a} {b} {c} 0 0 {d} {e} {f} 0 0 {g} {b} {h} 0 0 0 0 0 1 0\"/>',{a:0.2126+0.7874*(1-d),b:0.7152-0.7152*(1-d),c:0.0722-0.0722*(1-d),d:0.2126-0.2126*(1-d),e:0.7152+0.2848*(1-d),f:0.0722-0.0722*(1-d),g:0.2126-0.2126*(1-d),h:0.0722+0.9278*(1-d)})};a.filter.grayscale.toString=function(){return this()};a.filter.sepia=\n", + "function(d){null==d&&(d=1);return a.format('<feColorMatrix type=\"matrix\" values=\"{a} {b} {c} 0 0 {d} {e} {f} 0 0 {g} {h} {i} 0 0 0 0 0 1 0\"/>',{a:0.393+0.607*(1-d),b:0.769-0.769*(1-d),c:0.189-0.189*(1-d),d:0.349-0.349*(1-d),e:0.686+0.314*(1-d),f:0.168-0.168*(1-d),g:0.272-0.272*(1-d),h:0.534-0.534*(1-d),i:0.131+0.869*(1-d)})};a.filter.sepia.toString=function(){return this()};a.filter.saturate=function(d){null==d&&(d=1);return a.format('<feColorMatrix type=\"saturate\" values=\"{amount}\"/>',{amount:1-\n", + "d})};a.filter.saturate.toString=function(){return this()};a.filter.hueRotate=function(d){return a.format('<feColorMatrix type=\"hueRotate\" values=\"{angle}\"/>',{angle:d||0})};a.filter.hueRotate.toString=function(){return this()};a.filter.invert=function(d){null==d&&(d=1);return a.format('<feComponentTransfer><feFuncR type=\"table\" tableValues=\"{amount} {amount2}\"/><feFuncG type=\"table\" tableValues=\"{amount} {amount2}\"/><feFuncB type=\"table\" tableValues=\"{amount} {amount2}\"/></feComponentTransfer>',{amount:d,\n", + "amount2:1-d})};a.filter.invert.toString=function(){return this()};a.filter.brightness=function(d){null==d&&(d=1);return a.format('<feComponentTransfer><feFuncR type=\"linear\" slope=\"{amount}\"/><feFuncG type=\"linear\" slope=\"{amount}\"/><feFuncB type=\"linear\" slope=\"{amount}\"/></feComponentTransfer>',{amount:d})};a.filter.brightness.toString=function(){return this()};a.filter.contrast=function(d){null==d&&(d=1);return a.format('<feComponentTransfer><feFuncR type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/><feFuncG type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/><feFuncB type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/></feComponentTransfer>',\n", + "{amount:d,amount2:0.5-d/2})};a.filter.contrast.toString=function(){return this()}});return C});\n", + "\n", + "]]> </script>\n", + "</svg>\n" + ], + "text/plain": [ + "Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), Compose.UnitBox{Float64,Float64,Float64,Float64}(-1.2, -1.2, 2.4, 2.4, 0.0mm, 0.0mm, 0.0mm, 0.0mm), nothing, nothing, nothing, List([Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.LinePrimitive}(Compose.LinePrimitive[Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.7137976100076429cx, -0.9029591881648369cy), (0.9683812159462271cx, -0.12161985018812808cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.5880382681027622cx, -0.9605763772066938cy), (0.07874864313138331cx, -0.7472990977245455cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.9386303854321015cx, 0.056971173629924765cy), (0.5079120614872624cx, 0.6293256013044635cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.041782045348172606cx, -0.609284259946941cy), (-0.29731975857716114cx, 0.3453822392933723cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.2272733598446124cx, 0.47738995426603337cy), (0.35010591755836706cx, 0.6774593132989903cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.40254719171251296cx, 0.5087912481316859cy), (-0.9211626974930963cx, 0.9351822061459847cy)])], Symbol(\"\"))]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(1.2247448713915892mm)]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.8274509803921568,0.8274509803921568,0.8274509803921568,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(1.2247448713915892mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.8274509803921568,0.8274509803921568,0.8274509803921568,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(4.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}}(Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}[Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.6821788259538699cx, -1.0cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((1.0cx, -0.024579038352964933cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-0.015391914719724453cx, -0.7078754749312393cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-0.3237098892056093cx, 0.44397345427767054cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.44654244691936396cx, 0.7108758132873532cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-1.0cx, 1.0cy), 0.04082482904638631w)], Symbol(\"\"))]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(0.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.25098039215686274,0.8784313725490196,0.8156862745098039,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}}(Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}[Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.6821788259538699cx, -1.0cy), \"1\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((1.0cx, -0.024579038352964933cy), \"2\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.015391914719724453cx, -0.7078754749312393cy), \"3\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.3237098892056093cx, 0.44397345427767054cy), \"4\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.44654244691936396cx, 0.7108758132873532cy), \"5\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-1.0cx, 1.0cy), \"6\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm))], Symbol(\"\"))]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(4.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\"))]), List([]), List([]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\"))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "1-tree : [0.0 1.0 1.0 0.0 0.0 0.0; 1.0 0.0 0.0 0.0 1.0 0.0; 1.0 0.0 0.0 1.0 0.0 0.0; 0.0 0.0 1.0 0.0 1.0 1.0; 0.0 1.0 0.0 1.0 0.0 0.0; 0.0 0.0 0.0 1.0 0.0 0.0]\n" + ] + } + ], "source": [ - "display(held_and_karp_2(W))\n", - "display(held_and_karp_2(W2))" + "display_S(held_and_karp_2(example))" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Lambda_t : [0.16666666666666663, 0.16666666666666663, 0.16666666666666707, 0.16666666666666657, 0.16666666666666666, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1666666666666665, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]\n", + "Minimal 1-tree \n", + "Lambda : 0.16666666666666707\n", + "Index : 3\n", + "1-tree : [0.0 0.0 0.0 1.0 1.0 0.0 0.0; 0.0 0.0 0.0 1.0 0.0 0.0 0.0; 0.0 0.0 0.0 1.0 0.0 0.0 0.0; 1.0 1.0 1.0 0.0 1.0 1.0 1.0; 1.0 0.0 0.0 1.0 0.0 0.0 0.0; 0.0 0.0 0.0 1.0 0.0 0.0 0.0; 0.0" + ] + }, + { + "data": { + "image/svg+xml": [ + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n", + "<svg xmlns=\"http://www.w3.org/2000/svg\"\n", + " xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n", + " version=\"1.2\"\n", + " width=\"141.42mm\" height=\"100mm\" viewBox=\"0 0 141.42 100\"\n", + " stroke=\"none\"\n", + " fill=\"#000000\"\n", + " stroke-width=\"0.3\"\n", + " font-size=\"3.88\"\n", + ">\n", + "<defs>\n", + " <marker id=\"arrow\" markerWidth=\"15\" markerHeight=\"7\" refX=\"5\" refY=\"3.5\" orient=\"auto\" markerUnits=\"strokeWidth\">\n", + " <path d=\"M0,0 L15,3.5 L0,7 z\" stroke=\"context-stroke\" fill=\"context-stroke\"/>\n", + " </marker>\n", + "</defs>\n", + "<g stroke-width=\"1.13\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#D3D3D3\" id=\"img-12f8a343-1\">\n", + " <g transform=\"translate(100.41,49.59)\">\n", + " <path fill=\"none\" d=\"M23.66,-0.23 L-23.66,0.23 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(124.48,61.35)\">\n", + " <path fill=\"none\" d=\"M3.54,-8.27 L-3.54,8.27 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(81.3,29.11)\">\n", + " <path fill=\"none\" d=\"M8.3,-17.05 L-8.3,17.05 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(41.49,54.9)\">\n", + " <path fill=\"none\" d=\"M-24.29,4.11 L24.29,-4.11 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(95.26,61.63)\">\n", + " <path fill=\"none\" d=\"M-19.49,-9.52 L19.49,9.52 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(50.38,33.44)\">\n", + " <path fill=\"none\" d=\"M17.09,13.51 L-17.09,-13.51 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(63.37,70.77)\">\n", + " <path fill=\"none\" d=\"M6.39,-17.09 L-6.39,17.09 \" class=\"primitive\"/>\n", + " </g>\n", + "</g>\n", + "<g stroke-width=\"1.13\" stroke=\"#D3D3D3\" id=\"img-12f8a343-2\">\n", + "</g>\n", + "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-12f8a343-3\">\n", + "</g>\n", + "<g stroke-width=\"0\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#40E0D0\" id=\"img-12f8a343-4\">\n", + " <g transform=\"translate(129.64,49.31)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(91.41,8.33)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(11.79,59.93)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(71.19,49.88)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(119.33,73.38)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(29.58,17)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(55.55,91.67)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", + " </g>\n", + "</g>\n", + "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-12f8a343-5\">\n", + " <g transform=\"translate(129.64,49.31)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(91.41,8.33)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\">2</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(11.79,59.93)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\">3</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(71.19,49.88)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\">4</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(119.33,73.38)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(29.58,17)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\">6</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(55.55,91.67)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\">7</text>\n", + " </g>\n", + " </g>\n", + "</g>\n", + "</svg>\n" + ], + "text/html": [ + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n", + "<svg xmlns=\"http://www.w3.org/2000/svg\"\n", + " xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n", + " version=\"1.2\"\n", + " width=\"141.42mm\" height=\"100mm\" viewBox=\"0 0 141.42 100\"\n", + " stroke=\"none\"\n", + " fill=\"#000000\"\n", + " stroke-width=\"0.3\"\n", + " font-size=\"3.88\"\n", + "\n", + " id=\"img-7a535555\">\n", + "<defs>\n", + " <marker id=\"arrow\" markerWidth=\"15\" markerHeight=\"7\" refX=\"5\" refY=\"3.5\" orient=\"auto\" markerUnits=\"strokeWidth\">\n", + " <path d=\"M0,0 L15,3.5 L0,7 z\" stroke=\"context-stroke\" fill=\"context-stroke\"/>\n", + " </marker>\n", + "</defs>\n", + "<g stroke-width=\"1.13\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#D3D3D3\" id=\"img-7a535555-1\">\n", + " <g transform=\"translate(100.41,49.59)\">\n", + " <path fill=\"none\" d=\"M23.66,-0.23 L-23.66,0.23 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(124.48,61.35)\">\n", + " <path fill=\"none\" d=\"M3.54,-8.27 L-3.54,8.27 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(81.3,29.11)\">\n", + " <path fill=\"none\" d=\"M8.3,-17.05 L-8.3,17.05 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(41.49,54.9)\">\n", + " <path fill=\"none\" d=\"M-24.29,4.11 L24.29,-4.11 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(95.26,61.63)\">\n", + " <path fill=\"none\" d=\"M-19.49,-9.52 L19.49,9.52 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(50.38,33.44)\">\n", + " <path fill=\"none\" d=\"M17.09,13.51 L-17.09,-13.51 \" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(63.37,70.77)\">\n", + " <path fill=\"none\" d=\"M6.39,-17.09 L-6.39,17.09 \" class=\"primitive\"/>\n", + " </g>\n", + "</g>\n", + "<g stroke-width=\"1.13\" stroke=\"#D3D3D3\" id=\"img-7a535555-2\">\n", + "</g>\n", + "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-7a535555-3\">\n", + "</g>\n", + "<g stroke-width=\"0\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#40E0D0\" id=\"img-7a535555-4\">\n", + " <g transform=\"translate(129.64,49.31)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(91.41,8.33)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(11.79,59.93)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(71.19,49.88)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(119.33,73.38)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(29.58,17)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", + " </g>\n", + " <g transform=\"translate(55.55,91.67)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", + " </g>\n", + "</g>\n", + "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-7a535555-5\">\n", + " <g transform=\"translate(129.64,49.31)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(91.41,8.33)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\">2</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(11.79,59.93)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\">3</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(71.19,49.88)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\">4</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(119.33,73.38)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(29.58,17)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\">6</text>\n", + " </g>\n", + " </g>\n", + " <g transform=\"translate(55.55,91.67)\">\n", + " <g class=\"primitive\">\n", + " <text text-anchor=\"middle\" dy=\"0.35em\">7</text>\n", + " </g>\n", + " </g>\n", + "</g>\n", + "<script> <![CDATA[\n", + "(function(N){var k=/[\\.\\/]/,L=/\\s*,\\s*/,C=function(a,d){return a-d},a,v,y={n:{}},M=function(){for(var a=0,d=this.length;a<d;a++)if(\"undefined\"!=typeof this[a])return this[a]},A=function(){for(var a=this.length;--a;)if(\"undefined\"!=typeof this[a])return this[a]},w=function(k,d){k=String(k);var f=v,n=Array.prototype.slice.call(arguments,2),u=w.listeners(k),p=0,b,q=[],e={},l=[],r=a;l.firstDefined=M;l.lastDefined=A;a=k;for(var s=v=0,x=u.length;s<x;s++)\"zIndex\"in u[s]&&(q.push(u[s].zIndex),0>u[s].zIndex&&\n", + "(e[u[s].zIndex]=u[s]));for(q.sort(C);0>q[p];)if(b=e[q[p++] ],l.push(b.apply(d,n)),v)return v=f,l;for(s=0;s<x;s++)if(b=u[s],\"zIndex\"in b)if(b.zIndex==q[p]){l.push(b.apply(d,n));if(v)break;do if(p++,(b=e[q[p] ])&&l.push(b.apply(d,n)),v)break;while(b)}else e[b.zIndex]=b;else if(l.push(b.apply(d,n)),v)break;v=f;a=r;return l};w._events=y;w.listeners=function(a){a=a.split(k);var d=y,f,n,u,p,b,q,e,l=[d],r=[];u=0;for(p=a.length;u<p;u++){e=[];b=0;for(q=l.length;b<q;b++)for(d=l[b].n,f=[d[a[u] ],d[\"*\"] ],n=2;n--;)if(d=\n", + "f[n])e.push(d),r=r.concat(d.f||[]);l=e}return r};w.on=function(a,d){a=String(a);if(\"function\"!=typeof d)return function(){};for(var f=a.split(L),n=0,u=f.length;n<u;n++)(function(a){a=a.split(k);for(var b=y,f,e=0,l=a.length;e<l;e++)b=b.n,b=b.hasOwnProperty(a[e])&&b[a[e] ]||(b[a[e] ]={n:{}});b.f=b.f||[];e=0;for(l=b.f.length;e<l;e++)if(b.f[e]==d){f=!0;break}!f&&b.f.push(d)})(f[n]);return function(a){+a==+a&&(d.zIndex=+a)}};w.f=function(a){var d=[].slice.call(arguments,1);return function(){w.apply(null,\n", + "[a,null].concat(d).concat([].slice.call(arguments,0)))}};w.stop=function(){v=1};w.nt=function(k){return k?(new RegExp(\"(?:\\\\.|\\\\/|^)\"+k+\"(?:\\\\.|\\\\/|$)\")).test(a):a};w.nts=function(){return a.split(k)};w.off=w.unbind=function(a,d){if(a){var f=a.split(L);if(1<f.length)for(var n=0,u=f.length;n<u;n++)w.off(f[n],d);else{for(var f=a.split(k),p,b,q,e,l=[y],n=0,u=f.length;n<u;n++)for(e=0;e<l.length;e+=q.length-2){q=[e,1];p=l[e].n;if(\"*\"!=f[n])p[f[n] ]&&q.push(p[f[n] ]);else for(b in p)p.hasOwnProperty(b)&&\n", + "q.push(p[b]);l.splice.apply(l,q)}n=0;for(u=l.length;n<u;n++)for(p=l[n];p.n;){if(d){if(p.f){e=0;for(f=p.f.length;e<f;e++)if(p.f[e]==d){p.f.splice(e,1);break}!p.f.length&&delete p.f}for(b in p.n)if(p.n.hasOwnProperty(b)&&p.n[b].f){q=p.n[b].f;e=0;for(f=q.length;e<f;e++)if(q[e]==d){q.splice(e,1);break}!q.length&&delete p.n[b].f}}else for(b in delete p.f,p.n)p.n.hasOwnProperty(b)&&p.n[b].f&&delete p.n[b].f;p=p.n}}}else w._events=y={n:{}}};w.once=function(a,d){var f=function(){w.unbind(a,f);return d.apply(this,\n", + "arguments)};return w.on(a,f)};w.version=\"0.4.2\";w.toString=function(){return\"You are running Eve 0.4.2\"};\"undefined\"!=typeof module&&module.exports?module.exports=w:\"function\"===typeof define&&define.amd?define(\"eve\",[],function(){return w}):N.eve=w})(this);\n", + "(function(N,k){\"function\"===typeof define&&define.amd?define(\"Snap.svg\",[\"eve\"],function(L){return k(N,L)}):k(N,N.eve)})(this,function(N,k){var L=function(a){var k={},y=N.requestAnimationFrame||N.webkitRequestAnimationFrame||N.mozRequestAnimationFrame||N.oRequestAnimationFrame||N.msRequestAnimationFrame||function(a){setTimeout(a,16)},M=Array.isArray||function(a){return a instanceof Array||\"[object Array]\"==Object.prototype.toString.call(a)},A=0,w=\"M\"+(+new Date).toString(36),z=function(a){if(null==\n", + "a)return this.s;var b=this.s-a;this.b+=this.dur*b;this.B+=this.dur*b;this.s=a},d=function(a){if(null==a)return this.spd;this.spd=a},f=function(a){if(null==a)return this.dur;this.s=this.s*a/this.dur;this.dur=a},n=function(){delete k[this.id];this.update();a(\"mina.stop.\"+this.id,this)},u=function(){this.pdif||(delete k[this.id],this.update(),this.pdif=this.get()-this.b)},p=function(){this.pdif&&(this.b=this.get()-this.pdif,delete this.pdif,k[this.id]=this)},b=function(){var a;if(M(this.start)){a=[];\n", + "for(var b=0,e=this.start.length;b<e;b++)a[b]=+this.start[b]+(this.end[b]-this.start[b])*this.easing(this.s)}else a=+this.start+(this.end-this.start)*this.easing(this.s);this.set(a)},q=function(){var l=0,b;for(b in k)if(k.hasOwnProperty(b)){var e=k[b],f=e.get();l++;e.s=(f-e.b)/(e.dur/e.spd);1<=e.s&&(delete k[b],e.s=1,l--,function(b){setTimeout(function(){a(\"mina.finish.\"+b.id,b)})}(e));e.update()}l&&y(q)},e=function(a,r,s,x,G,h,J){a={id:w+(A++).toString(36),start:a,end:r,b:s,s:0,dur:x-s,spd:1,get:G,\n", + "set:h,easing:J||e.linear,status:z,speed:d,duration:f,stop:n,pause:u,resume:p,update:b};k[a.id]=a;r=0;for(var K in k)if(k.hasOwnProperty(K)&&(r++,2==r))break;1==r&&y(q);return a};e.time=Date.now||function(){return+new Date};e.getById=function(a){return k[a]||null};e.linear=function(a){return a};e.easeout=function(a){return Math.pow(a,1.7)};e.easein=function(a){return Math.pow(a,0.48)};e.easeinout=function(a){if(1==a)return 1;if(0==a)return 0;var b=0.48-a/1.04,e=Math.sqrt(0.1734+b*b);a=e-b;a=Math.pow(Math.abs(a),\n", + "1/3)*(0>a?-1:1);b=-e-b;b=Math.pow(Math.abs(b),1/3)*(0>b?-1:1);a=a+b+0.5;return 3*(1-a)*a*a+a*a*a};e.backin=function(a){return 1==a?1:a*a*(2.70158*a-1.70158)};e.backout=function(a){if(0==a)return 0;a-=1;return a*a*(2.70158*a+1.70158)+1};e.elastic=function(a){return a==!!a?a:Math.pow(2,-10*a)*Math.sin(2*(a-0.075)*Math.PI/0.3)+1};e.bounce=function(a){a<1/2.75?a*=7.5625*a:a<2/2.75?(a-=1.5/2.75,a=7.5625*a*a+0.75):a<2.5/2.75?(a-=2.25/2.75,a=7.5625*a*a+0.9375):(a-=2.625/2.75,a=7.5625*a*a+0.984375);return a};\n", + "return N.mina=e}(\"undefined\"==typeof k?function(){}:k),C=function(){function a(c,t){if(c){if(c.tagName)return x(c);if(y(c,\"array\")&&a.set)return a.set.apply(a,c);if(c instanceof e)return c;if(null==t)return c=G.doc.querySelector(c),x(c)}return new s(null==c?\"100%\":c,null==t?\"100%\":t)}function v(c,a){if(a){\"#text\"==c&&(c=G.doc.createTextNode(a.text||\"\"));\"string\"==typeof c&&(c=v(c));if(\"string\"==typeof a)return\"xlink:\"==a.substring(0,6)?c.getAttributeNS(m,a.substring(6)):\"xml:\"==a.substring(0,4)?c.getAttributeNS(la,\n", + "a.substring(4)):c.getAttribute(a);for(var da in a)if(a[h](da)){var b=J(a[da]);b?\"xlink:\"==da.substring(0,6)?c.setAttributeNS(m,da.substring(6),b):\"xml:\"==da.substring(0,4)?c.setAttributeNS(la,da.substring(4),b):c.setAttribute(da,b):c.removeAttribute(da)}}else c=G.doc.createElementNS(la,c);return c}function y(c,a){a=J.prototype.toLowerCase.call(a);return\"finite\"==a?isFinite(c):\"array\"==a&&(c instanceof Array||Array.isArray&&Array.isArray(c))?!0:\"null\"==a&&null===c||a==typeof c&&null!==c||\"object\"==\n", + "a&&c===Object(c)||$.call(c).slice(8,-1).toLowerCase()==a}function M(c){if(\"function\"==typeof c||Object(c)!==c)return c;var a=new c.constructor,b;for(b in c)c[h](b)&&(a[b]=M(c[b]));return a}function A(c,a,b){function m(){var e=Array.prototype.slice.call(arguments,0),f=e.join(\"\\u2400\"),d=m.cache=m.cache||{},l=m.count=m.count||[];if(d[h](f)){a:for(var e=l,l=f,B=0,H=e.length;B<H;B++)if(e[B]===l){e.push(e.splice(B,1)[0]);break a}return b?b(d[f]):d[f]}1E3<=l.length&&delete d[l.shift()];l.push(f);d[f]=c.apply(a,\n", + "e);return b?b(d[f]):d[f]}return m}function w(c,a,b,m,e,f){return null==e?(c-=b,a-=m,c||a?(180*I.atan2(-a,-c)/C+540)%360:0):w(c,a,e,f)-w(b,m,e,f)}function z(c){return c%360*C/180}function d(c){var a=[];c=c.replace(/(?:^|\\s)(\\w+)\\(([^)]+)\\)/g,function(c,b,m){m=m.split(/\\s*,\\s*|\\s+/);\"rotate\"==b&&1==m.length&&m.push(0,0);\"scale\"==b&&(2<m.length?m=m.slice(0,2):2==m.length&&m.push(0,0),1==m.length&&m.push(m[0],0,0));\"skewX\"==b?a.push([\"m\",1,0,I.tan(z(m[0])),1,0,0]):\"skewY\"==b?a.push([\"m\",1,I.tan(z(m[0])),\n", + "0,1,0,0]):a.push([b.charAt(0)].concat(m));return c});return a}function f(c,t){var b=O(c),m=new a.Matrix;if(b)for(var e=0,f=b.length;e<f;e++){var h=b[e],d=h.length,B=J(h[0]).toLowerCase(),H=h[0]!=B,l=H?m.invert():0,E;\"t\"==B&&2==d?m.translate(h[1],0):\"t\"==B&&3==d?H?(d=l.x(0,0),B=l.y(0,0),H=l.x(h[1],h[2]),l=l.y(h[1],h[2]),m.translate(H-d,l-B)):m.translate(h[1],h[2]):\"r\"==B?2==d?(E=E||t,m.rotate(h[1],E.x+E.width/2,E.y+E.height/2)):4==d&&(H?(H=l.x(h[2],h[3]),l=l.y(h[2],h[3]),m.rotate(h[1],H,l)):m.rotate(h[1],\n", + "h[2],h[3])):\"s\"==B?2==d||3==d?(E=E||t,m.scale(h[1],h[d-1],E.x+E.width/2,E.y+E.height/2)):4==d?H?(H=l.x(h[2],h[3]),l=l.y(h[2],h[3]),m.scale(h[1],h[1],H,l)):m.scale(h[1],h[1],h[2],h[3]):5==d&&(H?(H=l.x(h[3],h[4]),l=l.y(h[3],h[4]),m.scale(h[1],h[2],H,l)):m.scale(h[1],h[2],h[3],h[4])):\"m\"==B&&7==d&&m.add(h[1],h[2],h[3],h[4],h[5],h[6])}return m}function n(c,t){if(null==t){var m=!0;t=\"linearGradient\"==c.type||\"radialGradient\"==c.type?c.node.getAttribute(\"gradientTransform\"):\"pattern\"==c.type?c.node.getAttribute(\"patternTransform\"):\n", + "c.node.getAttribute(\"transform\");if(!t)return new a.Matrix;t=d(t)}else t=a._.rgTransform.test(t)?J(t).replace(/\\.{3}|\\u2026/g,c._.transform||aa):d(t),y(t,\"array\")&&(t=a.path?a.path.toString.call(t):J(t)),c._.transform=t;var b=f(t,c.getBBox(1));if(m)return b;c.matrix=b}function u(c){c=c.node.ownerSVGElement&&x(c.node.ownerSVGElement)||c.node.parentNode&&x(c.node.parentNode)||a.select(\"svg\")||a(0,0);var t=c.select(\"defs\"),t=null==t?!1:t.node;t||(t=r(\"defs\",c.node).node);return t}function p(c){return c.node.ownerSVGElement&&\n", + "x(c.node.ownerSVGElement)||a.select(\"svg\")}function b(c,a,m){function b(c){if(null==c)return aa;if(c==+c)return c;v(B,{width:c});try{return B.getBBox().width}catch(a){return 0}}function h(c){if(null==c)return aa;if(c==+c)return c;v(B,{height:c});try{return B.getBBox().height}catch(a){return 0}}function e(b,B){null==a?d[b]=B(c.attr(b)||0):b==a&&(d=B(null==m?c.attr(b)||0:m))}var f=p(c).node,d={},B=f.querySelector(\".svg---mgr\");B||(B=v(\"rect\"),v(B,{x:-9E9,y:-9E9,width:10,height:10,\"class\":\"svg---mgr\",\n", + "fill:\"none\"}),f.appendChild(B));switch(c.type){case \"rect\":e(\"rx\",b),e(\"ry\",h);case \"image\":e(\"width\",b),e(\"height\",h);case \"text\":e(\"x\",b);e(\"y\",h);break;case \"circle\":e(\"cx\",b);e(\"cy\",h);e(\"r\",b);break;case \"ellipse\":e(\"cx\",b);e(\"cy\",h);e(\"rx\",b);e(\"ry\",h);break;case \"line\":e(\"x1\",b);e(\"x2\",b);e(\"y1\",h);e(\"y2\",h);break;case \"marker\":e(\"refX\",b);e(\"markerWidth\",b);e(\"refY\",h);e(\"markerHeight\",h);break;case \"radialGradient\":e(\"fx\",b);e(\"fy\",h);break;case \"tspan\":e(\"dx\",b);e(\"dy\",h);break;default:e(a,\n", + "b)}f.removeChild(B);return d}function q(c){y(c,\"array\")||(c=Array.prototype.slice.call(arguments,0));for(var a=0,b=0,m=this.node;this[a];)delete this[a++];for(a=0;a<c.length;a++)\"set\"==c[a].type?c[a].forEach(function(c){m.appendChild(c.node)}):m.appendChild(c[a].node);for(var h=m.childNodes,a=0;a<h.length;a++)this[b++]=x(h[a]);return this}function e(c){if(c.snap in E)return E[c.snap];var a=this.id=V(),b;try{b=c.ownerSVGElement}catch(m){}this.node=c;b&&(this.paper=new s(b));this.type=c.tagName;this.anims=\n", + "{};this._={transform:[]};c.snap=a;E[a]=this;\"g\"==this.type&&(this.add=q);if(this.type in{g:1,mask:1,pattern:1})for(var e in s.prototype)s.prototype[h](e)&&(this[e]=s.prototype[e])}function l(c){this.node=c}function r(c,a){var b=v(c);a.appendChild(b);return x(b)}function s(c,a){var b,m,f,d=s.prototype;if(c&&\"svg\"==c.tagName){if(c.snap in E)return E[c.snap];var l=c.ownerDocument;b=new e(c);m=c.getElementsByTagName(\"desc\")[0];f=c.getElementsByTagName(\"defs\")[0];m||(m=v(\"desc\"),m.appendChild(l.createTextNode(\"Created with Snap\")),\n", + "b.node.appendChild(m));f||(f=v(\"defs\"),b.node.appendChild(f));b.defs=f;for(var ca in d)d[h](ca)&&(b[ca]=d[ca]);b.paper=b.root=b}else b=r(\"svg\",G.doc.body),v(b.node,{height:a,version:1.1,width:c,xmlns:la});return b}function x(c){return!c||c instanceof e||c instanceof l?c:c.tagName&&\"svg\"==c.tagName.toLowerCase()?new s(c):c.tagName&&\"object\"==c.tagName.toLowerCase()&&\"image/svg+xml\"==c.type?new s(c.contentDocument.getElementsByTagName(\"svg\")[0]):new e(c)}a.version=\"0.3.0\";a.toString=function(){return\"Snap v\"+\n", + "this.version};a._={};var G={win:N,doc:N.document};a._.glob=G;var h=\"hasOwnProperty\",J=String,K=parseFloat,U=parseInt,I=Math,P=I.max,Q=I.min,Y=I.abs,C=I.PI,aa=\"\",$=Object.prototype.toString,F=/^\\s*((#[a-f\\d]{6})|(#[a-f\\d]{3})|rgba?\\(\\s*([\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?(?:\\s*,\\s*[\\d\\.]+%?)?)\\s*\\)|hsba?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?%?)\\s*\\)|hsla?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?%?)\\s*\\))\\s*$/i;a._.separator=\n", + "RegExp(\"[,\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]+\");var S=RegExp(\"[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*\"),X={hs:1,rg:1},W=RegExp(\"([a-z])[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)\",\n", + "\"ig\"),ma=RegExp(\"([rstm])[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)\",\"ig\"),Z=RegExp(\"(-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?)[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*\",\n", + "\"ig\"),na=0,ba=\"S\"+(+new Date).toString(36),V=function(){return ba+(na++).toString(36)},m=\"http://www.w3.org/1999/xlink\",la=\"http://www.w3.org/2000/svg\",E={},ca=a.url=function(c){return\"url('#\"+c+\"')\"};a._.$=v;a._.id=V;a.format=function(){var c=/\\{([^\\}]+)\\}/g,a=/(?:(?:^|\\.)(.+?)(?=\\[|\\.|$|\\()|\\[('|\")(.+?)\\2\\])(\\(\\))?/g,b=function(c,b,m){var h=m;b.replace(a,function(c,a,b,m,t){a=a||m;h&&(a in h&&(h=h[a]),\"function\"==typeof h&&t&&(h=h()))});return h=(null==h||h==m?c:h)+\"\"};return function(a,m){return J(a).replace(c,\n", + "function(c,a){return b(c,a,m)})}}();a._.clone=M;a._.cacher=A;a.rad=z;a.deg=function(c){return 180*c/C%360};a.angle=w;a.is=y;a.snapTo=function(c,a,b){b=y(b,\"finite\")?b:10;if(y(c,\"array\"))for(var m=c.length;m--;){if(Y(c[m]-a)<=b)return c[m]}else{c=+c;m=a%c;if(m<b)return a-m;if(m>c-b)return a-m+c}return a};a.getRGB=A(function(c){if(!c||(c=J(c)).indexOf(\"-\")+1)return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:ka};if(\"none\"==c)return{r:-1,g:-1,b:-1,hex:\"none\",toString:ka};!X[h](c.toLowerCase().substring(0,\n", + "2))&&\"#\"!=c.charAt()&&(c=T(c));if(!c)return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:ka};var b,m,e,f,d;if(c=c.match(F)){c[2]&&(e=U(c[2].substring(5),16),m=U(c[2].substring(3,5),16),b=U(c[2].substring(1,3),16));c[3]&&(e=U((d=c[3].charAt(3))+d,16),m=U((d=c[3].charAt(2))+d,16),b=U((d=c[3].charAt(1))+d,16));c[4]&&(d=c[4].split(S),b=K(d[0]),\"%\"==d[0].slice(-1)&&(b*=2.55),m=K(d[1]),\"%\"==d[1].slice(-1)&&(m*=2.55),e=K(d[2]),\"%\"==d[2].slice(-1)&&(e*=2.55),\"rgba\"==c[1].toLowerCase().slice(0,4)&&(f=K(d[3])),\n", + "d[3]&&\"%\"==d[3].slice(-1)&&(f/=100));if(c[5])return d=c[5].split(S),b=K(d[0]),\"%\"==d[0].slice(-1)&&(b/=100),m=K(d[1]),\"%\"==d[1].slice(-1)&&(m/=100),e=K(d[2]),\"%\"==d[2].slice(-1)&&(e/=100),\"deg\"!=d[0].slice(-3)&&\"\\u00b0\"!=d[0].slice(-1)||(b/=360),\"hsba\"==c[1].toLowerCase().slice(0,4)&&(f=K(d[3])),d[3]&&\"%\"==d[3].slice(-1)&&(f/=100),a.hsb2rgb(b,m,e,f);if(c[6])return d=c[6].split(S),b=K(d[0]),\"%\"==d[0].slice(-1)&&(b/=100),m=K(d[1]),\"%\"==d[1].slice(-1)&&(m/=100),e=K(d[2]),\"%\"==d[2].slice(-1)&&(e/=100),\n", + "\"deg\"!=d[0].slice(-3)&&\"\\u00b0\"!=d[0].slice(-1)||(b/=360),\"hsla\"==c[1].toLowerCase().slice(0,4)&&(f=K(d[3])),d[3]&&\"%\"==d[3].slice(-1)&&(f/=100),a.hsl2rgb(b,m,e,f);b=Q(I.round(b),255);m=Q(I.round(m),255);e=Q(I.round(e),255);f=Q(P(f,0),1);c={r:b,g:m,b:e,toString:ka};c.hex=\"#\"+(16777216|e|m<<8|b<<16).toString(16).slice(1);c.opacity=y(f,\"finite\")?f:1;return c}return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:ka}},a);a.hsb=A(function(c,b,m){return a.hsb2rgb(c,b,m).hex});a.hsl=A(function(c,b,m){return a.hsl2rgb(c,\n", + "b,m).hex});a.rgb=A(function(c,a,b,m){if(y(m,\"finite\")){var e=I.round;return\"rgba(\"+[e(c),e(a),e(b),+m.toFixed(2)]+\")\"}return\"#\"+(16777216|b|a<<8|c<<16).toString(16).slice(1)});var T=function(c){var a=G.doc.getElementsByTagName(\"head\")[0]||G.doc.getElementsByTagName(\"svg\")[0];T=A(function(c){if(\"red\"==c.toLowerCase())return\"rgb(255, 0, 0)\";a.style.color=\"rgb(255, 0, 0)\";a.style.color=c;c=G.doc.defaultView.getComputedStyle(a,aa).getPropertyValue(\"color\");return\"rgb(255, 0, 0)\"==c?null:c});return T(c)},\n", + "qa=function(){return\"hsb(\"+[this.h,this.s,this.b]+\")\"},ra=function(){return\"hsl(\"+[this.h,this.s,this.l]+\")\"},ka=function(){return 1==this.opacity||null==this.opacity?this.hex:\"rgba(\"+[this.r,this.g,this.b,this.opacity]+\")\"},D=function(c,b,m){null==b&&y(c,\"object\")&&\"r\"in c&&\"g\"in c&&\"b\"in c&&(m=c.b,b=c.g,c=c.r);null==b&&y(c,string)&&(m=a.getRGB(c),c=m.r,b=m.g,m=m.b);if(1<c||1<b||1<m)c/=255,b/=255,m/=255;return[c,b,m]},oa=function(c,b,m,e){c=I.round(255*c);b=I.round(255*b);m=I.round(255*m);c={r:c,\n", + "g:b,b:m,opacity:y(e,\"finite\")?e:1,hex:a.rgb(c,b,m),toString:ka};y(e,\"finite\")&&(c.opacity=e);return c};a.color=function(c){var b;y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"b\"in c?(b=a.hsb2rgb(c),c.r=b.r,c.g=b.g,c.b=b.b,c.opacity=1,c.hex=b.hex):y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"l\"in c?(b=a.hsl2rgb(c),c.r=b.r,c.g=b.g,c.b=b.b,c.opacity=1,c.hex=b.hex):(y(c,\"string\")&&(c=a.getRGB(c)),y(c,\"object\")&&\"r\"in c&&\"g\"in c&&\"b\"in c&&!(\"error\"in c)?(b=a.rgb2hsl(c),c.h=b.h,c.s=b.s,c.l=b.l,b=a.rgb2hsb(c),c.v=b.b):(c={hex:\"none\"},\n", + "c.r=c.g=c.b=c.h=c.s=c.v=c.l=-1,c.error=1));c.toString=ka;return c};a.hsb2rgb=function(c,a,b,m){y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"b\"in c&&(b=c.b,a=c.s,c=c.h,m=c.o);var e,h,d;c=360*c%360/60;d=b*a;a=d*(1-Y(c%2-1));b=e=h=b-d;c=~~c;b+=[d,a,0,0,a,d][c];e+=[a,d,d,a,0,0][c];h+=[0,0,a,d,d,a][c];return oa(b,e,h,m)};a.hsl2rgb=function(c,a,b,m){y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"l\"in c&&(b=c.l,a=c.s,c=c.h);if(1<c||1<a||1<b)c/=360,a/=100,b/=100;var e,h,d;c=360*c%360/60;d=2*a*(0.5>b?b:1-b);a=d*(1-Y(c%2-1));b=e=\n", + "h=b-d/2;c=~~c;b+=[d,a,0,0,a,d][c];e+=[a,d,d,a,0,0][c];h+=[0,0,a,d,d,a][c];return oa(b,e,h,m)};a.rgb2hsb=function(c,a,b){b=D(c,a,b);c=b[0];a=b[1];b=b[2];var m,e;m=P(c,a,b);e=m-Q(c,a,b);c=((0==e?0:m==c?(a-b)/e:m==a?(b-c)/e+2:(c-a)/e+4)+360)%6*60/360;return{h:c,s:0==e?0:e/m,b:m,toString:qa}};a.rgb2hsl=function(c,a,b){b=D(c,a,b);c=b[0];a=b[1];b=b[2];var m,e,h;m=P(c,a,b);e=Q(c,a,b);h=m-e;c=((0==h?0:m==c?(a-b)/h:m==a?(b-c)/h+2:(c-a)/h+4)+360)%6*60/360;m=(m+e)/2;return{h:c,s:0==h?0:0.5>m?h/(2*m):h/(2-2*\n", + "m),l:m,toString:ra}};a.parsePathString=function(c){if(!c)return null;var b=a.path(c);if(b.arr)return a.path.clone(b.arr);var m={a:7,c:6,o:2,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,u:3,z:0},e=[];y(c,\"array\")&&y(c[0],\"array\")&&(e=a.path.clone(c));e.length||J(c).replace(W,function(c,a,b){var h=[];c=a.toLowerCase();b.replace(Z,function(c,a){a&&h.push(+a)});\"m\"==c&&2<h.length&&(e.push([a].concat(h.splice(0,2))),c=\"l\",a=\"m\"==a?\"l\":\"L\");\"o\"==c&&1==h.length&&e.push([a,h[0] ]);if(\"r\"==c)e.push([a].concat(h));else for(;h.length>=\n", + "m[c]&&(e.push([a].concat(h.splice(0,m[c]))),m[c]););});e.toString=a.path.toString;b.arr=a.path.clone(e);return e};var O=a.parseTransformString=function(c){if(!c)return null;var b=[];y(c,\"array\")&&y(c[0],\"array\")&&(b=a.path.clone(c));b.length||J(c).replace(ma,function(c,a,m){var e=[];a.toLowerCase();m.replace(Z,function(c,a){a&&e.push(+a)});b.push([a].concat(e))});b.toString=a.path.toString;return b};a._.svgTransform2string=d;a._.rgTransform=RegExp(\"^[a-z][\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*-?\\\\.?\\\\d\",\n", + "\"i\");a._.transform2matrix=f;a._unit2px=b;a._.getSomeDefs=u;a._.getSomeSVG=p;a.select=function(c){return x(G.doc.querySelector(c))};a.selectAll=function(c){c=G.doc.querySelectorAll(c);for(var b=(a.set||Array)(),m=0;m<c.length;m++)b.push(x(c[m]));return b};setInterval(function(){for(var c in E)if(E[h](c)){var a=E[c],b=a.node;(\"svg\"!=a.type&&!b.ownerSVGElement||\"svg\"==a.type&&(!b.parentNode||\"ownerSVGElement\"in b.parentNode&&!b.ownerSVGElement))&&delete E[c]}},1E4);(function(c){function m(c){function a(c,\n", + "b){var m=v(c.node,b);(m=(m=m&&m.match(d))&&m[2])&&\"#\"==m.charAt()&&(m=m.substring(1))&&(f[m]=(f[m]||[]).concat(function(a){var m={};m[b]=ca(a);v(c.node,m)}))}function b(c){var a=v(c.node,\"xlink:href\");a&&\"#\"==a.charAt()&&(a=a.substring(1))&&(f[a]=(f[a]||[]).concat(function(a){c.attr(\"xlink:href\",\"#\"+a)}))}var e=c.selectAll(\"*\"),h,d=/^\\s*url\\((\"|'|)(.*)\\1\\)\\s*$/;c=[];for(var f={},l=0,E=e.length;l<E;l++){h=e[l];a(h,\"fill\");a(h,\"stroke\");a(h,\"filter\");a(h,\"mask\");a(h,\"clip-path\");b(h);var t=v(h.node,\n", + "\"id\");t&&(v(h.node,{id:h.id}),c.push({old:t,id:h.id}))}l=0;for(E=c.length;l<E;l++)if(e=f[c[l].old])for(h=0,t=e.length;h<t;h++)e[h](c[l].id)}function e(c,a,b){return function(m){m=m.slice(c,a);1==m.length&&(m=m[0]);return b?b(m):m}}function d(c){return function(){var a=c?\"<\"+this.type:\"\",b=this.node.attributes,m=this.node.childNodes;if(c)for(var e=0,h=b.length;e<h;e++)a+=\" \"+b[e].name+'=\"'+b[e].value.replace(/\"/g,'\\\\\"')+'\"';if(m.length){c&&(a+=\">\");e=0;for(h=m.length;e<h;e++)3==m[e].nodeType?a+=m[e].nodeValue:\n", + "1==m[e].nodeType&&(a+=x(m[e]).toString());c&&(a+=\"</\"+this.type+\">\")}else c&&(a+=\"/>\");return a}}c.attr=function(c,a){if(!c)return this;if(y(c,\"string\"))if(1<arguments.length){var b={};b[c]=a;c=b}else return k(\"snap.util.getattr.\"+c,this).firstDefined();for(var m in c)c[h](m)&&k(\"snap.util.attr.\"+m,this,c[m]);return this};c.getBBox=function(c){if(!a.Matrix||!a.path)return this.node.getBBox();var b=this,m=new a.Matrix;if(b.removed)return a._.box();for(;\"use\"==b.type;)if(c||(m=m.add(b.transform().localMatrix.translate(b.attr(\"x\")||\n", + "0,b.attr(\"y\")||0))),b.original)b=b.original;else var e=b.attr(\"xlink:href\"),b=b.original=b.node.ownerDocument.getElementById(e.substring(e.indexOf(\"#\")+1));var e=b._,h=a.path.get[b.type]||a.path.get.deflt;try{if(c)return e.bboxwt=h?a.path.getBBox(b.realPath=h(b)):a._.box(b.node.getBBox()),a._.box(e.bboxwt);b.realPath=h(b);b.matrix=b.transform().localMatrix;e.bbox=a.path.getBBox(a.path.map(b.realPath,m.add(b.matrix)));return a._.box(e.bbox)}catch(d){return a._.box()}};var f=function(){return this.string};\n", + "c.transform=function(c){var b=this._;if(null==c){var m=this;c=new a.Matrix(this.node.getCTM());for(var e=n(this),h=[e],d=new a.Matrix,l=e.toTransformString(),b=J(e)==J(this.matrix)?J(b.transform):l;\"svg\"!=m.type&&(m=m.parent());)h.push(n(m));for(m=h.length;m--;)d.add(h[m]);return{string:b,globalMatrix:c,totalMatrix:d,localMatrix:e,diffMatrix:c.clone().add(e.invert()),global:c.toTransformString(),total:d.toTransformString(),local:l,toString:f}}c instanceof a.Matrix?this.matrix=c:n(this,c);this.node&&\n", + "(\"linearGradient\"==this.type||\"radialGradient\"==this.type?v(this.node,{gradientTransform:this.matrix}):\"pattern\"==this.type?v(this.node,{patternTransform:this.matrix}):v(this.node,{transform:this.matrix}));return this};c.parent=function(){return x(this.node.parentNode)};c.append=c.add=function(c){if(c){if(\"set\"==c.type){var a=this;c.forEach(function(c){a.add(c)});return this}c=x(c);this.node.appendChild(c.node);c.paper=this.paper}return this};c.appendTo=function(c){c&&(c=x(c),c.append(this));return this};\n", + "c.prepend=function(c){if(c){if(\"set\"==c.type){var a=this,b;c.forEach(function(c){b?b.after(c):a.prepend(c);b=c});return this}c=x(c);var m=c.parent();this.node.insertBefore(c.node,this.node.firstChild);this.add&&this.add();c.paper=this.paper;this.parent()&&this.parent().add();m&&m.add()}return this};c.prependTo=function(c){c=x(c);c.prepend(this);return this};c.before=function(c){if(\"set\"==c.type){var a=this;c.forEach(function(c){var b=c.parent();a.node.parentNode.insertBefore(c.node,a.node);b&&b.add()});\n", + "this.parent().add();return this}c=x(c);var b=c.parent();this.node.parentNode.insertBefore(c.node,this.node);this.parent()&&this.parent().add();b&&b.add();c.paper=this.paper;return this};c.after=function(c){c=x(c);var a=c.parent();this.node.nextSibling?this.node.parentNode.insertBefore(c.node,this.node.nextSibling):this.node.parentNode.appendChild(c.node);this.parent()&&this.parent().add();a&&a.add();c.paper=this.paper;return this};c.insertBefore=function(c){c=x(c);var a=this.parent();c.node.parentNode.insertBefore(this.node,\n", + "c.node);this.paper=c.paper;a&&a.add();c.parent()&&c.parent().add();return this};c.insertAfter=function(c){c=x(c);var a=this.parent();c.node.parentNode.insertBefore(this.node,c.node.nextSibling);this.paper=c.paper;a&&a.add();c.parent()&&c.parent().add();return this};c.remove=function(){var c=this.parent();this.node.parentNode&&this.node.parentNode.removeChild(this.node);delete this.paper;this.removed=!0;c&&c.add();return this};c.select=function(c){return x(this.node.querySelector(c))};c.selectAll=\n", + "function(c){c=this.node.querySelectorAll(c);for(var b=(a.set||Array)(),m=0;m<c.length;m++)b.push(x(c[m]));return b};c.asPX=function(c,a){null==a&&(a=this.attr(c));return+b(this,c,a)};c.use=function(){var c,a=this.node.id;a||(a=this.id,v(this.node,{id:a}));c=\"linearGradient\"==this.type||\"radialGradient\"==this.type||\"pattern\"==this.type?r(this.type,this.node.parentNode):r(\"use\",this.node.parentNode);v(c.node,{\"xlink:href\":\"#\"+a});c.original=this;return c};var l=/\\S+/g;c.addClass=function(c){var a=(c||\n", + "\"\").match(l)||[];c=this.node;var b=c.className.baseVal,m=b.match(l)||[],e,h,d;if(a.length){for(e=0;d=a[e++];)h=m.indexOf(d),~h||m.push(d);a=m.join(\" \");b!=a&&(c.className.baseVal=a)}return this};c.removeClass=function(c){var a=(c||\"\").match(l)||[];c=this.node;var b=c.className.baseVal,m=b.match(l)||[],e,h;if(m.length){for(e=0;h=a[e++];)h=m.indexOf(h),~h&&m.splice(h,1);a=m.join(\" \");b!=a&&(c.className.baseVal=a)}return this};c.hasClass=function(c){return!!~(this.node.className.baseVal.match(l)||[]).indexOf(c)};\n", + "c.toggleClass=function(c,a){if(null!=a)return a?this.addClass(c):this.removeClass(c);var b=(c||\"\").match(l)||[],m=this.node,e=m.className.baseVal,h=e.match(l)||[],d,f,E;for(d=0;E=b[d++];)f=h.indexOf(E),~f?h.splice(f,1):h.push(E);b=h.join(\" \");e!=b&&(m.className.baseVal=b);return this};c.clone=function(){var c=x(this.node.cloneNode(!0));v(c.node,\"id\")&&v(c.node,{id:c.id});m(c);c.insertAfter(this);return c};c.toDefs=function(){u(this).appendChild(this.node);return this};c.pattern=c.toPattern=function(c,\n", + "a,b,m){var e=r(\"pattern\",u(this));null==c&&(c=this.getBBox());y(c,\"object\")&&\"x\"in c&&(a=c.y,b=c.width,m=c.height,c=c.x);v(e.node,{x:c,y:a,width:b,height:m,patternUnits:\"userSpaceOnUse\",id:e.id,viewBox:[c,a,b,m].join(\" \")});e.node.appendChild(this.node);return e};c.marker=function(c,a,b,m,e,h){var d=r(\"marker\",u(this));null==c&&(c=this.getBBox());y(c,\"object\")&&\"x\"in c&&(a=c.y,b=c.width,m=c.height,e=c.refX||c.cx,h=c.refY||c.cy,c=c.x);v(d.node,{viewBox:[c,a,b,m].join(\" \"),markerWidth:b,markerHeight:m,\n", + "orient:\"auto\",refX:e||0,refY:h||0,id:d.id});d.node.appendChild(this.node);return d};var E=function(c,a,b,m){\"function\"!=typeof b||b.length||(m=b,b=L.linear);this.attr=c;this.dur=a;b&&(this.easing=b);m&&(this.callback=m)};a._.Animation=E;a.animation=function(c,a,b,m){return new E(c,a,b,m)};c.inAnim=function(){var c=[],a;for(a in this.anims)this.anims[h](a)&&function(a){c.push({anim:new E(a._attrs,a.dur,a.easing,a._callback),mina:a,curStatus:a.status(),status:function(c){return a.status(c)},stop:function(){a.stop()}})}(this.anims[a]);\n", + "return c};a.animate=function(c,a,b,m,e,h){\"function\"!=typeof e||e.length||(h=e,e=L.linear);var d=L.time();c=L(c,a,d,d+m,L.time,b,e);h&&k.once(\"mina.finish.\"+c.id,h);return c};c.stop=function(){for(var c=this.inAnim(),a=0,b=c.length;a<b;a++)c[a].stop();return this};c.animate=function(c,a,b,m){\"function\"!=typeof b||b.length||(m=b,b=L.linear);c instanceof E&&(m=c.callback,b=c.easing,a=b.dur,c=c.attr);var d=[],f=[],l={},t,ca,n,T=this,q;for(q in c)if(c[h](q)){T.equal?(n=T.equal(q,J(c[q])),t=n.from,ca=\n", + "n.to,n=n.f):(t=+T.attr(q),ca=+c[q]);var la=y(t,\"array\")?t.length:1;l[q]=e(d.length,d.length+la,n);d=d.concat(t);f=f.concat(ca)}t=L.time();var p=L(d,f,t,t+a,L.time,function(c){var a={},b;for(b in l)l[h](b)&&(a[b]=l[b](c));T.attr(a)},b);T.anims[p.id]=p;p._attrs=c;p._callback=m;k(\"snap.animcreated.\"+T.id,p);k.once(\"mina.finish.\"+p.id,function(){delete T.anims[p.id];m&&m.call(T)});k.once(\"mina.stop.\"+p.id,function(){delete T.anims[p.id]});return T};var T={};c.data=function(c,b){var m=T[this.id]=T[this.id]||\n", + "{};if(0==arguments.length)return k(\"snap.data.get.\"+this.id,this,m,null),m;if(1==arguments.length){if(a.is(c,\"object\")){for(var e in c)c[h](e)&&this.data(e,c[e]);return this}k(\"snap.data.get.\"+this.id,this,m[c],c);return m[c]}m[c]=b;k(\"snap.data.set.\"+this.id,this,b,c);return this};c.removeData=function(c){null==c?T[this.id]={}:T[this.id]&&delete T[this.id][c];return this};c.outerSVG=c.toString=d(1);c.innerSVG=d()})(e.prototype);a.parse=function(c){var a=G.doc.createDocumentFragment(),b=!0,m=G.doc.createElement(\"div\");\n", + "c=J(c);c.match(/^\\s*<\\s*svg(?:\\s|>)/)||(c=\"<svg>\"+c+\"</svg>\",b=!1);m.innerHTML=c;if(c=m.getElementsByTagName(\"svg\")[0])if(b)a=c;else for(;c.firstChild;)a.appendChild(c.firstChild);m.innerHTML=aa;return new l(a)};l.prototype.select=e.prototype.select;l.prototype.selectAll=e.prototype.selectAll;a.fragment=function(){for(var c=Array.prototype.slice.call(arguments,0),b=G.doc.createDocumentFragment(),m=0,e=c.length;m<e;m++){var h=c[m];h.node&&h.node.nodeType&&b.appendChild(h.node);h.nodeType&&b.appendChild(h);\n", + "\"string\"==typeof h&&b.appendChild(a.parse(h).node)}return new l(b)};a._.make=r;a._.wrap=x;s.prototype.el=function(c,a){var b=r(c,this.node);a&&b.attr(a);return b};k.on(\"snap.util.getattr\",function(){var c=k.nt(),c=c.substring(c.lastIndexOf(\".\")+1),a=c.replace(/[A-Z]/g,function(c){return\"-\"+c.toLowerCase()});return pa[h](a)?this.node.ownerDocument.defaultView.getComputedStyle(this.node,null).getPropertyValue(a):v(this.node,c)});var pa={\"alignment-baseline\":0,\"baseline-shift\":0,clip:0,\"clip-path\":0,\n", + "\"clip-rule\":0,color:0,\"color-interpolation\":0,\"color-interpolation-filters\":0,\"color-profile\":0,\"color-rendering\":0,cursor:0,direction:0,display:0,\"dominant-baseline\":0,\"enable-background\":0,fill:0,\"fill-opacity\":0,\"fill-rule\":0,filter:0,\"flood-color\":0,\"flood-opacity\":0,font:0,\"font-family\":0,\"font-size\":0,\"font-size-adjust\":0,\"font-stretch\":0,\"font-style\":0,\"font-variant\":0,\"font-weight\":0,\"glyph-orientation-horizontal\":0,\"glyph-orientation-vertical\":0,\"image-rendering\":0,kerning:0,\"letter-spacing\":0,\n", + "\"lighting-color\":0,marker:0,\"marker-end\":0,\"marker-mid\":0,\"marker-start\":0,mask:0,opacity:0,overflow:0,\"pointer-events\":0,\"shape-rendering\":0,\"stop-color\":0,\"stop-opacity\":0,stroke:0,\"stroke-dasharray\":0,\"stroke-dashoffset\":0,\"stroke-linecap\":0,\"stroke-linejoin\":0,\"stroke-miterlimit\":0,\"stroke-opacity\":0,\"stroke-width\":0,\"text-anchor\":0,\"text-decoration\":0,\"text-rendering\":0,\"unicode-bidi\":0,visibility:0,\"word-spacing\":0,\"writing-mode\":0};k.on(\"snap.util.attr\",function(c){var a=k.nt(),b={},a=a.substring(a.lastIndexOf(\".\")+\n", + "1);b[a]=c;var m=a.replace(/-(\\w)/gi,function(c,a){return a.toUpperCase()}),a=a.replace(/[A-Z]/g,function(c){return\"-\"+c.toLowerCase()});pa[h](a)?this.node.style[m]=null==c?aa:c:v(this.node,b)});a.ajax=function(c,a,b,m){var e=new XMLHttpRequest,h=V();if(e){if(y(a,\"function\"))m=b,b=a,a=null;else if(y(a,\"object\")){var d=[],f;for(f in a)a.hasOwnProperty(f)&&d.push(encodeURIComponent(f)+\"=\"+encodeURIComponent(a[f]));a=d.join(\"&\")}e.open(a?\"POST\":\"GET\",c,!0);a&&(e.setRequestHeader(\"X-Requested-With\",\"XMLHttpRequest\"),\n", + "e.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded\"));b&&(k.once(\"snap.ajax.\"+h+\".0\",b),k.once(\"snap.ajax.\"+h+\".200\",b),k.once(\"snap.ajax.\"+h+\".304\",b));e.onreadystatechange=function(){4==e.readyState&&k(\"snap.ajax.\"+h+\".\"+e.status,m,e)};if(4==e.readyState)return e;e.send(a);return e}};a.load=function(c,b,m){a.ajax(c,function(c){c=a.parse(c.responseText);m?b.call(m,c):b(c)})};a.getElementByPoint=function(c,a){var b,m,e=G.doc.elementFromPoint(c,a);if(G.win.opera&&\"svg\"==e.tagName){b=\n", + "e;m=b.getBoundingClientRect();b=b.ownerDocument;var h=b.body,d=b.documentElement;b=m.top+(g.win.pageYOffset||d.scrollTop||h.scrollTop)-(d.clientTop||h.clientTop||0);m=m.left+(g.win.pageXOffset||d.scrollLeft||h.scrollLeft)-(d.clientLeft||h.clientLeft||0);h=e.createSVGRect();h.x=c-m;h.y=a-b;h.width=h.height=1;b=e.getIntersectionList(h,null);b.length&&(e=b[b.length-1])}return e?x(e):null};a.plugin=function(c){c(a,e,s,G,l)};return G.win.Snap=a}();C.plugin(function(a,k,y,M,A){function w(a,d,f,b,q,e){null==\n", + "d&&\"[object SVGMatrix]\"==z.call(a)?(this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.e=a.e,this.f=a.f):null!=a?(this.a=+a,this.b=+d,this.c=+f,this.d=+b,this.e=+q,this.f=+e):(this.a=1,this.c=this.b=0,this.d=1,this.f=this.e=0)}var z=Object.prototype.toString,d=String,f=Math;(function(n){function k(a){return a[0]*a[0]+a[1]*a[1]}function p(a){var d=f.sqrt(k(a));a[0]&&(a[0]/=d);a[1]&&(a[1]/=d)}n.add=function(a,d,e,f,n,p){var k=[[],[],[] ],u=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1] ];d=[[a,\n", + "e,n],[d,f,p],[0,0,1] ];a&&a instanceof w&&(d=[[a.a,a.c,a.e],[a.b,a.d,a.f],[0,0,1] ]);for(a=0;3>a;a++)for(e=0;3>e;e++){for(f=n=0;3>f;f++)n+=u[a][f]*d[f][e];k[a][e]=n}this.a=k[0][0];this.b=k[1][0];this.c=k[0][1];this.d=k[1][1];this.e=k[0][2];this.f=k[1][2];return this};n.invert=function(){var a=this.a*this.d-this.b*this.c;return new w(this.d/a,-this.b/a,-this.c/a,this.a/a,(this.c*this.f-this.d*this.e)/a,(this.b*this.e-this.a*this.f)/a)};n.clone=function(){return new w(this.a,this.b,this.c,this.d,this.e,\n", + "this.f)};n.translate=function(a,d){return this.add(1,0,0,1,a,d)};n.scale=function(a,d,e,f){null==d&&(d=a);(e||f)&&this.add(1,0,0,1,e,f);this.add(a,0,0,d,0,0);(e||f)&&this.add(1,0,0,1,-e,-f);return this};n.rotate=function(b,d,e){b=a.rad(b);d=d||0;e=e||0;var l=+f.cos(b).toFixed(9);b=+f.sin(b).toFixed(9);this.add(l,b,-b,l,d,e);return this.add(1,0,0,1,-d,-e)};n.x=function(a,d){return a*this.a+d*this.c+this.e};n.y=function(a,d){return a*this.b+d*this.d+this.f};n.get=function(a){return+this[d.fromCharCode(97+\n", + "a)].toFixed(4)};n.toString=function(){return\"matrix(\"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+\")\"};n.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]};n.determinant=function(){return this.a*this.d-this.b*this.c};n.split=function(){var b={};b.dx=this.e;b.dy=this.f;var d=[[this.a,this.c],[this.b,this.d] ];b.scalex=f.sqrt(k(d[0]));p(d[0]);b.shear=d[0][0]*d[1][0]+d[0][1]*d[1][1];d[1]=[d[1][0]-d[0][0]*b.shear,d[1][1]-d[0][1]*b.shear];b.scaley=f.sqrt(k(d[1]));\n", + "p(d[1]);b.shear/=b.scaley;0>this.determinant()&&(b.scalex=-b.scalex);var e=-d[0][1],d=d[1][1];0>d?(b.rotate=a.deg(f.acos(d)),0>e&&(b.rotate=360-b.rotate)):b.rotate=a.deg(f.asin(e));b.isSimple=!+b.shear.toFixed(9)&&(b.scalex.toFixed(9)==b.scaley.toFixed(9)||!b.rotate);b.isSuperSimple=!+b.shear.toFixed(9)&&b.scalex.toFixed(9)==b.scaley.toFixed(9)&&!b.rotate;b.noRotation=!+b.shear.toFixed(9)&&!b.rotate;return b};n.toTransformString=function(a){a=a||this.split();if(+a.shear.toFixed(9))return\"m\"+[this.get(0),\n", + "this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)];a.scalex=+a.scalex.toFixed(4);a.scaley=+a.scaley.toFixed(4);a.rotate=+a.rotate.toFixed(4);return(a.dx||a.dy?\"t\"+[+a.dx.toFixed(4),+a.dy.toFixed(4)]:\"\")+(1!=a.scalex||1!=a.scaley?\"s\"+[a.scalex,a.scaley,0,0]:\"\")+(a.rotate?\"r\"+[+a.rotate.toFixed(4),0,0]:\"\")}})(w.prototype);a.Matrix=w;a.matrix=function(a,d,f,b,k,e){return new w(a,d,f,b,k,e)}});C.plugin(function(a,v,y,M,A){function w(h){return function(d){k.stop();d instanceof A&&1==d.node.childNodes.length&&\n", + "(\"radialGradient\"==d.node.firstChild.tagName||\"linearGradient\"==d.node.firstChild.tagName||\"pattern\"==d.node.firstChild.tagName)&&(d=d.node.firstChild,b(this).appendChild(d),d=u(d));if(d instanceof v)if(\"radialGradient\"==d.type||\"linearGradient\"==d.type||\"pattern\"==d.type){d.node.id||e(d.node,{id:d.id});var f=l(d.node.id)}else f=d.attr(h);else f=a.color(d),f.error?(f=a(b(this).ownerSVGElement).gradient(d))?(f.node.id||e(f.node,{id:f.id}),f=l(f.node.id)):f=d:f=r(f);d={};d[h]=f;e(this.node,d);this.node.style[h]=\n", + "x}}function z(a){k.stop();a==+a&&(a+=\"px\");this.node.style.fontSize=a}function d(a){var b=[];a=a.childNodes;for(var e=0,f=a.length;e<f;e++){var l=a[e];3==l.nodeType&&b.push(l.nodeValue);\"tspan\"==l.tagName&&(1==l.childNodes.length&&3==l.firstChild.nodeType?b.push(l.firstChild.nodeValue):b.push(d(l)))}return b}function f(){k.stop();return this.node.style.fontSize}var n=a._.make,u=a._.wrap,p=a.is,b=a._.getSomeDefs,q=/^url\\(#?([^)]+)\\)$/,e=a._.$,l=a.url,r=String,s=a._.separator,x=\"\";k.on(\"snap.util.attr.mask\",\n", + "function(a){if(a instanceof v||a instanceof A){k.stop();a instanceof A&&1==a.node.childNodes.length&&(a=a.node.firstChild,b(this).appendChild(a),a=u(a));if(\"mask\"==a.type)var d=a;else d=n(\"mask\",b(this)),d.node.appendChild(a.node);!d.node.id&&e(d.node,{id:d.id});e(this.node,{mask:l(d.id)})}});(function(a){k.on(\"snap.util.attr.clip\",a);k.on(\"snap.util.attr.clip-path\",a);k.on(\"snap.util.attr.clipPath\",a)})(function(a){if(a instanceof v||a instanceof A){k.stop();if(\"clipPath\"==a.type)var d=a;else d=\n", + "n(\"clipPath\",b(this)),d.node.appendChild(a.node),!d.node.id&&e(d.node,{id:d.id});e(this.node,{\"clip-path\":l(d.id)})}});k.on(\"snap.util.attr.fill\",w(\"fill\"));k.on(\"snap.util.attr.stroke\",w(\"stroke\"));var G=/^([lr])(?:\\(([^)]*)\\))?(.*)$/i;k.on(\"snap.util.grad.parse\",function(a){a=r(a);var b=a.match(G);if(!b)return null;a=b[1];var e=b[2],b=b[3],e=e.split(/\\s*,\\s*/).map(function(a){return+a==a?+a:a});1==e.length&&0==e[0]&&(e=[]);b=b.split(\"-\");b=b.map(function(a){a=a.split(\":\");var b={color:a[0]};a[1]&&\n", + "(b.offset=parseFloat(a[1]));return b});return{type:a,params:e,stops:b}});k.on(\"snap.util.attr.d\",function(b){k.stop();p(b,\"array\")&&p(b[0],\"array\")&&(b=a.path.toString.call(b));b=r(b);b.match(/[ruo]/i)&&(b=a.path.toAbsolute(b));e(this.node,{d:b})})(-1);k.on(\"snap.util.attr.#text\",function(a){k.stop();a=r(a);for(a=M.doc.createTextNode(a);this.node.firstChild;)this.node.removeChild(this.node.firstChild);this.node.appendChild(a)})(-1);k.on(\"snap.util.attr.path\",function(a){k.stop();this.attr({d:a})})(-1);\n", + "k.on(\"snap.util.attr.class\",function(a){k.stop();this.node.className.baseVal=a})(-1);k.on(\"snap.util.attr.viewBox\",function(a){a=p(a,\"object\")&&\"x\"in a?[a.x,a.y,a.width,a.height].join(\" \"):p(a,\"array\")?a.join(\" \"):a;e(this.node,{viewBox:a});k.stop()})(-1);k.on(\"snap.util.attr.transform\",function(a){this.transform(a);k.stop()})(-1);k.on(\"snap.util.attr.r\",function(a){\"rect\"==this.type&&(k.stop(),e(this.node,{rx:a,ry:a}))})(-1);k.on(\"snap.util.attr.textpath\",function(a){k.stop();if(\"text\"==this.type){var d,\n", + "f;if(!a&&this.textPath){for(a=this.textPath;a.node.firstChild;)this.node.appendChild(a.node.firstChild);a.remove();delete this.textPath}else if(p(a,\"string\")?(d=b(this),a=u(d.parentNode).path(a),d.appendChild(a.node),d=a.id,a.attr({id:d})):(a=u(a),a instanceof v&&(d=a.attr(\"id\"),d||(d=a.id,a.attr({id:d})))),d)if(a=this.textPath,f=this.node,a)a.attr({\"xlink:href\":\"#\"+d});else{for(a=e(\"textPath\",{\"xlink:href\":\"#\"+d});f.firstChild;)a.appendChild(f.firstChild);f.appendChild(a);this.textPath=u(a)}}})(-1);\n", + "k.on(\"snap.util.attr.text\",function(a){if(\"text\"==this.type){for(var b=this.node,d=function(a){var b=e(\"tspan\");if(p(a,\"array\"))for(var f=0;f<a.length;f++)b.appendChild(d(a[f]));else b.appendChild(M.doc.createTextNode(a));b.normalize&&b.normalize();return b};b.firstChild;)b.removeChild(b.firstChild);for(a=d(a);a.firstChild;)b.appendChild(a.firstChild)}k.stop()})(-1);k.on(\"snap.util.attr.fontSize\",z)(-1);k.on(\"snap.util.attr.font-size\",z)(-1);k.on(\"snap.util.getattr.transform\",function(){k.stop();\n", + "return this.transform()})(-1);k.on(\"snap.util.getattr.textpath\",function(){k.stop();return this.textPath})(-1);(function(){function b(d){return function(){k.stop();var b=M.doc.defaultView.getComputedStyle(this.node,null).getPropertyValue(\"marker-\"+d);return\"none\"==b?b:a(M.doc.getElementById(b.match(q)[1]))}}function d(a){return function(b){k.stop();var d=\"marker\"+a.charAt(0).toUpperCase()+a.substring(1);if(\"\"==b||!b)this.node.style[d]=\"none\";else if(\"marker\"==b.type){var f=b.node.id;f||e(b.node,{id:b.id});\n", + "this.node.style[d]=l(f)}}}k.on(\"snap.util.getattr.marker-end\",b(\"end\"))(-1);k.on(\"snap.util.getattr.markerEnd\",b(\"end\"))(-1);k.on(\"snap.util.getattr.marker-start\",b(\"start\"))(-1);k.on(\"snap.util.getattr.markerStart\",b(\"start\"))(-1);k.on(\"snap.util.getattr.marker-mid\",b(\"mid\"))(-1);k.on(\"snap.util.getattr.markerMid\",b(\"mid\"))(-1);k.on(\"snap.util.attr.marker-end\",d(\"end\"))(-1);k.on(\"snap.util.attr.markerEnd\",d(\"end\"))(-1);k.on(\"snap.util.attr.marker-start\",d(\"start\"))(-1);k.on(\"snap.util.attr.markerStart\",\n", + "d(\"start\"))(-1);k.on(\"snap.util.attr.marker-mid\",d(\"mid\"))(-1);k.on(\"snap.util.attr.markerMid\",d(\"mid\"))(-1)})();k.on(\"snap.util.getattr.r\",function(){if(\"rect\"==this.type&&e(this.node,\"rx\")==e(this.node,\"ry\"))return k.stop(),e(this.node,\"rx\")})(-1);k.on(\"snap.util.getattr.text\",function(){if(\"text\"==this.type||\"tspan\"==this.type){k.stop();var a=d(this.node);return 1==a.length?a[0]:a}})(-1);k.on(\"snap.util.getattr.#text\",function(){return this.node.textContent})(-1);k.on(\"snap.util.getattr.viewBox\",\n", + "function(){k.stop();var b=e(this.node,\"viewBox\");if(b)return b=b.split(s),a._.box(+b[0],+b[1],+b[2],+b[3])})(-1);k.on(\"snap.util.getattr.points\",function(){var a=e(this.node,\"points\");k.stop();if(a)return a.split(s)})(-1);k.on(\"snap.util.getattr.path\",function(){var a=e(this.node,\"d\");k.stop();return a})(-1);k.on(\"snap.util.getattr.class\",function(){return this.node.className.baseVal})(-1);k.on(\"snap.util.getattr.fontSize\",f)(-1);k.on(\"snap.util.getattr.font-size\",f)(-1)});C.plugin(function(a,v,y,\n", + "M,A){function w(a){return a}function z(a){return function(b){return+b.toFixed(3)+a}}var d={\"+\":function(a,b){return a+b},\"-\":function(a,b){return a-b},\"/\":function(a,b){return a/b},\"*\":function(a,b){return a*b}},f=String,n=/[a-z]+$/i,u=/^\\s*([+\\-\\/*])\\s*=\\s*([\\d.eE+\\-]+)\\s*([^\\d\\s]+)?\\s*$/;k.on(\"snap.util.attr\",function(a){if(a=f(a).match(u)){var b=k.nt(),b=b.substring(b.lastIndexOf(\".\")+1),q=this.attr(b),e={};k.stop();var l=a[3]||\"\",r=q.match(n),s=d[a[1] ];r&&r==l?a=s(parseFloat(q),+a[2]):(q=this.asPX(b),\n", + "a=s(this.asPX(b),this.asPX(b,a[2]+l)));isNaN(q)||isNaN(a)||(e[b]=a,this.attr(e))}})(-10);k.on(\"snap.util.equal\",function(a,b){var q=f(this.attr(a)||\"\"),e=f(b).match(u);if(e){k.stop();var l=e[3]||\"\",r=q.match(n),s=d[e[1] ];if(r&&r==l)return{from:parseFloat(q),to:s(parseFloat(q),+e[2]),f:z(r)};q=this.asPX(a);return{from:q,to:s(q,this.asPX(a,e[2]+l)),f:w}}})(-10)});C.plugin(function(a,v,y,M,A){var w=y.prototype,z=a.is;w.rect=function(a,d,k,p,b,q){var e;null==q&&(q=b);z(a,\"object\")&&\"[object Object]\"==\n", + "a?e=a:null!=a&&(e={x:a,y:d,width:k,height:p},null!=b&&(e.rx=b,e.ry=q));return this.el(\"rect\",e)};w.circle=function(a,d,k){var p;z(a,\"object\")&&\"[object Object]\"==a?p=a:null!=a&&(p={cx:a,cy:d,r:k});return this.el(\"circle\",p)};var d=function(){function a(){this.parentNode.removeChild(this)}return function(d,k){var p=M.doc.createElement(\"img\"),b=M.doc.body;p.style.cssText=\"position:absolute;left:-9999em;top:-9999em\";p.onload=function(){k.call(p);p.onload=p.onerror=null;b.removeChild(p)};p.onerror=a;\n", + "b.appendChild(p);p.src=d}}();w.image=function(f,n,k,p,b){var q=this.el(\"image\");if(z(f,\"object\")&&\"src\"in f)q.attr(f);else if(null!=f){var e={\"xlink:href\":f,preserveAspectRatio:\"none\"};null!=n&&null!=k&&(e.x=n,e.y=k);null!=p&&null!=b?(e.width=p,e.height=b):d(f,function(){a._.$(q.node,{width:this.offsetWidth,height:this.offsetHeight})});a._.$(q.node,e)}return q};w.ellipse=function(a,d,k,p){var b;z(a,\"object\")&&\"[object Object]\"==a?b=a:null!=a&&(b={cx:a,cy:d,rx:k,ry:p});return this.el(\"ellipse\",b)};\n", + "w.path=function(a){var d;z(a,\"object\")&&!z(a,\"array\")?d=a:a&&(d={d:a});return this.el(\"path\",d)};w.group=w.g=function(a){var d=this.el(\"g\");1==arguments.length&&a&&!a.type?d.attr(a):arguments.length&&d.add(Array.prototype.slice.call(arguments,0));return d};w.svg=function(a,d,k,p,b,q,e,l){var r={};z(a,\"object\")&&null==d?r=a:(null!=a&&(r.x=a),null!=d&&(r.y=d),null!=k&&(r.width=k),null!=p&&(r.height=p),null!=b&&null!=q&&null!=e&&null!=l&&(r.viewBox=[b,q,e,l]));return this.el(\"svg\",r)};w.mask=function(a){var d=\n", + "this.el(\"mask\");1==arguments.length&&a&&!a.type?d.attr(a):arguments.length&&d.add(Array.prototype.slice.call(arguments,0));return d};w.ptrn=function(a,d,k,p,b,q,e,l){if(z(a,\"object\"))var r=a;else arguments.length?(r={},null!=a&&(r.x=a),null!=d&&(r.y=d),null!=k&&(r.width=k),null!=p&&(r.height=p),null!=b&&null!=q&&null!=e&&null!=l&&(r.viewBox=[b,q,e,l])):r={patternUnits:\"userSpaceOnUse\"};return this.el(\"pattern\",r)};w.use=function(a){return null!=a?(make(\"use\",this.node),a instanceof v&&(a.attr(\"id\")||\n", + "a.attr({id:ID()}),a=a.attr(\"id\")),this.el(\"use\",{\"xlink:href\":a})):v.prototype.use.call(this)};w.text=function(a,d,k){var p={};z(a,\"object\")?p=a:null!=a&&(p={x:a,y:d,text:k||\"\"});return this.el(\"text\",p)};w.line=function(a,d,k,p){var b={};z(a,\"object\")?b=a:null!=a&&(b={x1:a,x2:k,y1:d,y2:p});return this.el(\"line\",b)};w.polyline=function(a){1<arguments.length&&(a=Array.prototype.slice.call(arguments,0));var d={};z(a,\"object\")&&!z(a,\"array\")?d=a:null!=a&&(d={points:a});return this.el(\"polyline\",d)};\n", + "w.polygon=function(a){1<arguments.length&&(a=Array.prototype.slice.call(arguments,0));var d={};z(a,\"object\")&&!z(a,\"array\")?d=a:null!=a&&(d={points:a});return this.el(\"polygon\",d)};(function(){function d(){return this.selectAll(\"stop\")}function n(b,d){var f=e(\"stop\"),k={offset:+d+\"%\"};b=a.color(b);k[\"stop-color\"]=b.hex;1>b.opacity&&(k[\"stop-opacity\"]=b.opacity);e(f,k);this.node.appendChild(f);return this}function u(){if(\"linearGradient\"==this.type){var b=e(this.node,\"x1\")||0,d=e(this.node,\"x2\")||\n", + "1,f=e(this.node,\"y1\")||0,k=e(this.node,\"y2\")||0;return a._.box(b,f,math.abs(d-b),math.abs(k-f))}b=this.node.r||0;return a._.box((this.node.cx||0.5)-b,(this.node.cy||0.5)-b,2*b,2*b)}function p(a,d){function f(a,b){for(var d=(b-u)/(a-w),e=w;e<a;e++)h[e].offset=+(+u+d*(e-w)).toFixed(2);w=a;u=b}var n=k(\"snap.util.grad.parse\",null,d).firstDefined(),p;if(!n)return null;n.params.unshift(a);p=\"l\"==n.type.toLowerCase()?b.apply(0,n.params):q.apply(0,n.params);n.type!=n.type.toLowerCase()&&e(p.node,{gradientUnits:\"userSpaceOnUse\"});\n", + "var h=n.stops,n=h.length,u=0,w=0;n--;for(var v=0;v<n;v++)\"offset\"in h[v]&&f(v,h[v].offset);h[n].offset=h[n].offset||100;f(n,h[n].offset);for(v=0;v<=n;v++){var y=h[v];p.addStop(y.color,y.offset)}return p}function b(b,k,p,q,w){b=a._.make(\"linearGradient\",b);b.stops=d;b.addStop=n;b.getBBox=u;null!=k&&e(b.node,{x1:k,y1:p,x2:q,y2:w});return b}function q(b,k,p,q,w,h){b=a._.make(\"radialGradient\",b);b.stops=d;b.addStop=n;b.getBBox=u;null!=k&&e(b.node,{cx:k,cy:p,r:q});null!=w&&null!=h&&e(b.node,{fx:w,fy:h});\n", + "return b}var e=a._.$;w.gradient=function(a){return p(this.defs,a)};w.gradientLinear=function(a,d,e,f){return b(this.defs,a,d,e,f)};w.gradientRadial=function(a,b,d,e,f){return q(this.defs,a,b,d,e,f)};w.toString=function(){var b=this.node.ownerDocument,d=b.createDocumentFragment(),b=b.createElement(\"div\"),e=this.node.cloneNode(!0);d.appendChild(b);b.appendChild(e);a._.$(e,{xmlns:\"http://www.w3.org/2000/svg\"});b=b.innerHTML;d.removeChild(d.firstChild);return b};w.clear=function(){for(var a=this.node.firstChild,\n", + "b;a;)b=a.nextSibling,\"defs\"!=a.tagName?a.parentNode.removeChild(a):w.clear.call({node:a}),a=b}})()});C.plugin(function(a,k,y,M){function A(a){var b=A.ps=A.ps||{};b[a]?b[a].sleep=100:b[a]={sleep:100};setTimeout(function(){for(var d in b)b[L](d)&&d!=a&&(b[d].sleep--,!b[d].sleep&&delete b[d])});return b[a]}function w(a,b,d,e){null==a&&(a=b=d=e=0);null==b&&(b=a.y,d=a.width,e=a.height,a=a.x);return{x:a,y:b,width:d,w:d,height:e,h:e,x2:a+d,y2:b+e,cx:a+d/2,cy:b+e/2,r1:F.min(d,e)/2,r2:F.max(d,e)/2,r0:F.sqrt(d*\n", + "d+e*e)/2,path:s(a,b,d,e),vb:[a,b,d,e].join(\" \")}}function z(){return this.join(\",\").replace(N,\"$1\")}function d(a){a=C(a);a.toString=z;return a}function f(a,b,d,h,f,k,l,n,p){if(null==p)return e(a,b,d,h,f,k,l,n);if(0>p||e(a,b,d,h,f,k,l,n)<p)p=void 0;else{var q=0.5,O=1-q,s;for(s=e(a,b,d,h,f,k,l,n,O);0.01<Z(s-p);)q/=2,O+=(s<p?1:-1)*q,s=e(a,b,d,h,f,k,l,n,O);p=O}return u(a,b,d,h,f,k,l,n,p)}function n(b,d){function e(a){return+(+a).toFixed(3)}return a._.cacher(function(a,h,l){a instanceof k&&(a=a.attr(\"d\"));\n", + "a=I(a);for(var n,p,D,q,O=\"\",s={},c=0,t=0,r=a.length;t<r;t++){D=a[t];if(\"M\"==D[0])n=+D[1],p=+D[2];else{q=f(n,p,D[1],D[2],D[3],D[4],D[5],D[6]);if(c+q>h){if(d&&!s.start){n=f(n,p,D[1],D[2],D[3],D[4],D[5],D[6],h-c);O+=[\"C\"+e(n.start.x),e(n.start.y),e(n.m.x),e(n.m.y),e(n.x),e(n.y)];if(l)return O;s.start=O;O=[\"M\"+e(n.x),e(n.y)+\"C\"+e(n.n.x),e(n.n.y),e(n.end.x),e(n.end.y),e(D[5]),e(D[6])].join();c+=q;n=+D[5];p=+D[6];continue}if(!b&&!d)return n=f(n,p,D[1],D[2],D[3],D[4],D[5],D[6],h-c)}c+=q;n=+D[5];p=+D[6]}O+=\n", + "D.shift()+D}s.end=O;return n=b?c:d?s:u(n,p,D[0],D[1],D[2],D[3],D[4],D[5],1)},null,a._.clone)}function u(a,b,d,e,h,f,k,l,n){var p=1-n,q=ma(p,3),s=ma(p,2),c=n*n,t=c*n,r=q*a+3*s*n*d+3*p*n*n*h+t*k,q=q*b+3*s*n*e+3*p*n*n*f+t*l,s=a+2*n*(d-a)+c*(h-2*d+a),t=b+2*n*(e-b)+c*(f-2*e+b),x=d+2*n*(h-d)+c*(k-2*h+d),c=e+2*n*(f-e)+c*(l-2*f+e);a=p*a+n*d;b=p*b+n*e;h=p*h+n*k;f=p*f+n*l;l=90-180*F.atan2(s-x,t-c)/S;return{x:r,y:q,m:{x:s,y:t},n:{x:x,y:c},start:{x:a,y:b},end:{x:h,y:f},alpha:l}}function p(b,d,e,h,f,n,k,l){a.is(b,\n", + "\"array\")||(b=[b,d,e,h,f,n,k,l]);b=U.apply(null,b);return w(b.min.x,b.min.y,b.max.x-b.min.x,b.max.y-b.min.y)}function b(a,b,d){return b>=a.x&&b<=a.x+a.width&&d>=a.y&&d<=a.y+a.height}function q(a,d){a=w(a);d=w(d);return b(d,a.x,a.y)||b(d,a.x2,a.y)||b(d,a.x,a.y2)||b(d,a.x2,a.y2)||b(a,d.x,d.y)||b(a,d.x2,d.y)||b(a,d.x,d.y2)||b(a,d.x2,d.y2)||(a.x<d.x2&&a.x>d.x||d.x<a.x2&&d.x>a.x)&&(a.y<d.y2&&a.y>d.y||d.y<a.y2&&d.y>a.y)}function e(a,b,d,e,h,f,n,k,l){null==l&&(l=1);l=(1<l?1:0>l?0:l)/2;for(var p=[-0.1252,\n", + "0.1252,-0.3678,0.3678,-0.5873,0.5873,-0.7699,0.7699,-0.9041,0.9041,-0.9816,0.9816],q=[0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472],s=0,c=0;12>c;c++)var t=l*p[c]+l,r=t*(t*(-3*a+9*d-9*h+3*n)+6*a-12*d+6*h)-3*a+3*d,t=t*(t*(-3*b+9*e-9*f+3*k)+6*b-12*e+6*f)-3*b+3*e,s=s+q[c]*F.sqrt(r*r+t*t);return l*s}function l(a,b,d){a=I(a);b=I(b);for(var h,f,l,n,k,s,r,O,x,c,t=d?0:[],w=0,v=a.length;w<v;w++)if(x=a[w],\"M\"==x[0])h=k=x[1],f=s=x[2];else{\"C\"==x[0]?(x=[h,f].concat(x.slice(1)),\n", + "h=x[6],f=x[7]):(x=[h,f,h,f,k,s,k,s],h=k,f=s);for(var G=0,y=b.length;G<y;G++)if(c=b[G],\"M\"==c[0])l=r=c[1],n=O=c[2];else{\"C\"==c[0]?(c=[l,n].concat(c.slice(1)),l=c[6],n=c[7]):(c=[l,n,l,n,r,O,r,O],l=r,n=O);var z;var K=x,B=c;z=d;var H=p(K),J=p(B);if(q(H,J)){for(var H=e.apply(0,K),J=e.apply(0,B),H=~~(H/8),J=~~(J/8),U=[],A=[],F={},M=z?0:[],P=0;P<H+1;P++){var C=u.apply(0,K.concat(P/H));U.push({x:C.x,y:C.y,t:P/H})}for(P=0;P<J+1;P++)C=u.apply(0,B.concat(P/J)),A.push({x:C.x,y:C.y,t:P/J});for(P=0;P<H;P++)for(K=\n", + "0;K<J;K++){var Q=U[P],L=U[P+1],B=A[K],C=A[K+1],N=0.001>Z(L.x-Q.x)?\"y\":\"x\",S=0.001>Z(C.x-B.x)?\"y\":\"x\",R;R=Q.x;var Y=Q.y,V=L.x,ea=L.y,fa=B.x,ga=B.y,ha=C.x,ia=C.y;if(W(R,V)<X(fa,ha)||X(R,V)>W(fa,ha)||W(Y,ea)<X(ga,ia)||X(Y,ea)>W(ga,ia))R=void 0;else{var $=(R*ea-Y*V)*(fa-ha)-(R-V)*(fa*ia-ga*ha),aa=(R*ea-Y*V)*(ga-ia)-(Y-ea)*(fa*ia-ga*ha),ja=(R-V)*(ga-ia)-(Y-ea)*(fa-ha);if(ja){var $=$/ja,aa=aa/ja,ja=+$.toFixed(2),ba=+aa.toFixed(2);R=ja<+X(R,V).toFixed(2)||ja>+W(R,V).toFixed(2)||ja<+X(fa,ha).toFixed(2)||\n", + "ja>+W(fa,ha).toFixed(2)||ba<+X(Y,ea).toFixed(2)||ba>+W(Y,ea).toFixed(2)||ba<+X(ga,ia).toFixed(2)||ba>+W(ga,ia).toFixed(2)?void 0:{x:$,y:aa}}else R=void 0}R&&F[R.x.toFixed(4)]!=R.y.toFixed(4)&&(F[R.x.toFixed(4)]=R.y.toFixed(4),Q=Q.t+Z((R[N]-Q[N])/(L[N]-Q[N]))*(L.t-Q.t),B=B.t+Z((R[S]-B[S])/(C[S]-B[S]))*(C.t-B.t),0<=Q&&1>=Q&&0<=B&&1>=B&&(z?M++:M.push({x:R.x,y:R.y,t1:Q,t2:B})))}z=M}else z=z?0:[];if(d)t+=z;else{H=0;for(J=z.length;H<J;H++)z[H].segment1=w,z[H].segment2=G,z[H].bez1=x,z[H].bez2=c;t=t.concat(z)}}}return t}\n", + "function r(a){var b=A(a);if(b.bbox)return C(b.bbox);if(!a)return w();a=I(a);for(var d=0,e=0,h=[],f=[],l,n=0,k=a.length;n<k;n++)l=a[n],\"M\"==l[0]?(d=l[1],e=l[2],h.push(d),f.push(e)):(d=U(d,e,l[1],l[2],l[3],l[4],l[5],l[6]),h=h.concat(d.min.x,d.max.x),f=f.concat(d.min.y,d.max.y),d=l[5],e=l[6]);a=X.apply(0,h);l=X.apply(0,f);h=W.apply(0,h);f=W.apply(0,f);f=w(a,l,h-a,f-l);b.bbox=C(f);return f}function s(a,b,d,e,h){if(h)return[[\"M\",+a+ +h,b],[\"l\",d-2*h,0],[\"a\",h,h,0,0,1,h,h],[\"l\",0,e-2*h],[\"a\",h,h,0,0,1,\n", + "-h,h],[\"l\",2*h-d,0],[\"a\",h,h,0,0,1,-h,-h],[\"l\",0,2*h-e],[\"a\",h,h,0,0,1,h,-h],[\"z\"] ];a=[[\"M\",a,b],[\"l\",d,0],[\"l\",0,e],[\"l\",-d,0],[\"z\"] ];a.toString=z;return a}function x(a,b,d,e,h){null==h&&null==e&&(e=d);a=+a;b=+b;d=+d;e=+e;if(null!=h){var f=Math.PI/180,l=a+d*Math.cos(-e*f);a+=d*Math.cos(-h*f);var n=b+d*Math.sin(-e*f);b+=d*Math.sin(-h*f);d=[[\"M\",l,n],[\"A\",d,d,0,+(180<h-e),0,a,b] ]}else d=[[\"M\",a,b],[\"m\",0,-e],[\"a\",d,e,0,1,1,0,2*e],[\"a\",d,e,0,1,1,0,-2*e],[\"z\"] ];d.toString=z;return d}function G(b){var e=\n", + "A(b);if(e.abs)return d(e.abs);Q(b,\"array\")&&Q(b&&b[0],\"array\")||(b=a.parsePathString(b));if(!b||!b.length)return[[\"M\",0,0] ];var h=[],f=0,l=0,n=0,k=0,p=0;\"M\"==b[0][0]&&(f=+b[0][1],l=+b[0][2],n=f,k=l,p++,h[0]=[\"M\",f,l]);for(var q=3==b.length&&\"M\"==b[0][0]&&\"R\"==b[1][0].toUpperCase()&&\"Z\"==b[2][0].toUpperCase(),s,r,w=p,c=b.length;w<c;w++){h.push(s=[]);r=b[w];p=r[0];if(p!=p.toUpperCase())switch(s[0]=p.toUpperCase(),s[0]){case \"A\":s[1]=r[1];s[2]=r[2];s[3]=r[3];s[4]=r[4];s[5]=r[5];s[6]=+r[6]+f;s[7]=+r[7]+\n", + "l;break;case \"V\":s[1]=+r[1]+l;break;case \"H\":s[1]=+r[1]+f;break;case \"R\":for(var t=[f,l].concat(r.slice(1)),u=2,v=t.length;u<v;u++)t[u]=+t[u]+f,t[++u]=+t[u]+l;h.pop();h=h.concat(P(t,q));break;case \"O\":h.pop();t=x(f,l,r[1],r[2]);t.push(t[0]);h=h.concat(t);break;case \"U\":h.pop();h=h.concat(x(f,l,r[1],r[2],r[3]));s=[\"U\"].concat(h[h.length-1].slice(-2));break;case \"M\":n=+r[1]+f,k=+r[2]+l;default:for(u=1,v=r.length;u<v;u++)s[u]=+r[u]+(u%2?f:l)}else if(\"R\"==p)t=[f,l].concat(r.slice(1)),h.pop(),h=h.concat(P(t,\n", + "q)),s=[\"R\"].concat(r.slice(-2));else if(\"O\"==p)h.pop(),t=x(f,l,r[1],r[2]),t.push(t[0]),h=h.concat(t);else if(\"U\"==p)h.pop(),h=h.concat(x(f,l,r[1],r[2],r[3])),s=[\"U\"].concat(h[h.length-1].slice(-2));else for(t=0,u=r.length;t<u;t++)s[t]=r[t];p=p.toUpperCase();if(\"O\"!=p)switch(s[0]){case \"Z\":f=+n;l=+k;break;case \"H\":f=s[1];break;case \"V\":l=s[1];break;case \"M\":n=s[s.length-2],k=s[s.length-1];default:f=s[s.length-2],l=s[s.length-1]}}h.toString=z;e.abs=d(h);return h}function h(a,b,d,e){return[a,b,d,e,d,\n", + "e]}function J(a,b,d,e,h,f){var l=1/3,n=2/3;return[l*a+n*d,l*b+n*e,l*h+n*d,l*f+n*e,h,f]}function K(b,d,e,h,f,l,n,k,p,s){var r=120*S/180,q=S/180*(+f||0),c=[],t,x=a._.cacher(function(a,b,c){var d=a*F.cos(c)-b*F.sin(c);a=a*F.sin(c)+b*F.cos(c);return{x:d,y:a}});if(s)v=s[0],t=s[1],l=s[2],u=s[3];else{t=x(b,d,-q);b=t.x;d=t.y;t=x(k,p,-q);k=t.x;p=t.y;F.cos(S/180*f);F.sin(S/180*f);t=(b-k)/2;v=(d-p)/2;u=t*t/(e*e)+v*v/(h*h);1<u&&(u=F.sqrt(u),e*=u,h*=u);var u=e*e,w=h*h,u=(l==n?-1:1)*F.sqrt(Z((u*w-u*v*v-w*t*t)/\n", + "(u*v*v+w*t*t)));l=u*e*v/h+(b+k)/2;var u=u*-h*t/e+(d+p)/2,v=F.asin(((d-u)/h).toFixed(9));t=F.asin(((p-u)/h).toFixed(9));v=b<l?S-v:v;t=k<l?S-t:t;0>v&&(v=2*S+v);0>t&&(t=2*S+t);n&&v>t&&(v-=2*S);!n&&t>v&&(t-=2*S)}if(Z(t-v)>r){var c=t,w=k,G=p;t=v+r*(n&&t>v?1:-1);k=l+e*F.cos(t);p=u+h*F.sin(t);c=K(k,p,e,h,f,0,n,w,G,[t,c,l,u])}l=t-v;f=F.cos(v);r=F.sin(v);n=F.cos(t);t=F.sin(t);l=F.tan(l/4);e=4/3*e*l;l*=4/3*h;h=[b,d];b=[b+e*r,d-l*f];d=[k+e*t,p-l*n];k=[k,p];b[0]=2*h[0]-b[0];b[1]=2*h[1]-b[1];if(s)return[b,d,k].concat(c);\n", + "c=[b,d,k].concat(c).join().split(\",\");s=[];k=0;for(p=c.length;k<p;k++)s[k]=k%2?x(c[k-1],c[k],q).y:x(c[k],c[k+1],q).x;return s}function U(a,b,d,e,h,f,l,k){for(var n=[],p=[[],[] ],s,r,c,t,q=0;2>q;++q)0==q?(r=6*a-12*d+6*h,s=-3*a+9*d-9*h+3*l,c=3*d-3*a):(r=6*b-12*e+6*f,s=-3*b+9*e-9*f+3*k,c=3*e-3*b),1E-12>Z(s)?1E-12>Z(r)||(s=-c/r,0<s&&1>s&&n.push(s)):(t=r*r-4*c*s,c=F.sqrt(t),0>t||(t=(-r+c)/(2*s),0<t&&1>t&&n.push(t),s=(-r-c)/(2*s),0<s&&1>s&&n.push(s)));for(r=q=n.length;q--;)s=n[q],c=1-s,p[0][q]=c*c*c*a+3*\n", + "c*c*s*d+3*c*s*s*h+s*s*s*l,p[1][q]=c*c*c*b+3*c*c*s*e+3*c*s*s*f+s*s*s*k;p[0][r]=a;p[1][r]=b;p[0][r+1]=l;p[1][r+1]=k;p[0].length=p[1].length=r+2;return{min:{x:X.apply(0,p[0]),y:X.apply(0,p[1])},max:{x:W.apply(0,p[0]),y:W.apply(0,p[1])}}}function I(a,b){var e=!b&&A(a);if(!b&&e.curve)return d(e.curve);var f=G(a),l=b&&G(b),n={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},k={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},p=function(a,b,c){if(!a)return[\"C\",b.x,b.y,b.x,b.y,b.x,b.y];a[0]in{T:1,Q:1}||(b.qx=b.qy=null);\n", + "switch(a[0]){case \"M\":b.X=a[1];b.Y=a[2];break;case \"A\":a=[\"C\"].concat(K.apply(0,[b.x,b.y].concat(a.slice(1))));break;case \"S\":\"C\"==c||\"S\"==c?(c=2*b.x-b.bx,b=2*b.y-b.by):(c=b.x,b=b.y);a=[\"C\",c,b].concat(a.slice(1));break;case \"T\":\"Q\"==c||\"T\"==c?(b.qx=2*b.x-b.qx,b.qy=2*b.y-b.qy):(b.qx=b.x,b.qy=b.y);a=[\"C\"].concat(J(b.x,b.y,b.qx,b.qy,a[1],a[2]));break;case \"Q\":b.qx=a[1];b.qy=a[2];a=[\"C\"].concat(J(b.x,b.y,a[1],a[2],a[3],a[4]));break;case \"L\":a=[\"C\"].concat(h(b.x,b.y,a[1],a[2]));break;case \"H\":a=[\"C\"].concat(h(b.x,\n", + "b.y,a[1],b.y));break;case \"V\":a=[\"C\"].concat(h(b.x,b.y,b.x,a[1]));break;case \"Z\":a=[\"C\"].concat(h(b.x,b.y,b.X,b.Y))}return a},s=function(a,b){if(7<a[b].length){a[b].shift();for(var c=a[b];c.length;)q[b]=\"A\",l&&(u[b]=\"A\"),a.splice(b++,0,[\"C\"].concat(c.splice(0,6)));a.splice(b,1);v=W(f.length,l&&l.length||0)}},r=function(a,b,c,d,e){a&&b&&\"M\"==a[e][0]&&\"M\"!=b[e][0]&&(b.splice(e,0,[\"M\",d.x,d.y]),c.bx=0,c.by=0,c.x=a[e][1],c.y=a[e][2],v=W(f.length,l&&l.length||0))},q=[],u=[],c=\"\",t=\"\",x=0,v=W(f.length,\n", + "l&&l.length||0);for(;x<v;x++){f[x]&&(c=f[x][0]);\"C\"!=c&&(q[x]=c,x&&(t=q[x-1]));f[x]=p(f[x],n,t);\"A\"!=q[x]&&\"C\"==c&&(q[x]=\"C\");s(f,x);l&&(l[x]&&(c=l[x][0]),\"C\"!=c&&(u[x]=c,x&&(t=u[x-1])),l[x]=p(l[x],k,t),\"A\"!=u[x]&&\"C\"==c&&(u[x]=\"C\"),s(l,x));r(f,l,n,k,x);r(l,f,k,n,x);var w=f[x],z=l&&l[x],y=w.length,U=l&&z.length;n.x=w[y-2];n.y=w[y-1];n.bx=$(w[y-4])||n.x;n.by=$(w[y-3])||n.y;k.bx=l&&($(z[U-4])||k.x);k.by=l&&($(z[U-3])||k.y);k.x=l&&z[U-2];k.y=l&&z[U-1]}l||(e.curve=d(f));return l?[f,l]:f}function P(a,\n", + "b){for(var d=[],e=0,h=a.length;h-2*!b>e;e+=2){var f=[{x:+a[e-2],y:+a[e-1]},{x:+a[e],y:+a[e+1]},{x:+a[e+2],y:+a[e+3]},{x:+a[e+4],y:+a[e+5]}];b?e?h-4==e?f[3]={x:+a[0],y:+a[1]}:h-2==e&&(f[2]={x:+a[0],y:+a[1]},f[3]={x:+a[2],y:+a[3]}):f[0]={x:+a[h-2],y:+a[h-1]}:h-4==e?f[3]=f[2]:e||(f[0]={x:+a[e],y:+a[e+1]});d.push([\"C\",(-f[0].x+6*f[1].x+f[2].x)/6,(-f[0].y+6*f[1].y+f[2].y)/6,(f[1].x+6*f[2].x-f[3].x)/6,(f[1].y+6*f[2].y-f[3].y)/6,f[2].x,f[2].y])}return d}y=k.prototype;var Q=a.is,C=a._.clone,L=\"hasOwnProperty\",\n", + "N=/,?([a-z]),?/gi,$=parseFloat,F=Math,S=F.PI,X=F.min,W=F.max,ma=F.pow,Z=F.abs;M=n(1);var na=n(),ba=n(0,1),V=a._unit2px;a.path=A;a.path.getTotalLength=M;a.path.getPointAtLength=na;a.path.getSubpath=function(a,b,d){if(1E-6>this.getTotalLength(a)-d)return ba(a,b).end;a=ba(a,d,1);return b?ba(a,b).end:a};y.getTotalLength=function(){if(this.node.getTotalLength)return this.node.getTotalLength()};y.getPointAtLength=function(a){return na(this.attr(\"d\"),a)};y.getSubpath=function(b,d){return a.path.getSubpath(this.attr(\"d\"),\n", + "b,d)};a._.box=w;a.path.findDotsAtSegment=u;a.path.bezierBBox=p;a.path.isPointInsideBBox=b;a.path.isBBoxIntersect=q;a.path.intersection=function(a,b){return l(a,b)};a.path.intersectionNumber=function(a,b){return l(a,b,1)};a.path.isPointInside=function(a,d,e){var h=r(a);return b(h,d,e)&&1==l(a,[[\"M\",d,e],[\"H\",h.x2+10] ],1)%2};a.path.getBBox=r;a.path.get={path:function(a){return a.attr(\"path\")},circle:function(a){a=V(a);return x(a.cx,a.cy,a.r)},ellipse:function(a){a=V(a);return x(a.cx||0,a.cy||0,a.rx,\n", + "a.ry)},rect:function(a){a=V(a);return s(a.x||0,a.y||0,a.width,a.height,a.rx,a.ry)},image:function(a){a=V(a);return s(a.x||0,a.y||0,a.width,a.height)},line:function(a){return\"M\"+[a.attr(\"x1\")||0,a.attr(\"y1\")||0,a.attr(\"x2\"),a.attr(\"y2\")]},polyline:function(a){return\"M\"+a.attr(\"points\")},polygon:function(a){return\"M\"+a.attr(\"points\")+\"z\"},deflt:function(a){a=a.node.getBBox();return s(a.x,a.y,a.width,a.height)}};a.path.toRelative=function(b){var e=A(b),h=String.prototype.toLowerCase;if(e.rel)return d(e.rel);\n", + "a.is(b,\"array\")&&a.is(b&&b[0],\"array\")||(b=a.parsePathString(b));var f=[],l=0,n=0,k=0,p=0,s=0;\"M\"==b[0][0]&&(l=b[0][1],n=b[0][2],k=l,p=n,s++,f.push([\"M\",l,n]));for(var r=b.length;s<r;s++){var q=f[s]=[],x=b[s];if(x[0]!=h.call(x[0]))switch(q[0]=h.call(x[0]),q[0]){case \"a\":q[1]=x[1];q[2]=x[2];q[3]=x[3];q[4]=x[4];q[5]=x[5];q[6]=+(x[6]-l).toFixed(3);q[7]=+(x[7]-n).toFixed(3);break;case \"v\":q[1]=+(x[1]-n).toFixed(3);break;case \"m\":k=x[1],p=x[2];default:for(var c=1,t=x.length;c<t;c++)q[c]=+(x[c]-(c%2?l:\n", + "n)).toFixed(3)}else for(f[s]=[],\"m\"==x[0]&&(k=x[1]+l,p=x[2]+n),q=0,c=x.length;q<c;q++)f[s][q]=x[q];x=f[s].length;switch(f[s][0]){case \"z\":l=k;n=p;break;case \"h\":l+=+f[s][x-1];break;case \"v\":n+=+f[s][x-1];break;default:l+=+f[s][x-2],n+=+f[s][x-1]}}f.toString=z;e.rel=d(f);return f};a.path.toAbsolute=G;a.path.toCubic=I;a.path.map=function(a,b){if(!b)return a;var d,e,h,f,l,n,k;a=I(a);h=0;for(l=a.length;h<l;h++)for(k=a[h],f=1,n=k.length;f<n;f+=2)d=b.x(k[f],k[f+1]),e=b.y(k[f],k[f+1]),k[f]=d,k[f+1]=e;return a};\n", + "a.path.toString=z;a.path.clone=d});C.plugin(function(a,v,y,C){var A=Math.max,w=Math.min,z=function(a){this.items=[];this.bindings={};this.length=0;this.type=\"set\";if(a)for(var f=0,n=a.length;f<n;f++)a[f]&&(this[this.items.length]=this.items[this.items.length]=a[f],this.length++)};v=z.prototype;v.push=function(){for(var a,f,n=0,k=arguments.length;n<k;n++)if(a=arguments[n])f=this.items.length,this[f]=this.items[f]=a,this.length++;return this};v.pop=function(){this.length&&delete this[this.length--];\n", + "return this.items.pop()};v.forEach=function(a,f){for(var n=0,k=this.items.length;n<k&&!1!==a.call(f,this.items[n],n);n++);return this};v.animate=function(d,f,n,u){\"function\"!=typeof n||n.length||(u=n,n=L.linear);d instanceof a._.Animation&&(u=d.callback,n=d.easing,f=n.dur,d=d.attr);var p=arguments;if(a.is(d,\"array\")&&a.is(p[p.length-1],\"array\"))var b=!0;var q,e=function(){q?this.b=q:q=this.b},l=0,r=u&&function(){l++==this.length&&u.call(this)};return this.forEach(function(a,l){k.once(\"snap.animcreated.\"+\n", + "a.id,e);b?p[l]&&a.animate.apply(a,p[l]):a.animate(d,f,n,r)})};v.remove=function(){for(;this.length;)this.pop().remove();return this};v.bind=function(a,f,k){var u={};if(\"function\"==typeof f)this.bindings[a]=f;else{var p=k||a;this.bindings[a]=function(a){u[p]=a;f.attr(u)}}return this};v.attr=function(a){var f={},k;for(k in a)if(this.bindings[k])this.bindings[k](a[k]);else f[k]=a[k];a=0;for(k=this.items.length;a<k;a++)this.items[a].attr(f);return this};v.clear=function(){for(;this.length;)this.pop()};\n", + "v.splice=function(a,f,k){a=0>a?A(this.length+a,0):a;f=A(0,w(this.length-a,f));var u=[],p=[],b=[],q;for(q=2;q<arguments.length;q++)b.push(arguments[q]);for(q=0;q<f;q++)p.push(this[a+q]);for(;q<this.length-a;q++)u.push(this[a+q]);var e=b.length;for(q=0;q<e+u.length;q++)this.items[a+q]=this[a+q]=q<e?b[q]:u[q-e];for(q=this.items.length=this.length-=f-e;this[q];)delete this[q++];return new z(p)};v.exclude=function(a){for(var f=0,k=this.length;f<k;f++)if(this[f]==a)return this.splice(f,1),!0;return!1};\n", + "v.insertAfter=function(a){for(var f=this.items.length;f--;)this.items[f].insertAfter(a);return this};v.getBBox=function(){for(var a=[],f=[],k=[],u=[],p=this.items.length;p--;)if(!this.items[p].removed){var b=this.items[p].getBBox();a.push(b.x);f.push(b.y);k.push(b.x+b.width);u.push(b.y+b.height)}a=w.apply(0,a);f=w.apply(0,f);k=A.apply(0,k);u=A.apply(0,u);return{x:a,y:f,x2:k,y2:u,width:k-a,height:u-f,cx:a+(k-a)/2,cy:f+(u-f)/2}};v.clone=function(a){a=new z;for(var f=0,k=this.items.length;f<k;f++)a.push(this.items[f].clone());\n", + "return a};v.toString=function(){return\"Snap\\u2018s set\"};v.type=\"set\";a.set=function(){var a=new z;arguments.length&&a.push.apply(a,Array.prototype.slice.call(arguments,0));return a}});C.plugin(function(a,v,y,C){function A(a){var b=a[0];switch(b.toLowerCase()){case \"t\":return[b,0,0];case \"m\":return[b,1,0,0,1,0,0];case \"r\":return 4==a.length?[b,0,a[2],a[3] ]:[b,0];case \"s\":return 5==a.length?[b,1,1,a[3],a[4] ]:3==a.length?[b,1,1]:[b,1]}}function w(b,d,f){d=q(d).replace(/\\.{3}|\\u2026/g,b);b=a.parseTransformString(b)||\n", + "[];d=a.parseTransformString(d)||[];for(var k=Math.max(b.length,d.length),p=[],v=[],h=0,w,z,y,I;h<k;h++){y=b[h]||A(d[h]);I=d[h]||A(y);if(y[0]!=I[0]||\"r\"==y[0].toLowerCase()&&(y[2]!=I[2]||y[3]!=I[3])||\"s\"==y[0].toLowerCase()&&(y[3]!=I[3]||y[4]!=I[4])){b=a._.transform2matrix(b,f());d=a._.transform2matrix(d,f());p=[[\"m\",b.a,b.b,b.c,b.d,b.e,b.f] ];v=[[\"m\",d.a,d.b,d.c,d.d,d.e,d.f] ];break}p[h]=[];v[h]=[];w=0;for(z=Math.max(y.length,I.length);w<z;w++)w in y&&(p[h][w]=y[w]),w in I&&(v[h][w]=I[w])}return{from:u(p),\n", + "to:u(v),f:n(p)}}function z(a){return a}function d(a){return function(b){return+b.toFixed(3)+a}}function f(b){return a.rgb(b[0],b[1],b[2])}function n(a){var b=0,d,f,k,n,h,p,q=[];d=0;for(f=a.length;d<f;d++){h=\"[\";p=['\"'+a[d][0]+'\"'];k=1;for(n=a[d].length;k<n;k++)p[k]=\"val[\"+b++ +\"]\";h+=p+\"]\";q[d]=h}return Function(\"val\",\"return Snap.path.toString.call([\"+q+\"])\")}function u(a){for(var b=[],d=0,f=a.length;d<f;d++)for(var k=1,n=a[d].length;k<n;k++)b.push(a[d][k]);return b}var p={},b=/[a-z]+$/i,q=String;\n", + "p.stroke=p.fill=\"colour\";v.prototype.equal=function(a,b){return k(\"snap.util.equal\",this,a,b).firstDefined()};k.on(\"snap.util.equal\",function(e,k){var r,s;r=q(this.attr(e)||\"\");var x=this;if(r==+r&&k==+k)return{from:+r,to:+k,f:z};if(\"colour\"==p[e])return r=a.color(r),s=a.color(k),{from:[r.r,r.g,r.b,r.opacity],to:[s.r,s.g,s.b,s.opacity],f:f};if(\"transform\"==e||\"gradientTransform\"==e||\"patternTransform\"==e)return k instanceof a.Matrix&&(k=k.toTransformString()),a._.rgTransform.test(k)||(k=a._.svgTransform2string(k)),\n", + "w(r,k,function(){return x.getBBox(1)});if(\"d\"==e||\"path\"==e)return r=a.path.toCubic(r,k),{from:u(r[0]),to:u(r[1]),f:n(r[0])};if(\"points\"==e)return r=q(r).split(a._.separator),s=q(k).split(a._.separator),{from:r,to:s,f:function(a){return a}};aUnit=r.match(b);s=q(k).match(b);return aUnit&&aUnit==s?{from:parseFloat(r),to:parseFloat(k),f:d(aUnit)}:{from:this.asPX(e),to:this.asPX(e,k),f:z}})});C.plugin(function(a,v,y,C){var A=v.prototype,w=\"createTouch\"in C.doc;v=\"click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel\".split(\" \");\n", + "var z={mousedown:\"touchstart\",mousemove:\"touchmove\",mouseup:\"touchend\"},d=function(a,b){var d=\"y\"==a?\"scrollTop\":\"scrollLeft\",e=b&&b.node?b.node.ownerDocument:C.doc;return e[d in e.documentElement?\"documentElement\":\"body\"][d]},f=function(){this.returnValue=!1},n=function(){return this.originalEvent.preventDefault()},u=function(){this.cancelBubble=!0},p=function(){return this.originalEvent.stopPropagation()},b=function(){if(C.doc.addEventListener)return function(a,b,e,f){var k=w&&z[b]?z[b]:b,l=function(k){var l=\n", + "d(\"y\",f),q=d(\"x\",f);if(w&&z.hasOwnProperty(b))for(var r=0,u=k.targetTouches&&k.targetTouches.length;r<u;r++)if(k.targetTouches[r].target==a||a.contains(k.targetTouches[r].target)){u=k;k=k.targetTouches[r];k.originalEvent=u;k.preventDefault=n;k.stopPropagation=p;break}return e.call(f,k,k.clientX+q,k.clientY+l)};b!==k&&a.addEventListener(b,l,!1);a.addEventListener(k,l,!1);return function(){b!==k&&a.removeEventListener(b,l,!1);a.removeEventListener(k,l,!1);return!0}};if(C.doc.attachEvent)return function(a,\n", + "b,e,h){var k=function(a){a=a||h.node.ownerDocument.window.event;var b=d(\"y\",h),k=d(\"x\",h),k=a.clientX+k,b=a.clientY+b;a.preventDefault=a.preventDefault||f;a.stopPropagation=a.stopPropagation||u;return e.call(h,a,k,b)};a.attachEvent(\"on\"+b,k);return function(){a.detachEvent(\"on\"+b,k);return!0}}}(),q=[],e=function(a){for(var b=a.clientX,e=a.clientY,f=d(\"y\"),l=d(\"x\"),n,p=q.length;p--;){n=q[p];if(w)for(var r=a.touches&&a.touches.length,u;r--;){if(u=a.touches[r],u.identifier==n.el._drag.id||n.el.node.contains(u.target)){b=\n", + "u.clientX;e=u.clientY;(a.originalEvent?a.originalEvent:a).preventDefault();break}}else a.preventDefault();b+=l;e+=f;k(\"snap.drag.move.\"+n.el.id,n.move_scope||n.el,b-n.el._drag.x,e-n.el._drag.y,b,e,a)}},l=function(b){a.unmousemove(e).unmouseup(l);for(var d=q.length,f;d--;)f=q[d],f.el._drag={},k(\"snap.drag.end.\"+f.el.id,f.end_scope||f.start_scope||f.move_scope||f.el,b);q=[]};for(y=v.length;y--;)(function(d){a[d]=A[d]=function(e,f){a.is(e,\"function\")&&(this.events=this.events||[],this.events.push({name:d,\n", + "f:e,unbind:b(this.node||document,d,e,f||this)}));return this};a[\"un\"+d]=A[\"un\"+d]=function(a){for(var b=this.events||[],e=b.length;e--;)if(b[e].name==d&&(b[e].f==a||!a)){b[e].unbind();b.splice(e,1);!b.length&&delete this.events;break}return this}})(v[y]);A.hover=function(a,b,d,e){return this.mouseover(a,d).mouseout(b,e||d)};A.unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};var r=[];A.drag=function(b,d,f,h,n,p){function u(r,v,w){(r.originalEvent||r).preventDefault();this._drag.x=v;\n", + "this._drag.y=w;this._drag.id=r.identifier;!q.length&&a.mousemove(e).mouseup(l);q.push({el:this,move_scope:h,start_scope:n,end_scope:p});d&&k.on(\"snap.drag.start.\"+this.id,d);b&&k.on(\"snap.drag.move.\"+this.id,b);f&&k.on(\"snap.drag.end.\"+this.id,f);k(\"snap.drag.start.\"+this.id,n||h||this,v,w,r)}if(!arguments.length){var v;return this.drag(function(a,b){this.attr({transform:v+(v?\"T\":\"t\")+[a,b]})},function(){v=this.transform().local})}this._drag={};r.push({el:this,start:u});this.mousedown(u);return this};\n", + "A.undrag=function(){for(var b=r.length;b--;)r[b].el==this&&(this.unmousedown(r[b].start),r.splice(b,1),k.unbind(\"snap.drag.*.\"+this.id));!r.length&&a.unmousemove(e).unmouseup(l);return this}});C.plugin(function(a,v,y,C){y=y.prototype;var A=/^\\s*url\\((.+)\\)/,w=String,z=a._.$;a.filter={};y.filter=function(d){var f=this;\"svg\"!=f.type&&(f=f.paper);d=a.parse(w(d));var k=a._.id(),u=z(\"filter\");z(u,{id:k,filterUnits:\"userSpaceOnUse\"});u.appendChild(d.node);f.defs.appendChild(u);return new v(u)};k.on(\"snap.util.getattr.filter\",\n", + "function(){k.stop();var d=z(this.node,\"filter\");if(d)return(d=w(d).match(A))&&a.select(d[1])});k.on(\"snap.util.attr.filter\",function(d){if(d instanceof v&&\"filter\"==d.type){k.stop();var f=d.node.id;f||(z(d.node,{id:d.id}),f=d.id);z(this.node,{filter:a.url(f)})}d&&\"none\"!=d||(k.stop(),this.node.removeAttribute(\"filter\"))});a.filter.blur=function(d,f){null==d&&(d=2);return a.format('<feGaussianBlur stdDeviation=\"{def}\"/>',{def:null==f?d:[d,f]})};a.filter.blur.toString=function(){return this()};a.filter.shadow=\n", + "function(d,f,k,u,p){\"string\"==typeof k&&(p=u=k,k=4);\"string\"!=typeof u&&(p=u,u=\"#000\");null==k&&(k=4);null==p&&(p=1);null==d&&(d=0,f=2);null==f&&(f=d);u=a.color(u||\"#000\");return a.format('<feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"{blur}\"/><feOffset dx=\"{dx}\" dy=\"{dy}\" result=\"offsetblur\"/><feFlood flood-color=\"{color}\"/><feComposite in2=\"offsetblur\" operator=\"in\"/><feComponentTransfer><feFuncA type=\"linear\" slope=\"{opacity}\"/></feComponentTransfer><feMerge><feMergeNode/><feMergeNode in=\"SourceGraphic\"/></feMerge>',\n", + "{color:u,dx:d,dy:f,blur:k,opacity:p})};a.filter.shadow.toString=function(){return this()};a.filter.grayscale=function(d){null==d&&(d=1);return a.format('<feColorMatrix type=\"matrix\" values=\"{a} {b} {c} 0 0 {d} {e} {f} 0 0 {g} {b} {h} 0 0 0 0 0 1 0\"/>',{a:0.2126+0.7874*(1-d),b:0.7152-0.7152*(1-d),c:0.0722-0.0722*(1-d),d:0.2126-0.2126*(1-d),e:0.7152+0.2848*(1-d),f:0.0722-0.0722*(1-d),g:0.2126-0.2126*(1-d),h:0.0722+0.9278*(1-d)})};a.filter.grayscale.toString=function(){return this()};a.filter.sepia=\n", + "function(d){null==d&&(d=1);return a.format('<feColorMatrix type=\"matrix\" values=\"{a} {b} {c} 0 0 {d} {e} {f} 0 0 {g} {h} {i} 0 0 0 0 0 1 0\"/>',{a:0.393+0.607*(1-d),b:0.769-0.769*(1-d),c:0.189-0.189*(1-d),d:0.349-0.349*(1-d),e:0.686+0.314*(1-d),f:0.168-0.168*(1-d),g:0.272-0.272*(1-d),h:0.534-0.534*(1-d),i:0.131+0.869*(1-d)})};a.filter.sepia.toString=function(){return this()};a.filter.saturate=function(d){null==d&&(d=1);return a.format('<feColorMatrix type=\"saturate\" values=\"{amount}\"/>',{amount:1-\n", + "d})};a.filter.saturate.toString=function(){return this()};a.filter.hueRotate=function(d){return a.format('<feColorMatrix type=\"hueRotate\" values=\"{angle}\"/>',{angle:d||0})};a.filter.hueRotate.toString=function(){return this()};a.filter.invert=function(d){null==d&&(d=1);return a.format('<feComponentTransfer><feFuncR type=\"table\" tableValues=\"{amount} {amount2}\"/><feFuncG type=\"table\" tableValues=\"{amount} {amount2}\"/><feFuncB type=\"table\" tableValues=\"{amount} {amount2}\"/></feComponentTransfer>',{amount:d,\n", + "amount2:1-d})};a.filter.invert.toString=function(){return this()};a.filter.brightness=function(d){null==d&&(d=1);return a.format('<feComponentTransfer><feFuncR type=\"linear\" slope=\"{amount}\"/><feFuncG type=\"linear\" slope=\"{amount}\"/><feFuncB type=\"linear\" slope=\"{amount}\"/></feComponentTransfer>',{amount:d})};a.filter.brightness.toString=function(){return this()};a.filter.contrast=function(d){null==d&&(d=1);return a.format('<feComponentTransfer><feFuncR type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/><feFuncG type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/><feFuncB type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/></feComponentTransfer>',\n", + "{amount:d,amount2:0.5-d/2})};a.filter.contrast.toString=function(){return this()}});return C});\n", + "\n", + "]]> </script>\n", + "</svg>\n" + ], + "text/plain": [ + "Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), Compose.UnitBox{Float64,Float64,Float64,Float64}(-1.2, -1.2, 2.4, 2.4, 0.0mm, 0.0mm, 0.0mm, 0.0mm), nothing, nothing, nothing, List([Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.LinePrimitive}(Compose.LinePrimitive[Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.9055179626946348cx, -0.015327511771497975cy), (0.10254599595431403cx, -0.004194395087874463cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.9726174984022002cx, 0.07379905786545382cy), (0.8524151020155163cx, 0.4707931125210726cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.3205965923109369cx, -0.9106557381905526cy), (0.03882390517517571cx, -0.0922286739970505cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.9081029217123578cx, 0.21633066379097596cy), (-0.08383311963869336cx, 0.01910418555682785cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.08581966463742435cx, 0.050805639170215355cy), (0.7472768944292412cx, 0.5075396137004773cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.05494558143630249cx, -0.07330010139687326cy), (-0.6350695485917968cx, -0.7216119113037657cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.01609823126742584cx, 0.08846524575930155cy), (-0.23303903333095669cx, 0.9086503420530954cy)])], Symbol(\"\"))]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(1.1338934190276817mm)]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.8274509803921568,0.8274509803921568,0.8274509803921568,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(1.1338934190276817mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.8274509803921568,0.8274509803921568,0.8274509803921568,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(4.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}}(Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}[Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((1.0cx, -0.016637494671769337cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.3513565388371638cx, -1.0cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-1.0cx, 0.23831926153540683cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.008063958648948821cx, -0.002884412187603047cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.8250326004177166cx, 0.5612296650582957cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-0.698079088677048cx, -0.7920276005130359cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-0.2572012232473313cx, 1.0cy), 0.03779644730092272w)], Symbol(\"\"))]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(0.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.25098039215686274,0.8784313725490196,0.8156862745098039,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}}(Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}[Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((1.0cx, -0.016637494671769337cy), \"1\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.3513565388371638cx, -1.0cy), \"2\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-1.0cx, 0.23831926153540683cy), \"3\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.008063958648948821cx, -0.002884412187603047cy), \"4\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.8250326004177166cx, 0.5612296650582957cy), \"5\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.698079088677048cx, -0.7920276005130359cy), \"6\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.2572012232473313cx, 1.0cy), \"7\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm))], Symbol(\"\"))]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(4.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\"))]), List([]), List([]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\"))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 0.0 0.0 1.0 0.0 0.0 0.0]\n" + ] + } + ], + "source": [ + "display_S(held_and_karp_2(exercise))" ] }, { @@ -739,7 +1739,7 @@ "Whilst column generation based techniques work well on wide graphs, on smaller ones we may want to use a different method.\n", "\n", "Here we use dynamical programming to implement the Bellman-Held-Karp algorithm. \n", - "It works well on small graph, but scales terribly because of its exponential complexity $O(2^n n^2)$ in time (and $O(2^n n)$ in space)" + "It works well on small graphs, but scales terribly because of its exponential complexity $O(2^n n^2)$ in time (and $O(2^n n)$ in space)." ] }, { @@ -748,8 +1748,95 @@ "metadata": {}, "outputs": [], "source": [ - "function bellman_held_karp()\n", + "function dp_held_karp(W,n)\n", + " C = Dict{Tuple{Array,Integer},Integer}()\n", + "\n", + " for k in collect(2:n)\n", + " C[(Array([k]),k)]= collect(W[1,k])[1]\n", + " end\n", + " \n", + " for s in 2:(n-1), S in collect(combinations(collect(2:n),s)), k in S\n", + " Sp = [s for s in S if (s!=k)]\n", + " C[(S,k)] = collect(typemax(Int64))[1]\n", + " for m in S\n", + " if ( m != k ) && ( C[(S,k)] >= C[(Sp,m)] + W[m,k] )\n", + " C[(S,k)] = C[(Sp,m)] + W[m,k]\n", + " end\n", + " end\n", + " end\n", + " \n", + " opt = Inf\n", + " \n", + " for k in 2:n\n", + " if opt >= C[(collect(2:n),k)] + W[k,1]\n", + " opt = C[(collect(2:n),k)] + W[k,1]\n", + " end\n", + " end\n", + " \n", + " return opt\n", + "end\n", + "\n", + "function getPath(W,n,opt)\n", + " println(\"Valeur optimale : \",opt)\n", + " S = collect(permutations(collect(1:n),n))\n", + " idgood = Integer[]\n", + " Sp = [Integer[]]\n", + " M=Array{Integer,2}[]\n", + "\n", + " for i in 1:length(S)\n", + " if (sommeTour(W,S[i],opt))\n", + " append!(idgood,i)\n", + " end\n", + " end\n", + "\n", + " for index in idgood\n", + " if !(matriceAdj(S[index]) in M)\n", + " append!(M,[matriceAdj(S[index])])\n", + " append!(Sp,[S[index]])\n", + " end\n", + " end\n", + " println(\"Circuits optimaux : \")\n", + " for i in 1:length(Sp)\n", + " if length(Sp[i]) != 0\n", + " println(Sp[i])\n", + " end \n", + " end\n", " \n", + " return M\n", + "end\n", + "\n", + "function sommeTour(W,L,opt)\n", + " somme = 0\n", + " n = length(L)\n", + " for i in 1:(n-1)\n", + " somme+= W[L[i] ,L[i+1]]\n", + " end\n", + " somme+= W[L[n],L[1]]\n", + " return (somme==opt)\n", + "end\n", + "function matriceAdj(L)\n", + " n = length(L)\n", + " Madj = zeros(Integer,n,n)\n", + " for i in 1:(n-1)\n", + " Madj[L[i],L[i+1]] = 1\n", + " Madj[L[i+1],L[i]] = 1\n", + " end\n", + " Madj[L[n],L[1]] = 1\n", + " Madj[L[1],L[n]] = 1\n", + " return Madj\n", + "end\n", + "\n", + "bellman_held_karp(W) = getPath(W, size(W,1), dp_held_karp(W, size(W,1)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for M in bellman_held_karp(example)\n", + " display_S(M)\n", "end" ] }, @@ -759,8 +1846,9 @@ "metadata": {}, "outputs": [], "source": [ - "display(bellman_held_karp(W))\n", - "display(bellman_held_karp(W2))" + "for M in bellman_held_karp(exercise)\n", + " display_S(M)\n", + "end" ] }, { @@ -785,27 +1873,14 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { - "collapsed": true, "jupyter": { - "outputs_hidden": true, "source_hidden": true }, "tags": [] }, - "outputs": [ - { - "data": { - "text/plain": [ - "columnGeneration (generic function with 1 method)" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "function columnGeneration(W)\n", " \n", diff --git a/heldAndKarp.ipynb b/heldAndKarp.ipynb index 3a86dce..50f404e 100644 --- a/heldAndKarp.ipynb +++ b/heldAndKarp.ipynb @@ -69,7 +69,7 @@ "source": [ "using LinearAlgebra # Basic algebra structures & functions\n", "using JuMP # Modeling language\n", - "using GLPK, Cbc # LP and MIP solvers\n", + "using Cbc # MIP solver\n", "using LightGraphs # Efficient graph structures & functions\n", "using GraphPlot # Graph visualization\n", "using Combinatorics # Combinatorials\n", @@ -424,12 +424,22 @@ "metadata": {}, "source": [ "The associated subsidiary problem is the following\n", - "\n" + "\n", + "\n", + "$$\\begin{array}{r l}\n", + "\\min c_x - \\pi^{\\dagger} D_x - \\mu \\\\\n", + "0 \\le x_e \\le 1 & e \\in E \\\\\n", + "x_e \\in \\mathbb{Z} & e \\in E \\\\\n", + "\\sum_{e \\in \\delta(1)} x_e = 2 \\\\\n", + "\\sum_{e \\in E [X] } x_e \\le |X| - 1 & X \\subseteq \\{2,...,n\\}, X \\ne \\emptyset \\\\\n", + "\\sum_{e \\in E} x_e = n \\\\\n", + "%\\sum_{e \\in \\delta(v)} x_e = 2 & v \\in \\{2,...,n\\} \\\\\n", + "\\end{array}$$" ] }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -438,7 +448,7 @@ "SP (generic function with 1 method)" ] }, - "execution_count": 20, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -552,22 +562,11 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": null, "metadata": { "tags": [] }, - "outputs": [ - { - "data": { - "text/plain": [ - "column_generation (generic function with 1 method)" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "function column_generation(W; max_iter = 1000)\n", " n = size(W, 1)\n", @@ -619,798 +618,63 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "display_S(column_generation(example))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "display_S(column_generation(exercise))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Held and Karp algorithm - attempt 1\n", + "\n", + "This is the part where we implement the Held and Karp algorithm as described in J.E. Mitchell's slides using Kruskal's algorithm to solve the minimum spanning tree problem. Since the goal of this algorithm is allegedly to provide a new column to the master problem, there is no guarantee that it gives an optimal solution.\n", + "\n", + "Even though this approach seems to be flawed, the example is easily solved ; however the exercise seems to alternate between two identical states. \n", + "This may be due to the update rule of $\\lambda$, results may vary by modifying it." + ] + }, + { + "cell_type": "code", + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { - "image/svg+xml": [ - "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n", - "<svg xmlns=\"http://www.w3.org/2000/svg\"\n", - " xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n", - " version=\"1.2\"\n", - " width=\"141.42mm\" height=\"100mm\" viewBox=\"0 0 141.42 100\"\n", - " stroke=\"none\"\n", - " fill=\"#000000\"\n", - " stroke-width=\"0.3\"\n", - " font-size=\"3.88\"\n", - ">\n", - "<defs>\n", - " <marker id=\"arrow\" markerWidth=\"15\" markerHeight=\"7\" refX=\"5\" refY=\"3.5\" orient=\"auto\" markerUnits=\"strokeWidth\">\n", - " <path d=\"M0,0 L15,3.5 L0,7 z\" stroke=\"context-stroke\" fill=\"context-stroke\"/>\n", - " </marker>\n", - "</defs>\n", - "<g stroke-width=\"1.22\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#D3D3D3\" id=\"img-0b58e42c-1\">\n", - " <g transform=\"translate(103.06,79.89)\">\n", - " <path fill=\"none\" d=\"M21.48,-9.52 L-21.48,9.52 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(126.96,47.14)\">\n", - " <path fill=\"none\" d=\"M2.14,16.74 L-2.14,-16.74 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(46.79,82.62)\">\n", - " <path fill=\"none\" d=\"M24.18,7.36 L-24.18,-7.36 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(95.03,17.25)\">\n", - " <path fill=\"none\" d=\"M23.72,7.23 L-23.72,-7.23 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(38.78,20.28)\">\n", - " <path fill=\"none\" d=\"M21.9,-9.69 L-21.9,9.69 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(14.44,52.9)\">\n", - " <path fill=\"none\" d=\"M2.11,16.45 L-2.11,-16.45 \" class=\"primitive\"/>\n", - " </g>\n", - "</g>\n", - "<g stroke-width=\"1.22\" stroke=\"#D3D3D3\" id=\"img-0b58e42c-2\">\n", - "</g>\n", - "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-0b58e42c-3\">\n", - "</g>\n", - "<g stroke-width=\"0\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#40E0D0\" id=\"img-0b58e42c-4\">\n", - " <g transform=\"translate(129.64,68.12)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(76.49,91.67)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(124.27,26.17)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(65.78,8.33)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(17.09,73.58)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(11.79,32.22)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - "</g>\n", - "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-0b58e42c-5\">\n", - " <g transform=\"translate(129.64,68.12)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(76.49,91.67)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">2</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(124.27,26.17)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">3</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(65.78,8.33)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">4</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(17.09,73.58)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(11.79,32.22)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">6</text>\n", - " </g>\n", - " </g>\n", - "</g>\n", - "</svg>\n" - ], - "text/html": [ - "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n", - "<svg xmlns=\"http://www.w3.org/2000/svg\"\n", - " xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n", - " version=\"1.2\"\n", - " width=\"141.42mm\" height=\"100mm\" viewBox=\"0 0 141.42 100\"\n", - " stroke=\"none\"\n", - " fill=\"#000000\"\n", - " stroke-width=\"0.3\"\n", - " font-size=\"3.88\"\n", - "\n", - " id=\"img-75411858\">\n", - "<defs>\n", - " <marker id=\"arrow\" markerWidth=\"15\" markerHeight=\"7\" refX=\"5\" refY=\"3.5\" orient=\"auto\" markerUnits=\"strokeWidth\">\n", - " <path d=\"M0,0 L15,3.5 L0,7 z\" stroke=\"context-stroke\" fill=\"context-stroke\"/>\n", - " </marker>\n", - "</defs>\n", - "<g stroke-width=\"1.22\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#D3D3D3\" id=\"img-75411858-1\">\n", - " <g transform=\"translate(103.06,79.89)\">\n", - " <path fill=\"none\" d=\"M21.48,-9.52 L-21.48,9.52 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(126.96,47.14)\">\n", - " <path fill=\"none\" d=\"M2.14,16.74 L-2.14,-16.74 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(46.79,82.62)\">\n", - " <path fill=\"none\" d=\"M24.18,7.36 L-24.18,-7.36 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(95.03,17.25)\">\n", - " <path fill=\"none\" d=\"M23.72,7.23 L-23.72,-7.23 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(38.78,20.28)\">\n", - " <path fill=\"none\" d=\"M21.9,-9.69 L-21.9,9.69 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(14.44,52.9)\">\n", - " <path fill=\"none\" d=\"M2.11,16.45 L-2.11,-16.45 \" class=\"primitive\"/>\n", - " </g>\n", - "</g>\n", - "<g stroke-width=\"1.22\" stroke=\"#D3D3D3\" id=\"img-75411858-2\">\n", - "</g>\n", - "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-75411858-3\">\n", - "</g>\n", - "<g stroke-width=\"0\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#40E0D0\" id=\"img-75411858-4\">\n", - " <g transform=\"translate(129.64,68.12)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(76.49,91.67)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(124.27,26.17)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(65.78,8.33)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(17.09,73.58)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(11.79,32.22)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - "</g>\n", - "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-75411858-5\">\n", - " <g transform=\"translate(129.64,68.12)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(76.49,91.67)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">2</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(124.27,26.17)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">3</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(65.78,8.33)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">4</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(17.09,73.58)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(11.79,32.22)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">6</text>\n", - " </g>\n", - " </g>\n", - "</g>\n", - "<script> <![CDATA[\n", - "(function(N){var k=/[\\.\\/]/,L=/\\s*,\\s*/,C=function(a,d){return a-d},a,v,y={n:{}},M=function(){for(var a=0,d=this.length;a<d;a++)if(\"undefined\"!=typeof this[a])return this[a]},A=function(){for(var a=this.length;--a;)if(\"undefined\"!=typeof this[a])return this[a]},w=function(k,d){k=String(k);var f=v,n=Array.prototype.slice.call(arguments,2),u=w.listeners(k),p=0,b,q=[],e={},l=[],r=a;l.firstDefined=M;l.lastDefined=A;a=k;for(var s=v=0,x=u.length;s<x;s++)\"zIndex\"in u[s]&&(q.push(u[s].zIndex),0>u[s].zIndex&&\n", - "(e[u[s].zIndex]=u[s]));for(q.sort(C);0>q[p];)if(b=e[q[p++] ],l.push(b.apply(d,n)),v)return v=f,l;for(s=0;s<x;s++)if(b=u[s],\"zIndex\"in b)if(b.zIndex==q[p]){l.push(b.apply(d,n));if(v)break;do if(p++,(b=e[q[p] ])&&l.push(b.apply(d,n)),v)break;while(b)}else e[b.zIndex]=b;else if(l.push(b.apply(d,n)),v)break;v=f;a=r;return l};w._events=y;w.listeners=function(a){a=a.split(k);var d=y,f,n,u,p,b,q,e,l=[d],r=[];u=0;for(p=a.length;u<p;u++){e=[];b=0;for(q=l.length;b<q;b++)for(d=l[b].n,f=[d[a[u] ],d[\"*\"] ],n=2;n--;)if(d=\n", - "f[n])e.push(d),r=r.concat(d.f||[]);l=e}return r};w.on=function(a,d){a=String(a);if(\"function\"!=typeof d)return function(){};for(var f=a.split(L),n=0,u=f.length;n<u;n++)(function(a){a=a.split(k);for(var b=y,f,e=0,l=a.length;e<l;e++)b=b.n,b=b.hasOwnProperty(a[e])&&b[a[e] ]||(b[a[e] ]={n:{}});b.f=b.f||[];e=0;for(l=b.f.length;e<l;e++)if(b.f[e]==d){f=!0;break}!f&&b.f.push(d)})(f[n]);return function(a){+a==+a&&(d.zIndex=+a)}};w.f=function(a){var d=[].slice.call(arguments,1);return function(){w.apply(null,\n", - "[a,null].concat(d).concat([].slice.call(arguments,0)))}};w.stop=function(){v=1};w.nt=function(k){return k?(new RegExp(\"(?:\\\\.|\\\\/|^)\"+k+\"(?:\\\\.|\\\\/|$)\")).test(a):a};w.nts=function(){return a.split(k)};w.off=w.unbind=function(a,d){if(a){var f=a.split(L);if(1<f.length)for(var n=0,u=f.length;n<u;n++)w.off(f[n],d);else{for(var f=a.split(k),p,b,q,e,l=[y],n=0,u=f.length;n<u;n++)for(e=0;e<l.length;e+=q.length-2){q=[e,1];p=l[e].n;if(\"*\"!=f[n])p[f[n] ]&&q.push(p[f[n] ]);else for(b in p)p.hasOwnProperty(b)&&\n", - "q.push(p[b]);l.splice.apply(l,q)}n=0;for(u=l.length;n<u;n++)for(p=l[n];p.n;){if(d){if(p.f){e=0;for(f=p.f.length;e<f;e++)if(p.f[e]==d){p.f.splice(e,1);break}!p.f.length&&delete p.f}for(b in p.n)if(p.n.hasOwnProperty(b)&&p.n[b].f){q=p.n[b].f;e=0;for(f=q.length;e<f;e++)if(q[e]==d){q.splice(e,1);break}!q.length&&delete p.n[b].f}}else for(b in delete p.f,p.n)p.n.hasOwnProperty(b)&&p.n[b].f&&delete p.n[b].f;p=p.n}}}else w._events=y={n:{}}};w.once=function(a,d){var f=function(){w.unbind(a,f);return d.apply(this,\n", - "arguments)};return w.on(a,f)};w.version=\"0.4.2\";w.toString=function(){return\"You are running Eve 0.4.2\"};\"undefined\"!=typeof module&&module.exports?module.exports=w:\"function\"===typeof define&&define.amd?define(\"eve\",[],function(){return w}):N.eve=w})(this);\n", - "(function(N,k){\"function\"===typeof define&&define.amd?define(\"Snap.svg\",[\"eve\"],function(L){return k(N,L)}):k(N,N.eve)})(this,function(N,k){var L=function(a){var k={},y=N.requestAnimationFrame||N.webkitRequestAnimationFrame||N.mozRequestAnimationFrame||N.oRequestAnimationFrame||N.msRequestAnimationFrame||function(a){setTimeout(a,16)},M=Array.isArray||function(a){return a instanceof Array||\"[object Array]\"==Object.prototype.toString.call(a)},A=0,w=\"M\"+(+new Date).toString(36),z=function(a){if(null==\n", - "a)return this.s;var b=this.s-a;this.b+=this.dur*b;this.B+=this.dur*b;this.s=a},d=function(a){if(null==a)return this.spd;this.spd=a},f=function(a){if(null==a)return this.dur;this.s=this.s*a/this.dur;this.dur=a},n=function(){delete k[this.id];this.update();a(\"mina.stop.\"+this.id,this)},u=function(){this.pdif||(delete k[this.id],this.update(),this.pdif=this.get()-this.b)},p=function(){this.pdif&&(this.b=this.get()-this.pdif,delete this.pdif,k[this.id]=this)},b=function(){var a;if(M(this.start)){a=[];\n", - "for(var b=0,e=this.start.length;b<e;b++)a[b]=+this.start[b]+(this.end[b]-this.start[b])*this.easing(this.s)}else a=+this.start+(this.end-this.start)*this.easing(this.s);this.set(a)},q=function(){var l=0,b;for(b in k)if(k.hasOwnProperty(b)){var e=k[b],f=e.get();l++;e.s=(f-e.b)/(e.dur/e.spd);1<=e.s&&(delete k[b],e.s=1,l--,function(b){setTimeout(function(){a(\"mina.finish.\"+b.id,b)})}(e));e.update()}l&&y(q)},e=function(a,r,s,x,G,h,J){a={id:w+(A++).toString(36),start:a,end:r,b:s,s:0,dur:x-s,spd:1,get:G,\n", - "set:h,easing:J||e.linear,status:z,speed:d,duration:f,stop:n,pause:u,resume:p,update:b};k[a.id]=a;r=0;for(var K in k)if(k.hasOwnProperty(K)&&(r++,2==r))break;1==r&&y(q);return a};e.time=Date.now||function(){return+new Date};e.getById=function(a){return k[a]||null};e.linear=function(a){return a};e.easeout=function(a){return Math.pow(a,1.7)};e.easein=function(a){return Math.pow(a,0.48)};e.easeinout=function(a){if(1==a)return 1;if(0==a)return 0;var b=0.48-a/1.04,e=Math.sqrt(0.1734+b*b);a=e-b;a=Math.pow(Math.abs(a),\n", - "1/3)*(0>a?-1:1);b=-e-b;b=Math.pow(Math.abs(b),1/3)*(0>b?-1:1);a=a+b+0.5;return 3*(1-a)*a*a+a*a*a};e.backin=function(a){return 1==a?1:a*a*(2.70158*a-1.70158)};e.backout=function(a){if(0==a)return 0;a-=1;return a*a*(2.70158*a+1.70158)+1};e.elastic=function(a){return a==!!a?a:Math.pow(2,-10*a)*Math.sin(2*(a-0.075)*Math.PI/0.3)+1};e.bounce=function(a){a<1/2.75?a*=7.5625*a:a<2/2.75?(a-=1.5/2.75,a=7.5625*a*a+0.75):a<2.5/2.75?(a-=2.25/2.75,a=7.5625*a*a+0.9375):(a-=2.625/2.75,a=7.5625*a*a+0.984375);return a};\n", - "return N.mina=e}(\"undefined\"==typeof k?function(){}:k),C=function(){function a(c,t){if(c){if(c.tagName)return x(c);if(y(c,\"array\")&&a.set)return a.set.apply(a,c);if(c instanceof e)return c;if(null==t)return c=G.doc.querySelector(c),x(c)}return new s(null==c?\"100%\":c,null==t?\"100%\":t)}function v(c,a){if(a){\"#text\"==c&&(c=G.doc.createTextNode(a.text||\"\"));\"string\"==typeof c&&(c=v(c));if(\"string\"==typeof a)return\"xlink:\"==a.substring(0,6)?c.getAttributeNS(m,a.substring(6)):\"xml:\"==a.substring(0,4)?c.getAttributeNS(la,\n", - "a.substring(4)):c.getAttribute(a);for(var da in a)if(a[h](da)){var b=J(a[da]);b?\"xlink:\"==da.substring(0,6)?c.setAttributeNS(m,da.substring(6),b):\"xml:\"==da.substring(0,4)?c.setAttributeNS(la,da.substring(4),b):c.setAttribute(da,b):c.removeAttribute(da)}}else c=G.doc.createElementNS(la,c);return c}function y(c,a){a=J.prototype.toLowerCase.call(a);return\"finite\"==a?isFinite(c):\"array\"==a&&(c instanceof Array||Array.isArray&&Array.isArray(c))?!0:\"null\"==a&&null===c||a==typeof c&&null!==c||\"object\"==\n", - "a&&c===Object(c)||$.call(c).slice(8,-1).toLowerCase()==a}function M(c){if(\"function\"==typeof c||Object(c)!==c)return c;var a=new c.constructor,b;for(b in c)c[h](b)&&(a[b]=M(c[b]));return a}function A(c,a,b){function m(){var e=Array.prototype.slice.call(arguments,0),f=e.join(\"\\u2400\"),d=m.cache=m.cache||{},l=m.count=m.count||[];if(d[h](f)){a:for(var e=l,l=f,B=0,H=e.length;B<H;B++)if(e[B]===l){e.push(e.splice(B,1)[0]);break a}return b?b(d[f]):d[f]}1E3<=l.length&&delete d[l.shift()];l.push(f);d[f]=c.apply(a,\n", - "e);return b?b(d[f]):d[f]}return m}function w(c,a,b,m,e,f){return null==e?(c-=b,a-=m,c||a?(180*I.atan2(-a,-c)/C+540)%360:0):w(c,a,e,f)-w(b,m,e,f)}function z(c){return c%360*C/180}function d(c){var a=[];c=c.replace(/(?:^|\\s)(\\w+)\\(([^)]+)\\)/g,function(c,b,m){m=m.split(/\\s*,\\s*|\\s+/);\"rotate\"==b&&1==m.length&&m.push(0,0);\"scale\"==b&&(2<m.length?m=m.slice(0,2):2==m.length&&m.push(0,0),1==m.length&&m.push(m[0],0,0));\"skewX\"==b?a.push([\"m\",1,0,I.tan(z(m[0])),1,0,0]):\"skewY\"==b?a.push([\"m\",1,I.tan(z(m[0])),\n", - "0,1,0,0]):a.push([b.charAt(0)].concat(m));return c});return a}function f(c,t){var b=O(c),m=new a.Matrix;if(b)for(var e=0,f=b.length;e<f;e++){var h=b[e],d=h.length,B=J(h[0]).toLowerCase(),H=h[0]!=B,l=H?m.invert():0,E;\"t\"==B&&2==d?m.translate(h[1],0):\"t\"==B&&3==d?H?(d=l.x(0,0),B=l.y(0,0),H=l.x(h[1],h[2]),l=l.y(h[1],h[2]),m.translate(H-d,l-B)):m.translate(h[1],h[2]):\"r\"==B?2==d?(E=E||t,m.rotate(h[1],E.x+E.width/2,E.y+E.height/2)):4==d&&(H?(H=l.x(h[2],h[3]),l=l.y(h[2],h[3]),m.rotate(h[1],H,l)):m.rotate(h[1],\n", - "h[2],h[3])):\"s\"==B?2==d||3==d?(E=E||t,m.scale(h[1],h[d-1],E.x+E.width/2,E.y+E.height/2)):4==d?H?(H=l.x(h[2],h[3]),l=l.y(h[2],h[3]),m.scale(h[1],h[1],H,l)):m.scale(h[1],h[1],h[2],h[3]):5==d&&(H?(H=l.x(h[3],h[4]),l=l.y(h[3],h[4]),m.scale(h[1],h[2],H,l)):m.scale(h[1],h[2],h[3],h[4])):\"m\"==B&&7==d&&m.add(h[1],h[2],h[3],h[4],h[5],h[6])}return m}function n(c,t){if(null==t){var m=!0;t=\"linearGradient\"==c.type||\"radialGradient\"==c.type?c.node.getAttribute(\"gradientTransform\"):\"pattern\"==c.type?c.node.getAttribute(\"patternTransform\"):\n", - "c.node.getAttribute(\"transform\");if(!t)return new a.Matrix;t=d(t)}else t=a._.rgTransform.test(t)?J(t).replace(/\\.{3}|\\u2026/g,c._.transform||aa):d(t),y(t,\"array\")&&(t=a.path?a.path.toString.call(t):J(t)),c._.transform=t;var b=f(t,c.getBBox(1));if(m)return b;c.matrix=b}function u(c){c=c.node.ownerSVGElement&&x(c.node.ownerSVGElement)||c.node.parentNode&&x(c.node.parentNode)||a.select(\"svg\")||a(0,0);var t=c.select(\"defs\"),t=null==t?!1:t.node;t||(t=r(\"defs\",c.node).node);return t}function p(c){return c.node.ownerSVGElement&&\n", - "x(c.node.ownerSVGElement)||a.select(\"svg\")}function b(c,a,m){function b(c){if(null==c)return aa;if(c==+c)return c;v(B,{width:c});try{return B.getBBox().width}catch(a){return 0}}function h(c){if(null==c)return aa;if(c==+c)return c;v(B,{height:c});try{return B.getBBox().height}catch(a){return 0}}function e(b,B){null==a?d[b]=B(c.attr(b)||0):b==a&&(d=B(null==m?c.attr(b)||0:m))}var f=p(c).node,d={},B=f.querySelector(\".svg---mgr\");B||(B=v(\"rect\"),v(B,{x:-9E9,y:-9E9,width:10,height:10,\"class\":\"svg---mgr\",\n", - "fill:\"none\"}),f.appendChild(B));switch(c.type){case \"rect\":e(\"rx\",b),e(\"ry\",h);case \"image\":e(\"width\",b),e(\"height\",h);case \"text\":e(\"x\",b);e(\"y\",h);break;case \"circle\":e(\"cx\",b);e(\"cy\",h);e(\"r\",b);break;case \"ellipse\":e(\"cx\",b);e(\"cy\",h);e(\"rx\",b);e(\"ry\",h);break;case \"line\":e(\"x1\",b);e(\"x2\",b);e(\"y1\",h);e(\"y2\",h);break;case \"marker\":e(\"refX\",b);e(\"markerWidth\",b);e(\"refY\",h);e(\"markerHeight\",h);break;case \"radialGradient\":e(\"fx\",b);e(\"fy\",h);break;case \"tspan\":e(\"dx\",b);e(\"dy\",h);break;default:e(a,\n", - "b)}f.removeChild(B);return d}function q(c){y(c,\"array\")||(c=Array.prototype.slice.call(arguments,0));for(var a=0,b=0,m=this.node;this[a];)delete this[a++];for(a=0;a<c.length;a++)\"set\"==c[a].type?c[a].forEach(function(c){m.appendChild(c.node)}):m.appendChild(c[a].node);for(var h=m.childNodes,a=0;a<h.length;a++)this[b++]=x(h[a]);return this}function e(c){if(c.snap in E)return E[c.snap];var a=this.id=V(),b;try{b=c.ownerSVGElement}catch(m){}this.node=c;b&&(this.paper=new s(b));this.type=c.tagName;this.anims=\n", - "{};this._={transform:[]};c.snap=a;E[a]=this;\"g\"==this.type&&(this.add=q);if(this.type in{g:1,mask:1,pattern:1})for(var e in s.prototype)s.prototype[h](e)&&(this[e]=s.prototype[e])}function l(c){this.node=c}function r(c,a){var b=v(c);a.appendChild(b);return x(b)}function s(c,a){var b,m,f,d=s.prototype;if(c&&\"svg\"==c.tagName){if(c.snap in E)return E[c.snap];var l=c.ownerDocument;b=new e(c);m=c.getElementsByTagName(\"desc\")[0];f=c.getElementsByTagName(\"defs\")[0];m||(m=v(\"desc\"),m.appendChild(l.createTextNode(\"Created with Snap\")),\n", - "b.node.appendChild(m));f||(f=v(\"defs\"),b.node.appendChild(f));b.defs=f;for(var ca in d)d[h](ca)&&(b[ca]=d[ca]);b.paper=b.root=b}else b=r(\"svg\",G.doc.body),v(b.node,{height:a,version:1.1,width:c,xmlns:la});return b}function x(c){return!c||c instanceof e||c instanceof l?c:c.tagName&&\"svg\"==c.tagName.toLowerCase()?new s(c):c.tagName&&\"object\"==c.tagName.toLowerCase()&&\"image/svg+xml\"==c.type?new s(c.contentDocument.getElementsByTagName(\"svg\")[0]):new e(c)}a.version=\"0.3.0\";a.toString=function(){return\"Snap v\"+\n", - "this.version};a._={};var G={win:N,doc:N.document};a._.glob=G;var h=\"hasOwnProperty\",J=String,K=parseFloat,U=parseInt,I=Math,P=I.max,Q=I.min,Y=I.abs,C=I.PI,aa=\"\",$=Object.prototype.toString,F=/^\\s*((#[a-f\\d]{6})|(#[a-f\\d]{3})|rgba?\\(\\s*([\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?(?:\\s*,\\s*[\\d\\.]+%?)?)\\s*\\)|hsba?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?%?)\\s*\\)|hsla?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?%?)\\s*\\))\\s*$/i;a._.separator=\n", - "RegExp(\"[,\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]+\");var S=RegExp(\"[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*\"),X={hs:1,rg:1},W=RegExp(\"([a-z])[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)\",\n", - "\"ig\"),ma=RegExp(\"([rstm])[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)\",\"ig\"),Z=RegExp(\"(-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?)[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*\",\n", - "\"ig\"),na=0,ba=\"S\"+(+new Date).toString(36),V=function(){return ba+(na++).toString(36)},m=\"http://www.w3.org/1999/xlink\",la=\"http://www.w3.org/2000/svg\",E={},ca=a.url=function(c){return\"url('#\"+c+\"')\"};a._.$=v;a._.id=V;a.format=function(){var c=/\\{([^\\}]+)\\}/g,a=/(?:(?:^|\\.)(.+?)(?=\\[|\\.|$|\\()|\\[('|\")(.+?)\\2\\])(\\(\\))?/g,b=function(c,b,m){var h=m;b.replace(a,function(c,a,b,m,t){a=a||m;h&&(a in h&&(h=h[a]),\"function\"==typeof h&&t&&(h=h()))});return h=(null==h||h==m?c:h)+\"\"};return function(a,m){return J(a).replace(c,\n", - "function(c,a){return b(c,a,m)})}}();a._.clone=M;a._.cacher=A;a.rad=z;a.deg=function(c){return 180*c/C%360};a.angle=w;a.is=y;a.snapTo=function(c,a,b){b=y(b,\"finite\")?b:10;if(y(c,\"array\"))for(var m=c.length;m--;){if(Y(c[m]-a)<=b)return c[m]}else{c=+c;m=a%c;if(m<b)return a-m;if(m>c-b)return a-m+c}return a};a.getRGB=A(function(c){if(!c||(c=J(c)).indexOf(\"-\")+1)return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:ka};if(\"none\"==c)return{r:-1,g:-1,b:-1,hex:\"none\",toString:ka};!X[h](c.toLowerCase().substring(0,\n", - "2))&&\"#\"!=c.charAt()&&(c=T(c));if(!c)return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:ka};var b,m,e,f,d;if(c=c.match(F)){c[2]&&(e=U(c[2].substring(5),16),m=U(c[2].substring(3,5),16),b=U(c[2].substring(1,3),16));c[3]&&(e=U((d=c[3].charAt(3))+d,16),m=U((d=c[3].charAt(2))+d,16),b=U((d=c[3].charAt(1))+d,16));c[4]&&(d=c[4].split(S),b=K(d[0]),\"%\"==d[0].slice(-1)&&(b*=2.55),m=K(d[1]),\"%\"==d[1].slice(-1)&&(m*=2.55),e=K(d[2]),\"%\"==d[2].slice(-1)&&(e*=2.55),\"rgba\"==c[1].toLowerCase().slice(0,4)&&(f=K(d[3])),\n", - "d[3]&&\"%\"==d[3].slice(-1)&&(f/=100));if(c[5])return d=c[5].split(S),b=K(d[0]),\"%\"==d[0].slice(-1)&&(b/=100),m=K(d[1]),\"%\"==d[1].slice(-1)&&(m/=100),e=K(d[2]),\"%\"==d[2].slice(-1)&&(e/=100),\"deg\"!=d[0].slice(-3)&&\"\\u00b0\"!=d[0].slice(-1)||(b/=360),\"hsba\"==c[1].toLowerCase().slice(0,4)&&(f=K(d[3])),d[3]&&\"%\"==d[3].slice(-1)&&(f/=100),a.hsb2rgb(b,m,e,f);if(c[6])return d=c[6].split(S),b=K(d[0]),\"%\"==d[0].slice(-1)&&(b/=100),m=K(d[1]),\"%\"==d[1].slice(-1)&&(m/=100),e=K(d[2]),\"%\"==d[2].slice(-1)&&(e/=100),\n", - "\"deg\"!=d[0].slice(-3)&&\"\\u00b0\"!=d[0].slice(-1)||(b/=360),\"hsla\"==c[1].toLowerCase().slice(0,4)&&(f=K(d[3])),d[3]&&\"%\"==d[3].slice(-1)&&(f/=100),a.hsl2rgb(b,m,e,f);b=Q(I.round(b),255);m=Q(I.round(m),255);e=Q(I.round(e),255);f=Q(P(f,0),1);c={r:b,g:m,b:e,toString:ka};c.hex=\"#\"+(16777216|e|m<<8|b<<16).toString(16).slice(1);c.opacity=y(f,\"finite\")?f:1;return c}return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:ka}},a);a.hsb=A(function(c,b,m){return a.hsb2rgb(c,b,m).hex});a.hsl=A(function(c,b,m){return a.hsl2rgb(c,\n", - "b,m).hex});a.rgb=A(function(c,a,b,m){if(y(m,\"finite\")){var e=I.round;return\"rgba(\"+[e(c),e(a),e(b),+m.toFixed(2)]+\")\"}return\"#\"+(16777216|b|a<<8|c<<16).toString(16).slice(1)});var T=function(c){var a=G.doc.getElementsByTagName(\"head\")[0]||G.doc.getElementsByTagName(\"svg\")[0];T=A(function(c){if(\"red\"==c.toLowerCase())return\"rgb(255, 0, 0)\";a.style.color=\"rgb(255, 0, 0)\";a.style.color=c;c=G.doc.defaultView.getComputedStyle(a,aa).getPropertyValue(\"color\");return\"rgb(255, 0, 0)\"==c?null:c});return T(c)},\n", - "qa=function(){return\"hsb(\"+[this.h,this.s,this.b]+\")\"},ra=function(){return\"hsl(\"+[this.h,this.s,this.l]+\")\"},ka=function(){return 1==this.opacity||null==this.opacity?this.hex:\"rgba(\"+[this.r,this.g,this.b,this.opacity]+\")\"},D=function(c,b,m){null==b&&y(c,\"object\")&&\"r\"in c&&\"g\"in c&&\"b\"in c&&(m=c.b,b=c.g,c=c.r);null==b&&y(c,string)&&(m=a.getRGB(c),c=m.r,b=m.g,m=m.b);if(1<c||1<b||1<m)c/=255,b/=255,m/=255;return[c,b,m]},oa=function(c,b,m,e){c=I.round(255*c);b=I.round(255*b);m=I.round(255*m);c={r:c,\n", - "g:b,b:m,opacity:y(e,\"finite\")?e:1,hex:a.rgb(c,b,m),toString:ka};y(e,\"finite\")&&(c.opacity=e);return c};a.color=function(c){var b;y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"b\"in c?(b=a.hsb2rgb(c),c.r=b.r,c.g=b.g,c.b=b.b,c.opacity=1,c.hex=b.hex):y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"l\"in c?(b=a.hsl2rgb(c),c.r=b.r,c.g=b.g,c.b=b.b,c.opacity=1,c.hex=b.hex):(y(c,\"string\")&&(c=a.getRGB(c)),y(c,\"object\")&&\"r\"in c&&\"g\"in c&&\"b\"in c&&!(\"error\"in c)?(b=a.rgb2hsl(c),c.h=b.h,c.s=b.s,c.l=b.l,b=a.rgb2hsb(c),c.v=b.b):(c={hex:\"none\"},\n", - "c.r=c.g=c.b=c.h=c.s=c.v=c.l=-1,c.error=1));c.toString=ka;return c};a.hsb2rgb=function(c,a,b,m){y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"b\"in c&&(b=c.b,a=c.s,c=c.h,m=c.o);var e,h,d;c=360*c%360/60;d=b*a;a=d*(1-Y(c%2-1));b=e=h=b-d;c=~~c;b+=[d,a,0,0,a,d][c];e+=[a,d,d,a,0,0][c];h+=[0,0,a,d,d,a][c];return oa(b,e,h,m)};a.hsl2rgb=function(c,a,b,m){y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"l\"in c&&(b=c.l,a=c.s,c=c.h);if(1<c||1<a||1<b)c/=360,a/=100,b/=100;var e,h,d;c=360*c%360/60;d=2*a*(0.5>b?b:1-b);a=d*(1-Y(c%2-1));b=e=\n", - "h=b-d/2;c=~~c;b+=[d,a,0,0,a,d][c];e+=[a,d,d,a,0,0][c];h+=[0,0,a,d,d,a][c];return oa(b,e,h,m)};a.rgb2hsb=function(c,a,b){b=D(c,a,b);c=b[0];a=b[1];b=b[2];var m,e;m=P(c,a,b);e=m-Q(c,a,b);c=((0==e?0:m==c?(a-b)/e:m==a?(b-c)/e+2:(c-a)/e+4)+360)%6*60/360;return{h:c,s:0==e?0:e/m,b:m,toString:qa}};a.rgb2hsl=function(c,a,b){b=D(c,a,b);c=b[0];a=b[1];b=b[2];var m,e,h;m=P(c,a,b);e=Q(c,a,b);h=m-e;c=((0==h?0:m==c?(a-b)/h:m==a?(b-c)/h+2:(c-a)/h+4)+360)%6*60/360;m=(m+e)/2;return{h:c,s:0==h?0:0.5>m?h/(2*m):h/(2-2*\n", - "m),l:m,toString:ra}};a.parsePathString=function(c){if(!c)return null;var b=a.path(c);if(b.arr)return a.path.clone(b.arr);var m={a:7,c:6,o:2,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,u:3,z:0},e=[];y(c,\"array\")&&y(c[0],\"array\")&&(e=a.path.clone(c));e.length||J(c).replace(W,function(c,a,b){var h=[];c=a.toLowerCase();b.replace(Z,function(c,a){a&&h.push(+a)});\"m\"==c&&2<h.length&&(e.push([a].concat(h.splice(0,2))),c=\"l\",a=\"m\"==a?\"l\":\"L\");\"o\"==c&&1==h.length&&e.push([a,h[0] ]);if(\"r\"==c)e.push([a].concat(h));else for(;h.length>=\n", - "m[c]&&(e.push([a].concat(h.splice(0,m[c]))),m[c]););});e.toString=a.path.toString;b.arr=a.path.clone(e);return e};var O=a.parseTransformString=function(c){if(!c)return null;var b=[];y(c,\"array\")&&y(c[0],\"array\")&&(b=a.path.clone(c));b.length||J(c).replace(ma,function(c,a,m){var e=[];a.toLowerCase();m.replace(Z,function(c,a){a&&e.push(+a)});b.push([a].concat(e))});b.toString=a.path.toString;return b};a._.svgTransform2string=d;a._.rgTransform=RegExp(\"^[a-z][\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*-?\\\\.?\\\\d\",\n", - "\"i\");a._.transform2matrix=f;a._unit2px=b;a._.getSomeDefs=u;a._.getSomeSVG=p;a.select=function(c){return x(G.doc.querySelector(c))};a.selectAll=function(c){c=G.doc.querySelectorAll(c);for(var b=(a.set||Array)(),m=0;m<c.length;m++)b.push(x(c[m]));return b};setInterval(function(){for(var c in E)if(E[h](c)){var a=E[c],b=a.node;(\"svg\"!=a.type&&!b.ownerSVGElement||\"svg\"==a.type&&(!b.parentNode||\"ownerSVGElement\"in b.parentNode&&!b.ownerSVGElement))&&delete E[c]}},1E4);(function(c){function m(c){function a(c,\n", - "b){var m=v(c.node,b);(m=(m=m&&m.match(d))&&m[2])&&\"#\"==m.charAt()&&(m=m.substring(1))&&(f[m]=(f[m]||[]).concat(function(a){var m={};m[b]=ca(a);v(c.node,m)}))}function b(c){var a=v(c.node,\"xlink:href\");a&&\"#\"==a.charAt()&&(a=a.substring(1))&&(f[a]=(f[a]||[]).concat(function(a){c.attr(\"xlink:href\",\"#\"+a)}))}var e=c.selectAll(\"*\"),h,d=/^\\s*url\\((\"|'|)(.*)\\1\\)\\s*$/;c=[];for(var f={},l=0,E=e.length;l<E;l++){h=e[l];a(h,\"fill\");a(h,\"stroke\");a(h,\"filter\");a(h,\"mask\");a(h,\"clip-path\");b(h);var t=v(h.node,\n", - "\"id\");t&&(v(h.node,{id:h.id}),c.push({old:t,id:h.id}))}l=0;for(E=c.length;l<E;l++)if(e=f[c[l].old])for(h=0,t=e.length;h<t;h++)e[h](c[l].id)}function e(c,a,b){return function(m){m=m.slice(c,a);1==m.length&&(m=m[0]);return b?b(m):m}}function d(c){return function(){var a=c?\"<\"+this.type:\"\",b=this.node.attributes,m=this.node.childNodes;if(c)for(var e=0,h=b.length;e<h;e++)a+=\" \"+b[e].name+'=\"'+b[e].value.replace(/\"/g,'\\\\\"')+'\"';if(m.length){c&&(a+=\">\");e=0;for(h=m.length;e<h;e++)3==m[e].nodeType?a+=m[e].nodeValue:\n", - "1==m[e].nodeType&&(a+=x(m[e]).toString());c&&(a+=\"</\"+this.type+\">\")}else c&&(a+=\"/>\");return a}}c.attr=function(c,a){if(!c)return this;if(y(c,\"string\"))if(1<arguments.length){var b={};b[c]=a;c=b}else return k(\"snap.util.getattr.\"+c,this).firstDefined();for(var m in c)c[h](m)&&k(\"snap.util.attr.\"+m,this,c[m]);return this};c.getBBox=function(c){if(!a.Matrix||!a.path)return this.node.getBBox();var b=this,m=new a.Matrix;if(b.removed)return a._.box();for(;\"use\"==b.type;)if(c||(m=m.add(b.transform().localMatrix.translate(b.attr(\"x\")||\n", - "0,b.attr(\"y\")||0))),b.original)b=b.original;else var e=b.attr(\"xlink:href\"),b=b.original=b.node.ownerDocument.getElementById(e.substring(e.indexOf(\"#\")+1));var e=b._,h=a.path.get[b.type]||a.path.get.deflt;try{if(c)return e.bboxwt=h?a.path.getBBox(b.realPath=h(b)):a._.box(b.node.getBBox()),a._.box(e.bboxwt);b.realPath=h(b);b.matrix=b.transform().localMatrix;e.bbox=a.path.getBBox(a.path.map(b.realPath,m.add(b.matrix)));return a._.box(e.bbox)}catch(d){return a._.box()}};var f=function(){return this.string};\n", - "c.transform=function(c){var b=this._;if(null==c){var m=this;c=new a.Matrix(this.node.getCTM());for(var e=n(this),h=[e],d=new a.Matrix,l=e.toTransformString(),b=J(e)==J(this.matrix)?J(b.transform):l;\"svg\"!=m.type&&(m=m.parent());)h.push(n(m));for(m=h.length;m--;)d.add(h[m]);return{string:b,globalMatrix:c,totalMatrix:d,localMatrix:e,diffMatrix:c.clone().add(e.invert()),global:c.toTransformString(),total:d.toTransformString(),local:l,toString:f}}c instanceof a.Matrix?this.matrix=c:n(this,c);this.node&&\n", - "(\"linearGradient\"==this.type||\"radialGradient\"==this.type?v(this.node,{gradientTransform:this.matrix}):\"pattern\"==this.type?v(this.node,{patternTransform:this.matrix}):v(this.node,{transform:this.matrix}));return this};c.parent=function(){return x(this.node.parentNode)};c.append=c.add=function(c){if(c){if(\"set\"==c.type){var a=this;c.forEach(function(c){a.add(c)});return this}c=x(c);this.node.appendChild(c.node);c.paper=this.paper}return this};c.appendTo=function(c){c&&(c=x(c),c.append(this));return this};\n", - "c.prepend=function(c){if(c){if(\"set\"==c.type){var a=this,b;c.forEach(function(c){b?b.after(c):a.prepend(c);b=c});return this}c=x(c);var m=c.parent();this.node.insertBefore(c.node,this.node.firstChild);this.add&&this.add();c.paper=this.paper;this.parent()&&this.parent().add();m&&m.add()}return this};c.prependTo=function(c){c=x(c);c.prepend(this);return this};c.before=function(c){if(\"set\"==c.type){var a=this;c.forEach(function(c){var b=c.parent();a.node.parentNode.insertBefore(c.node,a.node);b&&b.add()});\n", - "this.parent().add();return this}c=x(c);var b=c.parent();this.node.parentNode.insertBefore(c.node,this.node);this.parent()&&this.parent().add();b&&b.add();c.paper=this.paper;return this};c.after=function(c){c=x(c);var a=c.parent();this.node.nextSibling?this.node.parentNode.insertBefore(c.node,this.node.nextSibling):this.node.parentNode.appendChild(c.node);this.parent()&&this.parent().add();a&&a.add();c.paper=this.paper;return this};c.insertBefore=function(c){c=x(c);var a=this.parent();c.node.parentNode.insertBefore(this.node,\n", - "c.node);this.paper=c.paper;a&&a.add();c.parent()&&c.parent().add();return this};c.insertAfter=function(c){c=x(c);var a=this.parent();c.node.parentNode.insertBefore(this.node,c.node.nextSibling);this.paper=c.paper;a&&a.add();c.parent()&&c.parent().add();return this};c.remove=function(){var c=this.parent();this.node.parentNode&&this.node.parentNode.removeChild(this.node);delete this.paper;this.removed=!0;c&&c.add();return this};c.select=function(c){return x(this.node.querySelector(c))};c.selectAll=\n", - "function(c){c=this.node.querySelectorAll(c);for(var b=(a.set||Array)(),m=0;m<c.length;m++)b.push(x(c[m]));return b};c.asPX=function(c,a){null==a&&(a=this.attr(c));return+b(this,c,a)};c.use=function(){var c,a=this.node.id;a||(a=this.id,v(this.node,{id:a}));c=\"linearGradient\"==this.type||\"radialGradient\"==this.type||\"pattern\"==this.type?r(this.type,this.node.parentNode):r(\"use\",this.node.parentNode);v(c.node,{\"xlink:href\":\"#\"+a});c.original=this;return c};var l=/\\S+/g;c.addClass=function(c){var a=(c||\n", - "\"\").match(l)||[];c=this.node;var b=c.className.baseVal,m=b.match(l)||[],e,h,d;if(a.length){for(e=0;d=a[e++];)h=m.indexOf(d),~h||m.push(d);a=m.join(\" \");b!=a&&(c.className.baseVal=a)}return this};c.removeClass=function(c){var a=(c||\"\").match(l)||[];c=this.node;var b=c.className.baseVal,m=b.match(l)||[],e,h;if(m.length){for(e=0;h=a[e++];)h=m.indexOf(h),~h&&m.splice(h,1);a=m.join(\" \");b!=a&&(c.className.baseVal=a)}return this};c.hasClass=function(c){return!!~(this.node.className.baseVal.match(l)||[]).indexOf(c)};\n", - "c.toggleClass=function(c,a){if(null!=a)return a?this.addClass(c):this.removeClass(c);var b=(c||\"\").match(l)||[],m=this.node,e=m.className.baseVal,h=e.match(l)||[],d,f,E;for(d=0;E=b[d++];)f=h.indexOf(E),~f?h.splice(f,1):h.push(E);b=h.join(\" \");e!=b&&(m.className.baseVal=b);return this};c.clone=function(){var c=x(this.node.cloneNode(!0));v(c.node,\"id\")&&v(c.node,{id:c.id});m(c);c.insertAfter(this);return c};c.toDefs=function(){u(this).appendChild(this.node);return this};c.pattern=c.toPattern=function(c,\n", - "a,b,m){var e=r(\"pattern\",u(this));null==c&&(c=this.getBBox());y(c,\"object\")&&\"x\"in c&&(a=c.y,b=c.width,m=c.height,c=c.x);v(e.node,{x:c,y:a,width:b,height:m,patternUnits:\"userSpaceOnUse\",id:e.id,viewBox:[c,a,b,m].join(\" \")});e.node.appendChild(this.node);return e};c.marker=function(c,a,b,m,e,h){var d=r(\"marker\",u(this));null==c&&(c=this.getBBox());y(c,\"object\")&&\"x\"in c&&(a=c.y,b=c.width,m=c.height,e=c.refX||c.cx,h=c.refY||c.cy,c=c.x);v(d.node,{viewBox:[c,a,b,m].join(\" \"),markerWidth:b,markerHeight:m,\n", - "orient:\"auto\",refX:e||0,refY:h||0,id:d.id});d.node.appendChild(this.node);return d};var E=function(c,a,b,m){\"function\"!=typeof b||b.length||(m=b,b=L.linear);this.attr=c;this.dur=a;b&&(this.easing=b);m&&(this.callback=m)};a._.Animation=E;a.animation=function(c,a,b,m){return new E(c,a,b,m)};c.inAnim=function(){var c=[],a;for(a in this.anims)this.anims[h](a)&&function(a){c.push({anim:new E(a._attrs,a.dur,a.easing,a._callback),mina:a,curStatus:a.status(),status:function(c){return a.status(c)},stop:function(){a.stop()}})}(this.anims[a]);\n", - "return c};a.animate=function(c,a,b,m,e,h){\"function\"!=typeof e||e.length||(h=e,e=L.linear);var d=L.time();c=L(c,a,d,d+m,L.time,b,e);h&&k.once(\"mina.finish.\"+c.id,h);return c};c.stop=function(){for(var c=this.inAnim(),a=0,b=c.length;a<b;a++)c[a].stop();return this};c.animate=function(c,a,b,m){\"function\"!=typeof b||b.length||(m=b,b=L.linear);c instanceof E&&(m=c.callback,b=c.easing,a=b.dur,c=c.attr);var d=[],f=[],l={},t,ca,n,T=this,q;for(q in c)if(c[h](q)){T.equal?(n=T.equal(q,J(c[q])),t=n.from,ca=\n", - "n.to,n=n.f):(t=+T.attr(q),ca=+c[q]);var la=y(t,\"array\")?t.length:1;l[q]=e(d.length,d.length+la,n);d=d.concat(t);f=f.concat(ca)}t=L.time();var p=L(d,f,t,t+a,L.time,function(c){var a={},b;for(b in l)l[h](b)&&(a[b]=l[b](c));T.attr(a)},b);T.anims[p.id]=p;p._attrs=c;p._callback=m;k(\"snap.animcreated.\"+T.id,p);k.once(\"mina.finish.\"+p.id,function(){delete T.anims[p.id];m&&m.call(T)});k.once(\"mina.stop.\"+p.id,function(){delete T.anims[p.id]});return T};var T={};c.data=function(c,b){var m=T[this.id]=T[this.id]||\n", - "{};if(0==arguments.length)return k(\"snap.data.get.\"+this.id,this,m,null),m;if(1==arguments.length){if(a.is(c,\"object\")){for(var e in c)c[h](e)&&this.data(e,c[e]);return this}k(\"snap.data.get.\"+this.id,this,m[c],c);return m[c]}m[c]=b;k(\"snap.data.set.\"+this.id,this,b,c);return this};c.removeData=function(c){null==c?T[this.id]={}:T[this.id]&&delete T[this.id][c];return this};c.outerSVG=c.toString=d(1);c.innerSVG=d()})(e.prototype);a.parse=function(c){var a=G.doc.createDocumentFragment(),b=!0,m=G.doc.createElement(\"div\");\n", - "c=J(c);c.match(/^\\s*<\\s*svg(?:\\s|>)/)||(c=\"<svg>\"+c+\"</svg>\",b=!1);m.innerHTML=c;if(c=m.getElementsByTagName(\"svg\")[0])if(b)a=c;else for(;c.firstChild;)a.appendChild(c.firstChild);m.innerHTML=aa;return new l(a)};l.prototype.select=e.prototype.select;l.prototype.selectAll=e.prototype.selectAll;a.fragment=function(){for(var c=Array.prototype.slice.call(arguments,0),b=G.doc.createDocumentFragment(),m=0,e=c.length;m<e;m++){var h=c[m];h.node&&h.node.nodeType&&b.appendChild(h.node);h.nodeType&&b.appendChild(h);\n", - "\"string\"==typeof h&&b.appendChild(a.parse(h).node)}return new l(b)};a._.make=r;a._.wrap=x;s.prototype.el=function(c,a){var b=r(c,this.node);a&&b.attr(a);return b};k.on(\"snap.util.getattr\",function(){var c=k.nt(),c=c.substring(c.lastIndexOf(\".\")+1),a=c.replace(/[A-Z]/g,function(c){return\"-\"+c.toLowerCase()});return pa[h](a)?this.node.ownerDocument.defaultView.getComputedStyle(this.node,null).getPropertyValue(a):v(this.node,c)});var pa={\"alignment-baseline\":0,\"baseline-shift\":0,clip:0,\"clip-path\":0,\n", - "\"clip-rule\":0,color:0,\"color-interpolation\":0,\"color-interpolation-filters\":0,\"color-profile\":0,\"color-rendering\":0,cursor:0,direction:0,display:0,\"dominant-baseline\":0,\"enable-background\":0,fill:0,\"fill-opacity\":0,\"fill-rule\":0,filter:0,\"flood-color\":0,\"flood-opacity\":0,font:0,\"font-family\":0,\"font-size\":0,\"font-size-adjust\":0,\"font-stretch\":0,\"font-style\":0,\"font-variant\":0,\"font-weight\":0,\"glyph-orientation-horizontal\":0,\"glyph-orientation-vertical\":0,\"image-rendering\":0,kerning:0,\"letter-spacing\":0,\n", - "\"lighting-color\":0,marker:0,\"marker-end\":0,\"marker-mid\":0,\"marker-start\":0,mask:0,opacity:0,overflow:0,\"pointer-events\":0,\"shape-rendering\":0,\"stop-color\":0,\"stop-opacity\":0,stroke:0,\"stroke-dasharray\":0,\"stroke-dashoffset\":0,\"stroke-linecap\":0,\"stroke-linejoin\":0,\"stroke-miterlimit\":0,\"stroke-opacity\":0,\"stroke-width\":0,\"text-anchor\":0,\"text-decoration\":0,\"text-rendering\":0,\"unicode-bidi\":0,visibility:0,\"word-spacing\":0,\"writing-mode\":0};k.on(\"snap.util.attr\",function(c){var a=k.nt(),b={},a=a.substring(a.lastIndexOf(\".\")+\n", - "1);b[a]=c;var m=a.replace(/-(\\w)/gi,function(c,a){return a.toUpperCase()}),a=a.replace(/[A-Z]/g,function(c){return\"-\"+c.toLowerCase()});pa[h](a)?this.node.style[m]=null==c?aa:c:v(this.node,b)});a.ajax=function(c,a,b,m){var e=new XMLHttpRequest,h=V();if(e){if(y(a,\"function\"))m=b,b=a,a=null;else if(y(a,\"object\")){var d=[],f;for(f in a)a.hasOwnProperty(f)&&d.push(encodeURIComponent(f)+\"=\"+encodeURIComponent(a[f]));a=d.join(\"&\")}e.open(a?\"POST\":\"GET\",c,!0);a&&(e.setRequestHeader(\"X-Requested-With\",\"XMLHttpRequest\"),\n", - "e.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded\"));b&&(k.once(\"snap.ajax.\"+h+\".0\",b),k.once(\"snap.ajax.\"+h+\".200\",b),k.once(\"snap.ajax.\"+h+\".304\",b));e.onreadystatechange=function(){4==e.readyState&&k(\"snap.ajax.\"+h+\".\"+e.status,m,e)};if(4==e.readyState)return e;e.send(a);return e}};a.load=function(c,b,m){a.ajax(c,function(c){c=a.parse(c.responseText);m?b.call(m,c):b(c)})};a.getElementByPoint=function(c,a){var b,m,e=G.doc.elementFromPoint(c,a);if(G.win.opera&&\"svg\"==e.tagName){b=\n", - "e;m=b.getBoundingClientRect();b=b.ownerDocument;var h=b.body,d=b.documentElement;b=m.top+(g.win.pageYOffset||d.scrollTop||h.scrollTop)-(d.clientTop||h.clientTop||0);m=m.left+(g.win.pageXOffset||d.scrollLeft||h.scrollLeft)-(d.clientLeft||h.clientLeft||0);h=e.createSVGRect();h.x=c-m;h.y=a-b;h.width=h.height=1;b=e.getIntersectionList(h,null);b.length&&(e=b[b.length-1])}return e?x(e):null};a.plugin=function(c){c(a,e,s,G,l)};return G.win.Snap=a}();C.plugin(function(a,k,y,M,A){function w(a,d,f,b,q,e){null==\n", - "d&&\"[object SVGMatrix]\"==z.call(a)?(this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.e=a.e,this.f=a.f):null!=a?(this.a=+a,this.b=+d,this.c=+f,this.d=+b,this.e=+q,this.f=+e):(this.a=1,this.c=this.b=0,this.d=1,this.f=this.e=0)}var z=Object.prototype.toString,d=String,f=Math;(function(n){function k(a){return a[0]*a[0]+a[1]*a[1]}function p(a){var d=f.sqrt(k(a));a[0]&&(a[0]/=d);a[1]&&(a[1]/=d)}n.add=function(a,d,e,f,n,p){var k=[[],[],[] ],u=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1] ];d=[[a,\n", - "e,n],[d,f,p],[0,0,1] ];a&&a instanceof w&&(d=[[a.a,a.c,a.e],[a.b,a.d,a.f],[0,0,1] ]);for(a=0;3>a;a++)for(e=0;3>e;e++){for(f=n=0;3>f;f++)n+=u[a][f]*d[f][e];k[a][e]=n}this.a=k[0][0];this.b=k[1][0];this.c=k[0][1];this.d=k[1][1];this.e=k[0][2];this.f=k[1][2];return this};n.invert=function(){var a=this.a*this.d-this.b*this.c;return new w(this.d/a,-this.b/a,-this.c/a,this.a/a,(this.c*this.f-this.d*this.e)/a,(this.b*this.e-this.a*this.f)/a)};n.clone=function(){return new w(this.a,this.b,this.c,this.d,this.e,\n", - "this.f)};n.translate=function(a,d){return this.add(1,0,0,1,a,d)};n.scale=function(a,d,e,f){null==d&&(d=a);(e||f)&&this.add(1,0,0,1,e,f);this.add(a,0,0,d,0,0);(e||f)&&this.add(1,0,0,1,-e,-f);return this};n.rotate=function(b,d,e){b=a.rad(b);d=d||0;e=e||0;var l=+f.cos(b).toFixed(9);b=+f.sin(b).toFixed(9);this.add(l,b,-b,l,d,e);return this.add(1,0,0,1,-d,-e)};n.x=function(a,d){return a*this.a+d*this.c+this.e};n.y=function(a,d){return a*this.b+d*this.d+this.f};n.get=function(a){return+this[d.fromCharCode(97+\n", - "a)].toFixed(4)};n.toString=function(){return\"matrix(\"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+\")\"};n.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]};n.determinant=function(){return this.a*this.d-this.b*this.c};n.split=function(){var b={};b.dx=this.e;b.dy=this.f;var d=[[this.a,this.c],[this.b,this.d] ];b.scalex=f.sqrt(k(d[0]));p(d[0]);b.shear=d[0][0]*d[1][0]+d[0][1]*d[1][1];d[1]=[d[1][0]-d[0][0]*b.shear,d[1][1]-d[0][1]*b.shear];b.scaley=f.sqrt(k(d[1]));\n", - "p(d[1]);b.shear/=b.scaley;0>this.determinant()&&(b.scalex=-b.scalex);var e=-d[0][1],d=d[1][1];0>d?(b.rotate=a.deg(f.acos(d)),0>e&&(b.rotate=360-b.rotate)):b.rotate=a.deg(f.asin(e));b.isSimple=!+b.shear.toFixed(9)&&(b.scalex.toFixed(9)==b.scaley.toFixed(9)||!b.rotate);b.isSuperSimple=!+b.shear.toFixed(9)&&b.scalex.toFixed(9)==b.scaley.toFixed(9)&&!b.rotate;b.noRotation=!+b.shear.toFixed(9)&&!b.rotate;return b};n.toTransformString=function(a){a=a||this.split();if(+a.shear.toFixed(9))return\"m\"+[this.get(0),\n", - "this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)];a.scalex=+a.scalex.toFixed(4);a.scaley=+a.scaley.toFixed(4);a.rotate=+a.rotate.toFixed(4);return(a.dx||a.dy?\"t\"+[+a.dx.toFixed(4),+a.dy.toFixed(4)]:\"\")+(1!=a.scalex||1!=a.scaley?\"s\"+[a.scalex,a.scaley,0,0]:\"\")+(a.rotate?\"r\"+[+a.rotate.toFixed(4),0,0]:\"\")}})(w.prototype);a.Matrix=w;a.matrix=function(a,d,f,b,k,e){return new w(a,d,f,b,k,e)}});C.plugin(function(a,v,y,M,A){function w(h){return function(d){k.stop();d instanceof A&&1==d.node.childNodes.length&&\n", - "(\"radialGradient\"==d.node.firstChild.tagName||\"linearGradient\"==d.node.firstChild.tagName||\"pattern\"==d.node.firstChild.tagName)&&(d=d.node.firstChild,b(this).appendChild(d),d=u(d));if(d instanceof v)if(\"radialGradient\"==d.type||\"linearGradient\"==d.type||\"pattern\"==d.type){d.node.id||e(d.node,{id:d.id});var f=l(d.node.id)}else f=d.attr(h);else f=a.color(d),f.error?(f=a(b(this).ownerSVGElement).gradient(d))?(f.node.id||e(f.node,{id:f.id}),f=l(f.node.id)):f=d:f=r(f);d={};d[h]=f;e(this.node,d);this.node.style[h]=\n", - "x}}function z(a){k.stop();a==+a&&(a+=\"px\");this.node.style.fontSize=a}function d(a){var b=[];a=a.childNodes;for(var e=0,f=a.length;e<f;e++){var l=a[e];3==l.nodeType&&b.push(l.nodeValue);\"tspan\"==l.tagName&&(1==l.childNodes.length&&3==l.firstChild.nodeType?b.push(l.firstChild.nodeValue):b.push(d(l)))}return b}function f(){k.stop();return this.node.style.fontSize}var n=a._.make,u=a._.wrap,p=a.is,b=a._.getSomeDefs,q=/^url\\(#?([^)]+)\\)$/,e=a._.$,l=a.url,r=String,s=a._.separator,x=\"\";k.on(\"snap.util.attr.mask\",\n", - "function(a){if(a instanceof v||a instanceof A){k.stop();a instanceof A&&1==a.node.childNodes.length&&(a=a.node.firstChild,b(this).appendChild(a),a=u(a));if(\"mask\"==a.type)var d=a;else d=n(\"mask\",b(this)),d.node.appendChild(a.node);!d.node.id&&e(d.node,{id:d.id});e(this.node,{mask:l(d.id)})}});(function(a){k.on(\"snap.util.attr.clip\",a);k.on(\"snap.util.attr.clip-path\",a);k.on(\"snap.util.attr.clipPath\",a)})(function(a){if(a instanceof v||a instanceof A){k.stop();if(\"clipPath\"==a.type)var d=a;else d=\n", - "n(\"clipPath\",b(this)),d.node.appendChild(a.node),!d.node.id&&e(d.node,{id:d.id});e(this.node,{\"clip-path\":l(d.id)})}});k.on(\"snap.util.attr.fill\",w(\"fill\"));k.on(\"snap.util.attr.stroke\",w(\"stroke\"));var G=/^([lr])(?:\\(([^)]*)\\))?(.*)$/i;k.on(\"snap.util.grad.parse\",function(a){a=r(a);var b=a.match(G);if(!b)return null;a=b[1];var e=b[2],b=b[3],e=e.split(/\\s*,\\s*/).map(function(a){return+a==a?+a:a});1==e.length&&0==e[0]&&(e=[]);b=b.split(\"-\");b=b.map(function(a){a=a.split(\":\");var b={color:a[0]};a[1]&&\n", - "(b.offset=parseFloat(a[1]));return b});return{type:a,params:e,stops:b}});k.on(\"snap.util.attr.d\",function(b){k.stop();p(b,\"array\")&&p(b[0],\"array\")&&(b=a.path.toString.call(b));b=r(b);b.match(/[ruo]/i)&&(b=a.path.toAbsolute(b));e(this.node,{d:b})})(-1);k.on(\"snap.util.attr.#text\",function(a){k.stop();a=r(a);for(a=M.doc.createTextNode(a);this.node.firstChild;)this.node.removeChild(this.node.firstChild);this.node.appendChild(a)})(-1);k.on(\"snap.util.attr.path\",function(a){k.stop();this.attr({d:a})})(-1);\n", - "k.on(\"snap.util.attr.class\",function(a){k.stop();this.node.className.baseVal=a})(-1);k.on(\"snap.util.attr.viewBox\",function(a){a=p(a,\"object\")&&\"x\"in a?[a.x,a.y,a.width,a.height].join(\" \"):p(a,\"array\")?a.join(\" \"):a;e(this.node,{viewBox:a});k.stop()})(-1);k.on(\"snap.util.attr.transform\",function(a){this.transform(a);k.stop()})(-1);k.on(\"snap.util.attr.r\",function(a){\"rect\"==this.type&&(k.stop(),e(this.node,{rx:a,ry:a}))})(-1);k.on(\"snap.util.attr.textpath\",function(a){k.stop();if(\"text\"==this.type){var d,\n", - "f;if(!a&&this.textPath){for(a=this.textPath;a.node.firstChild;)this.node.appendChild(a.node.firstChild);a.remove();delete this.textPath}else if(p(a,\"string\")?(d=b(this),a=u(d.parentNode).path(a),d.appendChild(a.node),d=a.id,a.attr({id:d})):(a=u(a),a instanceof v&&(d=a.attr(\"id\"),d||(d=a.id,a.attr({id:d})))),d)if(a=this.textPath,f=this.node,a)a.attr({\"xlink:href\":\"#\"+d});else{for(a=e(\"textPath\",{\"xlink:href\":\"#\"+d});f.firstChild;)a.appendChild(f.firstChild);f.appendChild(a);this.textPath=u(a)}}})(-1);\n", - "k.on(\"snap.util.attr.text\",function(a){if(\"text\"==this.type){for(var b=this.node,d=function(a){var b=e(\"tspan\");if(p(a,\"array\"))for(var f=0;f<a.length;f++)b.appendChild(d(a[f]));else b.appendChild(M.doc.createTextNode(a));b.normalize&&b.normalize();return b};b.firstChild;)b.removeChild(b.firstChild);for(a=d(a);a.firstChild;)b.appendChild(a.firstChild)}k.stop()})(-1);k.on(\"snap.util.attr.fontSize\",z)(-1);k.on(\"snap.util.attr.font-size\",z)(-1);k.on(\"snap.util.getattr.transform\",function(){k.stop();\n", - "return this.transform()})(-1);k.on(\"snap.util.getattr.textpath\",function(){k.stop();return this.textPath})(-1);(function(){function b(d){return function(){k.stop();var b=M.doc.defaultView.getComputedStyle(this.node,null).getPropertyValue(\"marker-\"+d);return\"none\"==b?b:a(M.doc.getElementById(b.match(q)[1]))}}function d(a){return function(b){k.stop();var d=\"marker\"+a.charAt(0).toUpperCase()+a.substring(1);if(\"\"==b||!b)this.node.style[d]=\"none\";else if(\"marker\"==b.type){var f=b.node.id;f||e(b.node,{id:b.id});\n", - "this.node.style[d]=l(f)}}}k.on(\"snap.util.getattr.marker-end\",b(\"end\"))(-1);k.on(\"snap.util.getattr.markerEnd\",b(\"end\"))(-1);k.on(\"snap.util.getattr.marker-start\",b(\"start\"))(-1);k.on(\"snap.util.getattr.markerStart\",b(\"start\"))(-1);k.on(\"snap.util.getattr.marker-mid\",b(\"mid\"))(-1);k.on(\"snap.util.getattr.markerMid\",b(\"mid\"))(-1);k.on(\"snap.util.attr.marker-end\",d(\"end\"))(-1);k.on(\"snap.util.attr.markerEnd\",d(\"end\"))(-1);k.on(\"snap.util.attr.marker-start\",d(\"start\"))(-1);k.on(\"snap.util.attr.markerStart\",\n", - "d(\"start\"))(-1);k.on(\"snap.util.attr.marker-mid\",d(\"mid\"))(-1);k.on(\"snap.util.attr.markerMid\",d(\"mid\"))(-1)})();k.on(\"snap.util.getattr.r\",function(){if(\"rect\"==this.type&&e(this.node,\"rx\")==e(this.node,\"ry\"))return k.stop(),e(this.node,\"rx\")})(-1);k.on(\"snap.util.getattr.text\",function(){if(\"text\"==this.type||\"tspan\"==this.type){k.stop();var a=d(this.node);return 1==a.length?a[0]:a}})(-1);k.on(\"snap.util.getattr.#text\",function(){return this.node.textContent})(-1);k.on(\"snap.util.getattr.viewBox\",\n", - "function(){k.stop();var b=e(this.node,\"viewBox\");if(b)return b=b.split(s),a._.box(+b[0],+b[1],+b[2],+b[3])})(-1);k.on(\"snap.util.getattr.points\",function(){var a=e(this.node,\"points\");k.stop();if(a)return a.split(s)})(-1);k.on(\"snap.util.getattr.path\",function(){var a=e(this.node,\"d\");k.stop();return a})(-1);k.on(\"snap.util.getattr.class\",function(){return this.node.className.baseVal})(-1);k.on(\"snap.util.getattr.fontSize\",f)(-1);k.on(\"snap.util.getattr.font-size\",f)(-1)});C.plugin(function(a,v,y,\n", - "M,A){function w(a){return a}function z(a){return function(b){return+b.toFixed(3)+a}}var d={\"+\":function(a,b){return a+b},\"-\":function(a,b){return a-b},\"/\":function(a,b){return a/b},\"*\":function(a,b){return a*b}},f=String,n=/[a-z]+$/i,u=/^\\s*([+\\-\\/*])\\s*=\\s*([\\d.eE+\\-]+)\\s*([^\\d\\s]+)?\\s*$/;k.on(\"snap.util.attr\",function(a){if(a=f(a).match(u)){var b=k.nt(),b=b.substring(b.lastIndexOf(\".\")+1),q=this.attr(b),e={};k.stop();var l=a[3]||\"\",r=q.match(n),s=d[a[1] ];r&&r==l?a=s(parseFloat(q),+a[2]):(q=this.asPX(b),\n", - "a=s(this.asPX(b),this.asPX(b,a[2]+l)));isNaN(q)||isNaN(a)||(e[b]=a,this.attr(e))}})(-10);k.on(\"snap.util.equal\",function(a,b){var q=f(this.attr(a)||\"\"),e=f(b).match(u);if(e){k.stop();var l=e[3]||\"\",r=q.match(n),s=d[e[1] ];if(r&&r==l)return{from:parseFloat(q),to:s(parseFloat(q),+e[2]),f:z(r)};q=this.asPX(a);return{from:q,to:s(q,this.asPX(a,e[2]+l)),f:w}}})(-10)});C.plugin(function(a,v,y,M,A){var w=y.prototype,z=a.is;w.rect=function(a,d,k,p,b,q){var e;null==q&&(q=b);z(a,\"object\")&&\"[object Object]\"==\n", - "a?e=a:null!=a&&(e={x:a,y:d,width:k,height:p},null!=b&&(e.rx=b,e.ry=q));return this.el(\"rect\",e)};w.circle=function(a,d,k){var p;z(a,\"object\")&&\"[object Object]\"==a?p=a:null!=a&&(p={cx:a,cy:d,r:k});return this.el(\"circle\",p)};var d=function(){function a(){this.parentNode.removeChild(this)}return function(d,k){var p=M.doc.createElement(\"img\"),b=M.doc.body;p.style.cssText=\"position:absolute;left:-9999em;top:-9999em\";p.onload=function(){k.call(p);p.onload=p.onerror=null;b.removeChild(p)};p.onerror=a;\n", - "b.appendChild(p);p.src=d}}();w.image=function(f,n,k,p,b){var q=this.el(\"image\");if(z(f,\"object\")&&\"src\"in f)q.attr(f);else if(null!=f){var e={\"xlink:href\":f,preserveAspectRatio:\"none\"};null!=n&&null!=k&&(e.x=n,e.y=k);null!=p&&null!=b?(e.width=p,e.height=b):d(f,function(){a._.$(q.node,{width:this.offsetWidth,height:this.offsetHeight})});a._.$(q.node,e)}return q};w.ellipse=function(a,d,k,p){var b;z(a,\"object\")&&\"[object Object]\"==a?b=a:null!=a&&(b={cx:a,cy:d,rx:k,ry:p});return this.el(\"ellipse\",b)};\n", - "w.path=function(a){var d;z(a,\"object\")&&!z(a,\"array\")?d=a:a&&(d={d:a});return this.el(\"path\",d)};w.group=w.g=function(a){var d=this.el(\"g\");1==arguments.length&&a&&!a.type?d.attr(a):arguments.length&&d.add(Array.prototype.slice.call(arguments,0));return d};w.svg=function(a,d,k,p,b,q,e,l){var r={};z(a,\"object\")&&null==d?r=a:(null!=a&&(r.x=a),null!=d&&(r.y=d),null!=k&&(r.width=k),null!=p&&(r.height=p),null!=b&&null!=q&&null!=e&&null!=l&&(r.viewBox=[b,q,e,l]));return this.el(\"svg\",r)};w.mask=function(a){var d=\n", - "this.el(\"mask\");1==arguments.length&&a&&!a.type?d.attr(a):arguments.length&&d.add(Array.prototype.slice.call(arguments,0));return d};w.ptrn=function(a,d,k,p,b,q,e,l){if(z(a,\"object\"))var r=a;else arguments.length?(r={},null!=a&&(r.x=a),null!=d&&(r.y=d),null!=k&&(r.width=k),null!=p&&(r.height=p),null!=b&&null!=q&&null!=e&&null!=l&&(r.viewBox=[b,q,e,l])):r={patternUnits:\"userSpaceOnUse\"};return this.el(\"pattern\",r)};w.use=function(a){return null!=a?(make(\"use\",this.node),a instanceof v&&(a.attr(\"id\")||\n", - "a.attr({id:ID()}),a=a.attr(\"id\")),this.el(\"use\",{\"xlink:href\":a})):v.prototype.use.call(this)};w.text=function(a,d,k){var p={};z(a,\"object\")?p=a:null!=a&&(p={x:a,y:d,text:k||\"\"});return this.el(\"text\",p)};w.line=function(a,d,k,p){var b={};z(a,\"object\")?b=a:null!=a&&(b={x1:a,x2:k,y1:d,y2:p});return this.el(\"line\",b)};w.polyline=function(a){1<arguments.length&&(a=Array.prototype.slice.call(arguments,0));var d={};z(a,\"object\")&&!z(a,\"array\")?d=a:null!=a&&(d={points:a});return this.el(\"polyline\",d)};\n", - "w.polygon=function(a){1<arguments.length&&(a=Array.prototype.slice.call(arguments,0));var d={};z(a,\"object\")&&!z(a,\"array\")?d=a:null!=a&&(d={points:a});return this.el(\"polygon\",d)};(function(){function d(){return this.selectAll(\"stop\")}function n(b,d){var f=e(\"stop\"),k={offset:+d+\"%\"};b=a.color(b);k[\"stop-color\"]=b.hex;1>b.opacity&&(k[\"stop-opacity\"]=b.opacity);e(f,k);this.node.appendChild(f);return this}function u(){if(\"linearGradient\"==this.type){var b=e(this.node,\"x1\")||0,d=e(this.node,\"x2\")||\n", - "1,f=e(this.node,\"y1\")||0,k=e(this.node,\"y2\")||0;return a._.box(b,f,math.abs(d-b),math.abs(k-f))}b=this.node.r||0;return a._.box((this.node.cx||0.5)-b,(this.node.cy||0.5)-b,2*b,2*b)}function p(a,d){function f(a,b){for(var d=(b-u)/(a-w),e=w;e<a;e++)h[e].offset=+(+u+d*(e-w)).toFixed(2);w=a;u=b}var n=k(\"snap.util.grad.parse\",null,d).firstDefined(),p;if(!n)return null;n.params.unshift(a);p=\"l\"==n.type.toLowerCase()?b.apply(0,n.params):q.apply(0,n.params);n.type!=n.type.toLowerCase()&&e(p.node,{gradientUnits:\"userSpaceOnUse\"});\n", - "var h=n.stops,n=h.length,u=0,w=0;n--;for(var v=0;v<n;v++)\"offset\"in h[v]&&f(v,h[v].offset);h[n].offset=h[n].offset||100;f(n,h[n].offset);for(v=0;v<=n;v++){var y=h[v];p.addStop(y.color,y.offset)}return p}function b(b,k,p,q,w){b=a._.make(\"linearGradient\",b);b.stops=d;b.addStop=n;b.getBBox=u;null!=k&&e(b.node,{x1:k,y1:p,x2:q,y2:w});return b}function q(b,k,p,q,w,h){b=a._.make(\"radialGradient\",b);b.stops=d;b.addStop=n;b.getBBox=u;null!=k&&e(b.node,{cx:k,cy:p,r:q});null!=w&&null!=h&&e(b.node,{fx:w,fy:h});\n", - "return b}var e=a._.$;w.gradient=function(a){return p(this.defs,a)};w.gradientLinear=function(a,d,e,f){return b(this.defs,a,d,e,f)};w.gradientRadial=function(a,b,d,e,f){return q(this.defs,a,b,d,e,f)};w.toString=function(){var b=this.node.ownerDocument,d=b.createDocumentFragment(),b=b.createElement(\"div\"),e=this.node.cloneNode(!0);d.appendChild(b);b.appendChild(e);a._.$(e,{xmlns:\"http://www.w3.org/2000/svg\"});b=b.innerHTML;d.removeChild(d.firstChild);return b};w.clear=function(){for(var a=this.node.firstChild,\n", - "b;a;)b=a.nextSibling,\"defs\"!=a.tagName?a.parentNode.removeChild(a):w.clear.call({node:a}),a=b}})()});C.plugin(function(a,k,y,M){function A(a){var b=A.ps=A.ps||{};b[a]?b[a].sleep=100:b[a]={sleep:100};setTimeout(function(){for(var d in b)b[L](d)&&d!=a&&(b[d].sleep--,!b[d].sleep&&delete b[d])});return b[a]}function w(a,b,d,e){null==a&&(a=b=d=e=0);null==b&&(b=a.y,d=a.width,e=a.height,a=a.x);return{x:a,y:b,width:d,w:d,height:e,h:e,x2:a+d,y2:b+e,cx:a+d/2,cy:b+e/2,r1:F.min(d,e)/2,r2:F.max(d,e)/2,r0:F.sqrt(d*\n", - "d+e*e)/2,path:s(a,b,d,e),vb:[a,b,d,e].join(\" \")}}function z(){return this.join(\",\").replace(N,\"$1\")}function d(a){a=C(a);a.toString=z;return a}function f(a,b,d,h,f,k,l,n,p){if(null==p)return e(a,b,d,h,f,k,l,n);if(0>p||e(a,b,d,h,f,k,l,n)<p)p=void 0;else{var q=0.5,O=1-q,s;for(s=e(a,b,d,h,f,k,l,n,O);0.01<Z(s-p);)q/=2,O+=(s<p?1:-1)*q,s=e(a,b,d,h,f,k,l,n,O);p=O}return u(a,b,d,h,f,k,l,n,p)}function n(b,d){function e(a){return+(+a).toFixed(3)}return a._.cacher(function(a,h,l){a instanceof k&&(a=a.attr(\"d\"));\n", - "a=I(a);for(var n,p,D,q,O=\"\",s={},c=0,t=0,r=a.length;t<r;t++){D=a[t];if(\"M\"==D[0])n=+D[1],p=+D[2];else{q=f(n,p,D[1],D[2],D[3],D[4],D[5],D[6]);if(c+q>h){if(d&&!s.start){n=f(n,p,D[1],D[2],D[3],D[4],D[5],D[6],h-c);O+=[\"C\"+e(n.start.x),e(n.start.y),e(n.m.x),e(n.m.y),e(n.x),e(n.y)];if(l)return O;s.start=O;O=[\"M\"+e(n.x),e(n.y)+\"C\"+e(n.n.x),e(n.n.y),e(n.end.x),e(n.end.y),e(D[5]),e(D[6])].join();c+=q;n=+D[5];p=+D[6];continue}if(!b&&!d)return n=f(n,p,D[1],D[2],D[3],D[4],D[5],D[6],h-c)}c+=q;n=+D[5];p=+D[6]}O+=\n", - "D.shift()+D}s.end=O;return n=b?c:d?s:u(n,p,D[0],D[1],D[2],D[3],D[4],D[5],1)},null,a._.clone)}function u(a,b,d,e,h,f,k,l,n){var p=1-n,q=ma(p,3),s=ma(p,2),c=n*n,t=c*n,r=q*a+3*s*n*d+3*p*n*n*h+t*k,q=q*b+3*s*n*e+3*p*n*n*f+t*l,s=a+2*n*(d-a)+c*(h-2*d+a),t=b+2*n*(e-b)+c*(f-2*e+b),x=d+2*n*(h-d)+c*(k-2*h+d),c=e+2*n*(f-e)+c*(l-2*f+e);a=p*a+n*d;b=p*b+n*e;h=p*h+n*k;f=p*f+n*l;l=90-180*F.atan2(s-x,t-c)/S;return{x:r,y:q,m:{x:s,y:t},n:{x:x,y:c},start:{x:a,y:b},end:{x:h,y:f},alpha:l}}function p(b,d,e,h,f,n,k,l){a.is(b,\n", - "\"array\")||(b=[b,d,e,h,f,n,k,l]);b=U.apply(null,b);return w(b.min.x,b.min.y,b.max.x-b.min.x,b.max.y-b.min.y)}function b(a,b,d){return b>=a.x&&b<=a.x+a.width&&d>=a.y&&d<=a.y+a.height}function q(a,d){a=w(a);d=w(d);return b(d,a.x,a.y)||b(d,a.x2,a.y)||b(d,a.x,a.y2)||b(d,a.x2,a.y2)||b(a,d.x,d.y)||b(a,d.x2,d.y)||b(a,d.x,d.y2)||b(a,d.x2,d.y2)||(a.x<d.x2&&a.x>d.x||d.x<a.x2&&d.x>a.x)&&(a.y<d.y2&&a.y>d.y||d.y<a.y2&&d.y>a.y)}function e(a,b,d,e,h,f,n,k,l){null==l&&(l=1);l=(1<l?1:0>l?0:l)/2;for(var p=[-0.1252,\n", - "0.1252,-0.3678,0.3678,-0.5873,0.5873,-0.7699,0.7699,-0.9041,0.9041,-0.9816,0.9816],q=[0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472],s=0,c=0;12>c;c++)var t=l*p[c]+l,r=t*(t*(-3*a+9*d-9*h+3*n)+6*a-12*d+6*h)-3*a+3*d,t=t*(t*(-3*b+9*e-9*f+3*k)+6*b-12*e+6*f)-3*b+3*e,s=s+q[c]*F.sqrt(r*r+t*t);return l*s}function l(a,b,d){a=I(a);b=I(b);for(var h,f,l,n,k,s,r,O,x,c,t=d?0:[],w=0,v=a.length;w<v;w++)if(x=a[w],\"M\"==x[0])h=k=x[1],f=s=x[2];else{\"C\"==x[0]?(x=[h,f].concat(x.slice(1)),\n", - "h=x[6],f=x[7]):(x=[h,f,h,f,k,s,k,s],h=k,f=s);for(var G=0,y=b.length;G<y;G++)if(c=b[G],\"M\"==c[0])l=r=c[1],n=O=c[2];else{\"C\"==c[0]?(c=[l,n].concat(c.slice(1)),l=c[6],n=c[7]):(c=[l,n,l,n,r,O,r,O],l=r,n=O);var z;var K=x,B=c;z=d;var H=p(K),J=p(B);if(q(H,J)){for(var H=e.apply(0,K),J=e.apply(0,B),H=~~(H/8),J=~~(J/8),U=[],A=[],F={},M=z?0:[],P=0;P<H+1;P++){var C=u.apply(0,K.concat(P/H));U.push({x:C.x,y:C.y,t:P/H})}for(P=0;P<J+1;P++)C=u.apply(0,B.concat(P/J)),A.push({x:C.x,y:C.y,t:P/J});for(P=0;P<H;P++)for(K=\n", - "0;K<J;K++){var Q=U[P],L=U[P+1],B=A[K],C=A[K+1],N=0.001>Z(L.x-Q.x)?\"y\":\"x\",S=0.001>Z(C.x-B.x)?\"y\":\"x\",R;R=Q.x;var Y=Q.y,V=L.x,ea=L.y,fa=B.x,ga=B.y,ha=C.x,ia=C.y;if(W(R,V)<X(fa,ha)||X(R,V)>W(fa,ha)||W(Y,ea)<X(ga,ia)||X(Y,ea)>W(ga,ia))R=void 0;else{var $=(R*ea-Y*V)*(fa-ha)-(R-V)*(fa*ia-ga*ha),aa=(R*ea-Y*V)*(ga-ia)-(Y-ea)*(fa*ia-ga*ha),ja=(R-V)*(ga-ia)-(Y-ea)*(fa-ha);if(ja){var $=$/ja,aa=aa/ja,ja=+$.toFixed(2),ba=+aa.toFixed(2);R=ja<+X(R,V).toFixed(2)||ja>+W(R,V).toFixed(2)||ja<+X(fa,ha).toFixed(2)||\n", - "ja>+W(fa,ha).toFixed(2)||ba<+X(Y,ea).toFixed(2)||ba>+W(Y,ea).toFixed(2)||ba<+X(ga,ia).toFixed(2)||ba>+W(ga,ia).toFixed(2)?void 0:{x:$,y:aa}}else R=void 0}R&&F[R.x.toFixed(4)]!=R.y.toFixed(4)&&(F[R.x.toFixed(4)]=R.y.toFixed(4),Q=Q.t+Z((R[N]-Q[N])/(L[N]-Q[N]))*(L.t-Q.t),B=B.t+Z((R[S]-B[S])/(C[S]-B[S]))*(C.t-B.t),0<=Q&&1>=Q&&0<=B&&1>=B&&(z?M++:M.push({x:R.x,y:R.y,t1:Q,t2:B})))}z=M}else z=z?0:[];if(d)t+=z;else{H=0;for(J=z.length;H<J;H++)z[H].segment1=w,z[H].segment2=G,z[H].bez1=x,z[H].bez2=c;t=t.concat(z)}}}return t}\n", - "function r(a){var b=A(a);if(b.bbox)return C(b.bbox);if(!a)return w();a=I(a);for(var d=0,e=0,h=[],f=[],l,n=0,k=a.length;n<k;n++)l=a[n],\"M\"==l[0]?(d=l[1],e=l[2],h.push(d),f.push(e)):(d=U(d,e,l[1],l[2],l[3],l[4],l[5],l[6]),h=h.concat(d.min.x,d.max.x),f=f.concat(d.min.y,d.max.y),d=l[5],e=l[6]);a=X.apply(0,h);l=X.apply(0,f);h=W.apply(0,h);f=W.apply(0,f);f=w(a,l,h-a,f-l);b.bbox=C(f);return f}function s(a,b,d,e,h){if(h)return[[\"M\",+a+ +h,b],[\"l\",d-2*h,0],[\"a\",h,h,0,0,1,h,h],[\"l\",0,e-2*h],[\"a\",h,h,0,0,1,\n", - "-h,h],[\"l\",2*h-d,0],[\"a\",h,h,0,0,1,-h,-h],[\"l\",0,2*h-e],[\"a\",h,h,0,0,1,h,-h],[\"z\"] ];a=[[\"M\",a,b],[\"l\",d,0],[\"l\",0,e],[\"l\",-d,0],[\"z\"] ];a.toString=z;return a}function x(a,b,d,e,h){null==h&&null==e&&(e=d);a=+a;b=+b;d=+d;e=+e;if(null!=h){var f=Math.PI/180,l=a+d*Math.cos(-e*f);a+=d*Math.cos(-h*f);var n=b+d*Math.sin(-e*f);b+=d*Math.sin(-h*f);d=[[\"M\",l,n],[\"A\",d,d,0,+(180<h-e),0,a,b] ]}else d=[[\"M\",a,b],[\"m\",0,-e],[\"a\",d,e,0,1,1,0,2*e],[\"a\",d,e,0,1,1,0,-2*e],[\"z\"] ];d.toString=z;return d}function G(b){var e=\n", - "A(b);if(e.abs)return d(e.abs);Q(b,\"array\")&&Q(b&&b[0],\"array\")||(b=a.parsePathString(b));if(!b||!b.length)return[[\"M\",0,0] ];var h=[],f=0,l=0,n=0,k=0,p=0;\"M\"==b[0][0]&&(f=+b[0][1],l=+b[0][2],n=f,k=l,p++,h[0]=[\"M\",f,l]);for(var q=3==b.length&&\"M\"==b[0][0]&&\"R\"==b[1][0].toUpperCase()&&\"Z\"==b[2][0].toUpperCase(),s,r,w=p,c=b.length;w<c;w++){h.push(s=[]);r=b[w];p=r[0];if(p!=p.toUpperCase())switch(s[0]=p.toUpperCase(),s[0]){case \"A\":s[1]=r[1];s[2]=r[2];s[3]=r[3];s[4]=r[4];s[5]=r[5];s[6]=+r[6]+f;s[7]=+r[7]+\n", - "l;break;case \"V\":s[1]=+r[1]+l;break;case \"H\":s[1]=+r[1]+f;break;case \"R\":for(var t=[f,l].concat(r.slice(1)),u=2,v=t.length;u<v;u++)t[u]=+t[u]+f,t[++u]=+t[u]+l;h.pop();h=h.concat(P(t,q));break;case \"O\":h.pop();t=x(f,l,r[1],r[2]);t.push(t[0]);h=h.concat(t);break;case \"U\":h.pop();h=h.concat(x(f,l,r[1],r[2],r[3]));s=[\"U\"].concat(h[h.length-1].slice(-2));break;case \"M\":n=+r[1]+f,k=+r[2]+l;default:for(u=1,v=r.length;u<v;u++)s[u]=+r[u]+(u%2?f:l)}else if(\"R\"==p)t=[f,l].concat(r.slice(1)),h.pop(),h=h.concat(P(t,\n", - "q)),s=[\"R\"].concat(r.slice(-2));else if(\"O\"==p)h.pop(),t=x(f,l,r[1],r[2]),t.push(t[0]),h=h.concat(t);else if(\"U\"==p)h.pop(),h=h.concat(x(f,l,r[1],r[2],r[3])),s=[\"U\"].concat(h[h.length-1].slice(-2));else for(t=0,u=r.length;t<u;t++)s[t]=r[t];p=p.toUpperCase();if(\"O\"!=p)switch(s[0]){case \"Z\":f=+n;l=+k;break;case \"H\":f=s[1];break;case \"V\":l=s[1];break;case \"M\":n=s[s.length-2],k=s[s.length-1];default:f=s[s.length-2],l=s[s.length-1]}}h.toString=z;e.abs=d(h);return h}function h(a,b,d,e){return[a,b,d,e,d,\n", - "e]}function J(a,b,d,e,h,f){var l=1/3,n=2/3;return[l*a+n*d,l*b+n*e,l*h+n*d,l*f+n*e,h,f]}function K(b,d,e,h,f,l,n,k,p,s){var r=120*S/180,q=S/180*(+f||0),c=[],t,x=a._.cacher(function(a,b,c){var d=a*F.cos(c)-b*F.sin(c);a=a*F.sin(c)+b*F.cos(c);return{x:d,y:a}});if(s)v=s[0],t=s[1],l=s[2],u=s[3];else{t=x(b,d,-q);b=t.x;d=t.y;t=x(k,p,-q);k=t.x;p=t.y;F.cos(S/180*f);F.sin(S/180*f);t=(b-k)/2;v=(d-p)/2;u=t*t/(e*e)+v*v/(h*h);1<u&&(u=F.sqrt(u),e*=u,h*=u);var u=e*e,w=h*h,u=(l==n?-1:1)*F.sqrt(Z((u*w-u*v*v-w*t*t)/\n", - "(u*v*v+w*t*t)));l=u*e*v/h+(b+k)/2;var u=u*-h*t/e+(d+p)/2,v=F.asin(((d-u)/h).toFixed(9));t=F.asin(((p-u)/h).toFixed(9));v=b<l?S-v:v;t=k<l?S-t:t;0>v&&(v=2*S+v);0>t&&(t=2*S+t);n&&v>t&&(v-=2*S);!n&&t>v&&(t-=2*S)}if(Z(t-v)>r){var c=t,w=k,G=p;t=v+r*(n&&t>v?1:-1);k=l+e*F.cos(t);p=u+h*F.sin(t);c=K(k,p,e,h,f,0,n,w,G,[t,c,l,u])}l=t-v;f=F.cos(v);r=F.sin(v);n=F.cos(t);t=F.sin(t);l=F.tan(l/4);e=4/3*e*l;l*=4/3*h;h=[b,d];b=[b+e*r,d-l*f];d=[k+e*t,p-l*n];k=[k,p];b[0]=2*h[0]-b[0];b[1]=2*h[1]-b[1];if(s)return[b,d,k].concat(c);\n", - "c=[b,d,k].concat(c).join().split(\",\");s=[];k=0;for(p=c.length;k<p;k++)s[k]=k%2?x(c[k-1],c[k],q).y:x(c[k],c[k+1],q).x;return s}function U(a,b,d,e,h,f,l,k){for(var n=[],p=[[],[] ],s,r,c,t,q=0;2>q;++q)0==q?(r=6*a-12*d+6*h,s=-3*a+9*d-9*h+3*l,c=3*d-3*a):(r=6*b-12*e+6*f,s=-3*b+9*e-9*f+3*k,c=3*e-3*b),1E-12>Z(s)?1E-12>Z(r)||(s=-c/r,0<s&&1>s&&n.push(s)):(t=r*r-4*c*s,c=F.sqrt(t),0>t||(t=(-r+c)/(2*s),0<t&&1>t&&n.push(t),s=(-r-c)/(2*s),0<s&&1>s&&n.push(s)));for(r=q=n.length;q--;)s=n[q],c=1-s,p[0][q]=c*c*c*a+3*\n", - "c*c*s*d+3*c*s*s*h+s*s*s*l,p[1][q]=c*c*c*b+3*c*c*s*e+3*c*s*s*f+s*s*s*k;p[0][r]=a;p[1][r]=b;p[0][r+1]=l;p[1][r+1]=k;p[0].length=p[1].length=r+2;return{min:{x:X.apply(0,p[0]),y:X.apply(0,p[1])},max:{x:W.apply(0,p[0]),y:W.apply(0,p[1])}}}function I(a,b){var e=!b&&A(a);if(!b&&e.curve)return d(e.curve);var f=G(a),l=b&&G(b),n={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},k={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},p=function(a,b,c){if(!a)return[\"C\",b.x,b.y,b.x,b.y,b.x,b.y];a[0]in{T:1,Q:1}||(b.qx=b.qy=null);\n", - "switch(a[0]){case \"M\":b.X=a[1];b.Y=a[2];break;case \"A\":a=[\"C\"].concat(K.apply(0,[b.x,b.y].concat(a.slice(1))));break;case \"S\":\"C\"==c||\"S\"==c?(c=2*b.x-b.bx,b=2*b.y-b.by):(c=b.x,b=b.y);a=[\"C\",c,b].concat(a.slice(1));break;case \"T\":\"Q\"==c||\"T\"==c?(b.qx=2*b.x-b.qx,b.qy=2*b.y-b.qy):(b.qx=b.x,b.qy=b.y);a=[\"C\"].concat(J(b.x,b.y,b.qx,b.qy,a[1],a[2]));break;case \"Q\":b.qx=a[1];b.qy=a[2];a=[\"C\"].concat(J(b.x,b.y,a[1],a[2],a[3],a[4]));break;case \"L\":a=[\"C\"].concat(h(b.x,b.y,a[1],a[2]));break;case \"H\":a=[\"C\"].concat(h(b.x,\n", - "b.y,a[1],b.y));break;case \"V\":a=[\"C\"].concat(h(b.x,b.y,b.x,a[1]));break;case \"Z\":a=[\"C\"].concat(h(b.x,b.y,b.X,b.Y))}return a},s=function(a,b){if(7<a[b].length){a[b].shift();for(var c=a[b];c.length;)q[b]=\"A\",l&&(u[b]=\"A\"),a.splice(b++,0,[\"C\"].concat(c.splice(0,6)));a.splice(b,1);v=W(f.length,l&&l.length||0)}},r=function(a,b,c,d,e){a&&b&&\"M\"==a[e][0]&&\"M\"!=b[e][0]&&(b.splice(e,0,[\"M\",d.x,d.y]),c.bx=0,c.by=0,c.x=a[e][1],c.y=a[e][2],v=W(f.length,l&&l.length||0))},q=[],u=[],c=\"\",t=\"\",x=0,v=W(f.length,\n", - "l&&l.length||0);for(;x<v;x++){f[x]&&(c=f[x][0]);\"C\"!=c&&(q[x]=c,x&&(t=q[x-1]));f[x]=p(f[x],n,t);\"A\"!=q[x]&&\"C\"==c&&(q[x]=\"C\");s(f,x);l&&(l[x]&&(c=l[x][0]),\"C\"!=c&&(u[x]=c,x&&(t=u[x-1])),l[x]=p(l[x],k,t),\"A\"!=u[x]&&\"C\"==c&&(u[x]=\"C\"),s(l,x));r(f,l,n,k,x);r(l,f,k,n,x);var w=f[x],z=l&&l[x],y=w.length,U=l&&z.length;n.x=w[y-2];n.y=w[y-1];n.bx=$(w[y-4])||n.x;n.by=$(w[y-3])||n.y;k.bx=l&&($(z[U-4])||k.x);k.by=l&&($(z[U-3])||k.y);k.x=l&&z[U-2];k.y=l&&z[U-1]}l||(e.curve=d(f));return l?[f,l]:f}function P(a,\n", - "b){for(var d=[],e=0,h=a.length;h-2*!b>e;e+=2){var f=[{x:+a[e-2],y:+a[e-1]},{x:+a[e],y:+a[e+1]},{x:+a[e+2],y:+a[e+3]},{x:+a[e+4],y:+a[e+5]}];b?e?h-4==e?f[3]={x:+a[0],y:+a[1]}:h-2==e&&(f[2]={x:+a[0],y:+a[1]},f[3]={x:+a[2],y:+a[3]}):f[0]={x:+a[h-2],y:+a[h-1]}:h-4==e?f[3]=f[2]:e||(f[0]={x:+a[e],y:+a[e+1]});d.push([\"C\",(-f[0].x+6*f[1].x+f[2].x)/6,(-f[0].y+6*f[1].y+f[2].y)/6,(f[1].x+6*f[2].x-f[3].x)/6,(f[1].y+6*f[2].y-f[3].y)/6,f[2].x,f[2].y])}return d}y=k.prototype;var Q=a.is,C=a._.clone,L=\"hasOwnProperty\",\n", - "N=/,?([a-z]),?/gi,$=parseFloat,F=Math,S=F.PI,X=F.min,W=F.max,ma=F.pow,Z=F.abs;M=n(1);var na=n(),ba=n(0,1),V=a._unit2px;a.path=A;a.path.getTotalLength=M;a.path.getPointAtLength=na;a.path.getSubpath=function(a,b,d){if(1E-6>this.getTotalLength(a)-d)return ba(a,b).end;a=ba(a,d,1);return b?ba(a,b).end:a};y.getTotalLength=function(){if(this.node.getTotalLength)return this.node.getTotalLength()};y.getPointAtLength=function(a){return na(this.attr(\"d\"),a)};y.getSubpath=function(b,d){return a.path.getSubpath(this.attr(\"d\"),\n", - "b,d)};a._.box=w;a.path.findDotsAtSegment=u;a.path.bezierBBox=p;a.path.isPointInsideBBox=b;a.path.isBBoxIntersect=q;a.path.intersection=function(a,b){return l(a,b)};a.path.intersectionNumber=function(a,b){return l(a,b,1)};a.path.isPointInside=function(a,d,e){var h=r(a);return b(h,d,e)&&1==l(a,[[\"M\",d,e],[\"H\",h.x2+10] ],1)%2};a.path.getBBox=r;a.path.get={path:function(a){return a.attr(\"path\")},circle:function(a){a=V(a);return x(a.cx,a.cy,a.r)},ellipse:function(a){a=V(a);return x(a.cx||0,a.cy||0,a.rx,\n", - "a.ry)},rect:function(a){a=V(a);return s(a.x||0,a.y||0,a.width,a.height,a.rx,a.ry)},image:function(a){a=V(a);return s(a.x||0,a.y||0,a.width,a.height)},line:function(a){return\"M\"+[a.attr(\"x1\")||0,a.attr(\"y1\")||0,a.attr(\"x2\"),a.attr(\"y2\")]},polyline:function(a){return\"M\"+a.attr(\"points\")},polygon:function(a){return\"M\"+a.attr(\"points\")+\"z\"},deflt:function(a){a=a.node.getBBox();return s(a.x,a.y,a.width,a.height)}};a.path.toRelative=function(b){var e=A(b),h=String.prototype.toLowerCase;if(e.rel)return d(e.rel);\n", - "a.is(b,\"array\")&&a.is(b&&b[0],\"array\")||(b=a.parsePathString(b));var f=[],l=0,n=0,k=0,p=0,s=0;\"M\"==b[0][0]&&(l=b[0][1],n=b[0][2],k=l,p=n,s++,f.push([\"M\",l,n]));for(var r=b.length;s<r;s++){var q=f[s]=[],x=b[s];if(x[0]!=h.call(x[0]))switch(q[0]=h.call(x[0]),q[0]){case \"a\":q[1]=x[1];q[2]=x[2];q[3]=x[3];q[4]=x[4];q[5]=x[5];q[6]=+(x[6]-l).toFixed(3);q[7]=+(x[7]-n).toFixed(3);break;case \"v\":q[1]=+(x[1]-n).toFixed(3);break;case \"m\":k=x[1],p=x[2];default:for(var c=1,t=x.length;c<t;c++)q[c]=+(x[c]-(c%2?l:\n", - "n)).toFixed(3)}else for(f[s]=[],\"m\"==x[0]&&(k=x[1]+l,p=x[2]+n),q=0,c=x.length;q<c;q++)f[s][q]=x[q];x=f[s].length;switch(f[s][0]){case \"z\":l=k;n=p;break;case \"h\":l+=+f[s][x-1];break;case \"v\":n+=+f[s][x-1];break;default:l+=+f[s][x-2],n+=+f[s][x-1]}}f.toString=z;e.rel=d(f);return f};a.path.toAbsolute=G;a.path.toCubic=I;a.path.map=function(a,b){if(!b)return a;var d,e,h,f,l,n,k;a=I(a);h=0;for(l=a.length;h<l;h++)for(k=a[h],f=1,n=k.length;f<n;f+=2)d=b.x(k[f],k[f+1]),e=b.y(k[f],k[f+1]),k[f]=d,k[f+1]=e;return a};\n", - "a.path.toString=z;a.path.clone=d});C.plugin(function(a,v,y,C){var A=Math.max,w=Math.min,z=function(a){this.items=[];this.bindings={};this.length=0;this.type=\"set\";if(a)for(var f=0,n=a.length;f<n;f++)a[f]&&(this[this.items.length]=this.items[this.items.length]=a[f],this.length++)};v=z.prototype;v.push=function(){for(var a,f,n=0,k=arguments.length;n<k;n++)if(a=arguments[n])f=this.items.length,this[f]=this.items[f]=a,this.length++;return this};v.pop=function(){this.length&&delete this[this.length--];\n", - "return this.items.pop()};v.forEach=function(a,f){for(var n=0,k=this.items.length;n<k&&!1!==a.call(f,this.items[n],n);n++);return this};v.animate=function(d,f,n,u){\"function\"!=typeof n||n.length||(u=n,n=L.linear);d instanceof a._.Animation&&(u=d.callback,n=d.easing,f=n.dur,d=d.attr);var p=arguments;if(a.is(d,\"array\")&&a.is(p[p.length-1],\"array\"))var b=!0;var q,e=function(){q?this.b=q:q=this.b},l=0,r=u&&function(){l++==this.length&&u.call(this)};return this.forEach(function(a,l){k.once(\"snap.animcreated.\"+\n", - "a.id,e);b?p[l]&&a.animate.apply(a,p[l]):a.animate(d,f,n,r)})};v.remove=function(){for(;this.length;)this.pop().remove();return this};v.bind=function(a,f,k){var u={};if(\"function\"==typeof f)this.bindings[a]=f;else{var p=k||a;this.bindings[a]=function(a){u[p]=a;f.attr(u)}}return this};v.attr=function(a){var f={},k;for(k in a)if(this.bindings[k])this.bindings[k](a[k]);else f[k]=a[k];a=0;for(k=this.items.length;a<k;a++)this.items[a].attr(f);return this};v.clear=function(){for(;this.length;)this.pop()};\n", - "v.splice=function(a,f,k){a=0>a?A(this.length+a,0):a;f=A(0,w(this.length-a,f));var u=[],p=[],b=[],q;for(q=2;q<arguments.length;q++)b.push(arguments[q]);for(q=0;q<f;q++)p.push(this[a+q]);for(;q<this.length-a;q++)u.push(this[a+q]);var e=b.length;for(q=0;q<e+u.length;q++)this.items[a+q]=this[a+q]=q<e?b[q]:u[q-e];for(q=this.items.length=this.length-=f-e;this[q];)delete this[q++];return new z(p)};v.exclude=function(a){for(var f=0,k=this.length;f<k;f++)if(this[f]==a)return this.splice(f,1),!0;return!1};\n", - "v.insertAfter=function(a){for(var f=this.items.length;f--;)this.items[f].insertAfter(a);return this};v.getBBox=function(){for(var a=[],f=[],k=[],u=[],p=this.items.length;p--;)if(!this.items[p].removed){var b=this.items[p].getBBox();a.push(b.x);f.push(b.y);k.push(b.x+b.width);u.push(b.y+b.height)}a=w.apply(0,a);f=w.apply(0,f);k=A.apply(0,k);u=A.apply(0,u);return{x:a,y:f,x2:k,y2:u,width:k-a,height:u-f,cx:a+(k-a)/2,cy:f+(u-f)/2}};v.clone=function(a){a=new z;for(var f=0,k=this.items.length;f<k;f++)a.push(this.items[f].clone());\n", - "return a};v.toString=function(){return\"Snap\\u2018s set\"};v.type=\"set\";a.set=function(){var a=new z;arguments.length&&a.push.apply(a,Array.prototype.slice.call(arguments,0));return a}});C.plugin(function(a,v,y,C){function A(a){var b=a[0];switch(b.toLowerCase()){case \"t\":return[b,0,0];case \"m\":return[b,1,0,0,1,0,0];case \"r\":return 4==a.length?[b,0,a[2],a[3] ]:[b,0];case \"s\":return 5==a.length?[b,1,1,a[3],a[4] ]:3==a.length?[b,1,1]:[b,1]}}function w(b,d,f){d=q(d).replace(/\\.{3}|\\u2026/g,b);b=a.parseTransformString(b)||\n", - "[];d=a.parseTransformString(d)||[];for(var k=Math.max(b.length,d.length),p=[],v=[],h=0,w,z,y,I;h<k;h++){y=b[h]||A(d[h]);I=d[h]||A(y);if(y[0]!=I[0]||\"r\"==y[0].toLowerCase()&&(y[2]!=I[2]||y[3]!=I[3])||\"s\"==y[0].toLowerCase()&&(y[3]!=I[3]||y[4]!=I[4])){b=a._.transform2matrix(b,f());d=a._.transform2matrix(d,f());p=[[\"m\",b.a,b.b,b.c,b.d,b.e,b.f] ];v=[[\"m\",d.a,d.b,d.c,d.d,d.e,d.f] ];break}p[h]=[];v[h]=[];w=0;for(z=Math.max(y.length,I.length);w<z;w++)w in y&&(p[h][w]=y[w]),w in I&&(v[h][w]=I[w])}return{from:u(p),\n", - "to:u(v),f:n(p)}}function z(a){return a}function d(a){return function(b){return+b.toFixed(3)+a}}function f(b){return a.rgb(b[0],b[1],b[2])}function n(a){var b=0,d,f,k,n,h,p,q=[];d=0;for(f=a.length;d<f;d++){h=\"[\";p=['\"'+a[d][0]+'\"'];k=1;for(n=a[d].length;k<n;k++)p[k]=\"val[\"+b++ +\"]\";h+=p+\"]\";q[d]=h}return Function(\"val\",\"return Snap.path.toString.call([\"+q+\"])\")}function u(a){for(var b=[],d=0,f=a.length;d<f;d++)for(var k=1,n=a[d].length;k<n;k++)b.push(a[d][k]);return b}var p={},b=/[a-z]+$/i,q=String;\n", - "p.stroke=p.fill=\"colour\";v.prototype.equal=function(a,b){return k(\"snap.util.equal\",this,a,b).firstDefined()};k.on(\"snap.util.equal\",function(e,k){var r,s;r=q(this.attr(e)||\"\");var x=this;if(r==+r&&k==+k)return{from:+r,to:+k,f:z};if(\"colour\"==p[e])return r=a.color(r),s=a.color(k),{from:[r.r,r.g,r.b,r.opacity],to:[s.r,s.g,s.b,s.opacity],f:f};if(\"transform\"==e||\"gradientTransform\"==e||\"patternTransform\"==e)return k instanceof a.Matrix&&(k=k.toTransformString()),a._.rgTransform.test(k)||(k=a._.svgTransform2string(k)),\n", - "w(r,k,function(){return x.getBBox(1)});if(\"d\"==e||\"path\"==e)return r=a.path.toCubic(r,k),{from:u(r[0]),to:u(r[1]),f:n(r[0])};if(\"points\"==e)return r=q(r).split(a._.separator),s=q(k).split(a._.separator),{from:r,to:s,f:function(a){return a}};aUnit=r.match(b);s=q(k).match(b);return aUnit&&aUnit==s?{from:parseFloat(r),to:parseFloat(k),f:d(aUnit)}:{from:this.asPX(e),to:this.asPX(e,k),f:z}})});C.plugin(function(a,v,y,C){var A=v.prototype,w=\"createTouch\"in C.doc;v=\"click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel\".split(\" \");\n", - "var z={mousedown:\"touchstart\",mousemove:\"touchmove\",mouseup:\"touchend\"},d=function(a,b){var d=\"y\"==a?\"scrollTop\":\"scrollLeft\",e=b&&b.node?b.node.ownerDocument:C.doc;return e[d in e.documentElement?\"documentElement\":\"body\"][d]},f=function(){this.returnValue=!1},n=function(){return this.originalEvent.preventDefault()},u=function(){this.cancelBubble=!0},p=function(){return this.originalEvent.stopPropagation()},b=function(){if(C.doc.addEventListener)return function(a,b,e,f){var k=w&&z[b]?z[b]:b,l=function(k){var l=\n", - "d(\"y\",f),q=d(\"x\",f);if(w&&z.hasOwnProperty(b))for(var r=0,u=k.targetTouches&&k.targetTouches.length;r<u;r++)if(k.targetTouches[r].target==a||a.contains(k.targetTouches[r].target)){u=k;k=k.targetTouches[r];k.originalEvent=u;k.preventDefault=n;k.stopPropagation=p;break}return e.call(f,k,k.clientX+q,k.clientY+l)};b!==k&&a.addEventListener(b,l,!1);a.addEventListener(k,l,!1);return function(){b!==k&&a.removeEventListener(b,l,!1);a.removeEventListener(k,l,!1);return!0}};if(C.doc.attachEvent)return function(a,\n", - "b,e,h){var k=function(a){a=a||h.node.ownerDocument.window.event;var b=d(\"y\",h),k=d(\"x\",h),k=a.clientX+k,b=a.clientY+b;a.preventDefault=a.preventDefault||f;a.stopPropagation=a.stopPropagation||u;return e.call(h,a,k,b)};a.attachEvent(\"on\"+b,k);return function(){a.detachEvent(\"on\"+b,k);return!0}}}(),q=[],e=function(a){for(var b=a.clientX,e=a.clientY,f=d(\"y\"),l=d(\"x\"),n,p=q.length;p--;){n=q[p];if(w)for(var r=a.touches&&a.touches.length,u;r--;){if(u=a.touches[r],u.identifier==n.el._drag.id||n.el.node.contains(u.target)){b=\n", - "u.clientX;e=u.clientY;(a.originalEvent?a.originalEvent:a).preventDefault();break}}else a.preventDefault();b+=l;e+=f;k(\"snap.drag.move.\"+n.el.id,n.move_scope||n.el,b-n.el._drag.x,e-n.el._drag.y,b,e,a)}},l=function(b){a.unmousemove(e).unmouseup(l);for(var d=q.length,f;d--;)f=q[d],f.el._drag={},k(\"snap.drag.end.\"+f.el.id,f.end_scope||f.start_scope||f.move_scope||f.el,b);q=[]};for(y=v.length;y--;)(function(d){a[d]=A[d]=function(e,f){a.is(e,\"function\")&&(this.events=this.events||[],this.events.push({name:d,\n", - "f:e,unbind:b(this.node||document,d,e,f||this)}));return this};a[\"un\"+d]=A[\"un\"+d]=function(a){for(var b=this.events||[],e=b.length;e--;)if(b[e].name==d&&(b[e].f==a||!a)){b[e].unbind();b.splice(e,1);!b.length&&delete this.events;break}return this}})(v[y]);A.hover=function(a,b,d,e){return this.mouseover(a,d).mouseout(b,e||d)};A.unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};var r=[];A.drag=function(b,d,f,h,n,p){function u(r,v,w){(r.originalEvent||r).preventDefault();this._drag.x=v;\n", - "this._drag.y=w;this._drag.id=r.identifier;!q.length&&a.mousemove(e).mouseup(l);q.push({el:this,move_scope:h,start_scope:n,end_scope:p});d&&k.on(\"snap.drag.start.\"+this.id,d);b&&k.on(\"snap.drag.move.\"+this.id,b);f&&k.on(\"snap.drag.end.\"+this.id,f);k(\"snap.drag.start.\"+this.id,n||h||this,v,w,r)}if(!arguments.length){var v;return this.drag(function(a,b){this.attr({transform:v+(v?\"T\":\"t\")+[a,b]})},function(){v=this.transform().local})}this._drag={};r.push({el:this,start:u});this.mousedown(u);return this};\n", - "A.undrag=function(){for(var b=r.length;b--;)r[b].el==this&&(this.unmousedown(r[b].start),r.splice(b,1),k.unbind(\"snap.drag.*.\"+this.id));!r.length&&a.unmousemove(e).unmouseup(l);return this}});C.plugin(function(a,v,y,C){y=y.prototype;var A=/^\\s*url\\((.+)\\)/,w=String,z=a._.$;a.filter={};y.filter=function(d){var f=this;\"svg\"!=f.type&&(f=f.paper);d=a.parse(w(d));var k=a._.id(),u=z(\"filter\");z(u,{id:k,filterUnits:\"userSpaceOnUse\"});u.appendChild(d.node);f.defs.appendChild(u);return new v(u)};k.on(\"snap.util.getattr.filter\",\n", - "function(){k.stop();var d=z(this.node,\"filter\");if(d)return(d=w(d).match(A))&&a.select(d[1])});k.on(\"snap.util.attr.filter\",function(d){if(d instanceof v&&\"filter\"==d.type){k.stop();var f=d.node.id;f||(z(d.node,{id:d.id}),f=d.id);z(this.node,{filter:a.url(f)})}d&&\"none\"!=d||(k.stop(),this.node.removeAttribute(\"filter\"))});a.filter.blur=function(d,f){null==d&&(d=2);return a.format('<feGaussianBlur stdDeviation=\"{def}\"/>',{def:null==f?d:[d,f]})};a.filter.blur.toString=function(){return this()};a.filter.shadow=\n", - "function(d,f,k,u,p){\"string\"==typeof k&&(p=u=k,k=4);\"string\"!=typeof u&&(p=u,u=\"#000\");null==k&&(k=4);null==p&&(p=1);null==d&&(d=0,f=2);null==f&&(f=d);u=a.color(u||\"#000\");return a.format('<feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"{blur}\"/><feOffset dx=\"{dx}\" dy=\"{dy}\" result=\"offsetblur\"/><feFlood flood-color=\"{color}\"/><feComposite in2=\"offsetblur\" operator=\"in\"/><feComponentTransfer><feFuncA type=\"linear\" slope=\"{opacity}\"/></feComponentTransfer><feMerge><feMergeNode/><feMergeNode in=\"SourceGraphic\"/></feMerge>',\n", - "{color:u,dx:d,dy:f,blur:k,opacity:p})};a.filter.shadow.toString=function(){return this()};a.filter.grayscale=function(d){null==d&&(d=1);return a.format('<feColorMatrix type=\"matrix\" values=\"{a} {b} {c} 0 0 {d} {e} {f} 0 0 {g} {b} {h} 0 0 0 0 0 1 0\"/>',{a:0.2126+0.7874*(1-d),b:0.7152-0.7152*(1-d),c:0.0722-0.0722*(1-d),d:0.2126-0.2126*(1-d),e:0.7152+0.2848*(1-d),f:0.0722-0.0722*(1-d),g:0.2126-0.2126*(1-d),h:0.0722+0.9278*(1-d)})};a.filter.grayscale.toString=function(){return this()};a.filter.sepia=\n", - "function(d){null==d&&(d=1);return a.format('<feColorMatrix type=\"matrix\" values=\"{a} {b} {c} 0 0 {d} {e} {f} 0 0 {g} {h} {i} 0 0 0 0 0 1 0\"/>',{a:0.393+0.607*(1-d),b:0.769-0.769*(1-d),c:0.189-0.189*(1-d),d:0.349-0.349*(1-d),e:0.686+0.314*(1-d),f:0.168-0.168*(1-d),g:0.272-0.272*(1-d),h:0.534-0.534*(1-d),i:0.131+0.869*(1-d)})};a.filter.sepia.toString=function(){return this()};a.filter.saturate=function(d){null==d&&(d=1);return a.format('<feColorMatrix type=\"saturate\" values=\"{amount}\"/>',{amount:1-\n", - "d})};a.filter.saturate.toString=function(){return this()};a.filter.hueRotate=function(d){return a.format('<feColorMatrix type=\"hueRotate\" values=\"{angle}\"/>',{angle:d||0})};a.filter.hueRotate.toString=function(){return this()};a.filter.invert=function(d){null==d&&(d=1);return a.format('<feComponentTransfer><feFuncR type=\"table\" tableValues=\"{amount} {amount2}\"/><feFuncG type=\"table\" tableValues=\"{amount} {amount2}\"/><feFuncB type=\"table\" tableValues=\"{amount} {amount2}\"/></feComponentTransfer>',{amount:d,\n", - "amount2:1-d})};a.filter.invert.toString=function(){return this()};a.filter.brightness=function(d){null==d&&(d=1);return a.format('<feComponentTransfer><feFuncR type=\"linear\" slope=\"{amount}\"/><feFuncG type=\"linear\" slope=\"{amount}\"/><feFuncB type=\"linear\" slope=\"{amount}\"/></feComponentTransfer>',{amount:d})};a.filter.brightness.toString=function(){return this()};a.filter.contrast=function(d){null==d&&(d=1);return a.format('<feComponentTransfer><feFuncR type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/><feFuncG type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/><feFuncB type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/></feComponentTransfer>',\n", - "{amount:d,amount2:0.5-d/2})};a.filter.contrast.toString=function(){return this()}});return C});\n", - "\n", - "]]> </script>\n", - "</svg>\n" - ], "text/plain": [ - "Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), Compose.UnitBox{Float64,Float64,Float64,Float64}(-1.2, -1.2, 2.4, 2.4, 0.0mm, 0.0mm, 0.0mm, 0.0mm), nothing, nothing, nothing, List([Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.LinePrimitive}(Compose.LinePrimitive[Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.9135192758072158cx, 0.48896789789630135cy), (0.1846200872106957cx, 0.9457989759344138cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.9908121359972968cx, 0.3331191988856653cy), (0.9181856072854541cx, -0.47036654934881905cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.004396831248990096cx, 0.959639073298307cy), (-0.8161783253363644cx, 0.6063397424266846cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.8152750949959612cx, -0.6124213012084072cy), (0.010023978188983887cx, -0.9595929230854616cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.1702230927371292cx, -0.9458687617581273cy), (-0.9134755773606764cx, -0.48087661166042883cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.9191440105717664cx, 0.4643343367465424cy), (-0.9907768465335194cx, -0.32510089444010687cy)])], Symbol(\"\"))]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(1.2247448713915892mm)]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.8274509803921568,0.8274509803921568,0.8274509803921568,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(1.2247448713915892mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.8274509803921568,0.8274509803921568,0.8274509803921568,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(4.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}}(Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}[Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((1.0cx, 0.4347668738307151cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.09813936301791149cx, 1.0cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.9089977432827507cx, -0.5720142242938688cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-0.08369867009780563cx, -1.0cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-0.9099208571052858cx, 0.5659788157249916cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-1.0cx, -0.4267453734185561cy), 0.04082482904638631w)], Symbol(\"\"))]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(0.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.25098039215686274,0.8784313725490196,0.8156862745098039,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}}(Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}[Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((1.0cx, 0.4347668738307151cy), \"1\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.09813936301791149cx, 1.0cy), \"2\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.9089977432827507cx, -0.5720142242938688cy), \"3\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.08369867009780563cx, -1.0cy), \"4\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.9099208571052858cx, 0.5659788157249916cy), \"5\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-1.0cx, -0.4267453734185561cy), \"6\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm))], Symbol(\"\"))]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(4.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\"))]), List([]), List([]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\"))" + "update_rule_3! (generic function with 1 method)" ] }, + "execution_count": 10, "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Minimal 1-tree \n", - "Lambda : 1.0\n", - "Index : 14\n", - "Weight : 27.0\n", - "k : 11\n" - ] + "output_type": "execute_result" } ], "source": [ - "display_S(column_generation(example))" + "function update_rule!(λ, D, Ï::T) where T <: Integer\n", + " λ .= λ .+ Ï .* (2 .- D)\n", + "end\n", + "\n", + "update_rule_1!(λ, D) = update_rule!(λ, D, 1)\n", + "update_rule_2!(λ, D) = update_rule!(λ, D, 2)\n", + "update_rule_3!(λ, D) = update_rule!(λ, D, 3)" ] }, { "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n", - "<svg xmlns=\"http://www.w3.org/2000/svg\"\n", - " xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n", - " version=\"1.2\"\n", - " width=\"141.42mm\" height=\"100mm\" viewBox=\"0 0 141.42 100\"\n", - " stroke=\"none\"\n", - " fill=\"#000000\"\n", - " stroke-width=\"0.3\"\n", - " font-size=\"3.88\"\n", - ">\n", - "<defs>\n", - " <marker id=\"arrow\" markerWidth=\"15\" markerHeight=\"7\" refX=\"5\" refY=\"3.5\" orient=\"auto\" markerUnits=\"strokeWidth\">\n", - " <path d=\"M0,0 L15,3.5 L0,7 z\" stroke=\"context-stroke\" fill=\"context-stroke\"/>\n", - " </marker>\n", - "</defs>\n", - "<g stroke-width=\"1.13\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#D3D3D3\" id=\"img-19e42e3b-1\">\n", - " <g transform=\"translate(23.97,32.19)\">\n", - " <path fill=\"none\" d=\"M9.62,-13.13 L-9.62,13.13 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(62.49,11.95)\">\n", - " <path fill=\"none\" d=\"M-20.87,2.87 L20.87,-2.87 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(107.33,80.32)\">\n", - " <path fill=\"none\" d=\"M-17.11,9 L17.11,-9 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(59.8,87.08)\">\n", - " <path fill=\"none\" d=\"M20.55,3.63 L-20.55,-3.63 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(22.82,65.65)\">\n", - " <path fill=\"none\" d=\"M-8.69,-13.27 L8.69,13.27 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(109.23,20.12)\">\n", - " <path fill=\"none\" d=\"M-16.09,-9.29 L16.09,9.29 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(129.27,50.44)\">\n", - " <path fill=\"none\" d=\"M-0.29,14.6 L0.29,-14.6 \" class=\"primitive\"/>\n", - " </g>\n", - "</g>\n", - "<g stroke-width=\"1.13\" stroke=\"#D3D3D3\" id=\"img-19e42e3b-2\">\n", - "</g>\n", - "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-19e42e3b-3\">\n", - "</g>\n", - "<g stroke-width=\"0\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#40E0D0\" id=\"img-19e42e3b-4\">\n", - " <g transform=\"translate(36.15,15.56)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(85.75,91.67)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(11.79,48.81)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(88.83,8.33)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(128.9,68.97)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(129.64,31.9)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(33.85,82.49)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", - " </g>\n", - "</g>\n", - "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-19e42e3b-5\">\n", - " <g transform=\"translate(36.15,15.56)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(85.75,91.67)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">2</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(11.79,48.81)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">3</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(88.83,8.33)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">4</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(128.9,68.97)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(129.64,31.9)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">6</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(33.85,82.49)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">7</text>\n", - " </g>\n", - " </g>\n", - "</g>\n", - "</svg>\n" - ], - "text/html": [ - "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n", - "<svg xmlns=\"http://www.w3.org/2000/svg\"\n", - " xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n", - " version=\"1.2\"\n", - " width=\"141.42mm\" height=\"100mm\" viewBox=\"0 0 141.42 100\"\n", - " stroke=\"none\"\n", - " fill=\"#000000\"\n", - " stroke-width=\"0.3\"\n", - " font-size=\"3.88\"\n", - "\n", - " id=\"img-244d01be\">\n", - "<defs>\n", - " <marker id=\"arrow\" markerWidth=\"15\" markerHeight=\"7\" refX=\"5\" refY=\"3.5\" orient=\"auto\" markerUnits=\"strokeWidth\">\n", - " <path d=\"M0,0 L15,3.5 L0,7 z\" stroke=\"context-stroke\" fill=\"context-stroke\"/>\n", - " </marker>\n", - "</defs>\n", - "<g stroke-width=\"1.13\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#D3D3D3\" id=\"img-244d01be-1\">\n", - " <g transform=\"translate(23.97,32.19)\">\n", - " <path fill=\"none\" d=\"M9.62,-13.13 L-9.62,13.13 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(62.49,11.95)\">\n", - " <path fill=\"none\" d=\"M-20.87,2.87 L20.87,-2.87 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(107.33,80.32)\">\n", - " <path fill=\"none\" d=\"M-17.11,9 L17.11,-9 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(59.8,87.08)\">\n", - " <path fill=\"none\" d=\"M20.55,3.63 L-20.55,-3.63 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(22.82,65.65)\">\n", - " <path fill=\"none\" d=\"M-8.69,-13.27 L8.69,13.27 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(109.23,20.12)\">\n", - " <path fill=\"none\" d=\"M-16.09,-9.29 L16.09,9.29 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(129.27,50.44)\">\n", - " <path fill=\"none\" d=\"M-0.29,14.6 L0.29,-14.6 \" class=\"primitive\"/>\n", - " </g>\n", - "</g>\n", - "<g stroke-width=\"1.13\" stroke=\"#D3D3D3\" id=\"img-244d01be-2\">\n", - "</g>\n", - "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-244d01be-3\">\n", - "</g>\n", - "<g stroke-width=\"0\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#40E0D0\" id=\"img-244d01be-4\">\n", - " <g transform=\"translate(36.15,15.56)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(85.75,91.67)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(11.79,48.81)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(88.83,8.33)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(128.9,68.97)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(129.64,31.9)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(33.85,82.49)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", - " </g>\n", - "</g>\n", - "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-244d01be-5\">\n", - " <g transform=\"translate(36.15,15.56)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(85.75,91.67)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">2</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(11.79,48.81)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">3</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(88.83,8.33)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">4</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(128.9,68.97)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(129.64,31.9)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">6</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(33.85,82.49)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">7</text>\n", - " </g>\n", - " </g>\n", - "</g>\n", - "<script> <![CDATA[\n", - "(function(N){var k=/[\\.\\/]/,L=/\\s*,\\s*/,C=function(a,d){return a-d},a,v,y={n:{}},M=function(){for(var a=0,d=this.length;a<d;a++)if(\"undefined\"!=typeof this[a])return this[a]},A=function(){for(var a=this.length;--a;)if(\"undefined\"!=typeof this[a])return this[a]},w=function(k,d){k=String(k);var f=v,n=Array.prototype.slice.call(arguments,2),u=w.listeners(k),p=0,b,q=[],e={},l=[],r=a;l.firstDefined=M;l.lastDefined=A;a=k;for(var s=v=0,x=u.length;s<x;s++)\"zIndex\"in u[s]&&(q.push(u[s].zIndex),0>u[s].zIndex&&\n", - "(e[u[s].zIndex]=u[s]));for(q.sort(C);0>q[p];)if(b=e[q[p++] ],l.push(b.apply(d,n)),v)return v=f,l;for(s=0;s<x;s++)if(b=u[s],\"zIndex\"in b)if(b.zIndex==q[p]){l.push(b.apply(d,n));if(v)break;do if(p++,(b=e[q[p] ])&&l.push(b.apply(d,n)),v)break;while(b)}else e[b.zIndex]=b;else if(l.push(b.apply(d,n)),v)break;v=f;a=r;return l};w._events=y;w.listeners=function(a){a=a.split(k);var d=y,f,n,u,p,b,q,e,l=[d],r=[];u=0;for(p=a.length;u<p;u++){e=[];b=0;for(q=l.length;b<q;b++)for(d=l[b].n,f=[d[a[u] ],d[\"*\"] ],n=2;n--;)if(d=\n", - "f[n])e.push(d),r=r.concat(d.f||[]);l=e}return r};w.on=function(a,d){a=String(a);if(\"function\"!=typeof d)return function(){};for(var f=a.split(L),n=0,u=f.length;n<u;n++)(function(a){a=a.split(k);for(var b=y,f,e=0,l=a.length;e<l;e++)b=b.n,b=b.hasOwnProperty(a[e])&&b[a[e] ]||(b[a[e] ]={n:{}});b.f=b.f||[];e=0;for(l=b.f.length;e<l;e++)if(b.f[e]==d){f=!0;break}!f&&b.f.push(d)})(f[n]);return function(a){+a==+a&&(d.zIndex=+a)}};w.f=function(a){var d=[].slice.call(arguments,1);return function(){w.apply(null,\n", - "[a,null].concat(d).concat([].slice.call(arguments,0)))}};w.stop=function(){v=1};w.nt=function(k){return k?(new RegExp(\"(?:\\\\.|\\\\/|^)\"+k+\"(?:\\\\.|\\\\/|$)\")).test(a):a};w.nts=function(){return a.split(k)};w.off=w.unbind=function(a,d){if(a){var f=a.split(L);if(1<f.length)for(var n=0,u=f.length;n<u;n++)w.off(f[n],d);else{for(var f=a.split(k),p,b,q,e,l=[y],n=0,u=f.length;n<u;n++)for(e=0;e<l.length;e+=q.length-2){q=[e,1];p=l[e].n;if(\"*\"!=f[n])p[f[n] ]&&q.push(p[f[n] ]);else for(b in p)p.hasOwnProperty(b)&&\n", - "q.push(p[b]);l.splice.apply(l,q)}n=0;for(u=l.length;n<u;n++)for(p=l[n];p.n;){if(d){if(p.f){e=0;for(f=p.f.length;e<f;e++)if(p.f[e]==d){p.f.splice(e,1);break}!p.f.length&&delete p.f}for(b in p.n)if(p.n.hasOwnProperty(b)&&p.n[b].f){q=p.n[b].f;e=0;for(f=q.length;e<f;e++)if(q[e]==d){q.splice(e,1);break}!q.length&&delete p.n[b].f}}else for(b in delete p.f,p.n)p.n.hasOwnProperty(b)&&p.n[b].f&&delete p.n[b].f;p=p.n}}}else w._events=y={n:{}}};w.once=function(a,d){var f=function(){w.unbind(a,f);return d.apply(this,\n", - "arguments)};return w.on(a,f)};w.version=\"0.4.2\";w.toString=function(){return\"You are running Eve 0.4.2\"};\"undefined\"!=typeof module&&module.exports?module.exports=w:\"function\"===typeof define&&define.amd?define(\"eve\",[],function(){return w}):N.eve=w})(this);\n", - "(function(N,k){\"function\"===typeof define&&define.amd?define(\"Snap.svg\",[\"eve\"],function(L){return k(N,L)}):k(N,N.eve)})(this,function(N,k){var L=function(a){var k={},y=N.requestAnimationFrame||N.webkitRequestAnimationFrame||N.mozRequestAnimationFrame||N.oRequestAnimationFrame||N.msRequestAnimationFrame||function(a){setTimeout(a,16)},M=Array.isArray||function(a){return a instanceof Array||\"[object Array]\"==Object.prototype.toString.call(a)},A=0,w=\"M\"+(+new Date).toString(36),z=function(a){if(null==\n", - "a)return this.s;var b=this.s-a;this.b+=this.dur*b;this.B+=this.dur*b;this.s=a},d=function(a){if(null==a)return this.spd;this.spd=a},f=function(a){if(null==a)return this.dur;this.s=this.s*a/this.dur;this.dur=a},n=function(){delete k[this.id];this.update();a(\"mina.stop.\"+this.id,this)},u=function(){this.pdif||(delete k[this.id],this.update(),this.pdif=this.get()-this.b)},p=function(){this.pdif&&(this.b=this.get()-this.pdif,delete this.pdif,k[this.id]=this)},b=function(){var a;if(M(this.start)){a=[];\n", - "for(var b=0,e=this.start.length;b<e;b++)a[b]=+this.start[b]+(this.end[b]-this.start[b])*this.easing(this.s)}else a=+this.start+(this.end-this.start)*this.easing(this.s);this.set(a)},q=function(){var l=0,b;for(b in k)if(k.hasOwnProperty(b)){var e=k[b],f=e.get();l++;e.s=(f-e.b)/(e.dur/e.spd);1<=e.s&&(delete k[b],e.s=1,l--,function(b){setTimeout(function(){a(\"mina.finish.\"+b.id,b)})}(e));e.update()}l&&y(q)},e=function(a,r,s,x,G,h,J){a={id:w+(A++).toString(36),start:a,end:r,b:s,s:0,dur:x-s,spd:1,get:G,\n", - "set:h,easing:J||e.linear,status:z,speed:d,duration:f,stop:n,pause:u,resume:p,update:b};k[a.id]=a;r=0;for(var K in k)if(k.hasOwnProperty(K)&&(r++,2==r))break;1==r&&y(q);return a};e.time=Date.now||function(){return+new Date};e.getById=function(a){return k[a]||null};e.linear=function(a){return a};e.easeout=function(a){return Math.pow(a,1.7)};e.easein=function(a){return Math.pow(a,0.48)};e.easeinout=function(a){if(1==a)return 1;if(0==a)return 0;var b=0.48-a/1.04,e=Math.sqrt(0.1734+b*b);a=e-b;a=Math.pow(Math.abs(a),\n", - "1/3)*(0>a?-1:1);b=-e-b;b=Math.pow(Math.abs(b),1/3)*(0>b?-1:1);a=a+b+0.5;return 3*(1-a)*a*a+a*a*a};e.backin=function(a){return 1==a?1:a*a*(2.70158*a-1.70158)};e.backout=function(a){if(0==a)return 0;a-=1;return a*a*(2.70158*a+1.70158)+1};e.elastic=function(a){return a==!!a?a:Math.pow(2,-10*a)*Math.sin(2*(a-0.075)*Math.PI/0.3)+1};e.bounce=function(a){a<1/2.75?a*=7.5625*a:a<2/2.75?(a-=1.5/2.75,a=7.5625*a*a+0.75):a<2.5/2.75?(a-=2.25/2.75,a=7.5625*a*a+0.9375):(a-=2.625/2.75,a=7.5625*a*a+0.984375);return a};\n", - "return N.mina=e}(\"undefined\"==typeof k?function(){}:k),C=function(){function a(c,t){if(c){if(c.tagName)return x(c);if(y(c,\"array\")&&a.set)return a.set.apply(a,c);if(c instanceof e)return c;if(null==t)return c=G.doc.querySelector(c),x(c)}return new s(null==c?\"100%\":c,null==t?\"100%\":t)}function v(c,a){if(a){\"#text\"==c&&(c=G.doc.createTextNode(a.text||\"\"));\"string\"==typeof c&&(c=v(c));if(\"string\"==typeof a)return\"xlink:\"==a.substring(0,6)?c.getAttributeNS(m,a.substring(6)):\"xml:\"==a.substring(0,4)?c.getAttributeNS(la,\n", - "a.substring(4)):c.getAttribute(a);for(var da in a)if(a[h](da)){var b=J(a[da]);b?\"xlink:\"==da.substring(0,6)?c.setAttributeNS(m,da.substring(6),b):\"xml:\"==da.substring(0,4)?c.setAttributeNS(la,da.substring(4),b):c.setAttribute(da,b):c.removeAttribute(da)}}else c=G.doc.createElementNS(la,c);return c}function y(c,a){a=J.prototype.toLowerCase.call(a);return\"finite\"==a?isFinite(c):\"array\"==a&&(c instanceof Array||Array.isArray&&Array.isArray(c))?!0:\"null\"==a&&null===c||a==typeof c&&null!==c||\"object\"==\n", - "a&&c===Object(c)||$.call(c).slice(8,-1).toLowerCase()==a}function M(c){if(\"function\"==typeof c||Object(c)!==c)return c;var a=new c.constructor,b;for(b in c)c[h](b)&&(a[b]=M(c[b]));return a}function A(c,a,b){function m(){var e=Array.prototype.slice.call(arguments,0),f=e.join(\"\\u2400\"),d=m.cache=m.cache||{},l=m.count=m.count||[];if(d[h](f)){a:for(var e=l,l=f,B=0,H=e.length;B<H;B++)if(e[B]===l){e.push(e.splice(B,1)[0]);break a}return b?b(d[f]):d[f]}1E3<=l.length&&delete d[l.shift()];l.push(f);d[f]=c.apply(a,\n", - "e);return b?b(d[f]):d[f]}return m}function w(c,a,b,m,e,f){return null==e?(c-=b,a-=m,c||a?(180*I.atan2(-a,-c)/C+540)%360:0):w(c,a,e,f)-w(b,m,e,f)}function z(c){return c%360*C/180}function d(c){var a=[];c=c.replace(/(?:^|\\s)(\\w+)\\(([^)]+)\\)/g,function(c,b,m){m=m.split(/\\s*,\\s*|\\s+/);\"rotate\"==b&&1==m.length&&m.push(0,0);\"scale\"==b&&(2<m.length?m=m.slice(0,2):2==m.length&&m.push(0,0),1==m.length&&m.push(m[0],0,0));\"skewX\"==b?a.push([\"m\",1,0,I.tan(z(m[0])),1,0,0]):\"skewY\"==b?a.push([\"m\",1,I.tan(z(m[0])),\n", - "0,1,0,0]):a.push([b.charAt(0)].concat(m));return c});return a}function f(c,t){var b=O(c),m=new a.Matrix;if(b)for(var e=0,f=b.length;e<f;e++){var h=b[e],d=h.length,B=J(h[0]).toLowerCase(),H=h[0]!=B,l=H?m.invert():0,E;\"t\"==B&&2==d?m.translate(h[1],0):\"t\"==B&&3==d?H?(d=l.x(0,0),B=l.y(0,0),H=l.x(h[1],h[2]),l=l.y(h[1],h[2]),m.translate(H-d,l-B)):m.translate(h[1],h[2]):\"r\"==B?2==d?(E=E||t,m.rotate(h[1],E.x+E.width/2,E.y+E.height/2)):4==d&&(H?(H=l.x(h[2],h[3]),l=l.y(h[2],h[3]),m.rotate(h[1],H,l)):m.rotate(h[1],\n", - "h[2],h[3])):\"s\"==B?2==d||3==d?(E=E||t,m.scale(h[1],h[d-1],E.x+E.width/2,E.y+E.height/2)):4==d?H?(H=l.x(h[2],h[3]),l=l.y(h[2],h[3]),m.scale(h[1],h[1],H,l)):m.scale(h[1],h[1],h[2],h[3]):5==d&&(H?(H=l.x(h[3],h[4]),l=l.y(h[3],h[4]),m.scale(h[1],h[2],H,l)):m.scale(h[1],h[2],h[3],h[4])):\"m\"==B&&7==d&&m.add(h[1],h[2],h[3],h[4],h[5],h[6])}return m}function n(c,t){if(null==t){var m=!0;t=\"linearGradient\"==c.type||\"radialGradient\"==c.type?c.node.getAttribute(\"gradientTransform\"):\"pattern\"==c.type?c.node.getAttribute(\"patternTransform\"):\n", - "c.node.getAttribute(\"transform\");if(!t)return new a.Matrix;t=d(t)}else t=a._.rgTransform.test(t)?J(t).replace(/\\.{3}|\\u2026/g,c._.transform||aa):d(t),y(t,\"array\")&&(t=a.path?a.path.toString.call(t):J(t)),c._.transform=t;var b=f(t,c.getBBox(1));if(m)return b;c.matrix=b}function u(c){c=c.node.ownerSVGElement&&x(c.node.ownerSVGElement)||c.node.parentNode&&x(c.node.parentNode)||a.select(\"svg\")||a(0,0);var t=c.select(\"defs\"),t=null==t?!1:t.node;t||(t=r(\"defs\",c.node).node);return t}function p(c){return c.node.ownerSVGElement&&\n", - "x(c.node.ownerSVGElement)||a.select(\"svg\")}function b(c,a,m){function b(c){if(null==c)return aa;if(c==+c)return c;v(B,{width:c});try{return B.getBBox().width}catch(a){return 0}}function h(c){if(null==c)return aa;if(c==+c)return c;v(B,{height:c});try{return B.getBBox().height}catch(a){return 0}}function e(b,B){null==a?d[b]=B(c.attr(b)||0):b==a&&(d=B(null==m?c.attr(b)||0:m))}var f=p(c).node,d={},B=f.querySelector(\".svg---mgr\");B||(B=v(\"rect\"),v(B,{x:-9E9,y:-9E9,width:10,height:10,\"class\":\"svg---mgr\",\n", - "fill:\"none\"}),f.appendChild(B));switch(c.type){case \"rect\":e(\"rx\",b),e(\"ry\",h);case \"image\":e(\"width\",b),e(\"height\",h);case \"text\":e(\"x\",b);e(\"y\",h);break;case \"circle\":e(\"cx\",b);e(\"cy\",h);e(\"r\",b);break;case \"ellipse\":e(\"cx\",b);e(\"cy\",h);e(\"rx\",b);e(\"ry\",h);break;case \"line\":e(\"x1\",b);e(\"x2\",b);e(\"y1\",h);e(\"y2\",h);break;case \"marker\":e(\"refX\",b);e(\"markerWidth\",b);e(\"refY\",h);e(\"markerHeight\",h);break;case \"radialGradient\":e(\"fx\",b);e(\"fy\",h);break;case \"tspan\":e(\"dx\",b);e(\"dy\",h);break;default:e(a,\n", - "b)}f.removeChild(B);return d}function q(c){y(c,\"array\")||(c=Array.prototype.slice.call(arguments,0));for(var a=0,b=0,m=this.node;this[a];)delete this[a++];for(a=0;a<c.length;a++)\"set\"==c[a].type?c[a].forEach(function(c){m.appendChild(c.node)}):m.appendChild(c[a].node);for(var h=m.childNodes,a=0;a<h.length;a++)this[b++]=x(h[a]);return this}function e(c){if(c.snap in E)return E[c.snap];var a=this.id=V(),b;try{b=c.ownerSVGElement}catch(m){}this.node=c;b&&(this.paper=new s(b));this.type=c.tagName;this.anims=\n", - "{};this._={transform:[]};c.snap=a;E[a]=this;\"g\"==this.type&&(this.add=q);if(this.type in{g:1,mask:1,pattern:1})for(var e in s.prototype)s.prototype[h](e)&&(this[e]=s.prototype[e])}function l(c){this.node=c}function r(c,a){var b=v(c);a.appendChild(b);return x(b)}function s(c,a){var b,m,f,d=s.prototype;if(c&&\"svg\"==c.tagName){if(c.snap in E)return E[c.snap];var l=c.ownerDocument;b=new e(c);m=c.getElementsByTagName(\"desc\")[0];f=c.getElementsByTagName(\"defs\")[0];m||(m=v(\"desc\"),m.appendChild(l.createTextNode(\"Created with Snap\")),\n", - "b.node.appendChild(m));f||(f=v(\"defs\"),b.node.appendChild(f));b.defs=f;for(var ca in d)d[h](ca)&&(b[ca]=d[ca]);b.paper=b.root=b}else b=r(\"svg\",G.doc.body),v(b.node,{height:a,version:1.1,width:c,xmlns:la});return b}function x(c){return!c||c instanceof e||c instanceof l?c:c.tagName&&\"svg\"==c.tagName.toLowerCase()?new s(c):c.tagName&&\"object\"==c.tagName.toLowerCase()&&\"image/svg+xml\"==c.type?new s(c.contentDocument.getElementsByTagName(\"svg\")[0]):new e(c)}a.version=\"0.3.0\";a.toString=function(){return\"Snap v\"+\n", - "this.version};a._={};var G={win:N,doc:N.document};a._.glob=G;var h=\"hasOwnProperty\",J=String,K=parseFloat,U=parseInt,I=Math,P=I.max,Q=I.min,Y=I.abs,C=I.PI,aa=\"\",$=Object.prototype.toString,F=/^\\s*((#[a-f\\d]{6})|(#[a-f\\d]{3})|rgba?\\(\\s*([\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?(?:\\s*,\\s*[\\d\\.]+%?)?)\\s*\\)|hsba?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?%?)\\s*\\)|hsla?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?%?)\\s*\\))\\s*$/i;a._.separator=\n", - "RegExp(\"[,\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]+\");var S=RegExp(\"[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*\"),X={hs:1,rg:1},W=RegExp(\"([a-z])[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)\",\n", - "\"ig\"),ma=RegExp(\"([rstm])[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)\",\"ig\"),Z=RegExp(\"(-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?)[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*\",\n", - "\"ig\"),na=0,ba=\"S\"+(+new Date).toString(36),V=function(){return ba+(na++).toString(36)},m=\"http://www.w3.org/1999/xlink\",la=\"http://www.w3.org/2000/svg\",E={},ca=a.url=function(c){return\"url('#\"+c+\"')\"};a._.$=v;a._.id=V;a.format=function(){var c=/\\{([^\\}]+)\\}/g,a=/(?:(?:^|\\.)(.+?)(?=\\[|\\.|$|\\()|\\[('|\")(.+?)\\2\\])(\\(\\))?/g,b=function(c,b,m){var h=m;b.replace(a,function(c,a,b,m,t){a=a||m;h&&(a in h&&(h=h[a]),\"function\"==typeof h&&t&&(h=h()))});return h=(null==h||h==m?c:h)+\"\"};return function(a,m){return J(a).replace(c,\n", - "function(c,a){return b(c,a,m)})}}();a._.clone=M;a._.cacher=A;a.rad=z;a.deg=function(c){return 180*c/C%360};a.angle=w;a.is=y;a.snapTo=function(c,a,b){b=y(b,\"finite\")?b:10;if(y(c,\"array\"))for(var m=c.length;m--;){if(Y(c[m]-a)<=b)return c[m]}else{c=+c;m=a%c;if(m<b)return a-m;if(m>c-b)return a-m+c}return a};a.getRGB=A(function(c){if(!c||(c=J(c)).indexOf(\"-\")+1)return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:ka};if(\"none\"==c)return{r:-1,g:-1,b:-1,hex:\"none\",toString:ka};!X[h](c.toLowerCase().substring(0,\n", - "2))&&\"#\"!=c.charAt()&&(c=T(c));if(!c)return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:ka};var b,m,e,f,d;if(c=c.match(F)){c[2]&&(e=U(c[2].substring(5),16),m=U(c[2].substring(3,5),16),b=U(c[2].substring(1,3),16));c[3]&&(e=U((d=c[3].charAt(3))+d,16),m=U((d=c[3].charAt(2))+d,16),b=U((d=c[3].charAt(1))+d,16));c[4]&&(d=c[4].split(S),b=K(d[0]),\"%\"==d[0].slice(-1)&&(b*=2.55),m=K(d[1]),\"%\"==d[1].slice(-1)&&(m*=2.55),e=K(d[2]),\"%\"==d[2].slice(-1)&&(e*=2.55),\"rgba\"==c[1].toLowerCase().slice(0,4)&&(f=K(d[3])),\n", - "d[3]&&\"%\"==d[3].slice(-1)&&(f/=100));if(c[5])return d=c[5].split(S),b=K(d[0]),\"%\"==d[0].slice(-1)&&(b/=100),m=K(d[1]),\"%\"==d[1].slice(-1)&&(m/=100),e=K(d[2]),\"%\"==d[2].slice(-1)&&(e/=100),\"deg\"!=d[0].slice(-3)&&\"\\u00b0\"!=d[0].slice(-1)||(b/=360),\"hsba\"==c[1].toLowerCase().slice(0,4)&&(f=K(d[3])),d[3]&&\"%\"==d[3].slice(-1)&&(f/=100),a.hsb2rgb(b,m,e,f);if(c[6])return d=c[6].split(S),b=K(d[0]),\"%\"==d[0].slice(-1)&&(b/=100),m=K(d[1]),\"%\"==d[1].slice(-1)&&(m/=100),e=K(d[2]),\"%\"==d[2].slice(-1)&&(e/=100),\n", - "\"deg\"!=d[0].slice(-3)&&\"\\u00b0\"!=d[0].slice(-1)||(b/=360),\"hsla\"==c[1].toLowerCase().slice(0,4)&&(f=K(d[3])),d[3]&&\"%\"==d[3].slice(-1)&&(f/=100),a.hsl2rgb(b,m,e,f);b=Q(I.round(b),255);m=Q(I.round(m),255);e=Q(I.round(e),255);f=Q(P(f,0),1);c={r:b,g:m,b:e,toString:ka};c.hex=\"#\"+(16777216|e|m<<8|b<<16).toString(16).slice(1);c.opacity=y(f,\"finite\")?f:1;return c}return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:ka}},a);a.hsb=A(function(c,b,m){return a.hsb2rgb(c,b,m).hex});a.hsl=A(function(c,b,m){return a.hsl2rgb(c,\n", - "b,m).hex});a.rgb=A(function(c,a,b,m){if(y(m,\"finite\")){var e=I.round;return\"rgba(\"+[e(c),e(a),e(b),+m.toFixed(2)]+\")\"}return\"#\"+(16777216|b|a<<8|c<<16).toString(16).slice(1)});var T=function(c){var a=G.doc.getElementsByTagName(\"head\")[0]||G.doc.getElementsByTagName(\"svg\")[0];T=A(function(c){if(\"red\"==c.toLowerCase())return\"rgb(255, 0, 0)\";a.style.color=\"rgb(255, 0, 0)\";a.style.color=c;c=G.doc.defaultView.getComputedStyle(a,aa).getPropertyValue(\"color\");return\"rgb(255, 0, 0)\"==c?null:c});return T(c)},\n", - "qa=function(){return\"hsb(\"+[this.h,this.s,this.b]+\")\"},ra=function(){return\"hsl(\"+[this.h,this.s,this.l]+\")\"},ka=function(){return 1==this.opacity||null==this.opacity?this.hex:\"rgba(\"+[this.r,this.g,this.b,this.opacity]+\")\"},D=function(c,b,m){null==b&&y(c,\"object\")&&\"r\"in c&&\"g\"in c&&\"b\"in c&&(m=c.b,b=c.g,c=c.r);null==b&&y(c,string)&&(m=a.getRGB(c),c=m.r,b=m.g,m=m.b);if(1<c||1<b||1<m)c/=255,b/=255,m/=255;return[c,b,m]},oa=function(c,b,m,e){c=I.round(255*c);b=I.round(255*b);m=I.round(255*m);c={r:c,\n", - "g:b,b:m,opacity:y(e,\"finite\")?e:1,hex:a.rgb(c,b,m),toString:ka};y(e,\"finite\")&&(c.opacity=e);return c};a.color=function(c){var b;y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"b\"in c?(b=a.hsb2rgb(c),c.r=b.r,c.g=b.g,c.b=b.b,c.opacity=1,c.hex=b.hex):y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"l\"in c?(b=a.hsl2rgb(c),c.r=b.r,c.g=b.g,c.b=b.b,c.opacity=1,c.hex=b.hex):(y(c,\"string\")&&(c=a.getRGB(c)),y(c,\"object\")&&\"r\"in c&&\"g\"in c&&\"b\"in c&&!(\"error\"in c)?(b=a.rgb2hsl(c),c.h=b.h,c.s=b.s,c.l=b.l,b=a.rgb2hsb(c),c.v=b.b):(c={hex:\"none\"},\n", - "c.r=c.g=c.b=c.h=c.s=c.v=c.l=-1,c.error=1));c.toString=ka;return c};a.hsb2rgb=function(c,a,b,m){y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"b\"in c&&(b=c.b,a=c.s,c=c.h,m=c.o);var e,h,d;c=360*c%360/60;d=b*a;a=d*(1-Y(c%2-1));b=e=h=b-d;c=~~c;b+=[d,a,0,0,a,d][c];e+=[a,d,d,a,0,0][c];h+=[0,0,a,d,d,a][c];return oa(b,e,h,m)};a.hsl2rgb=function(c,a,b,m){y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"l\"in c&&(b=c.l,a=c.s,c=c.h);if(1<c||1<a||1<b)c/=360,a/=100,b/=100;var e,h,d;c=360*c%360/60;d=2*a*(0.5>b?b:1-b);a=d*(1-Y(c%2-1));b=e=\n", - "h=b-d/2;c=~~c;b+=[d,a,0,0,a,d][c];e+=[a,d,d,a,0,0][c];h+=[0,0,a,d,d,a][c];return oa(b,e,h,m)};a.rgb2hsb=function(c,a,b){b=D(c,a,b);c=b[0];a=b[1];b=b[2];var m,e;m=P(c,a,b);e=m-Q(c,a,b);c=((0==e?0:m==c?(a-b)/e:m==a?(b-c)/e+2:(c-a)/e+4)+360)%6*60/360;return{h:c,s:0==e?0:e/m,b:m,toString:qa}};a.rgb2hsl=function(c,a,b){b=D(c,a,b);c=b[0];a=b[1];b=b[2];var m,e,h;m=P(c,a,b);e=Q(c,a,b);h=m-e;c=((0==h?0:m==c?(a-b)/h:m==a?(b-c)/h+2:(c-a)/h+4)+360)%6*60/360;m=(m+e)/2;return{h:c,s:0==h?0:0.5>m?h/(2*m):h/(2-2*\n", - "m),l:m,toString:ra}};a.parsePathString=function(c){if(!c)return null;var b=a.path(c);if(b.arr)return a.path.clone(b.arr);var m={a:7,c:6,o:2,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,u:3,z:0},e=[];y(c,\"array\")&&y(c[0],\"array\")&&(e=a.path.clone(c));e.length||J(c).replace(W,function(c,a,b){var h=[];c=a.toLowerCase();b.replace(Z,function(c,a){a&&h.push(+a)});\"m\"==c&&2<h.length&&(e.push([a].concat(h.splice(0,2))),c=\"l\",a=\"m\"==a?\"l\":\"L\");\"o\"==c&&1==h.length&&e.push([a,h[0] ]);if(\"r\"==c)e.push([a].concat(h));else for(;h.length>=\n", - "m[c]&&(e.push([a].concat(h.splice(0,m[c]))),m[c]););});e.toString=a.path.toString;b.arr=a.path.clone(e);return e};var O=a.parseTransformString=function(c){if(!c)return null;var b=[];y(c,\"array\")&&y(c[0],\"array\")&&(b=a.path.clone(c));b.length||J(c).replace(ma,function(c,a,m){var e=[];a.toLowerCase();m.replace(Z,function(c,a){a&&e.push(+a)});b.push([a].concat(e))});b.toString=a.path.toString;return b};a._.svgTransform2string=d;a._.rgTransform=RegExp(\"^[a-z][\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*-?\\\\.?\\\\d\",\n", - "\"i\");a._.transform2matrix=f;a._unit2px=b;a._.getSomeDefs=u;a._.getSomeSVG=p;a.select=function(c){return x(G.doc.querySelector(c))};a.selectAll=function(c){c=G.doc.querySelectorAll(c);for(var b=(a.set||Array)(),m=0;m<c.length;m++)b.push(x(c[m]));return b};setInterval(function(){for(var c in E)if(E[h](c)){var a=E[c],b=a.node;(\"svg\"!=a.type&&!b.ownerSVGElement||\"svg\"==a.type&&(!b.parentNode||\"ownerSVGElement\"in b.parentNode&&!b.ownerSVGElement))&&delete E[c]}},1E4);(function(c){function m(c){function a(c,\n", - "b){var m=v(c.node,b);(m=(m=m&&m.match(d))&&m[2])&&\"#\"==m.charAt()&&(m=m.substring(1))&&(f[m]=(f[m]||[]).concat(function(a){var m={};m[b]=ca(a);v(c.node,m)}))}function b(c){var a=v(c.node,\"xlink:href\");a&&\"#\"==a.charAt()&&(a=a.substring(1))&&(f[a]=(f[a]||[]).concat(function(a){c.attr(\"xlink:href\",\"#\"+a)}))}var e=c.selectAll(\"*\"),h,d=/^\\s*url\\((\"|'|)(.*)\\1\\)\\s*$/;c=[];for(var f={},l=0,E=e.length;l<E;l++){h=e[l];a(h,\"fill\");a(h,\"stroke\");a(h,\"filter\");a(h,\"mask\");a(h,\"clip-path\");b(h);var t=v(h.node,\n", - "\"id\");t&&(v(h.node,{id:h.id}),c.push({old:t,id:h.id}))}l=0;for(E=c.length;l<E;l++)if(e=f[c[l].old])for(h=0,t=e.length;h<t;h++)e[h](c[l].id)}function e(c,a,b){return function(m){m=m.slice(c,a);1==m.length&&(m=m[0]);return b?b(m):m}}function d(c){return function(){var a=c?\"<\"+this.type:\"\",b=this.node.attributes,m=this.node.childNodes;if(c)for(var e=0,h=b.length;e<h;e++)a+=\" \"+b[e].name+'=\"'+b[e].value.replace(/\"/g,'\\\\\"')+'\"';if(m.length){c&&(a+=\">\");e=0;for(h=m.length;e<h;e++)3==m[e].nodeType?a+=m[e].nodeValue:\n", - "1==m[e].nodeType&&(a+=x(m[e]).toString());c&&(a+=\"</\"+this.type+\">\")}else c&&(a+=\"/>\");return a}}c.attr=function(c,a){if(!c)return this;if(y(c,\"string\"))if(1<arguments.length){var b={};b[c]=a;c=b}else return k(\"snap.util.getattr.\"+c,this).firstDefined();for(var m in c)c[h](m)&&k(\"snap.util.attr.\"+m,this,c[m]);return this};c.getBBox=function(c){if(!a.Matrix||!a.path)return this.node.getBBox();var b=this,m=new a.Matrix;if(b.removed)return a._.box();for(;\"use\"==b.type;)if(c||(m=m.add(b.transform().localMatrix.translate(b.attr(\"x\")||\n", - "0,b.attr(\"y\")||0))),b.original)b=b.original;else var e=b.attr(\"xlink:href\"),b=b.original=b.node.ownerDocument.getElementById(e.substring(e.indexOf(\"#\")+1));var e=b._,h=a.path.get[b.type]||a.path.get.deflt;try{if(c)return e.bboxwt=h?a.path.getBBox(b.realPath=h(b)):a._.box(b.node.getBBox()),a._.box(e.bboxwt);b.realPath=h(b);b.matrix=b.transform().localMatrix;e.bbox=a.path.getBBox(a.path.map(b.realPath,m.add(b.matrix)));return a._.box(e.bbox)}catch(d){return a._.box()}};var f=function(){return this.string};\n", - "c.transform=function(c){var b=this._;if(null==c){var m=this;c=new a.Matrix(this.node.getCTM());for(var e=n(this),h=[e],d=new a.Matrix,l=e.toTransformString(),b=J(e)==J(this.matrix)?J(b.transform):l;\"svg\"!=m.type&&(m=m.parent());)h.push(n(m));for(m=h.length;m--;)d.add(h[m]);return{string:b,globalMatrix:c,totalMatrix:d,localMatrix:e,diffMatrix:c.clone().add(e.invert()),global:c.toTransformString(),total:d.toTransformString(),local:l,toString:f}}c instanceof a.Matrix?this.matrix=c:n(this,c);this.node&&\n", - "(\"linearGradient\"==this.type||\"radialGradient\"==this.type?v(this.node,{gradientTransform:this.matrix}):\"pattern\"==this.type?v(this.node,{patternTransform:this.matrix}):v(this.node,{transform:this.matrix}));return this};c.parent=function(){return x(this.node.parentNode)};c.append=c.add=function(c){if(c){if(\"set\"==c.type){var a=this;c.forEach(function(c){a.add(c)});return this}c=x(c);this.node.appendChild(c.node);c.paper=this.paper}return this};c.appendTo=function(c){c&&(c=x(c),c.append(this));return this};\n", - "c.prepend=function(c){if(c){if(\"set\"==c.type){var a=this,b;c.forEach(function(c){b?b.after(c):a.prepend(c);b=c});return this}c=x(c);var m=c.parent();this.node.insertBefore(c.node,this.node.firstChild);this.add&&this.add();c.paper=this.paper;this.parent()&&this.parent().add();m&&m.add()}return this};c.prependTo=function(c){c=x(c);c.prepend(this);return this};c.before=function(c){if(\"set\"==c.type){var a=this;c.forEach(function(c){var b=c.parent();a.node.parentNode.insertBefore(c.node,a.node);b&&b.add()});\n", - "this.parent().add();return this}c=x(c);var b=c.parent();this.node.parentNode.insertBefore(c.node,this.node);this.parent()&&this.parent().add();b&&b.add();c.paper=this.paper;return this};c.after=function(c){c=x(c);var a=c.parent();this.node.nextSibling?this.node.parentNode.insertBefore(c.node,this.node.nextSibling):this.node.parentNode.appendChild(c.node);this.parent()&&this.parent().add();a&&a.add();c.paper=this.paper;return this};c.insertBefore=function(c){c=x(c);var a=this.parent();c.node.parentNode.insertBefore(this.node,\n", - "c.node);this.paper=c.paper;a&&a.add();c.parent()&&c.parent().add();return this};c.insertAfter=function(c){c=x(c);var a=this.parent();c.node.parentNode.insertBefore(this.node,c.node.nextSibling);this.paper=c.paper;a&&a.add();c.parent()&&c.parent().add();return this};c.remove=function(){var c=this.parent();this.node.parentNode&&this.node.parentNode.removeChild(this.node);delete this.paper;this.removed=!0;c&&c.add();return this};c.select=function(c){return x(this.node.querySelector(c))};c.selectAll=\n", - "function(c){c=this.node.querySelectorAll(c);for(var b=(a.set||Array)(),m=0;m<c.length;m++)b.push(x(c[m]));return b};c.asPX=function(c,a){null==a&&(a=this.attr(c));return+b(this,c,a)};c.use=function(){var c,a=this.node.id;a||(a=this.id,v(this.node,{id:a}));c=\"linearGradient\"==this.type||\"radialGradient\"==this.type||\"pattern\"==this.type?r(this.type,this.node.parentNode):r(\"use\",this.node.parentNode);v(c.node,{\"xlink:href\":\"#\"+a});c.original=this;return c};var l=/\\S+/g;c.addClass=function(c){var a=(c||\n", - "\"\").match(l)||[];c=this.node;var b=c.className.baseVal,m=b.match(l)||[],e,h,d;if(a.length){for(e=0;d=a[e++];)h=m.indexOf(d),~h||m.push(d);a=m.join(\" \");b!=a&&(c.className.baseVal=a)}return this};c.removeClass=function(c){var a=(c||\"\").match(l)||[];c=this.node;var b=c.className.baseVal,m=b.match(l)||[],e,h;if(m.length){for(e=0;h=a[e++];)h=m.indexOf(h),~h&&m.splice(h,1);a=m.join(\" \");b!=a&&(c.className.baseVal=a)}return this};c.hasClass=function(c){return!!~(this.node.className.baseVal.match(l)||[]).indexOf(c)};\n", - "c.toggleClass=function(c,a){if(null!=a)return a?this.addClass(c):this.removeClass(c);var b=(c||\"\").match(l)||[],m=this.node,e=m.className.baseVal,h=e.match(l)||[],d,f,E;for(d=0;E=b[d++];)f=h.indexOf(E),~f?h.splice(f,1):h.push(E);b=h.join(\" \");e!=b&&(m.className.baseVal=b);return this};c.clone=function(){var c=x(this.node.cloneNode(!0));v(c.node,\"id\")&&v(c.node,{id:c.id});m(c);c.insertAfter(this);return c};c.toDefs=function(){u(this).appendChild(this.node);return this};c.pattern=c.toPattern=function(c,\n", - "a,b,m){var e=r(\"pattern\",u(this));null==c&&(c=this.getBBox());y(c,\"object\")&&\"x\"in c&&(a=c.y,b=c.width,m=c.height,c=c.x);v(e.node,{x:c,y:a,width:b,height:m,patternUnits:\"userSpaceOnUse\",id:e.id,viewBox:[c,a,b,m].join(\" \")});e.node.appendChild(this.node);return e};c.marker=function(c,a,b,m,e,h){var d=r(\"marker\",u(this));null==c&&(c=this.getBBox());y(c,\"object\")&&\"x\"in c&&(a=c.y,b=c.width,m=c.height,e=c.refX||c.cx,h=c.refY||c.cy,c=c.x);v(d.node,{viewBox:[c,a,b,m].join(\" \"),markerWidth:b,markerHeight:m,\n", - "orient:\"auto\",refX:e||0,refY:h||0,id:d.id});d.node.appendChild(this.node);return d};var E=function(c,a,b,m){\"function\"!=typeof b||b.length||(m=b,b=L.linear);this.attr=c;this.dur=a;b&&(this.easing=b);m&&(this.callback=m)};a._.Animation=E;a.animation=function(c,a,b,m){return new E(c,a,b,m)};c.inAnim=function(){var c=[],a;for(a in this.anims)this.anims[h](a)&&function(a){c.push({anim:new E(a._attrs,a.dur,a.easing,a._callback),mina:a,curStatus:a.status(),status:function(c){return a.status(c)},stop:function(){a.stop()}})}(this.anims[a]);\n", - "return c};a.animate=function(c,a,b,m,e,h){\"function\"!=typeof e||e.length||(h=e,e=L.linear);var d=L.time();c=L(c,a,d,d+m,L.time,b,e);h&&k.once(\"mina.finish.\"+c.id,h);return c};c.stop=function(){for(var c=this.inAnim(),a=0,b=c.length;a<b;a++)c[a].stop();return this};c.animate=function(c,a,b,m){\"function\"!=typeof b||b.length||(m=b,b=L.linear);c instanceof E&&(m=c.callback,b=c.easing,a=b.dur,c=c.attr);var d=[],f=[],l={},t,ca,n,T=this,q;for(q in c)if(c[h](q)){T.equal?(n=T.equal(q,J(c[q])),t=n.from,ca=\n", - "n.to,n=n.f):(t=+T.attr(q),ca=+c[q]);var la=y(t,\"array\")?t.length:1;l[q]=e(d.length,d.length+la,n);d=d.concat(t);f=f.concat(ca)}t=L.time();var p=L(d,f,t,t+a,L.time,function(c){var a={},b;for(b in l)l[h](b)&&(a[b]=l[b](c));T.attr(a)},b);T.anims[p.id]=p;p._attrs=c;p._callback=m;k(\"snap.animcreated.\"+T.id,p);k.once(\"mina.finish.\"+p.id,function(){delete T.anims[p.id];m&&m.call(T)});k.once(\"mina.stop.\"+p.id,function(){delete T.anims[p.id]});return T};var T={};c.data=function(c,b){var m=T[this.id]=T[this.id]||\n", - "{};if(0==arguments.length)return k(\"snap.data.get.\"+this.id,this,m,null),m;if(1==arguments.length){if(a.is(c,\"object\")){for(var e in c)c[h](e)&&this.data(e,c[e]);return this}k(\"snap.data.get.\"+this.id,this,m[c],c);return m[c]}m[c]=b;k(\"snap.data.set.\"+this.id,this,b,c);return this};c.removeData=function(c){null==c?T[this.id]={}:T[this.id]&&delete T[this.id][c];return this};c.outerSVG=c.toString=d(1);c.innerSVG=d()})(e.prototype);a.parse=function(c){var a=G.doc.createDocumentFragment(),b=!0,m=G.doc.createElement(\"div\");\n", - "c=J(c);c.match(/^\\s*<\\s*svg(?:\\s|>)/)||(c=\"<svg>\"+c+\"</svg>\",b=!1);m.innerHTML=c;if(c=m.getElementsByTagName(\"svg\")[0])if(b)a=c;else for(;c.firstChild;)a.appendChild(c.firstChild);m.innerHTML=aa;return new l(a)};l.prototype.select=e.prototype.select;l.prototype.selectAll=e.prototype.selectAll;a.fragment=function(){for(var c=Array.prototype.slice.call(arguments,0),b=G.doc.createDocumentFragment(),m=0,e=c.length;m<e;m++){var h=c[m];h.node&&h.node.nodeType&&b.appendChild(h.node);h.nodeType&&b.appendChild(h);\n", - "\"string\"==typeof h&&b.appendChild(a.parse(h).node)}return new l(b)};a._.make=r;a._.wrap=x;s.prototype.el=function(c,a){var b=r(c,this.node);a&&b.attr(a);return b};k.on(\"snap.util.getattr\",function(){var c=k.nt(),c=c.substring(c.lastIndexOf(\".\")+1),a=c.replace(/[A-Z]/g,function(c){return\"-\"+c.toLowerCase()});return pa[h](a)?this.node.ownerDocument.defaultView.getComputedStyle(this.node,null).getPropertyValue(a):v(this.node,c)});var pa={\"alignment-baseline\":0,\"baseline-shift\":0,clip:0,\"clip-path\":0,\n", - "\"clip-rule\":0,color:0,\"color-interpolation\":0,\"color-interpolation-filters\":0,\"color-profile\":0,\"color-rendering\":0,cursor:0,direction:0,display:0,\"dominant-baseline\":0,\"enable-background\":0,fill:0,\"fill-opacity\":0,\"fill-rule\":0,filter:0,\"flood-color\":0,\"flood-opacity\":0,font:0,\"font-family\":0,\"font-size\":0,\"font-size-adjust\":0,\"font-stretch\":0,\"font-style\":0,\"font-variant\":0,\"font-weight\":0,\"glyph-orientation-horizontal\":0,\"glyph-orientation-vertical\":0,\"image-rendering\":0,kerning:0,\"letter-spacing\":0,\n", - "\"lighting-color\":0,marker:0,\"marker-end\":0,\"marker-mid\":0,\"marker-start\":0,mask:0,opacity:0,overflow:0,\"pointer-events\":0,\"shape-rendering\":0,\"stop-color\":0,\"stop-opacity\":0,stroke:0,\"stroke-dasharray\":0,\"stroke-dashoffset\":0,\"stroke-linecap\":0,\"stroke-linejoin\":0,\"stroke-miterlimit\":0,\"stroke-opacity\":0,\"stroke-width\":0,\"text-anchor\":0,\"text-decoration\":0,\"text-rendering\":0,\"unicode-bidi\":0,visibility:0,\"word-spacing\":0,\"writing-mode\":0};k.on(\"snap.util.attr\",function(c){var a=k.nt(),b={},a=a.substring(a.lastIndexOf(\".\")+\n", - "1);b[a]=c;var m=a.replace(/-(\\w)/gi,function(c,a){return a.toUpperCase()}),a=a.replace(/[A-Z]/g,function(c){return\"-\"+c.toLowerCase()});pa[h](a)?this.node.style[m]=null==c?aa:c:v(this.node,b)});a.ajax=function(c,a,b,m){var e=new XMLHttpRequest,h=V();if(e){if(y(a,\"function\"))m=b,b=a,a=null;else if(y(a,\"object\")){var d=[],f;for(f in a)a.hasOwnProperty(f)&&d.push(encodeURIComponent(f)+\"=\"+encodeURIComponent(a[f]));a=d.join(\"&\")}e.open(a?\"POST\":\"GET\",c,!0);a&&(e.setRequestHeader(\"X-Requested-With\",\"XMLHttpRequest\"),\n", - "e.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded\"));b&&(k.once(\"snap.ajax.\"+h+\".0\",b),k.once(\"snap.ajax.\"+h+\".200\",b),k.once(\"snap.ajax.\"+h+\".304\",b));e.onreadystatechange=function(){4==e.readyState&&k(\"snap.ajax.\"+h+\".\"+e.status,m,e)};if(4==e.readyState)return e;e.send(a);return e}};a.load=function(c,b,m){a.ajax(c,function(c){c=a.parse(c.responseText);m?b.call(m,c):b(c)})};a.getElementByPoint=function(c,a){var b,m,e=G.doc.elementFromPoint(c,a);if(G.win.opera&&\"svg\"==e.tagName){b=\n", - "e;m=b.getBoundingClientRect();b=b.ownerDocument;var h=b.body,d=b.documentElement;b=m.top+(g.win.pageYOffset||d.scrollTop||h.scrollTop)-(d.clientTop||h.clientTop||0);m=m.left+(g.win.pageXOffset||d.scrollLeft||h.scrollLeft)-(d.clientLeft||h.clientLeft||0);h=e.createSVGRect();h.x=c-m;h.y=a-b;h.width=h.height=1;b=e.getIntersectionList(h,null);b.length&&(e=b[b.length-1])}return e?x(e):null};a.plugin=function(c){c(a,e,s,G,l)};return G.win.Snap=a}();C.plugin(function(a,k,y,M,A){function w(a,d,f,b,q,e){null==\n", - "d&&\"[object SVGMatrix]\"==z.call(a)?(this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.e=a.e,this.f=a.f):null!=a?(this.a=+a,this.b=+d,this.c=+f,this.d=+b,this.e=+q,this.f=+e):(this.a=1,this.c=this.b=0,this.d=1,this.f=this.e=0)}var z=Object.prototype.toString,d=String,f=Math;(function(n){function k(a){return a[0]*a[0]+a[1]*a[1]}function p(a){var d=f.sqrt(k(a));a[0]&&(a[0]/=d);a[1]&&(a[1]/=d)}n.add=function(a,d,e,f,n,p){var k=[[],[],[] ],u=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1] ];d=[[a,\n", - "e,n],[d,f,p],[0,0,1] ];a&&a instanceof w&&(d=[[a.a,a.c,a.e],[a.b,a.d,a.f],[0,0,1] ]);for(a=0;3>a;a++)for(e=0;3>e;e++){for(f=n=0;3>f;f++)n+=u[a][f]*d[f][e];k[a][e]=n}this.a=k[0][0];this.b=k[1][0];this.c=k[0][1];this.d=k[1][1];this.e=k[0][2];this.f=k[1][2];return this};n.invert=function(){var a=this.a*this.d-this.b*this.c;return new w(this.d/a,-this.b/a,-this.c/a,this.a/a,(this.c*this.f-this.d*this.e)/a,(this.b*this.e-this.a*this.f)/a)};n.clone=function(){return new w(this.a,this.b,this.c,this.d,this.e,\n", - "this.f)};n.translate=function(a,d){return this.add(1,0,0,1,a,d)};n.scale=function(a,d,e,f){null==d&&(d=a);(e||f)&&this.add(1,0,0,1,e,f);this.add(a,0,0,d,0,0);(e||f)&&this.add(1,0,0,1,-e,-f);return this};n.rotate=function(b,d,e){b=a.rad(b);d=d||0;e=e||0;var l=+f.cos(b).toFixed(9);b=+f.sin(b).toFixed(9);this.add(l,b,-b,l,d,e);return this.add(1,0,0,1,-d,-e)};n.x=function(a,d){return a*this.a+d*this.c+this.e};n.y=function(a,d){return a*this.b+d*this.d+this.f};n.get=function(a){return+this[d.fromCharCode(97+\n", - "a)].toFixed(4)};n.toString=function(){return\"matrix(\"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+\")\"};n.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]};n.determinant=function(){return this.a*this.d-this.b*this.c};n.split=function(){var b={};b.dx=this.e;b.dy=this.f;var d=[[this.a,this.c],[this.b,this.d] ];b.scalex=f.sqrt(k(d[0]));p(d[0]);b.shear=d[0][0]*d[1][0]+d[0][1]*d[1][1];d[1]=[d[1][0]-d[0][0]*b.shear,d[1][1]-d[0][1]*b.shear];b.scaley=f.sqrt(k(d[1]));\n", - "p(d[1]);b.shear/=b.scaley;0>this.determinant()&&(b.scalex=-b.scalex);var e=-d[0][1],d=d[1][1];0>d?(b.rotate=a.deg(f.acos(d)),0>e&&(b.rotate=360-b.rotate)):b.rotate=a.deg(f.asin(e));b.isSimple=!+b.shear.toFixed(9)&&(b.scalex.toFixed(9)==b.scaley.toFixed(9)||!b.rotate);b.isSuperSimple=!+b.shear.toFixed(9)&&b.scalex.toFixed(9)==b.scaley.toFixed(9)&&!b.rotate;b.noRotation=!+b.shear.toFixed(9)&&!b.rotate;return b};n.toTransformString=function(a){a=a||this.split();if(+a.shear.toFixed(9))return\"m\"+[this.get(0),\n", - "this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)];a.scalex=+a.scalex.toFixed(4);a.scaley=+a.scaley.toFixed(4);a.rotate=+a.rotate.toFixed(4);return(a.dx||a.dy?\"t\"+[+a.dx.toFixed(4),+a.dy.toFixed(4)]:\"\")+(1!=a.scalex||1!=a.scaley?\"s\"+[a.scalex,a.scaley,0,0]:\"\")+(a.rotate?\"r\"+[+a.rotate.toFixed(4),0,0]:\"\")}})(w.prototype);a.Matrix=w;a.matrix=function(a,d,f,b,k,e){return new w(a,d,f,b,k,e)}});C.plugin(function(a,v,y,M,A){function w(h){return function(d){k.stop();d instanceof A&&1==d.node.childNodes.length&&\n", - "(\"radialGradient\"==d.node.firstChild.tagName||\"linearGradient\"==d.node.firstChild.tagName||\"pattern\"==d.node.firstChild.tagName)&&(d=d.node.firstChild,b(this).appendChild(d),d=u(d));if(d instanceof v)if(\"radialGradient\"==d.type||\"linearGradient\"==d.type||\"pattern\"==d.type){d.node.id||e(d.node,{id:d.id});var f=l(d.node.id)}else f=d.attr(h);else f=a.color(d),f.error?(f=a(b(this).ownerSVGElement).gradient(d))?(f.node.id||e(f.node,{id:f.id}),f=l(f.node.id)):f=d:f=r(f);d={};d[h]=f;e(this.node,d);this.node.style[h]=\n", - "x}}function z(a){k.stop();a==+a&&(a+=\"px\");this.node.style.fontSize=a}function d(a){var b=[];a=a.childNodes;for(var e=0,f=a.length;e<f;e++){var l=a[e];3==l.nodeType&&b.push(l.nodeValue);\"tspan\"==l.tagName&&(1==l.childNodes.length&&3==l.firstChild.nodeType?b.push(l.firstChild.nodeValue):b.push(d(l)))}return b}function f(){k.stop();return this.node.style.fontSize}var n=a._.make,u=a._.wrap,p=a.is,b=a._.getSomeDefs,q=/^url\\(#?([^)]+)\\)$/,e=a._.$,l=a.url,r=String,s=a._.separator,x=\"\";k.on(\"snap.util.attr.mask\",\n", - "function(a){if(a instanceof v||a instanceof A){k.stop();a instanceof A&&1==a.node.childNodes.length&&(a=a.node.firstChild,b(this).appendChild(a),a=u(a));if(\"mask\"==a.type)var d=a;else d=n(\"mask\",b(this)),d.node.appendChild(a.node);!d.node.id&&e(d.node,{id:d.id});e(this.node,{mask:l(d.id)})}});(function(a){k.on(\"snap.util.attr.clip\",a);k.on(\"snap.util.attr.clip-path\",a);k.on(\"snap.util.attr.clipPath\",a)})(function(a){if(a instanceof v||a instanceof A){k.stop();if(\"clipPath\"==a.type)var d=a;else d=\n", - "n(\"clipPath\",b(this)),d.node.appendChild(a.node),!d.node.id&&e(d.node,{id:d.id});e(this.node,{\"clip-path\":l(d.id)})}});k.on(\"snap.util.attr.fill\",w(\"fill\"));k.on(\"snap.util.attr.stroke\",w(\"stroke\"));var G=/^([lr])(?:\\(([^)]*)\\))?(.*)$/i;k.on(\"snap.util.grad.parse\",function(a){a=r(a);var b=a.match(G);if(!b)return null;a=b[1];var e=b[2],b=b[3],e=e.split(/\\s*,\\s*/).map(function(a){return+a==a?+a:a});1==e.length&&0==e[0]&&(e=[]);b=b.split(\"-\");b=b.map(function(a){a=a.split(\":\");var b={color:a[0]};a[1]&&\n", - "(b.offset=parseFloat(a[1]));return b});return{type:a,params:e,stops:b}});k.on(\"snap.util.attr.d\",function(b){k.stop();p(b,\"array\")&&p(b[0],\"array\")&&(b=a.path.toString.call(b));b=r(b);b.match(/[ruo]/i)&&(b=a.path.toAbsolute(b));e(this.node,{d:b})})(-1);k.on(\"snap.util.attr.#text\",function(a){k.stop();a=r(a);for(a=M.doc.createTextNode(a);this.node.firstChild;)this.node.removeChild(this.node.firstChild);this.node.appendChild(a)})(-1);k.on(\"snap.util.attr.path\",function(a){k.stop();this.attr({d:a})})(-1);\n", - "k.on(\"snap.util.attr.class\",function(a){k.stop();this.node.className.baseVal=a})(-1);k.on(\"snap.util.attr.viewBox\",function(a){a=p(a,\"object\")&&\"x\"in a?[a.x,a.y,a.width,a.height].join(\" \"):p(a,\"array\")?a.join(\" \"):a;e(this.node,{viewBox:a});k.stop()})(-1);k.on(\"snap.util.attr.transform\",function(a){this.transform(a);k.stop()})(-1);k.on(\"snap.util.attr.r\",function(a){\"rect\"==this.type&&(k.stop(),e(this.node,{rx:a,ry:a}))})(-1);k.on(\"snap.util.attr.textpath\",function(a){k.stop();if(\"text\"==this.type){var d,\n", - "f;if(!a&&this.textPath){for(a=this.textPath;a.node.firstChild;)this.node.appendChild(a.node.firstChild);a.remove();delete this.textPath}else if(p(a,\"string\")?(d=b(this),a=u(d.parentNode).path(a),d.appendChild(a.node),d=a.id,a.attr({id:d})):(a=u(a),a instanceof v&&(d=a.attr(\"id\"),d||(d=a.id,a.attr({id:d})))),d)if(a=this.textPath,f=this.node,a)a.attr({\"xlink:href\":\"#\"+d});else{for(a=e(\"textPath\",{\"xlink:href\":\"#\"+d});f.firstChild;)a.appendChild(f.firstChild);f.appendChild(a);this.textPath=u(a)}}})(-1);\n", - "k.on(\"snap.util.attr.text\",function(a){if(\"text\"==this.type){for(var b=this.node,d=function(a){var b=e(\"tspan\");if(p(a,\"array\"))for(var f=0;f<a.length;f++)b.appendChild(d(a[f]));else b.appendChild(M.doc.createTextNode(a));b.normalize&&b.normalize();return b};b.firstChild;)b.removeChild(b.firstChild);for(a=d(a);a.firstChild;)b.appendChild(a.firstChild)}k.stop()})(-1);k.on(\"snap.util.attr.fontSize\",z)(-1);k.on(\"snap.util.attr.font-size\",z)(-1);k.on(\"snap.util.getattr.transform\",function(){k.stop();\n", - "return this.transform()})(-1);k.on(\"snap.util.getattr.textpath\",function(){k.stop();return this.textPath})(-1);(function(){function b(d){return function(){k.stop();var b=M.doc.defaultView.getComputedStyle(this.node,null).getPropertyValue(\"marker-\"+d);return\"none\"==b?b:a(M.doc.getElementById(b.match(q)[1]))}}function d(a){return function(b){k.stop();var d=\"marker\"+a.charAt(0).toUpperCase()+a.substring(1);if(\"\"==b||!b)this.node.style[d]=\"none\";else if(\"marker\"==b.type){var f=b.node.id;f||e(b.node,{id:b.id});\n", - "this.node.style[d]=l(f)}}}k.on(\"snap.util.getattr.marker-end\",b(\"end\"))(-1);k.on(\"snap.util.getattr.markerEnd\",b(\"end\"))(-1);k.on(\"snap.util.getattr.marker-start\",b(\"start\"))(-1);k.on(\"snap.util.getattr.markerStart\",b(\"start\"))(-1);k.on(\"snap.util.getattr.marker-mid\",b(\"mid\"))(-1);k.on(\"snap.util.getattr.markerMid\",b(\"mid\"))(-1);k.on(\"snap.util.attr.marker-end\",d(\"end\"))(-1);k.on(\"snap.util.attr.markerEnd\",d(\"end\"))(-1);k.on(\"snap.util.attr.marker-start\",d(\"start\"))(-1);k.on(\"snap.util.attr.markerStart\",\n", - "d(\"start\"))(-1);k.on(\"snap.util.attr.marker-mid\",d(\"mid\"))(-1);k.on(\"snap.util.attr.markerMid\",d(\"mid\"))(-1)})();k.on(\"snap.util.getattr.r\",function(){if(\"rect\"==this.type&&e(this.node,\"rx\")==e(this.node,\"ry\"))return k.stop(),e(this.node,\"rx\")})(-1);k.on(\"snap.util.getattr.text\",function(){if(\"text\"==this.type||\"tspan\"==this.type){k.stop();var a=d(this.node);return 1==a.length?a[0]:a}})(-1);k.on(\"snap.util.getattr.#text\",function(){return this.node.textContent})(-1);k.on(\"snap.util.getattr.viewBox\",\n", - "function(){k.stop();var b=e(this.node,\"viewBox\");if(b)return b=b.split(s),a._.box(+b[0],+b[1],+b[2],+b[3])})(-1);k.on(\"snap.util.getattr.points\",function(){var a=e(this.node,\"points\");k.stop();if(a)return a.split(s)})(-1);k.on(\"snap.util.getattr.path\",function(){var a=e(this.node,\"d\");k.stop();return a})(-1);k.on(\"snap.util.getattr.class\",function(){return this.node.className.baseVal})(-1);k.on(\"snap.util.getattr.fontSize\",f)(-1);k.on(\"snap.util.getattr.font-size\",f)(-1)});C.plugin(function(a,v,y,\n", - "M,A){function w(a){return a}function z(a){return function(b){return+b.toFixed(3)+a}}var d={\"+\":function(a,b){return a+b},\"-\":function(a,b){return a-b},\"/\":function(a,b){return a/b},\"*\":function(a,b){return a*b}},f=String,n=/[a-z]+$/i,u=/^\\s*([+\\-\\/*])\\s*=\\s*([\\d.eE+\\-]+)\\s*([^\\d\\s]+)?\\s*$/;k.on(\"snap.util.attr\",function(a){if(a=f(a).match(u)){var b=k.nt(),b=b.substring(b.lastIndexOf(\".\")+1),q=this.attr(b),e={};k.stop();var l=a[3]||\"\",r=q.match(n),s=d[a[1] ];r&&r==l?a=s(parseFloat(q),+a[2]):(q=this.asPX(b),\n", - "a=s(this.asPX(b),this.asPX(b,a[2]+l)));isNaN(q)||isNaN(a)||(e[b]=a,this.attr(e))}})(-10);k.on(\"snap.util.equal\",function(a,b){var q=f(this.attr(a)||\"\"),e=f(b).match(u);if(e){k.stop();var l=e[3]||\"\",r=q.match(n),s=d[e[1] ];if(r&&r==l)return{from:parseFloat(q),to:s(parseFloat(q),+e[2]),f:z(r)};q=this.asPX(a);return{from:q,to:s(q,this.asPX(a,e[2]+l)),f:w}}})(-10)});C.plugin(function(a,v,y,M,A){var w=y.prototype,z=a.is;w.rect=function(a,d,k,p,b,q){var e;null==q&&(q=b);z(a,\"object\")&&\"[object Object]\"==\n", - "a?e=a:null!=a&&(e={x:a,y:d,width:k,height:p},null!=b&&(e.rx=b,e.ry=q));return this.el(\"rect\",e)};w.circle=function(a,d,k){var p;z(a,\"object\")&&\"[object Object]\"==a?p=a:null!=a&&(p={cx:a,cy:d,r:k});return this.el(\"circle\",p)};var d=function(){function a(){this.parentNode.removeChild(this)}return function(d,k){var p=M.doc.createElement(\"img\"),b=M.doc.body;p.style.cssText=\"position:absolute;left:-9999em;top:-9999em\";p.onload=function(){k.call(p);p.onload=p.onerror=null;b.removeChild(p)};p.onerror=a;\n", - "b.appendChild(p);p.src=d}}();w.image=function(f,n,k,p,b){var q=this.el(\"image\");if(z(f,\"object\")&&\"src\"in f)q.attr(f);else if(null!=f){var e={\"xlink:href\":f,preserveAspectRatio:\"none\"};null!=n&&null!=k&&(e.x=n,e.y=k);null!=p&&null!=b?(e.width=p,e.height=b):d(f,function(){a._.$(q.node,{width:this.offsetWidth,height:this.offsetHeight})});a._.$(q.node,e)}return q};w.ellipse=function(a,d,k,p){var b;z(a,\"object\")&&\"[object Object]\"==a?b=a:null!=a&&(b={cx:a,cy:d,rx:k,ry:p});return this.el(\"ellipse\",b)};\n", - "w.path=function(a){var d;z(a,\"object\")&&!z(a,\"array\")?d=a:a&&(d={d:a});return this.el(\"path\",d)};w.group=w.g=function(a){var d=this.el(\"g\");1==arguments.length&&a&&!a.type?d.attr(a):arguments.length&&d.add(Array.prototype.slice.call(arguments,0));return d};w.svg=function(a,d,k,p,b,q,e,l){var r={};z(a,\"object\")&&null==d?r=a:(null!=a&&(r.x=a),null!=d&&(r.y=d),null!=k&&(r.width=k),null!=p&&(r.height=p),null!=b&&null!=q&&null!=e&&null!=l&&(r.viewBox=[b,q,e,l]));return this.el(\"svg\",r)};w.mask=function(a){var d=\n", - "this.el(\"mask\");1==arguments.length&&a&&!a.type?d.attr(a):arguments.length&&d.add(Array.prototype.slice.call(arguments,0));return d};w.ptrn=function(a,d,k,p,b,q,e,l){if(z(a,\"object\"))var r=a;else arguments.length?(r={},null!=a&&(r.x=a),null!=d&&(r.y=d),null!=k&&(r.width=k),null!=p&&(r.height=p),null!=b&&null!=q&&null!=e&&null!=l&&(r.viewBox=[b,q,e,l])):r={patternUnits:\"userSpaceOnUse\"};return this.el(\"pattern\",r)};w.use=function(a){return null!=a?(make(\"use\",this.node),a instanceof v&&(a.attr(\"id\")||\n", - "a.attr({id:ID()}),a=a.attr(\"id\")),this.el(\"use\",{\"xlink:href\":a})):v.prototype.use.call(this)};w.text=function(a,d,k){var p={};z(a,\"object\")?p=a:null!=a&&(p={x:a,y:d,text:k||\"\"});return this.el(\"text\",p)};w.line=function(a,d,k,p){var b={};z(a,\"object\")?b=a:null!=a&&(b={x1:a,x2:k,y1:d,y2:p});return this.el(\"line\",b)};w.polyline=function(a){1<arguments.length&&(a=Array.prototype.slice.call(arguments,0));var d={};z(a,\"object\")&&!z(a,\"array\")?d=a:null!=a&&(d={points:a});return this.el(\"polyline\",d)};\n", - "w.polygon=function(a){1<arguments.length&&(a=Array.prototype.slice.call(arguments,0));var d={};z(a,\"object\")&&!z(a,\"array\")?d=a:null!=a&&(d={points:a});return this.el(\"polygon\",d)};(function(){function d(){return this.selectAll(\"stop\")}function n(b,d){var f=e(\"stop\"),k={offset:+d+\"%\"};b=a.color(b);k[\"stop-color\"]=b.hex;1>b.opacity&&(k[\"stop-opacity\"]=b.opacity);e(f,k);this.node.appendChild(f);return this}function u(){if(\"linearGradient\"==this.type){var b=e(this.node,\"x1\")||0,d=e(this.node,\"x2\")||\n", - "1,f=e(this.node,\"y1\")||0,k=e(this.node,\"y2\")||0;return a._.box(b,f,math.abs(d-b),math.abs(k-f))}b=this.node.r||0;return a._.box((this.node.cx||0.5)-b,(this.node.cy||0.5)-b,2*b,2*b)}function p(a,d){function f(a,b){for(var d=(b-u)/(a-w),e=w;e<a;e++)h[e].offset=+(+u+d*(e-w)).toFixed(2);w=a;u=b}var n=k(\"snap.util.grad.parse\",null,d).firstDefined(),p;if(!n)return null;n.params.unshift(a);p=\"l\"==n.type.toLowerCase()?b.apply(0,n.params):q.apply(0,n.params);n.type!=n.type.toLowerCase()&&e(p.node,{gradientUnits:\"userSpaceOnUse\"});\n", - "var h=n.stops,n=h.length,u=0,w=0;n--;for(var v=0;v<n;v++)\"offset\"in h[v]&&f(v,h[v].offset);h[n].offset=h[n].offset||100;f(n,h[n].offset);for(v=0;v<=n;v++){var y=h[v];p.addStop(y.color,y.offset)}return p}function b(b,k,p,q,w){b=a._.make(\"linearGradient\",b);b.stops=d;b.addStop=n;b.getBBox=u;null!=k&&e(b.node,{x1:k,y1:p,x2:q,y2:w});return b}function q(b,k,p,q,w,h){b=a._.make(\"radialGradient\",b);b.stops=d;b.addStop=n;b.getBBox=u;null!=k&&e(b.node,{cx:k,cy:p,r:q});null!=w&&null!=h&&e(b.node,{fx:w,fy:h});\n", - "return b}var e=a._.$;w.gradient=function(a){return p(this.defs,a)};w.gradientLinear=function(a,d,e,f){return b(this.defs,a,d,e,f)};w.gradientRadial=function(a,b,d,e,f){return q(this.defs,a,b,d,e,f)};w.toString=function(){var b=this.node.ownerDocument,d=b.createDocumentFragment(),b=b.createElement(\"div\"),e=this.node.cloneNode(!0);d.appendChild(b);b.appendChild(e);a._.$(e,{xmlns:\"http://www.w3.org/2000/svg\"});b=b.innerHTML;d.removeChild(d.firstChild);return b};w.clear=function(){for(var a=this.node.firstChild,\n", - "b;a;)b=a.nextSibling,\"defs\"!=a.tagName?a.parentNode.removeChild(a):w.clear.call({node:a}),a=b}})()});C.plugin(function(a,k,y,M){function A(a){var b=A.ps=A.ps||{};b[a]?b[a].sleep=100:b[a]={sleep:100};setTimeout(function(){for(var d in b)b[L](d)&&d!=a&&(b[d].sleep--,!b[d].sleep&&delete b[d])});return b[a]}function w(a,b,d,e){null==a&&(a=b=d=e=0);null==b&&(b=a.y,d=a.width,e=a.height,a=a.x);return{x:a,y:b,width:d,w:d,height:e,h:e,x2:a+d,y2:b+e,cx:a+d/2,cy:b+e/2,r1:F.min(d,e)/2,r2:F.max(d,e)/2,r0:F.sqrt(d*\n", - "d+e*e)/2,path:s(a,b,d,e),vb:[a,b,d,e].join(\" \")}}function z(){return this.join(\",\").replace(N,\"$1\")}function d(a){a=C(a);a.toString=z;return a}function f(a,b,d,h,f,k,l,n,p){if(null==p)return e(a,b,d,h,f,k,l,n);if(0>p||e(a,b,d,h,f,k,l,n)<p)p=void 0;else{var q=0.5,O=1-q,s;for(s=e(a,b,d,h,f,k,l,n,O);0.01<Z(s-p);)q/=2,O+=(s<p?1:-1)*q,s=e(a,b,d,h,f,k,l,n,O);p=O}return u(a,b,d,h,f,k,l,n,p)}function n(b,d){function e(a){return+(+a).toFixed(3)}return a._.cacher(function(a,h,l){a instanceof k&&(a=a.attr(\"d\"));\n", - "a=I(a);for(var n,p,D,q,O=\"\",s={},c=0,t=0,r=a.length;t<r;t++){D=a[t];if(\"M\"==D[0])n=+D[1],p=+D[2];else{q=f(n,p,D[1],D[2],D[3],D[4],D[5],D[6]);if(c+q>h){if(d&&!s.start){n=f(n,p,D[1],D[2],D[3],D[4],D[5],D[6],h-c);O+=[\"C\"+e(n.start.x),e(n.start.y),e(n.m.x),e(n.m.y),e(n.x),e(n.y)];if(l)return O;s.start=O;O=[\"M\"+e(n.x),e(n.y)+\"C\"+e(n.n.x),e(n.n.y),e(n.end.x),e(n.end.y),e(D[5]),e(D[6])].join();c+=q;n=+D[5];p=+D[6];continue}if(!b&&!d)return n=f(n,p,D[1],D[2],D[3],D[4],D[5],D[6],h-c)}c+=q;n=+D[5];p=+D[6]}O+=\n", - "D.shift()+D}s.end=O;return n=b?c:d?s:u(n,p,D[0],D[1],D[2],D[3],D[4],D[5],1)},null,a._.clone)}function u(a,b,d,e,h,f,k,l,n){var p=1-n,q=ma(p,3),s=ma(p,2),c=n*n,t=c*n,r=q*a+3*s*n*d+3*p*n*n*h+t*k,q=q*b+3*s*n*e+3*p*n*n*f+t*l,s=a+2*n*(d-a)+c*(h-2*d+a),t=b+2*n*(e-b)+c*(f-2*e+b),x=d+2*n*(h-d)+c*(k-2*h+d),c=e+2*n*(f-e)+c*(l-2*f+e);a=p*a+n*d;b=p*b+n*e;h=p*h+n*k;f=p*f+n*l;l=90-180*F.atan2(s-x,t-c)/S;return{x:r,y:q,m:{x:s,y:t},n:{x:x,y:c},start:{x:a,y:b},end:{x:h,y:f},alpha:l}}function p(b,d,e,h,f,n,k,l){a.is(b,\n", - "\"array\")||(b=[b,d,e,h,f,n,k,l]);b=U.apply(null,b);return w(b.min.x,b.min.y,b.max.x-b.min.x,b.max.y-b.min.y)}function b(a,b,d){return b>=a.x&&b<=a.x+a.width&&d>=a.y&&d<=a.y+a.height}function q(a,d){a=w(a);d=w(d);return b(d,a.x,a.y)||b(d,a.x2,a.y)||b(d,a.x,a.y2)||b(d,a.x2,a.y2)||b(a,d.x,d.y)||b(a,d.x2,d.y)||b(a,d.x,d.y2)||b(a,d.x2,d.y2)||(a.x<d.x2&&a.x>d.x||d.x<a.x2&&d.x>a.x)&&(a.y<d.y2&&a.y>d.y||d.y<a.y2&&d.y>a.y)}function e(a,b,d,e,h,f,n,k,l){null==l&&(l=1);l=(1<l?1:0>l?0:l)/2;for(var p=[-0.1252,\n", - "0.1252,-0.3678,0.3678,-0.5873,0.5873,-0.7699,0.7699,-0.9041,0.9041,-0.9816,0.9816],q=[0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472],s=0,c=0;12>c;c++)var t=l*p[c]+l,r=t*(t*(-3*a+9*d-9*h+3*n)+6*a-12*d+6*h)-3*a+3*d,t=t*(t*(-3*b+9*e-9*f+3*k)+6*b-12*e+6*f)-3*b+3*e,s=s+q[c]*F.sqrt(r*r+t*t);return l*s}function l(a,b,d){a=I(a);b=I(b);for(var h,f,l,n,k,s,r,O,x,c,t=d?0:[],w=0,v=a.length;w<v;w++)if(x=a[w],\"M\"==x[0])h=k=x[1],f=s=x[2];else{\"C\"==x[0]?(x=[h,f].concat(x.slice(1)),\n", - "h=x[6],f=x[7]):(x=[h,f,h,f,k,s,k,s],h=k,f=s);for(var G=0,y=b.length;G<y;G++)if(c=b[G],\"M\"==c[0])l=r=c[1],n=O=c[2];else{\"C\"==c[0]?(c=[l,n].concat(c.slice(1)),l=c[6],n=c[7]):(c=[l,n,l,n,r,O,r,O],l=r,n=O);var z;var K=x,B=c;z=d;var H=p(K),J=p(B);if(q(H,J)){for(var H=e.apply(0,K),J=e.apply(0,B),H=~~(H/8),J=~~(J/8),U=[],A=[],F={},M=z?0:[],P=0;P<H+1;P++){var C=u.apply(0,K.concat(P/H));U.push({x:C.x,y:C.y,t:P/H})}for(P=0;P<J+1;P++)C=u.apply(0,B.concat(P/J)),A.push({x:C.x,y:C.y,t:P/J});for(P=0;P<H;P++)for(K=\n", - "0;K<J;K++){var Q=U[P],L=U[P+1],B=A[K],C=A[K+1],N=0.001>Z(L.x-Q.x)?\"y\":\"x\",S=0.001>Z(C.x-B.x)?\"y\":\"x\",R;R=Q.x;var Y=Q.y,V=L.x,ea=L.y,fa=B.x,ga=B.y,ha=C.x,ia=C.y;if(W(R,V)<X(fa,ha)||X(R,V)>W(fa,ha)||W(Y,ea)<X(ga,ia)||X(Y,ea)>W(ga,ia))R=void 0;else{var $=(R*ea-Y*V)*(fa-ha)-(R-V)*(fa*ia-ga*ha),aa=(R*ea-Y*V)*(ga-ia)-(Y-ea)*(fa*ia-ga*ha),ja=(R-V)*(ga-ia)-(Y-ea)*(fa-ha);if(ja){var $=$/ja,aa=aa/ja,ja=+$.toFixed(2),ba=+aa.toFixed(2);R=ja<+X(R,V).toFixed(2)||ja>+W(R,V).toFixed(2)||ja<+X(fa,ha).toFixed(2)||\n", - "ja>+W(fa,ha).toFixed(2)||ba<+X(Y,ea).toFixed(2)||ba>+W(Y,ea).toFixed(2)||ba<+X(ga,ia).toFixed(2)||ba>+W(ga,ia).toFixed(2)?void 0:{x:$,y:aa}}else R=void 0}R&&F[R.x.toFixed(4)]!=R.y.toFixed(4)&&(F[R.x.toFixed(4)]=R.y.toFixed(4),Q=Q.t+Z((R[N]-Q[N])/(L[N]-Q[N]))*(L.t-Q.t),B=B.t+Z((R[S]-B[S])/(C[S]-B[S]))*(C.t-B.t),0<=Q&&1>=Q&&0<=B&&1>=B&&(z?M++:M.push({x:R.x,y:R.y,t1:Q,t2:B})))}z=M}else z=z?0:[];if(d)t+=z;else{H=0;for(J=z.length;H<J;H++)z[H].segment1=w,z[H].segment2=G,z[H].bez1=x,z[H].bez2=c;t=t.concat(z)}}}return t}\n", - "function r(a){var b=A(a);if(b.bbox)return C(b.bbox);if(!a)return w();a=I(a);for(var d=0,e=0,h=[],f=[],l,n=0,k=a.length;n<k;n++)l=a[n],\"M\"==l[0]?(d=l[1],e=l[2],h.push(d),f.push(e)):(d=U(d,e,l[1],l[2],l[3],l[4],l[5],l[6]),h=h.concat(d.min.x,d.max.x),f=f.concat(d.min.y,d.max.y),d=l[5],e=l[6]);a=X.apply(0,h);l=X.apply(0,f);h=W.apply(0,h);f=W.apply(0,f);f=w(a,l,h-a,f-l);b.bbox=C(f);return f}function s(a,b,d,e,h){if(h)return[[\"M\",+a+ +h,b],[\"l\",d-2*h,0],[\"a\",h,h,0,0,1,h,h],[\"l\",0,e-2*h],[\"a\",h,h,0,0,1,\n", - "-h,h],[\"l\",2*h-d,0],[\"a\",h,h,0,0,1,-h,-h],[\"l\",0,2*h-e],[\"a\",h,h,0,0,1,h,-h],[\"z\"] ];a=[[\"M\",a,b],[\"l\",d,0],[\"l\",0,e],[\"l\",-d,0],[\"z\"] ];a.toString=z;return a}function x(a,b,d,e,h){null==h&&null==e&&(e=d);a=+a;b=+b;d=+d;e=+e;if(null!=h){var f=Math.PI/180,l=a+d*Math.cos(-e*f);a+=d*Math.cos(-h*f);var n=b+d*Math.sin(-e*f);b+=d*Math.sin(-h*f);d=[[\"M\",l,n],[\"A\",d,d,0,+(180<h-e),0,a,b] ]}else d=[[\"M\",a,b],[\"m\",0,-e],[\"a\",d,e,0,1,1,0,2*e],[\"a\",d,e,0,1,1,0,-2*e],[\"z\"] ];d.toString=z;return d}function G(b){var e=\n", - "A(b);if(e.abs)return d(e.abs);Q(b,\"array\")&&Q(b&&b[0],\"array\")||(b=a.parsePathString(b));if(!b||!b.length)return[[\"M\",0,0] ];var h=[],f=0,l=0,n=0,k=0,p=0;\"M\"==b[0][0]&&(f=+b[0][1],l=+b[0][2],n=f,k=l,p++,h[0]=[\"M\",f,l]);for(var q=3==b.length&&\"M\"==b[0][0]&&\"R\"==b[1][0].toUpperCase()&&\"Z\"==b[2][0].toUpperCase(),s,r,w=p,c=b.length;w<c;w++){h.push(s=[]);r=b[w];p=r[0];if(p!=p.toUpperCase())switch(s[0]=p.toUpperCase(),s[0]){case \"A\":s[1]=r[1];s[2]=r[2];s[3]=r[3];s[4]=r[4];s[5]=r[5];s[6]=+r[6]+f;s[7]=+r[7]+\n", - "l;break;case \"V\":s[1]=+r[1]+l;break;case \"H\":s[1]=+r[1]+f;break;case \"R\":for(var t=[f,l].concat(r.slice(1)),u=2,v=t.length;u<v;u++)t[u]=+t[u]+f,t[++u]=+t[u]+l;h.pop();h=h.concat(P(t,q));break;case \"O\":h.pop();t=x(f,l,r[1],r[2]);t.push(t[0]);h=h.concat(t);break;case \"U\":h.pop();h=h.concat(x(f,l,r[1],r[2],r[3]));s=[\"U\"].concat(h[h.length-1].slice(-2));break;case \"M\":n=+r[1]+f,k=+r[2]+l;default:for(u=1,v=r.length;u<v;u++)s[u]=+r[u]+(u%2?f:l)}else if(\"R\"==p)t=[f,l].concat(r.slice(1)),h.pop(),h=h.concat(P(t,\n", - "q)),s=[\"R\"].concat(r.slice(-2));else if(\"O\"==p)h.pop(),t=x(f,l,r[1],r[2]),t.push(t[0]),h=h.concat(t);else if(\"U\"==p)h.pop(),h=h.concat(x(f,l,r[1],r[2],r[3])),s=[\"U\"].concat(h[h.length-1].slice(-2));else for(t=0,u=r.length;t<u;t++)s[t]=r[t];p=p.toUpperCase();if(\"O\"!=p)switch(s[0]){case \"Z\":f=+n;l=+k;break;case \"H\":f=s[1];break;case \"V\":l=s[1];break;case \"M\":n=s[s.length-2],k=s[s.length-1];default:f=s[s.length-2],l=s[s.length-1]}}h.toString=z;e.abs=d(h);return h}function h(a,b,d,e){return[a,b,d,e,d,\n", - "e]}function J(a,b,d,e,h,f){var l=1/3,n=2/3;return[l*a+n*d,l*b+n*e,l*h+n*d,l*f+n*e,h,f]}function K(b,d,e,h,f,l,n,k,p,s){var r=120*S/180,q=S/180*(+f||0),c=[],t,x=a._.cacher(function(a,b,c){var d=a*F.cos(c)-b*F.sin(c);a=a*F.sin(c)+b*F.cos(c);return{x:d,y:a}});if(s)v=s[0],t=s[1],l=s[2],u=s[3];else{t=x(b,d,-q);b=t.x;d=t.y;t=x(k,p,-q);k=t.x;p=t.y;F.cos(S/180*f);F.sin(S/180*f);t=(b-k)/2;v=(d-p)/2;u=t*t/(e*e)+v*v/(h*h);1<u&&(u=F.sqrt(u),e*=u,h*=u);var u=e*e,w=h*h,u=(l==n?-1:1)*F.sqrt(Z((u*w-u*v*v-w*t*t)/\n", - "(u*v*v+w*t*t)));l=u*e*v/h+(b+k)/2;var u=u*-h*t/e+(d+p)/2,v=F.asin(((d-u)/h).toFixed(9));t=F.asin(((p-u)/h).toFixed(9));v=b<l?S-v:v;t=k<l?S-t:t;0>v&&(v=2*S+v);0>t&&(t=2*S+t);n&&v>t&&(v-=2*S);!n&&t>v&&(t-=2*S)}if(Z(t-v)>r){var c=t,w=k,G=p;t=v+r*(n&&t>v?1:-1);k=l+e*F.cos(t);p=u+h*F.sin(t);c=K(k,p,e,h,f,0,n,w,G,[t,c,l,u])}l=t-v;f=F.cos(v);r=F.sin(v);n=F.cos(t);t=F.sin(t);l=F.tan(l/4);e=4/3*e*l;l*=4/3*h;h=[b,d];b=[b+e*r,d-l*f];d=[k+e*t,p-l*n];k=[k,p];b[0]=2*h[0]-b[0];b[1]=2*h[1]-b[1];if(s)return[b,d,k].concat(c);\n", - "c=[b,d,k].concat(c).join().split(\",\");s=[];k=0;for(p=c.length;k<p;k++)s[k]=k%2?x(c[k-1],c[k],q).y:x(c[k],c[k+1],q).x;return s}function U(a,b,d,e,h,f,l,k){for(var n=[],p=[[],[] ],s,r,c,t,q=0;2>q;++q)0==q?(r=6*a-12*d+6*h,s=-3*a+9*d-9*h+3*l,c=3*d-3*a):(r=6*b-12*e+6*f,s=-3*b+9*e-9*f+3*k,c=3*e-3*b),1E-12>Z(s)?1E-12>Z(r)||(s=-c/r,0<s&&1>s&&n.push(s)):(t=r*r-4*c*s,c=F.sqrt(t),0>t||(t=(-r+c)/(2*s),0<t&&1>t&&n.push(t),s=(-r-c)/(2*s),0<s&&1>s&&n.push(s)));for(r=q=n.length;q--;)s=n[q],c=1-s,p[0][q]=c*c*c*a+3*\n", - "c*c*s*d+3*c*s*s*h+s*s*s*l,p[1][q]=c*c*c*b+3*c*c*s*e+3*c*s*s*f+s*s*s*k;p[0][r]=a;p[1][r]=b;p[0][r+1]=l;p[1][r+1]=k;p[0].length=p[1].length=r+2;return{min:{x:X.apply(0,p[0]),y:X.apply(0,p[1])},max:{x:W.apply(0,p[0]),y:W.apply(0,p[1])}}}function I(a,b){var e=!b&&A(a);if(!b&&e.curve)return d(e.curve);var f=G(a),l=b&&G(b),n={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},k={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},p=function(a,b,c){if(!a)return[\"C\",b.x,b.y,b.x,b.y,b.x,b.y];a[0]in{T:1,Q:1}||(b.qx=b.qy=null);\n", - "switch(a[0]){case \"M\":b.X=a[1];b.Y=a[2];break;case \"A\":a=[\"C\"].concat(K.apply(0,[b.x,b.y].concat(a.slice(1))));break;case \"S\":\"C\"==c||\"S\"==c?(c=2*b.x-b.bx,b=2*b.y-b.by):(c=b.x,b=b.y);a=[\"C\",c,b].concat(a.slice(1));break;case \"T\":\"Q\"==c||\"T\"==c?(b.qx=2*b.x-b.qx,b.qy=2*b.y-b.qy):(b.qx=b.x,b.qy=b.y);a=[\"C\"].concat(J(b.x,b.y,b.qx,b.qy,a[1],a[2]));break;case \"Q\":b.qx=a[1];b.qy=a[2];a=[\"C\"].concat(J(b.x,b.y,a[1],a[2],a[3],a[4]));break;case \"L\":a=[\"C\"].concat(h(b.x,b.y,a[1],a[2]));break;case \"H\":a=[\"C\"].concat(h(b.x,\n", - "b.y,a[1],b.y));break;case \"V\":a=[\"C\"].concat(h(b.x,b.y,b.x,a[1]));break;case \"Z\":a=[\"C\"].concat(h(b.x,b.y,b.X,b.Y))}return a},s=function(a,b){if(7<a[b].length){a[b].shift();for(var c=a[b];c.length;)q[b]=\"A\",l&&(u[b]=\"A\"),a.splice(b++,0,[\"C\"].concat(c.splice(0,6)));a.splice(b,1);v=W(f.length,l&&l.length||0)}},r=function(a,b,c,d,e){a&&b&&\"M\"==a[e][0]&&\"M\"!=b[e][0]&&(b.splice(e,0,[\"M\",d.x,d.y]),c.bx=0,c.by=0,c.x=a[e][1],c.y=a[e][2],v=W(f.length,l&&l.length||0))},q=[],u=[],c=\"\",t=\"\",x=0,v=W(f.length,\n", - "l&&l.length||0);for(;x<v;x++){f[x]&&(c=f[x][0]);\"C\"!=c&&(q[x]=c,x&&(t=q[x-1]));f[x]=p(f[x],n,t);\"A\"!=q[x]&&\"C\"==c&&(q[x]=\"C\");s(f,x);l&&(l[x]&&(c=l[x][0]),\"C\"!=c&&(u[x]=c,x&&(t=u[x-1])),l[x]=p(l[x],k,t),\"A\"!=u[x]&&\"C\"==c&&(u[x]=\"C\"),s(l,x));r(f,l,n,k,x);r(l,f,k,n,x);var w=f[x],z=l&&l[x],y=w.length,U=l&&z.length;n.x=w[y-2];n.y=w[y-1];n.bx=$(w[y-4])||n.x;n.by=$(w[y-3])||n.y;k.bx=l&&($(z[U-4])||k.x);k.by=l&&($(z[U-3])||k.y);k.x=l&&z[U-2];k.y=l&&z[U-1]}l||(e.curve=d(f));return l?[f,l]:f}function P(a,\n", - "b){for(var d=[],e=0,h=a.length;h-2*!b>e;e+=2){var f=[{x:+a[e-2],y:+a[e-1]},{x:+a[e],y:+a[e+1]},{x:+a[e+2],y:+a[e+3]},{x:+a[e+4],y:+a[e+5]}];b?e?h-4==e?f[3]={x:+a[0],y:+a[1]}:h-2==e&&(f[2]={x:+a[0],y:+a[1]},f[3]={x:+a[2],y:+a[3]}):f[0]={x:+a[h-2],y:+a[h-1]}:h-4==e?f[3]=f[2]:e||(f[0]={x:+a[e],y:+a[e+1]});d.push([\"C\",(-f[0].x+6*f[1].x+f[2].x)/6,(-f[0].y+6*f[1].y+f[2].y)/6,(f[1].x+6*f[2].x-f[3].x)/6,(f[1].y+6*f[2].y-f[3].y)/6,f[2].x,f[2].y])}return d}y=k.prototype;var Q=a.is,C=a._.clone,L=\"hasOwnProperty\",\n", - "N=/,?([a-z]),?/gi,$=parseFloat,F=Math,S=F.PI,X=F.min,W=F.max,ma=F.pow,Z=F.abs;M=n(1);var na=n(),ba=n(0,1),V=a._unit2px;a.path=A;a.path.getTotalLength=M;a.path.getPointAtLength=na;a.path.getSubpath=function(a,b,d){if(1E-6>this.getTotalLength(a)-d)return ba(a,b).end;a=ba(a,d,1);return b?ba(a,b).end:a};y.getTotalLength=function(){if(this.node.getTotalLength)return this.node.getTotalLength()};y.getPointAtLength=function(a){return na(this.attr(\"d\"),a)};y.getSubpath=function(b,d){return a.path.getSubpath(this.attr(\"d\"),\n", - "b,d)};a._.box=w;a.path.findDotsAtSegment=u;a.path.bezierBBox=p;a.path.isPointInsideBBox=b;a.path.isBBoxIntersect=q;a.path.intersection=function(a,b){return l(a,b)};a.path.intersectionNumber=function(a,b){return l(a,b,1)};a.path.isPointInside=function(a,d,e){var h=r(a);return b(h,d,e)&&1==l(a,[[\"M\",d,e],[\"H\",h.x2+10] ],1)%2};a.path.getBBox=r;a.path.get={path:function(a){return a.attr(\"path\")},circle:function(a){a=V(a);return x(a.cx,a.cy,a.r)},ellipse:function(a){a=V(a);return x(a.cx||0,a.cy||0,a.rx,\n", - "a.ry)},rect:function(a){a=V(a);return s(a.x||0,a.y||0,a.width,a.height,a.rx,a.ry)},image:function(a){a=V(a);return s(a.x||0,a.y||0,a.width,a.height)},line:function(a){return\"M\"+[a.attr(\"x1\")||0,a.attr(\"y1\")||0,a.attr(\"x2\"),a.attr(\"y2\")]},polyline:function(a){return\"M\"+a.attr(\"points\")},polygon:function(a){return\"M\"+a.attr(\"points\")+\"z\"},deflt:function(a){a=a.node.getBBox();return s(a.x,a.y,a.width,a.height)}};a.path.toRelative=function(b){var e=A(b),h=String.prototype.toLowerCase;if(e.rel)return d(e.rel);\n", - "a.is(b,\"array\")&&a.is(b&&b[0],\"array\")||(b=a.parsePathString(b));var f=[],l=0,n=0,k=0,p=0,s=0;\"M\"==b[0][0]&&(l=b[0][1],n=b[0][2],k=l,p=n,s++,f.push([\"M\",l,n]));for(var r=b.length;s<r;s++){var q=f[s]=[],x=b[s];if(x[0]!=h.call(x[0]))switch(q[0]=h.call(x[0]),q[0]){case \"a\":q[1]=x[1];q[2]=x[2];q[3]=x[3];q[4]=x[4];q[5]=x[5];q[6]=+(x[6]-l).toFixed(3);q[7]=+(x[7]-n).toFixed(3);break;case \"v\":q[1]=+(x[1]-n).toFixed(3);break;case \"m\":k=x[1],p=x[2];default:for(var c=1,t=x.length;c<t;c++)q[c]=+(x[c]-(c%2?l:\n", - "n)).toFixed(3)}else for(f[s]=[],\"m\"==x[0]&&(k=x[1]+l,p=x[2]+n),q=0,c=x.length;q<c;q++)f[s][q]=x[q];x=f[s].length;switch(f[s][0]){case \"z\":l=k;n=p;break;case \"h\":l+=+f[s][x-1];break;case \"v\":n+=+f[s][x-1];break;default:l+=+f[s][x-2],n+=+f[s][x-1]}}f.toString=z;e.rel=d(f);return f};a.path.toAbsolute=G;a.path.toCubic=I;a.path.map=function(a,b){if(!b)return a;var d,e,h,f,l,n,k;a=I(a);h=0;for(l=a.length;h<l;h++)for(k=a[h],f=1,n=k.length;f<n;f+=2)d=b.x(k[f],k[f+1]),e=b.y(k[f],k[f+1]),k[f]=d,k[f+1]=e;return a};\n", - "a.path.toString=z;a.path.clone=d});C.plugin(function(a,v,y,C){var A=Math.max,w=Math.min,z=function(a){this.items=[];this.bindings={};this.length=0;this.type=\"set\";if(a)for(var f=0,n=a.length;f<n;f++)a[f]&&(this[this.items.length]=this.items[this.items.length]=a[f],this.length++)};v=z.prototype;v.push=function(){for(var a,f,n=0,k=arguments.length;n<k;n++)if(a=arguments[n])f=this.items.length,this[f]=this.items[f]=a,this.length++;return this};v.pop=function(){this.length&&delete this[this.length--];\n", - "return this.items.pop()};v.forEach=function(a,f){for(var n=0,k=this.items.length;n<k&&!1!==a.call(f,this.items[n],n);n++);return this};v.animate=function(d,f,n,u){\"function\"!=typeof n||n.length||(u=n,n=L.linear);d instanceof a._.Animation&&(u=d.callback,n=d.easing,f=n.dur,d=d.attr);var p=arguments;if(a.is(d,\"array\")&&a.is(p[p.length-1],\"array\"))var b=!0;var q,e=function(){q?this.b=q:q=this.b},l=0,r=u&&function(){l++==this.length&&u.call(this)};return this.forEach(function(a,l){k.once(\"snap.animcreated.\"+\n", - "a.id,e);b?p[l]&&a.animate.apply(a,p[l]):a.animate(d,f,n,r)})};v.remove=function(){for(;this.length;)this.pop().remove();return this};v.bind=function(a,f,k){var u={};if(\"function\"==typeof f)this.bindings[a]=f;else{var p=k||a;this.bindings[a]=function(a){u[p]=a;f.attr(u)}}return this};v.attr=function(a){var f={},k;for(k in a)if(this.bindings[k])this.bindings[k](a[k]);else f[k]=a[k];a=0;for(k=this.items.length;a<k;a++)this.items[a].attr(f);return this};v.clear=function(){for(;this.length;)this.pop()};\n", - "v.splice=function(a,f,k){a=0>a?A(this.length+a,0):a;f=A(0,w(this.length-a,f));var u=[],p=[],b=[],q;for(q=2;q<arguments.length;q++)b.push(arguments[q]);for(q=0;q<f;q++)p.push(this[a+q]);for(;q<this.length-a;q++)u.push(this[a+q]);var e=b.length;for(q=0;q<e+u.length;q++)this.items[a+q]=this[a+q]=q<e?b[q]:u[q-e];for(q=this.items.length=this.length-=f-e;this[q];)delete this[q++];return new z(p)};v.exclude=function(a){for(var f=0,k=this.length;f<k;f++)if(this[f]==a)return this.splice(f,1),!0;return!1};\n", - "v.insertAfter=function(a){for(var f=this.items.length;f--;)this.items[f].insertAfter(a);return this};v.getBBox=function(){for(var a=[],f=[],k=[],u=[],p=this.items.length;p--;)if(!this.items[p].removed){var b=this.items[p].getBBox();a.push(b.x);f.push(b.y);k.push(b.x+b.width);u.push(b.y+b.height)}a=w.apply(0,a);f=w.apply(0,f);k=A.apply(0,k);u=A.apply(0,u);return{x:a,y:f,x2:k,y2:u,width:k-a,height:u-f,cx:a+(k-a)/2,cy:f+(u-f)/2}};v.clone=function(a){a=new z;for(var f=0,k=this.items.length;f<k;f++)a.push(this.items[f].clone());\n", - "return a};v.toString=function(){return\"Snap\\u2018s set\"};v.type=\"set\";a.set=function(){var a=new z;arguments.length&&a.push.apply(a,Array.prototype.slice.call(arguments,0));return a}});C.plugin(function(a,v,y,C){function A(a){var b=a[0];switch(b.toLowerCase()){case \"t\":return[b,0,0];case \"m\":return[b,1,0,0,1,0,0];case \"r\":return 4==a.length?[b,0,a[2],a[3] ]:[b,0];case \"s\":return 5==a.length?[b,1,1,a[3],a[4] ]:3==a.length?[b,1,1]:[b,1]}}function w(b,d,f){d=q(d).replace(/\\.{3}|\\u2026/g,b);b=a.parseTransformString(b)||\n", - "[];d=a.parseTransformString(d)||[];for(var k=Math.max(b.length,d.length),p=[],v=[],h=0,w,z,y,I;h<k;h++){y=b[h]||A(d[h]);I=d[h]||A(y);if(y[0]!=I[0]||\"r\"==y[0].toLowerCase()&&(y[2]!=I[2]||y[3]!=I[3])||\"s\"==y[0].toLowerCase()&&(y[3]!=I[3]||y[4]!=I[4])){b=a._.transform2matrix(b,f());d=a._.transform2matrix(d,f());p=[[\"m\",b.a,b.b,b.c,b.d,b.e,b.f] ];v=[[\"m\",d.a,d.b,d.c,d.d,d.e,d.f] ];break}p[h]=[];v[h]=[];w=0;for(z=Math.max(y.length,I.length);w<z;w++)w in y&&(p[h][w]=y[w]),w in I&&(v[h][w]=I[w])}return{from:u(p),\n", - "to:u(v),f:n(p)}}function z(a){return a}function d(a){return function(b){return+b.toFixed(3)+a}}function f(b){return a.rgb(b[0],b[1],b[2])}function n(a){var b=0,d,f,k,n,h,p,q=[];d=0;for(f=a.length;d<f;d++){h=\"[\";p=['\"'+a[d][0]+'\"'];k=1;for(n=a[d].length;k<n;k++)p[k]=\"val[\"+b++ +\"]\";h+=p+\"]\";q[d]=h}return Function(\"val\",\"return Snap.path.toString.call([\"+q+\"])\")}function u(a){for(var b=[],d=0,f=a.length;d<f;d++)for(var k=1,n=a[d].length;k<n;k++)b.push(a[d][k]);return b}var p={},b=/[a-z]+$/i,q=String;\n", - "p.stroke=p.fill=\"colour\";v.prototype.equal=function(a,b){return k(\"snap.util.equal\",this,a,b).firstDefined()};k.on(\"snap.util.equal\",function(e,k){var r,s;r=q(this.attr(e)||\"\");var x=this;if(r==+r&&k==+k)return{from:+r,to:+k,f:z};if(\"colour\"==p[e])return r=a.color(r),s=a.color(k),{from:[r.r,r.g,r.b,r.opacity],to:[s.r,s.g,s.b,s.opacity],f:f};if(\"transform\"==e||\"gradientTransform\"==e||\"patternTransform\"==e)return k instanceof a.Matrix&&(k=k.toTransformString()),a._.rgTransform.test(k)||(k=a._.svgTransform2string(k)),\n", - "w(r,k,function(){return x.getBBox(1)});if(\"d\"==e||\"path\"==e)return r=a.path.toCubic(r,k),{from:u(r[0]),to:u(r[1]),f:n(r[0])};if(\"points\"==e)return r=q(r).split(a._.separator),s=q(k).split(a._.separator),{from:r,to:s,f:function(a){return a}};aUnit=r.match(b);s=q(k).match(b);return aUnit&&aUnit==s?{from:parseFloat(r),to:parseFloat(k),f:d(aUnit)}:{from:this.asPX(e),to:this.asPX(e,k),f:z}})});C.plugin(function(a,v,y,C){var A=v.prototype,w=\"createTouch\"in C.doc;v=\"click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel\".split(\" \");\n", - "var z={mousedown:\"touchstart\",mousemove:\"touchmove\",mouseup:\"touchend\"},d=function(a,b){var d=\"y\"==a?\"scrollTop\":\"scrollLeft\",e=b&&b.node?b.node.ownerDocument:C.doc;return e[d in e.documentElement?\"documentElement\":\"body\"][d]},f=function(){this.returnValue=!1},n=function(){return this.originalEvent.preventDefault()},u=function(){this.cancelBubble=!0},p=function(){return this.originalEvent.stopPropagation()},b=function(){if(C.doc.addEventListener)return function(a,b,e,f){var k=w&&z[b]?z[b]:b,l=function(k){var l=\n", - "d(\"y\",f),q=d(\"x\",f);if(w&&z.hasOwnProperty(b))for(var r=0,u=k.targetTouches&&k.targetTouches.length;r<u;r++)if(k.targetTouches[r].target==a||a.contains(k.targetTouches[r].target)){u=k;k=k.targetTouches[r];k.originalEvent=u;k.preventDefault=n;k.stopPropagation=p;break}return e.call(f,k,k.clientX+q,k.clientY+l)};b!==k&&a.addEventListener(b,l,!1);a.addEventListener(k,l,!1);return function(){b!==k&&a.removeEventListener(b,l,!1);a.removeEventListener(k,l,!1);return!0}};if(C.doc.attachEvent)return function(a,\n", - "b,e,h){var k=function(a){a=a||h.node.ownerDocument.window.event;var b=d(\"y\",h),k=d(\"x\",h),k=a.clientX+k,b=a.clientY+b;a.preventDefault=a.preventDefault||f;a.stopPropagation=a.stopPropagation||u;return e.call(h,a,k,b)};a.attachEvent(\"on\"+b,k);return function(){a.detachEvent(\"on\"+b,k);return!0}}}(),q=[],e=function(a){for(var b=a.clientX,e=a.clientY,f=d(\"y\"),l=d(\"x\"),n,p=q.length;p--;){n=q[p];if(w)for(var r=a.touches&&a.touches.length,u;r--;){if(u=a.touches[r],u.identifier==n.el._drag.id||n.el.node.contains(u.target)){b=\n", - "u.clientX;e=u.clientY;(a.originalEvent?a.originalEvent:a).preventDefault();break}}else a.preventDefault();b+=l;e+=f;k(\"snap.drag.move.\"+n.el.id,n.move_scope||n.el,b-n.el._drag.x,e-n.el._drag.y,b,e,a)}},l=function(b){a.unmousemove(e).unmouseup(l);for(var d=q.length,f;d--;)f=q[d],f.el._drag={},k(\"snap.drag.end.\"+f.el.id,f.end_scope||f.start_scope||f.move_scope||f.el,b);q=[]};for(y=v.length;y--;)(function(d){a[d]=A[d]=function(e,f){a.is(e,\"function\")&&(this.events=this.events||[],this.events.push({name:d,\n", - "f:e,unbind:b(this.node||document,d,e,f||this)}));return this};a[\"un\"+d]=A[\"un\"+d]=function(a){for(var b=this.events||[],e=b.length;e--;)if(b[e].name==d&&(b[e].f==a||!a)){b[e].unbind();b.splice(e,1);!b.length&&delete this.events;break}return this}})(v[y]);A.hover=function(a,b,d,e){return this.mouseover(a,d).mouseout(b,e||d)};A.unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};var r=[];A.drag=function(b,d,f,h,n,p){function u(r,v,w){(r.originalEvent||r).preventDefault();this._drag.x=v;\n", - "this._drag.y=w;this._drag.id=r.identifier;!q.length&&a.mousemove(e).mouseup(l);q.push({el:this,move_scope:h,start_scope:n,end_scope:p});d&&k.on(\"snap.drag.start.\"+this.id,d);b&&k.on(\"snap.drag.move.\"+this.id,b);f&&k.on(\"snap.drag.end.\"+this.id,f);k(\"snap.drag.start.\"+this.id,n||h||this,v,w,r)}if(!arguments.length){var v;return this.drag(function(a,b){this.attr({transform:v+(v?\"T\":\"t\")+[a,b]})},function(){v=this.transform().local})}this._drag={};r.push({el:this,start:u});this.mousedown(u);return this};\n", - "A.undrag=function(){for(var b=r.length;b--;)r[b].el==this&&(this.unmousedown(r[b].start),r.splice(b,1),k.unbind(\"snap.drag.*.\"+this.id));!r.length&&a.unmousemove(e).unmouseup(l);return this}});C.plugin(function(a,v,y,C){y=y.prototype;var A=/^\\s*url\\((.+)\\)/,w=String,z=a._.$;a.filter={};y.filter=function(d){var f=this;\"svg\"!=f.type&&(f=f.paper);d=a.parse(w(d));var k=a._.id(),u=z(\"filter\");z(u,{id:k,filterUnits:\"userSpaceOnUse\"});u.appendChild(d.node);f.defs.appendChild(u);return new v(u)};k.on(\"snap.util.getattr.filter\",\n", - "function(){k.stop();var d=z(this.node,\"filter\");if(d)return(d=w(d).match(A))&&a.select(d[1])});k.on(\"snap.util.attr.filter\",function(d){if(d instanceof v&&\"filter\"==d.type){k.stop();var f=d.node.id;f||(z(d.node,{id:d.id}),f=d.id);z(this.node,{filter:a.url(f)})}d&&\"none\"!=d||(k.stop(),this.node.removeAttribute(\"filter\"))});a.filter.blur=function(d,f){null==d&&(d=2);return a.format('<feGaussianBlur stdDeviation=\"{def}\"/>',{def:null==f?d:[d,f]})};a.filter.blur.toString=function(){return this()};a.filter.shadow=\n", - "function(d,f,k,u,p){\"string\"==typeof k&&(p=u=k,k=4);\"string\"!=typeof u&&(p=u,u=\"#000\");null==k&&(k=4);null==p&&(p=1);null==d&&(d=0,f=2);null==f&&(f=d);u=a.color(u||\"#000\");return a.format('<feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"{blur}\"/><feOffset dx=\"{dx}\" dy=\"{dy}\" result=\"offsetblur\"/><feFlood flood-color=\"{color}\"/><feComposite in2=\"offsetblur\" operator=\"in\"/><feComponentTransfer><feFuncA type=\"linear\" slope=\"{opacity}\"/></feComponentTransfer><feMerge><feMergeNode/><feMergeNode in=\"SourceGraphic\"/></feMerge>',\n", - "{color:u,dx:d,dy:f,blur:k,opacity:p})};a.filter.shadow.toString=function(){return this()};a.filter.grayscale=function(d){null==d&&(d=1);return a.format('<feColorMatrix type=\"matrix\" values=\"{a} {b} {c} 0 0 {d} {e} {f} 0 0 {g} {b} {h} 0 0 0 0 0 1 0\"/>',{a:0.2126+0.7874*(1-d),b:0.7152-0.7152*(1-d),c:0.0722-0.0722*(1-d),d:0.2126-0.2126*(1-d),e:0.7152+0.2848*(1-d),f:0.0722-0.0722*(1-d),g:0.2126-0.2126*(1-d),h:0.0722+0.9278*(1-d)})};a.filter.grayscale.toString=function(){return this()};a.filter.sepia=\n", - "function(d){null==d&&(d=1);return a.format('<feColorMatrix type=\"matrix\" values=\"{a} {b} {c} 0 0 {d} {e} {f} 0 0 {g} {h} {i} 0 0 0 0 0 1 0\"/>',{a:0.393+0.607*(1-d),b:0.769-0.769*(1-d),c:0.189-0.189*(1-d),d:0.349-0.349*(1-d),e:0.686+0.314*(1-d),f:0.168-0.168*(1-d),g:0.272-0.272*(1-d),h:0.534-0.534*(1-d),i:0.131+0.869*(1-d)})};a.filter.sepia.toString=function(){return this()};a.filter.saturate=function(d){null==d&&(d=1);return a.format('<feColorMatrix type=\"saturate\" values=\"{amount}\"/>',{amount:1-\n", - "d})};a.filter.saturate.toString=function(){return this()};a.filter.hueRotate=function(d){return a.format('<feColorMatrix type=\"hueRotate\" values=\"{angle}\"/>',{angle:d||0})};a.filter.hueRotate.toString=function(){return this()};a.filter.invert=function(d){null==d&&(d=1);return a.format('<feComponentTransfer><feFuncR type=\"table\" tableValues=\"{amount} {amount2}\"/><feFuncG type=\"table\" tableValues=\"{amount} {amount2}\"/><feFuncB type=\"table\" tableValues=\"{amount} {amount2}\"/></feComponentTransfer>',{amount:d,\n", - "amount2:1-d})};a.filter.invert.toString=function(){return this()};a.filter.brightness=function(d){null==d&&(d=1);return a.format('<feComponentTransfer><feFuncR type=\"linear\" slope=\"{amount}\"/><feFuncG type=\"linear\" slope=\"{amount}\"/><feFuncB type=\"linear\" slope=\"{amount}\"/></feComponentTransfer>',{amount:d})};a.filter.brightness.toString=function(){return this()};a.filter.contrast=function(d){null==d&&(d=1);return a.format('<feComponentTransfer><feFuncR type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/><feFuncG type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/><feFuncB type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/></feComponentTransfer>',\n", - "{amount:d,amount2:0.5-d/2})};a.filter.contrast.toString=function(){return this()}});return C});\n", - "\n", - "]]> </script>\n", - "</svg>\n" - ], - "text/plain": [ - "Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), Compose.UnitBox{Float64,Float64,Float64,Float64}(-1.2, -1.2, 2.4, 2.4, 0.0mm, 0.0mm, 0.0mm, 0.0mm), nothing, nothing, nothing, List([Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.LinePrimitive}(Compose.LinePrimitive[Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.6299163107386679cx, -0.742566100284474cy), (-0.956513073163001cx, -0.11253631057026214cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.49366994238201234cx, -0.844462811968482cy), (0.21478252357238947cx, -0.981992850377341cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.33107632932134035cx, 0.9436097931415982cy), (0.9117125360914118cx, 0.5117702831390863cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.1635863853159923cx, 0.9770817647334785cy), (-0.5339555746704845cx, 0.8026900264036662cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.9602927152691454cx, 0.05709649010425255cy), (-0.6653325158904948cx, 0.694028552523979cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.38072062484222347cx, -0.9402216160661798cy), (0.9268213402498227cx, -0.49412136848559757cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.9888567432124714cx, 0.360898233234249cy), (0.9986760803951328cx, -0.3398611415053419cy)])], Symbol(\"\"))]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(1.1338934190276817mm)]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.8274509803921568,0.8274509803921568,0.8274509803921568,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(1.1338934190276817mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.8274509803921568,0.8274509803921568,0.8274509803921568,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(4.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}}(Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}[Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-0.586429383901669cx, -0.826455662345823cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.25525604180514794cx, 1.0cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-1.0cx, -0.028646748508913134cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.3075419650920461cx, -1.0cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.9875328236076042cx, 0.45538007628068455cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((1.0cx, -0.43434298455177744cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-0.6256252311596402cx, 0.7797717911371447cy), 0.03779644730092272w)], Symbol(\"\"))]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(0.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.25098039215686274,0.8784313725490196,0.8156862745098039,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}}(Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}[Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.586429383901669cx, -0.826455662345823cy), \"1\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.25525604180514794cx, 1.0cy), \"2\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-1.0cx, -0.028646748508913134cy), \"3\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.3075419650920461cx, -1.0cy), \"4\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.9875328236076042cx, 0.45538007628068455cy), \"5\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((1.0cx, -0.43434298455177744cy), \"6\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.6256252311596402cx, 0.7797717911371447cy), \"7\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm))], Symbol(\"\"))]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(4.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\"))]), List([]), List([]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\"))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Minimal 1-tree \n", - "Lambda : 1.0\n", - "Index : 18\n", - "Weight : 4.0\n", - "k : 1001\n" - ] - } - ], - "source": [ - "display_S(column_generation(exercise))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Held and Karp algorithm - attempt 1\n", - "\n", - "This is the part where we implement the Held and Karp algorithm as described in J.E. Mitchell's slides using Kruskal's algorithm to solve the minimum spanning tree problem. Since the goal of this algorithm is allegedly to provide a new column to the master problem, there is no guarantee that it gives an optimal solution.\n", - "\n", - "Even though this approach seems to be flawed, the example is easily solved ; however the exercise seems to alternate between two identical states. \n", - "This may be due to the update rule of $\\lambda$, results may vary by modifying it." - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "update_rule_05! (generic function with 1 method)" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "function update_rule!(λ, D, Ï)\n", - " λ .= λ .+ Ï .* (2 .- D)\n", - "end\n", - "\n", - "update_rule_1!(λ, D) = update_rule!(λ, D, 1)\n", - "update_rule_2!(λ, D) = update_rule!(λ, D, 2)\n", - "update_rule_3!(λ, D) = update_rule!(λ, D, 3)\n", - "update_rule_05!(λ, D) = update_rule!(λ, D, 0.5)" - ] - }, - { - "cell_type": "code", - "execution_count": 33, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -1419,1027 +683,302 @@ "held_and_karp_iter! (generic function with 1 method)" ] }, - "execution_count": 33, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "function held_and_karp_iter!(W, W_updated, Ï€, X, D, g, update_rule)\n", - " n = size(W, 1)\n", - " X .= falses(n, n) #X is reset every iteration because a different 1-tree is computed\n", - " W_updated .= deepcopy(W) #we need to modify the weights according to λ\n", - " \n", - " # Minimum spanning tree (span_tree : st)\n", - " for u in 2:n, v in 2:n\n", - " W_updated[u,v] -= Ï€[u] + Ï€[v]\n", - " end\n", - " st = kruskal_mst(g, W_updated[2:n,2:n])\n", - " \n", - " # Conversion of the spanning tree to an adjacency matrix\n", - " for i ∈ 1:size(st, 1)\n", - " X[src(st[i])+1, dst(st[i])+1] = 1\n", - " X[dst(st[i])+1, src(st[i])+1] = 1\n", - " end\n", - " \n", - " # We connect vertex 1 to two vertices to obtain a 1-tree\n", - " W_updated[1,2:n] .-= Ï€[2:n]\n", - " connect_v1!(X, W_updated[1,:], n)\n", - " \n", - " #then we compute the objective value\n", - " z = 2*sum(Ï€) + sum((W[u,v] - Ï€[u] - Ï€[v])*X[u,v] for u ∈ 1:n for v ∈ 1:u)\n", - " \n", - " #the degrees of all vertices in graph X\n", - " D = [sum(X[u,:]) for u ∈ 1:n]\n", - " \n", - " if all(D .== 2) # If not a tour, update\n", - " return true, z\n", - " else\n", - " update_rule(Ï€, D)\n", - " end\n", - " \n", - " return false, z\n", - "end" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": { - "tags": [] - }, - "outputs": [ - { - "data": { - "text/plain": [ - "multiargmin (generic function with 1 method)" - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "#returns the nbmin indexes for smallest values of itr\n", - "#size is the length of itr\n", - "function multiargmin(itr, nbmin, size)\n", - " if nbmin > size\n", - " error(\"multiargmin : size of array is \", size, \" < nbmin = \", nbmin)\n", - " end\n", - " \n", - " argmins = [i for i in 1:nbmin]\n", - " itr_copy = deepcopy(itr)\n", - " maxitr = maximum(itr)\n", - " \n", - " #we find the nbmin smallest values of itr\n", - " for i in 1:nbmin\n", - " argmins[i] = argmin(itr_copy)\n", - " #once a min is found, it is set to maxitr to find a new minimum\n", - " itr_copy[argmins[i]] = maxitr\n", - " end\n", - " \n", - " return argmins\n", - "end" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "metadata": { - "tags": [] - }, - "outputs": [ - { - "data": { - "text/plain": [ - "connect_v1! (generic function with 1 method)" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "#connects the vertex 1 (of graph X) to the two vertices v1, v2 with smallest W1[v1], W1[v2]\n", - "#X is an adjacency matrix, W1 the weights of edges starting from 1, n the number of vertices\n", - "function connect_v1!(X, W1, n) \n", - " argmin1, argmin2 = multiargmin(W1[2:n], 2, n-1)\n", - " \n", - " X[1, argmin1+1] = 1\n", - " X[1, argmin2+1] = 1\n", - " \n", - " for u ∈ 2:n\n", - " X[u, 1] = X[1, u]\n", - " end \n", - "end" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "hk_mitchell (generic function with 1 method)" - ] - }, - "execution_count": 36, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "function hk_mitchell(W; disp=true, maxiter=10000, update_rule=update_rule_2!)\n", - " \n", - " # Initialization\n", - " n = size(W, 1)\n", - " \n", - " if size(W, 2)!=n ; error(\"Weight matrice must be square\") ; end\n", - " \n", - " λ = zeros(n)\n", - "\n", - " g = complete_graph(n-1) #in the TSP the graph is complete\n", - " z = -1 #the objective function\n", - " \n", - " k = 0 \n", - " X = Matrix{Bool}(undef, (n,n)) #the adjacency matrix of the 1-tree solutions\n", - " D = Array{Integer}(undef, n)\n", - " W_updated = Matrix{Integer}(undef, (n,n))\n", - " \n", - " converge = false #whether the algorithm has converged or not\n", - "\n", - " while !converge && k <= maxiter # While not a tour\n", - " \n", - " converge, z = held_and_karp_iter!(W, W_updated, λ, X, D, g, update_rule)\n", - " \n", - " # We display the current 1-Tree\n", - " if disp && (k == 0 || k == maxiter || converge)\n", - " println(\"Iteration\", k)\n", - " \n", - " one_tree = SimpleGraph(X)\n", - " edgelabel = []\n", - " for i in 1:n, j in i:n\n", - " if X[i, j] == 1\n", - " push!(edgelabel, W_updated[i, j])\n", - " end\n", - " end\n", - " display(gplot(one_tree, nodelabel = 1:n, edgelabel = edgelabel, edgelabelc=\"red\"))\n", - " end\n", - " \n", - " k+=1\n", - "\n", - " end\n", - " \n", - " return (z, X, λ)\n", - " \n", - "end" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n", - "<svg xmlns=\"http://www.w3.org/2000/svg\"\n", - " xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n", - " version=\"1.2\"\n", - " width=\"141.42mm\" height=\"100mm\" viewBox=\"0 0 141.42 100\"\n", - " stroke=\"none\"\n", - " fill=\"#000000\"\n", - " stroke-width=\"0.3\"\n", - " font-size=\"3.88\"\n", - ">\n", - "<defs>\n", - " <marker id=\"arrow\" markerWidth=\"15\" markerHeight=\"7\" refX=\"5\" refY=\"3.5\" orient=\"auto\" markerUnits=\"strokeWidth\">\n", - " <path d=\"M0,0 L15,3.5 L0,7 z\" stroke=\"context-stroke\" fill=\"context-stroke\"/>\n", - " </marker>\n", - "</defs>\n", - "<g stroke-width=\"1.22\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#D3D3D3\" id=\"img-6b1015e8-1\">\n", - " <g transform=\"translate(120.57,63.71)\">\n", - " <path fill=\"none\" d=\"M-6.63,-10.61 L6.63,10.61 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(78.1,42.74)\">\n", - " <path fill=\"none\" d=\"M27.61,5.35 L-27.61,-5.35 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(101.91,84.94)\">\n", - " <path fill=\"none\" d=\"M-22.04,5.35 L22.04,-5.35 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(52.7,80.18)\">\n", - " <path fill=\"none\" d=\"M16.69,8.92 L-16.69,-8.92 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(28.24,22.3)\">\n", - " <path fill=\"none\" d=\"M-12.61,-10.7 L12.61,10.7 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(37.95,52.47)\">\n", - " <path fill=\"none\" d=\"M-5.05,12.14 L5.05,-12.14 \" class=\"primitive\"/>\n", - " </g>\n", - "</g>\n", - "<g stroke-width=\"1.22\" stroke=\"#D3D3D3\" id=\"img-6b1015e8-2\">\n", - "</g>\n", - "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#FF0000\" id=\"img-6b1015e8-3\">\n", - " <g transform=\"translate(120.57,63.71)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">4</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(78.1,42.74)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">3</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(101.91,84.94)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(52.7,80.18)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">2</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(28.24,22.3)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">3</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(37.95,52.47)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">4</text>\n", - " </g>\n", - " </g>\n", - "</g>\n", - "<g stroke-width=\"0\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#40E0D0\" id=\"img-6b1015e8-4\">\n", - " <g transform=\"translate(111.51,49.22)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(74.19,91.67)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(129.64,78.21)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(11.79,8.33)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(31.2,68.69)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(44.7,36.26)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - "</g>\n", - "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-6b1015e8-5\">\n", - " <g transform=\"translate(111.51,49.22)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(74.19,91.67)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">2</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(129.64,78.21)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">3</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(11.79,8.33)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">4</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(31.2,68.69)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(44.7,36.26)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">6</text>\n", - " </g>\n", - " </g>\n", - "</g>\n", - "</svg>\n" - ], - "text/html": [ - "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n", - "<svg xmlns=\"http://www.w3.org/2000/svg\"\n", - " xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n", - " version=\"1.2\"\n", - " width=\"141.42mm\" height=\"100mm\" viewBox=\"0 0 141.42 100\"\n", - " stroke=\"none\"\n", - " fill=\"#000000\"\n", - " stroke-width=\"0.3\"\n", - " font-size=\"3.88\"\n", - "\n", - " id=\"img-6ea50a54\">\n", - "<defs>\n", - " <marker id=\"arrow\" markerWidth=\"15\" markerHeight=\"7\" refX=\"5\" refY=\"3.5\" orient=\"auto\" markerUnits=\"strokeWidth\">\n", - " <path d=\"M0,0 L15,3.5 L0,7 z\" stroke=\"context-stroke\" fill=\"context-stroke\"/>\n", - " </marker>\n", - "</defs>\n", - "<g stroke-width=\"1.22\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#D3D3D3\" id=\"img-6ea50a54-1\">\n", - " <g transform=\"translate(120.57,63.71)\">\n", - " <path fill=\"none\" d=\"M-6.63,-10.61 L6.63,10.61 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(78.1,42.74)\">\n", - " <path fill=\"none\" d=\"M27.61,5.35 L-27.61,-5.35 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(101.91,84.94)\">\n", - " <path fill=\"none\" d=\"M-22.04,5.35 L22.04,-5.35 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(52.7,80.18)\">\n", - " <path fill=\"none\" d=\"M16.69,8.92 L-16.69,-8.92 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(28.24,22.3)\">\n", - " <path fill=\"none\" d=\"M-12.61,-10.7 L12.61,10.7 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(37.95,52.47)\">\n", - " <path fill=\"none\" d=\"M-5.05,12.14 L5.05,-12.14 \" class=\"primitive\"/>\n", - " </g>\n", - "</g>\n", - "<g stroke-width=\"1.22\" stroke=\"#D3D3D3\" id=\"img-6ea50a54-2\">\n", - "</g>\n", - "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#FF0000\" id=\"img-6ea50a54-3\">\n", - " <g transform=\"translate(120.57,63.71)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">4</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(78.1,42.74)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">3</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(101.91,84.94)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(52.7,80.18)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">2</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(28.24,22.3)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">3</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(37.95,52.47)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">4</text>\n", - " </g>\n", - " </g>\n", - "</g>\n", - "<g stroke-width=\"0\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#40E0D0\" id=\"img-6ea50a54-4\">\n", - " <g transform=\"translate(111.51,49.22)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(74.19,91.67)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(129.64,78.21)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(11.79,8.33)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(31.2,68.69)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(44.7,36.26)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - "</g>\n", - "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-6ea50a54-5\">\n", - " <g transform=\"translate(111.51,49.22)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(74.19,91.67)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">2</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(129.64,78.21)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">3</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(11.79,8.33)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">4</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(31.2,68.69)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(44.7,36.26)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">6</text>\n", - " </g>\n", - " </g>\n", - "</g>\n", - "<script> <![CDATA[\n", - "(function(N){var k=/[\\.\\/]/,L=/\\s*,\\s*/,C=function(a,d){return a-d},a,v,y={n:{}},M=function(){for(var a=0,d=this.length;a<d;a++)if(\"undefined\"!=typeof this[a])return this[a]},A=function(){for(var a=this.length;--a;)if(\"undefined\"!=typeof this[a])return this[a]},w=function(k,d){k=String(k);var f=v,n=Array.prototype.slice.call(arguments,2),u=w.listeners(k),p=0,b,q=[],e={},l=[],r=a;l.firstDefined=M;l.lastDefined=A;a=k;for(var s=v=0,x=u.length;s<x;s++)\"zIndex\"in u[s]&&(q.push(u[s].zIndex),0>u[s].zIndex&&\n", - "(e[u[s].zIndex]=u[s]));for(q.sort(C);0>q[p];)if(b=e[q[p++] ],l.push(b.apply(d,n)),v)return v=f,l;for(s=0;s<x;s++)if(b=u[s],\"zIndex\"in b)if(b.zIndex==q[p]){l.push(b.apply(d,n));if(v)break;do if(p++,(b=e[q[p] ])&&l.push(b.apply(d,n)),v)break;while(b)}else e[b.zIndex]=b;else if(l.push(b.apply(d,n)),v)break;v=f;a=r;return l};w._events=y;w.listeners=function(a){a=a.split(k);var d=y,f,n,u,p,b,q,e,l=[d],r=[];u=0;for(p=a.length;u<p;u++){e=[];b=0;for(q=l.length;b<q;b++)for(d=l[b].n,f=[d[a[u] ],d[\"*\"] ],n=2;n--;)if(d=\n", - "f[n])e.push(d),r=r.concat(d.f||[]);l=e}return r};w.on=function(a,d){a=String(a);if(\"function\"!=typeof d)return function(){};for(var f=a.split(L),n=0,u=f.length;n<u;n++)(function(a){a=a.split(k);for(var b=y,f,e=0,l=a.length;e<l;e++)b=b.n,b=b.hasOwnProperty(a[e])&&b[a[e] ]||(b[a[e] ]={n:{}});b.f=b.f||[];e=0;for(l=b.f.length;e<l;e++)if(b.f[e]==d){f=!0;break}!f&&b.f.push(d)})(f[n]);return function(a){+a==+a&&(d.zIndex=+a)}};w.f=function(a){var d=[].slice.call(arguments,1);return function(){w.apply(null,\n", - "[a,null].concat(d).concat([].slice.call(arguments,0)))}};w.stop=function(){v=1};w.nt=function(k){return k?(new RegExp(\"(?:\\\\.|\\\\/|^)\"+k+\"(?:\\\\.|\\\\/|$)\")).test(a):a};w.nts=function(){return a.split(k)};w.off=w.unbind=function(a,d){if(a){var f=a.split(L);if(1<f.length)for(var n=0,u=f.length;n<u;n++)w.off(f[n],d);else{for(var f=a.split(k),p,b,q,e,l=[y],n=0,u=f.length;n<u;n++)for(e=0;e<l.length;e+=q.length-2){q=[e,1];p=l[e].n;if(\"*\"!=f[n])p[f[n] ]&&q.push(p[f[n] ]);else for(b in p)p.hasOwnProperty(b)&&\n", - "q.push(p[b]);l.splice.apply(l,q)}n=0;for(u=l.length;n<u;n++)for(p=l[n];p.n;){if(d){if(p.f){e=0;for(f=p.f.length;e<f;e++)if(p.f[e]==d){p.f.splice(e,1);break}!p.f.length&&delete p.f}for(b in p.n)if(p.n.hasOwnProperty(b)&&p.n[b].f){q=p.n[b].f;e=0;for(f=q.length;e<f;e++)if(q[e]==d){q.splice(e,1);break}!q.length&&delete p.n[b].f}}else for(b in delete p.f,p.n)p.n.hasOwnProperty(b)&&p.n[b].f&&delete p.n[b].f;p=p.n}}}else w._events=y={n:{}}};w.once=function(a,d){var f=function(){w.unbind(a,f);return d.apply(this,\n", - "arguments)};return w.on(a,f)};w.version=\"0.4.2\";w.toString=function(){return\"You are running Eve 0.4.2\"};\"undefined\"!=typeof module&&module.exports?module.exports=w:\"function\"===typeof define&&define.amd?define(\"eve\",[],function(){return w}):N.eve=w})(this);\n", - "(function(N,k){\"function\"===typeof define&&define.amd?define(\"Snap.svg\",[\"eve\"],function(L){return k(N,L)}):k(N,N.eve)})(this,function(N,k){var L=function(a){var k={},y=N.requestAnimationFrame||N.webkitRequestAnimationFrame||N.mozRequestAnimationFrame||N.oRequestAnimationFrame||N.msRequestAnimationFrame||function(a){setTimeout(a,16)},M=Array.isArray||function(a){return a instanceof Array||\"[object Array]\"==Object.prototype.toString.call(a)},A=0,w=\"M\"+(+new Date).toString(36),z=function(a){if(null==\n", - "a)return this.s;var b=this.s-a;this.b+=this.dur*b;this.B+=this.dur*b;this.s=a},d=function(a){if(null==a)return this.spd;this.spd=a},f=function(a){if(null==a)return this.dur;this.s=this.s*a/this.dur;this.dur=a},n=function(){delete k[this.id];this.update();a(\"mina.stop.\"+this.id,this)},u=function(){this.pdif||(delete k[this.id],this.update(),this.pdif=this.get()-this.b)},p=function(){this.pdif&&(this.b=this.get()-this.pdif,delete this.pdif,k[this.id]=this)},b=function(){var a;if(M(this.start)){a=[];\n", - "for(var b=0,e=this.start.length;b<e;b++)a[b]=+this.start[b]+(this.end[b]-this.start[b])*this.easing(this.s)}else a=+this.start+(this.end-this.start)*this.easing(this.s);this.set(a)},q=function(){var l=0,b;for(b in k)if(k.hasOwnProperty(b)){var e=k[b],f=e.get();l++;e.s=(f-e.b)/(e.dur/e.spd);1<=e.s&&(delete k[b],e.s=1,l--,function(b){setTimeout(function(){a(\"mina.finish.\"+b.id,b)})}(e));e.update()}l&&y(q)},e=function(a,r,s,x,G,h,J){a={id:w+(A++).toString(36),start:a,end:r,b:s,s:0,dur:x-s,spd:1,get:G,\n", - "set:h,easing:J||e.linear,status:z,speed:d,duration:f,stop:n,pause:u,resume:p,update:b};k[a.id]=a;r=0;for(var K in k)if(k.hasOwnProperty(K)&&(r++,2==r))break;1==r&&y(q);return a};e.time=Date.now||function(){return+new Date};e.getById=function(a){return k[a]||null};e.linear=function(a){return a};e.easeout=function(a){return Math.pow(a,1.7)};e.easein=function(a){return Math.pow(a,0.48)};e.easeinout=function(a){if(1==a)return 1;if(0==a)return 0;var b=0.48-a/1.04,e=Math.sqrt(0.1734+b*b);a=e-b;a=Math.pow(Math.abs(a),\n", - "1/3)*(0>a?-1:1);b=-e-b;b=Math.pow(Math.abs(b),1/3)*(0>b?-1:1);a=a+b+0.5;return 3*(1-a)*a*a+a*a*a};e.backin=function(a){return 1==a?1:a*a*(2.70158*a-1.70158)};e.backout=function(a){if(0==a)return 0;a-=1;return a*a*(2.70158*a+1.70158)+1};e.elastic=function(a){return a==!!a?a:Math.pow(2,-10*a)*Math.sin(2*(a-0.075)*Math.PI/0.3)+1};e.bounce=function(a){a<1/2.75?a*=7.5625*a:a<2/2.75?(a-=1.5/2.75,a=7.5625*a*a+0.75):a<2.5/2.75?(a-=2.25/2.75,a=7.5625*a*a+0.9375):(a-=2.625/2.75,a=7.5625*a*a+0.984375);return a};\n", - "return N.mina=e}(\"undefined\"==typeof k?function(){}:k),C=function(){function a(c,t){if(c){if(c.tagName)return x(c);if(y(c,\"array\")&&a.set)return a.set.apply(a,c);if(c instanceof e)return c;if(null==t)return c=G.doc.querySelector(c),x(c)}return new s(null==c?\"100%\":c,null==t?\"100%\":t)}function v(c,a){if(a){\"#text\"==c&&(c=G.doc.createTextNode(a.text||\"\"));\"string\"==typeof c&&(c=v(c));if(\"string\"==typeof a)return\"xlink:\"==a.substring(0,6)?c.getAttributeNS(m,a.substring(6)):\"xml:\"==a.substring(0,4)?c.getAttributeNS(la,\n", - "a.substring(4)):c.getAttribute(a);for(var da in a)if(a[h](da)){var b=J(a[da]);b?\"xlink:\"==da.substring(0,6)?c.setAttributeNS(m,da.substring(6),b):\"xml:\"==da.substring(0,4)?c.setAttributeNS(la,da.substring(4),b):c.setAttribute(da,b):c.removeAttribute(da)}}else c=G.doc.createElementNS(la,c);return c}function y(c,a){a=J.prototype.toLowerCase.call(a);return\"finite\"==a?isFinite(c):\"array\"==a&&(c instanceof Array||Array.isArray&&Array.isArray(c))?!0:\"null\"==a&&null===c||a==typeof c&&null!==c||\"object\"==\n", - "a&&c===Object(c)||$.call(c).slice(8,-1).toLowerCase()==a}function M(c){if(\"function\"==typeof c||Object(c)!==c)return c;var a=new c.constructor,b;for(b in c)c[h](b)&&(a[b]=M(c[b]));return a}function A(c,a,b){function m(){var e=Array.prototype.slice.call(arguments,0),f=e.join(\"\\u2400\"),d=m.cache=m.cache||{},l=m.count=m.count||[];if(d[h](f)){a:for(var e=l,l=f,B=0,H=e.length;B<H;B++)if(e[B]===l){e.push(e.splice(B,1)[0]);break a}return b?b(d[f]):d[f]}1E3<=l.length&&delete d[l.shift()];l.push(f);d[f]=c.apply(a,\n", - "e);return b?b(d[f]):d[f]}return m}function w(c,a,b,m,e,f){return null==e?(c-=b,a-=m,c||a?(180*I.atan2(-a,-c)/C+540)%360:0):w(c,a,e,f)-w(b,m,e,f)}function z(c){return c%360*C/180}function d(c){var a=[];c=c.replace(/(?:^|\\s)(\\w+)\\(([^)]+)\\)/g,function(c,b,m){m=m.split(/\\s*,\\s*|\\s+/);\"rotate\"==b&&1==m.length&&m.push(0,0);\"scale\"==b&&(2<m.length?m=m.slice(0,2):2==m.length&&m.push(0,0),1==m.length&&m.push(m[0],0,0));\"skewX\"==b?a.push([\"m\",1,0,I.tan(z(m[0])),1,0,0]):\"skewY\"==b?a.push([\"m\",1,I.tan(z(m[0])),\n", - "0,1,0,0]):a.push([b.charAt(0)].concat(m));return c});return a}function f(c,t){var b=O(c),m=new a.Matrix;if(b)for(var e=0,f=b.length;e<f;e++){var h=b[e],d=h.length,B=J(h[0]).toLowerCase(),H=h[0]!=B,l=H?m.invert():0,E;\"t\"==B&&2==d?m.translate(h[1],0):\"t\"==B&&3==d?H?(d=l.x(0,0),B=l.y(0,0),H=l.x(h[1],h[2]),l=l.y(h[1],h[2]),m.translate(H-d,l-B)):m.translate(h[1],h[2]):\"r\"==B?2==d?(E=E||t,m.rotate(h[1],E.x+E.width/2,E.y+E.height/2)):4==d&&(H?(H=l.x(h[2],h[3]),l=l.y(h[2],h[3]),m.rotate(h[1],H,l)):m.rotate(h[1],\n", - "h[2],h[3])):\"s\"==B?2==d||3==d?(E=E||t,m.scale(h[1],h[d-1],E.x+E.width/2,E.y+E.height/2)):4==d?H?(H=l.x(h[2],h[3]),l=l.y(h[2],h[3]),m.scale(h[1],h[1],H,l)):m.scale(h[1],h[1],h[2],h[3]):5==d&&(H?(H=l.x(h[3],h[4]),l=l.y(h[3],h[4]),m.scale(h[1],h[2],H,l)):m.scale(h[1],h[2],h[3],h[4])):\"m\"==B&&7==d&&m.add(h[1],h[2],h[3],h[4],h[5],h[6])}return m}function n(c,t){if(null==t){var m=!0;t=\"linearGradient\"==c.type||\"radialGradient\"==c.type?c.node.getAttribute(\"gradientTransform\"):\"pattern\"==c.type?c.node.getAttribute(\"patternTransform\"):\n", - "c.node.getAttribute(\"transform\");if(!t)return new a.Matrix;t=d(t)}else t=a._.rgTransform.test(t)?J(t).replace(/\\.{3}|\\u2026/g,c._.transform||aa):d(t),y(t,\"array\")&&(t=a.path?a.path.toString.call(t):J(t)),c._.transform=t;var b=f(t,c.getBBox(1));if(m)return b;c.matrix=b}function u(c){c=c.node.ownerSVGElement&&x(c.node.ownerSVGElement)||c.node.parentNode&&x(c.node.parentNode)||a.select(\"svg\")||a(0,0);var t=c.select(\"defs\"),t=null==t?!1:t.node;t||(t=r(\"defs\",c.node).node);return t}function p(c){return c.node.ownerSVGElement&&\n", - "x(c.node.ownerSVGElement)||a.select(\"svg\")}function b(c,a,m){function b(c){if(null==c)return aa;if(c==+c)return c;v(B,{width:c});try{return B.getBBox().width}catch(a){return 0}}function h(c){if(null==c)return aa;if(c==+c)return c;v(B,{height:c});try{return B.getBBox().height}catch(a){return 0}}function e(b,B){null==a?d[b]=B(c.attr(b)||0):b==a&&(d=B(null==m?c.attr(b)||0:m))}var f=p(c).node,d={},B=f.querySelector(\".svg---mgr\");B||(B=v(\"rect\"),v(B,{x:-9E9,y:-9E9,width:10,height:10,\"class\":\"svg---mgr\",\n", - "fill:\"none\"}),f.appendChild(B));switch(c.type){case \"rect\":e(\"rx\",b),e(\"ry\",h);case \"image\":e(\"width\",b),e(\"height\",h);case \"text\":e(\"x\",b);e(\"y\",h);break;case \"circle\":e(\"cx\",b);e(\"cy\",h);e(\"r\",b);break;case \"ellipse\":e(\"cx\",b);e(\"cy\",h);e(\"rx\",b);e(\"ry\",h);break;case \"line\":e(\"x1\",b);e(\"x2\",b);e(\"y1\",h);e(\"y2\",h);break;case \"marker\":e(\"refX\",b);e(\"markerWidth\",b);e(\"refY\",h);e(\"markerHeight\",h);break;case \"radialGradient\":e(\"fx\",b);e(\"fy\",h);break;case \"tspan\":e(\"dx\",b);e(\"dy\",h);break;default:e(a,\n", - "b)}f.removeChild(B);return d}function q(c){y(c,\"array\")||(c=Array.prototype.slice.call(arguments,0));for(var a=0,b=0,m=this.node;this[a];)delete this[a++];for(a=0;a<c.length;a++)\"set\"==c[a].type?c[a].forEach(function(c){m.appendChild(c.node)}):m.appendChild(c[a].node);for(var h=m.childNodes,a=0;a<h.length;a++)this[b++]=x(h[a]);return this}function e(c){if(c.snap in E)return E[c.snap];var a=this.id=V(),b;try{b=c.ownerSVGElement}catch(m){}this.node=c;b&&(this.paper=new s(b));this.type=c.tagName;this.anims=\n", - "{};this._={transform:[]};c.snap=a;E[a]=this;\"g\"==this.type&&(this.add=q);if(this.type in{g:1,mask:1,pattern:1})for(var e in s.prototype)s.prototype[h](e)&&(this[e]=s.prototype[e])}function l(c){this.node=c}function r(c,a){var b=v(c);a.appendChild(b);return x(b)}function s(c,a){var b,m,f,d=s.prototype;if(c&&\"svg\"==c.tagName){if(c.snap in E)return E[c.snap];var l=c.ownerDocument;b=new e(c);m=c.getElementsByTagName(\"desc\")[0];f=c.getElementsByTagName(\"defs\")[0];m||(m=v(\"desc\"),m.appendChild(l.createTextNode(\"Created with Snap\")),\n", - "b.node.appendChild(m));f||(f=v(\"defs\"),b.node.appendChild(f));b.defs=f;for(var ca in d)d[h](ca)&&(b[ca]=d[ca]);b.paper=b.root=b}else b=r(\"svg\",G.doc.body),v(b.node,{height:a,version:1.1,width:c,xmlns:la});return b}function x(c){return!c||c instanceof e||c instanceof l?c:c.tagName&&\"svg\"==c.tagName.toLowerCase()?new s(c):c.tagName&&\"object\"==c.tagName.toLowerCase()&&\"image/svg+xml\"==c.type?new s(c.contentDocument.getElementsByTagName(\"svg\")[0]):new e(c)}a.version=\"0.3.0\";a.toString=function(){return\"Snap v\"+\n", - "this.version};a._={};var G={win:N,doc:N.document};a._.glob=G;var h=\"hasOwnProperty\",J=String,K=parseFloat,U=parseInt,I=Math,P=I.max,Q=I.min,Y=I.abs,C=I.PI,aa=\"\",$=Object.prototype.toString,F=/^\\s*((#[a-f\\d]{6})|(#[a-f\\d]{3})|rgba?\\(\\s*([\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?(?:\\s*,\\s*[\\d\\.]+%?)?)\\s*\\)|hsba?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?%?)\\s*\\)|hsla?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?%?)\\s*\\))\\s*$/i;a._.separator=\n", - "RegExp(\"[,\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]+\");var S=RegExp(\"[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*\"),X={hs:1,rg:1},W=RegExp(\"([a-z])[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)\",\n", - "\"ig\"),ma=RegExp(\"([rstm])[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)\",\"ig\"),Z=RegExp(\"(-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?)[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*\",\n", - "\"ig\"),na=0,ba=\"S\"+(+new Date).toString(36),V=function(){return ba+(na++).toString(36)},m=\"http://www.w3.org/1999/xlink\",la=\"http://www.w3.org/2000/svg\",E={},ca=a.url=function(c){return\"url('#\"+c+\"')\"};a._.$=v;a._.id=V;a.format=function(){var c=/\\{([^\\}]+)\\}/g,a=/(?:(?:^|\\.)(.+?)(?=\\[|\\.|$|\\()|\\[('|\")(.+?)\\2\\])(\\(\\))?/g,b=function(c,b,m){var h=m;b.replace(a,function(c,a,b,m,t){a=a||m;h&&(a in h&&(h=h[a]),\"function\"==typeof h&&t&&(h=h()))});return h=(null==h||h==m?c:h)+\"\"};return function(a,m){return J(a).replace(c,\n", - "function(c,a){return b(c,a,m)})}}();a._.clone=M;a._.cacher=A;a.rad=z;a.deg=function(c){return 180*c/C%360};a.angle=w;a.is=y;a.snapTo=function(c,a,b){b=y(b,\"finite\")?b:10;if(y(c,\"array\"))for(var m=c.length;m--;){if(Y(c[m]-a)<=b)return c[m]}else{c=+c;m=a%c;if(m<b)return a-m;if(m>c-b)return a-m+c}return a};a.getRGB=A(function(c){if(!c||(c=J(c)).indexOf(\"-\")+1)return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:ka};if(\"none\"==c)return{r:-1,g:-1,b:-1,hex:\"none\",toString:ka};!X[h](c.toLowerCase().substring(0,\n", - "2))&&\"#\"!=c.charAt()&&(c=T(c));if(!c)return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:ka};var b,m,e,f,d;if(c=c.match(F)){c[2]&&(e=U(c[2].substring(5),16),m=U(c[2].substring(3,5),16),b=U(c[2].substring(1,3),16));c[3]&&(e=U((d=c[3].charAt(3))+d,16),m=U((d=c[3].charAt(2))+d,16),b=U((d=c[3].charAt(1))+d,16));c[4]&&(d=c[4].split(S),b=K(d[0]),\"%\"==d[0].slice(-1)&&(b*=2.55),m=K(d[1]),\"%\"==d[1].slice(-1)&&(m*=2.55),e=K(d[2]),\"%\"==d[2].slice(-1)&&(e*=2.55),\"rgba\"==c[1].toLowerCase().slice(0,4)&&(f=K(d[3])),\n", - "d[3]&&\"%\"==d[3].slice(-1)&&(f/=100));if(c[5])return d=c[5].split(S),b=K(d[0]),\"%\"==d[0].slice(-1)&&(b/=100),m=K(d[1]),\"%\"==d[1].slice(-1)&&(m/=100),e=K(d[2]),\"%\"==d[2].slice(-1)&&(e/=100),\"deg\"!=d[0].slice(-3)&&\"\\u00b0\"!=d[0].slice(-1)||(b/=360),\"hsba\"==c[1].toLowerCase().slice(0,4)&&(f=K(d[3])),d[3]&&\"%\"==d[3].slice(-1)&&(f/=100),a.hsb2rgb(b,m,e,f);if(c[6])return d=c[6].split(S),b=K(d[0]),\"%\"==d[0].slice(-1)&&(b/=100),m=K(d[1]),\"%\"==d[1].slice(-1)&&(m/=100),e=K(d[2]),\"%\"==d[2].slice(-1)&&(e/=100),\n", - "\"deg\"!=d[0].slice(-3)&&\"\\u00b0\"!=d[0].slice(-1)||(b/=360),\"hsla\"==c[1].toLowerCase().slice(0,4)&&(f=K(d[3])),d[3]&&\"%\"==d[3].slice(-1)&&(f/=100),a.hsl2rgb(b,m,e,f);b=Q(I.round(b),255);m=Q(I.round(m),255);e=Q(I.round(e),255);f=Q(P(f,0),1);c={r:b,g:m,b:e,toString:ka};c.hex=\"#\"+(16777216|e|m<<8|b<<16).toString(16).slice(1);c.opacity=y(f,\"finite\")?f:1;return c}return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:ka}},a);a.hsb=A(function(c,b,m){return a.hsb2rgb(c,b,m).hex});a.hsl=A(function(c,b,m){return a.hsl2rgb(c,\n", - "b,m).hex});a.rgb=A(function(c,a,b,m){if(y(m,\"finite\")){var e=I.round;return\"rgba(\"+[e(c),e(a),e(b),+m.toFixed(2)]+\")\"}return\"#\"+(16777216|b|a<<8|c<<16).toString(16).slice(1)});var T=function(c){var a=G.doc.getElementsByTagName(\"head\")[0]||G.doc.getElementsByTagName(\"svg\")[0];T=A(function(c){if(\"red\"==c.toLowerCase())return\"rgb(255, 0, 0)\";a.style.color=\"rgb(255, 0, 0)\";a.style.color=c;c=G.doc.defaultView.getComputedStyle(a,aa).getPropertyValue(\"color\");return\"rgb(255, 0, 0)\"==c?null:c});return T(c)},\n", - "qa=function(){return\"hsb(\"+[this.h,this.s,this.b]+\")\"},ra=function(){return\"hsl(\"+[this.h,this.s,this.l]+\")\"},ka=function(){return 1==this.opacity||null==this.opacity?this.hex:\"rgba(\"+[this.r,this.g,this.b,this.opacity]+\")\"},D=function(c,b,m){null==b&&y(c,\"object\")&&\"r\"in c&&\"g\"in c&&\"b\"in c&&(m=c.b,b=c.g,c=c.r);null==b&&y(c,string)&&(m=a.getRGB(c),c=m.r,b=m.g,m=m.b);if(1<c||1<b||1<m)c/=255,b/=255,m/=255;return[c,b,m]},oa=function(c,b,m,e){c=I.round(255*c);b=I.round(255*b);m=I.round(255*m);c={r:c,\n", - "g:b,b:m,opacity:y(e,\"finite\")?e:1,hex:a.rgb(c,b,m),toString:ka};y(e,\"finite\")&&(c.opacity=e);return c};a.color=function(c){var b;y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"b\"in c?(b=a.hsb2rgb(c),c.r=b.r,c.g=b.g,c.b=b.b,c.opacity=1,c.hex=b.hex):y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"l\"in c?(b=a.hsl2rgb(c),c.r=b.r,c.g=b.g,c.b=b.b,c.opacity=1,c.hex=b.hex):(y(c,\"string\")&&(c=a.getRGB(c)),y(c,\"object\")&&\"r\"in c&&\"g\"in c&&\"b\"in c&&!(\"error\"in c)?(b=a.rgb2hsl(c),c.h=b.h,c.s=b.s,c.l=b.l,b=a.rgb2hsb(c),c.v=b.b):(c={hex:\"none\"},\n", - "c.r=c.g=c.b=c.h=c.s=c.v=c.l=-1,c.error=1));c.toString=ka;return c};a.hsb2rgb=function(c,a,b,m){y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"b\"in c&&(b=c.b,a=c.s,c=c.h,m=c.o);var e,h,d;c=360*c%360/60;d=b*a;a=d*(1-Y(c%2-1));b=e=h=b-d;c=~~c;b+=[d,a,0,0,a,d][c];e+=[a,d,d,a,0,0][c];h+=[0,0,a,d,d,a][c];return oa(b,e,h,m)};a.hsl2rgb=function(c,a,b,m){y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"l\"in c&&(b=c.l,a=c.s,c=c.h);if(1<c||1<a||1<b)c/=360,a/=100,b/=100;var e,h,d;c=360*c%360/60;d=2*a*(0.5>b?b:1-b);a=d*(1-Y(c%2-1));b=e=\n", - "h=b-d/2;c=~~c;b+=[d,a,0,0,a,d][c];e+=[a,d,d,a,0,0][c];h+=[0,0,a,d,d,a][c];return oa(b,e,h,m)};a.rgb2hsb=function(c,a,b){b=D(c,a,b);c=b[0];a=b[1];b=b[2];var m,e;m=P(c,a,b);e=m-Q(c,a,b);c=((0==e?0:m==c?(a-b)/e:m==a?(b-c)/e+2:(c-a)/e+4)+360)%6*60/360;return{h:c,s:0==e?0:e/m,b:m,toString:qa}};a.rgb2hsl=function(c,a,b){b=D(c,a,b);c=b[0];a=b[1];b=b[2];var m,e,h;m=P(c,a,b);e=Q(c,a,b);h=m-e;c=((0==h?0:m==c?(a-b)/h:m==a?(b-c)/h+2:(c-a)/h+4)+360)%6*60/360;m=(m+e)/2;return{h:c,s:0==h?0:0.5>m?h/(2*m):h/(2-2*\n", - "m),l:m,toString:ra}};a.parsePathString=function(c){if(!c)return null;var b=a.path(c);if(b.arr)return a.path.clone(b.arr);var m={a:7,c:6,o:2,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,u:3,z:0},e=[];y(c,\"array\")&&y(c[0],\"array\")&&(e=a.path.clone(c));e.length||J(c).replace(W,function(c,a,b){var h=[];c=a.toLowerCase();b.replace(Z,function(c,a){a&&h.push(+a)});\"m\"==c&&2<h.length&&(e.push([a].concat(h.splice(0,2))),c=\"l\",a=\"m\"==a?\"l\":\"L\");\"o\"==c&&1==h.length&&e.push([a,h[0] ]);if(\"r\"==c)e.push([a].concat(h));else for(;h.length>=\n", - "m[c]&&(e.push([a].concat(h.splice(0,m[c]))),m[c]););});e.toString=a.path.toString;b.arr=a.path.clone(e);return e};var O=a.parseTransformString=function(c){if(!c)return null;var b=[];y(c,\"array\")&&y(c[0],\"array\")&&(b=a.path.clone(c));b.length||J(c).replace(ma,function(c,a,m){var e=[];a.toLowerCase();m.replace(Z,function(c,a){a&&e.push(+a)});b.push([a].concat(e))});b.toString=a.path.toString;return b};a._.svgTransform2string=d;a._.rgTransform=RegExp(\"^[a-z][\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*-?\\\\.?\\\\d\",\n", - "\"i\");a._.transform2matrix=f;a._unit2px=b;a._.getSomeDefs=u;a._.getSomeSVG=p;a.select=function(c){return x(G.doc.querySelector(c))};a.selectAll=function(c){c=G.doc.querySelectorAll(c);for(var b=(a.set||Array)(),m=0;m<c.length;m++)b.push(x(c[m]));return b};setInterval(function(){for(var c in E)if(E[h](c)){var a=E[c],b=a.node;(\"svg\"!=a.type&&!b.ownerSVGElement||\"svg\"==a.type&&(!b.parentNode||\"ownerSVGElement\"in b.parentNode&&!b.ownerSVGElement))&&delete E[c]}},1E4);(function(c){function m(c){function a(c,\n", - "b){var m=v(c.node,b);(m=(m=m&&m.match(d))&&m[2])&&\"#\"==m.charAt()&&(m=m.substring(1))&&(f[m]=(f[m]||[]).concat(function(a){var m={};m[b]=ca(a);v(c.node,m)}))}function b(c){var a=v(c.node,\"xlink:href\");a&&\"#\"==a.charAt()&&(a=a.substring(1))&&(f[a]=(f[a]||[]).concat(function(a){c.attr(\"xlink:href\",\"#\"+a)}))}var e=c.selectAll(\"*\"),h,d=/^\\s*url\\((\"|'|)(.*)\\1\\)\\s*$/;c=[];for(var f={},l=0,E=e.length;l<E;l++){h=e[l];a(h,\"fill\");a(h,\"stroke\");a(h,\"filter\");a(h,\"mask\");a(h,\"clip-path\");b(h);var t=v(h.node,\n", - "\"id\");t&&(v(h.node,{id:h.id}),c.push({old:t,id:h.id}))}l=0;for(E=c.length;l<E;l++)if(e=f[c[l].old])for(h=0,t=e.length;h<t;h++)e[h](c[l].id)}function e(c,a,b){return function(m){m=m.slice(c,a);1==m.length&&(m=m[0]);return b?b(m):m}}function d(c){return function(){var a=c?\"<\"+this.type:\"\",b=this.node.attributes,m=this.node.childNodes;if(c)for(var e=0,h=b.length;e<h;e++)a+=\" \"+b[e].name+'=\"'+b[e].value.replace(/\"/g,'\\\\\"')+'\"';if(m.length){c&&(a+=\">\");e=0;for(h=m.length;e<h;e++)3==m[e].nodeType?a+=m[e].nodeValue:\n", - "1==m[e].nodeType&&(a+=x(m[e]).toString());c&&(a+=\"</\"+this.type+\">\")}else c&&(a+=\"/>\");return a}}c.attr=function(c,a){if(!c)return this;if(y(c,\"string\"))if(1<arguments.length){var b={};b[c]=a;c=b}else return k(\"snap.util.getattr.\"+c,this).firstDefined();for(var m in c)c[h](m)&&k(\"snap.util.attr.\"+m,this,c[m]);return this};c.getBBox=function(c){if(!a.Matrix||!a.path)return this.node.getBBox();var b=this,m=new a.Matrix;if(b.removed)return a._.box();for(;\"use\"==b.type;)if(c||(m=m.add(b.transform().localMatrix.translate(b.attr(\"x\")||\n", - "0,b.attr(\"y\")||0))),b.original)b=b.original;else var e=b.attr(\"xlink:href\"),b=b.original=b.node.ownerDocument.getElementById(e.substring(e.indexOf(\"#\")+1));var e=b._,h=a.path.get[b.type]||a.path.get.deflt;try{if(c)return e.bboxwt=h?a.path.getBBox(b.realPath=h(b)):a._.box(b.node.getBBox()),a._.box(e.bboxwt);b.realPath=h(b);b.matrix=b.transform().localMatrix;e.bbox=a.path.getBBox(a.path.map(b.realPath,m.add(b.matrix)));return a._.box(e.bbox)}catch(d){return a._.box()}};var f=function(){return this.string};\n", - "c.transform=function(c){var b=this._;if(null==c){var m=this;c=new a.Matrix(this.node.getCTM());for(var e=n(this),h=[e],d=new a.Matrix,l=e.toTransformString(),b=J(e)==J(this.matrix)?J(b.transform):l;\"svg\"!=m.type&&(m=m.parent());)h.push(n(m));for(m=h.length;m--;)d.add(h[m]);return{string:b,globalMatrix:c,totalMatrix:d,localMatrix:e,diffMatrix:c.clone().add(e.invert()),global:c.toTransformString(),total:d.toTransformString(),local:l,toString:f}}c instanceof a.Matrix?this.matrix=c:n(this,c);this.node&&\n", - "(\"linearGradient\"==this.type||\"radialGradient\"==this.type?v(this.node,{gradientTransform:this.matrix}):\"pattern\"==this.type?v(this.node,{patternTransform:this.matrix}):v(this.node,{transform:this.matrix}));return this};c.parent=function(){return x(this.node.parentNode)};c.append=c.add=function(c){if(c){if(\"set\"==c.type){var a=this;c.forEach(function(c){a.add(c)});return this}c=x(c);this.node.appendChild(c.node);c.paper=this.paper}return this};c.appendTo=function(c){c&&(c=x(c),c.append(this));return this};\n", - "c.prepend=function(c){if(c){if(\"set\"==c.type){var a=this,b;c.forEach(function(c){b?b.after(c):a.prepend(c);b=c});return this}c=x(c);var m=c.parent();this.node.insertBefore(c.node,this.node.firstChild);this.add&&this.add();c.paper=this.paper;this.parent()&&this.parent().add();m&&m.add()}return this};c.prependTo=function(c){c=x(c);c.prepend(this);return this};c.before=function(c){if(\"set\"==c.type){var a=this;c.forEach(function(c){var b=c.parent();a.node.parentNode.insertBefore(c.node,a.node);b&&b.add()});\n", - "this.parent().add();return this}c=x(c);var b=c.parent();this.node.parentNode.insertBefore(c.node,this.node);this.parent()&&this.parent().add();b&&b.add();c.paper=this.paper;return this};c.after=function(c){c=x(c);var a=c.parent();this.node.nextSibling?this.node.parentNode.insertBefore(c.node,this.node.nextSibling):this.node.parentNode.appendChild(c.node);this.parent()&&this.parent().add();a&&a.add();c.paper=this.paper;return this};c.insertBefore=function(c){c=x(c);var a=this.parent();c.node.parentNode.insertBefore(this.node,\n", - "c.node);this.paper=c.paper;a&&a.add();c.parent()&&c.parent().add();return this};c.insertAfter=function(c){c=x(c);var a=this.parent();c.node.parentNode.insertBefore(this.node,c.node.nextSibling);this.paper=c.paper;a&&a.add();c.parent()&&c.parent().add();return this};c.remove=function(){var c=this.parent();this.node.parentNode&&this.node.parentNode.removeChild(this.node);delete this.paper;this.removed=!0;c&&c.add();return this};c.select=function(c){return x(this.node.querySelector(c))};c.selectAll=\n", - "function(c){c=this.node.querySelectorAll(c);for(var b=(a.set||Array)(),m=0;m<c.length;m++)b.push(x(c[m]));return b};c.asPX=function(c,a){null==a&&(a=this.attr(c));return+b(this,c,a)};c.use=function(){var c,a=this.node.id;a||(a=this.id,v(this.node,{id:a}));c=\"linearGradient\"==this.type||\"radialGradient\"==this.type||\"pattern\"==this.type?r(this.type,this.node.parentNode):r(\"use\",this.node.parentNode);v(c.node,{\"xlink:href\":\"#\"+a});c.original=this;return c};var l=/\\S+/g;c.addClass=function(c){var a=(c||\n", - "\"\").match(l)||[];c=this.node;var b=c.className.baseVal,m=b.match(l)||[],e,h,d;if(a.length){for(e=0;d=a[e++];)h=m.indexOf(d),~h||m.push(d);a=m.join(\" \");b!=a&&(c.className.baseVal=a)}return this};c.removeClass=function(c){var a=(c||\"\").match(l)||[];c=this.node;var b=c.className.baseVal,m=b.match(l)||[],e,h;if(m.length){for(e=0;h=a[e++];)h=m.indexOf(h),~h&&m.splice(h,1);a=m.join(\" \");b!=a&&(c.className.baseVal=a)}return this};c.hasClass=function(c){return!!~(this.node.className.baseVal.match(l)||[]).indexOf(c)};\n", - "c.toggleClass=function(c,a){if(null!=a)return a?this.addClass(c):this.removeClass(c);var b=(c||\"\").match(l)||[],m=this.node,e=m.className.baseVal,h=e.match(l)||[],d,f,E;for(d=0;E=b[d++];)f=h.indexOf(E),~f?h.splice(f,1):h.push(E);b=h.join(\" \");e!=b&&(m.className.baseVal=b);return this};c.clone=function(){var c=x(this.node.cloneNode(!0));v(c.node,\"id\")&&v(c.node,{id:c.id});m(c);c.insertAfter(this);return c};c.toDefs=function(){u(this).appendChild(this.node);return this};c.pattern=c.toPattern=function(c,\n", - "a,b,m){var e=r(\"pattern\",u(this));null==c&&(c=this.getBBox());y(c,\"object\")&&\"x\"in c&&(a=c.y,b=c.width,m=c.height,c=c.x);v(e.node,{x:c,y:a,width:b,height:m,patternUnits:\"userSpaceOnUse\",id:e.id,viewBox:[c,a,b,m].join(\" \")});e.node.appendChild(this.node);return e};c.marker=function(c,a,b,m,e,h){var d=r(\"marker\",u(this));null==c&&(c=this.getBBox());y(c,\"object\")&&\"x\"in c&&(a=c.y,b=c.width,m=c.height,e=c.refX||c.cx,h=c.refY||c.cy,c=c.x);v(d.node,{viewBox:[c,a,b,m].join(\" \"),markerWidth:b,markerHeight:m,\n", - "orient:\"auto\",refX:e||0,refY:h||0,id:d.id});d.node.appendChild(this.node);return d};var E=function(c,a,b,m){\"function\"!=typeof b||b.length||(m=b,b=L.linear);this.attr=c;this.dur=a;b&&(this.easing=b);m&&(this.callback=m)};a._.Animation=E;a.animation=function(c,a,b,m){return new E(c,a,b,m)};c.inAnim=function(){var c=[],a;for(a in this.anims)this.anims[h](a)&&function(a){c.push({anim:new E(a._attrs,a.dur,a.easing,a._callback),mina:a,curStatus:a.status(),status:function(c){return a.status(c)},stop:function(){a.stop()}})}(this.anims[a]);\n", - "return c};a.animate=function(c,a,b,m,e,h){\"function\"!=typeof e||e.length||(h=e,e=L.linear);var d=L.time();c=L(c,a,d,d+m,L.time,b,e);h&&k.once(\"mina.finish.\"+c.id,h);return c};c.stop=function(){for(var c=this.inAnim(),a=0,b=c.length;a<b;a++)c[a].stop();return this};c.animate=function(c,a,b,m){\"function\"!=typeof b||b.length||(m=b,b=L.linear);c instanceof E&&(m=c.callback,b=c.easing,a=b.dur,c=c.attr);var d=[],f=[],l={},t,ca,n,T=this,q;for(q in c)if(c[h](q)){T.equal?(n=T.equal(q,J(c[q])),t=n.from,ca=\n", - "n.to,n=n.f):(t=+T.attr(q),ca=+c[q]);var la=y(t,\"array\")?t.length:1;l[q]=e(d.length,d.length+la,n);d=d.concat(t);f=f.concat(ca)}t=L.time();var p=L(d,f,t,t+a,L.time,function(c){var a={},b;for(b in l)l[h](b)&&(a[b]=l[b](c));T.attr(a)},b);T.anims[p.id]=p;p._attrs=c;p._callback=m;k(\"snap.animcreated.\"+T.id,p);k.once(\"mina.finish.\"+p.id,function(){delete T.anims[p.id];m&&m.call(T)});k.once(\"mina.stop.\"+p.id,function(){delete T.anims[p.id]});return T};var T={};c.data=function(c,b){var m=T[this.id]=T[this.id]||\n", - "{};if(0==arguments.length)return k(\"snap.data.get.\"+this.id,this,m,null),m;if(1==arguments.length){if(a.is(c,\"object\")){for(var e in c)c[h](e)&&this.data(e,c[e]);return this}k(\"snap.data.get.\"+this.id,this,m[c],c);return m[c]}m[c]=b;k(\"snap.data.set.\"+this.id,this,b,c);return this};c.removeData=function(c){null==c?T[this.id]={}:T[this.id]&&delete T[this.id][c];return this};c.outerSVG=c.toString=d(1);c.innerSVG=d()})(e.prototype);a.parse=function(c){var a=G.doc.createDocumentFragment(),b=!0,m=G.doc.createElement(\"div\");\n", - "c=J(c);c.match(/^\\s*<\\s*svg(?:\\s|>)/)||(c=\"<svg>\"+c+\"</svg>\",b=!1);m.innerHTML=c;if(c=m.getElementsByTagName(\"svg\")[0])if(b)a=c;else for(;c.firstChild;)a.appendChild(c.firstChild);m.innerHTML=aa;return new l(a)};l.prototype.select=e.prototype.select;l.prototype.selectAll=e.prototype.selectAll;a.fragment=function(){for(var c=Array.prototype.slice.call(arguments,0),b=G.doc.createDocumentFragment(),m=0,e=c.length;m<e;m++){var h=c[m];h.node&&h.node.nodeType&&b.appendChild(h.node);h.nodeType&&b.appendChild(h);\n", - "\"string\"==typeof h&&b.appendChild(a.parse(h).node)}return new l(b)};a._.make=r;a._.wrap=x;s.prototype.el=function(c,a){var b=r(c,this.node);a&&b.attr(a);return b};k.on(\"snap.util.getattr\",function(){var c=k.nt(),c=c.substring(c.lastIndexOf(\".\")+1),a=c.replace(/[A-Z]/g,function(c){return\"-\"+c.toLowerCase()});return pa[h](a)?this.node.ownerDocument.defaultView.getComputedStyle(this.node,null).getPropertyValue(a):v(this.node,c)});var pa={\"alignment-baseline\":0,\"baseline-shift\":0,clip:0,\"clip-path\":0,\n", - "\"clip-rule\":0,color:0,\"color-interpolation\":0,\"color-interpolation-filters\":0,\"color-profile\":0,\"color-rendering\":0,cursor:0,direction:0,display:0,\"dominant-baseline\":0,\"enable-background\":0,fill:0,\"fill-opacity\":0,\"fill-rule\":0,filter:0,\"flood-color\":0,\"flood-opacity\":0,font:0,\"font-family\":0,\"font-size\":0,\"font-size-adjust\":0,\"font-stretch\":0,\"font-style\":0,\"font-variant\":0,\"font-weight\":0,\"glyph-orientation-horizontal\":0,\"glyph-orientation-vertical\":0,\"image-rendering\":0,kerning:0,\"letter-spacing\":0,\n", - "\"lighting-color\":0,marker:0,\"marker-end\":0,\"marker-mid\":0,\"marker-start\":0,mask:0,opacity:0,overflow:0,\"pointer-events\":0,\"shape-rendering\":0,\"stop-color\":0,\"stop-opacity\":0,stroke:0,\"stroke-dasharray\":0,\"stroke-dashoffset\":0,\"stroke-linecap\":0,\"stroke-linejoin\":0,\"stroke-miterlimit\":0,\"stroke-opacity\":0,\"stroke-width\":0,\"text-anchor\":0,\"text-decoration\":0,\"text-rendering\":0,\"unicode-bidi\":0,visibility:0,\"word-spacing\":0,\"writing-mode\":0};k.on(\"snap.util.attr\",function(c){var a=k.nt(),b={},a=a.substring(a.lastIndexOf(\".\")+\n", - "1);b[a]=c;var m=a.replace(/-(\\w)/gi,function(c,a){return a.toUpperCase()}),a=a.replace(/[A-Z]/g,function(c){return\"-\"+c.toLowerCase()});pa[h](a)?this.node.style[m]=null==c?aa:c:v(this.node,b)});a.ajax=function(c,a,b,m){var e=new XMLHttpRequest,h=V();if(e){if(y(a,\"function\"))m=b,b=a,a=null;else if(y(a,\"object\")){var d=[],f;for(f in a)a.hasOwnProperty(f)&&d.push(encodeURIComponent(f)+\"=\"+encodeURIComponent(a[f]));a=d.join(\"&\")}e.open(a?\"POST\":\"GET\",c,!0);a&&(e.setRequestHeader(\"X-Requested-With\",\"XMLHttpRequest\"),\n", - "e.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded\"));b&&(k.once(\"snap.ajax.\"+h+\".0\",b),k.once(\"snap.ajax.\"+h+\".200\",b),k.once(\"snap.ajax.\"+h+\".304\",b));e.onreadystatechange=function(){4==e.readyState&&k(\"snap.ajax.\"+h+\".\"+e.status,m,e)};if(4==e.readyState)return e;e.send(a);return e}};a.load=function(c,b,m){a.ajax(c,function(c){c=a.parse(c.responseText);m?b.call(m,c):b(c)})};a.getElementByPoint=function(c,a){var b,m,e=G.doc.elementFromPoint(c,a);if(G.win.opera&&\"svg\"==e.tagName){b=\n", - "e;m=b.getBoundingClientRect();b=b.ownerDocument;var h=b.body,d=b.documentElement;b=m.top+(g.win.pageYOffset||d.scrollTop||h.scrollTop)-(d.clientTop||h.clientTop||0);m=m.left+(g.win.pageXOffset||d.scrollLeft||h.scrollLeft)-(d.clientLeft||h.clientLeft||0);h=e.createSVGRect();h.x=c-m;h.y=a-b;h.width=h.height=1;b=e.getIntersectionList(h,null);b.length&&(e=b[b.length-1])}return e?x(e):null};a.plugin=function(c){c(a,e,s,G,l)};return G.win.Snap=a}();C.plugin(function(a,k,y,M,A){function w(a,d,f,b,q,e){null==\n", - "d&&\"[object SVGMatrix]\"==z.call(a)?(this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.e=a.e,this.f=a.f):null!=a?(this.a=+a,this.b=+d,this.c=+f,this.d=+b,this.e=+q,this.f=+e):(this.a=1,this.c=this.b=0,this.d=1,this.f=this.e=0)}var z=Object.prototype.toString,d=String,f=Math;(function(n){function k(a){return a[0]*a[0]+a[1]*a[1]}function p(a){var d=f.sqrt(k(a));a[0]&&(a[0]/=d);a[1]&&(a[1]/=d)}n.add=function(a,d,e,f,n,p){var k=[[],[],[] ],u=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1] ];d=[[a,\n", - "e,n],[d,f,p],[0,0,1] ];a&&a instanceof w&&(d=[[a.a,a.c,a.e],[a.b,a.d,a.f],[0,0,1] ]);for(a=0;3>a;a++)for(e=0;3>e;e++){for(f=n=0;3>f;f++)n+=u[a][f]*d[f][e];k[a][e]=n}this.a=k[0][0];this.b=k[1][0];this.c=k[0][1];this.d=k[1][1];this.e=k[0][2];this.f=k[1][2];return this};n.invert=function(){var a=this.a*this.d-this.b*this.c;return new w(this.d/a,-this.b/a,-this.c/a,this.a/a,(this.c*this.f-this.d*this.e)/a,(this.b*this.e-this.a*this.f)/a)};n.clone=function(){return new w(this.a,this.b,this.c,this.d,this.e,\n", - "this.f)};n.translate=function(a,d){return this.add(1,0,0,1,a,d)};n.scale=function(a,d,e,f){null==d&&(d=a);(e||f)&&this.add(1,0,0,1,e,f);this.add(a,0,0,d,0,0);(e||f)&&this.add(1,0,0,1,-e,-f);return this};n.rotate=function(b,d,e){b=a.rad(b);d=d||0;e=e||0;var l=+f.cos(b).toFixed(9);b=+f.sin(b).toFixed(9);this.add(l,b,-b,l,d,e);return this.add(1,0,0,1,-d,-e)};n.x=function(a,d){return a*this.a+d*this.c+this.e};n.y=function(a,d){return a*this.b+d*this.d+this.f};n.get=function(a){return+this[d.fromCharCode(97+\n", - "a)].toFixed(4)};n.toString=function(){return\"matrix(\"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+\")\"};n.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]};n.determinant=function(){return this.a*this.d-this.b*this.c};n.split=function(){var b={};b.dx=this.e;b.dy=this.f;var d=[[this.a,this.c],[this.b,this.d] ];b.scalex=f.sqrt(k(d[0]));p(d[0]);b.shear=d[0][0]*d[1][0]+d[0][1]*d[1][1];d[1]=[d[1][0]-d[0][0]*b.shear,d[1][1]-d[0][1]*b.shear];b.scaley=f.sqrt(k(d[1]));\n", - "p(d[1]);b.shear/=b.scaley;0>this.determinant()&&(b.scalex=-b.scalex);var e=-d[0][1],d=d[1][1];0>d?(b.rotate=a.deg(f.acos(d)),0>e&&(b.rotate=360-b.rotate)):b.rotate=a.deg(f.asin(e));b.isSimple=!+b.shear.toFixed(9)&&(b.scalex.toFixed(9)==b.scaley.toFixed(9)||!b.rotate);b.isSuperSimple=!+b.shear.toFixed(9)&&b.scalex.toFixed(9)==b.scaley.toFixed(9)&&!b.rotate;b.noRotation=!+b.shear.toFixed(9)&&!b.rotate;return b};n.toTransformString=function(a){a=a||this.split();if(+a.shear.toFixed(9))return\"m\"+[this.get(0),\n", - "this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)];a.scalex=+a.scalex.toFixed(4);a.scaley=+a.scaley.toFixed(4);a.rotate=+a.rotate.toFixed(4);return(a.dx||a.dy?\"t\"+[+a.dx.toFixed(4),+a.dy.toFixed(4)]:\"\")+(1!=a.scalex||1!=a.scaley?\"s\"+[a.scalex,a.scaley,0,0]:\"\")+(a.rotate?\"r\"+[+a.rotate.toFixed(4),0,0]:\"\")}})(w.prototype);a.Matrix=w;a.matrix=function(a,d,f,b,k,e){return new w(a,d,f,b,k,e)}});C.plugin(function(a,v,y,M,A){function w(h){return function(d){k.stop();d instanceof A&&1==d.node.childNodes.length&&\n", - "(\"radialGradient\"==d.node.firstChild.tagName||\"linearGradient\"==d.node.firstChild.tagName||\"pattern\"==d.node.firstChild.tagName)&&(d=d.node.firstChild,b(this).appendChild(d),d=u(d));if(d instanceof v)if(\"radialGradient\"==d.type||\"linearGradient\"==d.type||\"pattern\"==d.type){d.node.id||e(d.node,{id:d.id});var f=l(d.node.id)}else f=d.attr(h);else f=a.color(d),f.error?(f=a(b(this).ownerSVGElement).gradient(d))?(f.node.id||e(f.node,{id:f.id}),f=l(f.node.id)):f=d:f=r(f);d={};d[h]=f;e(this.node,d);this.node.style[h]=\n", - "x}}function z(a){k.stop();a==+a&&(a+=\"px\");this.node.style.fontSize=a}function d(a){var b=[];a=a.childNodes;for(var e=0,f=a.length;e<f;e++){var l=a[e];3==l.nodeType&&b.push(l.nodeValue);\"tspan\"==l.tagName&&(1==l.childNodes.length&&3==l.firstChild.nodeType?b.push(l.firstChild.nodeValue):b.push(d(l)))}return b}function f(){k.stop();return this.node.style.fontSize}var n=a._.make,u=a._.wrap,p=a.is,b=a._.getSomeDefs,q=/^url\\(#?([^)]+)\\)$/,e=a._.$,l=a.url,r=String,s=a._.separator,x=\"\";k.on(\"snap.util.attr.mask\",\n", - "function(a){if(a instanceof v||a instanceof A){k.stop();a instanceof A&&1==a.node.childNodes.length&&(a=a.node.firstChild,b(this).appendChild(a),a=u(a));if(\"mask\"==a.type)var d=a;else d=n(\"mask\",b(this)),d.node.appendChild(a.node);!d.node.id&&e(d.node,{id:d.id});e(this.node,{mask:l(d.id)})}});(function(a){k.on(\"snap.util.attr.clip\",a);k.on(\"snap.util.attr.clip-path\",a);k.on(\"snap.util.attr.clipPath\",a)})(function(a){if(a instanceof v||a instanceof A){k.stop();if(\"clipPath\"==a.type)var d=a;else d=\n", - "n(\"clipPath\",b(this)),d.node.appendChild(a.node),!d.node.id&&e(d.node,{id:d.id});e(this.node,{\"clip-path\":l(d.id)})}});k.on(\"snap.util.attr.fill\",w(\"fill\"));k.on(\"snap.util.attr.stroke\",w(\"stroke\"));var G=/^([lr])(?:\\(([^)]*)\\))?(.*)$/i;k.on(\"snap.util.grad.parse\",function(a){a=r(a);var b=a.match(G);if(!b)return null;a=b[1];var e=b[2],b=b[3],e=e.split(/\\s*,\\s*/).map(function(a){return+a==a?+a:a});1==e.length&&0==e[0]&&(e=[]);b=b.split(\"-\");b=b.map(function(a){a=a.split(\":\");var b={color:a[0]};a[1]&&\n", - "(b.offset=parseFloat(a[1]));return b});return{type:a,params:e,stops:b}});k.on(\"snap.util.attr.d\",function(b){k.stop();p(b,\"array\")&&p(b[0],\"array\")&&(b=a.path.toString.call(b));b=r(b);b.match(/[ruo]/i)&&(b=a.path.toAbsolute(b));e(this.node,{d:b})})(-1);k.on(\"snap.util.attr.#text\",function(a){k.stop();a=r(a);for(a=M.doc.createTextNode(a);this.node.firstChild;)this.node.removeChild(this.node.firstChild);this.node.appendChild(a)})(-1);k.on(\"snap.util.attr.path\",function(a){k.stop();this.attr({d:a})})(-1);\n", - "k.on(\"snap.util.attr.class\",function(a){k.stop();this.node.className.baseVal=a})(-1);k.on(\"snap.util.attr.viewBox\",function(a){a=p(a,\"object\")&&\"x\"in a?[a.x,a.y,a.width,a.height].join(\" \"):p(a,\"array\")?a.join(\" \"):a;e(this.node,{viewBox:a});k.stop()})(-1);k.on(\"snap.util.attr.transform\",function(a){this.transform(a);k.stop()})(-1);k.on(\"snap.util.attr.r\",function(a){\"rect\"==this.type&&(k.stop(),e(this.node,{rx:a,ry:a}))})(-1);k.on(\"snap.util.attr.textpath\",function(a){k.stop();if(\"text\"==this.type){var d,\n", - "f;if(!a&&this.textPath){for(a=this.textPath;a.node.firstChild;)this.node.appendChild(a.node.firstChild);a.remove();delete this.textPath}else if(p(a,\"string\")?(d=b(this),a=u(d.parentNode).path(a),d.appendChild(a.node),d=a.id,a.attr({id:d})):(a=u(a),a instanceof v&&(d=a.attr(\"id\"),d||(d=a.id,a.attr({id:d})))),d)if(a=this.textPath,f=this.node,a)a.attr({\"xlink:href\":\"#\"+d});else{for(a=e(\"textPath\",{\"xlink:href\":\"#\"+d});f.firstChild;)a.appendChild(f.firstChild);f.appendChild(a);this.textPath=u(a)}}})(-1);\n", - "k.on(\"snap.util.attr.text\",function(a){if(\"text\"==this.type){for(var b=this.node,d=function(a){var b=e(\"tspan\");if(p(a,\"array\"))for(var f=0;f<a.length;f++)b.appendChild(d(a[f]));else b.appendChild(M.doc.createTextNode(a));b.normalize&&b.normalize();return b};b.firstChild;)b.removeChild(b.firstChild);for(a=d(a);a.firstChild;)b.appendChild(a.firstChild)}k.stop()})(-1);k.on(\"snap.util.attr.fontSize\",z)(-1);k.on(\"snap.util.attr.font-size\",z)(-1);k.on(\"snap.util.getattr.transform\",function(){k.stop();\n", - "return this.transform()})(-1);k.on(\"snap.util.getattr.textpath\",function(){k.stop();return this.textPath})(-1);(function(){function b(d){return function(){k.stop();var b=M.doc.defaultView.getComputedStyle(this.node,null).getPropertyValue(\"marker-\"+d);return\"none\"==b?b:a(M.doc.getElementById(b.match(q)[1]))}}function d(a){return function(b){k.stop();var d=\"marker\"+a.charAt(0).toUpperCase()+a.substring(1);if(\"\"==b||!b)this.node.style[d]=\"none\";else if(\"marker\"==b.type){var f=b.node.id;f||e(b.node,{id:b.id});\n", - "this.node.style[d]=l(f)}}}k.on(\"snap.util.getattr.marker-end\",b(\"end\"))(-1);k.on(\"snap.util.getattr.markerEnd\",b(\"end\"))(-1);k.on(\"snap.util.getattr.marker-start\",b(\"start\"))(-1);k.on(\"snap.util.getattr.markerStart\",b(\"start\"))(-1);k.on(\"snap.util.getattr.marker-mid\",b(\"mid\"))(-1);k.on(\"snap.util.getattr.markerMid\",b(\"mid\"))(-1);k.on(\"snap.util.attr.marker-end\",d(\"end\"))(-1);k.on(\"snap.util.attr.markerEnd\",d(\"end\"))(-1);k.on(\"snap.util.attr.marker-start\",d(\"start\"))(-1);k.on(\"snap.util.attr.markerStart\",\n", - "d(\"start\"))(-1);k.on(\"snap.util.attr.marker-mid\",d(\"mid\"))(-1);k.on(\"snap.util.attr.markerMid\",d(\"mid\"))(-1)})();k.on(\"snap.util.getattr.r\",function(){if(\"rect\"==this.type&&e(this.node,\"rx\")==e(this.node,\"ry\"))return k.stop(),e(this.node,\"rx\")})(-1);k.on(\"snap.util.getattr.text\",function(){if(\"text\"==this.type||\"tspan\"==this.type){k.stop();var a=d(this.node);return 1==a.length?a[0]:a}})(-1);k.on(\"snap.util.getattr.#text\",function(){return this.node.textContent})(-1);k.on(\"snap.util.getattr.viewBox\",\n", - "function(){k.stop();var b=e(this.node,\"viewBox\");if(b)return b=b.split(s),a._.box(+b[0],+b[1],+b[2],+b[3])})(-1);k.on(\"snap.util.getattr.points\",function(){var a=e(this.node,\"points\");k.stop();if(a)return a.split(s)})(-1);k.on(\"snap.util.getattr.path\",function(){var a=e(this.node,\"d\");k.stop();return a})(-1);k.on(\"snap.util.getattr.class\",function(){return this.node.className.baseVal})(-1);k.on(\"snap.util.getattr.fontSize\",f)(-1);k.on(\"snap.util.getattr.font-size\",f)(-1)});C.plugin(function(a,v,y,\n", - "M,A){function w(a){return a}function z(a){return function(b){return+b.toFixed(3)+a}}var d={\"+\":function(a,b){return a+b},\"-\":function(a,b){return a-b},\"/\":function(a,b){return a/b},\"*\":function(a,b){return a*b}},f=String,n=/[a-z]+$/i,u=/^\\s*([+\\-\\/*])\\s*=\\s*([\\d.eE+\\-]+)\\s*([^\\d\\s]+)?\\s*$/;k.on(\"snap.util.attr\",function(a){if(a=f(a).match(u)){var b=k.nt(),b=b.substring(b.lastIndexOf(\".\")+1),q=this.attr(b),e={};k.stop();var l=a[3]||\"\",r=q.match(n),s=d[a[1] ];r&&r==l?a=s(parseFloat(q),+a[2]):(q=this.asPX(b),\n", - "a=s(this.asPX(b),this.asPX(b,a[2]+l)));isNaN(q)||isNaN(a)||(e[b]=a,this.attr(e))}})(-10);k.on(\"snap.util.equal\",function(a,b){var q=f(this.attr(a)||\"\"),e=f(b).match(u);if(e){k.stop();var l=e[3]||\"\",r=q.match(n),s=d[e[1] ];if(r&&r==l)return{from:parseFloat(q),to:s(parseFloat(q),+e[2]),f:z(r)};q=this.asPX(a);return{from:q,to:s(q,this.asPX(a,e[2]+l)),f:w}}})(-10)});C.plugin(function(a,v,y,M,A){var w=y.prototype,z=a.is;w.rect=function(a,d,k,p,b,q){var e;null==q&&(q=b);z(a,\"object\")&&\"[object Object]\"==\n", - "a?e=a:null!=a&&(e={x:a,y:d,width:k,height:p},null!=b&&(e.rx=b,e.ry=q));return this.el(\"rect\",e)};w.circle=function(a,d,k){var p;z(a,\"object\")&&\"[object Object]\"==a?p=a:null!=a&&(p={cx:a,cy:d,r:k});return this.el(\"circle\",p)};var d=function(){function a(){this.parentNode.removeChild(this)}return function(d,k){var p=M.doc.createElement(\"img\"),b=M.doc.body;p.style.cssText=\"position:absolute;left:-9999em;top:-9999em\";p.onload=function(){k.call(p);p.onload=p.onerror=null;b.removeChild(p)};p.onerror=a;\n", - "b.appendChild(p);p.src=d}}();w.image=function(f,n,k,p,b){var q=this.el(\"image\");if(z(f,\"object\")&&\"src\"in f)q.attr(f);else if(null!=f){var e={\"xlink:href\":f,preserveAspectRatio:\"none\"};null!=n&&null!=k&&(e.x=n,e.y=k);null!=p&&null!=b?(e.width=p,e.height=b):d(f,function(){a._.$(q.node,{width:this.offsetWidth,height:this.offsetHeight})});a._.$(q.node,e)}return q};w.ellipse=function(a,d,k,p){var b;z(a,\"object\")&&\"[object Object]\"==a?b=a:null!=a&&(b={cx:a,cy:d,rx:k,ry:p});return this.el(\"ellipse\",b)};\n", - "w.path=function(a){var d;z(a,\"object\")&&!z(a,\"array\")?d=a:a&&(d={d:a});return this.el(\"path\",d)};w.group=w.g=function(a){var d=this.el(\"g\");1==arguments.length&&a&&!a.type?d.attr(a):arguments.length&&d.add(Array.prototype.slice.call(arguments,0));return d};w.svg=function(a,d,k,p,b,q,e,l){var r={};z(a,\"object\")&&null==d?r=a:(null!=a&&(r.x=a),null!=d&&(r.y=d),null!=k&&(r.width=k),null!=p&&(r.height=p),null!=b&&null!=q&&null!=e&&null!=l&&(r.viewBox=[b,q,e,l]));return this.el(\"svg\",r)};w.mask=function(a){var d=\n", - "this.el(\"mask\");1==arguments.length&&a&&!a.type?d.attr(a):arguments.length&&d.add(Array.prototype.slice.call(arguments,0));return d};w.ptrn=function(a,d,k,p,b,q,e,l){if(z(a,\"object\"))var r=a;else arguments.length?(r={},null!=a&&(r.x=a),null!=d&&(r.y=d),null!=k&&(r.width=k),null!=p&&(r.height=p),null!=b&&null!=q&&null!=e&&null!=l&&(r.viewBox=[b,q,e,l])):r={patternUnits:\"userSpaceOnUse\"};return this.el(\"pattern\",r)};w.use=function(a){return null!=a?(make(\"use\",this.node),a instanceof v&&(a.attr(\"id\")||\n", - "a.attr({id:ID()}),a=a.attr(\"id\")),this.el(\"use\",{\"xlink:href\":a})):v.prototype.use.call(this)};w.text=function(a,d,k){var p={};z(a,\"object\")?p=a:null!=a&&(p={x:a,y:d,text:k||\"\"});return this.el(\"text\",p)};w.line=function(a,d,k,p){var b={};z(a,\"object\")?b=a:null!=a&&(b={x1:a,x2:k,y1:d,y2:p});return this.el(\"line\",b)};w.polyline=function(a){1<arguments.length&&(a=Array.prototype.slice.call(arguments,0));var d={};z(a,\"object\")&&!z(a,\"array\")?d=a:null!=a&&(d={points:a});return this.el(\"polyline\",d)};\n", - "w.polygon=function(a){1<arguments.length&&(a=Array.prototype.slice.call(arguments,0));var d={};z(a,\"object\")&&!z(a,\"array\")?d=a:null!=a&&(d={points:a});return this.el(\"polygon\",d)};(function(){function d(){return this.selectAll(\"stop\")}function n(b,d){var f=e(\"stop\"),k={offset:+d+\"%\"};b=a.color(b);k[\"stop-color\"]=b.hex;1>b.opacity&&(k[\"stop-opacity\"]=b.opacity);e(f,k);this.node.appendChild(f);return this}function u(){if(\"linearGradient\"==this.type){var b=e(this.node,\"x1\")||0,d=e(this.node,\"x2\")||\n", - "1,f=e(this.node,\"y1\")||0,k=e(this.node,\"y2\")||0;return a._.box(b,f,math.abs(d-b),math.abs(k-f))}b=this.node.r||0;return a._.box((this.node.cx||0.5)-b,(this.node.cy||0.5)-b,2*b,2*b)}function p(a,d){function f(a,b){for(var d=(b-u)/(a-w),e=w;e<a;e++)h[e].offset=+(+u+d*(e-w)).toFixed(2);w=a;u=b}var n=k(\"snap.util.grad.parse\",null,d).firstDefined(),p;if(!n)return null;n.params.unshift(a);p=\"l\"==n.type.toLowerCase()?b.apply(0,n.params):q.apply(0,n.params);n.type!=n.type.toLowerCase()&&e(p.node,{gradientUnits:\"userSpaceOnUse\"});\n", - "var h=n.stops,n=h.length,u=0,w=0;n--;for(var v=0;v<n;v++)\"offset\"in h[v]&&f(v,h[v].offset);h[n].offset=h[n].offset||100;f(n,h[n].offset);for(v=0;v<=n;v++){var y=h[v];p.addStop(y.color,y.offset)}return p}function b(b,k,p,q,w){b=a._.make(\"linearGradient\",b);b.stops=d;b.addStop=n;b.getBBox=u;null!=k&&e(b.node,{x1:k,y1:p,x2:q,y2:w});return b}function q(b,k,p,q,w,h){b=a._.make(\"radialGradient\",b);b.stops=d;b.addStop=n;b.getBBox=u;null!=k&&e(b.node,{cx:k,cy:p,r:q});null!=w&&null!=h&&e(b.node,{fx:w,fy:h});\n", - "return b}var e=a._.$;w.gradient=function(a){return p(this.defs,a)};w.gradientLinear=function(a,d,e,f){return b(this.defs,a,d,e,f)};w.gradientRadial=function(a,b,d,e,f){return q(this.defs,a,b,d,e,f)};w.toString=function(){var b=this.node.ownerDocument,d=b.createDocumentFragment(),b=b.createElement(\"div\"),e=this.node.cloneNode(!0);d.appendChild(b);b.appendChild(e);a._.$(e,{xmlns:\"http://www.w3.org/2000/svg\"});b=b.innerHTML;d.removeChild(d.firstChild);return b};w.clear=function(){for(var a=this.node.firstChild,\n", - "b;a;)b=a.nextSibling,\"defs\"!=a.tagName?a.parentNode.removeChild(a):w.clear.call({node:a}),a=b}})()});C.plugin(function(a,k,y,M){function A(a){var b=A.ps=A.ps||{};b[a]?b[a].sleep=100:b[a]={sleep:100};setTimeout(function(){for(var d in b)b[L](d)&&d!=a&&(b[d].sleep--,!b[d].sleep&&delete b[d])});return b[a]}function w(a,b,d,e){null==a&&(a=b=d=e=0);null==b&&(b=a.y,d=a.width,e=a.height,a=a.x);return{x:a,y:b,width:d,w:d,height:e,h:e,x2:a+d,y2:b+e,cx:a+d/2,cy:b+e/2,r1:F.min(d,e)/2,r2:F.max(d,e)/2,r0:F.sqrt(d*\n", - "d+e*e)/2,path:s(a,b,d,e),vb:[a,b,d,e].join(\" \")}}function z(){return this.join(\",\").replace(N,\"$1\")}function d(a){a=C(a);a.toString=z;return a}function f(a,b,d,h,f,k,l,n,p){if(null==p)return e(a,b,d,h,f,k,l,n);if(0>p||e(a,b,d,h,f,k,l,n)<p)p=void 0;else{var q=0.5,O=1-q,s;for(s=e(a,b,d,h,f,k,l,n,O);0.01<Z(s-p);)q/=2,O+=(s<p?1:-1)*q,s=e(a,b,d,h,f,k,l,n,O);p=O}return u(a,b,d,h,f,k,l,n,p)}function n(b,d){function e(a){return+(+a).toFixed(3)}return a._.cacher(function(a,h,l){a instanceof k&&(a=a.attr(\"d\"));\n", - "a=I(a);for(var n,p,D,q,O=\"\",s={},c=0,t=0,r=a.length;t<r;t++){D=a[t];if(\"M\"==D[0])n=+D[1],p=+D[2];else{q=f(n,p,D[1],D[2],D[3],D[4],D[5],D[6]);if(c+q>h){if(d&&!s.start){n=f(n,p,D[1],D[2],D[3],D[4],D[5],D[6],h-c);O+=[\"C\"+e(n.start.x),e(n.start.y),e(n.m.x),e(n.m.y),e(n.x),e(n.y)];if(l)return O;s.start=O;O=[\"M\"+e(n.x),e(n.y)+\"C\"+e(n.n.x),e(n.n.y),e(n.end.x),e(n.end.y),e(D[5]),e(D[6])].join();c+=q;n=+D[5];p=+D[6];continue}if(!b&&!d)return n=f(n,p,D[1],D[2],D[3],D[4],D[5],D[6],h-c)}c+=q;n=+D[5];p=+D[6]}O+=\n", - "D.shift()+D}s.end=O;return n=b?c:d?s:u(n,p,D[0],D[1],D[2],D[3],D[4],D[5],1)},null,a._.clone)}function u(a,b,d,e,h,f,k,l,n){var p=1-n,q=ma(p,3),s=ma(p,2),c=n*n,t=c*n,r=q*a+3*s*n*d+3*p*n*n*h+t*k,q=q*b+3*s*n*e+3*p*n*n*f+t*l,s=a+2*n*(d-a)+c*(h-2*d+a),t=b+2*n*(e-b)+c*(f-2*e+b),x=d+2*n*(h-d)+c*(k-2*h+d),c=e+2*n*(f-e)+c*(l-2*f+e);a=p*a+n*d;b=p*b+n*e;h=p*h+n*k;f=p*f+n*l;l=90-180*F.atan2(s-x,t-c)/S;return{x:r,y:q,m:{x:s,y:t},n:{x:x,y:c},start:{x:a,y:b},end:{x:h,y:f},alpha:l}}function p(b,d,e,h,f,n,k,l){a.is(b,\n", - "\"array\")||(b=[b,d,e,h,f,n,k,l]);b=U.apply(null,b);return w(b.min.x,b.min.y,b.max.x-b.min.x,b.max.y-b.min.y)}function b(a,b,d){return b>=a.x&&b<=a.x+a.width&&d>=a.y&&d<=a.y+a.height}function q(a,d){a=w(a);d=w(d);return b(d,a.x,a.y)||b(d,a.x2,a.y)||b(d,a.x,a.y2)||b(d,a.x2,a.y2)||b(a,d.x,d.y)||b(a,d.x2,d.y)||b(a,d.x,d.y2)||b(a,d.x2,d.y2)||(a.x<d.x2&&a.x>d.x||d.x<a.x2&&d.x>a.x)&&(a.y<d.y2&&a.y>d.y||d.y<a.y2&&d.y>a.y)}function e(a,b,d,e,h,f,n,k,l){null==l&&(l=1);l=(1<l?1:0>l?0:l)/2;for(var p=[-0.1252,\n", - "0.1252,-0.3678,0.3678,-0.5873,0.5873,-0.7699,0.7699,-0.9041,0.9041,-0.9816,0.9816],q=[0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472],s=0,c=0;12>c;c++)var t=l*p[c]+l,r=t*(t*(-3*a+9*d-9*h+3*n)+6*a-12*d+6*h)-3*a+3*d,t=t*(t*(-3*b+9*e-9*f+3*k)+6*b-12*e+6*f)-3*b+3*e,s=s+q[c]*F.sqrt(r*r+t*t);return l*s}function l(a,b,d){a=I(a);b=I(b);for(var h,f,l,n,k,s,r,O,x,c,t=d?0:[],w=0,v=a.length;w<v;w++)if(x=a[w],\"M\"==x[0])h=k=x[1],f=s=x[2];else{\"C\"==x[0]?(x=[h,f].concat(x.slice(1)),\n", - "h=x[6],f=x[7]):(x=[h,f,h,f,k,s,k,s],h=k,f=s);for(var G=0,y=b.length;G<y;G++)if(c=b[G],\"M\"==c[0])l=r=c[1],n=O=c[2];else{\"C\"==c[0]?(c=[l,n].concat(c.slice(1)),l=c[6],n=c[7]):(c=[l,n,l,n,r,O,r,O],l=r,n=O);var z;var K=x,B=c;z=d;var H=p(K),J=p(B);if(q(H,J)){for(var H=e.apply(0,K),J=e.apply(0,B),H=~~(H/8),J=~~(J/8),U=[],A=[],F={},M=z?0:[],P=0;P<H+1;P++){var C=u.apply(0,K.concat(P/H));U.push({x:C.x,y:C.y,t:P/H})}for(P=0;P<J+1;P++)C=u.apply(0,B.concat(P/J)),A.push({x:C.x,y:C.y,t:P/J});for(P=0;P<H;P++)for(K=\n", - "0;K<J;K++){var Q=U[P],L=U[P+1],B=A[K],C=A[K+1],N=0.001>Z(L.x-Q.x)?\"y\":\"x\",S=0.001>Z(C.x-B.x)?\"y\":\"x\",R;R=Q.x;var Y=Q.y,V=L.x,ea=L.y,fa=B.x,ga=B.y,ha=C.x,ia=C.y;if(W(R,V)<X(fa,ha)||X(R,V)>W(fa,ha)||W(Y,ea)<X(ga,ia)||X(Y,ea)>W(ga,ia))R=void 0;else{var $=(R*ea-Y*V)*(fa-ha)-(R-V)*(fa*ia-ga*ha),aa=(R*ea-Y*V)*(ga-ia)-(Y-ea)*(fa*ia-ga*ha),ja=(R-V)*(ga-ia)-(Y-ea)*(fa-ha);if(ja){var $=$/ja,aa=aa/ja,ja=+$.toFixed(2),ba=+aa.toFixed(2);R=ja<+X(R,V).toFixed(2)||ja>+W(R,V).toFixed(2)||ja<+X(fa,ha).toFixed(2)||\n", - "ja>+W(fa,ha).toFixed(2)||ba<+X(Y,ea).toFixed(2)||ba>+W(Y,ea).toFixed(2)||ba<+X(ga,ia).toFixed(2)||ba>+W(ga,ia).toFixed(2)?void 0:{x:$,y:aa}}else R=void 0}R&&F[R.x.toFixed(4)]!=R.y.toFixed(4)&&(F[R.x.toFixed(4)]=R.y.toFixed(4),Q=Q.t+Z((R[N]-Q[N])/(L[N]-Q[N]))*(L.t-Q.t),B=B.t+Z((R[S]-B[S])/(C[S]-B[S]))*(C.t-B.t),0<=Q&&1>=Q&&0<=B&&1>=B&&(z?M++:M.push({x:R.x,y:R.y,t1:Q,t2:B})))}z=M}else z=z?0:[];if(d)t+=z;else{H=0;for(J=z.length;H<J;H++)z[H].segment1=w,z[H].segment2=G,z[H].bez1=x,z[H].bez2=c;t=t.concat(z)}}}return t}\n", - "function r(a){var b=A(a);if(b.bbox)return C(b.bbox);if(!a)return w();a=I(a);for(var d=0,e=0,h=[],f=[],l,n=0,k=a.length;n<k;n++)l=a[n],\"M\"==l[0]?(d=l[1],e=l[2],h.push(d),f.push(e)):(d=U(d,e,l[1],l[2],l[3],l[4],l[5],l[6]),h=h.concat(d.min.x,d.max.x),f=f.concat(d.min.y,d.max.y),d=l[5],e=l[6]);a=X.apply(0,h);l=X.apply(0,f);h=W.apply(0,h);f=W.apply(0,f);f=w(a,l,h-a,f-l);b.bbox=C(f);return f}function s(a,b,d,e,h){if(h)return[[\"M\",+a+ +h,b],[\"l\",d-2*h,0],[\"a\",h,h,0,0,1,h,h],[\"l\",0,e-2*h],[\"a\",h,h,0,0,1,\n", - "-h,h],[\"l\",2*h-d,0],[\"a\",h,h,0,0,1,-h,-h],[\"l\",0,2*h-e],[\"a\",h,h,0,0,1,h,-h],[\"z\"] ];a=[[\"M\",a,b],[\"l\",d,0],[\"l\",0,e],[\"l\",-d,0],[\"z\"] ];a.toString=z;return a}function x(a,b,d,e,h){null==h&&null==e&&(e=d);a=+a;b=+b;d=+d;e=+e;if(null!=h){var f=Math.PI/180,l=a+d*Math.cos(-e*f);a+=d*Math.cos(-h*f);var n=b+d*Math.sin(-e*f);b+=d*Math.sin(-h*f);d=[[\"M\",l,n],[\"A\",d,d,0,+(180<h-e),0,a,b] ]}else d=[[\"M\",a,b],[\"m\",0,-e],[\"a\",d,e,0,1,1,0,2*e],[\"a\",d,e,0,1,1,0,-2*e],[\"z\"] ];d.toString=z;return d}function G(b){var e=\n", - "A(b);if(e.abs)return d(e.abs);Q(b,\"array\")&&Q(b&&b[0],\"array\")||(b=a.parsePathString(b));if(!b||!b.length)return[[\"M\",0,0] ];var h=[],f=0,l=0,n=0,k=0,p=0;\"M\"==b[0][0]&&(f=+b[0][1],l=+b[0][2],n=f,k=l,p++,h[0]=[\"M\",f,l]);for(var q=3==b.length&&\"M\"==b[0][0]&&\"R\"==b[1][0].toUpperCase()&&\"Z\"==b[2][0].toUpperCase(),s,r,w=p,c=b.length;w<c;w++){h.push(s=[]);r=b[w];p=r[0];if(p!=p.toUpperCase())switch(s[0]=p.toUpperCase(),s[0]){case \"A\":s[1]=r[1];s[2]=r[2];s[3]=r[3];s[4]=r[4];s[5]=r[5];s[6]=+r[6]+f;s[7]=+r[7]+\n", - "l;break;case \"V\":s[1]=+r[1]+l;break;case \"H\":s[1]=+r[1]+f;break;case \"R\":for(var t=[f,l].concat(r.slice(1)),u=2,v=t.length;u<v;u++)t[u]=+t[u]+f,t[++u]=+t[u]+l;h.pop();h=h.concat(P(t,q));break;case \"O\":h.pop();t=x(f,l,r[1],r[2]);t.push(t[0]);h=h.concat(t);break;case \"U\":h.pop();h=h.concat(x(f,l,r[1],r[2],r[3]));s=[\"U\"].concat(h[h.length-1].slice(-2));break;case \"M\":n=+r[1]+f,k=+r[2]+l;default:for(u=1,v=r.length;u<v;u++)s[u]=+r[u]+(u%2?f:l)}else if(\"R\"==p)t=[f,l].concat(r.slice(1)),h.pop(),h=h.concat(P(t,\n", - "q)),s=[\"R\"].concat(r.slice(-2));else if(\"O\"==p)h.pop(),t=x(f,l,r[1],r[2]),t.push(t[0]),h=h.concat(t);else if(\"U\"==p)h.pop(),h=h.concat(x(f,l,r[1],r[2],r[3])),s=[\"U\"].concat(h[h.length-1].slice(-2));else for(t=0,u=r.length;t<u;t++)s[t]=r[t];p=p.toUpperCase();if(\"O\"!=p)switch(s[0]){case \"Z\":f=+n;l=+k;break;case \"H\":f=s[1];break;case \"V\":l=s[1];break;case \"M\":n=s[s.length-2],k=s[s.length-1];default:f=s[s.length-2],l=s[s.length-1]}}h.toString=z;e.abs=d(h);return h}function h(a,b,d,e){return[a,b,d,e,d,\n", - "e]}function J(a,b,d,e,h,f){var l=1/3,n=2/3;return[l*a+n*d,l*b+n*e,l*h+n*d,l*f+n*e,h,f]}function K(b,d,e,h,f,l,n,k,p,s){var r=120*S/180,q=S/180*(+f||0),c=[],t,x=a._.cacher(function(a,b,c){var d=a*F.cos(c)-b*F.sin(c);a=a*F.sin(c)+b*F.cos(c);return{x:d,y:a}});if(s)v=s[0],t=s[1],l=s[2],u=s[3];else{t=x(b,d,-q);b=t.x;d=t.y;t=x(k,p,-q);k=t.x;p=t.y;F.cos(S/180*f);F.sin(S/180*f);t=(b-k)/2;v=(d-p)/2;u=t*t/(e*e)+v*v/(h*h);1<u&&(u=F.sqrt(u),e*=u,h*=u);var u=e*e,w=h*h,u=(l==n?-1:1)*F.sqrt(Z((u*w-u*v*v-w*t*t)/\n", - "(u*v*v+w*t*t)));l=u*e*v/h+(b+k)/2;var u=u*-h*t/e+(d+p)/2,v=F.asin(((d-u)/h).toFixed(9));t=F.asin(((p-u)/h).toFixed(9));v=b<l?S-v:v;t=k<l?S-t:t;0>v&&(v=2*S+v);0>t&&(t=2*S+t);n&&v>t&&(v-=2*S);!n&&t>v&&(t-=2*S)}if(Z(t-v)>r){var c=t,w=k,G=p;t=v+r*(n&&t>v?1:-1);k=l+e*F.cos(t);p=u+h*F.sin(t);c=K(k,p,e,h,f,0,n,w,G,[t,c,l,u])}l=t-v;f=F.cos(v);r=F.sin(v);n=F.cos(t);t=F.sin(t);l=F.tan(l/4);e=4/3*e*l;l*=4/3*h;h=[b,d];b=[b+e*r,d-l*f];d=[k+e*t,p-l*n];k=[k,p];b[0]=2*h[0]-b[0];b[1]=2*h[1]-b[1];if(s)return[b,d,k].concat(c);\n", - "c=[b,d,k].concat(c).join().split(\",\");s=[];k=0;for(p=c.length;k<p;k++)s[k]=k%2?x(c[k-1],c[k],q).y:x(c[k],c[k+1],q).x;return s}function U(a,b,d,e,h,f,l,k){for(var n=[],p=[[],[] ],s,r,c,t,q=0;2>q;++q)0==q?(r=6*a-12*d+6*h,s=-3*a+9*d-9*h+3*l,c=3*d-3*a):(r=6*b-12*e+6*f,s=-3*b+9*e-9*f+3*k,c=3*e-3*b),1E-12>Z(s)?1E-12>Z(r)||(s=-c/r,0<s&&1>s&&n.push(s)):(t=r*r-4*c*s,c=F.sqrt(t),0>t||(t=(-r+c)/(2*s),0<t&&1>t&&n.push(t),s=(-r-c)/(2*s),0<s&&1>s&&n.push(s)));for(r=q=n.length;q--;)s=n[q],c=1-s,p[0][q]=c*c*c*a+3*\n", - "c*c*s*d+3*c*s*s*h+s*s*s*l,p[1][q]=c*c*c*b+3*c*c*s*e+3*c*s*s*f+s*s*s*k;p[0][r]=a;p[1][r]=b;p[0][r+1]=l;p[1][r+1]=k;p[0].length=p[1].length=r+2;return{min:{x:X.apply(0,p[0]),y:X.apply(0,p[1])},max:{x:W.apply(0,p[0]),y:W.apply(0,p[1])}}}function I(a,b){var e=!b&&A(a);if(!b&&e.curve)return d(e.curve);var f=G(a),l=b&&G(b),n={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},k={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},p=function(a,b,c){if(!a)return[\"C\",b.x,b.y,b.x,b.y,b.x,b.y];a[0]in{T:1,Q:1}||(b.qx=b.qy=null);\n", - "switch(a[0]){case \"M\":b.X=a[1];b.Y=a[2];break;case \"A\":a=[\"C\"].concat(K.apply(0,[b.x,b.y].concat(a.slice(1))));break;case \"S\":\"C\"==c||\"S\"==c?(c=2*b.x-b.bx,b=2*b.y-b.by):(c=b.x,b=b.y);a=[\"C\",c,b].concat(a.slice(1));break;case \"T\":\"Q\"==c||\"T\"==c?(b.qx=2*b.x-b.qx,b.qy=2*b.y-b.qy):(b.qx=b.x,b.qy=b.y);a=[\"C\"].concat(J(b.x,b.y,b.qx,b.qy,a[1],a[2]));break;case \"Q\":b.qx=a[1];b.qy=a[2];a=[\"C\"].concat(J(b.x,b.y,a[1],a[2],a[3],a[4]));break;case \"L\":a=[\"C\"].concat(h(b.x,b.y,a[1],a[2]));break;case \"H\":a=[\"C\"].concat(h(b.x,\n", - "b.y,a[1],b.y));break;case \"V\":a=[\"C\"].concat(h(b.x,b.y,b.x,a[1]));break;case \"Z\":a=[\"C\"].concat(h(b.x,b.y,b.X,b.Y))}return a},s=function(a,b){if(7<a[b].length){a[b].shift();for(var c=a[b];c.length;)q[b]=\"A\",l&&(u[b]=\"A\"),a.splice(b++,0,[\"C\"].concat(c.splice(0,6)));a.splice(b,1);v=W(f.length,l&&l.length||0)}},r=function(a,b,c,d,e){a&&b&&\"M\"==a[e][0]&&\"M\"!=b[e][0]&&(b.splice(e,0,[\"M\",d.x,d.y]),c.bx=0,c.by=0,c.x=a[e][1],c.y=a[e][2],v=W(f.length,l&&l.length||0))},q=[],u=[],c=\"\",t=\"\",x=0,v=W(f.length,\n", - "l&&l.length||0);for(;x<v;x++){f[x]&&(c=f[x][0]);\"C\"!=c&&(q[x]=c,x&&(t=q[x-1]));f[x]=p(f[x],n,t);\"A\"!=q[x]&&\"C\"==c&&(q[x]=\"C\");s(f,x);l&&(l[x]&&(c=l[x][0]),\"C\"!=c&&(u[x]=c,x&&(t=u[x-1])),l[x]=p(l[x],k,t),\"A\"!=u[x]&&\"C\"==c&&(u[x]=\"C\"),s(l,x));r(f,l,n,k,x);r(l,f,k,n,x);var w=f[x],z=l&&l[x],y=w.length,U=l&&z.length;n.x=w[y-2];n.y=w[y-1];n.bx=$(w[y-4])||n.x;n.by=$(w[y-3])||n.y;k.bx=l&&($(z[U-4])||k.x);k.by=l&&($(z[U-3])||k.y);k.x=l&&z[U-2];k.y=l&&z[U-1]}l||(e.curve=d(f));return l?[f,l]:f}function P(a,\n", - "b){for(var d=[],e=0,h=a.length;h-2*!b>e;e+=2){var f=[{x:+a[e-2],y:+a[e-1]},{x:+a[e],y:+a[e+1]},{x:+a[e+2],y:+a[e+3]},{x:+a[e+4],y:+a[e+5]}];b?e?h-4==e?f[3]={x:+a[0],y:+a[1]}:h-2==e&&(f[2]={x:+a[0],y:+a[1]},f[3]={x:+a[2],y:+a[3]}):f[0]={x:+a[h-2],y:+a[h-1]}:h-4==e?f[3]=f[2]:e||(f[0]={x:+a[e],y:+a[e+1]});d.push([\"C\",(-f[0].x+6*f[1].x+f[2].x)/6,(-f[0].y+6*f[1].y+f[2].y)/6,(f[1].x+6*f[2].x-f[3].x)/6,(f[1].y+6*f[2].y-f[3].y)/6,f[2].x,f[2].y])}return d}y=k.prototype;var Q=a.is,C=a._.clone,L=\"hasOwnProperty\",\n", - "N=/,?([a-z]),?/gi,$=parseFloat,F=Math,S=F.PI,X=F.min,W=F.max,ma=F.pow,Z=F.abs;M=n(1);var na=n(),ba=n(0,1),V=a._unit2px;a.path=A;a.path.getTotalLength=M;a.path.getPointAtLength=na;a.path.getSubpath=function(a,b,d){if(1E-6>this.getTotalLength(a)-d)return ba(a,b).end;a=ba(a,d,1);return b?ba(a,b).end:a};y.getTotalLength=function(){if(this.node.getTotalLength)return this.node.getTotalLength()};y.getPointAtLength=function(a){return na(this.attr(\"d\"),a)};y.getSubpath=function(b,d){return a.path.getSubpath(this.attr(\"d\"),\n", - "b,d)};a._.box=w;a.path.findDotsAtSegment=u;a.path.bezierBBox=p;a.path.isPointInsideBBox=b;a.path.isBBoxIntersect=q;a.path.intersection=function(a,b){return l(a,b)};a.path.intersectionNumber=function(a,b){return l(a,b,1)};a.path.isPointInside=function(a,d,e){var h=r(a);return b(h,d,e)&&1==l(a,[[\"M\",d,e],[\"H\",h.x2+10] ],1)%2};a.path.getBBox=r;a.path.get={path:function(a){return a.attr(\"path\")},circle:function(a){a=V(a);return x(a.cx,a.cy,a.r)},ellipse:function(a){a=V(a);return x(a.cx||0,a.cy||0,a.rx,\n", - "a.ry)},rect:function(a){a=V(a);return s(a.x||0,a.y||0,a.width,a.height,a.rx,a.ry)},image:function(a){a=V(a);return s(a.x||0,a.y||0,a.width,a.height)},line:function(a){return\"M\"+[a.attr(\"x1\")||0,a.attr(\"y1\")||0,a.attr(\"x2\"),a.attr(\"y2\")]},polyline:function(a){return\"M\"+a.attr(\"points\")},polygon:function(a){return\"M\"+a.attr(\"points\")+\"z\"},deflt:function(a){a=a.node.getBBox();return s(a.x,a.y,a.width,a.height)}};a.path.toRelative=function(b){var e=A(b),h=String.prototype.toLowerCase;if(e.rel)return d(e.rel);\n", - "a.is(b,\"array\")&&a.is(b&&b[0],\"array\")||(b=a.parsePathString(b));var f=[],l=0,n=0,k=0,p=0,s=0;\"M\"==b[0][0]&&(l=b[0][1],n=b[0][2],k=l,p=n,s++,f.push([\"M\",l,n]));for(var r=b.length;s<r;s++){var q=f[s]=[],x=b[s];if(x[0]!=h.call(x[0]))switch(q[0]=h.call(x[0]),q[0]){case \"a\":q[1]=x[1];q[2]=x[2];q[3]=x[3];q[4]=x[4];q[5]=x[5];q[6]=+(x[6]-l).toFixed(3);q[7]=+(x[7]-n).toFixed(3);break;case \"v\":q[1]=+(x[1]-n).toFixed(3);break;case \"m\":k=x[1],p=x[2];default:for(var c=1,t=x.length;c<t;c++)q[c]=+(x[c]-(c%2?l:\n", - "n)).toFixed(3)}else for(f[s]=[],\"m\"==x[0]&&(k=x[1]+l,p=x[2]+n),q=0,c=x.length;q<c;q++)f[s][q]=x[q];x=f[s].length;switch(f[s][0]){case \"z\":l=k;n=p;break;case \"h\":l+=+f[s][x-1];break;case \"v\":n+=+f[s][x-1];break;default:l+=+f[s][x-2],n+=+f[s][x-1]}}f.toString=z;e.rel=d(f);return f};a.path.toAbsolute=G;a.path.toCubic=I;a.path.map=function(a,b){if(!b)return a;var d,e,h,f,l,n,k;a=I(a);h=0;for(l=a.length;h<l;h++)for(k=a[h],f=1,n=k.length;f<n;f+=2)d=b.x(k[f],k[f+1]),e=b.y(k[f],k[f+1]),k[f]=d,k[f+1]=e;return a};\n", - "a.path.toString=z;a.path.clone=d});C.plugin(function(a,v,y,C){var A=Math.max,w=Math.min,z=function(a){this.items=[];this.bindings={};this.length=0;this.type=\"set\";if(a)for(var f=0,n=a.length;f<n;f++)a[f]&&(this[this.items.length]=this.items[this.items.length]=a[f],this.length++)};v=z.prototype;v.push=function(){for(var a,f,n=0,k=arguments.length;n<k;n++)if(a=arguments[n])f=this.items.length,this[f]=this.items[f]=a,this.length++;return this};v.pop=function(){this.length&&delete this[this.length--];\n", - "return this.items.pop()};v.forEach=function(a,f){for(var n=0,k=this.items.length;n<k&&!1!==a.call(f,this.items[n],n);n++);return this};v.animate=function(d,f,n,u){\"function\"!=typeof n||n.length||(u=n,n=L.linear);d instanceof a._.Animation&&(u=d.callback,n=d.easing,f=n.dur,d=d.attr);var p=arguments;if(a.is(d,\"array\")&&a.is(p[p.length-1],\"array\"))var b=!0;var q,e=function(){q?this.b=q:q=this.b},l=0,r=u&&function(){l++==this.length&&u.call(this)};return this.forEach(function(a,l){k.once(\"snap.animcreated.\"+\n", - "a.id,e);b?p[l]&&a.animate.apply(a,p[l]):a.animate(d,f,n,r)})};v.remove=function(){for(;this.length;)this.pop().remove();return this};v.bind=function(a,f,k){var u={};if(\"function\"==typeof f)this.bindings[a]=f;else{var p=k||a;this.bindings[a]=function(a){u[p]=a;f.attr(u)}}return this};v.attr=function(a){var f={},k;for(k in a)if(this.bindings[k])this.bindings[k](a[k]);else f[k]=a[k];a=0;for(k=this.items.length;a<k;a++)this.items[a].attr(f);return this};v.clear=function(){for(;this.length;)this.pop()};\n", - "v.splice=function(a,f,k){a=0>a?A(this.length+a,0):a;f=A(0,w(this.length-a,f));var u=[],p=[],b=[],q;for(q=2;q<arguments.length;q++)b.push(arguments[q]);for(q=0;q<f;q++)p.push(this[a+q]);for(;q<this.length-a;q++)u.push(this[a+q]);var e=b.length;for(q=0;q<e+u.length;q++)this.items[a+q]=this[a+q]=q<e?b[q]:u[q-e];for(q=this.items.length=this.length-=f-e;this[q];)delete this[q++];return new z(p)};v.exclude=function(a){for(var f=0,k=this.length;f<k;f++)if(this[f]==a)return this.splice(f,1),!0;return!1};\n", - "v.insertAfter=function(a){for(var f=this.items.length;f--;)this.items[f].insertAfter(a);return this};v.getBBox=function(){for(var a=[],f=[],k=[],u=[],p=this.items.length;p--;)if(!this.items[p].removed){var b=this.items[p].getBBox();a.push(b.x);f.push(b.y);k.push(b.x+b.width);u.push(b.y+b.height)}a=w.apply(0,a);f=w.apply(0,f);k=A.apply(0,k);u=A.apply(0,u);return{x:a,y:f,x2:k,y2:u,width:k-a,height:u-f,cx:a+(k-a)/2,cy:f+(u-f)/2}};v.clone=function(a){a=new z;for(var f=0,k=this.items.length;f<k;f++)a.push(this.items[f].clone());\n", - "return a};v.toString=function(){return\"Snap\\u2018s set\"};v.type=\"set\";a.set=function(){var a=new z;arguments.length&&a.push.apply(a,Array.prototype.slice.call(arguments,0));return a}});C.plugin(function(a,v,y,C){function A(a){var b=a[0];switch(b.toLowerCase()){case \"t\":return[b,0,0];case \"m\":return[b,1,0,0,1,0,0];case \"r\":return 4==a.length?[b,0,a[2],a[3] ]:[b,0];case \"s\":return 5==a.length?[b,1,1,a[3],a[4] ]:3==a.length?[b,1,1]:[b,1]}}function w(b,d,f){d=q(d).replace(/\\.{3}|\\u2026/g,b);b=a.parseTransformString(b)||\n", - "[];d=a.parseTransformString(d)||[];for(var k=Math.max(b.length,d.length),p=[],v=[],h=0,w,z,y,I;h<k;h++){y=b[h]||A(d[h]);I=d[h]||A(y);if(y[0]!=I[0]||\"r\"==y[0].toLowerCase()&&(y[2]!=I[2]||y[3]!=I[3])||\"s\"==y[0].toLowerCase()&&(y[3]!=I[3]||y[4]!=I[4])){b=a._.transform2matrix(b,f());d=a._.transform2matrix(d,f());p=[[\"m\",b.a,b.b,b.c,b.d,b.e,b.f] ];v=[[\"m\",d.a,d.b,d.c,d.d,d.e,d.f] ];break}p[h]=[];v[h]=[];w=0;for(z=Math.max(y.length,I.length);w<z;w++)w in y&&(p[h][w]=y[w]),w in I&&(v[h][w]=I[w])}return{from:u(p),\n", - "to:u(v),f:n(p)}}function z(a){return a}function d(a){return function(b){return+b.toFixed(3)+a}}function f(b){return a.rgb(b[0],b[1],b[2])}function n(a){var b=0,d,f,k,n,h,p,q=[];d=0;for(f=a.length;d<f;d++){h=\"[\";p=['\"'+a[d][0]+'\"'];k=1;for(n=a[d].length;k<n;k++)p[k]=\"val[\"+b++ +\"]\";h+=p+\"]\";q[d]=h}return Function(\"val\",\"return Snap.path.toString.call([\"+q+\"])\")}function u(a){for(var b=[],d=0,f=a.length;d<f;d++)for(var k=1,n=a[d].length;k<n;k++)b.push(a[d][k]);return b}var p={},b=/[a-z]+$/i,q=String;\n", - "p.stroke=p.fill=\"colour\";v.prototype.equal=function(a,b){return k(\"snap.util.equal\",this,a,b).firstDefined()};k.on(\"snap.util.equal\",function(e,k){var r,s;r=q(this.attr(e)||\"\");var x=this;if(r==+r&&k==+k)return{from:+r,to:+k,f:z};if(\"colour\"==p[e])return r=a.color(r),s=a.color(k),{from:[r.r,r.g,r.b,r.opacity],to:[s.r,s.g,s.b,s.opacity],f:f};if(\"transform\"==e||\"gradientTransform\"==e||\"patternTransform\"==e)return k instanceof a.Matrix&&(k=k.toTransformString()),a._.rgTransform.test(k)||(k=a._.svgTransform2string(k)),\n", - "w(r,k,function(){return x.getBBox(1)});if(\"d\"==e||\"path\"==e)return r=a.path.toCubic(r,k),{from:u(r[0]),to:u(r[1]),f:n(r[0])};if(\"points\"==e)return r=q(r).split(a._.separator),s=q(k).split(a._.separator),{from:r,to:s,f:function(a){return a}};aUnit=r.match(b);s=q(k).match(b);return aUnit&&aUnit==s?{from:parseFloat(r),to:parseFloat(k),f:d(aUnit)}:{from:this.asPX(e),to:this.asPX(e,k),f:z}})});C.plugin(function(a,v,y,C){var A=v.prototype,w=\"createTouch\"in C.doc;v=\"click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel\".split(\" \");\n", - "var z={mousedown:\"touchstart\",mousemove:\"touchmove\",mouseup:\"touchend\"},d=function(a,b){var d=\"y\"==a?\"scrollTop\":\"scrollLeft\",e=b&&b.node?b.node.ownerDocument:C.doc;return e[d in e.documentElement?\"documentElement\":\"body\"][d]},f=function(){this.returnValue=!1},n=function(){return this.originalEvent.preventDefault()},u=function(){this.cancelBubble=!0},p=function(){return this.originalEvent.stopPropagation()},b=function(){if(C.doc.addEventListener)return function(a,b,e,f){var k=w&&z[b]?z[b]:b,l=function(k){var l=\n", - "d(\"y\",f),q=d(\"x\",f);if(w&&z.hasOwnProperty(b))for(var r=0,u=k.targetTouches&&k.targetTouches.length;r<u;r++)if(k.targetTouches[r].target==a||a.contains(k.targetTouches[r].target)){u=k;k=k.targetTouches[r];k.originalEvent=u;k.preventDefault=n;k.stopPropagation=p;break}return e.call(f,k,k.clientX+q,k.clientY+l)};b!==k&&a.addEventListener(b,l,!1);a.addEventListener(k,l,!1);return function(){b!==k&&a.removeEventListener(b,l,!1);a.removeEventListener(k,l,!1);return!0}};if(C.doc.attachEvent)return function(a,\n", - "b,e,h){var k=function(a){a=a||h.node.ownerDocument.window.event;var b=d(\"y\",h),k=d(\"x\",h),k=a.clientX+k,b=a.clientY+b;a.preventDefault=a.preventDefault||f;a.stopPropagation=a.stopPropagation||u;return e.call(h,a,k,b)};a.attachEvent(\"on\"+b,k);return function(){a.detachEvent(\"on\"+b,k);return!0}}}(),q=[],e=function(a){for(var b=a.clientX,e=a.clientY,f=d(\"y\"),l=d(\"x\"),n,p=q.length;p--;){n=q[p];if(w)for(var r=a.touches&&a.touches.length,u;r--;){if(u=a.touches[r],u.identifier==n.el._drag.id||n.el.node.contains(u.target)){b=\n", - "u.clientX;e=u.clientY;(a.originalEvent?a.originalEvent:a).preventDefault();break}}else a.preventDefault();b+=l;e+=f;k(\"snap.drag.move.\"+n.el.id,n.move_scope||n.el,b-n.el._drag.x,e-n.el._drag.y,b,e,a)}},l=function(b){a.unmousemove(e).unmouseup(l);for(var d=q.length,f;d--;)f=q[d],f.el._drag={},k(\"snap.drag.end.\"+f.el.id,f.end_scope||f.start_scope||f.move_scope||f.el,b);q=[]};for(y=v.length;y--;)(function(d){a[d]=A[d]=function(e,f){a.is(e,\"function\")&&(this.events=this.events||[],this.events.push({name:d,\n", - "f:e,unbind:b(this.node||document,d,e,f||this)}));return this};a[\"un\"+d]=A[\"un\"+d]=function(a){for(var b=this.events||[],e=b.length;e--;)if(b[e].name==d&&(b[e].f==a||!a)){b[e].unbind();b.splice(e,1);!b.length&&delete this.events;break}return this}})(v[y]);A.hover=function(a,b,d,e){return this.mouseover(a,d).mouseout(b,e||d)};A.unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};var r=[];A.drag=function(b,d,f,h,n,p){function u(r,v,w){(r.originalEvent||r).preventDefault();this._drag.x=v;\n", - "this._drag.y=w;this._drag.id=r.identifier;!q.length&&a.mousemove(e).mouseup(l);q.push({el:this,move_scope:h,start_scope:n,end_scope:p});d&&k.on(\"snap.drag.start.\"+this.id,d);b&&k.on(\"snap.drag.move.\"+this.id,b);f&&k.on(\"snap.drag.end.\"+this.id,f);k(\"snap.drag.start.\"+this.id,n||h||this,v,w,r)}if(!arguments.length){var v;return this.drag(function(a,b){this.attr({transform:v+(v?\"T\":\"t\")+[a,b]})},function(){v=this.transform().local})}this._drag={};r.push({el:this,start:u});this.mousedown(u);return this};\n", - "A.undrag=function(){for(var b=r.length;b--;)r[b].el==this&&(this.unmousedown(r[b].start),r.splice(b,1),k.unbind(\"snap.drag.*.\"+this.id));!r.length&&a.unmousemove(e).unmouseup(l);return this}});C.plugin(function(a,v,y,C){y=y.prototype;var A=/^\\s*url\\((.+)\\)/,w=String,z=a._.$;a.filter={};y.filter=function(d){var f=this;\"svg\"!=f.type&&(f=f.paper);d=a.parse(w(d));var k=a._.id(),u=z(\"filter\");z(u,{id:k,filterUnits:\"userSpaceOnUse\"});u.appendChild(d.node);f.defs.appendChild(u);return new v(u)};k.on(\"snap.util.getattr.filter\",\n", - "function(){k.stop();var d=z(this.node,\"filter\");if(d)return(d=w(d).match(A))&&a.select(d[1])});k.on(\"snap.util.attr.filter\",function(d){if(d instanceof v&&\"filter\"==d.type){k.stop();var f=d.node.id;f||(z(d.node,{id:d.id}),f=d.id);z(this.node,{filter:a.url(f)})}d&&\"none\"!=d||(k.stop(),this.node.removeAttribute(\"filter\"))});a.filter.blur=function(d,f){null==d&&(d=2);return a.format('<feGaussianBlur stdDeviation=\"{def}\"/>',{def:null==f?d:[d,f]})};a.filter.blur.toString=function(){return this()};a.filter.shadow=\n", - "function(d,f,k,u,p){\"string\"==typeof k&&(p=u=k,k=4);\"string\"!=typeof u&&(p=u,u=\"#000\");null==k&&(k=4);null==p&&(p=1);null==d&&(d=0,f=2);null==f&&(f=d);u=a.color(u||\"#000\");return a.format('<feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"{blur}\"/><feOffset dx=\"{dx}\" dy=\"{dy}\" result=\"offsetblur\"/><feFlood flood-color=\"{color}\"/><feComposite in2=\"offsetblur\" operator=\"in\"/><feComponentTransfer><feFuncA type=\"linear\" slope=\"{opacity}\"/></feComponentTransfer><feMerge><feMergeNode/><feMergeNode in=\"SourceGraphic\"/></feMerge>',\n", - "{color:u,dx:d,dy:f,blur:k,opacity:p})};a.filter.shadow.toString=function(){return this()};a.filter.grayscale=function(d){null==d&&(d=1);return a.format('<feColorMatrix type=\"matrix\" values=\"{a} {b} {c} 0 0 {d} {e} {f} 0 0 {g} {b} {h} 0 0 0 0 0 1 0\"/>',{a:0.2126+0.7874*(1-d),b:0.7152-0.7152*(1-d),c:0.0722-0.0722*(1-d),d:0.2126-0.2126*(1-d),e:0.7152+0.2848*(1-d),f:0.0722-0.0722*(1-d),g:0.2126-0.2126*(1-d),h:0.0722+0.9278*(1-d)})};a.filter.grayscale.toString=function(){return this()};a.filter.sepia=\n", - "function(d){null==d&&(d=1);return a.format('<feColorMatrix type=\"matrix\" values=\"{a} {b} {c} 0 0 {d} {e} {f} 0 0 {g} {h} {i} 0 0 0 0 0 1 0\"/>',{a:0.393+0.607*(1-d),b:0.769-0.769*(1-d),c:0.189-0.189*(1-d),d:0.349-0.349*(1-d),e:0.686+0.314*(1-d),f:0.168-0.168*(1-d),g:0.272-0.272*(1-d),h:0.534-0.534*(1-d),i:0.131+0.869*(1-d)})};a.filter.sepia.toString=function(){return this()};a.filter.saturate=function(d){null==d&&(d=1);return a.format('<feColorMatrix type=\"saturate\" values=\"{amount}\"/>',{amount:1-\n", - "d})};a.filter.saturate.toString=function(){return this()};a.filter.hueRotate=function(d){return a.format('<feColorMatrix type=\"hueRotate\" values=\"{angle}\"/>',{angle:d||0})};a.filter.hueRotate.toString=function(){return this()};a.filter.invert=function(d){null==d&&(d=1);return a.format('<feComponentTransfer><feFuncR type=\"table\" tableValues=\"{amount} {amount2}\"/><feFuncG type=\"table\" tableValues=\"{amount} {amount2}\"/><feFuncB type=\"table\" tableValues=\"{amount} {amount2}\"/></feComponentTransfer>',{amount:d,\n", - "amount2:1-d})};a.filter.invert.toString=function(){return this()};a.filter.brightness=function(d){null==d&&(d=1);return a.format('<feComponentTransfer><feFuncR type=\"linear\" slope=\"{amount}\"/><feFuncG type=\"linear\" slope=\"{amount}\"/><feFuncB type=\"linear\" slope=\"{amount}\"/></feComponentTransfer>',{amount:d})};a.filter.brightness.toString=function(){return this()};a.filter.contrast=function(d){null==d&&(d=1);return a.format('<feComponentTransfer><feFuncR type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/><feFuncG type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/><feFuncB type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/></feComponentTransfer>',\n", - "{amount:d,amount2:0.5-d/2})};a.filter.contrast.toString=function(){return this()}});return C});\n", - "\n", - "]]> </script>\n", - "</svg>\n" - ], - "text/plain": [ - "Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), Compose.UnitBox{Float64,Float64,Float64,Float64}(-1.2, -1.2, 2.4, 2.4, 0.0mm, 0.0mm, 0.0mm, 0.0mm), nothing, nothing, nothing, List([Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.LinePrimitive}(Compose.LinePrimitive[Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.7336812690577271cx, 0.07452033884275187cy), (0.9587434475675298cx, 0.5837719424311117cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.5939976365627901cx, -0.04582735007710087cy), (-0.3430521076701303cx, -0.3028345250667032cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.1555601379977099cx, 0.9668753295263383cy), (0.9034628420105606cx, 0.7102484396038452cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.02239047042214004cx, 0.9384490718536125cy), (-0.5890212884295708cx, 0.5100597506748523cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.9346582680369827cx, -0.9215963984836164cy), (-0.5068209196956146cx, -0.40823398880386785cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.6416325245692052cx, 0.3505950894844485cy), (-0.47028140202337326cx, -0.231916654243468cy)])], Symbol(\"\"))]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(1.2247448713915892mm)]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.8274509803921568,0.8274509803921568,0.8274509803921568,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(1.2247448713915892mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.8274509803921568,0.8274509803921568,0.8274509803921568,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}}(Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}[Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.8462123583126285cx, 0.3291461406369318cy), \"4\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.12547276444632993cx, -0.17433093757190204cy), \"3\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.5295114900041352cx, 0.8385618845650917cy), \"5\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.3057058794258554cx, 0.7242544112642324cy), \"2\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.7207395938662986cx, -0.6649151936437421cy), \"3\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.5559569632962893cx, 0.05933921762049027cy), \"4\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm))], Symbol(\"\"))]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(4.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(1.0,0.0,0.0,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}}(Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}[Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.6924247166252571cx, -0.01883148785631983cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.05902298000827044cx, 1.0cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((1.0cx, 0.6771237691301835cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-1.0cx, -1.0cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-0.6704347388599813cx, 0.4485088225284648cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-0.4414791877325972cx, -0.32983038728748426cy), 0.04082482904638631w)], Symbol(\"\"))]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(0.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.25098039215686274,0.8784313725490196,0.8156862745098039,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}}(Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}[Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.6924247166252571cx, -0.01883148785631983cy), \"1\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.05902298000827044cx, 1.0cy), \"2\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((1.0cx, 0.6771237691301835cy), \"3\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-1.0cx, -1.0cy), \"4\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.6704347388599813cx, 0.4485088225284648cy), \"5\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.4414791877325972cx, -0.32983038728748426cy), \"6\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm))], Symbol(\"\"))]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(4.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\"))]), List([]), List([]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\"))" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/svg+xml": [ - "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n", - "<svg xmlns=\"http://www.w3.org/2000/svg\"\n", - " xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n", - " version=\"1.2\"\n", - " width=\"141.42mm\" height=\"100mm\" viewBox=\"0 0 141.42 100\"\n", - " stroke=\"none\"\n", - " fill=\"#000000\"\n", - " stroke-width=\"0.3\"\n", - " font-size=\"3.88\"\n", - ">\n", - "<defs>\n", - " <marker id=\"arrow\" markerWidth=\"15\" markerHeight=\"7\" refX=\"5\" refY=\"3.5\" orient=\"auto\" markerUnits=\"strokeWidth\">\n", - " <path d=\"M0,0 L15,3.5 L0,7 z\" stroke=\"context-stroke\" fill=\"context-stroke\"/>\n", - " </marker>\n", - "</defs>\n", - "<g stroke-width=\"1.22\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#D3D3D3\" id=\"img-510d387c-1\">\n", - " <g transform=\"translate(104.85,21.3)\">\n", - " <path fill=\"none\" d=\"M19.95,10.43 L-19.95,-10.43 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(125.12,55.05)\">\n", - " <path fill=\"none\" d=\"M3.6,-16.59 L-3.6,16.59 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(50.44,16.25)\">\n", - " <path fill=\"none\" d=\"M-23.99,6.41 L23.99,-6.41 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(16.3,44.95)\">\n", - " <path fill=\"none\" d=\"M3.61,-16.59 L-3.61,16.59 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(36.57,78.7)\">\n", - " <path fill=\"none\" d=\"M19.95,10.43 L-19.95,-10.43 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(90.98,83.75)\">\n", - " <path fill=\"none\" d=\"M-23.99,6.41 L23.99,-6.41 \" class=\"primitive\"/>\n", - " </g>\n", - "</g>\n", - "<g stroke-width=\"1.22\" stroke=\"#D3D3D3\" id=\"img-510d387c-2\">\n", - "</g>\n", - "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#FF0000\" id=\"img-510d387c-3\">\n", - " <g transform=\"translate(104.85,21.3)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">4</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(125.12,55.05)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(50.44,16.25)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">3</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(16.3,44.95)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">0</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(36.57,78.7)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(90.98,83.75)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n", - " </g>\n", - " </g>\n", - "</g>\n", - "<g stroke-width=\"0\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#40E0D0\" id=\"img-510d387c-4\">\n", - " <g transform=\"translate(129.64,34.26)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(20.82,24.16)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(80.06,8.33)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(61.36,91.67)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(11.79,65.74)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(120.6,75.84)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - "</g>\n", - "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-510d387c-5\">\n", - " <g transform=\"translate(129.64,34.26)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(20.82,24.16)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">2</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(80.06,8.33)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">3</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(61.36,91.67)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">4</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(11.79,65.74)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(120.6,75.84)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">6</text>\n", - " </g>\n", - " </g>\n", - "</g>\n", - "</svg>\n" - ], - "text/html": [ - "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n", - "<svg xmlns=\"http://www.w3.org/2000/svg\"\n", - " xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n", - " version=\"1.2\"\n", - " width=\"141.42mm\" height=\"100mm\" viewBox=\"0 0 141.42 100\"\n", - " stroke=\"none\"\n", - " fill=\"#000000\"\n", - " stroke-width=\"0.3\"\n", - " font-size=\"3.88\"\n", - "\n", - " id=\"img-72d82fc5\">\n", - "<defs>\n", - " <marker id=\"arrow\" markerWidth=\"15\" markerHeight=\"7\" refX=\"5\" refY=\"3.5\" orient=\"auto\" markerUnits=\"strokeWidth\">\n", - " <path d=\"M0,0 L15,3.5 L0,7 z\" stroke=\"context-stroke\" fill=\"context-stroke\"/>\n", - " </marker>\n", - "</defs>\n", - "<g stroke-width=\"1.22\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#D3D3D3\" id=\"img-72d82fc5-1\">\n", - " <g transform=\"translate(104.85,21.3)\">\n", - " <path fill=\"none\" d=\"M19.95,10.43 L-19.95,-10.43 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(125.12,55.05)\">\n", - " <path fill=\"none\" d=\"M3.6,-16.59 L-3.6,16.59 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(50.44,16.25)\">\n", - " <path fill=\"none\" d=\"M-23.99,6.41 L23.99,-6.41 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(16.3,44.95)\">\n", - " <path fill=\"none\" d=\"M3.61,-16.59 L-3.61,16.59 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(36.57,78.7)\">\n", - " <path fill=\"none\" d=\"M19.95,10.43 L-19.95,-10.43 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(90.98,83.75)\">\n", - " <path fill=\"none\" d=\"M-23.99,6.41 L23.99,-6.41 \" class=\"primitive\"/>\n", - " </g>\n", - "</g>\n", - "<g stroke-width=\"1.22\" stroke=\"#D3D3D3\" id=\"img-72d82fc5-2\">\n", - "</g>\n", - "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#FF0000\" id=\"img-72d82fc5-3\">\n", - " <g transform=\"translate(104.85,21.3)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">4</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(125.12,55.05)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(50.44,16.25)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">3</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(16.3,44.95)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">0</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(36.57,78.7)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(90.98,83.75)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n", - " </g>\n", - " </g>\n", - "</g>\n", - "<g stroke-width=\"0\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#40E0D0\" id=\"img-72d82fc5-4\">\n", - " <g transform=\"translate(129.64,34.26)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(20.82,24.16)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(80.06,8.33)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(61.36,91.67)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(11.79,65.74)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(120.6,75.84)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", - " </g>\n", - "</g>\n", - "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-72d82fc5-5\">\n", - " <g transform=\"translate(129.64,34.26)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(20.82,24.16)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">2</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(80.06,8.33)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">3</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(61.36,91.67)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">4</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(11.79,65.74)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(120.6,75.84)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">6</text>\n", - " </g>\n", - " </g>\n", - "</g>\n", - "<script> <![CDATA[\n", - "(function(N){var k=/[\\.\\/]/,L=/\\s*,\\s*/,C=function(a,d){return a-d},a,v,y={n:{}},M=function(){for(var a=0,d=this.length;a<d;a++)if(\"undefined\"!=typeof this[a])return this[a]},A=function(){for(var a=this.length;--a;)if(\"undefined\"!=typeof this[a])return this[a]},w=function(k,d){k=String(k);var f=v,n=Array.prototype.slice.call(arguments,2),u=w.listeners(k),p=0,b,q=[],e={},l=[],r=a;l.firstDefined=M;l.lastDefined=A;a=k;for(var s=v=0,x=u.length;s<x;s++)\"zIndex\"in u[s]&&(q.push(u[s].zIndex),0>u[s].zIndex&&\n", - "(e[u[s].zIndex]=u[s]));for(q.sort(C);0>q[p];)if(b=e[q[p++] ],l.push(b.apply(d,n)),v)return v=f,l;for(s=0;s<x;s++)if(b=u[s],\"zIndex\"in b)if(b.zIndex==q[p]){l.push(b.apply(d,n));if(v)break;do if(p++,(b=e[q[p] ])&&l.push(b.apply(d,n)),v)break;while(b)}else e[b.zIndex]=b;else if(l.push(b.apply(d,n)),v)break;v=f;a=r;return l};w._events=y;w.listeners=function(a){a=a.split(k);var d=y,f,n,u,p,b,q,e,l=[d],r=[];u=0;for(p=a.length;u<p;u++){e=[];b=0;for(q=l.length;b<q;b++)for(d=l[b].n,f=[d[a[u] ],d[\"*\"] ],n=2;n--;)if(d=\n", - "f[n])e.push(d),r=r.concat(d.f||[]);l=e}return r};w.on=function(a,d){a=String(a);if(\"function\"!=typeof d)return function(){};for(var f=a.split(L),n=0,u=f.length;n<u;n++)(function(a){a=a.split(k);for(var b=y,f,e=0,l=a.length;e<l;e++)b=b.n,b=b.hasOwnProperty(a[e])&&b[a[e] ]||(b[a[e] ]={n:{}});b.f=b.f||[];e=0;for(l=b.f.length;e<l;e++)if(b.f[e]==d){f=!0;break}!f&&b.f.push(d)})(f[n]);return function(a){+a==+a&&(d.zIndex=+a)}};w.f=function(a){var d=[].slice.call(arguments,1);return function(){w.apply(null,\n", - "[a,null].concat(d).concat([].slice.call(arguments,0)))}};w.stop=function(){v=1};w.nt=function(k){return k?(new RegExp(\"(?:\\\\.|\\\\/|^)\"+k+\"(?:\\\\.|\\\\/|$)\")).test(a):a};w.nts=function(){return a.split(k)};w.off=w.unbind=function(a,d){if(a){var f=a.split(L);if(1<f.length)for(var n=0,u=f.length;n<u;n++)w.off(f[n],d);else{for(var f=a.split(k),p,b,q,e,l=[y],n=0,u=f.length;n<u;n++)for(e=0;e<l.length;e+=q.length-2){q=[e,1];p=l[e].n;if(\"*\"!=f[n])p[f[n] ]&&q.push(p[f[n] ]);else for(b in p)p.hasOwnProperty(b)&&\n", - "q.push(p[b]);l.splice.apply(l,q)}n=0;for(u=l.length;n<u;n++)for(p=l[n];p.n;){if(d){if(p.f){e=0;for(f=p.f.length;e<f;e++)if(p.f[e]==d){p.f.splice(e,1);break}!p.f.length&&delete p.f}for(b in p.n)if(p.n.hasOwnProperty(b)&&p.n[b].f){q=p.n[b].f;e=0;for(f=q.length;e<f;e++)if(q[e]==d){q.splice(e,1);break}!q.length&&delete p.n[b].f}}else for(b in delete p.f,p.n)p.n.hasOwnProperty(b)&&p.n[b].f&&delete p.n[b].f;p=p.n}}}else w._events=y={n:{}}};w.once=function(a,d){var f=function(){w.unbind(a,f);return d.apply(this,\n", - "arguments)};return w.on(a,f)};w.version=\"0.4.2\";w.toString=function(){return\"You are running Eve 0.4.2\"};\"undefined\"!=typeof module&&module.exports?module.exports=w:\"function\"===typeof define&&define.amd?define(\"eve\",[],function(){return w}):N.eve=w})(this);\n", - "(function(N,k){\"function\"===typeof define&&define.amd?define(\"Snap.svg\",[\"eve\"],function(L){return k(N,L)}):k(N,N.eve)})(this,function(N,k){var L=function(a){var k={},y=N.requestAnimationFrame||N.webkitRequestAnimationFrame||N.mozRequestAnimationFrame||N.oRequestAnimationFrame||N.msRequestAnimationFrame||function(a){setTimeout(a,16)},M=Array.isArray||function(a){return a instanceof Array||\"[object Array]\"==Object.prototype.toString.call(a)},A=0,w=\"M\"+(+new Date).toString(36),z=function(a){if(null==\n", - "a)return this.s;var b=this.s-a;this.b+=this.dur*b;this.B+=this.dur*b;this.s=a},d=function(a){if(null==a)return this.spd;this.spd=a},f=function(a){if(null==a)return this.dur;this.s=this.s*a/this.dur;this.dur=a},n=function(){delete k[this.id];this.update();a(\"mina.stop.\"+this.id,this)},u=function(){this.pdif||(delete k[this.id],this.update(),this.pdif=this.get()-this.b)},p=function(){this.pdif&&(this.b=this.get()-this.pdif,delete this.pdif,k[this.id]=this)},b=function(){var a;if(M(this.start)){a=[];\n", - "for(var b=0,e=this.start.length;b<e;b++)a[b]=+this.start[b]+(this.end[b]-this.start[b])*this.easing(this.s)}else a=+this.start+(this.end-this.start)*this.easing(this.s);this.set(a)},q=function(){var l=0,b;for(b in k)if(k.hasOwnProperty(b)){var e=k[b],f=e.get();l++;e.s=(f-e.b)/(e.dur/e.spd);1<=e.s&&(delete k[b],e.s=1,l--,function(b){setTimeout(function(){a(\"mina.finish.\"+b.id,b)})}(e));e.update()}l&&y(q)},e=function(a,r,s,x,G,h,J){a={id:w+(A++).toString(36),start:a,end:r,b:s,s:0,dur:x-s,spd:1,get:G,\n", - "set:h,easing:J||e.linear,status:z,speed:d,duration:f,stop:n,pause:u,resume:p,update:b};k[a.id]=a;r=0;for(var K in k)if(k.hasOwnProperty(K)&&(r++,2==r))break;1==r&&y(q);return a};e.time=Date.now||function(){return+new Date};e.getById=function(a){return k[a]||null};e.linear=function(a){return a};e.easeout=function(a){return Math.pow(a,1.7)};e.easein=function(a){return Math.pow(a,0.48)};e.easeinout=function(a){if(1==a)return 1;if(0==a)return 0;var b=0.48-a/1.04,e=Math.sqrt(0.1734+b*b);a=e-b;a=Math.pow(Math.abs(a),\n", - "1/3)*(0>a?-1:1);b=-e-b;b=Math.pow(Math.abs(b),1/3)*(0>b?-1:1);a=a+b+0.5;return 3*(1-a)*a*a+a*a*a};e.backin=function(a){return 1==a?1:a*a*(2.70158*a-1.70158)};e.backout=function(a){if(0==a)return 0;a-=1;return a*a*(2.70158*a+1.70158)+1};e.elastic=function(a){return a==!!a?a:Math.pow(2,-10*a)*Math.sin(2*(a-0.075)*Math.PI/0.3)+1};e.bounce=function(a){a<1/2.75?a*=7.5625*a:a<2/2.75?(a-=1.5/2.75,a=7.5625*a*a+0.75):a<2.5/2.75?(a-=2.25/2.75,a=7.5625*a*a+0.9375):(a-=2.625/2.75,a=7.5625*a*a+0.984375);return a};\n", - "return N.mina=e}(\"undefined\"==typeof k?function(){}:k),C=function(){function a(c,t){if(c){if(c.tagName)return x(c);if(y(c,\"array\")&&a.set)return a.set.apply(a,c);if(c instanceof e)return c;if(null==t)return c=G.doc.querySelector(c),x(c)}return new s(null==c?\"100%\":c,null==t?\"100%\":t)}function v(c,a){if(a){\"#text\"==c&&(c=G.doc.createTextNode(a.text||\"\"));\"string\"==typeof c&&(c=v(c));if(\"string\"==typeof a)return\"xlink:\"==a.substring(0,6)?c.getAttributeNS(m,a.substring(6)):\"xml:\"==a.substring(0,4)?c.getAttributeNS(la,\n", - "a.substring(4)):c.getAttribute(a);for(var da in a)if(a[h](da)){var b=J(a[da]);b?\"xlink:\"==da.substring(0,6)?c.setAttributeNS(m,da.substring(6),b):\"xml:\"==da.substring(0,4)?c.setAttributeNS(la,da.substring(4),b):c.setAttribute(da,b):c.removeAttribute(da)}}else c=G.doc.createElementNS(la,c);return c}function y(c,a){a=J.prototype.toLowerCase.call(a);return\"finite\"==a?isFinite(c):\"array\"==a&&(c instanceof Array||Array.isArray&&Array.isArray(c))?!0:\"null\"==a&&null===c||a==typeof c&&null!==c||\"object\"==\n", - "a&&c===Object(c)||$.call(c).slice(8,-1).toLowerCase()==a}function M(c){if(\"function\"==typeof c||Object(c)!==c)return c;var a=new c.constructor,b;for(b in c)c[h](b)&&(a[b]=M(c[b]));return a}function A(c,a,b){function m(){var e=Array.prototype.slice.call(arguments,0),f=e.join(\"\\u2400\"),d=m.cache=m.cache||{},l=m.count=m.count||[];if(d[h](f)){a:for(var e=l,l=f,B=0,H=e.length;B<H;B++)if(e[B]===l){e.push(e.splice(B,1)[0]);break a}return b?b(d[f]):d[f]}1E3<=l.length&&delete d[l.shift()];l.push(f);d[f]=c.apply(a,\n", - "e);return b?b(d[f]):d[f]}return m}function w(c,a,b,m,e,f){return null==e?(c-=b,a-=m,c||a?(180*I.atan2(-a,-c)/C+540)%360:0):w(c,a,e,f)-w(b,m,e,f)}function z(c){return c%360*C/180}function d(c){var a=[];c=c.replace(/(?:^|\\s)(\\w+)\\(([^)]+)\\)/g,function(c,b,m){m=m.split(/\\s*,\\s*|\\s+/);\"rotate\"==b&&1==m.length&&m.push(0,0);\"scale\"==b&&(2<m.length?m=m.slice(0,2):2==m.length&&m.push(0,0),1==m.length&&m.push(m[0],0,0));\"skewX\"==b?a.push([\"m\",1,0,I.tan(z(m[0])),1,0,0]):\"skewY\"==b?a.push([\"m\",1,I.tan(z(m[0])),\n", - "0,1,0,0]):a.push([b.charAt(0)].concat(m));return c});return a}function f(c,t){var b=O(c),m=new a.Matrix;if(b)for(var e=0,f=b.length;e<f;e++){var h=b[e],d=h.length,B=J(h[0]).toLowerCase(),H=h[0]!=B,l=H?m.invert():0,E;\"t\"==B&&2==d?m.translate(h[1],0):\"t\"==B&&3==d?H?(d=l.x(0,0),B=l.y(0,0),H=l.x(h[1],h[2]),l=l.y(h[1],h[2]),m.translate(H-d,l-B)):m.translate(h[1],h[2]):\"r\"==B?2==d?(E=E||t,m.rotate(h[1],E.x+E.width/2,E.y+E.height/2)):4==d&&(H?(H=l.x(h[2],h[3]),l=l.y(h[2],h[3]),m.rotate(h[1],H,l)):m.rotate(h[1],\n", - "h[2],h[3])):\"s\"==B?2==d||3==d?(E=E||t,m.scale(h[1],h[d-1],E.x+E.width/2,E.y+E.height/2)):4==d?H?(H=l.x(h[2],h[3]),l=l.y(h[2],h[3]),m.scale(h[1],h[1],H,l)):m.scale(h[1],h[1],h[2],h[3]):5==d&&(H?(H=l.x(h[3],h[4]),l=l.y(h[3],h[4]),m.scale(h[1],h[2],H,l)):m.scale(h[1],h[2],h[3],h[4])):\"m\"==B&&7==d&&m.add(h[1],h[2],h[3],h[4],h[5],h[6])}return m}function n(c,t){if(null==t){var m=!0;t=\"linearGradient\"==c.type||\"radialGradient\"==c.type?c.node.getAttribute(\"gradientTransform\"):\"pattern\"==c.type?c.node.getAttribute(\"patternTransform\"):\n", - "c.node.getAttribute(\"transform\");if(!t)return new a.Matrix;t=d(t)}else t=a._.rgTransform.test(t)?J(t).replace(/\\.{3}|\\u2026/g,c._.transform||aa):d(t),y(t,\"array\")&&(t=a.path?a.path.toString.call(t):J(t)),c._.transform=t;var b=f(t,c.getBBox(1));if(m)return b;c.matrix=b}function u(c){c=c.node.ownerSVGElement&&x(c.node.ownerSVGElement)||c.node.parentNode&&x(c.node.parentNode)||a.select(\"svg\")||a(0,0);var t=c.select(\"defs\"),t=null==t?!1:t.node;t||(t=r(\"defs\",c.node).node);return t}function p(c){return c.node.ownerSVGElement&&\n", - "x(c.node.ownerSVGElement)||a.select(\"svg\")}function b(c,a,m){function b(c){if(null==c)return aa;if(c==+c)return c;v(B,{width:c});try{return B.getBBox().width}catch(a){return 0}}function h(c){if(null==c)return aa;if(c==+c)return c;v(B,{height:c});try{return B.getBBox().height}catch(a){return 0}}function e(b,B){null==a?d[b]=B(c.attr(b)||0):b==a&&(d=B(null==m?c.attr(b)||0:m))}var f=p(c).node,d={},B=f.querySelector(\".svg---mgr\");B||(B=v(\"rect\"),v(B,{x:-9E9,y:-9E9,width:10,height:10,\"class\":\"svg---mgr\",\n", - "fill:\"none\"}),f.appendChild(B));switch(c.type){case \"rect\":e(\"rx\",b),e(\"ry\",h);case \"image\":e(\"width\",b),e(\"height\",h);case \"text\":e(\"x\",b);e(\"y\",h);break;case \"circle\":e(\"cx\",b);e(\"cy\",h);e(\"r\",b);break;case \"ellipse\":e(\"cx\",b);e(\"cy\",h);e(\"rx\",b);e(\"ry\",h);break;case \"line\":e(\"x1\",b);e(\"x2\",b);e(\"y1\",h);e(\"y2\",h);break;case \"marker\":e(\"refX\",b);e(\"markerWidth\",b);e(\"refY\",h);e(\"markerHeight\",h);break;case \"radialGradient\":e(\"fx\",b);e(\"fy\",h);break;case \"tspan\":e(\"dx\",b);e(\"dy\",h);break;default:e(a,\n", - "b)}f.removeChild(B);return d}function q(c){y(c,\"array\")||(c=Array.prototype.slice.call(arguments,0));for(var a=0,b=0,m=this.node;this[a];)delete this[a++];for(a=0;a<c.length;a++)\"set\"==c[a].type?c[a].forEach(function(c){m.appendChild(c.node)}):m.appendChild(c[a].node);for(var h=m.childNodes,a=0;a<h.length;a++)this[b++]=x(h[a]);return this}function e(c){if(c.snap in E)return E[c.snap];var a=this.id=V(),b;try{b=c.ownerSVGElement}catch(m){}this.node=c;b&&(this.paper=new s(b));this.type=c.tagName;this.anims=\n", - "{};this._={transform:[]};c.snap=a;E[a]=this;\"g\"==this.type&&(this.add=q);if(this.type in{g:1,mask:1,pattern:1})for(var e in s.prototype)s.prototype[h](e)&&(this[e]=s.prototype[e])}function l(c){this.node=c}function r(c,a){var b=v(c);a.appendChild(b);return x(b)}function s(c,a){var b,m,f,d=s.prototype;if(c&&\"svg\"==c.tagName){if(c.snap in E)return E[c.snap];var l=c.ownerDocument;b=new e(c);m=c.getElementsByTagName(\"desc\")[0];f=c.getElementsByTagName(\"defs\")[0];m||(m=v(\"desc\"),m.appendChild(l.createTextNode(\"Created with Snap\")),\n", - "b.node.appendChild(m));f||(f=v(\"defs\"),b.node.appendChild(f));b.defs=f;for(var ca in d)d[h](ca)&&(b[ca]=d[ca]);b.paper=b.root=b}else b=r(\"svg\",G.doc.body),v(b.node,{height:a,version:1.1,width:c,xmlns:la});return b}function x(c){return!c||c instanceof e||c instanceof l?c:c.tagName&&\"svg\"==c.tagName.toLowerCase()?new s(c):c.tagName&&\"object\"==c.tagName.toLowerCase()&&\"image/svg+xml\"==c.type?new s(c.contentDocument.getElementsByTagName(\"svg\")[0]):new e(c)}a.version=\"0.3.0\";a.toString=function(){return\"Snap v\"+\n", - "this.version};a._={};var G={win:N,doc:N.document};a._.glob=G;var h=\"hasOwnProperty\",J=String,K=parseFloat,U=parseInt,I=Math,P=I.max,Q=I.min,Y=I.abs,C=I.PI,aa=\"\",$=Object.prototype.toString,F=/^\\s*((#[a-f\\d]{6})|(#[a-f\\d]{3})|rgba?\\(\\s*([\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?(?:\\s*,\\s*[\\d\\.]+%?)?)\\s*\\)|hsba?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?%?)\\s*\\)|hsla?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?%?)\\s*\\))\\s*$/i;a._.separator=\n", - "RegExp(\"[,\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]+\");var S=RegExp(\"[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*\"),X={hs:1,rg:1},W=RegExp(\"([a-z])[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)\",\n", - "\"ig\"),ma=RegExp(\"([rstm])[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)\",\"ig\"),Z=RegExp(\"(-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?)[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*\",\n", - "\"ig\"),na=0,ba=\"S\"+(+new Date).toString(36),V=function(){return ba+(na++).toString(36)},m=\"http://www.w3.org/1999/xlink\",la=\"http://www.w3.org/2000/svg\",E={},ca=a.url=function(c){return\"url('#\"+c+\"')\"};a._.$=v;a._.id=V;a.format=function(){var c=/\\{([^\\}]+)\\}/g,a=/(?:(?:^|\\.)(.+?)(?=\\[|\\.|$|\\()|\\[('|\")(.+?)\\2\\])(\\(\\))?/g,b=function(c,b,m){var h=m;b.replace(a,function(c,a,b,m,t){a=a||m;h&&(a in h&&(h=h[a]),\"function\"==typeof h&&t&&(h=h()))});return h=(null==h||h==m?c:h)+\"\"};return function(a,m){return J(a).replace(c,\n", - "function(c,a){return b(c,a,m)})}}();a._.clone=M;a._.cacher=A;a.rad=z;a.deg=function(c){return 180*c/C%360};a.angle=w;a.is=y;a.snapTo=function(c,a,b){b=y(b,\"finite\")?b:10;if(y(c,\"array\"))for(var m=c.length;m--;){if(Y(c[m]-a)<=b)return c[m]}else{c=+c;m=a%c;if(m<b)return a-m;if(m>c-b)return a-m+c}return a};a.getRGB=A(function(c){if(!c||(c=J(c)).indexOf(\"-\")+1)return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:ka};if(\"none\"==c)return{r:-1,g:-1,b:-1,hex:\"none\",toString:ka};!X[h](c.toLowerCase().substring(0,\n", - "2))&&\"#\"!=c.charAt()&&(c=T(c));if(!c)return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:ka};var b,m,e,f,d;if(c=c.match(F)){c[2]&&(e=U(c[2].substring(5),16),m=U(c[2].substring(3,5),16),b=U(c[2].substring(1,3),16));c[3]&&(e=U((d=c[3].charAt(3))+d,16),m=U((d=c[3].charAt(2))+d,16),b=U((d=c[3].charAt(1))+d,16));c[4]&&(d=c[4].split(S),b=K(d[0]),\"%\"==d[0].slice(-1)&&(b*=2.55),m=K(d[1]),\"%\"==d[1].slice(-1)&&(m*=2.55),e=K(d[2]),\"%\"==d[2].slice(-1)&&(e*=2.55),\"rgba\"==c[1].toLowerCase().slice(0,4)&&(f=K(d[3])),\n", - "d[3]&&\"%\"==d[3].slice(-1)&&(f/=100));if(c[5])return d=c[5].split(S),b=K(d[0]),\"%\"==d[0].slice(-1)&&(b/=100),m=K(d[1]),\"%\"==d[1].slice(-1)&&(m/=100),e=K(d[2]),\"%\"==d[2].slice(-1)&&(e/=100),\"deg\"!=d[0].slice(-3)&&\"\\u00b0\"!=d[0].slice(-1)||(b/=360),\"hsba\"==c[1].toLowerCase().slice(0,4)&&(f=K(d[3])),d[3]&&\"%\"==d[3].slice(-1)&&(f/=100),a.hsb2rgb(b,m,e,f);if(c[6])return d=c[6].split(S),b=K(d[0]),\"%\"==d[0].slice(-1)&&(b/=100),m=K(d[1]),\"%\"==d[1].slice(-1)&&(m/=100),e=K(d[2]),\"%\"==d[2].slice(-1)&&(e/=100),\n", - "\"deg\"!=d[0].slice(-3)&&\"\\u00b0\"!=d[0].slice(-1)||(b/=360),\"hsla\"==c[1].toLowerCase().slice(0,4)&&(f=K(d[3])),d[3]&&\"%\"==d[3].slice(-1)&&(f/=100),a.hsl2rgb(b,m,e,f);b=Q(I.round(b),255);m=Q(I.round(m),255);e=Q(I.round(e),255);f=Q(P(f,0),1);c={r:b,g:m,b:e,toString:ka};c.hex=\"#\"+(16777216|e|m<<8|b<<16).toString(16).slice(1);c.opacity=y(f,\"finite\")?f:1;return c}return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:ka}},a);a.hsb=A(function(c,b,m){return a.hsb2rgb(c,b,m).hex});a.hsl=A(function(c,b,m){return a.hsl2rgb(c,\n", - "b,m).hex});a.rgb=A(function(c,a,b,m){if(y(m,\"finite\")){var e=I.round;return\"rgba(\"+[e(c),e(a),e(b),+m.toFixed(2)]+\")\"}return\"#\"+(16777216|b|a<<8|c<<16).toString(16).slice(1)});var T=function(c){var a=G.doc.getElementsByTagName(\"head\")[0]||G.doc.getElementsByTagName(\"svg\")[0];T=A(function(c){if(\"red\"==c.toLowerCase())return\"rgb(255, 0, 0)\";a.style.color=\"rgb(255, 0, 0)\";a.style.color=c;c=G.doc.defaultView.getComputedStyle(a,aa).getPropertyValue(\"color\");return\"rgb(255, 0, 0)\"==c?null:c});return T(c)},\n", - "qa=function(){return\"hsb(\"+[this.h,this.s,this.b]+\")\"},ra=function(){return\"hsl(\"+[this.h,this.s,this.l]+\")\"},ka=function(){return 1==this.opacity||null==this.opacity?this.hex:\"rgba(\"+[this.r,this.g,this.b,this.opacity]+\")\"},D=function(c,b,m){null==b&&y(c,\"object\")&&\"r\"in c&&\"g\"in c&&\"b\"in c&&(m=c.b,b=c.g,c=c.r);null==b&&y(c,string)&&(m=a.getRGB(c),c=m.r,b=m.g,m=m.b);if(1<c||1<b||1<m)c/=255,b/=255,m/=255;return[c,b,m]},oa=function(c,b,m,e){c=I.round(255*c);b=I.round(255*b);m=I.round(255*m);c={r:c,\n", - "g:b,b:m,opacity:y(e,\"finite\")?e:1,hex:a.rgb(c,b,m),toString:ka};y(e,\"finite\")&&(c.opacity=e);return c};a.color=function(c){var b;y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"b\"in c?(b=a.hsb2rgb(c),c.r=b.r,c.g=b.g,c.b=b.b,c.opacity=1,c.hex=b.hex):y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"l\"in c?(b=a.hsl2rgb(c),c.r=b.r,c.g=b.g,c.b=b.b,c.opacity=1,c.hex=b.hex):(y(c,\"string\")&&(c=a.getRGB(c)),y(c,\"object\")&&\"r\"in c&&\"g\"in c&&\"b\"in c&&!(\"error\"in c)?(b=a.rgb2hsl(c),c.h=b.h,c.s=b.s,c.l=b.l,b=a.rgb2hsb(c),c.v=b.b):(c={hex:\"none\"},\n", - "c.r=c.g=c.b=c.h=c.s=c.v=c.l=-1,c.error=1));c.toString=ka;return c};a.hsb2rgb=function(c,a,b,m){y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"b\"in c&&(b=c.b,a=c.s,c=c.h,m=c.o);var e,h,d;c=360*c%360/60;d=b*a;a=d*(1-Y(c%2-1));b=e=h=b-d;c=~~c;b+=[d,a,0,0,a,d][c];e+=[a,d,d,a,0,0][c];h+=[0,0,a,d,d,a][c];return oa(b,e,h,m)};a.hsl2rgb=function(c,a,b,m){y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"l\"in c&&(b=c.l,a=c.s,c=c.h);if(1<c||1<a||1<b)c/=360,a/=100,b/=100;var e,h,d;c=360*c%360/60;d=2*a*(0.5>b?b:1-b);a=d*(1-Y(c%2-1));b=e=\n", - "h=b-d/2;c=~~c;b+=[d,a,0,0,a,d][c];e+=[a,d,d,a,0,0][c];h+=[0,0,a,d,d,a][c];return oa(b,e,h,m)};a.rgb2hsb=function(c,a,b){b=D(c,a,b);c=b[0];a=b[1];b=b[2];var m,e;m=P(c,a,b);e=m-Q(c,a,b);c=((0==e?0:m==c?(a-b)/e:m==a?(b-c)/e+2:(c-a)/e+4)+360)%6*60/360;return{h:c,s:0==e?0:e/m,b:m,toString:qa}};a.rgb2hsl=function(c,a,b){b=D(c,a,b);c=b[0];a=b[1];b=b[2];var m,e,h;m=P(c,a,b);e=Q(c,a,b);h=m-e;c=((0==h?0:m==c?(a-b)/h:m==a?(b-c)/h+2:(c-a)/h+4)+360)%6*60/360;m=(m+e)/2;return{h:c,s:0==h?0:0.5>m?h/(2*m):h/(2-2*\n", - "m),l:m,toString:ra}};a.parsePathString=function(c){if(!c)return null;var b=a.path(c);if(b.arr)return a.path.clone(b.arr);var m={a:7,c:6,o:2,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,u:3,z:0},e=[];y(c,\"array\")&&y(c[0],\"array\")&&(e=a.path.clone(c));e.length||J(c).replace(W,function(c,a,b){var h=[];c=a.toLowerCase();b.replace(Z,function(c,a){a&&h.push(+a)});\"m\"==c&&2<h.length&&(e.push([a].concat(h.splice(0,2))),c=\"l\",a=\"m\"==a?\"l\":\"L\");\"o\"==c&&1==h.length&&e.push([a,h[0] ]);if(\"r\"==c)e.push([a].concat(h));else for(;h.length>=\n", - "m[c]&&(e.push([a].concat(h.splice(0,m[c]))),m[c]););});e.toString=a.path.toString;b.arr=a.path.clone(e);return e};var O=a.parseTransformString=function(c){if(!c)return null;var b=[];y(c,\"array\")&&y(c[0],\"array\")&&(b=a.path.clone(c));b.length||J(c).replace(ma,function(c,a,m){var e=[];a.toLowerCase();m.replace(Z,function(c,a){a&&e.push(+a)});b.push([a].concat(e))});b.toString=a.path.toString;return b};a._.svgTransform2string=d;a._.rgTransform=RegExp(\"^[a-z][\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*-?\\\\.?\\\\d\",\n", - "\"i\");a._.transform2matrix=f;a._unit2px=b;a._.getSomeDefs=u;a._.getSomeSVG=p;a.select=function(c){return x(G.doc.querySelector(c))};a.selectAll=function(c){c=G.doc.querySelectorAll(c);for(var b=(a.set||Array)(),m=0;m<c.length;m++)b.push(x(c[m]));return b};setInterval(function(){for(var c in E)if(E[h](c)){var a=E[c],b=a.node;(\"svg\"!=a.type&&!b.ownerSVGElement||\"svg\"==a.type&&(!b.parentNode||\"ownerSVGElement\"in b.parentNode&&!b.ownerSVGElement))&&delete E[c]}},1E4);(function(c){function m(c){function a(c,\n", - "b){var m=v(c.node,b);(m=(m=m&&m.match(d))&&m[2])&&\"#\"==m.charAt()&&(m=m.substring(1))&&(f[m]=(f[m]||[]).concat(function(a){var m={};m[b]=ca(a);v(c.node,m)}))}function b(c){var a=v(c.node,\"xlink:href\");a&&\"#\"==a.charAt()&&(a=a.substring(1))&&(f[a]=(f[a]||[]).concat(function(a){c.attr(\"xlink:href\",\"#\"+a)}))}var e=c.selectAll(\"*\"),h,d=/^\\s*url\\((\"|'|)(.*)\\1\\)\\s*$/;c=[];for(var f={},l=0,E=e.length;l<E;l++){h=e[l];a(h,\"fill\");a(h,\"stroke\");a(h,\"filter\");a(h,\"mask\");a(h,\"clip-path\");b(h);var t=v(h.node,\n", - "\"id\");t&&(v(h.node,{id:h.id}),c.push({old:t,id:h.id}))}l=0;for(E=c.length;l<E;l++)if(e=f[c[l].old])for(h=0,t=e.length;h<t;h++)e[h](c[l].id)}function e(c,a,b){return function(m){m=m.slice(c,a);1==m.length&&(m=m[0]);return b?b(m):m}}function d(c){return function(){var a=c?\"<\"+this.type:\"\",b=this.node.attributes,m=this.node.childNodes;if(c)for(var e=0,h=b.length;e<h;e++)a+=\" \"+b[e].name+'=\"'+b[e].value.replace(/\"/g,'\\\\\"')+'\"';if(m.length){c&&(a+=\">\");e=0;for(h=m.length;e<h;e++)3==m[e].nodeType?a+=m[e].nodeValue:\n", - "1==m[e].nodeType&&(a+=x(m[e]).toString());c&&(a+=\"</\"+this.type+\">\")}else c&&(a+=\"/>\");return a}}c.attr=function(c,a){if(!c)return this;if(y(c,\"string\"))if(1<arguments.length){var b={};b[c]=a;c=b}else return k(\"snap.util.getattr.\"+c,this).firstDefined();for(var m in c)c[h](m)&&k(\"snap.util.attr.\"+m,this,c[m]);return this};c.getBBox=function(c){if(!a.Matrix||!a.path)return this.node.getBBox();var b=this,m=new a.Matrix;if(b.removed)return a._.box();for(;\"use\"==b.type;)if(c||(m=m.add(b.transform().localMatrix.translate(b.attr(\"x\")||\n", - "0,b.attr(\"y\")||0))),b.original)b=b.original;else var e=b.attr(\"xlink:href\"),b=b.original=b.node.ownerDocument.getElementById(e.substring(e.indexOf(\"#\")+1));var e=b._,h=a.path.get[b.type]||a.path.get.deflt;try{if(c)return e.bboxwt=h?a.path.getBBox(b.realPath=h(b)):a._.box(b.node.getBBox()),a._.box(e.bboxwt);b.realPath=h(b);b.matrix=b.transform().localMatrix;e.bbox=a.path.getBBox(a.path.map(b.realPath,m.add(b.matrix)));return a._.box(e.bbox)}catch(d){return a._.box()}};var f=function(){return this.string};\n", - "c.transform=function(c){var b=this._;if(null==c){var m=this;c=new a.Matrix(this.node.getCTM());for(var e=n(this),h=[e],d=new a.Matrix,l=e.toTransformString(),b=J(e)==J(this.matrix)?J(b.transform):l;\"svg\"!=m.type&&(m=m.parent());)h.push(n(m));for(m=h.length;m--;)d.add(h[m]);return{string:b,globalMatrix:c,totalMatrix:d,localMatrix:e,diffMatrix:c.clone().add(e.invert()),global:c.toTransformString(),total:d.toTransformString(),local:l,toString:f}}c instanceof a.Matrix?this.matrix=c:n(this,c);this.node&&\n", - "(\"linearGradient\"==this.type||\"radialGradient\"==this.type?v(this.node,{gradientTransform:this.matrix}):\"pattern\"==this.type?v(this.node,{patternTransform:this.matrix}):v(this.node,{transform:this.matrix}));return this};c.parent=function(){return x(this.node.parentNode)};c.append=c.add=function(c){if(c){if(\"set\"==c.type){var a=this;c.forEach(function(c){a.add(c)});return this}c=x(c);this.node.appendChild(c.node);c.paper=this.paper}return this};c.appendTo=function(c){c&&(c=x(c),c.append(this));return this};\n", - "c.prepend=function(c){if(c){if(\"set\"==c.type){var a=this,b;c.forEach(function(c){b?b.after(c):a.prepend(c);b=c});return this}c=x(c);var m=c.parent();this.node.insertBefore(c.node,this.node.firstChild);this.add&&this.add();c.paper=this.paper;this.parent()&&this.parent().add();m&&m.add()}return this};c.prependTo=function(c){c=x(c);c.prepend(this);return this};c.before=function(c){if(\"set\"==c.type){var a=this;c.forEach(function(c){var b=c.parent();a.node.parentNode.insertBefore(c.node,a.node);b&&b.add()});\n", - "this.parent().add();return this}c=x(c);var b=c.parent();this.node.parentNode.insertBefore(c.node,this.node);this.parent()&&this.parent().add();b&&b.add();c.paper=this.paper;return this};c.after=function(c){c=x(c);var a=c.parent();this.node.nextSibling?this.node.parentNode.insertBefore(c.node,this.node.nextSibling):this.node.parentNode.appendChild(c.node);this.parent()&&this.parent().add();a&&a.add();c.paper=this.paper;return this};c.insertBefore=function(c){c=x(c);var a=this.parent();c.node.parentNode.insertBefore(this.node,\n", - "c.node);this.paper=c.paper;a&&a.add();c.parent()&&c.parent().add();return this};c.insertAfter=function(c){c=x(c);var a=this.parent();c.node.parentNode.insertBefore(this.node,c.node.nextSibling);this.paper=c.paper;a&&a.add();c.parent()&&c.parent().add();return this};c.remove=function(){var c=this.parent();this.node.parentNode&&this.node.parentNode.removeChild(this.node);delete this.paper;this.removed=!0;c&&c.add();return this};c.select=function(c){return x(this.node.querySelector(c))};c.selectAll=\n", - "function(c){c=this.node.querySelectorAll(c);for(var b=(a.set||Array)(),m=0;m<c.length;m++)b.push(x(c[m]));return b};c.asPX=function(c,a){null==a&&(a=this.attr(c));return+b(this,c,a)};c.use=function(){var c,a=this.node.id;a||(a=this.id,v(this.node,{id:a}));c=\"linearGradient\"==this.type||\"radialGradient\"==this.type||\"pattern\"==this.type?r(this.type,this.node.parentNode):r(\"use\",this.node.parentNode);v(c.node,{\"xlink:href\":\"#\"+a});c.original=this;return c};var l=/\\S+/g;c.addClass=function(c){var a=(c||\n", - "\"\").match(l)||[];c=this.node;var b=c.className.baseVal,m=b.match(l)||[],e,h,d;if(a.length){for(e=0;d=a[e++];)h=m.indexOf(d),~h||m.push(d);a=m.join(\" \");b!=a&&(c.className.baseVal=a)}return this};c.removeClass=function(c){var a=(c||\"\").match(l)||[];c=this.node;var b=c.className.baseVal,m=b.match(l)||[],e,h;if(m.length){for(e=0;h=a[e++];)h=m.indexOf(h),~h&&m.splice(h,1);a=m.join(\" \");b!=a&&(c.className.baseVal=a)}return this};c.hasClass=function(c){return!!~(this.node.className.baseVal.match(l)||[]).indexOf(c)};\n", - "c.toggleClass=function(c,a){if(null!=a)return a?this.addClass(c):this.removeClass(c);var b=(c||\"\").match(l)||[],m=this.node,e=m.className.baseVal,h=e.match(l)||[],d,f,E;for(d=0;E=b[d++];)f=h.indexOf(E),~f?h.splice(f,1):h.push(E);b=h.join(\" \");e!=b&&(m.className.baseVal=b);return this};c.clone=function(){var c=x(this.node.cloneNode(!0));v(c.node,\"id\")&&v(c.node,{id:c.id});m(c);c.insertAfter(this);return c};c.toDefs=function(){u(this).appendChild(this.node);return this};c.pattern=c.toPattern=function(c,\n", - "a,b,m){var e=r(\"pattern\",u(this));null==c&&(c=this.getBBox());y(c,\"object\")&&\"x\"in c&&(a=c.y,b=c.width,m=c.height,c=c.x);v(e.node,{x:c,y:a,width:b,height:m,patternUnits:\"userSpaceOnUse\",id:e.id,viewBox:[c,a,b,m].join(\" \")});e.node.appendChild(this.node);return e};c.marker=function(c,a,b,m,e,h){var d=r(\"marker\",u(this));null==c&&(c=this.getBBox());y(c,\"object\")&&\"x\"in c&&(a=c.y,b=c.width,m=c.height,e=c.refX||c.cx,h=c.refY||c.cy,c=c.x);v(d.node,{viewBox:[c,a,b,m].join(\" \"),markerWidth:b,markerHeight:m,\n", - "orient:\"auto\",refX:e||0,refY:h||0,id:d.id});d.node.appendChild(this.node);return d};var E=function(c,a,b,m){\"function\"!=typeof b||b.length||(m=b,b=L.linear);this.attr=c;this.dur=a;b&&(this.easing=b);m&&(this.callback=m)};a._.Animation=E;a.animation=function(c,a,b,m){return new E(c,a,b,m)};c.inAnim=function(){var c=[],a;for(a in this.anims)this.anims[h](a)&&function(a){c.push({anim:new E(a._attrs,a.dur,a.easing,a._callback),mina:a,curStatus:a.status(),status:function(c){return a.status(c)},stop:function(){a.stop()}})}(this.anims[a]);\n", - "return c};a.animate=function(c,a,b,m,e,h){\"function\"!=typeof e||e.length||(h=e,e=L.linear);var d=L.time();c=L(c,a,d,d+m,L.time,b,e);h&&k.once(\"mina.finish.\"+c.id,h);return c};c.stop=function(){for(var c=this.inAnim(),a=0,b=c.length;a<b;a++)c[a].stop();return this};c.animate=function(c,a,b,m){\"function\"!=typeof b||b.length||(m=b,b=L.linear);c instanceof E&&(m=c.callback,b=c.easing,a=b.dur,c=c.attr);var d=[],f=[],l={},t,ca,n,T=this,q;for(q in c)if(c[h](q)){T.equal?(n=T.equal(q,J(c[q])),t=n.from,ca=\n", - "n.to,n=n.f):(t=+T.attr(q),ca=+c[q]);var la=y(t,\"array\")?t.length:1;l[q]=e(d.length,d.length+la,n);d=d.concat(t);f=f.concat(ca)}t=L.time();var p=L(d,f,t,t+a,L.time,function(c){var a={},b;for(b in l)l[h](b)&&(a[b]=l[b](c));T.attr(a)},b);T.anims[p.id]=p;p._attrs=c;p._callback=m;k(\"snap.animcreated.\"+T.id,p);k.once(\"mina.finish.\"+p.id,function(){delete T.anims[p.id];m&&m.call(T)});k.once(\"mina.stop.\"+p.id,function(){delete T.anims[p.id]});return T};var T={};c.data=function(c,b){var m=T[this.id]=T[this.id]||\n", - "{};if(0==arguments.length)return k(\"snap.data.get.\"+this.id,this,m,null),m;if(1==arguments.length){if(a.is(c,\"object\")){for(var e in c)c[h](e)&&this.data(e,c[e]);return this}k(\"snap.data.get.\"+this.id,this,m[c],c);return m[c]}m[c]=b;k(\"snap.data.set.\"+this.id,this,b,c);return this};c.removeData=function(c){null==c?T[this.id]={}:T[this.id]&&delete T[this.id][c];return this};c.outerSVG=c.toString=d(1);c.innerSVG=d()})(e.prototype);a.parse=function(c){var a=G.doc.createDocumentFragment(),b=!0,m=G.doc.createElement(\"div\");\n", - "c=J(c);c.match(/^\\s*<\\s*svg(?:\\s|>)/)||(c=\"<svg>\"+c+\"</svg>\",b=!1);m.innerHTML=c;if(c=m.getElementsByTagName(\"svg\")[0])if(b)a=c;else for(;c.firstChild;)a.appendChild(c.firstChild);m.innerHTML=aa;return new l(a)};l.prototype.select=e.prototype.select;l.prototype.selectAll=e.prototype.selectAll;a.fragment=function(){for(var c=Array.prototype.slice.call(arguments,0),b=G.doc.createDocumentFragment(),m=0,e=c.length;m<e;m++){var h=c[m];h.node&&h.node.nodeType&&b.appendChild(h.node);h.nodeType&&b.appendChild(h);\n", - "\"string\"==typeof h&&b.appendChild(a.parse(h).node)}return new l(b)};a._.make=r;a._.wrap=x;s.prototype.el=function(c,a){var b=r(c,this.node);a&&b.attr(a);return b};k.on(\"snap.util.getattr\",function(){var c=k.nt(),c=c.substring(c.lastIndexOf(\".\")+1),a=c.replace(/[A-Z]/g,function(c){return\"-\"+c.toLowerCase()});return pa[h](a)?this.node.ownerDocument.defaultView.getComputedStyle(this.node,null).getPropertyValue(a):v(this.node,c)});var pa={\"alignment-baseline\":0,\"baseline-shift\":0,clip:0,\"clip-path\":0,\n", - "\"clip-rule\":0,color:0,\"color-interpolation\":0,\"color-interpolation-filters\":0,\"color-profile\":0,\"color-rendering\":0,cursor:0,direction:0,display:0,\"dominant-baseline\":0,\"enable-background\":0,fill:0,\"fill-opacity\":0,\"fill-rule\":0,filter:0,\"flood-color\":0,\"flood-opacity\":0,font:0,\"font-family\":0,\"font-size\":0,\"font-size-adjust\":0,\"font-stretch\":0,\"font-style\":0,\"font-variant\":0,\"font-weight\":0,\"glyph-orientation-horizontal\":0,\"glyph-orientation-vertical\":0,\"image-rendering\":0,kerning:0,\"letter-spacing\":0,\n", - "\"lighting-color\":0,marker:0,\"marker-end\":0,\"marker-mid\":0,\"marker-start\":0,mask:0,opacity:0,overflow:0,\"pointer-events\":0,\"shape-rendering\":0,\"stop-color\":0,\"stop-opacity\":0,stroke:0,\"stroke-dasharray\":0,\"stroke-dashoffset\":0,\"stroke-linecap\":0,\"stroke-linejoin\":0,\"stroke-miterlimit\":0,\"stroke-opacity\":0,\"stroke-width\":0,\"text-anchor\":0,\"text-decoration\":0,\"text-rendering\":0,\"unicode-bidi\":0,visibility:0,\"word-spacing\":0,\"writing-mode\":0};k.on(\"snap.util.attr\",function(c){var a=k.nt(),b={},a=a.substring(a.lastIndexOf(\".\")+\n", - "1);b[a]=c;var m=a.replace(/-(\\w)/gi,function(c,a){return a.toUpperCase()}),a=a.replace(/[A-Z]/g,function(c){return\"-\"+c.toLowerCase()});pa[h](a)?this.node.style[m]=null==c?aa:c:v(this.node,b)});a.ajax=function(c,a,b,m){var e=new XMLHttpRequest,h=V();if(e){if(y(a,\"function\"))m=b,b=a,a=null;else if(y(a,\"object\")){var d=[],f;for(f in a)a.hasOwnProperty(f)&&d.push(encodeURIComponent(f)+\"=\"+encodeURIComponent(a[f]));a=d.join(\"&\")}e.open(a?\"POST\":\"GET\",c,!0);a&&(e.setRequestHeader(\"X-Requested-With\",\"XMLHttpRequest\"),\n", - "e.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded\"));b&&(k.once(\"snap.ajax.\"+h+\".0\",b),k.once(\"snap.ajax.\"+h+\".200\",b),k.once(\"snap.ajax.\"+h+\".304\",b));e.onreadystatechange=function(){4==e.readyState&&k(\"snap.ajax.\"+h+\".\"+e.status,m,e)};if(4==e.readyState)return e;e.send(a);return e}};a.load=function(c,b,m){a.ajax(c,function(c){c=a.parse(c.responseText);m?b.call(m,c):b(c)})};a.getElementByPoint=function(c,a){var b,m,e=G.doc.elementFromPoint(c,a);if(G.win.opera&&\"svg\"==e.tagName){b=\n", - "e;m=b.getBoundingClientRect();b=b.ownerDocument;var h=b.body,d=b.documentElement;b=m.top+(g.win.pageYOffset||d.scrollTop||h.scrollTop)-(d.clientTop||h.clientTop||0);m=m.left+(g.win.pageXOffset||d.scrollLeft||h.scrollLeft)-(d.clientLeft||h.clientLeft||0);h=e.createSVGRect();h.x=c-m;h.y=a-b;h.width=h.height=1;b=e.getIntersectionList(h,null);b.length&&(e=b[b.length-1])}return e?x(e):null};a.plugin=function(c){c(a,e,s,G,l)};return G.win.Snap=a}();C.plugin(function(a,k,y,M,A){function w(a,d,f,b,q,e){null==\n", - "d&&\"[object SVGMatrix]\"==z.call(a)?(this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.e=a.e,this.f=a.f):null!=a?(this.a=+a,this.b=+d,this.c=+f,this.d=+b,this.e=+q,this.f=+e):(this.a=1,this.c=this.b=0,this.d=1,this.f=this.e=0)}var z=Object.prototype.toString,d=String,f=Math;(function(n){function k(a){return a[0]*a[0]+a[1]*a[1]}function p(a){var d=f.sqrt(k(a));a[0]&&(a[0]/=d);a[1]&&(a[1]/=d)}n.add=function(a,d,e,f,n,p){var k=[[],[],[] ],u=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1] ];d=[[a,\n", - "e,n],[d,f,p],[0,0,1] ];a&&a instanceof w&&(d=[[a.a,a.c,a.e],[a.b,a.d,a.f],[0,0,1] ]);for(a=0;3>a;a++)for(e=0;3>e;e++){for(f=n=0;3>f;f++)n+=u[a][f]*d[f][e];k[a][e]=n}this.a=k[0][0];this.b=k[1][0];this.c=k[0][1];this.d=k[1][1];this.e=k[0][2];this.f=k[1][2];return this};n.invert=function(){var a=this.a*this.d-this.b*this.c;return new w(this.d/a,-this.b/a,-this.c/a,this.a/a,(this.c*this.f-this.d*this.e)/a,(this.b*this.e-this.a*this.f)/a)};n.clone=function(){return new w(this.a,this.b,this.c,this.d,this.e,\n", - "this.f)};n.translate=function(a,d){return this.add(1,0,0,1,a,d)};n.scale=function(a,d,e,f){null==d&&(d=a);(e||f)&&this.add(1,0,0,1,e,f);this.add(a,0,0,d,0,0);(e||f)&&this.add(1,0,0,1,-e,-f);return this};n.rotate=function(b,d,e){b=a.rad(b);d=d||0;e=e||0;var l=+f.cos(b).toFixed(9);b=+f.sin(b).toFixed(9);this.add(l,b,-b,l,d,e);return this.add(1,0,0,1,-d,-e)};n.x=function(a,d){return a*this.a+d*this.c+this.e};n.y=function(a,d){return a*this.b+d*this.d+this.f};n.get=function(a){return+this[d.fromCharCode(97+\n", - "a)].toFixed(4)};n.toString=function(){return\"matrix(\"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+\")\"};n.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]};n.determinant=function(){return this.a*this.d-this.b*this.c};n.split=function(){var b={};b.dx=this.e;b.dy=this.f;var d=[[this.a,this.c],[this.b,this.d] ];b.scalex=f.sqrt(k(d[0]));p(d[0]);b.shear=d[0][0]*d[1][0]+d[0][1]*d[1][1];d[1]=[d[1][0]-d[0][0]*b.shear,d[1][1]-d[0][1]*b.shear];b.scaley=f.sqrt(k(d[1]));\n", - "p(d[1]);b.shear/=b.scaley;0>this.determinant()&&(b.scalex=-b.scalex);var e=-d[0][1],d=d[1][1];0>d?(b.rotate=a.deg(f.acos(d)),0>e&&(b.rotate=360-b.rotate)):b.rotate=a.deg(f.asin(e));b.isSimple=!+b.shear.toFixed(9)&&(b.scalex.toFixed(9)==b.scaley.toFixed(9)||!b.rotate);b.isSuperSimple=!+b.shear.toFixed(9)&&b.scalex.toFixed(9)==b.scaley.toFixed(9)&&!b.rotate;b.noRotation=!+b.shear.toFixed(9)&&!b.rotate;return b};n.toTransformString=function(a){a=a||this.split();if(+a.shear.toFixed(9))return\"m\"+[this.get(0),\n", - "this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)];a.scalex=+a.scalex.toFixed(4);a.scaley=+a.scaley.toFixed(4);a.rotate=+a.rotate.toFixed(4);return(a.dx||a.dy?\"t\"+[+a.dx.toFixed(4),+a.dy.toFixed(4)]:\"\")+(1!=a.scalex||1!=a.scaley?\"s\"+[a.scalex,a.scaley,0,0]:\"\")+(a.rotate?\"r\"+[+a.rotate.toFixed(4),0,0]:\"\")}})(w.prototype);a.Matrix=w;a.matrix=function(a,d,f,b,k,e){return new w(a,d,f,b,k,e)}});C.plugin(function(a,v,y,M,A){function w(h){return function(d){k.stop();d instanceof A&&1==d.node.childNodes.length&&\n", - "(\"radialGradient\"==d.node.firstChild.tagName||\"linearGradient\"==d.node.firstChild.tagName||\"pattern\"==d.node.firstChild.tagName)&&(d=d.node.firstChild,b(this).appendChild(d),d=u(d));if(d instanceof v)if(\"radialGradient\"==d.type||\"linearGradient\"==d.type||\"pattern\"==d.type){d.node.id||e(d.node,{id:d.id});var f=l(d.node.id)}else f=d.attr(h);else f=a.color(d),f.error?(f=a(b(this).ownerSVGElement).gradient(d))?(f.node.id||e(f.node,{id:f.id}),f=l(f.node.id)):f=d:f=r(f);d={};d[h]=f;e(this.node,d);this.node.style[h]=\n", - "x}}function z(a){k.stop();a==+a&&(a+=\"px\");this.node.style.fontSize=a}function d(a){var b=[];a=a.childNodes;for(var e=0,f=a.length;e<f;e++){var l=a[e];3==l.nodeType&&b.push(l.nodeValue);\"tspan\"==l.tagName&&(1==l.childNodes.length&&3==l.firstChild.nodeType?b.push(l.firstChild.nodeValue):b.push(d(l)))}return b}function f(){k.stop();return this.node.style.fontSize}var n=a._.make,u=a._.wrap,p=a.is,b=a._.getSomeDefs,q=/^url\\(#?([^)]+)\\)$/,e=a._.$,l=a.url,r=String,s=a._.separator,x=\"\";k.on(\"snap.util.attr.mask\",\n", - "function(a){if(a instanceof v||a instanceof A){k.stop();a instanceof A&&1==a.node.childNodes.length&&(a=a.node.firstChild,b(this).appendChild(a),a=u(a));if(\"mask\"==a.type)var d=a;else d=n(\"mask\",b(this)),d.node.appendChild(a.node);!d.node.id&&e(d.node,{id:d.id});e(this.node,{mask:l(d.id)})}});(function(a){k.on(\"snap.util.attr.clip\",a);k.on(\"snap.util.attr.clip-path\",a);k.on(\"snap.util.attr.clipPath\",a)})(function(a){if(a instanceof v||a instanceof A){k.stop();if(\"clipPath\"==a.type)var d=a;else d=\n", - "n(\"clipPath\",b(this)),d.node.appendChild(a.node),!d.node.id&&e(d.node,{id:d.id});e(this.node,{\"clip-path\":l(d.id)})}});k.on(\"snap.util.attr.fill\",w(\"fill\"));k.on(\"snap.util.attr.stroke\",w(\"stroke\"));var G=/^([lr])(?:\\(([^)]*)\\))?(.*)$/i;k.on(\"snap.util.grad.parse\",function(a){a=r(a);var b=a.match(G);if(!b)return null;a=b[1];var e=b[2],b=b[3],e=e.split(/\\s*,\\s*/).map(function(a){return+a==a?+a:a});1==e.length&&0==e[0]&&(e=[]);b=b.split(\"-\");b=b.map(function(a){a=a.split(\":\");var b={color:a[0]};a[1]&&\n", - "(b.offset=parseFloat(a[1]));return b});return{type:a,params:e,stops:b}});k.on(\"snap.util.attr.d\",function(b){k.stop();p(b,\"array\")&&p(b[0],\"array\")&&(b=a.path.toString.call(b));b=r(b);b.match(/[ruo]/i)&&(b=a.path.toAbsolute(b));e(this.node,{d:b})})(-1);k.on(\"snap.util.attr.#text\",function(a){k.stop();a=r(a);for(a=M.doc.createTextNode(a);this.node.firstChild;)this.node.removeChild(this.node.firstChild);this.node.appendChild(a)})(-1);k.on(\"snap.util.attr.path\",function(a){k.stop();this.attr({d:a})})(-1);\n", - "k.on(\"snap.util.attr.class\",function(a){k.stop();this.node.className.baseVal=a})(-1);k.on(\"snap.util.attr.viewBox\",function(a){a=p(a,\"object\")&&\"x\"in a?[a.x,a.y,a.width,a.height].join(\" \"):p(a,\"array\")?a.join(\" \"):a;e(this.node,{viewBox:a});k.stop()})(-1);k.on(\"snap.util.attr.transform\",function(a){this.transform(a);k.stop()})(-1);k.on(\"snap.util.attr.r\",function(a){\"rect\"==this.type&&(k.stop(),e(this.node,{rx:a,ry:a}))})(-1);k.on(\"snap.util.attr.textpath\",function(a){k.stop();if(\"text\"==this.type){var d,\n", - "f;if(!a&&this.textPath){for(a=this.textPath;a.node.firstChild;)this.node.appendChild(a.node.firstChild);a.remove();delete this.textPath}else if(p(a,\"string\")?(d=b(this),a=u(d.parentNode).path(a),d.appendChild(a.node),d=a.id,a.attr({id:d})):(a=u(a),a instanceof v&&(d=a.attr(\"id\"),d||(d=a.id,a.attr({id:d})))),d)if(a=this.textPath,f=this.node,a)a.attr({\"xlink:href\":\"#\"+d});else{for(a=e(\"textPath\",{\"xlink:href\":\"#\"+d});f.firstChild;)a.appendChild(f.firstChild);f.appendChild(a);this.textPath=u(a)}}})(-1);\n", - "k.on(\"snap.util.attr.text\",function(a){if(\"text\"==this.type){for(var b=this.node,d=function(a){var b=e(\"tspan\");if(p(a,\"array\"))for(var f=0;f<a.length;f++)b.appendChild(d(a[f]));else b.appendChild(M.doc.createTextNode(a));b.normalize&&b.normalize();return b};b.firstChild;)b.removeChild(b.firstChild);for(a=d(a);a.firstChild;)b.appendChild(a.firstChild)}k.stop()})(-1);k.on(\"snap.util.attr.fontSize\",z)(-1);k.on(\"snap.util.attr.font-size\",z)(-1);k.on(\"snap.util.getattr.transform\",function(){k.stop();\n", - "return this.transform()})(-1);k.on(\"snap.util.getattr.textpath\",function(){k.stop();return this.textPath})(-1);(function(){function b(d){return function(){k.stop();var b=M.doc.defaultView.getComputedStyle(this.node,null).getPropertyValue(\"marker-\"+d);return\"none\"==b?b:a(M.doc.getElementById(b.match(q)[1]))}}function d(a){return function(b){k.stop();var d=\"marker\"+a.charAt(0).toUpperCase()+a.substring(1);if(\"\"==b||!b)this.node.style[d]=\"none\";else if(\"marker\"==b.type){var f=b.node.id;f||e(b.node,{id:b.id});\n", - "this.node.style[d]=l(f)}}}k.on(\"snap.util.getattr.marker-end\",b(\"end\"))(-1);k.on(\"snap.util.getattr.markerEnd\",b(\"end\"))(-1);k.on(\"snap.util.getattr.marker-start\",b(\"start\"))(-1);k.on(\"snap.util.getattr.markerStart\",b(\"start\"))(-1);k.on(\"snap.util.getattr.marker-mid\",b(\"mid\"))(-1);k.on(\"snap.util.getattr.markerMid\",b(\"mid\"))(-1);k.on(\"snap.util.attr.marker-end\",d(\"end\"))(-1);k.on(\"snap.util.attr.markerEnd\",d(\"end\"))(-1);k.on(\"snap.util.attr.marker-start\",d(\"start\"))(-1);k.on(\"snap.util.attr.markerStart\",\n", - "d(\"start\"))(-1);k.on(\"snap.util.attr.marker-mid\",d(\"mid\"))(-1);k.on(\"snap.util.attr.markerMid\",d(\"mid\"))(-1)})();k.on(\"snap.util.getattr.r\",function(){if(\"rect\"==this.type&&e(this.node,\"rx\")==e(this.node,\"ry\"))return k.stop(),e(this.node,\"rx\")})(-1);k.on(\"snap.util.getattr.text\",function(){if(\"text\"==this.type||\"tspan\"==this.type){k.stop();var a=d(this.node);return 1==a.length?a[0]:a}})(-1);k.on(\"snap.util.getattr.#text\",function(){return this.node.textContent})(-1);k.on(\"snap.util.getattr.viewBox\",\n", - "function(){k.stop();var b=e(this.node,\"viewBox\");if(b)return b=b.split(s),a._.box(+b[0],+b[1],+b[2],+b[3])})(-1);k.on(\"snap.util.getattr.points\",function(){var a=e(this.node,\"points\");k.stop();if(a)return a.split(s)})(-1);k.on(\"snap.util.getattr.path\",function(){var a=e(this.node,\"d\");k.stop();return a})(-1);k.on(\"snap.util.getattr.class\",function(){return this.node.className.baseVal})(-1);k.on(\"snap.util.getattr.fontSize\",f)(-1);k.on(\"snap.util.getattr.font-size\",f)(-1)});C.plugin(function(a,v,y,\n", - "M,A){function w(a){return a}function z(a){return function(b){return+b.toFixed(3)+a}}var d={\"+\":function(a,b){return a+b},\"-\":function(a,b){return a-b},\"/\":function(a,b){return a/b},\"*\":function(a,b){return a*b}},f=String,n=/[a-z]+$/i,u=/^\\s*([+\\-\\/*])\\s*=\\s*([\\d.eE+\\-]+)\\s*([^\\d\\s]+)?\\s*$/;k.on(\"snap.util.attr\",function(a){if(a=f(a).match(u)){var b=k.nt(),b=b.substring(b.lastIndexOf(\".\")+1),q=this.attr(b),e={};k.stop();var l=a[3]||\"\",r=q.match(n),s=d[a[1] ];r&&r==l?a=s(parseFloat(q),+a[2]):(q=this.asPX(b),\n", - "a=s(this.asPX(b),this.asPX(b,a[2]+l)));isNaN(q)||isNaN(a)||(e[b]=a,this.attr(e))}})(-10);k.on(\"snap.util.equal\",function(a,b){var q=f(this.attr(a)||\"\"),e=f(b).match(u);if(e){k.stop();var l=e[3]||\"\",r=q.match(n),s=d[e[1] ];if(r&&r==l)return{from:parseFloat(q),to:s(parseFloat(q),+e[2]),f:z(r)};q=this.asPX(a);return{from:q,to:s(q,this.asPX(a,e[2]+l)),f:w}}})(-10)});C.plugin(function(a,v,y,M,A){var w=y.prototype,z=a.is;w.rect=function(a,d,k,p,b,q){var e;null==q&&(q=b);z(a,\"object\")&&\"[object Object]\"==\n", - "a?e=a:null!=a&&(e={x:a,y:d,width:k,height:p},null!=b&&(e.rx=b,e.ry=q));return this.el(\"rect\",e)};w.circle=function(a,d,k){var p;z(a,\"object\")&&\"[object Object]\"==a?p=a:null!=a&&(p={cx:a,cy:d,r:k});return this.el(\"circle\",p)};var d=function(){function a(){this.parentNode.removeChild(this)}return function(d,k){var p=M.doc.createElement(\"img\"),b=M.doc.body;p.style.cssText=\"position:absolute;left:-9999em;top:-9999em\";p.onload=function(){k.call(p);p.onload=p.onerror=null;b.removeChild(p)};p.onerror=a;\n", - "b.appendChild(p);p.src=d}}();w.image=function(f,n,k,p,b){var q=this.el(\"image\");if(z(f,\"object\")&&\"src\"in f)q.attr(f);else if(null!=f){var e={\"xlink:href\":f,preserveAspectRatio:\"none\"};null!=n&&null!=k&&(e.x=n,e.y=k);null!=p&&null!=b?(e.width=p,e.height=b):d(f,function(){a._.$(q.node,{width:this.offsetWidth,height:this.offsetHeight})});a._.$(q.node,e)}return q};w.ellipse=function(a,d,k,p){var b;z(a,\"object\")&&\"[object Object]\"==a?b=a:null!=a&&(b={cx:a,cy:d,rx:k,ry:p});return this.el(\"ellipse\",b)};\n", - "w.path=function(a){var d;z(a,\"object\")&&!z(a,\"array\")?d=a:a&&(d={d:a});return this.el(\"path\",d)};w.group=w.g=function(a){var d=this.el(\"g\");1==arguments.length&&a&&!a.type?d.attr(a):arguments.length&&d.add(Array.prototype.slice.call(arguments,0));return d};w.svg=function(a,d,k,p,b,q,e,l){var r={};z(a,\"object\")&&null==d?r=a:(null!=a&&(r.x=a),null!=d&&(r.y=d),null!=k&&(r.width=k),null!=p&&(r.height=p),null!=b&&null!=q&&null!=e&&null!=l&&(r.viewBox=[b,q,e,l]));return this.el(\"svg\",r)};w.mask=function(a){var d=\n", - "this.el(\"mask\");1==arguments.length&&a&&!a.type?d.attr(a):arguments.length&&d.add(Array.prototype.slice.call(arguments,0));return d};w.ptrn=function(a,d,k,p,b,q,e,l){if(z(a,\"object\"))var r=a;else arguments.length?(r={},null!=a&&(r.x=a),null!=d&&(r.y=d),null!=k&&(r.width=k),null!=p&&(r.height=p),null!=b&&null!=q&&null!=e&&null!=l&&(r.viewBox=[b,q,e,l])):r={patternUnits:\"userSpaceOnUse\"};return this.el(\"pattern\",r)};w.use=function(a){return null!=a?(make(\"use\",this.node),a instanceof v&&(a.attr(\"id\")||\n", - "a.attr({id:ID()}),a=a.attr(\"id\")),this.el(\"use\",{\"xlink:href\":a})):v.prototype.use.call(this)};w.text=function(a,d,k){var p={};z(a,\"object\")?p=a:null!=a&&(p={x:a,y:d,text:k||\"\"});return this.el(\"text\",p)};w.line=function(a,d,k,p){var b={};z(a,\"object\")?b=a:null!=a&&(b={x1:a,x2:k,y1:d,y2:p});return this.el(\"line\",b)};w.polyline=function(a){1<arguments.length&&(a=Array.prototype.slice.call(arguments,0));var d={};z(a,\"object\")&&!z(a,\"array\")?d=a:null!=a&&(d={points:a});return this.el(\"polyline\",d)};\n", - "w.polygon=function(a){1<arguments.length&&(a=Array.prototype.slice.call(arguments,0));var d={};z(a,\"object\")&&!z(a,\"array\")?d=a:null!=a&&(d={points:a});return this.el(\"polygon\",d)};(function(){function d(){return this.selectAll(\"stop\")}function n(b,d){var f=e(\"stop\"),k={offset:+d+\"%\"};b=a.color(b);k[\"stop-color\"]=b.hex;1>b.opacity&&(k[\"stop-opacity\"]=b.opacity);e(f,k);this.node.appendChild(f);return this}function u(){if(\"linearGradient\"==this.type){var b=e(this.node,\"x1\")||0,d=e(this.node,\"x2\")||\n", - "1,f=e(this.node,\"y1\")||0,k=e(this.node,\"y2\")||0;return a._.box(b,f,math.abs(d-b),math.abs(k-f))}b=this.node.r||0;return a._.box((this.node.cx||0.5)-b,(this.node.cy||0.5)-b,2*b,2*b)}function p(a,d){function f(a,b){for(var d=(b-u)/(a-w),e=w;e<a;e++)h[e].offset=+(+u+d*(e-w)).toFixed(2);w=a;u=b}var n=k(\"snap.util.grad.parse\",null,d).firstDefined(),p;if(!n)return null;n.params.unshift(a);p=\"l\"==n.type.toLowerCase()?b.apply(0,n.params):q.apply(0,n.params);n.type!=n.type.toLowerCase()&&e(p.node,{gradientUnits:\"userSpaceOnUse\"});\n", - "var h=n.stops,n=h.length,u=0,w=0;n--;for(var v=0;v<n;v++)\"offset\"in h[v]&&f(v,h[v].offset);h[n].offset=h[n].offset||100;f(n,h[n].offset);for(v=0;v<=n;v++){var y=h[v];p.addStop(y.color,y.offset)}return p}function b(b,k,p,q,w){b=a._.make(\"linearGradient\",b);b.stops=d;b.addStop=n;b.getBBox=u;null!=k&&e(b.node,{x1:k,y1:p,x2:q,y2:w});return b}function q(b,k,p,q,w,h){b=a._.make(\"radialGradient\",b);b.stops=d;b.addStop=n;b.getBBox=u;null!=k&&e(b.node,{cx:k,cy:p,r:q});null!=w&&null!=h&&e(b.node,{fx:w,fy:h});\n", - "return b}var e=a._.$;w.gradient=function(a){return p(this.defs,a)};w.gradientLinear=function(a,d,e,f){return b(this.defs,a,d,e,f)};w.gradientRadial=function(a,b,d,e,f){return q(this.defs,a,b,d,e,f)};w.toString=function(){var b=this.node.ownerDocument,d=b.createDocumentFragment(),b=b.createElement(\"div\"),e=this.node.cloneNode(!0);d.appendChild(b);b.appendChild(e);a._.$(e,{xmlns:\"http://www.w3.org/2000/svg\"});b=b.innerHTML;d.removeChild(d.firstChild);return b};w.clear=function(){for(var a=this.node.firstChild,\n", - "b;a;)b=a.nextSibling,\"defs\"!=a.tagName?a.parentNode.removeChild(a):w.clear.call({node:a}),a=b}})()});C.plugin(function(a,k,y,M){function A(a){var b=A.ps=A.ps||{};b[a]?b[a].sleep=100:b[a]={sleep:100};setTimeout(function(){for(var d in b)b[L](d)&&d!=a&&(b[d].sleep--,!b[d].sleep&&delete b[d])});return b[a]}function w(a,b,d,e){null==a&&(a=b=d=e=0);null==b&&(b=a.y,d=a.width,e=a.height,a=a.x);return{x:a,y:b,width:d,w:d,height:e,h:e,x2:a+d,y2:b+e,cx:a+d/2,cy:b+e/2,r1:F.min(d,e)/2,r2:F.max(d,e)/2,r0:F.sqrt(d*\n", - "d+e*e)/2,path:s(a,b,d,e),vb:[a,b,d,e].join(\" \")}}function z(){return this.join(\",\").replace(N,\"$1\")}function d(a){a=C(a);a.toString=z;return a}function f(a,b,d,h,f,k,l,n,p){if(null==p)return e(a,b,d,h,f,k,l,n);if(0>p||e(a,b,d,h,f,k,l,n)<p)p=void 0;else{var q=0.5,O=1-q,s;for(s=e(a,b,d,h,f,k,l,n,O);0.01<Z(s-p);)q/=2,O+=(s<p?1:-1)*q,s=e(a,b,d,h,f,k,l,n,O);p=O}return u(a,b,d,h,f,k,l,n,p)}function n(b,d){function e(a){return+(+a).toFixed(3)}return a._.cacher(function(a,h,l){a instanceof k&&(a=a.attr(\"d\"));\n", - "a=I(a);for(var n,p,D,q,O=\"\",s={},c=0,t=0,r=a.length;t<r;t++){D=a[t];if(\"M\"==D[0])n=+D[1],p=+D[2];else{q=f(n,p,D[1],D[2],D[3],D[4],D[5],D[6]);if(c+q>h){if(d&&!s.start){n=f(n,p,D[1],D[2],D[3],D[4],D[5],D[6],h-c);O+=[\"C\"+e(n.start.x),e(n.start.y),e(n.m.x),e(n.m.y),e(n.x),e(n.y)];if(l)return O;s.start=O;O=[\"M\"+e(n.x),e(n.y)+\"C\"+e(n.n.x),e(n.n.y),e(n.end.x),e(n.end.y),e(D[5]),e(D[6])].join();c+=q;n=+D[5];p=+D[6];continue}if(!b&&!d)return n=f(n,p,D[1],D[2],D[3],D[4],D[5],D[6],h-c)}c+=q;n=+D[5];p=+D[6]}O+=\n", - "D.shift()+D}s.end=O;return n=b?c:d?s:u(n,p,D[0],D[1],D[2],D[3],D[4],D[5],1)},null,a._.clone)}function u(a,b,d,e,h,f,k,l,n){var p=1-n,q=ma(p,3),s=ma(p,2),c=n*n,t=c*n,r=q*a+3*s*n*d+3*p*n*n*h+t*k,q=q*b+3*s*n*e+3*p*n*n*f+t*l,s=a+2*n*(d-a)+c*(h-2*d+a),t=b+2*n*(e-b)+c*(f-2*e+b),x=d+2*n*(h-d)+c*(k-2*h+d),c=e+2*n*(f-e)+c*(l-2*f+e);a=p*a+n*d;b=p*b+n*e;h=p*h+n*k;f=p*f+n*l;l=90-180*F.atan2(s-x,t-c)/S;return{x:r,y:q,m:{x:s,y:t},n:{x:x,y:c},start:{x:a,y:b},end:{x:h,y:f},alpha:l}}function p(b,d,e,h,f,n,k,l){a.is(b,\n", - "\"array\")||(b=[b,d,e,h,f,n,k,l]);b=U.apply(null,b);return w(b.min.x,b.min.y,b.max.x-b.min.x,b.max.y-b.min.y)}function b(a,b,d){return b>=a.x&&b<=a.x+a.width&&d>=a.y&&d<=a.y+a.height}function q(a,d){a=w(a);d=w(d);return b(d,a.x,a.y)||b(d,a.x2,a.y)||b(d,a.x,a.y2)||b(d,a.x2,a.y2)||b(a,d.x,d.y)||b(a,d.x2,d.y)||b(a,d.x,d.y2)||b(a,d.x2,d.y2)||(a.x<d.x2&&a.x>d.x||d.x<a.x2&&d.x>a.x)&&(a.y<d.y2&&a.y>d.y||d.y<a.y2&&d.y>a.y)}function e(a,b,d,e,h,f,n,k,l){null==l&&(l=1);l=(1<l?1:0>l?0:l)/2;for(var p=[-0.1252,\n", - "0.1252,-0.3678,0.3678,-0.5873,0.5873,-0.7699,0.7699,-0.9041,0.9041,-0.9816,0.9816],q=[0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472],s=0,c=0;12>c;c++)var t=l*p[c]+l,r=t*(t*(-3*a+9*d-9*h+3*n)+6*a-12*d+6*h)-3*a+3*d,t=t*(t*(-3*b+9*e-9*f+3*k)+6*b-12*e+6*f)-3*b+3*e,s=s+q[c]*F.sqrt(r*r+t*t);return l*s}function l(a,b,d){a=I(a);b=I(b);for(var h,f,l,n,k,s,r,O,x,c,t=d?0:[],w=0,v=a.length;w<v;w++)if(x=a[w],\"M\"==x[0])h=k=x[1],f=s=x[2];else{\"C\"==x[0]?(x=[h,f].concat(x.slice(1)),\n", - "h=x[6],f=x[7]):(x=[h,f,h,f,k,s,k,s],h=k,f=s);for(var G=0,y=b.length;G<y;G++)if(c=b[G],\"M\"==c[0])l=r=c[1],n=O=c[2];else{\"C\"==c[0]?(c=[l,n].concat(c.slice(1)),l=c[6],n=c[7]):(c=[l,n,l,n,r,O,r,O],l=r,n=O);var z;var K=x,B=c;z=d;var H=p(K),J=p(B);if(q(H,J)){for(var H=e.apply(0,K),J=e.apply(0,B),H=~~(H/8),J=~~(J/8),U=[],A=[],F={},M=z?0:[],P=0;P<H+1;P++){var C=u.apply(0,K.concat(P/H));U.push({x:C.x,y:C.y,t:P/H})}for(P=0;P<J+1;P++)C=u.apply(0,B.concat(P/J)),A.push({x:C.x,y:C.y,t:P/J});for(P=0;P<H;P++)for(K=\n", - "0;K<J;K++){var Q=U[P],L=U[P+1],B=A[K],C=A[K+1],N=0.001>Z(L.x-Q.x)?\"y\":\"x\",S=0.001>Z(C.x-B.x)?\"y\":\"x\",R;R=Q.x;var Y=Q.y,V=L.x,ea=L.y,fa=B.x,ga=B.y,ha=C.x,ia=C.y;if(W(R,V)<X(fa,ha)||X(R,V)>W(fa,ha)||W(Y,ea)<X(ga,ia)||X(Y,ea)>W(ga,ia))R=void 0;else{var $=(R*ea-Y*V)*(fa-ha)-(R-V)*(fa*ia-ga*ha),aa=(R*ea-Y*V)*(ga-ia)-(Y-ea)*(fa*ia-ga*ha),ja=(R-V)*(ga-ia)-(Y-ea)*(fa-ha);if(ja){var $=$/ja,aa=aa/ja,ja=+$.toFixed(2),ba=+aa.toFixed(2);R=ja<+X(R,V).toFixed(2)||ja>+W(R,V).toFixed(2)||ja<+X(fa,ha).toFixed(2)||\n", - "ja>+W(fa,ha).toFixed(2)||ba<+X(Y,ea).toFixed(2)||ba>+W(Y,ea).toFixed(2)||ba<+X(ga,ia).toFixed(2)||ba>+W(ga,ia).toFixed(2)?void 0:{x:$,y:aa}}else R=void 0}R&&F[R.x.toFixed(4)]!=R.y.toFixed(4)&&(F[R.x.toFixed(4)]=R.y.toFixed(4),Q=Q.t+Z((R[N]-Q[N])/(L[N]-Q[N]))*(L.t-Q.t),B=B.t+Z((R[S]-B[S])/(C[S]-B[S]))*(C.t-B.t),0<=Q&&1>=Q&&0<=B&&1>=B&&(z?M++:M.push({x:R.x,y:R.y,t1:Q,t2:B})))}z=M}else z=z?0:[];if(d)t+=z;else{H=0;for(J=z.length;H<J;H++)z[H].segment1=w,z[H].segment2=G,z[H].bez1=x,z[H].bez2=c;t=t.concat(z)}}}return t}\n", - "function r(a){var b=A(a);if(b.bbox)return C(b.bbox);if(!a)return w();a=I(a);for(var d=0,e=0,h=[],f=[],l,n=0,k=a.length;n<k;n++)l=a[n],\"M\"==l[0]?(d=l[1],e=l[2],h.push(d),f.push(e)):(d=U(d,e,l[1],l[2],l[3],l[4],l[5],l[6]),h=h.concat(d.min.x,d.max.x),f=f.concat(d.min.y,d.max.y),d=l[5],e=l[6]);a=X.apply(0,h);l=X.apply(0,f);h=W.apply(0,h);f=W.apply(0,f);f=w(a,l,h-a,f-l);b.bbox=C(f);return f}function s(a,b,d,e,h){if(h)return[[\"M\",+a+ +h,b],[\"l\",d-2*h,0],[\"a\",h,h,0,0,1,h,h],[\"l\",0,e-2*h],[\"a\",h,h,0,0,1,\n", - "-h,h],[\"l\",2*h-d,0],[\"a\",h,h,0,0,1,-h,-h],[\"l\",0,2*h-e],[\"a\",h,h,0,0,1,h,-h],[\"z\"] ];a=[[\"M\",a,b],[\"l\",d,0],[\"l\",0,e],[\"l\",-d,0],[\"z\"] ];a.toString=z;return a}function x(a,b,d,e,h){null==h&&null==e&&(e=d);a=+a;b=+b;d=+d;e=+e;if(null!=h){var f=Math.PI/180,l=a+d*Math.cos(-e*f);a+=d*Math.cos(-h*f);var n=b+d*Math.sin(-e*f);b+=d*Math.sin(-h*f);d=[[\"M\",l,n],[\"A\",d,d,0,+(180<h-e),0,a,b] ]}else d=[[\"M\",a,b],[\"m\",0,-e],[\"a\",d,e,0,1,1,0,2*e],[\"a\",d,e,0,1,1,0,-2*e],[\"z\"] ];d.toString=z;return d}function G(b){var e=\n", - "A(b);if(e.abs)return d(e.abs);Q(b,\"array\")&&Q(b&&b[0],\"array\")||(b=a.parsePathString(b));if(!b||!b.length)return[[\"M\",0,0] ];var h=[],f=0,l=0,n=0,k=0,p=0;\"M\"==b[0][0]&&(f=+b[0][1],l=+b[0][2],n=f,k=l,p++,h[0]=[\"M\",f,l]);for(var q=3==b.length&&\"M\"==b[0][0]&&\"R\"==b[1][0].toUpperCase()&&\"Z\"==b[2][0].toUpperCase(),s,r,w=p,c=b.length;w<c;w++){h.push(s=[]);r=b[w];p=r[0];if(p!=p.toUpperCase())switch(s[0]=p.toUpperCase(),s[0]){case \"A\":s[1]=r[1];s[2]=r[2];s[3]=r[3];s[4]=r[4];s[5]=r[5];s[6]=+r[6]+f;s[7]=+r[7]+\n", - "l;break;case \"V\":s[1]=+r[1]+l;break;case \"H\":s[1]=+r[1]+f;break;case \"R\":for(var t=[f,l].concat(r.slice(1)),u=2,v=t.length;u<v;u++)t[u]=+t[u]+f,t[++u]=+t[u]+l;h.pop();h=h.concat(P(t,q));break;case \"O\":h.pop();t=x(f,l,r[1],r[2]);t.push(t[0]);h=h.concat(t);break;case \"U\":h.pop();h=h.concat(x(f,l,r[1],r[2],r[3]));s=[\"U\"].concat(h[h.length-1].slice(-2));break;case \"M\":n=+r[1]+f,k=+r[2]+l;default:for(u=1,v=r.length;u<v;u++)s[u]=+r[u]+(u%2?f:l)}else if(\"R\"==p)t=[f,l].concat(r.slice(1)),h.pop(),h=h.concat(P(t,\n", - "q)),s=[\"R\"].concat(r.slice(-2));else if(\"O\"==p)h.pop(),t=x(f,l,r[1],r[2]),t.push(t[0]),h=h.concat(t);else if(\"U\"==p)h.pop(),h=h.concat(x(f,l,r[1],r[2],r[3])),s=[\"U\"].concat(h[h.length-1].slice(-2));else for(t=0,u=r.length;t<u;t++)s[t]=r[t];p=p.toUpperCase();if(\"O\"!=p)switch(s[0]){case \"Z\":f=+n;l=+k;break;case \"H\":f=s[1];break;case \"V\":l=s[1];break;case \"M\":n=s[s.length-2],k=s[s.length-1];default:f=s[s.length-2],l=s[s.length-1]}}h.toString=z;e.abs=d(h);return h}function h(a,b,d,e){return[a,b,d,e,d,\n", - "e]}function J(a,b,d,e,h,f){var l=1/3,n=2/3;return[l*a+n*d,l*b+n*e,l*h+n*d,l*f+n*e,h,f]}function K(b,d,e,h,f,l,n,k,p,s){var r=120*S/180,q=S/180*(+f||0),c=[],t,x=a._.cacher(function(a,b,c){var d=a*F.cos(c)-b*F.sin(c);a=a*F.sin(c)+b*F.cos(c);return{x:d,y:a}});if(s)v=s[0],t=s[1],l=s[2],u=s[3];else{t=x(b,d,-q);b=t.x;d=t.y;t=x(k,p,-q);k=t.x;p=t.y;F.cos(S/180*f);F.sin(S/180*f);t=(b-k)/2;v=(d-p)/2;u=t*t/(e*e)+v*v/(h*h);1<u&&(u=F.sqrt(u),e*=u,h*=u);var u=e*e,w=h*h,u=(l==n?-1:1)*F.sqrt(Z((u*w-u*v*v-w*t*t)/\n", - "(u*v*v+w*t*t)));l=u*e*v/h+(b+k)/2;var u=u*-h*t/e+(d+p)/2,v=F.asin(((d-u)/h).toFixed(9));t=F.asin(((p-u)/h).toFixed(9));v=b<l?S-v:v;t=k<l?S-t:t;0>v&&(v=2*S+v);0>t&&(t=2*S+t);n&&v>t&&(v-=2*S);!n&&t>v&&(t-=2*S)}if(Z(t-v)>r){var c=t,w=k,G=p;t=v+r*(n&&t>v?1:-1);k=l+e*F.cos(t);p=u+h*F.sin(t);c=K(k,p,e,h,f,0,n,w,G,[t,c,l,u])}l=t-v;f=F.cos(v);r=F.sin(v);n=F.cos(t);t=F.sin(t);l=F.tan(l/4);e=4/3*e*l;l*=4/3*h;h=[b,d];b=[b+e*r,d-l*f];d=[k+e*t,p-l*n];k=[k,p];b[0]=2*h[0]-b[0];b[1]=2*h[1]-b[1];if(s)return[b,d,k].concat(c);\n", - "c=[b,d,k].concat(c).join().split(\",\");s=[];k=0;for(p=c.length;k<p;k++)s[k]=k%2?x(c[k-1],c[k],q).y:x(c[k],c[k+1],q).x;return s}function U(a,b,d,e,h,f,l,k){for(var n=[],p=[[],[] ],s,r,c,t,q=0;2>q;++q)0==q?(r=6*a-12*d+6*h,s=-3*a+9*d-9*h+3*l,c=3*d-3*a):(r=6*b-12*e+6*f,s=-3*b+9*e-9*f+3*k,c=3*e-3*b),1E-12>Z(s)?1E-12>Z(r)||(s=-c/r,0<s&&1>s&&n.push(s)):(t=r*r-4*c*s,c=F.sqrt(t),0>t||(t=(-r+c)/(2*s),0<t&&1>t&&n.push(t),s=(-r-c)/(2*s),0<s&&1>s&&n.push(s)));for(r=q=n.length;q--;)s=n[q],c=1-s,p[0][q]=c*c*c*a+3*\n", - "c*c*s*d+3*c*s*s*h+s*s*s*l,p[1][q]=c*c*c*b+3*c*c*s*e+3*c*s*s*f+s*s*s*k;p[0][r]=a;p[1][r]=b;p[0][r+1]=l;p[1][r+1]=k;p[0].length=p[1].length=r+2;return{min:{x:X.apply(0,p[0]),y:X.apply(0,p[1])},max:{x:W.apply(0,p[0]),y:W.apply(0,p[1])}}}function I(a,b){var e=!b&&A(a);if(!b&&e.curve)return d(e.curve);var f=G(a),l=b&&G(b),n={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},k={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},p=function(a,b,c){if(!a)return[\"C\",b.x,b.y,b.x,b.y,b.x,b.y];a[0]in{T:1,Q:1}||(b.qx=b.qy=null);\n", - "switch(a[0]){case \"M\":b.X=a[1];b.Y=a[2];break;case \"A\":a=[\"C\"].concat(K.apply(0,[b.x,b.y].concat(a.slice(1))));break;case \"S\":\"C\"==c||\"S\"==c?(c=2*b.x-b.bx,b=2*b.y-b.by):(c=b.x,b=b.y);a=[\"C\",c,b].concat(a.slice(1));break;case \"T\":\"Q\"==c||\"T\"==c?(b.qx=2*b.x-b.qx,b.qy=2*b.y-b.qy):(b.qx=b.x,b.qy=b.y);a=[\"C\"].concat(J(b.x,b.y,b.qx,b.qy,a[1],a[2]));break;case \"Q\":b.qx=a[1];b.qy=a[2];a=[\"C\"].concat(J(b.x,b.y,a[1],a[2],a[3],a[4]));break;case \"L\":a=[\"C\"].concat(h(b.x,b.y,a[1],a[2]));break;case \"H\":a=[\"C\"].concat(h(b.x,\n", - "b.y,a[1],b.y));break;case \"V\":a=[\"C\"].concat(h(b.x,b.y,b.x,a[1]));break;case \"Z\":a=[\"C\"].concat(h(b.x,b.y,b.X,b.Y))}return a},s=function(a,b){if(7<a[b].length){a[b].shift();for(var c=a[b];c.length;)q[b]=\"A\",l&&(u[b]=\"A\"),a.splice(b++,0,[\"C\"].concat(c.splice(0,6)));a.splice(b,1);v=W(f.length,l&&l.length||0)}},r=function(a,b,c,d,e){a&&b&&\"M\"==a[e][0]&&\"M\"!=b[e][0]&&(b.splice(e,0,[\"M\",d.x,d.y]),c.bx=0,c.by=0,c.x=a[e][1],c.y=a[e][2],v=W(f.length,l&&l.length||0))},q=[],u=[],c=\"\",t=\"\",x=0,v=W(f.length,\n", - "l&&l.length||0);for(;x<v;x++){f[x]&&(c=f[x][0]);\"C\"!=c&&(q[x]=c,x&&(t=q[x-1]));f[x]=p(f[x],n,t);\"A\"!=q[x]&&\"C\"==c&&(q[x]=\"C\");s(f,x);l&&(l[x]&&(c=l[x][0]),\"C\"!=c&&(u[x]=c,x&&(t=u[x-1])),l[x]=p(l[x],k,t),\"A\"!=u[x]&&\"C\"==c&&(u[x]=\"C\"),s(l,x));r(f,l,n,k,x);r(l,f,k,n,x);var w=f[x],z=l&&l[x],y=w.length,U=l&&z.length;n.x=w[y-2];n.y=w[y-1];n.bx=$(w[y-4])||n.x;n.by=$(w[y-3])||n.y;k.bx=l&&($(z[U-4])||k.x);k.by=l&&($(z[U-3])||k.y);k.x=l&&z[U-2];k.y=l&&z[U-1]}l||(e.curve=d(f));return l?[f,l]:f}function P(a,\n", - "b){for(var d=[],e=0,h=a.length;h-2*!b>e;e+=2){var f=[{x:+a[e-2],y:+a[e-1]},{x:+a[e],y:+a[e+1]},{x:+a[e+2],y:+a[e+3]},{x:+a[e+4],y:+a[e+5]}];b?e?h-4==e?f[3]={x:+a[0],y:+a[1]}:h-2==e&&(f[2]={x:+a[0],y:+a[1]},f[3]={x:+a[2],y:+a[3]}):f[0]={x:+a[h-2],y:+a[h-1]}:h-4==e?f[3]=f[2]:e||(f[0]={x:+a[e],y:+a[e+1]});d.push([\"C\",(-f[0].x+6*f[1].x+f[2].x)/6,(-f[0].y+6*f[1].y+f[2].y)/6,(f[1].x+6*f[2].x-f[3].x)/6,(f[1].y+6*f[2].y-f[3].y)/6,f[2].x,f[2].y])}return d}y=k.prototype;var Q=a.is,C=a._.clone,L=\"hasOwnProperty\",\n", - "N=/,?([a-z]),?/gi,$=parseFloat,F=Math,S=F.PI,X=F.min,W=F.max,ma=F.pow,Z=F.abs;M=n(1);var na=n(),ba=n(0,1),V=a._unit2px;a.path=A;a.path.getTotalLength=M;a.path.getPointAtLength=na;a.path.getSubpath=function(a,b,d){if(1E-6>this.getTotalLength(a)-d)return ba(a,b).end;a=ba(a,d,1);return b?ba(a,b).end:a};y.getTotalLength=function(){if(this.node.getTotalLength)return this.node.getTotalLength()};y.getPointAtLength=function(a){return na(this.attr(\"d\"),a)};y.getSubpath=function(b,d){return a.path.getSubpath(this.attr(\"d\"),\n", - "b,d)};a._.box=w;a.path.findDotsAtSegment=u;a.path.bezierBBox=p;a.path.isPointInsideBBox=b;a.path.isBBoxIntersect=q;a.path.intersection=function(a,b){return l(a,b)};a.path.intersectionNumber=function(a,b){return l(a,b,1)};a.path.isPointInside=function(a,d,e){var h=r(a);return b(h,d,e)&&1==l(a,[[\"M\",d,e],[\"H\",h.x2+10] ],1)%2};a.path.getBBox=r;a.path.get={path:function(a){return a.attr(\"path\")},circle:function(a){a=V(a);return x(a.cx,a.cy,a.r)},ellipse:function(a){a=V(a);return x(a.cx||0,a.cy||0,a.rx,\n", - "a.ry)},rect:function(a){a=V(a);return s(a.x||0,a.y||0,a.width,a.height,a.rx,a.ry)},image:function(a){a=V(a);return s(a.x||0,a.y||0,a.width,a.height)},line:function(a){return\"M\"+[a.attr(\"x1\")||0,a.attr(\"y1\")||0,a.attr(\"x2\"),a.attr(\"y2\")]},polyline:function(a){return\"M\"+a.attr(\"points\")},polygon:function(a){return\"M\"+a.attr(\"points\")+\"z\"},deflt:function(a){a=a.node.getBBox();return s(a.x,a.y,a.width,a.height)}};a.path.toRelative=function(b){var e=A(b),h=String.prototype.toLowerCase;if(e.rel)return d(e.rel);\n", - "a.is(b,\"array\")&&a.is(b&&b[0],\"array\")||(b=a.parsePathString(b));var f=[],l=0,n=0,k=0,p=0,s=0;\"M\"==b[0][0]&&(l=b[0][1],n=b[0][2],k=l,p=n,s++,f.push([\"M\",l,n]));for(var r=b.length;s<r;s++){var q=f[s]=[],x=b[s];if(x[0]!=h.call(x[0]))switch(q[0]=h.call(x[0]),q[0]){case \"a\":q[1]=x[1];q[2]=x[2];q[3]=x[3];q[4]=x[4];q[5]=x[5];q[6]=+(x[6]-l).toFixed(3);q[7]=+(x[7]-n).toFixed(3);break;case \"v\":q[1]=+(x[1]-n).toFixed(3);break;case \"m\":k=x[1],p=x[2];default:for(var c=1,t=x.length;c<t;c++)q[c]=+(x[c]-(c%2?l:\n", - "n)).toFixed(3)}else for(f[s]=[],\"m\"==x[0]&&(k=x[1]+l,p=x[2]+n),q=0,c=x.length;q<c;q++)f[s][q]=x[q];x=f[s].length;switch(f[s][0]){case \"z\":l=k;n=p;break;case \"h\":l+=+f[s][x-1];break;case \"v\":n+=+f[s][x-1];break;default:l+=+f[s][x-2],n+=+f[s][x-1]}}f.toString=z;e.rel=d(f);return f};a.path.toAbsolute=G;a.path.toCubic=I;a.path.map=function(a,b){if(!b)return a;var d,e,h,f,l,n,k;a=I(a);h=0;for(l=a.length;h<l;h++)for(k=a[h],f=1,n=k.length;f<n;f+=2)d=b.x(k[f],k[f+1]),e=b.y(k[f],k[f+1]),k[f]=d,k[f+1]=e;return a};\n", - "a.path.toString=z;a.path.clone=d});C.plugin(function(a,v,y,C){var A=Math.max,w=Math.min,z=function(a){this.items=[];this.bindings={};this.length=0;this.type=\"set\";if(a)for(var f=0,n=a.length;f<n;f++)a[f]&&(this[this.items.length]=this.items[this.items.length]=a[f],this.length++)};v=z.prototype;v.push=function(){for(var a,f,n=0,k=arguments.length;n<k;n++)if(a=arguments[n])f=this.items.length,this[f]=this.items[f]=a,this.length++;return this};v.pop=function(){this.length&&delete this[this.length--];\n", - "return this.items.pop()};v.forEach=function(a,f){for(var n=0,k=this.items.length;n<k&&!1!==a.call(f,this.items[n],n);n++);return this};v.animate=function(d,f,n,u){\"function\"!=typeof n||n.length||(u=n,n=L.linear);d instanceof a._.Animation&&(u=d.callback,n=d.easing,f=n.dur,d=d.attr);var p=arguments;if(a.is(d,\"array\")&&a.is(p[p.length-1],\"array\"))var b=!0;var q,e=function(){q?this.b=q:q=this.b},l=0,r=u&&function(){l++==this.length&&u.call(this)};return this.forEach(function(a,l){k.once(\"snap.animcreated.\"+\n", - "a.id,e);b?p[l]&&a.animate.apply(a,p[l]):a.animate(d,f,n,r)})};v.remove=function(){for(;this.length;)this.pop().remove();return this};v.bind=function(a,f,k){var u={};if(\"function\"==typeof f)this.bindings[a]=f;else{var p=k||a;this.bindings[a]=function(a){u[p]=a;f.attr(u)}}return this};v.attr=function(a){var f={},k;for(k in a)if(this.bindings[k])this.bindings[k](a[k]);else f[k]=a[k];a=0;for(k=this.items.length;a<k;a++)this.items[a].attr(f);return this};v.clear=function(){for(;this.length;)this.pop()};\n", - "v.splice=function(a,f,k){a=0>a?A(this.length+a,0):a;f=A(0,w(this.length-a,f));var u=[],p=[],b=[],q;for(q=2;q<arguments.length;q++)b.push(arguments[q]);for(q=0;q<f;q++)p.push(this[a+q]);for(;q<this.length-a;q++)u.push(this[a+q]);var e=b.length;for(q=0;q<e+u.length;q++)this.items[a+q]=this[a+q]=q<e?b[q]:u[q-e];for(q=this.items.length=this.length-=f-e;this[q];)delete this[q++];return new z(p)};v.exclude=function(a){for(var f=0,k=this.length;f<k;f++)if(this[f]==a)return this.splice(f,1),!0;return!1};\n", - "v.insertAfter=function(a){for(var f=this.items.length;f--;)this.items[f].insertAfter(a);return this};v.getBBox=function(){for(var a=[],f=[],k=[],u=[],p=this.items.length;p--;)if(!this.items[p].removed){var b=this.items[p].getBBox();a.push(b.x);f.push(b.y);k.push(b.x+b.width);u.push(b.y+b.height)}a=w.apply(0,a);f=w.apply(0,f);k=A.apply(0,k);u=A.apply(0,u);return{x:a,y:f,x2:k,y2:u,width:k-a,height:u-f,cx:a+(k-a)/2,cy:f+(u-f)/2}};v.clone=function(a){a=new z;for(var f=0,k=this.items.length;f<k;f++)a.push(this.items[f].clone());\n", - "return a};v.toString=function(){return\"Snap\\u2018s set\"};v.type=\"set\";a.set=function(){var a=new z;arguments.length&&a.push.apply(a,Array.prototype.slice.call(arguments,0));return a}});C.plugin(function(a,v,y,C){function A(a){var b=a[0];switch(b.toLowerCase()){case \"t\":return[b,0,0];case \"m\":return[b,1,0,0,1,0,0];case \"r\":return 4==a.length?[b,0,a[2],a[3] ]:[b,0];case \"s\":return 5==a.length?[b,1,1,a[3],a[4] ]:3==a.length?[b,1,1]:[b,1]}}function w(b,d,f){d=q(d).replace(/\\.{3}|\\u2026/g,b);b=a.parseTransformString(b)||\n", - "[];d=a.parseTransformString(d)||[];for(var k=Math.max(b.length,d.length),p=[],v=[],h=0,w,z,y,I;h<k;h++){y=b[h]||A(d[h]);I=d[h]||A(y);if(y[0]!=I[0]||\"r\"==y[0].toLowerCase()&&(y[2]!=I[2]||y[3]!=I[3])||\"s\"==y[0].toLowerCase()&&(y[3]!=I[3]||y[4]!=I[4])){b=a._.transform2matrix(b,f());d=a._.transform2matrix(d,f());p=[[\"m\",b.a,b.b,b.c,b.d,b.e,b.f] ];v=[[\"m\",d.a,d.b,d.c,d.d,d.e,d.f] ];break}p[h]=[];v[h]=[];w=0;for(z=Math.max(y.length,I.length);w<z;w++)w in y&&(p[h][w]=y[w]),w in I&&(v[h][w]=I[w])}return{from:u(p),\n", - "to:u(v),f:n(p)}}function z(a){return a}function d(a){return function(b){return+b.toFixed(3)+a}}function f(b){return a.rgb(b[0],b[1],b[2])}function n(a){var b=0,d,f,k,n,h,p,q=[];d=0;for(f=a.length;d<f;d++){h=\"[\";p=['\"'+a[d][0]+'\"'];k=1;for(n=a[d].length;k<n;k++)p[k]=\"val[\"+b++ +\"]\";h+=p+\"]\";q[d]=h}return Function(\"val\",\"return Snap.path.toString.call([\"+q+\"])\")}function u(a){for(var b=[],d=0,f=a.length;d<f;d++)for(var k=1,n=a[d].length;k<n;k++)b.push(a[d][k]);return b}var p={},b=/[a-z]+$/i,q=String;\n", - "p.stroke=p.fill=\"colour\";v.prototype.equal=function(a,b){return k(\"snap.util.equal\",this,a,b).firstDefined()};k.on(\"snap.util.equal\",function(e,k){var r,s;r=q(this.attr(e)||\"\");var x=this;if(r==+r&&k==+k)return{from:+r,to:+k,f:z};if(\"colour\"==p[e])return r=a.color(r),s=a.color(k),{from:[r.r,r.g,r.b,r.opacity],to:[s.r,s.g,s.b,s.opacity],f:f};if(\"transform\"==e||\"gradientTransform\"==e||\"patternTransform\"==e)return k instanceof a.Matrix&&(k=k.toTransformString()),a._.rgTransform.test(k)||(k=a._.svgTransform2string(k)),\n", - "w(r,k,function(){return x.getBBox(1)});if(\"d\"==e||\"path\"==e)return r=a.path.toCubic(r,k),{from:u(r[0]),to:u(r[1]),f:n(r[0])};if(\"points\"==e)return r=q(r).split(a._.separator),s=q(k).split(a._.separator),{from:r,to:s,f:function(a){return a}};aUnit=r.match(b);s=q(k).match(b);return aUnit&&aUnit==s?{from:parseFloat(r),to:parseFloat(k),f:d(aUnit)}:{from:this.asPX(e),to:this.asPX(e,k),f:z}})});C.plugin(function(a,v,y,C){var A=v.prototype,w=\"createTouch\"in C.doc;v=\"click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel\".split(\" \");\n", - "var z={mousedown:\"touchstart\",mousemove:\"touchmove\",mouseup:\"touchend\"},d=function(a,b){var d=\"y\"==a?\"scrollTop\":\"scrollLeft\",e=b&&b.node?b.node.ownerDocument:C.doc;return e[d in e.documentElement?\"documentElement\":\"body\"][d]},f=function(){this.returnValue=!1},n=function(){return this.originalEvent.preventDefault()},u=function(){this.cancelBubble=!0},p=function(){return this.originalEvent.stopPropagation()},b=function(){if(C.doc.addEventListener)return function(a,b,e,f){var k=w&&z[b]?z[b]:b,l=function(k){var l=\n", - "d(\"y\",f),q=d(\"x\",f);if(w&&z.hasOwnProperty(b))for(var r=0,u=k.targetTouches&&k.targetTouches.length;r<u;r++)if(k.targetTouches[r].target==a||a.contains(k.targetTouches[r].target)){u=k;k=k.targetTouches[r];k.originalEvent=u;k.preventDefault=n;k.stopPropagation=p;break}return e.call(f,k,k.clientX+q,k.clientY+l)};b!==k&&a.addEventListener(b,l,!1);a.addEventListener(k,l,!1);return function(){b!==k&&a.removeEventListener(b,l,!1);a.removeEventListener(k,l,!1);return!0}};if(C.doc.attachEvent)return function(a,\n", - "b,e,h){var k=function(a){a=a||h.node.ownerDocument.window.event;var b=d(\"y\",h),k=d(\"x\",h),k=a.clientX+k,b=a.clientY+b;a.preventDefault=a.preventDefault||f;a.stopPropagation=a.stopPropagation||u;return e.call(h,a,k,b)};a.attachEvent(\"on\"+b,k);return function(){a.detachEvent(\"on\"+b,k);return!0}}}(),q=[],e=function(a){for(var b=a.clientX,e=a.clientY,f=d(\"y\"),l=d(\"x\"),n,p=q.length;p--;){n=q[p];if(w)for(var r=a.touches&&a.touches.length,u;r--;){if(u=a.touches[r],u.identifier==n.el._drag.id||n.el.node.contains(u.target)){b=\n", - "u.clientX;e=u.clientY;(a.originalEvent?a.originalEvent:a).preventDefault();break}}else a.preventDefault();b+=l;e+=f;k(\"snap.drag.move.\"+n.el.id,n.move_scope||n.el,b-n.el._drag.x,e-n.el._drag.y,b,e,a)}},l=function(b){a.unmousemove(e).unmouseup(l);for(var d=q.length,f;d--;)f=q[d],f.el._drag={},k(\"snap.drag.end.\"+f.el.id,f.end_scope||f.start_scope||f.move_scope||f.el,b);q=[]};for(y=v.length;y--;)(function(d){a[d]=A[d]=function(e,f){a.is(e,\"function\")&&(this.events=this.events||[],this.events.push({name:d,\n", - "f:e,unbind:b(this.node||document,d,e,f||this)}));return this};a[\"un\"+d]=A[\"un\"+d]=function(a){for(var b=this.events||[],e=b.length;e--;)if(b[e].name==d&&(b[e].f==a||!a)){b[e].unbind();b.splice(e,1);!b.length&&delete this.events;break}return this}})(v[y]);A.hover=function(a,b,d,e){return this.mouseover(a,d).mouseout(b,e||d)};A.unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};var r=[];A.drag=function(b,d,f,h,n,p){function u(r,v,w){(r.originalEvent||r).preventDefault();this._drag.x=v;\n", - "this._drag.y=w;this._drag.id=r.identifier;!q.length&&a.mousemove(e).mouseup(l);q.push({el:this,move_scope:h,start_scope:n,end_scope:p});d&&k.on(\"snap.drag.start.\"+this.id,d);b&&k.on(\"snap.drag.move.\"+this.id,b);f&&k.on(\"snap.drag.end.\"+this.id,f);k(\"snap.drag.start.\"+this.id,n||h||this,v,w,r)}if(!arguments.length){var v;return this.drag(function(a,b){this.attr({transform:v+(v?\"T\":\"t\")+[a,b]})},function(){v=this.transform().local})}this._drag={};r.push({el:this,start:u});this.mousedown(u);return this};\n", - "A.undrag=function(){for(var b=r.length;b--;)r[b].el==this&&(this.unmousedown(r[b].start),r.splice(b,1),k.unbind(\"snap.drag.*.\"+this.id));!r.length&&a.unmousemove(e).unmouseup(l);return this}});C.plugin(function(a,v,y,C){y=y.prototype;var A=/^\\s*url\\((.+)\\)/,w=String,z=a._.$;a.filter={};y.filter=function(d){var f=this;\"svg\"!=f.type&&(f=f.paper);d=a.parse(w(d));var k=a._.id(),u=z(\"filter\");z(u,{id:k,filterUnits:\"userSpaceOnUse\"});u.appendChild(d.node);f.defs.appendChild(u);return new v(u)};k.on(\"snap.util.getattr.filter\",\n", - "function(){k.stop();var d=z(this.node,\"filter\");if(d)return(d=w(d).match(A))&&a.select(d[1])});k.on(\"snap.util.attr.filter\",function(d){if(d instanceof v&&\"filter\"==d.type){k.stop();var f=d.node.id;f||(z(d.node,{id:d.id}),f=d.id);z(this.node,{filter:a.url(f)})}d&&\"none\"!=d||(k.stop(),this.node.removeAttribute(\"filter\"))});a.filter.blur=function(d,f){null==d&&(d=2);return a.format('<feGaussianBlur stdDeviation=\"{def}\"/>',{def:null==f?d:[d,f]})};a.filter.blur.toString=function(){return this()};a.filter.shadow=\n", - "function(d,f,k,u,p){\"string\"==typeof k&&(p=u=k,k=4);\"string\"!=typeof u&&(p=u,u=\"#000\");null==k&&(k=4);null==p&&(p=1);null==d&&(d=0,f=2);null==f&&(f=d);u=a.color(u||\"#000\");return a.format('<feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"{blur}\"/><feOffset dx=\"{dx}\" dy=\"{dy}\" result=\"offsetblur\"/><feFlood flood-color=\"{color}\"/><feComposite in2=\"offsetblur\" operator=\"in\"/><feComponentTransfer><feFuncA type=\"linear\" slope=\"{opacity}\"/></feComponentTransfer><feMerge><feMergeNode/><feMergeNode in=\"SourceGraphic\"/></feMerge>',\n", - "{color:u,dx:d,dy:f,blur:k,opacity:p})};a.filter.shadow.toString=function(){return this()};a.filter.grayscale=function(d){null==d&&(d=1);return a.format('<feColorMatrix type=\"matrix\" values=\"{a} {b} {c} 0 0 {d} {e} {f} 0 0 {g} {b} {h} 0 0 0 0 0 1 0\"/>',{a:0.2126+0.7874*(1-d),b:0.7152-0.7152*(1-d),c:0.0722-0.0722*(1-d),d:0.2126-0.2126*(1-d),e:0.7152+0.2848*(1-d),f:0.0722-0.0722*(1-d),g:0.2126-0.2126*(1-d),h:0.0722+0.9278*(1-d)})};a.filter.grayscale.toString=function(){return this()};a.filter.sepia=\n", - "function(d){null==d&&(d=1);return a.format('<feColorMatrix type=\"matrix\" values=\"{a} {b} {c} 0 0 {d} {e} {f} 0 0 {g} {h} {i} 0 0 0 0 0 1 0\"/>',{a:0.393+0.607*(1-d),b:0.769-0.769*(1-d),c:0.189-0.189*(1-d),d:0.349-0.349*(1-d),e:0.686+0.314*(1-d),f:0.168-0.168*(1-d),g:0.272-0.272*(1-d),h:0.534-0.534*(1-d),i:0.131+0.869*(1-d)})};a.filter.sepia.toString=function(){return this()};a.filter.saturate=function(d){null==d&&(d=1);return a.format('<feColorMatrix type=\"saturate\" values=\"{amount}\"/>',{amount:1-\n", - "d})};a.filter.saturate.toString=function(){return this()};a.filter.hueRotate=function(d){return a.format('<feColorMatrix type=\"hueRotate\" values=\"{angle}\"/>',{angle:d||0})};a.filter.hueRotate.toString=function(){return this()};a.filter.invert=function(d){null==d&&(d=1);return a.format('<feComponentTransfer><feFuncR type=\"table\" tableValues=\"{amount} {amount2}\"/><feFuncG type=\"table\" tableValues=\"{amount} {amount2}\"/><feFuncB type=\"table\" tableValues=\"{amount} {amount2}\"/></feComponentTransfer>',{amount:d,\n", - "amount2:1-d})};a.filter.invert.toString=function(){return this()};a.filter.brightness=function(d){null==d&&(d=1);return a.format('<feComponentTransfer><feFuncR type=\"linear\" slope=\"{amount}\"/><feFuncG type=\"linear\" slope=\"{amount}\"/><feFuncB type=\"linear\" slope=\"{amount}\"/></feComponentTransfer>',{amount:d})};a.filter.brightness.toString=function(){return this()};a.filter.contrast=function(d){null==d&&(d=1);return a.format('<feComponentTransfer><feFuncR type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/><feFuncG type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/><feFuncB type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/></feComponentTransfer>',\n", - "{amount:d,amount2:0.5-d/2})};a.filter.contrast.toString=function(){return this()}});return C});\n", - "\n", - "]]> </script>\n", - "</svg>\n" - ], + " n = size(W, 1)\n", + " X .= falses(n, n) #X is reset every iteration because a different 1-tree is computed\n", + " W_updated .= convert(Matrix{Float64}, deepcopy(W)) #we need to modify the weights according to λ\n", + " \n", + " # Minimum spanning tree (span_tree : st)\n", + " for u in 2:n, v in 2:n\n", + " W_updated[u,v] -= Ï€[u] + Ï€[v]\n", + " end\n", + " st = kruskal_mst(g, W_updated[2:n,2:n])\n", + " \n", + " # Conversion of the spanning tree to an adjacency matrix\n", + " for i ∈ 1:size(st, 1)\n", + " X[src(st[i])+1, dst(st[i])+1] = 1\n", + " X[dst(st[i])+1, src(st[i])+1] = 1\n", + " end\n", + " \n", + " # We connect vertex 1 to two vertices to obtain a 1-tree\n", + " W_updated[1,2:n] .-= Ï€[2:n]\n", + " connect_v1!(X, W_updated[1,:], n)\n", + " \n", + " #then we compute the objective value\n", + " z = 2*sum(Ï€) + sum((W[u,v] - Ï€[u] - Ï€[v])*X[u,v] for u ∈ 1:n for v ∈ 1:u)\n", + " \n", + " #the degrees of all vertices in graph X\n", + " D = [sum(X[u,:]) for u ∈ 1:n]\n", + " \n", + " if all(D .== 2) # If not a tour, update\n", + " return true, z\n", + " else\n", + " update_rule(Ï€, D)\n", + " end\n", + " \n", + " return false, z\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { "text/plain": [ - "Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), Compose.UnitBox{Float64,Float64,Float64,Float64}(-1.2, -1.2, 2.4, 2.4, 0.0mm, 0.0mm, 0.0mm, 0.0mm), nothing, nothing, nothing, List([Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.LinePrimitive}(Compose.LinePrimitive[Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.9179382115832411cx, -0.4385158414531592cy), (0.240714047343577cx, -0.9393161508429982cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.9845028374527092cx, -0.2769533294399839cy), (0.862185718536918cx, 0.5192690346857449cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.751163776893359cx, -0.6562606738470509cy), (0.06317711527517773cx, -0.9639283544682902cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.8621403518525819cx, -0.5193110213262904cy), (-0.9844985686924176cx, 0.2769543562778442cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.2407353218862397cx, 0.9393151476309368cy), (-0.9179389534577357cx, 0.43851721563595814cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.06319957942107789cx, 0.9639271694332573cy), (0.7512138600667299cx, 0.6562205281086612cy)])], Symbol(\"\"))]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(1.2247448713915892mm)]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.8274509803921568,0.8274509803921568,0.8274509803921568,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(1.2247448713915892mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.8274509803921568,0.8274509803921568,0.8274509803921568,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}}(Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}[Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.579326129463409cx, -0.6889159961480786cy), \"4\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.9233442779948137cx, 0.12115785262288054cy), \"5\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.34399333080909067cx, -0.8100945141576705cy), \"3\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.9233194602724997cx, -0.12117833252422305cy), \"0\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.5793371376719877cx, 0.6889161816334475cy), \"5\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.344007140322826cx, 0.8100738487709592cy), \"5\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm))], Symbol(\"\"))]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(4.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(1.0,0.0,0.0,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}}(Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}[Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((1.0cx, -0.3778319922961574cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-0.8466389205449993cx, -0.6201890283153411cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.158652258926818cx, -1.0cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-0.15867427534397538cx, 1.0cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-1.0cx, 0.37783236326689495cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.8466885559896273cx, 0.6201476975419185cy), 0.04082482904638631w)], Symbol(\"\"))]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(0.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.25098039215686274,0.8784313725490196,0.8156862745098039,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}}(Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}[Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((1.0cx, -0.3778319922961574cy), \"1\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.8466389205449993cx, -0.6201890283153411cy), \"2\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.158652258926818cx, -1.0cy), \"3\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.15867427534397538cx, 1.0cy), \"4\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-1.0cx, 0.37783236326689495cy), \"5\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.8466885559896273cx, 0.6201476975419185cy), \"6\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm))], Symbol(\"\"))]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(4.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\"))]), List([]), List([]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\"))" + "multiargmin (generic function with 1 method)" ] }, + "execution_count": 12, "metadata": {}, - "output_type": "display_data" - }, + "output_type": "execute_result" + } + ], + "source": [ + "#returns the nbmin indexes for smallest values of itr\n", + "#size is the length of itr\n", + "function multiargmin(itr, nbmin, size)\n", + " if nbmin > size\n", + " error(\"multiargmin : size of array is \", size, \" < nbmin = \", nbmin)\n", + " end\n", + " \n", + " argmins = [i for i in 1:nbmin]\n", + " itr_copy = deepcopy(itr)\n", + " maxitr = maximum(itr)\n", + " \n", + " #we find the nbmin smallest values of itr\n", + " for i in 1:nbmin\n", + " argmins[i] = argmin(itr_copy)\n", + " #once a min is found, it is set to maxitr to find a new minimum\n", + " itr_copy[argmins[i]] = maxitr\n", + " end\n", + " \n", + " return argmins\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "tags": [] + }, + "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "Iteration0\n", - "Iteration2\n" - ] + "data": { + "text/plain": [ + "connect_v1! (generic function with 1 method)" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#connects the vertex 1 (of graph X) to the two vertices v1, v2 with smallest W1[v1], W1[v2]\n", + "#X is an adjacency matrix, W1 the weights of edges starting from 1, n the number of vertices\n", + "function connect_v1!(X, W1, n) \n", + " argmin1, argmin2 = multiargmin(W1[2:n], 2, n-1)\n", + " \n", + " X[1, argmin1+1] = 1\n", + " X[1, argmin2+1] = 1\n", + " \n", + " for u ∈ 2:n\n", + " X[u, 1] = X[1, u]\n", + " end \n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "function hk_mitchell(W; disp=true, maxiter=10000, update_rule=update_rule_2!)\n", + " \n", + " # Initialization\n", + " n = size(W, 1)\n", + " \n", + " if size(W, 2)!=n ; error(\"Weight matrice must be square\") ; end\n", + " \n", + " λ = zeros(n)\n", + "\n", + " g = complete_graph(n-1) #in the TSP the graph is complete\n", + " z = -1 #the objective function\n", + " \n", + " k = 0 \n", + " X = Matrix{Bool}(undef, (n,n)) #the adjacency matrix of the 1-tree solutions\n", + " D = Array{Integer}(undef, n)\n", + " W_updated = Matrix{Integer}(undef, (n,n))\n", + " \n", + " converge = false #whether the algorithm has converged or not\n", + "\n", + " while !converge && k < maxiter # While not a tour\n", + " \n", + " converge, z = held_and_karp_iter!(W, W_updated, λ, X, D, g, update_rule)\n", + " \n", + " # We display the current 1-Tree\n", + " if disp && (k == 0 || k == maxiter || converge)\n", + " println(\"Iteration\", k)\n", + " \n", + " one_tree = SimpleGraph(X)\n", + " edgelabel = []\n", + " for i in 1:n, j in i:n\n", + " if X[i, j] == 1\n", + " push!(edgelabel, W_updated[i, j])\n", + " end\n", + " end\n", + " display(gplot(one_tree, nodelabel = 1:n, edgelabel = edgelabel, edgelabelc=\"red\"))\n", + " end\n", + " \n", + " k+=1\n", + "\n", + " end\n", + " \n", + " return (z, X, λ)\n", + " \n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "z, X, λ = hk_mitchell(example; disp=true, maxiter=100000)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "source_hidden": true }, + "tags": [] + }, + "outputs": [], + "source": [ + "z, X, λ = hk_mitchell(exercise; disp=true, maxiter=100000, update_rule=update_rule_1!)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Linear changes in the update rule do not seem to impact the results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Held and Karp algorithm - attempt 2\n", + "\n", + "Here we will work on the same Master Problem as seen in \"STSP using column generation\". \n", + "However the subsidiary problem will be solved using the algorithm presented by Held and Karp in the section 4 \"An ascent method\" of their paper (which correspond to the one J.E. Mitchell presents in his slides)." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ { "data": { "text/plain": [ - "(22.0, Bool[0 0 … 0 1; 0 0 … 1 0; … ; 0 1 … 0 0; 1 0 … 0 0], [0.0, 2.0, 0.0, 0.0, 0.0, -2.0])" + "held_and_karp_2 (generic function with 1 method)" ] }, - "execution_count": 37, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "z, X, λ = hk_mitchell(example; disp=true, maxiter=100000)" + "function held_and_karp_2(W; update_rule = update_rule_1!, max_iter = 1000)\n", + " n = size(W, 1)\n", + " one_trees_init = wheel_like_1trees(n)\n", + " \n", + " columns = one_trees_init[1:n-2]\n", + " tree_degrees = [sum(columns[t][u,:]) for u ∈ 1:n, t ∈ 1:n-2]\n", + " tree_weights = [dot(columns[t], W)/2 for t ∈ 1:n-2]\n", + " \n", + " reduced_cost = -1\n", + " new_column = one_trees_init[n-1]\n", + " new_degree = [sum(new_column[u,:]) for u ∈ 1:n]\n", + " new_weight = dot(new_column, W)/2\n", + " \n", + " g = complete_graph(n-1)\n", + " k = 0\n", + " \n", + " while reduced_cost < 0 && k < max_iter\n", + " \n", + " push!(columns, new_column)\n", + " tree_degrees = hcat(tree_degrees, new_degree)\n", + " push!(tree_weights, new_weight)\n", + " \n", + " dm = DM(tree_weights, tree_degrees)\n", + " Ï€ = value.(dm[:Ï€])\n", + " μ = value.(dm[:μ])\n", + " \n", + " \n", + " held_and_karp_iter!(W, convert(Matrix{Float64}, deepcopy(W)), Ï€, new_column, new_degree, g, update_rule)\n", + " #new_column = held_and_karp_algo(W, , , update_rule_2!)\n", + " #reduced_cost, new_column, _ = hk_mitchell(W; disp=false, maxiter=100000, update_rule=update_rule_1!)\n", + " #new_degree = [sum(new_column[u,:]) for u ∈ 1:n]\n", + " new_weight = dot(new_column, W)/2\n", + " reduced_cost = new_weight - dot(Ï€, new_degree) - μ\n", + " \n", + " k += 1\n", + " end\n", + " \n", + " lpm = LPM(tree_weights, tree_degrees)\n", + " # ipm = IPM(tree_weights, tree_degrees)\n", + " \n", + " λ = value.(lpm[:λ])\n", + " #println(\"Lambda_t : \", λ)\n", + " println(\"Minimal 1-tree \")\n", + " println(\"Lambda : \", maximum(λ))\n", + " println(\"Index : \", argmax(λ))\n", + " #println(\"1-tree : \", columns[argmax(λ)])\n", + " \n", + " return columns[argmax(λ)] \n", + "end" ] }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 15, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Lambda_t : [0.19999999999999976, 0.20000000000000004, 0.2, 0.19999999999999962, 0.0, 0.20000000000000057, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]\n", + "Minimal 1-tree \n", + "Lambda : 0.20000000000000057\n", + "Index : 6" + ] + }, { "data": { "image/svg+xml": [ @@ -2458,127 +997,81 @@ " <path d=\"M0,0 L15,3.5 L0,7 z\" stroke=\"context-stroke\" fill=\"context-stroke\"/>\n", " </marker>\n", "</defs>\n", - "<g stroke-width=\"1.13\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#D3D3D3\" id=\"img-8c7ecf24-1\">\n", - " <g transform=\"translate(30.8,8.58)\">\n", - " <path fill=\"none\" d=\"M-8.59,-0.15 L8.59,0.15 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(14.21,38.31)\">\n", - " <path fill=\"none\" d=\"M2.11,-26.04 L-2.11,26.04 \" class=\"primitive\"/>\n", + "<g stroke-width=\"1.22\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#D3D3D3\" id=\"img-c48cf432-1\">\n", + " <g transform=\"translate(120.27,28.65)\">\n", + " <path fill=\"none\" d=\"M-7.5,-16.28 L7.5,16.28 \" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(55.93,35.05)\">\n", - " <path fill=\"none\" d=\"M9.39,22.45 L-9.39,-22.45 \" class=\"primitive\"/>\n", + " <g transform=\"translate(90.36,14.42)\">\n", + " <path fill=\"none\" d=\"M15.01,-4.44 L-15.01,4.44 \" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(52.57,76.47)\">\n", - " <path fill=\"none\" d=\"M11.23,-11.92 L-11.23,11.92 \" class=\"primitive\"/>\n", + " <g transform=\"translate(113.33,64.3)\">\n", + " <path fill=\"none\" d=\"M12.69,-11.92 L-12.69,11.92 \" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(84,68.76)\">\n", - " <path fill=\"none\" d=\"M-12.37,-5.41 L12.37,5.41 \" class=\"primitive\"/>\n", + " <g transform=\"translate(60.72,44.5)\">\n", + " <path fill=\"none\" d=\"M7.53,-19.89 L-7.53,19.89 \" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(25.02,79.97)\">\n", - " <path fill=\"none\" d=\"M-9.75,-8.62 L9.75,8.62 \" class=\"primitive\"/>\n", + " <g transform=\"translate(74.33,74.06)\">\n", + " <path fill=\"none\" d=\"M-17.01,-4.17 L17.01,4.17 \" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(115.37,82.48)\">\n", - " <path fill=\"none\" d=\"M9.53,4.17 L-9.53,-4.17 \" class=\"primitive\"/>\n", + " <g transform=\"translate(31.71,80.08)\">\n", + " <path fill=\"none\" d=\"M15.28,-8.88 L-15.28,8.88 \" class=\"primitive\"/>\n", " </g>\n", "</g>\n", - "<g stroke-width=\"1.13\" stroke=\"#D3D3D3\" id=\"img-8c7ecf24-2\">\n", + "<g stroke-width=\"1.22\" stroke=\"#D3D3D3\" id=\"img-c48cf432-2\">\n", "</g>\n", - "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#FF0000\" id=\"img-8c7ecf24-3\">\n", - " <g transform=\"translate(30.8,8.58)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">0</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(14.21,38.31)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">0</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(55.93,35.05)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(52.57,76.47)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">0</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(84,68.76)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(25.02,79.97)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(115.37,82.48)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">0</text>\n", - " </g>\n", - " </g>\n", + "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-c48cf432-3\">\n", "</g>\n", - "<g stroke-width=\"0\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#40E0D0\" id=\"img-8c7ecf24-4\">\n", - " <g transform=\"translate(16.64,8.33)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(66.89,61.28)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", + "<g stroke-width=\"0\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#40E0D0\" id=\"img-c48cf432-4\">\n", + " <g transform=\"translate(110.91,8.33)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(44.96,8.82)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", + " <g transform=\"translate(129.64,48.98)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(11.79,68.28)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", + " <g transform=\"translate(69.8,20.51)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(38.25,91.67)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", + " <g transform=\"translate(51.64,68.5)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(129.64,88.72)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", + " <g transform=\"translate(97.02,79.62)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(101.11,76.24)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", + " <g transform=\"translate(11.79,91.67)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", " </g>\n", "</g>\n", - "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-8c7ecf24-5\">\n", - " <g transform=\"translate(16.64,8.33)\">\n", + "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-c48cf432-5\">\n", + " <g transform=\"translate(110.91,8.33)\">\n", " <g class=\"primitive\">\n", " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", " </g>\n", " </g>\n", - " <g transform=\"translate(66.89,61.28)\">\n", + " <g transform=\"translate(129.64,48.98)\">\n", " <g class=\"primitive\">\n", " <text text-anchor=\"middle\" dy=\"0.35em\">2</text>\n", " </g>\n", " </g>\n", - " <g transform=\"translate(44.96,8.82)\">\n", + " <g transform=\"translate(69.8,20.51)\">\n", " <g class=\"primitive\">\n", " <text text-anchor=\"middle\" dy=\"0.35em\">3</text>\n", " </g>\n", " </g>\n", - " <g transform=\"translate(11.79,68.28)\">\n", + " <g transform=\"translate(51.64,68.5)\">\n", " <g class=\"primitive\">\n", " <text text-anchor=\"middle\" dy=\"0.35em\">4</text>\n", " </g>\n", " </g>\n", - " <g transform=\"translate(38.25,91.67)\">\n", + " <g transform=\"translate(97.02,79.62)\">\n", " <g class=\"primitive\">\n", " <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n", " </g>\n", " </g>\n", - " <g transform=\"translate(129.64,88.72)\">\n", + " <g transform=\"translate(11.79,91.67)\">\n", " <g class=\"primitive\">\n", " <text text-anchor=\"middle\" dy=\"0.35em\">6</text>\n", " </g>\n", " </g>\n", - " <g transform=\"translate(101.11,76.24)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">7</text>\n", - " </g>\n", - " </g>\n", "</g>\n", "</svg>\n" ], @@ -2593,133 +1086,87 @@ " stroke-width=\"0.3\"\n", " font-size=\"3.88\"\n", "\n", - " id=\"img-6809378e\">\n", + " id=\"img-055c4996\">\n", "<defs>\n", " <marker id=\"arrow\" markerWidth=\"15\" markerHeight=\"7\" refX=\"5\" refY=\"3.5\" orient=\"auto\" markerUnits=\"strokeWidth\">\n", " <path d=\"M0,0 L15,3.5 L0,7 z\" stroke=\"context-stroke\" fill=\"context-stroke\"/>\n", " </marker>\n", "</defs>\n", - "<g stroke-width=\"1.13\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#D3D3D3\" id=\"img-6809378e-1\">\n", - " <g transform=\"translate(30.8,8.58)\">\n", - " <path fill=\"none\" d=\"M-8.59,-0.15 L8.59,0.15 \" class=\"primitive\"/>\n", + "<g stroke-width=\"1.22\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#D3D3D3\" id=\"img-055c4996-1\">\n", + " <g transform=\"translate(120.27,28.65)\">\n", + " <path fill=\"none\" d=\"M-7.5,-16.28 L7.5,16.28 \" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(14.21,38.31)\">\n", - " <path fill=\"none\" d=\"M2.11,-26.04 L-2.11,26.04 \" class=\"primitive\"/>\n", + " <g transform=\"translate(90.36,14.42)\">\n", + " <path fill=\"none\" d=\"M15.01,-4.44 L-15.01,4.44 \" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(55.93,35.05)\">\n", - " <path fill=\"none\" d=\"M9.39,22.45 L-9.39,-22.45 \" class=\"primitive\"/>\n", + " <g transform=\"translate(113.33,64.3)\">\n", + " <path fill=\"none\" d=\"M12.69,-11.92 L-12.69,11.92 \" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(52.57,76.47)\">\n", - " <path fill=\"none\" d=\"M11.23,-11.92 L-11.23,11.92 \" class=\"primitive\"/>\n", + " <g transform=\"translate(60.72,44.5)\">\n", + " <path fill=\"none\" d=\"M7.53,-19.89 L-7.53,19.89 \" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(84,68.76)\">\n", - " <path fill=\"none\" d=\"M-12.37,-5.41 L12.37,5.41 \" class=\"primitive\"/>\n", + " <g transform=\"translate(74.33,74.06)\">\n", + " <path fill=\"none\" d=\"M-17.01,-4.17 L17.01,4.17 \" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(25.02,79.97)\">\n", - " <path fill=\"none\" d=\"M-9.75,-8.62 L9.75,8.62 \" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(115.37,82.48)\">\n", - " <path fill=\"none\" d=\"M9.53,4.17 L-9.53,-4.17 \" class=\"primitive\"/>\n", + " <g transform=\"translate(31.71,80.08)\">\n", + " <path fill=\"none\" d=\"M15.28,-8.88 L-15.28,8.88 \" class=\"primitive\"/>\n", " </g>\n", "</g>\n", - "<g stroke-width=\"1.13\" stroke=\"#D3D3D3\" id=\"img-6809378e-2\">\n", + "<g stroke-width=\"1.22\" stroke=\"#D3D3D3\" id=\"img-055c4996-2\">\n", "</g>\n", - "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#FF0000\" id=\"img-6809378e-3\">\n", - " <g transform=\"translate(30.8,8.58)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">0</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(14.21,38.31)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">0</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(55.93,35.05)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(52.57,76.47)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">0</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(84,68.76)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(25.02,79.97)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(115.37,82.48)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">0</text>\n", - " </g>\n", - " </g>\n", + "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-055c4996-3\">\n", "</g>\n", - "<g stroke-width=\"0\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#40E0D0\" id=\"img-6809378e-4\">\n", - " <g transform=\"translate(16.64,8.33)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", - " </g>\n", - " <g transform=\"translate(66.89,61.28)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", + "<g stroke-width=\"0\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#40E0D0\" id=\"img-055c4996-4\">\n", + " <g transform=\"translate(110.91,8.33)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(44.96,8.82)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", + " <g transform=\"translate(129.64,48.98)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(11.79,68.28)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", + " <g transform=\"translate(69.8,20.51)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(38.25,91.67)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", + " <g transform=\"translate(51.64,68.5)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(129.64,88.72)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", + " <g transform=\"translate(97.02,79.62)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(101.11,76.24)\">\n", - " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", + " <g transform=\"translate(11.79,91.67)\">\n", + " <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n", " </g>\n", "</g>\n", - "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-6809378e-5\">\n", - " <g transform=\"translate(16.64,8.33)\">\n", + "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-055c4996-5\">\n", + " <g transform=\"translate(110.91,8.33)\">\n", " <g class=\"primitive\">\n", " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", " </g>\n", " </g>\n", - " <g transform=\"translate(66.89,61.28)\">\n", + " <g transform=\"translate(129.64,48.98)\">\n", " <g class=\"primitive\">\n", " <text text-anchor=\"middle\" dy=\"0.35em\">2</text>\n", " </g>\n", " </g>\n", - " <g transform=\"translate(44.96,8.82)\">\n", + " <g transform=\"translate(69.8,20.51)\">\n", " <g class=\"primitive\">\n", " <text text-anchor=\"middle\" dy=\"0.35em\">3</text>\n", " </g>\n", " </g>\n", - " <g transform=\"translate(11.79,68.28)\">\n", + " <g transform=\"translate(51.64,68.5)\">\n", " <g class=\"primitive\">\n", " <text text-anchor=\"middle\" dy=\"0.35em\">4</text>\n", " </g>\n", " </g>\n", - " <g transform=\"translate(38.25,91.67)\">\n", + " <g transform=\"translate(97.02,79.62)\">\n", " <g class=\"primitive\">\n", " <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n", " </g>\n", " </g>\n", - " <g transform=\"translate(129.64,88.72)\">\n", + " <g transform=\"translate(11.79,91.67)\">\n", " <g class=\"primitive\">\n", " <text text-anchor=\"middle\" dy=\"0.35em\">6</text>\n", " </g>\n", " </g>\n", - " <g transform=\"translate(101.11,76.24)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">7</text>\n", - " </g>\n", - " </g>\n", "</g>\n", "<script> <![CDATA[\n", "(function(N){var k=/[\\.\\/]/,L=/\\s*,\\s*/,C=function(a,d){return a-d},a,v,y={n:{}},M=function(){for(var a=0,d=this.length;a<d;a++)if(\"undefined\"!=typeof this[a])return this[a]},A=function(){for(var a=this.length;--a;)if(\"undefined\"!=typeof this[a])return this[a]},w=function(k,d){k=String(k);var f=v,n=Array.prototype.slice.call(arguments,2),u=w.listeners(k),p=0,b,q=[],e={},l=[],r=a;l.firstDefined=M;l.lastDefined=A;a=k;for(var s=v=0,x=u.length;s<x;s++)\"zIndex\"in u[s]&&(q.push(u[s].zIndex),0>u[s].zIndex&&\n", @@ -2870,7 +1317,7 @@ "</svg>\n" ], "text/plain": [ - "Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), Compose.UnitBox{Float64,Float64,Float64,Float64}(-1.2, -1.2, 2.4, 2.4, 0.0mm, 0.0mm, 0.0mm, 0.0mm), nothing, nothing, nothing, List([Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.LinePrimitive}(Compose.LinePrimitive[Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.823066084646732cx, -0.9977164958730251cy), (-0.5314970266088089cx, -0.990668281584486cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.9229374344120268cx, -0.9056637565395586cy), (-0.9945921724931598cx, 0.3443093256576422cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.09155913524361098cx, 0.17999396575659415cy), (-0.4102404415238952cx, -0.8977718467414769cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.11716985526545154cx, 0.34923523088052283cy), (-0.49848422126346803cx, 0.9213716655921056cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.015602723954919712cx, 0.3203002360492352cy), (0.43554468543381386cx, 0.5799572103508789cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.9409695861933756cx, 0.512428911915697cy), (-0.6099184179183924cx, 0.9262166572023868cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.9196502984542088cx, 0.8795020512917776cy), (0.5962631833516765cx, 0.6793747582175499cy)])], Symbol(\"\"))]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(1.1338934190276817mm)]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.8274509803921568,0.8274509803921568,0.8274509803921568,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(1.1338934190276817mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.8274509803921568,0.8274509803921568,0.8274509803921568,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}}(Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}[Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.6772815556277705cx, -0.9941923887287556cy), \"0\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.9587648034525933cx, -0.28067721544095814cy), \"0\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.2508997883837531cx, -0.35888894049244136cy), \"1\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.3078270382644598cx, 0.6353034482363142cy), \"0\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.22557370469436677cx, 0.45012872320005703cy), \"1\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.7754440020558839cx, 0.7193227845590419cy), \"1\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.7579567409029426cx, 0.7794384047546637cy), \"0\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm))], Symbol(\"\"))]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(4.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(1.0,0.0,0.0,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}}(Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}[Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-0.9175296069051865cx, -1.0cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-0.06476607241715171cx, 0.2706068964726285cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-0.4370335043503545cx, -0.9883847774575112cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-1.0cx, 0.4386455691180837cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-0.5508880041117679cx, 1.0cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((1.0cx, 0.9292262595818419cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.5159134818058853cx, 0.6296505499274856cy), 0.03779644730092272w)], Symbol(\"\"))]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(0.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.25098039215686274,0.8784313725490196,0.8156862745098039,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}}(Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}[Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.9175296069051865cx, -1.0cy), \"1\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.06476607241715171cx, 0.2706068964726285cy), \"2\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.4370335043503545cx, -0.9883847774575112cy), \"3\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-1.0cx, 0.4386455691180837cy), \"4\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.5508880041117679cx, 1.0cy), \"5\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((1.0cx, 0.9292262595818419cy), \"6\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.5159134818058853cx, 0.6296505499274856cy), \"7\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm))], Symbol(\"\"))]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(4.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\"))]), List([]), List([]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\"))" + "Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), Compose.UnitBox{Float64,Float64,Float64,Float64}(-1.2, -1.2, 2.4, 2.4, 0.0mm, 0.0mm, 0.0mm, 0.0mm), nothing, nothing, nothing, List([Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.LinePrimitive}(Compose.LinePrimitive[Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.7137976100076429cx, -0.9029591881648369cy), (0.9683812159462271cx, -0.12161985018812808cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.5880382681027622cx, -0.9605763772066938cy), (0.07874864313138331cx, -0.7472990977245455cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.9386303854321015cx, 0.056971173629924765cy), (0.5079120614872624cx, 0.6293256013044635cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.041782045348172606cx, -0.609284259946941cy), (-0.29731975857716114cx, 0.3453822392933723cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.2272733598446124cx, 0.47738995426603337cy), (0.35010591755836706cx, 0.6774593132989903cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.40254719171251296cx, 0.5087912481316859cy), (-0.9211626974930963cx, 0.9351822061459847cy)])], Symbol(\"\"))]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(1.2247448713915892mm)]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.8274509803921568,0.8274509803921568,0.8274509803921568,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(1.2247448713915892mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.8274509803921568,0.8274509803921568,0.8274509803921568,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(4.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}}(Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}[Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.6821788259538699cx, -1.0cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((1.0cx, -0.024579038352964933cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-0.015391914719724453cx, -0.7078754749312393cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-0.3237098892056093cx, 0.44397345427767054cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.44654244691936396cx, 0.7108758132873532cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-1.0cx, 1.0cy), 0.04082482904638631w)], Symbol(\"\"))]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(0.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.25098039215686274,0.8784313725490196,0.8156862745098039,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}}(Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}[Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.6821788259538699cx, -1.0cy), \"1\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((1.0cx, -0.024579038352964933cy), \"2\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.015391914719724453cx, -0.7078754749312393cy), \"3\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.3237098892056093cx, 0.44397345427767054cy), \"4\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.44654244691936396cx, 0.7108758132873532cy), \"5\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-1.0cx, 1.0cy), \"6\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm))], Symbol(\"\"))]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(4.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\"))]), List([]), List([]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\"))" ] }, "metadata": {}, @@ -2880,7 +1327,29 @@ "name": "stdout", "output_type": "stream", "text": [ - "Iteration0" + "\n", + "1-tree : [0.0 1.0 1.0 0.0 0.0 0.0; 1.0 0.0 0.0 0.0 1.0 0.0; 1.0 0.0 0.0 1.0 0.0 0.0; 0.0 0.0 1.0 0.0 1.0 1.0; 0.0 1.0 0.0 1.0 0.0 0.0; 0.0 0.0 0.0 1.0 0.0 0.0]\n" + ] + } + ], + "source": [ + "display_S(held_and_karp_2(example))" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Lambda_t : [0.16666666666666663, 0.16666666666666663, 0.16666666666666707, 0.16666666666666657, 0.16666666666666666, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1666666666666665, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]\n", + "Minimal 1-tree \n", + "Lambda : 0.16666666666666707\n", + "Index : 3\n", + "1-tree : [0.0 0.0 0.0 1.0 1.0 0.0 0.0; 0.0 0.0 0.0 1.0 0.0 0.0 0.0; 0.0 0.0 0.0 1.0 0.0 0.0 0.0; 1.0 1.0 1.0 0.0 1.0 1.0 1.0; 1.0 0.0 0.0 1.0 0.0 0.0 0.0; 0.0 0.0 0.0 1.0 0.0 0.0 0.0; 0.0" ] }, { @@ -2901,123 +1370,88 @@ " <path d=\"M0,0 L15,3.5 L0,7 z\" stroke=\"context-stroke\" fill=\"context-stroke\"/>\n", " </marker>\n", "</defs>\n", - "<g stroke-width=\"1.13\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#D3D3D3\" id=\"img-8a9d3829-1\">\n", - " <g transform=\"translate(59.61,16.63)\">\n", - " <path fill=\"none\" d=\"M-10.89,-5.9 L10.89,5.9 \" class=\"primitive\"/>\n", + "<g stroke-width=\"1.13\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#D3D3D3\" id=\"img-12f8a343-1\">\n", + " <g transform=\"translate(100.41,49.59)\">\n", + " <path fill=\"none\" d=\"M23.66,-0.23 L-23.66,0.23 \" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(28.04,14.07)\">\n", - " <path fill=\"none\" d=\"M11.27,-3.98 L-11.27,3.98 \" class=\"primitive\"/>\n", + " <g transform=\"translate(124.48,61.35)\">\n", + " <path fill=\"none\" d=\"M3.54,-8.27 L-3.54,8.27 \" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(74.49,37.39)\">\n", - " <path fill=\"none\" d=\"M-0.29,8.52 L0.29,-8.52 \" class=\"primitive\"/>\n", + " <g transform=\"translate(81.3,29.11)\">\n", + " <path fill=\"none\" d=\"M8.3,-17.05 L-8.3,17.05 \" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(51.83,45.33)\">\n", - " <path fill=\"none\" d=\"M16.89,3.43 L-16.89,-3.43 \" class=\"primitive\"/>\n", + " <g transform=\"translate(41.49,54.9)\">\n", + " <path fill=\"none\" d=\"M-24.29,4.11 L24.29,-4.11 \" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(89.46,61.45)\">\n", - " <path fill=\"none\" d=\"M-11.58,-8.73 L11.58,8.73 \" class=\"primitive\"/>\n", + " <g transform=\"translate(95.26,61.63)\">\n", + " <path fill=\"none\" d=\"M-19.49,-9.52 L19.49,9.52 \" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(20.69,30.31)\">\n", - " <path fill=\"none\" d=\"M-6.04,-7.12 L6.04,7.12 \" class=\"primitive\"/>\n", + " <g transform=\"translate(50.38,33.44)\">\n", + " <path fill=\"none\" d=\"M17.09,13.51 L-17.09,-13.51 \" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(117.25,82.36)\">\n", - " <path fill=\"none\" d=\"M8.57,6.44 L-8.57,-6.44 \" class=\"primitive\"/>\n", + " <g transform=\"translate(63.37,70.77)\">\n", + " <path fill=\"none\" d=\"M6.39,-17.09 L-6.39,17.09 \" class=\"primitive\"/>\n", " </g>\n", "</g>\n", - "<g stroke-width=\"1.13\" stroke=\"#D3D3D3\" id=\"img-8a9d3829-2\">\n", + "<g stroke-width=\"1.13\" stroke=\"#D3D3D3\" id=\"img-12f8a343-2\">\n", "</g>\n", - "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#FF0000\" id=\"img-8a9d3829-3\">\n", - " <g transform=\"translate(59.61,16.63)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">0</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(28.04,14.07)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">0</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(74.49,37.39)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(51.83,45.33)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">0</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(89.46,61.45)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(20.69,30.31)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(117.25,82.36)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">0</text>\n", - " </g>\n", - " </g>\n", + "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-12f8a343-3\">\n", "</g>\n", - "<g stroke-width=\"0\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#40E0D0\" id=\"img-8a9d3829-4\">\n", - " <g transform=\"translate(44.3,8.33)\">\n", + "<g stroke-width=\"0\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#40E0D0\" id=\"img-12f8a343-4\">\n", + " <g transform=\"translate(129.64,49.31)\">\n", " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(74.07,49.85)\">\n", + " <g transform=\"translate(91.41,8.33)\">\n", " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(74.92,24.93)\">\n", + " <g transform=\"translate(11.79,59.93)\">\n", " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(11.79,19.81)\">\n", + " <g transform=\"translate(71.19,49.88)\">\n", " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(29.59,40.81)\">\n", + " <g transform=\"translate(119.33,73.38)\">\n", " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(129.64,91.67)\">\n", + " <g transform=\"translate(29.58,17)\">\n", " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(104.86,73.06)\">\n", + " <g transform=\"translate(55.55,91.67)\">\n", " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", " </g>\n", "</g>\n", - "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-8a9d3829-5\">\n", - " <g transform=\"translate(44.3,8.33)\">\n", + "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-12f8a343-5\">\n", + " <g transform=\"translate(129.64,49.31)\">\n", " <g class=\"primitive\">\n", " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", " </g>\n", " </g>\n", - " <g transform=\"translate(74.07,49.85)\">\n", + " <g transform=\"translate(91.41,8.33)\">\n", " <g class=\"primitive\">\n", " <text text-anchor=\"middle\" dy=\"0.35em\">2</text>\n", " </g>\n", " </g>\n", - " <g transform=\"translate(74.92,24.93)\">\n", + " <g transform=\"translate(11.79,59.93)\">\n", " <g class=\"primitive\">\n", " <text text-anchor=\"middle\" dy=\"0.35em\">3</text>\n", " </g>\n", " </g>\n", - " <g transform=\"translate(11.79,19.81)\">\n", + " <g transform=\"translate(71.19,49.88)\">\n", " <g class=\"primitive\">\n", " <text text-anchor=\"middle\" dy=\"0.35em\">4</text>\n", " </g>\n", " </g>\n", - " <g transform=\"translate(29.59,40.81)\">\n", + " <g transform=\"translate(119.33,73.38)\">\n", " <g class=\"primitive\">\n", " <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n", " </g>\n", " </g>\n", - " <g transform=\"translate(129.64,91.67)\">\n", + " <g transform=\"translate(29.58,17)\">\n", " <g class=\"primitive\">\n", " <text text-anchor=\"middle\" dy=\"0.35em\">6</text>\n", " </g>\n", " </g>\n", - " <g transform=\"translate(104.86,73.06)\">\n", + " <g transform=\"translate(55.55,91.67)\">\n", " <g class=\"primitive\">\n", " <text text-anchor=\"middle\" dy=\"0.35em\">7</text>\n", " </g>\n", @@ -3036,129 +1470,94 @@ " stroke-width=\"0.3\"\n", " font-size=\"3.88\"\n", "\n", - " id=\"img-3eb991f3\">\n", + " id=\"img-7a535555\">\n", "<defs>\n", " <marker id=\"arrow\" markerWidth=\"15\" markerHeight=\"7\" refX=\"5\" refY=\"3.5\" orient=\"auto\" markerUnits=\"strokeWidth\">\n", " <path d=\"M0,0 L15,3.5 L0,7 z\" stroke=\"context-stroke\" fill=\"context-stroke\"/>\n", " </marker>\n", "</defs>\n", - "<g stroke-width=\"1.13\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#D3D3D3\" id=\"img-3eb991f3-1\">\n", - " <g transform=\"translate(59.61,16.63)\">\n", - " <path fill=\"none\" d=\"M-10.89,-5.9 L10.89,5.9 \" class=\"primitive\"/>\n", + "<g stroke-width=\"1.13\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#D3D3D3\" id=\"img-7a535555-1\">\n", + " <g transform=\"translate(100.41,49.59)\">\n", + " <path fill=\"none\" d=\"M23.66,-0.23 L-23.66,0.23 \" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(28.04,14.07)\">\n", - " <path fill=\"none\" d=\"M11.27,-3.98 L-11.27,3.98 \" class=\"primitive\"/>\n", + " <g transform=\"translate(124.48,61.35)\">\n", + " <path fill=\"none\" d=\"M3.54,-8.27 L-3.54,8.27 \" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(74.49,37.39)\">\n", - " <path fill=\"none\" d=\"M-0.29,8.52 L0.29,-8.52 \" class=\"primitive\"/>\n", + " <g transform=\"translate(81.3,29.11)\">\n", + " <path fill=\"none\" d=\"M8.3,-17.05 L-8.3,17.05 \" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(51.83,45.33)\">\n", - " <path fill=\"none\" d=\"M16.89,3.43 L-16.89,-3.43 \" class=\"primitive\"/>\n", + " <g transform=\"translate(41.49,54.9)\">\n", + " <path fill=\"none\" d=\"M-24.29,4.11 L24.29,-4.11 \" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(89.46,61.45)\">\n", - " <path fill=\"none\" d=\"M-11.58,-8.73 L11.58,8.73 \" class=\"primitive\"/>\n", + " <g transform=\"translate(95.26,61.63)\">\n", + " <path fill=\"none\" d=\"M-19.49,-9.52 L19.49,9.52 \" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(20.69,30.31)\">\n", - " <path fill=\"none\" d=\"M-6.04,-7.12 L6.04,7.12 \" class=\"primitive\"/>\n", + " <g transform=\"translate(50.38,33.44)\">\n", + " <path fill=\"none\" d=\"M17.09,13.51 L-17.09,-13.51 \" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(117.25,82.36)\">\n", - " <path fill=\"none\" d=\"M8.57,6.44 L-8.57,-6.44 \" class=\"primitive\"/>\n", + " <g transform=\"translate(63.37,70.77)\">\n", + " <path fill=\"none\" d=\"M6.39,-17.09 L-6.39,17.09 \" class=\"primitive\"/>\n", " </g>\n", "</g>\n", - "<g stroke-width=\"1.13\" stroke=\"#D3D3D3\" id=\"img-3eb991f3-2\">\n", + "<g stroke-width=\"1.13\" stroke=\"#D3D3D3\" id=\"img-7a535555-2\">\n", "</g>\n", - "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#FF0000\" id=\"img-3eb991f3-3\">\n", - " <g transform=\"translate(59.61,16.63)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">0</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(28.04,14.07)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">0</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(74.49,37.39)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(51.83,45.33)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">0</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(89.46,61.45)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(20.69,30.31)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", - " </g>\n", - " </g>\n", - " <g transform=\"translate(117.25,82.36)\">\n", - " <g class=\"primitive\">\n", - " <text text-anchor=\"middle\" dy=\"0.35em\">0</text>\n", - " </g>\n", - " </g>\n", + "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-7a535555-3\">\n", "</g>\n", - "<g stroke-width=\"0\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#40E0D0\" id=\"img-3eb991f3-4\">\n", - " <g transform=\"translate(44.3,8.33)\">\n", + "<g stroke-width=\"0\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#40E0D0\" id=\"img-7a535555-4\">\n", + " <g transform=\"translate(129.64,49.31)\">\n", " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(74.07,49.85)\">\n", + " <g transform=\"translate(91.41,8.33)\">\n", " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(74.92,24.93)\">\n", + " <g transform=\"translate(11.79,59.93)\">\n", " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(11.79,19.81)\">\n", + " <g transform=\"translate(71.19,49.88)\">\n", " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(29.59,40.81)\">\n", + " <g transform=\"translate(119.33,73.38)\">\n", " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(129.64,91.67)\">\n", + " <g transform=\"translate(29.58,17)\">\n", " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", " </g>\n", - " <g transform=\"translate(104.86,73.06)\">\n", + " <g transform=\"translate(55.55,91.67)\">\n", " <circle cx=\"0\" cy=\"0\" r=\"5.35\" class=\"primitive\"/>\n", " </g>\n", "</g>\n", - "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-3eb991f3-5\">\n", - " <g transform=\"translate(44.3,8.33)\">\n", + "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-7a535555-5\">\n", + " <g transform=\"translate(129.64,49.31)\">\n", " <g class=\"primitive\">\n", " <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n", " </g>\n", " </g>\n", - " <g transform=\"translate(74.07,49.85)\">\n", + " <g transform=\"translate(91.41,8.33)\">\n", " <g class=\"primitive\">\n", " <text text-anchor=\"middle\" dy=\"0.35em\">2</text>\n", " </g>\n", " </g>\n", - " <g transform=\"translate(74.92,24.93)\">\n", + " <g transform=\"translate(11.79,59.93)\">\n", " <g class=\"primitive\">\n", " <text text-anchor=\"middle\" dy=\"0.35em\">3</text>\n", " </g>\n", " </g>\n", - " <g transform=\"translate(11.79,19.81)\">\n", + " <g transform=\"translate(71.19,49.88)\">\n", " <g class=\"primitive\">\n", " <text text-anchor=\"middle\" dy=\"0.35em\">4</text>\n", " </g>\n", " </g>\n", - " <g transform=\"translate(29.59,40.81)\">\n", + " <g transform=\"translate(119.33,73.38)\">\n", " <g class=\"primitive\">\n", " <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n", " </g>\n", " </g>\n", - " <g transform=\"translate(129.64,91.67)\">\n", + " <g transform=\"translate(29.58,17)\">\n", " <g class=\"primitive\">\n", " <text text-anchor=\"middle\" dy=\"0.35em\">6</text>\n", " </g>\n", " </g>\n", - " <g transform=\"translate(104.86,73.06)\">\n", + " <g transform=\"translate(55.55,91.67)\">\n", " <g class=\"primitive\">\n", " <text text-anchor=\"middle\" dy=\"0.35em\">7</text>\n", " </g>\n", @@ -3313,7 +1712,7 @@ "</svg>\n" ], "text/plain": [ - "Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), Compose.UnitBox{Float64,Float64,Float64,Float64}(-1.2, -1.2, 2.4, 2.4, 0.0mm, 0.0mm, 0.0mm, 0.0mm), nothing, nothing, nothing, List([Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.LinePrimitive}(Compose.LinePrimitive[Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.3732970988646088cx, -0.9425100034743548cy), (-0.0035944150334036445cx, -0.6590820847446486cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.5328321871024642cx, -0.9578020439322021cy), (-0.915454722590368cx, -0.7668287638418285cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.059305294413316015cx, -0.09806833641329499cy), (0.06912722468468135cx, -0.5071281965545871cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.03377642743957873cx, -0.029709433353822354cy), (-0.6070377629739077cx, -0.1944974028735811cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.12168160525887245cx, 0.06531334962420951cy), (0.5148047451259053cx, 0.48442382737895096cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.9514164532163095cx, -0.6435863112891467cy), (-0.7464348605003546cx, -0.3016468879634087cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.9352255324165545cx, 0.9312043622178514cy), (0.6442236946650456cx, 0.6221372595341879cy)])], Symbol(\"\"))]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(1.1338934190276817mm)]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.8274509803921568,0.8274509803921568,0.8274509803921568,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(1.1338934190276817mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.8274509803921568,0.8274509803921568,0.8274509803921568,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}}(Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}[Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.18844575694900623cx, -0.8007960441095017cy), \"0\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.7241434548464161cx, -0.8623154038870153cy), \"0\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.06421625954899868cx, -0.30259826648394106cy), \"1\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.3204070952067432cx, -0.11210341811370172cy), \"0\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.31824317519238887cx, 0.27486858850158025cy), \"1\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.8489256568583321cx, -0.47261659962627767cy), \"1\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.7897246135408cx, 0.7766708108760196cy), \"0\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm))], Symbol(\"\"))]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(4.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(1.0,0.0,0.0,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}}(Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}[Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-0.44828690969283214cx, -1.0cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.05703712330317767cx, -0.0036044447488787767cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.07139539579481968cx, -0.6015920882190033cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-1.0cx, -0.7246308077740307cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-0.6978513137166641cx, -0.22060239147852467cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((1.0cx, 1.0cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.5794492270816001cx, 0.5533416217520393cy), 0.03779644730092272w)], Symbol(\"\"))]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(0.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.25098039215686274,0.8784313725490196,0.8156862745098039,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}}(Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}[Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.44828690969283214cx, -1.0cy), \"1\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.05703712330317767cx, -0.0036044447488787767cy), \"2\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.07139539579481968cx, -0.6015920882190033cy), \"3\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-1.0cx, -0.7246308077740307cy), \"4\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.6978513137166641cx, -0.22060239147852467cy), \"5\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((1.0cx, 1.0cy), \"6\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.5794492270816001cx, 0.5533416217520393cy), \"7\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm))], Symbol(\"\"))]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(4.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\"))]), List([]), List([]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\"))" + "Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), Compose.UnitBox{Float64,Float64,Float64,Float64}(-1.2, -1.2, 2.4, 2.4, 0.0mm, 0.0mm, 0.0mm, 0.0mm), nothing, nothing, nothing, List([Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.LinePrimitive}(Compose.LinePrimitive[Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.9055179626946348cx, -0.015327511771497975cy), (0.10254599595431403cx, -0.004194395087874463cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.9726174984022002cx, 0.07379905786545382cy), (0.8524151020155163cx, 0.4707931125210726cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.3205965923109369cx, -0.9106557381905526cy), (0.03882390517517571cx, -0.0922286739970505cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.9081029217123578cx, 0.21633066379097596cy), (-0.08383311963869336cx, 0.01910418555682785cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.08581966463742435cx, 0.050805639170215355cy), (0.7472768944292412cx, 0.5075396137004773cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.05494558143630249cx, -0.07330010139687326cy), (-0.6350695485917968cx, -0.7216119113037657cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.01609823126742584cx, 0.08846524575930155cy), (-0.23303903333095669cx, 0.9086503420530954cy)])], Symbol(\"\"))]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(1.1338934190276817mm)]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.8274509803921568,0.8274509803921568,0.8274509803921568,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(1.1338934190276817mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.8274509803921568,0.8274509803921568,0.8274509803921568,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(4.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}}(Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}[Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((1.0cx, -0.016637494671769337cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.3513565388371638cx, -1.0cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-1.0cx, 0.23831926153540683cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.008063958648948821cx, -0.002884412187603047cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.8250326004177166cx, 0.5612296650582957cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-0.698079088677048cx, -0.7920276005130359cy), 0.03779644730092272w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-0.2572012232473313cx, 1.0cy), 0.03779644730092272w)], Symbol(\"\"))]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(0.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.25098039215686274,0.8784313725490196,0.8156862745098039,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}}(Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}[Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((1.0cx, -0.016637494671769337cy), \"1\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.3513565388371638cx, -1.0cy), \"2\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-1.0cx, 0.23831926153540683cy), \"3\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.008063958648948821cx, -0.002884412187603047cy), \"4\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.8250326004177166cx, 0.5612296650582957cy), \"5\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.698079088677048cx, -0.7920276005130359cy), \"6\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.2572012232473313cx, 1.0cy), \"7\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm))], Symbol(\"\"))]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(4.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\"))]), List([]), List([]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\"))" ] }, "metadata": {}, @@ -3323,140 +1722,10 @@ "name": "stdout", "output_type": "stream", "text": [ - "\n", - "Iteration100000\n" - ] - }, - { - "data": { - "text/plain": [ - "(3.0, Bool[0 0 … 0 0; 0 0 … 0 1; … ; 0 0 … 0 1; 0 1 … 1 0], [0.0, -1.0, 0.0, 0.0, 0.0, 1.0, 0.0])" - ] - }, - "execution_count": 38, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "z, X, λ = hk_mitchell(exercise; disp=true, maxiter=100000, update_rule=update_rule_1!)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Linear changes in the update rule do not seem to impact the results" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Held and Karp algorithm - attempt 2\n", - "\n", - "Here we will work on the same Master Problem as seen in \"STSP using column generation\". \n", - "However the subsidiary problem will be solved using the algorithm presented by Held and Karp in the section 4 \"An ascent method\" of their paper (which correspond to the one J.E. Mitchell presents in his slides)." - ] - }, - { - "cell_type": "code", - "execution_count": 46, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "held_and_karp_2 (generic function with 1 method)" - ] - }, - "execution_count": 46, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "function held_and_karp_2(W; update_rule = update_rule_1!)\n", - " n = size(W, 1)\n", - " one_trees_init = wheel_like_1trees(n)\n", - " \n", - " columns = one_trees_init[1:n-2]\n", - " tree_degrees = [sum(columns[t][u,:]) for u ∈ 1:n, t ∈ 1:n-2]\n", - " tree_weights = [dot(columns[t], W)/2 for t ∈ 1:n-2]\n", - " \n", - " reduced_cost = -1\n", - " new_column = one_trees_init[n-1]\n", - " new_degree = [sum(new_column[u,:]) for u ∈ 1:n]\n", - " new_weight = dot(new_column, W)/2\n", - " \n", - " g = complete_graph(n-1)\n", - " converge = false\n", - " \n", - " while reduced_cost < 0\n", - " \n", - " push!(columns, new_column)\n", - " tree_degrees = hcat(tree_degrees, new_degree)\n", - " push!(tree_weights, new_weight)\n", - " \n", - " dm = DM(tree_weights, tree_degrees)\n", - " Ï€ = value.(dm[:Ï€])\n", - " μ = value.(dm[:μ])\n", - " \n", - " \n", - " held_and_karp_iter!(W, deepcopy(W), vcat([μ], Ï€), new_column, new_degree, g, update_rule)\n", - " #new_column = held_and_karp_algo(W, , , update_rule_2!)\n", - " #reduced_cost, new_column, _ = hk_mitchell(W; disp=false, maxiter=100000, update_rule=update_rule_1!)\n", - " #new_degree = [sum(new_column[u,:]) for u ∈ 1:n]\n", - " new_weight = dot(new_column, W)/2\n", - " reduced_cost = new_weight - dot(vcat([μ], Ï€), new_degree)\n", - " end\n", - " \n", - " lpm = LPM(tree_weights, tree_degrees)\n", - " # ipm = IPM(tree_weights, tree_degrees)\n", - " \n", - " λ = value.(lpm[:λ])\n", - " println(\"Lambda_t : \", λ)\n", - " println(\"Minimal 1-tree \")\n", - " println(\"Lambda : \", maximum(λ))\n", - " println(\"Index : \", argmax(λ))\n", - " println(\"1-tree : \", columns[argmax(λ)])\n", - " \n", - " return columns[argmax(λ)] \n", - "end" - ] - }, - { - "cell_type": "code", - "execution_count": 47, - "metadata": {}, - "outputs": [ - { - "ename": "InexactError", - "evalue": "InexactError: Int64(12.439024390243906)", - "output_type": "error", - "traceback": [ - "InexactError: Int64(12.439024390243906)", - "", - "Stacktrace:", - " [1] Int64 at .\\float.jl:710 [inlined]", - " [2] convert at .\\number.jl:7 [inlined]", - " [3] setindex! at .\\array.jl:828 [inlined]", - " [4] held_and_karp_iter!(::Array{Int64,2}, ::Array{Int64,2}, ::Array{Float64,1}, ::Array{Float64,2}, ::Array{Float64,1}, ::SimpleGraph{Int64}, ::typeof(update_rule_1!)) at .\\In[33]:8", - " [5] held_and_karp_2(::Array{Int64,2}; update_rule::Function) at .\\In[46]:28", - " [6] held_and_karp_2(::Array{Int64,2}) at .\\In[46]:2", - " [7] top-level scope at In[47]:1" + " 0.0 0.0 1.0 0.0 0.0 0.0]\n" ] } ], - "source": [ - "display_S(held_and_karp_2(example))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "display_S(held_and_karp_2(exercise))" ] -- GitLab