@ -1,23 +1,23 @@
( function ( vb ) { function wb ( ) { function k ( c , $a ) { c . attr ( "transform" , function ( c ) { return "translate(" + ( $a ( c ) + U ) + ",0)" } ) } function s ( c , k ) { c . attr ( "transform" , function ( c ) { return "translate(0," + k ( c ) + ")" } ) } function La ( c ) { var k = c [ 0 ] ; c = c [ c . length - 1 ] ; return k < c ? [ k , c ] : [ c , k ] } function ta ( c ) { for ( var k = [ ] , p = Math . ceil ( c [ 0 ] ) ; p < c [ 1 ] ; p ++ ) k . push ( p ) ; 0 < k . length && 0 < k [ 0 ] && k . unshift ( k [ 0 ] - ( k [ 1 ] - k [ 0 ] ) ) ; return k } function n ( w ) { w . each ( function ( ) { var w = d3 . select ( this ) , n = ta ( I . domain ( ) ) , D = w . selectAll ( ".tick.major" ) . data ( n , String ) , N = D . enter ( ) . insert ( "g" ,
"path" ) . attr ( "class" , "tick major" ) . style ( "opacity" , 1E-6 ) , la = d3 . transition ( D . exit ( ) ) . style ( "opacity" , 1E-6 ) . remove ( ) , ma = d3 . transition ( D ) . style ( "opacity" , 1 ) , A , E = I . rangeExtent ? I . rangeExtent ( ) : La ( I . range ( ) ) , w = w . selectAll ( ".domain" ) . data ( [ 0 ] ) , w = ( w . enter ( ) . append ( "path" ) . attr ( "class" , "domain" ) , d3 . transition ( w ) ) , B = I . copy ( ) , Ma = this . _ _chart _ _ || B ; this . _ _chart _ _ = B ; N . append ( "line" ) ; N . append ( "text" ) ; var ua = N . select ( "line" ) , va = ma . select ( "line" ) , O = D . select ( "text" ) , wa = N . select ( "text" ) , ba = ma . select ( "text" ) ; U = ( B ( 1 ) -
B ( 0 ) ) / 2 ; D = c ? 0 : U ; switch ( p ) { case "bottom" : A = k ; ua . attr ( "y2" , F ) ; wa . attr ( "y" , Math . max ( F , 0 ) + J ) ; va . attr ( "x1" , D ) . attr ( "x2" , D ) . attr ( "y2" , F ) ; ba . attr ( "x" , 0 ) . attr ( "y" , Math . max ( F , 0 ) + J ) ; O . attr ( "dy" , ".71em" ) . style ( "text-anchor" , "middle" ) ; O . text ( function ( c ) { return n . length < Q || 0 == c % Math . ceil ( n . length / Q ) ? c < P . length ? P [ c ] : c : "" } ) ; w . attr ( "d" , "M" + E [ 0 ] + "," + V + "V0H" + E [ 1 ] + "V" + V ) ; break ; case "left" : A = s , ua . attr ( "x2" , - F ) , wa . attr ( "x" , - ( Math . max ( F , 0 ) + J ) ) , va . attr ( "x2" , - F ) . attr ( "y2" , 0 ) , ba . attr ( "x" , - ( Math . max ( F , 0 ) + J ) ) . attr ( "y" , U ) , O . attr ( "dy" ,
".32em" ) . style ( "text-anchor" , "end" ) , O . text ( function ( c ) { return n . length < Q || 0 == c % Math . ceil ( n . length / Q ) ? c < P . length ? P [ c ] : c : "" } ) , w . attr ( "d" , "M" + - V + "," + E [ 0 ] + "H0V" + E [ 1 ] + "H" + - V ) } if ( I . ticks ) N . call ( A , Ma ) , ma . call ( A , B ) , la . call ( A , B ) ; else { var xa = B . rangeBand ( ) / 2 , la = function ( c ) { return B ( c ) + xa } ; N . call ( A , la ) ; ma . call ( A , la ) } } ) } var I = d3 . scale . linear ( ) , p = "bottom" , F = 6 , V = 6 , J = 3 , c = ! 1 , Q = 10 , U = 0 , P = [ ] ; n . scale = function ( c ) { if ( ! arguments . length ) return I ; I = c ; return n } ; n . orient = function ( c ) { if ( ! arguments . length ) return p ; p = c in { top : 1 ,
right : 1 , bottom : 1 , left : 1 } ? c + "" : "bottom" ; return n } ; n . categories = function ( c ) { if ( ! arguments . length ) return P ; P = c ; return n } ; n . tickCentered = function ( k ) { if ( ! arguments . length ) return c ; c = k ; return n } ; n . tickTextNum = function ( c ) { if ( ! arguments . length ) return Q ; Q = c ; return n } ; n . tickOffset = function ( ) { return U } ; n . ticks = function ( ) { } ; return n } function s ( k ) { return "undefined" === typeof k } function k ( k ) { return "undefined" !== typeof k } vb . c3 = { } ; c3 . generate = function ( T ) { var xb , La , ta , n , I , p , F , V , J ; function c ( a , b ) { for ( var d = T , e = 0 ; e <
a . length ; e ++ ) { if ( ! ( a [ e ] in d ) ) return b ; d = d [ a [ e ] ] } return d } function Q ( ) { bb = null === yb ? + d3 . select ( ya ) . style ( "width" ) . replace ( "px" , "" ) : yb ; var a = null === zb ? + d3 . select ( ya ) . style ( "height" ) . replace ( "px" , "" ) : zb ; na = 0 < a ? a : 320 ; Ab = 20 + Bb + ca ; Cb = ! Db || f || cb ? 1 : 50 ; Na = db ? 0 : 40 ; Eb = na - Bb - ca ; Fb = 20 + ca ; Gb = na - ca ; p = 0 ; F = Cb ; V = Ab ; J = Na ; ta = Eb ; n = Fb ; I = Na ; xb = Gb ; La = Na ; r = bb - J - F ; u = na - p - V ; da = na - ta - n } function U ( ) { var a , b , d , e ; Hb = f ? 10 : 0 ; Ib = f ? u : r ; eb = f ? 0 : u ; fb = f ? r : 1 ; a = P ( Hb , Ib ) ; b = w ( eb , fb ) ; d = w ( eb , fb ) ; e = P ( 0 , r ) ; m = k ( m ) ? a . domain ( m . domain ( ) ) : a ; y = k ( y ) ?
( function ( vb ) { function wb ( ) { function k ( c , $a ) { c . attr ( "transform" , function ( c ) { return "translate(" + ( $a ( c ) + U ) + ",0)" } ) } function s ( c , k ) { c . attr ( "transform" , function ( c ) { return "translate(0," + k ( c ) + ")" } ) } function La ( c ) { var k = c [ 0 ] ; c = c [ c . length - 1 ] ; return k < c ? [ k , c ] : [ c , k ] } function ta ( c ) { for ( var k = [ ] , p = Math . ceil ( c [ 0 ] ) ; p < c [ 1 ] ; p ++ ) k . push ( p ) ; 0 < k . length && 0 < k [ 0 ] && k . unshift ( k [ 0 ] - ( k [ 1 ] - k [ 0 ] ) ) ; return k } function n ( w ) { w . each ( function ( ) { var w = d3 . select ( this ) , n = ta ( J . domain ( ) ) , E = w . selectAll ( ".tick.major" ) . data ( n , String ) , N = E . enter ( ) . insert ( "g" ,
"path" ) . attr ( "class" , "tick major" ) . style ( "opacity" , 1E-6 ) , la = d3 . transition ( E . exit ( ) ) . style ( "opacity" , 1E-6 ) . remove ( ) , ma = d3 . transition ( E ) . style ( "opacity" , 1 ) , A , F = J . rangeExtent ? J . rangeExtent ( ) : La ( J . range ( ) ) , w = w . selectAll ( ".domain" ) . data ( [ 0 ] ) , w = ( w . enter ( ) . append ( "path" ) . attr ( "class" , "domain" ) , d3 . transition ( w ) ) , B = J . copy ( ) , Ma = this . _ _chart _ _ || B ; this . _ _chart _ _ = B ; N . append ( "line" ) ; N . append ( "text" ) ; var ua = N . select ( "line" ) , va = ma . select ( "line" ) , O = E . select ( "text" ) , wa = N . select ( "text" ) , ba = ma . select ( "text" ) ; U = ( B ( 1 ) -
B ( 0 ) ) / 2 ; E = c ? 0 : U ; switch ( p ) { case "bottom" : A = k ; ua . attr ( "y2" , G ) ; wa . attr ( "y" , Math . max ( G , 0 ) + K ) ; va . attr ( "x1" , E ) . attr ( "x2" , E ) . attr ( "y2" , G ) ; ba . attr ( "x" , 0 ) . attr ( "y" , Math . max ( G , 0 ) + K ) ; O . attr ( "dy" , ".71em" ) . style ( "text-anchor" , "middle" ) ; O . text ( function ( c ) { return n . length < Q || 0 == c % Math . ceil ( n . length / Q ) ? c < P . length ? P [ c ] : c : "" } ) ; w . attr ( "d" , "M" + F [ 0 ] + "," + V + "V0H" + F [ 1 ] + "V" + V ) ; break ; case "left" : A = s , ua . attr ( "x2" , - G ) , wa . attr ( "x" , - ( Math . max ( G , 0 ) + K ) ) , va . attr ( "x2" , - G ) . attr ( "y2" , 0 ) , ba . attr ( "x" , - ( Math . max ( G , 0 ) + K ) ) . attr ( "y" , U ) , O . attr ( "dy" ,
".32em" ) . style ( "text-anchor" , "end" ) , O . text ( function ( c ) { return n . length < Q || 0 == c % Math . ceil ( n . length / Q ) ? c < P . length ? P [ c ] : c : "" } ) , w . attr ( "d" , "M" + - V + "," + F [ 0 ] + "H0V" + F [ 1 ] + "H" + - V ) } if ( J . ticks ) N . call ( A , Ma ) , ma . call ( A , B ) , la . call ( A , B ) ; else { var xa = B . rangeBand ( ) / 2 , la = function ( c ) { return B ( c ) + xa } ; N . call ( A , la ) ; ma . call ( A , la ) } } ) } var J = d3 . scale . linear ( ) , p = "bottom" , G = 6 , V = 6 , K = 3 , c = ! 1 , Q = 10 , U = 0 , P = [ ] ; n . scale = function ( c ) { if ( ! arguments . length ) return J ; J = c ; return n } ; n . orient = function ( c ) { if ( ! arguments . length ) return p ; p = c in { top : 1 ,
right : 1 , bottom : 1 , left : 1 } ? c + "" : "bottom" ; return n } ; n . categories = function ( c ) { if ( ! arguments . length ) return P ; P = c ; return n } ; n . tickCentered = function ( k ) { if ( ! arguments . length ) return c ; c = k ; return n } ; n . tickTextNum = function ( c ) { if ( ! arguments . length ) return Q ; Q = c ; return n } ; n . tickOffset = function ( ) { return U } ; n . ticks = function ( ) { } ; return n } function s ( k ) { return "undefined" === typeof k } function k ( k ) { return "undefined" !== typeof k } vb . c3 = { } ; c3 . generate = function ( T ) { var xb , La , ta , n , J , p , G , V , K ; function c ( a , b ) { for ( var d = T , e = 0 ; e <
a . length ; e ++ ) { if ( ! ( a [ e ] in d ) ) return b ; d = d [ a [ e ] ] } return d } function Q ( ) { bb = null === yb ? + d3 . select ( ya ) . style ( "width" ) . replace ( "px" , "" ) : yb ; var a = null === zb ? + d3 . select ( ya ) . style ( "height" ) . replace ( "px" , "" ) : zb ; na = 0 < a ? a : 320 ; Ab = 20 + Bb + ca ; Cb = ! Db || f || cb ? 1 : 50 ; Na = db ? 0 : 40 ; Eb = na - Bb - ca ; Fb = 20 + ca ; Gb = na - ca ; p = 0 ; G = Cb ; V = Ab ; K = Na ; ta = Eb ; n = Fb ; J = Na ; xb = Gb ; La = Na ; r = bb - K - G ; u = na - p - V ; da = na - ta - n } function U ( ) { var a , b , d , e ; Hb = f ? 10 : 0 ; Ib = f ? u : r ; eb = f ? 0 : u ; fb = f ? r : 1 ; a = P ( Hb , Ib ) ; b = w ( eb , fb ) ; d = w ( eb , fb ) ; e = P ( 0 , r ) ; m = k ( m ) ? a . domain ( m . domain ( ) ) : a ; y = k ( y ) ?
b . domain ( y . domain ( ) ) : b ; R = k ( R ) ? d . domain ( R . domain ( ) ) : d ; z = k ( z ) ? e . domain ( z . domain ( ) ) : e ; Oa = w ( da , 10 ) ; Pa = w ( da , 10 ) ; C . scale ( m ) . orient ( f ? "left" : "bottom" ) ; ea . scale ( y ) . orient ( f ? db ? "top" : "bottom" : db ? "right" : "left" ) ; Qa . scale ( R ) . orient ( f ? cb ? "bottom" : "top" : cb ? "left" : "right" ) ; fa . scale ( z ) . orient ( "bottom" ) ; ga && function ( ) { var a = m , b = z , d = Object . keys ( m ) , e , c ; m = function ( b ) { return a ( b ) + C . tickOffset ( ) } ; z = function ( a ) { return b ( a ) + fa . tickOffset ( ) } ; for ( c = 0 ; c < d . length ; c ++ ) e = d [ c ] , m [ e ] = a [ e ] , z [ e ] = b [ e ] ; m . domain = function ( b ) { if ( ! arguments . length ) return b =
a . domain ( ) , b [ 1 ] ++ , b ; a . domain ( b ) ; return m } } ( ) } function P ( a , b ) { return ( G ? d3 . time . scale ( ) : d3 . scale . linear ( ) ) . range ( [ a , b ] ) } function w ( a , b ) { return d3 . scale . linear ( ) . range ( [ a , b ] ) } function $a ( a ) { return d3 . min ( a , function ( a ) { return d3 . min ( a . values , function ( a ) { return a . value } ) } ) } function jc ( a ) { var b = { } , d , e ; a . forEach ( function ( a ) { b [ a . id ] = [ ] ; a . values . forEach ( function ( d ) { b [ a . id ] . push ( d . value ) } ) } ) ; for ( d = 0 ; d < v . length ; d ++ ) for ( e = 1 ; e < v [ d ] . length ; e ++ ) za ( v [ d ] [ e ] ) && ( s ( b [ v [ d ] [ e ] ] ) || b [ v [ d ] [ e ] ] . forEach ( function ( a , c ) { A ( v [ d ] [ e ] ) ===
A ( v [ d ] [ 0 ] ) && ( b [ v [ d ] [ 0 ] ] [ c ] += 1 * a ) } ) ) ; return d3 . max ( Object . keys ( b ) . map ( function ( a ) { return d3 . max ( b [ a ] ) } ) ) } function D ( a , b ) { var d = Ra ( function ( a ) { return A ( a . id ) === b } ) , e = "y2" === b ? kc : lc , g = "y2" === b ? mc : nc , e = null !== e ? e : $a ( d ) , g = null !== g ? g : jc ( d ) , c = 0.1 * Math . abs ( g - e ) , q = c , f = c , h = "y2" === b ? oc : pc ; null !== h && ( yDomainAbs = Math . max ( Math . abs ( e ) , Math . abs ( g ) ) , g = yDomainAbs - h , e = h - yDomainAbs ) ; "y" === b && null !== Aa && ( q = k ( Aa . top ) ? Aa . top : c , f = k ( Aa . bottom ) ? Aa . bottom : c ) ; "y2" === b && null !== Ba && ( q = k ( Ba . top ) ? Ba . top : c , f = k ( Ba . bottom ) ? Ba . bottom :
c ) ; return [ qc ( d , "bar" ) ? 0 : e - f , g + q ] } function N ( a ) { var b ; a ? ( a = m . domain ( ) , b = K . extent ( ) ) : ( a = Jb , b = m . domain ( ) ) ; return ( a [ 1 ] - a [ 0 ] ) / ( b [ 1 ] - b [ 0 ] ) } function la ( a ) { for ( var b = 0 ; b < a . length ; b ++ ) if ( ! ( a [ b ] in Sa ) ) return ! 1 ; return ! 0 } function ma ( a ) { for ( var b = [ ] , d = 0 ; d < a . length ; d ++ ) a [ d ] in Sa && b . push ( wa ( Sa [ a [ d ] ] ) ) ; return b } function A ( a ) { return a in Kb ? Kb [ a ] : "y" } function E ( a ) { return "y2" === A ( a ) ? R : y } function B ( a ) { return "y2" === A ( a ) ? Pa : Oa } function Ma ( a ) { var b = Ca [ a . id ] ; a . name = k ( b ) ? b : a . id ; return a } function ua ( a ) { var b = a [ 0 ] , d = { } , e =
[ ] , g , c ; for ( g = 1 ; g < a . length ; g ++ ) { d = { } ; for ( c = 0 ; c < a [ g ] . length ; c ++ ) d [ b [ c ] ] = a [ g ] [ c ] ; e . push ( d ) } return e } function va ( a ) { var b = [ ] , d , e , g ; for ( d = 0 ; d < a . length ; d ++ ) for ( g = a [ d ] [ 0 ] , e = 1 ; e < a [ d ] . length ; e ++ ) s ( b [ e - 1 ] ) && ( b [ e - 1 ] = { } ) , b [ e - 1 ] [ g ] = a [ d ] [ e ] ; return b } function O ( a ) { var b = d3 . keys ( a [ 0 ] ) . filter ( function ( a ) { return a !== Ta } ) , d = 0 , e ; a . forEach ( function ( a ) { if ( G ) { if ( ! ( Ta in a ) ) throw Error ( "'" + Ta + "' must be included in data" ) ; e = ha ( a [ Ta ] ) ; if ( null === e ) throw Error ( "Failed to parse timeseries date in data" ) ; a . x = e } else a . x = d ++ ; null ===
a . domain ( ) , b [ 1 ] ++ , b ; a . domain ( b ) ; return m } } ( ) } function P ( a , b ) { return ( H ? d3 . time . scale ( ) : d3 . scale . linear ( ) ) . range ( [ a , b ] ) } function w ( a , b ) { return d3 . scale . linear ( ) . range ( [ a , b ] ) } function $a ( a ) { return d3 . min ( a , function ( a ) { return d3 . min ( a . values , function ( a ) { return a . value } ) } ) } function jc ( a ) { var b = { } , d , e ; a . forEach ( function ( a ) { b [ a . id ] = [ ] ; a . values . forEach ( function ( d ) { b [ a . id ] . push ( d . value ) } ) } ) ; for ( d = 0 ; d < v . length ; d ++ ) for ( e = 1 ; e < v [ d ] . length ; e ++ ) za ( v [ d ] [ e ] ) && ( s ( b [ v [ d ] [ e ] ] ) || b [ v [ d ] [ e ] ] . forEach ( function ( a , c ) { A ( v [ d ] [ e ] ) ===
A ( v [ d ] [ 0 ] ) && ( b [ v [ d ] [ 0 ] ] [ c ] += 1 * a ) } ) ) ; return d3 . max ( Object . keys ( b ) . map ( function ( a ) { return d3 . max ( b [ a ] ) } ) ) } function E ( a , b ) { var d = Ra ( function ( a ) { return A ( a . id ) === b } ) , e = "y2" === b ? kc : lc , g = "y2" === b ? mc : nc , e = null !== e ? e : $a ( d ) , g = null !== g ? g : jc ( d ) , c = 0.1 * Math . abs ( g - e ) , q = c , f = c , h = "y2" === b ? oc : pc ; null !== h && ( yDomainAbs = Math . max ( Math . abs ( e ) , Math . abs ( g ) ) , g = yDomainAbs - h , e = h - yDomainAbs ) ; "y" === b && null !== Aa && ( q = k ( Aa . top ) ? Aa . top : c , f = k ( Aa . bottom ) ? Aa . bottom : c ) ; "y2" === b && null !== Ba && ( q = k ( Ba . top ) ? Ba . top : c , f = k ( Ba . bottom ) ? Ba . bottom :
c ) ; return [ qc ( d , "bar" ) ? 0 : e - f , g + q ] } function N ( a ) { var b ; a ? ( a = m . domain ( ) , b = D . extent ( ) ) : ( a = Jb , b = m . domain ( ) ) ; return ( a [ 1 ] - a [ 0 ] ) / ( b [ 1 ] - b [ 0 ] ) } function la ( a ) { for ( var b = 0 ; b < a . length ; b ++ ) if ( ! ( a [ b ] in Sa ) ) return ! 1 ; return ! 0 } function ma ( a ) { for ( var b = [ ] , d = 0 ; d < a . length ; d ++ ) a [ d ] in Sa && b . push ( wa ( Sa [ a [ d ] ] ) ) ; return b } function A ( a ) { return a in Kb ? Kb [ a ] : "y" } function F ( a ) { return "y2" === A ( a ) ? R : y } function B ( a ) { return "y2" === A ( a ) ? Pa : Oa } function Ma ( a ) { var b = Ca [ a . id ] ; a . name = k ( b ) ? b : a . id ; return a } function ua ( a ) { var b = a [ 0 ] , d = { } , e =
[ ] , g , c ; for ( g = 1 ; g < a . length ; g ++ ) { d = { } ; for ( c = 0 ; c < a [ g ] . length ; c ++ ) d [ b [ c ] ] = a [ g ] [ c ] ; e . push ( d ) } return e } function va ( a ) { var b = [ ] , d , e , g ; for ( d = 0 ; d < a . length ; d ++ ) for ( g = a [ d ] [ 0 ] , e = 1 ; e < a [ d ] . length ; e ++ ) s ( b [ e - 1 ] ) && ( b [ e - 1 ] = { } ) , b [ e - 1 ] [ g ] = a [ d ] [ e ] ; return b } function O ( a ) { var b = d3 . keys ( a [ 0 ] ) . filter ( function ( a ) { return a !== Ta } ) , d = 0 , e ; a . forEach ( function ( a ) { if ( H ) { if ( ! ( Ta in a ) ) throw Error ( "'" + Ta + "' must be included in data" ) ; e = ha ( a [ Ta ] ) ; if ( null === e ) throw Error ( "Failed to parse timeseries date in data" ) ; a . x = e } else a . x = d ++ ; null ===
Ua && ( Ua = new Date ( a . x ) ) ; gb = new Date ( a . x ) } ) ; b = b . map ( function ( b , d ) { var e = rc ( b ) ; return { id : e , id _org : b , values : a . map ( function ( a ) { return { x : a . x , value : + a [ b ] , id : e } } ) } } ) ; b . forEach ( function ( a ) { Sa [ a . id _org ] = wa ( a ) } ) ; return b } function wa ( a ) { return { id : a . id , id _org : a . id _org , values : a . values . map ( function ( a ) { return { x : a . x , value : a . value , id : a . id } } ) } } function ba ( ) { return d3 . max ( l . data . targets , function ( a ) { return a . values . length } ) } function xa ( a ) { a = s ( a ) ? l . data . targets : a ; return a . map ( function ( a ) { return a . id } ) } function ab ( a ) { var b =
xa ( ) , d ; for ( d = 0 ; d < b . length ; d ++ ) if ( b [ d ] === a ) return ! 0 ; return ! 1 } function Ra ( a ) { return k ( a ) ? l . data . targets . filter ( a ) : l . data . targets } function hb ( a ) { return "-shapes -shapes-" + a . id } function Lb ( a ) { return hb ( a ) + " -line -line-" + a . id } function sc ( a ) { return hb ( a ) + " -circles -circles-" + a . id } function Mb ( a ) { return hb ( a ) + " -bars -bars-" + a . id } function tc ( a , b ) { return "-shape -shape-" + b + " -circle -circle-" + b } function Nb ( a , b ) { return "-shape -shape-" + b + " -bar -bar-" + b } function uc ( a , b ) { return "region region-" + b + " " + ( "classes" in
a ? [ ] . concat ( a . classes ) . join ( " " ) : "" ) } function Va ( a ) { return m ( a . x ) } function Da ( a ) { return m ( G ? ha ( a . value ) : a . value ) } function Ob ( a ) { return y ( a . value ) } function W ( a ) { return m ( a . x ) } function X ( a ) { return E ( a . id ) ( a . value ) } function vc ( ) { var a = { } , b = 0 , d , e ; Ra ( za ) . forEach ( function ( c ) { for ( d = 0 ; d < v . length ; d ++ ) if ( ! ( 0 > v [ d ] . indexOf ( c . id ) ) ) for ( e = 0 ; e < v [ d ] . length ; e ++ ) if ( v [ d ] [ e ] in a ) { a [ c . id ] = a [ v [ d ] [ e ] ] ; break } s ( a [ c . id ] ) && ( a [ c . id ] = b ++ ) } ) ; a . _ _max _ _ = b - 1 ; return a } function Pb ( a , b , d , e ) { var c = e ? z : m ; return function ( e ) { var q = e . id in
d ? d [ e . id ] : 0 ; return c ( e . x ) - a * ( b / 2 - q ) } } function Qb ( a , b , d , e ) { var c = Object . keys ( b ) ; return function ( f , q ) { var h = 0 , k = e ? B ( f . id ) : E ( f . id ) ; Ra ( za ) . forEach ( function ( d ) { d . id !== f . id && b [ d . id ] === b [ f . id ] && c . indexOf ( d . id ) < c . indexOf ( f . id ) && ( h += a ( d . values [ q ] ) ) } ) ; return d ? h : k ( f . value ) - h } } function Rb ( a , b ) { var d = null === a ? function ( a ) { return a } : function ( b ) { return a - b } ; return function ( a ) { var c = b ? B ( a . id ) : E ( a . id ) ; return d ( c ( a . value ) ) } } function ib ( a , b ) { var d = s ( a ) ? xa ( ) : a ; "string" === typeof d && ( d = [ d ] ) ; for ( var c = 0 ; c < d . length ; c ++ ) Y [ d [ c ] ] =
a ? [ ] . concat ( a . classes ) . join ( " " ) : "" ) } function Va ( a ) { return m ( a . x ) } function Da ( a ) { return m ( H ? ha ( a . value ) : a . value ) } function Ob ( a ) { return y ( a . value ) } function W ( a ) { return m ( a . x ) } function X ( a ) { return F ( a . id ) ( a . value ) } function vc ( ) { var a = { } , b = 0 , d , e ; Ra ( za ) . forEach ( function ( c ) { for ( d = 0 ; d < v . length ; d ++ ) if ( ! ( 0 > v [ d ] . indexOf ( c . id ) ) ) for ( e = 0 ; e < v [ d ] . length ; e ++ ) if ( v [ d ] [ e ] in a ) { a [ c . id ] = a [ v [ d ] [ e ] ] ; break } s ( a [ c . id ] ) && ( a [ c . id ] = b ++ ) } ) ; a . _ _max _ _ = b - 1 ; return a } function Pb ( a , b , d , e ) { var c = e ? z : m ; return function ( e ) { var q = e . id in
d ? d [ e . id ] : 0 ; return c ( e . x ) - a * ( b / 2 - q ) } } function Qb ( a , b , d , e ) { var c = Object . keys ( b ) ; return function ( f , q ) { var h = 0 , k = e ? B ( f . id ) : F ( f . id ) ; Ra ( za ) . forEach ( function ( d ) { d . id !== f . id && b [ d . id ] === b [ f . id ] && c . indexOf ( d . id ) < c . indexOf ( f . id ) && ( h += a ( d . values [ q ] ) ) } ) ; return d ? h : k ( f . value ) - h } } function Rb ( a , b ) { var d = null === a ? function ( a ) { return a } : function ( b ) { return a - b } ; return function ( a ) { var c = b ? B ( a . id ) : F ( a . id ) ; return d ( c ( a . value ) ) } } function ib ( a , b ) { var d = s ( a ) ? xa ( ) : a ; "string" === typeof d && ( d = [ d ] ) ; for ( var c = 0 ; c < d . length ; c ++ ) Y [ d [ c ] ] =
b } function qc ( a , b ) { var d = ! 1 ; a . forEach ( function ( a ) { Y [ a . id ] === b && ( d = ! 0 ) ; a . id in Y || "line" !== b || ( d = ! 0 ) } ) ; return d } function jb ( a ) { a = "string" === typeof a ? a : a . id ; return ! ( a in Y ) || "line" === Y [ a ] || "spline" === Y [ a ] } function za ( a ) { return "bar" === Y [ "string" === typeof a ? a : a . id ] } function wc ( a ) { return jb ( a ) ? a . values : [ ] } function Sb ( a ) { return za ( a ) ? a . values : [ ] } function Tb ( a , b ) { var d = d3 . mouse ( a ) , c = d3 . select ( a ) , g = 1 * c . attr ( "cx" ) , c = 1 * c . attr ( "cy" ) ; return Math . sqrt ( Math . pow ( g - d [ 0 ] , 2 ) + Math . pow ( c - d [ 1 ] , 2 ) ) < b } function Ub ( a ) { var b =
d3 . mouse ( a ) , d = d3 . select ( a ) ; a = 1 * d . attr ( "x" ) ; var c = 1 * d . attr ( "y" ) , d = 1 * d . attr ( "width" ) ; return a - 10 < b [ 0 ] && b [ 0 ] < a + d + 10 && c - 10 < b [ 1 ] } function xc ( a , b ) { var d ; for ( d = 0 ; d < b . length ; d ++ ) if ( b [ d ] . start < a && a <= b [ d ] . end ) return ! 0 ; return ! 1 } function Vb ( a , b , d ) { yc ( a , b ) ; h . select ( ".selected-circles-" + b . id ) . selectAll ( ".selected-circle-" + d ) . data ( [ b ] ) . enter ( ) . append ( "circle" ) . attr ( "class" , function ( a ) { return "selected-circle selected-circle-" + d } ) . attr ( "cx" , f ? X : W ) . attr ( "cy" , f ? W : X ) . attr ( "stroke" , function ( ) { return S ( b . id ) } ) . attr ( "r" ,
1.4 * Ea ) . transition ( ) . duration ( 100 ) . attr ( "r" , Ea ) } function kb ( a , b , d ) { zc ( a , b ) ; h . select ( ".selected-circles-" + b . id ) . selectAll ( ".selected-circle-" + d ) . transition ( ) . duration ( 100 ) . attr ( "r" , 0 ) . remove ( ) } function Wb ( a , b , d , c ) { a ? Vb ( b , d , c ) : kb ( b , d , c ) } function Ac ( a , b , d ) { } function Xb ( a , b , d ) { } function Yb ( a , b , d , c ) { } function Bc ( a , b , d , c ) { var g , h , q = "M" , l , m , t , r , n , p = [ ] ; if ( k ( c ) ) for ( g = 0 ; g < c . length ; g ++ ) p [ g ] = { } , s ( c [ g ] . start ) ? p [ g ] . start = a [ 0 ] . x : G && ( p [ g ] . start = ha ( c [ g ] . start ) ) , s ( c [ g ] . end ) ? p [ g ] . end = a [ a . length - 1 ] . x : G && ( p [ g ] . end = ha ( c [ g ] . end ) ) ;
r = f ? function ( a ) { return d ( a . value ) } : function ( a ) { return b ( a . x ) } ; n = f ? function ( a ) { return b ( a . x ) } : function ( a ) { return d ( a . value ) } ; c = G ? function ( a , c , e , g ) { var f = a . x . getTime ( ) ; a = c . x - a . x ; c = new Date ( f + a * ( e + g ) ) ; return "M" + b ( new Date ( f + a * e ) ) + " " + d ( m ( e ) ) + " " + b ( c ) + " " + d ( m ( e + g ) ) } : function ( a , c , e , g ) { return "M" + b ( l ( e ) ) + " " + d ( m ( e ) ) + " " + b ( l ( e + g ) ) + " " + d ( m ( e + g ) ) } ; for ( g = 0 ; g < a . length ; g ++ ) if ( s ( p ) || ! xc ( a [ g ] . x , p ) ) q += " " + r ( a [ g ] ) + " " + n ( a [ g ] ) ; else for ( l = P ( a [ g - 1 ] . x , a [ g ] . x ) , m = w ( a [ g - 1 ] . value , a [ g ] . value ) , h = b ( a [ g ] . x ) - b ( a [ g - 1 ] . x ) , t = d ( a [ g ] . value ) -
d ( a [ g - 1 ] . value ) , h = Math . sqrt ( Math . pow ( h , 2 ) + Math . pow ( t , 2 ) ) , t = 2 / h , diffx2 = 2 * t , h = t ; 1 >= h ; h += diffx2 ) q += c ( a [ g - 1 ] , a [ g ] , h , t ) ; return q } function lb ( a ) { var b = l . data . targets = O ( a ) , d , c ; m . domain ( d3 . extent ( a . map ( function ( a ) { return a . x } ) ) ) ; y . domain ( D ( b , "y" ) ) ; R . domain ( D ( b , "y2" ) ) ; z . domain ( m . domain ( ) ) ; Oa . domain ( y . domain ( ) ) ; Pa . domain ( R . domain ( ) ) ; C . ticks ( 10 > a . length ? a . length : 10 ) ; ea . ticks ( Cc ) . outerTickSize ( 0 ) . tickFormat ( Dc ) ; Qa . ticks ( Ec ) . outerTickSize ( 0 ) . tickFormat ( Fc ) ; Jb = m . domain ( ) ; K . x ( z ) ; oa && Fa . x ( m ) ; h . append ( "g" ) . attr ( "class" ,
1.4 * Ea ) . transition ( ) . duration ( 100 ) . attr ( "r" , Ea ) } function kb ( a , b , d ) { zc ( a , b ) ; h . select ( ".selected-circles-" + b . id ) . selectAll ( ".selected-circle-" + d ) . transition ( ) . duration ( 100 ) . attr ( "r" , 0 ) . remove ( ) } function Wb ( a , b , d , c ) { a ? Vb ( b , d , c ) : kb ( b , d , c ) } function Ac ( a , b , d ) { } function Xb ( a , b , d ) { } function Yb ( a , b , d , c ) { } function Bc ( a , b , d , c ) { var g , h , q = "M" , l , m , t , r , n , p = [ ] ; if ( k ( c ) ) for ( g = 0 ; g < c . length ; g ++ ) p [ g ] = { } , s ( c [ g ] . start ) ? p [ g ] . start = a [ 0 ] . x : H && ( p [ g ] . start = ha ( c [ g ] . start ) ) , s ( c [ g ] . end ) ? p [ g ] . end = a [ a . length - 1 ] . x : H && ( p [ g ] . end = ha ( c [ g ] . end ) ) ;
r = f ? function ( a ) { return d ( a . value ) } : function ( a ) { return b ( a . x ) } ; n = f ? function ( a ) { return b ( a . x ) } : function ( a ) { return d ( a . value ) } ; c = H ? function ( a , c , e , g ) { var f = a . x . getTime ( ) ; a = c . x - a . x ; c = new Date ( f + a * ( e + g ) ) ; return "M" + b ( new Date ( f + a * e ) ) + " " + d ( m ( e ) ) + " " + b ( c ) + " " + d ( m ( e + g ) ) } : function ( a , c , e , g ) { return "M" + b ( l ( e ) ) + " " + d ( m ( e ) ) + " " + b ( l ( e + g ) ) + " " + d ( m ( e + g ) ) } ; for ( g = 0 ; g < a . length ; g ++ ) if ( s ( p ) || ! xc ( a [ g ] . x , p ) ) q += " " + r ( a [ g ] ) + " " + n ( a [ g ] ) ; else for ( l = P ( a [ g - 1 ] . x , a [ g ] . x ) , m = w ( a [ g - 1 ] . value , a [ g ] . value ) , h = b ( a [ g ] . x ) - b ( a [ g - 1 ] . x ) , t = d ( a [ g ] . value ) -
d ( a [ g - 1 ] . value ) , h = Math . sqrt ( Math . pow ( h , 2 ) + Math . pow ( t , 2 ) ) , t = 2 / h , diffx2 = 2 * t , h = t ; 1 >= h ; h += diffx2 ) q += c ( a [ g - 1 ] , a [ g ] , h , t ) ; return q } function lb ( a ) { var b = l . data . targets = O ( a ) , d , c ; m . domain ( d3 . extent ( a . map ( function ( a ) { return a . x } ) ) ) ; y . domain ( E ( b , "y" ) ) ; R . domain ( E ( b , "y2" ) ) ; z . domain ( m . domain ( ) ) ; Oa . domain ( y . domain ( ) ) ; Pa . domain ( R . domain ( ) ) ; C . ticks ( 10 > a . length ? a . length : 10 ) ; ea . ticks ( Cc ) . outerTickSize ( 0 ) . tickFormat ( Dc ) ; Qa . ticks ( Ec ) . outerTickSize ( 0 ) . tickFormat ( Fc ) ; Jb = m . domain ( ) ; D . x ( z ) ; oa && Fa . x ( m ) ; h . append ( "g" ) . attr ( "class" ,
"x axis" ) . attr ( "clip-path" , f ? "" : "url(#xaxis-clip)" ) . attr ( "transform" , L . x ) . call ( f ? ea : C ) ; h . append ( "g" ) . attr ( "class" , "y axis" ) . attr ( "clip-path" , f ? "url(#yaxis-clip)" : "" ) . call ( f ? C : ea ) . append ( "text" ) . attr ( "transform" , "rotate(-90)" ) . attr ( "dy" , "1.4em" ) . attr ( "dx" , "-.8em" ) . style ( "text-anchor" , "end" ) . text ( Gc ) ; Db && h . append ( "g" ) . attr ( "class" , "y2 axis" ) . attr ( "transform" , L . y2 ) . call ( Qa ) ; if ( oa ) h . append ( "rect" ) . attr ( "class" , "zoom-rect" ) . attr ( "width" , r ) . attr ( "height" , u ) . style ( "opacity" , 0 ) . call ( Fa ) . on ( "dblclick.zoom" ,
null ) ; d = h . append ( "g" ) . attr ( "clip-path" , Ga ) . attr ( "class" , "grid" ) ; Zb && d . append ( "g" ) . attr ( "class" , "xgrids" ) ; mb && ( c = d . append ( "g" ) . attr ( "class" , "xgrid-lines" ) . selectAll ( ".xgrid-line" ) . data ( mb ) . enter ( ) . append ( "g" ) . attr ( "class" , "xgrid-line" ) , c . append ( "line" ) . attr ( "class" , function ( a ) { return "" + a [ "class" ] } ) , c . append ( "text" ) . attr ( "class" , function ( a ) { return "" + a [ "class" ] } ) . attr ( "text-anchor" , "end" ) . attr ( "transform" , f ? "" : "rotate(-90)" ) . attr ( "dx" , f ? 0 : - p ) . attr ( "dy" , - 6 ) . text ( function ( a ) { return a . text } ) ) ; Hc && d . append ( "g" ) . attr ( "class" ,
"xgrid-focus" ) . append ( "line" ) . attr ( "class" , "xgrid-focus" ) . attr ( "x1" , f ? 0 : - 10 ) . attr ( "x2" , f ? r : - 10 ) . attr ( "y1" , f ? - 10 : p ) . attr ( "y2" , f ? - 10 : u ) ; $b && d . append ( "g" ) . attr ( "class" , "ygrids" ) ; nb && d . append ( "g" ) . attr ( "class" , "ygrid-lines" ) . selectAll ( "ygrid-line" ) . data ( nb ) . enter ( ) . append ( "line" ) . attr ( "class" , function ( a ) { return "ygrid-line " + a [ "class" ] } ) ; h . append ( "g" ) . attr ( "clip-path" , Ga ) . attr ( "class" , "regions" ) ; h . append ( "g" ) . attr ( "clip-path" , Ga ) . attr ( "class" , "chart" ) ; h . select ( ".chart" ) . append ( "g" ) . attr ( "class" , "event-rects" ) . style ( "fill-opacity" ,
@ -26,39 +26,39 @@ null);d=h.append("g").attr("clip-path",Ga).attr("class","grid");Zb&&d.append("g"
b ) . classed ( $ , ! 1 ) } ) . on ( "mousemove" , function ( a , b ) { Z && ! Wa && ( ia || h . selectAll ( ".-shape-" + b ) . filter ( function ( a ) { return ka ( a ) } ) . each ( function ( a ) { a = d3 . select ( this ) . classed ( $ , ! 0 ) ; "circle" === this . nodeName && a . attr ( "r" , bc ) ; d3 . select ( ".event-rect-" + b ) . style ( "cursor" , null ) } ) . filter ( function ( a ) { a = d3 . select ( this ) ; if ( "circle" === this . nodeName ) return Tb ( this , Ea ) ; if ( "rect" === this . nodeName ) return Ub ( this , a . attr ( "x" ) , a . attr ( "y" ) ) } ) . each ( function ( a ) { a = d3 . select ( this ) ; a . classed ( $ ) || ( a . classed ( $ , ! 0 ) , "circle" === this . nodeName &&
a . attr ( "r" , Ea ) ) ; d3 . select ( ".event-rect-" + b ) . style ( "cursor" , "pointer" ) } ) ) } ) . on ( "click" , function ( a , b ) { pb ? pb = ! 1 : h . selectAll ( ".-shape-" + b ) . each ( function ( a ) { var d = d3 . select ( this ) , c = d . classed ( aa ) , e = ! 1 , g ; "circle" === this . nodeName ? ( e = Tb ( this , 1.5 * Ea ) , g = Wb ) : "rect" === this . nodeName && ( e = Ub ( this ) , g = Yb ) ; if ( ia || e ) Z && ka ( a ) && ( d . classed ( aa , ! c ) , g ( ! c , d , a , b ) ) , Ic ( a , d ) } ) } ) . call ( d3 . behavior . drag ( ) . origin ( Object ) . on ( "drag" , function ( a ) { if ( Z && ! oa ) { a = qb [ 0 ] ; var b = qb [ 1 ] , d = d3 . mouse ( this ) , c = d [ 0 ] , d = d [ 1 ] , e = Math . min ( a , c ) , f = Math . max ( a ,
c ) , k = ia ? p : Math . min ( b , d ) , l = ia ? u : Math . max ( b , d ) ; h . select ( ".dragarea" ) . attr ( "x" , e ) . attr ( "y" , k ) . attr ( "width" , f - e ) . attr ( "height" , l - k ) ; h . selectAll ( ".-shapes" ) . selectAll ( ".-shape" ) . filter ( function ( a ) { return ka ( a ) } ) . each ( function ( a , b ) { var d = d3 . select ( this ) , c = d . classed ( aa ) , g = d . classed ( rb ) , h , q , m , p ; h = ! 1 ; "circle" === this . nodeName ? ( h = 1 * d . attr ( "cx" ) , q = 1 * d . attr ( "cy" ) , p = Wb , h = e < h && h < f && k < q && q < l ) : "rect" === this . nodeName && ( h = 1 * d . attr ( "x" ) , q = 1 * d . attr ( "y" ) , m = 1 * d . attr ( "width" ) , p = Yb , h = e < h + m && h < f && q < l ) ; h ^ g && ( d . classed ( rb , ! g ) ,
d . classed ( aa , ! c ) , p ( ! c , d , a , b ) ) } ) } } ) . on ( "dragstart" , function ( ) { Z && ( qb = d3 . mouse ( this ) , h . select ( ".chart" ) . append ( "rect" ) . attr ( "class" , "dragarea" ) . style ( "opacity" , 0.1 ) , Wa = ! 0 ) } ) . on ( "dragend" , function ( ) { Z && ( h . select ( ".dragarea" ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 0 ) . remove ( ) , h . selectAll ( ".-shape" ) . classed ( rb , ! 1 ) , Wa = ! 1 ) } ) ) . call ( Fa ) . on ( "dblclick.zoom" , null ) ; h . select ( ".chart" ) . append ( "g" ) . attr ( "class" , "chart-bars" ) ; h . select ( ".chart" ) . append ( "g" ) . attr ( "class" , "chart-lines" ) ; null !== Ha && K . extent ( "function" !==
typeof Ha ? Ha : G ? Ha ( Ua , gb ) : Ha ( 0 , ba ( ) - 1 ) ) ; pa && ( x . append ( "g" ) . attr ( "clip-path" , Ga ) . attr ( "class" , "chart" ) , x . select ( ".chart" ) . append ( "g" ) . attr ( "class" , "chart-bars" ) , x . select ( ".chart" ) . append ( "g" ) . attr ( "class" , "chart-lines" ) , x . append ( "g" ) . attr ( "clip-path" , Ga ) . attr ( "class" , "x brush" ) . call ( K ) . selectAll ( "rect" ) . attr ( "height" , da ) , x . append ( "g" ) . attr ( "class" , "x axis" ) . attr ( "transform" , L . subx ) . call ( fa ) ) ; qa && Xa ( b ) ; dc ( b ) ; H ( { withTransition : ! 1 } ) ; if ( Jc ) { if ( G && "string" == typeof ra ) { ra = ha ( ra ) ; for ( a = 0 ; a < b [ 0 ] . values . length &&
0 != b [ 0 ] . values [ a ] . x - ra ; a ++ ) ; ra = a } ja . html ( cc ( b . map ( function ( a ) { return Ma ( a . values [ ra ] ) } ) ) ) ; ja . style ( "top" , ec . top ) . style ( "left" , ec . left ) . style ( "visibility" , "visible" ) } } function H ( a ) { var b , d = vc ( ) , c = d . _ _max _ _ + 1 , g , n , q , s , v , t ; h . select ( "line.xgrid-focus" ) . style ( "visibility" , "hidden" ) ; ja . style ( "visibility" , "hidden" ) ; a = k ( a ) ? a : { } ; b = k ( a . withY ) ? a . withY : ! 0 ; v = k ( a . withSubchart ) ? a . withSubchart : ! 0 ; t = k ( a . withTransition ) ? a . withTransition : ! 0 ; a = k ( a . withUpdateXDomain ) ? a . withUpdateXDomain : ! 0 ; t = t ? 250 : 0 ; a && ( m . domain ( K . empty ( ) ?
z . domain ( ) : K . extent ( ) ) , oa && Fa . x ( m ) ) ; y . domain ( D ( l . data . targets , "y" ) ) ; R . domain ( D ( l . data . targets , "y2" ) ) ; h . select ( ".x.axis" ) . transition ( ) . duration ( f ? t : 0 ) . call ( f ? ea : C ) ; h . select ( ".y.axis" ) . transition ( ) . duration ( f ? 0 : t ) . call ( f ? C : ea ) ; h . select ( ".y2.axis" ) . transition ( ) . call ( Qa ) ; Oa . domain ( y . domain ( ) ) ; Pa . domain ( R . domain ( ) ) ; pa && null !== d3 . event && "zoom" === d3 . event . type && ( K . extent ( m . domain ( ) ) , K . empty ( ) || x . select ( ".x.brush" ) . call ( K ) ) ; if ( Zb ) { if ( "year" === Kc ) for ( a = [ ] , firstYear = Ua . getFullYear ( ) , lastYear = gb . getFullYear ( ) ,
d . classed ( aa , ! c ) , p ( ! c , d , a , b ) ) } ) } } ) . on ( "dragstart" , function ( ) { Z && ( qb = d3 . mouse ( this ) , h . select ( ".chart" ) . append ( "rect" ) . attr ( "class" , "dragarea" ) . style ( "opacity" , 0.1 ) , Wa = ! 0 ) } ) . on ( "dragend" , function ( ) { Z && ( h . select ( ".dragarea" ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 0 ) . remove ( ) , h . selectAll ( ".-shape" ) . classed ( rb , ! 1 ) , Wa = ! 1 ) } ) ) . call ( Fa ) . on ( "dblclick.zoom" , null ) ; h . select ( ".chart" ) . append ( "g" ) . attr ( "class" , "chart-bars" ) ; h . select ( ".chart" ) . append ( "g" ) . attr ( "class" , "chart-lines" ) ; null !== Ha && D . extent ( "function" !==
typeof Ha ? Ha : H ? Ha ( Ua , gb ) : Ha ( 0 , ba ( ) - 1 ) ) ; pa && ( x . append ( "g" ) . attr ( "clip-path" , Ga ) . attr ( "class" , "chart" ) , x . select ( ".chart" ) . append ( "g" ) . attr ( "class" , "chart-bars" ) , x . select ( ".chart" ) . append ( "g" ) . attr ( "class" , "chart-lines" ) , x . append ( "g" ) . attr ( "clip-path" , Ga ) . attr ( "class" , "x brush" ) . call ( D ) . selectAll ( "rect" ) . attr ( "height" , da ) , x . append ( "g" ) . attr ( "class" , "x axis" ) . attr ( "transform" , L . subx ) . call ( fa ) ) ; qa && Xa ( b ) ; dc ( b ) ; I ( { withTransition : ! 1 } ) ; if ( Jc ) { if ( H && "string" == typeof ra ) { ra = ha ( ra ) ; for ( a = 0 ; a < b [ 0 ] . values . length &&
0 != b [ 0 ] . values [ a ] . x - ra ; a ++ ) ; ra = a } ja . html ( cc ( b . map ( function ( a ) { return Ma ( a . values [ ra ] ) } ) ) ) ; ja . style ( "top" , ec . top ) . style ( "left" , ec . left ) . style ( "visibility" , "visible" ) } } function I ( a ) { var b , d = vc ( ) , c = d . _ _max _ _ + 1 , g , n , q , s , v , t ; h . select ( "line.xgrid-focus" ) . style ( "visibility" , "hidden" ) ; ja . style ( "visibility" , "hidden" ) ; a = k ( a ) ? a : { } ; b = k ( a . withY ) ? a . withY : ! 0 ; v = k ( a . withSubchart ) ? a . withSubchart : ! 0 ; t = k ( a . withTransition ) ? a . withTransition : ! 0 ; a = k ( a . withUpdateXDomain ) ? a . withUpdateXDomain : ! 0 ; t = t ? 250 : 0 ; a && ( m . domain ( D . empty ( ) ?
z . domain ( ) : D . extent ( ) ) , oa && Fa . x ( m ) ) ; y . domain ( E ( l . data . targets , "y" ) ) ; R . domain ( E ( l . data . targets , "y2" ) ) ; h . select ( ".x.axis" ) . transition ( ) . duration ( f ? t : 0 ) . call ( f ? ea : C ) ; h . select ( ".y.axis" ) . transition ( ) . duration ( f ? 0 : t ) . call ( f ? C : ea ) ; h . select ( ".y2.axis" ) . transition ( ) . call ( Qa ) ; Oa . domain ( y . domain ( ) ) ; Pa . domain ( R . domain ( ) ) ; pa && null !== d3 . event && "zoom" === d3 . event . type && ( D . extent ( m . domain ( ) ) , D . empty ( ) || x . select ( ".x.brush" ) . call ( D ) ) ; if ( Zb ) { if ( "year" === Kc ) for ( a = [ ] , firstYear = Ua . getFullYear ( ) , lastYear = gb . getFullYear ( ) ,
g = firstYear ; g <= lastYear ; g ++ ) a . push ( new Date ( g + "-01-01 00:00:00" ) ) ; else a = m . ticks ( 10 ) ; a = h . select ( ".xgrids" ) . selectAll ( ".xgrid" ) . data ( a ) ; a . enter ( ) . append ( "line" ) . attr ( "class" , "xgrid" ) ; a . exit ( ) . remove ( ) ; h . selectAll ( ".xgrid" ) . attr ( "x1" , function ( a ) { return m ( a ) - C . tickOffset ( ) } ) . attr ( "x2" , function ( a ) { return m ( a ) - C . tickOffset ( ) } ) . attr ( "y1" , p ) . attr ( "y2" , u ) } mb && ( a = h . selectAll ( ".xgrid-lines" ) , a . selectAll ( "line" ) . attr ( "x1" , f ? 0 : Da ) . attr ( "x2" , f ? r : Da ) . attr ( "y1" , f ? Da : p ) . attr ( "y2" , f ? Da : u ) , a . selectAll ( "text" ) . attr ( "x" ,
f ? r : 0 ) . attr ( "y" , Da ) ) ; b && $b && ( ygrid = h . select ( ".ygrids" ) . selectAll ( ".ygrid" ) . data ( y . ticks ( 10 ) ) , ygrid . enter ( ) . append ( "line" ) . attr ( "class" , "ygrid" ) , ygrid . attr ( "x1" , f ? y : 0 ) . attr ( "x2" , f ? y : r ) . attr ( "y1" , f ? 0 : y ) . attr ( "y2" , f ? u : y ) . attr ( "opacity" , 0 ) . transition ( ) . attr ( "opacity" , 1 ) , ygrid . exit ( ) . remove ( ) ) ; b && nb && h . select ( ".ygrid-lines" ) . selectAll ( ".ygrid-line" ) . attr ( "y1" , Ob ) . attr ( "y2" , Ob ) ; n = ga ? 1.2 * C . tickOffset ( ) / c : 0.6 * ( ( f ? u : r ) * N ( ! 1 ) / ( ba ( ) - 1 ) ) ; q = Rb ( f ? null : u ) ; a = Pb ( n , c , d ) ; g = Qb ( q , d , f ) ; b = h . selectAll ( ".-bars" ) . selectAll ( ".-bar" ) . data ( Sb ) ;
b . transition ( ) . duration ( t ) . attr ( "x" , f ? g : a ) . attr ( "y" , f ? a : g ) . attr ( "width" , f ? q : n ) . attr ( "height" , f ? n : q ) ; b . enter ( ) . append ( "rect" ) . attr ( "class" , Nb ) . attr ( "x" , f ? g : a ) . attr ( "y" , f ? a : g ) . attr ( "width" , f ? q : n ) . attr ( "height" , f ? n : q ) . style ( "opacity" , 0 ) . transition ( ) . duration ( t ) . style ( "opacity" , 1 ) ; b . exit ( ) . transition ( ) . duration ( t ) . style ( "opacity" , 0 ) . remove ( ) ; h . selectAll ( ".-line" ) . transition ( ) . duration ( t ) . attr ( "d" , Lc ) ; b = h . selectAll ( ".-circles" ) . selectAll ( ".-circle" ) . data ( wc ) ; b . transition ( ) . duration ( t ) . attr ( "cx" , f ? X : W ) . attr ( "cy" ,
f ? W : X ) ; b . enter ( ) . append ( "circle" ) . attr ( "class" , tc ) . attr ( "cx" , f ? X : W ) . attr ( "cy" , f ? W : X ) . attr ( "r" , ob ) ; b . exit ( ) . remove ( ) ; v && pa && ( x . select ( ".x.axis" ) . transition ( ) . duration ( f ? t : 0 ) . call ( f ? ea : fa ) , n = ga ? 1.2 * fa . tickOffset ( ) / c : 0.6 * ( ( f ? u : r ) * N ( ! 0 ) / ( ba ( ) - 1 ) ) , q = Rb ( da , ! 0 ) , a = Pb ( n , c , d , ! 0 ) , g = Qb ( q , d , ! 1 , ! 0 ) , contextBar = x . selectAll ( ".-bars" ) . selectAll ( ".-bar" ) . data ( Sb ) , contextBar . transition ( ) . duration ( t ) . attr ( "x" , a ) . attr ( "y" , g ) . attr ( "width" , n ) . attr ( "height" , q ) , contextBar . enter ( ) . append ( "rect" ) . attr ( "class" , Nb ) . attr ( "x" , a ) . attr ( "y" ,
g ) . attr ( "width" , n ) . attr ( "height" , q ) . style ( "opacity" , 0 ) . transition ( ) . style ( "opacity" , 1 ) , contextBar . exit ( ) . transition ( ) . style ( "opacity" , 0 ) . remove ( ) , x . selectAll ( ".-line" ) . transition ( ) . duration ( t ) . attr ( "d" , Mc ) ) ; h . selectAll ( ".selected-circles" ) . filter ( function ( a ) { return za ( a ) } ) . selectAll ( "circle" ) . remove ( ) ; h . selectAll ( ".selected-circle" ) . transition ( ) . duration ( t ) . attr ( "cx" , f ? X : W ) . attr ( "cy" , f ? W : X ) ; s = ( f ? u : r ) * N ( ) / ( ba ( ) - 1 ) ; d = function ( a ) { return m ( a . x ) - s / 2 } ; h . selectAll ( ".event-rect" ) . attr ( "x" , f ? 0 : d ) . attr ( "y" ,
f ? d : 0 ) . attr ( "width" , f ? r : s ) . attr ( "height" , f ? s : u ) ; mainRegion = h . select ( ".regions" ) . selectAll ( "rect.region" ) . data ( M ) ; mainRegion . enter ( ) . append ( "rect" ) ; mainRegion . attr ( "class" , uc ) . attr ( "x" , f ? 0 : sb ) . attr ( "y" , f ? sb : p ) . attr ( "width" , f ? r : fc ) . attr ( "height" , f ? fc : u ) . style ( "fill-opacity" , function ( a ) { return k ( a . opacity ) ? a . opacity : 0.1 } ) ; mainRegion . exit ( ) . transition ( ) . duration ( t ) . style ( "fill-opacity" , 0 ) . remove ( ) } function Nc ( ) { H ( { withTransition : ! 1 , withY : ! 1 , withSubchart : ! 1 , withUpdateXDomain : ! 1 } ) ; "mousemove" === d3 . event . sourceEvent . type &&
f ? d : 0 ) . attr ( "width" , f ? r : s ) . attr ( "height" , f ? s : u ) ; mainRegion = h . select ( ".regions" ) . selectAll ( "rect.region" ) . data ( M ) ; mainRegion . enter ( ) . append ( "rect" ) ; mainRegion . attr ( "class" , uc ) . attr ( "x" , f ? 0 : sb ) . attr ( "y" , f ? sb : p ) . attr ( "width" , f ? r : fc ) . attr ( "height" , f ? fc : u ) . style ( "fill-opacity" , function ( a ) { return k ( a . opacity ) ? a . opacity : 0.1 } ) ; mainRegion . exit ( ) . transition ( ) . duration ( t ) . style ( "fill-opacity" , 0 ) . remove ( ) } function Nc ( ) { I ( { withTransition : ! 1 , withY : ! 1 , withSubchart : ! 1 , withUpdateXDomain : ! 1 } ) ; "mousemove" === d3 . event . sourceEvent . type &&
( pb = ! 0 ) } function dc ( a ) { var b ; h . select ( ".chart-bars" ) . selectAll ( ".chart-bar" ) . data ( a ) . enter ( ) . append ( "g" ) . attr ( "class" , function ( a ) { return "chart-bar target target-" + a . id } ) . style ( "pointer-events" , "none" ) . style ( "opacity" , 0 ) . append ( "g" ) . attr ( "class" , Mb ) . style ( "fill" , function ( a ) { return S ( a . id ) } ) . style ( "stroke" , function ( a ) { return S ( a . id ) } ) . style ( "stroke-width" , 0 ) . style ( "cursor" , function ( a ) { return ka ( a ) ? "pointer" : null } ) ; b = h . select ( ".chart-lines" ) . selectAll ( ".chart-line" ) . data ( a ) . enter ( ) . append ( "g" ) . attr ( "class" ,
function ( a ) { return "chart-line target target-" + a . id } ) . style ( "pointer-events" , "none" ) . style ( "opacity" , 0 ) ; b . append ( "path" ) . attr ( "class" , Lb ) . style ( "stroke" , function ( a ) { return S ( a . id ) } ) ; b . append ( "g" ) . attr ( "class" , function ( a ) { return "selected-circles selected-circles-" + a . id } ) ; b . append ( "g" ) . attr ( "class" , sc ) . style ( "fill" , function ( a ) { return S ( a . id ) } ) . style ( "cursor" , function ( a ) { return ka ( a ) ? "pointer" : null } ) ; a . forEach ( function ( a ) { h . selectAll ( ".selected-circles-" + a . id ) . selectAll ( ".selected-circle" ) . each ( function ( b ) { b . value =
a . values [ b . x ] . value } ) } ) ; pa && ( b = x . select ( ".chart-bars" ) . selectAll ( ".chart-bar" ) . data ( a ) , b = b . enter ( ) . append ( "g" ) . attr ( "class" , function ( a ) { return "chart-bar target target-" + a . id } ) . style ( "opacity" , 0 ) , b . append ( "g" ) . attr ( "class" , Mb ) . style ( "fill" , function ( a ) { return S ( a . id ) } ) , b = x . select ( ".chart-lines" ) . selectAll ( ".chart-line" ) . data ( a ) , b = b . enter ( ) . append ( "g" ) . attr ( "class" , function ( a ) { return "chart-line target target-" + a . id } ) . style ( "opacity" , 0 ) , b . append ( "path" ) . attr ( "class" , Lb ) . style ( "stroke" , function ( a ) { return S ( a . id ) } ) ) ;
qa && Xa ( a ) ; d3 . selectAll ( ".target" ) . transition ( ) . style ( "opacity" , 1 ) } function Ia ( a , b ) { l . data . targets . forEach ( function ( b ) { for ( var c = 0 ; c < a . length ; c ++ ) if ( b . id === a [ c ] . id ) { b . values = a [ c ] . values ; a . splice ( c , 1 ) ; break } } ) ; l . data . targets = l . data . targets . concat ( a ) ; dc ( l . data . targets ) ; H ( ) ; b ( ) } function Xa ( a , b ) { var d = xa ( a ) , c , g = r / 2 - Ja * Object . keys ( a ) . length / 2 , f ; b = s ( b ) ? { } : b ; f = k ( b . withTransition ) ? b . withTransition : ! 0 ; c = sa . selectAll ( ".legend-item" ) . data ( d ) . enter ( ) . append ( "g" ) . attr ( "class" , function ( a ) { return "legend-item legend-item-" +
qa && Xa ( a ) ; d3 . selectAll ( ".target" ) . transition ( ) . style ( "opacity" , 1 ) } function Ia ( a , b ) { l . data . targets . forEach ( function ( b ) { for ( var c = 0 ; c < a . length ; c ++ ) if ( b . id === a [ c ] . id ) { b . values = a [ c ] . values ; a . splice ( c , 1 ) ; break } } ) ; l . data . targets = l . data . targets . concat ( a ) ; dc ( l . data . targets ) ; I ( ) ; b ( ) } function Xa ( a , b ) { var d = xa ( a ) , c , g = r / 2 - Ja * Object . keys ( a ) . length / 2 , f ; b = s ( b ) ? { } : b ; f = k ( b . withTransition ) ? b . withTransition : ! 0 ; c = sa . selectAll ( ".legend-item" ) . data ( d ) . enter ( ) . append ( "g" ) . attr ( "class" , function ( a ) { return "legend-item legend-item-" +
a } ) . style ( "cursor" , "pointer" ) . on ( "click" , function ( a ) { Oc ( a ) } ) . on ( "mouseover" , function ( a ) { d3 . selectAll ( ".legend-item" ) . filter ( function ( b ) { return b !== a } ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 0.3 ) ; l . focus ( a ) } ) . on ( "mouseout" , function ( a ) { d3 . selectAll ( ".legend-item" ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 1 ) ; l . revert ( ) } ) ; c . append ( "rect" ) . attr ( "class" , "legend-item-event" ) . style ( "fill-opacity" , 0 ) . attr ( "x" , - 200 ) . attr ( "y" , function ( ) { return ca / 2 - 16 } ) . attr ( "width" , Ja ) . attr ( "height" , 24 ) ; c . append ( "rect" ) . attr ( "class" ,
"legend-item-tile" ) . style ( "fill" , function ( a ) { return S ( a ) } ) . attr ( "x" , - 200 ) . attr ( "y" , function ( ) { return ca / 2 - 9 } ) . attr ( "width" , 10 ) . attr ( "height" , 10 ) ; c . append ( "text" ) . text ( function ( a ) { return k ( Ca [ a ] ) ? Ca [ a ] : a } ) . attr ( "x" , - 200 ) . attr ( "y" , function ( a , b ) { return ca / 2 } ) ; sa . selectAll ( "rect.legend-item-event" ) . data ( d ) . transition ( ) . duration ( f ? 250 : 0 ) . attr ( "x" , function ( a , b ) { return g + Ja * b } ) ; sa . selectAll ( "rect.legend-item-tile" ) . data ( d ) . transition ( ) . duration ( f ? 250 : 0 ) . attr ( "x" , function ( a , b ) { return g + Ja * b } ) ; sa . selectAll ( "text" ) . data ( d ) . transition ( ) . duration ( f ?
250 : 0 ) . attr ( "x" , function ( a , b ) { return g + Ja * b + 14 } ) } function Ka ( a ) { return k ( a ) ? ".target-" + a : ".target" } var l = { data : { } } , Sa = { } , $ = "_expanded_" , aa = "_selected_" , rb = "_included_" , ya = c ( [ "size" , "width" ] , "#chart" ) , yb = c ( [ "size" , "width" ] , null ) , zb = c ( [ "size" , "height" ] , null ) , oa = c ( [ "zoom" , "enabled" ] , ! 1 ) ; if ( ! ( "data" in T ) ) throw Error ( "data is required in config" ) ; var Ta = c ( [ "data" , "x" ] , "x" ) , Pc = c ( [ "data" , "x_format" ] , "%Y-%m-%d" ) , rc = c ( [ "data" , "id_converter" ] , function ( a ) { return a } ) , Ca = c ( [ "data" , "names" ] , { } ) , v = c ( [ "data" , "groups" ] ,
[ ] ) , Kb = c ( [ "data" , "axes" ] , { } ) , Y = c ( [ "data" , "types" ] , { } ) , gc = c ( [ "data" , "regions" ] , { } ) , Qc = c ( [ "data" , "colors" ] , { } ) , Z = c ( [ "data" , "selection" , "enabled" ] , ! 1 ) , ia = c ( [ "data" , "selection" , "grouped" ] , ! 1 ) , ka = c ( [ "data" , "selection" , "isselectable" ] , function ( a ) { return ! 0 } ) , pa = c ( [ "subchart" , "show" ] , ! 1 ) , Bb = pa ? c ( [ "subchart" , "size" , "height" ] , 60 ) : 0 , Rc = c ( [ "color" , "pattern" ] , null ) , qa = c ( [ "legend" , "show" ] , ! 0 ) , Ja = c ( [ "legend" , "item" , "width" ] , 80 ) , Oc = c ( [ "legend" , "item" , "onclick" ] , function ( ) { } ) , hc = c ( [ "axis" , "x" , "type" ] , "indexed" ) , Ya =
c ( [ "axis" , "x" , "categories" ] , [ ] ) , ic = c ( [ "axis" , "x" , "tick" , "centered" ] , ! 1 ) , Ha = c ( [ "axis" , "x" , "default" ] , null ) , nc = c ( [ "axis" , "y" , "max" ] , null ) , lc = c ( [ "axis" , "y" , "min" ] , null ) , pc = c ( [ "axis" , "y" , "center" ] , null ) , Gc = c ( [ "axis" , "y" , "text" ] , null ) ; c ( [ "axis" , "y" , "rescale" ] , ! 0 ) ; var db = c ( [ "axis" , "y" , "inner" ] , ! 1 ) , Dc = c ( [ "axis" , "y" , "format" ] , function ( a ) { return a } ) , Aa = c ( [ "axis" , "y" , "padding" ] , null ) , Cc = c ( [ "axis" , "y" , "ticks" ] , 10 ) , Db = c ( [ "axis" , "y2" , "show" ] , ! 1 ) , mc = c ( [ "axis" , "y2" , "max" ] , null ) , kc = c ( [ "axis" , "y2" , "min" ] , null ) , oc =
c ( [ "axis" , "y2" , "center" ] , null ) ; c ( [ "axis" , "y2" , "text" ] , null ) ; c ( [ "axis" , "y2" , "rescale" ] , ! 0 ) ; var cb = c ( [ "axis" , "y2" , "inner" ] , ! 1 ) , Fc = c ( [ "axis" , "y2" , "format" ] , function ( a ) { return a } ) , Ba = c ( [ "axis" , "y2" , "padding" ] , null ) , Ec = c ( [ "axis" , "y2" , "ticks" ] , 10 ) , f = c ( [ "axis" , "rotated" ] , ! 1 ) , Zb = c ( [ "grid" , "x" , "show" ] , ! 1 ) , Kc = c ( [ "grid" , "x" , "type" ] , "tick" ) , mb = c ( [ "grid" , "x" , "lines" ] , null ) , $b = c ( [ "grid" , "y" , "show" ] , ! 1 ) ; c ( [ "grid" , "y" , "type" ] , "tick" ) ; var nb = c ( [ "grid" , "y" , "lines" ] , null ) , ob = c ( [ "point" , "show" ] , ! 0 ) ? c ( [ "point" , "r" ] , 2.5 ) :
0 , Hc = c ( [ "point" , "focus" , "line" , "enabled" ] , ! 0 ) , ac = c ( [ "point" , "focus" , "expand" , "enabled" ] , ! 0 ) , bc = c ( [ "point" , "focus" , "expand" , "r" ] , ac ? 4 : ob ) , Ea = c ( [ "point" , "focus" , "select" , "r" ] , 8 ) , Ic = c ( [ "point" , "onclick" ] , function ( ) { } ) , yc = c ( [ "point" , "onselected" ] , function ( ) { } ) , zc = c ( [ "point" , "onunselected" ] , function ( ) { } ) , M = c ( [ "regions" ] , [ ] ) , cc = c ( [ "tooltip" , "contents" ] , function ( a ) { var b = "<table class='-tooltip'><tr><th colspan='2'>" + ( G ? a [ 0 ] . x . getFullYear ( ) + "." + ( a [ 0 ] . x . getMonth ( ) + 1 ) + "." + a [ 0 ] . x . getDate ( ) : ga ? a [ 0 ] . x < Ya . length ?
Ya [ a [ 0 ] . x ] : a [ 0 ] . x : a [ 0 ] . x ) + "</th></tr>" , c , e , g ; for ( c = 0 ; c < a . length ; c ++ ) k ( a [ c ] ) ? ( e = k ( a [ c ] . value ) ? ( Math . round ( 100 * a [ c ] . value ) / 100 ) . toFixed ( 2 ) : "-" , g = a [ c ] . name ) : g = e = "-" , b += "<tr><td><span style='background-color:" + S ( a [ c ] . id ) + "'></span>" + g + "</td><td class='value'>" + e + "</td></tr>" ; return b + "</table>" } ) , Jc = c ( [ "tooltip" , "init" , "show" ] , ! 1 ) , ra = c ( [ "tooltip" , "init" , "x" ] , 0 ) , ec = c ( [ "tooltip" , "init" , "position" ] , { top : "0px" , left : "50px" } ) , tb = ya . replace ( "#" , "" ) + "-clip" , Ga = "url(#" + tb + ")" , G = "timeseries" === hc , ga = "categorized" ===
0 , Hc = c ( [ "point" , "focus" , "line" , "enabled" ] , ! 0 ) , ac = c ( [ "point" , "focus" , "expand" , "enabled" ] , ! 0 ) , bc = c ( [ "point" , "focus" , "expand" , "r" ] , ac ? 4 : ob ) , Ea = c ( [ "point" , "focus" , "select" , "r" ] , 8 ) , Ic = c ( [ "point" , "onclick" ] , function ( ) { } ) , yc = c ( [ "point" , "onselected" ] , function ( ) { } ) , zc = c ( [ "point" , "onunselected" ] , function ( ) { } ) , M = c ( [ "regions" ] , [ ] ) , cc = c ( [ "tooltip" , "contents" ] , function ( a ) { var b = "<table class='-tooltip'><tr><th colspan='2'>" + ( H ? a [ 0 ] . x . getFullYear ( ) + "." + ( a [ 0 ] . x . getMonth ( ) + 1 ) + "." + a [ 0 ] . x . getDate ( ) : ga ? a [ 0 ] . x < Ya . length ?
Ya [ a [ 0 ] . x ] : a [ 0 ] . x : a [ 0 ] . x ) + "</th></tr>" , c , e , g ; for ( c = 0 ; c < a . length ; c ++ ) k ( a [ c ] ) ? ( e = k ( a [ c ] . value ) ? ( Math . round ( 100 * a [ c ] . value ) / 100 ) . toFixed ( 2 ) : "-" , g = a [ c ] . name ) : g = e = "-" , b += "<tr><td><span style='background-color:" + S ( a [ c ] . id ) + "'></span>" + g + "</td><td class='value'>" + e + "</td></tr>" ; return b + "</table>" } ) , Jc = c ( [ "tooltip" , "init" , "show" ] , ! 1 ) , ra = c ( [ "tooltip" , "init" , "x" ] , 0 ) , ec = c ( [ "tooltip" , "init" , "position" ] , { top : "0px" , left : "50px" } ) , tb = ya . replace ( "#" , "" ) + "-clip" , Ga = "url(#" + tb + ")" , H = "timeseries" === hc , ga = "categorized" ===
hc , qb = null , Wa = ! 1 , pb = ! 1 , ca = qa ? 40 : 0 , Sc = function ( a ) { return function ( b ) { for ( var c = a . length - 1 , e = a [ c ] ; ! e [ 1 ] ( b ) ; ) e = a [ -- c ] ; return e [ 0 ] ( b ) } } ( [ [ d3 . time . format ( "%Y/%-m/%-d" ) , function ( ) { return ! 0 } ] , [ d3 . time . format ( "%-m/%-d" ) , function ( a ) { return a . getMonth ( ) } ] , [ d3 . time . format ( "%-m/%-d" ) , function ( a ) { return 1 != a . getDate ( ) } ] , [ d3 . time . format ( "%-m/%-d" ) , function ( a ) { return a . getDay ( ) && 1 != a . getDate ( ) } ] , [ d3 . time . format ( "%I %p" ) , function ( a ) { return a . getHours ( ) } ] , [ d3 . time . format ( "%I:%M" ) , function ( a ) { return a . getMinutes ( ) } ] ,
[ d3 . time . format ( ":%S" ) , function ( a ) { return a . getSeconds ( ) } ] , [ d3 . time . format ( ".%L" ) , function ( a ) { return a . getMilliseconds ( ) } ] ] ) , ha = d3 . time . format ( Pc ) . parse , Ab , Fb , Cb , Na , Eb , Gb , r , u , da , bb , na , Hb , Ib , eb , fb , m , y , R , z , Oa , Pa , C = ga ? wb ( ) : d3 . svg . axis ( ) , ea = d3 . svg . axis ( ) , Qa = d3 . svg . axis ( ) , fa = ga ? wb ( ) : d3 . svg . axis ( ) ; Q ( ) ; U ( ) ; var L = { main : function ( ) { return "translate(" + J + "," + p + ")" } , context : function ( ) { return "translate(" + I + "," + ta + ")" } , legend : function ( ) { return "translate(" + La + "," + xb + ")" } , y2 : function ( ) { return "translate(" + ( f ? 0 : r ) +
"," + ( f ? 10 : 0 ) + ")" } , x : function ( ) { return "translate(0," + u + ")" } , subx : function ( ) { return "translate(0," + da + ")" } } ; G && C . tickFormat ( Sc ) ; ga ? ( C . categories ( Ya ) . tickCentered ( ic ) , fa . categories ( Ya ) . tickCentered ( ic ) ) : ( C . tickOffset = function ( ) { return 0 } , fa . tickOffset = function ( ) { return 0 } ) ; var Lc = function ( ) { var a = d3 . svg . line ( ) . x ( f ? function ( a ) { return E ( a . id ) ( a . value ) } : Va ) . y ( f ? Va : function ( a ) { return E ( a . id ) ( a . value ) } ) ; return function ( b ) { var c ; if ( jb ( b ) ) return "spline" === Y [ "string" === typeof b ? b : b . id ] ? a . interpolate ( "cardinal" ) :
a . interpolate ( "linear" ) , 0 < Object . keys ( gc ) . length ? Bc ( b . values , m , E ( b . id ) , gc [ b . id ] ) : a ( b . values ) ; c = m ( b . values [ 0 ] . x ) ; b = E ( b . id ) ( b . values [ 0 ] . value ) ; return f ? "M " + b + " " + c : "M " + c + " " + b } } ( ) , Mc = function ( ) { var a = d3 . svg . line ( ) . x ( function ( a ) { return z ( a . x ) } ) . y ( function ( a ) { return B ( a . id ) ( a . value ) } ) ; return function ( b ) { return jb ( b ) ? a ( b . values ) : "M " + z ( b . values [ 0 ] . x ) + " " + B ( b . id ) ( b . values [ 0 ] . value ) } } ( ) , sb = function ( a ) { return "start" in a ? m ( G ? ha ( a . start ) : a . start ) : 0 } , fc = function ( a ) { var b = sb ( a ) ; a = ( "end" in a ? m ( G ? ha ( a . end ) : a . end ) :
r ) - b ; return 0 > a ? 0 : a } , S = function ( a , b ) { var c = [ ] , e = null !== b ? b : "#1f77b4 #ff7f0e #2ca02c #d62728 #9467bd #8c564b #e377c2 #7f7f7f #bcbd22 #17becf" . split ( " " ) ; return function ( b ) { if ( b in a ) return a [ b ] ; 0 <= c . indexOf ( b ) || c . push ( b ) ; return e [ c . indexOf ( b ) % e . length ] } } ( Qc , Rc ) , Za = d3 . select ( ya ) . append ( "svg" ) . attr ( "width" , r + J + F ) . attr ( "height" , u + p + V ) , ub = Za . append ( "defs" ) ; ub . append ( "clipPath" ) . attr ( "id" , tb ) . append ( "rect" ) . attr ( "y" , p ) . attr ( "width" , r ) . attr ( "height" , u - p ) ; ub . append ( "clipPath" ) . attr ( "id" , "xaxis-clip" ) . append ( "rect" ) . attr ( "x" ,
- 1 ) . attr ( "y" , - 1 ) . attr ( "width" , r + 2 ) . attr ( "height" , 40 ) ; ub . append ( "clipPath" ) . attr ( "id" , "yaxis-clip" ) . append ( "rect" ) . attr ( "x" , - J + 1 ) . attr ( "y" , p - 1 ) . attr ( "width" , J ) . attr ( "height" , u - p + 2 ) ; var h = Za . append ( "g" ) . attr ( "transform" , L . main ) , x = null ; pa && ( x = Za . append ( "g" ) . attr ( "transform" , L . context ) ) ; var sa = null ; qa && ( sa = Za . append ( "g" ) . attr ( "transform" , L . legend ) ) ; var ja = d3 . select ( ya ) . style ( "position" , "relative" ) . append ( "div" ) . style ( "position" , "absolute" ) . style ( "width" , "30%" ) . style ( "z-index" , "10" ) . style ( "visibility" ,
"hidden" ) , K = d3 . svg . brush ( ) . on ( "brush" , function ( ) { H ( { withTransition : ! 1 , withY : ! 1 , withSubchart : ! 1 } ) } ) , Fa = d3 . behavior . zoom ( ) . on ( "zoom" , oa ? Nc : null ) , Ua = null , gb = null , Jb ; l . focus = function ( a ) { l . defocus ( ) ; d3 . selectAll ( Ka ( a ) ) . filter ( function ( a ) { return ab ( a . id ) } ) . classed ( "focused" , ! 0 ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 1 ) } ; l . defocus = function ( a ) { d3 . selectAll ( Ka ( a ) ) . filter ( function ( a ) { return ab ( a . id ) } ) . classed ( "focused" , ! 1 ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 0.3 ) } ; l . revert = function ( a ) { d3 . selectAll ( Ka ( a ) ) . filter ( function ( a ) { return ab ( a . id ) } ) . classed ( "focused" ,
[ d3 . time . format ( ":%S" ) , function ( a ) { return a . getSeconds ( ) } ] , [ d3 . time . format ( ".%L" ) , function ( a ) { return a . getMilliseconds ( ) } ] ] ) , ha = d3 . time . format ( Pc ) . parse , Ab , Fb , Cb , Na , Eb , Gb , r , u , da , bb , na , Hb , Ib , eb , fb , m , y , R , z , Oa , Pa , C = ga ? wb ( ) : d3 . svg . axis ( ) , ea = d3 . svg . axis ( ) , Qa = d3 . svg . axis ( ) , fa = ga ? wb ( ) : d3 . svg . axis ( ) ; Q ( ) ; U ( ) ; var L = { main : function ( ) { return "translate(" + K + "," + p + ")" } , context : function ( ) { return "translate(" + J + "," + ta + ")" } , legend : function ( ) { return "translate(" + La + "," + xb + ")" } , y2 : function ( ) { return "translate(" + ( f ? 0 : r ) +
"," + ( f ? 10 : 0 ) + ")" } , x : function ( ) { return "translate(0," + u + ")" } , subx : function ( ) { return "translate(0," + da + ")" } } ; H && C . tickFormat ( Sc ) ; ga ? ( C . categories ( Ya ) . tickCentered ( ic ) , fa . categories ( Ya ) . tickCentered ( ic ) ) : ( C . tickOffset = function ( ) { return 0 } , fa . tickOffset = function ( ) { return 0 } ) ; var Lc = function ( ) { var a = d3 . svg . line ( ) . x ( f ? function ( a ) { return F ( a . id ) ( a . value ) } : Va ) . y ( f ? Va : function ( a ) { return F ( a . id ) ( a . value ) } ) ; return function ( b ) { var c ; if ( jb ( b ) ) return "spline" === Y [ "string" === typeof b ? b : b . id ] ? a . interpolate ( "cardinal" ) :
a . interpolate ( "linear" ) , 0 < Object . keys ( gc ) . length ? Bc ( b . values , m , F ( b . id ) , gc [ b . id ] ) : a ( b . values ) ; c = m ( b . values [ 0 ] . x ) ; b = F ( b . id ) ( b . values [ 0 ] . value ) ; return f ? "M " + b + " " + c : "M " + c + " " + b } } ( ) , Mc = function ( ) { var a = d3 . svg . line ( ) . x ( function ( a ) { return z ( a . x ) } ) . y ( function ( a ) { return B ( a . id ) ( a . value ) } ) ; return function ( b ) { return jb ( b ) ? a ( b . values ) : "M " + z ( b . values [ 0 ] . x ) + " " + B ( b . id ) ( b . values [ 0 ] . value ) } } ( ) , sb = function ( a ) { return "start" in a ? m ( H ? ha ( a . start ) : a . start ) : 0 } , fc = function ( a ) { var b = sb ( a ) ; a = ( "end" in a ? m ( H ? ha ( a . end ) : a . end ) :
r ) - b ; return 0 > a ? 0 : a } , S = function ( a , b ) { var c = [ ] , e = null !== b ? b : "#1f77b4 #ff7f0e #2ca02c #d62728 #9467bd #8c564b #e377c2 #7f7f7f #bcbd22 #17becf" . split ( " " ) ; return function ( b ) { if ( b in a ) return a [ b ] ; 0 <= c . indexOf ( b ) || c . push ( b ) ; return e [ c . indexOf ( b ) % e . length ] } } ( Qc , Rc ) , Za = d3 . select ( ya ) . append ( "svg" ) . attr ( "width" , r + K + G ) . attr ( "height" , u + p + V ) , ub = Za . append ( "defs" ) ; ub . append ( "clipPath" ) . attr ( "id" , tb ) . append ( "rect" ) . attr ( "y" , p ) . attr ( "width" , r ) . attr ( "height" , u - p ) ; ub . append ( "clipPath" ) . attr ( "id" , "xaxis-clip" ) . append ( "rect" ) . attr ( "x" ,
- 1 ) . attr ( "y" , - 1 ) . attr ( "width" , r + 2 ) . attr ( "height" , 40 ) ; ub . append ( "clipPath" ) . attr ( "id" , "yaxis-clip" ) . append ( "rect" ) . attr ( "x" , - K + 1 ) . attr ( "y" , p - 1 ) . attr ( "width" , K ) . attr ( "height" , u - p + 2 ) ; var h = Za . append ( "g" ) . attr ( "transform" , L . main ) , x = null ; pa && ( x = Za . append ( "g" ) . attr ( "transform" , L . context ) ) ; var sa = null ; qa && ( sa = Za . append ( "g" ) . attr ( "transform" , L . legend ) ) ; var ja = d3 . select ( ya ) . style ( "position" , "relative" ) . append ( "div" ) . style ( "position" , "absolute" ) . style ( "width" , "30%" ) . style ( "z-index" , "10" ) . style ( "visibility" ,
"hidden" ) , D = d3 . svg . brush ( ) . on ( "brush" , function ( ) { I ( { withTransition : ! 1 , withY : ! 1 , withSubchart : ! 1 } ) } ) , Fa = d3 . behavior . zoom ( ) . on ( "zoom" , oa ? Nc : null ) , Ua = null , gb = null , Jb ; l . focus = function ( a ) { l . defocus ( ) ; d3 . selectAll ( Ka ( a ) ) . filter ( function ( a ) { return ab ( a . id ) } ) . classed ( "focused" , ! 0 ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 1 ) } ; l . defocus = function ( a ) { d3 . selectAll ( Ka ( a ) ) . filter ( function ( a ) { return ab ( a . id ) } ) . classed ( "focused" , ! 1 ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 0.3 ) } ; l . revert = function ( a ) { d3 . selectAll ( Ka ( a ) ) . filter ( function ( a ) { return ab ( a . id ) } ) . classed ( "focused" ,
! 1 ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 1 ) } ; l . show = function ( a ) { d3 . selectAll ( Ka ( a ) ) . transition ( ) . style ( "opacity" , 1 ) } ; l . hide = function ( a ) { d3 . selectAll ( Ka ( a ) ) . transition ( ) . style ( "opacity" , 0 ) } ; l . load = function ( a ) { s ( a . done ) && ( a . done = function ( ) { } ) ; if ( "cacheIds" in a && la ( a . cacheIds ) ) Ia ( ma ( a . cacheIds ) , a . done ) ; else if ( "data" in a ) Ia ( O ( data ) , a . done ) ; else if ( "url" in a ) d3 . csv ( a . url , function ( b , c ) { Ia ( O ( c ) , a . done ) } ) ; else if ( "rows" in a ) Ia ( O ( ua ( a . rows ) ) , a . done ) ; else if ( "columns" in a ) Ia ( O ( va ( a . columns ) ) , a . done ) ;
else throw Error ( "url or rows or columns is required." ) ; } ; l . unload = function ( a ) { l . data . targets = l . data . targets . filter ( function ( b ) { return b . id != a } ) ; d3 . selectAll ( ".target-" + a ) . transition ( ) . style ( "opacity" , 0 ) . remove ( ) ; qa && ( d3 . selectAll ( ".legend-item-" + a ) . remove ( ) , Xa ( l . data . targets ) ) ; 0 < l . data . targets . length && H ( ) } ; l . selected = function ( a ) { a = k ( a ) ? "-" + a : "" ; return d3 . merge ( h . selectAll ( ".-shapes" + a ) . selectAll ( ".-shape" ) . filter ( function ( ) { return d3 . select ( this ) . classed ( aa ) } ) . map ( function ( a ) { return a . map ( function ( a ) { return a . _ _data _ _ } ) } ) ) } ;
else throw Error ( "url or rows or columns is required." ) ; } ; l . unload = function ( a ) { l . data . targets = l . data . targets . filter ( function ( b ) { return b . id != a } ) ; d3 . selectAll ( ".target-" + a ) . transition ( ) . style ( "opacity" , 0 ) . remove ( ) ; qa && ( d3 . selectAll ( ".legend-item-" + a ) . remove ( ) , Xa ( l . data . targets ) ) ; 0 < l . data . targets . length && I ( ) } ; l . selected = function ( a ) { a = k ( a ) ? "-" + a : "" ; return d3 . merge ( h . selectAll ( ".-shapes" + a ) . selectAll ( ".-shape" ) . filter ( function ( ) { return d3 . select ( this ) . classed ( aa ) } ) . map ( function ( a ) { return a . map ( function ( a ) { return a . _ _data _ _ } ) } ) ) } ;
l . select = function ( a , b , c ) { Z && h . selectAll ( ".-shapes" ) . selectAll ( ".-shape" ) . each ( function ( e , f ) { var h = "circle" === this . nodeName ? Vb : Ac , l = "circle" === this . nodeName ? kb : Xb ; 0 <= b . indexOf ( f ) ? ka ( e ) && ( ia || s ( a ) || 0 <= a . indexOf ( e . id ) ) && h ( d3 . select ( this ) . classed ( aa , ! 0 ) , e , f ) : k ( c ) && c && l ( d3 . select ( this ) . classed ( aa , ! 1 ) , e , f ) } ) } ; l . unselect = function ( a , b ) { Z && h . selectAll ( ".-shapes" ) . selectAll ( ".-shape" ) . each ( function ( c , e ) { var f = "circle" === this . nodeName ? kb : Xb ; ( s ( b ) || 0 <= b . indexOf ( e ) ) && ka ( c ) && ( ia || s ( a ) || 0 <= a . indexOf ( c . id ) ) && f ( d3 . select ( this ) . classed ( aa ,
! 1 ) , c , e ) } ) } ; l . toLine = function ( a ) { ib ( a , "line" ) ; H ( ) } ; l . toSpline = function ( a ) { ib ( a , "spline" ) ; H ( ) } ; l . toBar = function ( a ) { ib ( a , "bar" ) ; H ( ) } ; l . groups = function ( a ) { if ( s ( a ) ) return v ; v = a ; H ( ) ; return v } ; l . regions = function ( a ) { if ( s ( a ) ) return M ; M = a ; H ( ) ; return M } ; l . regions . add = function ( a ) { if ( s ( a ) ) return M ; M = M . concat ( a ) ; H ( ) ; return M } ; l . regions . remove = function ( a , b ) { var c = [ ] . concat ( a ) ; b = k ( b ) ? b : { } ; c . forEach ( function ( a ) { var c = d3 . selectAll ( "." + a ) ; k ( b . duration ) && ( c = c . transition ( ) . duration ( b . duration ) . style ( "fill-opacity" , 0 ) ) ;
! 1 ) , c , e ) } ) } ; l . toLine = function ( a ) { ib ( a , "line" ) ; I ( ) } ; l . toSpline = function ( a ) { ib ( a , "spline" ) ; I ( ) } ; l . toBar = function ( a ) { ib ( a , "bar" ) ; I ( ) } ; l . groups = function ( a ) { if ( s ( a ) ) return v ; v = a ; I ( ) ; return v } ; l . regions = function ( a ) { if ( s ( a ) ) return M ; M = a ; I ( ) ; return M } ; l . regions . add = function ( a ) { if ( s ( a ) ) return M ; M = M . concat ( a ) ; I ( ) ; return M } ; l . regions . remove = function ( a , b ) { var c = [ ] . concat ( a ) ; b = k ( b ) ? b : { } ; c . forEach ( function ( a ) { var c = d3 . selectAll ( "." + a ) ; k ( b . duration ) && ( c = c . transition ( ) . duration ( b . duration ) . style ( "fill-opacity" , 0 ) ) ;
c . remove ( ) ; M = M . filter ( function ( b ) { return 0 > b . classes . indexOf ( a ) } ) } ) ; return M } ; l . data . get = function ( a ) { a = l . data . getAsTarget ( a ) ; return k ( a ) ? a . values . map ( function ( a ) { return a . value } ) : void 0 } ; l . data . getAsTarget = function ( a ) { var b = Ra ( function ( b ) { return b . id == a } ) ; return 0 < b . length ? b [ 0 ] : void 0 } ; if ( "url" in T . data ) d3 . csv ( T . data . url , function ( a , b ) { lb ( b ) } ) ; else if ( "rows" in T . data ) lb ( ua ( T . data . rows ) ) ; else if ( "columns" in T . data ) lb ( va ( T . data . columns ) ) ; else throw Error ( "url or rows or columns is required." ) ; vb . onresize =
function ( ) { Q ( ) ; U ( ) ; K . x ( z ) . extent ( m . domain ( ) ) ; oa && Fa . x ( m ) ; d3 . select ( "svg" ) . attr ( "width" , bb ) . attr ( "height" , na ) ; d3 . select ( "#" + tb ) . select ( "rect" ) . attr ( "width" , r ) . attr ( "height" , u ) ; d3 . select ( "#xaxis-clip" ) . select ( "rect" ) . attr ( "width" , r + 2 ) ; d3 . select ( ".zoom-rect" ) . attr ( "width" , r ) ; x . select ( ".x.brush" ) . selectAll ( "rect" ) . attr ( "height" , da ) ; x . select ( ".x.brush" ) . call ( K ) ; x . attr ( "transform" , L . context ) ; sa . attr ( "transform" , L . legend ) ; h . select ( ".x.axis" ) . attr ( "transform" , L . x ) ; h . select ( ".y2.axis" ) . attr ( "transform" , L . y2 ) ;
x . select ( ".x.axis" ) . attr ( "transform" , L . subx ) ; qa && Xa ( l . data . targets , { withTransition : ! 1 } ) ; H ( { withTransition : ! 1 } ) } ; return l } } ) ( window ) ;
function ( ) { Q ( ) ; U ( ) ; D . x ( z ) ; D . empty ( ) || D . extent ( m . domain ( ) ) ; oa && Fa . x ( m ) ; d3 . select ( "svg" ) . attr ( "width" , bb ) . attr ( "height" , na ) ; d3 . select ( "#" + tb ) . select ( "rect" ) . attr ( "width" , r ) . attr ( "height" , u ) ; d3 . select ( "#xaxis-clip" ) . select ( "rect" ) . attr ( "width" , r + 2 ) ; d3 . select ( ".zoom-rect" ) . attr ( "width" , r ) ; x . select ( ".x.brush" ) . selectAll ( "rect" ) . attr ( "height" , da ) ; x . select ( ".x.brush" ) . call ( D ) ; x . attr ( "transform" , L . context ) ; sa . attr ( "transform" , L . legend ) ; h . select ( ".x.axis" ) . attr ( "transform" , L . x ) ; h . select ( ".y2.axis" ) . attr ( "transform" ,
L . y2 ) ; x . select ( ".x.axis" ) . attr ( "transform" , L . subx ) ; qa && Xa ( l . data . targets , { withTransition : ! 1 } ) ; I ( { withTransition : ! 1 } ) } ; return l } } ) ( window ) ;