Toggle navigation
Toggle navigation
This project
Loading...
Sign in
홍길동
/
onos
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
Thomas Vachuska
2014-10-28 13:40:49 -0700
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
ce2474aa91411457ab3b7c35a365b2831db1e85d
ce2474aa
1 parent
4f1a60c9
Revised copyright message.
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
0 additions
and
62 deletions
web/gui/src/main/webapp/libs/d3.js
web/gui/src/main/webapp/libs/d3.min.js
web/gui/src/main/webapp/libs/jquery-2.1.1.js
web/gui/src/main/webapp/libs/jquery-2.1.1.min.js
web/gui/src/main/webapp/libs/d3.js
View file @
ce2474a
/*
* Copyright 2014 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
!
function
()
{
var
d3
=
{
version
:
"3.4.12"
...
...
web/gui/src/main/webapp/libs/d3.min.js
View file @
ce2474a
/*
* Copyright 2014 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
!
function
(){
function
n
(
n
,
t
){
return
t
>
n
?
-
1
:
n
>
t
?
1
:
n
>=
t
?
0
:
0
/
0
}
function
t
(
n
){
return
null
!=
n
&&!
isNaN
(
n
)}
function
e
(
n
){
return
{
left
:
function
(
t
,
e
,
r
,
u
){
for
(
arguments
.
length
<
3
&&
(
r
=
0
),
arguments
.
length
<
4
&&
(
u
=
t
.
length
);
u
>
r
;){
var
i
=
r
+
u
>>>
1
;
n
(
t
[
i
],
e
)
<
0
?
r
=
i
+
1
:
u
=
i
}
return
r
},
right
:
function
(
t
,
e
,
r
,
u
){
for
(
arguments
.
length
<
3
&&
(
r
=
0
),
arguments
.
length
<
4
&&
(
u
=
t
.
length
);
u
>
r
;){
var
i
=
r
+
u
>>>
1
;
n
(
t
[
i
],
e
)
>
0
?
u
=
i
:
r
=
i
+
1
}
return
r
}}}
function
r
(
n
){
return
n
.
length
}
function
u
(
n
){
for
(
var
t
=
1
;
n
*
t
%
1
;)
t
*=
10
;
return
t
}
function
i
(
n
,
t
){
try
{
for
(
var
e
in
t
)
Object
.
defineProperty
(
n
.
prototype
,
e
,{
value
:
t
[
e
],
enumerable
:
!
1
})}
catch
(
r
){
n
.
prototype
=
t
}}
function
o
(){}
function
a
(
n
){
return
oa
+
n
in
this
}
function
c
(
n
){
return
n
=
oa
+
n
,
n
in
this
&&
delete
this
[
n
]}
function
l
(){
var
n
=
[];
return
this
.
forEach
(
function
(
t
){
n
.
push
(
t
)}),
n
}
function
s
(){
var
n
=
0
;
for
(
var
t
in
this
)
t
.
charCodeAt
(
0
)
===
aa
&&++
n
;
return
n
}
function
f
(){
for
(
var
n
in
this
)
if
(
n
.
charCodeAt
(
0
)
===
aa
)
return
!
1
;
return
!
0
}
function
h
(){}
function
g
(
n
,
t
,
e
){
return
function
(){
var
r
=
e
.
apply
(
t
,
arguments
);
return
r
===
t
?
n
:
r
}}
function
p
(
n
,
t
){
if
(
t
in
n
)
return
t
;
t
=
t
.
charAt
(
0
).
toUpperCase
()
+
t
.
slice
(
1
);
for
(
var
e
=
0
,
r
=
ca
.
length
;
r
>
e
;
++
e
){
var
u
=
ca
[
e
]
+
t
;
if
(
u
in
n
)
return
u
}}
function
v
(){}
function
d
(){}
function
m
(
n
){
function
t
(){
for
(
var
t
,
r
=
e
,
u
=-
1
,
i
=
r
.
length
;
++
u
<
i
;)(
t
=
r
[
u
].
on
)
&&
t
.
apply
(
this
,
arguments
);
return
n
}
var
e
=
[],
r
=
new
o
;
return
t
.
on
=
function
(
t
,
u
){
var
i
,
o
=
r
.
get
(
t
);
return
arguments
.
length
<
2
?
o
&&
o
.
on
:(
o
&&
(
o
.
on
=
null
,
e
=
e
.
slice
(
0
,
i
=
e
.
indexOf
(
o
)).
concat
(
e
.
slice
(
i
+
1
)),
r
.
remove
(
t
)),
u
&&
e
.
push
(
r
.
set
(
t
,{
on
:
u
})),
n
)},
t
}
function
y
(){
Vo
.
event
.
preventDefault
()}
function
x
(){
for
(
var
n
,
t
=
Vo
.
event
;
n
=
t
.
sourceEvent
;)
t
=
n
;
return
t
}
function
M
(
n
){
for
(
var
t
=
new
d
,
e
=
0
,
r
=
arguments
.
length
;
++
e
<
r
;)
t
[
arguments
[
e
]]
=
m
(
t
);
return
t
.
of
=
function
(
e
,
r
){
return
function
(
u
){
try
{
var
i
=
u
.
sourceEvent
=
Vo
.
event
;
u
.
target
=
n
,
Vo
.
event
=
u
,
t
[
u
.
type
].
apply
(
e
,
r
)}
finally
{
Vo
.
event
=
i
}}},
t
}
function
_
(
n
){
return
sa
(
n
,
va
),
n
}
function
b
(
n
){
return
"function"
==
typeof
n
?
n
:
function
(){
return
fa
(
n
,
this
)}}
function
w
(
n
){
return
"function"
==
typeof
n
?
n
:
function
(){
return
ha
(
n
,
this
)}}
function
S
(
n
,
t
){
function
e
(){
this
.
removeAttribute
(
n
)}
function
r
(){
this
.
removeAttributeNS
(
n
.
space
,
n
.
local
)}
function
u
(){
this
.
setAttribute
(
n
,
t
)}
function
i
(){
this
.
setAttributeNS
(
n
.
space
,
n
.
local
,
t
)}
function
o
(){
var
e
=
t
.
apply
(
this
,
arguments
);
null
==
e
?
this
.
removeAttribute
(
n
):
this
.
setAttribute
(
n
,
e
)}
function
a
(){
var
e
=
t
.
apply
(
this
,
arguments
);
null
==
e
?
this
.
removeAttributeNS
(
n
.
space
,
n
.
local
):
this
.
setAttributeNS
(
n
.
space
,
n
.
local
,
e
)}
return
n
=
Vo
.
ns
.
qualify
(
n
),
null
==
t
?
n
.
local
?
r
:
e
:
"function"
==
typeof
t
?
n
.
local
?
a
:
o
:
n
.
local
?
i
:
u
}
function
k
(
n
){
return
n
.
trim
().
replace
(
/
\s
+/g
,
" "
)}
function
E
(
n
){
return
new
RegExp
(
"(?:^|\\s+)"
+
Vo
.
requote
(
n
)
+
"(?:\\s+|$)"
,
"g"
)}
function
A
(
n
){
return
(
n
+
""
).
trim
().
split
(
/^|
\s
+/
)}
function
C
(
n
,
t
){
function
e
(){
for
(
var
e
=-
1
;
++
e
<
u
;)
n
[
e
](
this
,
t
)}
function
r
(){
for
(
var
e
=-
1
,
r
=
t
.
apply
(
this
,
arguments
);
++
e
<
u
;)
n
[
e
](
this
,
r
)}
n
=
A
(
n
).
map
(
N
);
var
u
=
n
.
length
;
return
"function"
==
typeof
t
?
r
:
e
}
function
N
(
n
){
var
t
=
E
(
n
);
return
function
(
e
,
r
){
if
(
u
=
e
.
classList
)
return
r
?
u
.
add
(
n
):
u
.
remove
(
n
);
var
u
=
e
.
getAttribute
(
"class"
)
||
""
;
r
?(
t
.
lastIndex
=
0
,
t
.
test
(
u
)
||
e
.
setAttribute
(
"class"
,
k
(
u
+
" "
+
n
))):
e
.
setAttribute
(
"class"
,
k
(
u
.
replace
(
t
,
" "
)))}}
function
z
(
n
,
t
,
e
){
function
r
(){
this
.
style
.
removeProperty
(
n
)}
function
u
(){
this
.
style
.
setProperty
(
n
,
t
,
e
)}
function
i
(){
var
r
=
t
.
apply
(
this
,
arguments
);
null
==
r
?
this
.
style
.
removeProperty
(
n
):
this
.
style
.
setProperty
(
n
,
r
,
e
)}
return
null
==
t
?
r
:
"function"
==
typeof
t
?
i
:
u
}
function
L
(
n
,
t
){
function
e
(){
delete
this
[
n
]}
function
r
(){
this
[
n
]
=
t
}
function
u
(){
var
e
=
t
.
apply
(
this
,
arguments
);
null
==
e
?
delete
this
[
n
]:
this
[
n
]
=
e
}
return
null
==
t
?
e
:
"function"
==
typeof
t
?
u
:
r
}
function
T
(
n
){
return
"function"
==
typeof
n
?
n
:(
n
=
Vo
.
ns
.
qualify
(
n
)).
local
?
function
(){
return
this
.
ownerDocument
.
createElementNS
(
n
.
space
,
n
.
local
)}:
function
(){
return
this
.
ownerDocument
.
createElementNS
(
this
.
namespaceURI
,
n
)}}
function
q
(
n
){
return
{
__data__
:
n
}}
function
R
(
n
){
return
function
(){
return
pa
(
this
,
n
)}}
function
D
(
t
){
return
arguments
.
length
||
(
t
=
n
),
function
(
n
,
e
){
return
n
&&
e
?
t
(
n
.
__data__
,
e
.
__data__
):
!
n
-!
e
}}
function
P
(
n
,
t
){
for
(
var
e
=
0
,
r
=
n
.
length
;
r
>
e
;
e
++
)
for
(
var
u
,
i
=
n
[
e
],
o
=
0
,
a
=
i
.
length
;
a
>
o
;
o
++
)(
u
=
i
[
o
])
&&
t
(
u
,
o
,
e
);
return
n
}
function
U
(
n
){
return
sa
(
n
,
ma
),
n
}
function
j
(
n
){
var
t
,
e
;
return
function
(
r
,
u
,
i
){
var
o
,
a
=
n
[
i
].
update
,
c
=
a
.
length
;
for
(
i
!=
e
&&
(
e
=
i
,
t
=
0
),
u
>=
t
&&
(
t
=
u
+
1
);
!
(
o
=
a
[
t
])
&&++
t
<
c
;);
return
o
}}
function
H
(){
var
n
=
this
.
__transition__
;
n
&&++
n
.
active
}
function
F
(
n
,
t
,
e
){
function
r
(){
var
t
=
this
[
o
];
t
&&
(
this
.
removeEventListener
(
n
,
t
,
t
.
$
),
delete
this
[
o
])}
function
u
(){
var
u
=
c
(
t
,
$o
(
arguments
));
r
.
call
(
this
),
this
.
addEventListener
(
n
,
this
[
o
]
=
u
,
u
.
$
=
e
),
u
.
_
=
t
}
function
i
(){
var
t
,
e
=
new
RegExp
(
"^__on([^.]+)"
+
Vo
.
requote
(
n
)
+
"$"
);
for
(
var
r
in
this
)
if
(
t
=
r
.
match
(
e
)){
var
u
=
this
[
r
];
this
.
removeEventListener
(
t
[
1
],
u
,
u
.
$
),
delete
this
[
r
]}}
var
o
=
"__on"
+
n
,
a
=
n
.
indexOf
(
"."
),
c
=
O
;
a
>
0
&&
(
n
=
n
.
slice
(
0
,
a
));
var
l
=
xa
.
get
(
n
);
return
l
&&
(
n
=
l
,
c
=
Y
),
a
?
t
?
u
:
r
:
t
?
v
:
i
}
function
O
(
n
,
t
){
return
function
(
e
){
var
r
=
Vo
.
event
;
Vo
.
event
=
e
,
t
[
0
]
=
this
.
__data__
;
try
{
n
.
apply
(
this
,
t
)}
finally
{
Vo
.
event
=
r
}}}
function
Y
(
n
,
t
){
var
e
=
O
(
n
,
t
);
return
function
(
n
){
var
t
=
this
,
r
=
n
.
relatedTarget
;
r
&&
(
r
===
t
||
8
&
r
.
compareDocumentPosition
(
t
))
||
e
.
call
(
t
,
n
)}}
function
I
(){
var
n
=
".dragsuppress-"
+
++
_a
,
t
=
"click"
+
n
,
e
=
Vo
.
select
(
Jo
).
on
(
"touchmove"
+
n
,
y
).
on
(
"dragstart"
+
n
,
y
).
on
(
"selectstart"
+
n
,
y
);
if
(
Ma
){
var
r
=
Wo
.
style
,
u
=
r
[
Ma
];
r
[
Ma
]
=
"none"
}
return
function
(
i
){
function
o
(){
e
.
on
(
t
,
null
)}
e
.
on
(
n
,
null
),
Ma
&&
(
r
[
Ma
]
=
u
),
i
&&
(
e
.
on
(
t
,
function
(){
y
(),
o
()},
!
0
),
setTimeout
(
o
,
0
))}}
function
Z
(
n
,
t
){
t
.
changedTouches
&&
(
t
=
t
.
changedTouches
[
0
]);
var
e
=
n
.
ownerSVGElement
||
n
;
if
(
e
.
createSVGPoint
){
var
r
=
e
.
createSVGPoint
();
if
(
0
>
ba
&&
(
Jo
.
scrollX
||
Jo
.
scrollY
)){
e
=
Vo
.
select
(
"body"
).
append
(
"svg"
).
style
({
position
:
"absolute"
,
top
:
0
,
left
:
0
,
margin
:
0
,
padding
:
0
,
border
:
"none"
},
"important"
);
var
u
=
e
[
0
][
0
].
getScreenCTM
();
ba
=!
(
u
.
f
||
u
.
e
),
e
.
remove
()}
return
ba
?(
r
.
x
=
t
.
pageX
,
r
.
y
=
t
.
pageY
):(
r
.
x
=
t
.
clientX
,
r
.
y
=
t
.
clientY
),
r
=
r
.
matrixTransform
(
n
.
getScreenCTM
().
inverse
()),[
r
.
x
,
r
.
y
]}
var
i
=
n
.
getBoundingClientRect
();
return
[
t
.
clientX
-
i
.
left
-
n
.
clientLeft
,
t
.
clientY
-
i
.
top
-
n
.
clientTop
]}
function
V
(){
return
Vo
.
event
.
changedTouches
[
0
].
identifier
}
function
X
(){
return
Vo
.
event
.
target
}
function
$
(){
return
Jo
}
function
B
(
n
){
return
n
>
0
?
1
:
0
>
n
?
-
1
:
0
}
function
W
(
n
,
t
,
e
){
return
(
t
[
0
]
-
n
[
0
])
*
(
e
[
1
]
-
n
[
1
])
-
(
t
[
1
]
-
n
[
1
])
*
(
e
[
0
]
-
n
[
0
])}
function
J
(
n
){
return
n
>
1
?
0
:
-
1
>
n
?
wa
:
Math
.
acos
(
n
)}
function
G
(
n
){
return
n
>
1
?
ka
:
-
1
>
n
?
-
ka
:
Math
.
asin
(
n
)}
function
K
(
n
){
return
((
n
=
Math
.
exp
(
n
))
-
1
/
n
)
/
2
}
function
Q
(
n
){
return
((
n
=
Math
.
exp
(
n
))
+
1
/
n
)
/
2
}
function
nt
(
n
){
return
((
n
=
Math
.
exp
(
2
*
n
))
-
1
)
/
(
n
+
1
)}
function
tt
(
n
){
return
(
n
=
Math
.
sin
(
n
/
2
))
*
n
}
function
et
(){}
function
rt
(
n
,
t
,
e
){
return
this
instanceof
rt
?(
this
.
h
=+
n
,
this
.
s
=+
t
,
void
(
this
.
l
=+
e
)):
arguments
.
length
<
2
?
n
instanceof
rt
?
new
rt
(
n
.
h
,
n
.
s
,
n
.
l
):
mt
(
""
+
n
,
yt
,
rt
):
new
rt
(
n
,
t
,
e
)}
function
ut
(
n
,
t
,
e
){
function
r
(
n
){
return
n
>
360
?
n
-=
360
:
0
>
n
&&
(
n
+=
360
),
60
>
n
?
i
+
(
o
-
i
)
*
n
/
60
:
180
>
n
?
o
:
240
>
n
?
i
+
(
o
-
i
)
*
(
240
-
n
)
/
60
:
i
}
function
u
(
n
){
return
Math
.
round
(
255
*
r
(
n
))}
var
i
,
o
;
return
n
=
isNaN
(
n
)?
0
:(
n
%=
360
)
<
0
?
n
+
360
:
n
,
t
=
isNaN
(
t
)?
0
:
0
>
t
?
0
:
t
>
1
?
1
:
t
,
e
=
0
>
e
?
0
:
e
>
1
?
1
:
e
,
o
=
.
5
>=
e
?
e
*
(
1
+
t
):
e
+
t
-
e
*
t
,
i
=
2
*
e
-
o
,
new
gt
(
u
(
n
+
120
),
u
(
n
),
u
(
n
-
120
))}
function
it
(
n
,
t
,
e
){
return
this
instanceof
it
?(
this
.
h
=+
n
,
this
.
c
=+
t
,
void
(
this
.
l
=+
e
)):
arguments
.
length
<
2
?
n
instanceof
it
?
new
it
(
n
.
h
,
n
.
c
,
n
.
l
):
n
instanceof
at
?
lt
(
n
.
l
,
n
.
a
,
n
.
b
):
lt
((
n
=
xt
((
n
=
Vo
.
rgb
(
n
)).
r
,
n
.
g
,
n
.
b
)).
l
,
n
.
a
,
n
.
b
):
new
it
(
n
,
t
,
e
)}
function
ot
(
n
,
t
,
e
){
return
isNaN
(
n
)
&&
(
n
=
0
),
isNaN
(
t
)
&&
(
t
=
0
),
new
at
(
e
,
Math
.
cos
(
n
*=
Ca
)
*
t
,
Math
.
sin
(
n
)
*
t
)}
function
at
(
n
,
t
,
e
){
return
this
instanceof
at
?(
this
.
l
=+
n
,
this
.
a
=+
t
,
void
(
this
.
b
=+
e
)):
arguments
.
length
<
2
?
n
instanceof
at
?
new
at
(
n
.
l
,
n
.
a
,
n
.
b
):
n
instanceof
it
?
ot
(
n
.
l
,
n
.
c
,
n
.
h
):
xt
((
n
=
gt
(
n
)).
r
,
n
.
g
,
n
.
b
):
new
at
(
n
,
t
,
e
)}
function
ct
(
n
,
t
,
e
){
var
r
=
(
n
+
16
)
/
116
,
u
=
r
+
t
/
500
,
i
=
r
-
e
/
200
;
return
u
=
st
(
u
)
*
Ha
,
r
=
st
(
r
)
*
Fa
,
i
=
st
(
i
)
*
Oa
,
new
gt
(
ht
(
3.2404542
*
u
-
1.5371385
*
r
-
.
4985314
*
i
),
ht
(
-
.
969266
*
u
+
1.8760108
*
r
+
.
041556
*
i
),
ht
(.
0556434
*
u
-
.
2040259
*
r
+
1.0572252
*
i
))}
function
lt
(
n
,
t
,
e
){
return
n
>
0
?
new
it
(
Math
.
atan2
(
e
,
t
)
*
Na
,
Math
.
sqrt
(
t
*
t
+
e
*
e
),
n
):
new
it
(
0
/
0
,
0
/
0
,
n
)}
function
st
(
n
){
return
n
>
.
206893034
?
n
*
n
*
n
:(
n
-
4
/
29
)
/
7.787037
}
function
ft
(
n
){
return
n
>
.
008856
?
Math
.
pow
(
n
,
1
/
3
):
7.787037
*
n
+
4
/
29
}
function
ht
(
n
){
return
Math
.
round
(
255
*
(.
00304
>=
n
?
12.92
*
n
:
1.055
*
Math
.
pow
(
n
,
1
/
2.4
)
-
.
055
))}
function
gt
(
n
,
t
,
e
){
return
this
instanceof
gt
?(
this
.
r
=~~
n
,
this
.
g
=~~
t
,
void
(
this
.
b
=~~
e
)):
arguments
.
length
<
2
?
n
instanceof
gt
?
new
gt
(
n
.
r
,
n
.
g
,
n
.
b
):
mt
(
""
+
n
,
gt
,
ut
):
new
gt
(
n
,
t
,
e
)}
function
pt
(
n
){
return
new
gt
(
n
>>
16
,
255
&
n
>>
8
,
255
&
n
)}
function
vt
(
n
){
return
pt
(
n
)
+
""
}
function
dt
(
n
){
return
16
>
n
?
"0"
+
Math
.
max
(
0
,
n
).
toString
(
16
):
Math
.
min
(
255
,
n
).
toString
(
16
)}
function
mt
(
n
,
t
,
e
){
var
r
,
u
,
i
,
o
=
0
,
a
=
0
,
c
=
0
;
if
(
r
=
/
([
a-z
]
+
)\((
.*
)\)
/i
.
exec
(
n
))
switch
(
u
=
r
[
2
].
split
(
","
),
r
[
1
]){
case
"hsl"
:
return
e
(
parseFloat
(
u
[
0
]),
parseFloat
(
u
[
1
])
/
100
,
parseFloat
(
u
[
2
])
/
100
);
case
"rgb"
:
return
t
(
_t
(
u
[
0
]),
_t
(
u
[
1
]),
_t
(
u
[
2
]))}
return
(
i
=
Za
.
get
(
n
))?
t
(
i
.
r
,
i
.
g
,
i
.
b
):(
null
==
n
||
"#"
!==
n
.
charAt
(
0
)
||
isNaN
(
i
=
parseInt
(
n
.
slice
(
1
),
16
))
||
(
4
===
n
.
length
?(
o
=
(
3840
&
i
)
>>
4
,
o
=
o
>>
4
|
o
,
a
=
240
&
i
,
a
=
a
>>
4
|
a
,
c
=
15
&
i
,
c
=
c
<<
4
|
c
):
7
===
n
.
length
&&
(
o
=
(
16711680
&
i
)
>>
16
,
a
=
(
65280
&
i
)
>>
8
,
c
=
255
&
i
)),
t
(
o
,
a
,
c
))}
function
yt
(
n
,
t
,
e
){
var
r
,
u
,
i
=
Math
.
min
(
n
/=
255
,
t
/=
255
,
e
/=
255
),
o
=
Math
.
max
(
n
,
t
,
e
),
a
=
o
-
i
,
c
=
(
o
+
i
)
/
2
;
return
a
?(
u
=
.
5
>
c
?
a
/
(
o
+
i
):
a
/
(
2
-
o
-
i
),
r
=
n
==
o
?(
t
-
e
)
/
a
+
(
e
>
t
?
6
:
0
):
t
==
o
?(
e
-
n
)
/
a
+
2
:(
n
-
t
)
/
a
+
4
,
r
*=
60
):(
r
=
0
/
0
,
u
=
c
>
0
&&
1
>
c
?
0
:
r
),
new
rt
(
r
,
u
,
c
)}
function
xt
(
n
,
t
,
e
){
n
=
Mt
(
n
),
t
=
Mt
(
t
),
e
=
Mt
(
e
);
var
r
=
ft
((.
4124564
*
n
+
.
3575761
*
t
+
.
1804375
*
e
)
/
Ha
),
u
=
ft
((.
2126729
*
n
+
.
7151522
*
t
+
.
072175
*
e
)
/
Fa
),
i
=
ft
((.
0193339
*
n
+
.
119192
*
t
+
.
9503041
*
e
)
/
Oa
);
return
at
(
116
*
u
-
16
,
500
*
(
r
-
u
),
200
*
(
u
-
i
))}
function
Mt
(
n
){
return
(
n
/=
255
)
<=
.
04045
?
n
/
12.92
:
Math
.
pow
((
n
+
.
055
)
/
1.055
,
2.4
)}
function
_t
(
n
){
var
t
=
parseFloat
(
n
);
return
"%"
===
n
.
charAt
(
n
.
length
-
1
)?
Math
.
round
(
2.55
*
t
):
t
}
function
bt
(
n
){
return
"function"
==
typeof
n
?
n
:
function
(){
return
n
}}
function
wt
(
n
){
return
n
}
function
St
(
n
){
return
function
(
t
,
e
,
r
){
return
2
===
arguments
.
length
&&
"function"
==
typeof
e
&&
(
r
=
e
,
e
=
null
),
kt
(
t
,
e
,
n
,
r
)}}
function
kt
(
n
,
t
,
e
,
r
){
function
u
(){
var
n
,
t
=
c
.
status
;
if
(
!
t
&&
At
(
c
)
||
t
>=
200
&&
300
>
t
||
304
===
t
){
try
{
n
=
e
.
call
(
i
,
c
)}
catch
(
r
){
return
o
.
error
.
call
(
i
,
r
),
void
0
}
o
.
load
.
call
(
i
,
n
)}
else
o
.
error
.
call
(
i
,
c
)}
var
i
=
{},
o
=
Vo
.
dispatch
(
"beforesend"
,
"progress"
,
"load"
,
"error"
),
a
=
{},
c
=
new
XMLHttpRequest
,
l
=
null
;
return
!
Jo
.
XDomainRequest
||
"withCredentials"
in
c
||!
/^
(
http
(
s
)?
:
)?\/\/
/
.
test
(
n
)
||
(
c
=
new
XDomainRequest
),
"onload"
in
c
?
c
.
onload
=
c
.
onerror
=
u
:
c
.
onreadystatechange
=
function
(){
c
.
readyState
>
3
&&
u
()},
c
.
onprogress
=
function
(
n
){
var
t
=
Vo
.
event
;
Vo
.
event
=
n
;
try
{
o
.
progress
.
call
(
i
,
c
)}
finally
{
Vo
.
event
=
t
}},
i
.
header
=
function
(
n
,
t
){
return
n
=
(
n
+
""
).
toLowerCase
(),
arguments
.
length
<
2
?
a
[
n
]:(
null
==
t
?
delete
a
[
n
]:
a
[
n
]
=
t
+
""
,
i
)},
i
.
mimeType
=
function
(
n
){
return
arguments
.
length
?(
t
=
null
==
n
?
null
:
n
+
""
,
i
):
t
},
i
.
responseType
=
function
(
n
){
return
arguments
.
length
?(
l
=
n
,
i
):
l
},
i
.
response
=
function
(
n
){
return
e
=
n
,
i
},[
"get"
,
"post"
].
forEach
(
function
(
n
){
i
[
n
]
=
function
(){
return
i
.
send
.
apply
(
i
,[
n
].
concat
(
$o
(
arguments
)))}}),
i
.
send
=
function
(
e
,
r
,
u
){
if
(
2
===
arguments
.
length
&&
"function"
==
typeof
r
&&
(
u
=
r
,
r
=
null
),
c
.
open
(
e
,
n
,
!
0
),
null
==
t
||
"accept"
in
a
||
(
a
.
accept
=
t
+
",*/*"
),
c
.
setRequestHeader
)
for
(
var
s
in
a
)
c
.
setRequestHeader
(
s
,
a
[
s
]);
return
null
!=
t
&&
c
.
overrideMimeType
&&
c
.
overrideMimeType
(
t
),
null
!=
l
&&
(
c
.
responseType
=
l
),
null
!=
u
&&
i
.
on
(
"error"
,
u
).
on
(
"load"
,
function
(
n
){
u
(
null
,
n
)}),
o
.
beforesend
.
call
(
i
,
c
),
c
.
send
(
null
==
r
?
null
:
r
),
i
},
i
.
abort
=
function
(){
return
c
.
abort
(),
i
},
Vo
.
rebind
(
i
,
o
,
"on"
),
null
==
r
?
i
:
i
.
get
(
Et
(
r
))}
function
Et
(
n
){
return
1
===
n
.
length
?
function
(
t
,
e
){
n
(
null
==
t
?
e
:
null
)}:
n
}
function
At
(
n
){
var
t
=
n
.
responseType
;
return
t
&&
"text"
!==
t
?
n
.
response
:
n
.
responseText
}
function
Ct
(){
var
n
=
Nt
(),
t
=
zt
()
-
n
;
t
>
24
?(
isFinite
(
t
)
&&
(
clearTimeout
(
Ba
),
Ba
=
setTimeout
(
Ct
,
t
)),
$a
=
0
):(
$a
=
1
,
Ja
(
Ct
))}
function
Nt
(){
var
n
=
Date
.
now
();
for
(
Wa
=
Va
;
Wa
;)
n
>=
Wa
.
t
&&
(
Wa
.
f
=
Wa
.
c
(
n
-
Wa
.
t
)),
Wa
=
Wa
.
n
;
return
n
}
function
zt
(){
for
(
var
n
,
t
=
Va
,
e
=
1
/
0
;
t
;)
t
.
f
?
t
=
n
?
n
.
n
=
t
.
n
:
Va
=
t
.
n
:(
t
.
t
<
e
&&
(
e
=
t
.
t
),
t
=
(
n
=
t
).
n
);
return
Xa
=
n
,
e
}
function
Lt
(
n
,
t
){
return
t
-
(
n
?
Math
.
ceil
(
Math
.
log
(
n
)
/
Math
.
LN10
):
1
)}
function
Tt
(
n
,
t
){
var
e
=
Math
.
pow
(
10
,
3
*
ia
(
8
-
t
));
return
{
scale
:
t
>
8
?
function
(
n
){
return
n
/
e
}:
function
(
n
){
return
n
*
e
},
symbol
:
n
}}
function
qt
(
n
){
var
t
=
n
.
decimal
,
e
=
n
.
thousands
,
r
=
n
.
grouping
,
u
=
n
.
currency
,
i
=
r
?
function
(
n
){
for
(
var
t
=
n
.
length
,
u
=
[],
i
=
0
,
o
=
r
[
0
];
o
>
0
&&
t
>
0
;)
u
.
push
(
n
.
substring
(
t
-=
o
,
t
+
o
)),
o
=
r
[
i
=
(
i
+
1
)
%
r
.
length
];
return
u
.
reverse
().
join
(
e
)}:
wt
;
return
function
(
n
){
var
e
=
Ka
.
exec
(
n
),
r
=
e
[
1
]
||
" "
,
o
=
e
[
2
]
||
">"
,
a
=
e
[
3
]
||
""
,
c
=
e
[
4
]
||
""
,
l
=
e
[
5
],
s
=+
e
[
6
],
f
=
e
[
7
],
h
=
e
[
8
],
g
=
e
[
9
],
p
=
1
,
v
=
""
,
d
=
""
,
m
=!
1
;
switch
(
h
&&
(
h
=+
h
.
substring
(
1
)),(
l
||
"0"
===
r
&&
"="
===
o
)
&&
(
l
=
r
=
"0"
,
o
=
"="
,
f
&&
(
s
-=
Math
.
floor
((
s
-
1
)
/
4
))),
g
){
case
"n"
:
f
=!
0
,
g
=
"g"
;
break
;
case
"%"
:
p
=
100
,
d
=
"%"
,
g
=
"f"
;
break
;
case
"p"
:
p
=
100
,
d
=
"%"
,
g
=
"r"
;
break
;
case
"b"
:
case
"o"
:
case
"x"
:
case
"X"
:
"#"
===
c
&&
(
v
=
"0"
+
g
.
toLowerCase
());
case
"c"
:
case
"d"
:
m
=!
0
,
h
=
0
;
break
;
case
"s"
:
p
=-
1
,
g
=
"r"
}
"$"
===
c
&&
(
v
=
u
[
0
],
d
=
u
[
1
]),
"r"
!=
g
||
h
||
(
g
=
"g"
),
null
!=
h
&&
(
"g"
==
g
?
h
=
Math
.
max
(
1
,
Math
.
min
(
21
,
h
)):(
"e"
==
g
||
"f"
==
g
)
&&
(
h
=
Math
.
max
(
0
,
Math
.
min
(
20
,
h
)))),
g
=
Qa
.
get
(
g
)
||
Rt
;
var
y
=
l
&&
f
;
return
function
(
n
){
var
e
=
d
;
if
(
m
&&
n
%
1
)
return
""
;
var
u
=
0
>
n
||
0
===
n
&&
0
>
1
/
n
?(
n
=-
n
,
"-"
):
a
;
if
(
0
>
p
){
var
c
=
Vo
.
formatPrefix
(
n
,
h
);
n
=
c
.
scale
(
n
),
e
=
c
.
symbol
+
d
}
else
n
*=
p
;
n
=
g
(
n
,
h
);
var
x
=
n
.
lastIndexOf
(
"."
),
M
=
0
>
x
?
n
:
n
.
substring
(
0
,
x
),
_
=
0
>
x
?
""
:
t
+
n
.
substring
(
x
+
1
);
!
l
&&
f
&&
(
M
=
i
(
M
));
var
b
=
v
.
length
+
M
.
length
+
_
.
length
+
(
y
?
0
:
u
.
length
),
w
=
s
>
b
?
new
Array
(
b
=
s
-
b
+
1
).
join
(
r
):
""
;
return
y
&&
(
M
=
i
(
w
+
M
)),
u
+=
v
,
n
=
M
+
_
,(
"<"
===
o
?
u
+
n
+
w
:
">"
===
o
?
w
+
u
+
n
:
"^"
===
o
?
w
.
substring
(
0
,
b
>>=
1
)
+
u
+
n
+
w
.
substring
(
b
):
u
+
(
y
?
n
:
w
+
n
))
+
e
}}}
function
Rt
(
n
){
return
n
+
""
}
function
Dt
(){
this
.
_
=
new
Date
(
arguments
.
length
>
1
?
Date
.
UTC
.
apply
(
this
,
arguments
):
arguments
[
0
])}
function
Pt
(
n
,
t
,
e
){
function
r
(
t
){
var
e
=
n
(
t
),
r
=
i
(
e
,
1
);
return
r
-
t
>
t
-
e
?
e
:
r
}
function
u
(
e
){
return
t
(
e
=
n
(
new
tc
(
e
-
1
)),
1
),
e
}
function
i
(
n
,
e
){
return
t
(
n
=
new
tc
(
+
n
),
e
),
n
}
function
o
(
n
,
r
,
i
){
var
o
=
u
(
n
),
a
=
[];
if
(
i
>
1
)
for
(;
r
>
o
;)
e
(
o
)
%
i
||
a
.
push
(
new
Date
(
+
o
)),
t
(
o
,
1
);
else
for
(;
r
>
o
;)
a
.
push
(
new
Date
(
+
o
)),
t
(
o
,
1
);
return
a
}
function
a
(
n
,
t
,
e
){
try
{
tc
=
Dt
;
var
r
=
new
Dt
;
return
r
.
_
=
n
,
o
(
r
,
t
,
e
)}
finally
{
tc
=
Date
}}
n
.
floor
=
n
,
n
.
round
=
r
,
n
.
ceil
=
u
,
n
.
offset
=
i
,
n
.
range
=
o
;
var
c
=
n
.
utc
=
Ut
(
n
);
return
c
.
floor
=
c
,
c
.
round
=
Ut
(
r
),
c
.
ceil
=
Ut
(
u
),
c
.
offset
=
Ut
(
i
),
c
.
range
=
a
,
n
}
function
Ut
(
n
){
return
function
(
t
,
e
){
try
{
tc
=
Dt
;
var
r
=
new
Dt
;
return
r
.
_
=
t
,
n
(
r
,
e
).
_
}
finally
{
tc
=
Date
}}}
function
jt
(
n
){
function
t
(
n
){
function
t
(
t
){
for
(
var
e
,
u
,
i
,
o
=
[],
a
=-
1
,
c
=
0
;
++
a
<
r
;)
37
===
n
.
charCodeAt
(
a
)
&&
(
o
.
push
(
n
.
slice
(
c
,
a
)),
null
!=
(
u
=
rc
[
e
=
n
.
charAt
(
++
a
)])
&&
(
e
=
n
.
charAt
(
++
a
)),(
i
=
C
[
e
])
&&
(
e
=
i
(
t
,
null
==
u
?
"e"
===
e
?
" "
:
"0"
:
u
)),
o
.
push
(
e
),
c
=
a
+
1
);
return
o
.
push
(
n
.
slice
(
c
,
a
)),
o
.
join
(
""
)}
var
r
=
n
.
length
;
return
t
.
parse
=
function
(
t
){
var
r
=
{
y
:
1900
,
m
:
0
,
d
:
1
,
H
:
0
,
M
:
0
,
S
:
0
,
L
:
0
,
Z
:
null
},
u
=
e
(
r
,
n
,
t
,
0
);
if
(
u
!=
t
.
length
)
return
null
;
"p"
in
r
&&
(
r
.
H
=
r
.
H
%
12
+
12
*
r
.
p
);
var
i
=
null
!=
r
.
Z
&&
tc
!==
Dt
,
o
=
new
(
i
?
Dt
:
tc
);
return
"j"
in
r
?
o
.
setFullYear
(
r
.
y
,
0
,
r
.
j
):
"w"
in
r
&&
(
"W"
in
r
||
"U"
in
r
)?(
o
.
setFullYear
(
r
.
y
,
0
,
1
),
o
.
setFullYear
(
r
.
y
,
0
,
"W"
in
r
?(
r
.
w
+
6
)
%
7
+
7
*
r
.
W
-
(
o
.
getDay
()
+
5
)
%
7
:
r
.
w
+
7
*
r
.
U
-
(
o
.
getDay
()
+
6
)
%
7
)):
o
.
setFullYear
(
r
.
y
,
r
.
m
,
r
.
d
),
o
.
setHours
(
r
.
H
+
(
0
|
r
.
Z
/
100
),
r
.
M
+
r
.
Z
%
100
,
r
.
S
,
r
.
L
),
i
?
o
.
_
:
o
},
t
.
toString
=
function
(){
return
n
},
t
}
function
e
(
n
,
t
,
e
,
r
){
for
(
var
u
,
i
,
o
,
a
=
0
,
c
=
t
.
length
,
l
=
e
.
length
;
c
>
a
;){
if
(
r
>=
l
)
return
-
1
;
if
(
u
=
t
.
charCodeAt
(
a
++
),
37
===
u
){
if
(
o
=
t
.
charAt
(
a
++
),
i
=
N
[
o
in
rc
?
t
.
charAt
(
a
++
):
o
],
!
i
||
(
r
=
i
(
n
,
e
,
r
))
<
0
)
return
-
1
}
else
if
(
u
!=
e
.
charCodeAt
(
r
++
))
return
-
1
}
return
r
}
function
r
(
n
,
t
,
e
){
b
.
lastIndex
=
0
;
var
r
=
b
.
exec
(
t
.
slice
(
e
));
return
r
?(
n
.
w
=
w
.
get
(
r
[
0
].
toLowerCase
()),
e
+
r
[
0
].
length
):
-
1
}
function
u
(
n
,
t
,
e
){
M
.
lastIndex
=
0
;
var
r
=
M
.
exec
(
t
.
slice
(
e
));
return
r
?(
n
.
w
=
_
.
get
(
r
[
0
].
toLowerCase
()),
e
+
r
[
0
].
length
):
-
1
}
function
i
(
n
,
t
,
e
){
E
.
lastIndex
=
0
;
var
r
=
E
.
exec
(
t
.
slice
(
e
));
return
r
?(
n
.
m
=
A
.
get
(
r
[
0
].
toLowerCase
()),
e
+
r
[
0
].
length
):
-
1
}
function
o
(
n
,
t
,
e
){
S
.
lastIndex
=
0
;
var
r
=
S
.
exec
(
t
.
slice
(
e
));
return
r
?(
n
.
m
=
k
.
get
(
r
[
0
].
toLowerCase
()),
e
+
r
[
0
].
length
):
-
1
}
function
a
(
n
,
t
,
r
){
return
e
(
n
,
C
.
c
.
toString
(),
t
,
r
)}
function
c
(
n
,
t
,
r
){
return
e
(
n
,
C
.
x
.
toString
(),
t
,
r
)}
function
l
(
n
,
t
,
r
){
return
e
(
n
,
C
.
X
.
toString
(),
t
,
r
)}
function
s
(
n
,
t
,
e
){
var
r
=
x
.
get
(
t
.
slice
(
e
,
e
+=
2
).
toLowerCase
());
return
null
==
r
?
-
1
:(
n
.
p
=
r
,
e
)}
var
f
=
n
.
dateTime
,
h
=
n
.
date
,
g
=
n
.
time
,
p
=
n
.
periods
,
v
=
n
.
days
,
d
=
n
.
shortDays
,
m
=
n
.
months
,
y
=
n
.
shortMonths
;
t
.
utc
=
function
(
n
){
function
e
(
n
){
try
{
tc
=
Dt
;
var
t
=
new
tc
;
return
t
.
_
=
n
,
r
(
t
)}
finally
{
tc
=
Date
}}
var
r
=
t
(
n
);
return
e
.
parse
=
function
(
n
){
try
{
tc
=
Dt
;
var
t
=
r
.
parse
(
n
);
return
t
&&
t
.
_
}
finally
{
tc
=
Date
}},
e
.
toString
=
r
.
toString
,
e
},
t
.
multi
=
t
.
utc
.
multi
=
ue
;
var
x
=
Vo
.
map
(),
M
=
Ft
(
v
),
_
=
Ot
(
v
),
b
=
Ft
(
d
),
w
=
Ot
(
d
),
S
=
Ft
(
m
),
k
=
Ot
(
m
),
E
=
Ft
(
y
),
A
=
Ot
(
y
);
p
.
forEach
(
function
(
n
,
t
){
x
.
set
(
n
.
toLowerCase
(),
t
)});
var
C
=
{
a
:
function
(
n
){
return
d
[
n
.
getDay
()]},
A
:
function
(
n
){
return
v
[
n
.
getDay
()]},
b
:
function
(
n
){
return
y
[
n
.
getMonth
()]},
B
:
function
(
n
){
return
m
[
n
.
getMonth
()]},
c
:
t
(
f
),
d
:
function
(
n
,
t
){
return
Ht
(
n
.
getDate
(),
t
,
2
)},
e
:
function
(
n
,
t
){
return
Ht
(
n
.
getDate
(),
t
,
2
)},
H
:
function
(
n
,
t
){
return
Ht
(
n
.
getHours
(),
t
,
2
)},
I
:
function
(
n
,
t
){
return
Ht
(
n
.
getHours
()
%
12
||
12
,
t
,
2
)},
j
:
function
(
n
,
t
){
return
Ht
(
1
+
nc
.
dayOfYear
(
n
),
t
,
3
)},
L
:
function
(
n
,
t
){
return
Ht
(
n
.
getMilliseconds
(),
t
,
3
)},
m
:
function
(
n
,
t
){
return
Ht
(
n
.
getMonth
()
+
1
,
t
,
2
)},
M
:
function
(
n
,
t
){
return
Ht
(
n
.
getMinutes
(),
t
,
2
)},
p
:
function
(
n
){
return
p
[
+
(
n
.
getHours
()
>=
12
)]},
S
:
function
(
n
,
t
){
return
Ht
(
n
.
getSeconds
(),
t
,
2
)},
U
:
function
(
n
,
t
){
return
Ht
(
nc
.
sundayOfYear
(
n
),
t
,
2
)},
w
:
function
(
n
){
return
n
.
getDay
()},
W
:
function
(
n
,
t
){
return
Ht
(
nc
.
mondayOfYear
(
n
),
t
,
2
)},
x
:
t
(
h
),
X
:
t
(
g
),
y
:
function
(
n
,
t
){
return
Ht
(
n
.
getFullYear
()
%
100
,
t
,
2
)},
Y
:
function
(
n
,
t
){
return
Ht
(
n
.
getFullYear
()
%
1
e4
,
t
,
4
)},
Z
:
ee
,
"%"
:
function
(){
return
"%"
}},
N
=
{
a
:
r
,
A
:
u
,
b
:
i
,
B
:
o
,
c
:
a
,
d
:
Jt
,
e
:
Jt
,
H
:
Kt
,
I
:
Kt
,
j
:
Gt
,
L
:
te
,
m
:
Wt
,
M
:
Qt
,
p
:
s
,
S
:
ne
,
U
:
It
,
w
:
Yt
,
W
:
Zt
,
x
:
c
,
X
:
l
,
y
:
Xt
,
Y
:
Vt
,
Z
:
$t
,
"%"
:
re
};
return
t
}
function
Ht
(
n
,
t
,
e
){
var
r
=
0
>
n
?
"-"
:
""
,
u
=
(
r
?
-
n
:
n
)
+
""
,
i
=
u
.
length
;
return
r
+
(
e
>
i
?
new
Array
(
e
-
i
+
1
).
join
(
t
)
+
u
:
u
)}
function
Ft
(
n
){
return
new
RegExp
(
"^(?:"
+
n
.
map
(
Vo
.
requote
).
join
(
"|"
)
+
")"
,
"i"
)}
function
Ot
(
n
){
for
(
var
t
=
new
o
,
e
=-
1
,
r
=
n
.
length
;
++
e
<
r
;)
t
.
set
(
n
[
e
].
toLowerCase
(),
e
);
return
t
}
function
Yt
(
n
,
t
,
e
){
uc
.
lastIndex
=
0
;
var
r
=
uc
.
exec
(
t
.
slice
(
e
,
e
+
1
));
return
r
?(
n
.
w
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
It
(
n
,
t
,
e
){
uc
.
lastIndex
=
0
;
var
r
=
uc
.
exec
(
t
.
slice
(
e
));
return
r
?(
n
.
U
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
Zt
(
n
,
t
,
e
){
uc
.
lastIndex
=
0
;
var
r
=
uc
.
exec
(
t
.
slice
(
e
));
return
r
?(
n
.
W
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
Vt
(
n
,
t
,
e
){
uc
.
lastIndex
=
0
;
var
r
=
uc
.
exec
(
t
.
slice
(
e
,
e
+
4
));
return
r
?(
n
.
y
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
Xt
(
n
,
t
,
e
){
uc
.
lastIndex
=
0
;
var
r
=
uc
.
exec
(
t
.
slice
(
e
,
e
+
2
));
return
r
?(
n
.
y
=
Bt
(
+
r
[
0
]),
e
+
r
[
0
].
length
):
-
1
}
function
$t
(
n
,
t
,
e
){
return
/^
[
+-
]\d{4}
$/
.
test
(
t
=
t
.
slice
(
e
,
e
+
5
))?(
n
.
Z
=-
t
,
e
+
5
):
-
1
}
function
Bt
(
n
){
return
n
+
(
n
>
68
?
1900
:
2
e3
)}
function
Wt
(
n
,
t
,
e
){
uc
.
lastIndex
=
0
;
var
r
=
uc
.
exec
(
t
.
slice
(
e
,
e
+
2
));
return
r
?(
n
.
m
=
r
[
0
]
-
1
,
e
+
r
[
0
].
length
):
-
1
}
function
Jt
(
n
,
t
,
e
){
uc
.
lastIndex
=
0
;
var
r
=
uc
.
exec
(
t
.
slice
(
e
,
e
+
2
));
return
r
?(
n
.
d
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
Gt
(
n
,
t
,
e
){
uc
.
lastIndex
=
0
;
var
r
=
uc
.
exec
(
t
.
slice
(
e
,
e
+
3
));
return
r
?(
n
.
j
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
Kt
(
n
,
t
,
e
){
uc
.
lastIndex
=
0
;
var
r
=
uc
.
exec
(
t
.
slice
(
e
,
e
+
2
));
return
r
?(
n
.
H
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
Qt
(
n
,
t
,
e
){
uc
.
lastIndex
=
0
;
var
r
=
uc
.
exec
(
t
.
slice
(
e
,
e
+
2
));
return
r
?(
n
.
M
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
ne
(
n
,
t
,
e
){
uc
.
lastIndex
=
0
;
var
r
=
uc
.
exec
(
t
.
slice
(
e
,
e
+
2
));
return
r
?(
n
.
S
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
te
(
n
,
t
,
e
){
uc
.
lastIndex
=
0
;
var
r
=
uc
.
exec
(
t
.
slice
(
e
,
e
+
3
));
return
r
?(
n
.
L
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
ee
(
n
){
var
t
=
n
.
getTimezoneOffset
(),
e
=
t
>
0
?
"-"
:
"+"
,
r
=
0
|
ia
(
t
)
/
60
,
u
=
ia
(
t
)
%
60
;
return
e
+
Ht
(
r
,
"0"
,
2
)
+
Ht
(
u
,
"0"
,
2
)}
function
re
(
n
,
t
,
e
){
ic
.
lastIndex
=
0
;
var
r
=
ic
.
exec
(
t
.
slice
(
e
,
e
+
1
));
return
r
?
e
+
r
[
0
].
length
:
-
1
}
function
ue
(
n
){
for
(
var
t
=
n
.
length
,
e
=-
1
;
++
e
<
t
;)
n
[
e
][
0
]
=
this
(
n
[
e
][
0
]);
return
function
(
t
){
for
(
var
e
=
0
,
r
=
n
[
e
];
!
r
[
1
](
t
);)
r
=
n
[
++
e
];
return
r
[
0
](
t
)}}
function
ie
(){}
function
oe
(
n
,
t
,
e
){
var
r
=
e
.
s
=
n
+
t
,
u
=
r
-
n
,
i
=
r
-
u
;
e
.
t
=
n
-
i
+
(
t
-
u
)}
function
ae
(
n
,
t
){
n
&&
lc
.
hasOwnProperty
(
n
.
type
)
&&
lc
[
n
.
type
](
n
,
t
)}
function
ce
(
n
,
t
,
e
){
var
r
,
u
=-
1
,
i
=
n
.
length
-
e
;
for
(
t
.
lineStart
();
++
u
<
i
;)
r
=
n
[
u
],
t
.
point
(
r
[
0
],
r
[
1
],
r
[
2
]);
t
.
lineEnd
()}
function
le
(
n
,
t
){
var
e
=-
1
,
r
=
n
.
length
;
for
(
t
.
polygonStart
();
++
e
<
r
;)
ce
(
n
[
e
],
t
,
1
);
t
.
polygonEnd
()}
function
se
(){
function
n
(
n
,
t
){
n
*=
Ca
,
t
=
t
*
Ca
/
2
+
wa
/
4
;
var
e
=
n
-
r
,
o
=
e
>=
0
?
1
:
-
1
,
a
=
o
*
e
,
c
=
Math
.
cos
(
t
),
l
=
Math
.
sin
(
t
),
s
=
i
*
l
,
f
=
u
*
c
+
s
*
Math
.
cos
(
a
),
h
=
s
*
o
*
Math
.
sin
(
a
);
fc
.
add
(
Math
.
atan2
(
h
,
f
)),
r
=
n
,
u
=
c
,
i
=
l
}
var
t
,
e
,
r
,
u
,
i
;
hc
.
point
=
function
(
o
,
a
){
hc
.
point
=
n
,
r
=
(
t
=
o
)
*
Ca
,
u
=
Math
.
cos
(
a
=
(
e
=
a
)
*
Ca
/
2
+
wa
/
4
),
i
=
Math
.
sin
(
a
)},
hc
.
lineEnd
=
function
(){
n
(
t
,
e
)}}
function
fe
(
n
){
var
t
=
n
[
0
],
e
=
n
[
1
],
r
=
Math
.
cos
(
e
);
return
[
r
*
Math
.
cos
(
t
),
r
*
Math
.
sin
(
t
),
Math
.
sin
(
e
)]}
function
he
(
n
,
t
){
return
n
[
0
]
*
t
[
0
]
+
n
[
1
]
*
t
[
1
]
+
n
[
2
]
*
t
[
2
]}
function
ge
(
n
,
t
){
return
[
n
[
1
]
*
t
[
2
]
-
n
[
2
]
*
t
[
1
],
n
[
2
]
*
t
[
0
]
-
n
[
0
]
*
t
[
2
],
n
[
0
]
*
t
[
1
]
-
n
[
1
]
*
t
[
0
]]}
function
pe
(
n
,
t
){
n
[
0
]
+=
t
[
0
],
n
[
1
]
+=
t
[
1
],
n
[
2
]
+=
t
[
2
]}
function
ve
(
n
,
t
){
return
[
n
[
0
]
*
t
,
n
[
1
]
*
t
,
n
[
2
]
*
t
]}
function
de
(
n
){
var
t
=
Math
.
sqrt
(
n
[
0
]
*
n
[
0
]
+
n
[
1
]
*
n
[
1
]
+
n
[
2
]
*
n
[
2
]);
n
[
0
]
/=
t
,
n
[
1
]
/=
t
,
n
[
2
]
/=
t
}
function
me
(
n
){
return
[
Math
.
atan2
(
n
[
1
],
n
[
0
]),
G
(
n
[
2
])]}
function
ye
(
n
,
t
){
return
ia
(
n
[
0
]
-
t
[
0
])
<
Ea
&&
ia
(
n
[
1
]
-
t
[
1
])
<
Ea
}
function
xe
(
n
,
t
){
n
*=
Ca
;
var
e
=
Math
.
cos
(
t
*=
Ca
);
Me
(
e
*
Math
.
cos
(
n
),
e
*
Math
.
sin
(
n
),
Math
.
sin
(
t
))}
function
Me
(
n
,
t
,
e
){
++
gc
,
vc
+=
(
n
-
vc
)
/
gc
,
dc
+=
(
t
-
dc
)
/
gc
,
mc
+=
(
e
-
mc
)
/
gc
}
function
_e
(){
function
n
(
n
,
u
){
n
*=
Ca
;
var
i
=
Math
.
cos
(
u
*=
Ca
),
o
=
i
*
Math
.
cos
(
n
),
a
=
i
*
Math
.
sin
(
n
),
c
=
Math
.
sin
(
u
),
l
=
Math
.
atan2
(
Math
.
sqrt
((
l
=
e
*
c
-
r
*
a
)
*
l
+
(
l
=
r
*
o
-
t
*
c
)
*
l
+
(
l
=
t
*
a
-
e
*
o
)
*
l
),
t
*
o
+
e
*
a
+
r
*
c
);
pc
+=
l
,
yc
+=
l
*
(
t
+
(
t
=
o
)),
xc
+=
l
*
(
e
+
(
e
=
a
)),
Mc
+=
l
*
(
r
+
(
r
=
c
)),
Me
(
t
,
e
,
r
)}
var
t
,
e
,
r
;
Sc
.
point
=
function
(
u
,
i
){
u
*=
Ca
;
var
o
=
Math
.
cos
(
i
*=
Ca
);
t
=
o
*
Math
.
cos
(
u
),
e
=
o
*
Math
.
sin
(
u
),
r
=
Math
.
sin
(
i
),
Sc
.
point
=
n
,
Me
(
t
,
e
,
r
)}}
function
be
(){
Sc
.
point
=
xe
}
function
we
(){
function
n
(
n
,
t
){
n
*=
Ca
;
var
e
=
Math
.
cos
(
t
*=
Ca
),
o
=
e
*
Math
.
cos
(
n
),
a
=
e
*
Math
.
sin
(
n
),
c
=
Math
.
sin
(
t
),
l
=
u
*
c
-
i
*
a
,
s
=
i
*
o
-
r
*
c
,
f
=
r
*
a
-
u
*
o
,
h
=
Math
.
sqrt
(
l
*
l
+
s
*
s
+
f
*
f
),
g
=
r
*
o
+
u
*
a
+
i
*
c
,
p
=
h
&&-
J
(
g
)
/
h
,
v
=
Math
.
atan2
(
h
,
g
);
_c
+=
p
*
l
,
bc
+=
p
*
s
,
wc
+=
p
*
f
,
pc
+=
v
,
yc
+=
v
*
(
r
+
(
r
=
o
)),
xc
+=
v
*
(
u
+
(
u
=
a
)),
Mc
+=
v
*
(
i
+
(
i
=
c
)),
Me
(
r
,
u
,
i
)}
var
t
,
e
,
r
,
u
,
i
;
Sc
.
point
=
function
(
o
,
a
){
t
=
o
,
e
=
a
,
Sc
.
point
=
n
,
o
*=
Ca
;
var
c
=
Math
.
cos
(
a
*=
Ca
);
r
=
c
*
Math
.
cos
(
o
),
u
=
c
*
Math
.
sin
(
o
),
i
=
Math
.
sin
(
a
),
Me
(
r
,
u
,
i
)},
Sc
.
lineEnd
=
function
(){
n
(
t
,
e
),
Sc
.
lineEnd
=
be
,
Sc
.
point
=
xe
}}
function
Se
(){
return
!
0
}
function
ke
(
n
,
t
,
e
,
r
,
u
){
var
i
=
[],
o
=
[];
if
(
n
.
forEach
(
function
(
n
){
if
(
!
((
t
=
n
.
length
-
1
)
<=
0
)){
var
t
,
e
=
n
[
0
],
r
=
n
[
t
];
if
(
ye
(
e
,
r
)){
u
.
lineStart
();
for
(
var
a
=
0
;
t
>
a
;
++
a
)
u
.
point
((
e
=
n
[
a
])[
0
],
e
[
1
]);
return
u
.
lineEnd
(),
void
0
}
var
c
=
new
Ae
(
e
,
n
,
null
,
!
0
),
l
=
new
Ae
(
e
,
null
,
c
,
!
1
);
c
.
o
=
l
,
i
.
push
(
c
),
o
.
push
(
l
),
c
=
new
Ae
(
r
,
n
,
null
,
!
1
),
l
=
new
Ae
(
r
,
null
,
c
,
!
0
),
c
.
o
=
l
,
i
.
push
(
c
),
o
.
push
(
l
)}}),
o
.
sort
(
t
),
Ee
(
i
),
Ee
(
o
),
i
.
length
){
for
(
var
a
=
0
,
c
=
e
,
l
=
o
.
length
;
l
>
a
;
++
a
)
o
[
a
].
e
=
c
=!
c
;
for
(
var
s
,
f
,
h
=
i
[
0
];;){
for
(
var
g
=
h
,
p
=!
0
;
g
.
v
;)
if
((
g
=
g
.
n
)
===
h
)
return
;
s
=
g
.
z
,
u
.
lineStart
();
do
{
if
(
g
.
v
=
g
.
o
.
v
=!
0
,
g
.
e
){
if
(
p
)
for
(
var
a
=
0
,
l
=
s
.
length
;
l
>
a
;
++
a
)
u
.
point
((
f
=
s
[
a
])[
0
],
f
[
1
]);
else
r
(
g
.
x
,
g
.
n
.
x
,
1
,
u
);
g
=
g
.
n
}
else
{
if
(
p
){
s
=
g
.
p
.
z
;
for
(
var
a
=
s
.
length
-
1
;
a
>=
0
;
--
a
)
u
.
point
((
f
=
s
[
a
])[
0
],
f
[
1
])}
else
r
(
g
.
x
,
g
.
p
.
x
,
-
1
,
u
);
g
=
g
.
p
}
g
=
g
.
o
,
s
=
g
.
z
,
p
=!
p
}
while
(
!
g
.
v
);
u
.
lineEnd
()}}}
function
Ee
(
n
){
if
(
t
=
n
.
length
){
for
(
var
t
,
e
,
r
=
0
,
u
=
n
[
0
];
++
r
<
t
;)
u
.
n
=
e
=
n
[
r
],
e
.
p
=
u
,
u
=
e
;
u
.
n
=
e
=
n
[
0
],
e
.
p
=
u
}}
function
Ae
(
n
,
t
,
e
,
r
){
this
.
x
=
n
,
this
.
z
=
t
,
this
.
o
=
e
,
this
.
e
=
r
,
this
.
v
=!
1
,
this
.
n
=
this
.
p
=
null
}
function
Ce
(
n
,
t
,
e
,
r
){
return
function
(
u
,
i
){
function
o
(
t
,
e
){
var
r
=
u
(
t
,
e
);
n
(
t
=
r
[
0
],
e
=
r
[
1
])
&&
i
.
point
(
t
,
e
)}
function
a
(
n
,
t
){
var
e
=
u
(
n
,
t
);
d
.
point
(
e
[
0
],
e
[
1
])}
function
c
(){
y
.
point
=
a
,
d
.
lineStart
()}
function
l
(){
y
.
point
=
o
,
d
.
lineEnd
()}
function
s
(
n
,
t
){
v
.
push
([
n
,
t
]);
var
e
=
u
(
n
,
t
);
M
.
point
(
e
[
0
],
e
[
1
])}
function
f
(){
M
.
lineStart
(),
v
=
[]}
function
h
(){
s
(
v
[
0
][
0
],
v
[
0
][
1
]),
M
.
lineEnd
();
var
n
,
t
=
M
.
clean
(),
e
=
x
.
buffer
(),
r
=
e
.
length
;
if
(
v
.
pop
(),
p
.
push
(
v
),
v
=
null
,
r
)
if
(
1
&
t
){
n
=
e
[
0
];
var
u
,
r
=
n
.
length
-
1
,
o
=-
1
;
if
(
r
>
0
){
for
(
_
||
(
i
.
polygonStart
(),
_
=!
0
),
i
.
lineStart
();
++
o
<
r
;)
i
.
point
((
u
=
n
[
o
])[
0
],
u
[
1
]);
i
.
lineEnd
()}}
else
r
>
1
&&
2
&
t
&&
e
.
push
(
e
.
pop
().
concat
(
e
.
shift
())),
g
.
push
(
e
.
filter
(
Ne
))}
var
g
,
p
,
v
,
d
=
t
(
i
),
m
=
u
.
invert
(
r
[
0
],
r
[
1
]),
y
=
{
point
:
o
,
lineStart
:
c
,
lineEnd
:
l
,
polygonStart
:
function
(){
y
.
point
=
s
,
y
.
lineStart
=
f
,
y
.
lineEnd
=
h
,
g
=
[],
p
=
[]},
polygonEnd
:
function
(){
y
.
point
=
o
,
y
.
lineStart
=
c
,
y
.
lineEnd
=
l
,
g
=
Vo
.
merge
(
g
);
var
n
=
De
(
m
,
p
);
g
.
length
?(
_
||
(
i
.
polygonStart
(),
_
=!
0
),
ke
(
g
,
Le
,
n
,
e
,
i
)):
n
&&
(
_
||
(
i
.
polygonStart
(),
_
=!
0
),
i
.
lineStart
(),
e
(
null
,
null
,
1
,
i
),
i
.
lineEnd
()),
_
&&
(
i
.
polygonEnd
(),
_
=!
1
),
g
=
p
=
null
},
sphere
:
function
(){
i
.
polygonStart
(),
i
.
lineStart
(),
e
(
null
,
null
,
1
,
i
),
i
.
lineEnd
(),
i
.
polygonEnd
()}},
x
=
ze
(),
M
=
t
(
x
),
_
=!
1
;
return
y
}}
function
Ne
(
n
){
return
n
.
length
>
1
}
function
ze
(){
var
n
,
t
=
[];
return
{
lineStart
:
function
(){
t
.
push
(
n
=
[])},
point
:
function
(
t
,
e
){
n
.
push
([
t
,
e
])},
lineEnd
:
v
,
buffer
:
function
(){
var
e
=
t
;
return
t
=
[],
n
=
null
,
e
},
rejoin
:
function
(){
t
.
length
>
1
&&
t
.
push
(
t
.
pop
().
concat
(
t
.
shift
()))}}}
function
Le
(
n
,
t
){
return
((
n
=
n
.
x
)[
0
]
<
0
?
n
[
1
]
-
ka
-
Ea
:
ka
-
n
[
1
])
-
((
t
=
t
.
x
)[
0
]
<
0
?
t
[
1
]
-
ka
-
Ea
:
ka
-
t
[
1
])}
function
Te
(
n
){
var
t
,
e
=
0
/
0
,
r
=
0
/
0
,
u
=
0
/
0
;
return
{
lineStart
:
function
(){
n
.
lineStart
(),
t
=
1
},
point
:
function
(
i
,
o
){
var
a
=
i
>
0
?
wa
:
-
wa
,
c
=
ia
(
i
-
e
);
ia
(
c
-
wa
)
<
Ea
?(
n
.
point
(
e
,
r
=
(
r
+
o
)
/
2
>
0
?
ka
:
-
ka
),
n
.
point
(
u
,
r
),
n
.
lineEnd
(),
n
.
lineStart
(),
n
.
point
(
a
,
r
),
n
.
point
(
i
,
r
),
t
=
0
):
u
!==
a
&&
c
>=
wa
&&
(
ia
(
e
-
u
)
<
Ea
&&
(
e
-=
u
*
Ea
),
ia
(
i
-
a
)
<
Ea
&&
(
i
-=
a
*
Ea
),
r
=
qe
(
e
,
r
,
i
,
o
),
n
.
point
(
u
,
r
),
n
.
lineEnd
(),
n
.
lineStart
(),
n
.
point
(
a
,
r
),
t
=
0
),
n
.
point
(
e
=
i
,
r
=
o
),
u
=
a
},
lineEnd
:
function
(){
n
.
lineEnd
(),
e
=
r
=
0
/
0
},
clean
:
function
(){
return
2
-
t
}}}
function
qe
(
n
,
t
,
e
,
r
){
var
u
,
i
,
o
=
Math
.
sin
(
n
-
e
);
return
ia
(
o
)
>
Ea
?
Math
.
atan
((
Math
.
sin
(
t
)
*
(
i
=
Math
.
cos
(
r
))
*
Math
.
sin
(
e
)
-
Math
.
sin
(
r
)
*
(
u
=
Math
.
cos
(
t
))
*
Math
.
sin
(
n
))
/
(
u
*
i
*
o
)):(
t
+
r
)
/
2
}
function
Re
(
n
,
t
,
e
,
r
){
var
u
;
if
(
null
==
n
)
u
=
e
*
ka
,
r
.
point
(
-
wa
,
u
),
r
.
point
(
0
,
u
),
r
.
point
(
wa
,
u
),
r
.
point
(
wa
,
0
),
r
.
point
(
wa
,
-
u
),
r
.
point
(
0
,
-
u
),
r
.
point
(
-
wa
,
-
u
),
r
.
point
(
-
wa
,
0
),
r
.
point
(
-
wa
,
u
);
else
if
(
ia
(
n
[
0
]
-
t
[
0
])
>
Ea
){
var
i
=
n
[
0
]
<
t
[
0
]?
wa
:
-
wa
;
u
=
e
*
i
/
2
,
r
.
point
(
-
i
,
u
),
r
.
point
(
0
,
u
),
r
.
point
(
i
,
u
)}
else
r
.
point
(
t
[
0
],
t
[
1
])}
function
De
(
n
,
t
){
var
e
=
n
[
0
],
r
=
n
[
1
],
u
=
[
Math
.
sin
(
e
),
-
Math
.
cos
(
e
),
0
],
i
=
0
,
o
=
0
;
fc
.
reset
();
for
(
var
a
=
0
,
c
=
t
.
length
;
c
>
a
;
++
a
){
var
l
=
t
[
a
],
s
=
l
.
length
;
if
(
s
)
for
(
var
f
=
l
[
0
],
h
=
f
[
0
],
g
=
f
[
1
]
/
2
+
wa
/
4
,
p
=
Math
.
sin
(
g
),
v
=
Math
.
cos
(
g
),
d
=
1
;;){
d
===
s
&&
(
d
=
0
),
n
=
l
[
d
];
var
m
=
n
[
0
],
y
=
n
[
1
]
/
2
+
wa
/
4
,
x
=
Math
.
sin
(
y
),
M
=
Math
.
cos
(
y
),
_
=
m
-
h
,
b
=
_
>=
0
?
1
:
-
1
,
w
=
b
*
_
,
S
=
w
>
wa
,
k
=
p
*
x
;
if
(
fc
.
add
(
Math
.
atan2
(
k
*
b
*
Math
.
sin
(
w
),
v
*
M
+
k
*
Math
.
cos
(
w
))),
i
+=
S
?
_
+
b
*
Sa
:
_
,
S
^
h
>=
e
^
m
>=
e
){
var
E
=
ge
(
fe
(
f
),
fe
(
n
));
de
(
E
);
var
A
=
ge
(
u
,
E
);
de
(
A
);
var
C
=
(
S
^
_
>=
0
?
-
1
:
1
)
*
G
(
A
[
2
]);(
r
>
C
||
r
===
C
&&
(
E
[
0
]
||
E
[
1
]))
&&
(
o
+=
S
^
_
>=
0
?
1
:
-
1
)}
if
(
!
d
++
)
break
;
h
=
m
,
p
=
x
,
v
=
M
,
f
=
n
}}
return
(
-
Ea
>
i
||
Ea
>
i
&&
0
>
fc
)
^
1
&
o
}
function
Pe
(
n
){
function
t
(
n
,
t
){
return
Math
.
cos
(
n
)
*
Math
.
cos
(
t
)
>
i
}
function
e
(
n
){
var
e
,
i
,
c
,
l
,
s
;
return
{
lineStart
:
function
(){
l
=
c
=!
1
,
s
=
1
},
point
:
function
(
f
,
h
){
var
g
,
p
=
[
f
,
h
],
v
=
t
(
f
,
h
),
d
=
o
?
v
?
0
:
u
(
f
,
h
):
v
?
u
(
f
+
(
0
>
f
?
wa
:
-
wa
),
h
):
0
;
if
(
!
e
&&
(
l
=
c
=
v
)
&&
n
.
lineStart
(),
v
!==
c
&&
(
g
=
r
(
e
,
p
),(
ye
(
e
,
g
)
||
ye
(
p
,
g
))
&&
(
p
[
0
]
+=
Ea
,
p
[
1
]
+=
Ea
,
v
=
t
(
p
[
0
],
p
[
1
]))),
v
!==
c
)
s
=
0
,
v
?(
n
.
lineStart
(),
g
=
r
(
p
,
e
),
n
.
point
(
g
[
0
],
g
[
1
])):(
g
=
r
(
e
,
p
),
n
.
point
(
g
[
0
],
g
[
1
]),
n
.
lineEnd
()),
e
=
g
;
else
if
(
a
&&
e
&&
o
^
v
){
var
m
;
d
&
i
||!
(
m
=
r
(
p
,
e
,
!
0
))
||
(
s
=
0
,
o
?(
n
.
lineStart
(),
n
.
point
(
m
[
0
][
0
],
m
[
0
][
1
]),
n
.
point
(
m
[
1
][
0
],
m
[
1
][
1
]),
n
.
lineEnd
()):(
n
.
point
(
m
[
1
][
0
],
m
[
1
][
1
]),
n
.
lineEnd
(),
n
.
lineStart
(),
n
.
point
(
m
[
0
][
0
],
m
[
0
][
1
])))}
!
v
||
e
&&
ye
(
e
,
p
)
||
n
.
point
(
p
[
0
],
p
[
1
]),
e
=
p
,
c
=
v
,
i
=
d
},
lineEnd
:
function
(){
c
&&
n
.
lineEnd
(),
e
=
null
},
clean
:
function
(){
return
s
|
(
l
&&
c
)
<<
1
}}}
function
r
(
n
,
t
,
e
){
var
r
=
fe
(
n
),
u
=
fe
(
t
),
o
=
[
1
,
0
,
0
],
a
=
ge
(
r
,
u
),
c
=
he
(
a
,
a
),
l
=
a
[
0
],
s
=
c
-
l
*
l
;
if
(
!
s
)
return
!
e
&&
n
;
var
f
=
i
*
c
/
s
,
h
=-
i
*
l
/
s
,
g
=
ge
(
o
,
a
),
p
=
ve
(
o
,
f
),
v
=
ve
(
a
,
h
);
pe
(
p
,
v
);
var
d
=
g
,
m
=
he
(
p
,
d
),
y
=
he
(
d
,
d
),
x
=
m
*
m
-
y
*
(
he
(
p
,
p
)
-
1
);
if
(
!
(
0
>
x
)){
var
M
=
Math
.
sqrt
(
x
),
_
=
ve
(
d
,(
-
m
-
M
)
/
y
);
if
(
pe
(
_
,
p
),
_
=
me
(
_
),
!
e
)
return
_
;
var
b
,
w
=
n
[
0
],
S
=
t
[
0
],
k
=
n
[
1
],
E
=
t
[
1
];
w
>
S
&&
(
b
=
w
,
w
=
S
,
S
=
b
);
var
A
=
S
-
w
,
C
=
ia
(
A
-
wa
)
<
Ea
,
N
=
C
||
Ea
>
A
;
if
(
!
C
&&
k
>
E
&&
(
b
=
k
,
k
=
E
,
E
=
b
),
N
?
C
?
k
+
E
>
0
^
_
[
1
]
<
(
ia
(
_
[
0
]
-
w
)
<
Ea
?
k
:
E
):
k
<=
_
[
1
]
&&
_
[
1
]
<=
E
:
A
>
wa
^
(
w
<=
_
[
0
]
&&
_
[
0
]
<=
S
)){
var
z
=
ve
(
d
,(
-
m
+
M
)
/
y
);
return
pe
(
z
,
p
),[
_
,
me
(
z
)]}}}
function
u
(
t
,
e
){
var
r
=
o
?
n
:
wa
-
n
,
u
=
0
;
return
-
r
>
t
?
u
|=
1
:
t
>
r
&&
(
u
|=
2
),
-
r
>
e
?
u
|=
4
:
e
>
r
&&
(
u
|=
8
),
u
}
var
i
=
Math
.
cos
(
n
),
o
=
i
>
0
,
a
=
ia
(
i
)
>
Ea
,
c
=
sr
(
n
,
6
*
Ca
);
return
Ce
(
t
,
e
,
c
,
o
?[
0
,
-
n
]:[
-
wa
,
n
-
wa
])}
function
Ue
(
n
,
t
,
e
,
r
){
return
function
(
u
){
var
i
,
o
=
u
.
a
,
a
=
u
.
b
,
c
=
o
.
x
,
l
=
o
.
y
,
s
=
a
.
x
,
f
=
a
.
y
,
h
=
0
,
g
=
1
,
p
=
s
-
c
,
v
=
f
-
l
;
if
(
i
=
n
-
c
,
p
||!
(
i
>
0
)){
if
(
i
/=
p
,
0
>
p
){
if
(
h
>
i
)
return
;
g
>
i
&&
(
g
=
i
)}
else
if
(
p
>
0
){
if
(
i
>
g
)
return
;
i
>
h
&&
(
h
=
i
)}
if
(
i
=
e
-
c
,
p
||!
(
0
>
i
)){
if
(
i
/=
p
,
0
>
p
){
if
(
i
>
g
)
return
;
i
>
h
&&
(
h
=
i
)}
else
if
(
p
>
0
){
if
(
h
>
i
)
return
;
g
>
i
&&
(
g
=
i
)}
if
(
i
=
t
-
l
,
v
||!
(
i
>
0
)){
if
(
i
/=
v
,
0
>
v
){
if
(
h
>
i
)
return
;
g
>
i
&&
(
g
=
i
)}
else
if
(
v
>
0
){
if
(
i
>
g
)
return
;
i
>
h
&&
(
h
=
i
)}
if
(
i
=
r
-
l
,
v
||!
(
0
>
i
)){
if
(
i
/=
v
,
0
>
v
){
if
(
i
>
g
)
return
;
i
>
h
&&
(
h
=
i
)}
else
if
(
v
>
0
){
if
(
h
>
i
)
return
;
g
>
i
&&
(
g
=
i
)}
return
h
>
0
&&
(
u
.
a
=
{
x
:
c
+
h
*
p
,
y
:
l
+
h
*
v
}),
1
>
g
&&
(
u
.
b
=
{
x
:
c
+
g
*
p
,
y
:
l
+
g
*
v
}),
u
}}}}}}
function
je
(
n
,
t
,
e
,
r
){
function
u
(
r
,
u
){
return
ia
(
r
[
0
]
-
n
)
<
Ea
?
u
>
0
?
0
:
3
:
ia
(
r
[
0
]
-
e
)
<
Ea
?
u
>
0
?
2
:
1
:
ia
(
r
[
1
]
-
t
)
<
Ea
?
u
>
0
?
1
:
0
:
u
>
0
?
3
:
2
}
function
i
(
n
,
t
){
return
o
(
n
.
x
,
t
.
x
)}
function
o
(
n
,
t
){
var
e
=
u
(
n
,
1
),
r
=
u
(
t
,
1
);
return
e
!==
r
?
e
-
r
:
0
===
e
?
t
[
1
]
-
n
[
1
]:
1
===
e
?
n
[
0
]
-
t
[
0
]:
2
===
e
?
n
[
1
]
-
t
[
1
]:
t
[
0
]
-
n
[
0
]}
return
function
(
a
){
function
c
(
n
){
for
(
var
t
=
0
,
e
=
d
.
length
,
r
=
n
[
1
],
u
=
0
;
e
>
u
;
++
u
)
for
(
var
i
,
o
=
1
,
a
=
d
[
u
],
c
=
a
.
length
,
l
=
a
[
0
];
c
>
o
;
++
o
)
i
=
a
[
o
],
l
[
1
]
<=
r
?
i
[
1
]
>
r
&&
W
(
l
,
i
,
n
)
>
0
&&++
t
:
i
[
1
]
<=
r
&&
W
(
l
,
i
,
n
)
<
0
&&--
t
,
l
=
i
;
return
0
!==
t
}
function
l
(
i
,
a
,
c
,
l
){
var
s
=
0
,
f
=
0
;
if
(
null
==
i
||
(
s
=
u
(
i
,
c
))
!==
(
f
=
u
(
a
,
c
))
||
o
(
i
,
a
)
<
0
^
c
>
0
){
do
l
.
point
(
0
===
s
||
3
===
s
?
n
:
e
,
s
>
1
?
r
:
t
);
while
((
s
=
(
s
+
c
+
4
)
%
4
)
!==
f
)}
else
l
.
point
(
a
[
0
],
a
[
1
])}
function
s
(
u
,
i
){
return
u
>=
n
&&
e
>=
u
&&
i
>=
t
&&
r
>=
i
}
function
f
(
n
,
t
){
s
(
n
,
t
)
&&
a
.
point
(
n
,
t
)}
function
h
(){
N
.
point
=
p
,
d
&&
d
.
push
(
m
=
[]),
S
=!
0
,
w
=!
1
,
_
=
b
=
0
/
0
}
function
g
(){
v
&&
(
p
(
y
,
x
),
M
&&
w
&&
A
.
rejoin
(),
v
.
push
(
A
.
buffer
())),
N
.
point
=
f
,
w
&&
a
.
lineEnd
()}
function
p
(
n
,
t
){
n
=
Math
.
max
(
-
Ec
,
Math
.
min
(
Ec
,
n
)),
t
=
Math
.
max
(
-
Ec
,
Math
.
min
(
Ec
,
t
));
var
e
=
s
(
n
,
t
);
if
(
d
&&
m
.
push
([
n
,
t
]),
S
)
y
=
n
,
x
=
t
,
M
=
e
,
S
=!
1
,
e
&&
(
a
.
lineStart
(),
a
.
point
(
n
,
t
));
else
if
(
e
&&
w
)
a
.
point
(
n
,
t
);
else
{
var
r
=
{
a
:{
x
:
_
,
y
:
b
},
b
:{
x
:
n
,
y
:
t
}};
C
(
r
)?(
w
||
(
a
.
lineStart
(),
a
.
point
(
r
.
a
.
x
,
r
.
a
.
y
)),
a
.
point
(
r
.
b
.
x
,
r
.
b
.
y
),
e
||
a
.
lineEnd
(),
k
=!
1
):
e
&&
(
a
.
lineStart
(),
a
.
point
(
n
,
t
),
k
=!
1
)}
_
=
n
,
b
=
t
,
w
=
e
}
var
v
,
d
,
m
,
y
,
x
,
M
,
_
,
b
,
w
,
S
,
k
,
E
=
a
,
A
=
ze
(),
C
=
Ue
(
n
,
t
,
e
,
r
),
N
=
{
point
:
f
,
lineStart
:
h
,
lineEnd
:
g
,
polygonStart
:
function
(){
a
=
A
,
v
=
[],
d
=
[],
k
=!
0
},
polygonEnd
:
function
(){
a
=
E
,
v
=
Vo
.
merge
(
v
);
var
t
=
c
([
n
,
r
]),
e
=
k
&&
t
,
u
=
v
.
length
;(
e
||
u
)
&&
(
a
.
polygonStart
(),
e
&&
(
a
.
lineStart
(),
l
(
null
,
null
,
1
,
a
),
a
.
lineEnd
()),
u
&&
ke
(
v
,
i
,
t
,
l
,
a
),
a
.
polygonEnd
()),
v
=
d
=
m
=
null
}};
return
N
}}
function
He
(
n
,
t
){
function
e
(
e
,
r
){
return
e
=
n
(
e
,
r
),
t
(
e
[
0
],
e
[
1
])}
return
n
.
invert
&&
t
.
invert
&&
(
e
.
invert
=
function
(
e
,
r
){
return
e
=
t
.
invert
(
e
,
r
),
e
&&
n
.
invert
(
e
[
0
],
e
[
1
])}),
e
}
function
Fe
(
n
){
var
t
=
0
,
e
=
wa
/
3
,
r
=
er
(
n
),
u
=
r
(
t
,
e
);
return
u
.
parallels
=
function
(
n
){
return
arguments
.
length
?
r
(
t
=
n
[
0
]
*
wa
/
180
,
e
=
n
[
1
]
*
wa
/
180
):[
180
*
(
t
/
wa
),
180
*
(
e
/
wa
)]},
u
}
function
Oe
(
n
,
t
){
function
e
(
n
,
t
){
var
e
=
Math
.
sqrt
(
i
-
2
*
u
*
Math
.
sin
(
t
))
/
u
;
return
[
e
*
Math
.
sin
(
n
*=
u
),
o
-
e
*
Math
.
cos
(
n
)]}
var
r
=
Math
.
sin
(
n
),
u
=
(
r
+
Math
.
sin
(
t
))
/
2
,
i
=
1
+
r
*
(
2
*
u
-
r
),
o
=
Math
.
sqrt
(
i
)
/
u
;
return
e
.
invert
=
function
(
n
,
t
){
var
e
=
o
-
t
;
return
[
Math
.
atan2
(
n
,
e
)
/
u
,
G
((
i
-
(
n
*
n
+
e
*
e
)
*
u
*
u
)
/
(
2
*
u
))]},
e
}
function
Ye
(){
function
n
(
n
,
t
){
Cc
+=
u
*
n
-
r
*
t
,
r
=
n
,
u
=
t
}
var
t
,
e
,
r
,
u
;
qc
.
point
=
function
(
i
,
o
){
qc
.
point
=
n
,
t
=
r
=
i
,
e
=
u
=
o
},
qc
.
lineEnd
=
function
(){
n
(
t
,
e
)}}
function
Ie
(
n
,
t
){
Nc
>
n
&&
(
Nc
=
n
),
n
>
Lc
&&
(
Lc
=
n
),
zc
>
t
&&
(
zc
=
t
),
t
>
Tc
&&
(
Tc
=
t
)}
function
Ze
(){
function
n
(
n
,
t
){
o
.
push
(
"M"
,
n
,
","
,
t
,
i
)}
function
t
(
n
,
t
){
o
.
push
(
"M"
,
n
,
","
,
t
),
a
.
point
=
e
}
function
e
(
n
,
t
){
o
.
push
(
"L"
,
n
,
","
,
t
)}
function
r
(){
a
.
point
=
n
}
function
u
(){
o
.
push
(
"Z"
)}
var
i
=
Ve
(
4.5
),
o
=
[],
a
=
{
point
:
n
,
lineStart
:
function
(){
a
.
point
=
t
},
lineEnd
:
r
,
polygonStart
:
function
(){
a
.
lineEnd
=
u
},
polygonEnd
:
function
(){
a
.
lineEnd
=
r
,
a
.
point
=
n
},
pointRadius
:
function
(
n
){
return
i
=
Ve
(
n
),
a
},
result
:
function
(){
if
(
o
.
length
){
var
n
=
o
.
join
(
""
);
return
o
=
[],
n
}}};
return
a
}
function
Ve
(
n
){
return
"m0,"
+
n
+
"a"
+
n
+
","
+
n
+
" 0 1,1 0,"
+-
2
*
n
+
"a"
+
n
+
","
+
n
+
" 0 1,1 0,"
+
2
*
n
+
"z"
}
function
Xe
(
n
,
t
){
vc
+=
n
,
dc
+=
t
,
++
mc
}
function
$e
(){
function
n
(
n
,
r
){
var
u
=
n
-
t
,
i
=
r
-
e
,
o
=
Math
.
sqrt
(
u
*
u
+
i
*
i
);
yc
+=
o
*
(
t
+
n
)
/
2
,
xc
+=
o
*
(
e
+
r
)
/
2
,
Mc
+=
o
,
Xe
(
t
=
n
,
e
=
r
)}
var
t
,
e
;
Dc
.
point
=
function
(
r
,
u
){
Dc
.
point
=
n
,
Xe
(
t
=
r
,
e
=
u
)}}
function
Be
(){
Dc
.
point
=
Xe
}
function
We
(){
function
n
(
n
,
t
){
var
e
=
n
-
r
,
i
=
t
-
u
,
o
=
Math
.
sqrt
(
e
*
e
+
i
*
i
);
yc
+=
o
*
(
r
+
n
)
/
2
,
xc
+=
o
*
(
u
+
t
)
/
2
,
Mc
+=
o
,
o
=
u
*
n
-
r
*
t
,
_c
+=
o
*
(
r
+
n
),
bc
+=
o
*
(
u
+
t
),
wc
+=
3
*
o
,
Xe
(
r
=
n
,
u
=
t
)}
var
t
,
e
,
r
,
u
;
Dc
.
point
=
function
(
i
,
o
){
Dc
.
point
=
n
,
Xe
(
t
=
r
=
i
,
e
=
u
=
o
)},
Dc
.
lineEnd
=
function
(){
n
(
t
,
e
)}}
function
Je
(
n
){
function
t
(
t
,
e
){
n
.
moveTo
(
t
,
e
),
n
.
arc
(
t
,
e
,
o
,
0
,
Sa
)}
function
e
(
t
,
e
){
n
.
moveTo
(
t
,
e
),
a
.
point
=
r
}
function
r
(
t
,
e
){
n
.
lineTo
(
t
,
e
)}
function
u
(){
a
.
point
=
t
}
function
i
(){
n
.
closePath
()}
var
o
=
4.5
,
a
=
{
point
:
t
,
lineStart
:
function
(){
a
.
point
=
e
},
lineEnd
:
u
,
polygonStart
:
function
(){
a
.
lineEnd
=
i
},
polygonEnd
:
function
(){
a
.
lineEnd
=
u
,
a
.
point
=
t
},
pointRadius
:
function
(
n
){
return
o
=
n
,
a
},
result
:
v
};
return
a
}
function
Ge
(
n
){
function
t
(
n
){
return
(
a
?
r
:
e
)(
n
)}
function
e
(
t
){
return
nr
(
t
,
function
(
e
,
r
){
e
=
n
(
e
,
r
),
t
.
point
(
e
[
0
],
e
[
1
])})}
function
r
(
t
){
function
e
(
e
,
r
){
e
=
n
(
e
,
r
),
t
.
point
(
e
[
0
],
e
[
1
])}
function
r
(){
x
=
0
/
0
,
S
.
point
=
i
,
t
.
lineStart
()}
function
i
(
e
,
r
){
var
i
=
fe
([
e
,
r
]),
o
=
n
(
e
,
r
);
u
(
x
,
M
,
y
,
_
,
b
,
w
,
x
=
o
[
0
],
M
=
o
[
1
],
y
=
e
,
_
=
i
[
0
],
b
=
i
[
1
],
w
=
i
[
2
],
a
,
t
),
t
.
point
(
x
,
M
)}
function
o
(){
S
.
point
=
e
,
t
.
lineEnd
()}
function
c
(){
r
(),
S
.
point
=
l
,
S
.
lineEnd
=
s
}
function
l
(
n
,
t
){
i
(
f
=
n
,
h
=
t
),
g
=
x
,
p
=
M
,
v
=
_
,
d
=
b
,
m
=
w
,
S
.
point
=
i
}
function
s
(){
u
(
x
,
M
,
y
,
_
,
b
,
w
,
g
,
p
,
f
,
v
,
d
,
m
,
a
,
t
),
S
.
lineEnd
=
o
,
o
()}
var
f
,
h
,
g
,
p
,
v
,
d
,
m
,
y
,
x
,
M
,
_
,
b
,
w
,
S
=
{
point
:
e
,
lineStart
:
r
,
lineEnd
:
o
,
polygonStart
:
function
(){
t
.
polygonStart
(),
S
.
lineStart
=
c
},
polygonEnd
:
function
(){
t
.
polygonEnd
(),
S
.
lineStart
=
r
}};
return
S
}
function
u
(
t
,
e
,
r
,
a
,
c
,
l
,
s
,
f
,
h
,
g
,
p
,
v
,
d
,
m
){
var
y
=
s
-
t
,
x
=
f
-
e
,
M
=
y
*
y
+
x
*
x
;
if
(
M
>
4
*
i
&&
d
--
){
var
_
=
a
+
g
,
b
=
c
+
p
,
w
=
l
+
v
,
S
=
Math
.
sqrt
(
_
*
_
+
b
*
b
+
w
*
w
),
k
=
Math
.
asin
(
w
/=
S
),
E
=
ia
(
ia
(
w
)
-
1
)
<
Ea
||
ia
(
r
-
h
)
<
Ea
?(
r
+
h
)
/
2
:
Math
.
atan2
(
b
,
_
),
A
=
n
(
E
,
k
),
C
=
A
[
0
],
N
=
A
[
1
],
z
=
C
-
t
,
L
=
N
-
e
,
T
=
x
*
z
-
y
*
L
;(
T
*
T
/
M
>
i
||
ia
((
y
*
z
+
x
*
L
)
/
M
-
.
5
)
>
.
3
||
o
>
a
*
g
+
c
*
p
+
l
*
v
)
&&
(
u
(
t
,
e
,
r
,
a
,
c
,
l
,
C
,
N
,
E
,
_
/=
S
,
b
/=
S
,
w
,
d
,
m
),
m
.
point
(
C
,
N
),
u
(
C
,
N
,
E
,
_
,
b
,
w
,
s
,
f
,
h
,
g
,
p
,
v
,
d
,
m
))}}
var
i
=
.
5
,
o
=
Math
.
cos
(
30
*
Ca
),
a
=
16
;
return
t
.
precision
=
function
(
n
){
return
arguments
.
length
?(
a
=
(
i
=
n
*
n
)
>
0
&&
16
,
t
):
Math
.
sqrt
(
i
)
},
t
}
function
Ke
(
n
){
var
t
=
Ge
(
function
(
t
,
e
){
return
n
([
t
*
Na
,
e
*
Na
])});
return
function
(
n
){
return
rr
(
t
(
n
))}}
function
Qe
(
n
){
this
.
stream
=
n
}
function
nr
(
n
,
t
){
return
{
point
:
t
,
sphere
:
function
(){
n
.
sphere
()},
lineStart
:
function
(){
n
.
lineStart
()},
lineEnd
:
function
(){
n
.
lineEnd
()},
polygonStart
:
function
(){
n
.
polygonStart
()},
polygonEnd
:
function
(){
n
.
polygonEnd
()}}}
function
tr
(
n
){
return
er
(
function
(){
return
n
})()}
function
er
(
n
){
function
t
(
n
){
return
n
=
a
(
n
[
0
]
*
Ca
,
n
[
1
]
*
Ca
),[
n
[
0
]
*
h
+
c
,
l
-
n
[
1
]
*
h
]}
function
e
(
n
){
return
n
=
a
.
invert
((
n
[
0
]
-
c
)
/
h
,(
l
-
n
[
1
])
/
h
),
n
&&
[
n
[
0
]
*
Na
,
n
[
1
]
*
Na
]}
function
r
(){
a
=
He
(
o
=
or
(
m
,
y
,
x
),
i
);
var
n
=
i
(
v
,
d
);
return
c
=
g
-
n
[
0
]
*
h
,
l
=
p
+
n
[
1
]
*
h
,
u
()}
function
u
(){
return
s
&&
(
s
.
valid
=!
1
,
s
=
null
),
t
}
var
i
,
o
,
a
,
c
,
l
,
s
,
f
=
Ge
(
function
(
n
,
t
){
return
n
=
i
(
n
,
t
),[
n
[
0
]
*
h
+
c
,
l
-
n
[
1
]
*
h
]}),
h
=
150
,
g
=
480
,
p
=
250
,
v
=
0
,
d
=
0
,
m
=
0
,
y
=
0
,
x
=
0
,
M
=
kc
,
_
=
wt
,
b
=
null
,
w
=
null
;
return
t
.
stream
=
function
(
n
){
return
s
&&
(
s
.
valid
=!
1
),
s
=
rr
(
M
(
o
,
f
(
_
(
n
)))),
s
.
valid
=!
0
,
s
},
t
.
clipAngle
=
function
(
n
){
return
arguments
.
length
?(
M
=
null
==
n
?(
b
=
n
,
kc
):
Pe
((
b
=+
n
)
*
Ca
),
u
()):
b
},
t
.
clipExtent
=
function
(
n
){
return
arguments
.
length
?(
w
=
n
,
_
=
n
?
je
(
n
[
0
][
0
],
n
[
0
][
1
],
n
[
1
][
0
],
n
[
1
][
1
]):
wt
,
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
*
Ca
,
d
=
n
[
1
]
%
360
*
Ca
,
r
()):[
v
*
Na
,
d
*
Na
]},
t
.
rotate
=
function
(
n
){
return
arguments
.
length
?(
m
=
n
[
0
]
%
360
*
Ca
,
y
=
n
[
1
]
%
360
*
Ca
,
x
=
n
.
length
>
2
?
n
[
2
]
%
360
*
Ca
:
0
,
r
()):[
m
*
Na
,
y
*
Na
,
x
*
Na
]},
Vo
.
rebind
(
t
,
f
,
"precision"
),
function
(){
return
i
=
n
.
apply
(
this
,
arguments
),
t
.
invert
=
i
.
invert
&&
e
,
r
()}}
function
rr
(
n
){
return
nr
(
n
,
function
(
t
,
e
){
n
.
point
(
t
*
Ca
,
e
*
Ca
)})}
function
ur
(
n
,
t
){
return
[
n
,
t
]}
function
ir
(
n
,
t
){
return
[
n
>
wa
?
n
-
Sa
:
-
wa
>
n
?
n
+
Sa
:
n
,
t
]}
function
or
(
n
,
t
,
e
){
return
n
?
t
||
e
?
He
(
cr
(
n
),
lr
(
t
,
e
)):
cr
(
n
):
t
||
e
?
lr
(
t
,
e
):
ir
}
function
ar
(
n
){
return
function
(
t
,
e
){
return
t
+=
n
,[
t
>
wa
?
t
-
Sa
:
-
wa
>
t
?
t
+
Sa
:
t
,
e
]}}
function
cr
(
n
){
var
t
=
ar
(
n
);
return
t
.
invert
=
ar
(
-
n
),
t
}
function
lr
(
n
,
t
){
function
e
(
n
,
t
){
var
e
=
Math
.
cos
(
t
),
a
=
Math
.
cos
(
n
)
*
e
,
c
=
Math
.
sin
(
n
)
*
e
,
l
=
Math
.
sin
(
t
),
s
=
l
*
r
+
a
*
u
;
return
[
Math
.
atan2
(
c
*
i
-
s
*
o
,
a
*
r
-
l
*
u
),
G
(
s
*
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
,
l
=
Math
.
sin
(
t
),
s
=
l
*
i
-
c
*
o
;
return
[
Math
.
atan2
(
c
*
i
+
l
*
o
,
a
*
r
+
s
*
u
),
G
(
s
*
r
-
a
*
u
)]},
e
}
function
sr
(
n
,
t
){
var
e
=
Math
.
cos
(
n
),
r
=
Math
.
sin
(
n
);
return
function
(
u
,
i
,
o
,
a
){
var
c
=
o
*
t
;
null
!=
u
?(
u
=
fr
(
e
,
u
),
i
=
fr
(
e
,
i
),(
o
>
0
?
i
>
u
:
u
>
i
)
&&
(
u
+=
o
*
Sa
)):(
u
=
n
+
o
*
Sa
,
i
=
n
-
.
5
*
c
);
for
(
var
l
,
s
=
u
;
o
>
0
?
s
>
i
:
i
>
s
;
s
-=
c
)
a
.
point
((
l
=
me
([
e
,
-
r
*
Math
.
cos
(
s
),
-
r
*
Math
.
sin
(
s
)]))[
0
],
l
[
1
])}}
function
fr
(
n
,
t
){
var
e
=
fe
(
t
);
e
[
0
]
-=
n
,
de
(
e
);
var
r
=
J
(
-
e
[
1
]);
return
((
-
e
[
2
]
<
0
?
-
r
:
r
)
+
2
*
Math
.
PI
-
Ea
)
%
(
2
*
Math
.
PI
)}
function
hr
(
n
,
t
,
e
){
var
r
=
Vo
.
range
(
n
,
t
-
Ea
,
e
).
concat
(
t
);
return
function
(
n
){
return
r
.
map
(
function
(
t
){
return
[
n
,
t
]})}}
function
gr
(
n
,
t
,
e
){
var
r
=
Vo
.
range
(
n
,
t
-
Ea
,
e
).
concat
(
t
);
return
function
(
n
){
return
r
.
map
(
function
(
t
){
return
[
t
,
n
]})}}
function
pr
(
n
){
return
n
.
source
}
function
vr
(
n
){
return
n
.
target
}
function
dr
(
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
),
l
=
u
*
Math
.
sin
(
n
),
s
=
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
*
s
,
u
=
e
*
l
+
t
*
f
,
o
=
e
*
i
+
t
*
a
;
return
[
Math
.
atan2
(
u
,
r
)
*
Na
,
Math
.
atan2
(
o
,
Math
.
sqrt
(
r
*
r
+
u
*
u
))
*
Na
]}:
function
(){
return
[
n
*
Na
,
t
*
Na
]};
return
p
.
distance
=
h
,
p
}
function
mr
(){
function
n
(
n
,
u
){
var
i
=
Math
.
sin
(
u
*=
Ca
),
o
=
Math
.
cos
(
u
),
a
=
ia
((
n
*=
Ca
)
-
t
),
c
=
Math
.
cos
(
a
);
Pc
+=
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
;
Uc
.
point
=
function
(
u
,
i
){
t
=
u
*
Ca
,
e
=
Math
.
sin
(
i
*=
Ca
),
r
=
Math
.
cos
(
i
),
Uc
.
point
=
n
},
Uc
.
lineEnd
=
function
(){
Uc
.
point
=
Uc
.
lineEnd
=
v
}}
function
yr
(
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
xr
(
n
,
t
){
function
e
(
n
,
t
){
o
>
0
?
-
ka
+
Ea
>
t
&&
(
t
=-
ka
+
Ea
):
t
>
ka
-
Ea
&&
(
t
=
ka
-
Ea
);
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
(
wa
/
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
))
-
ka
]},
e
):
_r
}
function
Mr
(
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
ia
(
u
)
<
Ea
?
ur
:(
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
_r
(
n
,
t
){
return
[
n
,
Math
.
log
(
Math
.
tan
(
wa
/
4
+
t
/
2
))]}
function
br
(
n
){
var
t
,
e
=
tr
(
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
=
wa
*
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
wr
(
n
,
t
){
return
[
Math
.
log
(
Math
.
tan
(
wa
/
4
+
t
/
2
)),
-
n
]}
function
Sr
(
n
){
return
n
[
0
]}
function
kr
(
n
){
return
n
[
1
]}
function
Er
(
n
){
for
(
var
t
=
n
.
length
,
e
=
[
0
,
1
],
r
=
2
,
u
=
2
;
t
>
u
;
u
++
){
for
(;
r
>
1
&&
W
(
n
[
e
[
r
-
2
]],
n
[
e
[
r
-
1
]],
n
[
u
])
<=
0
;)
--
r
;
e
[
r
++
]
=
u
}
return
e
.
slice
(
0
,
r
)}
function
Ar
(
n
,
t
){
return
n
[
0
]
-
t
[
0
]
||
n
[
1
]
-
t
[
1
]}
function
Cr
(
n
,
t
,
e
){
return
(
e
[
0
]
-
t
[
0
])
*
(
n
[
1
]
-
t
[
1
])
<
(
e
[
1
]
-
t
[
1
])
*
(
n
[
0
]
-
t
[
0
])}
function
Nr
(
n
,
t
,
e
,
r
){
var
u
=
n
[
0
],
i
=
e
[
0
],
o
=
t
[
0
]
-
u
,
a
=
r
[
0
]
-
i
,
c
=
n
[
1
],
l
=
e
[
1
],
s
=
t
[
1
]
-
c
,
f
=
r
[
1
]
-
l
,
h
=
(
a
*
(
c
-
l
)
-
f
*
(
u
-
i
))
/
(
f
*
o
-
a
*
s
);
return
[
u
+
h
*
o
,
c
+
h
*
s
]}
function
zr
(
n
){
var
t
=
n
[
0
],
e
=
n
[
n
.
length
-
1
];
return
!
(
t
[
0
]
-
e
[
0
]
||
t
[
1
]
-
e
[
1
])}
function
Lr
(){
Kr
(
this
),
this
.
edge
=
this
.
site
=
this
.
circle
=
null
}
function
Tr
(
n
){
var
t
=
Wc
.
pop
()
||
new
Lr
;
return
t
.
site
=
n
,
t
}
function
qr
(
n
){
Ir
(
n
),
Xc
.
remove
(
n
),
Wc
.
push
(
n
),
Kr
(
n
)}
function
Rr
(
n
){
var
t
=
n
.
circle
,
e
=
t
.
x
,
r
=
t
.
cy
,
u
=
{
x
:
e
,
y
:
r
},
i
=
n
.
P
,
o
=
n
.
N
,
a
=
[
n
];
qr
(
n
);
for
(
var
c
=
i
;
c
.
circle
&&
ia
(
e
-
c
.
circle
.
x
)
<
Ea
&&
ia
(
r
-
c
.
circle
.
cy
)
<
Ea
;)
i
=
c
.
P
,
a
.
unshift
(
c
),
qr
(
c
),
c
=
i
;
a
.
unshift
(
c
),
Ir
(
c
);
for
(
var
l
=
o
;
l
.
circle
&&
ia
(
e
-
l
.
circle
.
x
)
<
Ea
&&
ia
(
r
-
l
.
circle
.
cy
)
<
Ea
;)
o
=
l
.
N
,
a
.
push
(
l
),
qr
(
l
),
l
=
o
;
a
.
push
(
l
),
Ir
(
l
);
var
s
,
f
=
a
.
length
;
for
(
s
=
1
;
f
>
s
;
++
s
)
l
=
a
[
s
],
c
=
a
[
s
-
1
],
Wr
(
l
.
edge
,
c
.
site
,
l
.
site
,
u
);
c
=
a
[
0
],
l
=
a
[
f
-
1
],
l
.
edge
=
$r
(
c
.
site
,
l
.
site
,
null
,
u
),
Yr
(
c
),
Yr
(
l
)}
function
Dr
(
n
){
for
(
var
t
,
e
,
r
,
u
,
i
=
n
.
x
,
o
=
n
.
y
,
a
=
Xc
.
_
;
a
;)
if
(
r
=
Pr
(
a
,
o
)
-
i
,
r
>
Ea
)
a
=
a
.
L
;
else
{
if
(
u
=
i
-
Ur
(
a
,
o
),
!
(
u
>
Ea
)){
r
>-
Ea
?(
t
=
a
.
P
,
e
=
a
):
u
>-
Ea
?(
t
=
a
,
e
=
a
.
N
):
t
=
e
=
a
;
break
}
if
(
!
a
.
R
){
t
=
a
;
break
}
a
=
a
.
R
}
var
c
=
Tr
(
n
);
if
(
Xc
.
insert
(
t
,
c
),
t
||
e
){
if
(
t
===
e
)
return
Ir
(
t
),
e
=
Tr
(
t
.
site
),
Xc
.
insert
(
c
,
e
),
c
.
edge
=
e
.
edge
=
$r
(
t
.
site
,
c
.
site
),
Yr
(
t
),
Yr
(
e
),
void
0
;
if
(
!
e
)
return
c
.
edge
=
$r
(
t
.
site
,
c
.
site
),
void
0
;
Ir
(
t
),
Ir
(
e
);
var
l
=
t
.
site
,
s
=
l
.
x
,
f
=
l
.
y
,
h
=
n
.
x
-
s
,
g
=
n
.
y
-
f
,
p
=
e
.
site
,
v
=
p
.
x
-
s
,
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
+
s
,
y
:(
h
*
x
-
v
*
y
)
/
m
+
f
};
Wr
(
e
.
edge
,
l
,
p
,
M
),
c
.
edge
=
$r
(
l
,
n
,
null
,
M
),
e
.
edge
=
$r
(
n
,
p
,
null
,
M
),
Yr
(
t
),
Yr
(
e
)}}
function
Pr
(
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
,
l
=
c
-
t
;
if
(
!
l
)
return
a
;
var
s
=
a
-
r
,
f
=
1
/
i
-
1
/
l
,
h
=
s
/
l
;
return
f
?(
-
h
+
Math
.
sqrt
(
h
*
h
-
2
*
f
*
(
s
*
s
/
(
-
2
*
l
)
-
c
+
l
/
2
+
u
-
i
/
2
)))
/
f
+
r
:(
r
+
a
)
/
2
}
function
Ur
(
n
,
t
){
var
e
=
n
.
N
;
if
(
e
)
return
Pr
(
e
,
t
);
var
r
=
n
.
site
;
return
r
.
y
===
t
?
r
.
x
:
1
/
0
}
function
jr
(
n
){
this
.
site
=
n
,
this
.
edges
=
[]}
function
Hr
(
n
){
for
(
var
t
,
e
,
r
,
u
,
i
,
o
,
a
,
c
,
l
,
s
,
f
=
n
[
0
][
0
],
h
=
n
[
1
][
0
],
g
=
n
[
0
][
1
],
p
=
n
[
1
][
1
],
v
=
Vc
,
d
=
v
.
length
;
d
--
;)
if
(
i
=
v
[
d
],
i
&&
i
.
prepare
())
for
(
a
=
i
.
edges
,
c
=
a
.
length
,
o
=
0
;
c
>
o
;)
s
=
a
[
o
].
end
(),
r
=
s
.
x
,
u
=
s
.
y
,
l
=
a
[
++
o
%
c
].
start
(),
t
=
l
.
x
,
e
=
l
.
y
,(
ia
(
r
-
t
)
>
Ea
||
ia
(
u
-
e
)
>
Ea
)
&&
(
a
.
splice
(
o
,
0
,
new
Jr
(
Br
(
i
.
site
,
s
,
ia
(
r
-
f
)
<
Ea
&&
p
-
u
>
Ea
?{
x
:
f
,
y
:
ia
(
t
-
f
)
<
Ea
?
e
:
p
}:
ia
(
u
-
p
)
<
Ea
&&
h
-
r
>
Ea
?{
x
:
ia
(
e
-
p
)
<
Ea
?
t
:
h
,
y
:
p
}:
ia
(
r
-
h
)
<
Ea
&&
u
-
g
>
Ea
?{
x
:
h
,
y
:
ia
(
t
-
h
)
<
Ea
?
e
:
g
}:
ia
(
u
-
g
)
<
Ea
&&
r
-
f
>
Ea
?{
x
:
ia
(
e
-
g
)
<
Ea
?
t
:
f
,
y
:
g
}:
null
),
i
.
site
,
null
)),
++
c
)}
function
Fr
(
n
,
t
){
return
t
.
angle
-
n
.
angle
}
function
Or
(){
Kr
(
this
),
this
.
x
=
this
.
y
=
this
.
arc
=
this
.
site
=
this
.
cy
=
null
}
function
Yr
(
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
,
l
=
r
.
y
-
a
,
s
=
i
.
x
-
o
,
f
=
i
.
y
-
a
,
h
=
2
*
(
c
*
f
-
l
*
s
);
if
(
!
(
h
>=-
Aa
)){
var
g
=
c
*
c
+
l
*
l
,
p
=
s
*
s
+
f
*
f
,
v
=
(
f
*
g
-
l
*
p
)
/
h
,
d
=
(
c
*
p
-
s
*
g
)
/
h
,
f
=
d
+
a
,
m
=
Jc
.
pop
()
||
new
Or
;
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
=
Bc
.
_
;
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
}
Bc
.
insert
(
y
,
m
),
y
||
(
$c
=
m
)}}}}
function
Ir
(
n
){
var
t
=
n
.
circle
;
t
&&
(
t
.
P
||
(
$c
=
t
.
N
),
Bc
.
remove
(
t
),
Jc
.
push
(
t
),
Kr
(
t
),
n
.
circle
=
null
)}
function
Zr
(
n
){
for
(
var
t
,
e
=
Zc
,
r
=
Ue
(
n
[
0
][
0
],
n
[
0
][
1
],
n
[
1
][
0
],
n
[
1
][
1
]),
u
=
e
.
length
;
u
--
;)
t
=
e
[
u
],(
!
Vr
(
t
,
n
)
||!
r
(
t
)
||
ia
(
t
.
a
.
x
-
t
.
b
.
x
)
<
Ea
&&
ia
(
t
.
a
.
y
-
t
.
b
.
y
)
<
Ea
)
&&
(
t
.
a
=
t
.
b
=
null
,
e
.
splice
(
u
,
1
))}
function
Vr
(
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
],
l
=
t
[
1
][
1
],
s
=
n
.
l
,
f
=
n
.
r
,
h
=
s
.
x
,
g
=
s
.
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
>=
l
)
return
}
else
i
=
{
x
:
d
,
y
:
c
};
e
=
{
x
:
d
,
y
:
l
}}
else
{
if
(
i
){
if
(
i
.
y
<
c
)
return
}
else
i
=
{
x
:
d
,
y
:
l
};
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
>=
l
)
return
}
else
i
=
{
x
:(
c
-
u
)
/
r
,
y
:
c
};
e
=
{
x
:(
l
-
u
)
/
r
,
y
:
l
}}
else
{
if
(
i
){
if
(
i
.
y
<
c
)
return
}
else
i
=
{
x
:(
l
-
u
)
/
r
,
y
:
l
};
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
Xr
(
n
,
t
){
this
.
l
=
n
,
this
.
r
=
t
,
this
.
a
=
this
.
b
=
null
}
function
$r
(
n
,
t
,
e
,
r
){
var
u
=
new
Xr
(
n
,
t
);
return
Zc
.
push
(
u
),
e
&&
Wr
(
u
,
n
,
t
,
e
),
r
&&
Wr
(
u
,
t
,
n
,
r
),
Vc
[
n
.
i
].
edges
.
push
(
new
Jr
(
u
,
n
,
t
)),
Vc
[
t
.
i
].
edges
.
push
(
new
Jr
(
u
,
t
,
n
)),
u
}
function
Br
(
n
,
t
,
e
){
var
r
=
new
Xr
(
n
,
null
);
return
r
.
a
=
t
,
r
.
b
=
e
,
Zc
.
push
(
r
),
r
}
function
Wr
(
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
Jr
(
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
Gr
(){
this
.
_
=
null
}
function
Kr
(
n
){
n
.
U
=
n
.
C
=
n
.
L
=
n
.
R
=
n
.
P
=
n
.
N
=
null
}
function
Qr
(
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
nu
(
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
tu
(
n
){
for
(;
n
.
L
;)
n
=
n
.
L
;
return
n
}
function
eu
(
n
,
t
){
var
e
,
r
,
u
,
i
=
n
.
sort
(
ru
).
pop
();
for
(
Zc
=
[],
Vc
=
new
Array
(
n
.
length
),
Xc
=
new
Gr
,
Bc
=
new
Gr
;;)
if
(
u
=
$c
,
i
&&
(
!
u
||
i
.
y
<
u
.
y
||
i
.
y
===
u
.
y
&&
i
.
x
<
u
.
x
))(
i
.
x
!==
e
||
i
.
y
!==
r
)
&&
(
Vc
[
i
.
i
]
=
new
jr
(
i
),
Dr
(
i
),
e
=
i
.
x
,
r
=
i
.
y
),
i
=
n
.
pop
();
else
{
if
(
!
u
)
break
;
Rr
(
u
.
arc
)}
t
&&
(
Zr
(
t
),
Hr
(
t
));
var
o
=
{
cells
:
Vc
,
edges
:
Zc
};
return
Xc
=
Bc
=
Zc
=
Vc
=
null
,
o
}
function
ru
(
n
,
t
){
return
t
.
y
-
n
.
y
||
t
.
x
-
n
.
x
}
function
uu
(
n
,
t
,
e
){
return
(
n
.
x
-
e
.
x
)
*
(
t
.
y
-
n
.
y
)
-
(
n
.
x
-
t
.
x
)
*
(
e
.
y
-
n
.
y
)}
function
iu
(
n
){
return
n
.
x
}
function
ou
(
n
){
return
n
.
y
}
function
au
(){
return
{
leaf
:
!
0
,
nodes
:[],
point
:
null
,
x
:
null
,
y
:
null
}}
function
cu
(
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
]
&&
cu
(
n
,
c
[
0
],
e
,
r
,
o
,
a
),
c
[
1
]
&&
cu
(
n
,
c
[
1
],
o
,
r
,
u
,
a
),
c
[
2
]
&&
cu
(
n
,
c
[
2
],
e
,
a
,
o
,
i
),
c
[
3
]
&&
cu
(
n
,
c
[
3
],
o
,
a
,
u
,
i
)}}
function
lu
(
n
,
t
){
n
=
Vo
.
rgb
(
n
),
t
=
Vo
.
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
"#"
+
dt
(
Math
.
round
(
e
+
i
*
n
))
+
dt
(
Math
.
round
(
r
+
o
*
n
))
+
dt
(
Math
.
round
(
u
+
a
*
n
))}}
function
su
(
n
,
t
){
var
e
,
r
=
{},
u
=
{};
for
(
e
in
n
)
e
in
t
?
r
[
e
]
=
gu
(
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
fu
(
n
,
t
){
return
t
-=
n
=+
n
,
function
(
e
){
return
n
+
t
*
e
}}
function
hu
(
n
,
t
){
var
e
,
r
,
u
,
i
=
Kc
.
lastIndex
=
Qc
.
lastIndex
=
0
,
o
=-
1
,
a
=
[],
c
=
[];
for
(
n
+=
""
,
t
+=
""
;(
e
=
Kc
.
exec
(
n
))
&&
(
r
=
Qc
.
exec
(
t
));)(
u
=
r
.
index
)
>
i
&&
(
u
=
t
.
slice
(
i
,
u
),
a
[
o
]?
a
[
o
]
+=
u
:
a
[
++
o
]
=
u
),(
e
=
e
[
0
])
===
(
r
=
r
[
0
])?
a
[
o
]?
a
[
o
]
+=
r
:
a
[
++
o
]
=
r
:(
a
[
++
o
]
=
null
,
c
.
push
({
i
:
o
,
x
:
fu
(
e
,
r
)})),
i
=
Qc
.
lastIndex
;
return
i
<
t
.
length
&&
(
u
=
t
.
slice
(
i
),
a
[
o
]?
a
[
o
]
+=
u
:
a
[
++
o
]
=
u
),
a
.
length
<
2
?
c
[
0
]?(
t
=
c
[
0
].
x
,
function
(
n
){
return
t
(
n
)
+
""
}):
function
(){
return
t
}:(
t
=
c
.
length
,
function
(
n
){
for
(
var
e
,
r
=
0
;
t
>
r
;
++
r
)
a
[(
e
=
c
[
r
]).
i
]
=
e
.
x
(
n
);
return
a
.
join
(
""
)})}
function
gu
(
n
,
t
){
for
(
var
e
,
r
=
Vo
.
interpolators
.
length
;
--
r
>=
0
&&!
(
e
=
Vo
.
interpolators
[
r
](
n
,
t
)););
return
e
}
function
pu
(
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
(
gu
(
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
vu
(
n
){
return
function
(
t
){
return
0
>=
t
?
0
:
t
>=
1
?
1
:
n
(
t
)}}
function
du
(
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
yu
(
n
){
return
n
*
n
}
function
xu
(
n
){
return
n
*
n
*
n
}
function
Mu
(
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
_u
(
n
){
return
function
(
t
){
return
Math
.
pow
(
t
,
n
)}}
function
bu
(
n
){
return
1
-
Math
.
cos
(
n
*
ka
)}
function
wu
(
n
){
return
Math
.
pow
(
2
,
10
*
(
n
-
1
))}
function
Su
(
n
){
return
1
-
Math
.
sqrt
(
1
-
n
*
n
)}
function
ku
(
n
,
t
){
var
e
;
return
arguments
.
length
<
2
&&
(
t
=
.
45
),
arguments
.
length
?
e
=
t
/
Sa
*
Math
.
asin
(
1
/
n
):(
n
=
1
,
e
=
t
/
4
),
function
(
r
){
return
1
+
n
*
Math
.
pow
(
2
,
-
10
*
r
)
*
Math
.
sin
((
r
-
e
)
*
Sa
/
t
)}}
function
Eu
(
n
){
return
n
||
(
n
=
1.70158
),
function
(
t
){
return
t
*
t
*
((
n
+
1
)
*
t
-
n
)}}
function
Au
(
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
Cu
(
n
,
t
){
n
=
Vo
.
hcl
(
n
),
t
=
Vo
.
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
ot
(
e
+
i
*
n
,
r
+
o
*
n
,
u
+
a
*
n
)
+
""
}}
function
Nu
(
n
,
t
){
n
=
Vo
.
hsl
(
n
),
t
=
Vo
.
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
ut
(
e
+
i
*
n
,
r
+
o
*
n
,
u
+
a
*
n
)
+
""
}}
function
zu
(
n
,
t
){
n
=
Vo
.
lab
(
n
),
t
=
Vo
.
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
ct
(
e
+
i
*
n
,
r
+
o
*
n
,
u
+
a
*
n
)
+
""
}}
function
Lu
(
n
,
t
){
return
t
-=
n
,
function
(
e
){
return
Math
.
round
(
n
+
t
*
e
)}}
function
Tu
(
n
){
var
t
=
[
n
.
a
,
n
.
b
],
e
=
[
n
.
c
,
n
.
d
],
r
=
Ru
(
t
),
u
=
qu
(
t
,
e
),
i
=
Ru
(
Du
(
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
]))
*
Na
,
this
.
translate
=
[
n
.
e
,
n
.
f
],
this
.
scale
=
[
r
,
i
],
this
.
skew
=
i
?
Math
.
atan2
(
u
,
i
)
*
Na
:
0
}
function
qu
(
n
,
t
){
return
n
[
0
]
*
t
[
0
]
+
n
[
1
]
*
t
[
1
]}
function
Ru
(
n
){
var
t
=
Math
.
sqrt
(
qu
(
n
,
n
));
return
t
&&
(
n
[
0
]
/=
t
,
n
[
1
]
/=
t
),
t
}
function
Du
(
n
,
t
,
e
){
return
n
[
0
]
+=
e
*
t
[
0
],
n
[
1
]
+=
e
*
t
[
1
],
n
}
function
Pu
(
n
,
t
){
var
e
,
r
=
[],
u
=
[],
i
=
Vo
.
transform
(
n
),
o
=
Vo
.
transform
(
t
),
a
=
i
.
translate
,
c
=
o
.
translate
,
l
=
i
.
rotate
,
s
=
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
:
fu
(
a
[
0
],
c
[
0
])},{
i
:
3
,
x
:
fu
(
a
[
1
],
c
[
1
])})):
c
[
0
]
||
c
[
1
]?
r
.
push
(
"translate("
+
c
+
")"
):
r
.
push
(
""
),
l
!=
s
?(
l
-
s
>
180
?
s
+=
360
:
s
-
l
>
180
&&
(
l
+=
360
),
u
.
push
({
i
:
r
.
push
(
r
.
pop
()
+
"rotate("
,
null
,
")"
)
-
2
,
x
:
fu
(
l
,
s
)})):
s
&&
r
.
push
(
r
.
pop
()
+
"rotate("
+
s
+
")"
),
f
!=
h
?
u
.
push
({
i
:
r
.
push
(
r
.
pop
()
+
"skewX("
,
null
,
")"
)
-
2
,
x
:
fu
(
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
:
fu
(
g
[
0
],
p
[
0
])},{
i
:
e
-
2
,
x
:
fu
(
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
Uu
(
n
,
t
){
return
t
=
t
-
(
n
=+
n
)?
1
/
(
t
-
n
):
0
,
function
(
e
){
return
(
e
-
n
)
*
t
}}
function
ju
(
n
,
t
){
return
t
=
t
-
(
n
=+
n
)?
1
/
(
t
-
n
):
0
,
function
(
e
){
return
Math
.
max
(
0
,
Math
.
min
(
1
,(
e
-
n
)
*
t
))}}
function
Hu
(
n
){
for
(
var
t
=
n
.
source
,
e
=
n
.
target
,
r
=
Ou
(
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
Fu
(
n
){
for
(
var
t
=
[],
e
=
n
.
parent
;
null
!=
e
;)
t
.
push
(
n
),
n
=
e
,
e
=
e
.
parent
;
return
t
.
push
(
n
),
t
}
function
Ou
(
n
,
t
){
if
(
n
===
t
)
return
n
;
for
(
var
e
=
Fu
(
n
),
r
=
Fu
(
t
),
u
=
e
.
pop
(),
i
=
r
.
pop
(),
o
=
null
;
u
===
i
;)
o
=
u
,
u
=
e
.
pop
(),
i
=
r
.
pop
();
return
o
}
function
Yu
(
n
){
n
.
fixed
|=
2
}
function
Iu
(
n
){
n
.
fixed
&=-
7
}
function
Zu
(
n
){
n
.
fixed
|=
4
,
n
.
px
=
n
.
x
,
n
.
py
=
n
.
y
}
function
Vu
(
n
){
n
.
fixed
&=-
5
}
function
Xu
(
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
&&
(
Xu
(
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
l
=
t
*
e
[
n
.
point
.
index
];
n
.
charge
+=
n
.
pointCharge
=
l
,
r
+=
l
*
n
.
point
.
x
,
u
+=
l
*
n
.
point
.
y
}
n
.
cx
=
r
/
n
.
charge
,
n
.
cy
=
u
/
n
.
charge
}
function
$u
(
n
,
t
){
return
Vo
.
rebind
(
n
,
t
,
"sort"
,
"children"
,
"value"
),
n
.
nodes
=
n
,
n
.
links
=
Qu
,
n
}
function
Bu
(
n
,
t
){
for
(
var
e
=
[
n
];
null
!=
(
n
=
e
.
pop
());)
if
(
t
(
n
),(
u
=
n
.
children
)
&&
(
r
=
u
.
length
))
for
(
var
r
,
u
;
--
r
>=
0
;)
e
.
push
(
u
[
r
])}
function
Wu
(
n
,
t
){
for
(
var
e
=
[
n
],
r
=
[];
null
!=
(
n
=
e
.
pop
());)
if
(
r
.
push
(
n
),(
i
=
n
.
children
)
&&
(
u
=
i
.
length
))
for
(
var
u
,
i
,
o
=-
1
;
++
o
<
u
;)
e
.
push
(
i
[
o
]);
for
(;
null
!=
(
n
=
r
.
pop
());)
t
(
n
)}
function
Ju
(
n
){
return
n
.
children
}
function
Gu
(
n
){
return
n
.
value
}
function
Ku
(
n
,
t
){
return
t
.
value
-
n
.
value
}
function
Qu
(
n
){
return
Vo
.
merge
(
n
.
map
(
function
(
n
){
return
(
n
.
children
||
[]).
map
(
function
(
t
){
return
{
source
:
n
,
target
:
t
}})}))}
function
ni
(
n
){
return
n
.
x
}
function
ti
(
n
){
return
n
.
y
}
function
ei
(
n
,
t
,
e
){
n
.
y0
=
t
,
n
.
y
=
e
}
function
ri
(
n
){
return
Vo
.
range
(
n
.
length
)}
function
ui
(
n
){
for
(
var
t
=-
1
,
e
=
n
[
0
].
length
,
r
=
[];
++
t
<
e
;)
r
[
t
]
=
0
;
return
r
}
function
ii
(
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
oi
(
n
){
return
n
.
reduce
(
ai
,
0
)}
function
ai
(
n
,
t
){
return
n
+
t
[
1
]}
function
ci
(
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
si
(
n
){
return
[
Vo
.
min
(
n
),
Vo
.
max
(
n
)]}
function
fi
(
n
,
t
){
return
n
.
value
-
t
.
value
}
function
hi
(
n
,
t
){
var
e
=
n
.
_pack_next
;
n
.
_pack_next
=
t
,
t
.
_pack_prev
=
n
,
t
.
_pack_next
=
e
,
e
.
_pack_prev
=
t
}
function
gi
(
n
,
t
){
n
.
_pack_next
=
t
,
t
.
_pack_prev
=
n
}
function
pi
(
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
vi
(
n
){
function
t
(
n
){
s
=
Math
.
min
(
n
.
x
-
n
.
r
,
s
),
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
)
&&
(
l
=
e
.
length
)){
var
e
,
r
,
u
,
i
,
o
,
a
,
c
,
l
,
s
=
1
/
0
,
f
=-
1
/
0
,
h
=
1
/
0
,
g
=-
1
/
0
;
if
(
e
.
forEach
(
di
),
r
=
e
[
0
],
r
.
x
=-
r
.
r
,
r
.
y
=
0
,
t
(
r
),
l
>
1
&&
(
u
=
e
[
1
],
u
.
x
=
u
.
r
,
u
.
y
=
0
,
t
(
u
),
l
>
2
))
for
(
i
=
e
[
2
],
xi
(
r
,
u
,
i
),
t
(
i
),
hi
(
r
,
i
),
r
.
_pack_prev
=
i
,
hi
(
i
,
u
),
u
=
r
.
_pack_next
,
o
=
3
;
l
>
o
;
o
++
){
xi
(
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
(
pi
(
a
,
i
)){
p
=
1
;
break
}
if
(
1
==
p
)
for
(
c
=
r
.
_pack_prev
;
c
!==
a
.
_pack_prev
&&!
pi
(
c
,
i
);
c
=
c
.
_pack_prev
,
d
++
);
p
?(
d
>
v
||
v
==
d
&&
u
.
r
<
r
.
r
?
gi
(
r
,
u
=
a
):
gi
(
r
=
c
,
u
),
o
--
):(
hi
(
r
,
i
),
u
=
i
,
t
(
i
))}
var
m
=
(
s
+
f
)
/
2
,
y
=
(
h
+
g
)
/
2
,
x
=
0
;
for
(
o
=
0
;
l
>
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
(
mi
)}}
function
di
(
n
){
n
.
_pack_next
=
n
.
_pack_prev
=
n
}
function
mi
(
n
){
delete
n
.
_pack_next
,
delete
n
.
_pack_prev
}
function
yi
(
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
;)
yi
(
u
[
i
],
t
,
e
,
r
)}
function
xi
(
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
),
l
=
Math
.
sqrt
(
Math
.
max
(
0
,
2
*
o
*
(
r
+
a
)
-
(
r
-=
a
)
*
r
-
o
*
o
))
/
(
2
*
a
);
e
.
x
=
n
.
x
+
c
*
u
+
l
*
i
,
e
.
y
=
n
.
y
+
c
*
i
-
l
*
u
}
else
e
.
x
=
n
.
x
+
r
,
e
.
y
=
n
.
y
}
function
Mi
(
n
,
t
){
return
n
.
parent
==
t
.
parent
?
1
:
2
}
function
_i
(
n
){
var
t
=
n
.
children
;
return
t
.
length
?
t
[
0
]:
n
.
t
}
function
bi
(
n
){
var
t
,
e
=
n
.
children
;
return
(
t
=
e
.
length
)?
e
[
t
-
1
]:
n
.
t
}
function
wi
(
n
,
t
,
e
){
var
r
=
e
/
(
t
.
i
-
n
.
i
);
t
.
c
-=
r
,
t
.
s
+=
e
,
n
.
c
+=
r
,
t
.
z
+=
e
,
t
.
m
+=
e
}
function
Si
(
n
){
for
(
var
t
,
e
=
0
,
r
=
0
,
u
=
n
.
children
,
i
=
u
.
length
;
--
i
>=
0
;)
t
=
u
[
i
],
t
.
z
+=
e
,
t
.
m
+=
e
,
e
+=
t
.
s
+
(
r
+=
t
.
c
)}
function
ki
(
n
,
t
,
e
){
return
n
.
a
.
parent
===
t
.
parent
?
n
.
a
:
e
}
function
Ei
(
n
){
return
1
+
Vo
.
max
(
n
,
function
(
n
){
return
n
.
y
})}
function
Ai
(
n
){
return
n
.
reduce
(
function
(
n
,
t
){
return
n
+
t
.
x
},
0
)
/
n
.
length
}
function
Ci
(
n
){
var
t
=
n
.
children
;
return
t
&&
t
.
length
?
Ci
(
t
[
0
]):
n
}
function
Ni
(
n
){
var
t
,
e
=
n
.
children
;
return
e
&&
(
t
=
e
.
length
)?
Ni
(
e
[
t
-
1
]):
n
}
function
zi
(
n
){
return
{
x
:
n
.
x
,
y
:
n
.
y
,
dx
:
n
.
dx
,
dy
:
n
.
dy
}}
function
Li
(
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
Ti
(
n
){
var
t
=
n
[
0
],
e
=
n
[
n
.
length
-
1
];
return
e
>
t
?[
t
,
e
]:[
e
,
t
]}
function
qi
(
n
){
return
n
.
rangeExtent
?
n
.
rangeExtent
():
Ti
(
n
.
range
())}
function
Ri
(
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
Di
(
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
Pi
(
n
){
return
n
?{
floor
:
function
(
t
){
return
Math
.
floor
(
t
/
n
)
*
n
},
ceil
:
function
(
t
){
return
Math
.
ceil
(
t
/
n
)
*
n
}}:
sl
}
function
Ui
(
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
=
Vo
.
bisect
(
n
,
t
,
1
,
a
)
-
1
;
return
i
[
e
](
u
[
e
](
t
))}}
function
ji
(
n
,
t
,
e
,
r
){
function
u
(){
var
u
=
Math
.
min
(
n
.
length
,
t
.
length
)
>
2
?
Ui
:
Ri
,
c
=
r
?
ju
:
Uu
;
return
o
=
u
(
n
,
t
,
c
,
e
),
a
=
u
(
t
,
n
,
c
,
gu
),
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
(
Lu
)},
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
Yi
(
n
,
t
)},
i
.
tickFormat
=
function
(
t
,
e
){
return
Ii
(
n
,
t
,
e
)},
i
.
nice
=
function
(
t
){
return
Fi
(
n
,
t
),
u
()},
i
.
copy
=
function
(){
return
ji
(
n
,
t
,
e
,
r
)},
u
()}
function
Hi
(
n
,
t
){
return
Vo
.
rebind
(
n
,
t
,
"range"
,
"rangeRound"
,
"interpolate"
,
"clamp"
)}
function
Fi
(
n
,
t
){
return
Di
(
n
,
Pi
(
Oi
(
n
,
t
)[
2
]))}
function
Oi
(
n
,
t
){
null
==
t
&&
(
t
=
10
);
var
e
=
Ti
(
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
Yi
(
n
,
t
){
return
Vo
.
range
.
apply
(
Vo
,
Oi
(
n
,
t
))}
function
Ii
(
n
,
t
,
e
){
var
r
=
Oi
(
n
,
t
);
if
(
e
){
var
u
=
Ka
.
exec
(
e
);
if
(
u
.
shift
(),
"s"
===
u
[
8
]){
var
i
=
Vo
.
formatPrefix
(
Math
.
max
(
ia
(
r
[
0
]),
ia
(
r
[
1
])));
return
u
[
7
]
||
(
u
[
7
]
=
"."
+
Zi
(
i
.
scale
(
r
[
2
]))),
u
[
8
]
=
"f"
,
e
=
Vo
.
format
(
u
.
join
(
""
)),
function
(
n
){
return
e
(
i
.
scale
(
n
))
+
i
.
symbol
}}
u
[
7
]
||
(
u
[
7
]
=
"."
+
Vi
(
u
[
8
],
r
)),
e
=
u
.
join
(
""
)}
else
e
=
",."
+
Zi
(
r
[
2
])
+
"f"
;
return
Vo
.
format
(
e
)}
function
Zi
(
n
){
return
-
Math
.
floor
(
Math
.
log
(
n
)
/
Math
.
LN10
+
.
01
)}
function
Vi
(
n
,
t
){
var
e
=
Zi
(
t
[
2
]);
return
n
in
fl
?
Math
.
abs
(
e
-
Zi
(
Math
.
max
(
ia
(
t
[
0
]),
ia
(
t
[
1
]))))
+
+
(
"e"
!==
n
):
e
-
2
*
(
"%"
===
n
)}
function
Xi
(
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
=
Di
(
r
.
map
(
u
),
e
?
Math
:
gl
);
return
n
.
domain
(
t
),
r
=
t
.
map
(
i
),
o
},
o
.
ticks
=
function
(){
var
n
=
Ti
(
r
),
o
=
[],
a
=
n
[
0
],
c
=
n
[
1
],
l
=
Math
.
floor
(
u
(
a
)),
s
=
Math
.
ceil
(
u
(
c
)),
f
=
t
%
1
?
2
:
t
;
if
(
isFinite
(
s
-
l
)){
if
(
e
){
for
(;
s
>
l
;
l
++
)
for
(
var
h
=
1
;
f
>
h
;
h
++
)
o
.
push
(
i
(
l
)
*
h
);
o
.
push
(
i
(
l
))}
else
for
(
o
.
push
(
i
(
l
));
l
++<
s
;)
for
(
var
h
=
f
-
1
;
h
>
0
;
h
--
)
o
.
push
(
i
(
l
)
*
h
);
for
(
l
=
0
;
o
[
l
]
<
a
;
l
++
);
for
(
s
=
o
.
length
;
o
[
s
-
1
]
>
c
;
s
--
);
o
=
o
.
slice
(
l
,
s
)}
return
o
},
o
.
tickFormat
=
function
(
n
,
t
){
if
(
!
arguments
.
length
)
return
hl
;
arguments
.
length
<
2
?
t
=
hl
:
"function"
!=
typeof
t
&&
(
t
=
Vo
.
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
Xi
(
n
.
copy
(),
t
,
e
,
r
)},
Hi
(
o
,
n
)}
function
$i
(
n
,
t
,
e
){
function
r
(
t
){
return
n
(
u
(
t
))}
var
u
=
Bi
(
t
),
i
=
Bi
(
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
Yi
(
e
,
n
)},
r
.
tickFormat
=
function
(
n
,
t
){
return
Ii
(
e
,
n
,
t
)},
r
.
nice
=
function
(
n
){
return
r
.
domain
(
Fi
(
e
,
n
))},
r
.
exponent
=
function
(
o
){
return
arguments
.
length
?(
u
=
Bi
(
t
=
o
),
i
=
Bi
(
1
/
t
),
n
.
domain
(
e
.
map
(
u
)),
r
):
t
},
r
.
copy
=
function
(){
return
$i
(
n
.
copy
(),
t
,
e
)},
Hi
(
r
,
n
)}
function
Bi
(
n
){
return
function
(
t
){
return
0
>
t
?
-
Math
.
pow
(
-
t
,
n
):
Math
.
pow
(
t
,
n
)}}
function
Wi
(
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
Vo
.
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
],
l
=
u
[
1
],
s
=
(
l
-
c
)
/
(
Math
.
max
(
1
,
n
.
length
-
1
)
+
o
);
return
i
=
r
(
n
.
length
<
2
?(
c
+
l
)
/
2
:
c
+
s
*
o
/
2
,
s
),
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
l
=
u
[
1
]
<
u
[
0
],
s
=
u
[
l
-
0
],
f
=
u
[
1
-
l
],
h
=
(
f
-
s
)
/
(
n
.
length
-
o
+
2
*
c
);
return
i
=
r
(
s
+
h
*
c
,
h
),
l
&&
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
l
=
u
[
1
]
<
u
[
0
],
s
=
u
[
l
-
0
],
f
=
u
[
1
-
l
],
h
=
Math
.
floor
((
f
-
s
)
/
(
n
.
length
-
o
+
2
*
c
)),
g
=
f
-
s
-
(
n
.
length
-
o
)
*
h
;
return
i
=
r
(
s
+
Math
.
round
(
g
/
2
),
h
),
l
&&
i
.
reverse
(),
a
=
Math
.
round
(
h
*
(
1
-
o
)),
t
=
{
t
:
"rangeRoundBands"
,
a
:
arguments
},
e
},
e
.
rangeBand
=
function
(){
return
a
},
e
.
rangeExtent
=
function
(){
return
Ti
(
t
.
a
[
0
])},
e
.
copy
=
function
(){
return
Wi
(
n
,
t
)},
e
.
domain
(
n
)}
function
Ji
(
e
,
r
){
function
u
(){
var
n
=
0
,
t
=
r
.
length
;
for
(
o
=
[];
++
n
<
t
;)
o
[
n
-
1
]
=
Vo
.
quantile
(
e
,
n
/
t
);
return
i
}
function
i
(
n
){
return
isNaN
(
n
=+
n
)?
void
0
:
r
[
Vo
.
bisect
(
o
,
n
)]}
var
o
;
return
i
.
domain
=
function
(
r
){
return
arguments
.
length
?(
e
=
r
.
filter
(
t
).
sort
(
n
),
u
()):
e
},
i
.
range
=
function
(
n
){
return
arguments
.
length
?(
r
=
n
,
u
()):
r
},
i
.
quantiles
=
function
(){
return
o
},
i
.
invertExtent
=
function
(
n
){
return
n
=
r
.
indexOf
(
n
),
0
>
n
?[
0
/
0
,
0
/
0
]:[
n
>
0
?
o
[
n
-
1
]:
e
[
0
],
n
<
o
.
length
?
o
[
n
]:
e
[
e
.
length
-
1
]]},
i
.
copy
=
function
(){
return
Ji
(
e
,
r
)},
u
()}
function
Gi
(
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
Gi
(
n
,
t
,
e
)},
u
()}
function
Ki
(
n
,
t
){
function
e
(
e
){
return
e
>=
e
?
t
[
Vo
.
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
Ki
(
n
,
t
)},
e
}
function
Qi
(
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
Yi
(
n
,
t
)},
t
.
tickFormat
=
function
(
t
,
e
){
return
Ii
(
n
,
t
,
e
)},
t
.
copy
=
function
(){
return
Qi
(
n
)},
t
}
function
no
(
n
){
return
n
.
innerRadius
}
function
to
(
n
){
return
n
.
outerRadius
}
function
eo
(
n
){
return
n
.
startAngle
}
function
ro
(
n
){
return
n
.
endAngle
}
function
uo
(
n
){
function
t
(
t
){
function
o
(){
l
.
push
(
"M"
,
i
(
n
(
s
),
a
))}
for
(
var
c
,
l
=
[],
s
=
[],
f
=-
1
,
h
=
t
.
length
,
g
=
bt
(
e
),
p
=
bt
(
r
);
++
f
<
h
;)
u
.
call
(
this
,
c
=
t
[
f
],
f
)?
s
.
push
([
+
g
.
call
(
this
,
c
,
f
),
+
p
.
call
(
this
,
c
,
f
)]):
s
.
length
&&
(
o
(),
s
=
[]);
return
s
.
length
&&
o
(),
l
.
length
?
l
.
join
(
""
):
null
}
var
e
=
Sr
,
r
=
kr
,
u
=
Se
,
i
=
io
,
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
=
Ml
.
get
(
n
)
||
io
).
key
,
t
):
o
},
t
.
tension
=
function
(
n
){
return
arguments
.
length
?(
a
=
n
,
t
):
a
},
t
}
function
io
(
n
){
return
n
.
join
(
"L"
)}
function
oo
(
n
){
return
io
(
n
)
+
"Z"
}
function
ao
(
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
co
(
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
lo
(
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
so
(
n
,
t
){
return
n
.
length
<
4
?
io
(
n
):
n
[
1
]
+
go
(
n
.
slice
(
1
,
n
.
length
-
1
),
po
(
n
,
t
))}
function
fo
(
n
,
t
){
return
n
.
length
<
3
?
io
(
n
):
n
[
0
]
+
go
((
n
.
push
(
n
[
0
]),
n
),
po
([
n
[
n
.
length
-
2
]].
concat
(
n
,[
n
[
1
]]),
t
))}
function
ho
(
n
,
t
){
return
n
.
length
<
3
?
io
(
n
):
n
[
0
]
+
go
(
n
,
po
(
n
,
t
))}
function
go
(
n
,
t
){
if
(
t
.
length
<
1
||
n
.
length
!=
t
.
length
&&
n
.
length
!=
t
.
length
+
2
)
return
io
(
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
l
=
2
;
l
<
t
.
length
;
l
++
,
c
++
)
i
=
n
[
c
],
a
=
t
[
l
],
r
+=
"S"
+
(
i
[
0
]
-
a
[
0
])
+
","
+
(
i
[
1
]
-
a
[
1
])
+
","
+
i
[
0
]
+
","
+
i
[
1
]}
if
(
e
){
var
s
=
n
[
c
];
r
+=
"Q"
+
(
i
[
0
]
+
2
*
a
[
0
]
/
3
)
+
","
+
(
i
[
1
]
+
2
*
a
[
1
]
/
3
)
+
","
+
s
[
0
]
+
","
+
s
[
1
]}
return
r
}
function
po
(
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
vo
(
n
){
if
(
n
.
length
<
3
)
return
io
(
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"
,
Mo
(
wl
,
o
),
","
,
Mo
(
wl
,
a
)];
for
(
n
.
push
(
n
[
e
-
1
]);
++
t
<=
e
;)
r
=
n
[
t
],
o
.
shift
(),
o
.
push
(
r
[
0
]),
a
.
shift
(),
a
.
push
(
r
[
1
]),
_o
(
c
,
o
,
a
);
return
n
.
pop
(),
c
.
push
(
"L"
,
r
),
c
.
join
(
""
)}
function
mo
(
n
){
if
(
n
.
length
<
4
)
return
io
(
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
(
Mo
(
wl
,
i
)
+
","
+
Mo
(
wl
,
o
)),
--
r
;
++
r
<
u
;)
t
=
n
[
r
],
i
.
shift
(),
i
.
push
(
t
[
0
]),
o
.
shift
(),
o
.
push
(
t
[
1
]),
_o
(
e
,
i
,
o
);
return
e
.
join
(
""
)}
function
yo
(
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
=
[
Mo
(
wl
,
o
),
","
,
Mo
(
wl
,
a
)],
--
r
;
++
r
<
i
;)
e
=
n
[
r
%
u
],
o
.
shift
(),
o
.
push
(
e
[
0
]),
a
.
shift
(),
a
.
push
(
e
[
1
]),
_o
(
t
,
o
,
a
);
return
t
.
join
(
""
)}
function
xo
(
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
,
l
=-
1
;
++
l
<=
e
;)
r
=
n
[
l
],
u
=
l
/
e
,
r
[
0
]
=
t
*
r
[
0
]
+
(
1
-
t
)
*
(
i
+
u
*
a
),
r
[
1
]
=
t
*
r
[
1
]
+
(
1
-
t
)
*
(
o
+
u
*
c
);
return
vo
(
n
)}
function
Mo
(
n
,
t
){
return
n
[
0
]
*
t
[
0
]
+
n
[
1
]
*
t
[
1
]
+
n
[
2
]
*
t
[
2
]
+
n
[
3
]
*
t
[
3
]}
function
_o
(
n
,
t
,
e
){
n
.
push
(
"C"
,
Mo
(
_l
,
t
),
","
,
Mo
(
_l
,
e
),
","
,
Mo
(
bl
,
t
),
","
,
Mo
(
bl
,
e
),
","
,
Mo
(
wl
,
t
),
","
,
Mo
(
wl
,
e
))}
function
bo
(
n
,
t
){
return
(
t
[
1
]
-
n
[
1
])
/
(
t
[
0
]
-
n
[
0
])}
function
wo
(
n
){
for
(
var
t
=
0
,
e
=
n
.
length
-
1
,
r
=
[],
u
=
n
[
0
],
i
=
n
[
1
],
o
=
r
[
0
]
=
bo
(
u
,
i
);
++
t
<
e
;)
r
[
t
]
=
(
o
+
(
o
=
bo
(
u
=
i
,
i
=
n
[
t
+
1
])))
/
2
;
return
r
[
t
]
=
o
,
r
}
function
So
(
n
){
for
(
var
t
,
e
,
r
,
u
,
i
=
[],
o
=
wo
(
n
),
a
=-
1
,
c
=
n
.
length
-
1
;
++
a
<
c
;)
t
=
bo
(
n
[
a
],
n
[
a
+
1
]),
ia
(
t
)
<
Ea
?
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
ko
(
n
){
return
n
.
length
<
3
?
io
(
n
):
n
[
0
]
+
go
(
n
,
So
(
n
))}
function
Eo
(
n
){
for
(
var
t
,
e
,
r
,
u
=-
1
,
i
=
n
.
length
;
++
u
<
i
;)
t
=
n
[
u
],
e
=
t
[
0
],
r
=
t
[
1
]
+
yl
,
t
[
0
]
=
e
*
Math
.
cos
(
r
),
t
[
1
]
=
e
*
Math
.
sin
(
r
);
return
n
}
function
Ao
(
n
){
function
t
(
t
){
function
c
(){
v
.
push
(
"M"
,
a
(
n
(
m
),
f
),
s
,
l
(
n
(
d
.
reverse
()),
f
),
"Z"
)}
for
(
var
h
,
g
,
p
,
v
=
[],
d
=
[],
m
=
[],
y
=-
1
,
x
=
t
.
length
,
M
=
bt
(
e
),
_
=
bt
(
u
),
b
=
e
===
r
?
function
(){
return
g
}:
bt
(
r
),
w
=
u
===
i
?
function
(){
return
p
}:
bt
(
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
=
Sr
,
r
=
Sr
,
u
=
0
,
i
=
kr
,
o
=
Se
,
a
=
io
,
c
=
a
.
key
,
l
=
a
,
s
=
"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
=
Ml
.
get
(
n
)
||
io
).
key
,
l
=
a
.
reverse
||
a
,
s
=
a
.
closed
?
"M"
:
"L"
,
t
):
c
},
t
.
tension
=
function
(
n
){
return
arguments
.
length
?(
f
=
n
,
t
):
f
},
t
}
function
Co
(
n
){
return
n
.
radius
}
function
No
(
n
){
return
[
n
.
x
,
n
.
y
]}
function
zo
(
n
){
return
function
(){
var
t
=
n
.
apply
(
this
,
arguments
),
e
=
t
[
0
],
r
=
t
[
1
]
+
yl
;
return
[
e
*
Math
.
cos
(
r
),
e
*
Math
.
sin
(
r
)]}}
function
Lo
(){
return
64
}
function
To
(){
return
"circle"
}
function
qo
(
n
){
var
t
=
Math
.
sqrt
(
n
/
wa
);
return
"M0,"
+
t
+
"A"
+
t
+
","
+
t
+
" 0 1,1 0,"
+-
t
+
"A"
+
t
+
","
+
t
+
" 0 1,1 0,"
+
t
+
"Z"
}
function
Ro
(
n
,
t
){
return
sa
(
n
,
Nl
),
n
.
id
=
t
,
n
}
function
Do
(
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
Po
(
n
){
return
null
==
n
&&
(
n
=
""
),
function
(){
this
.
textContent
=
n
}}
function
Uo
(
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
,
Vo
.
timer
(
function
(
r
){
function
o
(
r
){
return
u
.
active
>
e
?
l
():(
u
.
active
=
e
,
i
.
event
&&
i
.
event
.
start
.
call
(
n
,
s
,
t
),
i
.
tween
.
forEach
(
function
(
e
,
r
){(
r
=
r
.
call
(
n
,
s
,
t
))
&&
v
.
push
(
r
)}),
Vo
.
timer
(
function
(){
return
p
.
c
=
c
(
r
||
1
)?
Se
:
c
,
1
},
0
,
a
),
void
0
)}
function
c
(
r
){
if
(
u
.
active
!==
e
)
return
l
();
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
,
s
,
t
),
l
()):
void
0
}
function
l
(){
return
--
u
.
count
?
delete
u
[
e
]:
delete
n
.
__transition__
,
1
}
var
s
=
n
.
__data__
,
f
=
i
.
ease
,
h
=
i
.
delay
,
g
=
i
.
duration
,
p
=
Wa
,
v
=
[];
return
p
.
t
=
h
+
a
,
r
>=
h
?
o
(
r
-
h
):(
p
.
c
=
o
,
void
0
)},
0
,
a
)}}
function
jo
(
n
,
t
){
n
.
attr
(
"transform"
,
function
(
n
){
return
"translate("
+
t
(
n
)
+
",0)"
})}
function
Ho
(
n
,
t
){
n
.
attr
(
"transform"
,
function
(
n
){
return
"translate(0,"
+
t
(
n
)
+
")"
})}
function
Fo
(
n
){
return
n
.
toISOString
()}
function
Oo
(
n
,
t
,
e
){
function
r
(
t
){
return
n
(
t
)}
function
u
(
n
,
e
){
var
r
=
n
[
1
]
-
n
[
0
],
u
=
r
/
e
,
i
=
Vo
.
bisect
(
jl
,
u
);
return
i
==
jl
.
length
?[
t
.
year
,
Oi
(
n
.
map
(
function
(
n
){
return
n
/
31536
e6
}),
e
)[
2
]]:
i
?
t
[
u
/
jl
[
i
-
1
]
<
jl
[
i
]
/
u
?
i
-
1
:
i
]:[
Ol
,
Oi
(
n
,
e
)[
2
]]}
return
r
.
invert
=
function
(
t
){
return
Yo
(
n
.
invert
(
t
))},
r
.
domain
=
function
(
t
){
return
arguments
.
length
?(
n
.
domain
(
t
),
r
):
n
.
domain
().
map
(
Yo
)},
r
.
nice
=
function
(
n
,
t
){
function
e
(
e
){
return
!
isNaN
(
e
)
&&!
n
.
range
(
e
,
Yo
(
+
e
+
1
),
t
).
length
}
var
i
=
r
.
domain
(),
o
=
Ti
(
i
),
a
=
null
==
n
?
u
(
o
,
10
):
"number"
==
typeof
n
&&
u
(
o
,
n
);
return
a
&&
(
n
=
a
[
0
],
t
=
a
[
1
]),
r
.
domain
(
Di
(
i
,
t
>
1
?{
floor
:
function
(
t
){
for
(;
e
(
t
=
n
.
floor
(
t
));)
t
=
Yo
(
t
-
1
);
return
t
},
ceil
:
function
(
t
){
for
(;
e
(
t
=
n
.
ceil
(
t
));)
t
=
Yo
(
+
t
+
1
);
return
t
}}:
n
))},
r
.
ticks
=
function
(
n
,
t
){
var
e
=
Ti
(
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
],
Yo
(
+
e
[
1
]
+
1
),
1
>
t
?
1
:
t
)},
r
.
tickFormat
=
function
(){
return
e
},
r
.
copy
=
function
(){
return
Oo
(
n
.
copy
(),
t
,
e
)},
Hi
(
r
,
n
)}
function
Yo
(
n
){
return
new
Date
(
n
)}
function
Io
(
n
){
return
JSON
.
parse
(
n
.
responseText
)}
function
Zo
(
n
){
var
t
=
Bo
.
createRange
();
return
t
.
selectNode
(
Bo
.
body
),
t
.
createContextualFragment
(
n
.
responseText
)}
var
Vo
=
{
version
:
"3.4.12"
};
Date
.
now
||
(
Date
.
now
=
function
(){
return
+
new
Date
});
var
Xo
=
[].
slice
,
$o
=
function
(
n
){
return
Xo
.
call
(
n
)},
Bo
=
document
,
Wo
=
Bo
.
documentElement
,
Jo
=
window
;
try
{
$o
(
Wo
.
childNodes
)[
0
].
nodeType
}
catch
(
Go
){
$o
=
function
(
n
){
for
(
var
t
=
n
.
length
,
e
=
new
Array
(
t
);
t
--
;)
e
[
t
]
=
n
[
t
];
return
e
}}
try
{
Bo
.
createElement
(
"div"
).
style
.
setProperty
(
"opacity"
,
0
,
""
)}
catch
(
Ko
){
var
Qo
=
Jo
.
Element
.
prototype
,
na
=
Qo
.
setAttribute
,
ta
=
Qo
.
setAttributeNS
,
ea
=
Jo
.
CSSStyleDeclaration
.
prototype
,
ra
=
ea
.
setProperty
;
Qo
.
setAttribute
=
function
(
n
,
t
){
na
.
call
(
this
,
n
,
t
+
""
)},
Qo
.
setAttributeNS
=
function
(
n
,
t
,
e
){
ta
.
call
(
this
,
n
,
t
,
e
+
""
)},
ea
.
setProperty
=
function
(
n
,
t
,
e
){
ra
.
call
(
this
,
n
,
t
+
""
,
e
)}}
Vo
.
ascending
=
n
,
Vo
.
descending
=
function
(
n
,
t
){
return
n
>
t
?
-
1
:
t
>
n
?
1
:
t
>=
n
?
0
:
0
/
0
},
Vo
.
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
},
Vo
.
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
},
Vo
.
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
]},
Vo
.
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
},
Vo
.
mean
=
function
(
n
,
e
){
var
r
,
u
=
0
,
i
=
n
.
length
,
o
=-
1
,
a
=
i
;
if
(
1
===
arguments
.
length
)
for
(;
++
o
<
i
;)
t
(
r
=
n
[
o
])?
u
+=
r
:
--
a
;
else
for
(;
++
o
<
i
;)
t
(
r
=
e
.
call
(
n
,
n
[
o
],
o
))?
u
+=
r
:
--
a
;
return
a
?
u
/
a
:
void
0
},
Vo
.
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
},
Vo
.
median
=
function
(
e
,
r
){
return
arguments
.
length
>
1
&&
(
e
=
e
.
map
(
r
)),
e
=
e
.
filter
(
t
),
e
.
length
?
Vo
.
quantile
(
e
.
sort
(
n
),.
5
):
void
0
};
var
ua
=
e
(
n
);
Vo
.
bisectLeft
=
ua
.
left
,
Vo
.
bisect
=
Vo
.
bisectRight
=
ua
.
right
,
Vo
.
bisector
=
function
(
t
){
return
e
(
1
===
t
.
length
?
function
(
e
,
r
){
return
n
(
t
(
e
),
r
)}:
t
)},
Vo
.
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
},
Vo
.
permute
=
function
(
n
,
t
){
for
(
var
e
=
t
.
length
,
r
=
new
Array
(
e
);
e
--
;)
r
[
e
]
=
n
[
t
[
e
]];
return
r
},
Vo
.
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
},
Vo
.
zip
=
function
(){
if
(
!
(
u
=
arguments
.
length
))
return
[];
for
(
var
n
=-
1
,
t
=
Vo
.
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
},
Vo
.
transpose
=
function
(
n
){
return
Vo
.
zip
.
apply
(
Vo
,
n
)},
Vo
.
keys
=
function
(
n
){
var
t
=
[];
for
(
var
e
in
n
)
t
.
push
(
e
);
return
t
},
Vo
.
values
=
function
(
n
){
var
t
=
[];
for
(
var
e
in
n
)
t
.
push
(
n
[
e
]);
return
t
},
Vo
.
entries
=
function
(
n
){
var
t
=
[];
for
(
var
e
in
n
)
t
.
push
({
key
:
e
,
value
:
n
[
e
]});
return
t
},
Vo
.
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
ia
=
Math
.
abs
;
Vo
.
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
(
ia
(
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
},
Vo
.
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
[
oa
+
n
]},
set
:
function
(
n
,
t
){
return
this
[
oa
+
n
]
=
t
},
remove
:
c
,
keys
:
l
,
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
:
s
,
empty
:
f
,
forEach
:
function
(
n
){
for
(
var
t
in
this
)
t
.
charCodeAt
(
0
)
===
aa
&&
n
.
call
(
this
,
t
.
slice
(
1
),
this
[
t
])}});
var
oa
=
"\x00"
,
aa
=
oa
.
charCodeAt
(
0
);
Vo
.
nest
=
function
(){
function
n
(
t
,
a
,
c
){
if
(
c
>=
i
.
length
)
return
r
?
r
.
call
(
u
,
a
):
e
?
a
.
sort
(
e
):
a
;
for
(
var
l
,
s
,
f
,
h
,
g
=-
1
,
p
=
a
.
length
,
v
=
i
[
c
++
],
d
=
new
o
;
++
g
<
p
;)(
h
=
d
.
get
(
l
=
v
(
s
=
a
[
g
])))?
h
.
push
(
s
):
d
.
set
(
l
,[
s
]);
return
t
?(
s
=
t
(),
f
=
function
(
e
,
r
){
s
.
set
(
e
,
n
(
t
,
r
,
c
))}):(
s
=
{},
f
=
function
(
e
,
r
){
s
[
e
]
=
n
(
t
,
r
,
c
)}),
d
.
forEach
(
f
),
s
}
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
(
Vo
.
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
},
Vo
.
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
[
oa
+
n
]
=!
0
,
n
},
remove
:
function
(
n
){
return
n
=
oa
+
n
,
n
in
this
&&
delete
this
[
n
]},
values
:
l
,
size
:
s
,
empty
:
f
,
forEach
:
function
(
n
){
for
(
var
t
in
this
)
t
.
charCodeAt
(
0
)
===
aa
&&
n
.
call
(
this
,
t
.
slice
(
1
))}}),
Vo
.
behavior
=
{},
Vo
.
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
ca
=
[
"webkit"
,
"ms"
,
"moz"
,
"Moz"
,
"o"
,
"O"
];
Vo
.
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
.
slice
(
e
+
1
),
n
=
n
.
slice
(
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
}},
Vo
.
event
=
null
,
Vo
.
requote
=
function
(
n
){
return
n
.
replace
(
la
,
"\\$&"
)};
var
la
=
/
[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]
/g
,
sa
=
{}.
__proto__
?
function
(
n
,
t
){
n
.
__proto__
=
t
}:
function
(
n
,
t
){
for
(
var
e
in
t
)
n
[
e
]
=
t
[
e
]},
fa
=
function
(
n
,
t
){
return
t
.
querySelector
(
n
)},
ha
=
function
(
n
,
t
){
return
t
.
querySelectorAll
(
n
)},
ga
=
Wo
.
matches
||
Wo
[
p
(
Wo
,
"matchesSelector"
)],
pa
=
function
(
n
,
t
){
return
ga
.
call
(
n
,
t
)};
"function"
==
typeof
Sizzle
&&
(
fa
=
function
(
n
,
t
){
return
Sizzle
(
n
,
t
)[
0
]
||
null
},
ha
=
Sizzle
,
pa
=
Sizzle
.
matchesSelector
),
Vo
.
selection
=
function
(){
return
ya
};
var
va
=
Vo
.
selection
.
prototype
=
[];
va
.
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
,
l
=
r
.
length
;
++
c
<
l
;)(
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
)},
va
.
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
=
$o
(
n
.
call
(
e
,
e
.
__data__
,
a
,
u
))),
t
.
parentNode
=
e
);
return
_
(
r
)};
var
da
=
{
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/"
};
Vo
.
ns
=
{
prefix
:
da
,
qualify
:
function
(
n
){
var
t
=
n
.
indexOf
(
":"
),
e
=
n
;
return
t
>=
0
&&
(
e
=
n
.
slice
(
0
,
t
),
n
=
n
.
slice
(
t
+
1
)),
da
.
hasOwnProperty
(
e
)?{
space
:
da
[
e
],
local
:
n
}:
n
}},
va
.
attr
=
function
(
n
,
t
){
if
(
arguments
.
length
<
2
){
if
(
"string"
==
typeof
n
){
var
e
=
this
.
node
();
return
n
=
Vo
.
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
))},
va
.
classed
=
function
(
n
,
t
){
if
(
arguments
.
length
<
2
){
if
(
"string"
==
typeof
n
){
var
e
=
this
.
node
(),
r
=
(
n
=
A
(
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
(
C
(
t
,
n
[
t
]));
return
this
}
return
this
.
each
(
C
(
n
,
t
))},
va
.
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
(
z
(
e
,
n
[
e
],
t
));
return
this
}
if
(
2
>
r
)
return
Jo
.
getComputedStyle
(
this
.
node
(),
null
).
getPropertyValue
(
n
);
e
=
""
}
return
this
.
each
(
z
(
n
,
t
,
e
))},
va
.
property
=
function
(
n
,
t
){
if
(
arguments
.
length
<
2
){
if
(
"string"
==
typeof
n
)
return
this
.
node
()[
n
];
for
(
t
in
n
)
this
.
each
(
L
(
t
,
n
[
t
]));
return
this
}
return
this
.
each
(
L
(
n
,
t
))},
va
.
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
},
va
.
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
},
va
.
append
=
function
(
n
){
return
n
=
T
(
n
),
this
.
select
(
function
(){
return
this
.
appendChild
(
n
.
apply
(
this
,
arguments
))})},
va
.
insert
=
function
(
n
,
t
){
return
n
=
T
(
n
),
t
=
b
(
t
),
this
.
select
(
function
(){
return
this
.
insertBefore
(
n
.
apply
(
this
,
arguments
),
t
.
apply
(
this
,
arguments
)
||
null
)})},
va
.
remove
=
function
(){
return
this
.
each
(
function
(){
var
n
=
this
.
parentNode
;
n
&&
n
.
removeChild
(
this
)})},
va
.
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
]
=
q
(
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
]
=
q
(
i
);
for
(;
f
>
r
;
++
r
)
p
[
r
]
=
q
(
e
[
r
]);
for
(;
a
>
r
;
++
r
)
v
[
r
]
=
n
[
r
]}
p
.
update
=
g
,
p
.
parentNode
=
g
.
parentNode
=
v
.
parentNode
=
n
.
parentNode
,
c
.
push
(
p
),
l
.
push
(
g
),
s
.
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
([]),
l
=
_
([]),
s
=
_
([]);
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
l
.
enter
=
function
(){
return
c
},
l
.
exit
=
function
(){
return
s
},
l
},
va
.
datum
=
function
(
n
){
return
arguments
.
length
?
this
.
property
(
"__data__"
,
n
):
this
.
property
(
"__data__"
)},
va
.
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
)},
va
.
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
},
va
.
sort
=
function
(
n
){
n
=
D
.
apply
(
this
,
arguments
);
for
(
var
t
=-
1
,
e
=
this
.
length
;
++
t
<
e
;)
this
[
t
].
sort
(
n
);
return
this
.
order
()},
va
.
each
=
function
(
n
){
return
P
(
this
,
function
(
t
,
e
,
r
){
n
.
call
(
t
,
t
.
__data__
,
e
,
r
)})},
va
.
call
=
function
(
n
){
var
t
=
$o
(
arguments
);
return
n
.
apply
(
t
[
0
]
=
this
,
t
),
this
},
va
.
empty
=
function
(){
return
!
this
.
node
()},
va
.
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
},
va
.
size
=
function
(){
var
n
=
0
;
return
P
(
this
,
function
(){
++
n
}),
n
};
var
ma
=
[];
Vo
.
selection
.
enter
=
U
,
Vo
.
selection
.
enter
.
prototype
=
ma
,
ma
.
append
=
va
.
append
,
ma
.
empty
=
va
.
empty
,
ma
.
node
=
va
.
node
,
ma
.
call
=
va
.
call
,
ma
.
size
=
va
.
size
,
ma
.
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
l
=-
1
,
s
=
u
.
length
;
++
l
<
s
;)(
i
=
u
[
l
])?(
t
.
push
(
r
[
l
]
=
e
=
n
.
call
(
u
.
parentNode
,
i
.
__data__
,
l
,
a
)),
e
.
__data__
=
i
.
__data__
):
t
.
push
(
null
)}
return
_
(
o
)},
ma
.
insert
=
function
(
n
,
t
){
return
arguments
.
length
<
2
&&
(
t
=
j
(
this
)),
va
.
insert
.
call
(
this
,
n
,
t
)},
va
.
transition
=
function
(){
for
(
var
n
,
t
,
e
=
kl
||++
zl
,
r
=
[],
u
=
El
||
{
time
:
Date
.
now
(),
ease
:
Mu
,
delay
:
0
,
duration
:
250
},
i
=-
1
,
o
=
this
.
length
;
++
i
<
o
;){
r
.
push
(
n
=
[]);
for
(
var
a
=
this
[
i
],
c
=-
1
,
l
=
a
.
length
;
++
c
<
l
;)(
t
=
a
[
c
])
&&
Uo
(
t
,
c
,
e
,
u
),
n
.
push
(
t
)}
return
Ro
(
r
,
e
)},
va
.
interrupt
=
function
(){
return
this
.
each
(
H
)},
Vo
.
select
=
function
(
n
){
var
t
=
[
"string"
==
typeof
n
?
fa
(
n
,
Bo
):
n
];
return
t
.
parentNode
=
Wo
,
_
([
t
])},
Vo
.
selectAll
=
function
(
n
){
var
t
=
$o
(
"string"
==
typeof
n
?
ha
(
n
,
Bo
):
n
);
return
t
.
parentNode
=
Wo
,
_
([
t
])};
var
ya
=
Vo
.
select
(
Wo
);
va
.
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
xa
=
Vo
.
map
({
mouseenter
:
"mouseover"
,
mouseleave
:
"mouseout"
});
xa
.
forEach
(
function
(
n
){
"on"
+
n
in
Bo
&&
xa
.
remove
(
n
)});
var
Ma
=
"onselectstart"
in
Bo
?
null
:
p
(
Wo
.
style
,
"userSelect"
),
_a
=
0
;
Vo
.
mouse
=
function
(
n
){
return
Z
(
n
,
x
())};
var
ba
=
/WebKit/
.
test
(
Jo
.
navigator
.
userAgent
)?
-
1
:
0
;
Vo
.
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
)},
Vo
.
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
]
+
l
[
0
],
y
:
r
[
1
]
+
l
[
1
],
dx
:
n
,
dy
:
e
}))}
function
c
(){
t
(
h
,
v
)
&&
(
m
.
on
(
i
+
d
,
null
).
on
(
o
+
d
,
null
),
y
(
p
&&
Vo
.
event
.
target
===
f
),
g
({
type
:
"dragend"
}))}
var
l
,
s
=
this
,
f
=
Vo
.
event
.
target
,
h
=
s
.
parentNode
,
g
=
e
.
of
(
s
,
arguments
),
p
=
0
,
v
=
n
(),
d
=
".drag"
+
(
null
==
v
?
""
:
"-"
+
v
),
m
=
Vo
.
select
(
u
()).
on
(
i
+
d
,
a
).
on
(
o
+
d
,
c
),
y
=
I
(),
x
=
t
(
h
,
v
);
r
?(
l
=
r
.
apply
(
s
,
arguments
),
l
=
[
l
.
x
-
x
[
0
],
l
.
y
-
x
[
1
]]):
l
=
[
0
,
0
],
g
({
type
:
"dragstart"
})}}
var
e
=
M
(
n
,
"drag"
,
"dragstart"
,
"dragend"
),
r
=
null
,
u
=
t
(
v
,
Vo
.
mouse
,
$
,
"mousemove"
,
"mouseup"
),
i
=
t
(
V
,
Vo
.
touch
,
X
,
"touchmove"
,
"touchend"
);
return
n
.
origin
=
function
(
t
){
return
arguments
.
length
?(
r
=
t
,
n
):
r
},
Vo
.
rebind
(
n
,
e
,
"on"
)},
Vo
.
touches
=
function
(
n
,
t
){
return
arguments
.
length
<
2
&&
(
t
=
x
().
touches
),
t
?
$o
(
t
).
map
(
function
(
t
){
var
e
=
Z
(
n
,
t
);
return
e
.
identifier
=
t
.
identifier
,
e
}):[]};
var
wa
=
Math
.
PI
,
Sa
=
2
*
wa
,
ka
=
wa
/
2
,
Ea
=
1
e
-
6
,
Aa
=
Ea
*
Ea
,
Ca
=
wa
/
180
,
Na
=
180
/
wa
,
za
=
Math
.
SQRT2
,
La
=
2
,
Ta
=
4
;
Vo
.
interpolateZoom
=
function
(
n
,
t
){
function
e
(
n
){
var
t
=
n
*
y
;
if
(
m
){
var
e
=
Q
(
v
),
o
=
i
/
(
La
*
h
)
*
(
e
*
nt
(
za
*
t
+
v
)
-
K
(
v
));
return
[
r
+
o
*
l
,
u
+
o
*
s
,
i
*
e
/
Q
(
za
*
t
+
v
)]}
return
[
r
+
n
*
l
,
u
+
n
*
s
,
i
*
Math
.
exp
(
za
*
t
)]}
var
r
=
n
[
0
],
u
=
n
[
1
],
i
=
n
[
2
],
o
=
t
[
0
],
a
=
t
[
1
],
c
=
t
[
2
],
l
=
o
-
r
,
s
=
a
-
u
,
f
=
l
*
l
+
s
*
s
,
h
=
Math
.
sqrt
(
f
),
g
=
(
c
*
c
-
i
*
i
+
Ta
*
f
)
/
(
2
*
i
*
La
*
h
),
p
=
(
c
*
c
-
i
*
i
-
Ta
*
f
)
/
(
2
*
c
*
La
*
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
))
/
za
;
return
e
.
duration
=
1
e3
*
y
,
e
},
Vo
.
behavior
.
zoom
=
function
(){
function
n
(
n
){
n
.
on
(
A
,
l
).
on
(
Da
+
".zoom"
,
f
).
on
(
"dblclick.zoom"
,
h
).
on
(
z
,
s
)}
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
l
(){
function
n
(){
s
=
1
,
u
(
Vo
.
mouse
(
r
),
h
),
a
(
l
)}
function
e
(){
f
.
on
(
C
,
null
).
on
(
N
,
null
),
g
(
s
&&
Vo
.
event
.
target
===
i
),
c
(
l
)}
var
r
=
this
,
i
=
Vo
.
event
.
target
,
l
=
L
.
of
(
r
,
arguments
),
s
=
0
,
f
=
Vo
.
select
(
Jo
).
on
(
C
,
n
).
on
(
N
,
e
),
h
=
t
(
Vo
.
mouse
(
r
)),
g
=
I
();
H
.
call
(
r
),
o
(
l
)}
function
s
(){
function
n
(){
var
n
=
Vo
.
touches
(
g
);
return
h
=
S
.
k
,
n
.
forEach
(
function
(
n
){
n
.
identifier
in
v
&&
(
v
[
n
.
identifier
]
=
t
(
n
))}),
n
}
function
e
(){
var
t
=
Vo
.
event
.
target
;
Vo
.
select
(
t
).
on
(
M
,
i
).
on
(
_
,
f
),
b
.
push
(
t
);
for
(
var
e
=
Vo
.
event
.
changedTouches
,
o
=
0
,
c
=
e
.
length
;
c
>
o
;
++
o
)
v
[
e
[
o
].
identifier
]
=
null
;
var
l
=
n
(),
s
=
Date
.
now
();
if
(
1
===
l
.
length
){
if
(
500
>
s
-
m
){
var
h
=
l
[
0
],
g
=
v
[
h
.
identifier
];
r
(
2
*
S
.
k
),
u
(
h
,
g
),
y
(),
a
(
p
)}
m
=
s
}
else
if
(
l
.
length
>
1
){
var
h
=
l
[
0
],
x
=
l
[
1
],
w
=
h
[
0
]
-
x
[
0
],
k
=
h
[
1
]
-
x
[
1
];
d
=
w
*
w
+
k
*
k
}}
function
i
(){
for
(
var
n
,
t
,
e
,
i
,
o
=
Vo
.
touches
(
g
),
c
=
0
,
l
=
o
.
length
;
l
>
c
;
++
c
,
i
=
null
)
if
(
e
=
o
[
c
],
i
=
v
[
e
.
identifier
]){
if
(
t
)
break
;
n
=
e
,
t
=
i
}
if
(
i
){
var
s
=
(
s
=
e
[
0
]
-
n
[
0
])
*
s
+
(
s
=
e
[
1
]
-
n
[
1
])
*
s
,
f
=
d
&&
Math
.
sqrt
(
s
/
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
(
Vo
.
event
.
touches
.
length
){
for
(
var
t
=
Vo
.
event
.
changedTouches
,
e
=
0
,
r
=
t
.
length
;
r
>
e
;
++
e
)
delete
v
[
t
[
e
].
identifier
];
for
(
var
u
in
v
)
return
void
n
()}
Vo
.
selectAll
(
b
).
on
(
x
,
null
),
w
.
on
(
A
,
l
).
on
(
z
,
s
),
k
(),
c
(
p
)}
var
h
,
g
=
this
,
p
=
L
.
of
(
g
,
arguments
),
v
=
{},
d
=
0
,
x
=
".zoom-"
+
Vo
.
event
.
changedTouches
[
0
].
identifier
,
M
=
"touchmove"
+
x
,
_
=
"touchend"
+
x
,
b
=
[],
w
=
Vo
.
select
(
g
),
k
=
I
();
H
.
call
(
g
),
e
(),
o
(
p
),
w
.
on
(
A
,
null
).
on
(
z
,
e
)}
function
f
(){
var
n
=
L
.
of
(
this
,
arguments
);
d
?
clearTimeout
(
d
):(
g
=
t
(
p
=
v
||
Vo
.
mouse
(
this
)),
H
.
call
(
this
),
o
(
n
)),
d
=
setTimeout
(
function
(){
d
=
null
,
c
(
n
)},
50
),
y
(),
r
(
Math
.
pow
(
2
,.
002
*
qa
())
*
S
.
k
),
u
(
p
,
g
),
a
(
n
)}
function
h
(){
var
n
=
L
.
of
(
this
,
arguments
),
e
=
Vo
.
mouse
(
this
),
i
=
t
(
e
),
l
=
Math
.
log
(
S
.
k
)
/
Math
.
LN2
;
o
(
n
),
r
(
Math
.
pow
(
2
,
Vo
.
event
.
shiftKey
?
Math
.
ceil
(
l
)
-
1
:
Math
.
floor
(
l
)
+
1
)),
u
(
e
,
i
),
a
(
n
),
c
(
n
)}
var
g
,
p
,
v
,
d
,
m
,
x
,
_
,
b
,
w
,
S
=
{
x
:
0
,
y
:
0
,
k
:
1
},
k
=
[
960
,
500
],
E
=
Ra
,
A
=
"mousedown.zoom"
,
C
=
"mousemove.zoom"
,
N
=
"mouseup.zoom"
,
z
=
"touchstart.zoom"
,
L
=
M
(
n
,
"zoomstart"
,
"zoom"
,
"zoomend"
);
return
n
.
event
=
function
(
n
){
n
.
each
(
function
(){
var
n
=
L
.
of
(
this
,
arguments
),
t
=
S
;
kl
?
Vo
.
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
=
Vo
.
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
?
Ra
:[
+
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
},
Vo
.
rebind
(
n
,
L
,
"on"
)};
var
qa
,
Ra
=
[
0
,
1
/
0
],
Da
=
"onwheel"
in
Bo
?(
qa
=
function
(){
return
-
Vo
.
event
.
deltaY
*
(
Vo
.
event
.
deltaMode
?
120
:
1
)},
"wheel"
):
"onmousewheel"
in
Bo
?(
qa
=
function
(){
return
Vo
.
event
.
wheelDelta
},
"mousewheel"
):(
qa
=
function
(){
return
-
Vo
.
event
.
detail
},
"MozMousePixelScroll"
);
Vo
.
color
=
et
,
et
.
prototype
.
toString
=
function
(){
return
this
.
rgb
()
+
""
},
Vo
.
hsl
=
rt
;
var
Pa
=
rt
.
prototype
=
new
et
;
Pa
.
brighter
=
function
(
n
){
return
n
=
Math
.
pow
(.
7
,
arguments
.
length
?
n
:
1
),
new
rt
(
this
.
h
,
this
.
s
,
this
.
l
/
n
)},
Pa
.
darker
=
function
(
n
){
return
n
=
Math
.
pow
(.
7
,
arguments
.
length
?
n
:
1
),
new
rt
(
this
.
h
,
this
.
s
,
n
*
this
.
l
)},
Pa
.
rgb
=
function
(){
return
ut
(
this
.
h
,
this
.
s
,
this
.
l
)},
Vo
.
hcl
=
it
;
var
Ua
=
it
.
prototype
=
new
et
;
Ua
.
brighter
=
function
(
n
){
return
new
it
(
this
.
h
,
this
.
c
,
Math
.
min
(
100
,
this
.
l
+
ja
*
(
arguments
.
length
?
n
:
1
)))},
Ua
.
darker
=
function
(
n
){
return
new
it
(
this
.
h
,
this
.
c
,
Math
.
max
(
0
,
this
.
l
-
ja
*
(
arguments
.
length
?
n
:
1
)))},
Ua
.
rgb
=
function
(){
return
ot
(
this
.
h
,
this
.
c
,
this
.
l
).
rgb
()},
Vo
.
lab
=
at
;
var
ja
=
18
,
Ha
=
.
95047
,
Fa
=
1
,
Oa
=
1.08883
,
Ya
=
at
.
prototype
=
new
et
;
Ya
.
brighter
=
function
(
n
){
return
new
at
(
Math
.
min
(
100
,
this
.
l
+
ja
*
(
arguments
.
length
?
n
:
1
)),
this
.
a
,
this
.
b
)},
Ya
.
darker
=
function
(
n
){
return
new
at
(
Math
.
max
(
0
,
this
.
l
-
ja
*
(
arguments
.
length
?
n
:
1
)),
this
.
a
,
this
.
b
)},
Ya
.
rgb
=
function
(){
return
ct
(
this
.
l
,
this
.
a
,
this
.
b
)},
Vo
.
rgb
=
gt
;
var
Ia
=
gt
.
prototype
=
new
et
;
Ia
.
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
),
new
gt
(
Math
.
min
(
255
,
t
/
n
),
Math
.
min
(
255
,
e
/
n
),
Math
.
min
(
255
,
r
/
n
))):
new
gt
(
u
,
u
,
u
)},
Ia
.
darker
=
function
(
n
){
return
n
=
Math
.
pow
(.
7
,
arguments
.
length
?
n
:
1
),
new
gt
(
n
*
this
.
r
,
n
*
this
.
g
,
n
*
this
.
b
)},
Ia
.
hsl
=
function
(){
return
yt
(
this
.
r
,
this
.
g
,
this
.
b
)},
Ia
.
toString
=
function
(){
return
"#"
+
dt
(
this
.
r
)
+
dt
(
this
.
g
)
+
dt
(
this
.
b
)};
var
Za
=
Vo
.
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
});
Za
.
forEach
(
function
(
n
,
t
){
Za
.
set
(
n
,
pt
(
t
))}),
Vo
.
functor
=
bt
,
Vo
.
xhr
=
St
(
wt
),
Vo
.
dsv
=
function
(
n
,
t
){
function
e
(
n
,
e
,
i
){
arguments
.
length
<
3
&&
(
i
=
e
,
e
=
null
);
var
o
=
kt
(
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
(
s
>=
l
)
return
o
;
if
(
u
)
return
u
=!
1
,
i
;
var
t
=
s
;
if
(
34
===
n
.
charCodeAt
(
t
)){
for
(
var
e
=
t
;
e
++<
l
;)
if
(
34
===
n
.
charCodeAt
(
e
)){
if
(
34
!==
n
.
charCodeAt
(
e
+
1
))
break
;
++
e
}
s
=
e
+
2
;
var
r
=
n
.
charCodeAt
(
e
+
1
);
return
13
===
r
?(
u
=!
0
,
10
===
n
.
charCodeAt
(
e
+
2
)
&&++
s
):
10
===
r
&&
(
u
=!
0
),
n
.
slice
(
t
+
1
,
e
).
replace
(
/""/g
,
'"'
)}
for
(;
l
>
s
;){
var
r
=
n
.
charCodeAt
(
s
++
),
a
=
1
;
if
(
10
===
r
)
u
=!
0
;
else
if
(
13
===
r
)
u
=!
0
,
10
===
n
.
charCodeAt
(
s
)
&&
(
++
s
,
++
a
);
else
if
(
r
!==
c
)
continue
;
return
n
.
slice
(
t
,
s
-
a
)}
return
n
.
slice
(
t
)}
for
(
var
r
,
u
,
i
=
{},
o
=
{},
a
=
[],
l
=
n
.
length
,
s
=
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
},
Vo
.
csv
=
Vo
.
dsv
(
","
,
"text/csv"
),
Vo
.
tsv
=
Vo
.
dsv
(
" "
,
"text/tab-separated-values"
);
var
Va
,
Xa
,
$a
,
Ba
,
Wa
,
Ja
=
Jo
[
p
(
Jo
,
"requestAnimationFrame"
)]
||
function
(
n
){
setTimeout
(
n
,
17
)};
Vo
.
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
};
Xa
?
Xa
.
n
=
i
:
Va
=
i
,
Xa
=
i
,
$a
||
(
Ba
=
clearTimeout
(
Ba
),
$a
=
1
,
Ja
(
Ct
))},
Vo
.
timer
.
flush
=
function
(){
Nt
(),
zt
()},
Vo
.
round
=
function
(
n
,
t
){
return
t
?
Math
.
round
(
n
*
(
t
=
Math
.
pow
(
10
,
t
)))
/
t
:
Math
.
round
(
n
)};
var
Ga
=
[
"y"
,
"z"
,
"a"
,
"f"
,
"p"
,
"n"
,
"\xb5"
,
"m"
,
""
,
"k"
,
"M"
,
"G"
,
"T"
,
"P"
,
"E"
,
"Z"
,
"Y"
].
map
(
Tt
);
Vo
.
formatPrefix
=
function
(
n
,
t
){
var
e
=
0
;
return
n
&&
(
0
>
n
&&
(
n
*=-
1
),
t
&&
(
n
=
Vo
.
round
(
n
,
Lt
(
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
)))),
Ga
[
8
+
e
/
3
]};
var
Ka
=
/
(?:([^
{
])?([
<>=^
]))?([
+
\-
])?([
$#
])?(
0
)?(\d
+
)?(
,
)?(\.
-
?\d
+
)?([
a-z%
])?
/i
,
Qa
=
Vo
.
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
=
Vo
.
round
(
n
,
Lt
(
n
,
t
))).
toFixed
(
Math
.
max
(
0
,
Math
.
min
(
20
,
Lt
(
n
*
(
1
+
1
e
-
15
),
t
))))}}),
nc
=
Vo
.
time
=
{},
tc
=
Date
;
Dt
.
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
(){
ec
.
setUTCDate
.
apply
(
this
.
_
,
arguments
)},
setDay
:
function
(){
ec
.
setUTCDay
.
apply
(
this
.
_
,
arguments
)},
setFullYear
:
function
(){
ec
.
setUTCFullYear
.
apply
(
this
.
_
,
arguments
)},
setHours
:
function
(){
ec
.
setUTCHours
.
apply
(
this
.
_
,
arguments
)},
setMilliseconds
:
function
(){
ec
.
setUTCMilliseconds
.
apply
(
this
.
_
,
arguments
)},
setMinutes
:
function
(){
ec
.
setUTCMinutes
.
apply
(
this
.
_
,
arguments
)},
setMonth
:
function
(){
ec
.
setUTCMonth
.
apply
(
this
.
_
,
arguments
)},
setSeconds
:
function
(){
ec
.
setUTCSeconds
.
apply
(
this
.
_
,
arguments
)},
setTime
:
function
(){
ec
.
setTime
.
apply
(
this
.
_
,
arguments
)}};
var
ec
=
Date
.
prototype
;
nc
.
year
=
Pt
(
function
(
n
){
return
n
=
nc
.
day
(
n
),
n
.
setMonth
(
0
,
1
),
n
},
function
(
n
,
t
){
n
.
setFullYear
(
n
.
getFullYear
()
+
t
)},
function
(
n
){
return
n
.
getFullYear
()}),
nc
.
years
=
nc
.
year
.
range
,
nc
.
years
.
utc
=
nc
.
year
.
utc
.
range
,
nc
.
day
=
Pt
(
function
(
n
){
var
t
=
new
tc
(
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
}),
nc
.
days
=
nc
.
day
.
range
,
nc
.
days
.
utc
=
nc
.
day
.
utc
.
range
,
nc
.
dayOfYear
=
function
(
n
){
var
t
=
nc
.
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
=
nc
[
n
]
=
Pt
(
function
(
n
){
return
(
n
=
nc
.
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
=
nc
.
year
(
n
).
getDay
();
return
Math
.
floor
((
nc
.
dayOfYear
(
n
)
+
(
e
+
t
)
%
7
)
/
7
)
-
(
e
!==
t
)});
nc
[
n
+
"s"
]
=
e
.
range
,
nc
[
n
+
"s"
].
utc
=
e
.
utc
.
range
,
nc
[
n
+
"OfYear"
]
=
function
(
n
){
var
e
=
nc
.
year
(
n
).
getDay
();
return
Math
.
floor
((
nc
.
dayOfYear
(
n
)
+
(
e
+
t
)
%
7
)
/
7
)}}),
nc
.
week
=
nc
.
sunday
,
nc
.
weeks
=
nc
.
sunday
.
range
,
nc
.
weeks
.
utc
=
nc
.
sunday
.
utc
.
range
,
nc
.
weekOfYear
=
nc
.
sundayOfYear
;
var
rc
=
{
"-"
:
""
,
_
:
" "
,
0
:
"0"
},
uc
=
/^
\s
*
\d
+/
,
ic
=
/^%/
;
Vo
.
locale
=
function
(
n
){
return
{
numberFormat
:
qt
(
n
),
timeFormat
:
jt
(
n
)}};
var
oc
=
Vo
.
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"
]});
Vo
.
format
=
oc
.
numberFormat
,
Vo
.
geo
=
{},
ie
.
prototype
=
{
s
:
0
,
t
:
0
,
add
:
function
(
n
){
oe
(
n
,
this
.
t
,
ac
),
oe
(
ac
.
s
,
this
.
s
,
this
),
this
.
s
?
this
.
t
+=
ac
.
t
:
this
.
s
=
ac
.
t
},
reset
:
function
(){
this
.
s
=
this
.
t
=
0
},
valueOf
:
function
(){
return
this
.
s
}};
var
ac
=
new
ie
;
Vo
.
geo
.
stream
=
function
(
n
,
t
){
n
&&
cc
.
hasOwnProperty
(
n
.
type
)?
cc
[
n
.
type
](
n
,
t
):
ae
(
n
,
t
)};
var
cc
=
{
Feature
:
function
(
n
,
t
){
ae
(
n
.
geometry
,
t
)},
FeatureCollection
:
function
(
n
,
t
){
for
(
var
e
=
n
.
features
,
r
=-
1
,
u
=
e
.
length
;
++
r
<
u
;)
ae
(
e
[
r
].
geometry
,
t
)}},
lc
=
{
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
){
ce
(
n
.
coordinates
,
t
,
0
)},
MultiLineString
:
function
(
n
,
t
){
for
(
var
e
=
n
.
coordinates
,
r
=-
1
,
u
=
e
.
length
;
++
r
<
u
;)
ce
(
e
[
r
],
t
,
0
)},
Polygon
:
function
(
n
,
t
){
le
(
n
.
coordinates
,
t
)},
MultiPolygon
:
function
(
n
,
t
){
for
(
var
e
=
n
.
coordinates
,
r
=-
1
,
u
=
e
.
length
;
++
r
<
u
;)
le
(
e
[
r
],
t
)},
GeometryCollection
:
function
(
n
,
t
){
for
(
var
e
=
n
.
geometries
,
r
=-
1
,
u
=
e
.
length
;
++
r
<
u
;)
ae
(
e
[
r
],
t
)}};
Vo
.
geo
.
area
=
function
(
n
){
return
sc
=
0
,
Vo
.
geo
.
stream
(
n
,
hc
),
sc
};
var
sc
,
fc
=
new
ie
,
hc
=
{
sphere
:
function
(){
sc
+=
4
*
wa
},
point
:
v
,
lineStart
:
v
,
lineEnd
:
v
,
polygonStart
:
function
(){
fc
.
reset
(),
hc
.
lineStart
=
se
},
polygonEnd
:
function
(){
var
n
=
2
*
fc
;
sc
+=
0
>
n
?
4
*
wa
+
n
:
n
,
hc
.
lineStart
=
hc
.
lineEnd
=
hc
.
point
=
v
}};
Vo
.
geo
.
bounds
=
function
(){
function
n
(
n
,
t
){
x
.
push
(
M
=
[
s
=
n
,
h
=
n
]),
f
>
t
&&
(
f
=
t
),
t
>
g
&&
(
g
=
t
)}
function
t
(
t
,
e
){
var
r
=
fe
([
t
*
Ca
,
e
*
Ca
]);
if
(
m
){
var
u
=
ge
(
m
,
r
),
i
=
[
u
[
1
],
-
u
[
0
],
0
],
o
=
ge
(
i
,
u
);
de
(
o
),
o
=
me
(
o
);
var
c
=
t
-
p
,
l
=
c
>
0
?
1
:
-
1
,
v
=
o
[
0
]
*
Na
*
l
,
d
=
ia
(
c
)
>
180
;
if
(
d
^
(
v
>
l
*
p
&&
l
*
t
>
v
)){
var
y
=
o
[
1
]
*
Na
;
y
>
g
&&
(
g
=
y
)}
else
if
(
v
=
(
v
+
360
)
%
360
-
180
,
d
^
(
v
>
l
*
p
&&
l
*
t
>
v
)){
var
y
=-
o
[
1
]
*
Na
;
f
>
y
&&
(
f
=
y
)}
else
f
>
e
&&
(
f
=
e
),
e
>
g
&&
(
g
=
e
);
d
?
p
>
t
?
a
(
s
,
t
)
>
a
(
s
,
h
)
&&
(
h
=
t
):
a
(
t
,
h
)
>
a
(
s
,
h
)
&&
(
s
=
t
):
h
>=
s
?(
s
>
t
&&
(
s
=
t
),
t
>
h
&&
(
h
=
t
)):
t
>
p
?
a
(
s
,
t
)
>
a
(
s
,
h
)
&&
(
h
=
t
):
a
(
t
,
h
)
>
a
(
s
,
h
)
&&
(
s
=
t
)}
else
n
(
t
,
e
);
m
=
r
,
p
=
t
}
function
e
(){
_
.
point
=
t
}
function
r
(){
M
[
0
]
=
s
,
M
[
1
]
=
h
,
_
.
point
=
n
,
m
=
null
}
function
u
(
n
,
e
){
if
(
m
){
var
r
=
n
-
p
;
y
+=
ia
(
r
)
>
180
?
r
+
(
r
>
0
?
360
:
-
360
):
r
}
else
v
=
n
,
d
=
e
;
hc
.
point
(
n
,
e
),
t
(
n
,
e
)}
function
i
(){
hc
.
lineStart
()}
function
o
(){
u
(
v
,
d
),
hc
.
lineEnd
(),
ia
(
y
)
>
Ea
&&
(
s
=-
(
h
=
180
)),
M
[
0
]
=
s
,
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
l
(
n
,
t
){
return
t
[
0
]
<=
t
[
1
]?
t
[
0
]
<=
n
&&
n
<=
t
[
1
]:
n
<
t
[
0
]
||
t
[
1
]
<
n
}
var
s
,
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
,
hc
.
polygonStart
()},
polygonEnd
:
function
(){
hc
.
polygonEnd
(),
_
.
point
=
n
,
_
.
lineStart
=
e
,
_
.
lineEnd
=
r
,
0
>
fc
?(
s
=-
(
h
=
180
),
f
=-
(
g
=
90
)):
y
>
Ea
?
g
=
90
:
-
Ea
>
y
&&
(
f
=-
90
),
M
[
0
]
=
s
,
M
[
1
]
=
h
}};
return
function
(
n
){
g
=
h
=-
(
s
=
f
=
1
/
0
),
x
=
[],
Vo
.
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
],
l
(
e
[
0
],
u
)
||
l
(
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
,
s
=
e
[
0
],
h
=
u
[
1
])
...
...
web/gui/src/main/webapp/libs/jquery-2.1.1.js
View file @
ce2474a
/*
* Copyright 2014 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
(
function
(
global
,
factory
)
{
if
(
typeof
module
===
"object"
&&
typeof
module
.
exports
===
"object"
)
{
...
...
web/gui/src/main/webapp/libs/jquery-2.1.1.min.js
View file @
ce2474a
/*
* Copyright 2014 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*! jQuery v2.1.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
!
function
(
a
,
b
){
"object"
==
typeof
module
&&
"object"
==
typeof
module
.
exports
?
module
.
exports
=
a
.
document
?
b
(
a
,
!
0
):
function
(
a
){
if
(
!
a
.
document
)
throw
new
Error
(
"jQuery requires a window with a document"
);
return
b
(
a
)}:
b
(
a
)}(
"undefined"
!=
typeof
window
?
window
:
this
,
function
(
a
,
b
){
var
c
=
[],
d
=
c
.
slice
,
e
=
c
.
concat
,
f
=
c
.
push
,
g
=
c
.
indexOf
,
h
=
{},
i
=
h
.
toString
,
j
=
h
.
hasOwnProperty
,
k
=
{},
l
=
a
.
document
,
m
=
"2.1.1"
,
n
=
function
(
a
,
b
){
return
new
n
.
fn
.
init
(
a
,
b
)},
o
=
/^
[\s\u
FEFF
\x
A0
]
+|
[\s\u
FEFF
\x
A0
]
+$/g
,
p
=
/^-ms-/
,
q
=
/-
([\d
a-z
])
/gi
,
r
=
function
(
a
,
b
){
return
b
.
toUpperCase
()};
n
.
fn
=
n
.
prototype
=
{
jquery
:
m
,
constructor
:
n
,
selector
:
""
,
length
:
0
,
toArray
:
function
(){
return
d
.
call
(
this
)},
get
:
function
(
a
){
return
null
!=
a
?
0
>
a
?
this
[
a
+
this
.
length
]:
this
[
a
]:
d
.
call
(
this
)},
pushStack
:
function
(
a
){
var
b
=
n
.
merge
(
this
.
constructor
(),
a
);
return
b
.
prevObject
=
this
,
b
.
context
=
this
.
context
,
b
},
each
:
function
(
a
,
b
){
return
n
.
each
(
this
,
a
,
b
)},
map
:
function
(
a
){
return
this
.
pushStack
(
n
.
map
(
this
,
function
(
b
,
c
){
return
a
.
call
(
b
,
c
,
b
)}))},
slice
:
function
(){
return
this
.
pushStack
(
d
.
apply
(
this
,
arguments
))},
first
:
function
(){
return
this
.
eq
(
0
)},
last
:
function
(){
return
this
.
eq
(
-
1
)},
eq
:
function
(
a
){
var
b
=
this
.
length
,
c
=+
a
+
(
0
>
a
?
b
:
0
);
return
this
.
pushStack
(
c
>=
0
&&
b
>
c
?[
this
[
c
]]:[])},
end
:
function
(){
return
this
.
prevObject
||
this
.
constructor
(
null
)},
push
:
f
,
sort
:
c
.
sort
,
splice
:
c
.
splice
},
n
.
extend
=
n
.
fn
.
extend
=
function
(){
var
a
,
b
,
c
,
d
,
e
,
f
,
g
=
arguments
[
0
]
||
{},
h
=
1
,
i
=
arguments
.
length
,
j
=!
1
;
for
(
"boolean"
==
typeof
g
&&
(
j
=
g
,
g
=
arguments
[
h
]
||
{},
h
++
),
"object"
==
typeof
g
||
n
.
isFunction
(
g
)
||
(
g
=
{}),
h
===
i
&&
(
g
=
this
,
h
--
);
i
>
h
;
h
++
)
if
(
null
!=
(
a
=
arguments
[
h
]))
for
(
b
in
a
)
c
=
g
[
b
],
d
=
a
[
b
],
g
!==
d
&&
(
j
&&
d
&&
(
n
.
isPlainObject
(
d
)
||
(
e
=
n
.
isArray
(
d
)))?(
e
?(
e
=!
1
,
f
=
c
&&
n
.
isArray
(
c
)?
c
:[]):
f
=
c
&&
n
.
isPlainObject
(
c
)?
c
:{},
g
[
b
]
=
n
.
extend
(
j
,
f
,
d
)):
void
0
!==
d
&&
(
g
[
b
]
=
d
));
return
g
},
n
.
extend
({
expando
:
"jQuery"
+
(
m
+
Math
.
random
()).
replace
(
/
\D
/g
,
""
),
isReady
:
!
0
,
error
:
function
(
a
){
throw
new
Error
(
a
)},
noop
:
function
(){},
isFunction
:
function
(
a
){
return
"function"
===
n
.
type
(
a
)},
isArray
:
Array
.
isArray
,
isWindow
:
function
(
a
){
return
null
!=
a
&&
a
===
a
.
window
},
isNumeric
:
function
(
a
){
return
!
n
.
isArray
(
a
)
&&
a
-
parseFloat
(
a
)
>=
0
},
isPlainObject
:
function
(
a
){
return
"object"
!==
n
.
type
(
a
)
||
a
.
nodeType
||
n
.
isWindow
(
a
)?
!
1
:
a
.
constructor
&&!
j
.
call
(
a
.
constructor
.
prototype
,
"isPrototypeOf"
)?
!
1
:
!
0
},
isEmptyObject
:
function
(
a
){
var
b
;
for
(
b
in
a
)
return
!
1
;
return
!
0
},
type
:
function
(
a
){
return
null
==
a
?
a
+
""
:
"object"
==
typeof
a
||
"function"
==
typeof
a
?
h
[
i
.
call
(
a
)]
||
"object"
:
typeof
a
},
globalEval
:
function
(
a
){
var
b
,
c
=
eval
;
a
=
n
.
trim
(
a
),
a
&&
(
1
===
a
.
indexOf
(
"use strict"
)?(
b
=
l
.
createElement
(
"script"
),
b
.
text
=
a
,
l
.
head
.
appendChild
(
b
).
parentNode
.
removeChild
(
b
)):
c
(
a
))},
camelCase
:
function
(
a
){
return
a
.
replace
(
p
,
"ms-"
).
replace
(
q
,
r
)},
nodeName
:
function
(
a
,
b
){
return
a
.
nodeName
&&
a
.
nodeName
.
toLowerCase
()
===
b
.
toLowerCase
()},
each
:
function
(
a
,
b
,
c
){
var
d
,
e
=
0
,
f
=
a
.
length
,
g
=
s
(
a
);
if
(
c
){
if
(
g
){
for
(;
f
>
e
;
e
++
)
if
(
d
=
b
.
apply
(
a
[
e
],
c
),
d
===!
1
)
break
}
else
for
(
e
in
a
)
if
(
d
=
b
.
apply
(
a
[
e
],
c
),
d
===!
1
)
break
}
else
if
(
g
){
for
(;
f
>
e
;
e
++
)
if
(
d
=
b
.
call
(
a
[
e
],
e
,
a
[
e
]),
d
===!
1
)
break
}
else
for
(
e
in
a
)
if
(
d
=
b
.
call
(
a
[
e
],
e
,
a
[
e
]),
d
===!
1
)
break
;
return
a
},
trim
:
function
(
a
){
return
null
==
a
?
""
:(
a
+
""
).
replace
(
o
,
""
)},
makeArray
:
function
(
a
,
b
){
var
c
=
b
||
[];
return
null
!=
a
&&
(
s
(
Object
(
a
))?
n
.
merge
(
c
,
"string"
==
typeof
a
?[
a
]:
a
):
f
.
call
(
c
,
a
)),
c
},
inArray
:
function
(
a
,
b
,
c
){
return
null
==
b
?
-
1
:
g
.
call
(
b
,
a
,
c
)},
merge
:
function
(
a
,
b
){
for
(
var
c
=+
b
.
length
,
d
=
0
,
e
=
a
.
length
;
c
>
d
;
d
++
)
a
[
e
++
]
=
b
[
d
];
return
a
.
length
=
e
,
a
},
grep
:
function
(
a
,
b
,
c
){
for
(
var
d
,
e
=
[],
f
=
0
,
g
=
a
.
length
,
h
=!
c
;
g
>
f
;
f
++
)
d
=!
b
(
a
[
f
],
f
),
d
!==
h
&&
e
.
push
(
a
[
f
]);
return
e
},
map
:
function
(
a
,
b
,
c
){
var
d
,
f
=
0
,
g
=
a
.
length
,
h
=
s
(
a
),
i
=
[];
if
(
h
)
for
(;
g
>
f
;
f
++
)
d
=
b
(
a
[
f
],
f
,
c
),
null
!=
d
&&
i
.
push
(
d
);
else
for
(
f
in
a
)
d
=
b
(
a
[
f
],
f
,
c
),
null
!=
d
&&
i
.
push
(
d
);
return
e
.
apply
([],
i
)},
guid
:
1
,
proxy
:
function
(
a
,
b
){
var
c
,
e
,
f
;
return
"string"
==
typeof
b
&&
(
c
=
a
[
b
],
b
=
a
,
a
=
c
),
n
.
isFunction
(
a
)?(
e
=
d
.
call
(
arguments
,
2
),
f
=
function
(){
return
a
.
apply
(
b
||
this
,
e
.
concat
(
d
.
call
(
arguments
)))},
f
.
guid
=
a
.
guid
=
a
.
guid
||
n
.
guid
++
,
f
):
void
0
},
now
:
Date
.
now
,
support
:
k
}),
n
.
each
(
"Boolean Number String Function Array Date RegExp Object Error"
.
split
(
" "
),
function
(
a
,
b
){
h
[
"[object "
+
b
+
"]"
]
=
b
.
toLowerCase
()});
function
s
(
a
){
var
b
=
a
.
length
,
c
=
n
.
type
(
a
);
return
"function"
===
c
||
n
.
isWindow
(
a
)?
!
1
:
1
===
a
.
nodeType
&&
b
?
!
0
:
"array"
===
c
||
0
===
b
||
"number"
==
typeof
b
&&
b
>
0
&&
b
-
1
in
a
}
var
t
=
function
(
a
){
var
b
,
c
,
d
,
e
,
f
,
g
,
h
,
i
,
j
,
k
,
l
,
m
,
n
,
o
,
p
,
q
,
r
,
s
,
t
,
u
=
"sizzle"
+-
new
Date
,
v
=
a
.
document
,
w
=
0
,
x
=
0
,
y
=
gb
(),
z
=
gb
(),
A
=
gb
(),
B
=
function
(
a
,
b
){
return
a
===
b
&&
(
l
=!
0
),
0
},
C
=
"undefined"
,
D
=
1
<<
31
,
E
=
{}.
hasOwnProperty
,
F
=
[],
G
=
F
.
pop
,
H
=
F
.
push
,
I
=
F
.
push
,
J
=
F
.
slice
,
K
=
F
.
indexOf
||
function
(
a
){
for
(
var
b
=
0
,
c
=
this
.
length
;
c
>
b
;
b
++
)
if
(
this
[
b
]
===
a
)
return
b
;
return
-
1
},
L
=
"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped"
,
M
=
"[\\x20\\t\\r\\n\\f]"
,
N
=
"(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+"
,
O
=
N
.
replace
(
"w"
,
"w#"
),
P
=
"\\["
+
M
+
"*("
+
N
+
")(?:"
+
M
+
"*([*^$|!~]?=)"
+
M
+
"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("
+
O
+
"))|)"
+
M
+
"*\\]"
,
Q
=
":("
+
N
+
")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"
+
P
+
")*)|.*)\\)|)"
,
R
=
new
RegExp
(
"^"
+
M
+
"+|((?:^|[^\\\\])(?:\\\\.)*)"
+
M
+
"+$"
,
"g"
),
S
=
new
RegExp
(
"^"
+
M
+
"*,"
+
M
+
"*"
),
T
=
new
RegExp
(
"^"
+
M
+
"*([>+~]|"
+
M
+
")"
+
M
+
"*"
),
U
=
new
RegExp
(
"="
+
M
+
"*([^\\]'\"]*?)"
+
M
+
"*\\]"
,
"g"
),
V
=
new
RegExp
(
Q
),
W
=
new
RegExp
(
"^"
+
O
+
"$"
),
X
=
{
ID
:
new
RegExp
(
"^#("
+
N
+
")"
),
CLASS
:
new
RegExp
(
"^\\.("
+
N
+
")"
),
TAG
:
new
RegExp
(
"^("
+
N
.
replace
(
"w"
,
"w*"
)
+
")"
),
ATTR
:
new
RegExp
(
"^"
+
P
),
PSEUDO
:
new
RegExp
(
"^"
+
Q
),
CHILD
:
new
RegExp
(
"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("
+
M
+
"*(even|odd|(([+-]|)(\\d*)n|)"
+
M
+
"*(?:([+-]|)"
+
M
+
"*(\\d+)|))"
+
M
+
"*\\)|)"
,
"i"
),
bool
:
new
RegExp
(
"^(?:"
+
L
+
")$"
,
"i"
),
needsContext
:
new
RegExp
(
"^"
+
M
+
"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("
+
M
+
"*((?:-\\d)?\\d*)"
+
M
+
"*\\)|)(?=[^-]|$)"
,
"i"
)},
Y
=
/^
(?:
input|select|textarea|button
)
$/i
,
Z
=
/^h
\d
$/i
,
$
=
/^
[^
{
]
+
\{\s
*
\[
native
\w
/
,
_
=
/^
(?:
#
([\w
-
]
+
)
|
(\w
+
)
|
\.([\w
-
]
+
))
$/
,
ab
=
/
[
+~
]
/
,
bb
=
/'|
\\
/g
,
cb
=
new
RegExp
(
"\\\\([\\da-f]{1,6}"
+
M
+
"?|("
+
M
+
")|.)"
,
"ig"
),
db
=
function
(
a
,
b
,
c
){
var
d
=
"0x"
+
b
-
65536
;
return
d
!==
d
||
c
?
b
:
0
>
d
?
String
.
fromCharCode
(
d
+
65536
):
String
.
fromCharCode
(
d
>>
10
|
55296
,
1023
&
d
|
56320
)};
try
{
I
.
apply
(
F
=
J
.
call
(
v
.
childNodes
),
v
.
childNodes
),
F
[
v
.
childNodes
.
length
].
nodeType
}
catch
(
eb
){
I
=
{
apply
:
F
.
length
?
function
(
a
,
b
){
H
.
apply
(
a
,
J
.
call
(
b
))}:
function
(
a
,
b
){
var
c
=
a
.
length
,
d
=
0
;
while
(
a
[
c
++
]
=
b
[
d
++
]);
a
.
length
=
c
-
1
}}}
function
fb
(
a
,
b
,
d
,
e
){
var
f
,
h
,
j
,
k
,
l
,
o
,
r
,
s
,
w
,
x
;
if
((
b
?
b
.
ownerDocument
||
b
:
v
)
!==
n
&&
m
(
b
),
b
=
b
||
n
,
d
=
d
||
[],
!
a
||
"string"
!=
typeof
a
)
return
d
;
if
(
1
!==
(
k
=
b
.
nodeType
)
&&
9
!==
k
)
return
[];
if
(
p
&&!
e
){
if
(
f
=
_
.
exec
(
a
))
if
(
j
=
f
[
1
]){
if
(
9
===
k
){
if
(
h
=
b
.
getElementById
(
j
),
!
h
||!
h
.
parentNode
)
return
d
;
if
(
h
.
id
===
j
)
return
d
.
push
(
h
),
d
}
else
if
(
b
.
ownerDocument
&&
(
h
=
b
.
ownerDocument
.
getElementById
(
j
))
&&
t
(
b
,
h
)
&&
h
.
id
===
j
)
return
d
.
push
(
h
),
d
}
else
{
if
(
f
[
2
])
return
I
.
apply
(
d
,
b
.
getElementsByTagName
(
a
)),
d
;
if
((
j
=
f
[
3
])
&&
c
.
getElementsByClassName
&&
b
.
getElementsByClassName
)
return
I
.
apply
(
d
,
b
.
getElementsByClassName
(
j
)),
d
}
if
(
c
.
qsa
&&
(
!
q
||!
q
.
test
(
a
))){
if
(
s
=
r
=
u
,
w
=
b
,
x
=
9
===
k
&&
a
,
1
===
k
&&
"object"
!==
b
.
nodeName
.
toLowerCase
()){
o
=
g
(
a
),(
r
=
b
.
getAttribute
(
"id"
))?
s
=
r
.
replace
(
bb
,
"\\$&"
):
b
.
setAttribute
(
"id"
,
s
),
s
=
"[id='"
+
s
+
"'] "
,
l
=
o
.
length
;
while
(
l
--
)
o
[
l
]
=
s
+
qb
(
o
[
l
]);
w
=
ab
.
test
(
a
)
&&
ob
(
b
.
parentNode
)
||
b
,
x
=
o
.
join
(
","
)}
if
(
x
)
try
{
return
I
.
apply
(
d
,
w
.
querySelectorAll
(
x
)),
d
}
catch
(
y
){}
finally
{
r
||
b
.
removeAttribute
(
"id"
)}}}
return
i
(
a
.
replace
(
R
,
"$1"
),
b
,
d
,
e
)}
function
gb
(){
var
a
=
[];
function
b
(
c
,
e
){
return
a
.
push
(
c
+
" "
)
>
d
.
cacheLength
&&
delete
b
[
a
.
shift
()],
b
[
c
+
" "
]
=
e
}
return
b
}
function
hb
(
a
){
return
a
[
u
]
=!
0
,
a
}
function
ib
(
a
){
var
b
=
n
.
createElement
(
"div"
);
try
{
return
!!
a
(
b
)}
catch
(
c
){
return
!
1
}
finally
{
b
.
parentNode
&&
b
.
parentNode
.
removeChild
(
b
),
b
=
null
}}
function
jb
(
a
,
b
){
var
c
=
a
.
split
(
"|"
),
e
=
a
.
length
;
while
(
e
--
)
d
.
attrHandle
[
c
[
e
]]
=
b
}
function
kb
(
a
,
b
){
var
c
=
b
&&
a
,
d
=
c
&&
1
===
a
.
nodeType
&&
1
===
b
.
nodeType
&&
(
~
b
.
sourceIndex
||
D
)
-
(
~
a
.
sourceIndex
||
D
);
if
(
d
)
return
d
;
if
(
c
)
while
(
c
=
c
.
nextSibling
)
if
(
c
===
b
)
return
-
1
;
return
a
?
1
:
-
1
}
function
lb
(
a
){
return
function
(
b
){
var
c
=
b
.
nodeName
.
toLowerCase
();
return
"input"
===
c
&&
b
.
type
===
a
}}
function
mb
(
a
){
return
function
(
b
){
var
c
=
b
.
nodeName
.
toLowerCase
();
return
(
"input"
===
c
||
"button"
===
c
)
&&
b
.
type
===
a
}}
function
nb
(
a
){
return
hb
(
function
(
b
){
return
b
=+
b
,
hb
(
function
(
c
,
d
){
var
e
,
f
=
a
([],
c
.
length
,
b
),
g
=
f
.
length
;
while
(
g
--
)
c
[
e
=
f
[
g
]]
&&
(
c
[
e
]
=!
(
d
[
e
]
=
c
[
e
]))})})}
function
ob
(
a
){
return
a
&&
typeof
a
.
getElementsByTagName
!==
C
&&
a
}
c
=
fb
.
support
=
{},
f
=
fb
.
isXML
=
function
(
a
){
var
b
=
a
&&
(
a
.
ownerDocument
||
a
).
documentElement
;
return
b
?
"HTML"
!==
b
.
nodeName
:
!
1
},
m
=
fb
.
setDocument
=
function
(
a
){
var
b
,
e
=
a
?
a
.
ownerDocument
||
a
:
v
,
g
=
e
.
defaultView
;
return
e
!==
n
&&
9
===
e
.
nodeType
&&
e
.
documentElement
?(
n
=
e
,
o
=
e
.
documentElement
,
p
=!
f
(
e
),
g
&&
g
!==
g
.
top
&&
(
g
.
addEventListener
?
g
.
addEventListener
(
"unload"
,
function
(){
m
()},
!
1
):
g
.
attachEvent
&&
g
.
attachEvent
(
"onunload"
,
function
(){
m
()})),
c
.
attributes
=
ib
(
function
(
a
){
return
a
.
className
=
"i"
,
!
a
.
getAttribute
(
"className"
)}),
c
.
getElementsByTagName
=
ib
(
function
(
a
){
return
a
.
appendChild
(
e
.
createComment
(
""
)),
!
a
.
getElementsByTagName
(
"*"
).
length
}),
c
.
getElementsByClassName
=
$
.
test
(
e
.
getElementsByClassName
)
&&
ib
(
function
(
a
){
return
a
.
innerHTML
=
"<div class='a'></div><div class='a i'></div>"
,
a
.
firstChild
.
className
=
"i"
,
2
===
a
.
getElementsByClassName
(
"i"
).
length
}),
c
.
getById
=
ib
(
function
(
a
){
return
o
.
appendChild
(
a
).
id
=
u
,
!
e
.
getElementsByName
||!
e
.
getElementsByName
(
u
).
length
}),
c
.
getById
?(
d
.
find
.
ID
=
function
(
a
,
b
){
if
(
typeof
b
.
getElementById
!==
C
&&
p
){
var
c
=
b
.
getElementById
(
a
);
return
c
&&
c
.
parentNode
?[
c
]:[]}},
d
.
filter
.
ID
=
function
(
a
){
var
b
=
a
.
replace
(
cb
,
db
);
return
function
(
a
){
return
a
.
getAttribute
(
"id"
)
===
b
}}):(
delete
d
.
find
.
ID
,
d
.
filter
.
ID
=
function
(
a
){
var
b
=
a
.
replace
(
cb
,
db
);
return
function
(
a
){
var
c
=
typeof
a
.
getAttributeNode
!==
C
&&
a
.
getAttributeNode
(
"id"
);
return
c
&&
c
.
value
===
b
}}),
d
.
find
.
TAG
=
c
.
getElementsByTagName
?
function
(
a
,
b
){
return
typeof
b
.
getElementsByTagName
!==
C
?
b
.
getElementsByTagName
(
a
):
void
0
}:
function
(
a
,
b
){
var
c
,
d
=
[],
e
=
0
,
f
=
b
.
getElementsByTagName
(
a
);
if
(
"*"
===
a
){
while
(
c
=
f
[
e
++
])
1
===
c
.
nodeType
&&
d
.
push
(
c
);
return
d
}
return
f
},
d
.
find
.
CLASS
=
c
.
getElementsByClassName
&&
function
(
a
,
b
){
return
typeof
b
.
getElementsByClassName
!==
C
&&
p
?
b
.
getElementsByClassName
(
a
):
void
0
},
r
=
[],
q
=
[],(
c
.
qsa
=
$
.
test
(
e
.
querySelectorAll
))
&&
(
ib
(
function
(
a
){
a
.
innerHTML
=
"<select msallowclip=''><option selected=''></option></select>"
,
a
.
querySelectorAll
(
"[msallowclip^='']"
).
length
&&
q
.
push
(
"[*^$]="
+
M
+
"*(?:''|\"\")"
),
a
.
querySelectorAll
(
"[selected]"
).
length
||
q
.
push
(
"\\["
+
M
+
"*(?:value|"
+
L
+
")"
),
a
.
querySelectorAll
(
":checked"
).
length
||
q
.
push
(
":checked"
)}),
ib
(
function
(
a
){
var
b
=
e
.
createElement
(
"input"
);
b
.
setAttribute
(
"type"
,
"hidden"
),
a
.
appendChild
(
b
).
setAttribute
(
"name"
,
"D"
),
a
.
querySelectorAll
(
"[name=d]"
).
length
&&
q
.
push
(
"name"
+
M
+
"*[*^$|!~]?="
),
a
.
querySelectorAll
(
":enabled"
).
length
||
q
.
push
(
":enabled"
,
":disabled"
),
a
.
querySelectorAll
(
"*,:x"
),
q
.
push
(
",.*:"
)})),(
c
.
matchesSelector
=
$
.
test
(
s
=
o
.
matches
||
o
.
webkitMatchesSelector
||
o
.
mozMatchesSelector
||
o
.
oMatchesSelector
||
o
.
msMatchesSelector
))
&&
ib
(
function
(
a
){
c
.
disconnectedMatch
=
s
.
call
(
a
,
"div"
),
s
.
call
(
a
,
"[s!='']:x"
),
r
.
push
(
"!="
,
Q
)}),
q
=
q
.
length
&&
new
RegExp
(
q
.
join
(
"|"
)),
r
=
r
.
length
&&
new
RegExp
(
r
.
join
(
"|"
)),
b
=
$
.
test
(
o
.
compareDocumentPosition
),
t
=
b
||
$
.
test
(
o
.
contains
)?
function
(
a
,
b
){
var
c
=
9
===
a
.
nodeType
?
a
.
documentElement
:
a
,
d
=
b
&&
b
.
parentNode
;
return
a
===
d
||!
(
!
d
||
1
!==
d
.
nodeType
||!
(
c
.
contains
?
c
.
contains
(
d
):
a
.
compareDocumentPosition
&&
16
&
a
.
compareDocumentPosition
(
d
)))}:
function
(
a
,
b
){
if
(
b
)
while
(
b
=
b
.
parentNode
)
if
(
b
===
a
)
return
!
0
;
return
!
1
},
B
=
b
?
function
(
a
,
b
){
if
(
a
===
b
)
return
l
=!
0
,
0
;
var
d
=!
a
.
compareDocumentPosition
-!
b
.
compareDocumentPosition
;
return
d
?
d
:(
d
=
(
a
.
ownerDocument
||
a
)
===
(
b
.
ownerDocument
||
b
)?
a
.
compareDocumentPosition
(
b
):
1
,
1
&
d
||!
c
.
sortDetached
&&
b
.
compareDocumentPosition
(
a
)
===
d
?
a
===
e
||
a
.
ownerDocument
===
v
&&
t
(
v
,
a
)?
-
1
:
b
===
e
||
b
.
ownerDocument
===
v
&&
t
(
v
,
b
)?
1
:
k
?
K
.
call
(
k
,
a
)
-
K
.
call
(
k
,
b
):
0
:
4
&
d
?
-
1
:
1
)}:
function
(
a
,
b
){
if
(
a
===
b
)
return
l
=!
0
,
0
;
var
c
,
d
=
0
,
f
=
a
.
parentNode
,
g
=
b
.
parentNode
,
h
=
[
a
],
i
=
[
b
];
if
(
!
f
||!
g
)
return
a
===
e
?
-
1
:
b
===
e
?
1
:
f
?
-
1
:
g
?
1
:
k
?
K
.
call
(
k
,
a
)
-
K
.
call
(
k
,
b
):
0
;
if
(
f
===
g
)
return
kb
(
a
,
b
);
c
=
a
;
while
(
c
=
c
.
parentNode
)
h
.
unshift
(
c
);
c
=
b
;
while
(
c
=
c
.
parentNode
)
i
.
unshift
(
c
);
while
(
h
[
d
]
===
i
[
d
])
d
++
;
return
d
?
kb
(
h
[
d
],
i
[
d
]):
h
[
d
]
===
v
?
-
1
:
i
[
d
]
===
v
?
1
:
0
},
e
):
n
},
fb
.
matches
=
function
(
a
,
b
){
return
fb
(
a
,
null
,
null
,
b
)},
fb
.
matchesSelector
=
function
(
a
,
b
){
if
((
a
.
ownerDocument
||
a
)
!==
n
&&
m
(
a
),
b
=
b
.
replace
(
U
,
"='$1']"
),
!
(
!
c
.
matchesSelector
||!
p
||
r
&&
r
.
test
(
b
)
||
q
&&
q
.
test
(
b
)))
try
{
var
d
=
s
.
call
(
a
,
b
);
if
(
d
||
c
.
disconnectedMatch
||
a
.
document
&&
11
!==
a
.
document
.
nodeType
)
return
d
}
catch
(
e
){}
return
fb
(
b
,
n
,
null
,[
a
]).
length
>
0
},
fb
.
contains
=
function
(
a
,
b
){
return
(
a
.
ownerDocument
||
a
)
!==
n
&&
m
(
a
),
t
(
a
,
b
)},
fb
.
attr
=
function
(
a
,
b
){(
a
.
ownerDocument
||
a
)
!==
n
&&
m
(
a
);
var
e
=
d
.
attrHandle
[
b
.
toLowerCase
()],
f
=
e
&&
E
.
call
(
d
.
attrHandle
,
b
.
toLowerCase
())?
e
(
a
,
b
,
!
p
):
void
0
;
return
void
0
!==
f
?
f
:
c
.
attributes
||!
p
?
a
.
getAttribute
(
b
):(
f
=
a
.
getAttributeNode
(
b
))
&&
f
.
specified
?
f
.
value
:
null
},
fb
.
error
=
function
(
a
){
throw
new
Error
(
"Syntax error, unrecognized expression: "
+
a
)},
fb
.
uniqueSort
=
function
(
a
){
var
b
,
d
=
[],
e
=
0
,
f
=
0
;
if
(
l
=!
c
.
detectDuplicates
,
k
=!
c
.
sortStable
&&
a
.
slice
(
0
),
a
.
sort
(
B
),
l
){
while
(
b
=
a
[
f
++
])
b
===
a
[
f
]
&&
(
e
=
d
.
push
(
f
));
while
(
e
--
)
a
.
splice
(
d
[
e
],
1
)}
return
k
=
null
,
a
},
e
=
fb
.
getText
=
function
(
a
){
var
b
,
c
=
""
,
d
=
0
,
f
=
a
.
nodeType
;
if
(
f
){
if
(
1
===
f
||
9
===
f
||
11
===
f
){
if
(
"string"
==
typeof
a
.
textContent
)
return
a
.
textContent
;
for
(
a
=
a
.
firstChild
;
a
;
a
=
a
.
nextSibling
)
c
+=
e
(
a
)}
else
if
(
3
===
f
||
4
===
f
)
return
a
.
nodeValue
}
else
while
(
b
=
a
[
d
++
])
c
+=
e
(
b
);
return
c
},
d
=
fb
.
selectors
=
{
cacheLength
:
50
,
createPseudo
:
hb
,
match
:
X
,
attrHandle
:{},
find
:{},
relative
:{
">"
:{
dir
:
"parentNode"
,
first
:
!
0
},
" "
:{
dir
:
"parentNode"
},
"+"
:{
dir
:
"previousSibling"
,
first
:
!
0
},
"~"
:{
dir
:
"previousSibling"
}},
preFilter
:{
ATTR
:
function
(
a
){
return
a
[
1
]
=
a
[
1
].
replace
(
cb
,
db
),
a
[
3
]
=
(
a
[
3
]
||
a
[
4
]
||
a
[
5
]
||
""
).
replace
(
cb
,
db
),
"~="
===
a
[
2
]
&&
(
a
[
3
]
=
" "
+
a
[
3
]
+
" "
),
a
.
slice
(
0
,
4
)},
CHILD
:
function
(
a
){
return
a
[
1
]
=
a
[
1
].
toLowerCase
(),
"nth"
===
a
[
1
].
slice
(
0
,
3
)?(
a
[
3
]
||
fb
.
error
(
a
[
0
]),
a
[
4
]
=+
(
a
[
4
]?
a
[
5
]
+
(
a
[
6
]
||
1
):
2
*
(
"even"
===
a
[
3
]
||
"odd"
===
a
[
3
])),
a
[
5
]
=+
(
a
[
7
]
+
a
[
8
]
||
"odd"
===
a
[
3
])):
a
[
3
]
&&
fb
.
error
(
a
[
0
]),
a
},
PSEUDO
:
function
(
a
){
var
b
,
c
=!
a
[
6
]
&&
a
[
2
];
return
X
.
CHILD
.
test
(
a
[
0
])?
null
:(
a
[
3
]?
a
[
2
]
=
a
[
4
]
||
a
[
5
]
||
""
:
c
&&
V
.
test
(
c
)
&&
(
b
=
g
(
c
,
!
0
))
&&
(
b
=
c
.
indexOf
(
")"
,
c
.
length
-
b
)
-
c
.
length
)
&&
(
a
[
0
]
=
a
[
0
].
slice
(
0
,
b
),
a
[
2
]
=
c
.
slice
(
0
,
b
)),
a
.
slice
(
0
,
3
))}},
filter
:{
TAG
:
function
(
a
){
var
b
=
a
.
replace
(
cb
,
db
).
toLowerCase
();
return
"*"
===
a
?
function
(){
return
!
0
}:
function
(
a
){
return
a
.
nodeName
&&
a
.
nodeName
.
toLowerCase
()
===
b
}},
CLASS
:
function
(
a
){
var
b
=
y
[
a
+
" "
];
return
b
||
(
b
=
new
RegExp
(
"(^|"
+
M
+
")"
+
a
+
"("
+
M
+
"|$)"
))
&&
y
(
a
,
function
(
a
){
return
b
.
test
(
"string"
==
typeof
a
.
className
&&
a
.
className
||
typeof
a
.
getAttribute
!==
C
&&
a
.
getAttribute
(
"class"
)
||
""
)})},
ATTR
:
function
(
a
,
b
,
c
){
return
function
(
d
){
var
e
=
fb
.
attr
(
d
,
a
);
return
null
==
e
?
"!="
===
b
:
b
?(
e
+=
""
,
"="
===
b
?
e
===
c
:
"!="
===
b
?
e
!==
c
:
"^="
===
b
?
c
&&
0
===
e
.
indexOf
(
c
):
"*="
===
b
?
c
&&
e
.
indexOf
(
c
)
>-
1
:
"$="
===
b
?
c
&&
e
.
slice
(
-
c
.
length
)
===
c
:
"~="
===
b
?(
" "
+
e
+
" "
).
indexOf
(
c
)
>-
1
:
"|="
===
b
?
e
===
c
||
e
.
slice
(
0
,
c
.
length
+
1
)
===
c
+
"-"
:
!
1
):
!
0
}},
CHILD
:
function
(
a
,
b
,
c
,
d
,
e
){
var
f
=
"nth"
!==
a
.
slice
(
0
,
3
),
g
=
"last"
!==
a
.
slice
(
-
4
),
h
=
"of-type"
===
b
;
return
1
===
d
&&
0
===
e
?
function
(
a
){
return
!!
a
.
parentNode
}:
function
(
b
,
c
,
i
){
var
j
,
k
,
l
,
m
,
n
,
o
,
p
=
f
!==
g
?
"nextSibling"
:
"previousSibling"
,
q
=
b
.
parentNode
,
r
=
h
&&
b
.
nodeName
.
toLowerCase
(),
s
=!
i
&&!
h
;
if
(
q
){
if
(
f
){
while
(
p
){
l
=
b
;
while
(
l
=
l
[
p
])
if
(
h
?
l
.
nodeName
.
toLowerCase
()
===
r
:
1
===
l
.
nodeType
)
return
!
1
;
o
=
p
=
"only"
===
a
&&!
o
&&
"nextSibling"
}
return
!
0
}
if
(
o
=
[
g
?
q
.
firstChild
:
q
.
lastChild
],
g
&&
s
){
k
=
q
[
u
]
||
(
q
[
u
]
=
{}),
j
=
k
[
a
]
||
[],
n
=
j
[
0
]
===
w
&&
j
[
1
],
m
=
j
[
0
]
===
w
&&
j
[
2
],
l
=
n
&&
q
.
childNodes
[
n
];
while
(
l
=++
n
&&
l
&&
l
[
p
]
||
(
m
=
n
=
0
)
||
o
.
pop
())
if
(
1
===
l
.
nodeType
&&++
m
&&
l
===
b
){
k
[
a
]
=
[
w
,
n
,
m
];
break
}}
else
if
(
s
&&
(
j
=
(
b
[
u
]
||
(
b
[
u
]
=
{}))[
a
])
&&
j
[
0
]
===
w
)
m
=
j
[
1
];
else
while
(
l
=++
n
&&
l
&&
l
[
p
]
||
(
m
=
n
=
0
)
||
o
.
pop
())
if
((
h
?
l
.
nodeName
.
toLowerCase
()
===
r
:
1
===
l
.
nodeType
)
&&++
m
&&
(
s
&&
((
l
[
u
]
||
(
l
[
u
]
=
{}))[
a
]
=
[
w
,
m
]),
l
===
b
))
break
;
return
m
-=
e
,
m
===
d
||
m
%
d
===
0
&&
m
/
d
>=
0
}}},
PSEUDO
:
function
(
a
,
b
){
var
c
,
e
=
d
.
pseudos
[
a
]
||
d
.
setFilters
[
a
.
toLowerCase
()]
||
fb
.
error
(
"unsupported pseudo: "
+
a
);
return
e
[
u
]?
e
(
b
):
e
.
length
>
1
?(
c
=
[
a
,
a
,
""
,
b
],
d
.
setFilters
.
hasOwnProperty
(
a
.
toLowerCase
())?
hb
(
function
(
a
,
c
){
var
d
,
f
=
e
(
a
,
b
),
g
=
f
.
length
;
while
(
g
--
)
d
=
K
.
call
(
a
,
f
[
g
]),
a
[
d
]
=!
(
c
[
d
]
=
f
[
g
])}):
function
(
a
){
return
e
(
a
,
0
,
c
)}):
e
}},
pseudos
:{
not
:
hb
(
function
(
a
){
var
b
=
[],
c
=
[],
d
=
h
(
a
.
replace
(
R
,
"$1"
));
return
d
[
u
]?
hb
(
function
(
a
,
b
,
c
,
e
){
var
f
,
g
=
d
(
a
,
null
,
e
,[]),
h
=
a
.
length
;
while
(
h
--
)(
f
=
g
[
h
])
&&
(
a
[
h
]
=!
(
b
[
h
]
=
f
))}):
function
(
a
,
e
,
f
){
return
b
[
0
]
=
a
,
d
(
b
,
null
,
f
,
c
),
!
c
.
pop
()}}),
has
:
hb
(
function
(
a
){
return
function
(
b
){
return
fb
(
a
,
b
).
length
>
0
}}),
contains
:
hb
(
function
(
a
){
return
function
(
b
){
return
(
b
.
textContent
||
b
.
innerText
||
e
(
b
)).
indexOf
(
a
)
>-
1
}}),
lang
:
hb
(
function
(
a
){
return
W
.
test
(
a
||
""
)
||
fb
.
error
(
"unsupported lang: "
+
a
),
a
=
a
.
replace
(
cb
,
db
).
toLowerCase
(),
function
(
b
){
var
c
;
do
if
(
c
=
p
?
b
.
lang
:
b
.
getAttribute
(
"xml:lang"
)
||
b
.
getAttribute
(
"lang"
))
return
c
=
c
.
toLowerCase
(),
c
===
a
||
0
===
c
.
indexOf
(
a
+
"-"
);
while
((
b
=
b
.
parentNode
)
&&
1
===
b
.
nodeType
);
return
!
1
}}),
target
:
function
(
b
){
var
c
=
a
.
location
&&
a
.
location
.
hash
;
return
c
&&
c
.
slice
(
1
)
===
b
.
id
},
root
:
function
(
a
){
return
a
===
o
},
focus
:
function
(
a
){
return
a
===
n
.
activeElement
&&
(
!
n
.
hasFocus
||
n
.
hasFocus
())
&&!!
(
a
.
type
||
a
.
href
||~
a
.
tabIndex
)},
enabled
:
function
(
a
){
return
a
.
disabled
===!
1
},
disabled
:
function
(
a
){
return
a
.
disabled
===!
0
},
checked
:
function
(
a
){
var
b
=
a
.
nodeName
.
toLowerCase
();
return
"input"
===
b
&&!!
a
.
checked
||
"option"
===
b
&&!!
a
.
selected
},
selected
:
function
(
a
){
return
a
.
parentNode
&&
a
.
parentNode
.
selectedIndex
,
a
.
selected
===!
0
},
empty
:
function
(
a
){
for
(
a
=
a
.
firstChild
;
a
;
a
=
a
.
nextSibling
)
if
(
a
.
nodeType
<
6
)
return
!
1
;
return
!
0
},
parent
:
function
(
a
){
return
!
d
.
pseudos
.
empty
(
a
)},
header
:
function
(
a
){
return
Z
.
test
(
a
.
nodeName
)},
input
:
function
(
a
){
return
Y
.
test
(
a
.
nodeName
)},
button
:
function
(
a
){
var
b
=
a
.
nodeName
.
toLowerCase
();
return
"input"
===
b
&&
"button"
===
a
.
type
||
"button"
===
b
},
text
:
function
(
a
){
var
b
;
return
"input"
===
a
.
nodeName
.
toLowerCase
()
&&
"text"
===
a
.
type
&&
(
null
==
(
b
=
a
.
getAttribute
(
"type"
))
||
"text"
===
b
.
toLowerCase
())},
first
:
nb
(
function
(){
return
[
0
]}),
last
:
nb
(
function
(
a
,
b
){
return
[
b
-
1
]}),
eq
:
nb
(
function
(
a
,
b
,
c
){
return
[
0
>
c
?
c
+
b
:
c
]}),
even
:
nb
(
function
(
a
,
b
){
for
(
var
c
=
0
;
b
>
c
;
c
+=
2
)
a
.
push
(
c
);
return
a
}),
odd
:
nb
(
function
(
a
,
b
){
for
(
var
c
=
1
;
b
>
c
;
c
+=
2
)
a
.
push
(
c
);
return
a
}),
lt
:
nb
(
function
(
a
,
b
,
c
){
for
(
var
d
=
0
>
c
?
c
+
b
:
c
;
--
d
>=
0
;)
a
.
push
(
d
);
return
a
}),
gt
:
nb
(
function
(
a
,
b
,
c
){
for
(
var
d
=
0
>
c
?
c
+
b
:
c
;
++
d
<
b
;)
a
.
push
(
d
);
return
a
})}},
d
.
pseudos
.
nth
=
d
.
pseudos
.
eq
;
for
(
b
in
{
radio
:
!
0
,
checkbox
:
!
0
,
file
:
!
0
,
password
:
!
0
,
image
:
!
0
})
d
.
pseudos
[
b
]
=
lb
(
b
);
for
(
b
in
{
submit
:
!
0
,
reset
:
!
0
})
d
.
pseudos
[
b
]
=
mb
(
b
);
function
pb
(){}
pb
.
prototype
=
d
.
filters
=
d
.
pseudos
,
d
.
setFilters
=
new
pb
,
g
=
fb
.
tokenize
=
function
(
a
,
b
){
var
c
,
e
,
f
,
g
,
h
,
i
,
j
,
k
=
z
[
a
+
" "
];
if
(
k
)
return
b
?
0
:
k
.
slice
(
0
);
h
=
a
,
i
=
[],
j
=
d
.
preFilter
;
while
(
h
){(
!
c
||
(
e
=
S
.
exec
(
h
)))
&&
(
e
&&
(
h
=
h
.
slice
(
e
[
0
].
length
)
||
h
),
i
.
push
(
f
=
[])),
c
=!
1
,(
e
=
T
.
exec
(
h
))
&&
(
c
=
e
.
shift
(),
f
.
push
({
value
:
c
,
type
:
e
[
0
].
replace
(
R
,
" "
)}),
h
=
h
.
slice
(
c
.
length
));
for
(
g
in
d
.
filter
)
!
(
e
=
X
[
g
].
exec
(
h
))
||
j
[
g
]
&&!
(
e
=
j
[
g
](
e
))
||
(
c
=
e
.
shift
(),
f
.
push
({
value
:
c
,
type
:
g
,
matches
:
e
}),
h
=
h
.
slice
(
c
.
length
));
if
(
!
c
)
break
}
return
b
?
h
.
length
:
h
?
fb
.
error
(
a
):
z
(
a
,
i
).
slice
(
0
)};
function
qb
(
a
){
for
(
var
b
=
0
,
c
=
a
.
length
,
d
=
""
;
c
>
b
;
b
++
)
d
+=
a
[
b
].
value
;
return
d
}
function
rb
(
a
,
b
,
c
){
var
d
=
b
.
dir
,
e
=
c
&&
"parentNode"
===
d
,
f
=
x
++
;
return
b
.
first
?
function
(
b
,
c
,
f
){
while
(
b
=
b
[
d
])
if
(
1
===
b
.
nodeType
||
e
)
return
a
(
b
,
c
,
f
)}:
function
(
b
,
c
,
g
){
var
h
,
i
,
j
=
[
w
,
f
];
if
(
g
){
while
(
b
=
b
[
d
])
if
((
1
===
b
.
nodeType
||
e
)
&&
a
(
b
,
c
,
g
))
return
!
0
}
else
while
(
b
=
b
[
d
])
if
(
1
===
b
.
nodeType
||
e
){
if
(
i
=
b
[
u
]
||
(
b
[
u
]
=
{}),(
h
=
i
[
d
])
&&
h
[
0
]
===
w
&&
h
[
1
]
===
f
)
return
j
[
2
]
=
h
[
2
];
if
(
i
[
d
]
=
j
,
j
[
2
]
=
a
(
b
,
c
,
g
))
return
!
0
}}}
function
sb
(
a
){
return
a
.
length
>
1
?
function
(
b
,
c
,
d
){
var
e
=
a
.
length
;
while
(
e
--
)
if
(
!
a
[
e
](
b
,
c
,
d
))
return
!
1
;
return
!
0
}:
a
[
0
]}
function
tb
(
a
,
b
,
c
){
for
(
var
d
=
0
,
e
=
b
.
length
;
e
>
d
;
d
++
)
fb
(
a
,
b
[
d
],
c
);
return
c
}
function
ub
(
a
,
b
,
c
,
d
,
e
){
for
(
var
f
,
g
=
[],
h
=
0
,
i
=
a
.
length
,
j
=
null
!=
b
;
i
>
h
;
h
++
)(
f
=
a
[
h
])
&&
(
!
c
||
c
(
f
,
d
,
e
))
&&
(
g
.
push
(
f
),
j
&&
b
.
push
(
h
));
return
g
}
function
vb
(
a
,
b
,
c
,
d
,
e
,
f
){
return
d
&&!
d
[
u
]
&&
(
d
=
vb
(
d
)),
e
&&!
e
[
u
]
&&
(
e
=
vb
(
e
,
f
)),
hb
(
function
(
f
,
g
,
h
,
i
){
var
j
,
k
,
l
,
m
=
[],
n
=
[],
o
=
g
.
length
,
p
=
f
||
tb
(
b
||
"*"
,
h
.
nodeType
?[
h
]:
h
,[]),
q
=!
a
||!
f
&&
b
?
p
:
ub
(
p
,
m
,
a
,
h
,
i
),
r
=
c
?
e
||
(
f
?
a
:
o
||
d
)?[]:
g
:
q
;
if
(
c
&&
c
(
q
,
r
,
h
,
i
),
d
){
j
=
ub
(
r
,
n
),
d
(
j
,[],
h
,
i
),
k
=
j
.
length
;
while
(
k
--
)(
l
=
j
[
k
])
&&
(
r
[
n
[
k
]]
=!
(
q
[
n
[
k
]]
=
l
))}
if
(
f
){
if
(
e
||
a
){
if
(
e
){
j
=
[],
k
=
r
.
length
;
while
(
k
--
)(
l
=
r
[
k
])
&&
j
.
push
(
q
[
k
]
=
l
);
e
(
null
,
r
=
[],
j
,
i
)}
k
=
r
.
length
;
while
(
k
--
)(
l
=
r
[
k
])
&&
(
j
=
e
?
K
.
call
(
f
,
l
):
m
[
k
])
>-
1
&&
(
f
[
j
]
=!
(
g
[
j
]
=
l
))}}
else
r
=
ub
(
r
===
g
?
r
.
splice
(
o
,
r
.
length
):
r
),
e
?
e
(
null
,
g
,
r
,
i
):
I
.
apply
(
g
,
r
)})}
function
wb
(
a
){
for
(
var
b
,
c
,
e
,
f
=
a
.
length
,
g
=
d
.
relative
[
a
[
0
].
type
],
h
=
g
||
d
.
relative
[
" "
],
i
=
g
?
1
:
0
,
k
=
rb
(
function
(
a
){
return
a
===
b
},
h
,
!
0
),
l
=
rb
(
function
(
a
){
return
K
.
call
(
b
,
a
)
>-
1
},
h
,
!
0
),
m
=
[
function
(
a
,
c
,
d
){
return
!
g
&&
(
d
||
c
!==
j
)
||
((
b
=
c
).
nodeType
?
k
(
a
,
c
,
d
):
l
(
a
,
c
,
d
))}];
f
>
i
;
i
++
)
if
(
c
=
d
.
relative
[
a
[
i
].
type
])
m
=
[
rb
(
sb
(
m
),
c
)];
else
{
if
(
c
=
d
.
filter
[
a
[
i
].
type
].
apply
(
null
,
a
[
i
].
matches
),
c
[
u
]){
for
(
e
=++
i
;
f
>
e
;
e
++
)
if
(
d
.
relative
[
a
[
e
].
type
])
break
;
return
vb
(
i
>
1
&&
sb
(
m
),
i
>
1
&&
qb
(
a
.
slice
(
0
,
i
-
1
).
concat
({
value
:
" "
===
a
[
i
-
2
].
type
?
"*"
:
""
})).
replace
(
R
,
"$1"
),
c
,
e
>
i
&&
wb
(
a
.
slice
(
i
,
e
)),
f
>
e
&&
wb
(
a
=
a
.
slice
(
e
)),
f
>
e
&&
qb
(
a
))}
m
.
push
(
c
)}
return
sb
(
m
)}
function
xb
(
a
,
b
){
var
c
=
b
.
length
>
0
,
e
=
a
.
length
>
0
,
f
=
function
(
f
,
g
,
h
,
i
,
k
){
var
l
,
m
,
o
,
p
=
0
,
q
=
"0"
,
r
=
f
&&
[],
s
=
[],
t
=
j
,
u
=
f
||
e
&&
d
.
find
.
TAG
(
"*"
,
k
),
v
=
w
+=
null
==
t
?
1
:
Math
.
random
()
||
.
1
,
x
=
u
.
length
;
for
(
k
&&
(
j
=
g
!==
n
&&
g
);
q
!==
x
&&
null
!=
(
l
=
u
[
q
]);
q
++
){
if
(
e
&&
l
){
m
=
0
;
while
(
o
=
a
[
m
++
])
if
(
o
(
l
,
g
,
h
)){
i
.
push
(
l
);
break
}
k
&&
(
w
=
v
)}
c
&&
((
l
=!
o
&&
l
)
&&
p
--
,
f
&&
r
.
push
(
l
))}
if
(
p
+=
q
,
c
&&
q
!==
p
){
m
=
0
;
while
(
o
=
b
[
m
++
])
o
(
r
,
s
,
g
,
h
);
if
(
f
){
if
(
p
>
0
)
while
(
q
--
)
r
[
q
]
||
s
[
q
]
||
(
s
[
q
]
=
G
.
call
(
i
));
s
=
ub
(
s
)}
I
.
apply
(
i
,
s
),
k
&&!
f
&&
s
.
length
>
0
&&
p
+
b
.
length
>
1
&&
fb
.
uniqueSort
(
i
)}
return
k
&&
(
w
=
v
,
j
=
t
),
r
};
return
c
?
hb
(
f
):
f
}
return
h
=
fb
.
compile
=
function
(
a
,
b
){
var
c
,
d
=
[],
e
=
[],
f
=
A
[
a
+
" "
];
if
(
!
f
){
b
||
(
b
=
g
(
a
)),
c
=
b
.
length
;
while
(
c
--
)
f
=
wb
(
b
[
c
]),
f
[
u
]?
d
.
push
(
f
):
e
.
push
(
f
);
f
=
A
(
a
,
xb
(
e
,
d
)),
f
.
selector
=
a
}
return
f
},
i
=
fb
.
select
=
function
(
a
,
b
,
e
,
f
){
var
i
,
j
,
k
,
l
,
m
,
n
=
"function"
==
typeof
a
&&
a
,
o
=!
f
&&
g
(
a
=
n
.
selector
||
a
);
if
(
e
=
e
||
[],
1
===
o
.
length
){
if
(
j
=
o
[
0
]
=
o
[
0
].
slice
(
0
),
j
.
length
>
2
&&
"ID"
===
(
k
=
j
[
0
]).
type
&&
c
.
getById
&&
9
===
b
.
nodeType
&&
p
&&
d
.
relative
[
j
[
1
].
type
]){
if
(
b
=
(
d
.
find
.
ID
(
k
.
matches
[
0
].
replace
(
cb
,
db
),
b
)
||
[])[
0
],
!
b
)
return
e
;
n
&&
(
b
=
b
.
parentNode
),
a
=
a
.
slice
(
j
.
shift
().
value
.
length
)}
i
=
X
.
needsContext
.
test
(
a
)?
0
:
j
.
length
;
while
(
i
--
){
if
(
k
=
j
[
i
],
d
.
relative
[
l
=
k
.
type
])
break
;
if
((
m
=
d
.
find
[
l
])
&&
(
f
=
m
(
k
.
matches
[
0
].
replace
(
cb
,
db
),
ab
.
test
(
j
[
0
].
type
)
&&
ob
(
b
.
parentNode
)
||
b
))){
if
(
j
.
splice
(
i
,
1
),
a
=
f
.
length
&&
qb
(
j
),
!
a
)
return
I
.
apply
(
e
,
f
),
e
;
break
}}}
return
(
n
||
h
(
a
,
o
))(
f
,
b
,
!
p
,
e
,
ab
.
test
(
a
)
&&
ob
(
b
.
parentNode
)
||
b
),
e
},
c
.
sortStable
=
u
.
split
(
""
).
sort
(
B
).
join
(
""
)
===
u
,
c
.
detectDuplicates
=!!
l
,
m
(),
c
.
sortDetached
=
ib
(
function
(
a
){
return
1
&
a
.
compareDocumentPosition
(
n
.
createElement
(
"div"
))}),
ib
(
function
(
a
){
return
a
.
innerHTML
=
"<a href='#'></a>"
,
"#"
===
a
.
firstChild
.
getAttribute
(
"href"
)})
||
jb
(
"type|href|height|width"
,
function
(
a
,
b
,
c
){
return
c
?
void
0
:
a
.
getAttribute
(
b
,
"type"
===
b
.
toLowerCase
()?
1
:
2
)}),
c
.
attributes
&&
ib
(
function
(
a
){
return
a
.
innerHTML
=
"<input/>"
,
a
.
firstChild
.
setAttribute
(
"value"
,
""
),
""
===
a
.
firstChild
.
getAttribute
(
"value"
)})
||
jb
(
"value"
,
function
(
a
,
b
,
c
){
return
c
||
"input"
!==
a
.
nodeName
.
toLowerCase
()?
void
0
:
a
.
defaultValue
}),
ib
(
function
(
a
){
return
null
==
a
.
getAttribute
(
"disabled"
)})
||
jb
(
L
,
function
(
a
,
b
,
c
){
var
d
;
return
c
?
void
0
:
a
[
b
]
===!
0
?
b
.
toLowerCase
():(
d
=
a
.
getAttributeNode
(
b
))
&&
d
.
specified
?
d
.
value
:
null
}),
fb
}(
a
);
n
.
find
=
t
,
n
.
expr
=
t
.
selectors
,
n
.
expr
[
":"
]
=
n
.
expr
.
pseudos
,
n
.
unique
=
t
.
uniqueSort
,
n
.
text
=
t
.
getText
,
n
.
isXMLDoc
=
t
.
isXML
,
n
.
contains
=
t
.
contains
;
var
u
=
n
.
expr
.
match
.
needsContext
,
v
=
/^<
(\w
+
)\s
*
\/?
>
(?:
<
\/\1
>|
)
$/
,
w
=
/^.
[^
:#
\[\.
,
]
*$/
;
function
x
(
a
,
b
,
c
){
if
(
n
.
isFunction
(
b
))
return
n
.
grep
(
a
,
function
(
a
,
d
){
return
!!
b
.
call
(
a
,
d
,
a
)
!==
c
});
if
(
b
.
nodeType
)
return
n
.
grep
(
a
,
function
(
a
){
return
a
===
b
!==
c
});
if
(
"string"
==
typeof
b
){
if
(
w
.
test
(
b
))
return
n
.
filter
(
b
,
a
,
c
);
b
=
n
.
filter
(
b
,
a
)}
return
n
.
grep
(
a
,
function
(
a
){
return
g
.
call
(
b
,
a
)
>=
0
!==
c
})}
n
.
filter
=
function
(
a
,
b
,
c
){
var
d
=
b
[
0
];
return
c
&&
(
a
=
":not("
+
a
+
")"
),
1
===
b
.
length
&&
1
===
d
.
nodeType
?
n
.
find
.
matchesSelector
(
d
,
a
)?[
d
]:[]:
n
.
find
.
matches
(
a
,
n
.
grep
(
b
,
function
(
a
){
return
1
===
a
.
nodeType
}))},
n
.
fn
.
extend
({
find
:
function
(
a
){
var
b
,
c
=
this
.
length
,
d
=
[],
e
=
this
;
if
(
"string"
!=
typeof
a
)
return
this
.
pushStack
(
n
(
a
).
filter
(
function
(){
for
(
b
=
0
;
c
>
b
;
b
++
)
if
(
n
.
contains
(
e
[
b
],
this
))
return
!
0
}));
for
(
b
=
0
;
c
>
b
;
b
++
)
n
.
find
(
a
,
e
[
b
],
d
);
return
d
=
this
.
pushStack
(
c
>
1
?
n
.
unique
(
d
):
d
),
d
.
selector
=
this
.
selector
?
this
.
selector
+
" "
+
a
:
a
,
d
},
filter
:
function
(
a
){
return
this
.
pushStack
(
x
(
this
,
a
||
[],
!
1
))},
not
:
function
(
a
){
return
this
.
pushStack
(
x
(
this
,
a
||
[],
!
0
))},
is
:
function
(
a
){
return
!!
x
(
this
,
"string"
==
typeof
a
&&
u
.
test
(
a
)?
n
(
a
):
a
||
[],
!
1
).
length
}});
var
y
,
z
=
/^
(?:\s
*
(
<
[\w\W]
+>
)[^
>
]
*|#
([\w
-
]
*
))
$/
,
A
=
n
.
fn
.
init
=
function
(
a
,
b
){
var
c
,
d
;
if
(
!
a
)
return
this
;
if
(
"string"
==
typeof
a
){
if
(
c
=
"<"
===
a
[
0
]
&&
">"
===
a
[
a
.
length
-
1
]
&&
a
.
length
>=
3
?[
null
,
a
,
null
]:
z
.
exec
(
a
),
!
c
||!
c
[
1
]
&&
b
)
return
!
b
||
b
.
jquery
?(
b
||
y
).
find
(
a
):
this
.
constructor
(
b
).
find
(
a
);
if
(
c
[
1
]){
if
(
b
=
b
instanceof
n
?
b
[
0
]:
b
,
n
.
merge
(
this
,
n
.
parseHTML
(
c
[
1
],
b
&&
b
.
nodeType
?
b
.
ownerDocument
||
b
:
l
,
!
0
)),
v
.
test
(
c
[
1
])
&&
n
.
isPlainObject
(
b
))
for
(
c
in
b
)
n
.
isFunction
(
this
[
c
])?
this
[
c
](
b
[
c
]):
this
.
attr
(
c
,
b
[
c
]);
return
this
}
return
d
=
l
.
getElementById
(
c
[
2
]),
d
&&
d
.
parentNode
&&
(
this
.
length
=
1
,
this
[
0
]
=
d
),
this
.
context
=
l
,
this
.
selector
=
a
,
this
}
return
a
.
nodeType
?(
this
.
context
=
this
[
0
]
=
a
,
this
.
length
=
1
,
this
):
n
.
isFunction
(
a
)?
"undefined"
!=
typeof
y
.
ready
?
y
.
ready
(
a
):
a
(
n
):(
void
0
!==
a
.
selector
&&
(
this
.
selector
=
a
.
selector
,
this
.
context
=
a
.
context
),
n
.
makeArray
(
a
,
this
))};
A
.
prototype
=
n
.
fn
,
y
=
n
(
l
);
var
B
=
/^
(?:
parents|prev
(?:
Until|All
))
/
,
C
=
{
children
:
!
0
,
contents
:
!
0
,
next
:
!
0
,
prev
:
!
0
};
n
.
extend
({
dir
:
function
(
a
,
b
,
c
){
var
d
=
[],
e
=
void
0
!==
c
;
while
((
a
=
a
[
b
])
&&
9
!==
a
.
nodeType
)
if
(
1
===
a
.
nodeType
){
if
(
e
&&
n
(
a
).
is
(
c
))
break
;
d
.
push
(
a
)}
return
d
},
sibling
:
function
(
a
,
b
){
for
(
var
c
=
[];
a
;
a
=
a
.
nextSibling
)
1
===
a
.
nodeType
&&
a
!==
b
&&
c
.
push
(
a
);
return
c
}}),
n
.
fn
.
extend
({
has
:
function
(
a
){
var
b
=
n
(
a
,
this
),
c
=
b
.
length
;
return
this
.
filter
(
function
(){
for
(
var
a
=
0
;
c
>
a
;
a
++
)
if
(
n
.
contains
(
this
,
b
[
a
]))
return
!
0
})},
closest
:
function
(
a
,
b
){
for
(
var
c
,
d
=
0
,
e
=
this
.
length
,
f
=
[],
g
=
u
.
test
(
a
)
||
"string"
!=
typeof
a
?
n
(
a
,
b
||
this
.
context
):
0
;
e
>
d
;
d
++
)
for
(
c
=
this
[
d
];
c
&&
c
!==
b
;
c
=
c
.
parentNode
)
if
(
c
.
nodeType
<
11
&&
(
g
?
g
.
index
(
c
)
>-
1
:
1
===
c
.
nodeType
&&
n
.
find
.
matchesSelector
(
c
,
a
))){
f
.
push
(
c
);
break
}
return
this
.
pushStack
(
f
.
length
>
1
?
n
.
unique
(
f
):
f
)},
index
:
function
(
a
){
return
a
?
"string"
==
typeof
a
?
g
.
call
(
n
(
a
),
this
[
0
]):
g
.
call
(
this
,
a
.
jquery
?
a
[
0
]:
a
):
this
[
0
]
&&
this
[
0
].
parentNode
?
this
.
first
().
prevAll
().
length
:
-
1
},
add
:
function
(
a
,
b
){
return
this
.
pushStack
(
n
.
unique
(
n
.
merge
(
this
.
get
(),
n
(
a
,
b
))))},
addBack
:
function
(
a
){
return
this
.
add
(
null
==
a
?
this
.
prevObject
:
this
.
prevObject
.
filter
(
a
))}});
function
D
(
a
,
b
){
while
((
a
=
a
[
b
])
&&
1
!==
a
.
nodeType
);
return
a
}
n
.
each
({
parent
:
function
(
a
){
var
b
=
a
.
parentNode
;
return
b
&&
11
!==
b
.
nodeType
?
b
:
null
},
parents
:
function
(
a
){
return
n
.
dir
(
a
,
"parentNode"
)},
parentsUntil
:
function
(
a
,
b
,
c
){
return
n
.
dir
(
a
,
"parentNode"
,
c
)},
next
:
function
(
a
){
return
D
(
a
,
"nextSibling"
)},
prev
:
function
(
a
){
return
D
(
a
,
"previousSibling"
)},
nextAll
:
function
(
a
){
return
n
.
dir
(
a
,
"nextSibling"
)},
prevAll
:
function
(
a
){
return
n
.
dir
(
a
,
"previousSibling"
)},
nextUntil
:
function
(
a
,
b
,
c
){
return
n
.
dir
(
a
,
"nextSibling"
,
c
)},
prevUntil
:
function
(
a
,
b
,
c
){
return
n
.
dir
(
a
,
"previousSibling"
,
c
)},
siblings
:
function
(
a
){
return
n
.
sibling
((
a
.
parentNode
||
{}).
firstChild
,
a
)},
children
:
function
(
a
){
return
n
.
sibling
(
a
.
firstChild
)},
contents
:
function
(
a
){
return
a
.
contentDocument
||
n
.
merge
([],
a
.
childNodes
)}},
function
(
a
,
b
){
n
.
fn
[
a
]
=
function
(
c
,
d
){
var
e
=
n
.
map
(
this
,
b
,
c
);
return
"Until"
!==
a
.
slice
(
-
5
)
&&
(
d
=
c
),
d
&&
"string"
==
typeof
d
&&
(
e
=
n
.
filter
(
d
,
e
)),
this
.
length
>
1
&&
(
C
[
a
]
||
n
.
unique
(
e
),
B
.
test
(
a
)
&&
e
.
reverse
()),
this
.
pushStack
(
e
)}});
var
E
=
/
\S
+/g
,
F
=
{};
function
G
(
a
){
var
b
=
F
[
a
]
=
{};
return
n
.
each
(
a
.
match
(
E
)
||
[],
function
(
a
,
c
){
b
[
c
]
=!
0
}),
b
}
n
.
Callbacks
=
function
(
a
){
a
=
"string"
==
typeof
a
?
F
[
a
]
||
G
(
a
):
n
.
extend
({},
a
);
var
b
,
c
,
d
,
e
,
f
,
g
,
h
=
[],
i
=!
a
.
once
&&
[],
j
=
function
(
l
){
for
(
b
=
a
.
memory
&&
l
,
c
=!
0
,
g
=
e
||
0
,
e
=
0
,
f
=
h
.
length
,
d
=!
0
;
h
&&
f
>
g
;
g
++
)
if
(
h
[
g
].
apply
(
l
[
0
],
l
[
1
])
===!
1
&&
a
.
stopOnFalse
){
b
=!
1
;
break
}
d
=!
1
,
h
&&
(
i
?
i
.
length
&&
j
(
i
.
shift
()):
b
?
h
=
[]:
k
.
disable
())},
k
=
{
add
:
function
(){
if
(
h
){
var
c
=
h
.
length
;
!
function
g
(
b
){
n
.
each
(
b
,
function
(
b
,
c
){
var
d
=
n
.
type
(
c
);
"function"
===
d
?
a
.
unique
&&
k
.
has
(
c
)
||
h
.
push
(
c
):
c
&&
c
.
length
&&
"string"
!==
d
&&
g
(
c
)})}(
arguments
),
d
?
f
=
h
.
length
:
b
&&
(
e
=
c
,
j
(
b
))}
return
this
},
remove
:
function
(){
return
h
&&
n
.
each
(
arguments
,
function
(
a
,
b
){
var
c
;
while
((
c
=
n
.
inArray
(
b
,
h
,
c
))
>-
1
)
h
.
splice
(
c
,
1
),
d
&&
(
f
>=
c
&&
f
--
,
g
>=
c
&&
g
--
)}),
this
},
has
:
function
(
a
){
return
a
?
n
.
inArray
(
a
,
h
)
>-
1
:
!
(
!
h
||!
h
.
length
)},
empty
:
function
(){
return
h
=
[],
f
=
0
,
this
},
disable
:
function
(){
return
h
=
i
=
b
=
void
0
,
this
},
disabled
:
function
(){
return
!
h
},
lock
:
function
(){
return
i
=
void
0
,
b
||
k
.
disable
(),
this
},
locked
:
function
(){
return
!
i
},
fireWith
:
function
(
a
,
b
){
return
!
h
||
c
&&!
i
||
(
b
=
b
||
[],
b
=
[
a
,
b
.
slice
?
b
.
slice
():
b
],
d
?
i
.
push
(
b
):
j
(
b
)),
this
},
fire
:
function
(){
return
k
.
fireWith
(
this
,
arguments
),
this
},
fired
:
function
(){
return
!!
c
}};
return
k
},
n
.
extend
({
Deferred
:
function
(
a
){
var
b
=
[[
"resolve"
,
"done"
,
n
.
Callbacks
(
"once memory"
),
"resolved"
],[
"reject"
,
"fail"
,
n
.
Callbacks
(
"once memory"
),
"rejected"
],[
"notify"
,
"progress"
,
n
.
Callbacks
(
"memory"
)]],
c
=
"pending"
,
d
=
{
state
:
function
(){
return
c
},
always
:
function
(){
return
e
.
done
(
arguments
).
fail
(
arguments
),
this
},
then
:
function
(){
var
a
=
arguments
;
return
n
.
Deferred
(
function
(
c
){
n
.
each
(
b
,
function
(
b
,
f
){
var
g
=
n
.
isFunction
(
a
[
b
])
&&
a
[
b
];
e
[
f
[
1
]](
function
(){
var
a
=
g
&&
g
.
apply
(
this
,
arguments
);
a
&&
n
.
isFunction
(
a
.
promise
)?
a
.
promise
().
done
(
c
.
resolve
).
fail
(
c
.
reject
).
progress
(
c
.
notify
):
c
[
f
[
0
]
+
"With"
](
this
===
d
?
c
.
promise
():
this
,
g
?[
a
]:
arguments
)})}),
a
=
null
}).
promise
()},
promise
:
function
(
a
){
return
null
!=
a
?
n
.
extend
(
a
,
d
):
d
}},
e
=
{};
return
d
.
pipe
=
d
.
then
,
n
.
each
(
b
,
function
(
a
,
f
){
var
g
=
f
[
2
],
h
=
f
[
3
];
d
[
f
[
1
]]
=
g
.
add
,
h
&&
g
.
add
(
function
(){
c
=
h
},
b
[
1
^
a
][
2
].
disable
,
b
[
2
][
2
].
lock
),
e
[
f
[
0
]]
=
function
(){
return
e
[
f
[
0
]
+
"With"
](
this
===
e
?
d
:
this
,
arguments
),
this
},
e
[
f
[
0
]
+
"With"
]
=
g
.
fireWith
}),
d
.
promise
(
e
),
a
&&
a
.
call
(
e
,
e
),
e
},
when
:
function
(
a
){
var
b
=
0
,
c
=
d
.
call
(
arguments
),
e
=
c
.
length
,
f
=
1
!==
e
||
a
&&
n
.
isFunction
(
a
.
promise
)?
e
:
0
,
g
=
1
===
f
?
a
:
n
.
Deferred
(),
h
=
function
(
a
,
b
,
c
){
return
function
(
e
){
b
[
a
]
=
this
,
c
[
a
]
=
arguments
.
length
>
1
?
d
.
call
(
arguments
):
e
,
c
===
i
?
g
.
notifyWith
(
b
,
c
):
--
f
||
g
.
resolveWith
(
b
,
c
)}},
i
,
j
,
k
;
if
(
e
>
1
)
for
(
i
=
new
Array
(
e
),
j
=
new
Array
(
e
),
k
=
new
Array
(
e
);
e
>
b
;
b
++
)
c
[
b
]
&&
n
.
isFunction
(
c
[
b
].
promise
)?
c
[
b
].
promise
().
done
(
h
(
b
,
k
,
c
)).
fail
(
g
.
reject
).
progress
(
h
(
b
,
j
,
i
)):
--
f
;
return
f
||
g
.
resolveWith
(
k
,
c
),
g
.
promise
()}});
var
H
;
n
.
fn
.
ready
=
function
(
a
){
return
n
.
ready
.
promise
().
done
(
a
),
this
},
n
.
extend
({
isReady
:
!
1
,
readyWait
:
1
,
holdReady
:
function
(
a
){
a
?
n
.
readyWait
++
:
n
.
ready
(
!
0
)},
ready
:
function
(
a
){(
a
===!
0
?
--
n
.
readyWait
:
n
.
isReady
)
||
(
n
.
isReady
=!
0
,
a
!==!
0
&&--
n
.
readyWait
>
0
||
(
H
.
resolveWith
(
l
,[
n
]),
n
.
fn
.
triggerHandler
&&
(
n
(
l
).
triggerHandler
(
"ready"
),
n
(
l
).
off
(
"ready"
))))}});
function
I
(){
l
.
removeEventListener
(
"DOMContentLoaded"
,
I
,
!
1
),
a
.
removeEventListener
(
"load"
,
I
,
!
1
),
n
.
ready
()}
n
.
ready
.
promise
=
function
(
b
){
return
H
||
(
H
=
n
.
Deferred
(),
"complete"
===
l
.
readyState
?
setTimeout
(
n
.
ready
):(
l
.
addEventListener
(
"DOMContentLoaded"
,
I
,
!
1
),
a
.
addEventListener
(
"load"
,
I
,
!
1
))),
H
.
promise
(
b
)},
n
.
ready
.
promise
();
var
J
=
n
.
access
=
function
(
a
,
b
,
c
,
d
,
e
,
f
,
g
){
var
h
=
0
,
i
=
a
.
length
,
j
=
null
==
c
;
if
(
"object"
===
n
.
type
(
c
)){
e
=!
0
;
for
(
h
in
c
)
n
.
access
(
a
,
b
,
h
,
c
[
h
],
!
0
,
f
,
g
)}
else
if
(
void
0
!==
d
&&
(
e
=!
0
,
n
.
isFunction
(
d
)
||
(
g
=!
0
),
j
&&
(
g
?(
b
.
call
(
a
,
d
),
b
=
null
):(
j
=
b
,
b
=
function
(
a
,
b
,
c
){
return
j
.
call
(
n
(
a
),
c
)})),
b
))
for
(;
i
>
h
;
h
++
)
b
(
a
[
h
],
c
,
g
?
d
:
d
.
call
(
a
[
h
],
h
,
b
(
a
[
h
],
c
)));
return
e
?
a
:
j
?
b
.
call
(
a
):
i
?
b
(
a
[
0
],
c
):
f
};
n
.
acceptData
=
function
(
a
){
return
1
===
a
.
nodeType
||
9
===
a
.
nodeType
||!+
a
.
nodeType
};
function
K
(){
Object
.
defineProperty
(
this
.
cache
=
{},
0
,{
get
:
function
(){
return
{}}}),
this
.
expando
=
n
.
expando
+
Math
.
random
()}
K
.
uid
=
1
,
K
.
accepts
=
n
.
acceptData
,
K
.
prototype
=
{
key
:
function
(
a
){
if
(
!
K
.
accepts
(
a
))
return
0
;
var
b
=
{},
c
=
a
[
this
.
expando
];
if
(
!
c
){
c
=
K
.
uid
++
;
try
{
b
[
this
.
expando
]
=
{
value
:
c
},
Object
.
defineProperties
(
a
,
b
)}
catch
(
d
){
b
[
this
.
expando
]
=
c
,
n
.
extend
(
a
,
b
)}}
return
this
.
cache
[
c
]
||
(
this
.
cache
[
c
]
=
{}),
c
},
set
:
function
(
a
,
b
,
c
){
var
d
,
e
=
this
.
key
(
a
),
f
=
this
.
cache
[
e
];
if
(
"string"
==
typeof
b
)
f
[
b
]
=
c
;
else
if
(
n
.
isEmptyObject
(
f
))
n
.
extend
(
this
.
cache
[
e
],
b
);
else
for
(
d
in
b
)
f
[
d
]
=
b
[
d
];
return
f
},
get
:
function
(
a
,
b
){
var
c
=
this
.
cache
[
this
.
key
(
a
)];
return
void
0
===
b
?
c
:
c
[
b
]},
access
:
function
(
a
,
b
,
c
){
var
d
;
return
void
0
===
b
||
b
&&
"string"
==
typeof
b
&&
void
0
===
c
?(
d
=
this
.
get
(
a
,
b
),
void
0
!==
d
?
d
:
this
.
get
(
a
,
n
.
camelCase
(
b
))):(
this
.
set
(
a
,
b
,
c
),
void
0
!==
c
?
c
:
b
)},
remove
:
function
(
a
,
b
){
var
c
,
d
,
e
,
f
=
this
.
key
(
a
),
g
=
this
.
cache
[
f
];
if
(
void
0
===
b
)
this
.
cache
[
f
]
=
{};
else
{
n
.
isArray
(
b
)?
d
=
b
.
concat
(
b
.
map
(
n
.
camelCase
)):(
e
=
n
.
camelCase
(
b
),
b
in
g
?
d
=
[
b
,
e
]:(
d
=
e
,
d
=
d
in
g
?[
d
]:
d
.
match
(
E
)
||
[])),
c
=
d
.
length
;
while
(
c
--
)
delete
g
[
d
[
c
]]}},
hasData
:
function
(
a
){
return
!
n
.
isEmptyObject
(
this
.
cache
[
a
[
this
.
expando
]]
||
{})},
discard
:
function
(
a
){
a
[
this
.
expando
]
&&
delete
this
.
cache
[
a
[
this
.
expando
]]}};
var
L
=
new
K
,
M
=
new
K
,
N
=
/^
(?:\{[\w\W]
*
\}
|
\[[\w\W]
*
\])
$/
,
O
=
/
([
A-Z
])
/g
;
function
P
(
a
,
b
,
c
){
var
d
;
if
(
void
0
===
c
&&
1
===
a
.
nodeType
)
if
(
d
=
"data-"
+
b
.
replace
(
O
,
"-$1"
).
toLowerCase
(),
c
=
a
.
getAttribute
(
d
),
"string"
==
typeof
c
){
try
{
c
=
"true"
===
c
?
!
0
:
"false"
===
c
?
!
1
:
"null"
===
c
?
null
:
+
c
+
""
===
c
?
+
c
:
N
.
test
(
c
)?
n
.
parseJSON
(
c
):
c
}
catch
(
e
){}
M
.
set
(
a
,
b
,
c
)}
else
c
=
void
0
;
return
c
}
n
.
extend
({
hasData
:
function
(
a
){
return
M
.
hasData
(
a
)
||
L
.
hasData
(
a
)},
data
:
function
(
a
,
b
,
c
){
return
M
.
access
(
a
,
b
,
c
)},
removeData
:
function
(
a
,
b
){
M
.
remove
(
a
,
b
)
},
_data
:
function
(
a
,
b
,
c
){
return
L
.
access
(
a
,
b
,
c
)},
_removeData
:
function
(
a
,
b
){
L
.
remove
(
a
,
b
)}}),
n
.
fn
.
extend
({
data
:
function
(
a
,
b
){
var
c
,
d
,
e
,
f
=
this
[
0
],
g
=
f
&&
f
.
attributes
;
if
(
void
0
===
a
){
if
(
this
.
length
&&
(
e
=
M
.
get
(
f
),
1
===
f
.
nodeType
&&!
L
.
get
(
f
,
"hasDataAttrs"
))){
c
=
g
.
length
;
while
(
c
--
)
g
[
c
]
&&
(
d
=
g
[
c
].
name
,
0
===
d
.
indexOf
(
"data-"
)
&&
(
d
=
n
.
camelCase
(
d
.
slice
(
5
)),
P
(
f
,
d
,
e
[
d
])));
L
.
set
(
f
,
"hasDataAttrs"
,
!
0
)}
return
e
}
return
"object"
==
typeof
a
?
this
.
each
(
function
(){
M
.
set
(
this
,
a
)}):
J
(
this
,
function
(
b
){
var
c
,
d
=
n
.
camelCase
(
a
);
if
(
f
&&
void
0
===
b
){
if
(
c
=
M
.
get
(
f
,
a
),
void
0
!==
c
)
return
c
;
if
(
c
=
M
.
get
(
f
,
d
),
void
0
!==
c
)
return
c
;
if
(
c
=
P
(
f
,
d
,
void
0
),
void
0
!==
c
)
return
c
}
else
this
.
each
(
function
(){
var
c
=
M
.
get
(
this
,
d
);
M
.
set
(
this
,
d
,
b
),
-
1
!==
a
.
indexOf
(
"-"
)
&&
void
0
!==
c
&&
M
.
set
(
this
,
a
,
b
)})},
null
,
b
,
arguments
.
length
>
1
,
null
,
!
0
)},
removeData
:
function
(
a
){
return
this
.
each
(
function
(){
M
.
remove
(
this
,
a
)})}}),
n
.
extend
({
queue
:
function
(
a
,
b
,
c
){
var
d
;
return
a
?(
b
=
(
b
||
"fx"
)
+
"queue"
,
d
=
L
.
get
(
a
,
b
),
c
&&
(
!
d
||
n
.
isArray
(
c
)?
d
=
L
.
access
(
a
,
b
,
n
.
makeArray
(
c
)):
d
.
push
(
c
)),
d
||
[]):
void
0
},
dequeue
:
function
(
a
,
b
){
b
=
b
||
"fx"
;
var
c
=
n
.
queue
(
a
,
b
),
d
=
c
.
length
,
e
=
c
.
shift
(),
f
=
n
.
_queueHooks
(
a
,
b
),
g
=
function
(){
n
.
dequeue
(
a
,
b
)};
"inprogress"
===
e
&&
(
e
=
c
.
shift
(),
d
--
),
e
&&
(
"fx"
===
b
&&
c
.
unshift
(
"inprogress"
),
delete
f
.
stop
,
e
.
call
(
a
,
g
,
f
)),
!
d
&&
f
&&
f
.
empty
.
fire
()},
_queueHooks
:
function
(
a
,
b
){
var
c
=
b
+
"queueHooks"
;
return
L
.
get
(
a
,
c
)
||
L
.
access
(
a
,
c
,{
empty
:
n
.
Callbacks
(
"once memory"
).
add
(
function
(){
L
.
remove
(
a
,[
b
+
"queue"
,
c
])})})}}),
n
.
fn
.
extend
({
queue
:
function
(
a
,
b
){
var
c
=
2
;
return
"string"
!=
typeof
a
&&
(
b
=
a
,
a
=
"fx"
,
c
--
),
arguments
.
length
<
c
?
n
.
queue
(
this
[
0
],
a
):
void
0
===
b
?
this
:
this
.
each
(
function
(){
var
c
=
n
.
queue
(
this
,
a
,
b
);
n
.
_queueHooks
(
this
,
a
),
"fx"
===
a
&&
"inprogress"
!==
c
[
0
]
&&
n
.
dequeue
(
this
,
a
)})},
dequeue
:
function
(
a
){
return
this
.
each
(
function
(){
n
.
dequeue
(
this
,
a
)})},
clearQueue
:
function
(
a
){
return
this
.
queue
(
a
||
"fx"
,[])},
promise
:
function
(
a
,
b
){
var
c
,
d
=
1
,
e
=
n
.
Deferred
(),
f
=
this
,
g
=
this
.
length
,
h
=
function
(){
--
d
||
e
.
resolveWith
(
f
,[
f
])};
"string"
!=
typeof
a
&&
(
b
=
a
,
a
=
void
0
),
a
=
a
||
"fx"
;
while
(
g
--
)
c
=
L
.
get
(
f
[
g
],
a
+
"queueHooks"
),
c
&&
c
.
empty
&&
(
d
++
,
c
.
empty
.
add
(
h
));
return
h
(),
e
.
promise
(
b
)}});
var
Q
=
/
[
+-
]?(?:\d
*
\.
|
)\d
+
(?:[
eE
][
+-
]?\d
+|
)
/
.
source
,
R
=
[
"Top"
,
"Right"
,
"Bottom"
,
"Left"
],
S
=
function
(
a
,
b
){
return
a
=
b
||
a
,
"none"
===
n
.
css
(
a
,
"display"
)
||!
n
.
contains
(
a
.
ownerDocument
,
a
)},
T
=
/^
(?:
checkbox|radio
)
$/i
;
!
function
(){
var
a
=
l
.
createDocumentFragment
(),
b
=
a
.
appendChild
(
l
.
createElement
(
"div"
)),
c
=
l
.
createElement
(
"input"
);
c
.
setAttribute
(
"type"
,
"radio"
),
c
.
setAttribute
(
"checked"
,
"checked"
),
c
.
setAttribute
(
"name"
,
"t"
),
b
.
appendChild
(
c
),
k
.
checkClone
=
b
.
cloneNode
(
!
0
).
cloneNode
(
!
0
).
lastChild
.
checked
,
b
.
innerHTML
=
"<textarea>x</textarea>"
,
k
.
noCloneChecked
=!!
b
.
cloneNode
(
!
0
).
lastChild
.
defaultValue
}();
var
U
=
"undefined"
;
k
.
focusinBubbles
=
"onfocusin"
in
a
;
var
V
=
/^key/
,
W
=
/^
(?:
mouse|pointer|contextmenu
)
|click/
,
X
=
/^
(?:
focusinfocus|focusoutblur
)
$/
,
Y
=
/^
([^
.
]
*
)(?:\.(
.+
)
|
)
$/
;
function
Z
(){
return
!
0
}
function
$
(){
return
!
1
}
function
_
(){
try
{
return
l
.
activeElement
}
catch
(
a
){}}
n
.
event
=
{
global
:{},
add
:
function
(
a
,
b
,
c
,
d
,
e
){
var
f
,
g
,
h
,
i
,
j
,
k
,
l
,
m
,
o
,
p
,
q
,
r
=
L
.
get
(
a
);
if
(
r
){
c
.
handler
&&
(
f
=
c
,
c
=
f
.
handler
,
e
=
f
.
selector
),
c
.
guid
||
(
c
.
guid
=
n
.
guid
++
),(
i
=
r
.
events
)
||
(
i
=
r
.
events
=
{}),(
g
=
r
.
handle
)
||
(
g
=
r
.
handle
=
function
(
b
){
return
typeof
n
!==
U
&&
n
.
event
.
triggered
!==
b
.
type
?
n
.
event
.
dispatch
.
apply
(
a
,
arguments
):
void
0
}),
b
=
(
b
||
""
).
match
(
E
)
||
[
""
],
j
=
b
.
length
;
while
(
j
--
)
h
=
Y
.
exec
(
b
[
j
])
||
[],
o
=
q
=
h
[
1
],
p
=
(
h
[
2
]
||
""
).
split
(
"."
).
sort
(),
o
&&
(
l
=
n
.
event
.
special
[
o
]
||
{},
o
=
(
e
?
l
.
delegateType
:
l
.
bindType
)
||
o
,
l
=
n
.
event
.
special
[
o
]
||
{},
k
=
n
.
extend
({
type
:
o
,
origType
:
q
,
data
:
d
,
handler
:
c
,
guid
:
c
.
guid
,
selector
:
e
,
needsContext
:
e
&&
n
.
expr
.
match
.
needsContext
.
test
(
e
),
namespace
:
p
.
join
(
"."
)},
f
),(
m
=
i
[
o
])
||
(
m
=
i
[
o
]
=
[],
m
.
delegateCount
=
0
,
l
.
setup
&&
l
.
setup
.
call
(
a
,
d
,
p
,
g
)
!==!
1
||
a
.
addEventListener
&&
a
.
addEventListener
(
o
,
g
,
!
1
)),
l
.
add
&&
(
l
.
add
.
call
(
a
,
k
),
k
.
handler
.
guid
||
(
k
.
handler
.
guid
=
c
.
guid
)),
e
?
m
.
splice
(
m
.
delegateCount
++
,
0
,
k
):
m
.
push
(
k
),
n
.
event
.
global
[
o
]
=!
0
)}},
remove
:
function
(
a
,
b
,
c
,
d
,
e
){
var
f
,
g
,
h
,
i
,
j
,
k
,
l
,
m
,
o
,
p
,
q
,
r
=
L
.
hasData
(
a
)
&&
L
.
get
(
a
);
if
(
r
&&
(
i
=
r
.
events
)){
b
=
(
b
||
""
).
match
(
E
)
||
[
""
],
j
=
b
.
length
;
while
(
j
--
)
if
(
h
=
Y
.
exec
(
b
[
j
])
||
[],
o
=
q
=
h
[
1
],
p
=
(
h
[
2
]
||
""
).
split
(
"."
).
sort
(),
o
){
l
=
n
.
event
.
special
[
o
]
||
{},
o
=
(
d
?
l
.
delegateType
:
l
.
bindType
)
||
o
,
m
=
i
[
o
]
||
[],
h
=
h
[
2
]
&&
new
RegExp
(
"(^|\\.)"
+
p
.
join
(
"\\.(?:.*\\.|)"
)
+
"(\\.|$)"
),
g
=
f
=
m
.
length
;
while
(
f
--
)
k
=
m
[
f
],
!
e
&&
q
!==
k
.
origType
||
c
&&
c
.
guid
!==
k
.
guid
||
h
&&!
h
.
test
(
k
.
namespace
)
||
d
&&
d
!==
k
.
selector
&&
(
"**"
!==
d
||!
k
.
selector
)
||
(
m
.
splice
(
f
,
1
),
k
.
selector
&&
m
.
delegateCount
--
,
l
.
remove
&&
l
.
remove
.
call
(
a
,
k
));
g
&&!
m
.
length
&&
(
l
.
teardown
&&
l
.
teardown
.
call
(
a
,
p
,
r
.
handle
)
!==!
1
||
n
.
removeEvent
(
a
,
o
,
r
.
handle
),
delete
i
[
o
])}
else
for
(
o
in
i
)
n
.
event
.
remove
(
a
,
o
+
b
[
j
],
c
,
d
,
!
0
);
n
.
isEmptyObject
(
i
)
&&
(
delete
r
.
handle
,
L
.
remove
(
a
,
"events"
))}},
trigger
:
function
(
b
,
c
,
d
,
e
){
var
f
,
g
,
h
,
i
,
k
,
m
,
o
,
p
=
[
d
||
l
],
q
=
j
.
call
(
b
,
"type"
)?
b
.
type
:
b
,
r
=
j
.
call
(
b
,
"namespace"
)?
b
.
namespace
.
split
(
"."
):[];
if
(
g
=
h
=
d
=
d
||
l
,
3
!==
d
.
nodeType
&&
8
!==
d
.
nodeType
&&!
X
.
test
(
q
+
n
.
event
.
triggered
)
&&
(
q
.
indexOf
(
"."
)
>=
0
&&
(
r
=
q
.
split
(
"."
),
q
=
r
.
shift
(),
r
.
sort
()),
k
=
q
.
indexOf
(
":"
)
<
0
&&
"on"
+
q
,
b
=
b
[
n
.
expando
]?
b
:
new
n
.
Event
(
q
,
"object"
==
typeof
b
&&
b
),
b
.
isTrigger
=
e
?
2
:
3
,
b
.
namespace
=
r
.
join
(
"."
),
b
.
namespace_re
=
b
.
namespace
?
new
RegExp
(
"(^|\\.)"
+
r
.
join
(
"\\.(?:.*\\.|)"
)
+
"(\\.|$)"
):
null
,
b
.
result
=
void
0
,
b
.
target
||
(
b
.
target
=
d
),
c
=
null
==
c
?[
b
]:
n
.
makeArray
(
c
,[
b
]),
o
=
n
.
event
.
special
[
q
]
||
{},
e
||!
o
.
trigger
||
o
.
trigger
.
apply
(
d
,
c
)
!==!
1
)){
if
(
!
e
&&!
o
.
noBubble
&&!
n
.
isWindow
(
d
)){
for
(
i
=
o
.
delegateType
||
q
,
X
.
test
(
i
+
q
)
||
(
g
=
g
.
parentNode
);
g
;
g
=
g
.
parentNode
)
p
.
push
(
g
),
h
=
g
;
h
===
(
d
.
ownerDocument
||
l
)
&&
p
.
push
(
h
.
defaultView
||
h
.
parentWindow
||
a
)}
f
=
0
;
while
((
g
=
p
[
f
++
])
&&!
b
.
isPropagationStopped
())
b
.
type
=
f
>
1
?
i
:
o
.
bindType
||
q
,
m
=
(
L
.
get
(
g
,
"events"
)
||
{})[
b
.
type
]
&&
L
.
get
(
g
,
"handle"
),
m
&&
m
.
apply
(
g
,
c
),
m
=
k
&&
g
[
k
],
m
&&
m
.
apply
&&
n
.
acceptData
(
g
)
&&
(
b
.
result
=
m
.
apply
(
g
,
c
),
b
.
result
===!
1
&&
b
.
preventDefault
());
return
b
.
type
=
q
,
e
||
b
.
isDefaultPrevented
()
||
o
.
_default
&&
o
.
_default
.
apply
(
p
.
pop
(),
c
)
!==!
1
||!
n
.
acceptData
(
d
)
||
k
&&
n
.
isFunction
(
d
[
q
])
&&!
n
.
isWindow
(
d
)
&&
(
h
=
d
[
k
],
h
&&
(
d
[
k
]
=
null
),
n
.
event
.
triggered
=
q
,
d
[
q
](),
n
.
event
.
triggered
=
void
0
,
h
&&
(
d
[
k
]
=
h
)),
b
.
result
}},
dispatch
:
function
(
a
){
a
=
n
.
event
.
fix
(
a
);
var
b
,
c
,
e
,
f
,
g
,
h
=
[],
i
=
d
.
call
(
arguments
),
j
=
(
L
.
get
(
this
,
"events"
)
||
{})[
a
.
type
]
||
[],
k
=
n
.
event
.
special
[
a
.
type
]
||
{};
if
(
i
[
0
]
=
a
,
a
.
delegateTarget
=
this
,
!
k
.
preDispatch
||
k
.
preDispatch
.
call
(
this
,
a
)
!==!
1
){
h
=
n
.
event
.
handlers
.
call
(
this
,
a
,
j
),
b
=
0
;
while
((
f
=
h
[
b
++
])
&&!
a
.
isPropagationStopped
()){
a
.
currentTarget
=
f
.
elem
,
c
=
0
;
while
((
g
=
f
.
handlers
[
c
++
])
&&!
a
.
isImmediatePropagationStopped
())(
!
a
.
namespace_re
||
a
.
namespace_re
.
test
(
g
.
namespace
))
&&
(
a
.
handleObj
=
g
,
a
.
data
=
g
.
data
,
e
=
((
n
.
event
.
special
[
g
.
origType
]
||
{}).
handle
||
g
.
handler
).
apply
(
f
.
elem
,
i
),
void
0
!==
e
&&
(
a
.
result
=
e
)
===!
1
&&
(
a
.
preventDefault
(),
a
.
stopPropagation
()))}
return
k
.
postDispatch
&&
k
.
postDispatch
.
call
(
this
,
a
),
a
.
result
}},
handlers
:
function
(
a
,
b
){
var
c
,
d
,
e
,
f
,
g
=
[],
h
=
b
.
delegateCount
,
i
=
a
.
target
;
if
(
h
&&
i
.
nodeType
&&
(
!
a
.
button
||
"click"
!==
a
.
type
))
for
(;
i
!==
this
;
i
=
i
.
parentNode
||
this
)
if
(
i
.
disabled
!==!
0
||
"click"
!==
a
.
type
){
for
(
d
=
[],
c
=
0
;
h
>
c
;
c
++
)
f
=
b
[
c
],
e
=
f
.
selector
+
" "
,
void
0
===
d
[
e
]
&&
(
d
[
e
]
=
f
.
needsContext
?
n
(
e
,
this
).
index
(
i
)
>=
0
:
n
.
find
(
e
,
this
,
null
,[
i
]).
length
),
d
[
e
]
&&
d
.
push
(
f
);
d
.
length
&&
g
.
push
({
elem
:
i
,
handlers
:
d
})}
return
h
<
b
.
length
&&
g
.
push
({
elem
:
this
,
handlers
:
b
.
slice
(
h
)}),
g
},
props
:
"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which"
.
split
(
" "
),
fixHooks
:{},
keyHooks
:{
props
:
"char charCode key keyCode"
.
split
(
" "
),
filter
:
function
(
a
,
b
){
return
null
==
a
.
which
&&
(
a
.
which
=
null
!=
b
.
charCode
?
b
.
charCode
:
b
.
keyCode
),
a
}},
mouseHooks
:{
props
:
"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement"
.
split
(
" "
),
filter
:
function
(
a
,
b
){
var
c
,
d
,
e
,
f
=
b
.
button
;
return
null
==
a
.
pageX
&&
null
!=
b
.
clientX
&&
(
c
=
a
.
target
.
ownerDocument
||
l
,
d
=
c
.
documentElement
,
e
=
c
.
body
,
a
.
pageX
=
b
.
clientX
+
(
d
&&
d
.
scrollLeft
||
e
&&
e
.
scrollLeft
||
0
)
-
(
d
&&
d
.
clientLeft
||
e
&&
e
.
clientLeft
||
0
),
a
.
pageY
=
b
.
clientY
+
(
d
&&
d
.
scrollTop
||
e
&&
e
.
scrollTop
||
0
)
-
(
d
&&
d
.
clientTop
||
e
&&
e
.
clientTop
||
0
)),
a
.
which
||
void
0
===
f
||
(
a
.
which
=
1
&
f
?
1
:
2
&
f
?
3
:
4
&
f
?
2
:
0
),
a
}},
fix
:
function
(
a
){
if
(
a
[
n
.
expando
])
return
a
;
var
b
,
c
,
d
,
e
=
a
.
type
,
f
=
a
,
g
=
this
.
fixHooks
[
e
];
g
||
(
this
.
fixHooks
[
e
]
=
g
=
W
.
test
(
e
)?
this
.
mouseHooks
:
V
.
test
(
e
)?
this
.
keyHooks
:{}),
d
=
g
.
props
?
this
.
props
.
concat
(
g
.
props
):
this
.
props
,
a
=
new
n
.
Event
(
f
),
b
=
d
.
length
;
while
(
b
--
)
c
=
d
[
b
],
a
[
c
]
=
f
[
c
];
return
a
.
target
||
(
a
.
target
=
l
),
3
===
a
.
target
.
nodeType
&&
(
a
.
target
=
a
.
target
.
parentNode
),
g
.
filter
?
g
.
filter
(
a
,
f
):
a
},
special
:{
load
:{
noBubble
:
!
0
},
focus
:{
trigger
:
function
(){
return
this
!==
_
()
&&
this
.
focus
?(
this
.
focus
(),
!
1
):
void
0
},
delegateType
:
"focusin"
},
blur
:{
trigger
:
function
(){
return
this
===
_
()
&&
this
.
blur
?(
this
.
blur
(),
!
1
):
void
0
},
delegateType
:
"focusout"
},
click
:{
trigger
:
function
(){
return
"checkbox"
===
this
.
type
&&
this
.
click
&&
n
.
nodeName
(
this
,
"input"
)?(
this
.
click
(),
!
1
):
void
0
},
_default
:
function
(
a
){
return
n
.
nodeName
(
a
.
target
,
"a"
)}},
beforeunload
:{
postDispatch
:
function
(
a
){
void
0
!==
a
.
result
&&
a
.
originalEvent
&&
(
a
.
originalEvent
.
returnValue
=
a
.
result
)}}},
simulate
:
function
(
a
,
b
,
c
,
d
){
var
e
=
n
.
extend
(
new
n
.
Event
,
c
,{
type
:
a
,
isSimulated
:
!
0
,
originalEvent
:{}});
d
?
n
.
event
.
trigger
(
e
,
null
,
b
):
n
.
event
.
dispatch
.
call
(
b
,
e
),
e
.
isDefaultPrevented
()
&&
c
.
preventDefault
()}},
n
.
removeEvent
=
function
(
a
,
b
,
c
){
a
.
removeEventListener
&&
a
.
removeEventListener
(
b
,
c
,
!
1
)},
n
.
Event
=
function
(
a
,
b
){
return
this
instanceof
n
.
Event
?(
a
&&
a
.
type
?(
this
.
originalEvent
=
a
,
this
.
type
=
a
.
type
,
this
.
isDefaultPrevented
=
a
.
defaultPrevented
||
void
0
===
a
.
defaultPrevented
&&
a
.
returnValue
===!
1
?
Z
:
$
):
this
.
type
=
a
,
b
&&
n
.
extend
(
this
,
b
),
this
.
timeStamp
=
a
&&
a
.
timeStamp
||
n
.
now
(),
void
(
this
[
n
.
expando
]
=!
0
)):
new
n
.
Event
(
a
,
b
)},
n
.
Event
.
prototype
=
{
isDefaultPrevented
:
$
,
isPropagationStopped
:
$
,
isImmediatePropagationStopped
:
$
,
preventDefault
:
function
(){
var
a
=
this
.
originalEvent
;
this
.
isDefaultPrevented
=
Z
,
a
&&
a
.
preventDefault
&&
a
.
preventDefault
()},
stopPropagation
:
function
(){
var
a
=
this
.
originalEvent
;
this
.
isPropagationStopped
=
Z
,
a
&&
a
.
stopPropagation
&&
a
.
stopPropagation
()},
stopImmediatePropagation
:
function
(){
var
a
=
this
.
originalEvent
;
this
.
isImmediatePropagationStopped
=
Z
,
a
&&
a
.
stopImmediatePropagation
&&
a
.
stopImmediatePropagation
(),
this
.
stopPropagation
()}},
n
.
each
({
mouseenter
:
"mouseover"
,
mouseleave
:
"mouseout"
,
pointerenter
:
"pointerover"
,
pointerleave
:
"pointerout"
},
function
(
a
,
b
){
n
.
event
.
special
[
a
]
=
{
delegateType
:
b
,
bindType
:
b
,
handle
:
function
(
a
){
var
c
,
d
=
this
,
e
=
a
.
relatedTarget
,
f
=
a
.
handleObj
;
return
(
!
e
||
e
!==
d
&&!
n
.
contains
(
d
,
e
))
&&
(
a
.
type
=
f
.
origType
,
c
=
f
.
handler
.
apply
(
this
,
arguments
),
a
.
type
=
b
),
c
}}}),
k
.
focusinBubbles
||
n
.
each
({
focus
:
"focusin"
,
blur
:
"focusout"
},
function
(
a
,
b
){
var
c
=
function
(
a
){
n
.
event
.
simulate
(
b
,
a
.
target
,
n
.
event
.
fix
(
a
),
!
0
)};
n
.
event
.
special
[
b
]
=
{
setup
:
function
(){
var
d
=
this
.
ownerDocument
||
this
,
e
=
L
.
access
(
d
,
b
);
e
||
d
.
addEventListener
(
a
,
c
,
!
0
),
L
.
access
(
d
,
b
,(
e
||
0
)
+
1
)},
teardown
:
function
(){
var
d
=
this
.
ownerDocument
||
this
,
e
=
L
.
access
(
d
,
b
)
-
1
;
e
?
L
.
access
(
d
,
b
,
e
):(
d
.
removeEventListener
(
a
,
c
,
!
0
),
L
.
remove
(
d
,
b
))}}}),
n
.
fn
.
extend
({
on
:
function
(
a
,
b
,
c
,
d
,
e
){
var
f
,
g
;
if
(
"object"
==
typeof
a
){
"string"
!=
typeof
b
&&
(
c
=
c
||
b
,
b
=
void
0
);
for
(
g
in
a
)
this
.
on
(
g
,
b
,
c
,
a
[
g
],
e
);
return
this
}
if
(
null
==
c
&&
null
==
d
?(
d
=
b
,
c
=
b
=
void
0
):
null
==
d
&&
(
"string"
==
typeof
b
?(
d
=
c
,
c
=
void
0
):(
d
=
c
,
c
=
b
,
b
=
void
0
)),
d
===!
1
)
d
=
$
;
else
if
(
!
d
)
return
this
;
return
1
===
e
&&
(
f
=
d
,
d
=
function
(
a
){
return
n
().
off
(
a
),
f
.
apply
(
this
,
arguments
)},
d
.
guid
=
f
.
guid
||
(
f
.
guid
=
n
.
guid
++
)),
this
.
each
(
function
(){
n
.
event
.
add
(
this
,
a
,
d
,
c
,
b
)})},
one
:
function
(
a
,
b
,
c
,
d
){
return
this
.
on
(
a
,
b
,
c
,
d
,
1
)},
off
:
function
(
a
,
b
,
c
){
var
d
,
e
;
if
(
a
&&
a
.
preventDefault
&&
a
.
handleObj
)
return
d
=
a
.
handleObj
,
n
(
a
.
delegateTarget
).
off
(
d
.
namespace
?
d
.
origType
+
"."
+
d
.
namespace
:
d
.
origType
,
d
.
selector
,
d
.
handler
),
this
;
if
(
"object"
==
typeof
a
){
for
(
e
in
a
)
this
.
off
(
e
,
b
,
a
[
e
]);
return
this
}
return
(
b
===!
1
||
"function"
==
typeof
b
)
&&
(
c
=
b
,
b
=
void
0
),
c
===!
1
&&
(
c
=
$
),
this
.
each
(
function
(){
n
.
event
.
remove
(
this
,
a
,
c
,
b
)})},
trigger
:
function
(
a
,
b
){
return
this
.
each
(
function
(){
n
.
event
.
trigger
(
a
,
b
,
this
)})},
triggerHandler
:
function
(
a
,
b
){
var
c
=
this
[
0
];
return
c
?
n
.
event
.
trigger
(
a
,
b
,
c
,
!
0
):
void
0
}});
var
ab
=
/<
(?!
area|br|col|embed|hr|img|input|link|meta|param
)(([\w
:
]
+
)[^
>
]
*
)\/
>/gi
,
bb
=
/<
([\w
:
]
+
)
/
,
cb
=
/<|&#
?\w
+;/
,
db
=
/<
(?:
script|style|link
)
/i
,
eb
=
/checked
\s
*
(?:[^
=
]
|=
\s
*.checked.
)
/i
,
fb
=
/^$|
\/(?:
java|ecma
)
script/i
,
gb
=
/^true
\/(
.*
)
/
,
hb
=
/^
\s
*<!
(?:\[
CDATA
\[
|--
)
|
(?:\]\]
|--
)
>
\s
*$/g
,
ib
=
{
option
:[
1
,
"<select multiple='multiple'>"
,
"</select>"
],
thead
:[
1
,
"<table>"
,
"</table>"
],
col
:[
2
,
"<table><colgroup>"
,
"</colgroup></table>"
],
tr
:[
2
,
"<table><tbody>"
,
"</tbody></table>"
],
td
:[
3
,
"<table><tbody><tr>"
,
"</tr></tbody></table>"
],
_default
:[
0
,
""
,
""
]};
ib
.
optgroup
=
ib
.
option
,
ib
.
tbody
=
ib
.
tfoot
=
ib
.
colgroup
=
ib
.
caption
=
ib
.
thead
,
ib
.
th
=
ib
.
td
;
function
jb
(
a
,
b
){
return
n
.
nodeName
(
a
,
"table"
)
&&
n
.
nodeName
(
11
!==
b
.
nodeType
?
b
:
b
.
firstChild
,
"tr"
)?
a
.
getElementsByTagName
(
"tbody"
)[
0
]
||
a
.
appendChild
(
a
.
ownerDocument
.
createElement
(
"tbody"
)):
a
}
function
kb
(
a
){
return
a
.
type
=
(
null
!==
a
.
getAttribute
(
"type"
))
+
"/"
+
a
.
type
,
a
}
function
lb
(
a
){
var
b
=
gb
.
exec
(
a
.
type
);
return
b
?
a
.
type
=
b
[
1
]:
a
.
removeAttribute
(
"type"
),
a
}
function
mb
(
a
,
b
){
for
(
var
c
=
0
,
d
=
a
.
length
;
d
>
c
;
c
++
)
L
.
set
(
a
[
c
],
"globalEval"
,
!
b
||
L
.
get
(
b
[
c
],
"globalEval"
))}
function
nb
(
a
,
b
){
var
c
,
d
,
e
,
f
,
g
,
h
,
i
,
j
;
if
(
1
===
b
.
nodeType
){
if
(
L
.
hasData
(
a
)
&&
(
f
=
L
.
access
(
a
),
g
=
L
.
set
(
b
,
f
),
j
=
f
.
events
)){
delete
g
.
handle
,
g
.
events
=
{};
for
(
e
in
j
)
for
(
c
=
0
,
d
=
j
[
e
].
length
;
d
>
c
;
c
++
)
n
.
event
.
add
(
b
,
e
,
j
[
e
][
c
])}
M
.
hasData
(
a
)
&&
(
h
=
M
.
access
(
a
),
i
=
n
.
extend
({},
h
),
M
.
set
(
b
,
i
))}}
function
ob
(
a
,
b
){
var
c
=
a
.
getElementsByTagName
?
a
.
getElementsByTagName
(
b
||
"*"
):
a
.
querySelectorAll
?
a
.
querySelectorAll
(
b
||
"*"
):[];
return
void
0
===
b
||
b
&&
n
.
nodeName
(
a
,
b
)?
n
.
merge
([
a
],
c
):
c
}
function
pb
(
a
,
b
){
var
c
=
b
.
nodeName
.
toLowerCase
();
"input"
===
c
&&
T
.
test
(
a
.
type
)?
b
.
checked
=
a
.
checked
:(
"input"
===
c
||
"textarea"
===
c
)
&&
(
b
.
defaultValue
=
a
.
defaultValue
)}
n
.
extend
({
clone
:
function
(
a
,
b
,
c
){
var
d
,
e
,
f
,
g
,
h
=
a
.
cloneNode
(
!
0
),
i
=
n
.
contains
(
a
.
ownerDocument
,
a
);
if
(
!
(
k
.
noCloneChecked
||
1
!==
a
.
nodeType
&&
11
!==
a
.
nodeType
||
n
.
isXMLDoc
(
a
)))
for
(
g
=
ob
(
h
),
f
=
ob
(
a
),
d
=
0
,
e
=
f
.
length
;
e
>
d
;
d
++
)
pb
(
f
[
d
],
g
[
d
]);
if
(
b
)
if
(
c
)
for
(
f
=
f
||
ob
(
a
),
g
=
g
||
ob
(
h
),
d
=
0
,
e
=
f
.
length
;
e
>
d
;
d
++
)
nb
(
f
[
d
],
g
[
d
]);
else
nb
(
a
,
h
);
return
g
=
ob
(
h
,
"script"
),
g
.
length
>
0
&&
mb
(
g
,
!
i
&&
ob
(
a
,
"script"
)),
h
},
buildFragment
:
function
(
a
,
b
,
c
,
d
){
for
(
var
e
,
f
,
g
,
h
,
i
,
j
,
k
=
b
.
createDocumentFragment
(),
l
=
[],
m
=
0
,
o
=
a
.
length
;
o
>
m
;
m
++
)
if
(
e
=
a
[
m
],
e
||
0
===
e
)
if
(
"object"
===
n
.
type
(
e
))
n
.
merge
(
l
,
e
.
nodeType
?[
e
]:
e
);
else
if
(
cb
.
test
(
e
)){
f
=
f
||
k
.
appendChild
(
b
.
createElement
(
"div"
)),
g
=
(
bb
.
exec
(
e
)
||
[
""
,
""
])[
1
].
toLowerCase
(),
h
=
ib
[
g
]
||
ib
.
_default
,
f
.
innerHTML
=
h
[
1
]
+
e
.
replace
(
ab
,
"<$1></$2>"
)
+
h
[
2
],
j
=
h
[
0
];
while
(
j
--
)
f
=
f
.
lastChild
;
n
.
merge
(
l
,
f
.
childNodes
),
f
=
k
.
firstChild
,
f
.
textContent
=
""
}
else
l
.
push
(
b
.
createTextNode
(
e
));
k
.
textContent
=
""
,
m
=
0
;
while
(
e
=
l
[
m
++
])
if
((
!
d
||-
1
===
n
.
inArray
(
e
,
d
))
&&
(
i
=
n
.
contains
(
e
.
ownerDocument
,
e
),
f
=
ob
(
k
.
appendChild
(
e
),
"script"
),
i
&&
mb
(
f
),
c
)){
j
=
0
;
while
(
e
=
f
[
j
++
])
fb
.
test
(
e
.
type
||
""
)
&&
c
.
push
(
e
)}
return
k
},
cleanData
:
function
(
a
){
for
(
var
b
,
c
,
d
,
e
,
f
=
n
.
event
.
special
,
g
=
0
;
void
0
!==
(
c
=
a
[
g
]);
g
++
){
if
(
n
.
acceptData
(
c
)
&&
(
e
=
c
[
L
.
expando
],
e
&&
(
b
=
L
.
cache
[
e
]))){
if
(
b
.
events
)
for
(
d
in
b
.
events
)
f
[
d
]?
n
.
event
.
remove
(
c
,
d
):
n
.
removeEvent
(
c
,
d
,
b
.
handle
);
L
.
cache
[
e
]
&&
delete
L
.
cache
[
e
]}
delete
M
.
cache
[
c
[
M
.
expando
]]}}}),
n
.
fn
.
extend
({
text
:
function
(
a
){
return
J
(
this
,
function
(
a
){
return
void
0
===
a
?
n
.
text
(
this
):
this
.
empty
().
each
(
function
(){(
1
===
this
.
nodeType
||
11
===
this
.
nodeType
||
9
===
this
.
nodeType
)
&&
(
this
.
textContent
=
a
)})},
null
,
a
,
arguments
.
length
)},
append
:
function
(){
return
this
.
domManip
(
arguments
,
function
(
a
){
if
(
1
===
this
.
nodeType
||
11
===
this
.
nodeType
||
9
===
this
.
nodeType
){
var
b
=
jb
(
this
,
a
);
b
.
appendChild
(
a
)}})},
prepend
:
function
(){
return
this
.
domManip
(
arguments
,
function
(
a
){
if
(
1
===
this
.
nodeType
||
11
===
this
.
nodeType
||
9
===
this
.
nodeType
){
var
b
=
jb
(
this
,
a
);
b
.
insertBefore
(
a
,
b
.
firstChild
)}})},
before
:
function
(){
return
this
.
domManip
(
arguments
,
function
(
a
){
this
.
parentNode
&&
this
.
parentNode
.
insertBefore
(
a
,
this
)})},
after
:
function
(){
return
this
.
domManip
(
arguments
,
function
(
a
){
this
.
parentNode
&&
this
.
parentNode
.
insertBefore
(
a
,
this
.
nextSibling
)})},
remove
:
function
(
a
,
b
){
for
(
var
c
,
d
=
a
?
n
.
filter
(
a
,
this
):
this
,
e
=
0
;
null
!=
(
c
=
d
[
e
]);
e
++
)
b
||
1
!==
c
.
nodeType
||
n
.
cleanData
(
ob
(
c
)),
c
.
parentNode
&&
(
b
&&
n
.
contains
(
c
.
ownerDocument
,
c
)
&&
mb
(
ob
(
c
,
"script"
)),
c
.
parentNode
.
removeChild
(
c
));
return
this
},
empty
:
function
(){
for
(
var
a
,
b
=
0
;
null
!=
(
a
=
this
[
b
]);
b
++
)
1
===
a
.
nodeType
&&
(
n
.
cleanData
(
ob
(
a
,
!
1
)),
a
.
textContent
=
""
);
return
this
},
clone
:
function
(
a
,
b
){
return
a
=
null
==
a
?
!
1
:
a
,
b
=
null
==
b
?
a
:
b
,
this
.
map
(
function
(){
return
n
.
clone
(
this
,
a
,
b
)})},
html
:
function
(
a
){
return
J
(
this
,
function
(
a
){
var
b
=
this
[
0
]
||
{},
c
=
0
,
d
=
this
.
length
;
if
(
void
0
===
a
&&
1
===
b
.
nodeType
)
return
b
.
innerHTML
;
if
(
"string"
==
typeof
a
&&!
db
.
test
(
a
)
&&!
ib
[(
bb
.
exec
(
a
)
||
[
""
,
""
])[
1
].
toLowerCase
()]){
a
=
a
.
replace
(
ab
,
"<$1></$2>"
);
try
{
for
(;
d
>
c
;
c
++
)
b
=
this
[
c
]
||
{},
1
===
b
.
nodeType
&&
(
n
.
cleanData
(
ob
(
b
,
!
1
)),
b
.
innerHTML
=
a
);
b
=
0
}
catch
(
e
){}}
b
&&
this
.
empty
().
append
(
a
)},
null
,
a
,
arguments
.
length
)},
replaceWith
:
function
(){
var
a
=
arguments
[
0
];
return
this
.
domManip
(
arguments
,
function
(
b
){
a
=
this
.
parentNode
,
n
.
cleanData
(
ob
(
this
)),
a
&&
a
.
replaceChild
(
b
,
this
)}),
a
&&
(
a
.
length
||
a
.
nodeType
)?
this
:
this
.
remove
()},
detach
:
function
(
a
){
return
this
.
remove
(
a
,
!
0
)},
domManip
:
function
(
a
,
b
){
a
=
e
.
apply
([],
a
);
var
c
,
d
,
f
,
g
,
h
,
i
,
j
=
0
,
l
=
this
.
length
,
m
=
this
,
o
=
l
-
1
,
p
=
a
[
0
],
q
=
n
.
isFunction
(
p
);
if
(
q
||
l
>
1
&&
"string"
==
typeof
p
&&!
k
.
checkClone
&&
eb
.
test
(
p
))
return
this
.
each
(
function
(
c
){
var
d
=
m
.
eq
(
c
);
q
&&
(
a
[
0
]
=
p
.
call
(
this
,
c
,
d
.
html
())),
d
.
domManip
(
a
,
b
)});
if
(
l
&&
(
c
=
n
.
buildFragment
(
a
,
this
[
0
].
ownerDocument
,
!
1
,
this
),
d
=
c
.
firstChild
,
1
===
c
.
childNodes
.
length
&&
(
c
=
d
),
d
)){
for
(
f
=
n
.
map
(
ob
(
c
,
"script"
),
kb
),
g
=
f
.
length
;
l
>
j
;
j
++
)
h
=
c
,
j
!==
o
&&
(
h
=
n
.
clone
(
h
,
!
0
,
!
0
),
g
&&
n
.
merge
(
f
,
ob
(
h
,
"script"
))),
b
.
call
(
this
[
j
],
h
,
j
);
if
(
g
)
for
(
i
=
f
[
f
.
length
-
1
].
ownerDocument
,
n
.
map
(
f
,
lb
),
j
=
0
;
g
>
j
;
j
++
)
h
=
f
[
j
],
fb
.
test
(
h
.
type
||
""
)
&&!
L
.
access
(
h
,
"globalEval"
)
&&
n
.
contains
(
i
,
h
)
&&
(
h
.
src
?
n
.
_evalUrl
&&
n
.
_evalUrl
(
h
.
src
):
n
.
globalEval
(
h
.
textContent
.
replace
(
hb
,
""
)))}
return
this
}}),
n
.
each
({
appendTo
:
"append"
,
prependTo
:
"prepend"
,
insertBefore
:
"before"
,
insertAfter
:
"after"
,
replaceAll
:
"replaceWith"
},
function
(
a
,
b
){
n
.
fn
[
a
]
=
function
(
a
){
for
(
var
c
,
d
=
[],
e
=
n
(
a
),
g
=
e
.
length
-
1
,
h
=
0
;
g
>=
h
;
h
++
)
c
=
h
===
g
?
this
:
this
.
clone
(
!
0
),
n
(
e
[
h
])[
b
](
c
),
f
.
apply
(
d
,
c
.
get
());
return
this
.
pushStack
(
d
)}});
var
qb
,
rb
=
{};
function
sb
(
b
,
c
){
var
d
,
e
=
n
(
c
.
createElement
(
b
)).
appendTo
(
c
.
body
),
f
=
a
.
getDefaultComputedStyle
&&
(
d
=
a
.
getDefaultComputedStyle
(
e
[
0
]))?
d
.
display
:
n
.
css
(
e
[
0
],
"display"
);
return
e
.
detach
(),
f
}
function
tb
(
a
){
var
b
=
l
,
c
=
rb
[
a
];
return
c
||
(
c
=
sb
(
a
,
b
),
"none"
!==
c
&&
c
||
(
qb
=
(
qb
||
n
(
"<iframe frameborder='0' width='0' height='0'/>"
)).
appendTo
(
b
.
documentElement
),
b
=
qb
[
0
].
contentDocument
,
b
.
write
(),
b
.
close
(),
c
=
sb
(
a
,
b
),
qb
.
detach
()),
rb
[
a
]
=
c
),
c
}
var
ub
=
/^margin/
,
vb
=
new
RegExp
(
"^("
+
Q
+
")(?!px)[a-z%]+$"
,
"i"
),
wb
=
function
(
a
){
return
a
.
ownerDocument
.
defaultView
.
getComputedStyle
(
a
,
null
)};
function
xb
(
a
,
b
,
c
){
var
d
,
e
,
f
,
g
,
h
=
a
.
style
;
return
c
=
c
||
wb
(
a
),
c
&&
(
g
=
c
.
getPropertyValue
(
b
)
||
c
[
b
]),
c
&&
(
""
!==
g
||
n
.
contains
(
a
.
ownerDocument
,
a
)
||
(
g
=
n
.
style
(
a
,
b
)),
vb
.
test
(
g
)
&&
ub
.
test
(
b
)
&&
(
d
=
h
.
width
,
e
=
h
.
minWidth
,
f
=
h
.
maxWidth
,
h
.
minWidth
=
h
.
maxWidth
=
h
.
width
=
g
,
g
=
c
.
width
,
h
.
width
=
d
,
h
.
minWidth
=
e
,
h
.
maxWidth
=
f
)),
void
0
!==
g
?
g
+
""
:
g
}
function
yb
(
a
,
b
){
return
{
get
:
function
(){
return
a
()?
void
delete
this
.
get
:(
this
.
get
=
b
).
apply
(
this
,
arguments
)}}}
!
function
(){
var
b
,
c
,
d
=
l
.
documentElement
,
e
=
l
.
createElement
(
"div"
),
f
=
l
.
createElement
(
"div"
);
if
(
f
.
style
){
f
.
style
.
backgroundClip
=
"content-box"
,
f
.
cloneNode
(
!
0
).
style
.
backgroundClip
=
""
,
k
.
clearCloneStyle
=
"content-box"
===
f
.
style
.
backgroundClip
,
e
.
style
.
cssText
=
"border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute"
,
e
.
appendChild
(
f
);
function
g
(){
f
.
style
.
cssText
=
"-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute"
,
f
.
innerHTML
=
""
,
d
.
appendChild
(
e
);
var
g
=
a
.
getComputedStyle
(
f
,
null
);
b
=
"1%"
!==
g
.
top
,
c
=
"4px"
===
g
.
width
,
d
.
removeChild
(
e
)}
a
.
getComputedStyle
&&
n
.
extend
(
k
,{
pixelPosition
:
function
(){
return
g
(),
b
},
boxSizingReliable
:
function
(){
return
null
==
c
&&
g
(),
c
},
reliableMarginRight
:
function
(){
var
b
,
c
=
f
.
appendChild
(
l
.
createElement
(
"div"
));
return
c
.
style
.
cssText
=
f
.
style
.
cssText
=
"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0"
,
c
.
style
.
marginRight
=
c
.
style
.
width
=
"0"
,
f
.
style
.
width
=
"1px"
,
d
.
appendChild
(
e
),
b
=!
parseFloat
(
a
.
getComputedStyle
(
c
,
null
).
marginRight
),
d
.
removeChild
(
e
),
b
}})}}(),
n
.
swap
=
function
(
a
,
b
,
c
,
d
){
var
e
,
f
,
g
=
{};
for
(
f
in
b
)
g
[
f
]
=
a
.
style
[
f
],
a
.
style
[
f
]
=
b
[
f
];
e
=
c
.
apply
(
a
,
d
||
[]);
for
(
f
in
b
)
a
.
style
[
f
]
=
g
[
f
];
return
e
};
var
zb
=
/^
(
none|table
(?!
-c
[
ea
])
.+
)
/
,
Ab
=
new
RegExp
(
"^("
+
Q
+
")(.*)$"
,
"i"
),
Bb
=
new
RegExp
(
"^([+-])=("
+
Q
+
")"
,
"i"
),
Cb
=
{
position
:
"absolute"
,
visibility
:
"hidden"
,
display
:
"block"
},
Db
=
{
letterSpacing
:
"0"
,
fontWeight
:
"400"
},
Eb
=
[
"Webkit"
,
"O"
,
"Moz"
,
"ms"
];
function
Fb
(
a
,
b
){
if
(
b
in
a
)
return
b
;
var
c
=
b
[
0
].
toUpperCase
()
+
b
.
slice
(
1
),
d
=
b
,
e
=
Eb
.
length
;
while
(
e
--
)
if
(
b
=
Eb
[
e
]
+
c
,
b
in
a
)
return
b
;
return
d
}
function
Gb
(
a
,
b
,
c
){
var
d
=
Ab
.
exec
(
b
);
return
d
?
Math
.
max
(
0
,
d
[
1
]
-
(
c
||
0
))
+
(
d
[
2
]
||
"px"
):
b
}
function
Hb
(
a
,
b
,
c
,
d
,
e
){
for
(
var
f
=
c
===
(
d
?
"border"
:
"content"
)?
4
:
"width"
===
b
?
1
:
0
,
g
=
0
;
4
>
f
;
f
+=
2
)
"margin"
===
c
&&
(
g
+=
n
.
css
(
a
,
c
+
R
[
f
],
!
0
,
e
)),
d
?(
"content"
===
c
&&
(
g
-=
n
.
css
(
a
,
"padding"
+
R
[
f
],
!
0
,
e
)),
"margin"
!==
c
&&
(
g
-=
n
.
css
(
a
,
"border"
+
R
[
f
]
+
"Width"
,
!
0
,
e
))):(
g
+=
n
.
css
(
a
,
"padding"
+
R
[
f
],
!
0
,
e
),
"padding"
!==
c
&&
(
g
+=
n
.
css
(
a
,
"border"
+
R
[
f
]
+
"Width"
,
!
0
,
e
)));
return
g
}
function
Ib
(
a
,
b
,
c
){
var
d
=!
0
,
e
=
"width"
===
b
?
a
.
offsetWidth
:
a
.
offsetHeight
,
f
=
wb
(
a
),
g
=
"border-box"
===
n
.
css
(
a
,
"boxSizing"
,
!
1
,
f
);
if
(
0
>=
e
||
null
==
e
){
if
(
e
=
xb
(
a
,
b
,
f
),(
0
>
e
||
null
==
e
)
&&
(
e
=
a
.
style
[
b
]),
vb
.
test
(
e
))
return
e
;
d
=
g
&&
(
k
.
boxSizingReliable
()
||
e
===
a
.
style
[
b
]),
e
=
parseFloat
(
e
)
||
0
}
return
e
+
Hb
(
a
,
b
,
c
||
(
g
?
"border"
:
"content"
),
d
,
f
)
+
"px"
}
function
Jb
(
a
,
b
){
for
(
var
c
,
d
,
e
,
f
=
[],
g
=
0
,
h
=
a
.
length
;
h
>
g
;
g
++
)
d
=
a
[
g
],
d
.
style
&&
(
f
[
g
]
=
L
.
get
(
d
,
"olddisplay"
),
c
=
d
.
style
.
display
,
b
?(
f
[
g
]
||
"none"
!==
c
||
(
d
.
style
.
display
=
""
),
""
===
d
.
style
.
display
&&
S
(
d
)
&&
(
f
[
g
]
=
L
.
access
(
d
,
"olddisplay"
,
tb
(
d
.
nodeName
)))):(
e
=
S
(
d
),
"none"
===
c
&&
e
||
L
.
set
(
d
,
"olddisplay"
,
e
?
c
:
n
.
css
(
d
,
"display"
))));
for
(
g
=
0
;
h
>
g
;
g
++
)
d
=
a
[
g
],
d
.
style
&&
(
b
&&
"none"
!==
d
.
style
.
display
&&
""
!==
d
.
style
.
display
||
(
d
.
style
.
display
=
b
?
f
[
g
]
||
""
:
"none"
));
return
a
}
n
.
extend
({
cssHooks
:{
opacity
:{
get
:
function
(
a
,
b
){
if
(
b
){
var
c
=
xb
(
a
,
"opacity"
);
return
""
===
c
?
"1"
:
c
}}}},
cssNumber
:{
columnCount
:
!
0
,
fillOpacity
:
!
0
,
flexGrow
:
!
0
,
flexShrink
:
!
0
,
fontWeight
:
!
0
,
lineHeight
:
!
0
,
opacity
:
!
0
,
order
:
!
0
,
orphans
:
!
0
,
widows
:
!
0
,
zIndex
:
!
0
,
zoom
:
!
0
},
cssProps
:{
"float"
:
"cssFloat"
},
style
:
function
(
a
,
b
,
c
,
d
){
if
(
a
&&
3
!==
a
.
nodeType
&&
8
!==
a
.
nodeType
&&
a
.
style
){
var
e
,
f
,
g
,
h
=
n
.
camelCase
(
b
),
i
=
a
.
style
;
return
b
=
n
.
cssProps
[
h
]
||
(
n
.
cssProps
[
h
]
=
Fb
(
i
,
h
)),
g
=
n
.
cssHooks
[
b
]
||
n
.
cssHooks
[
h
],
void
0
===
c
?
g
&&
"get"
in
g
&&
void
0
!==
(
e
=
g
.
get
(
a
,
!
1
,
d
))?
e
:
i
[
b
]:(
f
=
typeof
c
,
"string"
===
f
&&
(
e
=
Bb
.
exec
(
c
))
&&
(
c
=
(
e
[
1
]
+
1
)
*
e
[
2
]
+
parseFloat
(
n
.
css
(
a
,
b
)),
f
=
"number"
),
null
!=
c
&&
c
===
c
&&
(
"number"
!==
f
||
n
.
cssNumber
[
h
]
||
(
c
+=
"px"
),
k
.
clearCloneStyle
||
""
!==
c
||
0
!==
b
.
indexOf
(
"background"
)
||
(
i
[
b
]
=
"inherit"
),
g
&&
"set"
in
g
&&
void
0
===
(
c
=
g
.
set
(
a
,
c
,
d
))
||
(
i
[
b
]
=
c
)),
void
0
)}},
css
:
function
(
a
,
b
,
c
,
d
){
var
e
,
f
,
g
,
h
=
n
.
camelCase
(
b
);
return
b
=
n
.
cssProps
[
h
]
||
(
n
.
cssProps
[
h
]
=
Fb
(
a
.
style
,
h
)),
g
=
n
.
cssHooks
[
b
]
||
n
.
cssHooks
[
h
],
g
&&
"get"
in
g
&&
(
e
=
g
.
get
(
a
,
!
0
,
c
)),
void
0
===
e
&&
(
e
=
xb
(
a
,
b
,
d
)),
"normal"
===
e
&&
b
in
Db
&&
(
e
=
Db
[
b
]),
""
===
c
||
c
?(
f
=
parseFloat
(
e
),
c
===!
0
||
n
.
isNumeric
(
f
)?
f
||
0
:
e
):
e
}}),
n
.
each
([
"height"
,
"width"
],
function
(
a
,
b
){
n
.
cssHooks
[
b
]
=
{
get
:
function
(
a
,
c
,
d
){
return
c
?
zb
.
test
(
n
.
css
(
a
,
"display"
))
&&
0
===
a
.
offsetWidth
?
n
.
swap
(
a
,
Cb
,
function
(){
return
Ib
(
a
,
b
,
d
)}):
Ib
(
a
,
b
,
d
):
void
0
},
set
:
function
(
a
,
c
,
d
){
var
e
=
d
&&
wb
(
a
);
return
Gb
(
a
,
c
,
d
?
Hb
(
a
,
b
,
d
,
"border-box"
===
n
.
css
(
a
,
"boxSizing"
,
!
1
,
e
),
e
):
0
)}}}),
n
.
cssHooks
.
marginRight
=
yb
(
k
.
reliableMarginRight
,
function
(
a
,
b
){
return
b
?
n
.
swap
(
a
,{
display
:
"inline-block"
},
xb
,[
a
,
"marginRight"
]):
void
0
}),
n
.
each
({
margin
:
""
,
padding
:
""
,
border
:
"Width"
},
function
(
a
,
b
){
n
.
cssHooks
[
a
+
b
]
=
{
expand
:
function
(
c
){
for
(
var
d
=
0
,
e
=
{},
f
=
"string"
==
typeof
c
?
c
.
split
(
" "
):[
c
];
4
>
d
;
d
++
)
e
[
a
+
R
[
d
]
+
b
]
=
f
[
d
]
||
f
[
d
-
2
]
||
f
[
0
];
return
e
}},
ub
.
test
(
a
)
||
(
n
.
cssHooks
[
a
+
b
].
set
=
Gb
)}),
n
.
fn
.
extend
({
css
:
function
(
a
,
b
){
return
J
(
this
,
function
(
a
,
b
,
c
){
var
d
,
e
,
f
=
{},
g
=
0
;
if
(
n
.
isArray
(
b
)){
for
(
d
=
wb
(
a
),
e
=
b
.
length
;
e
>
g
;
g
++
)
f
[
b
[
g
]]
=
n
.
css
(
a
,
b
[
g
],
!
1
,
d
);
return
f
}
return
void
0
!==
c
?
n
.
style
(
a
,
b
,
c
):
n
.
css
(
a
,
b
)},
a
,
b
,
arguments
.
length
>
1
)},
show
:
function
(){
return
Jb
(
this
,
!
0
)},
hide
:
function
(){
return
Jb
(
this
)},
toggle
:
function
(
a
){
return
"boolean"
==
typeof
a
?
a
?
this
.
show
():
this
.
hide
():
this
.
each
(
function
(){
S
(
this
)?
n
(
this
).
show
():
n
(
this
).
hide
()})}});
function
Kb
(
a
,
b
,
c
,
d
,
e
){
return
new
Kb
.
prototype
.
init
(
a
,
b
,
c
,
d
,
e
)}
n
.
Tween
=
Kb
,
Kb
.
prototype
=
{
constructor
:
Kb
,
init
:
function
(
a
,
b
,
c
,
d
,
e
,
f
){
this
.
elem
=
a
,
this
.
prop
=
c
,
this
.
easing
=
e
||
"swing"
,
this
.
options
=
b
,
this
.
start
=
this
.
now
=
this
.
cur
(),
this
.
end
=
d
,
this
.
unit
=
f
||
(
n
.
cssNumber
[
c
]?
""
:
"px"
)},
cur
:
function
(){
var
a
=
Kb
.
propHooks
[
this
.
prop
];
return
a
&&
a
.
get
?
a
.
get
(
this
):
Kb
.
propHooks
.
_default
.
get
(
this
)},
run
:
function
(
a
){
var
b
,
c
=
Kb
.
propHooks
[
this
.
prop
];
return
this
.
pos
=
b
=
this
.
options
.
duration
?
n
.
easing
[
this
.
easing
](
a
,
this
.
options
.
duration
*
a
,
0
,
1
,
this
.
options
.
duration
):
a
,
this
.
now
=
(
this
.
end
-
this
.
start
)
*
b
+
this
.
start
,
this
.
options
.
step
&&
this
.
options
.
step
.
call
(
this
.
elem
,
this
.
now
,
this
),
c
&&
c
.
set
?
c
.
set
(
this
):
Kb
.
propHooks
.
_default
.
set
(
this
),
this
}},
Kb
.
prototype
.
init
.
prototype
=
Kb
.
prototype
,
Kb
.
propHooks
=
{
_default
:{
get
:
function
(
a
){
var
b
;
return
null
==
a
.
elem
[
a
.
prop
]
||
a
.
elem
.
style
&&
null
!=
a
.
elem
.
style
[
a
.
prop
]?(
b
=
n
.
css
(
a
.
elem
,
a
.
prop
,
""
),
b
&&
"auto"
!==
b
?
b
:
0
):
a
.
elem
[
a
.
prop
]},
set
:
function
(
a
){
n
.
fx
.
step
[
a
.
prop
]?
n
.
fx
.
step
[
a
.
prop
](
a
):
a
.
elem
.
style
&&
(
null
!=
a
.
elem
.
style
[
n
.
cssProps
[
a
.
prop
]]
||
n
.
cssHooks
[
a
.
prop
])?
n
.
style
(
a
.
elem
,
a
.
prop
,
a
.
now
+
a
.
unit
):
a
.
elem
[
a
.
prop
]
=
a
.
now
}}},
Kb
.
propHooks
.
scrollTop
=
Kb
.
propHooks
.
scrollLeft
=
{
set
:
function
(
a
){
a
.
elem
.
nodeType
&&
a
.
elem
.
parentNode
&&
(
a
.
elem
[
a
.
prop
]
=
a
.
now
)}},
n
.
easing
=
{
linear
:
function
(
a
){
return
a
},
swing
:
function
(
a
){
return
.
5
-
Math
.
cos
(
a
*
Math
.
PI
)
/
2
}},
n
.
fx
=
Kb
.
prototype
.
init
,
n
.
fx
.
step
=
{};
var
Lb
,
Mb
,
Nb
=
/^
(?:
toggle|show|hide
)
$/
,
Ob
=
new
RegExp
(
"^(?:([+-])=|)("
+
Q
+
")([a-z%]*)$"
,
"i"
),
Pb
=
/queueHooks$/
,
Qb
=
[
Vb
],
Rb
=
{
"*"
:[
function
(
a
,
b
){
var
c
=
this
.
createTween
(
a
,
b
),
d
=
c
.
cur
(),
e
=
Ob
.
exec
(
b
),
f
=
e
&&
e
[
3
]
||
(
n
.
cssNumber
[
a
]?
""
:
"px"
),
g
=
(
n
.
cssNumber
[
a
]
||
"px"
!==
f
&&+
d
)
&&
Ob
.
exec
(
n
.
css
(
c
.
elem
,
a
)),
h
=
1
,
i
=
20
;
if
(
g
&&
g
[
3
]
!==
f
){
f
=
f
||
g
[
3
],
e
=
e
||
[],
g
=+
d
||
1
;
do
h
=
h
||
".5"
,
g
/=
h
,
n
.
style
(
c
.
elem
,
a
,
g
+
f
);
while
(
h
!==
(
h
=
c
.
cur
()
/
d
)
&&
1
!==
h
&&--
i
)}
return
e
&&
(
g
=
c
.
start
=+
g
||+
d
||
0
,
c
.
unit
=
f
,
c
.
end
=
e
[
1
]?
g
+
(
e
[
1
]
+
1
)
*
e
[
2
]:
+
e
[
2
]),
c
}]};
function
Sb
(){
return
setTimeout
(
function
(){
Lb
=
void
0
}),
Lb
=
n
.
now
()}
function
Tb
(
a
,
b
){
var
c
,
d
=
0
,
e
=
{
height
:
a
};
for
(
b
=
b
?
1
:
0
;
4
>
d
;
d
+=
2
-
b
)
c
=
R
[
d
],
e
[
"margin"
+
c
]
=
e
[
"padding"
+
c
]
=
a
;
return
b
&&
(
e
.
opacity
=
e
.
width
=
a
),
e
}
function
Ub
(
a
,
b
,
c
){
for
(
var
d
,
e
=
(
Rb
[
b
]
||
[]).
concat
(
Rb
[
"*"
]),
f
=
0
,
g
=
e
.
length
;
g
>
f
;
f
++
)
if
(
d
=
e
[
f
].
call
(
c
,
b
,
a
))
return
d
}
function
Vb
(
a
,
b
,
c
){
var
d
,
e
,
f
,
g
,
h
,
i
,
j
,
k
,
l
=
this
,
m
=
{},
o
=
a
.
style
,
p
=
a
.
nodeType
&&
S
(
a
),
q
=
L
.
get
(
a
,
"fxshow"
);
c
.
queue
||
(
h
=
n
.
_queueHooks
(
a
,
"fx"
),
null
==
h
.
unqueued
&&
(
h
.
unqueued
=
0
,
i
=
h
.
empty
.
fire
,
h
.
empty
.
fire
=
function
(){
h
.
unqueued
||
i
()}),
h
.
unqueued
++
,
l
.
always
(
function
(){
l
.
always
(
function
(){
h
.
unqueued
--
,
n
.
queue
(
a
,
"fx"
).
length
||
h
.
empty
.
fire
()})})),
1
===
a
.
nodeType
&&
(
"height"
in
b
||
"width"
in
b
)
&&
(
c
.
overflow
=
[
o
.
overflow
,
o
.
overflowX
,
o
.
overflowY
],
j
=
n
.
css
(
a
,
"display"
),
k
=
"none"
===
j
?
L
.
get
(
a
,
"olddisplay"
)
||
tb
(
a
.
nodeName
):
j
,
"inline"
===
k
&&
"none"
===
n
.
css
(
a
,
"float"
)
&&
(
o
.
display
=
"inline-block"
)),
c
.
overflow
&&
(
o
.
overflow
=
"hidden"
,
l
.
always
(
function
(){
o
.
overflow
=
c
.
overflow
[
0
],
o
.
overflowX
=
c
.
overflow
[
1
],
o
.
overflowY
=
c
.
overflow
[
2
]}));
for
(
d
in
b
)
if
(
e
=
b
[
d
],
Nb
.
exec
(
e
)){
if
(
delete
b
[
d
],
f
=
f
||
"toggle"
===
e
,
e
===
(
p
?
"hide"
:
"show"
)){
if
(
"show"
!==
e
||!
q
||
void
0
===
q
[
d
])
continue
;
p
=!
0
}
m
[
d
]
=
q
&&
q
[
d
]
||
n
.
style
(
a
,
d
)}
else
j
=
void
0
;
if
(
n
.
isEmptyObject
(
m
))
"inline"
===
(
"none"
===
j
?
tb
(
a
.
nodeName
):
j
)
&&
(
o
.
display
=
j
);
else
{
q
?
"hidden"
in
q
&&
(
p
=
q
.
hidden
):
q
=
L
.
access
(
a
,
"fxshow"
,{}),
f
&&
(
q
.
hidden
=!
p
),
p
?
n
(
a
).
show
():
l
.
done
(
function
(){
n
(
a
).
hide
()}),
l
.
done
(
function
(){
var
b
;
L
.
remove
(
a
,
"fxshow"
);
for
(
b
in
m
)
n
.
style
(
a
,
b
,
m
[
b
])});
for
(
d
in
m
)
g
=
Ub
(
p
?
q
[
d
]:
0
,
d
,
l
),
d
in
q
||
(
q
[
d
]
=
g
.
start
,
p
&&
(
g
.
end
=
g
.
start
,
g
.
start
=
"width"
===
d
||
"height"
===
d
?
1
:
0
))}}
function
Wb
(
a
,
b
){
var
c
,
d
,
e
,
f
,
g
;
for
(
c
in
a
)
if
(
d
=
n
.
camelCase
(
c
),
e
=
b
[
d
],
f
=
a
[
c
],
n
.
isArray
(
f
)
&&
(
e
=
f
[
1
],
f
=
a
[
c
]
=
f
[
0
]),
c
!==
d
&&
(
a
[
d
]
=
f
,
delete
a
[
c
]),
g
=
n
.
cssHooks
[
d
],
g
&&
"expand"
in
g
){
f
=
g
.
expand
(
f
),
delete
a
[
d
];
for
(
c
in
f
)
c
in
a
||
(
a
[
c
]
=
f
[
c
],
b
[
c
]
=
e
)}
else
b
[
d
]
=
e
}
function
Xb
(
a
,
b
,
c
){
var
d
,
e
,
f
=
0
,
g
=
Qb
.
length
,
h
=
n
.
Deferred
().
always
(
function
(){
delete
i
.
elem
}),
i
=
function
(){
if
(
e
)
return
!
1
;
for
(
var
b
=
Lb
||
Sb
(),
c
=
Math
.
max
(
0
,
j
.
startTime
+
j
.
duration
-
b
),
d
=
c
/
j
.
duration
||
0
,
f
=
1
-
d
,
g
=
0
,
i
=
j
.
tweens
.
length
;
i
>
g
;
g
++
)
j
.
tweens
[
g
].
run
(
f
);
return
h
.
notifyWith
(
a
,[
j
,
f
,
c
]),
1
>
f
&&
i
?
c
:(
h
.
resolveWith
(
a
,[
j
]),
!
1
)},
j
=
h
.
promise
({
elem
:
a
,
props
:
n
.
extend
({},
b
),
opts
:
n
.
extend
(
!
0
,{
specialEasing
:{}},
c
),
originalProperties
:
b
,
originalOptions
:
c
,
startTime
:
Lb
||
Sb
(),
duration
:
c
.
duration
,
tweens
:[],
createTween
:
function
(
b
,
c
){
var
d
=
n
.
Tween
(
a
,
j
.
opts
,
b
,
c
,
j
.
opts
.
specialEasing
[
b
]
||
j
.
opts
.
easing
);
return
j
.
tweens
.
push
(
d
),
d
},
stop
:
function
(
b
){
var
c
=
0
,
d
=
b
?
j
.
tweens
.
length
:
0
;
if
(
e
)
return
this
;
for
(
e
=!
0
;
d
>
c
;
c
++
)
j
.
tweens
[
c
].
run
(
1
);
return
b
?
h
.
resolveWith
(
a
,[
j
,
b
]):
h
.
rejectWith
(
a
,[
j
,
b
]),
this
}}),
k
=
j
.
props
;
for
(
Wb
(
k
,
j
.
opts
.
specialEasing
);
g
>
f
;
f
++
)
if
(
d
=
Qb
[
f
].
call
(
j
,
a
,
k
,
j
.
opts
))
return
d
;
return
n
.
map
(
k
,
Ub
,
j
),
n
.
isFunction
(
j
.
opts
.
start
)
&&
j
.
opts
.
start
.
call
(
a
,
j
),
n
.
fx
.
timer
(
n
.
extend
(
i
,{
elem
:
a
,
anim
:
j
,
queue
:
j
.
opts
.
queue
})),
j
.
progress
(
j
.
opts
.
progress
).
done
(
j
.
opts
.
done
,
j
.
opts
.
complete
).
fail
(
j
.
opts
.
fail
).
always
(
j
.
opts
.
always
)}
n
.
Animation
=
n
.
extend
(
Xb
,{
tweener
:
function
(
a
,
b
){
n
.
isFunction
(
a
)?(
b
=
a
,
a
=
[
"*"
]):
a
=
a
.
split
(
" "
);
for
(
var
c
,
d
=
0
,
e
=
a
.
length
;
e
>
d
;
d
++
)
c
=
a
[
d
],
Rb
[
c
]
=
Rb
[
c
]
||
[],
Rb
[
c
].
unshift
(
b
)},
prefilter
:
function
(
a
,
b
){
b
?
Qb
.
unshift
(
a
):
Qb
.
push
(
a
)}}),
n
.
speed
=
function
(
a
,
b
,
c
){
var
d
=
a
&&
"object"
==
typeof
a
?
n
.
extend
({},
a
):{
complete
:
c
||!
c
&&
b
||
n
.
isFunction
(
a
)
&&
a
,
duration
:
a
,
easing
:
c
&&
b
||
b
&&!
n
.
isFunction
(
b
)
&&
b
};
return
d
.
duration
=
n
.
fx
.
off
?
0
:
"number"
==
typeof
d
.
duration
?
d
.
duration
:
d
.
duration
in
n
.
fx
.
speeds
?
n
.
fx
.
speeds
[
d
.
duration
]:
n
.
fx
.
speeds
.
_default
,(
null
==
d
.
queue
||
d
.
queue
===!
0
)
&&
(
d
.
queue
=
"fx"
),
d
.
old
=
d
.
complete
,
d
.
complete
=
function
(){
n
.
isFunction
(
d
.
old
)
&&
d
.
old
.
call
(
this
),
d
.
queue
&&
n
.
dequeue
(
this
,
d
.
queue
)},
d
},
n
.
fn
.
extend
({
fadeTo
:
function
(
a
,
b
,
c
,
d
){
return
this
.
filter
(
S
).
css
(
"opacity"
,
0
).
show
().
end
().
animate
({
opacity
:
b
},
a
,
c
,
d
)},
animate
:
function
(
a
,
b
,
c
,
d
){
var
e
=
n
.
isEmptyObject
(
a
),
f
=
n
.
speed
(
b
,
c
,
d
),
g
=
function
(){
var
b
=
Xb
(
this
,
n
.
extend
({},
a
),
f
);(
e
||
L
.
get
(
this
,
"finish"
))
&&
b
.
stop
(
!
0
)};
return
g
.
finish
=
g
,
e
||
f
.
queue
===!
1
?
this
.
each
(
g
):
this
.
queue
(
f
.
queue
,
g
)},
stop
:
function
(
a
,
b
,
c
){
var
d
=
function
(
a
){
var
b
=
a
.
stop
;
delete
a
.
stop
,
b
(
c
)};
return
"string"
!=
typeof
a
&&
(
c
=
b
,
b
=
a
,
a
=
void
0
),
b
&&
a
!==!
1
&&
this
.
queue
(
a
||
"fx"
,[]),
this
.
each
(
function
(){
var
b
=!
0
,
e
=
null
!=
a
&&
a
+
"queueHooks"
,
f
=
n
.
timers
,
g
=
L
.
get
(
this
);
if
(
e
)
g
[
e
]
&&
g
[
e
].
stop
&&
d
(
g
[
e
]);
else
for
(
e
in
g
)
g
[
e
]
&&
g
[
e
].
stop
&&
Pb
.
test
(
e
)
&&
d
(
g
[
e
]);
for
(
e
=
f
.
length
;
e
--
;)
f
[
e
].
elem
!==
this
||
null
!=
a
&&
f
[
e
].
queue
!==
a
||
(
f
[
e
].
anim
.
stop
(
c
),
b
=!
1
,
f
.
splice
(
e
,
1
));(
b
||!
c
)
&&
n
.
dequeue
(
this
,
a
)})},
finish
:
function
(
a
){
return
a
!==!
1
&&
(
a
=
a
||
"fx"
),
this
.
each
(
function
(){
var
b
,
c
=
L
.
get
(
this
),
d
=
c
[
a
+
"queue"
],
e
=
c
[
a
+
"queueHooks"
],
f
=
n
.
timers
,
g
=
d
?
d
.
length
:
0
;
for
(
c
.
finish
=!
0
,
n
.
queue
(
this
,
a
,[]),
e
&&
e
.
stop
&&
e
.
stop
.
call
(
this
,
!
0
),
b
=
f
.
length
;
b
--
;)
f
[
b
].
elem
===
this
&&
f
[
b
].
queue
===
a
&&
(
f
[
b
].
anim
.
stop
(
!
0
),
f
.
splice
(
b
,
1
));
for
(
b
=
0
;
g
>
b
;
b
++
)
d
[
b
]
&&
d
[
b
].
finish
&&
d
[
b
].
finish
.
call
(
this
);
delete
c
.
finish
})}}),
n
.
each
([
"toggle"
,
"show"
,
"hide"
],
function
(
a
,
b
){
var
c
=
n
.
fn
[
b
];
n
.
fn
[
b
]
=
function
(
a
,
d
,
e
){
return
null
==
a
||
"boolean"
==
typeof
a
?
c
.
apply
(
this
,
arguments
):
this
.
animate
(
Tb
(
b
,
!
0
),
a
,
d
,
e
)}}),
n
.
each
({
slideDown
:
Tb
(
"show"
),
slideUp
:
Tb
(
"hide"
),
slideToggle
:
Tb
(
"toggle"
),
fadeIn
:{
opacity
:
"show"
},
fadeOut
:{
opacity
:
"hide"
},
fadeToggle
:{
opacity
:
"toggle"
}},
function
(
a
,
b
){
n
.
fn
[
a
]
=
function
(
a
,
c
,
d
){
return
this
.
animate
(
b
,
a
,
c
,
d
)}}),
n
.
timers
=
[],
n
.
fx
.
tick
=
function
(){
var
a
,
b
=
0
,
c
=
n
.
timers
;
for
(
Lb
=
n
.
now
();
b
<
c
.
length
;
b
++
)
a
=
c
[
b
],
a
()
||
c
[
b
]
!==
a
||
c
.
splice
(
b
--
,
1
);
c
.
length
||
n
.
fx
.
stop
(),
Lb
=
void
0
},
n
.
fx
.
timer
=
function
(
a
){
n
.
timers
.
push
(
a
),
a
()?
n
.
fx
.
start
():
n
.
timers
.
pop
()},
n
.
fx
.
interval
=
13
,
n
.
fx
.
start
=
function
(){
Mb
||
(
Mb
=
setInterval
(
n
.
fx
.
tick
,
n
.
fx
.
interval
))},
n
.
fx
.
stop
=
function
(){
clearInterval
(
Mb
),
Mb
=
null
},
n
.
fx
.
speeds
=
{
slow
:
600
,
fast
:
200
,
_default
:
400
},
n
.
fn
.
delay
=
function
(
a
,
b
){
return
a
=
n
.
fx
?
n
.
fx
.
speeds
[
a
]
||
a
:
a
,
b
=
b
||
"fx"
,
this
.
queue
(
b
,
function
(
b
,
c
){
var
d
=
setTimeout
(
b
,
a
);
c
.
stop
=
function
(){
clearTimeout
(
d
)}})},
function
(){
var
a
=
l
.
createElement
(
"input"
),
b
=
l
.
createElement
(
"select"
),
c
=
b
.
appendChild
(
l
.
createElement
(
"option"
));
a
.
type
=
"checkbox"
,
k
.
checkOn
=
""
!==
a
.
value
,
k
.
optSelected
=
c
.
selected
,
b
.
disabled
=!
0
,
k
.
optDisabled
=!
c
.
disabled
,
a
=
l
.
createElement
(
"input"
),
a
.
value
=
"t"
,
a
.
type
=
"radio"
,
k
.
radioValue
=
"t"
===
a
.
value
}();
var
Yb
,
Zb
,
$b
=
n
.
expr
.
attrHandle
;
n
.
fn
.
extend
({
attr
:
function
(
a
,
b
){
return
J
(
this
,
n
.
attr
,
a
,
b
,
arguments
.
length
>
1
)},
removeAttr
:
function
(
a
){
return
this
.
each
(
function
(){
n
.
removeAttr
(
this
,
a
)})}}),
n
.
extend
({
attr
:
function
(
a
,
b
,
c
){
var
d
,
e
,
f
=
a
.
nodeType
;
if
(
a
&&
3
!==
f
&&
8
!==
f
&&
2
!==
f
)
return
typeof
a
.
getAttribute
===
U
?
n
.
prop
(
a
,
b
,
c
):(
1
===
f
&&
n
.
isXMLDoc
(
a
)
||
(
b
=
b
.
toLowerCase
(),
d
=
n
.
attrHooks
[
b
]
||
(
n
.
expr
.
match
.
bool
.
test
(
b
)?
Zb
:
Yb
)),
void
0
===
c
?
d
&&
"get"
in
d
&&
null
!==
(
e
=
d
.
get
(
a
,
b
))?
e
:(
e
=
n
.
find
.
attr
(
a
,
b
),
null
==
e
?
void
0
:
e
):
null
!==
c
?
d
&&
"set"
in
d
&&
void
0
!==
(
e
=
d
.
set
(
a
,
c
,
b
))?
e
:(
a
.
setAttribute
(
b
,
c
+
""
),
c
):
void
n
.
removeAttr
(
a
,
b
))
...
...
Please
register
or
login
to post a comment