Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Open sidebar
MUR Drupal
d3-library
Commits
abbe1c75
Commit
abbe1c75
authored
Mar 23, 2014
by
Mike Bostock
Browse files
Preserve tick ordering when updating axis.
Fixes #1748.
parent
b86e4e4a
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
12 additions
and
3 deletions
+12
-3
d3.js
d3.js
+1
-1
d3.min.js
d3.min.js
+1
-1
src/svg/axis.js
src/svg/axis.js
+1
-1
test/svg/axis-test.js
test/svg/axis-test.js
+9
-0
No files found.
d3.js
View file @
abbe1c75
...
...
@@ -8686,7 +8686,7 @@
g
.
each
(
function
()
{
var
g
=
d3
.
select
(
this
);
var
scale0
=
this
.
__chart__
||
scale
,
scale1
=
this
.
__chart__
=
scale
.
copy
();
var
ticks
=
tickValues
==
null
?
scale1
.
ticks
?
scale1
.
ticks
.
apply
(
scale1
,
tickArguments_
)
:
scale1
.
domain
()
:
tickValues
,
tickFormat
=
tickFormat_
==
null
?
scale1
.
tickFormat
?
scale1
.
tickFormat
.
apply
(
scale1
,
tickArguments_
)
:
d3_identity
:
tickFormat_
,
tick
=
g
.
selectAll
(
"
.tick
"
).
data
(
ticks
,
scale1
),
tickEnter
=
tick
.
enter
().
insert
(
"
g
"
,
"
.domain
"
).
attr
(
"
class
"
,
"
tick
"
).
style
(
"
opacity
"
,
ε
),
tickExit
=
d3
.
transition
(
tick
.
exit
()).
style
(
"
opacity
"
,
ε
).
remove
(),
tickUpdate
=
d3
.
transition
(
tick
).
style
(
"
opacity
"
,
1
),
tickTransform
;
var
ticks
=
tickValues
==
null
?
scale1
.
ticks
?
scale1
.
ticks
.
apply
(
scale1
,
tickArguments_
)
:
scale1
.
domain
()
:
tickValues
,
tickFormat
=
tickFormat_
==
null
?
scale1
.
tickFormat
?
scale1
.
tickFormat
.
apply
(
scale1
,
tickArguments_
)
:
d3_identity
:
tickFormat_
,
tick
=
g
.
selectAll
(
"
.tick
"
).
data
(
ticks
,
scale1
),
tickEnter
=
tick
.
enter
().
insert
(
"
g
"
,
"
.domain
"
).
attr
(
"
class
"
,
"
tick
"
).
style
(
"
opacity
"
,
ε
),
tickExit
=
d3
.
transition
(
tick
.
exit
()).
style
(
"
opacity
"
,
ε
).
remove
(),
tickUpdate
=
d3
.
transition
(
tick
.
order
()
).
style
(
"
opacity
"
,
1
),
tickTransform
;
var
range
=
d3_scaleRange
(
scale1
),
path
=
g
.
selectAll
(
"
.domain
"
).
data
([
0
]),
pathUpdate
=
(
path
.
enter
().
append
(
"
path
"
).
attr
(
"
class
"
,
"
domain
"
),
d3
.
transition
(
path
));
tickEnter
.
append
(
"
line
"
);
...
...
d3.min.js
View file @
abbe1c75
...
...
@@ -2,4 +2,4 @@
}),
h
=
150
,
g
=
480
,
p
=
250
,
v
=
0
,
d
=
0
,
m
=
0
,
y
=
0
,
x
=
0
,
M
=
Lc
,
_
=
Nt
,
b
=
null
,
w
=
null
;
return
t
.
stream
=
function
(
n
){
return
l
&&
(
l
.
valid
=!
1
),
l
=
or
(
M
(
o
,
f
(
_
(
n
)))),
l
.
valid
=!
0
,
l
},
t
.
clipAngle
=
function
(
n
){
return
arguments
.
length
?(
M
=
null
==
n
?(
b
=
n
,
Lc
):
He
((
b
=+
n
)
*
za
),
u
()):
b
},
t
.
clipExtent
=
function
(
n
){
return
arguments
.
length
?(
w
=
n
,
_
=
n
?
Oe
(
n
[
0
][
0
],
n
[
0
][
1
],
n
[
1
][
0
],
n
[
1
][
1
]):
Nt
,
u
()):
w
},
t
.
scale
=
function
(
n
){
return
arguments
.
length
?(
h
=+
n
,
r
()):
h
},
t
.
translate
=
function
(
n
){
return
arguments
.
length
?(
g
=+
n
[
0
],
p
=+
n
[
1
],
r
()):[
g
,
p
]},
t
.
center
=
function
(
n
){
return
arguments
.
length
?(
v
=
n
[
0
]
%
360
*
za
,
d
=
n
[
1
]
%
360
*
za
,
r
()):[
v
*
Ra
,
d
*
Ra
]},
t
.
rotate
=
function
(
n
){
return
arguments
.
length
?(
m
=
n
[
0
]
%
360
*
za
,
y
=
n
[
1
]
%
360
*
za
,
x
=
n
.
length
>
2
?
n
[
2
]
%
360
*
za
:
0
,
r
()):[
m
*
Ra
,
y
*
Ra
,
x
*
Ra
]},
Go
.
rebind
(
t
,
f
,
"
precision
"
),
function
(){
return
i
=
n
.
apply
(
this
,
arguments
),
t
.
invert
=
i
.
invert
&&
e
,
r
()}}
function
or
(
n
){
return
rr
(
n
,
function
(
t
,
e
){
n
.
point
(
t
*
za
,
e
*
za
)})}
function
ar
(
n
,
t
){
return
[
n
,
t
]}
function
cr
(
n
,
t
){
return
[
n
>
Aa
?
n
-
Ca
:
-
Aa
>
n
?
n
+
Ca
:
n
,
t
]}
function
sr
(
n
,
t
,
e
){
return
n
?
t
||
e
?
Ye
(
fr
(
n
),
hr
(
t
,
e
)):
fr
(
n
):
t
||
e
?
hr
(
t
,
e
):
cr
}
function
lr
(
n
){
return
function
(
t
,
e
){
return
t
+=
n
,[
t
>
Aa
?
t
-
Ca
:
-
Aa
>
t
?
t
+
Ca
:
t
,
e
]}}
function
fr
(
n
){
var
t
=
lr
(
n
);
return
t
.
invert
=
lr
(
-
n
),
t
}
function
hr
(
n
,
t
){
function
e
(
n
,
t
){
var
e
=
Math
.
cos
(
t
),
a
=
Math
.
cos
(
n
)
*
e
,
c
=
Math
.
sin
(
n
)
*
e
,
s
=
Math
.
sin
(
t
),
l
=
s
*
r
+
a
*
u
;
return
[
Math
.
atan2
(
c
*
i
-
l
*
o
,
a
*
r
-
s
*
u
),
G
(
l
*
i
+
c
*
o
)]}
var
r
=
Math
.
cos
(
n
),
u
=
Math
.
sin
(
n
),
i
=
Math
.
cos
(
t
),
o
=
Math
.
sin
(
t
);
return
e
.
invert
=
function
(
n
,
t
){
var
e
=
Math
.
cos
(
t
),
a
=
Math
.
cos
(
n
)
*
e
,
c
=
Math
.
sin
(
n
)
*
e
,
s
=
Math
.
sin
(
t
),
l
=
s
*
i
-
c
*
o
;
return
[
Math
.
atan2
(
c
*
i
+
s
*
o
,
a
*
r
+
l
*
u
),
G
(
l
*
r
-
a
*
u
)]},
e
}
function
gr
(
n
,
t
){
var
e
=
Math
.
cos
(
n
),
r
=
Math
.
sin
(
n
);
return
function
(
u
,
i
,
o
,
a
){
var
c
=
o
*
t
;
null
!=
u
?(
u
=
pr
(
e
,
u
),
i
=
pr
(
e
,
i
),(
o
>
0
?
i
>
u
:
u
>
i
)
&&
(
u
+=
o
*
Ca
)):(
u
=
n
+
o
*
Ca
,
i
=
n
-
.
5
*
c
);
for
(
var
s
,
l
=
u
;
o
>
0
?
l
>
i
:
i
>
l
;
l
-=
c
)
a
.
point
((
s
=
Me
([
e
,
-
r
*
Math
.
cos
(
l
),
-
r
*
Math
.
sin
(
l
)]))[
0
],
s
[
1
])}}
function
pr
(
n
,
t
){
var
e
=
pe
(
t
);
e
[
0
]
-=
n
,
xe
(
e
);
var
r
=
W
(
-
e
[
1
]);
return
((
-
e
[
2
]
<
0
?
-
r
:
r
)
+
2
*
Math
.
PI
-
Ta
)
%
(
2
*
Math
.
PI
)}
function
vr
(
n
,
t
,
e
){
var
r
=
Go
.
range
(
n
,
t
-
Ta
,
e
).
concat
(
t
);
return
function
(
n
){
return
r
.
map
(
function
(
t
){
return
[
n
,
t
]})}}
function
dr
(
n
,
t
,
e
){
var
r
=
Go
.
range
(
n
,
t
-
Ta
,
e
).
concat
(
t
);
return
function
(
n
){
return
r
.
map
(
function
(
t
){
return
[
t
,
n
]})}}
function
mr
(
n
){
return
n
.
source
}
function
yr
(
n
){
return
n
.
target
}
function
xr
(
n
,
t
,
e
,
r
){
var
u
=
Math
.
cos
(
t
),
i
=
Math
.
sin
(
t
),
o
=
Math
.
cos
(
r
),
a
=
Math
.
sin
(
r
),
c
=
u
*
Math
.
cos
(
n
),
s
=
u
*
Math
.
sin
(
n
),
l
=
o
*
Math
.
cos
(
e
),
f
=
o
*
Math
.
sin
(
e
),
h
=
2
*
Math
.
asin
(
Math
.
sqrt
(
tt
(
r
-
t
)
+
u
*
o
*
tt
(
e
-
n
))),
g
=
1
/
Math
.
sin
(
h
),
p
=
h
?
function
(
n
){
var
t
=
Math
.
sin
(
n
*=
h
)
*
g
,
e
=
Math
.
sin
(
h
-
n
)
*
g
,
r
=
e
*
c
+
t
*
l
,
u
=
e
*
s
+
t
*
f
,
o
=
e
*
i
+
t
*
a
;
return
[
Math
.
atan2
(
u
,
r
)
*
Ra
,
Math
.
atan2
(
o
,
Math
.
sqrt
(
r
*
r
+
u
*
u
))
*
Ra
]}:
function
(){
return
[
n
*
Ra
,
t
*
Ra
]};
return
p
.
distance
=
h
,
p
}
function
Mr
(){
function
n
(
n
,
u
){
var
i
=
Math
.
sin
(
u
*=
za
),
o
=
Math
.
cos
(
u
),
a
=
fa
((
n
*=
za
)
-
t
),
c
=
Math
.
cos
(
a
);
Oc
+=
Math
.
atan2
(
Math
.
sqrt
((
a
=
o
*
Math
.
sin
(
a
))
*
a
+
(
a
=
r
*
i
-
e
*
o
*
c
)
*
a
),
e
*
i
+
r
*
o
*
c
),
t
=
n
,
e
=
i
,
r
=
o
}
var
t
,
e
,
r
;
Yc
.
point
=
function
(
u
,
i
){
t
=
u
*
za
,
e
=
Math
.
sin
(
i
*=
za
),
r
=
Math
.
cos
(
i
),
Yc
.
point
=
n
},
Yc
.
lineEnd
=
function
(){
Yc
.
point
=
Yc
.
lineEnd
=
v
}}
function
_r
(
n
,
t
){
function
e
(
t
,
e
){
var
r
=
Math
.
cos
(
t
),
u
=
Math
.
cos
(
e
),
i
=
n
(
r
*
u
);
return
[
i
*
u
*
Math
.
sin
(
t
),
i
*
Math
.
sin
(
e
)]}
return
e
.
invert
=
function
(
n
,
e
){
var
r
=
Math
.
sqrt
(
n
*
n
+
e
*
e
),
u
=
t
(
r
),
i
=
Math
.
sin
(
u
),
o
=
Math
.
cos
(
u
);
return
[
Math
.
atan2
(
n
*
i
,
r
*
o
),
Math
.
asin
(
r
&&
e
*
i
/
r
)]},
e
}
function
br
(
n
,
t
){
function
e
(
n
,
t
){
o
>
0
?
-
La
+
Ta
>
t
&&
(
t
=-
La
+
Ta
):
t
>
La
-
Ta
&&
(
t
=
La
-
Ta
);
var
e
=
o
/
Math
.
pow
(
u
(
t
),
i
);
return
[
e
*
Math
.
sin
(
i
*
n
),
o
-
e
*
Math
.
cos
(
i
*
n
)]}
var
r
=
Math
.
cos
(
n
),
u
=
function
(
n
){
return
Math
.
tan
(
Aa
/
4
+
n
/
2
)},
i
=
n
===
t
?
Math
.
sin
(
n
):
Math
.
log
(
r
/
Math
.
cos
(
t
))
/
Math
.
log
(
u
(
t
)
/
u
(
n
)),
o
=
r
*
Math
.
pow
(
u
(
n
),
i
)
/
i
;
return
i
?(
e
.
invert
=
function
(
n
,
t
){
var
e
=
o
-
t
,
r
=
B
(
i
)
*
Math
.
sqrt
(
n
*
n
+
e
*
e
);
return
[
Math
.
atan2
(
n
,
e
)
/
i
,
2
*
Math
.
atan
(
Math
.
pow
(
o
/
r
,
1
/
i
))
-
La
]},
e
):
Sr
}
function
wr
(
n
,
t
){
function
e
(
n
,
t
){
var
e
=
i
-
t
;
return
[
e
*
Math
.
sin
(
u
*
n
),
i
-
e
*
Math
.
cos
(
u
*
n
)]}
var
r
=
Math
.
cos
(
n
),
u
=
n
===
t
?
Math
.
sin
(
n
):(
r
-
Math
.
cos
(
t
))
/
(
t
-
n
),
i
=
r
/
u
+
n
;
return
fa
(
u
)
<
Ta
?
ar
:(
e
.
invert
=
function
(
n
,
t
){
var
e
=
i
-
t
;
return
[
Math
.
atan2
(
n
,
e
)
/
u
,
i
-
B
(
u
)
*
Math
.
sqrt
(
n
*
n
+
e
*
e
)]},
e
)}
function
Sr
(
n
,
t
){
return
[
n
,
Math
.
log
(
Math
.
tan
(
Aa
/
4
+
t
/
2
))]}
function
kr
(
n
){
var
t
,
e
=
ur
(
n
),
r
=
e
.
scale
,
u
=
e
.
translate
,
i
=
e
.
clipExtent
;
return
e
.
scale
=
function
(){
var
n
=
r
.
apply
(
e
,
arguments
);
return
n
===
e
?
t
?
e
.
clipExtent
(
null
):
e
:
n
},
e
.
translate
=
function
(){
var
n
=
u
.
apply
(
e
,
arguments
);
return
n
===
e
?
t
?
e
.
clipExtent
(
null
):
e
:
n
},
e
.
clipExtent
=
function
(
n
){
var
o
=
i
.
apply
(
e
,
arguments
);
if
(
o
===
e
){
if
(
t
=
null
==
n
){
var
a
=
Aa
*
r
(),
c
=
u
();
i
([[
c
[
0
]
-
a
,
c
[
1
]
-
a
],[
c
[
0
]
+
a
,
c
[
1
]
+
a
]])}}
else
t
&&
(
o
=
null
);
return
o
},
e
.
clipExtent
(
null
)}
function
Er
(
n
,
t
){
return
[
Math
.
log
(
Math
.
tan
(
Aa
/
4
+
t
/
2
)),
-
n
]}
function
Nr
(
n
){
return
n
[
0
]}
function
Ar
(
n
){
return
n
[
1
]}
function
Cr
(
n
){
for
(
var
t
=
n
.
length
,
e
=
[
0
,
1
],
r
=
2
,
u
=
2
;
t
>
u
;
u
++
){
for
(;
r
>
1
&&
J
(
n
[
e
[
r
-
2
]],
n
[
e
[
r
-
1
]],
n
[
u
])
<=
0
;)
--
r
;
e
[
r
++
]
=
u
}
return
e
.
slice
(
0
,
r
)}
function
Lr
(
n
,
t
){
return
n
[
0
]
-
t
[
0
]
||
n
[
1
]
-
t
[
1
]}
function
Tr
(
n
,
t
,
e
){
return
(
e
[
0
]
-
t
[
0
])
*
(
n
[
1
]
-
t
[
1
])
<
(
e
[
1
]
-
t
[
1
])
*
(
n
[
0
]
-
t
[
0
])}
function
qr
(
n
,
t
,
e
,
r
){
var
u
=
n
[
0
],
i
=
e
[
0
],
o
=
t
[
0
]
-
u
,
a
=
r
[
0
]
-
i
,
c
=
n
[
1
],
s
=
e
[
1
],
l
=
t
[
1
]
-
c
,
f
=
r
[
1
]
-
s
,
h
=
(
a
*
(
c
-
s
)
-
f
*
(
u
-
i
))
/
(
f
*
o
-
a
*
l
);
return
[
u
+
h
*
o
,
c
+
h
*
l
]}
function
zr
(
n
){
var
t
=
n
[
0
],
e
=
n
[
n
.
length
-
1
];
return
!
(
t
[
0
]
-
e
[
0
]
||
t
[
1
]
-
e
[
1
])}
function
Rr
(){
tu
(
this
),
this
.
edge
=
this
.
site
=
this
.
circle
=
null
}
function
Dr
(
n
){
var
t
=
ns
.
pop
()
||
new
Rr
;
return
t
.
site
=
n
,
t
}
function
Pr
(
n
){
$r
(
n
),
Gc
.
remove
(
n
),
ns
.
push
(
n
),
tu
(
n
)}
function
Ur
(
n
){
var
t
=
n
.
circle
,
e
=
t
.
x
,
r
=
t
.
cy
,
u
=
{
x
:
e
,
y
:
r
},
i
=
n
.
P
,
o
=
n
.
N
,
a
=
[
n
];
Pr
(
n
);
for
(
var
c
=
i
;
c
.
circle
&&
fa
(
e
-
c
.
circle
.
x
)
<
Ta
&&
fa
(
r
-
c
.
circle
.
cy
)
<
Ta
;)
i
=
c
.
P
,
a
.
unshift
(
c
),
Pr
(
c
),
c
=
i
;
a
.
unshift
(
c
),
$r
(
c
);
for
(
var
s
=
o
;
s
.
circle
&&
fa
(
e
-
s
.
circle
.
x
)
<
Ta
&&
fa
(
r
-
s
.
circle
.
cy
)
<
Ta
;)
o
=
s
.
N
,
a
.
push
(
s
),
Pr
(
s
),
s
=
o
;
a
.
push
(
s
),
$r
(
s
);
var
l
,
f
=
a
.
length
;
for
(
l
=
1
;
f
>
l
;
++
l
)
s
=
a
[
l
],
c
=
a
[
l
-
1
],
Kr
(
s
.
edge
,
c
.
site
,
s
.
site
,
u
);
c
=
a
[
0
],
s
=
a
[
f
-
1
],
s
.
edge
=
Wr
(
c
.
site
,
s
.
site
,
null
,
u
),
Vr
(
c
),
Vr
(
s
)}
function
jr
(
n
){
for
(
var
t
,
e
,
r
,
u
,
i
=
n
.
x
,
o
=
n
.
y
,
a
=
Gc
.
_
;
a
;)
if
(
r
=
Hr
(
a
,
o
)
-
i
,
r
>
Ta
)
a
=
a
.
L
;
else
{
if
(
u
=
i
-
Fr
(
a
,
o
),
!
(
u
>
Ta
)){
r
>-
Ta
?(
t
=
a
.
P
,
e
=
a
):
u
>-
Ta
?(
t
=
a
,
e
=
a
.
N
):
t
=
e
=
a
;
break
}
if
(
!
a
.
R
){
t
=
a
;
break
}
a
=
a
.
R
}
var
c
=
Dr
(
n
);
if
(
Gc
.
insert
(
t
,
c
),
t
||
e
){
if
(
t
===
e
)
return
$r
(
t
),
e
=
Dr
(
t
.
site
),
Gc
.
insert
(
c
,
e
),
c
.
edge
=
e
.
edge
=
Wr
(
t
.
site
,
c
.
site
),
Vr
(
t
),
Vr
(
e
),
void
0
;
if
(
!
e
)
return
c
.
edge
=
Wr
(
t
.
site
,
c
.
site
),
void
0
;
$r
(
t
),
$r
(
e
);
var
s
=
t
.
site
,
l
=
s
.
x
,
f
=
s
.
y
,
h
=
n
.
x
-
l
,
g
=
n
.
y
-
f
,
p
=
e
.
site
,
v
=
p
.
x
-
l
,
d
=
p
.
y
-
f
,
m
=
2
*
(
h
*
d
-
g
*
v
),
y
=
h
*
h
+
g
*
g
,
x
=
v
*
v
+
d
*
d
,
M
=
{
x
:(
d
*
y
-
g
*
x
)
/
m
+
l
,
y
:(
h
*
x
-
v
*
y
)
/
m
+
f
};
Kr
(
e
.
edge
,
s
,
p
,
M
),
c
.
edge
=
Wr
(
s
,
n
,
null
,
M
),
e
.
edge
=
Wr
(
n
,
p
,
null
,
M
),
Vr
(
t
),
Vr
(
e
)}}
function
Hr
(
n
,
t
){
var
e
=
n
.
site
,
r
=
e
.
x
,
u
=
e
.
y
,
i
=
u
-
t
;
if
(
!
i
)
return
r
;
var
o
=
n
.
P
;
if
(
!
o
)
return
-
1
/
0
;
e
=
o
.
site
;
var
a
=
e
.
x
,
c
=
e
.
y
,
s
=
c
-
t
;
if
(
!
s
)
return
a
;
var
l
=
a
-
r
,
f
=
1
/
i
-
1
/
s
,
h
=
l
/
s
;
return
f
?(
-
h
+
Math
.
sqrt
(
h
*
h
-
2
*
f
*
(
l
*
l
/
(
-
2
*
s
)
-
c
+
s
/
2
+
u
-
i
/
2
)))
/
f
+
r
:(
r
+
a
)
/
2
}
function
Fr
(
n
,
t
){
var
e
=
n
.
N
;
if
(
e
)
return
Hr
(
e
,
t
);
var
r
=
n
.
site
;
return
r
.
y
===
t
?
r
.
x
:
1
/
0
}
function
Or
(
n
){
this
.
site
=
n
,
this
.
edges
=
[]}
function
Yr
(
n
){
for
(
var
t
,
e
,
r
,
u
,
i
,
o
,
a
,
c
,
s
,
l
,
f
=
n
[
0
][
0
],
h
=
n
[
1
][
0
],
g
=
n
[
0
][
1
],
p
=
n
[
1
][
1
],
v
=
Wc
,
d
=
v
.
length
;
d
--
;)
if
(
i
=
v
[
d
],
i
&&
i
.
prepare
())
for
(
a
=
i
.
edges
,
c
=
a
.
length
,
o
=
0
;
c
>
o
;)
l
=
a
[
o
].
end
(),
r
=
l
.
x
,
u
=
l
.
y
,
s
=
a
[
++
o
%
c
].
start
(),
t
=
s
.
x
,
e
=
s
.
y
,(
fa
(
r
-
t
)
>
Ta
||
fa
(
u
-
e
)
>
Ta
)
&&
(
a
.
splice
(
o
,
0
,
new
Qr
(
Gr
(
i
.
site
,
l
,
fa
(
r
-
f
)
<
Ta
&&
p
-
u
>
Ta
?{
x
:
f
,
y
:
fa
(
t
-
f
)
<
Ta
?
e
:
p
}:
fa
(
u
-
p
)
<
Ta
&&
h
-
r
>
Ta
?{
x
:
fa
(
e
-
p
)
<
Ta
?
t
:
h
,
y
:
p
}:
fa
(
r
-
h
)
<
Ta
&&
u
-
g
>
Ta
?{
x
:
h
,
y
:
fa
(
t
-
h
)
<
Ta
?
e
:
g
}:
fa
(
u
-
g
)
<
Ta
&&
r
-
f
>
Ta
?{
x
:
fa
(
e
-
g
)
<
Ta
?
t
:
f
,
y
:
g
}:
null
),
i
.
site
,
null
)),
++
c
)}
function
Ir
(
n
,
t
){
return
t
.
angle
-
n
.
angle
}
function
Zr
(){
tu
(
this
),
this
.
x
=
this
.
y
=
this
.
arc
=
this
.
site
=
this
.
cy
=
null
}
function
Vr
(
n
){
var
t
=
n
.
P
,
e
=
n
.
N
;
if
(
t
&&
e
){
var
r
=
t
.
site
,
u
=
n
.
site
,
i
=
e
.
site
;
if
(
r
!==
i
){
var
o
=
u
.
x
,
a
=
u
.
y
,
c
=
r
.
x
-
o
,
s
=
r
.
y
-
a
,
l
=
i
.
x
-
o
,
f
=
i
.
y
-
a
,
h
=
2
*
(
c
*
f
-
s
*
l
);
if
(
!
(
h
>=-
qa
)){
var
g
=
c
*
c
+
s
*
s
,
p
=
l
*
l
+
f
*
f
,
v
=
(
f
*
g
-
s
*
p
)
/
h
,
d
=
(
c
*
p
-
l
*
g
)
/
h
,
f
=
d
+
a
,
m
=
ts
.
pop
()
||
new
Zr
;
m
.
arc
=
n
,
m
.
site
=
u
,
m
.
x
=
v
+
o
,
m
.
y
=
f
+
Math
.
sqrt
(
v
*
v
+
d
*
d
),
m
.
cy
=
f
,
n
.
circle
=
m
;
for
(
var
y
=
null
,
x
=
Qc
.
_
;
x
;)
if
(
m
.
y
<
x
.
y
||
m
.
y
===
x
.
y
&&
m
.
x
<=
x
.
x
){
if
(
!
x
.
L
){
y
=
x
.
P
;
break
}
x
=
x
.
L
}
else
{
if
(
!
x
.
R
){
y
=
x
;
break
}
x
=
x
.
R
}
Qc
.
insert
(
y
,
m
),
y
||
(
Kc
=
m
)}}}}
function
$r
(
n
){
var
t
=
n
.
circle
;
t
&&
(
t
.
P
||
(
Kc
=
t
.
N
),
Qc
.
remove
(
t
),
ts
.
push
(
t
),
tu
(
t
),
n
.
circle
=
null
)}
function
Xr
(
n
){
for
(
var
t
,
e
=
Jc
,
r
=
Fe
(
n
[
0
][
0
],
n
[
0
][
1
],
n
[
1
][
0
],
n
[
1
][
1
]),
u
=
e
.
length
;
u
--
;)
t
=
e
[
u
],(
!
Br
(
t
,
n
)
||!
r
(
t
)
||
fa
(
t
.
a
.
x
-
t
.
b
.
x
)
<
Ta
&&
fa
(
t
.
a
.
y
-
t
.
b
.
y
)
<
Ta
)
&&
(
t
.
a
=
t
.
b
=
null
,
e
.
splice
(
u
,
1
))}
function
Br
(
n
,
t
){
var
e
=
n
.
b
;
if
(
e
)
return
!
0
;
var
r
,
u
,
i
=
n
.
a
,
o
=
t
[
0
][
0
],
a
=
t
[
1
][
0
],
c
=
t
[
0
][
1
],
s
=
t
[
1
][
1
],
l
=
n
.
l
,
f
=
n
.
r
,
h
=
l
.
x
,
g
=
l
.
y
,
p
=
f
.
x
,
v
=
f
.
y
,
d
=
(
h
+
p
)
/
2
,
m
=
(
g
+
v
)
/
2
;
if
(
v
===
g
){
if
(
o
>
d
||
d
>=
a
)
return
;
if
(
h
>
p
){
if
(
i
){
if
(
i
.
y
>=
s
)
return
}
else
i
=
{
x
:
d
,
y
:
c
};
e
=
{
x
:
d
,
y
:
s
}}
else
{
if
(
i
){
if
(
i
.
y
<
c
)
return
}
else
i
=
{
x
:
d
,
y
:
s
};
e
=
{
x
:
d
,
y
:
c
}}}
else
if
(
r
=
(
h
-
p
)
/
(
v
-
g
),
u
=
m
-
r
*
d
,
-
1
>
r
||
r
>
1
)
if
(
h
>
p
){
if
(
i
){
if
(
i
.
y
>=
s
)
return
}
else
i
=
{
x
:(
c
-
u
)
/
r
,
y
:
c
};
e
=
{
x
:(
s
-
u
)
/
r
,
y
:
s
}}
else
{
if
(
i
){
if
(
i
.
y
<
c
)
return
}
else
i
=
{
x
:(
s
-
u
)
/
r
,
y
:
s
};
e
=
{
x
:(
c
-
u
)
/
r
,
y
:
c
}}
else
if
(
v
>
g
){
if
(
i
){
if
(
i
.
x
>=
a
)
return
}
else
i
=
{
x
:
o
,
y
:
r
*
o
+
u
};
e
=
{
x
:
a
,
y
:
r
*
a
+
u
}}
else
{
if
(
i
){
if
(
i
.
x
<
o
)
return
}
else
i
=
{
x
:
a
,
y
:
r
*
a
+
u
};
e
=
{
x
:
o
,
y
:
r
*
o
+
u
}}
return
n
.
a
=
i
,
n
.
b
=
e
,
!
0
}
function
Jr
(
n
,
t
){
this
.
l
=
n
,
this
.
r
=
t
,
this
.
a
=
this
.
b
=
null
}
function
Wr
(
n
,
t
,
e
,
r
){
var
u
=
new
Jr
(
n
,
t
);
return
Jc
.
push
(
u
),
e
&&
Kr
(
u
,
n
,
t
,
e
),
r
&&
Kr
(
u
,
t
,
n
,
r
),
Wc
[
n
.
i
].
edges
.
push
(
new
Qr
(
u
,
n
,
t
)),
Wc
[
t
.
i
].
edges
.
push
(
new
Qr
(
u
,
t
,
n
)),
u
}
function
Gr
(
n
,
t
,
e
){
var
r
=
new
Jr
(
n
,
null
);
return
r
.
a
=
t
,
r
.
b
=
e
,
Jc
.
push
(
r
),
r
}
function
Kr
(
n
,
t
,
e
,
r
){
n
.
a
||
n
.
b
?
n
.
l
===
e
?
n
.
b
=
r
:
n
.
a
=
r
:(
n
.
a
=
r
,
n
.
l
=
t
,
n
.
r
=
e
)}
function
Qr
(
n
,
t
,
e
){
var
r
=
n
.
a
,
u
=
n
.
b
;
this
.
edge
=
n
,
this
.
site
=
t
,
this
.
angle
=
e
?
Math
.
atan2
(
e
.
y
-
t
.
y
,
e
.
x
-
t
.
x
):
n
.
l
===
t
?
Math
.
atan2
(
u
.
x
-
r
.
x
,
r
.
y
-
u
.
y
):
Math
.
atan2
(
r
.
x
-
u
.
x
,
u
.
y
-
r
.
y
)}
function
nu
(){
this
.
_
=
null
}
function
tu
(
n
){
n
.
U
=
n
.
C
=
n
.
L
=
n
.
R
=
n
.
P
=
n
.
N
=
null
}
function
eu
(
n
,
t
){
var
e
=
t
,
r
=
t
.
R
,
u
=
e
.
U
;
u
?
u
.
L
===
e
?
u
.
L
=
r
:
u
.
R
=
r
:
n
.
_
=
r
,
r
.
U
=
u
,
e
.
U
=
r
,
e
.
R
=
r
.
L
,
e
.
R
&&
(
e
.
R
.
U
=
e
),
r
.
L
=
e
}
function
ru
(
n
,
t
){
var
e
=
t
,
r
=
t
.
L
,
u
=
e
.
U
;
u
?
u
.
L
===
e
?
u
.
L
=
r
:
u
.
R
=
r
:
n
.
_
=
r
,
r
.
U
=
u
,
e
.
U
=
r
,
e
.
L
=
r
.
R
,
e
.
L
&&
(
e
.
L
.
U
=
e
),
r
.
R
=
e
}
function
uu
(
n
){
for
(;
n
.
L
;)
n
=
n
.
L
;
return
n
}
function
iu
(
n
,
t
){
var
e
,
r
,
u
,
i
=
n
.
sort
(
ou
).
pop
();
for
(
Jc
=
[],
Wc
=
new
Array
(
n
.
length
),
Gc
=
new
nu
,
Qc
=
new
nu
;;)
if
(
u
=
Kc
,
i
&&
(
!
u
||
i
.
y
<
u
.
y
||
i
.
y
===
u
.
y
&&
i
.
x
<
u
.
x
))(
i
.
x
!==
e
||
i
.
y
!==
r
)
&&
(
Wc
[
i
.
i
]
=
new
Or
(
i
),
jr
(
i
),
e
=
i
.
x
,
r
=
i
.
y
),
i
=
n
.
pop
();
else
{
if
(
!
u
)
break
;
Ur
(
u
.
arc
)}
t
&&
(
Xr
(
t
),
Yr
(
t
));
var
o
=
{
cells
:
Wc
,
edges
:
Jc
};
return
Gc
=
Qc
=
Jc
=
Wc
=
null
,
o
}
function
ou
(
n
,
t
){
return
t
.
y
-
n
.
y
||
t
.
x
-
n
.
x
}
function
au
(
n
,
t
,
e
){
return
(
n
.
x
-
e
.
x
)
*
(
t
.
y
-
n
.
y
)
-
(
n
.
x
-
t
.
x
)
*
(
e
.
y
-
n
.
y
)}
function
cu
(
n
){
return
n
.
x
}
function
su
(
n
){
return
n
.
y
}
function
lu
(){
return
{
leaf
:
!
0
,
nodes
:[],
point
:
null
,
x
:
null
,
y
:
null
}}
function
fu
(
n
,
t
,
e
,
r
,
u
,
i
){
if
(
!
n
(
t
,
e
,
r
,
u
,
i
)){
var
o
=
.
5
*
(
e
+
u
),
a
=
.
5
*
(
r
+
i
),
c
=
t
.
nodes
;
c
[
0
]
&&
fu
(
n
,
c
[
0
],
e
,
r
,
o
,
a
),
c
[
1
]
&&
fu
(
n
,
c
[
1
],
o
,
r
,
u
,
a
),
c
[
2
]
&&
fu
(
n
,
c
[
2
],
e
,
a
,
o
,
i
),
c
[
3
]
&&
fu
(
n
,
c
[
3
],
o
,
a
,
u
,
i
)}}
function
hu
(
n
,
t
){
n
=
Go
.
rgb
(
n
),
t
=
Go
.
rgb
(
t
);
var
e
=
n
.
r
,
r
=
n
.
g
,
u
=
n
.
b
,
i
=
t
.
r
-
e
,
o
=
t
.
g
-
r
,
a
=
t
.
b
-
u
;
return
function
(
n
){
return
"
#
"
+
Mt
(
Math
.
round
(
e
+
i
*
n
))
+
Mt
(
Math
.
round
(
r
+
o
*
n
))
+
Mt
(
Math
.
round
(
u
+
a
*
n
))}}
function
gu
(
n
,
t
){
var
e
,
r
=
{},
u
=
{};
for
(
e
in
n
)
e
in
t
?
r
[
e
]
=
du
(
n
[
e
],
t
[
e
]):
u
[
e
]
=
n
[
e
];
for
(
e
in
t
)
e
in
n
||
(
u
[
e
]
=
t
[
e
]);
return
function
(
n
){
for
(
e
in
r
)
u
[
e
]
=
r
[
e
](
n
);
return
u
}}
function
pu
(
n
,
t
){
return
t
-=
n
=+
n
,
function
(
e
){
return
n
+
t
*
e
}}
function
vu
(
n
,
t
){
var
e
,
r
,
u
,
i
,
o
,
a
=
0
,
c
=
0
,
s
=
[],
l
=
[];
for
(
n
+=
""
,
t
+=
""
,
rs
.
lastIndex
=
0
,
r
=
0
;
e
=
rs
.
exec
(
t
);
++
r
)
e
.
index
&&
s
.
push
(
t
.
substring
(
a
,
c
=
e
.
index
)),
l
.
push
({
i
:
s
.
length
,
x
:
e
[
0
]}),
s
.
push
(
null
),
a
=
rs
.
lastIndex
;
for
(
a
<
t
.
length
&&
s
.
push
(
t
.
substring
(
a
)),
r
=
0
,
i
=
l
.
length
;(
e
=
rs
.
exec
(
n
))
&&
i
>
r
;
++
r
)
if
(
o
=
l
[
r
],
o
.
x
==
e
[
0
]){
if
(
o
.
i
)
if
(
null
==
s
[
o
.
i
+
1
])
for
(
s
[
o
.
i
-
1
]
+=
o
.
x
,
s
.
splice
(
o
.
i
,
1
),
u
=
r
+
1
;
i
>
u
;
++
u
)
l
[
u
].
i
--
;
else
for
(
s
[
o
.
i
-
1
]
+=
o
.
x
+
s
[
o
.
i
+
1
],
s
.
splice
(
o
.
i
,
2
),
u
=
r
+
1
;
i
>
u
;
++
u
)
l
[
u
].
i
-=
2
;
else
if
(
null
==
s
[
o
.
i
+
1
])
s
[
o
.
i
]
=
o
.
x
;
else
for
(
s
[
o
.
i
]
=
o
.
x
+
s
[
o
.
i
+
1
],
s
.
splice
(
o
.
i
+
1
,
1
),
u
=
r
+
1
;
i
>
u
;
++
u
)
l
[
u
].
i
--
;
l
.
splice
(
r
,
1
),
i
--
,
r
--
}
else
o
.
x
=
pu
(
parseFloat
(
e
[
0
]),
parseFloat
(
o
.
x
));
for
(;
i
>
r
;)
o
=
l
.
pop
(),
null
==
s
[
o
.
i
+
1
]?
s
[
o
.
i
]
=
o
.
x
:(
s
[
o
.
i
]
=
o
.
x
+
s
[
o
.
i
+
1
],
s
.
splice
(
o
.
i
+
1
,
1
)),
i
--
;
return
1
===
s
.
length
?
null
==
s
[
0
]?(
o
=
l
[
0
].
x
,
function
(
n
){
return
o
(
n
)
+
""
}):
function
(){
return
t
}:
function
(
n
){
for
(
r
=
0
;
i
>
r
;
++
r
)
s
[(
o
=
l
[
r
]).
i
]
=
o
.
x
(
n
);
return
s
.
join
(
""
)}}
function
du
(
n
,
t
){
for
(
var
e
,
r
=
Go
.
interpolators
.
length
;
--
r
>=
0
&&!
(
e
=
Go
.
interpolators
[
r
](
n
,
t
)););
return
e
}
function
mu
(
n
,
t
){
var
e
,
r
=
[],
u
=
[],
i
=
n
.
length
,
o
=
t
.
length
,
a
=
Math
.
min
(
n
.
length
,
t
.
length
);
for
(
e
=
0
;
a
>
e
;
++
e
)
r
.
push
(
du
(
n
[
e
],
t
[
e
]));
for
(;
i
>
e
;
++
e
)
u
[
e
]
=
n
[
e
];
for
(;
o
>
e
;
++
e
)
u
[
e
]
=
t
[
e
];
return
function
(
n
){
for
(
e
=
0
;
a
>
e
;
++
e
)
u
[
e
]
=
r
[
e
](
n
);
return
u
}}
function
yu
(
n
){
return
function
(
t
){
return
0
>=
t
?
0
:
t
>=
1
?
1
:
n
(
t
)}}
function
xu
(
n
){
return
function
(
t
){
return
1
-
n
(
1
-
t
)}}
function
Mu
(
n
){
return
function
(
t
){
return
.
5
*
(.
5
>
t
?
n
(
2
*
t
):
2
-
n
(
2
-
2
*
t
))}}
function
_u
(
n
){
return
n
*
n
}
function
bu
(
n
){
return
n
*
n
*
n
}
function
wu
(
n
){
if
(
0
>=
n
)
return
0
;
if
(
n
>=
1
)
return
1
;
var
t
=
n
*
n
,
e
=
t
*
n
;
return
4
*
(.
5
>
n
?
e
:
3
*
(
n
-
t
)
+
e
-
.
75
)}
function
Su
(
n
){
return
function
(
t
){
return
Math
.
pow
(
t
,
n
)}}
function
ku
(
n
){
return
1
-
Math
.
cos
(
n
*
La
)}
function
Eu
(
n
){
return
Math
.
pow
(
2
,
10
*
(
n
-
1
))}
function
Nu
(
n
){
return
1
-
Math
.
sqrt
(
1
-
n
*
n
)}
function
Au
(
n
,
t
){
var
e
;
return
arguments
.
length
<
2
&&
(
t
=
.
45
),
arguments
.
length
?
e
=
t
/
Ca
*
Math
.
asin
(
1
/
n
):(
n
=
1
,
e
=
t
/
4
),
function
(
r
){
return
1
+
n
*
Math
.
pow
(
2
,
-
10
*
r
)
*
Math
.
sin
((
r
-
e
)
*
Ca
/
t
)}}
function
Cu
(
n
){
return
n
||
(
n
=
1.70158
),
function
(
t
){
return
t
*
t
*
((
n
+
1
)
*
t
-
n
)}}
function
Lu
(
n
){
return
1
/
2.75
>
n
?
7.5625
*
n
*
n
:
2
/
2.75
>
n
?
7.5625
*
(
n
-=
1.5
/
2.75
)
*
n
+
.
75
:
2.5
/
2.75
>
n
?
7.5625
*
(
n
-=
2.25
/
2.75
)
*
n
+
.
9375
:
7.5625
*
(
n
-=
2.625
/
2.75
)
*
n
+
.
984375
}
function
Tu
(
n
,
t
){
n
=
Go
.
hcl
(
n
),
t
=
Go
.
hcl
(
t
);
var
e
=
n
.
h
,
r
=
n
.
c
,
u
=
n
.
l
,
i
=
t
.
h
-
e
,
o
=
t
.
c
-
r
,
a
=
t
.
l
-
u
;
return
isNaN
(
o
)
&&
(
o
=
0
,
r
=
isNaN
(
r
)?
t
.
c
:
r
),
isNaN
(
i
)?(
i
=
0
,
e
=
isNaN
(
e
)?
t
.
h
:
e
):
i
>
180
?
i
-=
360
:
-
180
>
i
&&
(
i
+=
360
),
function
(
n
){
return
ct
(
e
+
i
*
n
,
r
+
o
*
n
,
u
+
a
*
n
)
+
""
}}
function
qu
(
n
,
t
){
n
=
Go
.
hsl
(
n
),
t
=
Go
.
hsl
(
t
);
var
e
=
n
.
h
,
r
=
n
.
s
,
u
=
n
.
l
,
i
=
t
.
h
-
e
,
o
=
t
.
s
-
r
,
a
=
t
.
l
-
u
;
return
isNaN
(
o
)
&&
(
o
=
0
,
r
=
isNaN
(
r
)?
t
.
s
:
r
),
isNaN
(
i
)?(
i
=
0
,
e
=
isNaN
(
e
)?
t
.
h
:
e
):
i
>
180
?
i
-=
360
:
-
180
>
i
&&
(
i
+=
360
),
function
(
n
){
return
it
(
e
+
i
*
n
,
r
+
o
*
n
,
u
+
a
*
n
)
+
""
}}
function
zu
(
n
,
t
){
n
=
Go
.
lab
(
n
),
t
=
Go
.
lab
(
t
);
var
e
=
n
.
l
,
r
=
n
.
a
,
u
=
n
.
b
,
i
=
t
.
l
-
e
,
o
=
t
.
a
-
r
,
a
=
t
.
b
-
u
;
return
function
(
n
){
return
ft
(
e
+
i
*
n
,
r
+
o
*
n
,
u
+
a
*
n
)
+
""
}}
function
Ru
(
n
,
t
){
return
t
-=
n
,
function
(
e
){
return
Math
.
round
(
n
+
t
*
e
)}}
function
Du
(
n
){
var
t
=
[
n
.
a
,
n
.
b
],
e
=
[
n
.
c
,
n
.
d
],
r
=
Uu
(
t
),
u
=
Pu
(
t
,
e
),
i
=
Uu
(
ju
(
e
,
t
,
-
u
))
||
0
;
t
[
0
]
*
e
[
1
]
<
e
[
0
]
*
t
[
1
]
&&
(
t
[
0
]
*=-
1
,
t
[
1
]
*=-
1
,
r
*=-
1
,
u
*=-
1
),
this
.
rotate
=
(
r
?
Math
.
atan2
(
t
[
1
],
t
[
0
]):
Math
.
atan2
(
-
e
[
0
],
e
[
1
]))
*
Ra
,
this
.
translate
=
[
n
.
e
,
n
.
f
],
this
.
scale
=
[
r
,
i
],
this
.
skew
=
i
?
Math
.
atan2
(
u
,
i
)
*
Ra
:
0
}
function
Pu
(
n
,
t
){
return
n
[
0
]
*
t
[
0
]
+
n
[
1
]
*
t
[
1
]}
function
Uu
(
n
){
var
t
=
Math
.
sqrt
(
Pu
(
n
,
n
));
return
t
&&
(
n
[
0
]
/=
t
,
n
[
1
]
/=
t
),
t
}
function
ju
(
n
,
t
,
e
){
return
n
[
0
]
+=
e
*
t
[
0
],
n
[
1
]
+=
e
*
t
[
1
],
n
}
function
Hu
(
n
,
t
){
var
e
,
r
=
[],
u
=
[],
i
=
Go
.
transform
(
n
),
o
=
Go
.
transform
(
t
),
a
=
i
.
translate
,
c
=
o
.
translate
,
s
=
i
.
rotate
,
l
=
o
.
rotate
,
f
=
i
.
skew
,
h
=
o
.
skew
,
g
=
i
.
scale
,
p
=
o
.
scale
;
return
a
[
0
]
!=
c
[
0
]
||
a
[
1
]
!=
c
[
1
]?(
r
.
push
(
"
translate(
"
,
null
,
"
,
"
,
null
,
"
)
"
),
u
.
push
({
i
:
1
,
x
:
pu
(
a
[
0
],
c
[
0
])},{
i
:
3
,
x
:
pu
(
a
[
1
],
c
[
1
])})):
c
[
0
]
||
c
[
1
]?
r
.
push
(
"
translate(
"
+
c
+
"
)
"
):
r
.
push
(
""
),
s
!=
l
?(
s
-
l
>
180
?
l
+=
360
:
l
-
s
>
180
&&
(
s
+=
360
),
u
.
push
({
i
:
r
.
push
(
r
.
pop
()
+
"
rotate(
"
,
null
,
"
)
"
)
-
2
,
x
:
pu
(
s
,
l
)})):
l
&&
r
.
push
(
r
.
pop
()
+
"
rotate(
"
+
l
+
"
)
"
),
f
!=
h
?
u
.
push
({
i
:
r
.
push
(
r
.
pop
()
+
"
skewX(
"
,
null
,
"
)
"
)
-
2
,
x
:
pu
(
f
,
h
)}):
h
&&
r
.
push
(
r
.
pop
()
+
"
skewX(
"
+
h
+
"
)
"
),
g
[
0
]
!=
p
[
0
]
||
g
[
1
]
!=
p
[
1
]?(
e
=
r
.
push
(
r
.
pop
()
+
"
scale(
"
,
null
,
"
,
"
,
null
,
"
)
"
),
u
.
push
({
i
:
e
-
4
,
x
:
pu
(
g
[
0
],
p
[
0
])},{
i
:
e
-
2
,
x
:
pu
(
g
[
1
],
p
[
1
])})):(
1
!=
p
[
0
]
||
1
!=
p
[
1
])
&&
r
.
push
(
r
.
pop
()
+
"
scale(
"
+
p
+
"
)
"
),
e
=
u
.
length
,
function
(
n
){
for
(
var
t
,
i
=-
1
;
++
i
<
e
;)
r
[(
t
=
u
[
i
]).
i
]
=
t
.
x
(
n
);
return
r
.
join
(
""
)}}
function
Fu
(
n
,
t
){
return
t
=
t
-
(
n
=+
n
)?
1
/
(
t
-
n
):
0
,
function
(
e
){
return
(
e
-
n
)
*
t
}}
function
Ou
(
n
,
t
){
return
t
=
t
-
(
n
=+
n
)?
1
/
(
t
-
n
):
0
,
function
(
e
){
return
Math
.
max
(
0
,
Math
.
min
(
1
,(
e
-
n
)
*
t
))}}
function
Yu
(
n
){
for
(
var
t
=
n
.
source
,
e
=
n
.
target
,
r
=
Zu
(
t
,
e
),
u
=
[
t
];
t
!==
r
;)
t
=
t
.
parent
,
u
.
push
(
t
);
for
(
var
i
=
u
.
length
;
e
!==
r
;)
u
.
splice
(
i
,
0
,
e
),
e
=
e
.
parent
;
return
u
}
function
Iu
(
n
){
for
(
var
t
=
[],
e
=
n
.
parent
;
null
!=
e
;)
t
.
push
(
n
),
n
=
e
,
e
=
e
.
parent
;
return
t
.
push
(
n
),
t
}
function
Zu
(
n
,
t
){
if
(
n
===
t
)
return
n
;
for
(
var
e
=
Iu
(
n
),
r
=
Iu
(
t
),
u
=
e
.
pop
(),
i
=
r
.
pop
(),
o
=
null
;
u
===
i
;)
o
=
u
,
u
=
e
.
pop
(),
i
=
r
.
pop
();
return
o
}
function
Vu
(
n
){
n
.
fixed
|=
2
}
function
$u
(
n
){
n
.
fixed
&=-
7
}
function
Xu
(
n
){
n
.
fixed
|=
4
,
n
.
px
=
n
.
x
,
n
.
py
=
n
.
y
}
function
Bu
(
n
){
n
.
fixed
&=-
5
}
function
Ju
(
n
,
t
,
e
){
var
r
=
0
,
u
=
0
;
if
(
n
.
charge
=
0
,
!
n
.
leaf
)
for
(
var
i
,
o
=
n
.
nodes
,
a
=
o
.
length
,
c
=-
1
;
++
c
<
a
;)
i
=
o
[
c
],
null
!=
i
&&
(
Ju
(
i
,
t
,
e
),
n
.
charge
+=
i
.
charge
,
r
+=
i
.
charge
*
i
.
cx
,
u
+=
i
.
charge
*
i
.
cy
);
if
(
n
.
point
){
n
.
leaf
||
(
n
.
point
.
x
+=
Math
.
random
()
-
.
5
,
n
.
point
.
y
+=
Math
.
random
()
-
.
5
);
var
s
=
t
*
e
[
n
.
point
.
index
];
n
.
charge
+=
n
.
pointCharge
=
s
,
r
+=
s
*
n
.
point
.
x
,
u
+=
s
*
n
.
point
.
y
}
n
.
cx
=
r
/
n
.
charge
,
n
.
cy
=
u
/
n
.
charge
}
function
Wu
(
n
,
t
){
return
Go
.
rebind
(
n
,
t
,
"
sort
"
,
"
children
"
,
"
value
"
),
n
.
nodes
=
n
,
n
.
links
=
ni
,
n
}
function
Gu
(
n
){
return
n
.
children
}
function
Ku
(
n
){
return
n
.
value
}
function
Qu
(
n
,
t
){
return
t
.
value
-
n
.
value
}
function
ni
(
n
){
return
Go
.
merge
(
n
.
map
(
function
(
n
){
return
(
n
.
children
||
[]).
map
(
function
(
t
){
return
{
source
:
n
,
target
:
t
}})}))}
function
ti
(
n
){
return
n
.
x
}
function
ei
(
n
){
return
n
.
y
}
function
ri
(
n
,
t
,
e
){
n
.
y0
=
t
,
n
.
y
=
e
}
function
ui
(
n
){
return
Go
.
range
(
n
.
length
)}
function
ii
(
n
){
for
(
var
t
=-
1
,
e
=
n
[
0
].
length
,
r
=
[];
++
t
<
e
;)
r
[
t
]
=
0
;
return
r
}
function
oi
(
n
){
for
(
var
t
,
e
=
1
,
r
=
0
,
u
=
n
[
0
][
1
],
i
=
n
.
length
;
i
>
e
;
++
e
)(
t
=
n
[
e
][
1
])
>
u
&&
(
r
=
e
,
u
=
t
);
return
r
}
function
ai
(
n
){
return
n
.
reduce
(
ci
,
0
)}
function
ci
(
n
,
t
){
return
n
+
t
[
1
]}
function
si
(
n
,
t
){
return
li
(
n
,
Math
.
ceil
(
Math
.
log
(
t
.
length
)
/
Math
.
LN2
+
1
))}
function
li
(
n
,
t
){
for
(
var
e
=-
1
,
r
=+
n
[
0
],
u
=
(
n
[
1
]
-
r
)
/
t
,
i
=
[];
++
e
<=
t
;)
i
[
e
]
=
u
*
e
+
r
;
return
i
}
function
fi
(
n
){
return
[
Go
.
min
(
n
),
Go
.
max
(
n
)]}
function
hi
(
n
,
t
){
return
n
.
parent
==
t
.
parent
?
1
:
2
}
function
gi
(
n
){
var
t
=
n
.
children
;
return
t
&&
t
.
length
?
t
[
0
]:
n
.
_tree
.
thread
}
function
pi
(
n
){
var
t
,
e
=
n
.
children
;
return
e
&&
(
t
=
e
.
length
)?
e
[
t
-
1
]:
n
.
_tree
.
thread
}
function
vi
(
n
,
t
){
var
e
=
n
.
children
;
if
(
e
&&
(
u
=
e
.
length
))
for
(
var
r
,
u
,
i
=-
1
;
++
i
<
u
;)
t
(
r
=
vi
(
e
[
i
],
t
),
n
)
>
0
&&
(
n
=
r
);
return
n
}
function
di
(
n
,
t
){
return
n
.
x
-
t
.
x
}
function
mi
(
n
,
t
){
return
t
.
x
-
n
.
x
}
function
yi
(
n
,
t
){
return
n
.
depth
-
t
.
depth
}
function
xi
(
n
,
t
){
function
e
(
n
,
r
){
var
u
=
n
.
children
;
if
(
u
&&
(
o
=
u
.
length
))
for
(
var
i
,
o
,
a
=
null
,
c
=-
1
;
++
c
<
o
;)
i
=
u
[
c
],
e
(
i
,
a
),
a
=
i
;
t
(
n
,
r
)}
e
(
n
,
null
)}
function
Mi
(
n
){
for
(
var
t
,
e
=
0
,
r
=
0
,
u
=
n
.
children
,
i
=
u
.
length
;
--
i
>=
0
;)
t
=
u
[
i
].
_tree
,
t
.
prelim
+=
e
,
t
.
mod
+=
e
,
e
+=
t
.
shift
+
(
r
+=
t
.
change
)}
function
_i
(
n
,
t
,
e
){
n
=
n
.
_tree
,
t
=
t
.
_tree
;
var
r
=
e
/
(
t
.
number
-
n
.
number
);
n
.
change
+=
r
,
t
.
change
-=
r
,
t
.
shift
+=
e
,
t
.
prelim
+=
e
,
t
.
mod
+=
e
}
function
bi
(
n
,
t
,
e
){
return
n
.
_tree
.
ancestor
.
parent
==
t
.
parent
?
n
.
_tree
.
ancestor
:
e
}
function
wi
(
n
,
t
){
return
n
.
value
-
t
.
value
}
function
Si
(
n
,
t
){
var
e
=
n
.
_pack_next
;
n
.
_pack_next
=
t
,
t
.
_pack_prev
=
n
,
t
.
_pack_next
=
e
,
e
.
_pack_prev
=
t
}
function
ki
(
n
,
t
){
n
.
_pack_next
=
t
,
t
.
_pack_prev
=
n
}
function
Ei
(
n
,
t
){
var
e
=
t
.
x
-
n
.
x
,
r
=
t
.
y
-
n
.
y
,
u
=
n
.
r
+
t
.
r
;
return
.
999
*
u
*
u
>
e
*
e
+
r
*
r
}
function
Ni
(
n
){
function
t
(
n
){
l
=
Math
.
min
(
n
.
x
-
n
.
r
,
l
),
f
=
Math
.
max
(
n
.
x
+
n
.
r
,
f
),
h
=
Math
.
min
(
n
.
y
-
n
.
r
,
h
),
g
=
Math
.
max
(
n
.
y
+
n
.
r
,
g
)}
if
((
e
=
n
.
children
)
&&
(
s
=
e
.
length
)){
var
e
,
r
,
u
,
i
,
o
,
a
,
c
,
s
,
l
=
1
/
0
,
f
=-
1
/
0
,
h
=
1
/
0
,
g
=-
1
/
0
;
if
(
e
.
forEach
(
Ai
),
r
=
e
[
0
],
r
.
x
=-
r
.
r
,
r
.
y
=
0
,
t
(
r
),
s
>
1
&&
(
u
=
e
[
1
],
u
.
x
=
u
.
r
,
u
.
y
=
0
,
t
(
u
),
s
>
2
))
for
(
i
=
e
[
2
],
Ti
(
r
,
u
,
i
),
t
(
i
),
Si
(
r
,
i
),
r
.
_pack_prev
=
i
,
Si
(
i
,
u
),
u
=
r
.
_pack_next
,
o
=
3
;
s
>
o
;
o
++
){
Ti
(
r
,
u
,
i
=
e
[
o
]);
var
p
=
0
,
v
=
1
,
d
=
1
;
for
(
a
=
u
.
_pack_next
;
a
!==
u
;
a
=
a
.
_pack_next
,
v
++
)
if
(
Ei
(
a
,
i
)){
p
=
1
;
break
}
if
(
1
==
p
)
for
(
c
=
r
.
_pack_prev
;
c
!==
a
.
_pack_prev
&&!
Ei
(
c
,
i
);
c
=
c
.
_pack_prev
,
d
++
);
p
?(
d
>
v
||
v
==
d
&&
u
.
r
<
r
.
r
?
ki
(
r
,
u
=
a
):
ki
(
r
=
c
,
u
),
o
--
):(
Si
(
r
,
i
),
u
=
i
,
t
(
i
))}
var
m
=
(
l
+
f
)
/
2
,
y
=
(
h
+
g
)
/
2
,
x
=
0
;
for
(
o
=
0
;
s
>
o
;
o
++
)
i
=
e
[
o
],
i
.
x
-=
m
,
i
.
y
-=
y
,
x
=
Math
.
max
(
x
,
i
.
r
+
Math
.
sqrt
(
i
.
x
*
i
.
x
+
i
.
y
*
i
.
y
));
n
.
r
=
x
,
e
.
forEach
(
Ci
)}}
function
Ai
(
n
){
n
.
_pack_next
=
n
.
_pack_prev
=
n
}
function
Ci
(
n
){
delete
n
.
_pack_next
,
delete
n
.
_pack_prev
}
function
Li
(
n
,
t
,
e
,
r
){
var
u
=
n
.
children
;
if
(
n
.
x
=
t
+=
r
*
n
.
x
,
n
.
y
=
e
+=
r
*
n
.
y
,
n
.
r
*=
r
,
u
)
for
(
var
i
=-
1
,
o
=
u
.
length
;
++
i
<
o
;)
Li
(
u
[
i
],
t
,
e
,
r
)}
function
Ti
(
n
,
t
,
e
){
var
r
=
n
.
r
+
e
.
r
,
u
=
t
.
x
-
n
.
x
,
i
=
t
.
y
-
n
.
y
;
if
(
r
&&
(
u
||
i
)){
var
o
=
t
.
r
+
e
.
r
,
a
=
u
*
u
+
i
*
i
;
o
*=
o
,
r
*=
r
;
var
c
=
.
5
+
(
r
-
o
)
/
(
2
*
a
),
s
=
Math
.
sqrt
(
Math
.
max
(
0
,
2
*
o
*
(
r
+
a
)
-
(
r
-=
a
)
*
r
-
o
*
o
))
/
(
2
*
a
);
e
.
x
=
n
.
x
+
c
*
u
+
s
*
i
,
e
.
y
=
n
.
y
+
c
*
i
-
s
*
u
}
else
e
.
x
=
n
.
x
+
r
,
e
.
y
=
n
.
y
}
function
qi
(
n
){
return
1
+
Go
.
max
(
n
,
function
(
n
){
return
n
.
y
})}
function
zi
(
n
){
return
n
.
reduce
(
function
(
n
,
t
){
return
n
+
t
.
x
},
0
)
/
n
.
length
}
function
Ri
(
n
){
var
t
=
n
.
children
;
return
t
&&
t
.
length
?
Ri
(
t
[
0
]):
n
}
function
Di
(
n
){
var
t
,
e
=
n
.
children
;
return
e
&&
(
t
=
e
.
length
)?
Di
(
e
[
t
-
1
]):
n
}
function
Pi
(
n
){
return
{
x
:
n
.
x
,
y
:
n
.
y
,
dx
:
n
.
dx
,
dy
:
n
.
dy
}}
function
Ui
(
n
,
t
){
var
e
=
n
.
x
+
t
[
3
],
r
=
n
.
y
+
t
[
0
],
u
=
n
.
dx
-
t
[
1
]
-
t
[
3
],
i
=
n
.
dy
-
t
[
0
]
-
t
[
2
];
return
0
>
u
&&
(
e
+=
u
/
2
,
u
=
0
),
0
>
i
&&
(
r
+=
i
/
2
,
i
=
0
),{
x
:
e
,
y
:
r
,
dx
:
u
,
dy
:
i
}}
function
ji
(
n
){
var
t
=
n
[
0
],
e
=
n
[
n
.
length
-
1
];
return
e
>
t
?[
t
,
e
]:[
e
,
t
]}
function
Hi
(
n
){
return
n
.
rangeExtent
?
n
.
rangeExtent
():
ji
(
n
.
range
())}
function
Fi
(
n
,
t
,
e
,
r
){
var
u
=
e
(
n
[
0
],
n
[
1
]),
i
=
r
(
t
[
0
],
t
[
1
]);
return
function
(
n
){
return
i
(
u
(
n
))}}
function
Oi
(
n
,
t
){
var
e
,
r
=
0
,
u
=
n
.
length
-
1
,
i
=
n
[
r
],
o
=
n
[
u
];
return
i
>
o
&&
(
e
=
r
,
r
=
u
,
u
=
e
,
e
=
i
,
i
=
o
,
o
=
e
),
n
[
r
]
=
t
.
floor
(
i
),
n
[
u
]
=
t
.
ceil
(
o
),
n
}
function
Yi
(
n
){
return
n
?{
floor
:
function
(
t
){
return
Math
.
floor
(
t
/
n
)
*
n
},
ceil
:
function
(
t
){
return
Math
.
ceil
(
t
/
n
)
*
n
}}:
ps
}
function
Ii
(
n
,
t
,
e
,
r
){
var
u
=
[],
i
=
[],
o
=
0
,
a
=
Math
.
min
(
n
.
length
,
t
.
length
)
-
1
;
for
(
n
[
a
]
<
n
[
0
]
&&
(
n
=
n
.
slice
().
reverse
(),
t
=
t
.
slice
().
reverse
());
++
o
<=
a
;)
u
.
push
(
e
(
n
[
o
-
1
],
n
[
o
])),
i
.
push
(
r
(
t
[
o
-
1
],
t
[
o
]));
return
function
(
t
){
var
e
=
Go
.
bisect
(
n
,
t
,
1
,
a
)
-
1
;
return
i
[
e
](
u
[
e
](
t
))}}
function
Zi
(
n
,
t
,
e
,
r
){
function
u
(){
var
u
=
Math
.
min
(
n
.
length
,
t
.
length
)
>
2
?
Ii
:
Fi
,
c
=
r
?
Ou
:
Fu
;
return
o
=
u
(
n
,
t
,
c
,
e
),
a
=
u
(
t
,
n
,
c
,
du
),
i
}
function
i
(
n
){
return
o
(
n
)}
var
o
,
a
;
return
i
.
invert
=
function
(
n
){
return
a
(
n
)},
i
.
domain
=
function
(
t
){
return
arguments
.
length
?(
n
=
t
.
map
(
Number
),
u
()):
n
},
i
.
range
=
function
(
n
){
return
arguments
.
length
?(
t
=
n
,
u
()):
t
},
i
.
rangeRound
=
function
(
n
){
return
i
.
range
(
n
).
interpolate
(
Ru
)},
i
.
clamp
=
function
(
n
){
return
arguments
.
length
?(
r
=
n
,
u
()):
r
},
i
.
interpolate
=
function
(
n
){
return
arguments
.
length
?(
e
=
n
,
u
()):
e
},
i
.
ticks
=
function
(
t
){
return
Bi
(
n
,
t
)},
i
.
tickFormat
=
function
(
t
,
e
){
return
Ji
(
n
,
t
,
e
)},
i
.
nice
=
function
(
t
){
return
$i
(
n
,
t
),
u
()},
i
.
copy
=
function
(){
return
Zi
(
n
,
t
,
e
,
r
)},
u
()}
function
Vi
(
n
,
t
){
return
Go
.
rebind
(
n
,
t
,
"
range
"
,
"
rangeRound
"
,
"
interpolate
"
,
"
clamp
"
)}
function
$i
(
n
,
t
){
return
Oi
(
n
,
Yi
(
Xi
(
n
,
t
)[
2
]))}
function
Xi
(
n
,
t
){
null
==
t
&&
(
t
=
10
);
var
e
=
ji
(
n
),
r
=
e
[
1
]
-
e
[
0
],
u
=
Math
.
pow
(
10
,
Math
.
floor
(
Math
.
log
(
r
/
t
)
/
Math
.
LN10
)),
i
=
t
/
r
*
u
;
return
.
15
>=
i
?
u
*=
10
:.
35
>=
i
?
u
*=
5
:.
75
>=
i
&&
(
u
*=
2
),
e
[
0
]
=
Math
.
ceil
(
e
[
0
]
/
u
)
*
u
,
e
[
1
]
=
Math
.
floor
(
e
[
1
]
/
u
)
*
u
+
.
5
*
u
,
e
[
2
]
=
u
,
e
}
function
Bi
(
n
,
t
){
return
Go
.
range
.
apply
(
Go
,
Xi
(
n
,
t
))}
function
Ji
(
n
,
t
,
e
){
var
r
=
Xi
(
n
,
t
);
if
(
e
){
var
u
=
rc
.
exec
(
e
);
if
(
u
.
shift
(),
"
s
"
===
u
[
8
]){
var
i
=
Go
.
formatPrefix
(
Math
.
max
(
fa
(
r
[
0
]),
fa
(
r
[
1
])));
return
u
[
7
]
||
(
u
[
7
]
=
"
.
"
+
Wi
(
i
.
scale
(
r
[
2
]))),
u
[
8
]
=
"
f
"
,
e
=
Go
.
format
(
u
.
join
(
""
)),
function
(
n
){
return
e
(
i
.
scale
(
n
))
+
i
.
symbol
}}
u
[
7
]
||
(
u
[
7
]
=
"
.
"
+
Gi
(
u
[
8
],
r
)),
e
=
u
.
join
(
""
)}
else
e
=
"
,.
"
+
Wi
(
r
[
2
])
+
"
f
"
;
return
Go
.
format
(
e
)}
function
Wi
(
n
){
return
-
Math
.
floor
(
Math
.
log
(
n
)
/
Math
.
LN10
+
.
01
)}
function
Gi
(
n
,
t
){
var
e
=
Wi
(
t
[
2
]);
return
n
in
vs
?
Math
.
abs
(
e
-
Wi
(
Math
.
max
(
fa
(
t
[
0
]),
fa
(
t
[
1
]))))
+
+
(
"
e
"
!==
n
):
e
-
2
*
(
"
%
"
===
n
)}
function
Ki
(
n
,
t
,
e
,
r
){
function
u
(
n
){
return
(
e
?
Math
.
log
(
0
>
n
?
0
:
n
):
-
Math
.
log
(
n
>
0
?
0
:
-
n
))
/
Math
.
log
(
t
)}
function
i
(
n
){
return
e
?
Math
.
pow
(
t
,
n
):
-
Math
.
pow
(
t
,
-
n
)}
function
o
(
t
){
return
n
(
u
(
t
))}
return
o
.
invert
=
function
(
t
){
return
i
(
n
.
invert
(
t
))},
o
.
domain
=
function
(
t
){
return
arguments
.
length
?(
e
=
t
[
0
]
>=
0
,
n
.
domain
((
r
=
t
.
map
(
Number
)).
map
(
u
)),
o
):
r
},
o
.
base
=
function
(
e
){
return
arguments
.
length
?(
t
=+
e
,
n
.
domain
(
r
.
map
(
u
)),
o
):
t
},
o
.
nice
=
function
(){
var
t
=
Oi
(
r
.
map
(
u
),
e
?
Math
:
ms
);
return
n
.
domain
(
t
),
r
=
t
.
map
(
i
),
o
},
o
.
ticks
=
function
(){
var
n
=
ji
(
r
),
o
=
[],
a
=
n
[
0
],
c
=
n
[
1
],
s
=
Math
.
floor
(
u
(
a
)),
l
=
Math
.
ceil
(
u
(
c
)),
f
=
t
%
1
?
2
:
t
;
if
(
isFinite
(
l
-
s
)){
if
(
e
){
for
(;
l
>
s
;
s
++
)
for
(
var
h
=
1
;
f
>
h
;
h
++
)
o
.
push
(
i
(
s
)
*
h
);
o
.
push
(
i
(
s
))}
else
for
(
o
.
push
(
i
(
s
));
s
++<
l
;)
for
(
var
h
=
f
-
1
;
h
>
0
;
h
--
)
o
.
push
(
i
(
s
)
*
h
);
for
(
s
=
0
;
o
[
s
]
<
a
;
s
++
);
for
(
l
=
o
.
length
;
o
[
l
-
1
]
>
c
;
l
--
);
o
=
o
.
slice
(
s
,
l
)}
return
o
},
o
.
tickFormat
=
function
(
n
,
t
){
if
(
!
arguments
.
length
)
return
ds
;
arguments
.
length
<
2
?
t
=
ds
:
"
function
"
!=
typeof
t
&&
(
t
=
Go
.
format
(
t
));
var
r
,
a
=
Math
.
max
(.
1
,
n
/
o
.
ticks
().
length
),
c
=
e
?(
r
=
1
e
-
12
,
Math
.
ceil
):(
r
=-
1
e
-
12
,
Math
.
floor
);
return
function
(
n
){
return
n
/
i
(
c
(
u
(
n
)
+
r
))
<=
a
?
t
(
n
):
""
}},
o
.
copy
=
function
(){
return
Ki
(
n
.
copy
(),
t
,
e
,
r
)},
Vi
(
o
,
n
)}
function
Qi
(
n
,
t
,
e
){
function
r
(
t
){
return
n
(
u
(
t
))}
var
u
=
no
(
t
),
i
=
no
(
1
/
t
);
return
r
.
invert
=
function
(
t
){
return
i
(
n
.
invert
(
t
))},
r
.
domain
=
function
(
t
){
return
arguments
.
length
?(
n
.
domain
((
e
=
t
.
map
(
Number
)).
map
(
u
)),
r
):
e
},
r
.
ticks
=
function
(
n
){
return
Bi
(
e
,
n
)},
r
.
tickFormat
=
function
(
n
,
t
){
return
Ji
(
e
,
n
,
t
)},
r
.
nice
=
function
(
n
){
return
r
.
domain
(
$i
(
e
,
n
))},
r
.
exponent
=
function
(
o
){
return
arguments
.
length
?(
u
=
no
(
t
=
o
),
i
=
no
(
1
/
t
),
n
.
domain
(
e
.
map
(
u
)),
r
):
t
},
r
.
copy
=
function
(){
return
Qi
(
n
.
copy
(),
t
,
e
)},
Vi
(
r
,
n
)}
function
no
(
n
){
return
function
(
t
){
return
0
>
t
?
-
Math
.
pow
(
-
t
,
n
):
Math
.
pow
(
t
,
n
)}}
function
to
(
n
,
t
){
function
e
(
e
){
return
i
[((
u
.
get
(
e
)
||
(
"
range
"
===
t
.
t
?
u
.
set
(
e
,
n
.
push
(
e
)):
0
/
0
))
-
1
)
%
i
.
length
]}
function
r
(
t
,
e
){
return
Go
.
range
(
n
.
length
).
map
(
function
(
n
){
return
t
+
e
*
n
})}
var
u
,
i
,
a
;
return
e
.
domain
=
function
(
r
){
if
(
!
arguments
.
length
)
return
n
;
n
=
[],
u
=
new
o
;
for
(
var
i
,
a
=-
1
,
c
=
r
.
length
;
++
a
<
c
;)
u
.
has
(
i
=
r
[
a
])
||
u
.
set
(
i
,
n
.
push
(
i
));
return
e
[
t
.
t
].
apply
(
e
,
t
.
a
)},
e
.
range
=
function
(
n
){
return
arguments
.
length
?(
i
=
n
,
a
=
0
,
t
=
{
t
:
"
range
"
,
a
:
arguments
},
e
):
i
},
e
.
rangePoints
=
function
(
u
,
o
){
arguments
.
length
<
2
&&
(
o
=
0
);
var
c
=
u
[
0
],
s
=
u
[
1
],
l
=
(
s
-
c
)
/
(
Math
.
max
(
1
,
n
.
length
-
1
)
+
o
);
return
i
=
r
(
n
.
length
<
2
?(
c
+
s
)
/
2
:
c
+
l
*
o
/
2
,
l
),
a
=
0
,
t
=
{
t
:
"
rangePoints
"
,
a
:
arguments
},
e
},
e
.
rangeBands
=
function
(
u
,
o
,
c
){
arguments
.
length
<
2
&&
(
o
=
0
),
arguments
.
length
<
3
&&
(
c
=
o
);
var
s
=
u
[
1
]
<
u
[
0
],
l
=
u
[
s
-
0
],
f
=
u
[
1
-
s
],
h
=
(
f
-
l
)
/
(
n
.
length
-
o
+
2
*
c
);
return
i
=
r
(
l
+
h
*
c
,
h
),
s
&&
i
.
reverse
(),
a
=
h
*
(
1
-
o
),
t
=
{
t
:
"
rangeBands
"
,
a
:
arguments
},
e
},
e
.
rangeRoundBands
=
function
(
u
,
o
,
c
){
arguments
.
length
<
2
&&
(
o
=
0
),
arguments
.
length
<
3
&&
(
c
=
o
);
var
s
=
u
[
1
]
<
u
[
0
],
l
=
u
[
s
-
0
],
f
=
u
[
1
-
s
],
h
=
Math
.
floor
((
f
-
l
)
/
(
n
.
length
-
o
+
2
*
c
)),
g
=
f
-
l
-
(
n
.
length
-
o
)
*
h
;
return
i
=
r
(
l
+
Math
.
round
(
g
/
2
),
h
),
s
&&
i
.
reverse
(),
a
=
Math
.
round
(
h
*
(
1
-
o
)),
t
=
{
t
:
"
rangeRoundBands
"
,
a
:
arguments
},
e
},
e
.
rangeBand
=
function
(){
return
a
},
e
.
rangeExtent
=
function
(){
return
ji
(
t
.
a
[
0
])},
e
.
copy
=
function
(){
return
to
(
n
,
t
)},
e
.
domain
(
n
)}
function
eo
(
t
,
e
){
function
r
(){
var
n
=
0
,
r
=
e
.
length
;
for
(
i
=
[];
++
n
<
r
;)
i
[
n
-
1
]
=
Go
.
quantile
(
t
,
n
/
r
);
return
u
}
function
u
(
n
){
return
isNaN
(
n
=+
n
)?
void
0
:
e
[
Go
.
bisect
(
i
,
n
)]}
var
i
;
return
u
.
domain
=
function
(
e
){
return
arguments
.
length
?(
t
=
e
.
filter
(
function
(
n
){
return
!
isNaN
(
n
)}).
sort
(
n
),
r
()):
t
},
u
.
range
=
function
(
n
){
return
arguments
.
length
?(
e
=
n
,
r
()):
e
},
u
.
quantiles
=
function
(){
return
i
},
u
.
invertExtent
=
function
(
n
){
return
n
=
e
.
indexOf
(
n
),
0
>
n
?[
0
/
0
,
0
/
0
]:[
n
>
0
?
i
[
n
-
1
]:
t
[
0
],
n
<
i
.
length
?
i
[
n
]:
t
[
t
.
length
-
1
]]},
u
.
copy
=
function
(){
return
eo
(
t
,
e
)},
r
()}
function
ro
(
n
,
t
,
e
){
function
r
(
t
){
return
e
[
Math
.
max
(
0
,
Math
.
min
(
o
,
Math
.
floor
(
i
*
(
t
-
n
))))]}
function
u
(){
return
i
=
e
.
length
/
(
t
-
n
),
o
=
e
.
length
-
1
,
r
}
var
i
,
o
;
return
r
.
domain
=
function
(
e
){
return
arguments
.
length
?(
n
=+
e
[
0
],
t
=+
e
[
e
.
length
-
1
],
u
()):[
n
,
t
]},
r
.
range
=
function
(
n
){
return
arguments
.
length
?(
e
=
n
,
u
()):
e
},
r
.
invertExtent
=
function
(
t
){
return
t
=
e
.
indexOf
(
t
),
t
=
0
>
t
?
0
/
0
:
t
/
i
+
n
,[
t
,
t
+
1
/
i
]},
r
.
copy
=
function
(){
return
ro
(
n
,
t
,
e
)},
u
()}
function
uo
(
n
,
t
){
function
e
(
e
){
return
e
>=
e
?
t
[
Go
.
bisect
(
n
,
e
)]:
void
0
}
return
e
.
domain
=
function
(
t
){
return
arguments
.
length
?(
n
=
t
,
e
):
n
},
e
.
range
=
function
(
n
){
return
arguments
.
length
?(
t
=
n
,
e
):
t
},
e
.
invertExtent
=
function
(
e
){
return
e
=
t
.
indexOf
(
e
),[
n
[
e
-
1
],
n
[
e
]]},
e
.
copy
=
function
(){
return
uo
(
n
,
t
)},
e
}
function
io
(
n
){
function
t
(
n
){
return
+
n
}
return
t
.
invert
=
t
,
t
.
domain
=
t
.
range
=
function
(
e
){
return
arguments
.
length
?(
n
=
e
.
map
(
t
),
t
):
n
},
t
.
ticks
=
function
(
t
){
return
Bi
(
n
,
t
)},
t
.
tickFormat
=
function
(
t
,
e
){
return
Ji
(
n
,
t
,
e
)},
t
.
copy
=
function
(){
return
io
(
n
)},
t
}
function
oo
(
n
){
return
n
.
innerRadius
}
function
ao
(
n
){
return
n
.
outerRadius
}
function
co
(
n
){
return
n
.
startAngle
}
function
so
(
n
){
return
n
.
endAngle
}
function
lo
(
n
){
function
t
(
t
){
function
o
(){
s
.
push
(
"
M
"
,
i
(
n
(
l
),
a
))}
for
(
var
c
,
s
=
[],
l
=
[],
f
=-
1
,
h
=
t
.
length
,
g
=
Et
(
e
),
p
=
Et
(
r
);
++
f
<
h
;)
u
.
call
(
this
,
c
=
t
[
f
],
f
)?
l
.
push
([
+
g
.
call
(
this
,
c
,
f
),
+
p
.
call
(
this
,
c
,
f
)]):
l
.
length
&&
(
o
(),
l
=
[]);
return
l
.
length
&&
o
(),
s
.
length
?
s
.
join
(
""
):
null
}
var
e
=
Nr
,
r
=
Ar
,
u
=
Ne
,
i
=
fo
,
o
=
i
.
key
,
a
=
.
7
;
return
t
.
x
=
function
(
n
){
return
arguments
.
length
?(
e
=
n
,
t
):
e
},
t
.
y
=
function
(
n
){
return
arguments
.
length
?(
r
=
n
,
t
):
r
},
t
.
defined
=
function
(
n
){
return
arguments
.
length
?(
u
=
n
,
t
):
u
},
t
.
interpolate
=
function
(
n
){
return
arguments
.
length
?(
o
=
"
function
"
==
typeof
n
?
i
=
n
:(
i
=
Ss
.
get
(
n
)
||
fo
).
key
,
t
):
o
},
t
.
tension
=
function
(
n
){
return
arguments
.
length
?(
a
=
n
,
t
):
a
},
t
}
function
fo
(
n
){
return
n
.
join
(
"
L
"
)}
function
ho
(
n
){
return
fo
(
n
)
+
"
Z
"
}
function
go
(
n
){
for
(
var
t
=
0
,
e
=
n
.
length
,
r
=
n
[
0
],
u
=
[
r
[
0
],
"
,
"
,
r
[
1
]];
++
t
<
e
;)
u
.
push
(
"
H
"
,(
r
[
0
]
+
(
r
=
n
[
t
])[
0
])
/
2
,
"
V
"
,
r
[
1
]);
return
e
>
1
&&
u
.
push
(
"
H
"
,
r
[
0
]),
u
.
join
(
""
)}
function
po
(
n
){
for
(
var
t
=
0
,
e
=
n
.
length
,
r
=
n
[
0
],
u
=
[
r
[
0
],
"
,
"
,
r
[
1
]];
++
t
<
e
;)
u
.
push
(
"
V
"
,(
r
=
n
[
t
])[
1
],
"
H
"
,
r
[
0
]);
return
u
.
join
(
""
)}
function
vo
(
n
){
for
(
var
t
=
0
,
e
=
n
.
length
,
r
=
n
[
0
],
u
=
[
r
[
0
],
"
,
"
,
r
[
1
]];
++
t
<
e
;)
u
.
push
(
"
H
"
,(
r
=
n
[
t
])[
0
],
"
V
"
,
r
[
1
]);
return
u
.
join
(
""
)}
function
mo
(
n
,
t
){
return
n
.
length
<
4
?
fo
(
n
):
n
[
1
]
+
Mo
(
n
.
slice
(
1
,
n
.
length
-
1
),
_o
(
n
,
t
))}
function
yo
(
n
,
t
){
return
n
.
length
<
3
?
fo
(
n
):
n
[
0
]
+
Mo
((
n
.
push
(
n
[
0
]),
n
),
_o
([
n
[
n
.
length
-
2
]].
concat
(
n
,[
n
[
1
]]),
t
))}
function
xo
(
n
,
t
){
return
n
.
length
<
3
?
fo
(
n
):
n
[
0
]
+
Mo
(
n
,
_o
(
n
,
t
))}
function
Mo
(
n
,
t
){
if
(
t
.
length
<
1
||
n
.
length
!=
t
.
length
&&
n
.
length
!=
t
.
length
+
2
)
return
fo
(
n
);
var
e
=
n
.
length
!=
t
.
length
,
r
=
""
,
u
=
n
[
0
],
i
=
n
[
1
],
o
=
t
[
0
],
a
=
o
,
c
=
1
;
if
(
e
&&
(
r
+=
"
Q
"
+
(
i
[
0
]
-
2
*
o
[
0
]
/
3
)
+
"
,
"
+
(
i
[
1
]
-
2
*
o
[
1
]
/
3
)
+
"
,
"
+
i
[
0
]
+
"
,
"
+
i
[
1
],
u
=
n
[
1
],
c
=
2
),
t
.
length
>
1
){
a
=
t
[
1
],
i
=
n
[
c
],
c
++
,
r
+=
"
C
"
+
(
u
[
0
]
+
o
[
0
])
+
"
,
"
+
(
u
[
1
]
+
o
[
1
])
+
"
,
"
+
(
i
[
0
]
-
a
[
0
])
+
"
,
"
+
(
i
[
1
]
-
a
[
1
])
+
"
,
"
+
i
[
0
]
+
"
,
"
+
i
[
1
];
for
(
var
s
=
2
;
s
<
t
.
length
;
s
++
,
c
++
)
i
=
n
[
c
],
a
=
t
[
s
],
r
+=
"
S
"
+
(
i
[
0
]
-
a
[
0
])
+
"
,
"
+
(
i
[
1
]
-
a
[
1
])
+
"
,
"
+
i
[
0
]
+
"
,
"
+
i
[
1
]}
if
(
e
){
var
l
=
n
[
c
];
r
+=
"
Q
"
+
(
i
[
0
]
+
2
*
a
[
0
]
/
3
)
+
"
,
"
+
(
i
[
1
]
+
2
*
a
[
1
]
/
3
)
+
"
,
"
+
l
[
0
]
+
"
,
"
+
l
[
1
]}
return
r
}
function
_o
(
n
,
t
){
for
(
var
e
,
r
=
[],
u
=
(
1
-
t
)
/
2
,
i
=
n
[
0
],
o
=
n
[
1
],
a
=
1
,
c
=
n
.
length
;
++
a
<
c
;)
e
=
i
,
i
=
o
,
o
=
n
[
a
],
r
.
push
([
u
*
(
o
[
0
]
-
e
[
0
]),
u
*
(
o
[
1
]
-
e
[
1
])]);
return
r
}
function
bo
(
n
){
if
(
n
.
length
<
3
)
return
fo
(
n
);
var
t
=
1
,
e
=
n
.
length
,
r
=
n
[
0
],
u
=
r
[
0
],
i
=
r
[
1
],
o
=
[
u
,
u
,
u
,(
r
=
n
[
1
])[
0
]],
a
=
[
i
,
i
,
i
,
r
[
1
]],
c
=
[
u
,
"
,
"
,
i
,
"
L
"
,
Eo
(
Ns
,
o
),
"
,
"
,
Eo
(
Ns
,
a
)];
for
(
n
.
push
(
n
[
e
-
1
]);
++
t
<=
e
;)
r
=
n
[
t
],
o
.
shift
(),
o
.
push
(
r
[
0
]),
a
.
shift
(),
a
.
push
(
r
[
1
]),
No
(
c
,
o
,
a
);
return
n
.
pop
(),
c
.
push
(
"
L
"
,
r
),
c
.
join
(
""
)}
function
wo
(
n
){
if
(
n
.
length
<
4
)
return
fo
(
n
);
for
(
var
t
,
e
=
[],
r
=-
1
,
u
=
n
.
length
,
i
=
[
0
],
o
=
[
0
];
++
r
<
3
;)
t
=
n
[
r
],
i
.
push
(
t
[
0
]),
o
.
push
(
t
[
1
]);
for
(
e
.
push
(
Eo
(
Ns
,
i
)
+
"
,
"
+
Eo
(
Ns
,
o
)),
--
r
;
++
r
<
u
;)
t
=
n
[
r
],
i
.
shift
(),
i
.
push
(
t
[
0
]),
o
.
shift
(),
o
.
push
(
t
[
1
]),
No
(
e
,
i
,
o
);
return
e
.
join
(
""
)}
function
So
(
n
){
for
(
var
t
,
e
,
r
=-
1
,
u
=
n
.
length
,
i
=
u
+
4
,
o
=
[],
a
=
[];
++
r
<
4
;)
e
=
n
[
r
%
u
],
o
.
push
(
e
[
0
]),
a
.
push
(
e
[
1
]);
for
(
t
=
[
Eo
(
Ns
,
o
),
"
,
"
,
Eo
(
Ns
,
a
)],
--
r
;
++
r
<
i
;)
e
=
n
[
r
%
u
],
o
.
shift
(),
o
.
push
(
e
[
0
]),
a
.
shift
(),
a
.
push
(
e
[
1
]),
No
(
t
,
o
,
a
);
return
t
.
join
(
""
)}
function
ko
(
n
,
t
){
var
e
=
n
.
length
-
1
;
if
(
e
)
for
(
var
r
,
u
,
i
=
n
[
0
][
0
],
o
=
n
[
0
][
1
],
a
=
n
[
e
][
0
]
-
i
,
c
=
n
[
e
][
1
]
-
o
,
s
=-
1
;
++
s
<=
e
;)
r
=
n
[
s
],
u
=
s
/
e
,
r
[
0
]
=
t
*
r
[
0
]
+
(
1
-
t
)
*
(
i
+
u
*
a
),
r
[
1
]
=
t
*
r
[
1
]
+
(
1
-
t
)
*
(
o
+
u
*
c
);
return
bo
(
n
)}
function
Eo
(
n
,
t
){
return
n
[
0
]
*
t
[
0
]
+
n
[
1
]
*
t
[
1
]
+
n
[
2
]
*
t
[
2
]
+
n
[
3
]
*
t
[
3
]}
function
No
(
n
,
t
,
e
){
n
.
push
(
"
C
"
,
Eo
(
ks
,
t
),
"
,
"
,
Eo
(
ks
,
e
),
"
,
"
,
Eo
(
Es
,
t
),
"
,
"
,
Eo
(
Es
,
e
),
"
,
"
,
Eo
(
Ns
,
t
),
"
,
"
,
Eo
(
Ns
,
e
))}
function
Ao
(
n
,
t
){
return
(
t
[
1
]
-
n
[
1
])
/
(
t
[
0
]
-
n
[
0
])}
function
Co
(
n
){
for
(
var
t
=
0
,
e
=
n
.
length
-
1
,
r
=
[],
u
=
n
[
0
],
i
=
n
[
1
],
o
=
r
[
0
]
=
Ao
(
u
,
i
);
++
t
<
e
;)
r
[
t
]
=
(
o
+
(
o
=
Ao
(
u
=
i
,
i
=
n
[
t
+
1
])))
/
2
;
return
r
[
t
]
=
o
,
r
}
function
Lo
(
n
){
for
(
var
t
,
e
,
r
,
u
,
i
=
[],
o
=
Co
(
n
),
a
=-
1
,
c
=
n
.
length
-
1
;
++
a
<
c
;)
t
=
Ao
(
n
[
a
],
n
[
a
+
1
]),
fa
(
t
)
<
Ta
?
o
[
a
]
=
o
[
a
+
1
]
=
0
:(
e
=
o
[
a
]
/
t
,
r
=
o
[
a
+
1
]
/
t
,
u
=
e
*
e
+
r
*
r
,
u
>
9
&&
(
u
=
3
*
t
/
Math
.
sqrt
(
u
),
o
[
a
]
=
u
*
e
,
o
[
a
+
1
]
=
u
*
r
));
for
(
a
=-
1
;
++
a
<=
c
;)
u
=
(
n
[
Math
.
min
(
c
,
a
+
1
)][
0
]
-
n
[
Math
.
max
(
0
,
a
-
1
)][
0
])
/
(
6
*
(
1
+
o
[
a
]
*
o
[
a
])),
i
.
push
([
u
||
0
,
o
[
a
]
*
u
||
0
]);
return
i
}
function
To
(
n
){
return
n
.
length
<
3
?
fo
(
n
):
n
[
0
]
+
Mo
(
n
,
Lo
(
n
))}
function
qo
(
n
){
for
(
var
t
,
e
,
r
,
u
=-
1
,
i
=
n
.
length
;
++
u
<
i
;)
t
=
n
[
u
],
e
=
t
[
0
],
r
=
t
[
1
]
+
bs
,
t
[
0
]
=
e
*
Math
.
cos
(
r
),
t
[
1
]
=
e
*
Math
.
sin
(
r
);
return
n
}
function
zo
(
n
){
function
t
(
t
){
function
c
(){
v
.
push
(
"
M
"
,
a
(
n
(
m
),
f
),
l
,
s
(
n
(
d
.
reverse
()),
f
),
"
Z
"
)}
for
(
var
h
,
g
,
p
,
v
=
[],
d
=
[],
m
=
[],
y
=-
1
,
x
=
t
.
length
,
M
=
Et
(
e
),
_
=
Et
(
u
),
b
=
e
===
r
?
function
(){
return
g
}:
Et
(
r
),
w
=
u
===
i
?
function
(){
return
p
}:
Et
(
i
);
++
y
<
x
;)
o
.
call
(
this
,
h
=
t
[
y
],
y
)?(
d
.
push
([
g
=+
M
.
call
(
this
,
h
,
y
),
p
=+
_
.
call
(
this
,
h
,
y
)]),
m
.
push
([
+
b
.
call
(
this
,
h
,
y
),
+
w
.
call
(
this
,
h
,
y
)])):
d
.
length
&&
(
c
(),
d
=
[],
m
=
[]);
return
d
.
length
&&
c
(),
v
.
length
?
v
.
join
(
""
):
null
}
var
e
=
Nr
,
r
=
Nr
,
u
=
0
,
i
=
Ar
,
o
=
Ne
,
a
=
fo
,
c
=
a
.
key
,
s
=
a
,
l
=
"
L
"
,
f
=
.
7
;
return
t
.
x
=
function
(
n
){
return
arguments
.
length
?(
e
=
r
=
n
,
t
):
r
},
t
.
x0
=
function
(
n
){
return
arguments
.
length
?(
e
=
n
,
t
):
e
},
t
.
x1
=
function
(
n
){
return
arguments
.
length
?(
r
=
n
,
t
):
r
},
t
.
y
=
function
(
n
){
return
arguments
.
length
?(
u
=
i
=
n
,
t
):
i
},
t
.
y0
=
function
(
n
){
return
arguments
.
length
?(
u
=
n
,
t
):
u
},
t
.
y1
=
function
(
n
){
return
arguments
.
length
?(
i
=
n
,
t
):
i
},
t
.
defined
=
function
(
n
){
return
arguments
.
length
?(
o
=
n
,
t
):
o
},
t
.
interpolate
=
function
(
n
){
return
arguments
.
length
?(
c
=
"
function
"
==
typeof
n
?
a
=
n
:(
a
=
Ss
.
get
(
n
)
||
fo
).
key
,
s
=
a
.
reverse
||
a
,
l
=
a
.
closed
?
"
M
"
:
"
L
"
,
t
):
c
},
t
.
tension
=
function
(
n
){
return
arguments
.
length
?(
f
=
n
,
t
):
f
},
t
}
function
Ro
(
n
){
return
n
.
radius
}
function
Do
(
n
){
return
[
n
.
x
,
n
.
y
]}
function
Po
(
n
){
return
function
(){
var
t
=
n
.
apply
(
this
,
arguments
),
e
=
t
[
0
],
r
=
t
[
1
]
+
bs
;
return
[
e
*
Math
.
cos
(
r
),
e
*
Math
.
sin
(
r
)]}}
function
Uo
(){
return
64
}
function
jo
(){
return
"
circle
"
}
function
Ho
(
n
){
var
t
=
Math
.
sqrt
(
n
/
Aa
);
return
"
M0,
"
+
t
+
"
A
"
+
t
+
"
,
"
+
t
+
"
0 1,1 0,
"
+-
t
+
"
A
"
+
t
+
"
,
"
+
t
+
"
0 1,1 0,
"
+
t
+
"
Z
"
}
function
Fo
(
n
,
t
){
return
da
(
n
,
zs
),
n
.
id
=
t
,
n
}
function
Oo
(
n
,
t
,
e
,
r
){
var
u
=
n
.
id
;
return
P
(
n
,
"
function
"
==
typeof
e
?
function
(
n
,
i
,
o
){
n
.
__transition__
[
u
].
tween
.
set
(
t
,
r
(
e
.
call
(
n
,
n
.
__data__
,
i
,
o
)))}:(
e
=
r
(
e
),
function
(
n
){
n
.
__transition__
[
u
].
tween
.
set
(
t
,
e
)}))}
function
Yo
(
n
){
return
null
==
n
&&
(
n
=
""
),
function
(){
this
.
textContent
=
n
}}
function
Io
(
n
,
t
,
e
,
r
){
var
u
=
n
.
__transition__
||
(
n
.
__transition__
=
{
active
:
0
,
count
:
0
}),
i
=
u
[
e
];
if
(
!
i
){
var
a
=
r
.
time
;
i
=
u
[
e
]
=
{
tween
:
new
o
,
time
:
a
,
ease
:
r
.
ease
,
delay
:
r
.
delay
,
duration
:
r
.
duration
},
++
u
.
count
,
Go
.
timer
(
function
(
r
){
function
o
(
r
){
return
u
.
active
>
e
?
s
():(
u
.
active
=
e
,
i
.
event
&&
i
.
event
.
start
.
call
(
n
,
l
,
t
),
i
.
tween
.
forEach
(
function
(
e
,
r
){(
r
=
r
.
call
(
n
,
l
,
t
))
&&
v
.
push
(
r
)}),
Go
.
timer
(
function
(){
return
p
.
c
=
c
(
r
||
1
)?
Ne
:
c
,
1
},
0
,
a
),
void
0
)}
function
c
(
r
){
if
(
u
.
active
!==
e
)
return
s
();
for
(
var
o
=
r
/
g
,
a
=
f
(
o
),
c
=
v
.
length
;
c
>
0
;)
v
[
--
c
].
call
(
n
,
a
);
return
o
>=
1
?(
i
.
event
&&
i
.
event
.
end
.
call
(
n
,
l
,
t
),
s
()):
void
0
}
function
s
(){
return
--
u
.
count
?
delete
u
[
e
]:
delete
n
.
__transition__
,
1
}
var
l
=
n
.
__data__
,
f
=
i
.
ease
,
h
=
i
.
delay
,
g
=
i
.
duration
,
p
=
nc
,
v
=
[];
return
p
.
t
=
h
+
a
,
r
>=
h
?
o
(
r
-
h
):(
p
.
c
=
o
,
void
0
)
},
0
,
a
)}}
function
Zo
(
n
,
t
){
n
.
attr
(
"
transform
"
,
function
(
n
){
return
"
translate(
"
+
t
(
n
)
+
"
,0)
"
})}
function
Vo
(
n
,
t
){
n
.
attr
(
"
transform
"
,
function
(
n
){
return
"
translate(0,
"
+
t
(
n
)
+
"
)
"
})}
function
$o
(
n
){
return
n
.
toISOString
()}
function
Xo
(
n
,
t
,
e
){
function
r
(
t
){
return
n
(
t
)}
function
u
(
n
,
e
){
var
r
=
n
[
1
]
-
n
[
0
],
u
=
r
/
e
,
i
=
Go
.
bisect
(
Ys
,
u
);
return
i
==
Ys
.
length
?[
t
.
year
,
Xi
(
n
.
map
(
function
(
n
){
return
n
/
31536
e6
}),
e
)[
2
]]:
i
?
t
[
u
/
Ys
[
i
-
1
]
<
Ys
[
i
]
/
u
?
i
-
1
:
i
]:[
Vs
,
Xi
(
n
,
e
)[
2
]]}
return
r
.
invert
=
function
(
t
){
return
Bo
(
n
.
invert
(
t
))},
r
.
domain
=
function
(
t
){
return
arguments
.
length
?(
n
.
domain
(
t
),
r
):
n
.
domain
().
map
(
Bo
)},
r
.
nice
=
function
(
n
,
t
){
function
e
(
e
){
return
!
isNaN
(
e
)
&&!
n
.
range
(
e
,
Bo
(
+
e
+
1
),
t
).
length
}
var
i
=
r
.
domain
(),
o
=
ji
(
i
),
a
=
null
==
n
?
u
(
o
,
10
):
"
number
"
==
typeof
n
&&
u
(
o
,
n
);
return
a
&&
(
n
=
a
[
0
],
t
=
a
[
1
]),
r
.
domain
(
Oi
(
i
,
t
>
1
?{
floor
:
function
(
t
){
for
(;
e
(
t
=
n
.
floor
(
t
));)
t
=
Bo
(
t
-
1
);
return
t
},
ceil
:
function
(
t
){
for
(;
e
(
t
=
n
.
ceil
(
t
));)
t
=
Bo
(
+
t
+
1
);
return
t
}}:
n
))},
r
.
ticks
=
function
(
n
,
t
){
var
e
=
ji
(
r
.
domain
()),
i
=
null
==
n
?
u
(
e
,
10
):
"
number
"
==
typeof
n
?
u
(
e
,
n
):
!
n
.
range
&&
[{
range
:
n
},
t
];
return
i
&&
(
n
=
i
[
0
],
t
=
i
[
1
]),
n
.
range
(
e
[
0
],
Bo
(
+
e
[
1
]
+
1
),
1
>
t
?
1
:
t
)},
r
.
tickFormat
=
function
(){
return
e
},
r
.
copy
=
function
(){
return
Xo
(
n
.
copy
(),
t
,
e
)},
Vi
(
r
,
n
)}
function
Bo
(
n
){
return
new
Date
(
n
)}
function
Jo
(
n
){
return
JSON
.
parse
(
n
.
responseText
)}
function
Wo
(
n
){
var
t
=
na
.
createRange
();
return
t
.
selectNode
(
na
.
body
),
t
.
createContextualFragment
(
n
.
responseText
)}
var
Go
=
{
version
:
"
3.4.3
"
};
Date
.
now
||
(
Date
.
now
=
function
(){
return
+
new
Date
});
var
Ko
=
[].
slice
,
Qo
=
function
(
n
){
return
Ko
.
call
(
n
)},
na
=
document
,
ta
=
na
.
documentElement
,
ea
=
window
;
try
{
Qo
(
ta
.
childNodes
)[
0
].
nodeType
}
catch
(
ra
){
Qo
=
function
(
n
){
for
(
var
t
=
n
.
length
,
e
=
new
Array
(
t
);
t
--
;)
e
[
t
]
=
n
[
t
];
return
e
}}
try
{
na
.
createElement
(
"
div
"
).
style
.
setProperty
(
"
opacity
"
,
0
,
""
)}
catch
(
ua
){
var
ia
=
ea
.
Element
.
prototype
,
oa
=
ia
.
setAttribute
,
aa
=
ia
.
setAttributeNS
,
ca
=
ea
.
CSSStyleDeclaration
.
prototype
,
sa
=
ca
.
setProperty
;
ia
.
setAttribute
=
function
(
n
,
t
){
oa
.
call
(
this
,
n
,
t
+
""
)},
ia
.
setAttributeNS
=
function
(
n
,
t
,
e
){
aa
.
call
(
this
,
n
,
t
,
e
+
""
)},
ca
.
setProperty
=
function
(
n
,
t
,
e
){
sa
.
call
(
this
,
n
,
t
+
""
,
e
)}}
Go
.
ascending
=
n
,
Go
.
descending
=
function
(
n
,
t
){
return
n
>
t
?
-
1
:
t
>
n
?
1
:
t
>=
n
?
0
:
0
/
0
},
Go
.
min
=
function
(
n
,
t
){
var
e
,
r
,
u
=-
1
,
i
=
n
.
length
;
if
(
1
===
arguments
.
length
){
for
(;
++
u
<
i
&&!
(
null
!=
(
e
=
n
[
u
])
&&
e
>=
e
);)
e
=
void
0
;
for
(;
++
u
<
i
;)
null
!=
(
r
=
n
[
u
])
&&
e
>
r
&&
(
e
=
r
)}
else
{
for
(;
++
u
<
i
&&!
(
null
!=
(
e
=
t
.
call
(
n
,
n
[
u
],
u
))
&&
e
>=
e
);)
e
=
void
0
;
for
(;
++
u
<
i
;)
null
!=
(
r
=
t
.
call
(
n
,
n
[
u
],
u
))
&&
e
>
r
&&
(
e
=
r
)}
return
e
},
Go
.
max
=
function
(
n
,
t
){
var
e
,
r
,
u
=-
1
,
i
=
n
.
length
;
if
(
1
===
arguments
.
length
){
for
(;
++
u
<
i
&&!
(
null
!=
(
e
=
n
[
u
])
&&
e
>=
e
);)
e
=
void
0
;
for
(;
++
u
<
i
;)
null
!=
(
r
=
n
[
u
])
&&
r
>
e
&&
(
e
=
r
)}
else
{
for
(;
++
u
<
i
&&!
(
null
!=
(
e
=
t
.
call
(
n
,
n
[
u
],
u
))
&&
e
>=
e
);)
e
=
void
0
;
for
(;
++
u
<
i
;)
null
!=
(
r
=
t
.
call
(
n
,
n
[
u
],
u
))
&&
r
>
e
&&
(
e
=
r
)}
return
e
},
Go
.
extent
=
function
(
n
,
t
){
var
e
,
r
,
u
,
i
=-
1
,
o
=
n
.
length
;
if
(
1
===
arguments
.
length
){
for
(;
++
i
<
o
&&!
(
null
!=
(
e
=
u
=
n
[
i
])
&&
e
>=
e
);)
e
=
u
=
void
0
;
for
(;
++
i
<
o
;)
null
!=
(
r
=
n
[
i
])
&&
(
e
>
r
&&
(
e
=
r
),
r
>
u
&&
(
u
=
r
))}
else
{
for
(;
++
i
<
o
&&!
(
null
!=
(
e
=
u
=
t
.
call
(
n
,
n
[
i
],
i
))
&&
e
>=
e
);)
e
=
void
0
;
for
(;
++
i
<
o
;)
null
!=
(
r
=
t
.
call
(
n
,
n
[
i
],
i
))
&&
(
e
>
r
&&
(
e
=
r
),
r
>
u
&&
(
u
=
r
))}
return
[
e
,
u
]},
Go
.
sum
=
function
(
n
,
t
){
var
e
,
r
=
0
,
u
=
n
.
length
,
i
=-
1
;
if
(
1
===
arguments
.
length
)
for
(;
++
i
<
u
;)
isNaN
(
e
=+
n
[
i
])
||
(
r
+=
e
);
else
for
(;
++
i
<
u
;)
isNaN
(
e
=+
t
.
call
(
n
,
n
[
i
],
i
))
||
(
r
+=
e
);
return
r
},
Go
.
mean
=
function
(
n
,
e
){
var
r
,
u
=
n
.
length
,
i
=
0
,
o
=-
1
,
a
=
0
;
if
(
1
===
arguments
.
length
)
for
(;
++
o
<
u
;)
t
(
r
=
n
[
o
])
&&
(
i
+=
(
r
-
i
)
/++
a
);
else
for
(;
++
o
<
u
;)
t
(
r
=
e
.
call
(
n
,
n
[
o
],
o
))
&&
(
i
+=
(
r
-
i
)
/++
a
);
return
a
?
i
:
void
0
},
Go
.
quantile
=
function
(
n
,
t
){
var
e
=
(
n
.
length
-
1
)
*
t
+
1
,
r
=
Math
.
floor
(
e
),
u
=+
n
[
r
-
1
],
i
=
e
-
r
;
return
i
?
u
+
i
*
(
n
[
r
]
-
u
):
u
},
Go
.
median
=
function
(
e
,
r
){
return
arguments
.
length
>
1
&&
(
e
=
e
.
map
(
r
)),
e
=
e
.
filter
(
t
),
e
.
length
?
Go
.
quantile
(
e
.
sort
(
n
),.
5
):
void
0
};
var
la
=
e
(
n
);
Go
.
bisectLeft
=
la
.
left
,
Go
.
bisect
=
Go
.
bisectRight
=
la
.
right
,
Go
.
bisector
=
function
(
t
){
return
e
(
1
===
t
.
length
?
function
(
e
,
r
){
return
n
(
t
(
e
),
r
)}:
t
)},
Go
.
shuffle
=
function
(
n
){
for
(
var
t
,
e
,
r
=
n
.
length
;
r
;)
e
=
0
|
Math
.
random
()
*
r
--
,
t
=
n
[
r
],
n
[
r
]
=
n
[
e
],
n
[
e
]
=
t
;
return
n
},
Go
.
permute
=
function
(
n
,
t
){
for
(
var
e
=
t
.
length
,
r
=
new
Array
(
e
);
e
--
;)
r
[
e
]
=
n
[
t
[
e
]];
return
r
},
Go
.
pairs
=
function
(
n
){
for
(
var
t
,
e
=
0
,
r
=
n
.
length
-
1
,
u
=
n
[
0
],
i
=
new
Array
(
0
>
r
?
0
:
r
);
r
>
e
;)
i
[
e
]
=
[
t
=
u
,
u
=
n
[
++
e
]];
return
i
},
Go
.
zip
=
function
(){
if
(
!
(
u
=
arguments
.
length
))
return
[];
for
(
var
n
=-
1
,
t
=
Go
.
min
(
arguments
,
r
),
e
=
new
Array
(
t
);
++
n
<
t
;)
for
(
var
u
,
i
=-
1
,
o
=
e
[
n
]
=
new
Array
(
u
);
++
i
<
u
;)
o
[
i
]
=
arguments
[
i
][
n
];
return
e
},
Go
.
transpose
=
function
(
n
){
return
Go
.
zip
.
apply
(
Go
,
n
)},
Go
.
keys
=
function
(
n
){
var
t
=
[];
for
(
var
e
in
n
)
t
.
push
(
e
);
return
t
},
Go
.
values
=
function
(
n
){
var
t
=
[];
for
(
var
e
in
n
)
t
.
push
(
n
[
e
]);
return
t
},
Go
.
entries
=
function
(
n
){
var
t
=
[];
for
(
var
e
in
n
)
t
.
push
({
key
:
e
,
value
:
n
[
e
]});
return
t
},
Go
.
merge
=
function
(
n
){
for
(
var
t
,
e
,
r
,
u
=
n
.
length
,
i
=-
1
,
o
=
0
;
++
i
<
u
;)
o
+=
n
[
i
].
length
;
for
(
e
=
new
Array
(
o
);
--
u
>=
0
;)
for
(
r
=
n
[
u
],
t
=
r
.
length
;
--
t
>=
0
;)
e
[
--
o
]
=
r
[
t
];
return
e
};
var
fa
=
Math
.
abs
;
Go
.
range
=
function
(
n
,
t
,
e
){
if
(
arguments
.
length
<
3
&&
(
e
=
1
,
arguments
.
length
<
2
&&
(
t
=
n
,
n
=
0
)),
1
/
0
===
(
t
-
n
)
/
e
)
throw
new
Error
(
"
infinite range
"
);
var
r
,
i
=
[],
o
=
u
(
fa
(
e
)),
a
=-
1
;
if
(
n
*=
o
,
t
*=
o
,
e
*=
o
,
0
>
e
)
for
(;(
r
=
n
+
e
*++
a
)
>
t
;)
i
.
push
(
r
/
o
);
else
for
(;(
r
=
n
+
e
*++
a
)
<
t
;)
i
.
push
(
r
/
o
);
return
i
},
Go
.
map
=
function
(
n
){
var
t
=
new
o
;
if
(
n
instanceof
o
)
n
.
forEach
(
function
(
n
,
e
){
t
.
set
(
n
,
e
)});
else
for
(
var
e
in
n
)
t
.
set
(
e
,
n
[
e
]);
return
t
},
i
(
o
,{
has
:
a
,
get
:
function
(
n
){
return
this
[
ha
+
n
]},
set
:
function
(
n
,
t
){
return
this
[
ha
+
n
]
=
t
},
remove
:
c
,
keys
:
s
,
values
:
function
(){
var
n
=
[];
return
this
.
forEach
(
function
(
t
,
e
){
n
.
push
(
e
)}),
n
},
entries
:
function
(){
var
n
=
[];
return
this
.
forEach
(
function
(
t
,
e
){
n
.
push
({
key
:
t
,
value
:
e
})}),
n
},
size
:
l
,
empty
:
f
,
forEach
:
function
(
n
){
for
(
var
t
in
this
)
t
.
charCodeAt
(
0
)
===
ga
&&
n
.
call
(
this
,
t
.
substring
(
1
),
this
[
t
])}});
var
ha
=
"
\
x00
"
,
ga
=
ha
.
charCodeAt
(
0
);
Go
.
nest
=
function
(){
function
n
(
t
,
a
,
c
){
if
(
c
>=
i
.
length
)
return
r
?
r
.
call
(
u
,
a
):
e
?
a
.
sort
(
e
):
a
;
for
(
var
s
,
l
,
f
,
h
,
g
=-
1
,
p
=
a
.
length
,
v
=
i
[
c
++
],
d
=
new
o
;
++
g
<
p
;)(
h
=
d
.
get
(
s
=
v
(
l
=
a
[
g
])))?
h
.
push
(
l
):
d
.
set
(
s
,[
l
]);
return
t
?(
l
=
t
(),
f
=
function
(
e
,
r
){
l
.
set
(
e
,
n
(
t
,
r
,
c
))}):(
l
=
{},
f
=
function
(
e
,
r
){
l
[
e
]
=
n
(
t
,
r
,
c
)}),
d
.
forEach
(
f
),
l
}
function
t
(
n
,
e
){
if
(
e
>=
i
.
length
)
return
n
;
var
r
=
[],
u
=
a
[
e
++
];
return
n
.
forEach
(
function
(
n
,
u
){
r
.
push
({
key
:
n
,
values
:
t
(
u
,
e
)})}),
u
?
r
.
sort
(
function
(
n
,
t
){
return
u
(
n
.
key
,
t
.
key
)}):
r
}
var
e
,
r
,
u
=
{},
i
=
[],
a
=
[];
return
u
.
map
=
function
(
t
,
e
){
return
n
(
e
,
t
,
0
)},
u
.
entries
=
function
(
e
){
return
t
(
n
(
Go
.
map
,
e
,
0
),
0
)},
u
.
key
=
function
(
n
){
return
i
.
push
(
n
),
u
},
u
.
sortKeys
=
function
(
n
){
return
a
[
i
.
length
-
1
]
=
n
,
u
},
u
.
sortValues
=
function
(
n
){
return
e
=
n
,
u
},
u
.
rollup
=
function
(
n
){
return
r
=
n
,
u
},
u
},
Go
.
set
=
function
(
n
){
var
t
=
new
h
;
if
(
n
)
for
(
var
e
=
0
,
r
=
n
.
length
;
r
>
e
;
++
e
)
t
.
add
(
n
[
e
]);
return
t
},
i
(
h
,{
has
:
a
,
add
:
function
(
n
){
return
this
[
ha
+
n
]
=!
0
,
n
},
remove
:
function
(
n
){
return
n
=
ha
+
n
,
n
in
this
&&
delete
this
[
n
]},
values
:
s
,
size
:
l
,
empty
:
f
,
forEach
:
function
(
n
){
for
(
var
t
in
this
)
t
.
charCodeAt
(
0
)
===
ga
&&
n
.
call
(
this
,
t
.
substring
(
1
))}}),
Go
.
behavior
=
{},
Go
.
rebind
=
function
(
n
,
t
){
for
(
var
e
,
r
=
1
,
u
=
arguments
.
length
;
++
r
<
u
;)
n
[
e
=
arguments
[
r
]]
=
g
(
n
,
t
,
t
[
e
]);
return
n
};
var
pa
=
[
"
webkit
"
,
"
ms
"
,
"
moz
"
,
"
Moz
"
,
"
o
"
,
"
O
"
];
Go
.
dispatch
=
function
(){
for
(
var
n
=
new
d
,
t
=-
1
,
e
=
arguments
.
length
;
++
t
<
e
;)
n
[
arguments
[
t
]]
=
m
(
n
);
return
n
},
d
.
prototype
.
on
=
function
(
n
,
t
){
var
e
=
n
.
indexOf
(
"
.
"
),
r
=
""
;
if
(
e
>=
0
&&
(
r
=
n
.
substring
(
e
+
1
),
n
=
n
.
substring
(
0
,
e
)),
n
)
return
arguments
.
length
<
2
?
this
[
n
].
on
(
r
):
this
[
n
].
on
(
r
,
t
);
if
(
2
===
arguments
.
length
){
if
(
null
==
t
)
for
(
n
in
this
)
this
.
hasOwnProperty
(
n
)
&&
this
[
n
].
on
(
r
,
null
);
return
this
}},
Go
.
event
=
null
,
Go
.
requote
=
function
(
n
){
return
n
.
replace
(
va
,
"
\\
$&
"
)};
var
va
=
/
[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]
/g
,
da
=
{}.
__proto__
?
function
(
n
,
t
){
n
.
__proto__
=
t
}:
function
(
n
,
t
){
for
(
var
e
in
t
)
n
[
e
]
=
t
[
e
]},
ma
=
function
(
n
,
t
){
return
t
.
querySelector
(
n
)},
ya
=
function
(
n
,
t
){
return
t
.
querySelectorAll
(
n
)},
xa
=
ta
[
p
(
ta
,
"
matchesSelector
"
)],
Ma
=
function
(
n
,
t
){
return
xa
.
call
(
n
,
t
)};
"
function
"
==
typeof
Sizzle
&&
(
ma
=
function
(
n
,
t
){
return
Sizzle
(
n
,
t
)[
0
]
||
null
},
ya
=
Sizzle
,
Ma
=
Sizzle
.
matchesSelector
),
Go
.
selection
=
function
(){
return
Sa
};
var
_a
=
Go
.
selection
.
prototype
=
[];
_a
.
select
=
function
(
n
){
var
t
,
e
,
r
,
u
,
i
=
[];
n
=
b
(
n
);
for
(
var
o
=-
1
,
a
=
this
.
length
;
++
o
<
a
;){
i
.
push
(
t
=
[]),
t
.
parentNode
=
(
r
=
this
[
o
]).
parentNode
;
for
(
var
c
=-
1
,
s
=
r
.
length
;
++
c
<
s
;)(
u
=
r
[
c
])?(
t
.
push
(
e
=
n
.
call
(
u
,
u
.
__data__
,
c
,
o
)),
e
&&
"
__data__
"
in
u
&&
(
e
.
__data__
=
u
.
__data__
)):
t
.
push
(
null
)}
return
_
(
i
)},
_a
.
selectAll
=
function
(
n
){
var
t
,
e
,
r
=
[];
n
=
w
(
n
);
for
(
var
u
=-
1
,
i
=
this
.
length
;
++
u
<
i
;)
for
(
var
o
=
this
[
u
],
a
=-
1
,
c
=
o
.
length
;
++
a
<
c
;)(
e
=
o
[
a
])
&&
(
r
.
push
(
t
=
Qo
(
n
.
call
(
e
,
e
.
__data__
,
a
,
u
))),
t
.
parentNode
=
e
);
return
_
(
r
)};
var
ba
=
{
svg
:
"
http://www.w3.org/2000/svg
"
,
xhtml
:
"
http://www.w3.org/1999/xhtml
"
,
xlink
:
"
http://www.w3.org/1999/xlink
"
,
xml
:
"
http://www.w3.org/XML/1998/namespace
"
,
xmlns
:
"
http://www.w3.org/2000/xmlns/
"
};
Go
.
ns
=
{
prefix
:
ba
,
qualify
:
function
(
n
){
var
t
=
n
.
indexOf
(
"
:
"
),
e
=
n
;
return
t
>=
0
&&
(
e
=
n
.
substring
(
0
,
t
),
n
=
n
.
substring
(
t
+
1
)),
ba
.
hasOwnProperty
(
e
)?{
space
:
ba
[
e
],
local
:
n
}:
n
}},
_a
.
attr
=
function
(
n
,
t
){
if
(
arguments
.
length
<
2
){
if
(
"
string
"
==
typeof
n
){
var
e
=
this
.
node
();
return
n
=
Go
.
ns
.
qualify
(
n
),
n
.
local
?
e
.
getAttributeNS
(
n
.
space
,
n
.
local
):
e
.
getAttribute
(
n
)}
for
(
t
in
n
)
this
.
each
(
S
(
t
,
n
[
t
]));
return
this
}
return
this
.
each
(
S
(
n
,
t
))},
_a
.
classed
=
function
(
n
,
t
){
if
(
arguments
.
length
<
2
){
if
(
"
string
"
==
typeof
n
){
var
e
=
this
.
node
(),
r
=
(
n
=
N
(
n
)).
length
,
u
=-
1
;
if
(
t
=
e
.
classList
){
for
(;
++
u
<
r
;)
if
(
!
t
.
contains
(
n
[
u
]))
return
!
1
}
else
for
(
t
=
e
.
getAttribute
(
"
class
"
);
++
u
<
r
;)
if
(
!
E
(
n
[
u
]).
test
(
t
))
return
!
1
;
return
!
0
}
for
(
t
in
n
)
this
.
each
(
A
(
t
,
n
[
t
]));
return
this
}
return
this
.
each
(
A
(
n
,
t
))},
_a
.
style
=
function
(
n
,
t
,
e
){
var
r
=
arguments
.
length
;
if
(
3
>
r
){
if
(
"
string
"
!=
typeof
n
){
2
>
r
&&
(
t
=
""
);
for
(
e
in
n
)
this
.
each
(
L
(
e
,
n
[
e
],
t
));
return
this
}
if
(
2
>
r
)
return
ea
.
getComputedStyle
(
this
.
node
(),
null
).
getPropertyValue
(
n
);
e
=
""
}
return
this
.
each
(
L
(
n
,
t
,
e
))},
_a
.
property
=
function
(
n
,
t
){
if
(
arguments
.
length
<
2
){
if
(
"
string
"
==
typeof
n
)
return
this
.
node
()[
n
];
for
(
t
in
n
)
this
.
each
(
T
(
t
,
n
[
t
]));
return
this
}
return
this
.
each
(
T
(
n
,
t
))},
_a
.
text
=
function
(
n
){
return
arguments
.
length
?
this
.
each
(
"
function
"
==
typeof
n
?
function
(){
var
t
=
n
.
apply
(
this
,
arguments
);
this
.
textContent
=
null
==
t
?
""
:
t
}:
null
==
n
?
function
(){
this
.
textContent
=
""
}:
function
(){
this
.
textContent
=
n
}):
this
.
node
().
textContent
},
_a
.
html
=
function
(
n
){
return
arguments
.
length
?
this
.
each
(
"
function
"
==
typeof
n
?
function
(){
var
t
=
n
.
apply
(
this
,
arguments
);
this
.
innerHTML
=
null
==
t
?
""
:
t
}:
null
==
n
?
function
(){
this
.
innerHTML
=
""
}:
function
(){
this
.
innerHTML
=
n
}):
this
.
node
().
innerHTML
},
_a
.
append
=
function
(
n
){
return
n
=
q
(
n
),
this
.
select
(
function
(){
return
this
.
appendChild
(
n
.
apply
(
this
,
arguments
))})},
_a
.
insert
=
function
(
n
,
t
){
return
n
=
q
(
n
),
t
=
b
(
t
),
this
.
select
(
function
(){
return
this
.
insertBefore
(
n
.
apply
(
this
,
arguments
),
t
.
apply
(
this
,
arguments
)
||
null
)})},
_a
.
remove
=
function
(){
return
this
.
each
(
function
(){
var
n
=
this
.
parentNode
;
n
&&
n
.
removeChild
(
this
)})},
_a
.
data
=
function
(
n
,
t
){
function
e
(
n
,
e
){
var
r
,
u
,
i
,
a
=
n
.
length
,
f
=
e
.
length
,
h
=
Math
.
min
(
a
,
f
),
g
=
new
Array
(
f
),
p
=
new
Array
(
f
),
v
=
new
Array
(
a
);
if
(
t
){
var
d
,
m
=
new
o
,
y
=
new
o
,
x
=
[];
for
(
r
=-
1
;
++
r
<
a
;)
d
=
t
.
call
(
u
=
n
[
r
],
u
.
__data__
,
r
),
m
.
has
(
d
)?
v
[
r
]
=
u
:
m
.
set
(
d
,
u
),
x
.
push
(
d
);
for
(
r
=-
1
;
++
r
<
f
;)
d
=
t
.
call
(
e
,
i
=
e
[
r
],
r
),(
u
=
m
.
get
(
d
))?(
g
[
r
]
=
u
,
u
.
__data__
=
i
):
y
.
has
(
d
)
||
(
p
[
r
]
=
z
(
i
)),
y
.
set
(
d
,
i
),
m
.
remove
(
d
);
for
(
r
=-
1
;
++
r
<
a
;)
m
.
has
(
x
[
r
])
&&
(
v
[
r
]
=
n
[
r
])}
else
{
for
(
r
=-
1
;
++
r
<
h
;)
u
=
n
[
r
],
i
=
e
[
r
],
u
?(
u
.
__data__
=
i
,
g
[
r
]
=
u
):
p
[
r
]
=
z
(
i
);
for
(;
f
>
r
;
++
r
)
p
[
r
]
=
z
(
e
[
r
]);
for
(;
a
>
r
;
++
r
)
v
[
r
]
=
n
[
r
]}
p
.
update
=
g
,
p
.
parentNode
=
g
.
parentNode
=
v
.
parentNode
=
n
.
parentNode
,
c
.
push
(
p
),
s
.
push
(
g
),
l
.
push
(
v
)}
var
r
,
u
,
i
=-
1
,
a
=
this
.
length
;
if
(
!
arguments
.
length
){
for
(
n
=
new
Array
(
a
=
(
r
=
this
[
0
]).
length
);
++
i
<
a
;)(
u
=
r
[
i
])
&&
(
n
[
i
]
=
u
.
__data__
);
return
n
}
var
c
=
U
([]),
s
=
_
([]),
l
=
_
([]);
if
(
"
function
"
==
typeof
n
)
for
(;
++
i
<
a
;)
e
(
r
=
this
[
i
],
n
.
call
(
r
,
r
.
parentNode
.
__data__
,
i
));
else
for
(;
++
i
<
a
;)
e
(
r
=
this
[
i
],
n
);
return
s
.
enter
=
function
(){
return
c
},
s
.
exit
=
function
(){
return
l
},
s
},
_a
.
datum
=
function
(
n
){
return
arguments
.
length
?
this
.
property
(
"
__data__
"
,
n
):
this
.
property
(
"
__data__
"
)},
_a
.
filter
=
function
(
n
){
var
t
,
e
,
r
,
u
=
[];
"
function
"
!=
typeof
n
&&
(
n
=
R
(
n
));
for
(
var
i
=
0
,
o
=
this
.
length
;
o
>
i
;
i
++
){
u
.
push
(
t
=
[]),
t
.
parentNode
=
(
e
=
this
[
i
]).
parentNode
;
for
(
var
a
=
0
,
c
=
e
.
length
;
c
>
a
;
a
++
)(
r
=
e
[
a
])
&&
n
.
call
(
r
,
r
.
__data__
,
a
,
i
)
&&
t
.
push
(
r
)}
return
_
(
u
)},
_a
.
order
=
function
(){
for
(
var
n
=-
1
,
t
=
this
.
length
;
++
n
<
t
;)
for
(
var
e
,
r
=
this
[
n
],
u
=
r
.
length
-
1
,
i
=
r
[
u
];
--
u
>=
0
;)(
e
=
r
[
u
])
&&
(
i
&&
i
!==
e
.
nextSibling
&&
i
.
parentNode
.
insertBefore
(
e
,
i
),
i
=
e
);
return
this
},
_a
.
sort
=
function
(
n
){
n
=
D
.
apply
(
this
,
arguments
);
for
(
var
t
=-
1
,
e
=
this
.
length
;
++
t
<
e
;)
this
[
t
].
sort
(
n
);
return
this
.
order
()},
_a
.
each
=
function
(
n
){
return
P
(
this
,
function
(
t
,
e
,
r
){
n
.
call
(
t
,
t
.
__data__
,
e
,
r
)})},
_a
.
call
=
function
(
n
){
var
t
=
Qo
(
arguments
);
return
n
.
apply
(
t
[
0
]
=
this
,
t
),
this
},
_a
.
empty
=
function
(){
return
!
this
.
node
()},
_a
.
node
=
function
(){
for
(
var
n
=
0
,
t
=
this
.
length
;
t
>
n
;
n
++
)
for
(
var
e
=
this
[
n
],
r
=
0
,
u
=
e
.
length
;
u
>
r
;
r
++
){
var
i
=
e
[
r
];
if
(
i
)
return
i
}
return
null
},
_a
.
size
=
function
(){
var
n
=
0
;
return
this
.
each
(
function
(){
++
n
}),
n
};
var
wa
=
[];
Go
.
selection
.
enter
=
U
,
Go
.
selection
.
enter
.
prototype
=
wa
,
wa
.
append
=
_a
.
append
,
wa
.
empty
=
_a
.
empty
,
wa
.
node
=
_a
.
node
,
wa
.
call
=
_a
.
call
,
wa
.
size
=
_a
.
size
,
wa
.
select
=
function
(
n
){
for
(
var
t
,
e
,
r
,
u
,
i
,
o
=
[],
a
=-
1
,
c
=
this
.
length
;
++
a
<
c
;){
r
=
(
u
=
this
[
a
]).
update
,
o
.
push
(
t
=
[]),
t
.
parentNode
=
u
.
parentNode
;
for
(
var
s
=-
1
,
l
=
u
.
length
;
++
s
<
l
;)(
i
=
u
[
s
])?(
t
.
push
(
r
[
s
]
=
e
=
n
.
call
(
u
.
parentNode
,
i
.
__data__
,
s
,
a
)),
e
.
__data__
=
i
.
__data__
):
t
.
push
(
null
)}
return
_
(
o
)},
wa
.
insert
=
function
(
n
,
t
){
return
arguments
.
length
<
2
&&
(
t
=
j
(
this
)),
_a
.
insert
.
call
(
this
,
n
,
t
)},
_a
.
transition
=
function
(){
for
(
var
n
,
t
,
e
=
Cs
||++
Rs
,
r
=
[],
u
=
Ls
||
{
time
:
Date
.
now
(),
ease
:
wu
,
delay
:
0
,
duration
:
250
},
i
=-
1
,
o
=
this
.
length
;
++
i
<
o
;){
r
.
push
(
n
=
[]);
for
(
var
a
=
this
[
i
],
c
=-
1
,
s
=
a
.
length
;
++
c
<
s
;)(
t
=
a
[
c
])
&&
Io
(
t
,
c
,
e
,
u
),
n
.
push
(
t
)}
return
Fo
(
r
,
e
)},
_a
.
interrupt
=
function
(){
return
this
.
each
(
H
)},
Go
.
select
=
function
(
n
){
var
t
=
[
"
string
"
==
typeof
n
?
ma
(
n
,
na
):
n
];
return
t
.
parentNode
=
ta
,
_
([
t
])},
Go
.
selectAll
=
function
(
n
){
var
t
=
Qo
(
"
string
"
==
typeof
n
?
ya
(
n
,
na
):
n
);
return
t
.
parentNode
=
ta
,
_
([
t
])};
var
Sa
=
Go
.
select
(
ta
);
_a
.
on
=
function
(
n
,
t
,
e
){
var
r
=
arguments
.
length
;
if
(
3
>
r
){
if
(
"
string
"
!=
typeof
n
){
2
>
r
&&
(
t
=!
1
);
for
(
e
in
n
)
this
.
each
(
F
(
e
,
n
[
e
],
t
));
return
this
}
if
(
2
>
r
)
return
(
r
=
this
.
node
()[
"
__on
"
+
n
])
&&
r
.
_
;
e
=!
1
}
return
this
.
each
(
F
(
n
,
t
,
e
))};
var
ka
=
Go
.
map
({
mouseenter
:
"
mouseover
"
,
mouseleave
:
"
mouseout
"
});
ka
.
forEach
(
function
(
n
){
"
on
"
+
n
in
na
&&
ka
.
remove
(
n
)});
var
Ea
=
"
onselectstart
"
in
na
?
null
:
p
(
ta
.
style
,
"
userSelect
"
),
Na
=
0
;
Go
.
mouse
=
function
(
n
){
return
Z
(
n
,
x
())},
Go
.
touches
=
function
(
n
,
t
){
return
arguments
.
length
<
2
&&
(
t
=
x
().
touches
),
t
?
Qo
(
t
).
map
(
function
(
t
){
var
e
=
Z
(
n
,
t
);
return
e
.
identifier
=
t
.
identifier
,
e
}):[]},
Go
.
behavior
.
drag
=
function
(){
function
n
(){
this
.
on
(
"
mousedown.drag
"
,
u
).
on
(
"
touchstart.drag
"
,
i
)}
function
t
(
n
,
t
,
u
,
i
,
o
){
return
function
(){
function
a
(){
var
n
,
e
,
r
=
t
(
h
,
v
);
r
&&
(
n
=
r
[
0
]
-
x
[
0
],
e
=
r
[
1
]
-
x
[
1
],
p
|=
n
|
e
,
x
=
r
,
g
({
type
:
"
drag
"
,
x
:
r
[
0
]
+
s
[
0
],
y
:
r
[
1
]
+
s
[
1
],
dx
:
n
,
dy
:
e
}))}
function
c
(){
t
(
h
,
v
)
&&
(
m
.
on
(
i
+
d
,
null
).
on
(
o
+
d
,
null
),
y
(
p
&&
Go
.
event
.
target
===
f
),
g
({
type
:
"
dragend
"
}))}
var
s
,
l
=
this
,
f
=
Go
.
event
.
target
,
h
=
l
.
parentNode
,
g
=
e
.
of
(
l
,
arguments
),
p
=
0
,
v
=
n
(),
d
=
"
.drag
"
+
(
null
==
v
?
""
:
"
-
"
+
v
),
m
=
Go
.
select
(
u
()).
on
(
i
+
d
,
a
).
on
(
o
+
d
,
c
),
y
=
I
(),
x
=
t
(
h
,
v
);
r
?(
s
=
r
.
apply
(
l
,
arguments
),
s
=
[
s
.
x
-
x
[
0
],
s
.
y
-
x
[
1
]]):
s
=
[
0
,
0
],
g
({
type
:
"
dragstart
"
})}}
var
e
=
M
(
n
,
"
drag
"
,
"
dragstart
"
,
"
dragend
"
),
r
=
null
,
u
=
t
(
v
,
Go
.
mouse
,
X
,
"
mousemove
"
,
"
mouseup
"
),
i
=
t
(
V
,
Go
.
touch
,
$
,
"
touchmove
"
,
"
touchend
"
);
return
n
.
origin
=
function
(
t
){
return
arguments
.
length
?(
r
=
t
,
n
):
r
},
Go
.
rebind
(
n
,
e
,
"
on
"
)};
var
Aa
=
Math
.
PI
,
Ca
=
2
*
Aa
,
La
=
Aa
/
2
,
Ta
=
1
e
-
6
,
qa
=
Ta
*
Ta
,
za
=
Aa
/
180
,
Ra
=
180
/
Aa
,
Da
=
Math
.
SQRT2
,
Pa
=
2
,
Ua
=
4
;
Go
.
interpolateZoom
=
function
(
n
,
t
){
function
e
(
n
){
var
t
=
n
*
y
;
if
(
m
){
var
e
=
Q
(
v
),
o
=
i
/
(
Pa
*
h
)
*
(
e
*
nt
(
Da
*
t
+
v
)
-
K
(
v
));
return
[
r
+
o
*
s
,
u
+
o
*
l
,
i
*
e
/
Q
(
Da
*
t
+
v
)]}
return
[
r
+
n
*
s
,
u
+
n
*
l
,
i
*
Math
.
exp
(
Da
*
t
)]}
var
r
=
n
[
0
],
u
=
n
[
1
],
i
=
n
[
2
],
o
=
t
[
0
],
a
=
t
[
1
],
c
=
t
[
2
],
s
=
o
-
r
,
l
=
a
-
u
,
f
=
s
*
s
+
l
*
l
,
h
=
Math
.
sqrt
(
f
),
g
=
(
c
*
c
-
i
*
i
+
Ua
*
f
)
/
(
2
*
i
*
Pa
*
h
),
p
=
(
c
*
c
-
i
*
i
-
Ua
*
f
)
/
(
2
*
c
*
Pa
*
h
),
v
=
Math
.
log
(
Math
.
sqrt
(
g
*
g
+
1
)
-
g
),
d
=
Math
.
log
(
Math
.
sqrt
(
p
*
p
+
1
)
-
p
),
m
=
d
-
v
,
y
=
(
m
||
Math
.
log
(
c
/
i
))
/
Da
;
return
e
.
duration
=
1
e3
*
y
,
e
},
Go
.
behavior
.
zoom
=
function
(){
function
n
(
n
){
n
.
on
(
N
,
s
).
on
(
Fa
+
"
.zoom
"
,
f
).
on
(
A
,
h
).
on
(
"
dblclick.zoom
"
,
g
).
on
(
L
,
l
)}
function
t
(
n
){
return
[(
n
[
0
]
-
S
.
x
)
/
S
.
k
,(
n
[
1
]
-
S
.
y
)
/
S
.
k
]}
function
e
(
n
){
return
[
n
[
0
]
*
S
.
k
+
S
.
x
,
n
[
1
]
*
S
.
k
+
S
.
y
]}
function
r
(
n
){
S
.
k
=
Math
.
max
(
E
[
0
],
Math
.
min
(
E
[
1
],
n
))}
function
u
(
n
,
t
){
t
=
e
(
t
),
S
.
x
+=
n
[
0
]
-
t
[
0
],
S
.
y
+=
n
[
1
]
-
t
[
1
]}
function
i
(){
_
&&
_
.
domain
(
x
.
range
().
map
(
function
(
n
){
return
(
n
-
S
.
x
)
/
S
.
k
}).
map
(
x
.
invert
)),
w
&&
w
.
domain
(
b
.
range
().
map
(
function
(
n
){
return
(
n
-
S
.
y
)
/
S
.
k
}).
map
(
b
.
invert
))}
function
o
(
n
){
n
({
type
:
"
zoomstart
"
})}
function
a
(
n
){
i
(),
n
({
type
:
"
zoom
"
,
scale
:
S
.
k
,
translate
:[
S
.
x
,
S
.
y
]})}
function
c
(
n
){
n
({
type
:
"
zoomend
"
})}
function
s
(){
function
n
(){
l
=
1
,
u
(
Go
.
mouse
(
r
),
g
),
a
(
s
)}
function
e
(){
f
.
on
(
A
,
ea
===
r
?
h
:
null
).
on
(
C
,
null
),
p
(
l
&&
Go
.
event
.
target
===
i
),
c
(
s
)}
var
r
=
this
,
i
=
Go
.
event
.
target
,
s
=
T
.
of
(
r
,
arguments
),
l
=
0
,
f
=
Go
.
select
(
ea
).
on
(
A
,
n
).
on
(
C
,
e
),
g
=
t
(
Go
.
mouse
(
r
)),
p
=
I
();
H
.
call
(
r
),
o
(
s
)}
function
l
(){
function
n
(){
var
n
=
Go
.
touches
(
g
);
return
h
=
S
.
k
,
n
.
forEach
(
function
(
n
){
n
.
identifier
in
v
&&
(
v
[
n
.
identifier
]
=
t
(
n
))}),
n
}
function
e
(){
for
(
var
t
=
Go
.
event
.
changedTouches
,
e
=
0
,
i
=
t
.
length
;
i
>
e
;
++
e
)
v
[
t
[
e
].
identifier
]
=
null
;
var
o
=
n
(),
c
=
Date
.
now
();
if
(
1
===
o
.
length
){
if
(
500
>
c
-
m
){
var
s
=
o
[
0
],
l
=
v
[
s
.
identifier
];
r
(
2
*
S
.
k
),
u
(
s
,
l
),
y
(),
a
(
p
)}
m
=
c
}
else
if
(
o
.
length
>
1
){
var
s
=
o
[
0
],
f
=
o
[
1
],
h
=
s
[
0
]
-
f
[
0
],
g
=
s
[
1
]
-
f
[
1
];
d
=
h
*
h
+
g
*
g
}}
function
i
(){
for
(
var
n
,
t
,
e
,
i
,
o
=
Go
.
touches
(
g
),
c
=
0
,
s
=
o
.
length
;
s
>
c
;
++
c
,
i
=
null
)
if
(
e
=
o
[
c
],
i
=
v
[
e
.
identifier
]){
if
(
t
)
break
;
n
=
e
,
t
=
i
}
if
(
i
){
var
l
=
(
l
=
e
[
0
]
-
n
[
0
])
*
l
+
(
l
=
e
[
1
]
-
n
[
1
])
*
l
,
f
=
d
&&
Math
.
sqrt
(
l
/
d
);
n
=
[(
n
[
0
]
+
e
[
0
])
/
2
,(
n
[
1
]
+
e
[
1
])
/
2
],
t
=
[(
t
[
0
]
+
i
[
0
])
/
2
,(
t
[
1
]
+
i
[
1
])
/
2
],
r
(
f
*
h
)}
m
=
null
,
u
(
n
,
t
),
a
(
p
)}
function
f
(){
if
(
Go
.
event
.
touches
.
length
){
for
(
var
t
=
Go
.
event
.
changedTouches
,
e
=
0
,
r
=
t
.
length
;
r
>
e
;
++
e
)
delete
v
[
t
[
e
].
identifier
];
for
(
var
u
in
v
)
return
void
n
()}
b
.
on
(
x
,
null
),
w
.
on
(
N
,
s
).
on
(
L
,
l
),
k
(),
c
(
p
)}
var
h
,
g
=
this
,
p
=
T
.
of
(
g
,
arguments
),
v
=
{},
d
=
0
,
x
=
"
.zoom-
"
+
Go
.
event
.
changedTouches
[
0
].
identifier
,
M
=
"
touchmove
"
+
x
,
_
=
"
touchend
"
+
x
,
b
=
Go
.
select
(
Go
.
event
.
target
).
on
(
M
,
i
).
on
(
_
,
f
),
w
=
Go
.
select
(
g
).
on
(
N
,
null
).
on
(
L
,
e
),
k
=
I
();
H
.
call
(
g
),
e
(),
o
(
p
)}
function
f
(){
var
n
=
T
.
of
(
this
,
arguments
);
d
?
clearTimeout
(
d
):(
H
.
call
(
this
),
o
(
n
)),
d
=
setTimeout
(
function
(){
d
=
null
,
c
(
n
)},
50
),
y
();
var
e
=
v
||
Go
.
mouse
(
this
);
p
||
(
p
=
t
(
e
)),
r
(
Math
.
pow
(
2
,.
002
*
ja
())
*
S
.
k
),
u
(
e
,
p
),
a
(
n
)}
function
h
(){
p
=
null
}
function
g
(){
var
n
=
T
.
of
(
this
,
arguments
),
e
=
Go
.
mouse
(
this
),
i
=
t
(
e
),
s
=
Math
.
log
(
S
.
k
)
/
Math
.
LN2
;
o
(
n
),
r
(
Math
.
pow
(
2
,
Go
.
event
.
shiftKey
?
Math
.
ceil
(
s
)
-
1
:
Math
.
floor
(
s
)
+
1
)),
u
(
e
,
i
),
a
(
n
),
c
(
n
)}
var
p
,
v
,
d
,
m
,
x
,
_
,
b
,
w
,
S
=
{
x
:
0
,
y
:
0
,
k
:
1
},
k
=
[
960
,
500
],
E
=
Ha
,
N
=
"
mousedown.zoom
"
,
A
=
"
mousemove.zoom
"
,
C
=
"
mouseup.zoom
"
,
L
=
"
touchstart.zoom
"
,
T
=
M
(
n
,
"
zoomstart
"
,
"
zoom
"
,
"
zoomend
"
);
return
n
.
event
=
function
(
n
){
n
.
each
(
function
(){
var
n
=
T
.
of
(
this
,
arguments
),
t
=
S
;
Cs
?
Go
.
select
(
this
).
transition
().
each
(
"
start.zoom
"
,
function
(){
S
=
this
.
__chart__
||
{
x
:
0
,
y
:
0
,
k
:
1
},
o
(
n
)}).
tween
(
"
zoom:zoom
"
,
function
(){
var
e
=
k
[
0
],
r
=
k
[
1
],
u
=
e
/
2
,
i
=
r
/
2
,
o
=
Go
.
interpolateZoom
([(
u
-
S
.
x
)
/
S
.
k
,(
i
-
S
.
y
)
/
S
.
k
,
e
/
S
.
k
],[(
u
-
t
.
x
)
/
t
.
k
,(
i
-
t
.
y
)
/
t
.
k
,
e
/
t
.
k
]);
return
function
(
t
){
var
r
=
o
(
t
),
c
=
e
/
r
[
2
];
this
.
__chart__
=
S
=
{
x
:
u
-
r
[
0
]
*
c
,
y
:
i
-
r
[
1
]
*
c
,
k
:
c
},
a
(
n
)}}).
each
(
"
end.zoom
"
,
function
(){
c
(
n
)}):(
this
.
__chart__
=
S
,
o
(
n
),
a
(
n
),
c
(
n
))})},
n
.
translate
=
function
(
t
){
return
arguments
.
length
?(
S
=
{
x
:
+
t
[
0
],
y
:
+
t
[
1
],
k
:
S
.
k
},
i
(),
n
):[
S
.
x
,
S
.
y
]},
n
.
scale
=
function
(
t
){
return
arguments
.
length
?(
S
=
{
x
:
S
.
x
,
y
:
S
.
y
,
k
:
+
t
},
i
(),
n
):
S
.
k
},
n
.
scaleExtent
=
function
(
t
){
return
arguments
.
length
?(
E
=
null
==
t
?
Ha
:[
+
t
[
0
],
+
t
[
1
]],
n
):
E
},
n
.
center
=
function
(
t
){
return
arguments
.
length
?(
v
=
t
&&
[
+
t
[
0
],
+
t
[
1
]],
n
):
v
},
n
.
size
=
function
(
t
){
return
arguments
.
length
?(
k
=
t
&&
[
+
t
[
0
],
+
t
[
1
]],
n
):
k
},
n
.
x
=
function
(
t
){
return
arguments
.
length
?(
_
=
t
,
x
=
t
.
copy
(),
S
=
{
x
:
0
,
y
:
0
,
k
:
1
},
n
):
_
},
n
.
y
=
function
(
t
){
return
arguments
.
length
?(
w
=
t
,
b
=
t
.
copy
(),
S
=
{
x
:
0
,
y
:
0
,
k
:
1
},
n
):
w
},
Go
.
rebind
(
n
,
T
,
"
on
"
)};
var
ja
,
Ha
=
[
0
,
1
/
0
],
Fa
=
"
onwheel
"
in
na
?(
ja
=
function
(){
return
-
Go
.
event
.
deltaY
*
(
Go
.
event
.
deltaMode
?
120
:
1
)},
"
wheel
"
):
"
onmousewheel
"
in
na
?(
ja
=
function
(){
return
Go
.
event
.
wheelDelta
},
"
mousewheel
"
):(
ja
=
function
(){
return
-
Go
.
event
.
detail
},
"
MozMousePixelScroll
"
);
et
.
prototype
.
toString
=
function
(){
return
this
.
rgb
()
+
""
},
Go
.
hsl
=
function
(
n
,
t
,
e
){
return
1
===
arguments
.
length
?
n
instanceof
ut
?
rt
(
n
.
h
,
n
.
s
,
n
.
l
):
_t
(
""
+
n
,
bt
,
rt
):
rt
(
+
n
,
+
t
,
+
e
)};
var
Oa
=
ut
.
prototype
=
new
et
;
Oa
.
brighter
=
function
(
n
){
return
n
=
Math
.
pow
(.
7
,
arguments
.
length
?
n
:
1
),
rt
(
this
.
h
,
this
.
s
,
this
.
l
/
n
)},
Oa
.
darker
=
function
(
n
){
return
n
=
Math
.
pow
(.
7
,
arguments
.
length
?
n
:
1
),
rt
(
this
.
h
,
this
.
s
,
n
*
this
.
l
)},
Oa
.
rgb
=
function
(){
return
it
(
this
.
h
,
this
.
s
,
this
.
l
)},
Go
.
hcl
=
function
(
n
,
t
,
e
){
return
1
===
arguments
.
length
?
n
instanceof
at
?
ot
(
n
.
h
,
n
.
c
,
n
.
l
):
n
instanceof
lt
?
ht
(
n
.
l
,
n
.
a
,
n
.
b
):
ht
((
n
=
wt
((
n
=
Go
.
rgb
(
n
)).
r
,
n
.
g
,
n
.
b
)).
l
,
n
.
a
,
n
.
b
):
ot
(
+
n
,
+
t
,
+
e
)};
var
Ya
=
at
.
prototype
=
new
et
;
Ya
.
brighter
=
function
(
n
){
return
ot
(
this
.
h
,
this
.
c
,
Math
.
min
(
100
,
this
.
l
+
Ia
*
(
arguments
.
length
?
n
:
1
)))},
Ya
.
darker
=
function
(
n
){
return
ot
(
this
.
h
,
this
.
c
,
Math
.
max
(
0
,
this
.
l
-
Ia
*
(
arguments
.
length
?
n
:
1
)))},
Ya
.
rgb
=
function
(){
return
ct
(
this
.
h
,
this
.
c
,
this
.
l
).
rgb
()},
Go
.
lab
=
function
(
n
,
t
,
e
){
return
1
===
arguments
.
length
?
n
instanceof
lt
?
st
(
n
.
l
,
n
.
a
,
n
.
b
):
n
instanceof
at
?
ct
(
n
.
l
,
n
.
c
,
n
.
h
):
wt
((
n
=
Go
.
rgb
(
n
)).
r
,
n
.
g
,
n
.
b
):
st
(
+
n
,
+
t
,
+
e
)};
var
Ia
=
18
,
Za
=
.
95047
,
Va
=
1
,
$a
=
1.08883
,
Xa
=
lt
.
prototype
=
new
et
;
Xa
.
brighter
=
function
(
n
){
return
st
(
Math
.
min
(
100
,
this
.
l
+
Ia
*
(
arguments
.
length
?
n
:
1
)),
this
.
a
,
this
.
b
)},
Xa
.
darker
=
function
(
n
){
return
st
(
Math
.
max
(
0
,
this
.
l
-
Ia
*
(
arguments
.
length
?
n
:
1
)),
this
.
a
,
this
.
b
)},
Xa
.
rgb
=
function
(){
return
ft
(
this
.
l
,
this
.
a
,
this
.
b
)},
Go
.
rgb
=
function
(
n
,
t
,
e
){
return
1
===
arguments
.
length
?
n
instanceof
xt
?
yt
(
n
.
r
,
n
.
g
,
n
.
b
):
_t
(
""
+
n
,
yt
,
it
):
yt
(
~~
n
,
~~
t
,
~~
e
)};
var
Ba
=
xt
.
prototype
=
new
et
;
Ba
.
brighter
=
function
(
n
){
n
=
Math
.
pow
(.
7
,
arguments
.
length
?
n
:
1
);
var
t
=
this
.
r
,
e
=
this
.
g
,
r
=
this
.
b
,
u
=
30
;
return
t
||
e
||
r
?(
t
&&
u
>
t
&&
(
t
=
u
),
e
&&
u
>
e
&&
(
e
=
u
),
r
&&
u
>
r
&&
(
r
=
u
),
yt
(
Math
.
min
(
255
,
~~
(
t
/
n
)),
Math
.
min
(
255
,
~~
(
e
/
n
)),
Math
.
min
(
255
,
~~
(
r
/
n
)))):
yt
(
u
,
u
,
u
)},
Ba
.
darker
=
function
(
n
){
return
n
=
Math
.
pow
(.
7
,
arguments
.
length
?
n
:
1
),
yt
(
~~
(
n
*
this
.
r
),
~~
(
n
*
this
.
g
),
~~
(
n
*
this
.
b
))},
Ba
.
hsl
=
function
(){
return
bt
(
this
.
r
,
this
.
g
,
this
.
b
)},
Ba
.
toString
=
function
(){
return
"
#
"
+
Mt
(
this
.
r
)
+
Mt
(
this
.
g
)
+
Mt
(
this
.
b
)};
var
Ja
=
Go
.
map
({
aliceblue
:
15792383
,
antiquewhite
:
16444375
,
aqua
:
65535
,
aquamarine
:
8388564
,
azure
:
15794175
,
beige
:
16119260
,
bisque
:
16770244
,
black
:
0
,
blanchedalmond
:
16772045
,
blue
:
255
,
blueviolet
:
9055202
,
brown
:
10824234
,
burlywood
:
14596231
,
cadetblue
:
6266528
,
chartreuse
:
8388352
,
chocolate
:
13789470
,
coral
:
16744272
,
cornflowerblue
:
6591981
,
cornsilk
:
16775388
,
crimson
:
14423100
,
cyan
:
65535
,
darkblue
:
139
,
darkcyan
:
35723
,
darkgoldenrod
:
12092939
,
darkgray
:
11119017
,
darkgreen
:
25600
,
darkgrey
:
11119017
,
darkkhaki
:
12433259
,
darkmagenta
:
9109643
,
darkolivegreen
:
5597999
,
darkorange
:
16747520
,
darkorchid
:
10040012
,
darkred
:
9109504
,
darksalmon
:
15308410
,
darkseagreen
:
9419919
,
darkslateblue
:
4734347
,
darkslategray
:
3100495
,
darkslategrey
:
3100495
,
darkturquoise
:
52945
,
darkviolet
:
9699539
,
deeppink
:
16716947
,
deepskyblue
:
49151
,
dimgray
:
6908265
,
dimgrey
:
6908265
,
dodgerblue
:
2003199
,
firebrick
:
11674146
,
floralwhite
:
16775920
,
forestgreen
:
2263842
,
fuchsia
:
16711935
,
gainsboro
:
14474460
,
ghostwhite
:
16316671
,
gold
:
16766720
,
goldenrod
:
14329120
,
gray
:
8421504
,
green
:
32768
,
greenyellow
:
11403055
,
grey
:
8421504
,
honeydew
:
15794160
,
hotpink
:
16738740
,
indianred
:
13458524
,
indigo
:
4915330
,
ivory
:
16777200
,
khaki
:
15787660
,
lavender
:
15132410
,
lavenderblush
:
16773365
,
lawngreen
:
8190976
,
lemonchiffon
:
16775885
,
lightblue
:
11393254
,
lightcoral
:
15761536
,
lightcyan
:
14745599
,
lightgoldenrodyellow
:
16448210
,
lightgray
:
13882323
,
lightgreen
:
9498256
,
lightgrey
:
13882323
,
lightpink
:
16758465
,
lightsalmon
:
16752762
,
lightseagreen
:
2142890
,
lightskyblue
:
8900346
,
lightslategray
:
7833753
,
lightslategrey
:
7833753
,
lightsteelblue
:
11584734
,
lightyellow
:
16777184
,
lime
:
65280
,
limegreen
:
3329330
,
linen
:
16445670
,
magenta
:
16711935
,
maroon
:
8388608
,
mediumaquamarine
:
6737322
,
mediumblue
:
205
,
mediumorchid
:
12211667
,
mediumpurple
:
9662683
,
mediumseagreen
:
3978097
,
mediumslateblue
:
8087790
,
mediumspringgreen
:
64154
,
mediumturquoise
:
4772300
,
mediumvioletred
:
13047173
,
midnightblue
:
1644912
,
mintcream
:
16121850
,
mistyrose
:
16770273
,
moccasin
:
16770229
,
navajowhite
:
16768685
,
navy
:
128
,
oldlace
:
16643558
,
olive
:
8421376
,
olivedrab
:
7048739
,
orange
:
16753920
,
orangered
:
16729344
,
orchid
:
14315734
,
palegoldenrod
:
15657130
,
palegreen
:
10025880
,
paleturquoise
:
11529966
,
palevioletred
:
14381203
,
papayawhip
:
16773077
,
peachpuff
:
16767673
,
peru
:
13468991
,
pink
:
16761035
,
plum
:
14524637
,
powderblue
:
11591910
,
purple
:
8388736
,
red
:
16711680
,
rosybrown
:
12357519
,
royalblue
:
4286945
,
saddlebrown
:
9127187
,
salmon
:
16416882
,
sandybrown
:
16032864
,
seagreen
:
3050327
,
seashell
:
16774638
,
sienna
:
10506797
,
silver
:
12632256
,
skyblue
:
8900331
,
slateblue
:
6970061
,
slategray
:
7372944
,
slategrey
:
7372944
,
snow
:
16775930
,
springgreen
:
65407
,
steelblue
:
4620980
,
tan
:
13808780
,
teal
:
32896
,
thistle
:
14204888
,
tomato
:
16737095
,
turquoise
:
4251856
,
violet
:
15631086
,
wheat
:
16113331
,
white
:
16777215
,
whitesmoke
:
16119285
,
yellow
:
16776960
,
yellowgreen
:
10145074
});
Ja
.
forEach
(
function
(
n
,
t
){
Ja
.
set
(
n
,
dt
(
t
))}),
Go
.
functor
=
Et
,
Go
.
xhr
=
At
(
Nt
),
Go
.
dsv
=
function
(
n
,
t
){
function
e
(
n
,
e
,
i
){
arguments
.
length
<
3
&&
(
i
=
e
,
e
=
null
);
var
o
=
Ct
(
n
,
t
,
null
==
e
?
r
:
u
(
e
),
i
);
return
o
.
row
=
function
(
n
){
return
arguments
.
length
?
o
.
response
(
null
==
(
e
=
n
)?
r
:
u
(
n
)):
e
},
o
}
function
r
(
n
){
return
e
.
parse
(
n
.
responseText
)}
function
u
(
n
){
return
function
(
t
){
return
e
.
parse
(
t
.
responseText
,
n
)}}
function
i
(
t
){
return
t
.
map
(
o
).
join
(
n
)}
function
o
(
n
){
return
a
.
test
(
n
)?
'
"
'
+
n
.
replace
(
/
\"
/g
,
'
""
'
)
+
'
"
'
:
n
}
var
a
=
new
RegExp
(
'
["
'
+
n
+
"
\n
]
"
),
c
=
n
.
charCodeAt
(
0
);
return
e
.
parse
=
function
(
n
,
t
){
var
r
;
return
e
.
parseRows
(
n
,
function
(
n
,
e
){
if
(
r
)
return
r
(
n
,
e
-
1
);
var
u
=
new
Function
(
"
d
"
,
"
return {
"
+
n
.
map
(
function
(
n
,
t
){
return
JSON
.
stringify
(
n
)
+
"
: d[
"
+
t
+
"
]
"
}).
join
(
"
,
"
)
+
"
}
"
);
r
=
t
?
function
(
n
,
e
){
return
t
(
u
(
n
),
e
)}:
u
})},
e
.
parseRows
=
function
(
n
,
t
){
function
e
(){
if
(
l
>=
s
)
return
o
;
if
(
u
)
return
u
=!
1
,
i
;
var
t
=
l
;
if
(
34
===
n
.
charCodeAt
(
t
)){
for
(
var
e
=
t
;
e
++<
s
;)
if
(
34
===
n
.
charCodeAt
(
e
)){
if
(
34
!==
n
.
charCodeAt
(
e
+
1
))
break
;
++
e
}
l
=
e
+
2
;
var
r
=
n
.
charCodeAt
(
e
+
1
);
return
13
===
r
?(
u
=!
0
,
10
===
n
.
charCodeAt
(
e
+
2
)
&&++
l
):
10
===
r
&&
(
u
=!
0
),
n
.
substring
(
t
+
1
,
e
).
replace
(
/""/g
,
'
"
'
)}
for
(;
s
>
l
;){
var
r
=
n
.
charCodeAt
(
l
++
),
a
=
1
;
if
(
10
===
r
)
u
=!
0
;
else
if
(
13
===
r
)
u
=!
0
,
10
===
n
.
charCodeAt
(
l
)
&&
(
++
l
,
++
a
);
else
if
(
r
!==
c
)
continue
;
return
n
.
substring
(
t
,
l
-
a
)}
return
n
.
substring
(
t
)}
for
(
var
r
,
u
,
i
=
{},
o
=
{},
a
=
[],
s
=
n
.
length
,
l
=
0
,
f
=
0
;(
r
=
e
())
!==
o
;){
for
(
var
h
=
[];
r
!==
i
&&
r
!==
o
;)
h
.
push
(
r
),
r
=
e
();(
!
t
||
(
h
=
t
(
h
,
f
++
)))
&&
a
.
push
(
h
)}
return
a
},
e
.
format
=
function
(
t
){
if
(
Array
.
isArray
(
t
[
0
]))
return
e
.
formatRows
(
t
);
var
r
=
new
h
,
u
=
[];
return
t
.
forEach
(
function
(
n
){
for
(
var
t
in
n
)
r
.
has
(
t
)
||
u
.
push
(
r
.
add
(
t
))}),[
u
.
map
(
o
).
join
(
n
)].
concat
(
t
.
map
(
function
(
t
){
return
u
.
map
(
function
(
n
){
return
o
(
t
[
n
])}).
join
(
n
)})).
join
(
"
\n
"
)},
e
.
formatRows
=
function
(
n
){
return
n
.
map
(
i
).
join
(
"
\n
"
)},
e
},
Go
.
csv
=
Go
.
dsv
(
"
,
"
,
"
text/csv
"
),
Go
.
tsv
=
Go
.
dsv
(
"
"
,
"
text/tab-separated-values
"
),
Go
.
touch
=
function
(
n
,
t
,
e
){
if
(
arguments
.
length
<
3
&&
(
e
=
t
,
t
=
x
().
changedTouches
),
t
)
for
(
var
r
,
u
=
0
,
i
=
t
.
length
;
i
>
u
;
++
u
)
if
((
r
=
t
[
u
]).
identifier
===
e
)
return
Z
(
n
,
r
)};
var
Wa
,
Ga
,
Ka
,
Qa
,
nc
,
tc
=
ea
[
p
(
ea
,
"
requestAnimationFrame
"
)]
||
function
(
n
){
setTimeout
(
n
,
17
)};
Go
.
timer
=
function
(
n
,
t
,
e
){
var
r
=
arguments
.
length
;
2
>
r
&&
(
t
=
0
),
3
>
r
&&
(
e
=
Date
.
now
());
var
u
=
e
+
t
,
i
=
{
c
:
n
,
t
:
u
,
f
:
!
1
,
n
:
null
};
Ga
?
Ga
.
n
=
i
:
Wa
=
i
,
Ga
=
i
,
Ka
||
(
Qa
=
clearTimeout
(
Qa
),
Ka
=
1
,
tc
(
Tt
))},
Go
.
timer
.
flush
=
function
(){
qt
(),
zt
()},
Go
.
round
=
function
(
n
,
t
){
return
t
?
Math
.
round
(
n
*
(
t
=
Math
.
pow
(
10
,
t
)))
/
t
:
Math
.
round
(
n
)};
var
ec
=
[
"
y
"
,
"
z
"
,
"
a
"
,
"
f
"
,
"
p
"
,
"
n
"
,
"
\
xb5
"
,
"
m
"
,
""
,
"
k
"
,
"
M
"
,
"
G
"
,
"
T
"
,
"
P
"
,
"
E
"
,
"
Z
"
,
"
Y
"
].
map
(
Dt
);
Go
.
formatPrefix
=
function
(
n
,
t
){
var
e
=
0
;
return
n
&&
(
0
>
n
&&
(
n
*=-
1
),
t
&&
(
n
=
Go
.
round
(
n
,
Rt
(
n
,
t
))),
e
=
1
+
Math
.
floor
(
1
e
-
12
+
Math
.
log
(
n
)
/
Math
.
LN10
),
e
=
Math
.
max
(
-
24
,
Math
.
min
(
24
,
3
*
Math
.
floor
((
e
-
1
)
/
3
)))),
ec
[
8
+
e
/
3
]};
var
rc
=
/
(?:([^
{
])?([
<>=^
]))?([
+
\-
])?([
$#
])?(
0
)?(\d
+
)?(
,
)?(\.
-
?\d
+
)?([
a-z%
])?
/i
,
uc
=
Go
.
map
({
b
:
function
(
n
){
return
n
.
toString
(
2
)},
c
:
function
(
n
){
return
String
.
fromCharCode
(
n
)},
o
:
function
(
n
){
return
n
.
toString
(
8
)},
x
:
function
(
n
){
return
n
.
toString
(
16
)},
X
:
function
(
n
){
return
n
.
toString
(
16
).
toUpperCase
()},
g
:
function
(
n
,
t
){
return
n
.
toPrecision
(
t
)},
e
:
function
(
n
,
t
){
return
n
.
toExponential
(
t
)},
f
:
function
(
n
,
t
){
return
n
.
toFixed
(
t
)},
r
:
function
(
n
,
t
){
return
(
n
=
Go
.
round
(
n
,
Rt
(
n
,
t
))).
toFixed
(
Math
.
max
(
0
,
Math
.
min
(
20
,
Rt
(
n
*
(
1
+
1
e
-
15
),
t
))))}}),
ic
=
Go
.
time
=
{},
oc
=
Date
;
jt
.
prototype
=
{
getDate
:
function
(){
return
this
.
_
.
getUTCDate
()},
getDay
:
function
(){
return
this
.
_
.
getUTCDay
()},
getFullYear
:
function
(){
return
this
.
_
.
getUTCFullYear
()},
getHours
:
function
(){
return
this
.
_
.
getUTCHours
()},
getMilliseconds
:
function
(){
return
this
.
_
.
getUTCMilliseconds
()},
getMinutes
:
function
(){
return
this
.
_
.
getUTCMinutes
()},
getMonth
:
function
(){
return
this
.
_
.
getUTCMonth
()},
getSeconds
:
function
(){
return
this
.
_
.
getUTCSeconds
()},
getTime
:
function
(){
return
this
.
_
.
getTime
()},
getTimezoneOffset
:
function
(){
return
0
},
valueOf
:
function
(){
return
this
.
_
.
valueOf
()},
setDate
:
function
(){
ac
.
setUTCDate
.
apply
(
this
.
_
,
arguments
)},
setDay
:
function
(){
ac
.
setUTCDay
.
apply
(
this
.
_
,
arguments
)},
setFullYear
:
function
(){
ac
.
setUTCFullYear
.
apply
(
this
.
_
,
arguments
)},
setHours
:
function
(){
ac
.
setUTCHours
.
apply
(
this
.
_
,
arguments
)},
setMilliseconds
:
function
(){
ac
.
setUTCMilliseconds
.
apply
(
this
.
_
,
arguments
)},
setMinutes
:
function
(){
ac
.
setUTCMinutes
.
apply
(
this
.
_
,
arguments
)},
setMonth
:
function
(){
ac
.
setUTCMonth
.
apply
(
this
.
_
,
arguments
)},
setSeconds
:
function
(){
ac
.
setUTCSeconds
.
apply
(
this
.
_
,
arguments
)},
setTime
:
function
(){
ac
.
setTime
.
apply
(
this
.
_
,
arguments
)}};
var
ac
=
Date
.
prototype
;
ic
.
year
=
Ht
(
function
(
n
){
return
n
=
ic
.
day
(
n
),
n
.
setMonth
(
0
,
1
),
n
},
function
(
n
,
t
){
n
.
setFullYear
(
n
.
getFullYear
()
+
t
)},
function
(
n
){
return
n
.
getFullYear
()}),
ic
.
years
=
ic
.
year
.
range
,
ic
.
years
.
utc
=
ic
.
year
.
utc
.
range
,
ic
.
day
=
Ht
(
function
(
n
){
var
t
=
new
oc
(
2
e3
,
0
);
return
t
.
setFullYear
(
n
.
getFullYear
(),
n
.
getMonth
(),
n
.
getDate
()),
t
},
function
(
n
,
t
){
n
.
setDate
(
n
.
getDate
()
+
t
)},
function
(
n
){
return
n
.
getDate
()
-
1
}),
ic
.
days
=
ic
.
day
.
range
,
ic
.
days
.
utc
=
ic
.
day
.
utc
.
range
,
ic
.
dayOfYear
=
function
(
n
){
var
t
=
ic
.
year
(
n
);
return
Math
.
floor
((
n
-
t
-
6
e4
*
(
n
.
getTimezoneOffset
()
-
t
.
getTimezoneOffset
()))
/
864
e5
)},[
"
sunday
"
,
"
monday
"
,
"
tuesday
"
,
"
wednesday
"
,
"
thursday
"
,
"
friday
"
,
"
saturday
"
].
forEach
(
function
(
n
,
t
){
t
=
7
-
t
;
var
e
=
ic
[
n
]
=
Ht
(
function
(
n
){
return
(
n
=
ic
.
day
(
n
)).
setDate
(
n
.
getDate
()
-
(
n
.
getDay
()
+
t
)
%
7
),
n
},
function
(
n
,
t
){
n
.
setDate
(
n
.
getDate
()
+
7
*
Math
.
floor
(
t
))},
function
(
n
){
var
e
=
ic
.
year
(
n
).
getDay
();
return
Math
.
floor
((
ic
.
dayOfYear
(
n
)
+
(
e
+
t
)
%
7
)
/
7
)
-
(
e
!==
t
)});
ic
[
n
+
"
s
"
]
=
e
.
range
,
ic
[
n
+
"
s
"
].
utc
=
e
.
utc
.
range
,
ic
[
n
+
"
OfYear
"
]
=
function
(
n
){
var
e
=
ic
.
year
(
n
).
getDay
();
return
Math
.
floor
((
ic
.
dayOfYear
(
n
)
+
(
e
+
t
)
%
7
)
/
7
)}}),
ic
.
week
=
ic
.
sunday
,
ic
.
weeks
=
ic
.
sunday
.
range
,
ic
.
weeks
.
utc
=
ic
.
sunday
.
utc
.
range
,
ic
.
weekOfYear
=
ic
.
sundayOfYear
;
var
cc
=
{
"
-
"
:
""
,
_
:
"
"
,
0
:
"
0
"
},
sc
=
/^
\s
*
\d
+/
,
lc
=
/^%/
;
Go
.
locale
=
function
(
n
){
return
{
numberFormat
:
Pt
(
n
),
timeFormat
:
Ot
(
n
)}};
var
fc
=
Go
.
locale
({
decimal
:
"
.
"
,
thousands
:
"
,
"
,
grouping
:[
3
],
currency
:[
"
$
"
,
""
],
dateTime
:
"
%a %b %e %X %Y
"
,
date
:
"
%m/%d/%Y
"
,
time
:
"
%H:%M:%S
"
,
periods
:[
"
AM
"
,
"
PM
"
],
days
:[
"
Sunday
"
,
"
Monday
"
,
"
Tuesday
"
,
"
Wednesday
"
,
"
Thursday
"
,
"
Friday
"
,
"
Saturday
"
],
shortDays
:[
"
Sun
"
,
"
Mon
"
,
"
Tue
"
,
"
Wed
"
,
"
Thu
"
,
"
Fri
"
,
"
Sat
"
],
months
:[
"
January
"
,
"
February
"
,
"
March
"
,
"
April
"
,
"
May
"
,
"
June
"
,
"
July
"
,
"
August
"
,
"
September
"
,
"
October
"
,
"
November
"
,
"
December
"
],
shortMonths
:[
"
Jan
"
,
"
Feb
"
,
"
Mar
"
,
"
Apr
"
,
"
May
"
,
"
Jun
"
,
"
Jul
"
,
"
Aug
"
,
"
Sep
"
,
"
Oct
"
,
"
Nov
"
,
"
Dec
"
]});
Go
.
format
=
fc
.
numberFormat
,
Go
.
geo
=
{},
ce
.
prototype
=
{
s
:
0
,
t
:
0
,
add
:
function
(
n
){
se
(
n
,
this
.
t
,
hc
),
se
(
hc
.
s
,
this
.
s
,
this
),
this
.
s
?
this
.
t
+=
hc
.
t
:
this
.
s
=
hc
.
t
},
reset
:
function
(){
this
.
s
=
this
.
t
=
0
},
valueOf
:
function
(){
return
this
.
s
}};
var
hc
=
new
ce
;
Go
.
geo
.
stream
=
function
(
n
,
t
){
n
&&
gc
.
hasOwnProperty
(
n
.
type
)?
gc
[
n
.
type
](
n
,
t
):
le
(
n
,
t
)};
var
gc
=
{
Feature
:
function
(
n
,
t
){
le
(
n
.
geometry
,
t
)},
FeatureCollection
:
function
(
n
,
t
){
for
(
var
e
=
n
.
features
,
r
=-
1
,
u
=
e
.
length
;
++
r
<
u
;)
le
(
e
[
r
].
geometry
,
t
)}},
pc
=
{
Sphere
:
function
(
n
,
t
){
t
.
sphere
()},
Point
:
function
(
n
,
t
){
n
=
n
.
coordinates
,
t
.
point
(
n
[
0
],
n
[
1
],
n
[
2
])},
MultiPoint
:
function
(
n
,
t
){
for
(
var
e
=
n
.
coordinates
,
r
=-
1
,
u
=
e
.
length
;
++
r
<
u
;)
n
=
e
[
r
],
t
.
point
(
n
[
0
],
n
[
1
],
n
[
2
])},
LineString
:
function
(
n
,
t
){
fe
(
n
.
coordinates
,
t
,
0
)},
MultiLineString
:
function
(
n
,
t
){
for
(
var
e
=
n
.
coordinates
,
r
=-
1
,
u
=
e
.
length
;
++
r
<
u
;)
fe
(
e
[
r
],
t
,
0
)},
Polygon
:
function
(
n
,
t
){
he
(
n
.
coordinates
,
t
)},
MultiPolygon
:
function
(
n
,
t
){
for
(
var
e
=
n
.
coordinates
,
r
=-
1
,
u
=
e
.
length
;
++
r
<
u
;)
he
(
e
[
r
],
t
)},
GeometryCollection
:
function
(
n
,
t
){
for
(
var
e
=
n
.
geometries
,
r
=-
1
,
u
=
e
.
length
;
++
r
<
u
;)
le
(
e
[
r
],
t
)}};
Go
.
geo
.
area
=
function
(
n
){
return
vc
=
0
,
Go
.
geo
.
stream
(
n
,
mc
),
vc
};
var
vc
,
dc
=
new
ce
,
mc
=
{
sphere
:
function
(){
vc
+=
4
*
Aa
},
point
:
v
,
lineStart
:
v
,
lineEnd
:
v
,
polygonStart
:
function
(){
dc
.
reset
(),
mc
.
lineStart
=
ge
},
polygonEnd
:
function
(){
var
n
=
2
*
dc
;
vc
+=
0
>
n
?
4
*
Aa
+
n
:
n
,
mc
.
lineStart
=
mc
.
lineEnd
=
mc
.
point
=
v
}};
Go
.
geo
.
bounds
=
function
(){
function
n
(
n
,
t
){
x
.
push
(
M
=
[
l
=
n
,
h
=
n
]),
f
>
t
&&
(
f
=
t
),
t
>
g
&&
(
g
=
t
)}
function
t
(
t
,
e
){
var
r
=
pe
([
t
*
za
,
e
*
za
]);
if
(
m
){
var
u
=
de
(
m
,
r
),
i
=
[
u
[
1
],
-
u
[
0
],
0
],
o
=
de
(
i
,
u
);
xe
(
o
),
o
=
Me
(
o
);
var
c
=
t
-
p
,
s
=
c
>
0
?
1
:
-
1
,
v
=
o
[
0
]
*
Ra
*
s
,
d
=
fa
(
c
)
>
180
;
if
(
d
^
(
v
>
s
*
p
&&
s
*
t
>
v
)){
var
y
=
o
[
1
]
*
Ra
;
y
>
g
&&
(
g
=
y
)}
else
if
(
v
=
(
v
+
360
)
%
360
-
180
,
d
^
(
v
>
s
*
p
&&
s
*
t
>
v
)){
var
y
=-
o
[
1
]
*
Ra
;
f
>
y
&&
(
f
=
y
)}
else
f
>
e
&&
(
f
=
e
),
e
>
g
&&
(
g
=
e
);
d
?
p
>
t
?
a
(
l
,
t
)
>
a
(
l
,
h
)
&&
(
h
=
t
):
a
(
t
,
h
)
>
a
(
l
,
h
)
&&
(
l
=
t
):
h
>=
l
?(
l
>
t
&&
(
l
=
t
),
t
>
h
&&
(
h
=
t
)):
t
>
p
?
a
(
l
,
t
)
>
a
(
l
,
h
)
&&
(
h
=
t
):
a
(
t
,
h
)
>
a
(
l
,
h
)
&&
(
l
=
t
)}
else
n
(
t
,
e
);
m
=
r
,
p
=
t
}
function
e
(){
_
.
point
=
t
}
function
r
(){
M
[
0
]
=
l
,
M
[
1
]
=
h
,
_
.
point
=
n
,
m
=
null
}
function
u
(
n
,
e
){
if
(
m
){
var
r
=
n
-
p
;
y
+=
fa
(
r
)
>
180
?
r
+
(
r
>
0
?
360
:
-
360
):
r
}
else
v
=
n
,
d
=
e
;
mc
.
point
(
n
,
e
),
t
(
n
,
e
)}
function
i
(){
mc
.
lineStart
()}
function
o
(){
u
(
v
,
d
),
mc
.
lineEnd
(),
fa
(
y
)
>
Ta
&&
(
l
=-
(
h
=
180
)),
M
[
0
]
=
l
,
M
[
1
]
=
h
,
m
=
null
}
function
a
(
n
,
t
){
return
(
t
-=
n
)
<
0
?
t
+
360
:
t
}
function
c
(
n
,
t
){
return
n
[
0
]
-
t
[
0
]}
function
s
(
n
,
t
){
return
t
[
0
]
<=
t
[
1
]?
t
[
0
]
<=
n
&&
n
<=
t
[
1
]:
n
<
t
[
0
]
||
t
[
1
]
<
n
}
var
l
,
f
,
h
,
g
,
p
,
v
,
d
,
m
,
y
,
x
,
M
,
_
=
{
point
:
n
,
lineStart
:
e
,
lineEnd
:
r
,
polygonStart
:
function
(){
_
.
point
=
u
,
_
.
lineStart
=
i
,
_
.
lineEnd
=
o
,
y
=
0
,
mc
.
polygonStart
()},
polygonEnd
:
function
(){
mc
.
polygonEnd
(),
_
.
point
=
n
,
_
.
lineStart
=
e
,
_
.
lineEnd
=
r
,
0
>
dc
?(
l
=-
(
h
=
180
),
f
=-
(
g
=
90
)):
y
>
Ta
?
g
=
90
:
-
Ta
>
y
&&
(
f
=-
90
),
M
[
0
]
=
l
,
M
[
1
]
=
h
}};
return
function
(
n
){
g
=
h
=-
(
l
=
f
=
1
/
0
),
x
=
[],
Go
.
geo
.
stream
(
n
,
_
);
var
t
=
x
.
length
;
if
(
t
){
x
.
sort
(
c
);
for
(
var
e
,
r
=
1
,
u
=
x
[
0
],
i
=
[
u
];
t
>
r
;
++
r
)
e
=
x
[
r
],
s
(
e
[
0
],
u
)
||
s
(
e
[
1
],
u
)?(
a
(
u
[
0
],
e
[
1
])
>
a
(
u
[
0
],
u
[
1
])
&&
(
u
[
1
]
=
e
[
1
]),
a
(
e
[
0
],
u
[
1
])
>
a
(
u
[
0
],
u
[
1
])
&&
(
u
[
0
]
=
e
[
0
])):
i
.
push
(
u
=
e
);
for
(
var
o
,
e
,
p
=-
1
/
0
,
t
=
i
.
length
-
1
,
r
=
0
,
u
=
i
[
t
];
t
>=
r
;
u
=
e
,
++
r
)
e
=
i
[
r
],(
o
=
a
(
u
[
1
],
e
[
0
]))
>
p
&&
(
p
=
o
,
l
=
e
[
0
],
h
=
u
[
1
])}
return
x
=
M
=
null
,
1
/
0
===
l
||
1
/
0
===
f
?[[
0
/
0
,
0
/
0
],[
0
/
0
,
0
/
0
]]:[[
l
,
f
],[
h
,
g
]]}}(),
Go
.
geo
.
centroid
=
function
(
n
){
yc
=
xc
=
Mc
=
_c
=
bc
=
wc
=
Sc
=
kc
=
Ec
=
Nc
=
Ac
=
0
,
Go
.
geo
.
stream
(
n
,
Cc
);
var
t
=
Ec
,
e
=
Nc
,
r
=
Ac
,
u
=
t
*
t
+
e
*
e
+
r
*
r
;
return
qa
>
u
&&
(
t
=
wc
,
e
=
Sc
,
r
=
kc
,
Ta
>
xc
&&
(
t
=
Mc
,
e
=
_c
,
r
=
bc
),
u
=
t
*
t
+
e
*
e
+
r
*
r
,
qa
>
u
)?[
0
/
0
,
0
/
0
]:[
Math
.
atan2
(
e
,
t
)
*
Ra
,
G
(
r
/
Math
.
sqrt
(
u
))
*
Ra
]};
var
yc
,
xc
,
Mc
,
_c
,
bc
,
wc
,
Sc
,
kc
,
Ec
,
Nc
,
Ac
,
Cc
=
{
sphere
:
v
,
point
:
be
,
lineStart
:
Se
,
lineEnd
:
ke
,
polygonStart
:
function
(){
Cc
.
lineStart
=
Ee
},
polygonEnd
:
function
(){
Cc
.
lineStart
=
Se
}},
Lc
=
Te
(
Ne
,
Pe
,
je
,[
-
Aa
,
-
Aa
/
2
]),
Tc
=
1
e9
;
Go
.
geo
.
clipExtent
=
function
(){
var
n
,
t
,
e
,
r
,
u
,
i
,
o
=
{
stream
:
function
(
n
){
return
u
&&
(
u
.
valid
=!
1
),
u
=
i
(
n
),
u
.
valid
=!
0
,
u
},
extent
:
function
(
a
){
return
arguments
.
length
?(
i
=
Oe
(
n
=+
a
[
0
][
0
],
t
=+
a
[
0
][
1
],
e
=+
a
[
1
][
0
],
r
=+
a
[
1
][
1
]),
u
&&
(
u
.
valid
=!
1
,
u
=
null
),
o
):[[
n
,
t
],[
e
,
r
]]}};
return
o
.
extent
([[
0
,
0
],[
960
,
500
]])},(
Go
.
geo
.
conicEqualArea
=
function
(){
return
Ie
(
Ze
)}).
raw
=
Ze
,
Go
.
geo
.
albers
=
function
(){
return
Go
.
geo
.
conicEqualArea
().
rotate
([
96
,
0
]).
center
([
-
.
6
,
38.7
]).
parallels
([
29.5
,
45.5
]).
scale
(
1070
)},
Go
.
geo
.
albersUsa
=
function
(){
function
n
(
n
){
var
i
=
n
[
0
],
o
=
n
[
1
];
return
t
=
null
,
e
(
i
,
o
),
t
||
(
r
(
i
,
o
),
t
)
||
u
(
i
,
o
),
t
}
var
t
,
e
,
r
,
u
,
i
=
Go
.
geo
.
albers
(),
o
=
Go
.
geo
.
conicEqualArea
().
rotate
([
154
,
0
]).
center
([
-
2
,
58.5
]).
parallels
([
55
,
65
]),
a
=
Go
.
geo
.
conicEqualArea
().
rotate
([
157
,
0
]).
center
([
-
3
,
19.9
]).
parallels
([
8
,
18
]),
c
=
{
point
:
function
(
n
,
e
){
t
=
[
n
,
e
]}};
return
n
.
invert
=
function
(
n
){
var
t
=
i
.
scale
(),
e
=
i
.
translate
(),
r
=
(
n
[
0
]
-
e
[
0
])
/
t
,
u
=
(
n
[
1
]
-
e
[
1
])
/
t
;
return
(
u
>=
.
12
&&
.
234
>
u
&&
r
>=-
.
425
&&-
.
214
>
r
?
o
:
u
>=
.
166
&&
.
234
>
u
&&
r
>=-
.
214
&&-
.
115
>
r
?
a
:
i
).
invert
(
n
)},
n
.
stream
=
function
(
n
){
var
t
=
i
.
stream
(
n
),
e
=
o
.
stream
(
n
),
r
=
a
.
stream
(
n
);
return
{
point
:
function
(
n
,
u
){
t
.
point
(
n
,
u
),
e
.
point
(
n
,
u
),
r
.
point
(
n
,
u
)},
sphere
:
function
(){
t
.
sphere
(),
e
.
sphere
(),
r
.
sphere
()},
lineStart
:
function
(){
t
.
lineStart
(),
e
.
lineStart
(),
r
.
lineStart
()},
lineEnd
:
function
(){
t
.
lineEnd
(),
e
.
lineEnd
(),
r
.
lineEnd
()},
polygonStart
:
function
(){
t
.
polygonStart
(),
e
.
polygonStart
(),
r
.
polygonStart
()},
polygonEnd
:
function
(){
t
.
polygonEnd
(),
e
.
polygonEnd
(),
r
.
polygonEnd
()}}},
n
.
precision
=
function
(
t
){
return
arguments
.
length
?(
i
.
precision
(
t
),
o
.
precision
(
t
),
a
.
precision
(
t
),
n
):
i
.
precision
()},
n
.
scale
=
function
(
t
){
return
arguments
.
length
?(
i
.
scale
(
t
),
o
.
scale
(.
35
*
t
),
a
.
scale
(
t
),
n
.
translate
(
i
.
translate
())):
i
.
scale
()},
n
.
translate
=
function
(
t
){
if
(
!
arguments
.
length
)
return
i
.
translate
();
var
s
=
i
.
scale
(),
l
=+
t
[
0
],
f
=+
t
[
1
];
return
e
=
i
.
translate
(
t
).
clipExtent
([[
l
-
.
455
*
s
,
f
-
.
238
*
s
],[
l
+
.
455
*
s
,
f
+
.
238
*
s
]]).
stream
(
c
).
point
,
r
=
o
.
translate
([
l
-
.
307
*
s
,
f
+
.
201
*
s
]).
clipExtent
([[
l
-
.
425
*
s
+
Ta
,
f
+
.
12
*
s
+
Ta
],[
l
-
.
214
*
s
-
Ta
,
f
+
.
234
*
s
-
Ta
]]).
stream
(
c
).
point
,
u
=
a
.
translate
([
l
-
.
205
*
s
,
f
+
.
212
*
s
]).
clipExtent
([[
l
-
.
214
*
s
+
Ta
,
f
+
.
166
*
s
+
Ta
],[
l
-
.
115
*
s
-
Ta
,
f
+
.
234
*
s
-
Ta
]]).
stream
(
c
).
point
,
n
},
n
.
scale
(
1070
)};
var
qc
,
zc
,
Rc
,
Dc
,
Pc
,
Uc
,
jc
=
{
point
:
v
,
lineStart
:
v
,
lineEnd
:
v
,
polygonStart
:
function
(){
zc
=
0
,
jc
.
lineStart
=
Ve
},
polygonEnd
:
function
(){
jc
.
lineStart
=
jc
.
lineEnd
=
jc
.
point
=
v
,
qc
+=
fa
(
zc
/
2
)}},
Hc
=
{
point
:
$e
,
lineStart
:
v
,
lineEnd
:
v
,
polygonStart
:
v
,
polygonEnd
:
v
},
Fc
=
{
point
:
Je
,
lineStart
:
We
,
lineEnd
:
Ge
,
polygonStart
:
function
(){
Fc
.
lineStart
=
Ke
},
polygonEnd
:
function
(){
Fc
.
point
=
Je
,
Fc
.
lineStart
=
We
,
Fc
.
lineEnd
=
Ge
}};
Go
.
geo
.
path
=
function
(){
function
n
(
n
){
return
n
&&
(
"
function
"
==
typeof
a
&&
i
.
pointRadius
(
+
a
.
apply
(
this
,
arguments
)),
o
&&
o
.
valid
||
(
o
=
u
(
i
)),
Go
.
geo
.
stream
(
n
,
o
)),
i
.
result
()}
function
t
(){
return
o
=
null
,
n
}
var
e
,
r
,
u
,
i
,
o
,
a
=
4.5
;
return
n
.
area
=
function
(
n
){
return
qc
=
0
,
Go
.
geo
.
stream
(
n
,
u
(
jc
)),
qc
},
n
.
centroid
=
function
(
n
){
return
Mc
=
_c
=
bc
=
wc
=
Sc
=
kc
=
Ec
=
Nc
=
Ac
=
0
,
Go
.
geo
.
stream
(
n
,
u
(
Fc
)),
Ac
?[
Ec
/
Ac
,
Nc
/
Ac
]:
kc
?[
wc
/
kc
,
Sc
/
kc
]:
bc
?[
Mc
/
bc
,
_c
/
bc
]:[
0
/
0
,
0
/
0
]},
n
.
bounds
=
function
(
n
){
return
Pc
=
Uc
=-
(
Rc
=
Dc
=
1
/
0
),
Go
.
geo
.
stream
(
n
,
u
(
Hc
)),[[
Rc
,
Dc
],[
Pc
,
Uc
]]},
n
.
projection
=
function
(
n
){
return
arguments
.
length
?(
u
=
(
e
=
n
)?
n
.
stream
||
tr
(
n
):
Nt
,
t
()):
e
},
n
.
context
=
function
(
n
){
return
arguments
.
length
?(
i
=
null
==
(
r
=
n
)?
new
Xe
:
new
Qe
(
n
),
"
function
"
!=
typeof
a
&&
i
.
pointRadius
(
a
),
t
()):
r
},
n
.
pointRadius
=
function
(
t
){
return
arguments
.
length
?(
a
=
"
function
"
==
typeof
t
?
t
:(
i
.
pointRadius
(
+
t
),
+
t
),
n
):
a
},
n
.
projection
(
Go
.
geo
.
albersUsa
()).
context
(
null
)},
Go
.
geo
.
transform
=
function
(
n
){
return
{
stream
:
function
(
t
){
var
e
=
new
er
(
t
);
for
(
var
r
in
n
)
e
[
r
]
=
n
[
r
];
return
e
}}},
er
.
prototype
=
{
point
:
function
(
n
,
t
){
this
.
stream
.
point
(
n
,
t
)},
sphere
:
function
(){
this
.
stream
.
sphere
()},
lineStart
:
function
(){
this
.
stream
.
lineStart
()},
lineEnd
:
function
(){
this
.
stream
.
lineEnd
()},
polygonStart
:
function
(){
this
.
stream
.
polygonStart
()},
polygonEnd
:
function
(){
this
.
stream
.
polygonEnd
()}},
Go
.
geo
.
projection
=
ur
,
Go
.
geo
.
projectionMutator
=
ir
,(
Go
.
geo
.
equirectangular
=
function
(){
return
ur
(
ar
)}).
raw
=
ar
.
invert
=
ar
,
Go
.
geo
.
rotation
=
function
(
n
){
function
t
(
t
){
return
t
=
n
(
t
[
0
]
*
za
,
t
[
1
]
*
za
),
t
[
0
]
*=
Ra
,
t
[
1
]
*=
Ra
,
t
}
return
n
=
sr
(
n
[
0
]
%
360
*
za
,
n
[
1
]
*
za
,
n
.
length
>
2
?
n
[
2
]
*
za
:
0
),
t
.
invert
=
function
(
t
){
return
t
=
n
.
invert
(
t
[
0
]
*
za
,
t
[
1
]
*
za
),
t
[
0
]
*=
Ra
,
t
[
1
]
*=
Ra
,
t
},
t
},
cr
.
invert
=
ar
,
Go
.
geo
.
circle
=
function
(){
function
n
(){
var
n
=
"
function
"
==
typeof
r
?
r
.
apply
(
this
,
arguments
):
r
,
t
=
sr
(
-
n
[
0
]
*
za
,
-
n
[
1
]
*
za
,
0
).
invert
,
u
=
[];
return
e
(
null
,
null
,
1
,{
point
:
function
(
n
,
e
){
u
.
push
(
n
=
t
(
n
,
e
)),
n
[
0
]
*=
Ra
,
n
[
1
]
*=
Ra
}}),{
type
:
"
Polygon
"
,
coordinates
:[
u
]}}
var
t
,
e
,
r
=
[
0
,
0
],
u
=
6
;
return
n
.
origin
=
function
(
t
){
return
arguments
.
length
?(
r
=
t
,
n
):
r
},
n
.
angle
=
function
(
r
){
return
arguments
.
length
?(
e
=
gr
((
t
=+
r
)
*
za
,
u
*
za
),
n
):
t
},
n
.
precision
=
function
(
r
){
return
arguments
.
length
?(
e
=
gr
(
t
*
za
,(
u
=+
r
)
*
za
),
n
):
u
},
n
.
angle
(
90
)},
Go
.
geo
.
distance
=
function
(
n
,
t
){
var
e
,
r
=
(
t
[
0
]
-
n
[
0
])
*
za
,
u
=
n
[
1
]
*
za
,
i
=
t
[
1
]
*
za
,
o
=
Math
.
sin
(
r
),
a
=
Math
.
cos
(
r
),
c
=
Math
.
sin
(
u
),
s
=
Math
.
cos
(
u
),
l
=
Math
.
sin
(
i
),
f
=
Math
.
cos
(
i
);
return
Math
.
atan2
(
Math
.
sqrt
((
e
=
f
*
o
)
*
e
+
(
e
=
s
*
l
-
c
*
f
*
a
)
*
e
),
c
*
l
+
s
*
f
*
a
)},
Go
.
geo
.
graticule
=
function
(){
function
n
(){
return
{
type
:
"
MultiLineString
"
,
coordinates
:
t
()}}
function
t
(){
return
Go
.
range
(
Math
.
ceil
(
i
/
d
)
*
d
,
u
,
d
).
map
(
h
).
concat
(
Go
.
range
(
Math
.
ceil
(
s
/
m
)
*
m
,
c
,
m
).
map
(
g
)).
concat
(
Go
.
range
(
Math
.
ceil
(
r
/
p
)
*
p
,
e
,
p
).
filter
(
function
(
n
){
return
fa
(
n
%
d
)
>
Ta
}).
map
(
l
)).
concat
(
Go
.
range
(
Math
.
ceil
(
a
/
v
)
*
v
,
o
,
v
).
filter
(
function
(
n
){
return
fa
(
n
%
m
)
>
Ta
}).
map
(
f
))}
var
e
,
r
,
u
,
i
,
o
,
a
,
c
,
s
,
l
,
f
,
h
,
g
,
p
=
10
,
v
=
p
,
d
=
90
,
m
=
360
,
y
=
2.5
;
return
n
.
lines
=
function
(){
return
t
().
map
(
function
(
n
){
return
{
type
:
"
LineString
"
,
coordinates
:
n
}})},
n
.
outline
=
function
(){
return
{
type
:
"
Polygon
"
,
coordinates
:[
h
(
i
).
concat
(
g
(
c
).
slice
(
1
),
h
(
u
).
reverse
().
slice
(
1
),
g
(
s
).
reverse
().
slice
(
1
))]}},
n
.
extent
=
function
(
t
){
return
arguments
.
length
?
n
.
majorExtent
(
t
).
minorExtent
(
t
):
n
.
minorExtent
()},
n
.
majorExtent
=
function
(
t
){
return
arguments
.
length
?(
i
=+
t
[
0
][
0
],
u
=+
t
[
1
][
0
],
s
=+
t
[
0
][
1
],
c
=+
t
[
1
][
1
],
i
>
u
&&
(
t
=
i
,
i
=
u
,
u
=
t
),
s
>
c
&&
(
t
=
s
,
s
=
c
,
c
=
t
),
n
.
precision
(
y
)):[[
i
,
s
],[
u
,
c
]]},
n
.
minorExtent
=
function
(
t
){
return
arguments
.
length
?(
r
=+
t
[
0
][
0
],
e
=+
t
[
1
][
0
],
a
=+
t
[
0
][
1
],
o
=+
t
[
1
][
1
],
r
>
e
&&
(
t
=
r
,
r
=
e
,
e
=
t
),
a
>
o
&&
(
t
=
a
,
a
=
o
,
o
=
t
),
n
.
precision
(
y
)):[[
r
,
a
],[
e
,
o
]]},
n
.
step
=
function
(
t
){
return
arguments
.
length
?
n
.
majorStep
(
t
).
minorStep
(
t
):
n
.
minorStep
()},
n
.
majorStep
=
function
(
t
){
return
arguments
.
length
?(
d
=+
t
[
0
],
m
=+
t
[
1
],
n
):[
d
,
m
]},
n
.
minorStep
=
function
(
t
){
return
arguments
.
length
?(
p
=+
t
[
0
],
v
=+
t
[
1
],
n
):[
p
,
v
]},
n
.
precision
=
function
(
t
){
return
arguments
.
length
?(
y
=+
t
,
l
=
vr
(
a
,
o
,
90
),
f
=
dr
(
r
,
e
,
y
),
h
=
vr
(
s
,
c
,
90
),
g
=
dr
(
i
,
u
,
y
),
n
):
y
},
n
.
majorExtent
([[
-
180
,
-
90
+
Ta
],[
180
,
90
-
Ta
]]).
minorExtent
([[
-
180
,
-
80
-
Ta
],[
180
,
80
+
Ta
]])},
Go
.
geo
.
greatArc
=
function
(){
function
n
(){
return
{
type
:
"
LineString
"
,
coordinates
:[
t
||
r
.
apply
(
this
,
arguments
),
e
||
u
.
apply
(
this
,
arguments
)]}}
var
t
,
e
,
r
=
mr
,
u
=
yr
;
return
n
.
distance
=
function
(){
return
Go
.
geo
.
distance
(
t
||
r
.
apply
(
this
,
arguments
),
e
||
u
.
apply
(
this
,
arguments
))},
n
.
source
=
function
(
e
){
return
arguments
.
length
?(
r
=
e
,
t
=
"
function
"
==
typeof
e
?
null
:
e
,
n
):
r
},
n
.
target
=
function
(
t
){
return
arguments
.
length
?(
u
=
t
,
e
=
"
function
"
==
typeof
t
?
null
:
t
,
n
):
u
},
n
.
precision
=
function
(){
return
arguments
.
length
?
n
:
0
},
n
},
Go
.
geo
.
interpolate
=
function
(
n
,
t
){
return
xr
(
n
[
0
]
*
za
,
n
[
1
]
*
za
,
t
[
0
]
*
za
,
t
[
1
]
*
za
)},
Go
.
geo
.
length
=
function
(
n
){
return
Oc
=
0
,
Go
.
geo
.
stream
(
n
,
Yc
),
Oc
};
var
Oc
,
Yc
=
{
sphere
:
v
,
point
:
v
,
lineStart
:
Mr
,
lineEnd
:
v
,
polygonStart
:
v
,
polygonEnd
:
v
},
Ic
=
_r
(
function
(
n
){
return
Math
.
sqrt
(
2
/
(
1
+
n
))},
function
(
n
){
return
2
*
Math
.
asin
(
n
/
2
)});(
Go
.
geo
.
azimuthalEqualArea
=
function
(){
return
ur
(
Ic
)}).
raw
=
Ic
;
var
Zc
=
_r
(
function
(
n
){
var
t
=
Math
.
acos
(
n
);
return
t
&&
t
/
Math
.
sin
(
t
)},
Nt
);(
Go
.
geo
.
azimuthalEquidistant
=
function
(){
return
ur
(
Zc
)}).
raw
=
Zc
,(
Go
.
geo
.
conicConformal
=
function
(){
return
Ie
(
br
)}).
raw
=
br
,(
Go
.
geo
.
conicEquidistant
=
function
(){
return
Ie
(
wr
)}).
raw
=
wr
;
var
Vc
=
_r
(
function
(
n
){
return
1
/
n
},
Math
.
atan
);(
Go
.
geo
.
gnomonic
=
function
(){
return
ur
(
Vc
)}).
raw
=
Vc
,
Sr
.
invert
=
function
(
n
,
t
){
return
[
n
,
2
*
Math
.
atan
(
Math
.
exp
(
t
))
-
La
]},(
Go
.
geo
.
mercator
=
function
(){
return
kr
(
Sr
)}).
raw
=
Sr
;
var
$c
=
_r
(
function
(){
return
1
},
Math
.
asin
);(
Go
.
geo
.
orthographic
=
function
(){
return
ur
(
$c
)}).
raw
=
$c
;
var
Xc
=
_r
(
function
(
n
){
return
1
/
(
1
+
n
)},
function
(
n
){
return
2
*
Math
.
atan
(
n
)});(
Go
.
geo
.
stereographic
=
function
(){
return
ur
(
Xc
)}).
raw
=
Xc
,
Er
.
invert
=
function
(
n
,
t
){
return
[
-
t
,
2
*
Math
.
atan
(
Math
.
exp
(
n
))
-
La
]},(
Go
.
geo
.
transverseMercator
=
function
(){
var
n
=
kr
(
Er
),
t
=
n
.
center
,
e
=
n
.
rotate
;
return
n
.
center
=
function
(
n
){
return
n
?
t
([
-
n
[
1
],
n
[
0
]]):(
n
=
t
(),[
-
n
[
1
],
n
[
0
]])},
n
.
rotate
=
function
(
n
){
return
n
?
e
([
n
[
0
],
n
[
1
],
n
.
length
>
2
?
n
[
2
]
+
90
:
90
]):(
n
=
e
(),[
n
[
0
],
n
[
1
],
n
[
2
]
-
90
])},
n
.
rotate
([
0
,
0
])}).
raw
=
Er
,
Go
.
geom
=
{},
Go
.
geom
.
hull
=
function
(
n
){
function
t
(
n
){
if
(
n
.
length
<
3
)
return
[];
var
t
,
u
=
Et
(
e
),
i
=
Et
(
r
),
o
=
n
.
length
,
a
=
[],
c
=
[];
for
(
t
=
0
;
o
>
t
;
t
++
)
a
.
push
([
+
u
.
call
(
this
,
n
[
t
],
t
),
+
i
.
call
(
this
,
n
[
t
],
t
),
t
]);
for
(
a
.
sort
(
Lr
),
t
=
0
;
o
>
t
;
t
++
)
c
.
push
([
a
[
t
][
0
],
-
a
[
t
][
1
]]);
var
s
=
Cr
(
a
),
l
=
Cr
(
c
),
f
=
l
[
0
]
===
s
[
0
],
h
=
l
[
l
.
length
-
1
]
===
s
[
s
.
length
-
1
],
g
=
[];
for
(
t
=
s
.
length
-
1
;
t
>=
0
;
--
t
)
g
.
push
(
n
[
a
[
s
[
t
]][
2
]]);
for
(
t
=+
f
;
t
<
l
.
length
-
h
;
++
t
)
g
.
push
(
n
[
a
[
l
[
t
]][
2
]]);
return
g
}
var
e
=
Nr
,
r
=
Ar
;
return
arguments
.
length
?
t
(
n
):(
t
.
x
=
function
(
n
){
return
arguments
.
length
?(
e
=
n
,
t
):
e
},
t
.
y
=
function
(
n
){
return
arguments
.
length
?(
r
=
n
,
t
):
r
},
t
)},
Go
.
geom
.
polygon
=
function
(
n
){
return
da
(
n
,
Bc
),
n
};
var
Bc
=
Go
.
geom
.
polygon
.
prototype
=
[];
Bc
.
area
=
function
(){
for
(
var
n
,
t
=-
1
,
e
=
this
.
length
,
r
=
this
[
e
-
1
],
u
=
0
;
++
t
<
e
;)
n
=
r
,
r
=
this
[
t
],
u
+=
n
[
1
]
*
r
[
0
]
-
n
[
0
]
*
r
[
1
];
return
.
5
*
u
},
Bc
.
centroid
=
function
(
n
){
var
t
,
e
,
r
=-
1
,
u
=
this
.
length
,
i
=
0
,
o
=
0
,
a
=
this
[
u
-
1
];
for
(
arguments
.
length
||
(
n
=-
1
/
(
6
*
this
.
area
()));
++
r
<
u
;)
t
=
a
,
a
=
this
[
r
],
e
=
t
[
0
]
*
a
[
1
]
-
a
[
0
]
*
t
[
1
],
i
+=
(
t
[
0
]
+
a
[
0
])
*
e
,
o
+=
(
t
[
1
]
+
a
[
1
])
*
e
;
return
[
i
*
n
,
o
*
n
]},
Bc
.
clip
=
function
(
n
){
for
(
var
t
,
e
,
r
,
u
,
i
,
o
,
a
=
zr
(
n
),
c
=-
1
,
s
=
this
.
length
-
zr
(
this
),
l
=
this
[
s
-
1
];
++
c
<
s
;){
for
(
t
=
n
.
slice
(),
n
.
length
=
0
,
u
=
this
[
c
],
i
=
t
[(
r
=
t
.
length
-
a
)
-
1
],
e
=-
1
;
++
e
<
r
;)
o
=
t
[
e
],
Tr
(
o
,
l
,
u
)?(
Tr
(
i
,
l
,
u
)
||
n
.
push
(
qr
(
i
,
o
,
l
,
u
)),
n
.
push
(
o
)):
Tr
(
i
,
l
,
u
)
&&
n
.
push
(
qr
(
i
,
o