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