From 8729a2ff62de32c544748dc0ff134f98cac3ad81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E4=BC=9F?= <1390903070@qq.com> Date: Thu, 30 Sep 2021 09:20:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0web099html?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/workspace.xml | 6 +- README.md | 2 + ...0\345\205\254\344\274\227\345\217\267.gif" | Bin 0 -> 376829 bytes .../css/comon0.css" | 490 + .../img/bg.png" | Bin 0 -> 320939 bytes .../img/head_bg.png" | Bin 0 -> 7881 bytes .../img/loading.gif" | Bin 0 -> 701 bytes ...0\345\205\254\344\274\227\345\217\267.gif" | Bin 0 -> 376829 bytes .../index.html" | 277 + .../js/echarts.min.js" | 35307 ++++++++++++++++ .../js/jquery.cxselect.min.js" | 84 + .../js/jquery.js" | 3081 ++ .../js/jquery.liMarquee.js" | 1323 + .../js/js.js" | 1095 + .../lol.ico" | Bin 0 -> 4286 bytes ...0\345\205\254\344\274\227\345\217\267.gif" | Bin 0 -> 376829 bytes 16 files changed, 41664 insertions(+), 1 deletion(-) create mode 100644 "web/098 \351\224\200\345\224\256\345\244\247\346\225\260\346\215\256\345\210\206\346\236\220/\346\233\264\345\244\232\345\206\205\345\256\271\345\205\263\346\263\250\345\205\254\344\274\227\345\217\267.gif" create mode 100644 "web/099 \350\213\261\351\233\204\350\201\224\347\233\237LPL\346\257\224\350\265\233\346\225\260\346\215\256\345\217\257\350\247\206\345\214\226/css/comon0.css" create mode 100644 "web/099 \350\213\261\351\233\204\350\201\224\347\233\237LPL\346\257\224\350\265\233\346\225\260\346\215\256\345\217\257\350\247\206\345\214\226/img/bg.png" create mode 100644 "web/099 \350\213\261\351\233\204\350\201\224\347\233\237LPL\346\257\224\350\265\233\346\225\260\346\215\256\345\217\257\350\247\206\345\214\226/img/head_bg.png" create mode 100644 "web/099 \350\213\261\351\233\204\350\201\224\347\233\237LPL\346\257\224\350\265\233\346\225\260\346\215\256\345\217\257\350\247\206\345\214\226/img/loading.gif" create mode 100644 "web/099 \350\213\261\351\233\204\350\201\224\347\233\237LPL\346\257\224\350\265\233\346\225\260\346\215\256\345\217\257\350\247\206\345\214\226/img/\346\233\264\345\244\232\345\206\205\345\256\271\345\205\263\346\263\250\345\205\254\344\274\227\345\217\267.gif" create mode 100644 "web/099 \350\213\261\351\233\204\350\201\224\347\233\237LPL\346\257\224\350\265\233\346\225\260\346\215\256\345\217\257\350\247\206\345\214\226/index.html" create mode 100644 "web/099 \350\213\261\351\233\204\350\201\224\347\233\237LPL\346\257\224\350\265\233\346\225\260\346\215\256\345\217\257\350\247\206\345\214\226/js/echarts.min.js" create mode 100644 "web/099 \350\213\261\351\233\204\350\201\224\347\233\237LPL\346\257\224\350\265\233\346\225\260\346\215\256\345\217\257\350\247\206\345\214\226/js/jquery.cxselect.min.js" create mode 100644 "web/099 \350\213\261\351\233\204\350\201\224\347\233\237LPL\346\257\224\350\265\233\346\225\260\346\215\256\345\217\257\350\247\206\345\214\226/js/jquery.js" create mode 100644 "web/099 \350\213\261\351\233\204\350\201\224\347\233\237LPL\346\257\224\350\265\233\346\225\260\346\215\256\345\217\257\350\247\206\345\214\226/js/jquery.liMarquee.js" create mode 100644 "web/099 \350\213\261\351\233\204\350\201\224\347\233\237LPL\346\257\224\350\265\233\346\225\260\346\215\256\345\217\257\350\247\206\345\214\226/js/js.js" create mode 100644 "web/099 \350\213\261\351\233\204\350\201\224\347\233\237LPL\346\257\224\350\265\233\346\225\260\346\215\256\345\217\257\350\247\206\345\214\226/lol.ico" create mode 100644 "web/099 \350\213\261\351\233\204\350\201\224\347\233\237LPL\346\257\224\350\265\233\346\225\260\346\215\256\345\217\257\350\247\206\345\214\226/\346\233\264\345\244\232\345\206\205\345\256\271\345\205\263\346\263\250\345\205\254\344\274\227\345\217\267.gif" diff --git a/.idea/workspace.xml b/.idea/workspace.xml index f9d46a14..1955387a 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -1,7 +1,10 @@ - + + + + diff --git a/README.md b/README.md index 86f75c79..0ee112f0 100644 --- a/README.md +++ b/README.md @@ -367,6 +367,8 @@ git clone https://github.com/iGaoWei/BigDataView.git ##### 098 销售大数据分析 [在线预览](https://igaowei.github.io/BigDataView/web/098%20%E9%94%80%E5%94%AE%E5%A4%A7%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90) +##### 099 英雄联盟LPL比赛数据可视化 [在线预览](https://igaowei.github.io/BigDataView/web/099%20%E8%8B%B1%E9%9B%84%E8%81%94%E7%9B%9FLPL%E6%AF%94%E8%B5%9B%E6%95%B0%E6%8D%AE%E5%8F%AF%E8%A7%86%E5%8C%96) + diff --git "a/web/098 \351\224\200\345\224\256\345\244\247\346\225\260\346\215\256\345\210\206\346\236\220/\346\233\264\345\244\232\345\206\205\345\256\271\345\205\263\346\263\250\345\205\254\344\274\227\345\217\267.gif" "b/web/098 \351\224\200\345\224\256\345\244\247\346\225\260\346\215\256\345\210\206\346\236\220/\346\233\264\345\244\232\345\206\205\345\256\271\345\205\263\346\263\250\345\205\254\344\274\227\345\217\267.gif" new file mode 100644 index 0000000000000000000000000000000000000000..f2951f1dcba12480322f44259f24b7d21e1a8b50 GIT binary patch literal 376829 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 z z$#x|#V?LvebbY|??n0~jy^Oa>OpgfcA|&a)Sr);~$i$YXA$w@LZSBH4t{@P^dAq`( zI0^B6fkPe)q5TNKL+>H7>Lfd+@rU?Ky#p}$^1MgyT~G#G5cNs|d)YI3uS&3GS4cj9 zyHHU35E%PZk9$N{dO21YTwfv*m(bL+cdC<2;m zRjokwdR5=#F+R)p=VE80)9^ZHsBRwiJAz-kdf)_mNQ8Q*g|_t@)DQURL9ufyy4Iob z@`Kb7gRq)Lh+seRBs6&w9_=dlAPflK@OjV@n&Cl%0vgB~c@u6mSk*Sf|9zlBet72) z@(lN;KlPY?IJUnQToJG`)Ce3&K1TBbXOS$Si(}P2)Wy^g5B3U<^p6Y_7!EXyKr2Z` zI>4x1ByDMW!%gx78^Ez0*e(({I@>llZ8duIFlfS_#ZQxaAc$}-2zT*zbjf3E20V;^ zJdWeRnE5cazB0ONHL=h(^mT*^b+s2=e@yma;t~b|Gbe&<$8S708g@m zCy7(~h>>S79QvgcsA}?nz>Jx;h$)(f?#E-8!fe`#VhEnra2bf8pE*qG*YiB!-T@%# z;*6O4s(_5!)=h9chlGxgDHuWDjeJS_xkPa61DqiOYn^Qd!mxbvXzQG5)w>E|86gL_M7Sxad|8_U2#`$I(o(-Op19Ve`=S%GZ6Z21hhAgsGGCp!0PWf>ZY zc6Yo~of)Ei<%@Y2lCw-Vep1`E+MIQ?`h#g@V{~#!5>z01fiQ~sLfCi=D>?B}yjpz!Win|E^1_;l*j%35g7`%>FvEG1h1_WcwO4T%9 zd)8u~GQK9mU(5g|V=xjw6_SpvtLig#Ju>2djOKkj;!5I>KBAZOXYVclyAO8_}cN z8mHU3V>?NZX%o^NG2Zn4x_Pm5p3cCMkgwq$#y z?zF(XJ-fACv#33HvN!+xyI^S`<||*=B+!caRsSE9hx$so*ooLjr*r*VlAMNH&pzjO zJ=*M9+wZLrk;^;wHjiUGh8J$0eiGh3I^X;~tb!CmLZc1C?cHNS10$jmVW2KG%_+_` zE88~LzQDi8A;08Ha!^9~caTj@dWL>Oi)Ni-b*p)Ma92)BZ*2y6Ko!z4+?_Hs9xy83 zIjuIUv`{g)lD*XY!=Tb;YO5`8KQ?b~f5+`~<;?d;V`=^>;N))c=KS%revrU+RK({e zCcZJZ?Yml2|}EO%%5Li(OyWG zrxiB%=n+^LOFg^kI|UsxaBj0^XgW|TES2mFstR*Wg}11MQG?!>^Kn^}TeMhz`pS*E z91qs0{o2mF)RJH=(s;KX^vE}_q~Gd1zrFhZV;=WspqAerMpPoruh!o1borqZ>}zsK6$Z_bD3^5`U=SXJuBKoFd7-#|-c=RX?TTfCCJ z3V!2Wsd%p^{Ki%`csnnzfb1k@;JXXu%n2Y@G0XXkBXlDjgsPbLoJ&LIl%k?RC5vY$ zi(wPI`JwOuH;R{_FeOQCW5QWJlAQ58FR}}|fEVd=wy+h&j2IddQ**;RC(%T)I23NW zt%aJPn3uO5v8BRbqBv+(ikOhuyFg7OY7#1!+LftoLZf-NNyBFlWNsS&EiT_Q^Sbw7 zJwv~!)RfTl_w?>N7hwm}obLyrW_rP=gJ$_==LIGCm!hco1u^&*`?*>a>j%X-end1y zNfivx0u0?muW^8#1LI%&-(MuqbF2*T?QgTgBsH78#O$9uZu41V;HafQ_!{Ic_+dkQ95Hd- zY3rZ6;LWQd&l_OqU;E$V&P$zgCD4F_`DrgnW6~A{nkw)VKgAW&>_}LH4bzO1M0-9e zE!k{3ECHFc9oGyq3+zaCkbuuI>;F!975ZP9&pY5*UN1FZKG~fO&_Jd<0Sd*c3(!A# zTtaZi2*m#Pc8@OZ+i|iU3YqfWJXosk_DUdA-qH1S$IIz3WXj9y^X+=OJ*e(}JPcd| z{{f)nUR&X!tRY_dA(bx8w3 z0;g?12tua35w6AB%m4K$Z<$ZeAT~mi(dewLrh(A|Gfd8~4|n)bJQpu6%HlK+G&?dx z6oZ6nZc{)+^Z13;3H&3*t*~IT(x6fBna$rC7I)!~loS-2a-270$~#IO`A%mTAGiLC zjM#lxO54F3DpCuVc~n}?uFfhMGUe4Tjp)fcB$Yy{uJZU}s%;5wC8z4t`qHwRRSC%& zkSWjkq4C=@yKCob5$h68(H7n$QNJAZN{vLDv7Ko8^yz8^gkk3>y6 z70@-6V{5-TO*tKaz6%)*V`1;}KtIltgBBX_Kgy+vl z%y<}Tpi#E!A(UDiudH?eCZHjg3gAhiwYs=E4k(oXLg~t`B@c2pHBOw3+C^$_Jl`94 zz@2>$ZD*UhZUPL*GY8$|NcJ^H8F@y}iGBV9xLR<_1j0`}&0*9n6^ zC%D?f7e4u}ZArHQ@5J*!cJyK-wQC8uiz^(ie|OxB)O`Bg2j;cx7RjysU5Y6Kde(*} z#NLTA#O#j@`i0=i)7#Qf9h@j2`@_(!f99-aiWPrkASX zz|~b{Y1%I)j>ulBCbfFW-!7`un=qfbzJ>ngOiT$92(Hi6X*c7ZGMNN&otsNAnCqiL zO%)2++NiCWe`?2@_6lbDjw%9M(1bt3gL-a`_*LUll%O_&q(_QD=(lVv$DI0hLkV~R z=~yY!V_tm0(dG#h)t%o~)C)IUK@qJjmbf!re-AWqJkyrF(QXa?<7|7vc)E_&zTDqL z^FQAOpIPa=tS(PBH8oG1*?AHM?hf8Hzi7uO#OkCYG!C`ult*|~z7%@~?Y37x{SurY z%m8Hsgk5xw7ca*TyfzhP0+hIZz-J}$&zJ#6dExNdu8xTIC~^GlJousD*T-x( zc6Jh|VLL%WI56Fq>}F&FB&0zMcANPAC$huf`e=G$ ztmrW?N0Q*#{kGR%`qH8Ex7qRMET8mMP&x0hF%|k6=2P%~^VQ>|tNTsCuLp?D>*h<# zpL0UsTb)k)hmD6Ww!r-7%L~>GMb=L^6PiAEF!B56zD5A67#H5bUtyApXFe-FV1j$W zrl@xYWJ|vMNxqHu_GglQI7ybYDSk+JqUkRBAMgFZEU?ZtJpS)X#WaR}5m^23Tf_{9 zb?jXo7>4~nwuq92X;ZWiqq+sK!$O%2TkyIfupRg@ABs>ua$mXzG9(2OAN~-u5EFWb zELtiaZ4>}G3jX|H@;NOCYCuj7k5U0aWG=}>?RTKch)|4UFkV{lX0oYFNRS?$unsJ8 z+>N<$%ct90Q|`2or(Jh#st`L`(ewvTM>o+>cu!Y^fRt2EPpQ!Cl2Bhau~3@Oz%&tm z3(rslv4{~SpO&!GKs8tR@Gx3+TZwRJPUMo1aI3?QkV3A|b@=TZasFfQ(btHRKvdhX zh}?pRijfF4Sf(0Y;o$_>`bV){=l|IMs!bfbXvN;~0$?$sh;M!COrr=nqkgJIjk$@U zJVqhYTF&xDgVds-IQ7KsU2@gFEkA~+fA$fxhX?>eZrEU_)ncBFzla+E=DBo^TVl{~ zV?8KIs-K;!{fJH7zxTTvjwV zCjX!b)20)k2!{Q&o2*~PuTG{9w%1Hax=~InO)1?)hu=>@A4vISoanHkxuT@u;+|@G z<7wTKTA!E_$K&aTpB!$H6dcYIz?Wu{p5|-pXtZS&^Tg9{VIAj}mPp4nf}jmmis+f1 z&etC`@JN{}%~RxJ{ZlK0!!e_@EW^4#Lp>p*DxH13#rzK$q}HKBj)2l?$$hk(*|r-4 z2Z-(Y_bxa+YYZ~ttz=C;WyRfjry*vW8k>ET&h`uRAqvm7!PZ}Y;-h-XwkwDQgkB z5@9p)Nekpv$e z$Z&i=fWP^i_M?qGxTV-thSlAzz%zqQk~H17oTG@RR5Z~eq?{`z;D4JPKuy@v436pMa%yb5*{$;G2%oQH6;uV;;-lV8 z$86wJbMN+Y_Ezn}ZV&EO{z`@da+95sA%2#TF-gYON=Sv69SMk8AGj?Id7>|;n(d(cqal2udM0l%IrGM}_Q4F|wQRK4vKcID>XuNEhKp?z$v zejsVfYyR5ajkQJH5J)_>sBaN%Q+6TW(P=_U$ zw*jWU{>wOvRA$4=tViTn!-;aJ7;@u*S~1mrsp`0;WJ2SUa;dI03nbfd3oUBY&I-=a zZrb5$lsk#AkX6T;X+kuN)McRilvxT~ZIVB!a9eBiXm5VZ_wvyZE+=S#E~p6dYzfP3 zi69hRm4byxlBwW8SNwnhX;$jX*7(S(T*6kfy+X8`*6xV5KUe@& zB(_|J^6D3Mpl9m^bmmu9pg(f$WO<#mb#3RJeS@d)_u-#Q5zQnF+Ptp*gR(8F1RWK~ zzT<=~AGCrMu@ssURQRZ=XgtW9YC6|5DXCs!Yb`rhWxEFAI{9`wE0h8ivASSFGc+Da zkH^u~m6Og0yJ6Y8Z;{c?PrmOGhCD@fe;Dhg(;<0AHf>I+L##|X`Oza<*8{#kNk@C_ zB%JLIBJZUe@A^PgaCC%8B-hD*-Mb{v`+`hP&WKA{iI!^F`!Y(+==Giu)H{aUr*hpZ zW1r3~*Ux3sUwqxil!YYx+Fyb-a3L_jx8DD`gOb{-58)J3T6ds1uAhG$Rhg&~PIXWP zgr;^%Nk@cQ5-_M01+NSmR1_>Mf*&$GMYjM^e0!xSYaSAt88UVlGGL@MWgHNQ8g%g* zX7(JcW%p@F80JD8Ne@7=F6k23X8eIYqVJ#>Fh`|`JjkX#PKY?Hm{VHj`69iajqj!Fla)5cVgRX zyen#AA5@1ynvn-Lw$}l7X;@Y zp8lgdHK#jH+c`u1HbXyAM-H4O$)0tznXvGv#oU3PsF}-188Q%?<&+;+WgJiOqC^xL z_lA~~6{_bDnpMo6_j#QKY|Kk~&uN?uDtwz{I-AcNpTmV-04rcDX1Guah>b>8F8Dc& z+*ptJc8q>Kn++7~#*Cl0_MTGvw&W1KP)oFwg0eK_HHwN#iF_eigmA-m;b6>UX;ZBjy7W;b~=(xthAYA5}|cBr``dBOYA` zT-gWTm=C`YH@i(@+xZ;uePamUJn)LaUUS;dwx#syTL{29y2z!~*_@GQq|HJjseHxB zKqKAsBmOaa^tz6*{Nu3D=NN6~@O%6*8~c1C^9hMXULQ3yvcz?dh|y6y+9~kQQUCdg z5&3DU!s#={{|o(x0~g>2nGE^Up$j0Bp?2^HWHJoX>o%}YkPQi$Iy83QxGVl;#Ep+w z?Yr;T?vpWSz2WJv>7(Np;9(pj?-Uws8SWDm6B-wv80{StlIjA<{3b;tSG5nsJD-!dMEVqr zjLMyrYELc^j?=FOve+XV7Fl^UMR}UZYDgfK&R0z|-;ayK*eG-28zGoTW%}NwMRiS4 z56+>8g=&1{_$`$8#WaSHAG2&SRWNZZ>bW6?t_)0XDA7_{&JWbft3%dNA=LtCG=DL1 zz&TrPD&HClh5%-~?G{(R8!ObSe|7u8Ad~#>p#MgsT+D3SM{+Qg>DoCSj3nZQ zl5Etd?{1MY(IDMdmYjXQX?%%DGDYUETcC_pRc` z%zF%v`Ymw-|4X8@2!H;W-Ayi-&4Jt?6vQ-AE~Eg52-(+$Ua+AENj|Jm7`a^wRv0?{ zoMFUZRN6Kb1IhcyFy^kX(J)GfAmfv8VX~Ak>0Al4lF%@w zN;Qw1RLL2iEf-=0u?9>Twa;&h5^|k1r=To~%Zf7;Jf5i1O6HiCYv)u0KLbAS9meFQ9DyW$k=n5en#w8FOPZz|cP#k`=Gg_4>NmGa@EXfbp zvm}gUUR5kC)Fwd7|8@prEm)Uhb-|f1K{9OWG)g=JcF2v#)J6nI|9@N&|C9N(?=CI3KL5X}1R3oaPmoOh zXO&=9)ey}`oByg3yv)yH$NC>CL6MJRn@OnUem3~3qlte9*575I-zP`{GtgKk8m z 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 Wi9T3RRT%j# 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 { + margin-left: -.4rem; + margin-right: -.4rem; +} + +.mainbox>ul>li { + float: left; + padding: 0 .4rem +} + +.mainbox>ul>li { + width: 24% +} + +.mainbox>ul>li:nth-child(2) { + width: 52% +} + +.boxall { + padding: 15px; + background: rgba(186, 125, 81, .2); + position: relative; + margin-bottom: 15px; + ; + z-index: 10; +} + +.alltitle { + font-size: 18px; + color: #fff; + position: relative; + padding-left: 12px; + margin-bottom: 10px; +} + +.alltitle:before { + width: 5px; + height: 20px; + top: 2px; + position: absolute; + content: ""; + background: #49bcf7; + border-radius: 20px; + left: 0; +} + +.navboxall { + height: calc(100% - 30px); +} + +.num, +.zhibiao { + height: 100%; + width: 50%; +} + +.zb1, +.zb2, +.zb3 { + float: left; + width: 33.3333%; + height: 100%; +} + +#zb1, +#zb2, +#zb3 { + height: calc(100% - 30px); +} + +.zb4, +.zb5, +.zb6 { + float: right; + width: 33.3333%; + height: 100%; +} + +#zb4, +#zb5, +#zb6 { + height: calc(100% - 30px); +} + +.zhibiao span { + padding-top: 0px; + display: block; + text-align: center; + color: #fff; + font-size: 16px; + font-weight: 700 +} + +.num { + padding-right: 20px; +} + +.numbt { + font-size: 24px; + color: #fff; + padding-top: 14px; +} + +.numbt span { + font-size: 18px; + padding-left: 10px; + color: #fff; +} + +.numtxt { + color: #fef000; + font-size: 80px; + font-family: arial; + border-top: 1px solid rgba(255, 255, 255, .1); + border-bottom: 1px solid rgba(255, 255, 255, .1); + padding: 10px 0; + margin: 18px 0; + font-weight: bold; + letter-spacing: 2px; +} + +.table1 th { + border-bottom: 1px solid rgba(255, 255, 255, 1); + font-size: 16px; + color: rgba(255, 255, 255, 1); + font-weight: normal; + padding: 0 0 10px 0; + text-align: center +} + +.table1 td { + font-size: 16px; + color: rgba(255, 255, 255, 1); + padding: 15px 0 0 0; + text-align: center +} + +.table1 span { + width: 24px; + height: 24px; + border-radius: 3px; + display: block; + background: #878787; + color: #fff; + line-height: 24px; + text-align: center; +} + +.table1 tr:nth-child(2) span { + background: #ed405d +} + +.table1 tr:nth-child(3) span { + background: #f78c44 +} + +.table1 tr:nth-child(4) span { + background: #49bcf7 +} + +.iconchart li { + height: 30px; +} + +.iconchart label { + color: #fff; + line-height: 30px; + height: 30px; + display: inline-block; + opacity: .8; +} + +.iconchart label img { + display: inline-block; + vertical-align: middle; + opacity: .4; +} + +.iconchart .bar { + display: inline-block; + background: rgba(255, 255, 255, .1); + border: 1px solid rgba(255, 255, 255, .2); + width: 78%; + height: 20px; + padding: 2px; + position: relative; + top: 5px; +} + +.iconchart .bar span { + background: linear-gradient(to right, #588fab, #5ea99c); + display: block; + width: 60%; + height: 100%; + animation: myfirst2 1s ease; +} + +.iconchart .bar i { + position: absolute; + opacity: .5; + right: -36px; + color: #fff; + line-height: 20px; + top: 0; +} + +/*Plugin CSS*/ +.wrap { + height: 82%; + overflow: hidden; +} + +.wrap li { + line-height: 40px; + height: 40px; +} + +.wrap li p, +.wraptit { + font-size: 0; +} + +.wrap li span { + display: inline-block; + font-size: 16px; + color: rgba(255, 255, 255, 1); +} + +.wraptit span { + display: inline-block; + font-size: 15px; + color: rgba(255, 255, 255, .6); +} + +.wraptit { + border-bottom: 1px solid rgba(255, 255, 255, .2); + padding: 0 0 10px 0; + margin-bottom: 10px; +} + +.wrap li span:nth-child(1), +.wraptit span:nth-child(1) { + width: 30% +} + +.wrap li span:nth-child(2), +.wraptit span:nth-child(2) { + width: 20% +} + +.wrap li span:nth-child(3), +.wraptit span:nth-child(3) { + width: 20% +} + +.wrap li span:nth-child(4), +.wraptit span:nth-child(4) { + width: 30% +} + +.str_wrap { + overflow: hidden; + width: 100%; + position: relative; + -moz-user-select: none; + -khtml-user-select: none; + user-select: none; + white-space: nowrap; +} + + +.str_move { + white-space: nowrap; + position: absolute; + top: 0; + left: 0; + cursor: move; +} + +.str_move_clone { + display: inline-block; + vertical-align: top; + position: absolute; + left: 100%; + top: 0; +} + +.str_vertical .str_move_clone { + left: 0; + top: 100%; +} + +.str_down .str_move_clone { + left: 0; + bottom: 100%; +} + +.str_vertical .str_move, +.str_down .str_move { + white-space: normal; + width: 100%; +} + +.str_static .str_move, +.no_drag .str_move, +.noStop .str_move { + cursor: inherit; +} + +.str_wrap img { + max-width: none !important; +} + +@keyframes myfirst2 { + from { + width: 0 + } + + to {} +} + +.toptop { + float: left; +} + +.JavaS a { + position: absolute; + left: 22px; + top: 3px; + color: white; + font-size: 36px; + font-family: Meddon; +} \ No newline at end of file diff --git "a/web/099 \350\213\261\351\233\204\350\201\224\347\233\237LPL\346\257\224\350\265\233\346\225\260\346\215\256\345\217\257\350\247\206\345\214\226/img/bg.png" "b/web/099 \350\213\261\351\233\204\350\201\224\347\233\237LPL\346\257\224\350\265\233\346\225\260\346\215\256\345\217\257\350\247\206\345\214\226/img/bg.png" new file mode 100644 index 0000000000000000000000000000000000000000..b05bfe2262202fb7740b4a18bcfdbf7f16bfbae4 GIT binary patch literal 320939 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�BLS4!?eQ)G=t;HmSZ$jOA7j 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%0APW0gJg0I^mum8BQSBokDZ*pprp+GVLl^@bxv% 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 t8~tUnRGQ0osq?;EMxjP3Vk>7&XshErhz3 z#!-u^(0No(pqoJ)N&#KvKzsaGX^X??NUkstT18N{jkOg6u0>iEN-O=e0^kXR*pqP; zTgZQv0qZ4js6^4h#9`e{49A9o^x2j2n*>&62^_-yTLaEpl+etC_wh48ukJk3gJ~7O zF%;pn5a0~AH=)Hh(PiDS7nu9RxQQ^)JFI6jaN-;~t;k4O7~L#8t>Umi9BLdJCNP1o zKG)A&5gdPRuGc2e`E{(Gf;x|<*WaYNUwy_Q zsiL5x<48LBqgKI=_eke%To^Q8&BKaS8IrpNjz=mi9R!W|yU@xvsrFw;;ONncG|#$u zfsnbU&2Q3!=lue#NHe{odDyICu;>AXUl=~?j?;$>poJ!s>6C4 ze@z>bWI?~ifHeZ62DP7wz{O>>GhKzifWKu6tc`q>tIiJ+`m*vOE3+7i8G^S3(nmfvw9;;uMfVX#fMVSd z453(RE4Omd+}g;U)FD{;W8DYNu^vyi8SvMCd-;1ncMbBMvSWQmZ+M$kNl#}E{X9>f z6w8rIh_A9>ZxL+9(Tj=5+PA?<2)&;40xvp*V>#47A6SqUBYs8(tme=(eJ*+Irgkvt ztmo2x1mY}Z5T>N)#5ZQ(zhpb|cfef804fm`1&wKxtb(r8&pdxNF_dAbCYib%DCh<7 zG*;EWqqPEE590tx?es%k_23ZzkCg?gHG)?E6{F#wlWky_v@!Tpf2_gWj)&WPRR>WT z6&Cg|h0*sOzp)1%E&sK5F|u;N)@YDHhhVndyaR>;h8=)+2F&r$(noj;>;c|kxVVA6 z)aN>aQsw}cKxn_xnc?nNH(UY}9%uTiB z2Kx+nsU4g3aq)Xy>wJ!=5jB>dyWz|HbA+tN)A1C1zuq9d>)$YVetFD%Ai;XJlAy&2 zTuqs=2+8Q6pAPelmH|h4{4j*FZ9g(Y6oB7FM?t&cS1$x{EaFH~8CWm0A=ywYF$I&{ zirhry-a-MBJq?{T4NlYqTs|#{!B;{!So~bn&t>6@Lg;J;woBj#9R+$8j-=j+p-iB` z+W2qN28=4K3Vp|+Vau`n*9?4X$Q@s2z&L;IOb&Eggf+S{tns7{X;KM~5IKqDSS!!Y z^v9Zs`b^oi^74=Bsu{GSgqCj=Uh_KXmtjg74(pKy@%|1lJQ;#kL5l>7B+mIpVZf3t zehcz!#efSEE4Pt_U)})UZ!(D9CC~+gfdSve7ksCwQI8!+wAFdw3_5`-S}|Z17d!VX z%UX_y&}KA8>Xn812|qp-bqLHHGa;5`z+Mt% z9fUROAv7+47mS`%qvk?`!Tc)_oP_a~PwZKnwd<-ovtm7T9Lx7J) z(4%8?uAp}sofT{|35!>v!S8DDzX$(p4}euJh%ze)>?r6dlOt=N#gQcB zSl+7JdGbd&o8BM%IDp`&n6Iq|rih}YpVeV;(KH46-rE3Ne%|w0L|^vF_(ve{-<5V< zXS$b-NC(?rZyCIL1%%!dIwAv(ZVpF$FNveQ3Euy8(KCxK-*WZPYZH8{Ea+w%Lxl6r zvo;1sWLfs=z)2B0OXpyZpOUmRON7s)e-N(91kQ|iUD_%iQurR=raY@)L#DTSFbf# zlUnsoT8IVQ_-qG!fXo5)<<=z3{~vdqnL$sOi>Z-TtYU8=FwDqRBF7l&f(A~+5(YdN z{Z+uhJNHL#2pebwJt_g#4J^O|#96KA<75dHIlZiKu7xm1mG6GEI|z)bHZ zU5i8zOa!=M!2G_Y7}+`B*URA9qre!4r672Fbo&NKfae9{IW|S~_g2%eN=1pDQ`@h2TlG>@|uj2tEzQ{7AtHB>%75=V&1N}W(=w7cu zYCYo{lB%WevmO16t-p}@T*I%?WW_@bR-<&mb`v%l2WtYnUQjP-529 zw-gSR)o+@00!OO7N5Fp*P~c2%sU?ZZl6v9J%y`Sz7belks;@|UMcG$<6+)Rn|D2l$ z_gyfJq0_+vIJ4g&!>&wE8G>>CTy@!31h^z9S`2AsXJG1vkvn&GSWPJ%ZUyl%QG ziQR~f%%yb&s+5ikE8s;j;ED;$X{0&Jj0X&u{+TlD7Qt0s>MpYO zO|Su;?QmK>&P9VWOPUju56*O&tRk`Wd9_&vr_w|C=nMAt%z66+Q5+BHUc2iV^rOz8 zq!4K8Jt__CdIvl>%hBfk7qEBgy3Vv0A)KiDL}^R#apyp{q#|E10gtv7sa;4o*%S`F z|D8+~u)BdhEZKD{izKIF9G%Cf(E(s*Q(b-OdsT@tf(~9IQf*99n_#l9+4*ysi%auh z@ghx~Byn&9a1mhzUMUZ32EGj^i(n4n7z+574~F4;N#EcRG{!?K50XHz6aps|NlAqa z_)evrQDXSrF8!1Jxai}OUYF&oeYA#kGxNMuhr-YGdq1N8%18F?a|nP}mXlUz0WqqE zrU*%xyTK`&odg1YQI7J}0rZ~+V0XrS9w+&G0UYfS^s4>8HuL%E5?~!OsalVa2uF7i zeWe6Rr*SyZ(5?=8eZ?HSI83-{L5e1ga`s2js^o|@RY}&tGd`Vo-mE`hE?szS-U_8& zZGT1bJSWPbEI^#fbXqgud@LYIW;t4x0emjE4@mG~{#B*FnsipiSTkUpN}ob-6$V{* zC$wh8ti!HPK}CFib1VqSRze*Vse@8tqR}&bbdO~Itg`9~z=FNCN17P0=%7ccUKj{;>zUxt(p?R~ zcEm$yRz%C#nXVr!e`Y{FMOl)&!8J%~|1H3Nb^E)J5us-}mQ_KMm5}w8Eeb5Q$Ph&- zl%gI!AZ<4TU>!uC000d5fNtUh|J{4|t>njIWN;&g`kxFN>D&K*0REdVmxaL3BST?7 zdVZ#%8y5uFd4u1Ko^KWt?jesdv?X0-Q#LF}!3Uh?Z|rUL6)k_w)OoXQM;kNZg7;z> z;Rewg)cV_lthvCR7gbmU#gxR6v;b58LecFnv=1`x?eR>$qHpQI16&usDfo(mWE`f7 zzONi;TKm=|@E~YBhbD%3@;hJ$u?YdzD*;&i9st`2;j?Aew~2AxHBD!~H&%lRCgTjKCd&}EV7Z($2C zDX`d(0MAezT{2#mt7wJ`xV5ed7V z4eXHRAPDfQj=A4Ru{3SzzXjmG3AKI=oYP^y|3%Z$)6biq=E^YKCIR+s4Ev2Oa1wnL zokna1PMyH59^m8M4meRk>%Xo&OTzMCyn3l~aUT~mXzqO#l4Hkg_T`=Kk0Qz}9z~a4 zHomK#Jg>#p5f-UHDk{U2^;Ch88H}LK^m&m1wCh7Uqp(PRMcj87Z4E4us{Y{dzLz7zh*SbJFaO zPdlqnG;KEnV6~2%MGdEb<#ljXN5}dmlWW6+q#P`FOe_S4%$)%=U;a}7{@Zl7z50#3 z7(7SMMEU%#7kD=!=);C^#2$uElmTPf#^DFgCf+4q0w0$-SXjf5=U@T!W(0VR_^Xvh zYrxx0rqWS?<(I-Wj*=A4MTC+4x|%R7Feb4*7`Shb&+L8?53p#kdfEZ^xcVyN(#}NrER}z_bLGY4q%Y$t6+J23Y9qhnXY;!36?*L6_%j6Rd;k%P7hzFy40} z=*bU?VG}(2`o)lg(e6ZQL9|(vW?SH71CBwMIRpN}3V8BqUDgXeCUWRVgb{xM(5X>c z8Su%1*$Di?R}Qv(NHW$5!(?@OG_=pD7Z_KC}p}=nA-CKX4HSOiLdY zLDzxQ5(OK)3})HKl?s}6y{A@-2G7g`Hd<`q1Udk)S>*lNPXeqNLKrC2E+&Qz9cZ(4 z@(s-F7OMpWKE4ls4ZKIC)!&EX_AL51tm)`!7rv;BemcwrA)TSP$;8=Pf-h?b^G=4K z#`0;KJVd0kU$0zFRguMJmNhwxU1)r_8MbQ%%~Peo`m zuA`#}OGgyr7a`asKaW>C;P_Qu9eyHj1z>Id9jK3xWYEHc>GKs}$!p95>97N~OW=;T zzk>*%JEy`zHCCNJYe!N6Qy)#5j0n2)I&7*@bQ+E&Pu3L-gmn77)*%`-(SdSgE>g+a>$m-LK^3*usP>0NepbIv^k4hrj%L9EtVlJNCcN zX8i(!>(lA2p0Nn{X*(AV2g5f03i}E7>muMRh{K_%je-_+^kzZ%BB3%^fFXoq4>?#V z_BI=V#apBZN_e_K^mFmAFq*c`V31i=9!z6u<-WjxH4cj?FypnWThT;#Nz5ZTG%#T5 zL3Kmu1ticVCSi3n@?!=(k^$H?1|%_*-VCe~=qPKRk>>_ImWNjZ!gJUG%R^jdaZGjx zJk2dR7QK#n8|jXT6hCKues5`FwK)%tj>qR!^MgPy2vleJ?1nrqLx+UIB3; z!>SA7$birP=OgA*a-bF=t}tLu;<#2pYa-RE~@6 ze-;`;RZBuKW2(x3IZ>9L+iSZR_+-3&zv>crb3#s|$=aGnM2a<9Bl|V}BlEziC0RGY zE_#a&*T0S%09+fLw(a;n0=z@{ghR@|Ie?Bxiwoc|fo_Pdo>}_yek383yK@GoVU+t@ zITpP$%Bsy50%tgT>=|NThEVP%deR0^8UvDF0Iy;HTY6pJ!u)x&6X_^*M&I`V&y6hTP)0a`57)H+%~?LB!{25lZ@R5D zfm)+$FU(z7GgKj_60Awj4P3R-c(JMu>S+(N(k^QY@3e$ruEUuU+k8;1P6(>=%Nt9*cG{6sQD-A_ll2)2GvfQ0QvWTHu}s&osy? z61|ffky!C`9s<}0Y)i$9g6?Vnc*_r&tEfpa)BYlm+T>El<~R(;pPGU_yj&EN6wwU$d5~81m@;-Cmb<{TuqD>rhgy8+1AvlCkDoSp9uF#4S=;K!W z298NKn+a{j1-lU#wAEMAqSP6omkFY=n7H@-l zpRRKr13H?Fi4dB$QH}r?Lf&HWcWIX}bkbvEJV*oYf1?B|(_qbk0Go~P9G$@dbny$( zkrWhJ2D6*?qhtqc?Na{Fn1b61|5ynBnrs$is5feCgR^BVjFA;0r!)o2WpPBG)95V9 zQ4n_B)nt~y(n5HNyhBcZQ4tN&=ijKxEO?^H#WW6&0h2f$Rr*Z2>QV4^Y$jm^5FQ?# zx`6Et*uKb9rbh-`Sl1}@x5y57Q5sC9{NAQ<6sb_@rO~WGeR%?10rqnR3EA$}63G{Abxlrf&g5aMiudQhy$030tuRM?M8A4Y9FLW;+f6#jb zH`@DS{Z!I7_;mdWZU=1pf1hT-8yX3BAO4&+Gu)^HPC#_?Z4BGd7^F0n&qqRk!$4ZR zz@}$YMOld)OJKBLjjZa_Fs=!{LO(+Y!73{_5qc>%S~;8!=g-mu3@6XvTq>BsQGTWoPBBxKT02RtO;ua$6gHtz%%KvMpyx3H`4jr5(B=(UWuTDG!7=c13)lf?}G}F z`b91Ds%czo6Y$dG{FzNil*(b#C?yhlJ+1#$g?Sl=RSyni2o5m<6eumO;8c%w&|Rx; zf46np*7xMs?|!`>8S5eR;eMTxYl1%BYf4<^%4Xt=9Lqm)30HUr$?+Gqzt^n`9(x;K z?PSu;A@sA!fSu9T@?zVKbaVI|*e?`$*i4RS0S*#qVa{#s73u|etYiLx?Ox@V?15d9 zRiQH9p4C_NHY=yrAbi&3EKZpuLQ7jA&4ni2Rk2|l1=A?4`>2k*ULSLnQKhwX3%9%# zUn}k++ijN*8o$S>d>+mf@WATlF<*zy(FJS<&>yhkb?_P-!qEd9!?Qjja$hsx0Kbj_ z$39?3fhW8pW55W}pOIeS7nxo|yM3Os7|MviqiZ^}e?nHZ&_G}ReE_$92Yhe+YfF#^ zB*DUfXDwt96-t^pqWq+?X2 zF*9#|jR|R${@)^stkW;7x$fKm9AWg~Sgcv>zTUk?aU3(*NoudTzzDG-@A*A++;n&B5Xzj#C}oMFn)nfNU(lJcQN;!iA^LY(CIH4*95<=c-&*ql!+BJgj)8 zvvoQW1%IRUTIfD_^Ydpx-Zc%sY6NkFpdz0OqDR&{h7|5^-HwXDO%l5weYe|KQR@AS`DU3o;<^jTP{oxc%K8S&TnfK3v#jh)=h z7WjSmM(+!bJkY{67(Yv}Ed7M#2P>~uG5-SbW!=@vP9*L{vKJn3EoqM+H_<$_8vV{? z#Mnu>Jq^Tz2ZdkDYi5_h;Y~=yfYCiPrw}|F8FUyw&wdH~5%aTPr~H-y`yKG55!hBO zrZvEGB1wC{1NHF@0c2@Gbb=>z{do zFr`U*|AmB4qxHv$88Z@ZUeT`IAlZcuP^ zGeI2aQTn{&H@kB~DRdNI?IsSZfxpF?i--bm#*=ih4Cd`G>Zs}vTIE*JgG8*iXFTTZ z@5&-*N#mfIGoPxfRU(S32Frt~u(cZ+09`APD({`xi6qQ;3dWN8A`pvqz#ndQ9EQ-L zd?BO2QJWReeEztz1D@tYh6N(51b$u9QzFH(+hEiVUv&Zd;AMm8c9A<@0C0xdz9T91 z2ao@9c5TgR^hyxJvMW}q?}3L?rBeR??>uIux%A9v*#v9{8^>`HL#t={a)|&-03}uu zp3b4S$r4zq7$j-(^P{GkCpSjrr*ty#8Q_Dc>(8|vFmHj!68MAwlNI z*n5QmQ@_&hH}NLq10_mNS#MzN9qPJm+?Y~KXYlkZvD^9*(ihCa(K z*er(i9f}Wsbst5riNqIH#6c!>b%0xgAAzhhC`)l^E-LSB_A}Raye%u)6;fY@;$^IF z_hBDt~^$ zJCs7%v3De5ZL3Qb)EqGG0~Q9HZhClZwNuINf5YLkZ(q3CFZWFay`>bYphGuO;I;~& z7godGT(oXqF*s;?NHY5!cboxmvVqT=&&LXENLLv!?toP$^cuchk%epY-SSI*A zY{1g`yiy7lhf+SJ9Pz>gT6Vx)0{t9~gj~Wv1Q@~h=gxgd?Y<}Zyt?MTI{po=5KC%UVOQC2y_zh?2Rz+WivH!&9Zj`Y+ykQL0d&$-F)dGQ2zQScko z5AIyrFb2ybRf9CmO+`=A5?J~d*sVm%V)7vA4u;>IE+{H~tU|_)h(kNzU$2IWr zgrE-Xy(pX!Sc{-d-d-lbv(iHk;nTkB7>*EqOIUrO34rHm zis9q{03ZNKL_t(6w@#y?yRu6nB!rm}OmR?GjY;ZRaMc?;ytY2!%C7fa-S373%J+=< zYH_m$VU4=ARvSB6Y+GTOhEWzAKP%jv))8WwxMs#9iKTu`pp?357cK71zeV4`m`S6x za{k{YC(}Jz0XI=xbr5X?tPpM4*a*x)b&`SwsJrm;_mDRqD9lSJHbsotm^A^95K68E zo>u{L5XU-((AyJ&kUaP*#0dCrf^DtA)tg0UKZ2fwV_}c5*#Y1FRRtZ2px4c+gH0H8 za2Ap9WL-pm34XlEDOBcEA!>6b_&?POBAGr^WF%=W{ke(>$Hpuf`J60{InOfJ>H?U?|p z#PjD|io@MnY+8r!|IJsnziRyK`+i9dUE&^04V_s@4x8>|$Sw2*sE;oE?!pSJM!M%k z?lKB!4!|0y-4@;yi+{LJv5wL5YtUfIqdWv7OCuNKqD;U|l_4?s4)}e=!{}pCObi%D zj?k(e*??UcgY6YG^5vV!=?KQrh|Cy7nIaYRSr+t`gz-+2u*8of`Na->@zh~VNeX9d z_0iOKn*vd}&ZnGXuWBVsxNCKNO+nWYG(=3l7j5s23XwpC6{?`+TtIb59E7z}8B$U* zEGkOs1X;}zE+DYHxHQTGh%pq)vS1YkO;K25we!-;;10s$_{%yhVZb2)=6H^Wrodha z(p8(PeEi{K<_#6jQlClz9Ciil3YbcP{$U@8g~}Ps`_->A-^#H8{#4W}d3?vuhX}9l*I|g}U8PKYYOIvT)5Y}e|{o)MT7v%zA4zz;cMnQWnd_(x}Q!p4} zjW#2|S_2BK=FeCKjF@XYNzieWV4ghjAgLKP)*+2g{icGpMkHTCm|&Q!;+T`GLDG~J z`xq2m{GPm=%naXw@!W&d@4^r*X?93qtR(-T*iC$P!4sh(}nWu<(VO zRrYZtHvr6z2!4Wi42j6+ok!EzwurrWJMSETrP|GR$b~*#2ItT+Vr9@7QjbD%l=lY{ zU~QBVn1jyXihJK0lisSWGQVH>mt~jZjgw)~ZN1&K(N)!jG;2_v=n zEW8)T&L$Tcr_#m7L7P@WNa}Xk8;H7~w=xX6Y9G-ROR&k_C^lfcOv;an935GF#Zw?t zx}b*6S`3k!doT!$cKD^uPLl`GB2~aLcqaYTvSXaiC_n1j=VRo2jG);XOlvCBgw!|# ztE;x8mErS|Xbt?7H878#S?9trNCztxSR2Qa0%Quz;PO-x&dL(+(q~z%*7Jmg~FgsV<=dG zcX%XI5`X|O$Ka{S*g=7JKCDNycXD9{tewEJ2%eNd6tfvFDz>PYC=Ou0Q&IHJ60Ckz z*nkKO47gSf(!#97YOFKIAA7*>=jA})d2Yt!o@zkUtZ{>4CFNaGpAm*VzfWQ}oa_n; ze*>JAne#~D4z|EBJFfBcxfY*LS!W##IV0DtU*^wa`Rl>9oKz2T$~kuaHl=Rv{-OtC z=t$UbzTmbC{~Z`RbdSeWc`Sby6)?SkSb8LJjKOsy5!QI%lJ|(I@UrL(=<(EmlB-u^ zY4fxH?s)(-)8OM5U+p@cTCK@6K_HfaV5F+aFLrITRdN!n6xR+0O6qGq;4O@X_Fam& zv`kU^uc4R;)XNvI9^Z`+D}6BmCnbeeL+G?k$T_A|u0VpW1D zkD>2+SNeYw85R*>#khG1yk3!EK^O<;U_B9jCy~%iXF?A*a9d~z%r%7!!lRF@y+{#F zWx>V@+)v^ZHY))9z~_QR@2HOFjmMDV-|X4 z)X#5EfZylnYceLqTvVen1~B~!z}Cs`w*;!H%>1|5?Qbm#nIW|@$HV3m`Ll`-&mhB! z%YR3$W)}=LV!+MTF7R|%3`V41R&gC;GSttuan6r&;hQAtTl9OAR z*)uGGZ55%>V4Wmkr6>t&z;CnzwjBay`KztJn4D$H82+jOFu^OK{+S0!BXEk?bOQWc zCk$Brf9>F!Q?q>RMwrMkongx?`$N!1rURi_HzlrCt`9cM-Hv-?EDhQhA z&%l5q9rU2UO>Kge1z1b3s1=1N@G?5OE&qjwb7MI)QD8PdG_{~&g(e80TUhp@r_lX* zOwF4Gfi(o5=TIUE&JKZ<3@gJFT0J*E0DVD;1!YQg5a2=U{^tUmstIjkFz)l`$H9Pe z7h_ei2US@6MwZ^_@-_}$ue_?h9Vrw;pQCS?+*P7FLOrPlimR5v0L?*@!m<8^Nky{<9+iw9h%r{N;Q{EY3R`YZDeH_H&Z2?J)$^CB*QrUcT943!sVxEwnvU4nFy zRVv5D)F2JP6{p8G-G3zXmjusuI;cl^SSoVEWKIeT_Tbxp>yuPi0RuK8*%aH4ECaSt z8xCG?E(j~ihz1M~S@Bl}ydmi|%HhcWzI-vXzw>hOvONu-S!{ z@$R>oDKz8n4yNG!TPQRp=c_bIM&Wrj|1p4O=zT=9%pz3R#WMM3fNZPs4)!~)9f7M_ z{Jsaev#2YwDba*Bx1z_-ja623qnTi<1-HO$Xd=WjFvd!a2gtPaU3!c& z4U+hAb+jNgX3lyEJbc5uIYkqv9q)M99qjc-wJO-e=es~KU0T%4@T5LM+yTq9boGf5 zriLM@F2axj2SJp{rC!a^*Hhs1%?BKKkW!QYt(U-Sltq~~Gkp$Xu(rQtz>)S?jikR> zkP>lW@Fl09vl%trrX=|HO`1_)D|lXA<1rxeJPEoN5^^8I&qs`<$Imo`?w=7=IIdJj zc!Irm2f^d=R2g);FrW!yA%Kq{=4g0G>)LHB^c;$jwaAhdb8(v1l{p>SM>Kh-QTE& zFoo%tpVjQ<(T~3RB?y+e_6KnP{CWR5-u}M+`MiI?@E=`QSPj*^klSo&@;kHxe^*~c zYvAG{DYgG7{CD#r<_N2^%6<;⪙1+8S*2;Y?bnT0*yaa1;o$l=6|yI&Eh`-v+p3h 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 S4ims_pga1edX+aFpZ^cs0d1uK literal 0 HcmV?d00001 diff --git "a/web/099 \350\213\261\351\233\204\350\201\224\347\233\237LPL\346\257\224\350\265\233\346\225\260\346\215\256\345\217\257\350\247\206\345\214\226/img/loading.gif" "b/web/099 \350\213\261\351\233\204\350\201\224\347\233\237LPL\346\257\224\350\265\233\346\225\260\346\215\256\345\217\257\350\247\206\345\214\226/img/loading.gif" new file mode 100644 index 0000000000000000000000000000000000000000..db3a483e4b74971fbfb1cc0fb6499852cedfe650 GIT binary patch literal 701 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 z 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 z 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 Wi9T3RRT%j# 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�a7D3$=dJwc2Ed=u=e+WB`83;tFM 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 %E-+UMxvrAQ@VXnh!p;k%1Le?TEY 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 + + + + + + 英雄联盟LPL比赛数据可视化 BY:Java_S + + + + + + + + + + +

+
+
页面加载中...
+
+
+
+ +
+
    +
  • +
    +
    个人数据堆叠图
    + +
    +
    +
    英雄数据轮播
    + +
    +
    +
    2020LPL夏季赛总冠军
    + + +
    +
  • +
  • + +
    + +
    + +
    +
    战队胜负数据
    + +
    + +
    +
    个人击杀数据
    + +
    +
  • +
  • +
    +
    战队排行榜
    + +
    + +
    +
    个人排行榜
    + + +
    + +
    +
    MVP种子选手
    + +
    + + +
  • +
+ +
+
+ + + + + + + + + \ No newline at end of file diff --git "a/web/099 \350\213\261\351\233\204\350\201\224\347\233\237LPL\346\257\224\350\265\233\346\225\260\346\215\256\345\217\257\350\247\206\345\214\226/js/echarts.min.js" "b/web/099 \350\213\261\351\233\204\350\201\224\347\233\237LPL\346\257\224\350\265\233\346\225\260\346\215\256\345\217\257\350\247\206\345\214\226/js/echarts.min.js" new file mode 100644 index 00000000..e86cb91f --- /dev/null +++ "b/web/099 \350\213\261\351\233\204\350\201\224\347\233\237LPL\346\257\224\350\265\233\346\225\260\346\215\256\345\217\257\350\247\206\345\214\226/js/echarts.min.js" @@ -0,0 +1,35307 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + + +! function(t, e) { + "object" == typeof exports && "undefined" != typeof module ? e(exports) : "function" == typeof define && define.amd ? define(["exports"], e) : e(t.echarts = {}) +}(this, function(t) { + "use strict"; + + function e(t, e) { + "createCanvas" === t && (q_ = null), j_[t] = e + } + + function i(t) { + if (null == t || "object" != typeof t) return t; + var e = t, + n = G_.call(t); + if ("[object Array]" === n) { + if (!O(t)) { + e = []; + for (var o = 0, a = t.length; o < a; o++) e[o] = i(t[o]) + } + } else if (V_[n]) { + if (!O(t)) { + var r = t.constructor; + if (t.constructor.from) e = r.from(t); + else { + e = new r(t.length); + for (var o = 0, a = t.length; o < a; o++) e[o] = i(t[o]) + } + } + } else if (!B_[n] && !O(t) && !M(t)) { + e = {}; + for (var s in t) t.hasOwnProperty(s) && (e[s] = i(t[s])) + } + return e + } + + function n(t, e, o) { + if (!w(e) || !w(t)) return o ? i(e) : t; + for (var a in e) + if (e.hasOwnProperty(a)) { + var r = t[a], + s = e[a]; + !w(s) || !w(r) || y(s) || y(r) || M(s) || M(r) || b(s) || b(r) || O(s) || O(r) ? !o && a in t || (t[a] = i(e[a], !0)) : n(r, s, o) + } return t + } + + function o(t, e) { + for (var i = t[0], o = 1, a = t.length; o < a; o++) i = n(i, t[o], e); + return i + } + + function a(t, e) { + for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i]); + return t + } + + function r(t, e, i) { + for (var n in e) e.hasOwnProperty(n) && (i ? null != e[n] : null == t[n]) && (t[n] = e[n]); + return t + } + + function s() { + return q_ || (q_ = Y_().getContext("2d")), q_ + } + + function l(t, e) { + if (t) { + if (t.indexOf) return t.indexOf(e); + for (var i = 0, n = t.length; i < n; i++) + if (t[i] === e) return i + } + return -1 + } + + function u(t, e) { + function i() {} + var n = t.prototype; + i.prototype = e.prototype, t.prototype = new i; + for (var o in n) t.prototype[o] = n[o]; + t.prototype.constructor = t, t.superClass = e + } + + function h(t, e, i) { + r(t = "prototype" in t ? t.prototype : t, e = "prototype" in e ? e.prototype : e, i) + } + + function c(t) { + if (t) return "string" != typeof t && "number" == typeof t.length + } + + function d(t, e, i) { + if (t && e) + if (t.forEach && t.forEach === W_) t.forEach(e, i); + else if (t.length === +t.length) + for (var n = 0, o = t.length; n < o; n++) e.call(i, t[n], n, t); + else + for (var a in t) t.hasOwnProperty(a) && e.call(i, t[a], a, t) + } + + function f(t, e, i) { + if (t && e) { + if (t.map && t.map === U_) return t.map(e, i); + for (var n = [], o = 0, a = t.length; o < a; o++) n.push(e.call(i, t[o], o, t)); + return n + } + } + + function p(t, e, i, n) { + if (t && e) { + if (t.reduce && t.reduce === X_) return t.reduce(e, i, n); + for (var o = 0, a = t.length; o < a; o++) i = e.call(n, i, t[o], o, t); + return i + } + } + + function g(t, e, i) { + if (t && e) { + if (t.filter && t.filter === H_) return t.filter(e, i); + for (var n = [], o = 0, a = t.length; o < a; o++) e.call(i, t[o], o, t) && n.push(t[o]); + return n + } + } + + function m(t, e) { + var i = Z_.call(arguments, 2); + return function() { + return t.apply(e, i.concat(Z_.call(arguments))) + } + } + + function v(t) { + var e = Z_.call(arguments, 1); + return function() { + return t.apply(this, e.concat(Z_.call(arguments))) + } + } + + function y(t) { + return "[object Array]" === G_.call(t) + } + + function x(t) { + return "function" == typeof t + } + + function _(t) { + return "[object String]" === G_.call(t) + } + + function w(t) { + var e = typeof t; + return "function" === e || !!t && "object" == e + } + + function b(t) { + return !!B_[G_.call(t)] + } + + function S(t) { + return !!V_[G_.call(t)] + } + + function M(t) { + return "object" == typeof t && "number" == typeof t.nodeType && "object" == typeof t.ownerDocument + } + + function I(t) { + return t !== t + } + + function T(t) { + for (var e = 0, i = arguments.length; e < i; e++) + if (null != arguments[e]) return arguments[e] + } + + function A(t, e) { + return null != t ? t : e + } + + function D(t, e, i) { + return null != t ? t : null != e ? e : i + } + + function C() { + return Function.call.apply(Z_, arguments) + } + + function L(t) { + if ("number" == typeof t) return [t, t, t, t]; + var e = t.length; + return 2 === e ? [t[0], t[1], t[0], t[1]] : 3 === e ? [t[0], t[1], t[2], t[1]] : t + } + + function k(t, e) { + if (!t) throw new Error(e) + } + + function P(t) { + return null == t ? null : "function" == typeof t.trim ? t.trim() : t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "") + } + + function N(t) { + t[K_] = !0 + } + + function O(t) { + return t[K_] + } + + function E(t) { + function e(t, e) { + i ? n.set(t, e) : n.set(e, t) + } + var i = y(t); + this.data = {}; + var n = this; + t instanceof E ? t.each(e) : t && d(t, e) + } + + function R(t) { + return new E(t) + } + + function z(t, e) { + for (var i = new t.constructor(t.length + e.length), n = 0; n < t.length; n++) i[n] = t[n]; + var o = t.length; + for (n = 0; n < e.length; n++) i[n + o] = e[n]; + return i + } + + function B() {} + + function V(t, e) { + var i = new J_(2); + return null == t && (t = 0), null == e && (e = 0), i[0] = t, i[1] = e, i + } + + function G(t, e) { + return t[0] = e[0], t[1] = e[1], t + } + + function F(t) { + var e = new J_(2); + return e[0] = t[0], e[1] = t[1], e + } + + function W(t, e, i) { + return t[0] = e, t[1] = i, t + } + + function H(t, e, i) { + return t[0] = e[0] + i[0], t[1] = e[1] + i[1], t + } + + function Z(t, e, i, n) { + return t[0] = e[0] + i[0] * n, t[1] = e[1] + i[1] * n, t + } + + function U(t, e, i) { + return t[0] = e[0] - i[0], t[1] = e[1] - i[1], t + } + + function X(t) { + return Math.sqrt(j(t)) + } + + function j(t) { + return t[0] * t[0] + t[1] * t[1] + } + + function Y(t, e, i) { + return t[0] = e[0] * i, t[1] = e[1] * i, t + } + + function q(t, e) { + var i = X(e); + return 0 === i ? (t[0] = 0, t[1] = 0) : (t[0] = e[0] / i, t[1] = e[1] / i), t + } + + function K(t, e) { + return Math.sqrt((t[0] - e[0]) * (t[0] - e[0]) + (t[1] - e[1]) * (t[1] - e[1])) + } + + function $(t, e) { + return (t[0] - e[0]) * (t[0] - e[0]) + (t[1] - e[1]) * (t[1] - e[1]) + } + + function J(t, e, i, n) { + return t[0] = e[0] + n * (i[0] - e[0]), t[1] = e[1] + n * (i[1] - e[1]), t + } + + function Q(t, e, i) { + var n = e[0], + o = e[1]; + return t[0] = i[0] * n + i[2] * o + i[4], t[1] = i[1] * n + i[3] * o + i[5], t + } + + function tt(t, e, i) { + return t[0] = Math.min(e[0], i[0]), t[1] = Math.min(e[1], i[1]), t + } + + function et(t, e, i) { + return t[0] = Math.max(e[0], i[0]), t[1] = Math.max(e[1], i[1]), t + } + + function it() { + this.on("mousedown", this._dragStart, this), this.on("mousemove", this._drag, this), this.on("mouseup", this._dragEnd, this), this.on("globalout", this._dragEnd, this) + } + + function nt(t, e) { + return { + target: t, + topTarget: e && e.topTarget + } + } + + function ot(t, e) { + var i = t._$eventProcessor; + return null != e && i && i.normalizeQuery && (e = i.normalizeQuery(e)), e + } + + function at(t) { + return t.getBoundingClientRect ? t.getBoundingClientRect() : { + left: 0, + top: 0 + } + } + + function rt(t, e, i, n) { + return i = i || {}, n || !z_.canvasSupported ? st(t, e, i) : z_.browser.firefox && null != e.layerX && e.layerX !== e.offsetX ? (i.zrX = e.layerX, i.zrY = e.layerY) : null != e.offsetX ? (i.zrX = e.offsetX, i.zrY = e.offsetY) : st(t, e, i), i + } + + function st(t, e, i) { + var n = at(t); + i.zrX = e.clientX - n.left, i.zrY = e.clientY - n.top + } + + function lt(t, e, i) { + if (null != (e = e || window.event).zrX) return e; + var n = e.type; + if (n && n.indexOf("touch") >= 0) { + var o = "touchend" != n ? e.targetTouches[0] : e.changedTouches[0]; + o && rt(t, o, e, i) + } else rt(t, e, e, i), e.zrDelta = e.wheelDelta ? e.wheelDelta / 120 : -(e.detail || 0) / 3; + var a = e.button; + return null == e.which && void 0 !== a && sw.test(e.type) && (e.which = 1 & a ? 1 : 2 & a ? 3 : 4 & a ? 2 : 0), e + } + + function ut(t, e, i) { + rw ? t.addEventListener(e, i) : t.attachEvent("on" + e, i) + } + + function ht(t, e, i) { + rw ? t.removeEventListener(e, i) : t.detachEvent("on" + e, i) + } + + function ct(t) { + return t.which > 1 + } + + function dt(t, e, i) { + return { + type: t, + event: i, + target: e.target, + topTarget: e.topTarget, + cancelBubble: !1, + offsetX: i.zrX, + offsetY: i.zrY, + gestureEvent: i.gestureEvent, + pinchX: i.pinchX, + pinchY: i.pinchY, + pinchScale: i.pinchScale, + wheelDelta: i.zrDelta, + zrByTouch: i.zrByTouch, + which: i.which, + stop: ft + } + } + + function ft(t) { + lw(this.event) + } + + function pt() {} + + function gt(t, e, i) { + if (t[t.rectHover ? "rectContain" : "contain"](e, i)) { + for (var n, o = t; o;) { + if (o.clipPath && !o.clipPath.contain(e, i)) return !1; + o.silent && (n = !0), o = o.parent + } + return !n || uw + } + return !1 + } + + function mt() { + var t = new dw(6); + return vt(t), t + } + + function vt(t) { + return t[0] = 1, t[1] = 0, t[2] = 0, t[3] = 1, t[4] = 0, t[5] = 0, t + } + + function yt(t, e) { + return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t[4] = e[4], t[5] = e[5], t + } + + function xt(t, e, i) { + var n = e[0] * i[0] + e[2] * i[1], + o = e[1] * i[0] + e[3] * i[1], + a = e[0] * i[2] + e[2] * i[3], + r = e[1] * i[2] + e[3] * i[3], + s = e[0] * i[4] + e[2] * i[5] + e[4], + l = e[1] * i[4] + e[3] * i[5] + e[5]; + return t[0] = n, t[1] = o, t[2] = a, t[3] = r, t[4] = s, t[5] = l, t + } + + function _t(t, e, i) { + return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t[4] = e[4] + i[0], t[5] = e[5] + i[1], t + } + + function wt(t, e, i) { + var n = e[0], + o = e[2], + a = e[4], + r = e[1], + s = e[3], + l = e[5], + u = Math.sin(i), + h = Math.cos(i); + return t[0] = n * h + r * u, t[1] = -n * u + r * h, t[2] = o * h + s * u, t[3] = -o * u + h * s, t[4] = h * a + u * l, t[5] = h * l - u * a, t + } + + function bt(t, e, i) { + var n = i[0], + o = i[1]; + return t[0] = e[0] * n, t[1] = e[1] * o, t[2] = e[2] * n, t[3] = e[3] * o, t[4] = e[4] * n, t[5] = e[5] * o, t + } + + function St(t, e) { + var i = e[0], + n = e[2], + o = e[4], + a = e[1], + r = e[3], + s = e[5], + l = i * r - a * n; + return l ? (l = 1 / l, t[0] = r * l, t[1] = -a * l, t[2] = -n * l, t[3] = i * l, t[4] = (n * s - r * o) * l, t[5] = (a * o - i * s) * l, t) : null + } + + function Mt(t) { + var e = mt(); + return yt(e, t), e + } + + function It(t) { + return t > gw || t < -gw + } + + function Tt(t) { + this._target = t.target, this._life = t.life || 1e3, this._delay = t.delay || 0, this._initialized = !1, this.loop = null != t.loop && t.loop, this.gap = t.gap || 0, this.easing = t.easing || "Linear", this.onframe = t.onframe, this.ondestroy = t.ondestroy, this.onrestart = t.onrestart, this._pausedTime = 0, this._paused = !1 + } + + function At(t) { + return (t = Math.round(t)) < 0 ? 0 : t > 255 ? 255 : t + } + + function Dt(t) { + return (t = Math.round(t)) < 0 ? 0 : t > 360 ? 360 : t + } + + function Ct(t) { + return t < 0 ? 0 : t > 1 ? 1 : t + } + + function Lt(t) { + return At(t.length && "%" === t.charAt(t.length - 1) ? parseFloat(t) / 100 * 255 : parseInt(t, 10)) + } + + function kt(t) { + return Ct(t.length && "%" === t.charAt(t.length - 1) ? parseFloat(t) / 100 : parseFloat(t)) + } + + function Pt(t, e, i) { + return i < 0 ? i += 1 : i > 1 && (i -= 1), 6 * i < 1 ? t + (e - t) * i * 6 : 2 * i < 1 ? e : 3 * i < 2 ? t + (e - t) * (2 / 3 - i) * 6 : t + } + + function Nt(t, e, i) { + return t + (e - t) * i + } + + function Ot(t, e, i, n, o) { + return t[0] = e, t[1] = i, t[2] = n, t[3] = o, t + } + + function Et(t, e) { + return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t + } + + function Rt(t, e) { + Cw && Et(Cw, e), Cw = Dw.put(t, Cw || e.slice()) + } + + function zt(t, e) { + if (t) { + e = e || []; + var i = Dw.get(t); + if (i) return Et(e, i); + var n = (t += "").replace(/ /g, "").toLowerCase(); + if (n in Aw) return Et(e, Aw[n]), Rt(t, e), e; + if ("#" !== n.charAt(0)) { + var o = n.indexOf("("), + a = n.indexOf(")"); + if (-1 !== o && a + 1 === n.length) { + var r = n.substr(0, o), + s = n.substr(o + 1, a - (o + 1)).split(","), + l = 1; + switch (r) { + case "rgba": + if (4 !== s.length) return void Ot(e, 0, 0, 0, 1); + l = kt(s.pop()); + case "rgb": + return 3 !== s.length ? void Ot(e, 0, 0, 0, 1) : (Ot(e, Lt(s[0]), Lt(s[1]), Lt(s[2]), l), Rt(t, e), e); + case "hsla": + return 4 !== s.length ? void Ot(e, 0, 0, 0, 1) : (s[3] = kt(s[3]), Bt(s, e), Rt(t, e), e); + case "hsl": + return 3 !== s.length ? void Ot(e, 0, 0, 0, 1) : (Bt(s, e), Rt(t, e), e); + default: + return + } + } + Ot(e, 0, 0, 0, 1) + } else { + if (4 === n.length) return (u = parseInt(n.substr(1), 16)) >= 0 && u <= 4095 ? (Ot(e, (3840 & u) >> 4 | (3840 & u) >> 8, 240 & u | (240 & u) >> 4, 15 & u | (15 & u) << 4, 1), Rt(t, e), e) : void Ot(e, 0, 0, 0, 1); + if (7 === n.length) { + var u = parseInt(n.substr(1), 16); + return u >= 0 && u <= 16777215 ? (Ot(e, (16711680 & u) >> 16, (65280 & u) >> 8, 255 & u, 1), Rt(t, e), e) : void Ot(e, 0, 0, 0, 1) + } + } + } + } + + function Bt(t, e) { + var i = (parseFloat(t[0]) % 360 + 360) % 360 / 360, + n = kt(t[1]), + o = kt(t[2]), + a = o <= .5 ? o * (n + 1) : o + n - o * n, + r = 2 * o - a; + return e = e || [], Ot(e, At(255 * Pt(r, a, i + 1 / 3)), At(255 * Pt(r, a, i)), At(255 * Pt(r, a, i - 1 / 3)), 1), 4 === t.length && (e[3] = t[3]), e + } + + function Vt(t) { + if (t) { + var e, i, n = t[0] / 255, + o = t[1] / 255, + a = t[2] / 255, + r = Math.min(n, o, a), + s = Math.max(n, o, a), + l = s - r, + u = (s + r) / 2; + if (0 === l) e = 0, i = 0; + else { + i = u < .5 ? l / (s + r) : l / (2 - s - r); + var h = ((s - n) / 6 + l / 2) / l, + c = ((s - o) / 6 + l / 2) / l, + d = ((s - a) / 6 + l / 2) / l; + n === s ? e = d - c : o === s ? e = 1 / 3 + h - d : a === s && (e = 2 / 3 + c - h), e < 0 && (e += 1), e > 1 && (e -= 1) + } + var f = [360 * e, i, u]; + return null != t[3] && f.push(t[3]), f + } + } + + function Gt(t, e) { + var i = zt(t); + if (i) { + for (var n = 0; n < 3; n++) i[n] = e < 0 ? i[n] * (1 - e) | 0 : (255 - i[n]) * e + i[n] | 0, i[n] > 255 ? i[n] = 255 : t[n] < 0 && (i[n] = 0); + return Xt(i, 4 === i.length ? "rgba" : "rgb") + } + } + + function Ft(t) { + var e = zt(t); + if (e) return ((1 << 24) + (e[0] << 16) + (e[1] << 8) + +e[2]).toString(16).slice(1) + } + + function Wt(t, e, i) { + if (e && e.length && t >= 0 && t <= 1) { + i = i || []; + var n = t * (e.length - 1), + o = Math.floor(n), + a = Math.ceil(n), + r = e[o], + s = e[a], + l = n - o; + return i[0] = At(Nt(r[0], s[0], l)), i[1] = At(Nt(r[1], s[1], l)), i[2] = At(Nt(r[2], s[2], l)), i[3] = Ct(Nt(r[3], s[3], l)), i + } + } + + function Ht(t, e, i) { + if (e && e.length && t >= 0 && t <= 1) { + var n = t * (e.length - 1), + o = Math.floor(n), + a = Math.ceil(n), + r = zt(e[o]), + s = zt(e[a]), + l = n - o, + u = Xt([At(Nt(r[0], s[0], l)), At(Nt(r[1], s[1], l)), At(Nt(r[2], s[2], l)), Ct(Nt(r[3], s[3], l))], "rgba"); + return i ? { + color: u, + leftIndex: o, + rightIndex: a, + value: n + } : u + } + } + + function Zt(t, e, i, n) { + if (t = zt(t)) return t = Vt(t), null != e && (t[0] = Dt(e)), null != i && (t[1] = kt(i)), null != n && (t[2] = kt(n)), Xt(Bt(t), "rgba") + } + + function Ut(t, e) { + if ((t = zt(t)) && null != e) return t[3] = Ct(e), Xt(t, "rgba") + } + + function Xt(t, e) { + if (t && t.length) { + var i = t[0] + "," + t[1] + "," + t[2]; + return "rgba" !== e && "hsva" !== e && "hsla" !== e || (i += "," + t[3]), e + "(" + i + ")" + } + } + + function jt(t, e) { + return t[e] + } + + function Yt(t, e, i) { + t[e] = i + } + + function qt(t, e, i) { + return (e - t) * i + t + } + + function Kt(t, e, i) { + return i > .5 ? e : t + } + + function $t(t, e, i, n, o) { + var a = t.length; + if (1 == o) + for (s = 0; s < a; s++) n[s] = qt(t[s], e[s], i); + else + for (var r = a && t[0].length, s = 0; s < a; s++) + for (var l = 0; l < r; l++) n[s][l] = qt(t[s][l], e[s][l], i) + } + + function Jt(t, e, i) { + var n = t.length, + o = e.length; + if (n !== o) + if (n > o) t.length = o; + else + for (r = n; r < o; r++) t.push(1 === i ? e[r] : Nw.call(e[r])); + for (var a = t[0] && t[0].length, r = 0; r < t.length; r++) + if (1 === i) isNaN(t[r]) && (t[r] = e[r]); + else + for (var s = 0; s < a; s++) isNaN(t[r][s]) && (t[r][s] = e[r][s]) + } + + function Qt(t, e, i) { + if (t === e) return !0; + var n = t.length; + if (n !== e.length) return !1; + if (1 === i) { + for (a = 0; a < n; a++) + if (t[a] !== e[a]) return !1 + } else + for (var o = t[0].length, a = 0; a < n; a++) + for (var r = 0; r < o; r++) + if (t[a][r] !== e[a][r]) return !1; + return !0 + } + + function te(t, e, i, n, o, a, r, s, l) { + var u = t.length; + if (1 == l) + for (c = 0; c < u; c++) s[c] = ee(t[c], e[c], i[c], n[c], o, a, r); + else + for (var h = t[0].length, c = 0; c < u; c++) + for (var d = 0; d < h; d++) s[c][d] = ee(t[c][d], e[c][d], i[c][d], n[c][d], o, a, r) + } + + function ee(t, e, i, n, o, a, r) { + var s = .5 * (i - t), + l = .5 * (n - e); + return (2 * (e - i) + s + l) * r + (-3 * (e - i) - 2 * s - l) * a + s * o + e + } + + function ie(t) { + if (c(t)) { + var e = t.length; + if (c(t[0])) { + for (var i = [], n = 0; n < e; n++) i.push(Nw.call(t[n])); + return i + } + return Nw.call(t) + } + return t + } + + function ne(t) { + return t[0] = Math.floor(t[0]), t[1] = Math.floor(t[1]), t[2] = Math.floor(t[2]), "rgba(" + t.join(",") + ")" + } + + function oe(t) { + var e = t[t.length - 1].value; + return c(e && e[0]) ? 2 : 1 + } + + function ae(t, e, i, n, o, a) { + var r = t._getter, + s = t._setter, + l = "spline" === e, + u = n.length; + if (u) { + var h, d = c(n[0].value), + f = !1, + p = !1, + g = d ? oe(n) : 0; + n.sort(function(t, e) { + return t.time - e.time + }), h = n[u - 1].time; + for (var m = [], v = [], y = n[0].value, x = !0, _ = 0; _ < u; _++) { + m.push(n[_].time / h); + var w = n[_].value; + if (d && Qt(w, y, g) || !d && w === y || (x = !1), y = w, "string" == typeof w) { + var b = zt(w); + b ? (w = b, f = !0) : p = !0 + } + v.push(w) + } + if (a || !x) { + for (var S = v[u - 1], _ = 0; _ < u - 1; _++) d ? Jt(v[_], S, g) : !isNaN(v[_]) || isNaN(S) || p || f || (v[_] = S); + d && Jt(r(t._target, o), S, g); + var M, I, T, A, D, C, L = 0, + k = 0; + if (f) var P = [0, 0, 0, 0]; + var N = new Tt({ + target: t._target, + life: h, + loop: t._loop, + delay: t._delay, + onframe: function(t, e) { + var i; + if (e < 0) i = 0; + else if (e < k) { + for (i = M = Math.min(L + 1, u - 1); i >= 0 && !(m[i] <= e); i--); + i = Math.min(i, u - 2) + } else { + for (i = L; i < u && !(m[i] > e); i++); + i = Math.min(i - 1, u - 2) + } + L = i, k = e; + var n = m[i + 1] - m[i]; + if (0 !== n) + if (I = (e - m[i]) / n, l) + if (A = v[i], T = v[0 === i ? i : i - 1], D = v[i > u - 2 ? u - 1 : i + 1], C = v[i > u - 3 ? u - 1 : i + 2], d) te(T, A, D, C, I, I * I, I * I * I, r(t, o), g); + else { + if (f) a = te(T, A, D, C, I, I * I, I * I * I, P, 1), a = ne(P); + else { + if (p) return Kt(A, D, I); + a = ee(T, A, D, C, I, I * I, I * I * I) + } + s(t, o, a) + } + else if (d) $t(v[i], v[i + 1], I, r(t, o), g); + else { + var a; + if (f) $t(v[i], v[i + 1], I, P, 1), a = ne(P); + else { + if (p) return Kt(v[i], v[i + 1], I); + a = qt(v[i], v[i + 1], I) + } + s(t, o, a) + } + }, + ondestroy: i + }); + return e && "spline" !== e && (N.easing = e), N + } + } + } + + function re(t, e, i, n, o, a, r, s) { + _(n) ? (a = o, o = n, n = 0) : x(o) ? (a = o, o = "linear", n = 0) : x(n) ? (a = n, n = 0) : x(i) ? (a = i, i = 500) : i || (i = 500), t.stopAnimation(), se(t, "", t, e, i, n, s); + var l = t.animators.slice(), + u = l.length; + u || a && a(); + for (var h = 0; h < l.length; h++) l[h].done(function() { + --u || a && a() + }).start(o, r) + } + + function se(t, e, i, n, o, a, r) { + var s = {}, + l = 0; + for (var u in n) n.hasOwnProperty(u) && (null != i[u] ? w(n[u]) && !c(n[u]) ? se(t, e ? e + "." + u : u, i[u], n[u], o, a, r) : (r ? (s[u] = i[u], le(t, e, u, n[u])) : s[u] = n[u], l++) : null == n[u] || r || le(t, e, u, n[u])); + l > 0 && t.animate(e, !1).when(null == o ? 500 : o, s).delay(a || 0) + } + + function le(t, e, i, n) { + if (e) { + var o = {}; + o[e] = {}, o[e][i] = n, t.attr(o) + } else t.attr(i, n) + } + + function ue(t, e, i, n) { + i < 0 && (t += i, i = -i), n < 0 && (e += n, n = -n), this.x = t, this.y = e, this.width = i, this.height = n + } + + function he(t) { + for (var e = 0; t >= Uw;) e |= 1 & t, t >>= 1; + return t + e + } + + function ce(t, e, i, n) { + var o = e + 1; + if (o === i) return 1; + if (n(t[o++], t[e]) < 0) { + for (; o < i && n(t[o], t[o - 1]) < 0;) o++; + de(t, e, o) + } else + for (; o < i && n(t[o], t[o - 1]) >= 0;) o++; + return o - e + } + + function de(t, e, i) { + for (i--; e < i;) { + var n = t[e]; + t[e++] = t[i], t[i--] = n + } + } + + function fe(t, e, i, n, o) { + for (n === e && n++; n < i; n++) { + for (var a, r = t[n], s = e, l = n; s < l;) o(r, t[a = s + l >>> 1]) < 0 ? l = a : s = a + 1; + var u = n - s; + switch (u) { + case 3: + t[s + 3] = t[s + 2]; + case 2: + t[s + 2] = t[s + 1]; + case 1: + t[s + 1] = t[s]; + break; + default: + for (; u > 0;) t[s + u] = t[s + u - 1], u-- + } + t[s] = r + } + } + + function pe(t, e, i, n, o, a) { + var r = 0, + s = 0, + l = 1; + if (a(t, e[i + o]) > 0) { + for (s = n - o; l < s && a(t, e[i + o + l]) > 0;) r = l, (l = 1 + (l << 1)) <= 0 && (l = s); + l > s && (l = s), r += o, l += o + } else { + for (s = o + 1; l < s && a(t, e[i + o - l]) <= 0;) r = l, (l = 1 + (l << 1)) <= 0 && (l = s); + l > s && (l = s); + var u = r; + r = o - l, l = o - u + } + for (r++; r < l;) { + var h = r + (l - r >>> 1); + a(t, e[i + h]) > 0 ? r = h + 1 : l = h + } + return l + } + + function ge(t, e, i, n, o, a) { + var r = 0, + s = 0, + l = 1; + if (a(t, e[i + o]) < 0) { + for (s = o + 1; l < s && a(t, e[i + o - l]) < 0;) r = l, (l = 1 + (l << 1)) <= 0 && (l = s); + l > s && (l = s); + var u = r; + r = o - l, l = o - u + } else { + for (s = n - o; l < s && a(t, e[i + o + l]) >= 0;) r = l, (l = 1 + (l << 1)) <= 0 && (l = s); + l > s && (l = s), r += o, l += o + } + for (r++; r < l;) { + var h = r + (l - r >>> 1); + a(t, e[i + h]) < 0 ? l = h : r = h + 1 + } + return l + } + + function me(t, e) { + function i(i) { + var s = a[i], + u = r[i], + h = a[i + 1], + c = r[i + 1]; + r[i] = u + c, i === l - 3 && (a[i + 1] = a[i + 2], r[i + 1] = r[i + 2]), l--; + var d = ge(t[h], t, s, u, 0, e); + s += d, 0 !== (u -= d) && 0 !== (c = pe(t[s + u - 1], t, h, c, c - 1, e)) && (u <= c ? n(s, u, h, c) : o(s, u, h, c)) + } + + function n(i, n, o, a) { + var r = 0; + for (r = 0; r < n; r++) u[r] = t[i + r]; + var l = 0, + h = o, + c = i; + if (t[c++] = t[h++], 0 != --a) + if (1 !== n) { + for (var d, f, p, g = s;;) { + d = 0, f = 0, p = !1; + do { + if (e(t[h], u[l]) < 0) { + if (t[c++] = t[h++], f++, d = 0, 0 == --a) { + p = !0; + break + } + } else if (t[c++] = u[l++], d++, f = 0, 1 == --n) { + p = !0; + break + } + } while ((d | f) < g); + if (p) break; + do { + if (0 !== (d = ge(t[h], u, l, n, 0, e))) { + for (r = 0; r < d; r++) t[c + r] = u[l + r]; + if (c += d, l += d, (n -= d) <= 1) { + p = !0; + break + } + } + if (t[c++] = t[h++], 0 == --a) { + p = !0; + break + } + if (0 !== (f = pe(u[l], t, h, a, 0, e))) { + for (r = 0; r < f; r++) t[c + r] = t[h + r]; + if (c += f, h += f, 0 === (a -= f)) { + p = !0; + break + } + } + if (t[c++] = u[l++], 1 == --n) { + p = !0; + break + } + g-- + } while (d >= Xw || f >= Xw); + if (p) break; + g < 0 && (g = 0), g += 2 + } + if ((s = g) < 1 && (s = 1), 1 === n) { + for (r = 0; r < a; r++) t[c + r] = t[h + r]; + t[c + a] = u[l] + } else { + if (0 === n) throw new Error; + for (r = 0; r < n; r++) t[c + r] = u[l + r] + } + } else { + for (r = 0; r < a; r++) t[c + r] = t[h + r]; + t[c + a] = u[l] + } + else + for (r = 0; r < n; r++) t[c + r] = u[l + r] + } + + function o(i, n, o, a) { + var r = 0; + for (r = 0; r < a; r++) u[r] = t[o + r]; + var l = i + n - 1, + h = a - 1, + c = o + a - 1, + d = 0, + f = 0; + if (t[c--] = t[l--], 0 != --n) + if (1 !== a) { + for (var p = s;;) { + var g = 0, + m = 0, + v = !1; + do { + if (e(u[h], t[l]) < 0) { + if (t[c--] = t[l--], g++, m = 0, 0 == --n) { + v = !0; + break + } + } else if (t[c--] = u[h--], m++, g = 0, 1 == --a) { + v = !0; + break + } + } while ((g | m) < p); + if (v) break; + do { + if (0 != (g = n - ge(u[h], t, i, n, n - 1, e))) { + for (n -= g, f = (c -= g) + 1, d = (l -= g) + 1, r = g - 1; r >= 0; r--) t[f + r] = t[d + r]; + if (0 === n) { + v = !0; + break + } + } + if (t[c--] = u[h--], 1 == --a) { + v = !0; + break + } + if (0 != (m = a - pe(t[l], u, 0, a, a - 1, e))) { + for (a -= m, f = (c -= m) + 1, d = (h -= m) + 1, r = 0; r < m; r++) t[f + r] = u[d + r]; + if (a <= 1) { + v = !0; + break + } + } + if (t[c--] = t[l--], 0 == --n) { + v = !0; + break + } + p-- + } while (g >= Xw || m >= Xw); + if (v) break; + p < 0 && (p = 0), p += 2 + } + if ((s = p) < 1 && (s = 1), 1 === a) { + for (f = (c -= n) + 1, d = (l -= n) + 1, r = n - 1; r >= 0; r--) t[f + r] = t[d + r]; + t[c] = u[h] + } else { + if (0 === a) throw new Error; + for (d = c - (a - 1), r = 0; r < a; r++) t[d + r] = u[r] + } + } else { + for (f = (c -= n) + 1, d = (l -= n) + 1, r = n - 1; r >= 0; r--) t[f + r] = t[d + r]; + t[c] = u[h] + } + else + for (d = c - (a - 1), r = 0; r < a; r++) t[d + r] = u[r] + } + var a, r, s = Xw, + l = 0, + u = []; + a = [], r = [], this.mergeRuns = function() { + for (; l > 1;) { + var t = l - 2; + if (t >= 1 && r[t - 1] <= r[t] + r[t + 1] || t >= 2 && r[t - 2] <= r[t] + r[t - 1]) r[t - 1] < r[t + 1] && t--; + else if (r[t] > r[t + 1]) break; + i(t) + } + }, this.forceMergeRuns = function() { + for (; l > 1;) { + var t = l - 2; + t > 0 && r[t - 1] < r[t + 1] && t--, i(t) + } + }, this.pushRun = function(t, e) { + a[l] = t, r[l] = e, l += 1 + } + } + + function ve(t, e, i, n) { + i || (i = 0), n || (n = t.length); + var o = n - i; + if (!(o < 2)) { + var a = 0; + if (o < Uw) return a = ce(t, i, n, e), void fe(t, i, n, i + a, e); + var r = new me(t, e), + s = he(o); + do { + if ((a = ce(t, i, n, e)) < s) { + var l = o; + l > s && (l = s), fe(t, i, i + l, i + a, e), a = l + } + r.pushRun(i, a), r.mergeRuns(), o -= a, i += a + } while (0 !== o); + r.forceMergeRuns() + } + } + + function ye(t, e) { + return t.zlevel === e.zlevel ? t.z === e.z ? t.z2 - e.z2 : t.z - e.z : t.zlevel - e.zlevel + } + + function xe(t, e, i) { + var n = null == e.x ? 0 : e.x, + o = null == e.x2 ? 1 : e.x2, + a = null == e.y ? 0 : e.y, + r = null == e.y2 ? 0 : e.y2; + return e.global || (n = n * i.width + i.x, o = o * i.width + i.x, a = a * i.height + i.y, r = r * i.height + i.y), n = isNaN(n) ? 0 : n, o = isNaN(o) ? 1 : o, a = isNaN(a) ? 0 : a, r = isNaN(r) ? 0 : r, t.createLinearGradient(n, a, o, r) + } + + function _e(t, e, i) { + var n = i.width, + o = i.height, + a = Math.min(n, o), + r = null == e.x ? .5 : e.x, + s = null == e.y ? .5 : e.y, + l = null == e.r ? .5 : e.r; + return e.global || (r = r * n + i.x, s = s * o + i.y, l *= a), t.createRadialGradient(r, s, 0, r, s, l) + } + + function we() { + return !1 + } + + function be(t, e, i) { + var n = Y_(), + o = e.getWidth(), + a = e.getHeight(), + r = n.style; + return r && (r.position = "absolute", r.left = 0, r.top = 0, r.width = o + "px", r.height = a + "px", n.setAttribute("data-zr-dom-id", t)), n.width = o * i, n.height = a * i, n + } + + function Se(t) { + if ("string" == typeof t) { + var e = ob.get(t); + return e && e.image + } + return t + } + + function Me(t, e, i, n, o) { + if (t) { + if ("string" == typeof t) { + if (e && e.__zrImageSrc === t || !i) return e; + var a = ob.get(t), + r = { + hostEl: i, + cb: n, + cbPayload: o + }; + return a ? !Te(e = a.image) && a.pending.push(r) : (!e && (e = new Image), e.onload = e.onerror = Ie, ob.put(t, e.__cachedImgObj = { + image: e, + pending: [r] + }), e.src = e.__zrImageSrc = t), e + } + return t + } + return e + } + + function Ie() { + var t = this.__cachedImgObj; + this.onload = this.onerror = this.__cachedImgObj = null; + for (var e = 0; e < t.pending.length; e++) { + var i = t.pending[e], + n = i.cb; + n && n(this, i.cbPayload), i.hostEl.dirty() + } + t.pending.length = 0 + } + + function Te(t) { + return t && t.width && t.height + } + + function Ae(t, e) { + var i = t + ":" + (e = e || ub); + if (ab[i]) return ab[i]; + for (var n = (t + "").split("\n"), o = 0, a = 0, r = n.length; a < r; a++) o = Math.max(Ve(n[a], e).width, o); + return rb > sb && (rb = 0, ab = {}), rb++, ab[i] = o, o + } + + function De(t, e, i, n, o, a, r) { + return a ? Le(t, e, i, n, o, a, r) : Ce(t, e, i, n, o, r) + } + + function Ce(t, e, i, n, o, a) { + var r = Ge(t, e, o, a), + s = Ae(t, e); + o && (s += o[1] + o[3]); + var l = r.outerHeight, + u = new ue(ke(0, s, i), Pe(0, l, n), s, l); + return u.lineHeight = r.lineHeight, u + } + + function Le(t, e, i, n, o, a, r) { + var s = Fe(t, { + rich: a, + truncate: r, + font: e, + textAlign: i, + textPadding: o + }), + l = s.outerWidth, + u = s.outerHeight; + return new ue(ke(0, l, i), Pe(0, u, n), l, u) + } + + function ke(t, e, i) { + return "right" === i ? t -= e : "center" === i && (t -= e / 2), t + } + + function Pe(t, e, i) { + return "middle" === i ? t -= e / 2 : "bottom" === i && (t -= e), t + } + + function Ne(t, e, i) { + var n = e.x, + o = e.y, + a = e.height, + r = e.width, + s = a / 2, + l = "left", + u = "top"; + switch (t) { + case "left": + n -= i, o += s, l = "right", u = "middle"; + break; + case "right": + n += i + r, o += s, u = "middle"; + break; + case "top": + n += r / 2, o -= i, l = "center", u = "bottom"; + break; + case "bottom": + n += r / 2, o += a + i, l = "center"; + break; + case "inside": + n += r / 2, o += s, l = "center", u = "middle"; + break; + case "insideLeft": + n += i, o += s, u = "middle"; + break; + case "insideRight": + n += r - i, o += s, l = "right", u = "middle"; + break; + case "insideTop": + n += r / 2, o += i, l = "center"; + break; + case "insideBottom": + n += r / 2, o += a - i, l = "center", u = "bottom"; + break; + case "insideTopLeft": + n += i, o += i; + break; + case "insideTopRight": + n += r - i, o += i, l = "right"; + break; + case "insideBottomLeft": + n += i, o += a - i, u = "bottom"; + break; + case "insideBottomRight": + n += r - i, o += a - i, l = "right", u = "bottom" + } + return { + x: n, + y: o, + textAlign: l, + textVerticalAlign: u + } + } + + function Oe(t, e, i, n, o) { + if (!e) return ""; + var a = (t + "").split("\n"); + o = Ee(e, i, n, o); + for (var r = 0, s = a.length; r < s; r++) a[r] = Re(a[r], o); + return a.join("\n") + } + + function Ee(t, e, i, n) { + (n = a({}, n)).font = e; + var i = A(i, "..."); + n.maxIterations = A(n.maxIterations, 2); + var o = n.minChar = A(n.minChar, 0); + n.cnCharWidth = Ae("国", e); + var r = n.ascCharWidth = Ae("a", e); + n.placeholder = A(n.placeholder, ""); + for (var s = t = Math.max(0, t - 1), l = 0; l < o && s >= r; l++) s -= r; + var u = Ae(i); + return u > s && (i = "", u = 0), s = t - u, n.ellipsis = i, n.ellipsisWidth = u, n.contentWidth = s, n.containerWidth = t, n + } + + function Re(t, e) { + var i = e.containerWidth, + n = e.font, + o = e.contentWidth; + if (!i) return ""; + var a = Ae(t, n); + if (a <= i) return t; + for (var r = 0;; r++) { + if (a <= o || r >= e.maxIterations) { + t += e.ellipsis; + break + } + var s = 0 === r ? ze(t, o, e.ascCharWidth, e.cnCharWidth) : a > 0 ? Math.floor(t.length * o / a) : 0; + a = Ae(t = t.substr(0, s), n) + } + return "" === t && (t = e.placeholder), t + } + + function ze(t, e, i, n) { + for (var o = 0, a = 0, r = t.length; a < r && o < e; a++) { + var s = t.charCodeAt(a); + o += 0 <= s && s <= 127 ? i : n + } + return a + } + + function Be(t) { + return Ae("国", t) + } + + function Ve(t, e) { + return hb.measureText(t, e) + } + + function Ge(t, e, i, n) { + null != t && (t += ""); + var o = Be(e), + a = t ? t.split("\n") : [], + r = a.length * o, + s = r; + if (i && (s += i[0] + i[2]), t && n) { + var l = n.outerHeight, + u = n.outerWidth; + if (null != l && s > l) t = "", a = []; + else if (null != u) + for (var h = Ee(u - (i ? i[1] + i[3] : 0), e, n.ellipsis, { + minChar: n.minChar, + placeholder: n.placeholder + }), c = 0, d = a.length; c < d; c++) a[c] = Re(a[c], h) + } + return { + lines: a, + height: r, + outerHeight: s, + lineHeight: o + } + } + + function Fe(t, e) { + var i = { + lines: [], + width: 0, + height: 0 + }; + if (null != t && (t += ""), !t) return i; + for (var n, o = lb.lastIndex = 0; null != (n = lb.exec(t));) { + var a = n.index; + a > o && We(i, t.substring(o, a)), We(i, n[2], n[1]), o = lb.lastIndex + } + o < t.length && We(i, t.substring(o, t.length)); + var r = i.lines, + s = 0, + l = 0, + u = [], + h = e.textPadding, + c = e.truncate, + d = c && c.outerWidth, + f = c && c.outerHeight; + h && (null != d && (d -= h[1] + h[3]), null != f && (f -= h[0] + h[2])); + for (L = 0; L < r.length; L++) { + for (var p = r[L], g = 0, m = 0, v = 0; v < p.tokens.length; v++) { + var y = (k = p.tokens[v]).styleName && e.rich[k.styleName] || {}, + x = k.textPadding = y.textPadding, + _ = k.font = y.font || e.font, + w = k.textHeight = A(y.textHeight, Be(_)); + if (x && (w += x[0] + x[2]), k.height = w, k.lineHeight = D(y.textLineHeight, e.textLineHeight, w), k.textAlign = y && y.textAlign || e.textAlign, k.textVerticalAlign = y && y.textVerticalAlign || "middle", null != f && s + k.lineHeight > f) return { + lines: [], + width: 0, + height: 0 + }; + k.textWidth = Ae(k.text, _); + var b = y.textWidth, + S = null == b || "auto" === b; + if ("string" == typeof b && "%" === b.charAt(b.length - 1)) k.percentWidth = b, u.push(k), b = 0; + else { + if (S) { + b = k.textWidth; + var M = y.textBackgroundColor, + I = M && M.image; + I && Te(I = Se(I)) && (b = Math.max(b, I.width * w / I.height)) + } + var T = x ? x[1] + x[3] : 0; + b += T; + var C = null != d ? d - m : null; + null != C && C < b && (!S || C < T ? (k.text = "", k.textWidth = b = 0) : (k.text = Oe(k.text, C - T, _, c.ellipsis, { + minChar: c.minChar + }), k.textWidth = Ae(k.text, _), b = k.textWidth + T)) + } + m += k.width = b, y && (g = Math.max(g, k.lineHeight)) + } + p.width = m, p.lineHeight = g, s += g, l = Math.max(l, m) + } + i.outerWidth = i.width = A(e.textWidth, l), i.outerHeight = i.height = A(e.textHeight, s), h && (i.outerWidth += h[1] + h[3], i.outerHeight += h[0] + h[2]); + for (var L = 0; L < u.length; L++) { + var k = u[L], + P = k.percentWidth; + k.width = parseInt(P, 10) / 100 * l + } + return i + } + + function We(t, e, i) { + for (var n = "" === e, o = e.split("\n"), a = t.lines, r = 0; r < o.length; r++) { + var s = o[r], + l = { + styleName: i, + text: s, + isLineHolder: !s && !n + }; + if (r) a.push({ + tokens: [l] + }); + else { + var u = (a[a.length - 1] || (a[0] = { + tokens: [] + })).tokens, + h = u.length; + 1 === h && u[0].isLineHolder ? u[0] = l : (s || !h || n) && u.push(l) + } + } + } + + function He(t) { + var e = (t.fontSize || t.fontFamily) && [t.fontStyle, t.fontWeight, (t.fontSize || 12) + "px", t.fontFamily || "sans-serif"].join(" "); + return e && P(e) || t.textFont || t.font + } + + function Ze(t, e) { + var i, n, o, a, r = e.x, + s = e.y, + l = e.width, + u = e.height, + h = e.r; + l < 0 && (r += l, l = -l), u < 0 && (s += u, u = -u), "number" == typeof h ? i = n = o = a = h : h instanceof Array ? 1 === h.length ? i = n = o = a = h[0] : 2 === h.length ? (i = o = h[0], n = a = h[1]) : 3 === h.length ? (i = h[0], n = a = h[1], o = h[2]) : (i = h[0], n = h[1], o = h[2], a = h[3]) : i = n = o = a = 0; + var c; + i + n > l && (i *= l / (c = i + n), n *= l / c), o + a > l && (o *= l / (c = o + a), a *= l / c), n + o > u && (n *= u / (c = n + o), o *= u / c), i + a > u && (i *= u / (c = i + a), a *= u / c), t.moveTo(r + i, s), t.lineTo(r + l - n, s), 0 !== n && t.arc(r + l - n, s + n, n, -Math.PI / 2, 0), t.lineTo(r + l, s + u - o), 0 !== o && t.arc(r + l - o, s + u - o, o, 0, Math.PI / 2), t.lineTo(r + a, s + u), 0 !== a && t.arc(r + a, s + u - a, a, Math.PI / 2, Math.PI), t.lineTo(r, s + i), 0 !== i && t.arc(r + i, s + i, i, Math.PI, 1.5 * Math.PI) + } + + function Ue(t) { + return Xe(t), d(t.rich, Xe), t + } + + function Xe(t) { + if (t) { + t.font = He(t); + var e = t.textAlign; + "middle" === e && (e = "center"), t.textAlign = null == e || cb[e] ? e : "left"; + var i = t.textVerticalAlign || t.textBaseline; + "center" === i && (i = "middle"), t.textVerticalAlign = null == i || db[i] ? i : "top", t.textPadding && (t.textPadding = L(t.textPadding)) + } + } + + function je(t, e, i, n, o, a) { + n.rich ? qe(t, e, i, n, o) : Ye(t, e, i, n, o, a) + } + + function Ye(t, e, i, n, o, a) { + var r = a && a.style, + s = r && "text" === a.type, + l = n.font || ub; + s && l === (r.font || ub) || (e.font = l); + var u = t.__computedFont; + t.__styleFont !== l && (t.__styleFont = l, u = t.__computedFont = e.font); + var h = n.textPadding, + c = t.__textCotentBlock; + c && !t.__dirtyText || (c = t.__textCotentBlock = Ge(i, u, h, n.truncate)); + var d = c.outerHeight, + f = c.lines, + p = c.lineHeight, + g = ii(d, n, o), + m = g.baseX, + v = g.baseY, + y = g.textAlign || "left", + x = g.textVerticalAlign; + $e(e, n, o, m, v); + var _ = Pe(v, d, x), + w = m, + b = _, + S = Qe(n); + if (S || h) { + var M = Ae(i, u); + h && (M += h[1] + h[3]); + var I = ke(m, M, y); + S && ti(t, e, n, I, _, M, d), h && (w = si(m, y, h), b += h[0]) + } + e.textAlign = y, e.textBaseline = "middle"; + for (R = 0; R < fb.length; R++) { + var T = fb[R], + A = T[0], + D = T[1], + C = n[A]; + s && C === r[A] || (e[D] = qw(e, D, C || T[2])) + } + b += p / 2; + var L = n.textStrokeWidth, + k = s ? r.textStrokeWidth : null, + P = !s || L !== k, + N = !s || P || n.textStroke !== r.textStroke, + O = oi(n.textStroke, L), + E = ai(n.textFill); + if (O && (P && (e.lineWidth = L), N && (e.strokeStyle = O)), E && (s && n.textFill === r.textFill && !r.textBackgroundColor || (e.fillStyle = E)), 1 === f.length) O && e.strokeText(f[0], w, b), E && e.fillText(f[0], w, b); + else + for (var R = 0; R < f.length; R++) O && e.strokeText(f[R], w, b), E && e.fillText(f[R], w, b), b += p + } + + function qe(t, e, i, n, o) { + var a = t.__textCotentBlock; + a && !t.__dirtyText || (a = t.__textCotentBlock = Fe(i, n)), Ke(t, e, a, n, o) + } + + function Ke(t, e, i, n, o) { + var a = i.width, + r = i.outerWidth, + s = i.outerHeight, + l = n.textPadding, + u = ii(s, n, o), + h = u.baseX, + c = u.baseY, + d = u.textAlign, + f = u.textVerticalAlign; + $e(e, n, o, h, c); + var p = ke(h, r, d), + g = Pe(c, s, f), + m = p, + v = g; + l && (m += l[3], v += l[0]); + var y = m + a; + Qe(n) && ti(t, e, n, p, g, r, s); + for (var x = 0; x < i.lines.length; x++) { + for (var _, w = i.lines[x], b = w.tokens, S = b.length, M = w.lineHeight, I = w.width, T = 0, A = m, D = y, C = S - 1; T < S && (!(_ = b[T]).textAlign || "left" === _.textAlign);) Je(t, e, _, n, M, v, A, "left"), I -= _.width, A += _.width, T++; + for (; C >= 0 && "right" === (_ = b[C]).textAlign;) Je(t, e, _, n, M, v, D, "right"), I -= _.width, D -= _.width, C--; + for (A += (a - (A - m) - (y - D) - I) / 2; T <= C;) Je(t, e, _ = b[T], n, M, v, A + _.width / 2, "center"), A += _.width, T++; + v += M + } + } + + function $e(t, e, i, n, o) { + if (i && e.textRotation) { + var a = e.textOrigin; + "center" === a ? (n = i.width / 2 + i.x, o = i.height / 2 + i.y) : a && (n = a[0] + i.x, o = a[1] + i.y), t.translate(n, o), t.rotate(-e.textRotation), t.translate(-n, -o) + } + } + + function Je(t, e, i, n, o, a, r, s) { + var l = n.rich[i.styleName] || {}; + l.text = i.text; + var u = i.textVerticalAlign, + h = a + o / 2; + "top" === u ? h = a + i.height / 2 : "bottom" === u && (h = a + o - i.height / 2), !i.isLineHolder && Qe(l) && ti(t, e, l, "right" === s ? r - i.width : "center" === s ? r - i.width / 2 : r, h - i.height / 2, i.width, i.height); + var c = i.textPadding; + c && (r = si(r, s, c), h -= i.height / 2 - c[2] - i.textHeight / 2), ni(e, "shadowBlur", D(l.textShadowBlur, n.textShadowBlur, 0)), ni(e, "shadowColor", l.textShadowColor || n.textShadowColor || "transparent"), ni(e, "shadowOffsetX", D(l.textShadowOffsetX, n.textShadowOffsetX, 0)), ni(e, "shadowOffsetY", D(l.textShadowOffsetY, n.textShadowOffsetY, 0)), ni(e, "textAlign", s), ni(e, "textBaseline", "middle"), ni(e, "font", i.font || ub); + var d = oi(l.textStroke || n.textStroke, p), + f = ai(l.textFill || n.textFill), + p = A(l.textStrokeWidth, n.textStrokeWidth); + d && (ni(e, "lineWidth", p), ni(e, "strokeStyle", d), e.strokeText(i.text, r, h)), f && (ni(e, "fillStyle", f), e.fillText(i.text, r, h)) + } + + function Qe(t) { + return t.textBackgroundColor || t.textBorderWidth && t.textBorderColor + } + + function ti(t, e, i, n, o, a, r) { + var s = i.textBackgroundColor, + l = i.textBorderWidth, + u = i.textBorderColor, + h = _(s); + if (ni(e, "shadowBlur", i.textBoxShadowBlur || 0), ni(e, "shadowColor", i.textBoxShadowColor || "transparent"), ni(e, "shadowOffsetX", i.textBoxShadowOffsetX || 0), ni(e, "shadowOffsetY", i.textBoxShadowOffsetY || 0), h || l && u) { + e.beginPath(); + var c = i.textBorderRadius; + c ? Ze(e, { + x: n, + y: o, + width: a, + height: r, + r: c + }) : e.rect(n, o, a, r), e.closePath() + } + if (h) + if (ni(e, "fillStyle", s), null != i.fillOpacity) { + f = e.globalAlpha; + e.globalAlpha = i.fillOpacity * i.opacity, e.fill(), e.globalAlpha = f + } else e.fill(); + else if (x(s)) ni(e, "fillStyle", s(i)), e.fill(); + else if (w(s)) { + var d = s.image; + (d = Me(d, null, t, ei, s)) && Te(d) && e.drawImage(d, n, o, a, r) + } + if (l && u) + if (ni(e, "lineWidth", l), ni(e, "strokeStyle", u), null != i.strokeOpacity) { + var f = e.globalAlpha; + e.globalAlpha = i.strokeOpacity * i.opacity, e.stroke(), e.globalAlpha = f + } else e.stroke() + } + + function ei(t, e) { + e.image = t + } + + function ii(t, e, i) { + var n = e.x || 0, + o = e.y || 0, + a = e.textAlign, + r = e.textVerticalAlign; + if (i) { + var s = e.textPosition; + if (s instanceof Array) n = i.x + ri(s[0], i.width), o = i.y + ri(s[1], i.height); + else { + var l = Ne(s, i, e.textDistance); + n = l.x, o = l.y, a = a || l.textAlign, r = r || l.textVerticalAlign + } + var u = e.textOffset; + u && (n += u[0], o += u[1]) + } + return { + baseX: n, + baseY: o, + textAlign: a, + textVerticalAlign: r + } + } + + function ni(t, e, i) { + return t[e] = qw(t, e, i), t[e] + } + + function oi(t, e) { + return null == t || e <= 0 || "transparent" === t || "none" === t ? null : t.image || t.colorStops ? "#000" : t + } + + function ai(t) { + return null == t || "none" === t ? null : t.image || t.colorStops ? "#000" : t + } + + function ri(t, e) { + return "string" == typeof t ? t.lastIndexOf("%") >= 0 ? parseFloat(t) / 100 * e : parseFloat(t) : t + } + + function si(t, e, i) { + return "right" === e ? t - i[1] : "center" === e ? t + i[3] / 2 - i[1] / 2 : t + i[3] + } + + function li(t, e) { + return null != t && (t || e.textBackgroundColor || e.textBorderWidth && e.textBorderColor || e.textPadding) + } + + function ui(t) { + t = t || {}, Gw.call(this, t); + for (var e in t) t.hasOwnProperty(e) && "style" !== e && (this[e] = t[e]); + this.style = new $w(t.style, this), this._rect = null, this.__clipPaths = [] + } + + function hi(t) { + ui.call(this, t) + } + + function ci(t) { + return parseInt(t, 10) + } + + function di(t) { + return !!t && (!!t.__builtin__ || "function" == typeof t.resize && "function" == typeof t.refresh) + } + + function fi(t, e, i) { + return mb.copy(t.getBoundingRect()), t.transform && mb.applyTransform(t.transform), vb.width = e, vb.height = i, !mb.intersect(vb) + } + + function pi(t, e) { + if (t == e) return !1; + if (!t || !e || t.length !== e.length) return !0; + for (var i = 0; i < t.length; i++) + if (t[i] !== e[i]) return !0 + } + + function gi(t, e) { + for (var i = 0; i < t.length; i++) { + var n = t[i]; + n.setTransform(e), e.beginPath(), n.buildPath(e, n.shape), e.clip(), n.restoreTransform(e) + } + } + + function mi(t, e) { + var i = document.createElement("div"); + return i.style.cssText = ["position:relative", "overflow:hidden", "width:" + t + "px", "height:" + e + "px", "padding:0", "margin:0", "border-width:0"].join(";") + ";", i + } + + function vi(t) { + var e = t[1][0] - t[0][0], + i = t[1][1] - t[0][1]; + return Math.sqrt(e * e + i * i) + } + + function yi(t) { + return [(t[0][0] + t[1][0]) / 2, (t[0][1] + t[1][1]) / 2] + } + + function xi(t) { + return "mousewheel" === t && z_.browser.firefox ? "DOMMouseScroll" : t + } + + function _i(t, e, i) { + var n = t._gestureMgr; + "start" === i && n.clear(); + var o = n.recognize(e, t.handler.findHover(e.zrX, e.zrY, null).target, t.dom); + if ("end" === i && n.clear(), o) { + var a = o.type; + e.gestureEvent = a, t.handler.dispatchToElement({ + target: o.target + }, a, o.event) + } + } + + function wi(t) { + t._touching = !0, clearTimeout(t._touchTimer), t._touchTimer = setTimeout(function() { + t._touching = !1 + }, 700) + } + + function bi(t) { + var e = t.pointerType; + return "pen" === e || "touch" === e + } + + function Si(t) { + function e(t, e) { + return function() { + if (!e._touching) return t.apply(e, arguments) + } + } + d(Sb, function(e) { + t._handlers[e] = m(Tb[e], t) + }), d(Ib, function(e) { + t._handlers[e] = m(Tb[e], t) + }), d(bb, function(i) { + t._handlers[i] = e(Tb[i], t) + }) + } + + function Mi(t) { + function e(e, i) { + d(e, function(e) { + ut(t, xi(e), i._handlers[e]) + }, i) + } + aw.call(this), this.dom = t, this._touching = !1, this._touchTimer, this._gestureMgr = new _b, this._handlers = {}, Si(this), z_.pointerEventsSupported ? e(Ib, this) : (z_.touchEventsSupported && e(Sb, this), e(bb, this)) + } + + function Ii(t, e) { + var i = new kb(E_(), t, e); + return Lb[i.id] = i, i + } + + function Ti(t, e) { + Cb[t] = e + } + + function Ai(t) { + delete Lb[t] + } + + function Di(t) { + return t instanceof Array ? t : null == t ? [] : [t] + } + + function Ci(t, e, i) { + if (t) { + t[e] = t[e] || {}, t.emphasis = t.emphasis || {}, t.emphasis[e] = t.emphasis[e] || {}; + for (var n = 0, o = i.length; n < o; n++) { + var a = i[n]; + !t.emphasis[e].hasOwnProperty(a) && t[e].hasOwnProperty(a) && (t.emphasis[e][a] = t[e][a]) + } + } + } + + function Li(t) { + return !Ob(t) || Eb(t) || t instanceof Date ? t : t.value + } + + function ki(t) { + return Ob(t) && !(t instanceof Array) + } + + function Pi(t, e) { + e = (e || []).slice(); + var i = f(t || [], function(t, e) { + return { + exist: t + } + }); + return Nb(e, function(t, n) { + if (Ob(t)) { + for (o = 0; o < i.length; o++) + if (!i[o].option && null != t.id && i[o].exist.id === t.id + "") return i[o].option = t, void(e[n] = null); + for (var o = 0; o < i.length; o++) { + var a = i[o].exist; + if (!(i[o].option || null != a.id && null != t.id || null == t.name || Ei(t) || Ei(a) || a.name !== t.name + "")) return i[o].option = t, void(e[n] = null) + } + } + }), Nb(e, function(t, e) { + if (Ob(t)) { + for (var n = 0; n < i.length; n++) { + var o = i[n].exist; + if (!i[n].option && !Ei(o) && null == t.id) { + i[n].option = t; + break + } + } + n >= i.length && i.push({ + option: t + }) + } + }), i + } + + function Ni(t) { + var e = R(); + Nb(t, function(t, i) { + var n = t.exist; + n && e.set(n.id, t) + }), Nb(t, function(t, i) { + var n = t.option; + k(!n || null == n.id || !e.get(n.id) || e.get(n.id) === t, "id duplicates: " + (n && n.id)), n && null != n.id && e.set(n.id, t), !t.keyInfo && (t.keyInfo = {}) + }), Nb(t, function(t, i) { + var n = t.exist, + o = t.option, + a = t.keyInfo; + if (Ob(o)) { + if (a.name = null != o.name ? o.name + "" : n ? n.name : Rb + i, n) a.id = n.id; + else if (null != o.id) a.id = o.id + ""; + else { + var r = 0; + do { + a.id = "\0" + a.name + "\0" + r++ + } while (e.get(a.id)) + } + e.set(a.id, t) + } + }) + } + + function Oi(t) { + var e = t.name; + return !(!e || !e.indexOf(Rb)) + } + + function Ei(t) { + return Ob(t) && t.id && 0 === (t.id + "").indexOf("\0_ec_\0") + } + + function Ri(t, e) { + function i(t, e, i) { + for (var n = 0, o = t.length; n < o; n++) + for (var a = t[n].seriesId, r = Di(t[n].dataIndex), s = i && i[a], l = 0, u = r.length; l < u; l++) { + var h = r[l]; + s && s[h] ? s[h] = null : (e[a] || (e[a] = {}))[h] = 1 + } + } + + function n(t, e) { + var i = []; + for (var o in t) + if (t.hasOwnProperty(o) && null != t[o]) + if (e) i.push(+o); + else { + var a = n(t[o], !0); + a.length && i.push({ + seriesId: o, + dataIndex: a + }) + } return i + } + var o = {}, + a = {}; + return i(t || [], o), i(e || [], a, o), [n(o), n(a)] + } + + function zi(t, e) { + return null != e.dataIndexInside ? e.dataIndexInside : null != e.dataIndex ? y(e.dataIndex) ? f(e.dataIndex, function(e) { + return t.indexOfRawIndex(e) + }) : t.indexOfRawIndex(e.dataIndex) : null != e.name ? y(e.name) ? f(e.name, function(e) { + return t.indexOfName(e) + }) : t.indexOfName(e.name) : void 0 + } + + function Bi() { + var t = "__\0ec_inner_" + Bb++ + "_" + Math.random().toFixed(5); + return function(e) { + return e[t] || (e[t] = {}) + } + } + + function Vi(t, e, i) { + if (_(e)) { + var n = {}; + n[e + "Index"] = 0, e = n + } + var o = i && i.defaultMainType; + !o || Gi(e, o + "Index") || Gi(e, o + "Id") || Gi(e, o + "Name") || (e[o + "Index"] = 0); + var a = {}; + return Nb(e, function(n, o) { + var n = e[o]; + if ("dataIndex" !== o && "dataIndexInside" !== o) { + var r = o.match(/^(\w+)(Index|Id|Name)$/) || [], + s = r[1], + u = (r[2] || "").toLowerCase(); + if (!(!s || !u || null == n || "index" === u && "none" === n || i && i.includeMainTypes && l(i.includeMainTypes, s) < 0)) { + var h = { + mainType: s + }; + "index" === u && "all" === n || (h[u] = n); + var c = t.queryComponents(h); + a[s + "Models"] = c, a[s + "Model"] = c[0] + } + } else a[o] = n + }), a + } + + function Gi(t, e) { + return t && t.hasOwnProperty(e) + } + + function Fi(t, e, i) { + t.setAttribute ? t.setAttribute(e, i) : t[e] = i + } + + function Wi(t, e) { + return t.getAttribute ? t.getAttribute(e) : t[e] + } + + function Hi(t) { + return "auto" === t ? z_.domSupported ? "html" : "richText" : t || "html" + } + + function Zi(t) { + var e = { + main: "", + sub: "" + }; + return t && (t = t.split(Vb), e.main = t[0] || "", e.sub = t[1] || ""), e + } + + function Ui(t) { + k(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(t), 'componentType "' + t + '" illegal') + } + + function Xi(t, e) { + t.$constructor = t, t.extend = function(t) { + var e = this, + i = function() { + t.$constructor ? t.$constructor.apply(this, arguments) : e.apply(this, arguments) + }; + return a(i.prototype, t), i.extend = this.extend, i.superCall = Yi, i.superApply = qi, u(i, this), i.superClass = e, i + } + } + + function ji(t) { + var e = ["__\0is_clz", Fb++, Math.random().toFixed(3)].join("_"); + t.prototype[e] = !0, t.isInstance = function(t) { + return !(!t || !t[e]) + } + } + + function Yi(t, e) { + var i = C(arguments, 2); + return this.superClass.prototype[e].apply(t, i) + } + + function qi(t, e, i) { + return this.superClass.prototype[e].apply(t, i) + } + + function Ki(t, e) { + function i(t) { + var e = n[t.main]; + return e && e[Gb] || ((e = n[t.main] = {})[Gb] = !0), e + } + e = e || {}; + var n = {}; + if (t.registerClass = function(t, e) { + return e && (Ui(e), (e = Zi(e)).sub ? e.sub !== Gb && (i(e)[e.sub] = t) : n[e.main] = t), t + }, t.getClass = function(t, e, i) { + var o = n[t]; + if (o && o[Gb] && (o = e ? o[e] : null), i && !o) throw new Error(e ? "Component " + t + "." + (e || "") + " not exists. Load it first." : t + ".type should be specified."); + return o + }, t.getClassesByMainType = function(t) { + t = Zi(t); + var e = [], + i = n[t.main]; + return i && i[Gb] ? d(i, function(t, i) { + i !== Gb && e.push(t) + }) : e.push(i), e + }, t.hasClass = function(t) { + return t = Zi(t), !!n[t.main] + }, t.getAllClassMainTypes = function() { + var t = []; + return d(n, function(e, i) { + t.push(i) + }), t + }, t.hasSubTypes = function(t) { + t = Zi(t); + var e = n[t.main]; + return e && e[Gb] + }, t.parseClassType = Zi, e.registerWhenExtend) { + var o = t.extend; + o && (t.extend = function(e) { + var i = o.call(this, e); + return t.registerClass(i, e.type) + }) + } + return t + } + + function $i(t) { + return t > -qb && t < qb + } + + function Ji(t) { + return t > qb || t < -qb + } + + function Qi(t, e, i, n, o) { + var a = 1 - o; + return a * a * (a * t + 3 * o * e) + o * o * (o * n + 3 * a * i) + } + + function tn(t, e, i, n, o) { + var a = 1 - o; + return 3 * (((e - t) * a + 2 * (i - e) * o) * a + (n - i) * o * o) + } + + function en(t, e, i, n, o, a) { + var r = n + 3 * (e - i) - t, + s = 3 * (i - 2 * e + t), + l = 3 * (e - t), + u = t - o, + h = s * s - 3 * r * l, + c = s * l - 9 * r * u, + d = l * l - 3 * s * u, + f = 0; + if ($i(h) && $i(c)) $i(s) ? a[0] = 0 : (M = -l / s) >= 0 && M <= 1 && (a[f++] = M); + else { + var p = c * c - 4 * h * d; + if ($i(p)) { + var g = c / h, + m = -g / 2; + (M = -s / r + g) >= 0 && M <= 1 && (a[f++] = M), m >= 0 && m <= 1 && (a[f++] = m) + } else if (p > 0) { + var v = Yb(p), + y = h * s + 1.5 * r * (-c + v), + x = h * s + 1.5 * r * (-c - v); + (M = (-s - ((y = y < 0 ? -jb(-y, Jb) : jb(y, Jb)) + (x = x < 0 ? -jb(-x, Jb) : jb(x, Jb)))) / (3 * r)) >= 0 && M <= 1 && (a[f++] = M) + } else { + var _ = (2 * h * s - 3 * r * c) / (2 * Yb(h * h * h)), + w = Math.acos(_) / 3, + b = Yb(h), + S = Math.cos(w), + M = (-s - 2 * b * S) / (3 * r), + m = (-s + b * (S + $b * Math.sin(w))) / (3 * r), + I = (-s + b * (S - $b * Math.sin(w))) / (3 * r); + M >= 0 && M <= 1 && (a[f++] = M), m >= 0 && m <= 1 && (a[f++] = m), I >= 0 && I <= 1 && (a[f++] = I) + } + } + return f + } + + function nn(t, e, i, n, o) { + var a = 6 * i - 12 * e + 6 * t, + r = 9 * e + 3 * n - 3 * t - 9 * i, + s = 3 * e - 3 * t, + l = 0; + if ($i(r)) Ji(a) && (c = -s / a) >= 0 && c <= 1 && (o[l++] = c); + else { + var u = a * a - 4 * r * s; + if ($i(u)) o[0] = -a / (2 * r); + else if (u > 0) { + var h = Yb(u), + c = (-a + h) / (2 * r), + d = (-a - h) / (2 * r); + c >= 0 && c <= 1 && (o[l++] = c), d >= 0 && d <= 1 && (o[l++] = d) + } + } + return l + } + + function on(t, e, i, n, o, a) { + var r = (e - t) * o + t, + s = (i - e) * o + e, + l = (n - i) * o + i, + u = (s - r) * o + r, + h = (l - s) * o + s, + c = (h - u) * o + u; + a[0] = t, a[1] = r, a[2] = u, a[3] = c, a[4] = c, a[5] = h, a[6] = l, a[7] = n + } + + function an(t, e, i, n, o, a, r, s, l, u, h) { + var c, d, f, p, g, m = .005, + v = 1 / 0; + Qb[0] = l, Qb[1] = u; + for (var y = 0; y < 1; y += .05) tS[0] = Qi(t, i, o, r, y), tS[1] = Qi(e, n, a, s, y), (p = iw(Qb, tS)) < v && (c = y, v = p); + v = 1 / 0; + for (var x = 0; x < 32 && !(m < Kb); x++) d = c - m, f = c + m, tS[0] = Qi(t, i, o, r, d), tS[1] = Qi(e, n, a, s, d), p = iw(tS, Qb), d >= 0 && p < v ? (c = d, v = p) : (eS[0] = Qi(t, i, o, r, f), eS[1] = Qi(e, n, a, s, f), g = iw(eS, Qb), f <= 1 && g < v ? (c = f, v = g) : m *= .5); + return h && (h[0] = Qi(t, i, o, r, c), h[1] = Qi(e, n, a, s, c)), Yb(v) + } + + function rn(t, e, i, n) { + var o = 1 - n; + return o * (o * t + 2 * n * e) + n * n * i + } + + function sn(t, e, i, n) { + return 2 * ((1 - n) * (e - t) + n * (i - e)) + } + + function ln(t, e, i, n, o) { + var a = t - 2 * e + i, + r = 2 * (e - t), + s = t - n, + l = 0; + if ($i(a)) Ji(r) && (c = -s / r) >= 0 && c <= 1 && (o[l++] = c); + else { + var u = r * r - 4 * a * s; + if ($i(u))(c = -r / (2 * a)) >= 0 && c <= 1 && (o[l++] = c); + else if (u > 0) { + var h = Yb(u), + c = (-r + h) / (2 * a), + d = (-r - h) / (2 * a); + c >= 0 && c <= 1 && (o[l++] = c), d >= 0 && d <= 1 && (o[l++] = d) + } + } + return l + } + + function un(t, e, i) { + var n = t + i - 2 * e; + return 0 === n ? .5 : (t - e) / n + } + + function hn(t, e, i, n, o) { + var a = (e - t) * n + t, + r = (i - e) * n + e, + s = (r - a) * n + a; + o[0] = t, o[1] = a, o[2] = s, o[3] = s, o[4] = r, o[5] = i + } + + function cn(t, e, i, n, o, a, r, s, l) { + var u, h = .005, + c = 1 / 0; + Qb[0] = r, Qb[1] = s; + for (var d = 0; d < 1; d += .05) tS[0] = rn(t, i, o, d), tS[1] = rn(e, n, a, d), (m = iw(Qb, tS)) < c && (u = d, c = m); + c = 1 / 0; + for (var f = 0; f < 32 && !(h < Kb); f++) { + var p = u - h, + g = u + h; + tS[0] = rn(t, i, o, p), tS[1] = rn(e, n, a, p); + var m = iw(tS, Qb); + if (p >= 0 && m < c) u = p, c = m; + else { + eS[0] = rn(t, i, o, g), eS[1] = rn(e, n, a, g); + var v = iw(eS, Qb); + g <= 1 && v < c ? (u = g, c = v) : h *= .5 + } + } + return l && (l[0] = rn(t, i, o, u), l[1] = rn(e, n, a, u)), Yb(c) + } + + function dn(t, e, i) { + if (0 !== t.length) { + var n, o = t[0], + a = o[0], + r = o[0], + s = o[1], + l = o[1]; + for (n = 1; n < t.length; n++) o = t[n], a = iS(a, o[0]), r = nS(r, o[0]), s = iS(s, o[1]), l = nS(l, o[1]); + e[0] = a, e[1] = s, i[0] = r, i[1] = l + } + } + + function fn(t, e, i, n, o, a) { + o[0] = iS(t, i), o[1] = iS(e, n), a[0] = nS(t, i), a[1] = nS(e, n) + } + + function pn(t, e, i, n, o, a, r, s, l, u) { + var h, c = nn, + d = Qi, + f = c(t, i, o, r, hS); + for (l[0] = 1 / 0, l[1] = 1 / 0, u[0] = -1 / 0, u[1] = -1 / 0, h = 0; h < f; h++) { + var p = d(t, i, o, r, hS[h]); + l[0] = iS(p, l[0]), u[0] = nS(p, u[0]) + } + for (f = c(e, n, a, s, cS), h = 0; h < f; h++) { + var g = d(e, n, a, s, cS[h]); + l[1] = iS(g, l[1]), u[1] = nS(g, u[1]) + } + l[0] = iS(t, l[0]), u[0] = nS(t, u[0]), l[0] = iS(r, l[0]), u[0] = nS(r, u[0]), l[1] = iS(e, l[1]), u[1] = nS(e, u[1]), l[1] = iS(s, l[1]), u[1] = nS(s, u[1]) + } + + function gn(t, e, i, n, o, a, r, s) { + var l = un, + u = rn, + h = nS(iS(l(t, i, o), 1), 0), + c = nS(iS(l(e, n, a), 1), 0), + d = u(t, i, o, h), + f = u(e, n, a, c); + r[0] = iS(t, o, d), r[1] = iS(e, a, f), s[0] = nS(t, o, d), s[1] = nS(e, a, f) + } + + function mn(t, e, i, n, o, a, r, s, l) { + var u = tt, + h = et, + c = Math.abs(o - a); + if (c % rS < 1e-4 && c > 1e-4) return s[0] = t - i, s[1] = e - n, l[0] = t + i, void(l[1] = e + n); + if (sS[0] = aS(o) * i + t, sS[1] = oS(o) * n + e, lS[0] = aS(a) * i + t, lS[1] = oS(a) * n + e, u(s, sS, lS), h(l, sS, lS), (o %= rS) < 0 && (o += rS), (a %= rS) < 0 && (a += rS), o > a && !r ? a += rS : o < a && r && (o += rS), r) { + var d = a; + a = o, o = d + } + for (var f = 0; f < a; f += Math.PI / 2) f > o && (uS[0] = aS(f) * i + t, uS[1] = oS(f) * n + e, u(s, uS, s), h(l, uS, l)) + } + + function vn(t, e, i, n, o, a, r) { + if (0 === o) return !1; + var s = o, + l = 0, + u = t; + if (r > e + s && r > n + s || r < e - s && r < n - s || a > t + s && a > i + s || a < t - s && a < i - s) return !1; + if (t === i) return Math.abs(a - t) <= s / 2; + var h = (l = (e - n) / (t - i)) * a - r + (u = (t * n - i * e) / (t - i)); + return h * h / (l * l + 1) <= s / 2 * s / 2 + } + + function yn(t, e, i, n, o, a, r, s, l, u, h) { + if (0 === l) return !1; + var c = l; + return !(h > e + c && h > n + c && h > a + c && h > s + c || h < e - c && h < n - c && h < a - c && h < s - c || u > t + c && u > i + c && u > o + c && u > r + c || u < t - c && u < i - c && u < o - c && u < r - c) && an(t, e, i, n, o, a, r, s, u, h, null) <= c / 2 + } + + function xn(t, e, i, n, o, a, r, s, l) { + if (0 === r) return !1; + var u = r; + return !(l > e + u && l > n + u && l > a + u || l < e - u && l < n - u && l < a - u || s > t + u && s > i + u && s > o + u || s < t - u && s < i - u && s < o - u) && cn(t, e, i, n, o, a, s, l, null) <= u / 2 + } + + function _n(t) { + return (t %= IS) < 0 && (t += IS), t + } + + function wn(t, e, i, n, o, a, r, s, l) { + if (0 === r) return !1; + var u = r; + s -= t, l -= e; + var h = Math.sqrt(s * s + l * l); + if (h - u > i || h + u < i) return !1; + if (Math.abs(n - o) % TS < 1e-4) return !0; + if (a) { + var c = n; + n = _n(o), o = _n(c) + } else n = _n(n), o = _n(o); + n > o && (o += TS); + var d = Math.atan2(l, s); + return d < 0 && (d += TS), d >= n && d <= o || d + TS >= n && d + TS <= o + } + + function bn(t, e, i, n, o, a) { + if (a > e && a > n || a < e && a < n) return 0; + if (n === e) return 0; + var r = n < e ? 1 : -1, + s = (a - e) / (n - e); + 1 !== s && 0 !== s || (r = n < e ? .5 : -.5); + var l = s * (i - t) + t; + return l === o ? 1 / 0 : l > o ? r : 0 + } + + function Sn(t, e) { + return Math.abs(t - e) < CS + } + + function Mn() { + var t = kS[0]; + kS[0] = kS[1], kS[1] = t + } + + function In(t, e, i, n, o, a, r, s, l, u) { + if (u > e && u > n && u > a && u > s || u < e && u < n && u < a && u < s) return 0; + var h = en(e, n, a, s, u, LS); + if (0 === h) return 0; + for (var c, d, f = 0, p = -1, g = 0; g < h; g++) { + var m = LS[g], + v = 0 === m || 1 === m ? .5 : 1; + Qi(t, i, o, r, m) < l || (p < 0 && (p = nn(e, n, a, s, kS), kS[1] < kS[0] && p > 1 && Mn(), c = Qi(e, n, a, s, kS[0]), p > 1 && (d = Qi(e, n, a, s, kS[1]))), 2 == p ? m < kS[0] ? f += c < e ? v : -v : m < kS[1] ? f += d < c ? v : -v : f += s < d ? v : -v : m < kS[0] ? f += c < e ? v : -v : f += s < c ? v : -v) + } + return f + } + + function Tn(t, e, i, n, o, a, r, s) { + if (s > e && s > n && s > a || s < e && s < n && s < a) return 0; + var l = ln(e, n, a, s, LS); + if (0 === l) return 0; + var u = un(e, n, a); + if (u >= 0 && u <= 1) { + for (var h = 0, c = rn(e, n, a, u), d = 0; d < l; d++) { + f = 0 === LS[d] || 1 === LS[d] ? .5 : 1; + (p = rn(t, i, o, LS[d])) < r || (LS[d] < u ? h += c < e ? f : -f : h += a < c ? f : -f) + } + return h + } + var f = 0 === LS[0] || 1 === LS[0] ? .5 : 1, + p = rn(t, i, o, LS[0]); + return p < r ? 0 : a < e ? f : -f + } + + function An(t, e, i, n, o, a, r, s) { + if ((s -= e) > i || s < -i) return 0; + u = Math.sqrt(i * i - s * s); + LS[0] = -u, LS[1] = u; + var l = Math.abs(n - o); + if (l < 1e-4) return 0; + if (l % DS < 1e-4) { + n = 0, o = DS; + p = a ? 1 : -1; + return r >= LS[0] + t && r <= LS[1] + t ? p : 0 + } + if (a) { + var u = n; + n = _n(o), o = _n(u) + } else n = _n(n), o = _n(o); + n > o && (o += DS); + for (var h = 0, c = 0; c < 2; c++) { + var d = LS[c]; + if (d + t > r) { + var f = Math.atan2(s, d), + p = a ? 1 : -1; + f < 0 && (f = DS + f), (f >= n && f <= o || f + DS >= n && f + DS <= o) && (f > Math.PI / 2 && f < 1.5 * Math.PI && (p = -p), h += p) + } + } + return h + } + + function Dn(t, e, i, n, o) { + for (var a = 0, r = 0, s = 0, l = 0, u = 0, h = 0; h < t.length;) { + var c = t[h++]; + switch (c === AS.M && h > 1 && (i || (a += bn(r, s, l, u, n, o))), 1 == h && (l = r = t[h], u = s = t[h + 1]), c) { + case AS.M: + r = l = t[h++], s = u = t[h++]; + break; + case AS.L: + if (i) { + if (vn(r, s, t[h], t[h + 1], e, n, o)) return !0 + } else a += bn(r, s, t[h], t[h + 1], n, o) || 0; + r = t[h++], s = t[h++]; + break; + case AS.C: + if (i) { + if (yn(r, s, t[h++], t[h++], t[h++], t[h++], t[h], t[h + 1], e, n, o)) return !0 + } else a += In(r, s, t[h++], t[h++], t[h++], t[h++], t[h], t[h + 1], n, o) || 0; + r = t[h++], s = t[h++]; + break; + case AS.Q: + if (i) { + if (xn(r, s, t[h++], t[h++], t[h], t[h + 1], e, n, o)) return !0 + } else a += Tn(r, s, t[h++], t[h++], t[h], t[h + 1], n, o) || 0; + r = t[h++], s = t[h++]; + break; + case AS.A: + var d = t[h++], + f = t[h++], + p = t[h++], + g = t[h++], + m = t[h++], + v = t[h++], + y = (t[h++], 1 - t[h++]), + x = Math.cos(m) * p + d, + _ = Math.sin(m) * g + f; + h > 1 ? a += bn(r, s, x, _, n, o) : (l = x, u = _); + var w = (n - d) * g / p + d; + if (i) { + if (wn(d, f, g, m, m + v, y, e, w, o)) return !0 + } else a += An(d, f, g, m, m + v, y, w, o); + r = Math.cos(m + v) * p + d, s = Math.sin(m + v) * g + f; + break; + case AS.R: + l = r = t[h++], u = s = t[h++]; + var x = l + t[h++], + _ = u + t[h++]; + if (i) { + if (vn(l, u, x, u, e, n, o) || vn(x, u, x, _, e, n, o) || vn(x, _, l, _, e, n, o) || vn(l, _, l, u, e, n, o)) return !0 + } else a += bn(x, u, x, _, n, o), a += bn(l, _, l, u, n, o); + break; + case AS.Z: + if (i) { + if (vn(r, s, l, u, e, n, o)) return !0 + } else a += bn(r, s, l, u, n, o); + r = l, s = u + } + } + return i || Sn(s, u) || (a += bn(r, s, l, u, n, o) || 0), 0 !== a + } + + function Cn(t, e, i) { + return Dn(t, 0, !1, e, i) + } + + function Ln(t, e, i, n) { + return Dn(t, e, !0, i, n) + } + + function kn(t) { + ui.call(this, t), this.path = null + } + + function Pn(t, e, i, n, o, a, r, s, l, u, h) { + var c = l * (HS / 180), + d = WS(c) * (t - i) / 2 + FS(c) * (e - n) / 2, + f = -1 * FS(c) * (t - i) / 2 + WS(c) * (e - n) / 2, + p = d * d / (r * r) + f * f / (s * s); + p > 1 && (r *= GS(p), s *= GS(p)); + var g = (o === a ? -1 : 1) * GS((r * r * (s * s) - r * r * (f * f) - s * s * (d * d)) / (r * r * (f * f) + s * s * (d * d))) || 0, + m = g * r * f / s, + v = g * -s * d / r, + y = (t + i) / 2 + WS(c) * m - FS(c) * v, + x = (e + n) / 2 + FS(c) * m + WS(c) * v, + _ = XS([1, 0], [(d - m) / r, (f - v) / s]), + w = [(d - m) / r, (f - v) / s], + b = [(-1 * d - m) / r, (-1 * f - v) / s], + S = XS(w, b); + US(w, b) <= -1 && (S = HS), US(w, b) >= 1 && (S = 0), 0 === a && S > 0 && (S -= 2 * HS), 1 === a && S < 0 && (S += 2 * HS), h.addData(u, y, x, r, s, _, S, c, a) + } + + function Nn(t) { + if (!t) return new MS; + for (var e, i = 0, n = 0, o = i, a = n, r = new MS, s = MS.CMD, l = t.match(jS), u = 0; u < l.length; u++) { + for (var h, c = l[u], d = c.charAt(0), f = c.match(YS) || [], p = f.length, g = 0; g < p; g++) f[g] = parseFloat(f[g]); + for (var m = 0; m < p;) { + var v, y, x, _, w, b, S, M = i, + I = n; + switch (d) { + case "l": + i += f[m++], n += f[m++], h = s.L, r.addData(h, i, n); + break; + case "L": + i = f[m++], n = f[m++], h = s.L, r.addData(h, i, n); + break; + case "m": + i += f[m++], n += f[m++], h = s.M, r.addData(h, i, n), o = i, a = n, d = "l"; + break; + case "M": + i = f[m++], n = f[m++], h = s.M, r.addData(h, i, n), o = i, a = n, d = "L"; + break; + case "h": + i += f[m++], h = s.L, r.addData(h, i, n); + break; + case "H": + i = f[m++], h = s.L, r.addData(h, i, n); + break; + case "v": + n += f[m++], h = s.L, r.addData(h, i, n); + break; + case "V": + n = f[m++], h = s.L, r.addData(h, i, n); + break; + case "C": + h = s.C, r.addData(h, f[m++], f[m++], f[m++], f[m++], f[m++], f[m++]), i = f[m - 2], n = f[m - 1]; + break; + case "c": + h = s.C, r.addData(h, f[m++] + i, f[m++] + n, f[m++] + i, f[m++] + n, f[m++] + i, f[m++] + n), i += f[m - 2], n += f[m - 1]; + break; + case "S": + v = i, y = n; + var T = r.len(), + A = r.data; + e === s.C && (v += i - A[T - 4], y += n - A[T - 3]), h = s.C, M = f[m++], I = f[m++], i = f[m++], n = f[m++], r.addData(h, v, y, M, I, i, n); + break; + case "s": + v = i, y = n; + var T = r.len(), + A = r.data; + e === s.C && (v += i - A[T - 4], y += n - A[T - 3]), h = s.C, M = i + f[m++], I = n + f[m++], i += f[m++], n += f[m++], r.addData(h, v, y, M, I, i, n); + break; + case "Q": + M = f[m++], I = f[m++], i = f[m++], n = f[m++], h = s.Q, r.addData(h, M, I, i, n); + break; + case "q": + M = f[m++] + i, I = f[m++] + n, i += f[m++], n += f[m++], h = s.Q, r.addData(h, M, I, i, n); + break; + case "T": + v = i, y = n; + var T = r.len(), + A = r.data; + e === s.Q && (v += i - A[T - 4], y += n - A[T - 3]), i = f[m++], n = f[m++], h = s.Q, r.addData(h, v, y, i, n); + break; + case "t": + v = i, y = n; + var T = r.len(), + A = r.data; + e === s.Q && (v += i - A[T - 4], y += n - A[T - 3]), i += f[m++], n += f[m++], h = s.Q, r.addData(h, v, y, i, n); + break; + case "A": + x = f[m++], _ = f[m++], w = f[m++], b = f[m++], S = f[m++], Pn(M = i, I = n, i = f[m++], n = f[m++], b, S, x, _, w, h = s.A, r); + break; + case "a": + x = f[m++], _ = f[m++], w = f[m++], b = f[m++], S = f[m++], Pn(M = i, I = n, i += f[m++], n += f[m++], b, S, x, _, w, h = s.A, r) + } + } + "z" !== d && "Z" !== d || (h = s.Z, r.addData(h), i = o, n = a), e = h + } + return r.toStatic(), r + } + + function On(t, e) { + var i = Nn(t); + return e = e || {}, e.buildPath = function(t) { + if (t.setData) t.setData(i.data), (e = t.getContext()) && t.rebuildPath(e); + else { + var e = t; + i.rebuildPath(e) + } + }, e.applyTransform = function(t) { + VS(i, t), this.dirty(!0) + }, e + } + + function En(t, e) { + return new kn(On(t, e)) + } + + function Rn(t, e) { + return kn.extend(On(t, e)) + } + + function zn(t, e, i, n, o, a, r) { + var s = .5 * (i - t), + l = .5 * (n - e); + return (2 * (e - i) + s + l) * r + (-3 * (e - i) - 2 * s - l) * a + s * o + e + } + + function Bn(t, e, i) { + var n = e.points, + o = e.smooth; + if (n && n.length >= 2) { + if (o && "spline" !== o) { + var a = iM(n, o, i, e.smoothConstraint); + t.moveTo(n[0][0], n[0][1]); + for (var r = n.length, s = 0; s < (i ? r : r - 1); s++) { + var l = a[2 * s], + u = a[2 * s + 1], + h = n[(s + 1) % r]; + t.bezierCurveTo(l[0], l[1], u[0], u[1], h[0], h[1]) + } + } else { + "spline" === o && (n = eM(n, i)), t.moveTo(n[0][0], n[0][1]); + for (var s = 1, c = n.length; s < c; s++) t.lineTo(n[s][0], n[s][1]) + } + i && t.closePath() + } + } + + function Vn(t, e, i) { + var n = t.cpx2, + o = t.cpy2; + return null === n || null === o ? [(i ? tn : Qi)(t.x1, t.cpx1, t.cpx2, t.x2, e), (i ? tn : Qi)(t.y1, t.cpy1, t.cpy2, t.y2, e)] : [(i ? sn : rn)(t.x1, t.cpx1, t.x2, e), (i ? sn : rn)(t.y1, t.cpy1, t.y2, e)] + } + + function Gn(t) { + ui.call(this, t), this._displayables = [], this._temporaryDisplayables = [], this._cursor = 0, this.notClear = !0 + } + + function Fn(t) { + return kn.extend(t) + } + + function Wn(t, e, i, n) { + var o = En(t, e); + return i && ("center" === n && (i = Zn(i, o.getBoundingRect())), Un(o, i)), o + } + + function Hn(t, e, i) { + var n = new hi({ + style: { + image: t, + x: e.x, + y: e.y, + width: e.width, + height: e.height + }, + onload: function(t) { + if ("center" === i) { + var o = { + width: t.width, + height: t.height + }; + n.setStyle(Zn(e, o)) + } + } + }); + return n + } + + function Zn(t, e) { + var i, n = e.width / e.height, + o = t.height * n; + return i = o <= t.width ? t.height : (o = t.width) / n, { + x: t.x + t.width / 2 - o / 2, + y: t.y + t.height / 2 - i / 2, + width: o, + height: i + } + } + + function Un(t, e) { + if (t.applyTransform) { + var i = t.getBoundingRect().calculateTransform(e); + t.applyTransform(i) + } + } + + function Xn(t) { + var e = t.shape, + i = t.style.lineWidth; + return gM(2 * e.x1) === gM(2 * e.x2) && (e.x1 = e.x2 = Yn(e.x1, i, !0)), gM(2 * e.y1) === gM(2 * e.y2) && (e.y1 = e.y2 = Yn(e.y1, i, !0)), t + } + + function jn(t) { + var e = t.shape, + i = t.style.lineWidth, + n = e.x, + o = e.y, + a = e.width, + r = e.height; + return e.x = Yn(e.x, i, !0), e.y = Yn(e.y, i, !0), e.width = Math.max(Yn(n + a, i, !1) - e.x, 0 === a ? 0 : 1), e.height = Math.max(Yn(o + r, i, !1) - e.y, 0 === r ? 0 : 1), t + } + + function Yn(t, e, i) { + var n = gM(2 * t); + return (n + gM(e)) % 2 == 0 ? n / 2 : (n + (i ? 1 : -1)) / 2 + } + + function qn(t) { + return null != t && "none" !== t + } + + function Kn(t) { + if ("string" != typeof t) return t; + var e = _M.get(t); + return e || (e = Gt(t, -.1), wM < 1e4 && (_M.set(t, e), wM++)), e + } + + function $n(t) { + if (t.__hoverStlDirty) { + t.__hoverStlDirty = !1; + var e = t.__hoverStl; + if (e) { + var i = t.__normalStl = {}, + n = t.style; + for (var o in e) null != e[o] && (i[o] = n[o]); + i.fill = n.fill, i.stroke = n.stroke + } else t.__normalStl = null + } + } + + function Jn(t) { + var e = t.__hoverStl; + if (e && !t.__highlighted) { + var i = t.useHoverLayer; + t.__highlighted = i ? "layer" : "plain"; + var n = t.__zr; + if (n || !i) { + var o = t, + a = t.style; + i && (a = (o = n.addHover(t)).style), xo(a), i || $n(o), a.extendFrom(e), Qn(a, e, "fill"), Qn(a, e, "stroke"), yo(a), i || (t.dirty(!1), t.z2 += 1) + } + } + } + + function Qn(t, e, i) { + !qn(e[i]) && qn(t[i]) && (t[i] = Kn(t[i])) + } + + function to(t) { + t.__highlighted && (eo(t), t.__highlighted = !1) + } + + function eo(t) { + var e = t.__highlighted; + if ("layer" === e) t.__zr && t.__zr.removeHover(t); + else if (e) { + var i = t.style, + n = t.__normalStl; + n && (xo(i), t.setStyle(n), yo(i), t.z2 -= 1) + } + } + + function io(t, e) { + t.isGroup ? t.traverse(function(t) { + !t.isGroup && e(t) + }) : e(t) + } + + function no(t, e) { + e = t.__hoverStl = !1 !== e && (e || {}), t.__hoverStlDirty = !0, t.__highlighted && (to(t), Jn(t)) + } + + function oo(t) { + return t && t.__isEmphasisEntered + } + + function ao(t) { + this.__hoverSilentOnTouch && t.zrByTouch || !this.__isEmphasisEntered && io(this, Jn) + } + + function ro(t) { + this.__hoverSilentOnTouch && t.zrByTouch || !this.__isEmphasisEntered && io(this, to) + } + + function so() { + this.__isEmphasisEntered = !0, io(this, Jn) + } + + function lo() { + this.__isEmphasisEntered = !1, io(this, to) + } + + function uo(t, e, i) { + t.isGroup ? t.traverse(function(t) { + !t.isGroup && no(t, t.hoverStyle || e) + }) : no(t, t.hoverStyle || e), ho(t, i) + } + + function ho(t, e) { + var i = !1 === e; + if (t.__hoverSilentOnTouch = null != e && e.hoverSilentOnTouch, !i || t.__hoverStyleTrigger) { + var n = i ? "off" : "on"; + t[n]("mouseover", ao)[n]("mouseout", ro), t[n]("emphasis", so)[n]("normal", lo), t.__hoverStyleTrigger = !i + } + } + + function co(t, e, i, n, o, a, r) { + var s, l = (o = o || yM).labelFetcher, + u = o.labelDataIndex, + h = o.labelDimIndex, + c = i.getShallow("show"), + d = n.getShallow("show"); + (c || d) && (l && (s = l.getFormattedLabel(u, "normal", null, h)), null == s && (s = x(o.defaultText) ? o.defaultText(u, o) : o.defaultText)); + var f = c ? s : null, + p = d ? A(l ? l.getFormattedLabel(u, "emphasis", null, h) : null, s) : null; + null == f && null == p || (fo(t, i, a, o), fo(e, n, r, o, !0)), t.text = f, e.text = p + } + + function fo(t, e, i, n, o) { + return po(t, e, n, o), i && a(t, i), t + } + + function po(t, e, i, n) { + if ((i = i || yM).isRectText) { + var o = e.getShallow("position") || (n ? null : "inside"); + "outside" === o && (o = "top"), t.textPosition = o, t.textOffset = e.getShallow("offset"); + var a = e.getShallow("rotate"); + null != a && (a *= Math.PI / 180), t.textRotation = a, t.textDistance = A(e.getShallow("distance"), n ? null : 5) + } + var r, s = e.ecModel, + l = s && s.option.textStyle, + u = go(e); + if (u) { + r = {}; + for (var h in u) + if (u.hasOwnProperty(h)) { + var c = e.getModel(["rich", h]); + mo(r[h] = {}, c, l, i, n) + } + } + return t.rich = r, mo(t, e, l, i, n, !0), i.forceRich && !i.textStyle && (i.textStyle = {}), t + } + + function go(t) { + for (var e; t && t !== t.ecModel;) { + var i = (t.option || yM).rich; + if (i) { + e = e || {}; + for (var n in i) i.hasOwnProperty(n) && (e[n] = 1) + } + t = t.parentModel + } + return e + } + + function mo(t, e, i, n, o, a) { + i = !o && i || yM, t.textFill = vo(e.getShallow("color"), n) || i.color, t.textStroke = vo(e.getShallow("textBorderColor"), n) || i.textBorderColor, t.textStrokeWidth = A(e.getShallow("textBorderWidth"), i.textBorderWidth), t.insideRawTextPosition = t.textPosition, o || (a && (t.insideRollbackOpt = n, yo(t)), null == t.textFill && (t.textFill = n.autoColor)), t.fontStyle = e.getShallow("fontStyle") || i.fontStyle, t.fontWeight = e.getShallow("fontWeight") || i.fontWeight, t.fontSize = e.getShallow("fontSize") || i.fontSize, t.fontFamily = e.getShallow("fontFamily") || i.fontFamily, t.textAlign = e.getShallow("align"), t.textVerticalAlign = e.getShallow("verticalAlign") || e.getShallow("baseline"), t.textLineHeight = e.getShallow("lineHeight"), t.textWidth = e.getShallow("width"), t.textHeight = e.getShallow("height"), t.textTag = e.getShallow("tag"), a && n.disableBox || (t.textBackgroundColor = vo(e.getShallow("backgroundColor"), n), t.textPadding = e.getShallow("padding"), t.textBorderColor = vo(e.getShallow("borderColor"), n), t.textBorderWidth = e.getShallow("borderWidth"), t.textBorderRadius = e.getShallow("borderRadius"), t.textBoxShadowColor = e.getShallow("shadowColor"), t.textBoxShadowBlur = e.getShallow("shadowBlur"), t.textBoxShadowOffsetX = e.getShallow("shadowOffsetX"), t.textBoxShadowOffsetY = e.getShallow("shadowOffsetY")), t.textShadowColor = e.getShallow("textShadowColor") || i.textShadowColor, t.textShadowBlur = e.getShallow("textShadowBlur") || i.textShadowBlur, t.textShadowOffsetX = e.getShallow("textShadowOffsetX") || i.textShadowOffsetX, t.textShadowOffsetY = e.getShallow("textShadowOffsetY") || i.textShadowOffsetY + } + + function vo(t, e) { + return "auto" !== t ? t : e && e.autoColor ? e.autoColor : null + } + + function yo(t) { + var e = t.insideRollbackOpt; + if (e && null == t.textFill) { + var i, n = e.useInsideStyle, + o = t.insideRawTextPosition, + a = e.autoColor; + !1 !== n && (!0 === n || e.isRectText && o && "string" == typeof o && o.indexOf("inside") >= 0) ? (i = { + textFill: null, + textStroke: t.textStroke, + textStrokeWidth: t.textStrokeWidth + }, t.textFill = "#fff", null == t.textStroke && (t.textStroke = a, null == t.textStrokeWidth && (t.textStrokeWidth = 2))) : null != a && (i = { + textFill: null + }, t.textFill = a), i && (t.insideRollback = i) + } + } + + function xo(t) { + var e = t.insideRollback; + e && (t.textFill = e.textFill, t.textStroke = e.textStroke, t.textStrokeWidth = e.textStrokeWidth, t.insideRollback = null) + } + + function _o(t, e) { + var i = e || e.getModel("textStyle"); + return P([t.fontStyle || i && i.getShallow("fontStyle") || "", t.fontWeight || i && i.getShallow("fontWeight") || "", (t.fontSize || i && i.getShallow("fontSize") || 12) + "px", t.fontFamily || i && i.getShallow("fontFamily") || "sans-serif"].join(" ")) + } + + function wo(t, e, i, n, o, a) { + if ("function" == typeof o && (a = o, o = null), n && n.isAnimationEnabled()) { + var r = t ? "Update" : "", + s = n.getShallow("animationDuration" + r), + l = n.getShallow("animationEasing" + r), + u = n.getShallow("animationDelay" + r); + "function" == typeof u && (u = u(o, n.getAnimationDelayParams ? n.getAnimationDelayParams(e, o) : null)), "function" == typeof s && (s = s(o)), s > 0 ? e.animateTo(i, s, u || 0, l, a, !!a) : (e.stopAnimation(), e.attr(i), a && a()) + } else e.stopAnimation(), e.attr(i), a && a() + } + + function bo(t, e, i, n, o) { + wo(!0, t, e, i, n, o) + } + + function So(t, e, i, n, o) { + wo(!1, t, e, i, n, o) + } + + function Mo(t, e) { + for (var i = vt([]); t && t !== e;) xt(i, t.getLocalTransform(), i), t = t.parent; + return i + } + + function Io(t, e, i) { + return e && !c(e) && (e = mw.getLocalTransform(e)), i && (e = St([], e)), Q([], t, e) + } + + function To(t, e, i) { + var n = 0 === e[4] || 0 === e[5] || 0 === e[0] ? 1 : Math.abs(2 * e[4] / e[0]), + o = 0 === e[4] || 0 === e[5] || 0 === e[2] ? 1 : Math.abs(2 * e[4] / e[2]), + a = ["left" === t ? -n : "right" === t ? n : 0, "top" === t ? -o : "bottom" === t ? o : 0]; + return a = Io(a, e, i), Math.abs(a[0]) > Math.abs(a[1]) ? a[0] > 0 ? "right" : "left" : a[1] > 0 ? "bottom" : "top" + } + + function Ao(t, e, i, n) { + function o(t) { + var e = { + position: F(t.position), + rotation: t.rotation + }; + return t.shape && (e.shape = a({}, t.shape)), e + } + if (t && e) { + var r = function(t) { + var e = {}; + return t.traverse(function(t) { + !t.isGroup && t.anid && (e[t.anid] = t) + }), e + }(t); + e.traverse(function(t) { + if (!t.isGroup && t.anid) { + var e = r[t.anid]; + if (e) { + var n = o(t); + t.attr(o(e)), bo(t, n, i, t.dataIndex) + } + } + }) + } + } + + function Do(t, e) { + return f(t, function(t) { + var i = t[0]; + i = mM(i, e.x), i = vM(i, e.x + e.width); + var n = t[1]; + return n = mM(n, e.y), n = vM(n, e.y + e.height), [i, n] + }) + } + + function Co(t, e, i) { + var n = (e = a({ + rectHover: !0 + }, e)).style = { + strokeNoScale: !0 + }; + if (i = i || { + x: -1, + y: -1, + width: 2, + height: 2 + }, t) return 0 === t.indexOf("image://") ? (n.image = t.slice(8), r(n, i), new hi(e)) : Wn(t.replace("path://", ""), e, i, "center") + } + + function Lo(t, e, i) { + this.parentModel = e, this.ecModel = i, this.option = t + } + + function ko(t, e, i) { + for (var n = 0; n < e.length && (!e[n] || null != (t = t && "object" == typeof t ? t[e[n]] : null)); n++); + return null == t && i && (t = i.get(e)), t + } + + function Po(t, e) { + var i = DM(t).getParent; + return i ? i.call(t, e) : t.parentModel + } + + function No(t) { + return [t || "", CM++, Math.random().toFixed(5)].join("_") + } + + function Oo(t) { + return t.replace(/^\s+/, "").replace(/\s+$/, "") + } + + function Eo(t, e, i, n) { + var o = e[1] - e[0], + a = i[1] - i[0]; + if (0 === o) return 0 === a ? i[0] : (i[0] + i[1]) / 2; + if (n) + if (o > 0) { + if (t <= e[0]) return i[0]; + if (t >= e[1]) return i[1] + } else { + if (t >= e[0]) return i[0]; + if (t <= e[1]) return i[1] + } + else { + if (t === e[0]) return i[0]; + if (t === e[1]) return i[1] + } + return (t - e[0]) / o * a + i[0] + } + + function Ro(t, e) { + switch (t) { + case "center": + case "middle": + t = "50%"; + break; + case "left": + case "top": + t = "0%"; + break; + case "right": + case "bottom": + t = "100%" + } + return "string" == typeof t ? Oo(t).match(/%$/) ? parseFloat(t) / 100 * e : parseFloat(t) : null == t ? NaN : +t + } + + function zo(t, e, i) { + return null == e && (e = 10), e = Math.min(Math.max(0, e), 20), t = (+t).toFixed(e), i ? t : +t + } + + function Bo(t) { + return t.sort(function(t, e) { + return t - e + }), t + } + + function Vo(t) { + if (t = +t, isNaN(t)) return 0; + for (var e = 1, i = 0; Math.round(t * e) / e !== t;) e *= 10, i++; + return i + } + + function Go(t) { + var e = t.toString(), + i = e.indexOf("e"); + if (i > 0) { + var n = +e.slice(i + 1); + return n < 0 ? -n : 0 + } + var o = e.indexOf("."); + return o < 0 ? 0 : e.length - 1 - o + } + + function Fo(t, e) { + var i = Math.log, + n = Math.LN10, + o = Math.floor(i(t[1] - t[0]) / n), + a = Math.round(i(Math.abs(e[1] - e[0])) / n), + r = Math.min(Math.max(-o + a, 0), 20); + return isFinite(r) ? r : 20 + } + + function Wo(t, e, i) { + if (!t[e]) return 0; + var n = p(t, function(t, e) { + return t + (isNaN(e) ? 0 : e) + }, 0); + if (0 === n) return 0; + for (var o = Math.pow(10, i), a = f(t, function(t) { + return (isNaN(t) ? 0 : t) / n * o * 100 + }), r = 100 * o, s = f(a, function(t) { + return Math.floor(t) + }), l = p(s, function(t, e) { + return t + e + }, 0), u = f(a, function(t, e) { + return t - s[e] + }); l < r;) { + for (var h = Number.NEGATIVE_INFINITY, c = null, d = 0, g = u.length; d < g; ++d) u[d] > h && (h = u[d], c = d); + ++s[c], u[c] = 0, ++l + } + return s[e] / o + } + + function Ho(t) { + var e = 2 * Math.PI; + return (t % e + e) % e + } + + function Zo(t) { + return t > -LM && t < LM + } + + function Uo(t) { + if (t instanceof Date) return t; + if ("string" == typeof t) { + var e = PM.exec(t); + if (!e) return new Date(NaN); + if (e[8]) { + var i = +e[4] || 0; + return "Z" !== e[8].toUpperCase() && (i -= e[8].slice(0, 3)), new Date(Date.UTC(+e[1], +(e[2] || 1) - 1, +e[3] || 1, i, +(e[5] || 0), +e[6] || 0, +e[7] || 0)) + } + return new Date(+e[1], +(e[2] || 1) - 1, +e[3] || 1, +e[4] || 0, +(e[5] || 0), +e[6] || 0, +e[7] || 0) + } + return null == t ? new Date(NaN) : new Date(Math.round(t)) + } + + function Xo(t) { + return Math.pow(10, jo(t)) + } + + function jo(t) { + return Math.floor(Math.log(t) / Math.LN10) + } + + function Yo(t, e) { + var i, n = jo(t), + o = Math.pow(10, n), + a = t / o; + return i = e ? a < 1.5 ? 1 : a < 2.5 ? 2 : a < 4 ? 3 : a < 7 ? 5 : 10 : a < 1 ? 1 : a < 2 ? 2 : a < 3 ? 3 : a < 5 ? 5 : 10, t = i * o, n >= -20 ? +t.toFixed(n < 0 ? -n : 0) : t + } + + function qo(t) { + function e(t, i, n) { + return t.interval[n] < i.interval[n] || t.interval[n] === i.interval[n] && (t.close[n] - i.close[n] == (n ? -1 : 1) || !n && e(t, i, 1)) + } + t.sort(function(t, i) { + return e(t, i, 0) ? -1 : 1 + }); + for (var i = -1 / 0, n = 1, o = 0; o < t.length;) { + for (var a = t[o].interval, r = t[o].close, s = 0; s < 2; s++) a[s] <= i && (a[s] = i, r[s] = s ? 1 : 1 - n), i = a[s], n = r[s]; + a[0] === a[1] && r[0] * r[1] != 1 ? t.splice(o, 1) : o++ + } + return t + } + + function Ko(t) { + return t - parseFloat(t) >= 0 + } + + function $o(t) { + return isNaN(t) ? "-" : (t = (t + "").split("."))[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, "$1,") + (t.length > 1 ? "." + t[1] : "") + } + + function Jo(t, e) { + return t = (t || "").toLowerCase().replace(/-(.)/g, function(t, e) { + return e.toUpperCase() + }), e && t && (t = t.charAt(0).toUpperCase() + t.slice(1)), t + } + + function Qo(t) { + return null == t ? "" : (t + "").replace(EM, function(t, e) { + return RM[e] + }) + } + + function ta(t, e, i) { + y(e) || (e = [e]); + var n = e.length; + if (!n) return ""; + for (var o = e[0].$vars || [], a = 0; a < o.length; a++) { + var r = zM[a]; + t = t.replace(BM(r), BM(r, 0)) + } + for (var s = 0; s < n; s++) + for (var l = 0; l < o.length; l++) { + var u = e[s][o[l]]; + t = t.replace(BM(zM[l], s), i ? Qo(u) : u) + } + return t + } + + function ea(t, e, i) { + return d(e, function(e, n) { + t = t.replace("{" + n + "}", i ? Qo(e) : e) + }), t + } + + function ia(t, e) { + var i = (t = _(t) ? { + color: t, + extraCssText: e + } : t || {}).color, + n = t.type, + e = t.extraCssText, + o = t.renderMode || "html", + a = t.markerId || "X"; + return i ? "html" === o ? "subItem" === n ? '' : '' : { + renderMode: o, + content: "{marker" + a + "|} ", + style: { + color: i + } + } : "" + } + + function na(t, e) { + return t += "", "0000".substr(0, e - t.length) + t + } + + function oa(t, e, i) { + "week" !== t && "month" !== t && "quarter" !== t && "half-year" !== t && "year" !== t || (t = "MM-dd\nyyyy"); + var n = Uo(e), + o = i ? "UTC" : "", + a = n["get" + o + "FullYear"](), + r = n["get" + o + "Month"]() + 1, + s = n["get" + o + "Date"](), + l = n["get" + o + "Hours"](), + u = n["get" + o + "Minutes"](), + h = n["get" + o + "Seconds"](), + c = n["get" + o + "Milliseconds"](); + return t = t.replace("MM", na(r, 2)).replace("M", r).replace("yyyy", a).replace("yy", a % 100).replace("dd", na(s, 2)).replace("d", s).replace("hh", na(l, 2)).replace("h", l).replace("mm", na(u, 2)).replace("m", u).replace("ss", na(h, 2)).replace("s", h).replace("SSS", na(c, 3)) + } + + function aa(t) { + return t ? t.charAt(0).toUpperCase() + t.substr(1) : t + } + + function ra(t, e, i, n, o) { + var a = 0, + r = 0; + null == n && (n = 1 / 0), null == o && (o = 1 / 0); + var s = 0; + e.eachChild(function(l, u) { + var h, c, d = l.position, + f = l.getBoundingRect(), + p = e.childAt(u + 1), + g = p && p.getBoundingRect(); + if ("horizontal" === t) { + var m = f.width + (g ? -g.x + f.x : 0); + (h = a + m) > n || l.newline ? (a = 0, h = m, r += s + i, s = f.height) : s = Math.max(s, f.height) + } else { + var v = f.height + (g ? -g.y + f.y : 0); + (c = r + v) > o || l.newline ? (a += s + i, r = 0, c = v, s = f.width) : s = Math.max(s, f.width) + } + l.newline || (d[0] = a, d[1] = r, "horizontal" === t ? a = h + i : r = c + i) + }) + } + + function sa(t, e, i) { + var n = e.width, + o = e.height, + a = Ro(t.x, n), + r = Ro(t.y, o), + s = Ro(t.x2, n), + l = Ro(t.y2, o); + return (isNaN(a) || isNaN(parseFloat(t.x))) && (a = 0), (isNaN(s) || isNaN(parseFloat(t.x2))) && (s = n), (isNaN(r) || isNaN(parseFloat(t.y))) && (r = 0), (isNaN(l) || isNaN(parseFloat(t.y2))) && (l = o), i = OM(i || 0), { + width: Math.max(s - a - i[1] - i[3], 0), + height: Math.max(l - r - i[0] - i[2], 0) + } + } + + function la(t, e, i) { + i = OM(i || 0); + var n = e.width, + o = e.height, + a = Ro(t.left, n), + r = Ro(t.top, o), + s = Ro(t.right, n), + l = Ro(t.bottom, o), + u = Ro(t.width, n), + h = Ro(t.height, o), + c = i[2] + i[0], + d = i[1] + i[3], + f = t.aspect; + switch (isNaN(u) && (u = n - s - d - a), isNaN(h) && (h = o - l - c - r), null != f && (isNaN(u) && isNaN(h) && (f > n / o ? u = .8 * n : h = .8 * o), isNaN(u) && (u = f * h), isNaN(h) && (h = u / f)), isNaN(a) && (a = n - s - u - d), isNaN(r) && (r = o - l - h - c), t.left || t.right) { + case "center": + a = n / 2 - u / 2 - i[3]; + break; + case "right": + a = n - u - d + } + switch (t.top || t.bottom) { + case "middle": + case "center": + r = o / 2 - h / 2 - i[0]; + break; + case "bottom": + r = o - h - c + } + a = a || 0, r = r || 0, isNaN(u) && (u = n - d - a - (s || 0)), isNaN(h) && (h = o - c - r - (l || 0)); + var p = new ue(a + i[3], r + i[0], u, h); + return p.margin = i, p + } + + function ua(t, e, i, n, o) { + var a = !o || !o.hv || o.hv[0], + s = !o || !o.hv || o.hv[1], + l = o && o.boundingMode || "all"; + if (a || s) { + var u; + if ("raw" === l) u = "group" === t.type ? new ue(0, 0, +e.width || 0, +e.height || 0) : t.getBoundingRect(); + else if (u = t.getBoundingRect(), t.needLocalTransform()) { + var h = t.getLocalTransform(); + (u = u.clone()).applyTransform(h) + } + e = la(r({ + width: u.width, + height: u.height + }, e), i, n); + var c = t.position, + d = a ? e.x - u.x : 0, + f = s ? e.y - u.y : 0; + t.attr("position", "raw" === l ? [d, f] : [c[0] + d, c[1] + f]) + } + } + + function ha(t, e) { + return null != t[ZM[e][0]] || null != t[ZM[e][1]] && null != t[ZM[e][2]] + } + + function ca(t, e, i) { + function n(i, n) { + var r = {}, + l = 0, + u = {}, + h = 0; + if (WM(i, function(e) { + u[e] = t[e] + }), WM(i, function(t) { + o(e, t) && (r[t] = u[t] = e[t]), a(r, t) && l++, a(u, t) && h++ + }), s[n]) return a(e, i[1]) ? u[i[2]] = null : a(e, i[2]) && (u[i[1]] = null), u; + if (2 !== h && l) { + if (l >= 2) return r; + for (var c = 0; c < i.length; c++) { + var d = i[c]; + if (!o(r, d) && o(t, d)) { + r[d] = t[d]; + break + } + } + return r + } + return u + } + + function o(t, e) { + return t.hasOwnProperty(e) + } + + function a(t, e) { + return null != t[e] && "auto" !== t[e] + } + + function r(t, e, i) { + WM(t, function(t) { + e[t] = i[t] + }) + }!w(i) && (i = {}); + var s = i.ignoreSize; + !y(s) && (s = [s, s]); + var l = n(ZM[0], 0), + u = n(ZM[1], 1); + r(ZM[0], t, l), r(ZM[1], t, u) + } + + function da(t) { + return fa({}, t) + } + + function fa(t, e) { + return e && t && WM(HM, function(i) { + e.hasOwnProperty(i) && (t[i] = e[i]) + }), t + } + + function pa(t, e) { + for (var i = t.length, n = 0; n < i; n++) + if (t[n].length > e) return t[n]; + return t[i - 1] + } + + function ga(t) { + var e = t.get("coordinateSystem"), + i = { + coordSysName: e, + coordSysDims: [], + axisMap: R(), + categoryAxisMap: R() + }, + n = QM[e]; + if (n) return n(t, i, i.axisMap, i.categoryAxisMap), i + } + + function ma(t) { + return "category" === t.get("type") + } + + function va(t) { + this.fromDataset = t.fromDataset, this.data = t.data || (t.sourceFormat === nI ? {} : []), this.sourceFormat = t.sourceFormat || oI, this.seriesLayoutBy = t.seriesLayoutBy || rI, this.dimensionsDefine = t.dimensionsDefine, this.encodeDefine = t.encodeDefine && R(t.encodeDefine), this.startIndex = t.startIndex || 0, this.dimensionsDetectCount = t.dimensionsDetectCount + } + + function ya(t) { + var e = t.option.source, + i = oI; + if (S(e)) i = aI; + else if (y(e)) { + 0 === e.length && (i = eI); + for (var n = 0, o = e.length; n < o; n++) { + var a = e[n]; + if (null != a) { + if (y(a)) { + i = eI; + break + } + if (w(a)) { + i = iI; + break + } + } + } + } else if (w(e)) { + for (var r in e) + if (e.hasOwnProperty(r) && c(e[r])) { + i = nI; + break + } + } else if (null != e) throw new Error("Invalid data"); + lI(t).sourceFormat = i + } + + function xa(t) { + return lI(t).source + } + + function _a(t) { + lI(t).datasetMap = R() + } + + function wa(t) { + var e = t.option, + i = e.data, + n = S(i) ? aI : tI, + o = !1, + a = e.seriesLayoutBy, + r = e.sourceHeader, + s = e.dimensions, + l = Aa(t); + if (l) { + var u = l.option; + i = u.source, n = lI(l).sourceFormat, o = !0, a = a || u.seriesLayoutBy, null == r && (r = u.sourceHeader), s = s || u.dimensions + } + var h = ba(i, n, a, r, s), + c = e.encode; + !c && l && (c = Ta(t, l, i, n, a, h)), lI(t).source = new va({ + data: i, + fromDataset: o, + seriesLayoutBy: a, + sourceFormat: n, + dimensionsDefine: h.dimensionsDefine, + startIndex: h.startIndex, + dimensionsDetectCount: h.dimensionsDetectCount, + encodeDefine: c + }) + } + + function ba(t, e, i, n, o) { + if (!t) return { + dimensionsDefine: Sa(o) + }; + var a, r, s; + if (e === eI) "auto" === n || null == n ? Ma(function(t) { + null != t && "-" !== t && (_(t) ? null == r && (r = 1) : r = 0) + }, i, t, 10) : r = n ? 1 : 0, o || 1 !== r || (o = [], Ma(function(t, e) { + o[e] = null != t ? t : "" + }, i, t)), a = o ? o.length : i === sI ? t.length : t[0] ? t[0].length : null; + else if (e === iI) o || (o = Ia(t), s = !0); + else if (e === nI) o || (o = [], s = !0, d(t, function(t, e) { + o.push(e) + })); + else if (e === tI) { + var l = Li(t[0]); + a = y(l) && l.length || 1 + } + var u; + return s && d(o, function(t, e) { + "name" === (w(t) ? t.name : t) && (u = e) + }), { + startIndex: r, + dimensionsDefine: Sa(o), + dimensionsDetectCount: a, + potentialNameDimIndex: u + } + } + + function Sa(t) { + if (t) { + var e = R(); + return f(t, function(t, i) { + if (null == (t = a({}, w(t) ? t : { + name: t + })).name) return t; + t.name += "", null == t.displayName && (t.displayName = t.name); + var n = e.get(t.name); + return n ? t.name += "-" + n.count++ : e.set(t.name, { + count: 1 + }), t + }) + } + } + + function Ma(t, e, i, n) { + if (null == n && (n = 1 / 0), e === sI) + for (a = 0; a < i.length && a < n; a++) t(i[a] ? i[a][0] : null, a); + else + for (var o = i[0] || [], a = 0; a < o.length && a < n; a++) t(o[a], a) + } + + function Ia(t) { + for (var e, i = 0; i < t.length && !(e = t[i++]);); + if (e) { + var n = []; + return d(e, function(t, e) { + n.push(e) + }), n + } + } + + function Ta(t, e, i, n, o, a) { + var r = ga(t), + s = {}, + l = [], + u = [], + h = t.subType, + c = R(["pie", "map", "funnel"]), + f = R(["line", "bar", "pictorialBar", "scatter", "effectScatter", "candlestick", "boxplot"]); + if (r && null != f.get(h)) { + var p = t.ecModel, + g = lI(p).datasetMap, + m = e.uid + "_" + o, + v = g.get(m) || g.set(m, { + categoryWayDim: 1, + valueWayDim: 0 + }); + d(r.coordSysDims, function(t) { + if (null == r.firstCategoryDimIndex) { + e = v.valueWayDim++; + s[t] = e, u.push(e) + } else if (r.categoryAxisMap.get(t)) s[t] = 0, l.push(0); + else { + var e = v.categoryWayDim++; + s[t] = e, u.push(e) + } + }) + } else if (null != c.get(h)) { + for (var y, x = 0; x < 5 && null == y; x++) Ca(i, n, o, a.dimensionsDefine, a.startIndex, x) || (y = x); + if (null != y) { + s.value = y; + var _ = a.potentialNameDimIndex || Math.max(y - 1, 0); + u.push(_), l.push(_) + } + } + return l.length && (s.itemName = l), u.length && (s.seriesName = u), s + } + + function Aa(t) { + var e = t.option; + if (!e.data) return t.ecModel.getComponent("dataset", e.datasetIndex || 0) + } + + function Da(t, e) { + return Ca(t.data, t.sourceFormat, t.seriesLayoutBy, t.dimensionsDefine, t.startIndex, e) + } + + function Ca(t, e, i, n, o, a) { + function r(t) { + return (null == t || !isFinite(t) || "" === t) && (!(!_(t) || "-" === t) || void 0) + } + var s; + if (S(t)) return !1; + var l; + if (n && (l = w(l = n[a]) ? l.name : l), e === eI) + if (i === sI) { + for (var u = t[a], h = 0; h < (u || []).length && h < 5; h++) + if (null != (s = r(u[o + h]))) return s + } else + for (h = 0; h < t.length && h < 5; h++) { + var c = t[o + h]; + if (c && null != (s = r(c[a]))) return s + } else if (e === iI) { + if (!l) return; + for (h = 0; h < t.length && h < 5; h++) + if ((d = t[h]) && null != (s = r(d[l]))) return s + } else if (e === nI) { + if (!l) return; + if (!(u = t[l]) || S(u)) return !1; + for (h = 0; h < u.length && h < 5; h++) + if (null != (s = r(u[h]))) return s + } else if (e === tI) + for (h = 0; h < t.length && h < 5; h++) { + var d = t[h], + f = Li(d); + if (!y(f)) return !1; + if (null != (s = r(f[a]))) return s + } + return !1 + } + + function La(t, e) { + if (e) { + var i = e.seiresIndex, + n = e.seriesId, + o = e.seriesName; + return null != i && t.componentIndex !== i || null != n && t.id !== n || null != o && t.name !== o + } + } + + function ka(t, e) { + var o = t.color && !t.colorLayer; + d(e, function(e, a) { + "colorLayer" === a && o || YM.hasClass(a) || ("object" == typeof e ? t[a] = t[a] ? n(t[a], e, !1) : i(e) : null == t[a] && (t[a] = e)) + }) + } + + function Pa(t) { + t = t, this.option = {}, this.option[uI] = 1, this._componentsMap = R({ + series: [] + }), this._seriesIndices, this._seriesIndicesMap, ka(t, this._theme.option), n(t, KM, !1), this.mergeOption(t) + } + + function Na(t, e) { + y(e) || (e = e ? [e] : []); + var i = {}; + return d(e, function(e) { + i[e] = (t.get(e) || []).slice() + }), i + } + + function Oa(t, e, i) { + return e.type ? e.type : i ? i.subType : YM.determineSubType(t, e) + } + + function Ea(t, e) { + t._seriesIndicesMap = R(t._seriesIndices = f(e, function(t) { + return t.componentIndex + }) || []) + } + + function Ra(t, e) { + return e.hasOwnProperty("subType") ? g(t, function(t) { + return t.subType === e.subType + }) : t + } + + function za(t) { + d(cI, function(e) { + this[e] = m(t[e], t) + }, this) + } + + function Ba() { + this._coordinateSystems = [] + } + + function Va(t) { + this._api = t, this._timelineOptions = [], this._mediaList = [], this._mediaDefault, this._currentMediaIndices = [], this._optionBackup, this._newBaseOption + } + + function Ga(t, e, i) { + var n, o, a = [], + r = [], + s = t.timeline; + if (t.baseOption && (o = t.baseOption), (s || t.options) && (o = o || {}, a = (t.options || []).slice()), t.media) { + o = o || {}; + var l = t.media; + fI(l, function(t) { + t && t.option && (t.query ? r.push(t) : n || (n = t)) + }) + } + return o || (o = t), o.timeline || (o.timeline = s), fI([o].concat(a).concat(f(r, function(t) { + return t.option + })), function(t) { + fI(e, function(e) { + e(t, i) + }) + }), { + baseOption: o, + timelineOptions: a, + mediaDefault: n, + mediaList: r + } + } + + function Fa(t, e, i) { + var n = { + width: e, + height: i, + aspectratio: e / i + }, + o = !0; + return d(t, function(t, e) { + var i = e.match(vI); + if (i && i[1] && i[2]) { + var a = i[1], + r = i[2].toLowerCase(); + Wa(n[r], t, a) || (o = !1) + } + }), o + } + + function Wa(t, e, i) { + return "min" === i ? t >= e : "max" === i ? t <= e : t === e + } + + function Ha(t, e) { + return t.join(",") === e.join(",") + } + + function Za(t, e) { + fI(e = e || {}, function(e, i) { + if (null != e) { + var n = t[i]; + if (YM.hasClass(i)) { + e = Di(e); + var o = Pi(n = Di(n), e); + t[i] = gI(o, function(t) { + return t.option && t.exist ? mI(t.exist, t.option, !0) : t.exist || t.option + }) + } else t[i] = mI(n, e, !0) + } + }) + } + + function Ua(t) { + var e = t && t.itemStyle; + if (e) + for (var i = 0, o = _I.length; i < o; i++) { + var a = _I[i], + r = e.normal, + s = e.emphasis; + r && r[a] && (t[a] = t[a] || {}, t[a].normal ? n(t[a].normal, r[a]) : t[a].normal = r[a], r[a] = null), s && s[a] && (t[a] = t[a] || {}, t[a].emphasis ? n(t[a].emphasis, s[a]) : t[a].emphasis = s[a], s[a] = null) + } + } + + function Xa(t, e, i) { + if (t && t[e] && (t[e].normal || t[e].emphasis)) { + var n = t[e].normal, + o = t[e].emphasis; + n && (i ? (t[e].normal = t[e].emphasis = null, r(t[e], n)) : t[e] = n), o && (t.emphasis = t.emphasis || {}, t.emphasis[e] = o) + } + } + + function ja(t) { + Xa(t, "itemStyle"), Xa(t, "lineStyle"), Xa(t, "areaStyle"), Xa(t, "label"), Xa(t, "labelLine"), Xa(t, "upperLabel"), Xa(t, "edgeLabel") + } + + function Ya(t, e) { + var i = xI(t) && t[e], + n = xI(i) && i.textStyle; + if (n) + for (var o = 0, a = zb.length; o < a; o++) { + var e = zb[o]; + n.hasOwnProperty(e) && (i[e] = n[e]) + } + } + + function qa(t) { + t && (ja(t), Ya(t, "label"), t.emphasis && Ya(t.emphasis, "label")) + } + + function Ka(t) { + if (xI(t)) { + Ua(t), ja(t), Ya(t, "label"), Ya(t, "upperLabel"), Ya(t, "edgeLabel"), t.emphasis && (Ya(t.emphasis, "label"), Ya(t.emphasis, "upperLabel"), Ya(t.emphasis, "edgeLabel")); + var e = t.markPoint; + e && (Ua(e), qa(e)); + var i = t.markLine; + i && (Ua(i), qa(i)); + var n = t.markArea; + n && qa(n); + var o = t.data; + if ("graph" === t.type) { + o = o || t.nodes; + var a = t.links || t.edges; + if (a && !S(a)) + for (s = 0; s < a.length; s++) qa(a[s]); + d(t.categories, function(t) { + ja(t) + }) + } + if (o && !S(o)) + for (s = 0; s < o.length; s++) qa(o[s]); + if ((e = t.markPoint) && e.data) + for (var r = e.data, s = 0; s < r.length; s++) qa(r[s]); + if ((i = t.markLine) && i.data) + for (var l = i.data, s = 0; s < l.length; s++) y(l[s]) ? (qa(l[s][0]), qa(l[s][1])) : qa(l[s]); + "gauge" === t.type ? (Ya(t, "axisLabel"), Ya(t, "title"), Ya(t, "detail")) : "treemap" === t.type ? (Xa(t.breadcrumb, "itemStyle"), d(t.levels, function(t) { + ja(t) + })) : "tree" === t.type && ja(t.leaves) + } + } + + function $a(t) { + return y(t) ? t : t ? [t] : [] + } + + function Ja(t) { + return (y(t) ? t[0] : t) || {} + } + + function Qa(t, e) { + e = e.split(","); + for (var i = t, n = 0; n < e.length && null != (i = i && i[e[n]]); n++); + return i + } + + function tr(t, e, i, n) { + e = e.split(","); + for (var o, a = t, r = 0; r < e.length - 1; r++) null == a[o = e[r]] && (a[o] = {}), a = a[o]; + (n || null == a[e[r]]) && (a[e[r]] = i) + } + + function er(t) { + d(bI, function(e) { + e[0] in t && !(e[1] in t) && (t[e[1]] = t[e[0]]) + }) + } + + function ir(t) { + d(t, function(e, i) { + var n = [], + o = [NaN, NaN], + a = [e.stackResultDimension, e.stackedOverDimension], + r = e.data, + s = e.isStackedByIndex, + l = r.map(a, function(a, l, u) { + var h = r.get(e.stackedDimension, u); + if (isNaN(h)) return o; + var c, d; + s ? d = r.getRawIndex(u) : c = r.get(e.stackedByDimension, u); + for (var f = NaN, p = i - 1; p >= 0; p--) { + var g = t[p]; + if (s || (d = g.data.rawIndexOf(g.stackedByDimension, c)), d >= 0) { + var m = g.data.getByRawIndex(g.stackResultDimension, d); + if (h >= 0 && m > 0 || h <= 0 && m < 0) { + h += m, f = m; + break + } + } + } + return n[0] = h, n[1] = f, n + }); + r.hostModel.setData(l), e.data = l + }) + } + + function nr(t, e) { + va.isInstance(t) || (t = va.seriesDataToSource(t)), this._source = t; + var i = this._data = t.data, + n = t.sourceFormat; + n === aI && (this._offset = 0, this._dimSize = e, this._data = i), a(this, TI[n === eI ? n + "_" + t.seriesLayoutBy : n]) + } + + function or() { + return this._data.length + } + + function ar(t) { + return this._data[t] + } + + function rr(t) { + for (var e = 0; e < t.length; e++) this._data.push(t[e]) + } + + function sr(t, e, i, n) { + return null != i ? t[i] : t + } + + function lr(t, e, i, n) { + return ur(t[n], this._dimensionInfos[e]) + } + + function ur(t, e) { + var i = e && e.type; + if ("ordinal" === i) { + var n = e && e.ordinalMeta; + return n ? n.parseAndCollect(t) : t + } + return "time" === i && "number" != typeof t && null != t && "-" !== t && (t = +Uo(t)), null == t || "" === t ? NaN : +t + } + + function hr(t, e, i) { + if (t) { + var n = t.getRawDataItem(e); + if (null != n) { + var o, a, r = t.getProvider().getSource().sourceFormat, + s = t.getDimensionInfo(i); + return s && (o = s.name, a = s.index), AI[r](n, e, a, o) + } + } + } + + function cr(t, e, i) { + if (t) { + var n = t.getProvider().getSource().sourceFormat; + if (n === tI || n === iI) { + var o = t.getRawDataItem(e); + return n !== tI || w(o) || (o = null), o ? o[i] : void 0 + } + } + } + + function dr(t) { + return new fr(t) + } + + function fr(t) { + t = t || {}, this._reset = t.reset, this._plan = t.plan, this._count = t.count, this._onDirty = t.onDirty, this._dirty = !0, this.context + } + + function pr(t, e, i, n, o, a) { + PI.reset(i, n, o, a), t._callingProgress = e, t._callingProgress({ + start: i, + end: n, + count: n - i, + next: PI.next + }, t.context) + } + + function gr(t, e) { + t._dueIndex = t._outputDueEnd = t._dueEnd = 0, t._settedOutputEnd = null; + var i, n; + !e && t._reset && ((i = t._reset(t.context)) && i.progress && (n = i.forceFirstProgress, i = i.progress), y(i) && !i.length && (i = null)), t._progress = i, t._modBy = t._modDataCount = null; + var o = t._downstream; + return o && o.dirty(), n + } + + function mr(t) { + var e = t.name; + Oi(t) || (t.name = vr(t) || e) + } + + function vr(t) { + var e = t.getRawData(), + i = []; + return d(e.mapDimension("seriesName", !0), function(t) { + var n = e.getDimensionInfo(t); + n.displayName && i.push(n.displayName) + }), i.join(" ") + } + + function yr(t) { + return t.model.getRawData().count() + } + + function xr(t) { + var e = t.model; + return e.setData(e.getRawData().cloneShallow()), _r + } + + function _r(t, e) { + t.end > e.outputData.count() && e.model.getRawData().cloneShallow(e.outputData) + } + + function wr(t, e) { + d(t.CHANGABLE_METHODS, function(i) { + t.wrapMethod(i, v(br, e)) + }) + } + + function br(t) { + var e = Sr(t); + e && e.setOutputEnd(this.count()) + } + + function Sr(t) { + var e = (t.ecModel || {}).scheduler, + i = e && e.getPipeline(t.uid); + if (i) { + var n = i.currentTask; + if (n) { + var o = n.agentStubMap; + o && (n = o.get(t.uid)) + } + return n + } + } + + function Mr() { + this.group = new Zw, this.uid = No("viewChart"), this.renderTask = dr({ + plan: Ar, + reset: Dr + }), this.renderTask.context = { + view: this + } + } + + function Ir(t, e) { + if (t && (t.trigger(e), "group" === t.type)) + for (var i = 0; i < t.childCount(); i++) Ir(t.childAt(i), e) + } + + function Tr(t, e, i) { + var n = zi(t, e); + null != n ? d(Di(n), function(e) { + Ir(t.getItemGraphicEl(e), i) + }) : t.eachItemGraphicEl(function(t) { + Ir(t, i) + }) + } + + function Ar(t) { + return VI(t.model) + } + + function Dr(t) { + var e = t.model, + i = t.ecModel, + n = t.api, + o = t.payload, + a = e.pipelineContext.progressiveRender, + r = t.view, + s = o && BI(o).updateMethod, + l = a ? "incrementalPrepareRender" : s && r[s] ? s : "render"; + return "render" !== l && r[l](e, i, n, o), FI[l] + } + + function Cr(t, e, i) { + function n() { + h = (new Date).getTime(), c = null, t.apply(r, s || []) + } + var o, a, r, s, l, u = 0, + h = 0, + c = null; + e = e || 0; + var d = function() { + o = (new Date).getTime(), r = this, s = arguments; + var t = l || e, + d = l || i; + l = null, a = o - (d ? u : h) - t, clearTimeout(c), d ? c = setTimeout(n, t) : a >= 0 ? n() : c = setTimeout(n, -a), u = o + }; + return d.clear = function() { + c && (clearTimeout(c), c = null) + }, d.debounceNextCall = function(t) { + l = t + }, d + } + + function Lr(t, e, i, n) { + var o = t[e]; + if (o) { + var a = o[WI] || o, + r = o[ZI]; + if (o[HI] !== i || r !== n) { + if (null == i || !n) return t[e] = a; + (o = t[e] = Cr(a, i, "debounce" === n))[WI] = a, o[ZI] = n, o[HI] = i + } + return o + } + } + + function kr(t, e) { + var i = t[e]; + i && i[WI] && (t[e] = i[WI]) + } + + function Pr(t, e, i, n) { + this.ecInstance = t, this.api = e, this.unfinished; + var i = this._dataProcessorHandlers = i.slice(), + n = this._visualHandlers = n.slice(); + this._allHandlers = i.concat(n), this._stageTaskMap = R() + } + + function Nr(t, e, i, n, o) { + function a(t, e) { + return t.setDirty && (!t.dirtyMap || t.dirtyMap.get(e.__pipeline.id)) + } + o = o || {}; + var r; + d(e, function(e, s) { + if (!o.visualType || o.visualType === e.visualType) { + var l = t._stageTaskMap.get(e.uid), + u = l.seriesTaskMap, + h = l.overallTask; + if (h) { + var c, d = h.agentStubMap; + d.each(function(t) { + a(o, t) && (t.dirty(), c = !0) + }), c && h.dirty(), KI(h, n); + var f = t.getPerformArgs(h, o.block); + d.each(function(t) { + t.perform(f) + }), r |= h.perform(f) + } else u && u.each(function(s, l) { + a(o, s) && s.dirty(); + var u = t.getPerformArgs(s, o.block); + u.skip = !e.performRawSeries && i.isSeriesFiltered(s.context.model), KI(s, n), r |= s.perform(u) + }) + } + }), t.unfinished |= r + } + + function Or(t, e, i, n, o) { + function a(i) { + var a = i.uid, + s = r.get(a) || r.set(a, dr({ + plan: Gr, + reset: Fr, + count: Hr + })); + s.context = { + model: i, + ecModel: n, + api: o, + useClearVisual: e.isVisual && !e.isLayout, + plan: e.plan, + reset: e.reset, + scheduler: t + }, Zr(t, i, s) + } + var r = i.seriesTaskMap || (i.seriesTaskMap = R()), + s = e.seriesType, + l = e.getTargetSeries; + e.createOnAllSeries ? n.eachRawSeries(a) : s ? n.eachRawSeriesByType(s, a) : l && l(n, o).each(a); + var u = t._pipelineMap; + r.each(function(t, e) { + u.get(e) || (t.dispose(), r.removeKey(e)) + }) + } + + function Er(t, e, i, n, o) { + function a(e) { + var i = e.uid, + n = s.get(i); + n || (n = s.set(i, dr({ + reset: zr, + onDirty: Vr + })), r.dirty()), n.context = { + model: e, + overallProgress: h, + modifyOutputEnd: c + }, n.agent = r, n.__block = h, Zr(t, e, n) + } + var r = i.overallTask = i.overallTask || dr({ + reset: Rr + }); + r.context = { + ecModel: n, + api: o, + overallReset: e.overallReset, + scheduler: t + }; + var s = r.agentStubMap = r.agentStubMap || R(), + l = e.seriesType, + u = e.getTargetSeries, + h = !0, + c = e.modifyOutputEnd; + l ? n.eachRawSeriesByType(l, a) : u ? u(n, o).each(a) : (h = !1, d(n.getSeries(), a)); + var f = t._pipelineMap; + s.each(function(t, e) { + f.get(e) || (t.dispose(), r.dirty(), s.removeKey(e)) + }) + } + + function Rr(t) { + t.overallReset(t.ecModel, t.api, t.payload) + } + + function zr(t, e) { + return t.overallProgress && Br + } + + function Br() { + this.agent.dirty(), this.getDownstream().dirty() + } + + function Vr() { + this.agent && this.agent.dirty() + } + + function Gr(t) { + return t.plan && t.plan(t.model, t.ecModel, t.api, t.payload) + } + + function Fr(t) { + t.useClearVisual && t.data.clearAllVisual(); + var e = t.resetDefines = Di(t.reset(t.model, t.ecModel, t.api, t.payload)); + return e.length > 1 ? f(e, function(t, e) { + return Wr(e) + }) : $I + } + + function Wr(t) { + return function(e, i) { + var n = i.data, + o = i.resetDefines[t]; + if (o && o.dataEach) + for (var a = e.start; a < e.end; a++) o.dataEach(n, a); + else o && o.progress && o.progress(e, n) + } + } + + function Hr(t) { + return t.data.count() + } + + function Zr(t, e, i) { + var n = e.uid, + o = t._pipelineMap.get(n); + !o.head && (o.head = i), o.tail && o.tail.pipe(i), o.tail = i, i.__idxInPipeline = o.count++, i.__pipeline = o + } + + function Ur(t) { + JI = null; + try { + t(QI, tT) + } catch (t) {} + return JI + } + + function Xr(t, e) { + for (var i in e.prototype) t[i] = B + } + + function jr(t) { + for (_(t) && (t = (new DOMParser).parseFromString(t, "text/xml")), 9 === t.nodeType && (t = t.firstChild); + "svg" !== t.nodeName.toLowerCase() || 1 !== t.nodeType;) t = t.nextSibling; + return t + } + + function Yr() { + this._defs = {}, this._root = null, this._isDefine = !1, this._isText = !1 + } + + function qr(t, e) { + for (var i = t.firstChild; i;) { + if (1 === i.nodeType) { + var n = i.getAttribute("offset"); + n = n.indexOf("%") > 0 ? parseInt(n, 10) / 100 : n ? parseFloat(n) : 0; + var o = i.getAttribute("stop-color") || "#000000"; + e.addColorStop(n, o) + } + i = i.nextSibling + } + } + + function Kr(t, e) { + t && t.__inheritedStyle && (e.__inheritedStyle || (e.__inheritedStyle = {}), r(e.__inheritedStyle, t.__inheritedStyle)) + } + + function $r(t) { + for (var e = P(t).split(rT), i = [], n = 0; n < e.length; n += 2) { + var o = parseFloat(e[n]), + a = parseFloat(e[n + 1]); + i.push([o, a]) + } + return i + } + + function Jr(t, e, i, n) { + var o = e.__inheritedStyle || {}, + r = "text" === e.type; + if (1 === t.nodeType && (ts(t, e), a(o, es(t)), !n)) + for (var s in uT) + if (uT.hasOwnProperty(s)) { + var l = t.getAttribute(s); + null != l && (o[uT[s]] = l) + } var u = r ? "textFill" : "fill", + h = r ? "textStroke" : "stroke"; + e.style = e.style || new $w; + var c = e.style; + null != o.fill && c.set(u, Qr(o.fill, i)), null != o.stroke && c.set(h, Qr(o.stroke, i)), d(["lineWidth", "opacity", "fillOpacity", "strokeOpacity", "miterLimit", "fontSize"], function(t) { + var e = "lineWidth" === t && r ? "textStrokeWidth" : t; + null != o[t] && c.set(e, parseFloat(o[t])) + }), o.textBaseline && "auto" !== o.textBaseline || (o.textBaseline = "alphabetic"), "alphabetic" === o.textBaseline && (o.textBaseline = "bottom"), "start" === o.textAlign && (o.textAlign = "left"), "end" === o.textAlign && (o.textAlign = "right"), d(["lineDashOffset", "lineCap", "lineJoin", "fontWeight", "fontFamily", "fontStyle", "textAlign", "textBaseline"], function(t) { + null != o[t] && c.set(t, o[t]) + }), o.lineDash && (e.style.lineDash = P(o.lineDash).split(rT)), c[h] && "none" !== c[h] && (e[h] = !0), e.__inheritedStyle = o + } + + function Qr(t, e) { + var i = e && t && t.match(hT); + return i ? e[P(i[1])] : t + } + + function ts(t, e) { + var i = t.getAttribute("transform"); + if (i) { + var n = null, + o = []; + (i = i.replace(/,/g, " ")).replace(cT, function(t, e, i) { + o.push(e, i) + }); + for (var a = o.length - 1; a > 0; a -= 2) { + var r = o[a], + s = o[a - 1]; + switch (n = n || mt(), s) { + case "translate": + r = P(r).split(rT), _t(n, n, [parseFloat(r[0]), parseFloat(r[1] || 0)]); + break; + case "scale": + r = P(r).split(rT), bt(n, n, [parseFloat(r[0]), parseFloat(r[1] || r[0])]); + break; + case "rotate": + r = P(r).split(rT), wt(n, n, parseFloat(r[0])); + break; + case "skew": + r = P(r).split(rT), console.warn("Skew transform is not supported yet"); + break; + case "matrix": + r = P(r).split(rT); + n[0] = parseFloat(r[0]), n[1] = parseFloat(r[1]), n[2] = parseFloat(r[2]), n[3] = parseFloat(r[3]), n[4] = parseFloat(r[4]), n[5] = parseFloat(r[5]) + } + } + } + e.setLocalTransform(n) + } + + function es(t) { + var e = t.getAttribute("style"), + i = {}; + if (!e) return i; + var n = {}; + dT.lastIndex = 0; + for (var o; null != (o = dT.exec(e));) n[o[1]] = o[2]; + for (var a in uT) uT.hasOwnProperty(a) && null != n[a] && (i[uT[a]] = n[a]); + return i + } + + function is(t, e, i) { + var n = e / t.width, + o = i / t.height, + a = Math.min(n, o); + return { + scale: [a, a], + position: [-(t.x + t.width / 2) * a + e / 2, -(t.y + t.height / 2) * a + i / 2] + } + } + + function ns(t, e) { + return (new Yr).parse(t, e) + } + + function os(t) { + return function(e, i, n) { + e = e && e.toLowerCase(), aw.prototype[t].call(this, e, i, n) + } + } + + function as() { + aw.call(this) + } + + function rs(t, e, n) { + function o(t, e) { + return t.__prio - e.__prio + } + n = n || {}, "string" == typeof e && (e = BT[e]), this.id, this.group, this._dom = t; + var a = this._zr = Ii(t, { + renderer: n.renderer || "canvas", + devicePixelRatio: n.devicePixelRatio, + width: n.width, + height: n.height + }); + this._throttledZrFlush = Cr(m(a.flush, a), 17), (e = i(e)) && MI(e, !0), this._theme = e, this._chartsViews = [], this._chartsMap = {}, this._componentsViews = [], this._componentsMap = {}, this._coordSysMgr = new Ba; + var r = this._api = Ms(this); + ve(zT, o), ve(OT, o), this._scheduler = new Pr(this, r, OT, zT), aw.call(this, this._ecEventProcessor = new Is), this._messageCenter = new as, this._initEvents(), this.resize = m(this.resize, this), this._pendingActions = [], a.animation.on("frame", this._onframe, this), ps(a, this), N(this) + } + + function ss(t, e, i) { + var n, o = this._model, + a = this._coordSysMgr.getCoordinateSystems(); + e = Vi(o, e); + for (var r = 0; r < a.length; r++) { + var s = a[r]; + if (s[t] && null != (n = s[t](o, e, i))) return n + } + } + + function ls(t) { + var e = t._model, + i = t._scheduler; + i.restorePipelines(e), i.prepareStageTasks(), gs(t, "component", e, i), gs(t, "chart", e, i), i.plan() + } + + function us(t, e, i, n, o) { + function a(n) { + n && n.__alive && n[e] && n[e](n.__model, r, t._api, i) + } + var r = t._model; + if (n) { + var s = {}; + s[n + "Id"] = i[n + "Id"], s[n + "Index"] = i[n + "Index"], s[n + "Name"] = i[n + "Name"]; + var l = { + mainType: n, + query: s + }; + o && (l.subType = o); + var u = i.excludeSeriesId; + null != u && (u = R(Di(u))), r && r.eachComponent(l, function(e) { + u && null != u.get(e.id) || a(t["series" === n ? "_chartsMap" : "_componentsMap"][e.__viewId]) + }, t) + } else vT(t._componentsViews.concat(t._chartsViews), a) + } + + function hs(t, e) { + var i = t._chartsMap, + n = t._scheduler; + e.eachSeries(function(t) { + n.updateStreamModes(t, i[t.__viewId]) + }) + } + + function cs(t, e) { + var i = t.type, + n = t.escapeConnect, + o = PT[i], + s = o.actionInfo, + l = (s.update || "update").split(":"), + u = l.pop(); + l = null != l[0] && _T(l[0]), this[TT] = !0; + var h = [t], + c = !1; + t.batch && (c = !0, h = f(t.batch, function(e) { + return e = r(a({}, e), t), e.batch = null, e + })); + var d, p = [], + g = "highlight" === i || "downplay" === i; + vT(h, function(t) { + d = o.action(t, this._model, this._api), (d = d || a({}, t)).type = s.event || d.type, p.push(d), g ? us(this, u, t, "series") : l && us(this, u, t, l.main, l.sub) + }, this), "none" === u || g || l || (this[AT] ? (ls(this), LT.update.call(this, t), this[AT] = !1) : LT[u].call(this, t)), d = c ? { + type: s.event || i, + escapeConnect: n, + batch: p + } : p[0], this[TT] = !1, !e && this._messageCenter.trigger(d.type, d) + } + + function ds(t) { + for (var e = this._pendingActions; e.length;) { + var i = e.shift(); + cs.call(this, i, t) + } + } + + function fs(t) { + !t && this.trigger("updated") + } + + function ps(t, e) { + t.on("rendered", function() { + e.trigger("rendered"), !t.animation.isFinished() || e[AT] || e._scheduler.unfinished || e._pendingActions.length || e.trigger("finished") + }) + } + + function gs(t, e, i, n) { + function o(t) { + var e = "_ec_" + t.id + "_" + t.type, + o = s[e]; + if (!o) { + var h = _T(t.type); + (o = new(a ? EI.getClass(h.main, h.sub) : Mr.getClass(h.sub))).init(i, u), s[e] = o, r.push(o), l.add(o.group) + } + t.__viewId = o.__id = e, o.__alive = !0, o.__model = t, o.group.__ecComponentInfo = { + mainType: t.mainType, + index: t.componentIndex + }, !a && n.prepareView(o, t, i, u) + } + for (var a = "component" === e, r = a ? t._componentsViews : t._chartsViews, s = a ? t._componentsMap : t._chartsMap, l = t._zr, u = t._api, h = 0; h < r.length; h++) r[h].__alive = !1; + a ? i.eachComponent(function(t, e) { + "series" !== t && o(e) + }) : i.eachSeries(o); + for (h = 0; h < r.length;) { + var c = r[h]; + c.__alive ? h++ : (!a && c.renderTask.dispose(), l.remove(c.group), c.dispose(i, u), r.splice(h, 1), delete s[c.__id], c.__id = c.group.__ecComponentInfo = null) + } + } + + function ms(t) { + t.clearColorPalette(), t.eachSeries(function(t) { + t.clearColorPalette() + }) + } + + function vs(t, e, i, n) { + ys(t, e, i, n), vT(t._chartsViews, function(t) { + t.__alive = !1 + }), xs(t, e, i, n), vT(t._chartsViews, function(t) { + t.__alive || t.remove(e, i) + }) + } + + function ys(t, e, i, n, o) { + vT(o || t._componentsViews, function(t) { + var o = t.__model; + t.render(o, e, i, n), Ss(o, t) + }) + } + + function xs(t, e, i, n, o) { + var a, r = t._scheduler; + e.eachSeries(function(e) { + var i = t._chartsMap[e.__viewId]; + i.__alive = !0; + var s = i.renderTask; + r.updatePayload(s, n), o && o.get(e.uid) && s.dirty(), a |= s.perform(r.getPerformArgs(s)), i.group.silent = !!e.get("silent"), Ss(e, i), bs(e, i) + }), r.unfinished |= a, ws(t._zr, e), jI(t._zr.dom, e) + } + + function _s(t, e) { + vT(RT, function(i) { + i(t, e) + }) + } + + function ws(t, e) { + var i = t.storage, + n = 0; + i.traverse(function(t) { + t.isGroup || n++ + }), n > e.get("hoverLayerThreshold") && !z_.node && i.traverse(function(t) { + t.isGroup || (t.useHoverLayer = !0) + }) + } + + function bs(t, e) { + var i = t.get("blendMode") || null; + e.group.traverse(function(t) { + t.isGroup || t.style.blend !== i && t.setStyle("blend", i), t.eachPendingDisplayable && t.eachPendingDisplayable(function(t) { + t.setStyle("blend", i) + }) + }) + } + + function Ss(t, e) { + var i = t.get("z"), + n = t.get("zlevel"); + e.group.traverse(function(t) { + "group" !== t.type && (null != i && (t.z = i), null != n && (t.zlevel = n)) + }) + } + + function Ms(t) { + var e = t._coordSysMgr; + return a(new za(t), { + getCoordinateSystems: m(e.getCoordinateSystems, e), + getComponentByElement: function(e) { + for (; e;) { + var i = e.__ecComponentInfo; + if (null != i) return t._model.getComponent(i.mainType, i.index); + e = e.parent + } + } + }) + } + + function Is() { + this.eventInfo + } + + function Ts(t) { + function e(t, e) { + for (var n = 0; n < t.length; n++) t[n][i] = e + } + var i = "__connectUpdateStatus"; + vT(NT, function(n, o) { + t._messageCenter.on(o, function(n) { + if (FT[t.group] && 0 !== t[i]) { + if (n && n.escapeConnect) return; + var o = t.makeActionFromEvent(n), + a = []; + vT(GT, function(e) { + e !== t && e.group === t.group && a.push(e) + }), e(a, 0), vT(a, function(t) { + 1 !== t[i] && t.dispatchAction(o) + }), e(a, 2) + } + }) + }) + } + + function As(t) { + FT[t] = !1 + } + + function Ds(t) { + return GT[Wi(t, ZT)] + } + + function Cs(t, e) { + BT[t] = e + } + + function Ls(t) { + ET.push(t) + } + + function ks(t, e) { + Rs(OT, t, e, bT) + } + + function Ps(t, e, i) { + "function" == typeof e && (i = e, e = ""); + var n = xT(t) ? t.type : [t, t = { + event: e + }][0]; + t.event = (t.event || n).toLowerCase(), e = t.event, mT(DT.test(n) && DT.test(e)), PT[n] || (PT[n] = { + action: i, + actionInfo: t + }), NT[e] = n + } + + function Ns(t, e) { + Ba.register(t, e) + } + + function Os(t, e) { + Rs(zT, t, e, ST, "layout") + } + + function Es(t, e) { + Rs(zT, t, e, MT, "visual") + } + + function Rs(t, e, i, n, o) { + (yT(e) || xT(e)) && (i = e, e = n); + var a = Pr.wrapStageHandler(i, o); + return a.__prio = e, a.__raw = i, t.push(a), a + } + + function zs(t, e) { + VT[t] = e + } + + function Bs(t) { + return YM.extend(t) + } + + function Vs(t) { + return EI.extend(t) + } + + function Gs(t) { + return OI.extend(t) + } + + function Fs(t) { + return Mr.extend(t) + } + + function Ws(t) { + return t + } + + function Hs(t, e, i, n, o) { + this._old = t, this._new = e, this._oldKeyGetter = i || Ws, this._newKeyGetter = n || Ws, this.context = o + } + + function Zs(t, e, i, n, o) { + for (var a = 0; a < t.length; a++) { + var r = "_ec_" + o[n](t[a], a), + s = e[r]; + null == s ? (i.push(r), e[r] = a) : (s.length || (e[r] = s = [s]), s.push(a)) + } + } + + function Us(t) { + var e = {}, + i = e.encode = {}, + n = R(), + o = [], + a = []; + d(t.dimensions, function(e) { + var r = t.getDimensionInfo(e), + s = r.coordDim; + if (s) { + var l = i[s]; + i.hasOwnProperty(s) || (l = i[s] = []), l[r.coordDimIndex] = e, r.isExtraCoord || (n.set(s, 1), js(r.type) && (o[0] = e)), r.defaultTooltip && a.push(e) + } + jT.each(function(t, e) { + var n = i[e]; + i.hasOwnProperty(e) || (n = i[e] = []); + var o = r.otherDims[e]; + null != o && !1 !== o && (n[o] = r.name) + }) + }); + var r = [], + s = {}; + n.each(function(t, e) { + var n = i[e]; + s[e] = n[0], r = r.concat(n) + }), e.dataDimsOnCoord = r, e.encodeFirstDimNotExtra = s; + var l = i.label; + l && l.length && (o = l.slice()); + var u = i.tooltip; + return u && u.length ? a = u.slice() : a.length || (a = o.slice()), i.defaultedLabel = o, i.defaultedTooltip = a, e + } + + function Xs(t) { + return "category" === t ? "ordinal" : "time" === t ? "time" : "float" + } + + function js(t) { + return !("ordinal" === t || "time" === t) + } + + function Ys(t) { + return t._rawCount > 65535 ? $T : JT + } + + function qs(t) { + var e = t.constructor; + return e === Array ? t.slice() : new e(t) + } + + function Ks(t, e) { + d(QT.concat(e.__wrappedMethods || []), function(i) { + e.hasOwnProperty(i) && (t[i] = e[i]) + }), t.__wrappedMethods = e.__wrappedMethods, d(tA, function(n) { + t[n] = i(e[n]) + }), t._calculationInfo = a(e._calculationInfo) + } + + function $s(t) { + var e = t._invertedIndicesMap; + d(e, function(i, n) { + var o = t._dimensionInfos[n].ordinalMeta; + if (o) { + i = e[n] = new $T(o.categories.length); + for (a = 0; a < i.length; a++) i[a] = NaN; + for (var a = 0; a < t._count; a++) i[t.get(n, a)] = a + } + }) + } + + function Js(t, e, i) { + var n; + if (null != e) { + var o = t._chunkSize, + a = Math.floor(i / o), + r = i % o, + s = t.dimensions[e], + l = t._storage[s][a]; + if (l) { + n = l[r]; + var u = t._dimensionInfos[s].ordinalMeta; + u && u.categories.length && (n = u.categories[n]) + } + } + return n + } + + function Qs(t) { + return t + } + + function tl(t) { + return t < this._count && t >= 0 ? this._indices[t] : -1 + } + + function el(t, e) { + var i = t._idList[e]; + return null == i && (i = Js(t, t._idDimIdx, e)), null == i && (i = qT + e), i + } + + function il(t) { + return y(t) || (t = [t]), t + } + + function nl(t, e) { + var i = t.dimensions, + n = new eA(f(i, t.getDimensionInfo, t), t.hostModel); + Ks(n, t); + for (var o = n._storage = {}, a = t._storage, r = 0; r < i.length; r++) { + var s = i[r]; + a[s] && (l(e, s) >= 0 ? (o[s] = ol(a[s]), n._rawExtent[s] = al(), n._extent[s] = null) : o[s] = a[s]) + } + return n + } + + function ol(t) { + for (var e = new Array(t.length), i = 0; i < t.length; i++) e[i] = qs(t[i]); + return e + } + + function al() { + return [1 / 0, -1 / 0] + } + + function rl(t, e, n) { + function o(t, e, i) { + null != jT.get(e) ? t.otherDims[e] = i : (t.coordDim = e, t.coordDimIndex = i, h.set(e, !0)) + } + va.isInstance(e) || (e = va.seriesDataToSource(e)), n = n || {}, t = (t || []).slice(); + for (var s = (n.dimsDef || []).slice(), l = R(n.encodeDef), u = R(), h = R(), c = [], f = sl(e, t, s, n.dimCount), p = 0; p < f; p++) { + var g = s[p] = a({}, w(s[p]) ? s[p] : { + name: s[p] + }), + m = g.name, + v = c[p] = { + otherDims: {} + }; + null != m && null == u.get(m) && (v.name = v.displayName = m, u.set(m, p)), null != g.type && (v.type = g.type), null != g.displayName && (v.displayName = g.displayName) + } + l.each(function(t, e) { + if (1 === (t = Di(t).slice()).length && t[0] < 0) l.set(e, !1); + else { + var i = l.set(e, []); + d(t, function(t, n) { + _(t) && (t = u.get(t)), null != t && t < f && (i[n] = t, o(c[t], e, n)) + }) + } + }); + var y = 0; + d(t, function(t, e) { + var n, t, a, s; + if (_(t)) n = t, t = {}; + else { + n = t.name; + var u = t.ordinalMeta; + t.ordinalMeta = null, (t = i(t)).ordinalMeta = u, a = t.dimsDef, s = t.otherDims, t.name = t.coordDim = t.coordDimIndex = t.dimsDef = t.otherDims = null + } + var h = l.get(n); + if (!1 !== h) { + if (!(h = Di(h)).length) + for (var f = 0; f < (a && a.length || 1); f++) { + for (; y < c.length && null != c[y].coordDim;) y++; + y < c.length && h.push(y++) + } + d(h, function(e, i) { + var l = c[e]; + if (o(r(l, t), n, i), null == l.name && a) { + var u = a[i]; + !w(u) && (u = { + name: u + }), l.name = l.displayName = u.name, l.defaultTooltip = u.defaultTooltip + } + s && r(l.otherDims, s) + }) + } + }); + var x = n.generateCoord, + b = n.generateCoordCount, + S = null != b; + b = x ? b || 1 : 0; + for (var M = x || "value", I = 0; I < f; I++) null == (v = c[I] = c[I] || {}).coordDim && (v.coordDim = ll(M, h, S), v.coordDimIndex = 0, (!x || b <= 0) && (v.isExtraCoord = !0), b--), null == v.name && (v.name = ll(v.coordDim, u)), null == v.type && Da(e, I, v.name) && (v.type = "ordinal"); + return c + } + + function sl(t, e, i, n) { + var o = Math.max(t.dimensionsDetectCount || 1, e.length, i.length, n || 0); + return d(e, function(t) { + var e = t.dimsDef; + e && (o = Math.max(o, e.length)) + }), o + } + + function ll(t, e, i) { + if (i || null != e.get(t)) { + for (var n = 0; null != e.get(t + n);) n++; + t += n + } + return e.set(t, !0), t + } + + function ul(t, e, i) { + var n, o, a, r, s = (i = i || {}).byIndex, + l = i.stackedCoordDimension, + u = !(!t || !t.get("stack")); + if (d(e, function(t, i) { + _(t) && (e[i] = t = { + name: t + }), u && !t.isExtraCoord && (s || n || !t.ordinalMeta || (n = t), o || "ordinal" === t.type || "time" === t.type || l && l !== t.coordDim || (o = t)) + }), !o || s || n || (s = !0), o) { + a = "__\0ecstackresult", r = "__\0ecstackedover", n && (n.createInvertedIndices = !0); + var h = o.coordDim, + c = o.type, + f = 0; + d(e, function(t) { + t.coordDim === h && f++ + }), e.push({ + name: a, + coordDim: h, + coordDimIndex: f, + type: c, + isExtraCoord: !0, + isCalculationCoord: !0 + }), f++, e.push({ + name: r, + coordDim: r, + coordDimIndex: f, + type: c, + isExtraCoord: !0, + isCalculationCoord: !0 + }) + } + return { + stackedDimension: o && o.name, + stackedByDimension: n && n.name, + isStackedByIndex: s, + stackedOverDimension: r, + stackResultDimension: a + } + } + + function hl(t, e) { + return !!e && e === t.getCalculationInfo("stackedDimension") + } + + function cl(t, e) { + return hl(t, e) ? t.getCalculationInfo("stackResultDimension") : e + } + + function dl(t, e, i) { + i = i || {}, va.isInstance(t) || (t = va.seriesDataToSource(t)); + var n, o = e.get("coordinateSystem"), + a = Ba.get(o), + r = ga(e); + r && (n = f(r.coordSysDims, function(t) { + var e = { + name: t + }, + i = r.axisMap.get(t); + if (i) { + var n = i.get("type"); + e.type = Xs(n) + } + return e + })), n || (n = a && (a.getDimensionsInfo ? a.getDimensionsInfo() : a.dimensions.slice()) || ["x", "y"]); + var s, l, u = oA(t, { + coordDimensions: n, + generateCoord: i.generateCoord + }); + r && d(u, function(t, e) { + var i = t.coordDim, + n = r.categoryAxisMap.get(i); + n && (null == s && (s = e), t.ordinalMeta = n.getOrdinalMeta()), null != t.otherDims.itemName && (l = !0) + }), l || null == s || (u[s].otherDims.itemName = 0); + var h = ul(e, u), + c = new eA(u, e); + c.setCalculationInfo(h); + var p = null != s && fl(t) ? function(t, e, i, n) { + return n === s ? i : this.defaultDimValueGetter(t, e, i, n) + } : null; + return c.hasItemOption = !1, c.initData(t, null, p), c + } + + function fl(t) { + if (t.sourceFormat === tI) { + var e = pl(t.data || []); + return null != e && !y(Li(e)) + } + } + + function pl(t) { + for (var e = 0; e < t.length && null == t[e];) e++; + return t[e] + } + + function gl(t) { + this._setting = t || {}, this._extent = [1 / 0, -1 / 0], this._interval = 0, this.init && this.init.apply(this, arguments) + } + + function ml(t) { + this.categories = t.categories || [], this._needCollect = t.needCollect, this._deduplication = t.deduplication, this._map + } + + function vl(t) { + return t._map || (t._map = R(t.categories)) + } + + function yl(t) { + return w(t) && null != t.value ? t.value : t + "" + } + + function xl(t, e, i, n) { + var o = {}, + a = t[1] - t[0], + r = o.interval = Yo(a / e, !0); + null != i && r < i && (r = o.interval = i), null != n && r > n && (r = o.interval = n); + var s = o.intervalPrecision = _l(r); + return bl(o.niceTickExtent = [lA(Math.ceil(t[0] / r) * r, s), lA(Math.floor(t[1] / r) * r, s)], t), o + } + + function _l(t) { + return Go(t) + 2 + } + + function wl(t, e, i) { + t[e] = Math.max(Math.min(t[e], i[1]), i[0]) + } + + function bl(t, e) { + !isFinite(t[0]) && (t[0] = e[0]), !isFinite(t[1]) && (t[1] = e[1]), wl(t, 0, e), wl(t, 1, e), t[0] > t[1] && (t[0] = t[1]) + } + + function Sl(t, e, i, n) { + var o = []; + if (!t) return o; + e[0] < i[0] && o.push(e[0]); + for (var a = i[0]; a <= i[1] && (o.push(a), (a = lA(a + t, n)) !== o[o.length - 1]);) + if (o.length > 1e4) return []; + return e[1] > (o.length ? o[o.length - 1] : i[1]) && o.push(e[1]), o + } + + function Ml(t) { + return t.get("stack") || cA + t.seriesIndex + } + + function Il(t) { + return t.dim + t.index + } + + function Tl(t) { + var e = [], + i = t.axis; + if ("category" === i.type) { + for (var n = i.getBandWidth(), o = 0; o < t.count; o++) e.push(r({ + bandWidth: n, + axisKey: "axis0", + stackId: cA + o + }, t)); + for (var a = Cl(e), s = [], o = 0; o < t.count; o++) { + var l = a.axis0[cA + o]; + l.offsetCenter = l.offset + l.width / 2, s.push(l) + } + return s + } + } + + function Al(t, e) { + var i = []; + return e.eachSeriesByType(t, function(t) { + Pl(t) && !Nl(t) && i.push(t) + }), i + } + + function Dl(t) { + var e = []; + return d(t, function(t) { + var i = t.getData(), + n = t.coordinateSystem.getBaseAxis(), + o = n.getExtent(), + a = "category" === n.type ? n.getBandWidth() : Math.abs(o[1] - o[0]) / i.count(), + r = Ro(t.get("barWidth"), a), + s = Ro(t.get("barMaxWidth"), a), + l = t.get("barGap"), + u = t.get("barCategoryGap"); + e.push({ + bandWidth: a, + barWidth: r, + barMaxWidth: s, + barGap: l, + barCategoryGap: u, + axisKey: Il(n), + stackId: Ml(t) + }) + }), Cl(e) + } + + function Cl(t) { + var e = {}; + d(t, function(t, i) { + var n = t.axisKey, + o = t.bandWidth, + a = e[n] || { + bandWidth: o, + remainedWidth: o, + autoWidthCount: 0, + categoryGap: "20%", + gap: "30%", + stacks: {} + }, + r = a.stacks; + e[n] = a; + var s = t.stackId; + r[s] || a.autoWidthCount++, r[s] = r[s] || { + width: 0, + maxWidth: 0 + }; + var l = t.barWidth; + l && !r[s].width && (r[s].width = l, l = Math.min(a.remainedWidth, l), a.remainedWidth -= l); + var u = t.barMaxWidth; + u && (r[s].maxWidth = u); + var h = t.barGap; + null != h && (a.gap = h); + var c = t.barCategoryGap; + null != c && (a.categoryGap = c) + }); + var i = {}; + return d(e, function(t, e) { + i[e] = {}; + var n = t.stacks, + o = t.bandWidth, + a = Ro(t.categoryGap, o), + r = Ro(t.gap, 1), + s = t.remainedWidth, + l = t.autoWidthCount, + u = (s - a) / (l + (l - 1) * r); + u = Math.max(u, 0), d(n, function(t, e) { + var i = t.maxWidth; + i && i < u && (i = Math.min(i, s), t.width && (i = Math.min(i, t.width)), s -= i, t.width = i, l--) + }), u = (s - a) / (l + (l - 1) * r), u = Math.max(u, 0); + var h, c = 0; + d(n, function(t, e) { + t.width || (t.width = u), h = t, c += t.width * (1 + r) + }), h && (c -= h.width * r); + var f = -c / 2; + d(n, function(t, n) { + i[e][n] = i[e][n] || { + offset: f, + width: t.width + }, f += t.width * (1 + r) + }) + }), i + } + + function Ll(t, e, i) { + if (t && e) { + var n = t[Il(e)]; + return null != n && null != i && (n = n[Ml(i)]), n + } + } + + function kl(t, e) { + var i = Al(t, e), + n = Dl(i), + o = {}; + d(i, function(t) { + var e = t.getData(), + i = t.coordinateSystem, + a = i.getBaseAxis(), + r = Ml(t), + s = n[Il(a)][r], + l = s.offset, + u = s.width, + h = i.getOtherAxis(a), + c = t.get("barMinHeight") || 0; + o[r] = o[r] || [], e.setLayout({ + offset: l, + size: u + }); + for (var d = e.mapDimension(h.dim), f = e.mapDimension(a.dim), p = hl(e, d), g = h.isHorizontal(), m = Ol(a, h, p), v = 0, y = e.count(); v < y; v++) { + var x = e.get(d, v), + _ = e.get(f, v); + if (!isNaN(x)) { + var w = x >= 0 ? "p" : "n", + b = m; + p && (o[r][_] || (o[r][_] = { + p: m, + n: m + }), b = o[r][_][w]); + var S, M, I, T; + if (g) S = b, M = (A = i.dataToPoint([x, _]))[1] + l, I = A[0] - m, T = u, Math.abs(I) < c && (I = (I < 0 ? -1 : 1) * c), p && (o[r][_][w] += I); + else { + var A = i.dataToPoint([_, x]); + S = A[0] + l, M = b, I = u, T = A[1] - m, Math.abs(T) < c && (T = (T <= 0 ? -1 : 1) * c), p && (o[r][_][w] += T) + } + e.setItemLayout(v, { + x: S, + y: M, + width: I, + height: T + }) + } + } + }, this) + } + + function Pl(t) { + return t.coordinateSystem && "cartesian2d" === t.coordinateSystem.type + } + + function Nl(t) { + return t.pipelineContext && t.pipelineContext.large + } + + function Ol(t, e, i) { + var n, o, a = e.getGlobalExtent(); + a[0] > a[1] ? (n = a[1], o = a[0]) : (n = a[0], o = a[1]); + var r = e.toGlobalCoord(e.dataToCoord(0)); + return r < n && (r = n), r > o && (r = o), r + } + + function El(t, e) { + return SA(t, bA(e)) + } + + function Rl(t, e) { + var i, n, o, a = t.type, + r = e.getMin(), + s = e.getMax(), + l = null != r, + u = null != s, + h = t.getExtent(); + "ordinal" === a ? i = e.getCategories().length : (y(n = e.get("boundaryGap")) || (n = [n || 0, n || 0]), "boolean" == typeof n[0] && (n = [0, 0]), n[0] = Ro(n[0], 1), n[1] = Ro(n[1], 1), o = h[1] - h[0] || Math.abs(h[0])), null == r && (r = "ordinal" === a ? i ? 0 : NaN : h[0] - n[0] * o), null == s && (s = "ordinal" === a ? i ? i - 1 : NaN : h[1] + n[1] * o), "dataMin" === r ? r = h[0] : "function" == typeof r && (r = r({ + min: h[0], + max: h[1] + })), "dataMax" === s ? s = h[1] : "function" == typeof s && (s = s({ + min: h[0], + max: h[1] + })), (null == r || !isFinite(r)) && (r = NaN), (null == s || !isFinite(s)) && (s = NaN), t.setBlank(I(r) || I(s) || "ordinal" === a && !t.getOrdinalMeta().categories.length), e.getNeedCrossZero() && (r > 0 && s > 0 && !l && (r = 0), r < 0 && s < 0 && !u && (s = 0)); + var c = e.ecModel; + if (c && "time" === a) { + var f, p = Al("bar", c); + if (d(p, function(t) { + f |= t.getBaseAxis() === e.axis + }), f) { + var g = Dl(p), + m = zl(r, s, e, g); + r = m.min, s = m.max + } + } + return [r, s] + } + + function zl(t, e, i, n) { + var o = i.axis.getExtent(), + a = o[1] - o[0], + r = Ll(n, i.axis); + if (void 0 === r) return { + min: t, + max: e + }; + var s = 1 / 0; + d(r, function(t) { + s = Math.min(t.offset, s) + }); + var l = -1 / 0; + d(r, function(t) { + l = Math.max(t.offset + t.width, l) + }), s = Math.abs(s), l = Math.abs(l); + var u = s + l, + h = e - t, + c = h / (1 - (s + l) / a) - h; + return e += c * (l / u), t -= c * (s / u), { + min: t, + max: e + } + } + + function Bl(t, e) { + var i = Rl(t, e), + n = null != e.getMin(), + o = null != e.getMax(), + a = e.get("splitNumber"); + "log" === t.type && (t.base = e.get("logBase")); + var r = t.type; + t.setExtent(i[0], i[1]), t.niceExtent({ + splitNumber: a, + fixMin: n, + fixMax: o, + minInterval: "interval" === r || "time" === r ? e.get("minInterval") : null, + maxInterval: "interval" === r || "time" === r ? e.get("maxInterval") : null + }); + var s = e.get("interval"); + null != s && t.setInterval && t.setInterval(s) + } + + function Vl(t, e) { + if (e = e || t.get("type")) switch (e) { + case "category": + return new sA(t.getOrdinalMeta ? t.getOrdinalMeta() : t.getCategories(), [1 / 0, -1 / 0]); + case "value": + return new hA; + default: + return (gl.getClass(e) || hA).create(t) + } + } + + function Gl(t) { + var e = t.scale.getExtent(), + i = e[0], + n = e[1]; + return !(i > 0 && n > 0 || i < 0 && n < 0) + } + + function Fl(t) { + var e = t.getLabelModel().get("formatter"), + i = "category" === t.type ? t.scale.getExtent()[0] : null; + return "string" == typeof e ? e = function(e) { + return function(i) { + return i = t.scale.getLabel(i), e.replace("{value}", null != i ? i : "") + } + }(e) : "function" == typeof e ? function(n, o) { + return null != i && (o = n - i), e(Wl(t, n), o) + } : function(e) { + return t.scale.getLabel(e) + } + } + + function Wl(t, e) { + return "category" === t.type ? t.scale.getLabel(e) : e + } + + function Hl(t) { + var e = t.model, + i = t.scale; + if (e.get("axisLabel.show") && !i.isBlank()) { + var n, o, a = "category" === t.type, + r = i.getExtent(); + o = a ? i.count() : (n = i.getTicks()).length; + var s, l = t.getLabelModel(), + u = Fl(t), + h = 1; + o > 40 && (h = Math.ceil(o / 40)); + for (var c = 0; c < o; c += h) { + var d = u(n ? n[c] : r[0] + c), + f = Zl(l.getTextRect(d), l.get("rotate") || 0); + s ? s.union(f) : s = f + } + return s + } + } + + function Zl(t, e) { + var i = e * Math.PI / 180, + n = t.plain(), + o = n.width, + a = n.height, + r = o * Math.cos(i) + a * Math.sin(i), + s = o * Math.sin(i) + a * Math.cos(i); + return new ue(n.x, n.y, r, s) + } + + function Ul(t, e) { + if ("image" !== this.type) { + var i = this.style, + n = this.shape; + n && "line" === n.symbolType ? i.stroke = t : this.__isEmptyBrush ? (i.stroke = t, i.fill = e || "#fff") : (i.fill && (i.fill = t), i.stroke && (i.stroke = t)), this.dirty(!1) + } + } + + function Xl(t, e, i, n, o, a, r) { + var s = 0 === t.indexOf("empty"); + s && (t = t.substr(5, 1).toLowerCase() + t.substr(6)); + var l; + return l = 0 === t.indexOf("image://") ? Hn(t.slice(8), new ue(e, i, n, o), r ? "center" : "cover") : 0 === t.indexOf("path://") ? Wn(t.slice(7), {}, new ue(e, i, n, o), r ? "center" : "cover") : new RA({ + shape: { + symbolType: t, + x: e, + y: i, + width: n, + height: o + } + }), l.__isEmptyBrush = s, l.setColor = Ul, l.setColor(a), l + } + + function jl(t, e) { + return Math.abs(t - e) < VA + } + + function Yl(t, e, i) { + var n = 0, + o = t[0]; + if (!o) return !1; + for (var a = 1; a < t.length; a++) { + var r = t[a]; + n += bn(o[0], o[1], r[0], r[1], e, i), o = r + } + var s = t[0]; + return jl(o[0], s[0]) && jl(o[1], s[1]) || (n += bn(o[0], o[1], s[0], s[1], e, i)), 0 !== n + } + + function ql(t, e, i) { + if (this.name = t, this.geometries = e, i) i = [i[0], i[1]]; + else { + var n = this.getBoundingRect(); + i = [n.x + n.width / 2, n.y + n.height / 2] + } + this.center = i + } + + function Kl(t) { + if (!t.UTF8Encoding) return t; + var e = t.UTF8Scale; + null == e && (e = 1024); + for (var i = t.features, n = 0; n < i.length; n++) + for (var o = i[n].geometry, a = o.coordinates, r = o.encodeOffsets, s = 0; s < a.length; s++) { + var l = a[s]; + if ("Polygon" === o.type) a[s] = $l(l, r[s], e); + else if ("MultiPolygon" === o.type) + for (var u = 0; u < l.length; u++) { + var h = l[u]; + l[u] = $l(h, r[s][u], e) + } + } + return t.UTF8Encoding = !1, t + } + + function $l(t, e, i) { + for (var n = [], o = e[0], a = e[1], r = 0; r < t.length; r += 2) { + var s = t.charCodeAt(r) - 64, + l = t.charCodeAt(r + 1) - 64; + s = s >> 1 ^ -(1 & s), l = l >> 1 ^ -(1 & l), o = s += o, a = l += a, n.push([s / i, l / i]) + } + return n + } + + function Jl(t) { + return "category" === t.type ? tu(t) : nu(t) + } + + function Ql(t, e) { + return "category" === t.type ? iu(t, e) : { + ticks: t.scale.getTicks() + } + } + + function tu(t) { + var e = t.getLabelModel(), + i = eu(t, e); + return !e.get("show") || t.scale.isBlank() ? { + labels: [], + labelCategoryInterval: i.labelCategoryInterval + } : i + } + + function eu(t, e) { + var i = ou(t, "labels"), + n = du(e), + o = au(i, n); + if (o) return o; + var a, r; + return a = x(n) ? cu(t, n) : hu(t, r = "auto" === n ? su(t) : n), ru(i, n, { + labels: a, + labelCategoryInterval: r + }) + } + + function iu(t, e) { + var i = ou(t, "ticks"), + n = du(e), + o = au(i, n); + if (o) return o; + var a, r; + if (e.get("show") && !t.scale.isBlank() || (a = []), x(n)) a = cu(t, n, !0); + else if ("auto" === n) { + var s = eu(t, t.getLabelModel()); + r = s.labelCategoryInterval, a = f(s.labels, function(t) { + return t.tickValue + }) + } else a = hu(t, r = n, !0); + return ru(i, n, { + ticks: a, + tickCategoryInterval: r + }) + } + + function nu(t) { + var e = t.scale.getTicks(), + i = Fl(t); + return { + labels: f(e, function(e, n) { + return { + formattedLabel: i(e, n), + rawLabel: t.scale.getLabel(e), + tickValue: e + } + }) + } + } + + function ou(t, e) { + return FA(t)[e] || (FA(t)[e] = []) + } + + function au(t, e) { + for (var i = 0; i < t.length; i++) + if (t[i].key === e) return t[i].value + } + + function ru(t, e, i) { + return t.push({ + key: e, + value: i + }), i + } + + function su(t) { + var e = FA(t).autoInterval; + return null != e ? e : FA(t).autoInterval = t.calculateCategoryInterval() + } + + function lu(t) { + var e = uu(t), + i = Fl(t), + n = (e.axisRotate - e.labelRotate) / 180 * Math.PI, + o = t.scale, + a = o.getExtent(), + r = o.count(); + if (a[1] - a[0] < 1) return 0; + var s = 1; + r > 40 && (s = Math.max(1, Math.floor(r / 40))); + for (var l = a[0], u = t.dataToCoord(l + 1) - t.dataToCoord(l), h = Math.abs(u * Math.cos(n)), c = Math.abs(u * Math.sin(n)), d = 0, f = 0; l <= a[1]; l += s) { + var p = 0, + g = 0, + m = De(i(l), e.font, "center", "top"); + p = 1.3 * m.width, g = 1.3 * m.height, d = Math.max(d, p, 7), f = Math.max(f, g, 7) + } + var v = d / h, + y = f / c; + isNaN(v) && (v = 1 / 0), isNaN(y) && (y = 1 / 0); + var x = Math.max(0, Math.floor(Math.min(v, y))), + _ = FA(t.model), + w = _.lastAutoInterval, + b = _.lastTickCount; + return null != w && null != b && Math.abs(w - x) <= 1 && Math.abs(b - r) <= 1 && w > x ? x = w : (_.lastTickCount = r, _.lastAutoInterval = x), x + } + + function uu(t) { + var e = t.getLabelModel(); + return { + axisRotate: t.getRotate ? t.getRotate() : t.isHorizontal && !t.isHorizontal() ? 90 : 0, + labelRotate: e.get("rotate") || 0, + font: e.getFont() + } + } + + function hu(t, e, i) { + function n(t) { + l.push(i ? t : { + formattedLabel: o(t), + rawLabel: a.getLabel(t), + tickValue: t + }) + } + var o = Fl(t), + a = t.scale, + r = a.getExtent(), + s = t.getLabelModel(), + l = [], + u = Math.max((e || 0) + 1, 1), + h = r[0], + c = a.count(); + 0 !== h && u > 1 && c / u > 2 && (h = Math.round(Math.ceil(h / u) * u)); + var d = { + min: s.get("showMinLabel"), + max: s.get("showMaxLabel") + }; + d.min && h !== r[0] && n(r[0]); + for (var f = h; f <= r[1]; f += u) n(f); + return d.max && f !== r[1] && n(r[1]), l + } + + function cu(t, e, i) { + var n = t.scale, + o = Fl(t), + a = []; + return d(n.getTicks(), function(t) { + var r = n.getLabel(t); + e(t, r) && a.push(i ? t : { + formattedLabel: o(t), + rawLabel: r, + tickValue: t + }) + }), a + } + + function du(t) { + var e = t.get("interval"); + return null == e ? "auto" : e + } + + function fu(t, e) { + var i = (t[1] - t[0]) / e / 2; + t[0] += i, t[1] -= i + } + + function pu(t, e, i, n, o) { + function a(t, e) { + return h ? t > e : t < e + } + var r = e.length; + if (t.onBand && !n && r) { + var s, l = t.getExtent(); + if (1 === r) e[0].coord = l[0], s = e[1] = { + coord: l[0] + }; + else { + var u = e[1].coord - e[0].coord; + d(e, function(t) { + t.coord -= u / 2; + var e = e || 0; + e % 2 > 0 && (t.coord -= u / (2 * (e + 1))) + }), s = { + coord: e[r - 1].coord + u + }, e.push(s) + } + var h = l[0] > l[1]; + a(e[0].coord, l[0]) && (o ? e[0].coord = l[0] : e.shift()), o && a(l[0], e[0].coord) && e.unshift({ + coord: l[0] + }), a(l[1], s.coord) && (o ? s.coord = l[1] : e.pop()), o && a(s.coord, l[1]) && e.push({ + coord: l[1] + }) + } + } + + function gu(t, e) { + var i = t.mapDimension("defaultedLabel", !0), + n = i.length; + if (1 === n) return hr(t, e, i[0]); + if (n) { + for (var o = [], a = 0; a < i.length; a++) { + var r = hr(t, e, i[a]); + o.push(r) + } + return o.join(" ") + } + } + + function mu(t, e, i) { + Zw.call(this), this.updateData(t, e, i) + } + + function vu(t) { + return [t[0] / 2, t[1] / 2] + } + + function yu(t, e) { + this.parent.drift(t, e) + } + + function xu() { + !oo(this) && wu.call(this) + } + + function _u() { + !oo(this) && bu.call(this) + } + + function wu() { + if (!this.incremental && !this.useHoverLayer) { + var t = this.__symbolOriginalScale, + e = t[1] / t[0]; + this.animateTo({ + scale: [Math.max(1.1 * t[0], t[0] + 3), Math.max(1.1 * t[1], t[1] + 3 * e)] + }, 400, "elasticOut") + } + } + + function bu() { + this.incremental || this.useHoverLayer || this.animateTo({ + scale: this.__symbolOriginalScale + }, 400, "elasticOut") + } + + function Su(t) { + this.group = new Zw, this._symbolCtor = t || mu + } + + function Mu(t, e, i, n) { + return e && !isNaN(e[0]) && !isNaN(e[1]) && !(n.isIgnore && n.isIgnore(i)) && !(n.clipShape && !n.clipShape.contain(e[0], e[1])) && "none" !== t.getItemVisual(i, "symbol") + } + + function Iu(t) { + return null == t || w(t) || (t = { + isIgnore: t + }), t || {} + } + + function Tu(t) { + var e = t.hostModel; + return { + itemStyle: e.getModel("itemStyle").getItemStyle(["color"]), + hoverItemStyle: e.getModel("emphasis.itemStyle").getItemStyle(), + symbolRotate: e.get("symbolRotate"), + symbolOffset: e.get("symbolOffset"), + hoverAnimation: e.get("hoverAnimation"), + labelModel: e.getModel("label"), + hoverLabelModel: e.getModel("emphasis.label"), + cursorStyle: e.get("cursor") + } + } + + function Au(t, e, i) { + var n, o = t.getBaseAxis(), + a = t.getOtherAxis(o), + r = Du(a, i), + s = o.dim, + l = a.dim, + u = e.mapDimension(l), + h = e.mapDimension(s), + c = "x" === l || "radius" === l ? 1 : 0, + d = f(t.dimensions, function(t) { + return e.mapDimension(t) + }), + p = e.getCalculationInfo("stackResultDimension"); + return (n |= hl(e, d[0])) && (d[0] = p), (n |= hl(e, d[1])) && (d[1] = p), { + dataDimsForPoint: d, + valueStart: r, + valueAxisDim: l, + baseAxisDim: s, + stacked: !!n, + valueDim: u, + baseDim: h, + baseDataOffset: c, + stackedOverDimension: e.getCalculationInfo("stackedOverDimension") + } + } + + function Du(t, e) { + var i = 0, + n = t.scale.getExtent(); + return "start" === e ? i = n[0] : "end" === e ? i = n[1] : n[0] > 0 ? i = n[0] : n[1] < 0 && (i = n[1]), i + } + + function Cu(t, e, i, n) { + var o = NaN; + t.stacked && (o = i.get(i.getCalculationInfo("stackedOverDimension"), n)), isNaN(o) && (o = t.valueStart); + var a = t.baseDataOffset, + r = []; + return r[a] = i.get(t.baseDim, n), r[1 - a] = o, e.dataToPoint(r) + } + + function Lu(t, e) { + var i = []; + return e.diff(t).add(function(t) { + i.push({ + cmd: "+", + idx: t + }) + }).update(function(t, e) { + i.push({ + cmd: "=", + idx: e, + idx1: t + }) + }).remove(function(t) { + i.push({ + cmd: "-", + idx: t + }) + }).execute(), i + } + + function ku(t) { + return isNaN(t[0]) || isNaN(t[1]) + } + + function Pu(t, e, i, n, o, a, r, s, l, u, h) { + return "none" !== u && u ? Nu.apply(this, arguments) : Ou.apply(this, arguments) + } + + function Nu(t, e, i, n, o, a, r, s, l, u, h) { + for (var c = 0, d = i, f = 0; f < n; f++) { + var p = e[d]; + if (d >= o || d < 0) break; + if (ku(p)) { + if (h) { + d += a; + continue + } + break + } + if (d === i) t[a > 0 ? "moveTo" : "lineTo"](p[0], p[1]); + else if (l > 0) { + var g = e[c], + m = "y" === u ? 1 : 0, + v = (p[m] - g[m]) * l; + oD(rD, g), rD[m] = g[m] + v, oD(sD, p), sD[m] = p[m] - v, t.bezierCurveTo(rD[0], rD[1], sD[0], sD[1], p[0], p[1]) + } else t.lineTo(p[0], p[1]); + c = d, d += a + } + return f + } + + function Ou(t, e, i, n, o, a, r, s, l, u, h) { + for (var c = 0, d = i, f = 0; f < n; f++) { + var p = e[d]; + if (d >= o || d < 0) break; + if (ku(p)) { + if (h) { + d += a; + continue + } + break + } + if (d === i) t[a > 0 ? "moveTo" : "lineTo"](p[0], p[1]), oD(rD, p); + else if (l > 0) { + var g = d + a, + m = e[g]; + if (h) + for (; m && ku(e[g]);) m = e[g += a]; + var v = .5, + y = e[c]; + if (!(m = e[g]) || ku(m)) oD(sD, p); + else { + ku(m) && !h && (m = p), U(aD, m, y); + var x, _; + if ("x" === u || "y" === u) { + var w = "x" === u ? 0 : 1; + x = Math.abs(p[w] - y[w]), _ = Math.abs(p[w] - m[w]) + } else x = ew(p, y), _ = ew(p, m); + nD(sD, p, aD, -l * (1 - (v = _ / (_ + x)))) + } + eD(rD, rD, s), iD(rD, rD, r), eD(sD, sD, s), iD(sD, sD, r), t.bezierCurveTo(rD[0], rD[1], sD[0], sD[1], p[0], p[1]), nD(rD, p, aD, l * v) + } else t.lineTo(p[0], p[1]); + c = d, d += a + } + return f + } + + function Eu(t, e) { + var i = [1 / 0, 1 / 0], + n = [-1 / 0, -1 / 0]; + if (e) + for (var o = 0; o < t.length; o++) { + var a = t[o]; + a[0] < i[0] && (i[0] = a[0]), a[1] < i[1] && (i[1] = a[1]), a[0] > n[0] && (n[0] = a[0]), a[1] > n[1] && (n[1] = a[1]) + } + return { + min: e ? i : n, + max: e ? n : i + } + } + + function Ru(t, e) { + if (t.length === e.length) { + for (var i = 0; i < t.length; i++) { + var n = t[i], + o = e[i]; + if (n[0] !== o[0] || n[1] !== o[1]) return + } + return !0 + } + } + + function zu(t) { + return "number" == typeof t ? t : t ? .5 : 0 + } + + function Bu(t) { + var e = t.getGlobalExtent(); + if (t.onBand) { + var i = t.getBandWidth() / 2 - 1, + n = e[1] > e[0] ? 1 : -1; + e[0] += n * i, e[1] -= n * i + } + return e + } + + function Vu(t, e, i) { + if (!i.valueDim) return []; + for (var n = [], o = 0, a = e.count(); o < a; o++) n.push(Cu(i, t, e, o)); + return n + } + + function Gu(t, e, i, n) { + var o = Bu(t.getAxis("x")), + a = Bu(t.getAxis("y")), + r = t.getBaseAxis().isHorizontal(), + s = Math.min(o[0], o[1]), + l = Math.min(a[0], a[1]), + u = Math.max(o[0], o[1]) - s, + h = Math.max(a[0], a[1]) - l; + if (i) s -= .5, u += .5, l -= .5, h += .5; + else { + var c = n.get("lineStyle.width") || 2, + d = n.get("clipOverflow") ? c / 2 : Math.max(u, h); + r ? (l -= d, h += 2 * d) : (s -= d, u += 2 * d) + } + var f = new aM({ + shape: { + x: s, + y: l, + width: u, + height: h + } + }); + return e && (f.shape[r ? "width" : "height"] = 0, So(f, { + shape: { + width: u, + height: h + } + }, n)), f + } + + function Fu(t, e, i, n) { + var o = t.getAngleAxis(), + a = t.getRadiusAxis().getExtent().slice(); + a[0] > a[1] && a.reverse(); + var r = o.getExtent(), + s = Math.PI / 180; + i && (a[0] -= .5, a[1] += .5); + var l = new QS({ + shape: { + cx: zo(t.cx, 1), + cy: zo(t.cy, 1), + r0: zo(a[0], 1), + r: zo(a[1], 1), + startAngle: -r[0] * s, + endAngle: -r[1] * s, + clockwise: o.inverse + } + }); + return e && (l.shape.endAngle = -r[0] * s, So(l, { + shape: { + endAngle: -r[1] * s + } + }, n)), l + } + + function Wu(t, e, i, n) { + return "polar" === t.type ? Fu(t, e, i, n) : Gu(t, e, i, n) + } + + function Hu(t, e, i) { + for (var n = e.getBaseAxis(), o = "x" === n.dim || "radius" === n.dim ? 0 : 1, a = [], r = 0; r < t.length - 1; r++) { + var s = t[r + 1], + l = t[r]; + a.push(l); + var u = []; + switch (i) { + case "end": + u[o] = s[o], u[1 - o] = l[1 - o], a.push(u); + break; + case "middle": + var h = (l[o] + s[o]) / 2, + c = []; + u[o] = c[o] = h, u[1 - o] = l[1 - o], c[1 - o] = s[1 - o], a.push(u), a.push(c); + break; + default: + u[o] = l[o], u[1 - o] = s[1 - o], a.push(u) + } + } + return t[r] && a.push(t[r]), a + } + + function Zu(t, e) { + var i = t.getVisual("visualMeta"); + if (i && i.length && t.count() && "cartesian2d" === e.type) { + for (var n, o, a = i.length - 1; a >= 0; a--) { + var r = i[a].dimension, + s = t.dimensions[r], + l = t.getDimensionInfo(s); + if ("x" === (n = l && l.coordDim) || "y" === n) { + o = i[a]; + break + } + } + if (o) { + var u = e.getAxis(n), + h = f(o.stops, function(t) { + return { + coord: u.toGlobalCoord(u.dataToCoord(t.value)), + color: t.color + } + }), + c = h.length, + p = o.outerColors.slice(); + c && h[0].coord > h[c - 1].coord && (h.reverse(), p.reverse()); + var g = h[0].coord - 10, + m = h[c - 1].coord + 10, + v = m - g; + if (v < .001) return "transparent"; + d(h, function(t) { + t.offset = (t.coord - g) / v + }), h.push({ + offset: c ? h[c - 1].offset : .5, + color: p[1] || "transparent" + }), h.unshift({ + offset: c ? h[0].offset : .5, + color: p[0] || "transparent" + }); + var y = new dM(0, 0, 0, 0, h, !0); + return y[n] = g, y[n + "2"] = m, y + } + } + } + + function Uu(t, e, i) { + var n = t.get("showAllSymbol"), + o = "auto" === n; + if (!n || o) { + var a = i.getAxesByScale("ordinal")[0]; + if (a && (!o || !Xu(a, e))) { + var r = e.mapDimension(a.dim), + s = {}; + return d(a.getViewLabels(), function(t) { + s[t.tickValue] = 1 + }), + function(t) { + return !s.hasOwnProperty(e.get(r, t)) + } + } + } + } + + function Xu(t, e) { + var i = t.getExtent(), + n = Math.abs(i[1] - i[0]) / t.scale.count(); + isNaN(n) && (n = 0); + for (var o = e.count(), a = Math.max(1, Math.round(o / 5)), r = 0; r < o; r += a) + if (1.5 * mu.getSymbolSize(e, r)[t.isHorizontal() ? 1 : 0] > n) return !1; + return !0 + } + + function ju(t) { + return this._axes[t] + } + + function Yu(t) { + pD.call(this, t) + } + + function qu(t, e) { + return e.type || (e.data ? "category" : "value") + } + + function Ku(t, e, i) { + return t.getCoordSysModel() === e + } + + function $u(t, e, i) { + this._coordsMap = {}, this._coordsList = [], this._axesMap = {}, this._axesList = [], this._initCartesian(t, e, i), this.model = t + } + + function Ju(t, e, i, n) { + function o(t) { + return t.dim + "_" + t.index + } + i.getAxesOnZeroOf = function() { + return a ? [a] : [] + }; + var a, r = t[e], + s = i.model, + l = s.get("axisLine.onZero"), + u = s.get("axisLine.onZeroAxisIndex"); + if (l) { + if (null != u) Qu(r[u]) && (a = r[u]); + else + for (var h in r) + if (r.hasOwnProperty(h) && Qu(r[h]) && !n[o(r[h])]) { + a = r[h]; + break + } a && (n[o(a)] = !0) + } + } + + function Qu(t) { + return t && "category" !== t.type && "time" !== t.type && Gl(t) + } + + function th(t, e) { + var i = t.getExtent(), + n = i[0] + i[1]; + t.toGlobalCoord = "x" === t.dim ? function(t) { + return t + e + } : function(t) { + return n - t + e + }, t.toLocalCoord = "x" === t.dim ? function(t) { + return t - e + } : function(t) { + return n - t + e + } + } + + function eh(t, e) { + return f(SD, function(e) { + return t.getReferringComponents(e)[0] + }) + } + + function ih(t) { + return "cartesian2d" === t.get("coordinateSystem") + } + + function nh(t) { + var e = { + componentType: t.mainType, + componentIndex: t.componentIndex + }; + return e[t.mainType + "Index"] = t.componentIndex, e + } + + function oh(t, e, i, n) { + var o, a, r = Ho(i - t.rotation), + s = n[0] > n[1], + l = "start" === e && !s || "start" !== e && s; + return Zo(r - MD / 2) ? (a = l ? "bottom" : "top", o = "center") : Zo(r - 1.5 * MD) ? (a = l ? "top" : "bottom", o = "center") : (a = "middle", o = r < 1.5 * MD && r > MD / 2 ? l ? "left" : "right" : l ? "right" : "left"), { + rotation: r, + textAlign: o, + textVerticalAlign: a + } + } + + function ah(t) { + var e = t.get("tooltip"); + return t.get("silent") || !(t.get("triggerEvent") || e && e.show) + } + + function rh(t, e, i) { + var n = t.get("axisLabel.showMinLabel"), + o = t.get("axisLabel.showMaxLabel"); + e = e || [], i = i || []; + var a = e[0], + r = e[1], + s = e[e.length - 1], + l = e[e.length - 2], + u = i[0], + h = i[1], + c = i[i.length - 1], + d = i[i.length - 2]; + !1 === n ? (sh(a), sh(u)) : lh(a, r) && (n ? (sh(r), sh(h)) : (sh(a), sh(u))), !1 === o ? (sh(s), sh(c)) : lh(l, s) && (o ? (sh(l), sh(d)) : (sh(s), sh(c))) + } + + function sh(t) { + t && (t.ignore = !0) + } + + function lh(t, e, i) { + var n = t && t.getBoundingRect().clone(), + o = e && e.getBoundingRect().clone(); + if (n && o) { + var a = vt([]); + return wt(a, a, -t.rotation), n.applyTransform(xt([], a, t.getLocalTransform())), o.applyTransform(xt([], a, e.getLocalTransform())), n.intersect(o) + } + } + + function uh(t) { + return "middle" === t || "center" === t + } + + function hh(t, e, i) { + var n = e.axis; + if (e.get("axisTick.show") && !n.scale.isBlank()) { + for (var o = e.getModel("axisTick"), a = o.getModel("lineStyle"), s = o.get("length"), l = n.getTicksCoords(), u = [], h = [], c = t._transform, d = [], f = 0; f < l.length; f++) { + var p = l[f].coord; + u[0] = p, u[1] = 0, h[0] = p, h[1] = i.tickDirection * s, c && (Q(u, u, c), Q(h, h, c)); + var g = new rM(Xn({ + anid: "tick_" + l[f].tickValue, + shape: { + x1: u[0], + y1: u[1], + x2: h[0], + y2: h[1] + }, + style: r(a.getLineStyle(), { + stroke: e.get("axisLine.lineStyle.color") + }), + z2: 2, + silent: !0 + })); + t.group.add(g), d.push(g) + } + return d + } + } + + function ch(t, e, i) { + var n = e.axis; + if (T(i.axisLabelShow, e.get("axisLabel.show")) && !n.scale.isBlank()) { + var o = e.getModel("axisLabel"), + a = o.get("margin"), + r = n.getViewLabels(), + s = (T(i.labelRotate, o.get("rotate")) || 0) * MD / 180, + l = AD(i.rotation, s, i.labelDirection), + u = e.getCategories(!0), + h = [], + c = ah(e), + f = e.get("triggerEvent"); + return d(r, function(r, s) { + var d = r.tickValue, + p = r.formattedLabel, + g = r.rawLabel, + m = o; + u && u[d] && u[d].textStyle && (m = new Lo(u[d].textStyle, o, e.ecModel)); + var v = m.getTextColor() || e.get("axisLine.lineStyle.color"), + y = [n.dataToCoord(d), i.labelOffset + i.labelDirection * a], + x = new qS({ + anid: "label_" + d, + position: y, + rotation: l.rotation, + silent: c, + z2: 10 + }); + fo(x.style, m, { + text: p, + textAlign: m.getShallow("align", !0) || l.textAlign, + textVerticalAlign: m.getShallow("verticalAlign", !0) || m.getShallow("baseline", !0) || l.textVerticalAlign, + textFill: "function" == typeof v ? v("category" === n.type ? g : "value" === n.type ? d + "" : d, s) : v + }), f && (x.eventData = nh(e), x.eventData.targetType = "axisLabel", x.eventData.value = g), t._dumbGroup.add(x), x.updateTransform(), h.push(x), t.group.add(x), x.decomposeTransform() + }), h + } + } + + function dh(t, e) { + var i = { + axesInfo: {}, + seriesInvolved: !1, + coordSysAxesInfo: {}, + coordSysMap: {} + }; + return fh(i, t, e), i.seriesInvolved && gh(i, t), i + } + + function fh(t, e, i) { + var n = e.getComponent("tooltip"), + o = e.getComponent("axisPointer"), + a = o.get("link", !0) || [], + r = []; + DD(i.getCoordinateSystems(), function(i) { + function s(n, s, l) { + var c = l.model.getModel("axisPointer", o), + d = c.get("show"); + if (d && ("auto" !== d || n || wh(c))) { + null == s && (s = c.get("triggerTooltip")); + var f = (c = n ? ph(l, h, o, e, n, s) : c).get("snap"), + p = bh(l.model), + g = s || f || "category" === l.type, + m = t.axesInfo[p] = { + key: p, + axis: l, + coordSys: i, + axisPointerModel: c, + triggerTooltip: s, + involveSeries: g, + snap: f, + useHandle: wh(c), + seriesModels: [] + }; + u[p] = m, t.seriesInvolved |= g; + var v = mh(a, l); + if (null != v) { + var y = r[v] || (r[v] = { + axesInfo: {} + }); + y.axesInfo[p] = m, y.mapper = a[v].mapper, m.linkGroup = y + } + } + } + if (i.axisPointerEnabled) { + var l = bh(i.model), + u = t.coordSysAxesInfo[l] = {}; + t.coordSysMap[l] = i; + var h = i.model.getModel("tooltip", n); + if (DD(i.getAxes(), CD(s, !1, null)), i.getTooltipAxes && n && h.get("show")) { + var c = "axis" === h.get("trigger"), + d = "cross" === h.get("axisPointer.type"), + f = i.getTooltipAxes(h.get("axisPointer.axis")); + (c || d) && DD(f.baseAxes, CD(s, !d || "cross", c)), d && DD(f.otherAxes, CD(s, "cross", !1)) + } + } + }) + } + + function ph(t, e, n, o, a, s) { + var l = e.getModel("axisPointer"), + u = {}; + DD(["type", "snap", "lineStyle", "shadowStyle", "label", "animation", "animationDurationUpdate", "animationEasingUpdate", "z"], function(t) { + u[t] = i(l.get(t)) + }), u.snap = "category" !== t.type && !!s, "cross" === l.get("type") && (u.type = "line"); + var h = u.label || (u.label = {}); + if (null == h.show && (h.show = !1), "cross" === a) { + var c = l.get("label.show"); + if (h.show = null == c || c, !s) { + var d = u.lineStyle = l.get("crossStyle"); + d && r(h, d.textStyle) + } + } + return t.model.getModel("axisPointer", new Lo(u, n, o)) + } + + function gh(t, e) { + e.eachSeries(function(e) { + var i = e.coordinateSystem, + n = e.get("tooltip.trigger", !0), + o = e.get("tooltip.show", !0); + i && "none" !== n && !1 !== n && "item" !== n && !1 !== o && !1 !== e.get("axisPointer.show", !0) && DD(t.coordSysAxesInfo[bh(i.model)], function(t) { + var n = t.axis; + i.getAxis(n.dim) === n && (t.seriesModels.push(e), null == t.seriesDataCount && (t.seriesDataCount = 0), t.seriesDataCount += e.getData().count()) + }) + }, this) + } + + function mh(t, e) { + for (var i = e.model, n = e.dim, o = 0; o < t.length; o++) { + var a = t[o] || {}; + if (vh(a[n + "AxisId"], i.id) || vh(a[n + "AxisIndex"], i.componentIndex) || vh(a[n + "AxisName"], i.name)) return o + } + } + + function vh(t, e) { + return "all" === t || y(t) && l(t, e) >= 0 || t === e + } + + function yh(t) { + var e = xh(t); + if (e) { + var i = e.axisPointerModel, + n = e.axis.scale, + o = i.option, + a = i.get("status"), + r = i.get("value"); + null != r && (r = n.parse(r)); + var s = wh(i); + null == a && (o.status = s ? "show" : "hide"); + var l = n.getExtent().slice(); + l[0] > l[1] && l.reverse(), (null == r || r > l[1]) && (r = l[1]), r < l[0] && (r = l[0]), o.value = r, s && (o.status = e.axis.scale.isBlank() ? "hide" : "show") + } + } + + function xh(t) { + var e = (t.ecModel.getComponent("axisPointer") || {}).coordSysAxesInfo; + return e && e.axesInfo[bh(t)] + } + + function _h(t) { + var e = xh(t); + return e && e.axisPointerModel + } + + function wh(t) { + return !!t.get("handle.show") + } + + function bh(t) { + return t.type + "||" + t.id + } + + function Sh(t, e, i, n, o, a) { + var r = LD.getAxisPointerClass(t.axisPointerClass); + if (r) { + var s = _h(e); + s ? (t._axisPointer || (t._axisPointer = new r)).render(e, s, n, a) : Mh(t, n) + } + } + + function Mh(t, e, i) { + var n = t._axisPointer; + n && n.dispose(e, i), t._axisPointer = null + } + + function Ih(t, e, i) { + i = i || {}; + var n = t.coordinateSystem, + o = e.axis, + a = {}, + r = o.getAxesOnZeroOf()[0], + s = o.position, + l = r ? "onZero" : s, + u = o.dim, + h = n.getRect(), + c = [h.x, h.x + h.width, h.y, h.y + h.height], + d = { + left: 0, + right: 1, + top: 0, + bottom: 1, + onZero: 2 + }, + f = e.get("offset") || 0, + p = "x" === u ? [c[2] - f, c[3] + f] : [c[0] - f, c[1] + f]; + if (r) { + var g = r.toGlobalCoord(r.dataToCoord(0)); + p[d.onZero] = Math.max(Math.min(g, p[1]), p[0]) + } + a.position = ["y" === u ? p[d[l]] : c[0], "x" === u ? p[d[l]] : c[3]], a.rotation = Math.PI / 2 * ("x" === u ? 0 : 1); + var m = { + top: -1, + bottom: 1, + left: -1, + right: 1 + }; + a.labelDirection = a.tickDirection = a.nameDirection = m[s], a.labelOffset = r ? p[d[s]] - p[d.onZero] : 0, e.get("axisTick.inside") && (a.tickDirection = -a.tickDirection), T(i.labelInside, e.get("axisLabel.inside")) && (a.labelDirection = -a.labelDirection); + var v = e.get("axisLabel.rotate"); + return a.labelRotate = "top" === l ? -v : v, a.z2 = 1, a + } + + function Th(t, e, i, n, o, a, r) { + co(t, e, i.getModel("label"), i.getModel("emphasis.label"), { + labelFetcher: o, + labelDataIndex: a, + defaultText: gu(o.getData(), a), + isRectText: !0, + autoColor: n + }), Ah(t), Ah(e) + } + + function Ah(t, e) { + "outside" === t.textPosition && (t.textPosition = e) + } + + function Dh(t, e, i) { + i.style.text = null, bo(i, { + shape: { + width: 0 + } + }, e, t, function() { + i.parent && i.parent.remove(i) + }) + } + + function Ch(t, e, i) { + i.style.text = null, bo(i, { + shape: { + r: i.shape.r0 + } + }, e, t, function() { + i.parent && i.parent.remove(i) + }) + } + + function Lh(t, e, i, n, o, a, s, l) { + var u = e.getItemVisual(i, "color"), + h = e.getItemVisual(i, "opacity"), + c = n.getModel("itemStyle"), + d = n.getModel("emphasis.itemStyle").getBarItemStyle(); + l || t.setShape("r", c.get("barBorderRadius") || 0), t.useStyle(r({ + fill: u, + opacity: h + }, c.getBarItemStyle())); + var f = n.getShallow("cursor"); + f && t.attr("cursor", f); + var p = s ? o.height > 0 ? "bottom" : "top" : o.width > 0 ? "left" : "right"; + l || Th(t.style, d, n, u, a, i, p), uo(t, d) + } + + function kh(t, e) { + var i = t.get(BD) || 0; + return Math.min(i, Math.abs(e.width), Math.abs(e.height)) + } + + function Ph(t, e, i) { + var n = t.getData(), + o = [], + a = n.getLayout("valueAxisHorizontal") ? 1 : 0; + o[1 - a] = n.getLayout("valueAxisStart"); + var r = new FD({ + shape: { + points: n.getLayout("largePoints") + }, + incremental: !!i, + __startPoint: o, + __valueIdx: a + }); + e.add(r), Nh(r, t, n) + } + + function Nh(t, e, i) { + var n = i.getVisual("borderColor") || i.getVisual("color"), + o = e.getModel("itemStyle").getItemStyle(["color", "borderColor"]); + t.useStyle(o), t.style.fill = null, t.style.stroke = n, t.style.lineWidth = i.getLayout("barWidth") + } + + function Oh(t, e, i, n) { + var o = e.getData(), + a = this.dataIndex, + r = o.getName(a), + s = e.get("selectedOffset"); + n.dispatchAction({ + type: "pieToggleSelect", + from: t, + name: r, + seriesId: e.id + }), o.each(function(t) { + Eh(o.getItemGraphicEl(t), o.getItemLayout(t), e.isSelected(o.getName(t)), s, i) + }) + } + + function Eh(t, e, i, n, o) { + var a = (e.startAngle + e.endAngle) / 2, + r = Math.cos(a), + s = Math.sin(a), + l = i ? n : 0, + u = [r * l, s * l]; + o ? t.animate().when(200, { + position: u + }).start("bounceOut") : t.attr("position", u) + } + + function Rh(t, e) { + function i() { + a.ignore = a.hoverIgnore, r.ignore = r.hoverIgnore + } + + function n() { + a.ignore = a.normalIgnore, r.ignore = r.normalIgnore + } + Zw.call(this); + var o = new QS({ + z2: 2 + }), + a = new oM, + r = new qS; + this.add(o), this.add(a), this.add(r), this.updateData(t, e, !0), this.on("emphasis", i).on("normal", n).on("mouseover", i).on("mouseout", n) + } + + function zh(t, e, i, n, o, a, r) { + function s(e, i) { + for (var n = e; n >= 0 && (t[n].y -= i, !(n > 0 && t[n].y > t[n - 1].y + t[n - 1].height)); n--); + } + + function l(t, e, i, n, o, a) { + for (var r = e ? Number.MAX_VALUE : 0, s = 0, l = t.length; s < l; s++) + if ("center" !== t[s].position) { + var u = Math.abs(t[s].y - n), + h = t[s].len, + c = t[s].len2, + d = u < o + h ? Math.sqrt((o + h + c) * (o + h + c) - u * u) : Math.abs(t[s].x - i); + e && d >= r && (d = r - 10), !e && d <= r && (d = r + 10), t[s].x = i + d * a, r = d + } + } + t.sort(function(t, e) { + return t.y - e.y + }); + for (var u, h = 0, c = t.length, d = [], f = [], p = 0; p < c; p++)(u = t[p].y - h) < 0 && function(e, i, n, o) { + for (var a = e; a < i; a++) + if (t[a].y += n, a > e && a + 1 < i && t[a + 1].y > t[a].y + t[a].height) return void s(a, n / 2); + s(i - 1, n / 2) + }(p, c, -u), h = t[p].y + t[p].height; + r - h < 0 && s(c - 1, h - r); + for (p = 0; p < c; p++) t[p].y >= i ? f.push(t[p]) : d.push(t[p]); + l(d, !1, e, i, n, o), l(f, !0, e, i, n, o) + } + + function Bh(t, e, i, n, o, a) { + for (var r = [], s = [], l = 0; l < t.length; l++) t[l].x < e ? r.push(t[l]) : s.push(t[l]); + zh(s, e, i, n, 1, o, a), zh(r, e, i, n, -1, o, a); + for (l = 0; l < t.length; l++) { + var u = t[l].linePoints; + if (u) { + var h = u[1][0] - u[2][0]; + t[l].x < e ? u[2][0] = t[l].x + 3 : u[2][0] = t[l].x - 3, u[1][1] = u[2][1] = t[l].y, u[1][0] = u[2][0] + h + } + } + } + + function Vh() { + this.group = new Zw + } + + function Gh(t, e, i) { + HA.call(this, t, e, i), this.type = "value", this.angle = 0, this.name = "", this.model + } + + function Fh(t, e, i) { + this._model = t, this.dimensions = [], this._indicatorAxes = f(t.getIndicatorModels(), function(t, e) { + var i = "indicator_" + e, + n = new Gh(i, new hA); + return n.name = t.get("name"), n.model = t, t.axis = n, this.dimensions.push(i), n + }, this), this.resize(t, i), this.cx, this.cy, this.r, this.r0, this.startAngle + } + + function Wh(t, e) { + return r({ + show: e + }, t) + } + + function Hh(t) { + return y(t) || (t = [+t, +t]), t + } + + function Zh() { + mw.call(this) + } + + function Uh(t) { + this.name = t, this.zoomLimit, mw.call(this), this._roamTransformable = new Zh, this._rawTransformable = new Zh, this._center, this._zoom + } + + function Xh(t, e, i, n) { + var o = i.seriesModel, + a = o ? o.coordinateSystem : null; + return a === this ? a[t](n) : null + } + + function jh(t) { + for (var e, i = 0; i < t.length; i++) { + var n = t[i].getBoundingRect(); + (e = e || n.clone()).union(n) + } + return e + } + + function Yh(t, e) { + var i, n, o = t.svgXML; + try { + k(null != (n = (i = o && ns(o, { + ignoreViewBox: !0, + ignoreRootClip: !0 + }) || {}).root)) + } catch (t) { + throw new Error("Invalid svg format\n" + t.message) + } + var a = i.width, + r = i.height, + s = i.viewBoxRect; + if (e || (e = null == a || null == r ? n.getBoundingRect() : new ue(0, 0, 0, 0), null != a && (e.width = a), null != r && (e.height = r)), s) { + var l = is(s, e.width, e.height), + u = n; + (n = new Zw).add(u), u.scale = l.scale, u.position = l.position + } + return n.setClipPath(new aM({ + shape: e.plain() + })), { + root: n, + boundingRect: e + } + } + + function qh(t) { + return function(e, i) { + var n = []; + return d(Kh(e), function(o) { + var a = yC[o.type][t]; + a && n.push(a(e, o, i)) + }), n + } + } + + function Kh(t) { + return pT.retrieveMap(t) || [] + } + + function $h(t, e, i, n) { + Uh.call(this, t), this.map = e; + var o = xC.load(e, i); + this._nameCoordMap = o.nameCoordMap, this._regionsMap = o.nameCoordMap, this._invertLongitute = null == n || n, this.regions = o.regions, this._rect = o.boundingRect + } + + function Jh(t, e, i, n) { + var o = i.geoModel, + a = i.seriesModel, + r = o ? o.coordinateSystem : a ? a.coordinateSystem || (a.getReferringComponents("geo")[0] || {}).coordinateSystem : null; + return r === this ? r[t](n) : null + } + + function Qh(t, e) { + var i = t.get("boundingCoords"); + if (null != i) { + var n = i[0], + o = i[1]; + isNaN(n[0]) || isNaN(n[1]) || isNaN(o[0]) || isNaN(o[1]) || this.setBoundingRect(n[0], n[1], o[0] - n[0], o[1] - n[1]) + } + var a, r = this.getBoundingRect(), + s = t.get("layoutCenter"), + l = t.get("layoutSize"), + u = e.getWidth(), + h = e.getHeight(), + c = r.width / r.height * this.aspectScale, + d = !1; + s && l && (s = [Ro(s[0], u), Ro(s[1], h)], l = Ro(l, Math.min(u, h)), isNaN(s[0]) || isNaN(s[1]) || isNaN(l) || (d = !0)); + if (d) { + var f = {}; + c > 1 ? (f.width = l, f.height = l / c) : (f.height = l, f.width = l * c), f.y = s[1] - f.height / 2, f.x = s[0] - f.width / 2 + } else(a = t.getBoxLayoutParams()).aspect = c, f = la(a, { + width: u, + height: h + }); + this.setViewRect(f.x, f.y, f.width, f.height), this.setCenter(t.get("center")), this.setZoom(t.get("zoom")) + } + + function tc(t, e) { + d(e.get("geoCoord"), function(e, i) { + t.addGeoCoord(i, e) + }) + } + + function ec(t, e, i) { + oc(t)[e] = i + } + + function ic(t, e, i) { + var n = oc(t); + n[e] === i && (n[e] = null) + } + + function nc(t, e) { + return !!oc(t)[e] + } + + function oc(t) { + return t[bC] || (t[bC] = {}) + } + + function ac(t) { + this.pointerChecker, this._zr = t, this._opt = {}; + var e = m, + n = e(rc, this), + o = e(sc, this), + a = e(lc, this), + s = e(uc, this), + l = e(hc, this); + aw.call(this), this.setPointerChecker = function(t) { + this.pointerChecker = t + }, this.enable = function(e, u) { + this.disable(), this._opt = r(i(u) || {}, { + zoomOnMouseWheel: !0, + moveOnMouseMove: !0, + moveOnMouseWheel: !1, + preventDefaultMouseMove: !0 + }), null == e && (e = !0), !0 !== e && "move" !== e && "pan" !== e || (t.on("mousedown", n), t.on("mousemove", o), t.on("mouseup", a)), !0 !== e && "scale" !== e && "zoom" !== e || (t.on("mousewheel", s), t.on("pinch", l)) + }, this.disable = function() { + t.off("mousedown", n), t.off("mousemove", o), t.off("mouseup", a), t.off("mousewheel", s), t.off("pinch", l) + }, this.dispose = this.disable, this.isDragging = function() { + return this._dragging + }, this.isPinching = function() { + return this._pinching + } + } + + function rc(t) { + if (!(ct(t) || t.target && t.target.draggable)) { + var e = t.offsetX, + i = t.offsetY; + this.pointerChecker && this.pointerChecker(t, e, i) && (this._x = e, this._y = i, this._dragging = !0) + } + } + + function sc(t) { + if (!ct(t) && fc("moveOnMouseMove", t, this._opt) && this._dragging && "pinch" !== t.gestureEvent && !nc(this._zr, "globalPan")) { + var e = t.offsetX, + i = t.offsetY, + n = this._x, + o = this._y, + a = e - n, + r = i - o; + this._x = e, this._y = i, this._opt.preventDefaultMouseMove && lw(t.event), dc(this, "pan", "moveOnMouseMove", t, { + dx: a, + dy: r, + oldX: n, + oldY: o, + newX: e, + newY: i + }) + } + } + + function lc(t) { + ct(t) || (this._dragging = !1) + } + + function uc(t) { + var e = fc("zoomOnMouseWheel", t, this._opt), + i = fc("moveOnMouseWheel", t, this._opt), + n = t.wheelDelta, + o = Math.abs(n), + a = t.offsetX, + r = t.offsetY; + if (0 !== n && (e || i)) { + if (e) { + var s = o > 3 ? 1.4 : o > 1 ? 1.2 : 1.1; + cc(this, "zoom", "zoomOnMouseWheel", t, { + scale: n > 0 ? s : 1 / s, + originX: a, + originY: r + }) + } + if (i) { + var l = Math.abs(n); + cc(this, "scrollMove", "moveOnMouseWheel", t, { + scrollDelta: (n > 0 ? 1 : -1) * (l > 3 ? .4 : l > 1 ? .15 : .05), + originX: a, + originY: r + }) + } + } + } + + function hc(t) { + nc(this._zr, "globalPan") || cc(this, "zoom", null, t, { + scale: t.pinchScale > 1 ? 1.1 : 1 / 1.1, + originX: t.pinchX, + originY: t.pinchY + }) + } + + function cc(t, e, i, n, o) { + t.pointerChecker && t.pointerChecker(n, o.originX, o.originY) && (lw(n.event), dc(t, e, i, n, o)) + } + + function dc(t, e, i, n, o) { + o.isAvailableBehavior = m(fc, null, i, n), t.trigger(e, o) + } + + function fc(t, e, i) { + var n = i[t]; + return !t || n && (!_(n) || e.event[n + "Key"]) + } + + function pc(t, e, i) { + var n = t.target, + o = n.position; + o[0] += e, o[1] += i, n.dirty() + } + + function gc(t, e, i, n) { + var o = t.target, + a = t.zoomLimit, + r = o.position, + s = o.scale, + l = t.zoom = t.zoom || 1; + if (l *= e, a) { + var u = a.min || 0, + h = a.max || 1 / 0; + l = Math.max(Math.min(h, l), u) + } + var c = l / t.zoom; + t.zoom = l, r[0] -= (i - r[0]) * (c - 1), r[1] -= (n - r[1]) * (c - 1), s[0] *= c, s[1] *= c, o.dirty() + } + + function mc(t, e, i) { + var n = e.getComponentByElement(t.topTarget), + o = n && n.coordinateSystem; + return n && n !== i && !SC[n.mainType] && o && o.model !== i + } + + function vc(t, e) { + var i = t.getItemStyle(), + n = t.get("areaColor"); + return null != n && (i.fill = n), i + } + + function yc(t, e, i, n, o) { + i.off("click"), i.off("mousedown"), e.get("selectedMode") && (i.on("mousedown", function() { + t._mouseDownFlag = !0 + }), i.on("click", function(a) { + if (t._mouseDownFlag) { + t._mouseDownFlag = !1; + for (var r = a.target; !r.__regions;) r = r.parent; + if (r) { + var s = { + type: ("geo" === e.mainType ? "geo" : "map") + "ToggleSelect", + batch: f(r.__regions, function(t) { + return { + name: t.name, + from: o.uid + } + }) + }; + s[e.mainType + "Id"] = e.id, n.dispatchAction(s), xc(e, i) + } + } + })) + } + + function xc(t, e) { + e.eachChild(function(e) { + d(e.__regions, function(i) { + e.trigger(t.isSelected(i.name) ? "emphasis" : "normal") + }) + }) + } + + function _c(t, e) { + var i = new Zw; + this.uid = No("ec_map_draw"), this._controller = new ac(t.getZr()), this._controllerHost = { + target: e ? i : null + }, this.group = i, this._updateGroup = e, this._mouseDownFlag, this._mapName, this._initialized, i.add(this._regionsGroup = new Zw), i.add(this._backgroundGroup = new Zw) + } + + function wc(t, e, i) { + var n = t.getZoom(), + o = t.getCenter(), + a = e.zoom, + r = t.dataToPoint(o); + if (null != e.dx && null != e.dy) { + r[0] -= e.dx, r[1] -= e.dy; + o = t.pointToData(r); + t.setCenter(o) + } + if (null != a) { + if (i) { + var s = i.min || 0, + l = i.max || 1 / 0; + a = Math.max(Math.min(n * a, l), s) / n + } + t.scale[0] *= a, t.scale[1] *= a; + var u = t.position, + h = (e.originX - u[0]) * (a - 1), + c = (e.originY - u[1]) * (a - 1); + u[0] -= h, u[1] -= c, t.updateTransform(); + o = t.pointToData(r); + t.setCenter(o), t.setZoom(a * n) + } + return { + center: t.getCenter(), + zoom: t.getZoom() + } + } + + function bc(t, e) { + var i = {}; + return d(t, function(t) { + t.each(t.mapDimension("value"), function(e, n) { + var o = "ec-" + t.getName(n); + i[o] = i[o] || [], isNaN(e) || i[o].push(e) + }) + }), t[0].map(t[0].mapDimension("value"), function(n, o) { + for (var a = "ec-" + t[0].getName(o), r = 0, s = 1 / 0, l = -1 / 0, u = i[a].length, h = 0; h < u; h++) s = Math.min(s, i[a][h]), l = Math.max(l, i[a][h]), r += i[a][h]; + var c; + return c = "min" === e ? s : "max" === e ? l : "average" === e ? r / u : r, 0 === u ? NaN : c + }) + } + + function Sc(t) { + var e = t.mainData, + i = t.datas; + i || (i = { + main: e + }, t.datasAttr = { + main: "data" + }), t.datas = t.mainData = null, Cc(e, i, t), MC(i, function(i) { + MC(e.TRANSFERABLE_METHODS, function(e) { + i.wrapMethod(e, v(Mc, t)) + }) + }), e.wrapMethod("cloneShallow", v(Tc, t)), MC(e.CHANGABLE_METHODS, function(i) { + e.wrapMethod(i, v(Ic, t)) + }), k(i[e.dataType] === e) + } + + function Mc(t, e) { + if (Dc(this)) { + var i = a({}, this[IC]); + i[this.dataType] = e, Cc(e, i, t) + } else Lc(e, this.dataType, this[TC], t); + return e + } + + function Ic(t, e) { + return t.struct && t.struct.update(this), e + } + + function Tc(t, e) { + return MC(e[IC], function(i, n) { + i !== e && Lc(i.cloneShallow(), n, e, t) + }), e + } + + function Ac(t) { + var e = this[TC]; + return null == t || null == e ? e : e[IC][t] + } + + function Dc(t) { + return t[TC] === t + } + + function Cc(t, e, i) { + t[IC] = {}, MC(e, function(e, n) { + Lc(e, n, t, i) + }) + } + + function Lc(t, e, i, n) { + i[IC][e] = t, t[TC] = i, t.dataType = e, n.struct && (t[n.structAttr] = n.struct, n.struct[n.datasAttr[e]] = t), t.getLinkedData = Ac + } + + function kc(t, e, i) { + this.root, this.data, this._nodes = [], this.hostModel = t, this.levelModels = f(e || [], function(e) { + return new Lo(e, t, t.ecModel) + }), this.leavesModel = new Lo(i || {}, t, t.ecModel) + } + + function Pc(t, e) { + var i = e.children; + t.parentNode !== e && (i.push(t), t.parentNode = e) + } + + function Nc(t) { + t.hierNode = { + defaultAncestor: null, + ancestor: t, + prelim: 0, + modifier: 0, + change: 0, + shift: 0, + i: 0, + thread: null + }; + for (var e, i, n = [t]; e = n.pop();) + if (i = e.children, e.isExpand && i.length) + for (var o = i.length - 1; o >= 0; o--) { + var a = i[o]; + a.hierNode = { + defaultAncestor: null, + ancestor: a, + prelim: 0, + modifier: 0, + change: 0, + shift: 0, + i: o, + thread: null + }, n.push(a) + } + } + + function Oc(t, e) { + var i = t.isExpand ? t.children : [], + n = t.parentNode.children, + o = t.hierNode.i ? n[t.hierNode.i - 1] : null; + if (i.length) { + Vc(t); + var a = (i[0].hierNode.prelim + i[i.length - 1].hierNode.prelim) / 2; + o ? (t.hierNode.prelim = o.hierNode.prelim + e(t, o), t.hierNode.modifier = t.hierNode.prelim - a) : t.hierNode.prelim = a + } else o && (t.hierNode.prelim = o.hierNode.prelim + e(t, o)); + t.parentNode.hierNode.defaultAncestor = Gc(t, o, t.parentNode.hierNode.defaultAncestor || n[0], e) + } + + function Ec(t) { + var e = t.hierNode.prelim + t.parentNode.hierNode.modifier; + t.setLayout({ + x: e + }, !0), t.hierNode.modifier += t.parentNode.hierNode.modifier + } + + function Rc(t) { + return arguments.length ? t : Uc + } + + function zc(t, e) { + var i = {}; + return t -= Math.PI / 2, i.x = e * Math.cos(t), i.y = e * Math.sin(t), i + } + + function Bc(t, e) { + return la(t.getBoxLayoutParams(), { + width: e.getWidth(), + height: e.getHeight() + }) + } + + function Vc(t) { + for (var e = t.children, i = e.length, n = 0, o = 0; --i >= 0;) { + var a = e[i]; + a.hierNode.prelim += n, a.hierNode.modifier += n, o += a.hierNode.change, n += a.hierNode.shift + o + } + } + + function Gc(t, e, i, n) { + if (e) { + for (var o = t, a = t, r = a.parentNode.children[0], s = e, l = o.hierNode.modifier, u = a.hierNode.modifier, h = r.hierNode.modifier, c = s.hierNode.modifier; s = Fc(s), a = Wc(a), s && a;) { + o = Fc(o), r = Wc(r), o.hierNode.ancestor = t; + var d = s.hierNode.prelim + c - a.hierNode.prelim - u + n(s, a); + d > 0 && (Zc(Hc(s, t, i), t, d), u += d, l += d), c += s.hierNode.modifier, u += a.hierNode.modifier, l += o.hierNode.modifier, h += r.hierNode.modifier + } + s && !Fc(o) && (o.hierNode.thread = s, o.hierNode.modifier += c - l), a && !Wc(r) && (r.hierNode.thread = a, r.hierNode.modifier += u - h, i = t) + } + return i + } + + function Fc(t) { + var e = t.children; + return e.length && t.isExpand ? e[e.length - 1] : t.hierNode.thread + } + + function Wc(t) { + var e = t.children; + return e.length && t.isExpand ? e[0] : t.hierNode.thread + } + + function Hc(t, e, i) { + return t.hierNode.ancestor.parentNode === e.parentNode ? t.hierNode.ancestor : i + } + + function Zc(t, e, i) { + var n = i / (e.hierNode.i - t.hierNode.i); + e.hierNode.change -= n, e.hierNode.shift += i, e.hierNode.modifier += i, e.hierNode.prelim += i, t.hierNode.change += n + } + + function Uc(t, e) { + return t.parentNode === e.parentNode ? 1 : 2 + } + + function Xc(t, e) { + var i = t.getItemLayout(e); + return i && !isNaN(i.x) && !isNaN(i.y) && "none" !== t.getItemVisual(e, "symbol") + } + + function jc(t, e, i) { + return i.itemModel = e, i.itemStyle = e.getModel("itemStyle").getItemStyle(), i.hoverItemStyle = e.getModel("emphasis.itemStyle").getItemStyle(), i.lineStyle = e.getModel("lineStyle").getLineStyle(), i.labelModel = e.getModel("label"), i.hoverLabelModel = e.getModel("emphasis.label"), !1 === t.isExpand && 0 !== t.children.length ? i.symbolInnerColor = i.itemStyle.fill : i.symbolInnerColor = "#fff", i + } + + function Yc(t, e, i, n, o, a) { + var s = !i, + l = t.tree.getNodeByDataIndex(e), + a = jc(l, l.getModel(), a), + u = t.tree.root, + h = l.parentNode === u ? l : l.parentNode || l, + c = t.getItemGraphicEl(h.dataIndex), + d = h.getLayout(), + f = c ? { + x: c.position[0], + y: c.position[1], + rawX: c.__radialOldRawX, + rawY: c.__radialOldRawY + } : d, + p = l.getLayout(); + s ? (i = new mu(t, e, a)).attr("position", [f.x, f.y]) : i.updateData(t, e, a), i.__radialOldRawX = i.__radialRawX, i.__radialOldRawY = i.__radialRawY, i.__radialRawX = p.rawX, i.__radialRawY = p.rawY, n.add(i), t.setItemGraphicEl(e, i), bo(i, { + position: [p.x, p.y] + }, o); + var g = i.getSymbolPath(); + if ("radial" === a.layout) { + var m, v, y = u.children[0], + x = y.getLayout(), + _ = y.children.length; + if (p.x === x.x && !0 === l.isExpand) { + var w = {}; + w.x = (y.children[0].getLayout().x + y.children[_ - 1].getLayout().x) / 2, w.y = (y.children[0].getLayout().y + y.children[_ - 1].getLayout().y) / 2, (m = Math.atan2(w.y - x.y, w.x - x.x)) < 0 && (m = 2 * Math.PI + m), (v = w.x < x.x) && (m -= Math.PI) + } else(m = Math.atan2(p.y - x.y, p.x - x.x)) < 0 && (m = 2 * Math.PI + m), 0 === l.children.length || 0 !== l.children.length && !1 === l.isExpand ? (v = p.x < x.x) && (m -= Math.PI) : (v = p.x > x.x) || (m -= Math.PI); + var b = v ? "left" : "right"; + g.setStyle({ + textPosition: b, + textRotation: -m, + textOrigin: "center", + verticalAlign: "middle" + }) + } + if (l.parentNode && l.parentNode !== u) { + var S = i.__edge; + S || (S = i.__edge = new lM({ + shape: Kc(a, f, f), + style: r({ + opacity: 0, + strokeNoScale: !0 + }, a.lineStyle) + })), bo(S, { + shape: Kc(a, d, p), + style: { + opacity: 1 + } + }, o), n.add(S) + } + } + + function qc(t, e, i, n, o, a) { + for (var r, s = t.tree.getNodeByDataIndex(e), l = t.tree.root, a = jc(s, s.getModel(), a), u = s.parentNode === l ? s : s.parentNode || s; null == (r = u.getLayout());) u = u.parentNode === l ? u : u.parentNode || u; + bo(i, { + position: [r.x + 1, r.y + 1] + }, o, function() { + n.remove(i), t.setItemGraphicEl(e, null) + }), i.fadeOut(null, { + keepLabel: !0 + }); + var h = i.__edge; + h && bo(h, { + shape: Kc(a, r, r), + style: { + opacity: 0 + } + }, o, function() { + n.remove(h) + }) + } + + function Kc(t, e, i) { + var n, o, a, r, s, l, u, h, c = t.orient; + if ("radial" === t.layout) { + s = e.rawX, u = e.rawY, l = i.rawX, h = i.rawY; + var d = zc(s, u), + f = zc(s, u + (h - u) * t.curvature), + p = zc(l, h + (u - h) * t.curvature), + g = zc(l, h); + return { + x1: d.x, + y1: d.y, + x2: g.x, + y2: g.y, + cpx1: f.x, + cpy1: f.y, + cpx2: p.x, + cpy2: p.y + } + } + return s = e.x, u = e.y, l = i.x, h = i.y, "LR" !== c && "RL" !== c || (n = s + (l - s) * t.curvature, o = u, a = l + (s - l) * t.curvature, r = h), "TB" !== c && "BT" !== c || (n = s, o = u + (h - u) * t.curvature, a = l, r = h + (u - h) * t.curvature), { + x1: s, + y1: u, + x2: l, + y2: h, + cpx1: n, + cpy1: o, + cpx2: a, + cpy2: r + } + } + + function $c(t, e, i) { + for (var n, o = [t], a = []; n = o.pop();) + if (a.push(n), n.isExpand) { + var r = n.children; + if (r.length) + for (var s = 0; s < r.length; s++) o.push(r[s]) + } for (; n = a.pop();) e(n, i) + } + + function Jc(t, e) { + for (var i, n = [t]; i = n.pop();) + if (e(i), i.isExpand) { + var o = i.children; + if (o.length) + for (var a = o.length - 1; a >= 0; a--) n.push(o[a]) + } + } + + function Qc(t, e) { + var i = Bc(t, e); + t.layoutInfo = i; + var n = t.get("layout"), + o = 0, + a = 0, + r = null; + "radial" === n ? (o = 2 * Math.PI, a = Math.min(i.height, i.width) / 2, r = Rc(function(t, e) { + return (t.parentNode === e.parentNode ? 1 : 2) / t.depth + })) : (o = i.width, a = i.height, r = Rc()); + var s = t.getData().tree.root, + l = s.children[0]; + if (l) { + Nc(s), $c(l, Oc, r), s.hierNode.modifier = -l.hierNode.prelim, Jc(l, Ec); + var u = l, + h = l, + c = l; + Jc(l, function(t) { + var e = t.getLayout().x; + e < u.getLayout().x && (u = t), e > h.getLayout().x && (h = t), t.depth > c.depth && (c = t) + }); + var d = u === h ? 1 : r(u, h) / 2, + f = d - u.getLayout().x, + p = 0, + g = 0, + m = 0, + v = 0; + if ("radial" === n) p = o / (h.getLayout().x + d + f), g = a / (c.depth - 1 || 1), Jc(l, function(t) { + m = (t.getLayout().x + f) * p, v = (t.depth - 1) * g; + var e = zc(m, v); + t.setLayout({ + x: e.x, + y: e.y, + rawX: m, + rawY: v + }, !0) + }); + else { + var y = t.getOrient(); + "RL" === y || "LR" === y ? (g = a / (h.getLayout().x + d + f), p = o / (c.depth - 1 || 1), Jc(l, function(t) { + v = (t.getLayout().x + f) * g, m = "LR" === y ? (t.depth - 1) * p : o - (t.depth - 1) * p, t.setLayout({ + x: m, + y: v + }, !0) + })) : "TB" !== y && "BT" !== y || (p = o / (h.getLayout().x + d + f), g = a / (c.depth - 1 || 1), Jc(l, function(t) { + m = (t.getLayout().x + f) * p, v = "TB" === y ? (t.depth - 1) * g : a - (t.depth - 1) * g, t.setLayout({ + x: m, + y: v + }, !0) + })) + } + } + } + + function td(t, e, i) { + if (t && l(e, t.type) >= 0) { + var n = i.getData().tree.root, + o = t.targetNode; + if ("string" == typeof o && (o = n.getNodeById(o)), o && n.contains(o)) return { + node: o + }; + var a = t.targetNodeId; + if (null != a && (o = n.getNodeById(a))) return { + node: o + } + } + } + + function ed(t) { + for (var e = []; t;)(t = t.parentNode) && e.push(t); + return e.reverse() + } + + function id(t, e) { + return l(ed(t), e) >= 0 + } + + function nd(t, e) { + for (var i = []; t;) { + var n = t.dataIndex; + i.push({ + name: t.name, + dataIndex: n, + value: e.getRawValue(n) + }), t = t.parentNode + } + return i.reverse(), i + } + + function od(t) { + var e = 0; + d(t.children, function(t) { + od(t); + var i = t.value; + y(i) && (i = i[0]), e += i + }); + var i = t.value; + y(i) && (i = i[0]), (null == i || isNaN(i)) && (i = e), i < 0 && (i = 0), y(t.value) ? t.value[0] = i : t.value = i + } + + function ad(t, e) { + var i = e.get("color"); + if (i) { + var n; + return d(t = t || [], function(t) { + var e = new Lo(t), + i = e.get("color"); + (e.get("itemStyle.color") || i && "none" !== i) && (n = !0) + }), n || ((t[0] || (t[0] = {})).color = i.slice()), t + } + } + + function rd(t) { + this.group = new Zw, t.add(this.group) + } + + function sd(t, e, i, n, o, a) { + var r = [ + [o ? t : t - DC, e], + [t + i, e], + [t + i, e + n], + [o ? t : t - DC, e + n] + ]; + return !a && r.splice(2, 0, [t + i + DC, e + n / 2]), !o && r.push([t, e + n / 2]), r + } + + function ld(t, e, i) { + t.eventData = { + componentType: "series", + componentSubType: "treemap", + componentIndex: e.componentIndex, + seriesIndex: e.componentIndex, + seriesName: e.name, + seriesType: "treemap", + selfType: "breadcrumb", + nodeData: { + dataIndex: i && i.dataIndex, + name: i && i.name + }, + treePathInfo: i && nd(i, e) + } + } + + function ud() { + var t, e = [], + i = {}; + return { + add: function(t, n, o, a, r) { + return _(a) && (r = a, a = 0), !i[t.id] && (i[t.id] = 1, e.push({ + el: t, + target: n, + time: o, + delay: a, + easing: r + }), !0) + }, + done: function(e) { + return t = e, this + }, + start: function() { + for (var n = e.length, o = 0, a = e.length; o < a; o++) { + var r = e[o]; + r.el.animateTo(r.target, r.time, r.delay, r.easing, function() { + --n || (e.length = 0, i = {}, t && t()) + }) + } + return this + } + } + } + + function hd(t, e, n, o, r, s, l, u, h, c) { + function d(t, e) { + w ? !t.invisible && s.push(t) : (e(), t.__tmWillVisible || (t.invisible = !1)) + } + + function f(e, n, o, a, r, s) { + var u = l.getModel(), + h = T(t.getFormattedLabel(l.dataIndex, "normal", null, null, s ? "upperLabel" : "label"), u.get("name")); + if (!s && v.isLeafRoot) { + var c = t.get("drillDownIcon", !0); + h = c ? c + " " + h : h + } + var d = u.getModel(s ? EC : NC), + f = u.getModel(s ? RC : OC), + p = d.getShallow("show"); + co(e, n, d, f, { + defaultText: p ? h : null, + autoColor: o, + isRectText: !0 + }), s && (e.textRect = i(s)), e.truncate = p && d.get("ellipsis") ? { + outerWidth: a, + outerHeight: r, + minChar: 2 + } : null + } + + function p(t, i, o, a) { + var s = null != S && n[t][S], + l = r[t]; + return s ? (n[t][S] = null, g(l, s, t)) : w || ((s = new i({ + z: cd(o, a) + })).__tmDepth = o, s.__tmStorageName = t, m(l, s, t)), e[t][b] = s + } + + function g(t, e, i) { + (t[b] = {}).old = "nodeGroup" === i ? e.position.slice() : a({}, e.shape) + } + + function m(t, e, i) { + var n = t[b] = {}, + a = l.parentNode; + if (a && (!o || "drillDown" === o.direction)) { + var s = 0, + u = 0, + h = r.background[a.getRawIndex()]; + !o && h && h.old && (s = h.old.width, u = h.old.height), n.old = "nodeGroup" === i ? [0, u] : { + x: s, + y: u, + width: 0, + height: 0 + } + } + n.fadein = "nodeGroup" !== i + } + if (l) { + var v = l.getLayout(); + if (v && v.isInView) { + var y = v.width, + x = v.height, + _ = v.borderWidth, + w = v.invisible, + b = l.getRawIndex(), + S = u && u.getRawIndex(), + M = l.viewChildren, + I = v.upperHeight, + A = M && M.length, + D = l.getModel("itemStyle"), + C = l.getModel("emphasis.itemStyle"), + L = p("nodeGroup", LC); + if (L) { + if (h.add(L), L.attr("position", [v.x || 0, v.y || 0]), L.__tmNodeWidth = y, L.__tmNodeHeight = x, v.isAboveViewRoot) return L; + var k = p("background", kC, c, BC); + if (k && function(e, i, n) { + i.dataIndex = l.dataIndex, i.seriesIndex = t.seriesIndex, i.setShape({ + x: 0, + y: 0, + width: y, + height: x + }); + var o = l.getVisual("borderColor", !0), + a = C.get("borderColor"); + d(i, function() { + var t = FC(D); + t.fill = o; + var e = GC(C); + if (e.fill = a, n) { + var r = y - 2 * _; + f(t, e, o, r, I, { + x: _, + y: 0, + width: r, + height: I + }) + } else t.text = e.text = null; + i.setStyle(t), uo(i, e) + }), e.add(i) + }(L, k, A && v.upperHeight), !A) { + var P = p("content", kC, c, VC); + P && function(e, i) { + i.dataIndex = l.dataIndex, i.seriesIndex = t.seriesIndex; + var n = Math.max(y - 2 * _, 0), + o = Math.max(x - 2 * _, 0); + i.culling = !0, i.setShape({ + x: _, + y: _, + width: n, + height: o + }); + var a = l.getVisual("color", !0); + d(i, function() { + var t = FC(D); + t.fill = a; + var e = GC(C); + f(t, e, a, n, o), i.setStyle(t), uo(i, e) + }), e.add(i) + }(L, P) + } + return L + } + } + } + } + + function cd(t, e) { + var i = t * zC + e; + return (i - 1) / i + } + + function dd(t) { + var e = t.pieceList; + t.hasSpecialVisual = !1, d(e, function(e, i) { + e.originIndex = i, null != e.visual && (t.hasSpecialVisual = !0) + }) + } + + function fd(t) { + var e = t.categories, + i = t.visual, + n = t.categoryMap = {}; + if (ZC(e, function(t, e) { + n[t] = e + }), !y(i)) { + var o = []; + w(i) ? ZC(i, function(t, e) { + var i = n[e]; + o[null != i ? i : XC] = t + }) : o[XC] = i, i = bd(t, o) + } + for (var a = e.length - 1; a >= 0; a--) null == i[a] && (delete n[e[a]], e.pop()) + } + + function pd(t, e) { + var i = t.visual, + n = []; + w(i) ? ZC(i, function(t) { + n.push(t) + }) : null != i && n.push(i); + var o = { + color: 1, + symbol: 1 + }; + e || 1 !== n.length || o.hasOwnProperty(t.type) || (n[1] = n[0]), bd(t, n) + } + + function gd(t) { + return { + applyVisual: function(e, i, n) { + e = this.mapValueToVisual(e), n("color", t(i("color"), e)) + }, + _doMap: _d([0, 1]) + } + } + + function md(t) { + var e = this.option.visual; + return e[Math.round(Eo(t, [0, 1], [0, e.length - 1], !0))] || {} + } + + function vd(t) { + return function(e, i, n) { + n(t, this.mapValueToVisual(e)) + } + } + + function yd(t) { + var e = this.option.visual; + return e[this.option.loop && t !== XC ? t % e.length : t] + } + + function xd() { + return this.option.visual[0] + } + + function _d(t) { + return { + linear: function(e) { + return Eo(e, t, this.option.visual, !0) + }, + category: yd, + piecewise: function(e, i) { + var n = wd.call(this, i); + return null == n && (n = Eo(e, t, this.option.visual, !0)), n + }, + fixed: xd + } + } + + function wd(t) { + var e = this.option, + i = e.pieceList; + if (e.hasSpecialVisual) { + var n = i[jC.findPieceIndex(t, i)]; + if (n && n.visual) return n.visual[this.type] + } + } + + function bd(t, e) { + return t.visual = e, "color" === t.type && (t.parsedVisual = f(e, function(t) { + return zt(t) + })), e + } + + function Sd(t, e, i) { + return t ? e <= i : e < i + } + + function Md(t, e, i, n, o, a) { + var r = t.getModel(), + s = t.getLayout(); + if (s && !s.invisible && s.isInView) { + var l, u = t.getModel($C), + h = Id(u, e, i[t.depth], n), + c = u.get("borderColor"), + f = u.get("borderColorSaturation"); + null != f && (c = Ad(f, l = Td(h))), t.setVisual("borderColor", c); + var p = t.viewChildren; + if (p && p.length) { + var g = Cd(t, r, s, u, h, p); + d(p, function(t, e) { + (t.depth >= o.length || t === o[t.depth]) && Md(t, kd(r, h, t, e, g, a), i, n, o, a) + }) + } else l = Td(h), t.setVisual("color", l) + } + } + + function Id(t, e, i, n) { + var o = a({}, e); + return d(["color", "colorAlpha", "colorSaturation"], function(a) { + var r = t.get(a, !0); + null == r && i && (r = i[a]), null == r && (r = e[a]), null == r && (r = n.get(a)), null != r && (o[a] = r) + }), o + } + + function Td(t) { + var e = Dd(t, "color"); + if (e) { + var i = Dd(t, "colorAlpha"), + n = Dd(t, "colorSaturation"); + return n && (e = Zt(e, null, null, n)), i && (e = Ut(e, i)), e + } + } + + function Ad(t, e) { + return null != e ? Zt(e, null, null, t) : null + } + + function Dd(t, e) { + var i = t[e]; + if (null != i && "none" !== i) return i + } + + function Cd(t, e, i, n, o, a) { + if (a && a.length) { + var r = Ld(e, "color") || null != o.color && "none" !== o.color && (Ld(e, "colorAlpha") || Ld(e, "colorSaturation")); + if (r) { + var s = e.get("visualMin"), + l = e.get("visualMax"), + u = i.dataExtent.slice(); + null != s && s < u[0] && (u[0] = s), null != l && l > u[1] && (u[1] = l); + var h = e.get("colorMappingBy"), + c = { + type: r.name, + dataExtent: u, + visual: r.range + }; + "color" !== c.type || "index" !== h && "id" !== h ? c.mappingMethod = "linear" : (c.mappingMethod = "category", c.loop = !0); + var d = new jC(c); + return d.__drColorMappingBy = h, d + } + } + } + + function Ld(t, e) { + var i = t.get(e); + return KC(i) && i.length ? { + name: e, + range: i + } : null + } + + function kd(t, e, i, n, o, r) { + var s = a({}, e); + if (o) { + var l = o.type, + u = "color" === l && o.__drColorMappingBy, + h = "index" === u ? n : "id" === u ? r.mapIdToIndex(i.getId()) : i.getValue(t.get("visualDimension")); + s[l] = o.mapValueToVisual(h) + } + return s + } + + function Pd(t, e, i, n) { + var o, a; + if (!t.isRemoved()) { + var r = t.getLayout(); + o = r.width, a = r.height; + var s = (f = t.getModel()).get(nL), + l = f.get(oL) / 2, + u = Wd(f), + h = Math.max(s, u), + c = s - l, + d = h - l, + f = t.getModel(); + t.setLayout({ + borderWidth: s, + upperHeight: h, + upperLabelHeight: u + }, !0); + var p = (o = QC(o - 2 * c, 0)) * (a = QC(a - c - d, 0)), + g = Nd(t, f, p, e, i, n); + if (g.length) { + var m = { + x: c, + y: d, + width: o, + height: a + }, + v = tL(o, a), + y = 1 / 0, + x = []; + x.area = 0; + for (var _ = 0, w = g.length; _ < w;) { + var b = g[_]; + x.push(b), x.area += b.getLayout().area; + var S = zd(x, v, e.squareRatio); + S <= y ? (_++, y = S) : (x.area -= x.pop().getLayout().area, Bd(x, v, m, l, !1), v = tL(m.width, m.height), x.length = x.area = 0, y = 1 / 0) + } + if (x.length && Bd(x, v, m, l, !0), !i) { + var M = f.get("childrenVisibleMin"); + null != M && p < M && (i = !0) + } + for (var _ = 0, w = g.length; _ < w; _++) Pd(g[_], e, i, n + 1) + } + } + } + + function Nd(t, e, i, n, o, a) { + var r = t.children || [], + s = n.sort; + "asc" !== s && "desc" !== s && (s = null); + var l = null != n.leafDepth && n.leafDepth <= a; + if (o && !l) return t.viewChildren = []; + Ed(r = g(r, function(t) { + return !t.isRemoved() + }), s); + var u = Rd(e, r, s); + if (0 === u.sum) return t.viewChildren = []; + if (u.sum = Od(e, i, u.sum, s, r), 0 === u.sum) return t.viewChildren = []; + for (var h = 0, c = r.length; h < c; h++) { + var d = r[h].getValue() / u.sum * i; + r[h].setLayout({ + area: d + }) + } + return l && (r.length && t.setLayout({ + isLeafRoot: !0 + }, !0), r.length = 0), t.viewChildren = r, t.setLayout({ + dataExtent: u.dataExtent + }, !0), r + } + + function Od(t, e, i, n, o) { + if (!n) return i; + for (var a = t.get("visibleMin"), r = o.length, s = r, l = r - 1; l >= 0; l--) { + var u = o["asc" === n ? r - l - 1 : l].getValue(); + u / i * e < a && (s = l, i -= u) + } + return "asc" === n ? o.splice(0, r - s) : o.splice(s, r - s), i + } + + function Ed(t, e) { + return e && t.sort(function(t, i) { + var n = "asc" === e ? t.getValue() - i.getValue() : i.getValue() - t.getValue(); + return 0 === n ? "asc" === e ? t.dataIndex - i.dataIndex : i.dataIndex - t.dataIndex : n + }), t + } + + function Rd(t, e, i) { + for (var n = 0, o = 0, a = e.length; o < a; o++) n += e[o].getValue(); + var r = t.get("visualDimension"); + if (e && e.length) + if ("value" === r && i) s = [e[e.length - 1].getValue(), e[0].getValue()], "asc" === i && s.reverse(); + else { + var s = [1 / 0, -1 / 0]; + iL(e, function(t) { + var e = t.getValue(r); + e < s[0] && (s[0] = e), e > s[1] && (s[1] = e) + }) + } + else s = [NaN, NaN]; + return { + sum: n, + dataExtent: s + } + } + + function zd(t, e, i) { + for (var n, o = 0, a = 1 / 0, r = 0, s = t.length; r < s; r++)(n = t[r].getLayout().area) && (n < a && (a = n), n > o && (o = n)); + var l = t.area * t.area, + u = e * e * i; + return l ? QC(u * o / l, l / (u * a)) : 1 / 0 + } + + function Bd(t, e, i, n, o) { + var a = e === i.width ? 0 : 1, + r = 1 - a, + s = ["x", "y"], + l = ["width", "height"], + u = i[s[a]], + h = e ? t.area / e : 0; + (o || h > i[l[r]]) && (h = i[l[r]]); + for (var c = 0, d = t.length; c < d; c++) { + var f = t[c], + p = {}, + g = h ? f.getLayout().area / h : 0, + m = p[l[r]] = QC(h - 2 * n, 0), + v = i[s[a]] + i[l[a]] - u, + y = c === d - 1 || v < g ? v : g, + x = p[l[a]] = QC(y - 2 * n, 0); + p[s[r]] = i[s[r]] + tL(n, m / 2), p[s[a]] = u + tL(n, x / 2), u += y, f.setLayout(p, !0) + } + i[s[r]] += h, i[l[r]] -= h + } + + function Vd(t, e, i, n, o) { + var a = (e || {}).node, + r = [n, o]; + if (!a || a === i) return r; + for (var s, l = n * o, u = l * t.option.zoomToNodeRatio; s = a.parentNode;) { + for (var h = 0, c = s.children, d = 0, f = c.length; d < f; d++) h += c[d].getValue(); + var p = a.getValue(); + if (0 === p) return r; + u *= h / p; + var g = s.getModel(), + m = g.get(nL); + (u += 4 * m * m + (3 * m + Math.max(m, Wd(g))) * Math.pow(u, .5)) > kM && (u = kM), a = s + } + u < l && (u = l); + var v = Math.pow(u / l, .5); + return [n * v, o * v] + } + + function Gd(t, e, i) { + if (e) return { + x: e.x, + y: e.y + }; + var n = { + x: 0, + y: 0 + }; + if (!i) return n; + var o = i.node, + a = o.getLayout(); + if (!a) return n; + for (var r = [a.width / 2, a.height / 2], s = o; s;) { + var l = s.getLayout(); + r[0] += l.x, r[1] += l.y, s = s.parentNode + } + return { + x: t.width / 2 - r[0], + y: t.height / 2 - r[1] + } + } + + function Fd(t, e, i, n, o) { + var a = t.getLayout(), + r = i[o], + s = r && r === t; + if (!(r && !s || o === i.length && t !== n)) { + t.setLayout({ + isInView: !0, + invisible: !s && !e.intersect(a), + isAboveViewRoot: s + }, !0); + var l = new ue(e.x - a.x, e.y - a.y, e.width, e.height); + iL(t.viewChildren || [], function(t) { + Fd(t, l, i, n, o + 1) + }) + } + } + + function Wd(t) { + return t.get(aL) ? t.get(rL) : 0 + } + + function Hd(t) { + return "_EC_" + t + } + + function Zd(t, e) { + this.id = null == t ? "" : t, this.inEdges = [], this.outEdges = [], this.edges = [], this.hostGraph, this.dataIndex = null == e ? -1 : e + } + + function Ud(t, e, i) { + this.node1 = t, this.node2 = e, this.dataIndex = null == i ? -1 : i + } + + function Xd(t) { + return isNaN(+t.cpx1) || isNaN(+t.cpy1) + } + + function jd(t) { + return "_" + t + "Type" + } + + function Yd(t, e, i) { + var n = e.getItemVisual(i, "color"), + o = e.getItemVisual(i, t), + a = e.getItemVisual(i, t + "Size"); + if (o && "none" !== o) { + y(a) || (a = [a, a]); + var r = Xl(o, -a[0] / 2, -a[1] / 2, a[0], a[1], n); + return r.name = t, r + } + } + + function qd(t) { + var e = new gL({ + name: "line" + }); + return Kd(e.shape, t), e + } + + function Kd(t, e) { + var i = e[0], + n = e[1], + o = e[2]; + t.x1 = i[0], t.y1 = i[1], t.x2 = n[0], t.y2 = n[1], t.percent = 1, o ? (t.cpx1 = o[0], t.cpy1 = o[1]) : (t.cpx1 = NaN, t.cpy1 = NaN) + } + + function $d(t, e, i) { + Zw.call(this), this._createLine(t, e, i) + } + + function Jd(t) { + this._ctor = t || $d, this.group = new Zw + } + + function Qd(t, e, i, n) { + if ( of (e.getItemLayout(i))) { + var o = new t._ctor(e, i, n); + e.setItemGraphicEl(i, o), t.group.add(o) + } + } + + function tf(t, e, i, n, o, a) { + var r = e.getItemGraphicEl(n); of (i.getItemLayout(o)) ? (r ? r.updateData(i, o, a) : r = new t._ctor(i, o, a), i.setItemGraphicEl(o, r), t.group.add(r)) : t.group.remove(r) + } + + function ef(t) { + var e = t.hostModel; + return { + lineStyle: e.getModel("lineStyle").getLineStyle(), + hoverLineStyle: e.getModel("emphasis.lineStyle").getLineStyle(), + labelModel: e.getModel("label"), + hoverLabelModel: e.getModel("emphasis.label") + } + } + + function nf(t) { + return isNaN(t[0]) || isNaN(t[1]) + } + + function of (t) { + return !nf(t[0]) && !nf(t[1]) + } + + function af(t, e, i) { + for (var n, o = t[0], a = t[1], r = t[2], s = 1 / 0, l = i * i, u = .1, h = .1; h <= .9; h += .1) xL[0] = bL(o[0], a[0], r[0], h), xL[1] = bL(o[1], a[1], r[1], h), (f = ML(SL(xL, e) - l)) < s && (s = f, n = h); + for (var c = 0; c < 32; c++) { + var d = n + u; + _L[0] = bL(o[0], a[0], r[0], n), _L[1] = bL(o[1], a[1], r[1], n), wL[0] = bL(o[0], a[0], r[0], d), wL[1] = bL(o[1], a[1], r[1], d); + var f = SL(_L, e) - l; + if (ML(f) < .01) break; + var p = SL(wL, e) - l; + u /= 2, f < 0 ? p >= 0 ? n += u : n -= u : p >= 0 ? n -= u : n += u + } + return n + } + + function rf(t, e) { + return t.getVisual("opacity") || t.getModel().get(e) + } + + function sf(t, e, i) { + var n = t.getGraphicEl(), + o = rf(t, e); + null != i && (null == o && (o = 1), o *= i), n.downplay && n.downplay(), n.traverse(function(t) { + "group" !== t.type && t.setStyle("opacity", o) + }) + } + + function lf(t, e) { + var i = rf(t, e), + n = t.getGraphicEl(); + n.highlight && n.highlight(), n.traverse(function(t) { + "group" !== t.type && t.setStyle("opacity", i) + }) + } + + function uf(t) { + return t instanceof Array || (t = [t, t]), t + } + + function hf(t) { + var e = t.coordinateSystem; + if (!e || "view" === e.type) { + var i = t.getGraph(); + i.eachNode(function(t) { + var e = t.getModel(); + t.setLayout([+e.get("x"), +e.get("y")]) + }), cf(i) + } + } + + function cf(t) { + t.eachEdge(function(t) { + var e = t.getModel().get("lineStyle.curveness") || 0, + i = F(t.node1.getLayout()), + n = F(t.node2.getLayout()), + o = [i, n]; + e && o.push([(i[0] + n[0]) / 2 - (i[1] - n[1]) * e, (i[1] + n[1]) / 2 - (n[0] - i[0]) * e]), t.setLayout(o) + }) + } + + function df(t) { + var e = t.coordinateSystem; + if (!e || "view" === e.type) { + var i = e.getBoundingRect(), + n = t.getData(), + o = n.graph, + a = 0, + r = n.getSum("value"), + s = 2 * Math.PI / (r || n.count()), + l = i.width / 2 + i.x, + u = i.height / 2 + i.y, + h = Math.min(i.width, i.height) / 2; + o.eachNode(function(t) { + var e = t.getValue("value"); + a += s * (r ? e : 1) / 2, t.setLayout([h * Math.cos(a) + l, h * Math.sin(a) + u]), a += s * (r ? e : 1) / 2 + }), n.setLayout({ + cx: l, + cy: u + }), o.eachEdge(function(t) { + var e, i = t.getModel().get("lineStyle.curveness") || 0, + n = F(t.node1.getLayout()), + o = F(t.node2.getLayout()), + a = (n[0] + o[0]) / 2, + r = (n[1] + o[1]) / 2; + i && (e = [l * (i *= 3) + a * (1 - i), u * i + r * (1 - i)]), t.setLayout([n, o, e]) + }) + } + } + + function ff(t, e, i) { + for (var n = i.rect, o = n.width, a = n.height, r = [n.x + o / 2, n.y + a / 2], s = null == i.gravity ? .1 : i.gravity, l = 0; l < t.length; l++) { + var u = t[l]; + u.p || (u.p = V(o * (Math.random() - .5) + r[0], a * (Math.random() - .5) + r[1])), u.pp = F(u.p), u.edges = null + } + var h = .6; + return { + warmUp: function() { + h = .5 + }, + setFixed: function(e) { + t[e].fixed = !0 + }, + setUnfixed: function(e) { + t[e].fixed = !1 + }, + step: function(i) { + for (var n = [], o = t.length, a = 0; a < e.length; a++) { + var l = e[a], + u = l.n1; + U(n, (p = l.n2).p, u.p); + var c = X(n) - l.d, + d = p.w / (u.w + p.w); + isNaN(d) && (d = 0), q(n, n), !u.fixed && DL(u.p, u.p, n, d * c * h), !p.fixed && DL(p.p, p.p, n, -(1 - d) * c * h) + } + for (a = 0; a < o; a++)(v = t[a]).fixed || (U(n, r, v.p), DL(v.p, v.p, n, s * h)); + for (a = 0; a < o; a++) + for (var u = t[a], f = a + 1; f < o; f++) { + var p = t[f]; + U(n, p.p, u.p), 0 === (c = X(n)) && (W(n, Math.random() - .5, Math.random() - .5), c = 1); + var g = (u.rep + p.rep) / c / c; + !u.fixed && DL(u.pp, u.pp, n, g), !p.fixed && DL(p.pp, p.pp, n, -g) + } + for (var m = [], a = 0; a < o; a++) { + var v = t[a]; + v.fixed || (U(m, v.p, v.pp), DL(v.p, v.p, m, h), G(v.pp, v.p)) + } + h *= .992, i && i(t, e, h < .01) + } + } + } + + function pf(t, e, i) { + var n = t.getBoxLayoutParams(); + return n.aspect = i, la(n, { + width: e.getWidth(), + height: e.getHeight() + }) + } + + function gf(t, e) { + var i = t.get("center"), + n = e.getWidth(), + o = e.getHeight(), + a = Math.min(n, o); + return { + cx: Ro(i[0], e.getWidth()), + cy: Ro(i[1], e.getHeight()), + r: Ro(t.get("radius"), a / 2) + } + } + + function mf(t, e) { + return e && ("string" == typeof e ? t = e.replace("{value}", null != t ? t : "") : "function" == typeof e && (t = e(t))), t + } + + function vf(t, e) { + function i() { + a.ignore = a.hoverIgnore, r.ignore = r.hoverIgnore + } + + function n() { + a.ignore = a.normalIgnore, r.ignore = r.normalIgnore + } + Zw.call(this); + var o = new nM, + a = new oM, + r = new qS; + this.add(o), this.add(a), this.add(r), this.updateData(t, e, !0), this.on("emphasis", i).on("normal", n).on("mouseover", i).on("mouseout", n) + } + + function yf(t, e) { + return la(t.getBoxLayoutParams(), { + width: e.getWidth(), + height: e.getHeight() + }) + } + + function xf(t, e) { + for (var i = t.mapDimension("value"), n = t.mapArray(i, function(t) { + return t + }), o = [], a = "ascending" === e, r = 0, s = t.count(); r < s; r++) o[r] = r; + return "function" == typeof e ? o.sort(e) : "none" !== e && o.sort(function(t, e) { + return a ? n[t] - n[e] : n[e] - n[t] + }), o + } + + function _f(t) { + t.each(function(e) { + var i, n, o, a, r = t.getItemModel(e), + s = r.getModel("label").get("position"), + l = r.getModel("labelLine"), + u = t.getItemLayout(e), + h = u.points, + c = "inner" === s || "inside" === s || "center" === s; + if (c) i = "center", a = [ + [n = (h[0][0] + h[1][0] + h[2][0] + h[3][0]) / 4, o = (h[0][1] + h[1][1] + h[2][1] + h[3][1]) / 4], + [n, o] + ]; + else { + var d, f, p, g = l.get("length"); + "left" === s ? (d = (h[3][0] + h[0][0]) / 2, f = (h[3][1] + h[0][1]) / 2, n = (p = d - g) - 5, i = "right") : (d = (h[1][0] + h[2][0]) / 2, f = (h[1][1] + h[2][1]) / 2, n = (p = d + g) + 5, i = "left"); + var m = f; + a = [ + [d, f], + [p, m] + ], o = m + } + u.label = { + linePoints: a, + x: n, + y: o, + verticalAlign: "middle", + textAlign: i, + inside: c + } + }) + } + + function wf(t) { + if (!t.parallel) { + var e = !1; + d(t.series, function(t) { + t && "parallel" === t.type && (e = !0) + }), e && (t.parallel = [{}]) + } + } + + function bf(t) { + d(Di(t.parallelAxis), function(e) { + if (w(e)) { + var i = e.parallelIndex || 0, + o = Di(t.parallel)[i]; + o && o.parallelAxisDefault && n(e, o.parallelAxisDefault, !1) + } + }) + } + + function Sf(t, e) { + var i = t[e] - t[1 - e]; + return { + span: Math.abs(i), + sign: i > 0 ? -1 : i < 0 ? 1 : e ? -1 : 1 + } + } + + function Mf(t, e) { + return Math.min(e[1], Math.max(e[0], t)) + } + + function If(t, e, i) { + this._axesMap = R(), this._axesLayout = {}, this.dimensions = t.dimensions, this._rect, this._model = t, this._init(t, e, i) + } + + function Tf(t, e) { + return zL(BL(t, e[0]), e[1]) + } + + function Af(t, e) { + var i = e.layoutLength / (e.axisCount - 1); + return { + position: i * t, + axisNameAvailableWidth: i, + axisLabelShow: !0 + } + } + + function Df(t, e) { + var i, n, o = e.layoutLength, + a = e.axisExpandWidth, + r = e.axisCount, + s = e.axisCollapseWidth, + l = e.winInnerIndices, + u = s, + h = !1; + return t < l[0] ? (i = t * s, n = s) : t <= l[1] ? (i = e.axisExpandWindow0Pos + t * a - e.axisExpandWindow[0], u = a, h = !0) : (i = o - (r - 1 - t) * s, n = s), { + position: i, + axisNameAvailableWidth: u, + axisLabelShow: h, + nameTruncateMaxWidth: n + } + } + + function Cf(t) { + aw.call(this), this._zr = t, this.group = new Zw, this._brushType, this._brushOption, this._panels, this._track = [], this._dragging, this._covers = [], this._creatingCover, this._creatingPanel, this._enableGlobalPan, this._uid = "brushController_" + ok++, this._handlers = {}, XL(ak, function(t, e) { + this._handlers[e] = m(t, this) + }, this) + } + + function Lf(t, e) { + var o = t._zr; + t._enableGlobalPan || ec(o, tk, t._uid), XL(t._handlers, function(t, e) { + o.on(e, t) + }), t._brushType = e.brushType, t._brushOption = n(i(nk), e, !0) + } + + function kf(t) { + var e = t._zr; + ic(e, tk, t._uid), XL(t._handlers, function(t, i) { + e.off(i, t) + }), t._brushType = t._brushOption = null + } + + function Pf(t, e) { + var i = rk[e.brushType].createCover(t, e); + return i.__brushOption = e, Ef(i, e), t.group.add(i), i + } + + function Nf(t, e) { + var i = zf(e); + return i.endCreating && (i.endCreating(t, e), Ef(e, e.__brushOption)), e + } + + function Of(t, e) { + var i = e.__brushOption; + zf(e).updateCoverShape(t, e, i.range, i) + } + + function Ef(t, e) { + var i = e.z; + null == i && (i = $L), t.traverse(function(t) { + t.z = i, t.z2 = i + }) + } + + function Rf(t, e) { + zf(e).updateCommon(t, e), Of(t, e) + } + + function zf(t) { + return rk[t.__brushOption.brushType] + } + + function Bf(t, e, i) { + var n = t._panels; + if (!n) return !0; + var o, a = t._transform; + return XL(n, function(t) { + t.isTargetByCursor(e, i, a) && (o = t) + }), o + } + + function Vf(t, e) { + var i = t._panels; + if (!i) return !0; + var n = e.__brushOption.panelId; + return null == n || i[n] + } + + function Gf(t) { + var e = t._covers, + i = e.length; + return XL(e, function(e) { + t.group.remove(e) + }, t), e.length = 0, !!i + } + + function Ff(t, e) { + var n = jL(t._covers, function(t) { + var e = t.__brushOption, + n = i(e.range); + return { + brushType: e.brushType, + panelId: e.panelId, + range: n + } + }); + t.trigger("brush", n, { + isEnd: !!e.isEnd, + removeOnClick: !!e.removeOnClick + }) + } + + function Wf(t) { + var e = t._track; + if (!e.length) return !1; + var i = e[e.length - 1], + n = e[0], + o = i[0] - n[0], + a = i[1] - n[1]; + return KL(o * o + a * a, .5) > JL + } + + function Hf(t) { + var e = t.length - 1; + return e < 0 && (e = 0), [t[0], t[e]] + } + + function Zf(t, e, i, n) { + var o = new Zw; + return o.add(new aM({ + name: "main", + style: Yf(i), + silent: !0, + draggable: !0, + cursor: "move", + drift: UL(t, e, o, "nswe"), + ondragend: UL(Ff, e, { + isEnd: !0 + }) + })), XL(n, function(i) { + o.add(new aM({ + name: i, + style: { + opacity: 0 + }, + draggable: !0, + silent: !0, + invisible: !0, + drift: UL(t, e, o, i), + ondragend: UL(Ff, e, { + isEnd: !0 + }) + })) + }), o + } + + function Uf(t, e, i, n) { + var o = n.brushStyle.lineWidth || 0, + a = qL(o, QL), + r = i[0][0], + s = i[1][0], + l = r - o / 2, + u = s - o / 2, + h = i[0][1], + c = i[1][1], + d = h - a + o / 2, + f = c - a + o / 2, + p = h - r, + g = c - s, + m = p + o, + v = g + o; + jf(t, e, "main", r, s, p, g), n.transformable && (jf(t, e, "w", l, u, a, v), jf(t, e, "e", d, u, a, v), jf(t, e, "n", l, u, m, a), jf(t, e, "s", l, f, m, a), jf(t, e, "nw", l, u, a, a), jf(t, e, "ne", d, u, a, a), jf(t, e, "sw", l, f, a, a), jf(t, e, "se", d, f, a, a)) + } + + function Xf(t, e) { + var i = e.__brushOption, + n = i.transformable, + o = e.childAt(0); + o.useStyle(Yf(i)), o.attr({ + silent: !n, + cursor: n ? "move" : "default" + }), XL(["w", "e", "n", "s", "se", "sw", "ne", "nw"], function(i) { + var o = e.childOfName(i), + a = $f(t, i); + o && o.attr({ + silent: !n, + invisible: !n, + cursor: n ? ik[a] + "-resize" : null + }) + }) + } + + function jf(t, e, i, n, o, a, r) { + var s = e.childOfName(i); + s && s.setShape(ip(ep(t, e, [ + [n, o], + [n + a, o + r] + ]))) + } + + function Yf(t) { + return r({ + strokeNoScale: !0 + }, t.brushStyle) + } + + function qf(t, e, i, n) { + var o = [YL(t, i), YL(e, n)], + a = [qL(t, i), qL(e, n)]; + return [ + [o[0], a[0]], + [o[1], a[1]] + ] + } + + function Kf(t) { + return Mo(t.group) + } + + function $f(t, e) { + if (e.length > 1) return ("e" === (n = [$f(t, (e = e.split(""))[0]), $f(t, e[1])])[0] || "w" === n[0]) && n.reverse(), n.join(""); + var i = { + left: "w", + right: "e", + top: "n", + bottom: "s" + }, + n = To({ + w: "left", + e: "right", + n: "top", + s: "bottom" + } [e], Kf(t)); + return i[n] + } + + function Jf(t, e, i, n, o, a, r, s) { + var l = n.__brushOption, + u = t(l.range), + h = tp(i, a, r); + XL(o.split(""), function(t) { + var e = ek[t]; + u[e[0]][e[1]] += h[e[0]] + }), l.range = e(qf(u[0][0], u[1][0], u[0][1], u[1][1])), Rf(i, n), Ff(i, { + isEnd: !1 + }) + } + + function Qf(t, e, i, n, o) { + var a = e.__brushOption.range, + r = tp(t, i, n); + XL(a, function(t) { + t[0] += r[0], t[1] += r[1] + }), Rf(t, e), Ff(t, { + isEnd: !1 + }) + } + + function tp(t, e, i) { + var n = t.group, + o = n.transformCoordToLocal(e, i), + a = n.transformCoordToLocal(0, 0); + return [o[0] - a[0], o[1] - a[1]] + } + + function ep(t, e, n) { + var o = Vf(t, e); + return o && !0 !== o ? o.clipPath(n, t._transform) : i(n) + } + + function ip(t) { + var e = YL(t[0][0], t[1][0]), + i = YL(t[0][1], t[1][1]); + return { + x: e, + y: i, + width: qL(t[0][0], t[1][0]) - e, + height: qL(t[0][1], t[1][1]) - i + } + } + + function np(t, e, i) { + if (t._brushType) { + var n = t._zr, + o = t._covers, + a = Bf(t, e, i); + if (!t._dragging) + for (var r = 0; r < o.length; r++) { + var s = o[r].__brushOption; + if (a && (!0 === a || s.panelId === a.panelId) && rk[s.brushType].contain(o[r], i[0], i[1])) return + } + a && n.setCursorStyle("crosshair") + } + } + + function op(t) { + var e = t.event; + e.preventDefault && e.preventDefault() + } + + function ap(t, e, i) { + return t.childOfName("main").contain(e, i) + } + + function rp(t, e, n, o) { + var a, r = t._creatingCover, + s = t._creatingPanel, + l = t._brushOption; + if (t._track.push(n.slice()), Wf(t) || r) { + if (s && !r) { + "single" === l.brushMode && Gf(t); + var u = i(l); + u.brushType = sp(u.brushType, s), u.panelId = !0 === s ? null : s.panelId, r = t._creatingCover = Pf(t, u), t._covers.push(r) + } + if (r) { + var h = rk[sp(t._brushType, s)]; + r.__brushOption.range = h.getCreatingRange(ep(t, r, t._track)), o && (Nf(t, r), h.updateCommon(t, r)), Of(t, r), a = { + isEnd: o + } + } + } else o && "single" === l.brushMode && l.removeOnClick && Bf(t, e, n) && Gf(t) && (a = { + isEnd: o, + removeOnClick: !0 + }); + return a + } + + function sp(t, e) { + return "auto" === t ? e.defaultBrushType : t + } + + function lp(t) { + if (this._dragging) { + op(t); + var e = rp(this, t, this.group.transformCoordToLocal(t.offsetX, t.offsetY), !0); + this._dragging = !1, this._track = [], this._creatingCover = null, e && Ff(this, e) + } + } + + function up(t) { + return { + createCover: function(e, i) { + return Zf(UL(Jf, function(e) { + var i = [e, [0, 100]]; + return t && i.reverse(), i + }, function(e) { + return e[t] + }), e, i, [ + ["w", "e"], + ["n", "s"] + ][t]) + }, + getCreatingRange: function(e) { + var i = Hf(e); + return [YL(i[0][t], i[1][t]), qL(i[0][t], i[1][t])] + }, + updateCoverShape: function(e, i, n, o) { + var a, r = Vf(e, i); + if (!0 !== r && r.getLinearBrushOtherExtent) a = r.getLinearBrushOtherExtent(t, e._transform); + else { + var s = e._zr; + a = [0, [s.getWidth(), s.getHeight()][1 - t]] + } + var l = [n, a]; + t && l.reverse(), Uf(e, i, l, o) + }, + updateCommon: Xf, + contain: ap + } + } + + function hp(t) { + return t = fp(t), + function(e, i) { + return Do(e, t) + } + } + + function cp(t, e) { + return t = fp(t), + function(i) { + var n = null != e ? e : i, + o = n ? t.width : t.height, + a = n ? t.x : t.y; + return [a, a + (o || 0)] + } + } + + function dp(t, e, i) { + return t = fp(t), + function(n, o, a) { + return t.contain(o[0], o[1]) && !mc(n, e, i) + } + } + + function fp(t) { + return ue.create(t) + } + + function pp(t, e, i) { + return i && "axisAreaSelect" === i.type && e.findComponents({ + mainType: "parallelAxis", + query: i + })[0] === t + } + + function gp(t) { + var e = t.axis; + return f(t.activeIntervals, function(t) { + return { + brushType: "lineX", + panelId: "pl", + range: [e.dataToCoord(t[0], !0), e.dataToCoord(t[1], !0)] + } + }) + } + + function mp(t, e) { + return e.getComponent("parallel", t.get("parallelIndex")) + } + + function vp(t, e) { + var i = t._model; + return i.get("axisExpandable") && i.get("axisExpandTriggerOn") === e + } + + function yp(t, e) { + if (!t.encodeDefine) { + var i = e.ecModel.getComponent("parallel", e.get("parallelIndex")); + if (i) { + var n = t.encodeDefine = R(); + d(i.dimensions, function(t) { + var e = xp(t); + n.set(t, e) + }) + } + } + } + + function xp(t) { + return +t.replace("dim", "") + } + + function _p(t, e, i) { + var n = t.model, + o = t.getRect(), + a = new aM({ + shape: { + x: o.x, + y: o.y, + width: o.width, + height: o.height + } + }), + r = "horizontal" === n.get("layout") ? "width" : "height"; + return a.setShape(r, 0), So(a, { + shape: { + width: o.width, + height: o.height + } + }, e, i), a + } + + function wp(t, e, i, n) { + for (var o = [], a = 0; a < i.length; a++) { + var r = i[a], + s = t.get(t.mapDimension(r), e); + Ip(s, n.getAxis(r).type) || o.push(n.dataToPoint(s, r)) + } + return o + } + + function bp(t, e, i, n, o) { + var a = wp(t, i, n, o), + r = new oM({ + shape: { + points: a + }, + silent: !0, + z2: 10 + }); + return e.add(r), t.setItemGraphicEl(i, r), r + } + + function Sp(t) { + var e = t.get("smooth", !0); + return !0 === e && (e = hk), { + lineStyle: t.getModel("lineStyle").getLineStyle(), + smooth: null != e ? e : hk + } + } + + function Mp(t, e, i, n) { + var o = n.lineStyle; + e.hasItemOption && (o = e.getItemModel(i).getModel("lineStyle").getLineStyle()), t.useStyle(o); + var a = t.style; + a.fill = null, a.stroke = e.getItemVisual(i, "color"), a.opacity = e.getItemVisual(i, "opacity"), n.smooth && (t.shape.smooth = n.smooth) + } + + function Ip(t, e) { + return "category" === e ? null == t : null == t || isNaN(t) + } + + function Tp(t, e) { + return t.getVisual("opacity") || t.getModel().get(e) + } + + function Ap(t, e, i) { + var n = t.getGraphicEl(), + o = Tp(t, e); + null != i && (null == o && (o = 1), o *= i), n.downplay && n.downplay(), n.traverse(function(t) { + "group" !== t.type && t.setStyle("opacity", o) + }) + } + + function Dp(t, e) { + var i = Tp(t, e), + n = t.getGraphicEl(); + n.highlight && n.highlight(), n.traverse(function(t) { + "group" !== t.type && t.setStyle("opacity", i) + }) + } + + function Cp(t, e, i) { + var n = new aM({ + shape: { + x: t.x - 10, + y: t.y - 10, + width: 0, + height: t.height + 20 + } + }); + return So(n, { + shape: { + width: t.width + 20, + height: t.height + 20 + } + }, e, i), n + } + + function Lp() { + function t(e, n) { + if (n >= i.length) return e; + for (var o = -1, a = e.length, r = i[n++], s = {}, l = {}; ++o < a;) { + var u = r(e[o]), + h = l[u]; + h ? h.push(e[o]) : l[u] = [e[o]] + } + return d(l, function(e, i) { + s[i] = t(e, n) + }), s + } + + function e(t, o) { + if (o >= i.length) return t; + var a = [], + r = n[o++]; + return d(t, function(t, i) { + a.push({ + key: i, + values: e(t, o) + }) + }), r ? a.sort(function(t, e) { + return r(t.key, e.key) + }) : a + } + var i = [], + n = []; + return { + key: function(t) { + return i.push(t), this + }, + sortKeys: function(t) { + return n[i.length - 1] = t, this + }, + entries: function(i) { + return e(t(i, 0), 0) + } + } + } + + function kp(t, e) { + return la(t.getBoxLayoutParams(), { + width: e.getWidth(), + height: e.getHeight() + }) + } + + function Pp(t, e, i, n, o, a, r, s) { + Op(t, e, i, o, a, s), zp(t, e, a, o, n, r, s), Yp(t, s) + } + + function Np(t) { + d(t, function(t) { + var e = Xp(t.outEdges, Up), + i = Xp(t.inEdges, Up), + n = Math.max(e, i); + t.setLayout({ + value: n + }, !0) + }) + } + + function Op(t, e, i, n, o, a) { + for (var r = [], s = [], l = [], u = [], h = 0, c = 0; c < e.length; c++) r[c] = 1; + for (c = 0; c < t.length; c++) s[c] = t[c].inEdges.length, 0 === s[c] && l.push(t[c]); + for (; l.length;) { + for (var d = 0; d < l.length; d++) { + var f = l[d]; + "vertical" === a ? (f.setLayout({ + y: h + }, !0), f.setLayout({ + dy: i + }, !0)) : (f.setLayout({ + x: h + }, !0), f.setLayout({ + dx: i + }, !0)); + for (var p = 0; p < f.outEdges.length; p++) { + var g = f.outEdges[p]; + r[e.indexOf(g)] = 0; + var m = g.node2; + 0 == --s[t.indexOf(m)] && u.push(m) + } + }++h, l = u, u = [] + } + for (c = 0; c < r.length; c++); + Ep(t, h, a), Rp(t, "vertical" === a ? (o - i) / (h - 1) : (n - i) / (h - 1), a) + } + + function Ep(t, e, i) { + d(t, function(t) { + t.outEdges.length || ("vertical" === i ? t.setLayout({ + y: e - 1 + }, !0) : t.setLayout({ + x: e - 1 + }, !0)) + }) + } + + function Rp(t, e, i) { + d(t, function(t) { + if ("vertical" === i) { + var n = t.getLayout().y * e; + t.setLayout({ + y: n + }, !0) + } else { + var o = t.getLayout().x * e; + t.setLayout({ + x: o + }, !0) + } + }) + } + + function zp(t, e, i, n, o, a, r) { + var s = Lp().key(Bp(r)).sortKeys(function(t, e) { + return t - e + }).entries(t).map(function(t) { + return t.values + }); + Vp(t, s, e, i, n, o, r), Gp(s, o, i, n, r); + for (var l = 1; a > 0; a--) Fp(s, l *= .99, r), Gp(s, o, i, n, r), jp(s, l, r), Gp(s, o, i, n, r) + } + + function Bp(t) { + return "vertical" === t ? function(t) { + return t.getLayout().y + } : function(t) { + return t.getLayout().x + } + } + + function Vp(t, e, i, n, o, a, r) { + var s = []; + d(e, function(t) { + var e = t.length, + i = 0, + l = 0; + d(t, function(t) { + i += t.getLayout().value + }), l = "vertical" === r ? (o - (e - 1) * a) / i : (n - (e - 1) * a) / i, s.push(l) + }), s.sort(function(t, e) { + return t - e + }); + var l = s[0]; + d(e, function(t) { + d(t, function(t, e) { + var i = t.getLayout().value * l; + "vertical" === r ? (t.setLayout({ + x: e + }, !0), t.setLayout({ + dx: i + }, !0)) : (t.setLayout({ + y: e + }, !0), t.setLayout({ + dy: i + }, !0)) + }) + }), d(i, function(t) { + var e = +t.getValue() * l; + t.setLayout({ + dy: e + }, !0) + }) + } + + function Gp(t, e, i, n, o) { + d(t, function(t) { + var a, r, s, l = 0, + u = t.length; + if ("vertical" === o) { + var h; + for (t.sort(function(t, e) { + return t.getLayout().x - e.getLayout().x + }), s = 0; s < u; s++)(r = l - (a = t[s]).getLayout().x) > 0 && (h = a.getLayout().x + r, a.setLayout({ + x: h + }, !0)), l = a.getLayout().x + a.getLayout().dx + e; + if ((r = l - e - n) > 0) + for (h = a.getLayout().x - r, a.setLayout({ + x: h + }, !0), l = h, s = u - 2; s >= 0; --s)(r = (a = t[s]).getLayout().x + a.getLayout().dx + e - l) > 0 && (h = a.getLayout().x - r, a.setLayout({ + x: h + }, !0)), l = a.getLayout().x + } else { + var c; + for (t.sort(function(t, e) { + return t.getLayout().y - e.getLayout().y + }), s = 0; s < u; s++)(r = l - (a = t[s]).getLayout().y) > 0 && (c = a.getLayout().y + r, a.setLayout({ + y: c + }, !0)), l = a.getLayout().y + a.getLayout().dy + e; + if ((r = l - e - i) > 0) + for (c = a.getLayout().y - r, a.setLayout({ + y: c + }, !0), l = c, s = u - 2; s >= 0; --s)(r = (a = t[s]).getLayout().y + a.getLayout().dy + e - l) > 0 && (c = a.getLayout().y - r, a.setLayout({ + y: c + }, !0)), l = a.getLayout().y + } + }) + } + + function Fp(t, e, i) { + d(t.slice().reverse(), function(t) { + d(t, function(t) { + if (t.outEdges.length) { + var n = Xp(t.outEdges, Wp, i) / Xp(t.outEdges, Up, i); + if ("vertical" === i) { + var o = t.getLayout().x + (n - Zp(t, i)) * e; + t.setLayout({ + x: o + }, !0) + } else { + var a = t.getLayout().y + (n - Zp(t, i)) * e; + t.setLayout({ + y: a + }, !0) + } + } + }) + }) + } + + function Wp(t, e) { + return Zp(t.node2, e) * t.getValue() + } + + function Hp(t, e) { + return Zp(t.node1, e) * t.getValue() + } + + function Zp(t, e) { + return "vertical" === e ? t.getLayout().x + t.getLayout().dx / 2 : t.getLayout().y + t.getLayout().dy / 2 + } + + function Up(t) { + return t.getValue() + } + + function Xp(t, e, i) { + for (var n = 0, o = t.length, a = -1; ++a < o;) { + var r = +e.call(t, t[a], i); + isNaN(r) || (n += r) + } + return n + } + + function jp(t, e, i) { + d(t, function(t) { + d(t, function(t) { + if (t.inEdges.length) { + var n = Xp(t.inEdges, Hp, i) / Xp(t.inEdges, Up, i); + if ("vertical" === i) { + var o = t.getLayout().x + (n - Zp(t, i)) * e; + t.setLayout({ + x: o + }, !0) + } else { + var a = t.getLayout().y + (n - Zp(t, i)) * e; + t.setLayout({ + y: a + }, !0) + } + } + }) + }) + } + + function Yp(t, e) { + d(t, function(t) { + "vertical" === e ? (t.outEdges.sort(function(t, e) { + return t.node2.getLayout().x - e.node2.getLayout().x + }), t.inEdges.sort(function(t, e) { + return t.node1.getLayout().x - e.node1.getLayout().x + })) : (t.outEdges.sort(function(t, e) { + return t.node2.getLayout().y - e.node2.getLayout().y + }), t.inEdges.sort(function(t, e) { + return t.node1.getLayout().y - e.node1.getLayout().y + })) + }), d(t, function(t) { + var e = 0, + i = 0; + d(t.outEdges, function(t) { + t.setLayout({ + sy: e + }, !0), e += t.getLayout().dy + }), d(t.inEdges, function(t) { + t.setLayout({ + ty: i + }, !0), i += t.getLayout().dy + }) + }) + } + + function qp(t, e, i, n, o) { + var a = t.ends, + r = new xk({ + shape: { + points: o ? $p(a, n, t) : a + } + }); + return Kp(t, r, e, i, o), r + } + + function Kp(t, e, i, n, o) { + var a = i.hostModel; + (0, bM[o ? "initProps" : "updateProps"])(e, { + shape: { + points: t.ends + } + }, a, n); + var r = i.getItemModel(n), + s = r.getModel(vk), + l = i.getItemVisual(n, "color"), + u = s.getItemStyle(["borderColor"]); + u.stroke = l, u.strokeNoScale = !0, e.useStyle(u), e.z2 = 100, uo(e, r.getModel(yk).getItemStyle()) + } + + function $p(t, e, i) { + return f(t, function(t) { + return t = t.slice(), t[e] = i.initBaseline, t + }) + } + + function Jp(t) { + var e = [], + i = []; + return t.eachSeriesByType("boxplot", function(t) { + var n = t.getBaseAxis(), + o = l(i, n); + o < 0 && (o = i.length, i[o] = n, e[o] = { + axis: n, + seriesModels: [] + }), e[o].seriesModels.push(t) + }), e + } + + function Qp(t) { + var e, i, n = t.axis, + o = t.seriesModels, + a = o.length, + r = t.boxWidthList = [], + s = t.boxOffsetList = [], + l = []; + if ("category" === n.type) i = n.getBandWidth(); + else { + var u = 0; + wk(o, function(t) { + u = Math.max(u, t.getData().count()) + }), e = n.getExtent(), Math.abs(e[1] - e[0]) + } + wk(o, function(t) { + var e = t.get("boxWidth"); + y(e) || (e = [e, e]), l.push([Ro(e[0], i) || 0, Ro(e[1], i) || 0]) + }); + var h = .8 * i - 2, + c = h / a * .3, + d = (h - c * (a - 1)) / a, + f = d / 2 - h / 2; + wk(o, function(t, e) { + s.push(f), f += c + d, r.push(Math.min(Math.max(d, l[e][0]), l[e][1])) + }) + } + + function tg(t, e, i) { + function n(t, i, n) { + var o = s.get(i, n), + a = []; + a[u] = t, a[h] = o; + var l; + return isNaN(t) || isNaN(o) ? l = [NaN, NaN] : (l = r.dataToPoint(a))[u] += e, l + } + + function o(t, e, i) { + var n = e.slice(), + o = e.slice(); + n[u] += l, o[u] -= l, i ? t.push(n, o) : t.push(o, n) + } + + function a(t, e) { + var i = e.slice(), + n = e.slice(); + i[u] -= l, n[u] += l, t.push(i, n) + } + var r = t.coordinateSystem, + s = t.getData(), + l = i / 2, + u = "horizontal" === t.get("layout") ? 0 : 1, + h = 1 - u, + c = ["x", "y"], + d = s.mapDimension(c[u]), + f = s.mapDimension(c[h], !0); + if (!(null == d || f.length < 5)) + for (var p = 0; p < s.count(); p++) { + var g = s.get(d, p), + m = n(g, f[2], p), + v = n(g, f[0], p), + y = n(g, f[1], p), + x = n(g, f[3], p), + _ = n(g, f[4], p), + w = []; + o(w, y, 0), o(w, x, 1), w.push(v, y, _, x), a(w, v), a(w, _), a(w, m), s.setItemLayout(p, { + initBaseline: m[h], + ends: w + }) + } + } + + function eg(t, e, i) { + var n = t.ends; + return new Ik({ + shape: { + points: i ? ng(n, t) : n + }, + z2: 100 + }) + } + + function ig(t, e, i, n) { + var o = e.getItemModel(i), + a = o.getModel(bk), + r = e.getItemVisual(i, "color"), + s = e.getItemVisual(i, "borderColor") || r, + l = a.getItemStyle(Mk); + t.useStyle(l), t.style.strokeNoScale = !0, t.style.fill = r, t.style.stroke = s, t.__simpleBox = n, uo(t, o.getModel(Sk).getItemStyle()) + } + + function ng(t, e) { + return f(t, function(t) { + return t = t.slice(), t[1] = e.initBaseline, t + }) + } + + function og(t, e, i) { + var n = t.getData(), + o = n.getLayout("largePoints"), + a = new Tk({ + shape: { + points: o + }, + __sign: 1 + }); + e.add(a); + var r = new Tk({ + shape: { + points: o + }, + __sign: -1 + }); + e.add(r), ag(1, a, t, n), ag(-1, r, t, n), i && (a.incremental = !0, r.incremental = !0) + } + + function ag(t, e, i, n) { + var o = t > 0 ? "P" : "N", + a = n.getVisual("borderColor" + o) || n.getVisual("color" + o), + r = i.getModel(bk).getItemStyle(Mk); + e.useStyle(r), e.style.fill = null, e.style.stroke = a + } + + function rg(t, e, i, n, o) { + return i > n ? -1 : i < n ? 1 : e > 0 ? t.get(o, e - 1) <= n ? 1 : -1 : 1 + } + + function sg(t, e) { + var i, n = t.getBaseAxis(), + o = "category" === n.type ? n.getBandWidth() : (i = n.getExtent(), Math.abs(i[1] - i[0]) / e.count()), + a = Ro(A(t.get("barMaxWidth"), o), o), + r = Ro(A(t.get("barMinWidth"), 1), o), + s = t.get("barWidth"); + return null != s ? Ro(s, o) : Math.max(Math.min(o / 2, a), r) + } + + function lg(t) { + return y(t) || (t = [+t, +t]), t + } + + function ug(t, e) { + t.eachChild(function(t) { + t.attr({ + z: e.z, + zlevel: e.zlevel, + style: { + stroke: "stroke" === e.brushType ? e.color : null, + fill: "fill" === e.brushType ? e.color : null + } + }) + }) + } + + function hg(t, e) { + Zw.call(this); + var i = new mu(t, e), + n = new Zw; + this.add(i), this.add(n), n.beforeUpdate = function() { + this.attr(i.getScale()) + }, this.updateData(t, e) + } + + function cg(t) { + var e = t.data; + e && e[0] && e[0][0] && e[0][0].coord && (t.data = f(e, function(t) { + var e = { + coords: [t[0].coord, t[1].coord] + }; + return t[0].name && (e.fromName = t[0].name), t[1].name && (e.toName = t[1].name), o([e, t[0], t[1]]) + })) + } + + function dg(t, e, i) { + Zw.call(this), this.add(this.createLine(t, e, i)), this._updateEffectSymbol(t, e) + } + + function fg(t, e, i) { + Zw.call(this), this._createPolyline(t, e, i) + } + + function pg(t, e, i) { + dg.call(this, t, e, i), this._lastFrame = 0, this._lastFramePercent = 0 + } + + function gg() { + this.group = new Zw + } + + function mg(t) { + return t instanceof Array || (t = [t, t]), t + } + + function vg() { + var t = Y_(); + this.canvas = t, this.blurSize = 30, this.pointSize = 20, this.maxOpacity = 1, this.minOpacity = 0, this._gradientPixels = {} + } + + function yg(t, e, i) { + var n = t[1] - t[0], + o = (e = f(e, function(e) { + return { + interval: [(e.interval[0] - t[0]) / n, (e.interval[1] - t[0]) / n] + } + })).length, + a = 0; + return function(t) { + for (n = a; n < o; n++) + if ((r = e[n].interval)[0] <= t && t <= r[1]) { + a = n; + break + } if (n === o) + for (var n = a - 1; n >= 0; n--) { + var r = e[n].interval; + if (r[0] <= t && t <= r[1]) { + a = n; + break + } + } + return n >= 0 && n < o && i[n] + } + } + + function xg(t, e) { + var i = t[1] - t[0]; + return e = [(e[0] - t[0]) / i, (e[1] - t[0]) / i], + function(t) { + return t >= e[0] && t <= e[1] + } + } + + function _g(t) { + var e = t.dimensions; + return "lng" === e[0] && "lat" === e[1] + } + + function wg(t, e, i, n) { + var o = t.getItemLayout(e), + a = i.get("symbolRepeat"), + r = i.get("symbolClip"), + s = i.get("symbolPosition") || "start", + l = (i.get("symbolRotate") || 0) * Math.PI / 180 || 0, + u = i.get("symbolPatternSize") || 2, + h = i.isAnimationEnabled(), + c = { + dataIndex: e, + layout: o, + itemModel: i, + symbolType: t.getItemVisual(e, "symbol") || "circle", + color: t.getItemVisual(e, "color"), + symbolClip: r, + symbolRepeat: a, + symbolRepeatDirection: i.get("symbolRepeatDirection"), + symbolPatternSize: u, + rotation: l, + animationModel: h ? i : null, + hoverAnimation: h && i.get("hoverAnimation"), + z2: i.getShallow("z", !0) || 0 + }; + bg(i, a, o, n, c), Mg(t, e, o, a, r, c.boundingLength, c.pxSign, u, n, c), Ig(i, c.symbolScale, l, n, c); + var d = c.symbolSize, + f = i.get("symbolOffset"); + return y(f) && (f = [Ro(f[0], d[0]), Ro(f[1], d[1])]), Tg(i, d, o, a, r, f, s, c.valueLineWidth, c.boundingLength, c.repeatCutLength, n, c), c + } + + function bg(t, e, i, n, o) { + var a, r = n.valueDim, + s = t.get("symbolBoundingData"), + l = n.coordSys.getOtherAxis(n.coordSys.getBaseAxis()), + u = l.toGlobalCoord(l.dataToCoord(0)), + h = 1 - +(i[r.wh] <= 0); + if (y(s)) { + var c = [Sg(l, s[0]) - u, Sg(l, s[1]) - u]; + c[1] < c[0] && c.reverse(), a = c[h] + } else a = null != s ? Sg(l, s) - u : e ? n.coordSysExtent[r.index][h] - u : i[r.wh]; + o.boundingLength = a, e && (o.repeatCutLength = i[r.wh]), o.pxSign = a > 0 ? 1 : a < 0 ? -1 : 0 + } + + function Sg(t, e) { + return t.toGlobalCoord(t.dataToCoord(t.scale.parse(e))) + } + + function Mg(t, e, i, n, o, a, r, s, l, u) { + var h = l.valueDim, + c = l.categoryDim, + d = Math.abs(i[c.wh]), + f = t.getItemVisual(e, "symbolSize"); + y(f) ? f = f.slice() : (null == f && (f = "100%"), f = [f, f]), f[c.index] = Ro(f[c.index], d), f[h.index] = Ro(f[h.index], n ? d : Math.abs(a)), u.symbolSize = f, (u.symbolScale = [f[0] / s, f[1] / s])[h.index] *= (l.isHorizontal ? -1 : 1) * r + } + + function Ig(t, e, i, n, o) { + var a = t.get(jk) || 0; + a && (qk.attr({ + scale: e.slice(), + rotation: i + }), qk.updateTransform(), a /= qk.getLineScale(), a *= e[n.valueDim.index]), o.valueLineWidth = a + } + + function Tg(t, e, i, n, o, r, s, l, u, h, c, d) { + var f = c.categoryDim, + p = c.valueDim, + g = d.pxSign, + m = Math.max(e[p.index] + l, 0), + v = m; + if (n) { + var y = Math.abs(u), + x = T(t.get("symbolMargin"), "15%") + "", + _ = !1; + x.lastIndexOf("!") === x.length - 1 && (_ = !0, x = x.slice(0, x.length - 1)), x = Ro(x, e[p.index]); + var w = Math.max(m + 2 * x, 0), + b = _ ? 0 : 2 * x, + S = Ko(n), + M = S ? n : Hg((y + b) / w); + w = m + 2 * (x = (y - M * m) / 2 / (_ ? M : M - 1)), b = _ ? 0 : 2 * x, S || "fixed" === n || (M = h ? Hg((Math.abs(h) + b) / w) : 0), v = M * w - b, d.repeatTimes = M, d.symbolMargin = x + } + var I = g * (v / 2), + A = d.pathPosition = []; + A[f.index] = i[f.wh] / 2, A[p.index] = "start" === s ? I : "end" === s ? u - I : u / 2, r && (A[0] += r[0], A[1] += r[1]); + var D = d.bundlePosition = []; + D[f.index] = i[f.xy], D[p.index] = i[p.xy]; + var C = d.barRectShape = a({}, i); + C[p.wh] = g * Math.max(Math.abs(i[p.wh]), Math.abs(A[p.index] + I)), C[f.wh] = i[f.wh]; + var L = d.clipShape = {}; + L[f.xy] = -i[f.xy], L[f.wh] = c.ecSize[f.wh], L[p.xy] = 0, L[p.wh] = i[p.wh] + } + + function Ag(t) { + var e = t.symbolPatternSize, + i = Xl(t.symbolType, -e / 2, -e / 2, e, e, t.color); + return i.attr({ + culling: !0 + }), "image" !== i.type && i.setStyle({ + strokeNoScale: !0 + }), i + } + + function Dg(t, e, i, n) { + function o(t) { + var e = l.slice(), + n = i.pxSign, + o = t; + return ("start" === i.symbolRepeatDirection ? n > 0 : n < 0) && (o = h - 1 - t), e[u.index] = d * (o - h / 2 + .5) + l[u.index], { + position: e, + scale: i.symbolScale.slice(), + rotation: i.rotation + } + } + var a = t.__pictorialBundle, + r = i.symbolSize, + s = i.valueLineWidth, + l = i.pathPosition, + u = e.valueDim, + h = i.repeatTimes || 0, + c = 0, + d = r[e.valueDim.index] + s + 2 * i.symbolMargin; + for (Gg(t, function(t) { + t.__pictorialAnimationIndex = c, t.__pictorialRepeatTimes = h, c < h ? Fg(t, null, o(c), i, n) : Fg(t, null, { + scale: [0, 0] + }, i, n, function() { + a.remove(t) + }), Eg(t, i), c++ + }); c < h; c++) { + var f = Ag(i); + f.__pictorialAnimationIndex = c, f.__pictorialRepeatTimes = h, a.add(f); + var p = o(c); + Fg(f, { + position: p.position, + scale: [0, 0] + }, { + scale: p.scale, + rotation: p.rotation + }, i, n), f.on("mouseover", function() { + Gg(t, function(t) { + t.trigger("emphasis") + }) + }).on("mouseout", function() { + Gg(t, function(t) { + t.trigger("normal") + }) + }), Eg(f, i) + } + } + + function Cg(t, e, i, n) { + var o = t.__pictorialBundle, + a = t.__pictorialMainPath; + a ? Fg(a, null, { + position: i.pathPosition.slice(), + scale: i.symbolScale.slice(), + rotation: i.rotation + }, i, n) : (a = t.__pictorialMainPath = Ag(i), o.add(a), Fg(a, { + position: i.pathPosition.slice(), + scale: [0, 0], + rotation: i.rotation + }, { + scale: i.symbolScale.slice() + }, i, n), a.on("mouseover", function() { + this.trigger("emphasis") + }).on("mouseout", function() { + this.trigger("normal") + })), Eg(a, i) + } + + function Lg(t, e, i) { + var n = a({}, e.barRectShape), + o = t.__pictorialBarRect; + o ? Fg(o, null, { + shape: n + }, e, i) : (o = t.__pictorialBarRect = new aM({ + z2: 2, + shape: n, + silent: !0, + style: { + stroke: "transparent", + fill: "transparent", + lineWidth: 0 + } + }), t.add(o)) + } + + function kg(t, e, i, n) { + if (i.symbolClip) { + var o = t.__pictorialClipPath, + r = a({}, i.clipShape), + s = e.valueDim, + l = i.animationModel, + u = i.dataIndex; + if (o) bo(o, { + shape: r + }, l, u); + else { + r[s.wh] = 0, o = new aM({ + shape: r + }), t.__pictorialBundle.setClipPath(o), t.__pictorialClipPath = o; + var h = {}; + h[s.wh] = i.clipShape[s.wh], bM[n ? "updateProps" : "initProps"](o, { + shape: h + }, l, u) + } + } + } + + function Pg(t, e) { + var i = t.getItemModel(e); + return i.getAnimationDelayParams = Ng, i.isAnimationEnabled = Og, i + } + + function Ng(t) { + return { + index: t.__pictorialAnimationIndex, + count: t.__pictorialRepeatTimes + } + } + + function Og() { + return this.parentModel.isAnimationEnabled() && !!this.getShallow("animation") + } + + function Eg(t, e) { + t.off("emphasis").off("normal"); + var i = e.symbolScale.slice(); + e.hoverAnimation && t.on("emphasis", function() { + this.animateTo({ + scale: [1.1 * i[0], 1.1 * i[1]] + }, 400, "elasticOut") + }).on("normal", function() { + this.animateTo({ + scale: i.slice() + }, 400, "elasticOut") + }) + } + + function Rg(t, e, i, n) { + var o = new Zw, + a = new Zw; + return o.add(a), o.__pictorialBundle = a, a.attr("position", i.bundlePosition.slice()), i.symbolRepeat ? Dg(o, e, i) : Cg(o, e, i), Lg(o, i, n), kg(o, e, i, n), o.__pictorialShapeStr = Vg(t, i), o.__pictorialSymbolMeta = i, o + } + + function zg(t, e, i) { + var n = i.animationModel, + o = i.dataIndex; + bo(t.__pictorialBundle, { + position: i.bundlePosition.slice() + }, n, o), i.symbolRepeat ? Dg(t, e, i, !0) : Cg(t, e, i, !0), Lg(t, i, !0), kg(t, e, i, !0) + } + + function Bg(t, e, i, n) { + var o = n.__pictorialBarRect; + o && (o.style.text = null); + var a = []; + Gg(n, function(t) { + a.push(t) + }), n.__pictorialMainPath && a.push(n.__pictorialMainPath), n.__pictorialClipPath && (i = null), d(a, function(t) { + bo(t, { + scale: [0, 0] + }, i, e, function() { + n.parent && n.parent.remove(n) + }) + }), t.setItemGraphicEl(e, null) + } + + function Vg(t, e) { + return [t.getItemVisual(e.dataIndex, "symbol") || "none", !!e.symbolRepeat, !!e.symbolClip].join(":") + } + + function Gg(t, e, i) { + d(t.__pictorialBundle.children(), function(n) { + n !== t.__pictorialBarRect && e.call(i, n) + }) + } + + function Fg(t, e, i, n, o, a) { + e && t.attr(e), n.symbolClip && !o ? i && t.attr(i) : i && bM[o ? "updateProps" : "initProps"](t, i, n.animationModel, n.dataIndex, a) + } + + function Wg(t, e, i) { + var n = i.color, + o = i.dataIndex, + a = i.itemModel, + s = a.getModel("itemStyle").getItemStyle(["color"]), + l = a.getModel("emphasis.itemStyle").getItemStyle(), + u = a.getShallow("cursor"); + Gg(t, function(t) { + t.setColor(n), t.setStyle(r({ + fill: n, + opacity: i.opacity + }, s)), uo(t, l), u && (t.cursor = u), t.z2 = i.z2 + }); + var h = {}, + c = e.valueDim.posDesc[+(i.boundingLength > 0)], + d = t.__pictorialBarRect; + Th(d.style, h, a, n, e.seriesModel, o, c), uo(d, h) + } + + function Hg(t) { + var e = Math.round(t); + return Math.abs(t - e) < 1e-4 ? e : Math.ceil(t) + } + + function Zg(t, e, i) { + this.dimension = "single", this.dimensions = ["single"], this._axis = null, this._rect, this._init(t, e, i), this.model = t + } + + function Ug(t, e) { + e = e || {}; + var i = t.coordinateSystem, + n = t.axis, + o = {}, + a = n.position, + r = n.orient, + s = i.getRect(), + l = [s.x, s.x + s.width, s.y, s.y + s.height], + u = { + horizontal: { + top: l[2], + bottom: l[3] + }, + vertical: { + left: l[0], + right: l[1] + } + }; + o.position = ["vertical" === r ? u.vertical[a] : l[0], "horizontal" === r ? u.horizontal[a] : l[3]]; + var h = { + horizontal: 0, + vertical: 1 + }; + o.rotation = Math.PI / 2 * h[r]; + var c = { + top: -1, + bottom: 1, + right: 1, + left: -1 + }; + o.labelDirection = o.tickDirection = o.nameDirection = c[a], t.get("axisTick.inside") && (o.tickDirection = -o.tickDirection), T(e.labelInside, t.get("axisLabel.inside")) && (o.labelDirection = -o.labelDirection); + var d = e.rotate; + return null == d && (d = t.get("axisLabel.rotate")), o.labelRotation = "top" === a ? -d : d, o.z2 = 1, o + } + + function Xg(t, e, i, n, o) { + var r = t.axis; + if (!r.scale.isBlank() && r.containData(e)) + if (t.involveSeries) { + var s = jg(e, t), + l = s.payloadBatch, + u = s.snapToValue; + l[0] && null == o.seriesIndex && a(o, l[0]), !n && t.snap && r.containData(u) && null != u && (e = u), i.showPointer(t, e, l, o), i.showTooltip(t, s, u) + } else i.showPointer(t, e) + } + + function jg(t, e) { + var i = e.axis, + n = i.dim, + o = t, + a = [], + r = Number.MAX_VALUE, + s = -1; + return iP(e.seriesModels, function(e, l) { + var u, h, c = e.getData().mapDimension(n, !0); + if (e.getAxisTooltipData) { + var d = e.getAxisTooltipData(c, t, i); + h = d.dataIndices, u = d.nestestValue + } else { + if (!(h = e.getData().indicesOfNearest(c[0], t, "category" === i.type ? .5 : null)).length) return; + u = e.getData().get(c[0], h[0]) + } + if (null != u && isFinite(u)) { + var f = t - u, + p = Math.abs(f); + p <= r && ((p < r || f >= 0 && s < 0) && (r = p, s = f, o = u, a.length = 0), iP(h, function(t) { + a.push({ + seriesIndex: e.seriesIndex, + dataIndexInside: t, + dataIndex: e.getData().getRawIndex(t) + }) + })) + } + }), { + payloadBatch: a, + snapToValue: o + } + } + + function Yg(t, e, i, n) { + t[e.key] = { + value: i, + payloadBatch: n + } + } + + function qg(t, e, i, n) { + var o = i.payloadBatch, + a = e.axis, + r = a.model, + s = e.axisPointerModel; + if (e.triggerTooltip && o.length) { + var l = e.coordSys.model, + u = bh(l), + h = t.map[u]; + h || (h = t.map[u] = { + coordSysId: l.id, + coordSysIndex: l.componentIndex, + coordSysType: l.type, + coordSysMainType: l.mainType, + dataByAxis: [] + }, t.list.push(h)), h.dataByAxis.push({ + axisDim: a.dim, + axisIndex: r.componentIndex, + axisType: r.type, + axisId: r.id, + value: n, + valueLabelOpt: { + precision: s.get("label.precision"), + formatter: s.get("label.formatter") + }, + seriesDataIndices: o.slice() + }) + } + } + + function Kg(t, e, i) { + var n = i.axesInfo = []; + iP(e, function(e, i) { + var o = e.axisPointerModel.option, + a = t[i]; + a ? (!e.useHandle && (o.status = "show"), o.value = a.value, o.seriesDataIndices = (a.payloadBatch || []).slice()) : !e.useHandle && (o.status = "hide"), "show" === o.status && n.push({ + axisDim: e.axis.dim, + axisIndex: e.axis.model.componentIndex, + value: o.value + }) + }) + } + + function $g(t, e, i, n) { + if (!em(e) && t.list.length) { + var o = ((t.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {}; + n({ + type: "showTip", + escapeConnect: !0, + x: e[0], + y: e[1], + tooltipOption: i.tooltipOption, + position: i.position, + dataIndexInside: o.dataIndexInside, + dataIndex: o.dataIndex, + seriesIndex: o.seriesIndex, + dataByCoordSys: t.list + }) + } else n({ + type: "hideTip" + }) + } + + function Jg(t, e, i) { + var n = i.getZr(), + o = oP(n).axisPointerLastHighlights || {}, + a = oP(n).axisPointerLastHighlights = {}; + iP(t, function(t, e) { + var i = t.axisPointerModel.option; + "show" === i.status && iP(i.seriesDataIndices, function(t) { + var e = t.seriesIndex + " | " + t.dataIndex; + a[e] = t + }) + }); + var r = [], + s = []; + d(o, function(t, e) { + !a[e] && s.push(t) + }), d(a, function(t, e) { + !o[e] && r.push(t) + }), s.length && i.dispatchAction({ + type: "downplay", + escapeConnect: !0, + batch: s + }), r.length && i.dispatchAction({ + type: "highlight", + escapeConnect: !0, + batch: r + }) + } + + function Qg(t, e) { + for (var i = 0; i < (t || []).length; i++) { + var n = t[i]; + if (e.axis.dim === n.axisDim && e.axis.model.componentIndex === n.axisIndex) return n + } + } + + function tm(t) { + var e = t.axis.model, + i = {}, + n = i.axisDim = t.axis.dim; + return i.axisIndex = i[n + "AxisIndex"] = e.componentIndex, i.axisName = i[n + "AxisName"] = e.name, i.axisId = i[n + "AxisId"] = e.id, i + } + + function em(t) { + return !t || null == t[0] || isNaN(t[0]) || null == t[1] || isNaN(t[1]) + } + + function im(t, e, i) { + if (!z_.node) { + var n = e.getZr(); + aP(n).records || (aP(n).records = {}), nm(n, e), (aP(n).records[t] || (aP(n).records[t] = {})).handler = i + } + } + + function nm(t, e) { + function i(i, n) { + t.on(i, function(i) { + var o = sm(e); + rP(aP(t).records, function(t) { + t && n(t, i, o.dispatchAction) + }), om(o.pendings, e) + }) + } + aP(t).initialized || (aP(t).initialized = !0, i("click", v(rm, "click")), i("mousemove", v(rm, "mousemove")), i("globalout", am)) + } + + function om(t, e) { + var i, n = t.showTip.length, + o = t.hideTip.length; + n ? i = t.showTip[n - 1] : o && (i = t.hideTip[o - 1]), i && (i.dispatchAction = null, e.dispatchAction(i)) + } + + function am(t, e, i) { + t.handler("leave", null, i) + } + + function rm(t, e, i, n) { + e.handler(t, i, n) + } + + function sm(t) { + var e = { + showTip: [], + hideTip: [] + }, + i = function(n) { + var o = e[n.type]; + o ? o.push(n) : (n.dispatchAction = i, t.dispatchAction(n)) + }; + return { + dispatchAction: i, + pendings: e + } + } + + function lm(t, e) { + if (!z_.node) { + var i = e.getZr(); + (aP(i).records || {})[t] && (aP(i).records[t] = null) + } + } + + function um() {} + + function hm(t, e, i, n) { + cm(lP(i).lastProp, n) || (lP(i).lastProp = n, e ? bo(i, n, t) : (i.stopAnimation(), i.attr(n))) + } + + function cm(t, e) { + if (w(t) && w(e)) { + var i = !0; + return d(e, function(e, n) { + i = i && cm(t[n], e) + }), !!i + } + return t === e + } + + function dm(t, e) { + t[e.get("label.show") ? "show" : "hide"]() + } + + function fm(t) { + return { + position: t.position.slice(), + rotation: t.rotation || 0 + } + } + + function pm(t, e, i) { + var n = e.get("z"), + o = e.get("zlevel"); + t && t.traverse(function(t) { + "group" !== t.type && (null != n && (t.z = n), null != o && (t.zlevel = o), t.silent = i) + }) + } + + function gm(t) { + var e, i = t.get("type"), + n = t.getModel(i + "Style"); + return "line" === i ? (e = n.getLineStyle()).fill = null : "shadow" === i && ((e = n.getAreaStyle()).stroke = null), e + } + + function mm(t, e, i, n, o) { + var a = ym(i.get("value"), e.axis, e.ecModel, i.get("seriesDataIndices"), { + precision: i.get("label.precision"), + formatter: i.get("label.formatter") + }), + r = i.getModel("label"), + s = OM(r.get("padding") || 0), + l = r.getFont(), + u = De(a, l), + h = o.position, + c = u.width + s[1] + s[3], + d = u.height + s[0] + s[2], + f = o.align; + "right" === f && (h[0] -= c), "center" === f && (h[0] -= c / 2); + var p = o.verticalAlign; + "bottom" === p && (h[1] -= d), "middle" === p && (h[1] -= d / 2), vm(h, c, d, n); + var g = r.get("backgroundColor"); + g && "auto" !== g || (g = e.get("axisLine.lineStyle.color")), t.label = { + shape: { + x: 0, + y: 0, + width: c, + height: d, + r: r.get("borderRadius") + }, + position: h.slice(), + style: { + text: a, + textFont: l, + textFill: r.getTextColor(), + textPosition: "inside", + fill: g, + stroke: r.get("borderColor") || "transparent", + lineWidth: r.get("borderWidth") || 0, + shadowBlur: r.get("shadowBlur"), + shadowColor: r.get("shadowColor"), + shadowOffsetX: r.get("shadowOffsetX"), + shadowOffsetY: r.get("shadowOffsetY") + }, + z2: 10 + } + } + + function vm(t, e, i, n) { + var o = n.getWidth(), + a = n.getHeight(); + t[0] = Math.min(t[0] + e, o) - e, t[1] = Math.min(t[1] + i, a) - i, t[0] = Math.max(t[0], 0), t[1] = Math.max(t[1], 0) + } + + function ym(t, e, i, n, o) { + t = e.scale.parse(t); + var a = e.scale.getLabel(t, { + precision: o.precision + }), + r = o.formatter; + if (r) { + var s = { + value: Wl(e, t), + seriesData: [] + }; + d(n, function(t) { + var e = i.getSeriesByIndex(t.seriesIndex), + n = t.dataIndexInside, + o = e && e.getDataParams(n); + o && s.seriesData.push(o) + }), _(r) ? a = r.replace("{value}", a) : x(r) && (a = r(s)) + } + return a + } + + function xm(t, e, i) { + var n = mt(); + return wt(n, n, i.rotation), _t(n, n, i.position), Io([t.dataToCoord(e), (i.labelOffset || 0) + (i.labelDirection || 1) * (i.labelMargin || 0)], n) + } + + function _m(t, e, i, n, o, a) { + var r = ID.innerTextLayout(i.rotation, 0, i.labelDirection); + i.labelMargin = o.get("label.margin"), mm(e, n, o, a, { + position: xm(n.axis, t, i), + align: r.textAlign, + verticalAlign: r.textVerticalAlign + }) + } + + function wm(t, e, i) { + return i = i || 0, { + x1: t[i], + y1: t[1 - i], + x2: e[i], + y2: e[1 - i] + } + } + + function bm(t, e, i) { + return i = i || 0, { + x: t[i], + y: t[1 - i], + width: e[i], + height: e[1 - i] + } + } + + function Sm(t, e, i, n, o, a) { + return { + cx: t, + cy: e, + r0: i, + r: n, + startAngle: o, + endAngle: a, + clockwise: !0 + } + } + + function Mm(t, e) { + var i = {}; + return i[e.dim + "AxisIndex"] = e.index, t.getCartesian(i) + } + + function Im(t) { + return "x" === t.dim ? 0 : 1 + } + + function Tm(t) { + return t.isHorizontal() ? 0 : 1 + } + + function Am(t, e) { + var i = t.getRect(); + return [i[fP[e]], i[fP[e]] + i[pP[e]]] + } + + function Dm(t, e, i) { + var n = new aM({ + shape: { + x: t.x - 10, + y: t.y - 10, + width: 0, + height: t.height + 20 + } + }); + return So(n, { + shape: { + width: t.width + 20, + height: t.height + 20 + } + }, e, i), n + } + + function Cm(t, e, i) { + if (t.count()) + for (var n, o = e.coordinateSystem, a = e.getLayerSeries(), r = t.mapDimension("single"), s = t.mapDimension("value"), l = f(a, function(e) { + return f(e.indices, function(e) { + var i = o.dataToPoint(t.get(r, e)); + return i[1] = t.get(s, e), i + }) + }), u = Lm(l), h = u.y0, c = i / u.max, d = a.length, p = a[0].indices.length, g = 0; g < p; ++g) { + n = h[g] * c, t.setItemLayout(a[0].indices[g], { + layerIndex: 0, + x: l[0][g][0], + y0: n, + y: l[0][g][1] * c + }); + for (var m = 1; m < d; ++m) n += l[m - 1][g][1] * c, t.setItemLayout(a[m].indices[g], { + layerIndex: m, + x: l[m][g][0], + y0: n, + y: l[m][g][1] * c + }) + } + } + + function Lm(t) { + for (var e = t.length, i = t[0].length, n = [], o = [], a = 0, r = {}, s = 0; s < i; ++s) { + for (var l = 0, u = 0; l < e; ++l) u += t[l][s][1]; + u > a && (a = u), n.push(u) + } + for (var h = 0; h < i; ++h) o[h] = (a - n[h]) / 2; + a = 0; + for (var c = 0; c < i; ++c) { + var d = n[c] + o[c]; + d > a && (a = d) + } + return r.y0 = o, r.max = a, r + } + + function km(t) { + var e = 0; + d(t.children, function(t) { + km(t); + var i = t.value; + y(i) && (i = i[0]), e += i + }); + var i = t.value; + y(i) && (i = i[0]), (null == i || isNaN(i)) && (i = e), i < 0 && (i = 0), y(t.value) ? t.value[0] = i : t.value = i + } + + function Pm(t, e, i) { + function n() { + r.ignore = r.hoverIgnore + } + + function o() { + r.ignore = r.normalIgnore + } + Zw.call(this); + var a = new QS({ + z2: xP + }); + a.seriesIndex = e.seriesIndex; + var r = new qS({ + z2: _P, + silent: t.getModel("label").get("silent") + }); + this.add(a), this.add(r), this.updateData(!0, t, "normal", e, i), this.on("emphasis", n).on("normal", o).on("mouseover", n).on("mouseout", o) + } + + function Nm(t, e, i) { + var n = t.getVisual("color"), + o = t.getVisual("visualMeta"); + o && 0 !== o.length || (n = null); + var a = t.getModel("itemStyle").get("color"); + if (a) return a; + if (n) return n; + if (0 === t.depth) return i.option.color[0]; + var r = i.option.color.length; + return a = i.option.color[Om(t) % r] + } + + function Om(t) { + for (var e = t; e.depth > 1;) e = e.parentNode; + return l(t.getAncestors()[0].children, e) + } + + function Em(t, e, i) { + return i !== yP.NONE && (i === yP.SELF ? t === e : i === yP.ANCESTOR ? t === e || t.isAncestorOf(e) : t === e || t.isDescendantOf(e)) + } + + function Rm(t, e) { + var i = t.children || []; + t.children = zm(i, e), i.length && d(t.children, function(t) { + Rm(t, e) + }) + } + + function zm(t, e) { + if ("function" == typeof e) return t.sort(e); + var i = "asc" === e; + return t.sort(function(t, e) { + var n = (t.getValue() - e.getValue()) * (i ? 1 : -1); + return 0 === n ? (t.dataIndex - e.dataIndex) * (i ? -1 : 1) : n + }) + } + + function Bm(t, e) { + return e = e || [0, 0], f(["x", "y"], function(i, n) { + var o = this.getAxis(i), + a = e[n], + r = t[n] / 2; + return "category" === o.type ? o.getBandWidth() : Math.abs(o.dataToCoord(a - r) - o.dataToCoord(a + r)) + }, this) + } + + function Vm(t, e) { + return e = e || [0, 0], f([0, 1], function(i) { + var n = e[i], + o = t[i] / 2, + a = [], + r = []; + return a[i] = n - o, r[i] = n + o, a[1 - i] = r[1 - i] = e[1 - i], Math.abs(this.dataToPoint(a)[i] - this.dataToPoint(r)[i]) + }, this) + } + + function Gm(t, e) { + var i = this.getAxis(), + n = e instanceof Array ? e[0] : e, + o = (t instanceof Array ? t[0] : t) / 2; + return "category" === i.type ? i.getBandWidth() : Math.abs(i.dataToCoord(n - o) - i.dataToCoord(n + o)) + } + + function Fm(t, e) { + return f(["Radius", "Angle"], function(i, n) { + var o = this["get" + i + "Axis"](), + a = e[n], + r = t[n] / 2, + s = "dataTo" + i, + l = "category" === o.type ? o.getBandWidth() : Math.abs(o[s](a - r) - o[s](a + r)); + return "Angle" === i && (l = l * Math.PI / 180), l + }, this) + } + + function Wm(t) { + var e, i = t.type; + if ("path" === i) { + var n = t.shape, + o = null != n.width && null != n.height ? { + x: n.x || 0, + y: n.y || 0, + width: n.width, + height: n.height + } : null, + a = tv(n); + (e = Wn(a, null, o, n.layout || "center")).__customPathData = a + } else "image" === i ? (e = new hi({})).__customImagePath = t.style.image : "text" === i ? (e = new qS({})).__customText = t.style.text : e = new(0, bM[i.charAt(0).toUpperCase() + i.slice(1)]); + return e.__customGraphicType = i, e.name = t.name, e + } + + function Hm(t, e, n, o, a, r, s) { + var l = {}, + u = n.style || {}; + if (n.shape && (l.shape = i(n.shape)), n.position && (l.position = n.position.slice()), n.scale && (l.scale = n.scale.slice()), n.origin && (l.origin = n.origin.slice()), n.rotation && (l.rotation = n.rotation), "image" === t.type && n.style) { + h = l.style = {}; + d(["x", "y", "width", "height"], function(e) { + Zm(e, h, u, t.style, r) + }) + } + if ("text" === t.type && n.style) { + var h = l.style = {}; + d(["x", "y"], function(e) { + Zm(e, h, u, t.style, r) + }), !u.hasOwnProperty("textFill") && u.fill && (u.textFill = u.fill), !u.hasOwnProperty("textStroke") && u.stroke && (u.textStroke = u.stroke) + } + if ("group" !== t.type && (t.useStyle(u), r)) { + t.style.opacity = 0; + var c = u.opacity; + null == c && (c = 1), So(t, { + style: { + opacity: c + } + }, o, e) + } + r ? t.attr(l) : bo(t, l, o, e), n.hasOwnProperty("z2") && t.attr("z2", n.z2 || 0), n.hasOwnProperty("silent") && t.attr("silent", n.silent), n.hasOwnProperty("invisible") && t.attr("invisible", n.invisible), n.hasOwnProperty("ignore") && t.attr("ignore", n.ignore), n.hasOwnProperty("info") && t.attr("info", n.info); + var f = n.styleEmphasis, + p = !1 === f; + t.__cusHasEmphStl && null == f || !t.__cusHasEmphStl && p || (no(t, f), t.__cusHasEmphStl = !p), s && ho(t, !p) + } + + function Zm(t, e, i, n, o) { + null == i[t] || o || (e[t] = i[t], i[t] = n[t]) + } + + function Um(t, e, i, n) { + function o(t) { + null == t && (t = h), v && (c = e.getItemModel(t), d = c.getModel(AP), f = c.getModel(DP), p = e.getItemVisual(t, "color"), v = !1) + } + var s = t.get("renderItem"), + l = t.coordinateSystem, + u = {}; + l && (u = l.prepareCustoms ? l.prepareCustoms() : LP[l.type](l)); + var h, c, d, f, p, g = r({ + getWidth: n.getWidth, + getHeight: n.getHeight, + getZr: n.getZr, + getDevicePixelRatio: n.getDevicePixelRatio, + value: function(t, i) { + return null == i && (i = h), e.get(e.getDimension(t || 0), i) + }, + style: function(i, n) { + null == n && (n = h), o(n); + var r = c.getModel(IP).getItemStyle(); + null != p && (r.fill = p); + var s = e.getItemVisual(n, "opacity"); + return null != s && (r.opacity = s), fo(r, d, null, { + autoColor: p, + isRectText: !0 + }), r.text = d.getShallow("show") ? A(t.getFormattedLabel(n, "normal"), gu(e, n)) : null, i && a(r, i), r + }, + styleEmphasis: function(i, n) { + null == n && (n = h), o(n); + var r = c.getModel(TP).getItemStyle(); + return fo(r, f, null, { + isRectText: !0 + }, !0), r.text = f.getShallow("show") ? D(t.getFormattedLabel(n, "emphasis"), t.getFormattedLabel(n, "normal"), gu(e, n)) : null, i && a(r, i), r + }, + visual: function(t, i) { + return null == i && (i = h), e.getItemVisual(i, t) + }, + barLayout: function(t) { + if (l.getBaseAxis) return Tl(r({ + axis: l.getBaseAxis() + }, t), n) + }, + currentSeriesIndices: function() { + return i.getCurrentSeriesIndices() + }, + font: function(t) { + return _o(t, i) + } + }, u.api || {}), + m = { + context: {}, + seriesId: t.id, + seriesName: t.name, + seriesIndex: t.seriesIndex, + coordSys: u.coordSys, + dataInsideLength: e.count(), + encode: Xm(t.getData()) + }, + v = !0; + return function(t, i) { + return h = t, v = !0, s && s(r({ + dataIndexInside: t, + dataIndex: e.getRawIndex(t), + actionType: i ? i.type : null + }, m), g) + } + } + + function Xm(t) { + var e = {}; + return d(t.dimensions, function(i, n) { + var o = t.getDimensionInfo(i); + if (!o.isExtraCoord) { + var a = o.coordDim; + (e[a] = e[a] || [])[o.coordDimIndex] = n + } + }), e + } + + function jm(t, e, i, n, o, a) { + return (t = Ym(t, e, i, n, o, a, !0)) && a.setItemGraphicEl(e, t), t + } + + function Ym(t, e, i, n, o, a, r) { + var s = !i, + l = (i = i || {}).type, + u = i.shape, + h = i.style; + if (t && (s || null != l && l !== t.__customGraphicType || "path" === l && ev(u) && tv(u) !== t.__customPathData || "image" === l && iv(h, "image") && h.image !== t.__customImagePath || "text" === l && iv(u, "text") && h.text !== t.__customText) && (o.remove(t), t = null), !s) { + var c = !t; + return !t && (t = Wm(i)), Hm(t, e, i, n, a, c, r), "group" === l && qm(t, e, i, n, a), o.add(t), t + } + } + + function qm(t, e, i, n, o) { + var a = i.children, + r = a ? a.length : 0, + s = i.$mergeChildren, + l = "byName" === s || i.diffChildrenByName, + u = !1 === s; + if (r || l || u) + if (l) Km({ + oldChildren: t.children() || [], + newChildren: a || [], + dataIndex: e, + animatableModel: n, + group: t, + data: o + }); + else { + u && t.removeAll(); + for (var h = 0; h < r; h++) a[h] && Ym(t.childAt(h), e, a[h], n, t, o) + } + } + + function Km(t) { + new Hs(t.oldChildren, t.newChildren, $m, $m, t).add(Jm).update(Jm).remove(Qm).execute() + } + + function $m(t, e) { + var i = t && t.name; + return null != i ? i : CP + e + } + + function Jm(t, e) { + var i = this.context, + n = null != t ? i.newChildren[t] : null; + Ym(null != e ? i.oldChildren[e] : null, i.dataIndex, n, i.animatableModel, i.group, i.data) + } + + function Qm(t) { + var e = this.context, + i = e.oldChildren[t]; + i && e.group.remove(i) + } + + function tv(t) { + return t && (t.pathData || t.d) + } + + function ev(t) { + return t && (t.hasOwnProperty("pathData") || t.hasOwnProperty("d")) + } + + function iv(t, e) { + return t && t.hasOwnProperty(e) + } + + function nv(t, e, i, n) { + var o = i.type, + a = new(0, bM[o.charAt(0).toUpperCase() + o.slice(1)])(i); + e.add(a), n.set(t, a), a.__ecGraphicId = t + } + + function ov(t, e) { + var i = t && t.parent; + i && ("group" === t.type && t.traverse(function(t) { + ov(t, e) + }), e.removeKey(t.__ecGraphicId), i.remove(t)) + } + + function av(t) { + return t = a({}, t), d(["id", "parentId", "$action", "hv", "bounding"].concat(HM), function(e) { + delete t[e] + }), t + } + + function rv(t, e) { + var i; + return d(e, function(e) { + null != t[e] && "auto" !== t[e] && (i = !0) + }), i + } + + function sv(t, e) { + var i = t.exist; + if (e.id = t.keyInfo.id, !e.type && i && (e.type = i.type), null == e.parentId) { + var n = e.parentOption; + n ? e.parentId = n.id : i && (e.parentId = i.parentId) + } + e.parentOption = null + } + + function lv(t, e, i) { + var o = a({}, i), + r = t[e], + s = i.$action || "merge"; + "merge" === s ? r ? (n(r, o, !0), ca(r, o, { + ignoreSize: !0 + }), fa(i, r)) : t[e] = o : "replace" === s ? t[e] = o : "remove" === s && r && (t[e] = null) + } + + function uv(t, e) { + t && (t.hv = e.hv = [rv(e, ["left", "right"]), rv(e, ["top", "bottom"])], "group" === t.type && (null == t.width && (t.width = e.width = 0), null == t.height && (t.height = e.height = 0))) + } + + function hv(t, e, i) { + var n = t.eventData; + t.silent || t.ignore || n || (n = t.eventData = { + componentType: "graphic", + componentIndex: e.componentIndex, + name: t.name + }), n && (n.info = t.info) + } + + function cv(t, e, i) { + var n, o = {}, + a = "toggleSelected" === t; + return i.eachComponent("legend", function(i) { + a && null != n ? i[n ? "select" : "unSelect"](e.name) : (i[t](e.name), n = i.isSelected(e.name)), d(i.getData(), function(t) { + var e = t.get("name"); + if ("\n" !== e && "" !== e) { + var n = i.isSelected(e); + o.hasOwnProperty(e) ? o[e] = o[e] && n : o[e] = n + } + }) + }), { + name: e.name, + selected: o + } + } + + function dv(t, e, i) { + var n = e.getBoxLayoutParams(), + o = e.get("padding"), + a = { + width: i.getWidth(), + height: i.getHeight() + }, + r = la(n, a, o); + UM(e.get("orient"), t, e.get("itemGap"), r.width, r.height), ua(t, n, a, o) + } + + function fv(t, e) { + var i = OM(e.get("padding")), + n = e.getItemStyle(["color", "opacity"]); + return n.fill = e.get("backgroundColor"), t = new aM({ + shape: { + x: t.x - i[3], + y: t.y - i[0], + width: t.width + i[1] + i[3], + height: t.height + i[0] + i[2], + r: e.get("borderRadius") + }, + style: n, + silent: !0, + z2: -1 + }) + } + + function pv(t, e) { + e.dispatchAction({ + type: "legendToggleSelect", + name: t + }) + } + + function gv(t, e, i, n) { + var o = i.getZr().storage.getDisplayList()[0]; + o && o.useHoverLayer || i.dispatchAction({ + type: "highlight", + seriesName: t, + name: e, + excludeSeriesId: n + }) + } + + function mv(t, e, i, n) { + var o = i.getZr().storage.getDisplayList()[0]; + o && o.useHoverLayer || i.dispatchAction({ + type: "downplay", + seriesName: t, + name: e, + excludeSeriesId: n + }) + } + + function vv(t, e, i) { + var n = [1, 1]; + n[t.getOrient().index] = 0, ca(e, i, { + type: "box", + ignoreSize: n + }) + } + + function yv(t) { + var e = "left " + t + "s cubic-bezier(0.23, 1, 0.32, 1),top " + t + "s cubic-bezier(0.23, 1, 0.32, 1)"; + return f(ZP, function(t) { + return t + "transition:" + e + }).join(";") + } + + function xv(t) { + var e = [], + i = t.get("fontSize"), + n = t.getTextColor(); + return n && e.push("color:" + n), e.push("font:" + t.getFont()), i && e.push("line-height:" + Math.round(3 * i / 2) + "px"), WP(["decoration", "align"], function(i) { + var n = t.get(i); + n && e.push("text-" + i + ":" + n) + }), e.join(";") + } + + function _v(t) { + var e = [], + i = t.get("transitionDuration"), + n = t.get("backgroundColor"), + o = t.getModel("textStyle"), + a = t.get("padding"); + return i && e.push(yv(i)), n && (z_.canvasSupported ? e.push("background-Color:" + n) : (e.push("background-Color:#" + Ft(n)), e.push("filter:alpha(opacity=70)"))), WP(["width", "color", "radius"], function(i) { + var n = "border-" + i, + o = HP(n), + a = t.get(o); + null != a && e.push(n + ":" + a + ("color" === i ? "" : "px")) + }), e.push(xv(o)), null != a && e.push("padding:" + OM(a).join("px ") + "px"), e.join(";") + ";" + } + + function wv(t, e) { + if (z_.wxa) return null; + var i = document.createElement("div"), + n = this._zr = e.getZr(); + this.el = i, this._x = e.getWidth() / 2, this._y = e.getHeight() / 2, t.appendChild(i), this._container = t, this._show = !1, this._hideTimeout; + var o = this; + i.onmouseenter = function() { + o._enterable && (clearTimeout(o._hideTimeout), o._show = !0), o._inContent = !0 + }, i.onmousemove = function(e) { + if (e = e || window.event, !o._enterable) { + var i = n.handler; + lt(t, e, !0), i.dispatch("mousemove", e) + } + }, i.onmouseleave = function() { + o._enterable && o._show && o.hideLater(o._hideDelay), o._inContent = !1 + } + } + + function bv(t) { + this._zr = t.getZr(), this._show = !1, this._hideTimeout + } + + function Sv(t) { + for (var e = t.pop(); t.length;) { + var i = t.pop(); + i && (Lo.isInstance(i) && (i = i.get("tooltip", !0)), "string" == typeof i && (i = { + formatter: i + }), e = new Lo(i, e, e.ecModel)) + } + return e + } + + function Mv(t, e) { + return t.dispatchAction || m(e.dispatchAction, e) + } + + function Iv(t, e, i, n, o, a, r) { + var s = i.getOuterSize(), + l = s.width, + u = s.height; + return null != a && (t + l + a > n ? t -= l + a : t += a), null != r && (e + u + r > o ? e -= u + r : e += r), [t, e] + } + + function Tv(t, e, i, n, o) { + var a = i.getOuterSize(), + r = a.width, + s = a.height; + return t = Math.min(t + r, n) - r, e = Math.min(e + s, o) - s, t = Math.max(t, 0), e = Math.max(e, 0), [t, e] + } + + function Av(t, e, i) { + var n = i[0], + o = i[1], + a = 0, + r = 0, + s = e.width, + l = e.height; + switch (t) { + case "inside": + a = e.x + s / 2 - n / 2, r = e.y + l / 2 - o / 2; + break; + case "top": + a = e.x + s / 2 - n / 2, r = e.y - o - 5; + break; + case "bottom": + a = e.x + s / 2 - n / 2, r = e.y + l + 5; + break; + case "left": + a = e.x - n - 5, r = e.y + l / 2 - o / 2; + break; + case "right": + a = e.x + s + 5, r = e.y + l / 2 - o / 2 + } + return [a, r] + } + + function Dv(t) { + return "center" === t || "middle" === t + } + + function Cv(t) { + return t.get("stack") || "__ec_stack_" + t.seriesIndex + } + + function Lv(t) { + return t.dim + } + + function kv(t, e) { + var i = {}; + d(t, function(t, e) { + var n = t.getData(), + o = t.coordinateSystem.getBaseAxis(), + a = o.getExtent(), + r = "category" === o.type ? o.getBandWidth() : Math.abs(a[1] - a[0]) / n.count(), + s = i[Lv(o)] || { + bandWidth: r, + remainedWidth: r, + autoWidthCount: 0, + categoryGap: "20%", + gap: "30%", + stacks: {} + }, + l = s.stacks; + i[Lv(o)] = s; + var u = Cv(t); + l[u] || s.autoWidthCount++, l[u] = l[u] || { + width: 0, + maxWidth: 0 + }; + var h = Ro(t.get("barWidth"), r), + c = Ro(t.get("barMaxWidth"), r), + d = t.get("barGap"), + f = t.get("barCategoryGap"); + h && !l[u].width && (h = Math.min(s.remainedWidth, h), l[u].width = h, s.remainedWidth -= h), c && (l[u].maxWidth = c), null != d && (s.gap = d), null != f && (s.categoryGap = f) + }); + var n = {}; + return d(i, function(t, e) { + n[e] = {}; + var i = t.stacks, + o = t.bandWidth, + a = Ro(t.categoryGap, o), + r = Ro(t.gap, 1), + s = t.remainedWidth, + l = t.autoWidthCount, + u = (s - a) / (l + (l - 1) * r); + u = Math.max(u, 0), d(i, function(t, e) { + var i = t.maxWidth; + i && i < u && (i = Math.min(i, s), t.width && (i = Math.min(i, t.width)), s -= i, t.width = i, l--) + }), u = (s - a) / (l + (l - 1) * r), u = Math.max(u, 0); + var h, c = 0; + d(i, function(t, e) { + t.width || (t.width = u), h = t, c += t.width * (1 + r) + }), h && (c -= h.width * r); + var f = -c / 2; + d(i, function(t, i) { + n[e][i] = n[e][i] || { + offset: f, + width: t.width + }, f += t.width * (1 + r) + }) + }), n + } + + function Pv(t, e) { + HA.call(this, "radius", t, e), this.type = "category" + } + + function Nv(t, e) { + e = e || [0, 360], HA.call(this, "angle", t, e), this.type = "category" + } + + function Ov(t, e) { + return e.type || (e.data ? "category" : "value") + } + + function Ev(t, e, i) { + var n = e.get("center"), + o = i.getWidth(), + a = i.getHeight(); + t.cx = Ro(n[0], o), t.cy = Ro(n[1], a); + var r = t.getRadiusAxis(), + s = Math.min(o, a) / 2, + l = Ro(e.get("radius"), s); + r.inverse ? r.setExtent(l, 0) : r.setExtent(0, l) + } + + function Rv(t, e) { + var i = this, + n = i.getAngleAxis(), + o = i.getRadiusAxis(); + if (n.scale.setExtent(1 / 0, -1 / 0), o.scale.setExtent(1 / 0, -1 / 0), t.eachSeries(function(t) { + if (t.coordinateSystem === i) { + var e = t.getData(); + d(e.mapDimension("radius", !0), function(t) { + o.scale.unionExtentFromData(e, cl(e, t)) + }), d(e.mapDimension("angle", !0), function(t) { + n.scale.unionExtentFromData(e, cl(e, t)) + }) + } + }), Bl(n.scale, n.model), Bl(o.scale, o.model), "category" === n.type && !n.onBand) { + var a = n.getExtent(), + r = 360 / n.scale.count(); + n.inverse ? a[1] += r : a[1] -= r, n.setExtent(a[0], a[1]) + } + } + + function zv(t, e) { + if (t.type = e.get("type"), t.scale = Vl(e), t.onBand = e.get("boundaryGap") && "category" === t.type, t.inverse = e.get("inverse"), "angleAxis" === e.mainType) { + t.inverse ^= e.get("clockwise"); + var i = e.get("startAngle"); + t.setExtent(i, i + (t.inverse ? -360 : 360)) + } + e.axis = t, t.model = e + } + + function Bv(t, e, i) { + e[1] > e[0] && (e = e.slice().reverse()); + var n = t.coordToPoint([e[0], i]), + o = t.coordToPoint([e[1], i]); + return { + x1: n[0], + y1: n[1], + x2: o[0], + y2: o[1] + } + } + + function Vv(t) { + return t.getRadiusAxis().inverse ? 0 : 1 + } + + function Gv(t) { + var e = t[0], + i = t[t.length - 1]; + e && i && Math.abs(Math.abs(e.coord - i.coord) - 360) < 1e-4 && t.pop() + } + + function Fv(t, e, i) { + return { + position: [t.cx, t.cy], + rotation: i / 180 * Math.PI, + labelDirection: -1, + tickDirection: -1, + nameDirection: 1, + labelRotate: e.getModel("axisLabel").get("rotate"), + z2: 1 + } + } + + function Wv(t, e, i, n, o) { + var a = e.axis, + r = a.dataToCoord(t), + s = n.getAngleAxis().getExtent()[0]; + s = s / 180 * Math.PI; + var l, u, h, c = n.getRadiusAxis().getExtent(); + if ("radius" === a.dim) { + var d = mt(); + wt(d, d, s), _t(d, d, [n.cx, n.cy]), l = Io([r, -o], d); + var f = e.getModel("axisLabel").get("rotate") || 0, + p = ID.innerTextLayout(s, f * Math.PI / 180, -1); + u = p.textAlign, h = p.textVerticalAlign + } else { + var g = c[1]; + l = n.coordToPoint([g + o, r]); + var m = n.cx, + v = n.cy; + u = Math.abs(l[0] - m) / g < .3 ? "center" : l[0] > m ? "left" : "right", h = Math.abs(l[1] - v) / g < .3 ? "middle" : l[1] > v ? "top" : "bottom" + } + return { + position: l, + align: u, + verticalAlign: h + } + } + + function Hv(t, e) { + e.update = "updateView", Ps(e, function(e, i) { + var n = {}; + return i.eachComponent({ + mainType: "geo", + query: e + }, function(i) { + i[t](e.name), d(i.coordinateSystem.regions, function(t) { + n[t.name] = i.isSelected(t.name) || !1 + }) + }), { + selected: n, + name: e.name + } + }) + } + + function Zv(t) { + var e = {}; + d(t, function(t) { + e[t] = 1 + }), t.length = 0, d(e, function(e, i) { + t.push(i) + }) + } + + function Uv(t) { + if (t) + for (var e in t) + if (t.hasOwnProperty(e)) return !0 + } + + function Xv(t, e, n) { + function o() { + var t = function() {}; + return t.prototype.__hidden = t.prototype, new t + } + var a = {}; + return rN(e, function(e) { + var r = a[e] = o(); + rN(t[e], function(t, o) { + if (jC.isValidType(o)) { + var a = { + type: o, + visual: t + }; + n && n(a, e), r[o] = new jC(a), "opacity" === o && ((a = i(a)).type = "colorAlpha", r.__hidden.__alphaForOpacity = new jC(a)) + } + }) + }), a + } + + function jv(t, e, n) { + var o; + d(n, function(t) { + e.hasOwnProperty(t) && Uv(e[t]) && (o = !0) + }), o && d(n, function(n) { + e.hasOwnProperty(n) && Uv(e[n]) ? t[n] = i(e[n]) : delete t[n] + }) + } + + function Yv(t, e, i, n, o, a) { + function r(t) { + return i.getItemVisual(h, t) + } + + function s(t, e) { + i.setItemVisual(h, t, e) + } + + function l(t, l) { + h = null == a ? t : l; + var c = i.getRawDataItem(h); + if (!c || !1 !== c.visualMap) + for (var d = n.call(o, t), f = e[d], p = u[d], g = 0, m = p.length; g < m; g++) { + var v = p[g]; + f[v] && f[v].applyVisual(t, r, s) + } + } + var u = {}; + d(t, function(t) { + var i = jC.prepareVisualTypes(e[t]); + u[t] = i + }); + var h; + null == a ? i.each(l) : i.each([a], l) + } + + function qv(t, e, i, n) { + var o = {}; + return d(t, function(t) { + var i = jC.prepareVisualTypes(e[t]); + o[t] = i + }), { + progress: function(t, a) { + null != n && (n = a.getDimension(n)); + for (var r; null != (r = t.next());) { + var s = a.getRawDataItem(r); + if (s && !1 === s.visualMap) return; + for (var l = null != n ? a.get(n, r, !0) : r, u = i(l), h = e[u], c = o[u], d = 0, f = c.length; d < f; d++) { + var p = c[d]; + h[p] && h[p].applyVisual(l, function(t) { + return a.getItemVisual(r, t) + }, function(t, e) { + a.setItemVisual(r, t, e) + }) + } + } + } + } + } + + function Kv(t) { + var e = ["x", "y"], + i = ["width", "height"]; + return { + point: function(e, i, n) { + if (e) { + var o = n.range; + return $v(e[t], o) + } + }, + rect: function(n, o, a) { + if (n) { + var r = a.range, + s = [n[e[t]], n[e[t]] + n[i[t]]]; + return s[1] < s[0] && s.reverse(), $v(s[0], r) || $v(s[1], r) || $v(r[0], s) || $v(r[1], s) + } + } + } + } + + function $v(t, e) { + return e[0] <= t && t <= e[1] + } + + function Jv(t, e, i, n, o) { + for (var a = 0, r = o[o.length - 1]; a < o.length; a++) { + var s = o[a]; + if (Qv(t, e, i, n, s[0], s[1], r[0], r[1])) return !0; + r = s + } + } + + function Qv(t, e, i, n, o, a, r, s) { + var l = ey(i - t, o - r, n - e, a - s); + if (ty(l)) return !1; + var u = ey(o - t, o - r, a - e, a - s) / l; + if (u < 0 || u > 1) return !1; + var h = ey(i - t, o - t, n - e, a - e) / l; + return !(h < 0 || h > 1) + } + + function ty(t) { + return t <= 1e-6 && t >= -1e-6 + } + + function ey(t, e, i, n) { + return t * n - e * i + } + + function iy(t, e, i) { + var n = this._targetInfoList = [], + o = {}, + a = oy(e, t); + lN(pN, function(t, e) { + (!i || !i.include || uN(i.include, e) >= 0) && t(a, n, o) + }) + } + + function ny(t) { + return t[0] > t[1] && t.reverse(), t + } + + function oy(t, e) { + return Vi(t, e, { + includeMainTypes: dN + }) + } + + function ay(t, e, i, n) { + var o = i.getAxis(["x", "y"][t]), + a = ny(f([0, 1], function(t) { + return e ? o.coordToData(o.toLocalCoord(n[t])) : o.toGlobalCoord(o.dataToCoord(n[t])) + })), + r = []; + return r[t] = a, r[1 - t] = [NaN, NaN], { + values: a, + xyMinMax: r + } + } + + function ry(t, e, i, n) { + return [e[0] - n[t] * i[0], e[1] - n[t] * i[1]] + } + + function sy(t, e) { + var i = ly(t), + n = ly(e), + o = [i[0] / n[0], i[1] / n[1]]; + return isNaN(o[0]) && (o[0] = 1), isNaN(o[1]) && (o[1] = 1), o + } + + function ly(t) { + return t ? [t[0][1] - t[0][0], t[1][1] - t[1][0]] : [NaN, NaN] + } + + function uy(t, e, i, n, o) { + if (o) { + var a = t.getZr(); + a[wN] || (a[_N] || (a[_N] = hy), Lr(a, _N, i, e)(t, n)) + } + } + + function hy(t, e) { + if (!t.isDisposed()) { + var i = t.getZr(); + i[wN] = !0, t.dispatchAction({ + type: "brushSelect", + batch: e + }), i[wN] = !1 + } + } + + function cy(t, e, i, n) { + for (var o = 0, a = e.length; o < a; o++) { + var r = e[o]; + if (t[r.brushType](n, i, r.selectors, r)) return !0 + } + } + + function dy(t) { + var e = t.brushSelector; + if (_(e)) { + var i = []; + return d(sN, function(t, n) { + i[n] = function(i, n, o, a) { + var r = n.getItemLayout(i); + return t[e](r, o, a) + } + }), i + } + if (x(e)) { + var n = {}; + return d(sN, function(t, i) { + n[i] = e + }), n + } + return e + } + + function fy(t, e) { + var i = t.option.seriesIndex; + return null != i && "all" !== i && (y(i) ? l(i, e) < 0 : e !== i) + } + + function py(t) { + var e = t.selectors = {}; + return d(sN[t.brushType], function(i, n) { + e[n] = function(n) { + return i(n, e, t) + } + }), t + } + + function gy(t) { + return new ue(t[0][0], t[1][0], t[0][1] - t[0][0], t[1][1] - t[1][0]) + } + + function my(t, e) { + return n({ + brushType: t.brushType, + brushMode: t.brushMode, + transformable: t.transformable, + brushStyle: new Lo(t.brushStyle).getItemStyle(), + removeOnClick: t.removeOnClick, + z: t.z + }, e, !0) + } + + function vy(t, e, i, n) { + (!n || n.$from !== t.id) && this._brushController.setPanels(t.brushTargetManager.makePanelOpts(i)).enableBrush(t.brushOption).updateCovers(t.areas.slice()) + } + + function yy(t, e) { + IN[t] = e + } + + function xy(t) { + return IN[t] + } + + function _y(t, e, i) { + this.model = t, this.ecModel = e, this.api = i, this._brushType, this._brushMode + } + + function wy(t, e, i) { + this._model = t + } + + function by(t, e, i, n) { + var o = i.calendarModel, + a = i.seriesModel, + r = o ? o.coordinateSystem : a ? a.coordinateSystem : null; + return r === this ? r[t](n) : null + } + + function Sy(t, e) { + var i = t.cellSize; + y(i) ? 1 === i.length && (i[1] = i[0]) : i = t.cellSize = [i, i]; + var n = f([0, 1], function(t) { + return ha(e, t) && (i[t] = "auto"), null != i[t] && "auto" !== i[t] + }); + ca(t, e, { + type: "box", + ignoreSize: n + }) + } + + function My(t) { + return l(kN, t) >= 0 + } + + function Iy(t, e, i) { + function n(t, e) { + return l(e.nodes, t) >= 0 + } + + function o(t, n) { + var o = !1; + return e(function(e) { + d(i(t, e) || [], function(t) { + n.records[e.name][t] && (o = !0) + }) + }), o + } + + function a(t, n) { + n.nodes.push(t), e(function(e) { + d(i(t, e) || [], function(t) { + n.records[e.name][t] = !0 + }) + }) + } + return function(i) { + var r = { + nodes: [], + records: {} + }; + if (e(function(t) { + r.records[t.name] = {} + }), !i) return r; + a(i, r); + var s; + do { + s = !1, t(function(t) { + !n(t, r) && o(t, r) && (a(t, r), s = !0) + }) + } while (s); + return r + } + } + + function Ty(t, e, i) { + var n = [1 / 0, -1 / 0]; + return NN(i, function(t) { + var i = t.getData(); + i && NN(i.mapDimension(e, !0), function(t) { + var e = i.getApproximateExtent(t); + e[0] < n[0] && (n[0] = e[0]), e[1] > n[1] && (n[1] = e[1]) + }) + }), n[1] < n[0] && (n = [NaN, NaN]), Ay(t, n), n + } + + function Ay(t, e) { + var i = t.getAxisModel(), + n = i.getMin(!0), + o = "category" === i.get("type"), + a = o && i.getCategories().length; + null != n && "dataMin" !== n && "function" != typeof n ? e[0] = n : o && (e[0] = a > 0 ? 0 : NaN); + var r = i.getMax(!0); + return null != r && "dataMax" !== r && "function" != typeof r ? e[1] = r : o && (e[1] = a > 0 ? a - 1 : NaN), i.get("scale", !0) || (e[0] > 0 && (e[0] = 0), e[1] < 0 && (e[1] = 0)), e + } + + function Dy(t, e) { + var i = t.getAxisModel(), + n = t._percentWindow, + o = t._valueWindow; + if (n) { + var a = Fo(o, [0, 500]); + a = Math.min(a, 20); + var r = e || 0 === n[0] && 100 === n[1]; + i.setRange(r ? null : +o[0].toFixed(a), r ? null : +o[1].toFixed(a)) + } + } + + function Cy(t) { + var e = t._minMaxSpan = {}, + i = t._dataZoomModel; + NN(["min", "max"], function(n) { + e[n + "Span"] = i.get(n + "Span"); + var o = i.get(n + "ValueSpan"); + if (null != o && (e[n + "ValueSpan"] = o, null != (o = t.getAxisModel().axis.scale.parse(o)))) { + var a = t._dataExtent; + e[n + "Span"] = Eo(a[0] + o, a, [0, 100], !0) + } + }) + } + + function Ly(t) { + var e = {}; + return RN(["start", "end", "startValue", "endValue", "throttle"], function(i) { + t.hasOwnProperty(i) && (e[i] = t[i]) + }), e + } + + function ky(t, e) { + var i = t._rangePropMode, + n = t.get("rangeMode"); + RN([ + ["start", "startValue"], + ["end", "endValue"] + ], function(t, o) { + var a = null != e[t[0]], + r = null != e[t[1]]; + a && !r ? i[o] = "percent" : !a && r ? i[o] = "value" : n ? i[o] = n[o] : a && (i[o] = "percent") + }) + } + + function Py(t) { + return { + x: "y", + y: "x", + radius: "angle", + angle: "radius" + } [t] + } + + function Ny(t) { + return "vertical" === t ? "ns-resize" : "ew-resize" + } + + function Oy(t, e) { + var i = zy(t), + n = e.dataZoomId, + o = e.coordId; + d(i, function(t, i) { + var a = t.dataZoomInfos; + a[n] && l(e.allCoordIds, o) < 0 && (delete a[n], t.count--) + }), Vy(i); + var a = i[o]; + a || ((a = i[o] = { + coordId: o, + dataZoomInfos: {}, + count: 0 + }).controller = By(t, a), a.dispatchAction = v(Gy, t)), !a.dataZoomInfos[n] && a.count++, a.dataZoomInfos[n] = e; + var r = Fy(a.dataZoomInfos); + a.controller.enable(r.controlType, r.opt), a.controller.setPointerChecker(e.containsPoint), Lr(a, "dispatchAction", e.dataZoomModel.get("throttle", !0), "fixRate") + } + + function Ey(t, e) { + var i = zy(t); + d(i, function(t) { + t.controller.dispose(); + var i = t.dataZoomInfos; + i[e] && (delete i[e], t.count--) + }), Vy(i) + } + + function Ry(t) { + return t.type + "\0_" + t.id + } + + function zy(t) { + var e = t.getZr(); + return e[qN] || (e[qN] = {}) + } + + function By(t, e) { + var i = new ac(t.getZr()); + return d(["pan", "zoom", "scrollMove"], function(t) { + i.on(t, function(i) { + var n = []; + d(e.dataZoomInfos, function(o) { + if (i.isAvailableBehavior(o.dataZoomModel.option)) { + var a = (o.getRange || {})[t], + r = a && a(e.controller, i); + !o.dataZoomModel.get("disabled", !0) && r && n.push({ + dataZoomId: o.dataZoomId, + start: r[0], + end: r[1] + }) + } + }), n.length && e.dispatchAction(n) + }) + }), i + } + + function Vy(t) { + d(t, function(e, i) { + e.count || (e.controller.dispose(), delete t[i]) + }) + } + + function Gy(t, e) { + t.dispatchAction({ + type: "dataZoom", + batch: e + }) + } + + function Fy(t) { + var e, i = { + type_true: 2, + type_move: 1, + type_false: 0, + type_undefined: -1 + }, + n = !0; + return d(t, function(t) { + var o = t.dataZoomModel, + a = !o.get("disabled", !0) && (!o.get("zoomLock", !0) || "move"); + i["type_" + a] > i["type_" + e] && (e = a), n &= o.get("preventDefaultMouseMove", !0) + }), { + controlType: e, + opt: { + zoomOnMouseWheel: !0, + moveOnMouseMove: !0, + moveOnMouseWheel: !0, + preventDefaultMouseMove: !!n + } + } + } + + function Wy(t) { + return function(e, i, n, o) { + var a = this._range, + r = a.slice(), + s = e.axisModels[0]; + if (s) { + var l = t(r, s, e, i, n, o); + return EL(l, r, [0, 100], "all"), this._range = r, a[0] !== r[0] || a[1] !== r[1] ? r : void 0 + } + } + } + + function Hy(t, e) { + return t && t.hasOwnProperty && t.hasOwnProperty(e) + } + + function Zy(t, e, i, n) { + for (var o = e.targetVisuals[n], a = jC.prepareVisualTypes(o), r = { + color: t.getData().getVisual("color") + }, s = 0, l = a.length; s < l; s++) { + var u = a[s], + h = o["opacity" === u ? "__alphaForOpacity" : u]; + h && h.applyVisual(i, function(t) { + return r[t] + }, function(t, e) { + r[t] = e + }) + } + return r.color + } + + function Uy(t, e, i) { + if (i[0] === i[1]) return i.slice(); + for (var n = (i[1] - i[0]) / 200, o = i[0], a = [], r = 0; r <= 200 && o < i[1]; r++) a.push(o), o += n; + return a.push(i[1]), a + } + + function Xy(t, e, i) { + var n = t.option, + o = n.align; + if (null != o && "auto" !== o) return o; + for (var a = { + width: e.getWidth(), + height: e.getHeight() + }, r = "horizontal" === n.orient ? 1 : 0, s = [ + ["left", "right", "width"], + ["top", "bottom", "height"] + ], l = s[r], u = [0, null, 10], h = {}, c = 0; c < 3; c++) h[s[1 - r][c]] = u[c], h[l[c]] = 2 === c ? i[0] : n[l[c]]; + var d = [ + ["x", "width", 3], + ["y", "height", 0] + ][r], + f = la(h, a, n.padding); + return l[(f.margin[d[2]] || 0) + f[d[0]] + .5 * f[d[1]] < .5 * a[d[1]] ? 0 : 1] + } + + function jy(t) { + return d(t || [], function(e) { + null != t.dataIndex && (t.dataIndexInside = t.dataIndex, t.dataIndex = null) + }), t + } + + function Yy(t, e, i, n) { + return new nM({ + shape: { + points: t + }, + draggable: !!i, + cursor: e, + drift: i, + onmousemove: function(t) { + lw(t.event) + }, + ondragend: n + }) + } + + function qy(t, e) { + return 0 === t ? [ + [0, 0], + [e, 0], + [e, -e] + ] : [ + [0, 0], + [e, 0], + [e, e] + ] + } + + function Ky(t, e, i, n) { + return t ? [ + [0, -yO(e, xO(i, 0))], + [wO, 0], + [0, yO(e, xO(n - i, 0))] + ] : [ + [0, 0], + [5, -5], + [5, 5] + ] + } + + function $y(t, e, i) { + var n = _O / 2, + o = t.get("hoverLinkDataSize"); + return o && (n = mO(o, e, i, !0) / 2), n + } + + function Jy(t) { + var e = t.get("hoverLinkOnHandle"); + return !!(null == e ? t.get("realtime") : e) + } + + function Qy(t) { + return "vertical" === t ? "ns-resize" : "ew-resize" + } + + function tx(t, e) { + var i = t.inverse; + ("vertical" === t.orient ? !i : i) && e.reverse() + } + + function ex(t) { + Ci(t, "label", ["show"]) + } + + function ix(t) { + return !(isNaN(parseFloat(t.x)) && isNaN(parseFloat(t.y))) + } + + function nx(t) { + return !isNaN(parseFloat(t.x)) && !isNaN(parseFloat(t.y)) + } + + function ox(t, e, i, n, o, a) { + var r = [], + s = hl(e, n) ? e.getCalculationInfo("stackResultDimension") : n, + l = hx(e, s, t), + u = e.indicesOfNearest(s, l)[0]; + r[o] = e.get(i, u), r[a] = e.get(n, u); + var h = Vo(e.get(n, u)); + return (h = Math.min(h, 20)) >= 0 && (r[a] = +r[a].toFixed(h)), r + } + + function ax(t, e) { + var n = t.getData(), + o = t.coordinateSystem; + if (e && !nx(e) && !y(e.coord) && o) { + var a = o.dimensions, + r = rx(e, n, o, t); + if ((e = i(e)).type && LO[e.type] && r.baseAxis && r.valueAxis) { + var s = DO(a, r.baseAxis.dim), + l = DO(a, r.valueAxis.dim); + e.coord = LO[e.type](n, r.baseDataDim, r.valueDataDim, s, l), e.value = e.coord[l] + } else { + for (var u = [null != e.xAxis ? e.xAxis : e.radiusAxis, null != e.yAxis ? e.yAxis : e.angleAxis], h = 0; h < 2; h++) LO[u[h]] && (u[h] = hx(n, n.mapDimension(a[h]), u[h])); + e.coord = u + } + } + return e + } + + function rx(t, e, i, n) { + var o = {}; + return null != t.valueIndex || null != t.valueDim ? (o.valueDataDim = null != t.valueIndex ? e.getDimension(t.valueIndex) : t.valueDim, o.valueAxis = i.getAxis(sx(n, o.valueDataDim)), o.baseAxis = i.getOtherAxis(o.valueAxis), o.baseDataDim = e.mapDimension(o.baseAxis.dim)) : (o.baseAxis = n.getBaseAxis(), o.valueAxis = i.getOtherAxis(o.baseAxis), o.baseDataDim = e.mapDimension(o.baseAxis.dim), o.valueDataDim = e.mapDimension(o.valueAxis.dim)), o + } + + function sx(t, e) { + var i = t.getData(), + n = i.dimensions; + e = i.getDimension(e); + for (var o = 0; o < n.length; o++) { + var a = i.getDimensionInfo(n[o]); + if (a.name === e) return a.coordDim + } + } + + function lx(t, e) { + return !(t && t.containData && e.coord && !ix(e)) || t.containData(e.coord) + } + + function ux(t, e, i, n) { + return n < 2 ? t.coord && t.coord[n] : t.value + } + + function hx(t, e, i) { + if ("average" === i) { + var n = 0, + o = 0; + return t.each(e, function(t, e) { + isNaN(t) || (n += t, o++) + }), n / o + } + return "median" === i ? t.getMedian(e) : t.getDataExtent(e, !0)["max" === i ? 1 : 0] + } + + function cx(t, e, i) { + var n = e.coordinateSystem; + t.each(function(o) { + var a, r = t.getItemModel(o), + s = Ro(r.get("x"), i.getWidth()), + l = Ro(r.get("y"), i.getHeight()); + if (isNaN(s) || isNaN(l)) { + if (e.getMarkerPosition) a = e.getMarkerPosition(t.getValues(t.dimensions, o)); + else if (n) { + var u = t.get(n.dimensions[0], o), + h = t.get(n.dimensions[1], o); + a = n.dataToPoint([u, h]) + } + } else a = [s, l]; + isNaN(s) || (a[0] = s), isNaN(l) || (a[1] = l), t.setItemLayout(o, a) + }) + } + + function dx(t, e, i) { + var n; + n = t ? f(t && t.dimensions, function(t) { + return r({ + name: t + }, e.getData().getDimensionInfo(e.getData().mapDimension(t)) || {}) + }) : [{ + name: "value", + type: "float" + }]; + var o = new eA(n, i), + a = f(i.get("data"), v(ax, e)); + return t && (a = g(a, v(lx, t))), o.initData(a, null, t ? ux : function(t) { + return t.value + }), o + } + + function fx(t) { + return !isNaN(t) && !isFinite(t) + } + + function px(t, e, i, n) { + var o = 1 - t, + a = n.dimensions[t]; + return fx(e[o]) && fx(i[o]) && e[t] === i[t] && n.getAxis(a).containData(e[t]) + } + + function gx(t, e) { + if ("cartesian2d" === t.type) { + var i = e[0].coord, + n = e[1].coord; + if (i && n && (px(1, i, n, t) || px(0, i, n, t))) return !0 + } + return lx(t, e[0]) && lx(t, e[1]) + } + + function mx(t, e, i, n, o) { + var a, r = n.coordinateSystem, + s = t.getItemModel(e), + l = Ro(s.get("x"), o.getWidth()), + u = Ro(s.get("y"), o.getHeight()); + if (isNaN(l) || isNaN(u)) { + if (n.getMarkerPosition) a = n.getMarkerPosition(t.getValues(t.dimensions, e)); + else { + var h = r.dimensions, + c = t.get(h[0], e), + d = t.get(h[1], e); + a = r.dataToPoint([c, d]) + } + if ("cartesian2d" === r.type) { + var f = r.getAxis("x"), + p = r.getAxis("y"), + h = r.dimensions; + fx(t.get(h[0], e)) ? a[0] = f.toGlobalCoord(f.getExtent()[i ? 0 : 1]) : fx(t.get(h[1], e)) && (a[1] = p.toGlobalCoord(p.getExtent()[i ? 0 : 1])) + } + isNaN(l) || (a[0] = l), isNaN(u) || (a[1] = u) + } else a = [l, u]; + t.setItemLayout(e, a) + } + + function vx(t, e, i) { + var n; + n = t ? f(t && t.dimensions, function(t) { + return r({ + name: t + }, e.getData().getDimensionInfo(e.getData().mapDimension(t)) || {}) + }) : [{ + name: "value", + type: "float" + }]; + var o = new eA(n, i), + a = new eA(n, i), + s = new eA([], i), + l = f(i.get("data"), v(PO, e, t, i)); + t && (l = g(l, v(gx, t))); + var u = t ? ux : function(t) { + return t.value + }; + return o.initData(f(l, function(t) { + return t[0] + }), null, u), a.initData(f(l, function(t) { + return t[1] + }), null, u), s.initData(f(l, function(t) { + return t[2] + })), s.hasItemOption = !0, { + from: o, + to: a, + line: s + } + } + + function yx(t) { + return !isNaN(t) && !isFinite(t) + } + + function xx(t, e, i, n) { + var o = 1 - t; + return yx(e[o]) && yx(i[o]) + } + + function _x(t, e) { + var i = e.coord[0], + n = e.coord[1]; + return !("cartesian2d" !== t.type || !i || !n || !xx(1, i, n, t) && !xx(0, i, n, t)) || (lx(t, { + coord: i, + x: e.x0, + y: e.y0 + }) || lx(t, { + coord: n, + x: e.x1, + y: e.y1 + })) + } + + function bx(t, e, i, n, o) { + var a, r = n.coordinateSystem, + s = t.getItemModel(e), + l = Ro(s.get(i[0]), o.getWidth()), + u = Ro(s.get(i[1]), o.getHeight()); + if (isNaN(l) || isNaN(u)) { + if (n.getMarkerPosition) a = n.getMarkerPosition(t.getValues(i, e)); + else { + var h = [f = t.get(i[0], e), p = t.get(i[1], e)]; + r.clampData && r.clampData(h, h), a = r.dataToPoint(h, !0) + } + if ("cartesian2d" === r.type) { + var c = r.getAxis("x"), + d = r.getAxis("y"), + f = t.get(i[0], e), + p = t.get(i[1], e); + yx(f) ? a[0] = c.toGlobalCoord(c.getExtent()["x0" === i[0] ? 0 : 1]) : yx(p) && (a[1] = d.toGlobalCoord(d.getExtent()["y0" === i[1] ? 0 : 1])) + } + isNaN(l) || (a[0] = l), isNaN(u) || (a[1] = u) + } else a = [l, u]; + return a + } + + function Sx(t, e, i) { + var n, o, a = ["x0", "y0", "x1", "y1"]; + t ? (n = f(t && t.dimensions, function(t) { + var i = e.getData(); + return r({ + name: t + }, i.getDimensionInfo(i.mapDimension(t)) || {}) + }), o = new eA(f(a, function(t, e) { + return { + name: t, + type: n[e % 2].type + } + }), i)) : o = new eA(n = [{ + name: "value", + type: "float" + }], i); + var s = f(i.get("data"), v(NO, e, t, i)); + t && (s = g(s, v(_x, t))); + var l = t ? function(t, e, i, n) { + return t.coord[Math.floor(n / 2)][n % 2] + } : function(t) { + return t.value + }; + return o.initData(s, null, l), o.hasItemOption = !0, o + } + + function Mx(t) { + var e = t.type, + i = { + number: "value", + time: "time" + }; + if (i[e] && (t.axisType = i[e], delete t.type), Ix(t), Tx(t, "controlPosition")) { + var n = t.controlStyle || (t.controlStyle = {}); + Tx(n, "position") || (n.position = t.controlPosition), "none" !== n.position || Tx(n, "show") || (n.show = !1, delete n.position), delete t.controlPosition + } + d(t.data || [], function(t) { + w(t) && !y(t) && (!Tx(t, "value") && Tx(t, "name") && (t.value = t.name), Ix(t)) + }) + } + + function Ix(t) { + var e = t.itemStyle || (t.itemStyle = {}), + i = e.emphasis || (e.emphasis = {}), + n = t.label || t.label || {}, + o = n.normal || (n.normal = {}), + a = { + normal: 1, + emphasis: 1 + }; + d(n, function(t, e) { + a[e] || Tx(o, e) || (o[e] = t) + }), i.label && !Tx(n, "emphasis") && (n.emphasis = i.label, delete i.label) + } + + function Tx(t, e) { + return t.hasOwnProperty(e) + } + + function Ax(t, e) { + return la(t.getBoxLayoutParams(), { + width: e.getWidth(), + height: e.getHeight() + }, t.get("padding")) + } + + function Dx(t, e, n, o) { + return Wn(t.get(e).replace(/^path:\/\//, ""), i(o || {}), new ue(n[0], n[1], n[2], n[3]), "center") + } + + function Cx(t, e, i, o, a, r) { + var s = e.get("color"); + a ? (a.setColor(s), i.add(a), r && r.onUpdate(a)) : ((a = Xl(t.get("symbol"), -1, -1, 2, 2, s)).setStyle("strokeNoScale", !0), i.add(a), r && r.onCreate(a)); + var l = e.getItemStyle(["color", "symbol", "symbolSize"]); + a.setStyle(l), o = n({ + rectHover: !0, + z2: 100 + }, o, !0); + var u = t.get("symbolSize"); + (u = u instanceof Array ? u.slice() : [+u, +u])[0] /= 2, u[1] /= 2, o.scale = u; + var h = t.get("symbolOffset"); + if (h) { + var c = o.position = o.position || [0, 0]; + c[0] += Ro(h[0], u[0]), c[1] += Ro(h[1], u[1]) + } + var d = t.get("symbolRotate"); + return o.rotation = (d || 0) * Math.PI / 180 || 0, a.attr(o), a.updateTransform(), a + } + + function Lx(t, e, i, n, o) { + if (!t.dragging) { + var a = n.getModel("checkpointStyle"), + r = i.dataToCoord(n.getData().get(["value"], e)); + o || !a.get("animation", !0) ? t.attr({ + position: [r, 0] + }) : (t.stopAnimation(!0), t.animateTo({ + position: [r, 0] + }, a.get("animationDuration", !0), a.get("animationEasing", !0))) + } + } + + function kx(t) { + return 0 === t.indexOf("my") + } + + function Px(t) { + this.model = t + } + + function Nx(t) { + this.model = t + } + + function Ox(t) { + var e = {}, + i = [], + n = []; + return t.eachRawSeries(function(t) { + var o = t.coordinateSystem; + if (!o || "cartesian2d" !== o.type && "polar" !== o.type) i.push(t); + else { + var a = o.getBaseAxis(); + if ("category" === a.type) { + var r = a.dim + "_" + a.index; + e[r] || (e[r] = { + categoryAxis: a, + valueAxis: o.getOtherAxis(a), + series: [] + }, n.push({ + axisDim: a.dim, + axisIndex: a.index + })), e[r].series.push(t) + } else i.push(t) + } + }), { + seriesGroupByCategoryAxis: e, + other: i, + meta: n + } + } + + function Ex(t) { + var e = []; + return d(t, function(t, i) { + var n = t.categoryAxis, + o = t.valueAxis.dim, + a = [" "].concat(f(t.series, function(t) { + return t.name + })), + r = [n.model.getCategories()]; + d(t.series, function(t) { + r.push(t.getRawData().mapArray(o, function(t) { + return t + })) + }); + for (var s = [a.join(qO)], l = 0; l < r[0].length; l++) { + for (var u = [], h = 0; h < r.length; h++) u.push(r[h][l]); + s.push(u.join(qO)) + } + e.push(s.join("\n")) + }), e.join("\n\n" + YO + "\n\n") + } + + function Rx(t) { + return f(t, function(t) { + var e = t.getRawData(), + i = [t.name], + n = []; + return e.each(e.dimensions, function() { + for (var t = arguments.length, o = arguments[t - 1], a = e.getName(o), r = 0; r < t - 1; r++) n[r] = arguments[r]; + i.push((a ? a + qO : "") + n.join(qO)) + }), i.join("\n") + }).join("\n\n" + YO + "\n\n") + } + + function zx(t) { + var e = Ox(t); + return { + value: g([Ex(e.seriesGroupByCategoryAxis), Rx(e.other)], function(t) { + return t.replace(/[\n\t\s]/g, "") + }).join("\n\n" + YO + "\n\n"), + meta: e.meta + } + } + + function Bx(t) { + return t.replace(/^\s\s*/, "").replace(/\s\s*$/, "") + } + + function Vx(t) { + if (t.slice(0, t.indexOf("\n")).indexOf(qO) >= 0) return !0 + } + + function Gx(t) { + for (var e = t.split(/\n+/g), i = [], n = f(Bx(e.shift()).split(KO), function(t) { + return { + name: t, + data: [] + } + }), o = 0; o < e.length; o++) { + var a = Bx(e[o]).split(KO); + i.push(a.shift()); + for (var r = 0; r < a.length; r++) n[r] && (n[r].data[o] = a[r]) + } + return { + series: n, + categories: i + } + } + + function Fx(t) { + for (var e = t.split(/\n+/g), i = Bx(e.shift()), n = [], o = 0; o < e.length; o++) { + var a, r = Bx(e[o]).split(KO), + s = "", + l = !1; + isNaN(r[0]) ? (l = !0, s = r[0], r = r.slice(1), n[o] = { + name: s, + value: [] + }, a = n[o].value) : a = n[o] = []; + for (var u = 0; u < r.length; u++) a.push(+r[u]); + 1 === a.length && (l ? n[o].value = a[0] : n[o] = a[0]) + } + return { + name: i, + data: n + } + } + + function Wx(t, e) { + var i = { + series: [] + }; + return d(t.split(new RegExp("\n*" + YO + "\n*", "g")), function(t, n) { + if (Vx(t)) { + var o = Gx(t), + a = e[n], + r = a.axisDim + "Axis"; + a && (i[r] = i[r] || [], i[r][a.axisIndex] = { + data: o.categories + }, i.series = i.series.concat(o.series)) + } else { + o = Fx(t); + i.series.push(o) + } + }), i + } + + function Hx(t) { + this._dom = null, this.model = t + } + + function Zx(t, e) { + return f(t, function(t, i) { + var n = e && e[i]; + return w(n) && !y(n) ? (w(t) && !y(t) && (t = t.value), r({ + value: t + }, n)) : t + }) + } + + function Ux(t, e) { + var i = qx(t); + $O(e, function(e, n) { + for (var o = i.length - 1; o >= 0 && !i[o][n]; o--); + if (o < 0) { + var a = t.queryComponents({ + mainType: "dataZoom", + subType: "select", + id: n + })[0]; + if (a) { + var r = a.getPercentRange(); + i[0][n] = { + dataZoomId: n, + start: r[0], + end: r[1] + } + } + } + }), i.push(e) + } + + function Xx(t) { + var e = qx(t), + i = e[e.length - 1]; + e.length > 1 && e.pop(); + var n = {}; + return $O(i, function(t, i) { + for (var o = e.length - 1; o >= 0; o--) + if (t = e[o][i]) { + n[i] = t; + break + } + }), n + } + + function jx(t) { + t[JO] = null + } + + function Yx(t) { + return qx(t).length + } + + function qx(t) { + var e = t[JO]; + return e || (e = t[JO] = [{}]), e + } + + function Kx(t, e, i) { + (this._brushController = new Cf(i.getZr())).on("brush", m(this._onBrush, this)).mount(), this._isZoomActive + } + + function $x(t) { + var e = {}; + return d(["xAxisIndex", "yAxisIndex"], function(i) { + e[i] = t[i], null == e[i] && (e[i] = "all"), (!1 === e[i] || "none" === e[i]) && (e[i] = []) + }), e + } + + function Jx(t, e) { + t.setIconStatus("back", Yx(e) > 1 ? "emphasis" : "normal") + } + + function Qx(t, e, i, n, o) { + var a = i._isZoomActive; + n && "takeGlobalCursor" === n.type && (a = "dataZoomSelect" === n.key && n.dataZoomSelectActive), i._isZoomActive = a, t.setIconStatus("zoom", a ? "emphasis" : "normal"); + var r = new iy($x(t.option), e, { + include: ["grid"] + }); + i._brushController.setPanels(r.makePanelOpts(o, function(t) { + return t.xAxisDeclared && !t.yAxisDeclared ? "lineX" : !t.xAxisDeclared && t.yAxisDeclared ? "lineY" : "rect" + })).enableBrush(!!a && { + brushType: "auto", + brushStyle: { + lineWidth: 0, + fill: "rgba(0,0,0,0.2)" + } + }) + } + + function t_(t) { + this.model = t + } + + function e_(t) { + return aE(t) + } + + function i_() { + if (!lE && uE) { + lE = !0; + var t = uE.styleSheets; + t.length < 31 ? uE.createStyleSheet().addRule(".zrvml", "behavior:url(#default#VML)") : t[0].addRule(".zrvml", "behavior:url(#default#VML)") + } + } + + function n_(t) { + return parseInt(t, 10) + } + + function o_(t, e) { + i_(), this.root = t, this.storage = e; + var i = document.createElement("div"), + n = document.createElement("div"); + i.style.cssText = "display:inline-block;overflow:hidden;position:relative;width:300px;height:150px;", n.style.cssText = "position:absolute;left:0;top:0;", t.appendChild(i), this._vmlRoot = n, this._vmlViewport = i, this.resize(); + var o = e.delFromStorage, + a = e.addToStorage; + e.delFromStorage = function(t) { + o.call(e, t), t && t.onRemove && t.onRemove(n) + }, e.addToStorage = function(t) { + t.onAdd && t.onAdd(n), a.call(e, t) + }, this._firstPaint = !0 + } + + function a_(t) { + return function() { + Bw('In IE8.0 VML mode painter not support method "' + t + '"') + } + } + + function r_(t) { + return document.createElementNS(HE, t) + } + + function s_(t) { + return jE(1e4 * t) / 1e4 + } + + function l_(t) { + return t < QE && t > -QE + } + + function u_(t, e) { + var i = e ? t.textFill : t.fill; + return null != i && i !== XE + } + + function h_(t, e) { + var i = e ? t.textStroke : t.stroke; + return null != i && i !== XE + } + + function c_(t, e) { + e && d_(t, "transform", "matrix(" + UE.call(e, ",") + ")") + } + + function d_(t, e, i) { + (!i || "linear" !== i.type && "radial" !== i.type) && ("string" == typeof i && i.indexOf("NaN") > -1 && console.log(i), t.setAttribute(e, i)) + } + + function f_(t, e, i) { + t.setAttributeNS("http://www.w3.org/1999/xlink", e, i) + } + + function p_(t, e, i, n) { + if (u_(e, i)) { + var o = i ? e.textFill : e.fill; + o = "transparent" === o ? XE : o, "none" !== t.getAttribute("clip-path") && o === XE && (o = "rgba(0, 0, 0, 0.002)"), d_(t, "fill", o), d_(t, "fill-opacity", null != e.fillOpacity ? e.fillOpacity * e.opacity : e.opacity) + } else d_(t, "fill", XE); + if (h_(e, i)) { + var a = i ? e.textStroke : e.stroke; + d_(t, "stroke", a = "transparent" === a ? XE : a), d_(t, "stroke-width", (i ? e.textStrokeWidth : e.lineWidth) / (!i && e.strokeNoScale ? n.getLineScale() : 1)), d_(t, "paint-order", i ? "stroke" : "fill"), d_(t, "stroke-opacity", null != e.strokeOpacity ? e.strokeOpacity : e.opacity), e.lineDash ? (d_(t, "stroke-dasharray", e.lineDash.join(",")), d_(t, "stroke-dashoffset", jE(e.lineDashOffset || 0))) : d_(t, "stroke-dasharray", ""), e.lineCap && d_(t, "stroke-linecap", e.lineCap), e.lineJoin && d_(t, "stroke-linejoin", e.lineJoin), e.miterLimit && d_(t, "stroke-miterlimit", e.miterLimit) + } else d_(t, "stroke", XE) + } + + function g_(t) { + for (var e = [], i = t.data, n = t.len(), o = 0; o < n;) { + var a = "", + r = 0; + switch (i[o++]) { + case ZE.M: + a = "M", r = 2; + break; + case ZE.L: + a = "L", r = 2; + break; + case ZE.Q: + a = "Q", r = 4; + break; + case ZE.C: + a = "C", r = 6; + break; + case ZE.A: + var s = i[o++], + l = i[o++], + u = i[o++], + h = i[o++], + c = i[o++], + d = i[o++], + f = i[o++], + p = i[o++], + g = Math.abs(d), + m = l_(g - $E) && !l_(g), + v = !1; + v = g >= $E || !l_(g) && (d > -KE && d < 0 || d > KE) == !!p; + var y = s_(s + u * qE(c)), + x = s_(l + h * YE(c)); + m && (d = p ? $E - 1e-4 : 1e-4 - $E, v = !0, 9 === o && e.push("M", y, x)); + var _ = s_(s + u * qE(c + d)), + w = s_(l + h * YE(c + d)); + e.push("A", s_(u), s_(h), jE(f * JE), +v, +p, _, w); + break; + case ZE.Z: + a = "Z"; + break; + case ZE.R: + var _ = s_(i[o++]), + w = s_(i[o++]), + b = s_(i[o++]), + S = s_(i[o++]); + e.push("M", _, w, "L", _ + b, w, "L", _ + b, w + S, "L", _, w + S, "L", _, w) + } + a && e.push(a); + for (var M = 0; M < r; M++) e.push(s_(i[o++])) + } + return e.join(" ") + } + + function m_(t) { + return "middle" === t ? "middle" : "bottom" === t ? "after-edge" : "hanging" + } + + function v_() {} + + function y_(t, e, i, n) { + for (var o = 0, a = e.length, r = 0, s = 0; o < a; o++) { + var l = e[o]; + if (l.removed) { + for (var u = [], h = s; h < s + l.count; h++) u.push(h); + l.indices = u, s += l.count + } else { + for (var u = [], h = r; h < r + l.count; h++) u.push(h); + l.indices = u, r += l.count, l.added || (s += l.count) + } + } + return e + } + + function x_(t) { + return { + newPos: t.newPos, + components: t.components.slice(0) + } + } + + function __(t, e, i, n, o) { + this._zrId = t, this._svgRoot = e, this._tagNames = "string" == typeof i ? [i] : i, this._markLabel = n, this._domName = o || "_dom", this.nextId = 0 + } + + function w_(t, e) { + __.call(this, t, e, ["linearGradient", "radialGradient"], "__gradient_in_use__") + } + + function b_(t, e) { + __.call(this, t, e, "clipPath", "__clippath_in_use__") + } + + function S_(t, e) { + __.call(this, t, e, ["filter"], "__filter_in_use__", "_shadowDom") + } + + function M_(t) { + return t && (t.shadowBlur || t.shadowOffsetX || t.shadowOffsetY || t.textShadowBlur || t.textShadowOffsetX || t.textShadowOffsetY) + } + + function I_(t) { + return parseInt(t, 10) + } + + function T_(t) { + return t instanceof kn ? tR : t instanceof hi ? eR : t instanceof qS ? iR : tR + } + + function A_(t, e) { + return e && t && e.parentNode !== t + } + + function D_(t, e, i) { + if (A_(t, e) && i) { + var n = i.nextSibling; + n ? t.insertBefore(e, n) : t.appendChild(e) + } + } + + function C_(t, e) { + if (A_(t, e)) { + var i = t.firstChild; + i ? t.insertBefore(e, i) : t.appendChild(e) + } + } + + function L_(t, e) { + e && t && e.parentNode === t && t.removeChild(e) + } + + function k_(t) { + return t.__textSvgEl + } + + function P_(t) { + return t.__svgEl + } + + function N_(t) { + return function() { + Bw('In SVG mode painter not support method "' + t + '"') + } + } + var O_ = 2311, + E_ = function() { + return O_++ + }, + R_ = {}, + z_ = R_ = "object" == typeof wx && "function" == typeof wx.getSystemInfoSync ? { + browser: {}, + os: {}, + node: !1, + wxa: !0, + canvasSupported: !0, + svgSupported: !1, + touchEventsSupported: !0, + domSupported: !1 + } : "undefined" == typeof document && "undefined" != typeof self ? { + browser: {}, + os: {}, + node: !1, + worker: !0, + canvasSupported: !0, + domSupported: !1 + } : "undefined" == typeof navigator ? { + browser: {}, + os: {}, + node: !0, + worker: !1, + canvasSupported: !0, + svgSupported: !0, + domSupported: !1 + } : function(t) { + var e = {}, + i = {}, + n = t.match(/Firefox\/([\d.]+)/), + o = t.match(/MSIE\s([\d.]+)/) || t.match(/Trident\/.+?rv:(([\d.]+))/), + a = t.match(/Edge\/([\d.]+)/), + r = /micromessenger/i.test(t); + return n && (i.firefox = !0, i.version = n[1]), o && (i.ie = !0, i.version = o[1]), a && (i.edge = !0, i.version = a[1]), r && (i.weChat = !0), { + browser: i, + os: e, + node: !1, + canvasSupported: !!document.createElement("canvas").getContext, + svgSupported: "undefined" != typeof SVGRect, + touchEventsSupported: "ontouchstart" in window && !i.ie && !i.edge, + pointerEventsSupported: "onpointerdown" in window && (i.edge || i.ie && i.version >= 11), + domSupported: "undefined" != typeof document + } + }(navigator.userAgent), + B_ = { + "[object Function]": 1, + "[object RegExp]": 1, + "[object Date]": 1, + "[object Error]": 1, + "[object CanvasGradient]": 1, + "[object CanvasPattern]": 1, + "[object Image]": 1, + "[object Canvas]": 1 + }, + V_ = { + "[object Int8Array]": 1, + "[object Uint8Array]": 1, + "[object Uint8ClampedArray]": 1, + "[object Int16Array]": 1, + "[object Uint16Array]": 1, + "[object Int32Array]": 1, + "[object Uint32Array]": 1, + "[object Float32Array]": 1, + "[object Float64Array]": 1 + }, + G_ = Object.prototype.toString, + F_ = Array.prototype, + W_ = F_.forEach, + H_ = F_.filter, + Z_ = F_.slice, + U_ = F_.map, + X_ = F_.reduce, + j_ = {}, + Y_ = function() { + return j_.createCanvas() + }; + j_.createCanvas = function() { + return document.createElement("canvas") + }; + var q_, K_ = "__ec_primitive__"; + E.prototype = { + constructor: E, + get: function(t) { + return this.data.hasOwnProperty(t) ? this.data[t] : null + }, + set: function(t, e) { + return this.data[t] = e + }, + each: function(t, e) { + void 0 !== e && (t = m(t, e)); + for (var i in this.data) this.data.hasOwnProperty(i) && t(this.data[i], i) + }, + removeKey: function(t) { + delete this.data[t] + } + }; + var $_ = (Object.freeze || Object)({ + $override: e, + clone: i, + merge: n, + mergeAll: o, + extend: a, + defaults: r, + createCanvas: Y_, + getContext: s, + indexOf: l, + inherits: u, + mixin: h, + isArrayLike: c, + each: d, + map: f, + reduce: p, + filter: g, + find: function(t, e, i) { + if (t && e) + for (var n = 0, o = t.length; n < o; n++) + if (e.call(i, t[n], n, t)) return t[n] + }, + bind: m, + curry: v, + isArray: y, + isFunction: x, + isString: _, + isObject: w, + isBuiltInObject: b, + isTypedArray: S, + isDom: M, + eqNaN: I, + retrieve: T, + retrieve2: A, + retrieve3: D, + slice: C, + normalizeCssArray: L, + assert: k, + trim: P, + setAsPrimitive: N, + isPrimitive: O, + createHashMap: R, + concatArray: z, + noop: B + }), + J_ = "undefined" == typeof Float32Array ? Array : Float32Array, + Q_ = X, + tw = j, + ew = K, + iw = $, + nw = (Object.freeze || Object)({ + create: V, + copy: G, + clone: F, + set: W, + add: H, + scaleAndAdd: Z, + sub: U, + len: X, + length: Q_, + lenSquare: j, + lengthSquare: tw, + mul: function(t, e, i) { + return t[0] = e[0] * i[0], t[1] = e[1] * i[1], t + }, + div: function(t, e, i) { + return t[0] = e[0] / i[0], t[1] = e[1] / i[1], t + }, + dot: function(t, e) { + return t[0] * e[0] + t[1] * e[1] + }, + scale: Y, + normalize: q, + distance: K, + dist: ew, + distanceSquare: $, + distSquare: iw, + negate: function(t, e) { + return t[0] = -e[0], t[1] = -e[1], t + }, + lerp: J, + applyTransform: Q, + min: tt, + max: et + }); + it.prototype = { + constructor: it, + _dragStart: function(t) { + var e = t.target; + e && e.draggable && (this._draggingTarget = e, e.dragging = !0, this._x = t.offsetX, this._y = t.offsetY, this.dispatchToElement(nt(e, t), "dragstart", t.event)) + }, + _drag: function(t) { + var e = this._draggingTarget; + if (e) { + var i = t.offsetX, + n = t.offsetY, + o = i - this._x, + a = n - this._y; + this._x = i, this._y = n, e.drift(o, a, t), this.dispatchToElement(nt(e, t), "drag", t.event); + var r = this.findHover(i, n, e).target, + s = this._dropTarget; + this._dropTarget = r, e !== r && (s && r !== s && this.dispatchToElement(nt(s, t), "dragleave", t.event), r && r !== s && this.dispatchToElement(nt(r, t), "dragenter", t.event)) + } + }, + _dragEnd: function(t) { + var e = this._draggingTarget; + e && (e.dragging = !1), this.dispatchToElement(nt(e, t), "dragend", t.event), this._dropTarget && this.dispatchToElement(nt(this._dropTarget, t), "drop", t.event), this._draggingTarget = null, this._dropTarget = null + } + }; + var ow = Array.prototype.slice, + aw = function(t) { + this._$handlers = {}, this._$eventProcessor = t + }; + aw.prototype = { + constructor: aw, + one: function(t, e, i, n) { + var o = this._$handlers; + if ("function" == typeof e && (n = i, i = e, e = null), !i || !t) return this; + e = ot(this, e), o[t] || (o[t] = []); + for (var a = 0; a < o[t].length; a++) + if (o[t][a].h === i) return this; + return o[t].push({ + h: i, + one: !0, + query: e, + ctx: n || this + }), this + }, + on: function(t, e, i, n) { + var o = this._$handlers; + if ("function" == typeof e && (n = i, i = e, e = null), !i || !t) return this; + e = ot(this, e), o[t] || (o[t] = []); + for (var a = 0; a < o[t].length; a++) + if (o[t][a].h === i) return this; + return o[t].push({ + h: i, + one: !1, + query: e, + ctx: n || this + }), this + }, + isSilent: function(t) { + var e = this._$handlers; + return e[t] && e[t].length + }, + off: function(t, e) { + var i = this._$handlers; + if (!t) return this._$handlers = {}, this; + if (e) { + if (i[t]) { + for (var n = [], o = 0, a = i[t].length; o < a; o++) i[t][o].h !== e && n.push(i[t][o]); + i[t] = n + } + i[t] && 0 === i[t].length && delete i[t] + } else delete i[t]; + return this + }, + trigger: function(t) { + var e = this._$handlers[t], + i = this._$eventProcessor; + if (e) { + var n = arguments, + o = n.length; + o > 3 && (n = ow.call(n, 1)); + for (var a = e.length, r = 0; r < a;) { + var s = e[r]; + if (i && i.filter && null != s.query && !i.filter(t, s.query)) r++; + else { + switch (o) { + case 1: + s.h.call(s.ctx); + break; + case 2: + s.h.call(s.ctx, n[1]); + break; + case 3: + s.h.call(s.ctx, n[1], n[2]); + break; + default: + s.h.apply(s.ctx, n) + } + s.one ? (e.splice(r, 1), a--) : r++ + } + } + } + return i && i.afterTrigger && i.afterTrigger(t), this + }, + triggerWithContext: function(t) { + var e = this._$handlers[t], + i = this._$eventProcessor; + if (e) { + var n = arguments, + o = n.length; + o > 4 && (n = ow.call(n, 1, n.length - 1)); + for (var a = n[n.length - 1], r = e.length, s = 0; s < r;) { + var l = e[s]; + if (i && i.filter && null != l.query && !i.filter(t, l.query)) s++; + else { + switch (o) { + case 1: + l.h.call(a); + break; + case 2: + l.h.call(a, n[1]); + break; + case 3: + l.h.call(a, n[1], n[2]); + break; + default: + l.h.apply(a, n) + } + l.one ? (e.splice(s, 1), r--) : s++ + } + } + } + return i && i.afterTrigger && i.afterTrigger(t), this + } + }; + var rw = "undefined" != typeof window && !!window.addEventListener, + sw = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + lw = rw ? function(t) { + t.preventDefault(), t.stopPropagation(), t.cancelBubble = !0 + } : function(t) { + t.returnValue = !1, t.cancelBubble = !0 + }, + uw = "silent"; + pt.prototype.dispose = function() {}; + var hw = ["click", "dblclick", "mousewheel", "mouseout", "mouseup", "mousedown", "mousemove", "contextmenu"], + cw = function(t, e, i, n) { + aw.call(this), this.storage = t, this.painter = e, this.painterRoot = n, i = i || new pt, this.proxy = null, this._hovered = {}, this._lastTouchMoment, this._lastX, this._lastY, it.call(this), this.setHandlerProxy(i) + }; + cw.prototype = { + constructor: cw, + setHandlerProxy: function(t) { + this.proxy && this.proxy.dispose(), t && (d(hw, function(e) { + t.on && t.on(e, this[e], this) + }, this), t.handler = this), this.proxy = t + }, + mousemove: function(t) { + var e = t.zrX, + i = t.zrY, + n = this._hovered, + o = n.target; + o && !o.__zr && (o = (n = this.findHover(n.x, n.y)).target); + var a = this._hovered = this.findHover(e, i), + r = a.target, + s = this.proxy; + s.setCursor && s.setCursor(r ? r.cursor : "default"), o && r !== o && this.dispatchToElement(n, "mouseout", t), this.dispatchToElement(a, "mousemove", t), r && r !== o && this.dispatchToElement(a, "mouseover", t) + }, + mouseout: function(t) { + this.dispatchToElement(this._hovered, "mouseout", t); + var e, i = t.toElement || t.relatedTarget; + do { + i = i && i.parentNode + } while (i && 9 != i.nodeType && !(e = i === this.painterRoot)); + !e && this.trigger("globalout", { + event: t + }) + }, + resize: function(t) { + this._hovered = {} + }, + dispatch: function(t, e) { + var i = this[t]; + i && i.call(this, e) + }, + dispose: function() { + this.proxy.dispose(), this.storage = this.proxy = this.painter = null + }, + setCursorStyle: function(t) { + var e = this.proxy; + e.setCursor && e.setCursor(t) + }, + dispatchToElement: function(t, e, i) { + var n = (t = t || {}).target; + if (!n || !n.silent) { + for (var o = "on" + e, a = dt(e, t, i); n && (n[o] && (a.cancelBubble = n[o].call(n, a)), n.trigger(e, a), n = n.parent, !a.cancelBubble);); + a.cancelBubble || (this.trigger(e, a), this.painter && this.painter.eachOtherLayer(function(t) { + "function" == typeof t[o] && t[o].call(t, a), t.trigger && t.trigger(e, a) + })) + } + }, + findHover: function(t, e, i) { + for (var n = this.storage.getDisplayList(), o = { + x: t, + y: e + }, a = n.length - 1; a >= 0; a--) { + var r; + if (n[a] !== i && !n[a].ignore && (r = gt(n[a], t, e)) && (!o.topTarget && (o.topTarget = n[a]), r !== uw)) { + o.target = n[a]; + break + } + } + return o + } + }, d(["click", "mousedown", "mouseup", "mousewheel", "dblclick", "contextmenu"], function(t) { + cw.prototype[t] = function(e) { + var i = this.findHover(e.zrX, e.zrY), + n = i.target; + if ("mousedown" === t) this._downEl = n, this._downPoint = [e.zrX, e.zrY], this._upEl = n; + else if ("mouseup" === t) this._upEl = n; + else if ("click" === t) { + if (this._downEl !== this._upEl || !this._downPoint || ew(this._downPoint, [e.zrX, e.zrY]) > 4) return; + this._downPoint = null + } + this.dispatchToElement(i, t, e) + } + }), h(cw, aw), h(cw, it); + var dw = "undefined" == typeof Float32Array ? Array : Float32Array, + fw = (Object.freeze || Object)({ + create: mt, + identity: vt, + copy: yt, + mul: xt, + translate: _t, + rotate: wt, + scale: bt, + invert: St, + clone: Mt + }), + pw = vt, + gw = 5e-5, + mw = function(t) { + (t = t || {}).position || (this.position = [0, 0]), null == t.rotation && (this.rotation = 0), t.scale || (this.scale = [1, 1]), this.origin = this.origin || null + }, + vw = mw.prototype; + vw.transform = null, vw.needLocalTransform = function() { + return It(this.rotation) || It(this.position[0]) || It(this.position[1]) || It(this.scale[0] - 1) || It(this.scale[1] - 1) + }; + var yw = []; + vw.updateTransform = function() { + var t = this.parent, + e = t && t.transform, + i = this.needLocalTransform(), + n = this.transform; + if (i || e) { + n = n || mt(), i ? this.getLocalTransform(n) : pw(n), e && (i ? xt(n, t.transform, n) : yt(n, t.transform)), this.transform = n; + var o = this.globalScaleRatio; + if (null != o && 1 !== o) { + this.getGlobalScale(yw); + var a = yw[0] < 0 ? -1 : 1, + r = yw[1] < 0 ? -1 : 1, + s = ((yw[0] - a) * o + a) / yw[0] || 0, + l = ((yw[1] - r) * o + r) / yw[1] || 0; + n[0] *= s, n[1] *= s, n[2] *= l, n[3] *= l + } + this.invTransform = this.invTransform || mt(), St(this.invTransform, n) + } else n && pw(n) + }, vw.getLocalTransform = function(t) { + return mw.getLocalTransform(this, t) + }, vw.setTransform = function(t) { + var e = this.transform, + i = t.dpr || 1; + e ? t.setTransform(i * e[0], i * e[1], i * e[2], i * e[3], i * e[4], i * e[5]) : t.setTransform(i, 0, 0, i, 0, 0) + }, vw.restoreTransform = function(t) { + var e = t.dpr || 1; + t.setTransform(e, 0, 0, e, 0, 0) + }; + var xw = [], + _w = mt(); + vw.setLocalTransform = function(t) { + if (t) { + var e = t[0] * t[0] + t[1] * t[1], + i = t[2] * t[2] + t[3] * t[3], + n = this.position, + o = this.scale; + It(e - 1) && (e = Math.sqrt(e)), It(i - 1) && (i = Math.sqrt(i)), t[0] < 0 && (e = -e), t[3] < 0 && (i = -i), n[0] = t[4], n[1] = t[5], o[0] = e, o[1] = i, this.rotation = Math.atan2(-t[1] / i, t[0] / e) + } + }, vw.decomposeTransform = function() { + if (this.transform) { + var t = this.parent, + e = this.transform; + t && t.transform && (xt(xw, t.invTransform, e), e = xw); + var i = this.origin; + i && (i[0] || i[1]) && (_w[4] = i[0], _w[5] = i[1], xt(xw, e, _w), xw[4] -= i[0], xw[5] -= i[1], e = xw), this.setLocalTransform(e) + } + }, vw.getGlobalScale = function(t) { + var e = this.transform; + return t = t || [], e ? (t[0] = Math.sqrt(e[0] * e[0] + e[1] * e[1]), t[1] = Math.sqrt(e[2] * e[2] + e[3] * e[3]), e[0] < 0 && (t[0] = -t[0]), e[3] < 0 && (t[1] = -t[1]), t) : (t[0] = 1, t[1] = 1, t) + }, vw.transformCoordToLocal = function(t, e) { + var i = [t, e], + n = this.invTransform; + return n && Q(i, i, n), i + }, vw.transformCoordToGlobal = function(t, e) { + var i = [t, e], + n = this.transform; + return n && Q(i, i, n), i + }, mw.getLocalTransform = function(t, e) { + pw(e = e || []); + var i = t.origin, + n = t.scale || [1, 1], + o = t.rotation || 0, + a = t.position || [0, 0]; + return i && (e[4] -= i[0], e[5] -= i[1]), bt(e, e, n), o && wt(e, e, o), i && (e[4] += i[0], e[5] += i[1]), e[4] += a[0], e[5] += a[1], e + }; + var ww = { + linear: function(t) { + return t + }, + quadraticIn: function(t) { + return t * t + }, + quadraticOut: function(t) { + return t * (2 - t) + }, + quadraticInOut: function(t) { + return (t *= 2) < 1 ? .5 * t * t : -.5 * (--t * (t - 2) - 1) + }, + cubicIn: function(t) { + return t * t * t + }, + cubicOut: function(t) { + return --t * t * t + 1 + }, + cubicInOut: function(t) { + return (t *= 2) < 1 ? .5 * t * t * t : .5 * ((t -= 2) * t * t + 2) + }, + quarticIn: function(t) { + return t * t * t * t + }, + quarticOut: function(t) { + return 1 - --t * t * t * t + }, + quarticInOut: function(t) { + return (t *= 2) < 1 ? .5 * t * t * t * t : -.5 * ((t -= 2) * t * t * t - 2) + }, + quinticIn: function(t) { + return t * t * t * t * t + }, + quinticOut: function(t) { + return --t * t * t * t * t + 1 + }, + quinticInOut: function(t) { + return (t *= 2) < 1 ? .5 * t * t * t * t * t : .5 * ((t -= 2) * t * t * t * t + 2) + }, + sinusoidalIn: function(t) { + return 1 - Math.cos(t * Math.PI / 2) + }, + sinusoidalOut: function(t) { + return Math.sin(t * Math.PI / 2) + }, + sinusoidalInOut: function(t) { + return .5 * (1 - Math.cos(Math.PI * t)) + }, + exponentialIn: function(t) { + return 0 === t ? 0 : Math.pow(1024, t - 1) + }, + exponentialOut: function(t) { + return 1 === t ? 1 : 1 - Math.pow(2, -10 * t) + }, + exponentialInOut: function(t) { + return 0 === t ? 0 : 1 === t ? 1 : (t *= 2) < 1 ? .5 * Math.pow(1024, t - 1) : .5 * (2 - Math.pow(2, -10 * (t - 1))) + }, + circularIn: function(t) { + return 1 - Math.sqrt(1 - t * t) + }, + circularOut: function(t) { + return Math.sqrt(1 - --t * t) + }, + circularInOut: function(t) { + return (t *= 2) < 1 ? -.5 * (Math.sqrt(1 - t * t) - 1) : .5 * (Math.sqrt(1 - (t -= 2) * t) + 1) + }, + elasticIn: function(t) { + var e, i = .1; + return 0 === t ? 0 : 1 === t ? 1 : (!i || i < 1 ? (i = 1, e = .1) : e = .4 * Math.asin(1 / i) / (2 * Math.PI), -i * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - e) * (2 * Math.PI) / .4)) + }, + elasticOut: function(t) { + var e, i = .1; + return 0 === t ? 0 : 1 === t ? 1 : (!i || i < 1 ? (i = 1, e = .1) : e = .4 * Math.asin(1 / i) / (2 * Math.PI), i * Math.pow(2, -10 * t) * Math.sin((t - e) * (2 * Math.PI) / .4) + 1) + }, + elasticInOut: function(t) { + var e, i = .1; + return 0 === t ? 0 : 1 === t ? 1 : (!i || i < 1 ? (i = 1, e = .1) : e = .4 * Math.asin(1 / i) / (2 * Math.PI), (t *= 2) < 1 ? i * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - e) * (2 * Math.PI) / .4) * -.5 : i * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - e) * (2 * Math.PI) / .4) * .5 + 1) + }, + backIn: function(t) { + var e = 1.70158; + return t * t * ((e + 1) * t - e) + }, + backOut: function(t) { + var e = 1.70158; + return --t * t * ((e + 1) * t + e) + 1 + }, + backInOut: function(t) { + var e = 2.5949095; + return (t *= 2) < 1 ? t * t * ((e + 1) * t - e) * .5 : .5 * ((t -= 2) * t * ((e + 1) * t + e) + 2) + }, + bounceIn: function(t) { + return 1 - ww.bounceOut(1 - t) + }, + bounceOut: function(t) { + return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375 + }, + bounceInOut: function(t) { + return t < .5 ? .5 * ww.bounceIn(2 * t) : .5 * ww.bounceOut(2 * t - 1) + .5 + } + }; + Tt.prototype = { + constructor: Tt, + step: function(t, e) { + if (this._initialized || (this._startTime = t + this._delay, this._initialized = !0), this._paused) this._pausedTime += e; + else { + var i = (t - this._startTime - this._pausedTime) / this._life; + if (!(i < 0)) { + i = Math.min(i, 1); + var n = this.easing, + o = "string" == typeof n ? ww[n] : n, + a = "function" == typeof o ? o(i) : i; + return this.fire("frame", a), 1 == i ? this.loop ? (this.restart(t), "restart") : (this._needsRemove = !0, "destroy") : null + } + } + }, + restart: function(t) { + var e = (t - this._startTime - this._pausedTime) % this._life; + this._startTime = t - e + this.gap, this._pausedTime = 0, this._needsRemove = !1 + }, + fire: function(t, e) { + this[t = "on" + t] && this[t](this._target, e) + }, + pause: function() { + this._paused = !0 + }, + resume: function() { + this._paused = !1 + } + }; + var bw = function() { + this.head = null, this.tail = null, this._len = 0 + }, + Sw = bw.prototype; + Sw.insert = function(t) { + var e = new Mw(t); + return this.insertEntry(e), e + }, Sw.insertEntry = function(t) { + this.head ? (this.tail.next = t, t.prev = this.tail, t.next = null, this.tail = t) : this.head = this.tail = t, this._len++ + }, Sw.remove = function(t) { + var e = t.prev, + i = t.next; + e ? e.next = i : this.head = i, i ? i.prev = e : this.tail = e, t.next = t.prev = null, this._len-- + }, Sw.len = function() { + return this._len + }, Sw.clear = function() { + this.head = this.tail = null, this._len = 0 + }; + var Mw = function(t) { + this.value = t, this.next, this.prev + }, + Iw = function(t) { + this._list = new bw, this._map = {}, this._maxSize = t || 10, this._lastRemovedEntry = null + }, + Tw = Iw.prototype; + Tw.put = function(t, e) { + var i = this._list, + n = this._map, + o = null; + if (null == n[t]) { + var a = i.len(), + r = this._lastRemovedEntry; + if (a >= this._maxSize && a > 0) { + var s = i.head; + i.remove(s), delete n[s.key], o = s.value, this._lastRemovedEntry = s + } + r ? r.value = e : r = new Mw(e), r.key = t, i.insertEntry(r), n[t] = r + } + return o + }, Tw.get = function(t) { + var e = this._map[t], + i = this._list; + if (null != e) return e !== i.tail && (i.remove(e), i.insertEntry(e)), e.value + }, Tw.clear = function() { + this._list.clear(), this._map = {} + }; + var Aw = { + transparent: [0, 0, 0, 0], + aliceblue: [240, 248, 255, 1], + antiquewhite: [250, 235, 215, 1], + aqua: [0, 255, 255, 1], + aquamarine: [127, 255, 212, 1], + azure: [240, 255, 255, 1], + beige: [245, 245, 220, 1], + bisque: [255, 228, 196, 1], + black: [0, 0, 0, 1], + blanchedalmond: [255, 235, 205, 1], + blue: [0, 0, 255, 1], + blueviolet: [138, 43, 226, 1], + brown: [165, 42, 42, 1], + burlywood: [222, 184, 135, 1], + cadetblue: [95, 158, 160, 1], + chartreuse: [127, 255, 0, 1], + chocolate: [210, 105, 30, 1], + coral: [255, 127, 80, 1], + cornflowerblue: [100, 149, 237, 1], + cornsilk: [255, 248, 220, 1], + crimson: [220, 20, 60, 1], + cyan: [0, 255, 255, 1], + darkblue: [0, 0, 139, 1], + darkcyan: [0, 139, 139, 1], + darkgoldenrod: [184, 134, 11, 1], + darkgray: [169, 169, 169, 1], + darkgreen: [0, 100, 0, 1], + darkgrey: [169, 169, 169, 1], + darkkhaki: [189, 183, 107, 1], + darkmagenta: [139, 0, 139, 1], + darkolivegreen: [85, 107, 47, 1], + darkorange: [255, 140, 0, 1], + darkorchid: [153, 50, 204, 1], + darkred: [139, 0, 0, 1], + darksalmon: [233, 150, 122, 1], + darkseagreen: [143, 188, 143, 1], + darkslateblue: [72, 61, 139, 1], + darkslategray: [47, 79, 79, 1], + darkslategrey: [47, 79, 79, 1], + darkturquoise: [0, 206, 209, 1], + darkviolet: [148, 0, 211, 1], + deeppink: [255, 20, 147, 1], + deepskyblue: [0, 191, 255, 1], + dimgray: [105, 105, 105, 1], + dimgrey: [105, 105, 105, 1], + dodgerblue: [30, 144, 255, 1], + firebrick: [178, 34, 34, 1], + floralwhite: [255, 250, 240, 1], + forestgreen: [34, 139, 34, 1], + fuchsia: [255, 0, 255, 1], + gainsboro: [220, 220, 220, 1], + ghostwhite: [248, 248, 255, 1], + gold: [255, 215, 0, 1], + goldenrod: [218, 165, 32, 1], + gray: [128, 128, 128, 1], + green: [0, 128, 0, 1], + greenyellow: [173, 255, 47, 1], + grey: [128, 128, 128, 1], + honeydew: [240, 255, 240, 1], + hotpink: [255, 105, 180, 1], + indianred: [205, 92, 92, 1], + indigo: [75, 0, 130, 1], + ivory: [255, 255, 240, 1], + khaki: [240, 230, 140, 1], + lavender: [230, 230, 250, 1], + lavenderblush: [255, 240, 245, 1], + lawngreen: [124, 252, 0, 1], + lemonchiffon: [255, 250, 205, 1], + lightblue: [173, 216, 230, 1], + lightcoral: [240, 128, 128, 1], + lightcyan: [224, 255, 255, 1], + lightgoldenrodyellow: [250, 250, 210, 1], + lightgray: [211, 211, 211, 1], + lightgreen: [144, 238, 144, 1], + lightgrey: [211, 211, 211, 1], + lightpink: [255, 182, 193, 1], + lightsalmon: [255, 160, 122, 1], + lightseagreen: [32, 178, 170, 1], + lightskyblue: [135, 206, 250, 1], + lightslategray: [119, 136, 153, 1], + lightslategrey: [119, 136, 153, 1], + lightsteelblue: [176, 196, 222, 1], + lightyellow: [255, 255, 224, 1], + lime: [0, 255, 0, 1], + limegreen: [50, 205, 50, 1], + linen: [250, 240, 230, 1], + magenta: [255, 0, 255, 1], + maroon: [128, 0, 0, 1], + mediumaquamarine: [102, 205, 170, 1], + mediumblue: [0, 0, 205, 1], + mediumorchid: [186, 85, 211, 1], + mediumpurple: [147, 112, 219, 1], + mediumseagreen: [60, 179, 113, 1], + mediumslateblue: [123, 104, 238, 1], + mediumspringgreen: [0, 250, 154, 1], + mediumturquoise: [72, 209, 204, 1], + mediumvioletred: [199, 21, 133, 1], + midnightblue: [25, 25, 112, 1], + mintcream: [245, 255, 250, 1], + mistyrose: [255, 228, 225, 1], + moccasin: [255, 228, 181, 1], + navajowhite: [255, 222, 173, 1], + navy: [0, 0, 128, 1], + oldlace: [253, 245, 230, 1], + olive: [128, 128, 0, 1], + olivedrab: [107, 142, 35, 1], + orange: [255, 165, 0, 1], + orangered: [255, 69, 0, 1], + orchid: [218, 112, 214, 1], + palegoldenrod: [238, 232, 170, 1], + palegreen: [152, 251, 152, 1], + paleturquoise: [175, 238, 238, 1], + palevioletred: [219, 112, 147, 1], + papayawhip: [255, 239, 213, 1], + peachpuff: [255, 218, 185, 1], + peru: [205, 133, 63, 1], + pink: [255, 192, 203, 1], + plum: [221, 160, 221, 1], + powderblue: [176, 224, 230, 1], + purple: [128, 0, 128, 1], + red: [255, 0, 0, 1], + rosybrown: [188, 143, 143, 1], + royalblue: [65, 105, 225, 1], + saddlebrown: [139, 69, 19, 1], + salmon: [250, 128, 114, 1], + sandybrown: [244, 164, 96, 1], + seagreen: [46, 139, 87, 1], + seashell: [255, 245, 238, 1], + sienna: [160, 82, 45, 1], + silver: [192, 192, 192, 1], + skyblue: [135, 206, 235, 1], + slateblue: [106, 90, 205, 1], + slategray: [112, 128, 144, 1], + slategrey: [112, 128, 144, 1], + snow: [255, 250, 250, 1], + springgreen: [0, 255, 127, 1], + steelblue: [70, 130, 180, 1], + tan: [210, 180, 140, 1], + teal: [0, 128, 128, 1], + thistle: [216, 191, 216, 1], + tomato: [255, 99, 71, 1], + turquoise: [64, 224, 208, 1], + violet: [238, 130, 238, 1], + wheat: [245, 222, 179, 1], + white: [255, 255, 255, 1], + whitesmoke: [245, 245, 245, 1], + yellow: [255, 255, 0, 1], + yellowgreen: [154, 205, 50, 1] + }, + Dw = new Iw(20), + Cw = null, + Lw = Wt, + kw = Ht, + Pw = (Object.freeze || Object)({ + parse: zt, + lift: Gt, + toHex: Ft, + fastLerp: Wt, + fastMapToColor: Lw, + lerp: Ht, + mapToColor: kw, + modifyHSL: Zt, + modifyAlpha: Ut, + stringify: Xt + }), + Nw = Array.prototype.slice, + Ow = function(t, e, i, n) { + this._tracks = {}, this._target = t, this._loop = e || !1, this._getter = i || jt, this._setter = n || Yt, this._clipCount = 0, this._delay = 0, this._doneList = [], this._onframeList = [], this._clipList = [] + }; + Ow.prototype = { + when: function(t, e) { + var i = this._tracks; + for (var n in e) + if (e.hasOwnProperty(n)) { + if (!i[n]) { + i[n] = []; + var o = this._getter(this._target, n); + if (null == o) continue; + 0 !== t && i[n].push({ + time: 0, + value: ie(o) + }) + } + i[n].push({ + time: t, + value: e[n] + }) + } return this + }, + during: function(t) { + return this._onframeList.push(t), this + }, + pause: function() { + for (var t = 0; t < this._clipList.length; t++) this._clipList[t].pause(); + this._paused = !0 + }, + resume: function() { + for (var t = 0; t < this._clipList.length; t++) this._clipList[t].resume(); + this._paused = !1 + }, + isPaused: function() { + return !!this._paused + }, + _doneCallback: function() { + this._tracks = {}, this._clipList.length = 0; + for (var t = this._doneList, e = t.length, i = 0; i < e; i++) t[i].call(this) + }, + start: function(t, e) { + var i, n = this, + o = 0; + for (var a in this._tracks) + if (this._tracks.hasOwnProperty(a)) { + var r = ae(this, t, function() { + --o || n._doneCallback() + }, this._tracks[a], a, e); + r && (this._clipList.push(r), o++, this.animation && this.animation.addClip(r), i = r) + } if (i) { + var s = i.onframe; + i.onframe = function(t, e) { + s(t, e); + for (var i = 0; i < n._onframeList.length; i++) n._onframeList[i](t, e) + } + } + return o || this._doneCallback(), this + }, + stop: function(t) { + for (var e = this._clipList, i = this.animation, n = 0; n < e.length; n++) { + var o = e[n]; + t && o.onframe(this._target, 1), i && i.removeClip(o) + } + e.length = 0 + }, + delay: function(t) { + return this._delay = t, this + }, + done: function(t) { + return t && this._doneList.push(t), this + }, + getClips: function() { + return this._clipList + } + }; + var Ew = 1; + "undefined" != typeof window && (Ew = Math.max(window.devicePixelRatio || 1, 1)); + var Rw = Ew, + zw = function() {}, + Bw = zw, + Vw = function() { + this.animators = [] + }; + Vw.prototype = { + constructor: Vw, + animate: function(t, e) { + var i, n = !1, + o = this, + a = this.__zr; + if (t) { + var r = t.split("."), + s = o; + n = "shape" === r[0]; + for (var u = 0, h = r.length; u < h; u++) s && (s = s[r[u]]); + s && (i = s) + } else i = o; + if (i) { + var c = o.animators, + d = new Ow(i, e); + return d.during(function(t) { + o.dirty(n) + }).done(function() { + c.splice(l(c, d), 1) + }), c.push(d), a && a.animation.addAnimator(d), d + } + Bw('Property "' + t + '" is not existed in element ' + o.id) + }, + stopAnimation: function(t) { + for (var e = this.animators, i = e.length, n = 0; n < i; n++) e[n].stop(t); + return e.length = 0, this + }, + animateTo: function(t, e, i, n, o, a) { + re(this, t, e, i, n, o, a) + }, + animateFrom: function(t, e, i, n, o, a) { + re(this, t, e, i, n, o, a, !0) + } + }; + var Gw = function(t) { + mw.call(this, t), aw.call(this, t), Vw.call(this, t), this.id = t.id || E_() + }; + Gw.prototype = { + type: "element", + name: "", + __zr: null, + ignore: !1, + clipPath: null, + isGroup: !1, + drift: function(t, e) { + switch (this.draggable) { + case "horizontal": + e = 0; + break; + case "vertical": + t = 0 + } + var i = this.transform; + i || (i = this.transform = [1, 0, 0, 1, 0, 0]), i[4] += t, i[5] += e, this.decomposeTransform(), this.dirty(!1) + }, + beforeUpdate: function() {}, + afterUpdate: function() {}, + update: function() { + this.updateTransform() + }, + traverse: function(t, e) {}, + attrKV: function(t, e) { + if ("position" === t || "scale" === t || "origin" === t) { + if (e) { + var i = this[t]; + i || (i = this[t] = []), i[0] = e[0], i[1] = e[1] + } + } else this[t] = e + }, + hide: function() { + this.ignore = !0, this.__zr && this.__zr.refresh() + }, + show: function() { + this.ignore = !1, this.__zr && this.__zr.refresh() + }, + attr: function(t, e) { + if ("string" == typeof t) this.attrKV(t, e); + else if (w(t)) + for (var i in t) t.hasOwnProperty(i) && this.attrKV(i, t[i]); + return this.dirty(!1), this + }, + setClipPath: function(t) { + var e = this.__zr; + e && t.addSelfToZr(e), this.clipPath && this.clipPath !== t && this.removeClipPath(), this.clipPath = t, t.__zr = e, t.__clipTarget = this, this.dirty(!1) + }, + removeClipPath: function() { + var t = this.clipPath; + t && (t.__zr && t.removeSelfFromZr(t.__zr), t.__zr = null, t.__clipTarget = null, this.clipPath = null, this.dirty(!1)) + }, + addSelfToZr: function(t) { + this.__zr = t; + var e = this.animators; + if (e) + for (var i = 0; i < e.length; i++) t.animation.addAnimator(e[i]); + this.clipPath && this.clipPath.addSelfToZr(t) + }, + removeSelfFromZr: function(t) { + this.__zr = null; + var e = this.animators; + if (e) + for (var i = 0; i < e.length; i++) t.animation.removeAnimator(e[i]); + this.clipPath && this.clipPath.removeSelfFromZr(t) + } + }, h(Gw, Vw), h(Gw, mw), h(Gw, aw); + var Fw = Q, + Ww = Math.min, + Hw = Math.max; + ue.prototype = { + constructor: ue, + union: function(t) { + var e = Ww(t.x, this.x), + i = Ww(t.y, this.y); + this.width = Hw(t.x + t.width, this.x + this.width) - e, this.height = Hw(t.y + t.height, this.y + this.height) - i, this.x = e, this.y = i + }, + applyTransform: function() { + var t = [], + e = [], + i = [], + n = []; + return function(o) { + if (o) { + t[0] = i[0] = this.x, t[1] = n[1] = this.y, e[0] = n[0] = this.x + this.width, e[1] = i[1] = this.y + this.height, Fw(t, t, o), Fw(e, e, o), Fw(i, i, o), Fw(n, n, o), this.x = Ww(t[0], e[0], i[0], n[0]), this.y = Ww(t[1], e[1], i[1], n[1]); + var a = Hw(t[0], e[0], i[0], n[0]), + r = Hw(t[1], e[1], i[1], n[1]); + this.width = a - this.x, this.height = r - this.y + } + } + }(), + calculateTransform: function(t) { + var e = this, + i = t.width / e.width, + n = t.height / e.height, + o = mt(); + return _t(o, o, [-e.x, -e.y]), bt(o, o, [i, n]), _t(o, o, [t.x, t.y]), o + }, + intersect: function(t) { + if (!t) return !1; + t instanceof ue || (t = ue.create(t)); + var e = this, + i = e.x, + n = e.x + e.width, + o = e.y, + a = e.y + e.height, + r = t.x, + s = t.x + t.width, + l = t.y, + u = t.y + t.height; + return !(n < r || s < i || a < l || u < o) + }, + contain: function(t, e) { + var i = this; + return t >= i.x && t <= i.x + i.width && e >= i.y && e <= i.y + i.height + }, + clone: function() { + return new ue(this.x, this.y, this.width, this.height) + }, + copy: function(t) { + this.x = t.x, this.y = t.y, this.width = t.width, this.height = t.height + }, + plain: function() { + return { + x: this.x, + y: this.y, + width: this.width, + height: this.height + } + } + }, ue.create = function(t) { + return new ue(t.x, t.y, t.width, t.height) + }; + var Zw = function(t) { + t = t || {}, Gw.call(this, t); + for (var e in t) t.hasOwnProperty(e) && (this[e] = t[e]); + this._children = [], this.__storage = null, this.__dirty = !0 + }; + Zw.prototype = { + constructor: Zw, + isGroup: !0, + type: "group", + silent: !1, + children: function() { + return this._children.slice() + }, + childAt: function(t) { + return this._children[t] + }, + childOfName: function(t) { + for (var e = this._children, i = 0; i < e.length; i++) + if (e[i].name === t) return e[i] + }, + childCount: function() { + return this._children.length + }, + add: function(t) { + return t && t !== this && t.parent !== this && (this._children.push(t), this._doAdd(t)), this + }, + addBefore: function(t, e) { + if (t && t !== this && t.parent !== this && e && e.parent === this) { + var i = this._children, + n = i.indexOf(e); + n >= 0 && (i.splice(n, 0, t), this._doAdd(t)) + } + return this + }, + _doAdd: function(t) { + t.parent && t.parent.remove(t), t.parent = this; + var e = this.__storage, + i = this.__zr; + e && e !== t.__storage && (e.addToStorage(t), t instanceof Zw && t.addChildrenToStorage(e)), i && i.refresh() + }, + remove: function(t) { + var e = this.__zr, + i = this.__storage, + n = this._children, + o = l(n, t); + return o < 0 ? this : (n.splice(o, 1), t.parent = null, i && (i.delFromStorage(t), t instanceof Zw && t.delChildrenFromStorage(i)), e && e.refresh(), this) + }, + removeAll: function() { + var t, e, i = this._children, + n = this.__storage; + for (e = 0; e < i.length; e++) t = i[e], n && (n.delFromStorage(t), t instanceof Zw && t.delChildrenFromStorage(n)), t.parent = null; + return i.length = 0, this + }, + eachChild: function(t, e) { + for (var i = this._children, n = 0; n < i.length; n++) { + var o = i[n]; + t.call(e, o, n) + } + return this + }, + traverse: function(t, e) { + for (var i = 0; i < this._children.length; i++) { + var n = this._children[i]; + t.call(e, n), "group" === n.type && n.traverse(t, e) + } + return this + }, + addChildrenToStorage: function(t) { + for (var e = 0; e < this._children.length; e++) { + var i = this._children[e]; + t.addToStorage(i), i instanceof Zw && i.addChildrenToStorage(t) + } + }, + delChildrenFromStorage: function(t) { + for (var e = 0; e < this._children.length; e++) { + var i = this._children[e]; + t.delFromStorage(i), i instanceof Zw && i.delChildrenFromStorage(t) + } + }, + dirty: function() { + return this.__dirty = !0, this.__zr && this.__zr.refresh(), this + }, + getBoundingRect: function(t) { + for (var e = null, i = new ue(0, 0, 0, 0), n = t || this._children, o = [], a = 0; a < n.length; a++) { + var r = n[a]; + if (!r.ignore && !r.invisible) { + var s = r.getBoundingRect(), + l = r.getLocalTransform(o); + l ? (i.copy(s), i.applyTransform(l), (e = e || i.clone()).union(i)) : (e = e || s.clone()).union(s) + } + } + return e || i + } + }, u(Zw, Gw); + var Uw = 32, + Xw = 7, + jw = function() { + this._roots = [], this._displayList = [], this._displayListLen = 0 + }; + jw.prototype = { + constructor: jw, + traverse: function(t, e) { + for (var i = 0; i < this._roots.length; i++) this._roots[i].traverse(t, e) + }, + getDisplayList: function(t, e) { + return e = e || !1, t && this.updateDisplayList(e), this._displayList + }, + updateDisplayList: function(t) { + this._displayListLen = 0; + for (var e = this._roots, i = this._displayList, n = 0, o = e.length; n < o; n++) this._updateAndAddDisplayable(e[n], null, t); + i.length = this._displayListLen, z_.canvasSupported && ve(i, ye) + }, + _updateAndAddDisplayable: function(t, e, i) { + if (!t.ignore || i) { + t.beforeUpdate(), t.__dirty && t.update(), t.afterUpdate(); + var n = t.clipPath; + if (n) { + e = e ? e.slice() : []; + for (var o = n, a = t; o;) o.parent = a, o.updateTransform(), e.push(o), a = o, o = o.clipPath + } + if (t.isGroup) { + for (var r = t._children, s = 0; s < r.length; s++) { + var l = r[s]; + t.__dirty && (l.__dirty = !0), this._updateAndAddDisplayable(l, e, i) + } + t.__dirty = !1 + } else t.__clipPaths = e, this._displayList[this._displayListLen++] = t + } + }, + addRoot: function(t) { + t.__storage !== this && (t instanceof Zw && t.addChildrenToStorage(this), this.addToStorage(t), this._roots.push(t)) + }, + delRoot: function(t) { + if (null == t) { + for (i = 0; i < this._roots.length; i++) { + var e = this._roots[i]; + e instanceof Zw && e.delChildrenFromStorage(this) + } + return this._roots = [], this._displayList = [], void(this._displayListLen = 0) + } + if (t instanceof Array) + for (var i = 0, n = t.length; i < n; i++) this.delRoot(t[i]); + else { + var o = l(this._roots, t); + o >= 0 && (this.delFromStorage(t), this._roots.splice(o, 1), t instanceof Zw && t.delChildrenFromStorage(this)) + } + }, + addToStorage: function(t) { + return t && (t.__storage = this, t.dirty(!1)), this + }, + delFromStorage: function(t) { + return t && (t.__storage = null), this + }, + dispose: function() { + this._renderList = this._roots = null + }, + displayableSortFunc: ye + }; + var Yw = { + shadowBlur: 1, + shadowOffsetX: 1, + shadowOffsetY: 1, + textShadowBlur: 1, + textShadowOffsetX: 1, + textShadowOffsetY: 1, + textBoxShadowBlur: 1, + textBoxShadowOffsetX: 1, + textBoxShadowOffsetY: 1 + }, + qw = function(t, e, i) { + return Yw.hasOwnProperty(e) ? i *= t.dpr : i + }, + Kw = [ + ["shadowBlur", 0], + ["shadowOffsetX", 0], + ["shadowOffsetY", 0], + ["shadowColor", "#000"], + ["lineCap", "butt"], + ["lineJoin", "miter"], + ["miterLimit", 10] + ], + $w = function(t) { + this.extendFrom(t, !1) + }; + $w.prototype = { + constructor: $w, + fill: "#000", + stroke: null, + opacity: 1, + fillOpacity: null, + strokeOpacity: null, + lineDash: null, + lineDashOffset: 0, + shadowBlur: 0, + shadowOffsetX: 0, + shadowOffsetY: 0, + lineWidth: 1, + strokeNoScale: !1, + text: null, + font: null, + textFont: null, + fontStyle: null, + fontWeight: null, + fontSize: null, + fontFamily: null, + textTag: null, + textFill: "#000", + textStroke: null, + textWidth: null, + textHeight: null, + textStrokeWidth: 0, + textLineHeight: null, + textPosition: "inside", + textRect: null, + textOffset: null, + textAlign: null, + textVerticalAlign: null, + textDistance: 5, + textShadowColor: "transparent", + textShadowBlur: 0, + textShadowOffsetX: 0, + textShadowOffsetY: 0, + textBoxShadowColor: "transparent", + textBoxShadowBlur: 0, + textBoxShadowOffsetX: 0, + textBoxShadowOffsetY: 0, + transformText: !1, + textRotation: 0, + textOrigin: null, + textBackgroundColor: null, + textBorderColor: null, + textBorderWidth: 0, + textBorderRadius: 0, + textPadding: null, + rich: null, + truncate: null, + blend: null, + bind: function(t, e, i) { + for (var n = this, o = i && i.style, a = !o, r = 0; r < Kw.length; r++) { + var s = Kw[r], + l = s[0]; + (a || n[l] !== o[l]) && (t[l] = qw(t, l, n[l] || s[1])) + } + if ((a || n.fill !== o.fill) && (t.fillStyle = n.fill), (a || n.stroke !== o.stroke) && (t.strokeStyle = n.stroke), (a || n.opacity !== o.opacity) && (t.globalAlpha = null == n.opacity ? 1 : n.opacity), (a || n.blend !== o.blend) && (t.globalCompositeOperation = n.blend || "source-over"), this.hasStroke()) { + var u = n.lineWidth; + t.lineWidth = u / (this.strokeNoScale && e && e.getLineScale ? e.getLineScale() : 1) + } + }, + hasFill: function() { + var t = this.fill; + return null != t && "none" !== t + }, + hasStroke: function() { + var t = this.stroke; + return null != t && "none" !== t && this.lineWidth > 0 + }, + extendFrom: function(t, e) { + if (t) + for (var i in t) !t.hasOwnProperty(i) || !0 !== e && (!1 === e ? this.hasOwnProperty(i) : null == t[i]) || (this[i] = t[i]) + }, + set: function(t, e) { + "string" == typeof t ? this[t] = e : this.extendFrom(t, !0) + }, + clone: function() { + var t = new this.constructor; + return t.extendFrom(this, !0), t + }, + getGradient: function(t, e, i) { + for (var n = ("radial" === e.type ? _e : xe)(t, e, i), o = e.colorStops, a = 0; a < o.length; a++) n.addColorStop(o[a].offset, o[a].color); + return n + } + }; + for (var Jw = $w.prototype, Qw = 0; Qw < Kw.length; Qw++) { + var tb = Kw[Qw]; + tb[0] in Jw || (Jw[tb[0]] = tb[1]) + } + $w.getGradient = Jw.getGradient; + var eb = function(t, e) { + this.image = t, this.repeat = e, this.type = "pattern" + }; + eb.prototype.getCanvasPattern = function(t) { + return t.createPattern(this.image, this.repeat || "repeat") + }; + var ib = function(t, e, i) { + var n; + i = i || Rw, "string" == typeof t ? n = be(t, e, i) : w(t) && (t = (n = t).id), this.id = t, this.dom = n; + var o = n.style; + o && (n.onselectstart = we, o["-webkit-user-select"] = "none", o["user-select"] = "none", o["-webkit-touch-callout"] = "none", o["-webkit-tap-highlight-color"] = "rgba(0,0,0,0)", o.padding = 0, o.margin = 0, o["border-width"] = 0), this.domBack = null, this.ctxBack = null, this.painter = e, this.config = null, this.clearColor = 0, this.motionBlur = !1, this.lastFrameAlpha = .7, this.dpr = i + }; + ib.prototype = { + constructor: ib, + __dirty: !0, + __used: !1, + __drawIndex: 0, + __startIndex: 0, + __endIndex: 0, + incremental: !1, + getElementCount: function() { + return this.__endIndex - this.__startIndex + }, + initContext: function() { + this.ctx = this.dom.getContext("2d"), this.ctx.dpr = this.dpr + }, + createBackBuffer: function() { + var t = this.dpr; + this.domBack = be("back-" + this.id, this.painter, t), this.ctxBack = this.domBack.getContext("2d"), 1 != t && this.ctxBack.scale(t, t) + }, + resize: function(t, e) { + var i = this.dpr, + n = this.dom, + o = n.style, + a = this.domBack; + o && (o.width = t + "px", o.height = e + "px"), n.width = t * i, n.height = e * i, a && (a.width = t * i, a.height = e * i, 1 != i && this.ctxBack.scale(i, i)) + }, + clear: function(t, e) { + var i = this.dom, + n = this.ctx, + o = i.width, + a = i.height, + e = e || this.clearColor, + r = this.motionBlur && !t, + s = this.lastFrameAlpha, + l = this.dpr; + if (r && (this.domBack || this.createBackBuffer(), this.ctxBack.globalCompositeOperation = "copy", this.ctxBack.drawImage(i, 0, 0, o / l, a / l)), n.clearRect(0, 0, o, a), e && "transparent" !== e) { + var u; + e.colorStops ? (u = e.__canvasGradient || $w.getGradient(n, e, { + x: 0, + y: 0, + width: o, + height: a + }), e.__canvasGradient = u) : e.image && (u = eb.prototype.getCanvasPattern.call(e, n)), n.save(), n.fillStyle = u || e, n.fillRect(0, 0, o, a), n.restore() + } + if (r) { + var h = this.domBack; + n.save(), n.globalAlpha = s, n.drawImage(h, 0, 0, o, a), n.restore() + } + } + }; + var nb = "undefined" != typeof window && (window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window) || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame) || function(t) { + setTimeout(t, 16) + }, + ob = new Iw(50), + ab = {}, + rb = 0, + sb = 5e3, + lb = /\{([a-zA-Z0-9_]+)\|([^}]*)\}/g, + ub = "12px sans-serif", + hb = {}; + hb.measureText = function(t, e) { + var i = s(); + return i.font = e || ub, i.measureText(t) + }; + var cb = { + left: 1, + right: 1, + center: 1 + }, + db = { + top: 1, + bottom: 1, + middle: 1 + }, + fb = [ + ["textShadowBlur", "shadowBlur", 0], + ["textShadowOffsetX", "shadowOffsetX", 0], + ["textShadowOffsetY", "shadowOffsetY", 0], + ["textShadowColor", "shadowColor", "transparent"] + ], + pb = new ue, + gb = function() {}; + gb.prototype = { + constructor: gb, + drawRectText: function(t, e) { + var i = this.style; + e = i.textRect || e, this.__dirty && Ue(i); + var n = i.text; + if (null != n && (n += ""), li(n, i)) { + t.save(); + var o = this.transform; + i.transformText ? this.setTransform(t) : o && (pb.copy(e), pb.applyTransform(o), e = pb), je(this, t, n, i, e), t.restore() + } + } + }, ui.prototype = { + constructor: ui, + type: "displayable", + __dirty: !0, + invisible: !1, + z: 0, + z2: 0, + zlevel: 0, + draggable: !1, + dragging: !1, + silent: !1, + culling: !1, + cursor: "pointer", + rectHover: !1, + progressive: !1, + incremental: !1, + globalScaleRatio: 1, + beforeBrush: function(t) {}, + afterBrush: function(t) {}, + brush: function(t, e) {}, + getBoundingRect: function() {}, + contain: function(t, e) { + return this.rectContain(t, e) + }, + traverse: function(t, e) { + t.call(e, this) + }, + rectContain: function(t, e) { + var i = this.transformCoordToLocal(t, e); + return this.getBoundingRect().contain(i[0], i[1]) + }, + dirty: function() { + this.__dirty = this.__dirtyText = !0, this._rect = null, this.__zr && this.__zr.refresh() + }, + animateStyle: function(t) { + return this.animate("style", t) + }, + attrKV: function(t, e) { + "style" !== t ? Gw.prototype.attrKV.call(this, t, e) : this.style.set(e) + }, + setStyle: function(t, e) { + return this.style.set(t, e), this.dirty(!1), this + }, + useStyle: function(t) { + return this.style = new $w(t, this), this.dirty(!1), this + } + }, u(ui, Gw), h(ui, gb), hi.prototype = { + constructor: hi, + type: "image", + brush: function(t, e) { + var i = this.style, + n = i.image; + i.bind(t, this, e); + var o = this._image = Me(n, this._image, this, this.onload); + if (o && Te(o)) { + var a = i.x || 0, + r = i.y || 0, + s = i.width, + l = i.height, + u = o.width / o.height; + if (null == s && null != l ? s = l * u : null == l && null != s ? l = s / u : null == s && null == l && (s = o.width, l = o.height), this.setTransform(t), i.sWidth && i.sHeight) { + var h = i.sx || 0, + c = i.sy || 0; + t.drawImage(o, h, c, i.sWidth, i.sHeight, a, r, s, l) + } else if (i.sx && i.sy) { + var d = s - (h = i.sx), + f = l - (c = i.sy); + t.drawImage(o, h, c, d, f, a, r, s, l) + } else t.drawImage(o, a, r, s, l); + null != i.text && (this.restoreTransform(t), this.drawRectText(t, this.getBoundingRect())) + } + }, + getBoundingRect: function() { + var t = this.style; + return this._rect || (this._rect = new ue(t.x || 0, t.y || 0, t.width || 0, t.height || 0)), this._rect + } + }, u(hi, ui); + var mb = new ue(0, 0, 0, 0), + vb = new ue(0, 0, 0, 0), + yb = function(t, e, i) { + this.type = "canvas"; + var n = !t.nodeName || "CANVAS" === t.nodeName.toUpperCase(); + this._opts = i = a({}, i || {}), this.dpr = i.devicePixelRatio || Rw, this._singleCanvas = n, this.root = t; + var o = t.style; + o && (o["-webkit-tap-highlight-color"] = "transparent", o["-webkit-user-select"] = o["user-select"] = o["-webkit-touch-callout"] = "none", t.innerHTML = ""), this.storage = e; + var r = this._zlevelList = [], + s = this._layers = {}; + if (this._layerConfig = {}, this._needsManuallyCompositing = !1, n) { + var l = t.width, + u = t.height; + null != i.width && (l = i.width), null != i.height && (u = i.height), this.dpr = i.devicePixelRatio || 1, t.width = l * this.dpr, t.height = u * this.dpr, this._width = l, this._height = u; + var h = new ib(t, this, this.dpr); + h.__builtin__ = !0, h.initContext(), s[314159] = h, h.zlevel = 314159, r.push(314159), this._domRoot = t + } else { + this._width = this._getSize(0), this._height = this._getSize(1); + var c = this._domRoot = mi(this._width, this._height); + t.appendChild(c) + } + this._hoverlayer = null, this._hoverElements = [] + }; + yb.prototype = { + constructor: yb, + getType: function() { + return "canvas" + }, + isSingleCanvas: function() { + return this._singleCanvas + }, + getViewportRoot: function() { + return this._domRoot + }, + getViewportRootOffset: function() { + var t = this.getViewportRoot(); + if (t) return { + offsetLeft: t.offsetLeft || 0, + offsetTop: t.offsetTop || 0 + } + }, + refresh: function(t) { + var e = this.storage.getDisplayList(!0), + i = this._zlevelList; + this._redrawId = Math.random(), this._paintList(e, t, this._redrawId); + for (var n = 0; n < i.length; n++) { + var o = i[n], + a = this._layers[o]; + if (!a.__builtin__ && a.refresh) { + var r = 0 === n ? this._backgroundColor : null; + a.refresh(r) + } + } + return this.refreshHover(), this + }, + addHover: function(t, e) { + if (!t.__hoverMir) { + var i = new t.constructor({ + style: t.style, + shape: t.shape, + z: t.z, + z2: t.z2, + silent: t.silent + }); + return i.__from = t, t.__hoverMir = i, e && i.setStyle(e), this._hoverElements.push(i), i + } + }, + removeHover: function(t) { + var e = t.__hoverMir, + i = this._hoverElements, + n = l(i, e); + n >= 0 && i.splice(n, 1), t.__hoverMir = null + }, + clearHover: function(t) { + for (var e = this._hoverElements, i = 0; i < e.length; i++) { + var n = e[i].__from; + n && (n.__hoverMir = null) + } + e.length = 0 + }, + refreshHover: function() { + var t = this._hoverElements, + e = t.length, + i = this._hoverlayer; + if (i && i.clear(), e) { + ve(t, this.storage.displayableSortFunc), i || (i = this._hoverlayer = this.getLayer(1e5)); + var n = {}; + i.ctx.save(); + for (var o = 0; o < e;) { + var a = t[o], + r = a.__from; + r && r.__zr ? (o++, r.invisible || (a.transform = r.transform, a.invTransform = r.invTransform, a.__clipPaths = r.__clipPaths, this._doPaintEl(a, i, !0, n))) : (t.splice(o, 1), r.__hoverMir = null, e--) + } + i.ctx.restore() + } + }, + getHoverLayer: function() { + return this.getLayer(1e5) + }, + _paintList: function(t, e, i) { + if (this._redrawId === i) { + e = e || !1, this._updateLayerStatus(t); + var n = this._doPaintList(t, e); + if (this._needsManuallyCompositing && this._compositeManually(), !n) { + var o = this; + nb(function() { + o._paintList(t, e, i) + }) + } + } + }, + _compositeManually: function() { + var t = this.getLayer(314159).ctx, + e = this._domRoot.width, + i = this._domRoot.height; + t.clearRect(0, 0, e, i), this.eachBuiltinLayer(function(n) { + n.virtual && t.drawImage(n.dom, 0, 0, e, i) + }) + }, + _doPaintList: function(t, e) { + for (var i = [], n = 0; n < this._zlevelList.length; n++) { + var o = this._zlevelList[n]; + (s = this._layers[o]).__builtin__ && s !== this._hoverlayer && (s.__dirty || e) && i.push(s) + } + for (var a = !0, r = 0; r < i.length; r++) { + var s = i[r], + l = s.ctx, + u = {}; + l.save(); + var h = e ? s.__startIndex : s.__drawIndex, + c = !e && s.incremental && Date.now, + f = c && Date.now(), + p = s.zlevel === this._zlevelList[0] ? this._backgroundColor : null; + if (s.__startIndex === s.__endIndex) s.clear(!1, p); + else if (h === s.__startIndex) { + var g = t[h]; + g.incremental && g.notClear && !e || s.clear(!1, p) + } - 1 === h && (console.error("For some unknown reason. drawIndex is -1"), h = s.__startIndex); + for (var m = h; m < s.__endIndex; m++) { + var v = t[m]; + if (this._doPaintEl(v, s, e, u), v.__dirty = v.__dirtyText = !1, c && Date.now() - f > 15) break + } + s.__drawIndex = m, s.__drawIndex < s.__endIndex && (a = !1), u.prevElClipPaths && l.restore(), l.restore() + } + return z_.wxa && d(this._layers, function(t) { + t && t.ctx && t.ctx.draw && t.ctx.draw() + }), a + }, + _doPaintEl: function(t, e, i, n) { + var o = e.ctx, + a = t.transform; + if ((e.__dirty || i) && !t.invisible && 0 !== t.style.opacity && (!a || a[0] || a[3]) && (!t.culling || !fi(t, this._width, this._height))) { + var r = t.__clipPaths; + n.prevElClipPaths && !pi(r, n.prevElClipPaths) || (n.prevElClipPaths && (e.ctx.restore(), n.prevElClipPaths = null, n.prevEl = null), r && (o.save(), gi(r, o), n.prevElClipPaths = r)), t.beforeBrush && t.beforeBrush(o), t.brush(o, n.prevEl || null), n.prevEl = t, t.afterBrush && t.afterBrush(o) + } + }, + getLayer: function(t, e) { + this._singleCanvas && !this._needsManuallyCompositing && (t = 314159); + var i = this._layers[t]; + return i || ((i = new ib("zr_" + t, this, this.dpr)).zlevel = t, i.__builtin__ = !0, this._layerConfig[t] && n(i, this._layerConfig[t], !0), e && (i.virtual = e), this.insertLayer(t, i), i.initContext()), i + }, + insertLayer: function(t, e) { + var i = this._layers, + n = this._zlevelList, + o = n.length, + a = null, + r = -1, + s = this._domRoot; + if (i[t]) Bw("ZLevel " + t + " has been used already"); + else if (di(e)) { + if (o > 0 && t > n[0]) { + for (r = 0; r < o - 1 && !(n[r] < t && n[r + 1] > t); r++); + a = i[n[r]] + } + if (n.splice(r + 1, 0, t), i[t] = e, !e.virtual) + if (a) { + var l = a.dom; + l.nextSibling ? s.insertBefore(e.dom, l.nextSibling) : s.appendChild(e.dom) + } else s.firstChild ? s.insertBefore(e.dom, s.firstChild) : s.appendChild(e.dom) + } else Bw("Layer of zlevel " + t + " is not valid") + }, + eachLayer: function(t, e) { + var i, n, o = this._zlevelList; + for (n = 0; n < o.length; n++) i = o[n], t.call(e, this._layers[i], i) + }, + eachBuiltinLayer: function(t, e) { + var i, n, o, a = this._zlevelList; + for (o = 0; o < a.length; o++) n = a[o], (i = this._layers[n]).__builtin__ && t.call(e, i, n) + }, + eachOtherLayer: function(t, e) { + var i, n, o, a = this._zlevelList; + for (o = 0; o < a.length; o++) n = a[o], (i = this._layers[n]).__builtin__ || t.call(e, i, n) + }, + getLayers: function() { + return this._layers + }, + _updateLayerStatus: function(t) { + function e(t) { + i && (i.__endIndex !== t && (i.__dirty = !0), i.__endIndex = t) + } + if (this.eachBuiltinLayer(function(t, e) { + t.__dirty = t.__used = !1 + }), this._singleCanvas) + for (o = 1; o < t.length; o++) + if ((r = t[o]).zlevel !== t[o - 1].zlevel || r.incremental) { + this._needsManuallyCompositing = !0; + break + } for (var i = null, n = 0, o = 0; o < t.length; o++) { + var a, r = t[o], + s = r.zlevel; + r.incremental ? ((a = this.getLayer(s + .001, this._needsManuallyCompositing)).incremental = !0, n = 1) : a = this.getLayer(s + (n > 0 ? .01 : 0), this._needsManuallyCompositing), a.__builtin__ || Bw("ZLevel " + s + " has been used by unkown layer " + a.id), a !== i && (a.__used = !0, a.__startIndex !== o && (a.__dirty = !0), a.__startIndex = o, a.incremental ? a.__drawIndex = -1 : a.__drawIndex = o, e(o), i = a), r.__dirty && (a.__dirty = !0, a.incremental && a.__drawIndex < 0 && (a.__drawIndex = o)) + } + e(o), this.eachBuiltinLayer(function(t, e) { + !t.__used && t.getElementCount() > 0 && (t.__dirty = !0, t.__startIndex = t.__endIndex = t.__drawIndex = 0), t.__dirty && t.__drawIndex < 0 && (t.__drawIndex = t.__startIndex) + }) + }, + clear: function() { + return this.eachBuiltinLayer(this._clearLayer), this + }, + _clearLayer: function(t) { + t.clear() + }, + setBackgroundColor: function(t) { + this._backgroundColor = t + }, + configLayer: function(t, e) { + if (e) { + var i = this._layerConfig; + i[t] ? n(i[t], e, !0) : i[t] = e; + for (var o = 0; o < this._zlevelList.length; o++) { + var a = this._zlevelList[o]; + a !== t && a !== t + .01 || n(this._layers[a], i[t], !0) + } + } + }, + delLayer: function(t) { + var e = this._layers, + i = this._zlevelList, + n = e[t]; + n && (n.dom.parentNode.removeChild(n.dom), delete e[t], i.splice(l(i, t), 1)) + }, + resize: function(t, e) { + if (this._domRoot.style) { + var i = this._domRoot; + i.style.display = "none"; + var n = this._opts; + if (null != t && (n.width = t), null != e && (n.height = e), t = this._getSize(0), e = this._getSize(1), i.style.display = "", this._width != t || e != this._height) { + i.style.width = t + "px", i.style.height = e + "px"; + for (var o in this._layers) this._layers.hasOwnProperty(o) && this._layers[o].resize(t, e); + d(this._progressiveLayers, function(i) { + i.resize(t, e) + }), this.refresh(!0) + } + this._width = t, this._height = e + } else { + if (null == t || null == e) return; + this._width = t, this._height = e, this.getLayer(314159).resize(t, e) + } + return this + }, + clearLayer: function(t) { + var e = this._layers[t]; + e && e.clear() + }, + dispose: function() { + this.root.innerHTML = "", this.root = this.storage = this._domRoot = this._layers = null + }, + getRenderedCanvas: function(t) { + if (t = t || {}, this._singleCanvas && !this._compositeManually) return this._layers[314159].dom; + var e = new ib("image", this, t.pixelRatio || this.dpr); + if (e.initContext(), e.clear(!1, t.backgroundColor || this._backgroundColor), t.pixelRatio <= this.dpr) { + this.refresh(); + var i = e.dom.width, + n = e.dom.height, + o = e.ctx; + this.eachLayer(function(t) { + t.__builtin__ ? o.drawImage(t.dom, 0, 0, i, n) : t.renderToCanvas && (e.ctx.save(), t.renderToCanvas(e.ctx), e.ctx.restore()) + }) + } else + for (var a = {}, r = this.storage.getDisplayList(!0), s = 0; s < r.length; s++) { + var l = r[s]; + this._doPaintEl(l, e, !0, a) + } + return e.dom + }, + getWidth: function() { + return this._width + }, + getHeight: function() { + return this._height + }, + _getSize: function(t) { + var e = this._opts, + i = ["width", "height"][t], + n = ["clientWidth", "clientHeight"][t], + o = ["paddingLeft", "paddingTop"][t], + a = ["paddingRight", "paddingBottom"][t]; + if (null != e[i] && "auto" !== e[i]) return parseFloat(e[i]); + var r = this.root, + s = document.defaultView.getComputedStyle(r); + return (r[n] || ci(s[i]) || ci(r.style[i])) - (ci(s[o]) || 0) - (ci(s[a]) || 0) | 0 + }, + pathToImage: function(t, e) { + e = e || this.dpr; + var i = document.createElement("canvas"), + n = i.getContext("2d"), + o = t.getBoundingRect(), + a = t.style, + r = a.shadowBlur * e, + s = a.shadowOffsetX * e, + l = a.shadowOffsetY * e, + u = a.hasStroke() ? a.lineWidth : 0, + h = Math.max(u / 2, -s + r), + c = Math.max(u / 2, s + r), + d = Math.max(u / 2, -l + r), + f = Math.max(u / 2, l + r), + p = o.width + h + c, + g = o.height + d + f; + i.width = p * e, i.height = g * e, n.scale(e, e), n.clearRect(0, 0, p, g), n.dpr = e; + var m = { + position: t.position, + rotation: t.rotation, + scale: t.scale + }; + t.position = [h - o.x, d - o.y], t.rotation = 0, t.scale = [1, 1], t.updateTransform(), t && t.brush(n); + var v = new hi({ + style: { + x: 0, + y: 0, + image: i + } + }); + return null != m.position && (v.position = t.position = m.position), null != m.rotation && (v.rotation = t.rotation = m.rotation), null != m.scale && (v.scale = t.scale = m.scale), v + } + }; + var xb = function(t) { + t = t || {}, this.stage = t.stage || {}, this.onframe = t.onframe || function() {}, this._clips = [], this._running = !1, this._time, this._pausedTime, this._pauseStart, this._paused = !1, aw.call(this) + }; + xb.prototype = { + constructor: xb, + addClip: function(t) { + this._clips.push(t) + }, + addAnimator: function(t) { + t.animation = this; + for (var e = t.getClips(), i = 0; i < e.length; i++) this.addClip(e[i]) + }, + removeClip: function(t) { + var e = l(this._clips, t); + e >= 0 && this._clips.splice(e, 1) + }, + removeAnimator: function(t) { + for (var e = t.getClips(), i = 0; i < e.length; i++) this.removeClip(e[i]); + t.animation = null + }, + _update: function() { + for (var t = (new Date).getTime() - this._pausedTime, e = t - this._time, i = this._clips, n = i.length, o = [], a = [], r = 0; r < n; r++) { + var s = i[r], + l = s.step(t, e); + l && (o.push(l), a.push(s)) + } + for (r = 0; r < n;) i[r]._needsRemove ? (i[r] = i[n - 1], i.pop(), n--) : r++; + n = o.length; + for (r = 0; r < n; r++) a[r].fire(o[r]); + this._time = t, this.onframe(e), this.trigger("frame", e), this.stage.update && this.stage.update() + }, + _startLoop: function() { + function t() { + e._running && (nb(t), !e._paused && e._update()) + } + var e = this; + this._running = !0, nb(t) + }, + start: function() { + this._time = (new Date).getTime(), this._pausedTime = 0, this._startLoop() + }, + stop: function() { + this._running = !1 + }, + pause: function() { + this._paused || (this._pauseStart = (new Date).getTime(), this._paused = !0) + }, + resume: function() { + this._paused && (this._pausedTime += (new Date).getTime() - this._pauseStart, this._paused = !1) + }, + clear: function() { + this._clips = [] + }, + isFinished: function() { + return !this._clips.length + }, + animate: function(t, e) { + var i = new Ow(t, (e = e || {}).loop, e.getter, e.setter); + return this.addAnimator(i), i + } + }, h(xb, aw); + var _b = function() { + this._track = [] + }; + _b.prototype = { + constructor: _b, + recognize: function(t, e, i) { + return this._doTrack(t, e, i), this._recognize(t) + }, + clear: function() { + return this._track.length = 0, this + }, + _doTrack: function(t, e, i) { + var n = t.touches; + if (n) { + for (var o = { + points: [], + touches: [], + target: e, + event: t + }, a = 0, r = n.length; a < r; a++) { + var s = n[a], + l = rt(i, s, {}); + o.points.push([l.zrX, l.zrY]), o.touches.push(s) + } + this._track.push(o) + } + }, + _recognize: function(t) { + for (var e in wb) + if (wb.hasOwnProperty(e)) { + var i = wb[e](this._track, t); + if (i) return i + } + } + }; + var wb = { + pinch: function(t, e) { + var i = t.length; + if (i) { + var n = (t[i - 1] || {}).points, + o = (t[i - 2] || {}).points || n; + if (o && o.length > 1 && n && n.length > 1) { + var a = vi(n) / vi(o); + !isFinite(a) && (a = 1), e.pinchScale = a; + var r = yi(n); + return e.pinchX = r[0], e.pinchY = r[1], { + type: "pinch", + target: t[0].target, + event: e + } + } + } + } + }, + bb = ["click", "dblclick", "mousewheel", "mouseout", "mouseup", "mousedown", "mousemove", "contextmenu"], + Sb = ["touchstart", "touchend", "touchmove"], + Mb = { + pointerdown: 1, + pointerup: 1, + pointermove: 1, + pointerout: 1 + }, + Ib = f(bb, function(t) { + var e = t.replace("mouse", "pointer"); + return Mb[e] ? e : t + }), + Tb = { + mousemove: function(t) { + t = lt(this.dom, t), this.trigger("mousemove", t) + }, + mouseout: function(t) { + var e = (t = lt(this.dom, t)).toElement || t.relatedTarget; + if (e != this.dom) + for (; e && 9 != e.nodeType;) { + if (e === this.dom) return; + e = e.parentNode + } + this.trigger("mouseout", t) + }, + touchstart: function(t) { + (t = lt(this.dom, t)).zrByTouch = !0, this._lastTouchMoment = new Date, _i(this, t, "start"), Tb.mousemove.call(this, t), Tb.mousedown.call(this, t), wi(this) + }, + touchmove: function(t) { + (t = lt(this.dom, t)).zrByTouch = !0, _i(this, t, "change"), Tb.mousemove.call(this, t), wi(this) + }, + touchend: function(t) { + (t = lt(this.dom, t)).zrByTouch = !0, _i(this, t, "end"), Tb.mouseup.call(this, t), +new Date - this._lastTouchMoment < 300 && Tb.click.call(this, t), wi(this) + }, + pointerdown: function(t) { + Tb.mousedown.call(this, t) + }, + pointermove: function(t) { + bi(t) || Tb.mousemove.call(this, t) + }, + pointerup: function(t) { + Tb.mouseup.call(this, t) + }, + pointerout: function(t) { + bi(t) || Tb.mouseout.call(this, t) + } + }; + d(["click", "mousedown", "mouseup", "mousewheel", "dblclick", "contextmenu"], function(t) { + Tb[t] = function(e) { + e = lt(this.dom, e), this.trigger(t, e) + } + }); + var Ab = Mi.prototype; + Ab.dispose = function() { + for (var t = bb.concat(Sb), e = 0; e < t.length; e++) { + var i = t[e]; + ht(this.dom, xi(i), this._handlers[i]) + } + }, Ab.setCursor = function(t) { + this.dom.style && (this.dom.style.cursor = t || "default") + }, h(Mi, aw); + var Db = !z_.canvasSupported, + Cb = { + canvas: yb + }, + Lb = {}, + kb = function(t, e, i) { + i = i || {}, this.dom = e, this.id = t; + var n = this, + o = new jw, + a = i.renderer; + if (Db) { + if (!Cb.vml) throw new Error("You need to require 'zrender/vml/vml' to support IE8"); + a = "vml" + } else a && Cb[a] || (a = "canvas"); + var r = new Cb[a](e, o, i, t); + this.storage = o, this.painter = r; + var s = z_.node || z_.worker ? null : new Mi(r.getViewportRoot()); + this.handler = new cw(o, r, s, r.root), this.animation = new xb({ + stage: { + update: m(this.flush, this) + } + }), this.animation.start(), this._needsRefresh; + var l = o.delFromStorage, + u = o.addToStorage; + o.delFromStorage = function(t) { + l.call(o, t), t && t.removeSelfFromZr(n) + }, o.addToStorage = function(t) { + u.call(o, t), t.addSelfToZr(n) + } + }; + kb.prototype = { + constructor: kb, + getId: function() { + return this.id + }, + add: function(t) { + this.storage.addRoot(t), this._needsRefresh = !0 + }, + remove: function(t) { + this.storage.delRoot(t), this._needsRefresh = !0 + }, + configLayer: function(t, e) { + this.painter.configLayer && this.painter.configLayer(t, e), this._needsRefresh = !0 + }, + setBackgroundColor: function(t) { + this.painter.setBackgroundColor && this.painter.setBackgroundColor(t), this._needsRefresh = !0 + }, + refreshImmediately: function() { + this._needsRefresh = !1, this.painter.refresh(), this._needsRefresh = !1 + }, + refresh: function() { + this._needsRefresh = !0 + }, + flush: function() { + var t; + this._needsRefresh && (t = !0, this.refreshImmediately()), this._needsRefreshHover && (t = !0, this.refreshHoverImmediately()), t && this.trigger("rendered") + }, + addHover: function(t, e) { + if (this.painter.addHover) { + var i = this.painter.addHover(t, e); + return this.refreshHover(), i + } + }, + removeHover: function(t) { + this.painter.removeHover && (this.painter.removeHover(t), this.refreshHover()) + }, + clearHover: function() { + this.painter.clearHover && (this.painter.clearHover(), this.refreshHover()) + }, + refreshHover: function() { + this._needsRefreshHover = !0 + }, + refreshHoverImmediately: function() { + this._needsRefreshHover = !1, this.painter.refreshHover && this.painter.refreshHover() + }, + resize: function(t) { + t = t || {}, this.painter.resize(t.width, t.height), this.handler.resize() + }, + clearAnimation: function() { + this.animation.clear() + }, + getWidth: function() { + return this.painter.getWidth() + }, + getHeight: function() { + return this.painter.getHeight() + }, + pathToImage: function(t, e) { + return this.painter.pathToImage(t, e) + }, + setCursorStyle: function(t) { + this.handler.setCursorStyle(t) + }, + findHover: function(t, e) { + return this.handler.findHover(t, e) + }, + on: function(t, e, i) { + this.handler.on(t, e, i) + }, + off: function(t, e) { + this.handler.off(t, e) + }, + trigger: function(t, e) { + this.handler.trigger(t, e) + }, + clear: function() { + this.storage.delRoot(), this.painter.clear() + }, + dispose: function() { + this.animation.stop(), this.clear(), this.storage.dispose(), this.painter.dispose(), this.handler.dispose(), this.animation = this.storage = this.painter = this.handler = null, Ai(this.id) + } + }; + var Pb = (Object.freeze || Object)({ + version: "4.0.5", + init: Ii, + dispose: function(t) { + if (t) t.dispose(); + else { + for (var e in Lb) Lb.hasOwnProperty(e) && Lb[e].dispose(); + Lb = {} + } + return this + }, + getInstance: function(t) { + return Lb[t] + }, + registerPainter: Ti + }), + Nb = d, + Ob = w, + Eb = y, + Rb = "series\0", + zb = ["fontStyle", "fontWeight", "fontSize", "fontFamily", "rich", "tag", "color", "textBorderColor", "textBorderWidth", "width", "height", "lineHeight", "align", "verticalAlign", "baseline", "shadowColor", "shadowBlur", "shadowOffsetX", "shadowOffsetY", "textShadowColor", "textShadowBlur", "textShadowOffsetX", "textShadowOffsetY", "backgroundColor", "borderColor", "borderWidth", "borderRadius", "padding"], + Bb = 0, + Vb = ".", + Gb = "___EC__COMPONENT__CONTAINER___", + Fb = 0, + Wb = function(t) { + for (var e = 0; e < t.length; e++) t[e][1] || (t[e][1] = t[e][0]); + return function(e, i, n) { + for (var o = {}, a = 0; a < t.length; a++) { + var r = t[a][1]; + if (!(i && l(i, r) >= 0 || n && l(n, r) < 0)) { + var s = e.getShallow(r); + null != s && (o[t[a][0]] = s) + } + } + return o + } + }, + Hb = Wb([ + ["lineWidth", "width"], + ["stroke", "color"], + ["opacity"], + ["shadowBlur"], + ["shadowOffsetX"], + ["shadowOffsetY"], + ["shadowColor"] + ]), + Zb = { + getLineStyle: function(t) { + var e = Hb(this, t), + i = this.getLineDash(e.lineWidth); + return i && (e.lineDash = i), e + }, + getLineDash: function(t) { + null == t && (t = 1); + var e = this.get("type"), + i = Math.max(t, 2), + n = 4 * t; + return "solid" === e || null == e ? null : "dashed" === e ? [n, n] : [i, i] + } + }, + Ub = Wb([ + ["fill", "color"], + ["shadowBlur"], + ["shadowOffsetX"], + ["shadowOffsetY"], + ["opacity"], + ["shadowColor"] + ]), + Xb = { + getAreaStyle: function(t, e) { + return Ub(this, t, e) + } + }, + jb = Math.pow, + Yb = Math.sqrt, + qb = 1e-8, + Kb = 1e-4, + $b = Yb(3), + Jb = 1 / 3, + Qb = V(), + tS = V(), + eS = V(), + iS = Math.min, + nS = Math.max, + oS = Math.sin, + aS = Math.cos, + rS = 2 * Math.PI, + sS = V(), + lS = V(), + uS = V(), + hS = [], + cS = [], + dS = { + M: 1, + L: 2, + C: 3, + Q: 4, + A: 5, + Z: 6, + R: 7 + }, + fS = [], + pS = [], + gS = [], + mS = [], + vS = Math.min, + yS = Math.max, + xS = Math.cos, + _S = Math.sin, + wS = Math.sqrt, + bS = Math.abs, + SS = "undefined" != typeof Float32Array, + MS = function(t) { + this._saveData = !t, this._saveData && (this.data = []), this._ctx = null + }; + MS.prototype = { + constructor: MS, + _xi: 0, + _yi: 0, + _x0: 0, + _y0: 0, + _ux: 0, + _uy: 0, + _len: 0, + _lineDash: null, + _dashOffset: 0, + _dashIdx: 0, + _dashSum: 0, + setScale: function(t, e) { + this._ux = bS(1 / Rw / t) || 0, this._uy = bS(1 / Rw / e) || 0 + }, + getContext: function() { + return this._ctx + }, + beginPath: function(t) { + return this._ctx = t, t && t.beginPath(), t && (this.dpr = t.dpr), this._saveData && (this._len = 0), this._lineDash && (this._lineDash = null, this._dashOffset = 0), this + }, + moveTo: function(t, e) { + return this.addData(dS.M, t, e), this._ctx && this._ctx.moveTo(t, e), this._x0 = t, this._y0 = e, this._xi = t, this._yi = e, this + }, + lineTo: function(t, e) { + var i = bS(t - this._xi) > this._ux || bS(e - this._yi) > this._uy || this._len < 5; + return this.addData(dS.L, t, e), this._ctx && i && (this._needsDash() ? this._dashedLineTo(t, e) : this._ctx.lineTo(t, e)), i && (this._xi = t, this._yi = e), this + }, + bezierCurveTo: function(t, e, i, n, o, a) { + return this.addData(dS.C, t, e, i, n, o, a), this._ctx && (this._needsDash() ? this._dashedBezierTo(t, e, i, n, o, a) : this._ctx.bezierCurveTo(t, e, i, n, o, a)), this._xi = o, this._yi = a, this + }, + quadraticCurveTo: function(t, e, i, n) { + return this.addData(dS.Q, t, e, i, n), this._ctx && (this._needsDash() ? this._dashedQuadraticTo(t, e, i, n) : this._ctx.quadraticCurveTo(t, e, i, n)), this._xi = i, this._yi = n, this + }, + arc: function(t, e, i, n, o, a) { + return this.addData(dS.A, t, e, i, i, n, o - n, 0, a ? 0 : 1), this._ctx && this._ctx.arc(t, e, i, n, o, a), this._xi = xS(o) * i + t, this._yi = _S(o) * i + e, this + }, + arcTo: function(t, e, i, n, o) { + return this._ctx && this._ctx.arcTo(t, e, i, n, o), this + }, + rect: function(t, e, i, n) { + return this._ctx && this._ctx.rect(t, e, i, n), this.addData(dS.R, t, e, i, n), this + }, + closePath: function() { + this.addData(dS.Z); + var t = this._ctx, + e = this._x0, + i = this._y0; + return t && (this._needsDash() && this._dashedLineTo(e, i), t.closePath()), this._xi = e, this._yi = i, this + }, + fill: function(t) { + t && t.fill(), this.toStatic() + }, + stroke: function(t) { + t && t.stroke(), this.toStatic() + }, + setLineDash: function(t) { + if (t instanceof Array) { + this._lineDash = t, this._dashIdx = 0; + for (var e = 0, i = 0; i < t.length; i++) e += t[i]; + this._dashSum = e + } + return this + }, + setLineDashOffset: function(t) { + return this._dashOffset = t, this + }, + len: function() { + return this._len + }, + setData: function(t) { + var e = t.length; + this.data && this.data.length == e || !SS || (this.data = new Float32Array(e)); + for (var i = 0; i < e; i++) this.data[i] = t[i]; + this._len = e + }, + appendPath: function(t) { + t instanceof Array || (t = [t]); + for (var e = t.length, i = 0, n = this._len, o = 0; o < e; o++) i += t[o].len(); + SS && this.data instanceof Float32Array && (this.data = new Float32Array(n + i)); + for (o = 0; o < e; o++) + for (var a = t[o].data, r = 0; r < a.length; r++) this.data[n++] = a[r]; + this._len = n + }, + addData: function(t) { + if (this._saveData) { + var e = this.data; + this._len + arguments.length > e.length && (this._expandData(), e = this.data); + for (var i = 0; i < arguments.length; i++) e[this._len++] = arguments[i]; + this._prevCmd = t + } + }, + _expandData: function() { + if (!(this.data instanceof Array)) { + for (var t = [], e = 0; e < this._len; e++) t[e] = this.data[e]; + this.data = t + } + }, + _needsDash: function() { + return this._lineDash + }, + _dashedLineTo: function(t, e) { + var i, n, o = this._dashSum, + a = this._dashOffset, + r = this._lineDash, + s = this._ctx, + l = this._xi, + u = this._yi, + h = t - l, + c = e - u, + d = wS(h * h + c * c), + f = l, + p = u, + g = r.length; + for (h /= d, c /= d, a < 0 && (a = o + a), f -= (a %= o) * h, p -= a * c; h > 0 && f <= t || h < 0 && f >= t || 0 == h && (c > 0 && p <= e || c < 0 && p >= e);) f += h * (i = r[n = this._dashIdx]), p += c * i, this._dashIdx = (n + 1) % g, h > 0 && f < l || h < 0 && f > l || c > 0 && p < u || c < 0 && p > u || s[n % 2 ? "moveTo" : "lineTo"](h >= 0 ? vS(f, t) : yS(f, t), c >= 0 ? vS(p, e) : yS(p, e)); + h = f - t, c = p - e, this._dashOffset = -wS(h * h + c * c) + }, + _dashedBezierTo: function(t, e, i, n, o, a) { + var r, s, l, u, h, c = this._dashSum, + d = this._dashOffset, + f = this._lineDash, + p = this._ctx, + g = this._xi, + m = this._yi, + v = Qi, + y = 0, + x = this._dashIdx, + _ = f.length, + w = 0; + for (d < 0 && (d = c + d), d %= c, r = 0; r < 1; r += .1) s = v(g, t, i, o, r + .1) - v(g, t, i, o, r), l = v(m, e, n, a, r + .1) - v(m, e, n, a, r), y += wS(s * s + l * l); + for (; x < _ && !((w += f[x]) > d); x++); + for (r = (w - d) / y; r <= 1;) u = v(g, t, i, o, r), h = v(m, e, n, a, r), x % 2 ? p.moveTo(u, h) : p.lineTo(u, h), r += f[x] / y, x = (x + 1) % _; + x % 2 != 0 && p.lineTo(o, a), s = o - u, l = a - h, this._dashOffset = -wS(s * s + l * l) + }, + _dashedQuadraticTo: function(t, e, i, n) { + var o = i, + a = n; + i = (i + 2 * t) / 3, n = (n + 2 * e) / 3, t = (this._xi + 2 * t) / 3, e = (this._yi + 2 * e) / 3, this._dashedBezierTo(t, e, i, n, o, a) + }, + toStatic: function() { + var t = this.data; + t instanceof Array && (t.length = this._len, SS && (this.data = new Float32Array(t))) + }, + getBoundingRect: function() { + fS[0] = fS[1] = gS[0] = gS[1] = Number.MAX_VALUE, pS[0] = pS[1] = mS[0] = mS[1] = -Number.MAX_VALUE; + for (var t = this.data, e = 0, i = 0, n = 0, o = 0, a = 0; a < t.length;) { + var r = t[a++]; + switch (1 == a && (n = e = t[a], o = i = t[a + 1]), r) { + case dS.M: + e = n = t[a++], i = o = t[a++], gS[0] = n, gS[1] = o, mS[0] = n, mS[1] = o; + break; + case dS.L: + fn(e, i, t[a], t[a + 1], gS, mS), e = t[a++], i = t[a++]; + break; + case dS.C: + pn(e, i, t[a++], t[a++], t[a++], t[a++], t[a], t[a + 1], gS, mS), e = t[a++], i = t[a++]; + break; + case dS.Q: + gn(e, i, t[a++], t[a++], t[a], t[a + 1], gS, mS), e = t[a++], i = t[a++]; + break; + case dS.A: + var s = t[a++], + l = t[a++], + u = t[a++], + h = t[a++], + c = t[a++], + d = t[a++] + c, + f = (t[a++], 1 - t[a++]); + 1 == a && (n = xS(c) * u + s, o = _S(c) * h + l), mn(s, l, u, h, c, d, f, gS, mS), e = xS(d) * u + s, i = _S(d) * h + l; + break; + case dS.R: + fn(n = e = t[a++], o = i = t[a++], n + t[a++], o + t[a++], gS, mS); + break; + case dS.Z: + e = n, i = o + } + tt(fS, fS, gS), et(pS, pS, mS) + } + return 0 === a && (fS[0] = fS[1] = pS[0] = pS[1] = 0), new ue(fS[0], fS[1], pS[0] - fS[0], pS[1] - fS[1]) + }, + rebuildPath: function(t) { + for (var e, i, n, o, a, r, s = this.data, l = this._ux, u = this._uy, h = this._len, c = 0; c < h;) { + var d = s[c++]; + switch (1 == c && (e = n = s[c], i = o = s[c + 1]), d) { + case dS.M: + e = n = s[c++], i = o = s[c++], t.moveTo(n, o); + break; + case dS.L: + a = s[c++], r = s[c++], (bS(a - n) > l || bS(r - o) > u || c === h - 1) && (t.lineTo(a, r), n = a, o = r); + break; + case dS.C: + t.bezierCurveTo(s[c++], s[c++], s[c++], s[c++], s[c++], s[c++]), n = s[c - 2], o = s[c - 1]; + break; + case dS.Q: + t.quadraticCurveTo(s[c++], s[c++], s[c++], s[c++]), n = s[c - 2], o = s[c - 1]; + break; + case dS.A: + var f = s[c++], + p = s[c++], + g = s[c++], + m = s[c++], + v = s[c++], + y = s[c++], + x = s[c++], + _ = s[c++], + w = g > m ? g : m, + b = g > m ? 1 : g / m, + S = g > m ? m / g : 1, + M = v + y; + Math.abs(g - m) > .001 ? (t.translate(f, p), t.rotate(x), t.scale(b, S), t.arc(0, 0, w, v, M, 1 - _), t.scale(1 / b, 1 / S), t.rotate(-x), t.translate(-f, -p)) : t.arc(f, p, w, v, M, 1 - _), 1 == c && (e = xS(v) * g + f, i = _S(v) * m + p), n = xS(M) * g + f, o = _S(M) * m + p; + break; + case dS.R: + e = n = s[c], i = o = s[c + 1], t.rect(s[c++], s[c++], s[c++], s[c++]); + break; + case dS.Z: + t.closePath(), n = e, o = i + } + } + } + }, MS.CMD = dS; + var IS = 2 * Math.PI, + TS = 2 * Math.PI, + AS = MS.CMD, + DS = 2 * Math.PI, + CS = 1e-4, + LS = [-1, -1, -1], + kS = [-1, -1], + PS = eb.prototype.getCanvasPattern, + NS = Math.abs, + OS = new MS(!0); + kn.prototype = { + constructor: kn, + type: "path", + __dirtyPath: !0, + strokeContainThreshold: 5, + brush: function(t, e) { + var i = this.style, + n = this.path || OS, + o = i.hasStroke(), + a = i.hasFill(), + r = i.fill, + s = i.stroke, + l = a && !!r.colorStops, + u = o && !!s.colorStops, + h = a && !!r.image, + c = o && !!s.image; + if (i.bind(t, this, e), this.setTransform(t), this.__dirty) { + var d; + l && (d = d || this.getBoundingRect(), this._fillGradient = i.getGradient(t, r, d)), u && (d = d || this.getBoundingRect(), this._strokeGradient = i.getGradient(t, s, d)) + } + l ? t.fillStyle = this._fillGradient : h && (t.fillStyle = PS.call(r, t)), u ? t.strokeStyle = this._strokeGradient : c && (t.strokeStyle = PS.call(s, t)); + var f = i.lineDash, + p = i.lineDashOffset, + g = !!t.setLineDash, + m = this.getGlobalScale(); + if (n.setScale(m[0], m[1]), this.__dirtyPath || f && !g && o ? (n.beginPath(t), f && !g && (n.setLineDash(f), n.setLineDashOffset(p)), this.buildPath(n, this.shape, !1), this.path && (this.__dirtyPath = !1)) : (t.beginPath(), this.path.rebuildPath(t)), a) + if (null != i.fillOpacity) { + v = t.globalAlpha; + t.globalAlpha = i.fillOpacity * i.opacity, n.fill(t), t.globalAlpha = v + } else n.fill(t); + if (f && g && (t.setLineDash(f), t.lineDashOffset = p), o) + if (null != i.strokeOpacity) { + var v = t.globalAlpha; + t.globalAlpha = i.strokeOpacity * i.opacity, n.stroke(t), t.globalAlpha = v + } else n.stroke(t); + f && g && t.setLineDash([]), null != i.text && (this.restoreTransform(t), this.drawRectText(t, this.getBoundingRect())) + }, + buildPath: function(t, e, i) {}, + createPathProxy: function() { + this.path = new MS + }, + getBoundingRect: function() { + var t = this._rect, + e = this.style, + i = !t; + if (i) { + var n = this.path; + n || (n = this.path = new MS), this.__dirtyPath && (n.beginPath(), this.buildPath(n, this.shape, !1)), t = n.getBoundingRect() + } + if (this._rect = t, e.hasStroke()) { + var o = this._rectWithStroke || (this._rectWithStroke = t.clone()); + if (this.__dirty || i) { + o.copy(t); + var a = e.lineWidth, + r = e.strokeNoScale ? this.getLineScale() : 1; + e.hasFill() || (a = Math.max(a, this.strokeContainThreshold || 4)), r > 1e-10 && (o.width += a / r, o.height += a / r, o.x -= a / r / 2, o.y -= a / r / 2) + } + return o + } + return t + }, + contain: function(t, e) { + var i = this.transformCoordToLocal(t, e), + n = this.getBoundingRect(), + o = this.style; + if (t = i[0], e = i[1], n.contain(t, e)) { + var a = this.path.data; + if (o.hasStroke()) { + var r = o.lineWidth, + s = o.strokeNoScale ? this.getLineScale() : 1; + if (s > 1e-10 && (o.hasFill() || (r = Math.max(r, this.strokeContainThreshold)), Ln(a, r / s, t, e))) return !0 + } + if (o.hasFill()) return Cn(a, t, e) + } + return !1 + }, + dirty: function(t) { + null == t && (t = !0), t && (this.__dirtyPath = t, this._rect = null), this.__dirty = this.__dirtyText = !0, this.__zr && this.__zr.refresh(), this.__clipTarget && this.__clipTarget.dirty() + }, + animateShape: function(t) { + return this.animate("shape", t) + }, + attrKV: function(t, e) { + "shape" === t ? (this.setShape(e), this.__dirtyPath = !0, this._rect = null) : ui.prototype.attrKV.call(this, t, e) + }, + setShape: function(t, e) { + var i = this.shape; + if (i) { + if (w(t)) + for (var n in t) t.hasOwnProperty(n) && (i[n] = t[n]); + else i[t] = e; + this.dirty(!0) + } + return this + }, + getLineScale: function() { + var t = this.transform; + return t && NS(t[0] - 1) > 1e-10 && NS(t[3] - 1) > 1e-10 ? Math.sqrt(NS(t[0] * t[3] - t[2] * t[1])) : 1 + } + }, kn.extend = function(t) { + var e = function(e) { + kn.call(this, e), t.style && this.style.extendFrom(t.style, !1); + var i = t.shape; + if (i) { + this.shape = this.shape || {}; + var n = this.shape; + for (var o in i) !n.hasOwnProperty(o) && i.hasOwnProperty(o) && (n[o] = i[o]) + } + t.init && t.init.call(this, e) + }; + u(e, kn); + for (var i in t) "style" !== i && "shape" !== i && (e.prototype[i] = t[i]); + return e + }, u(kn, ui); + var ES = MS.CMD, + RS = [ + [], + [], + [] + ], + zS = Math.sqrt, + BS = Math.atan2, + VS = function(t, e) { + var i, n, o, a, r, s, l = t.data, + u = ES.M, + h = ES.C, + c = ES.L, + d = ES.R, + f = ES.A, + p = ES.Q; + for (o = 0, a = 0; o < l.length;) { + switch (i = l[o++], a = o, n = 0, i) { + case u: + case c: + n = 1; + break; + case h: + n = 3; + break; + case p: + n = 2; + break; + case f: + var g = e[4], + m = e[5], + v = zS(e[0] * e[0] + e[1] * e[1]), + y = zS(e[2] * e[2] + e[3] * e[3]), + x = BS(-e[1] / y, e[0] / v); + l[o] *= v, l[o++] += g, l[o] *= y, l[o++] += m, l[o++] *= v, l[o++] *= y, l[o++] += x, l[o++] += x, a = o += 2; + break; + case d: + s[0] = l[o++], s[1] = l[o++], Q(s, s, e), l[a++] = s[0], l[a++] = s[1], s[0] += l[o++], s[1] += l[o++], Q(s, s, e), l[a++] = s[0], l[a++] = s[1] + } + for (r = 0; r < n; r++)(s = RS[r])[0] = l[o++], s[1] = l[o++], Q(s, s, e), l[a++] = s[0], l[a++] = s[1] + } + }, + GS = Math.sqrt, + FS = Math.sin, + WS = Math.cos, + HS = Math.PI, + ZS = function(t) { + return Math.sqrt(t[0] * t[0] + t[1] * t[1]) + }, + US = function(t, e) { + return (t[0] * e[0] + t[1] * e[1]) / (ZS(t) * ZS(e)) + }, + XS = function(t, e) { + return (t[0] * e[1] < t[1] * e[0] ? -1 : 1) * Math.acos(US(t, e)) + }, + jS = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi, + YS = /-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g, + qS = function(t) { + ui.call(this, t) + }; + qS.prototype = { + constructor: qS, + type: "text", + brush: function(t, e) { + var i = this.style; + this.__dirty && Ue(i), i.fill = i.stroke = i.shadowBlur = i.shadowColor = i.shadowOffsetX = i.shadowOffsetY = null; + var n = i.text; + null != n && (n += ""), li(n, i) && (this.setTransform(t), je(this, t, n, i, null, e), this.restoreTransform(t)) + }, + getBoundingRect: function() { + var t = this.style; + if (this.__dirty && Ue(t), !this._rect) { + var e = t.text; + null != e ? e += "" : e = ""; + var i = De(t.text + "", t.font, t.textAlign, t.textVerticalAlign, t.textPadding, t.rich); + if (i.x += t.x || 0, i.y += t.y || 0, oi(t.textStroke, t.textStrokeWidth)) { + var n = t.textStrokeWidth; + i.x -= n / 2, i.y -= n / 2, i.width += n, i.height += n + } + this._rect = i + } + return this._rect + } + }, u(qS, ui); + var KS = kn.extend({ + type: "circle", + shape: { + cx: 0, + cy: 0, + r: 0 + }, + buildPath: function(t, e, i) { + i && t.moveTo(e.cx + e.r, e.cy), t.arc(e.cx, e.cy, e.r, 0, 2 * Math.PI, !0) + } + }), + $S = [ + ["shadowBlur", 0], + ["shadowColor", "#000"], + ["shadowOffsetX", 0], + ["shadowOffsetY", 0] + ], + JS = function(t) { + return z_.browser.ie && z_.browser.version >= 11 ? function() { + var e, i = this.__clipPaths, + n = this.style; + if (i) + for (var o = 0; o < i.length; o++) { + var a = i[o], + r = a && a.shape, + s = a && a.type; + if (r && ("sector" === s && r.startAngle === r.endAngle || "rect" === s && (!r.width || !r.height))) { + for (l = 0; l < $S.length; l++) $S[l][2] = n[$S[l][0]], n[$S[l][0]] = $S[l][1]; + e = !0; + break + } + } + if (t.apply(this, arguments), e) + for (var l = 0; l < $S.length; l++) n[$S[l][0]] = $S[l][2] + } : t + }, + QS = kn.extend({ + type: "sector", + shape: { + cx: 0, + cy: 0, + r0: 0, + r: 0, + startAngle: 0, + endAngle: 2 * Math.PI, + clockwise: !0 + }, + brush: JS(kn.prototype.brush), + buildPath: function(t, e) { + var i = e.cx, + n = e.cy, + o = Math.max(e.r0 || 0, 0), + a = Math.max(e.r, 0), + r = e.startAngle, + s = e.endAngle, + l = e.clockwise, + u = Math.cos(r), + h = Math.sin(r); + t.moveTo(u * o + i, h * o + n), t.lineTo(u * a + i, h * a + n), t.arc(i, n, a, r, s, !l), t.lineTo(Math.cos(s) * o + i, Math.sin(s) * o + n), 0 !== o && t.arc(i, n, o, s, r, l), t.closePath() + } + }), + tM = kn.extend({ + type: "ring", + shape: { + cx: 0, + cy: 0, + r: 0, + r0: 0 + }, + buildPath: function(t, e) { + var i = e.cx, + n = e.cy, + o = 2 * Math.PI; + t.moveTo(i + e.r, n), t.arc(i, n, e.r, 0, o, !1), t.moveTo(i + e.r0, n), t.arc(i, n, e.r0, 0, o, !0) + } + }), + eM = function(t, e) { + for (var i = t.length, n = [], o = 0, a = 1; a < i; a++) o += K(t[a - 1], t[a]); + var r = o / 2; + r = r < i ? i : r; + for (a = 0; a < r; a++) { + var s, l, u, h = a / (r - 1) * (e ? i : i - 1), + c = Math.floor(h), + d = h - c, + f = t[c % i]; + e ? (s = t[(c - 1 + i) % i], l = t[(c + 1) % i], u = t[(c + 2) % i]) : (s = t[0 === c ? c : c - 1], l = t[c > i - 2 ? i - 1 : c + 1], u = t[c > i - 3 ? i - 1 : c + 2]); + var p = d * d, + g = d * p; + n.push([zn(s[0], f[0], l[0], u[0], d, p, g), zn(s[1], f[1], l[1], u[1], d, p, g)]) + } + return n + }, + iM = function(t, e, i, n) { + var o, a, r, s, l = [], + u = [], + h = [], + c = []; + if (n) { + r = [1 / 0, 1 / 0], s = [-1 / 0, -1 / 0]; + for (var d = 0, f = t.length; d < f; d++) tt(r, r, t[d]), et(s, s, t[d]); + tt(r, r, n[0]), et(s, s, n[1]) + } + for (var d = 0, f = t.length; d < f; d++) { + var p = t[d]; + if (i) o = t[d ? d - 1 : f - 1], a = t[(d + 1) % f]; + else { + if (0 === d || d === f - 1) { + l.push(F(t[d])); + continue + } + o = t[d - 1], a = t[d + 1] + } + U(u, a, o), Y(u, u, e); + var g = K(p, o), + m = K(p, a), + v = g + m; + 0 !== v && (g /= v, m /= v), Y(h, u, -g), Y(c, u, m); + var y = H([], p, h), + x = H([], p, c); + n && (et(y, y, r), tt(y, y, s), et(x, x, r), tt(x, x, s)), l.push(y), l.push(x) + } + return i && l.push(l.shift()), l + }, + nM = kn.extend({ + type: "polygon", + shape: { + points: null, + smooth: !1, + smoothConstraint: null + }, + buildPath: function(t, e) { + Bn(t, e, !0) + } + }), + oM = kn.extend({ + type: "polyline", + shape: { + points: null, + smooth: !1, + smoothConstraint: null + }, + style: { + stroke: "#000", + fill: null + }, + buildPath: function(t, e) { + Bn(t, e, !1) + } + }), + aM = kn.extend({ + type: "rect", + shape: { + r: 0, + x: 0, + y: 0, + width: 0, + height: 0 + }, + buildPath: function(t, e) { + var i = e.x, + n = e.y, + o = e.width, + a = e.height; + e.r ? Ze(t, e) : t.rect(i, n, o, a), t.closePath() + } + }), + rM = kn.extend({ + type: "line", + shape: { + x1: 0, + y1: 0, + x2: 0, + y2: 0, + percent: 1 + }, + style: { + stroke: "#000", + fill: null + }, + buildPath: function(t, e) { + var i = e.x1, + n = e.y1, + o = e.x2, + a = e.y2, + r = e.percent; + 0 !== r && (t.moveTo(i, n), r < 1 && (o = i * (1 - r) + o * r, a = n * (1 - r) + a * r), t.lineTo(o, a)) + }, + pointAt: function(t) { + var e = this.shape; + return [e.x1 * (1 - t) + e.x2 * t, e.y1 * (1 - t) + e.y2 * t] + } + }), + sM = [], + lM = kn.extend({ + type: "bezier-curve", + shape: { + x1: 0, + y1: 0, + x2: 0, + y2: 0, + cpx1: 0, + cpy1: 0, + percent: 1 + }, + style: { + stroke: "#000", + fill: null + }, + buildPath: function(t, e) { + var i = e.x1, + n = e.y1, + o = e.x2, + a = e.y2, + r = e.cpx1, + s = e.cpy1, + l = e.cpx2, + u = e.cpy2, + h = e.percent; + 0 !== h && (t.moveTo(i, n), null == l || null == u ? (h < 1 && (hn(i, r, o, h, sM), r = sM[1], o = sM[2], hn(n, s, a, h, sM), s = sM[1], a = sM[2]), t.quadraticCurveTo(r, s, o, a)) : (h < 1 && (on(i, r, l, o, h, sM), r = sM[1], l = sM[2], o = sM[3], on(n, s, u, a, h, sM), s = sM[1], u = sM[2], a = sM[3]), t.bezierCurveTo(r, s, l, u, o, a))) + }, + pointAt: function(t) { + return Vn(this.shape, t, !1) + }, + tangentAt: function(t) { + var e = Vn(this.shape, t, !0); + return q(e, e) + } + }), + uM = kn.extend({ + type: "arc", + shape: { + cx: 0, + cy: 0, + r: 0, + startAngle: 0, + endAngle: 2 * Math.PI, + clockwise: !0 + }, + style: { + stroke: "#000", + fill: null + }, + buildPath: function(t, e) { + var i = e.cx, + n = e.cy, + o = Math.max(e.r, 0), + a = e.startAngle, + r = e.endAngle, + s = e.clockwise, + l = Math.cos(a), + u = Math.sin(a); + t.moveTo(l * o + i, u * o + n), t.arc(i, n, o, a, r, !s) + } + }), + hM = kn.extend({ + type: "compound", + shape: { + paths: null + }, + _updatePathDirty: function() { + for (var t = this.__dirtyPath, e = this.shape.paths, i = 0; i < e.length; i++) t = t || e[i].__dirtyPath; + this.__dirtyPath = t, this.__dirty = this.__dirty || t + }, + beforeBrush: function() { + this._updatePathDirty(); + for (var t = this.shape.paths || [], e = this.getGlobalScale(), i = 0; i < t.length; i++) t[i].path || t[i].createPathProxy(), t[i].path.setScale(e[0], e[1]) + }, + buildPath: function(t, e) { + for (var i = e.paths || [], n = 0; n < i.length; n++) i[n].buildPath(t, i[n].shape, !0) + }, + afterBrush: function() { + for (var t = this.shape.paths || [], e = 0; e < t.length; e++) t[e].__dirtyPath = !1 + }, + getBoundingRect: function() { + return this._updatePathDirty(), kn.prototype.getBoundingRect.call(this) + } + }), + cM = function(t) { + this.colorStops = t || [] + }; + cM.prototype = { + constructor: cM, + addColorStop: function(t, e) { + this.colorStops.push({ + offset: t, + color: e + }) + } + }; + var dM = function(t, e, i, n, o, a) { + this.x = null == t ? 0 : t, this.y = null == e ? 0 : e, this.x2 = null == i ? 1 : i, this.y2 = null == n ? 0 : n, this.type = "linear", this.global = a || !1, cM.call(this, o) + }; + dM.prototype = { + constructor: dM + }, u(dM, cM); + var fM = function(t, e, i, n, o) { + this.x = null == t ? .5 : t, this.y = null == e ? .5 : e, this.r = null == i ? .5 : i, this.type = "radial", this.global = o || !1, cM.call(this, n) + }; + fM.prototype = { + constructor: fM + }, u(fM, cM), Gn.prototype.incremental = !0, Gn.prototype.clearDisplaybles = function() { + this._displayables = [], this._temporaryDisplayables = [], this._cursor = 0, this.dirty(), this.notClear = !1 + }, Gn.prototype.addDisplayable = function(t, e) { + e ? this._temporaryDisplayables.push(t) : this._displayables.push(t), this.dirty() + }, Gn.prototype.addDisplayables = function(t, e) { + e = e || !1; + for (var i = 0; i < t.length; i++) this.addDisplayable(t[i], e) + }, Gn.prototype.eachPendingDisplayable = function(t) { + for (e = this._cursor; e < this._displayables.length; e++) t && t(this._displayables[e]); + for (var e = 0; e < this._temporaryDisplayables.length; e++) t && t(this._temporaryDisplayables[e]) + }, Gn.prototype.update = function() { + this.updateTransform(); + for (t = this._cursor; t < this._displayables.length; t++)(e = this._displayables[t]).parent = this, e.update(), e.parent = null; + for (var t = 0; t < this._temporaryDisplayables.length; t++) { + var e = this._temporaryDisplayables[t]; + e.parent = this, e.update(), e.parent = null + } + }, Gn.prototype.brush = function(t, e) { + for (i = this._cursor; i < this._displayables.length; i++)(n = this._displayables[i]).beforeBrush && n.beforeBrush(t), n.brush(t, i === this._cursor ? null : this._displayables[i - 1]), n.afterBrush && n.afterBrush(t); + this._cursor = i; + for (var i = 0; i < this._temporaryDisplayables.length; i++) { + var n = this._temporaryDisplayables[i]; + n.beforeBrush && n.beforeBrush(t), n.brush(t, 0 === i ? null : this._temporaryDisplayables[i - 1]), n.afterBrush && n.afterBrush(t) + } + this._temporaryDisplayables = [], this.notClear = !0 + }; + var pM = []; + Gn.prototype.getBoundingRect = function() { + if (!this._rect) { + for (var t = new ue(1 / 0, 1 / 0, -1 / 0, -1 / 0), e = 0; e < this._displayables.length; e++) { + var i = this._displayables[e], + n = i.getBoundingRect().clone(); + i.needLocalTransform() && n.applyTransform(i.getLocalTransform(pM)), t.union(n) + } + this._rect = t + } + return this._rect + }, Gn.prototype.contain = function(t, e) { + var i = this.transformCoordToLocal(t, e); + if (this.getBoundingRect().contain(i[0], i[1])) + for (var n = 0; n < this._displayables.length; n++) + if (this._displayables[n].contain(t, e)) return !0; + return !1 + }, u(Gn, ui); + var gM = Math.round, + mM = Math.max, + vM = Math.min, + yM = {}, + xM = function(t, e) { + for (var i = [], n = t.length, o = 0; o < n; o++) { + var a = t[o]; + a.path || a.createPathProxy(), a.__dirtyPath && a.buildPath(a.path, a.shape, !0), i.push(a.path) + } + var r = new kn(e); + return r.createPathProxy(), r.buildPath = function(t) { + t.appendPath(i); + var e = t.getContext(); + e && t.rebuildPath(e) + }, r + }, + _M = R(), + wM = 0, + bM = (Object.freeze || Object)({ + extendShape: Fn, + extendPath: function(t, e) { + return Rn(t, e) + }, + makePath: Wn, + makeImage: Hn, + mergePath: xM, + resizePath: Un, + subPixelOptimizeLine: Xn, + subPixelOptimizeRect: jn, + subPixelOptimize: Yn, + setElementHoverStyle: no, + isInEmphasis: oo, + setHoverStyle: uo, + setAsHoverStyleTrigger: ho, + setLabelStyle: co, + setTextStyle: fo, + setText: function(t, e, i) { + var n, o = { + isRectText: !0 + }; + !1 === i ? n = !0 : o.autoColor = i, po(t, e, o, n) + }, + getFont: _o, + updateProps: bo, + initProps: So, + getTransform: Mo, + applyTransform: Io, + transformDirection: To, + groupTransition: Ao, + clipPointsByRect: Do, + clipRectByRect: function(t, e) { + var i = mM(t.x, e.x), + n = vM(t.x + t.width, e.x + e.width), + o = mM(t.y, e.y), + a = vM(t.y + t.height, e.y + e.height); + if (n >= i && a >= o) return { + x: i, + y: o, + width: n - i, + height: a - o + } + }, + createIcon: Co, + Group: Zw, + Image: hi, + Text: qS, + Circle: KS, + Sector: QS, + Ring: tM, + Polygon: nM, + Polyline: oM, + Rect: aM, + Line: rM, + BezierCurve: lM, + Arc: uM, + IncrementalDisplayable: Gn, + CompoundPath: hM, + LinearGradient: dM, + RadialGradient: fM, + BoundingRect: ue + }), + SM = ["textStyle", "color"], + MM = { + getTextColor: function(t) { + var e = this.ecModel; + return this.getShallow("color") || (!t && e ? e.get(SM) : null) + }, + getFont: function() { + return _o({ + fontStyle: this.getShallow("fontStyle"), + fontWeight: this.getShallow("fontWeight"), + fontSize: this.getShallow("fontSize"), + fontFamily: this.getShallow("fontFamily") + }, this.ecModel) + }, + getTextRect: function(t) { + return De(t, this.getFont(), this.getShallow("align"), this.getShallow("verticalAlign") || this.getShallow("baseline"), this.getShallow("padding"), this.getShallow("rich"), this.getShallow("truncateText")) + } + }, + IM = Wb([ + ["fill", "color"], + ["stroke", "borderColor"], + ["lineWidth", "borderWidth"], + ["opacity"], + ["shadowBlur"], + ["shadowOffsetX"], + ["shadowOffsetY"], + ["shadowColor"], + ["textPosition"], + ["textAlign"] + ]), + TM = { + getItemStyle: function(t, e) { + var i = IM(this, t, e), + n = this.getBorderLineDash(); + return n && (i.lineDash = n), i + }, + getBorderLineDash: function() { + var t = this.get("borderType"); + return "solid" === t || null == t ? null : "dashed" === t ? [5, 5] : [1, 1] + } + }, + AM = h, + DM = Bi(); + Lo.prototype = { + constructor: Lo, + init: null, + mergeOption: function(t) { + n(this.option, t, !0) + }, + get: function(t, e) { + return null == t ? this.option : ko(this.option, this.parsePath(t), !e && Po(this, t)) + }, + getShallow: function(t, e) { + var i = this.option, + n = null == i ? i : i[t], + o = !e && Po(this, t); + return null == n && o && (n = o.getShallow(t)), n + }, + getModel: function(t, e) { + var i, n = null == t ? this.option : ko(this.option, t = this.parsePath(t)); + return e = e || (i = Po(this, t)) && i.getModel(t), new Lo(n, e, this.ecModel) + }, + isEmpty: function() { + return null == this.option + }, + restoreData: function() {}, + clone: function() { + return new(0, this.constructor)(i(this.option)) + }, + setReadOnly: function(t) {}, + parsePath: function(t) { + return "string" == typeof t && (t = t.split(".")), t + }, + customizeGetParent: function(t) { + DM(this).getParent = t + }, + isAnimationEnabled: function() { + if (!z_.node) { + if (null != this.option.animation) return !!this.option.animation; + if (this.parentModel) return this.parentModel.isAnimationEnabled() + } + } + }, Xi(Lo), ji(Lo), AM(Lo, Zb), AM(Lo, Xb), AM(Lo, MM), AM(Lo, TM); + var CM = 0, + LM = 1e-4, + kM = 9007199254740991, + PM = /^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d\d)(?::(\d\d)(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/, + NM = (Object.freeze || Object)({ + linearMap: Eo, + parsePercent: Ro, + round: zo, + asc: Bo, + getPrecision: Vo, + getPrecisionSafe: Go, + getPixelPrecision: Fo, + getPercentWithPrecision: Wo, + MAX_SAFE_INTEGER: kM, + remRadian: Ho, + isRadianAroundZero: Zo, + parseDate: Uo, + quantity: Xo, + nice: Yo, + quantile: function(t, e) { + var i = (t.length - 1) * e + 1, + n = Math.floor(i), + o = +t[n - 1], + a = i - n; + return a ? o + a * (t[n] - o) : o + }, + reformIntervals: qo, + isNumeric: Ko + }), + OM = L, + EM = /([&<>"'])/g, + RM = { + "&": "&", + "<": "<", + ">": ">", + '"': """, + "'": "'" + }, + zM = ["a", "b", "c", "d", "e", "f", "g"], + BM = function(t, e) { + return "{" + t + (null == e ? "" : e) + "}" + }, + VM = Oe, + GM = De, + FM = (Object.freeze || Object)({ + addCommas: $o, + toCamelCase: Jo, + normalizeCssArray: OM, + encodeHTML: Qo, + formatTpl: ta, + formatTplSimple: ea, + getTooltipMarker: ia, + formatTime: oa, + capitalFirst: aa, + truncateText: VM, + getTextRect: GM + }), + WM = d, + HM = ["left", "right", "top", "bottom", "width", "height"], + ZM = [ + ["width", "left", "right"], + ["height", "top", "bottom"] + ], + UM = ra, + XM = (v(ra, "vertical"), v(ra, "horizontal"), { + getBoxLayoutParams: function() { + return { + left: this.get("left"), + top: this.get("top"), + right: this.get("right"), + bottom: this.get("bottom"), + width: this.get("width"), + height: this.get("height") + } + } + }), + jM = Bi(), + YM = Lo.extend({ + type: "component", + id: "", + name: "", + mainType: "", + subType: "", + componentIndex: 0, + defaultOption: null, + ecModel: null, + dependentModels: [], + uid: null, + layoutMode: null, + $constructor: function(t, e, i, n) { + Lo.call(this, t, e, i, n), this.uid = No("ec_cpt_model") + }, + init: function(t, e, i, n) { + this.mergeDefaultAndTheme(t, i) + }, + mergeDefaultAndTheme: function(t, e) { + var i = this.layoutMode, + o = i ? da(t) : {}; + n(t, e.getTheme().get(this.mainType)), n(t, this.getDefaultOption()), i && ca(t, o, i) + }, + mergeOption: function(t, e) { + n(this.option, t, !0); + var i = this.layoutMode; + i && ca(this.option, t, i) + }, + optionUpdated: function(t, e) {}, + getDefaultOption: function() { + var t = jM(this); + if (!t.defaultOption) { + for (var e = [], i = this.constructor; i;) { + var o = i.prototype.defaultOption; + o && e.push(o), i = i.superClass + } + for (var a = {}, r = e.length - 1; r >= 0; r--) a = n(a, e[r], !0); + t.defaultOption = a + } + return t.defaultOption + }, + getReferringComponents: function(t) { + return this.ecModel.queryComponents({ + mainType: t, + index: this.get(t + "Index", !0), + id: this.get(t + "Id", !0) + }) + } + }); + Ki(YM, { + registerWhenExtend: !0 + }), + function(t) { + var e = {}; + t.registerSubTypeDefaulter = function(t, i) { + t = Zi(t), e[t.main] = i + }, t.determineSubType = function(i, n) { + var o = n.type; + if (!o) { + var a = Zi(i).main; + t.hasSubTypes(i) && e[a] && (o = e[a](n)) + } + return o + } + }(YM), + function(t, e) { + function i(t) { + var i = {}, + a = []; + return d(t, function(r) { + var s = n(i, r), + u = o(s.originalDeps = e(r), t); + s.entryCount = u.length, 0 === s.entryCount && a.push(r), d(u, function(t) { + l(s.predecessor, t) < 0 && s.predecessor.push(t); + var e = n(i, t); + l(e.successor, t) < 0 && e.successor.push(r) + }) + }), { + graph: i, + noEntryList: a + } + } + + function n(t, e) { + return t[e] || (t[e] = { + predecessor: [], + successor: [] + }), t[e] + } + + function o(t, e) { + var i = []; + return d(t, function(t) { + l(e, t) >= 0 && i.push(t) + }), i + } + t.topologicalTravel = function(t, e, n, o) { + function a(t) { + s[t].entryCount--, 0 === s[t].entryCount && l.push(t) + } + if (t.length) { + var r = i(e), + s = r.graph, + l = r.noEntryList, + u = {}; + for (d(t, function(t) { + u[t] = !0 + }); l.length;) { + var h = l.pop(), + c = s[h], + f = !!u[h]; + f && (n.call(o, h, c.originalDeps.slice()), delete u[h]), d(c.successor, f ? function(t) { + u[t] = !0, a(t) + } : a) + } + d(u, function() { + throw new Error("Circle dependency may exists") + }) + } + } + }(YM, function(t) { + var e = []; + return d(YM.getClassesByMainType(t), function(t) { + e = e.concat(t.prototype.dependencies || []) + }), e = f(e, function(t) { + return Zi(t).main + }), "dataset" !== t && l(e, "dataset") <= 0 && e.unshift("dataset"), e + }), h(YM, XM); + var qM = ""; + "undefined" != typeof navigator && (qM = navigator.platform || ""); + var KM = { + color: ["#c23531", "#2f4554", "#61a0a8", "#d48265", "#91c7ae", "#749f83", "#ca8622", "#bda29a", "#6e7074", "#546570", "#c4ccd3"], + gradientColor: ["#f6efa6", "#d88273", "#bf444c"], + textStyle: { + fontFamily: qM.match(/^Win/) ? "Microsoft YaHei" : "sans-serif", + fontSize: 12, + fontStyle: "normal", + fontWeight: "normal" + }, + blendMode: null, + animation: "auto", + animationDuration: 1e3, + animationDurationUpdate: 300, + animationEasing: "exponentialOut", + animationEasingUpdate: "cubicOut", + animationThreshold: 2e3, + progressiveThreshold: 3e3, + progressive: 400, + hoverLayerThreshold: 3e3, + useUTC: !1 + }, + $M = Bi(), + JM = { + clearColorPalette: function() { + $M(this).colorIdx = 0, $M(this).colorNameMap = {} + }, + getColorFromPalette: function(t, e, i) { + var n = $M(e = e || this), + o = n.colorIdx || 0, + a = n.colorNameMap = n.colorNameMap || {}; + if (a.hasOwnProperty(t)) return a[t]; + var r = Di(this.get("color", !0)), + s = this.get("colorLayer", !0), + l = null != i && s ? pa(s, i) : r; + if ((l = l || r) && l.length) { + var u = l[o]; + return t && (a[t] = u), n.colorIdx = (o + 1) % l.length, u + } + } + }, + QM = { + cartesian2d: function(t, e, i, n) { + var o = t.getReferringComponents("xAxis")[0], + a = t.getReferringComponents("yAxis")[0]; + e.coordSysDims = ["x", "y"], i.set("x", o), i.set("y", a), ma(o) && (n.set("x", o), e.firstCategoryDimIndex = 0), ma(a) && (n.set("y", a), e.firstCategoryDimIndex = 1) + }, + singleAxis: function(t, e, i, n) { + var o = t.getReferringComponents("singleAxis")[0]; + e.coordSysDims = ["single"], i.set("single", o), ma(o) && (n.set("single", o), e.firstCategoryDimIndex = 0) + }, + polar: function(t, e, i, n) { + var o = t.getReferringComponents("polar")[0], + a = o.findAxisModel("radiusAxis"), + r = o.findAxisModel("angleAxis"); + e.coordSysDims = ["radius", "angle"], i.set("radius", a), i.set("angle", r), ma(a) && (n.set("radius", a), e.firstCategoryDimIndex = 0), ma(r) && (n.set("angle", r), e.firstCategoryDimIndex = 1) + }, + geo: function(t, e, i, n) { + e.coordSysDims = ["lng", "lat"] + }, + parallel: function(t, e, i, n) { + var o = t.ecModel, + a = o.getComponent("parallel", t.get("parallelIndex")), + r = e.coordSysDims = a.dimensions.slice(); + d(a.parallelAxisIndex, function(t, a) { + var s = o.getComponent("parallelAxis", t), + l = r[a]; + i.set(l, s), ma(s) && null == e.firstCategoryDimIndex && (n.set(l, s), e.firstCategoryDimIndex = a) + }) + } + }, + tI = "original", + eI = "arrayRows", + iI = "objectRows", + nI = "keyedColumns", + oI = "unknown", + aI = "typedArray", + rI = "column", + sI = "row"; + va.seriesDataToSource = function(t) { + return new va({ + data: t, + sourceFormat: S(t) ? aI : tI, + fromDataset: !1 + }) + }, ji(va); + var lI = Bi(), + uI = "\0_ec_inner", + hI = Lo.extend({ + init: function(t, e, i, n) { + i = i || {}, this.option = null, this._theme = new Lo(i), this._optionManager = n + }, + setOption: function(t, e) { + k(!(uI in t), "please use chart.getOption()"), this._optionManager.setOption(t, e), this.resetOption(null) + }, + resetOption: function(t) { + var e = !1, + i = this._optionManager; + if (!t || "recreate" === t) { + var n = i.mountOption("recreate" === t); + this.option && "recreate" !== t ? (this.restoreData(), this.mergeOption(n)) : Pa.call(this, n), e = !0 + } + if ("timeline" !== t && "media" !== t || this.restoreData(), !t || "recreate" === t || "timeline" === t) { + var o = i.getTimelineOption(this); + o && (this.mergeOption(o), e = !0) + } + if (!t || "recreate" === t || "media" === t) { + var a = i.getMediaOption(this, this._api); + a.length && d(a, function(t) { + this.mergeOption(t, e = !0) + }, this) + } + return e + }, + mergeOption: function(t) { + var e = this.option, + o = this._componentsMap, + r = []; + _a(this), d(t, function(t, o) { + null != t && (YM.hasClass(o) ? o && r.push(o) : e[o] = null == e[o] ? i(t) : n(e[o], t, !0)) + }), YM.topologicalTravel(r, YM.getAllClassMainTypes(), function(i, n) { + var r = Di(t[i]), + s = Pi(o.get(i), r); + Ni(s), d(s, function(t, e) { + var n = t.option; + w(n) && (t.keyInfo.mainType = i, t.keyInfo.subType = Oa(i, n, t.exist)) + }); + var l = Na(o, n); + e[i] = [], o.set(i, []), d(s, function(t, n) { + var r = t.exist, + s = t.option; + if (k(w(s) || r, "Empty component definition"), s) { + var u = YM.getClass(i, t.keyInfo.subType, !0); + if (r && r instanceof u) r.name = t.keyInfo.name, r.mergeOption(s, this), r.optionUpdated(s, !1); + else { + var h = a({ + dependentModels: l, + componentIndex: n + }, t.keyInfo); + a(r = new u(s, this, this, h), h), r.init(s, this, this, h), r.optionUpdated(null, !0) + } + } else r.mergeOption({}, this), r.optionUpdated({}, !1); + o.get(i)[n] = r, e[i][n] = r.option + }, this), "series" === i && Ea(this, o.get("series")) + }, this), this._seriesIndicesMap = R(this._seriesIndices = this._seriesIndices || []) + }, + getOption: function() { + var t = i(this.option); + return d(t, function(e, i) { + if (YM.hasClass(i)) { + for (var n = (e = Di(e)).length - 1; n >= 0; n--) Ei(e[n]) && e.splice(n, 1); + t[i] = e + } + }), delete t[uI], t + }, + getTheme: function() { + return this._theme + }, + getComponent: function(t, e) { + var i = this._componentsMap.get(t); + if (i) return i[e || 0] + }, + queryComponents: function(t) { + var e = t.mainType; + if (!e) return []; + var i = t.index, + n = t.id, + o = t.name, + a = this._componentsMap.get(e); + if (!a || !a.length) return []; + var r; + if (null != i) y(i) || (i = [i]), r = g(f(i, function(t) { + return a[t] + }), function(t) { + return !!t + }); + else if (null != n) { + var s = y(n); + r = g(a, function(t) { + return s && l(n, t.id) >= 0 || !s && t.id === n + }) + } else if (null != o) { + var u = y(o); + r = g(a, function(t) { + return u && l(o, t.name) >= 0 || !u && t.name === o + }) + } else r = a.slice(); + return Ra(r, t) + }, + findComponents: function(t) { + var e = t.query, + i = t.mainType, + n = function(t) { + var e = i + "Index", + n = i + "Id", + o = i + "Name"; + return !t || null == t[e] && null == t[n] && null == t[o] ? null : { + mainType: i, + index: t[e], + id: t[n], + name: t[o] + } + }(e); + return function(e) { + return t.filter ? g(e, t.filter) : e + }(Ra(n ? this.queryComponents(n) : this._componentsMap.get(i), t)) + }, + eachComponent: function(t, e, i) { + var n = this._componentsMap; + "function" == typeof t ? (i = e, e = t, n.each(function(t, n) { + d(t, function(t, o) { + e.call(i, n, t, o) + }) + })) : _(t) ? d(n.get(t), e, i) : w(t) && d(this.findComponents(t), e, i) + }, + getSeriesByName: function(t) { + return g(this._componentsMap.get("series"), function(e) { + return e.name === t + }) + }, + getSeriesByIndex: function(t) { + return this._componentsMap.get("series")[t] + }, + getSeriesByType: function(t) { + return g(this._componentsMap.get("series"), function(e) { + return e.subType === t + }) + }, + getSeries: function() { + return this._componentsMap.get("series").slice() + }, + getSeriesCount: function() { + return this._componentsMap.get("series").length + }, + eachSeries: function(t, e) { + d(this._seriesIndices, function(i) { + var n = this._componentsMap.get("series")[i]; + t.call(e, n, i) + }, this) + }, + eachRawSeries: function(t, e) { + d(this._componentsMap.get("series"), t, e) + }, + eachSeriesByType: function(t, e, i) { + d(this._seriesIndices, function(n) { + var o = this._componentsMap.get("series")[n]; + o.subType === t && e.call(i, o, n) + }, this) + }, + eachRawSeriesByType: function(t, e, i) { + return d(this.getSeriesByType(t), e, i) + }, + isSeriesFiltered: function(t) { + return null == this._seriesIndicesMap.get(t.componentIndex) + }, + getCurrentSeriesIndices: function() { + return (this._seriesIndices || []).slice() + }, + filterSeries: function(t, e) { + Ea(this, g(this._componentsMap.get("series"), t, e)) + }, + restoreData: function(t) { + var e = this._componentsMap; + Ea(this, e.get("series")); + var i = []; + e.each(function(t, e) { + i.push(e) + }), YM.topologicalTravel(i, YM.getAllClassMainTypes(), function(i, n) { + d(e.get(i), function(e) { + ("series" !== i || !La(e, t)) && e.restoreData() + }) + }) + } + }); + h(hI, JM); + var cI = ["getDom", "getZr", "getWidth", "getHeight", "getDevicePixelRatio", "dispatchAction", "isDisposed", "on", "off", "getDataURL", "getConnectedDataURL", "getModel", "getOption", "getViewOfComponentModel", "getViewOfSeriesModel"], + dI = {}; + Ba.prototype = { + constructor: Ba, + create: function(t, e) { + var i = []; + d(dI, function(n, o) { + var a = n.create(t, e); + i = i.concat(a || []) + }), this._coordinateSystems = i + }, + update: function(t, e) { + d(this._coordinateSystems, function(i) { + i.update && i.update(t, e) + }) + }, + getCoordinateSystems: function() { + return this._coordinateSystems.slice() + } + }, Ba.register = function(t, e) { + dI[t] = e + }, Ba.get = function(t) { + return dI[t] + }; + var fI = d, + pI = i, + gI = f, + mI = n, + vI = /^(min|max)?(.+)$/; + Va.prototype = { + constructor: Va, + setOption: function(t, e) { + t && d(Di(t.series), function(t) { + t && t.data && S(t.data) && N(t.data) + }), t = pI(t, !0); + var i = this._optionBackup, + n = Ga.call(this, t, e, !i); + this._newBaseOption = n.baseOption, i ? (Za(i.baseOption, n.baseOption), n.timelineOptions.length && (i.timelineOptions = n.timelineOptions), n.mediaList.length && (i.mediaList = n.mediaList), n.mediaDefault && (i.mediaDefault = n.mediaDefault)) : this._optionBackup = n + }, + mountOption: function(t) { + var e = this._optionBackup; + return this._timelineOptions = gI(e.timelineOptions, pI), this._mediaList = gI(e.mediaList, pI), this._mediaDefault = pI(e.mediaDefault), this._currentMediaIndices = [], pI(t ? e.baseOption : this._newBaseOption) + }, + getTimelineOption: function(t) { + var e, i = this._timelineOptions; + if (i.length) { + var n = t.getComponent("timeline"); + n && (e = pI(i[n.getCurrentIndex()], !0)) + } + return e + }, + getMediaOption: function(t) { + var e = this._api.getWidth(), + i = this._api.getHeight(), + n = this._mediaList, + o = this._mediaDefault, + a = [], + r = []; + if (!n.length && !o) return r; + for (var s = 0, l = n.length; s < l; s++) Fa(n[s].query, e, i) && a.push(s); + return !a.length && o && (a = [-1]), a.length && !Ha(a, this._currentMediaIndices) && (r = gI(a, function(t) { + return pI(-1 === t ? o.option : n[t].option) + })), this._currentMediaIndices = a, r + } + }; + var yI = d, + xI = w, + _I = ["areaStyle", "lineStyle", "nodeStyle", "linkStyle", "chordStyle", "label", "labelLine"], + wI = function(t, e) { + yI($a(t.series), function(t) { + xI(t) && Ka(t) + }); + var i = ["xAxis", "yAxis", "radiusAxis", "angleAxis", "singleAxis", "parallelAxis", "radar"]; + e && i.push("valueAxis", "categoryAxis", "logAxis", "timeAxis"), yI(i, function(e) { + yI($a(t[e]), function(t) { + t && (Ya(t, "axisLabel"), Ya(t.axisPointer, "label")) + }) + }), yI($a(t.parallel), function(t) { + var e = t && t.parallelAxisDefault; + Ya(e, "axisLabel"), Ya(e && e.axisPointer, "label") + }), yI($a(t.calendar), function(t) { + Xa(t, "itemStyle"), Ya(t, "dayLabel"), Ya(t, "monthLabel"), Ya(t, "yearLabel") + }), yI($a(t.radar), function(t) { + Ya(t, "name") + }), yI($a(t.geo), function(t) { + xI(t) && (qa(t), yI($a(t.regions), function(t) { + qa(t) + })) + }), yI($a(t.timeline), function(t) { + qa(t), Xa(t, "label"), Xa(t, "itemStyle"), Xa(t, "controlStyle", !0); + var e = t.data; + y(e) && d(e, function(t) { + w(t) && (Xa(t, "label"), Xa(t, "itemStyle")) + }) + }), yI($a(t.toolbox), function(t) { + Xa(t, "iconStyle"), yI(t.feature, function(t) { + Xa(t, "iconStyle") + }) + }), Ya(Ja(t.axisPointer), "label"), Ya(Ja(t.tooltip).axisPointer, "label") + }, + bI = [ + ["x", "left"], + ["y", "top"], + ["x2", "right"], + ["y2", "bottom"] + ], + SI = ["grid", "geo", "parallel", "legend", "toolbox", "title", "visualMap", "dataZoom", "timeline"], + MI = function(t, e) { + wI(t, e), t.series = Di(t.series), d(t.series, function(t) { + if (w(t)) { + var e = t.type; + if ("pie" !== e && "gauge" !== e || null != t.clockWise && (t.clockwise = t.clockWise), "gauge" === e) { + var i = Qa(t, "pointer.color"); + null != i && tr(t, "itemStyle.normal.color", i) + } + er(t) + } + }), t.dataRange && (t.visualMap = t.dataRange), d(SI, function(e) { + var i = t[e]; + i && (y(i) || (i = [i]), d(i, function(t) { + er(t) + })) + }) + }, + II = nr.prototype; + II.pure = !1, II.persistent = !0, II.getSource = function() { + return this._source + }; + var TI = { + arrayRows_column: { + pure: !0, + count: function() { + return Math.max(0, this._data.length - this._source.startIndex) + }, + getItem: function(t) { + return this._data[t + this._source.startIndex] + }, + appendData: rr + }, + arrayRows_row: { + pure: !0, + count: function() { + var t = this._data[0]; + return t ? Math.max(0, t.length - this._source.startIndex) : 0 + }, + getItem: function(t) { + t += this._source.startIndex; + for (var e = [], i = this._data, n = 0; n < i.length; n++) { + var o = i[n]; + e.push(o ? o[t] : null) + } + return e + }, + appendData: function() { + throw new Error('Do not support appendData when set seriesLayoutBy: "row".') + } + }, + objectRows: { + pure: !0, + count: or, + getItem: ar, + appendData: rr + }, + keyedColumns: { + pure: !0, + count: function() { + var t = this._source.dimensionsDefine[0].name, + e = this._data[t]; + return e ? e.length : 0 + }, + getItem: function(t) { + for (var e = [], i = this._source.dimensionsDefine, n = 0; n < i.length; n++) { + var o = this._data[i[n].name]; + e.push(o ? o[t] : null) + } + return e + }, + appendData: function(t) { + var e = this._data; + d(t, function(t, i) { + for (var n = e[i] || (e[i] = []), o = 0; o < (t || []).length; o++) n.push(t[o]) + }) + } + }, + original: { + count: or, + getItem: ar, + appendData: rr + }, + typedArray: { + persistent: !1, + pure: !0, + count: function() { + return this._data ? this._data.length / this._dimSize : 0 + }, + getItem: function(t, e) { + t -= this._offset, e = e || []; + for (var i = this._dimSize * t, n = 0; n < this._dimSize; n++) e[n] = this._data[i + n]; + return e + }, + appendData: function(t) { + this._data = t + }, + clean: function() { + this._offset += this.count(), this._data = null + } + } + }, + AI = { + arrayRows: sr, + objectRows: function(t, e, i, n) { + return null != i ? t[n] : t + }, + keyedColumns: sr, + original: function(t, e, i, n) { + var o = Li(t); + return null != i && o instanceof Array ? o[i] : o + }, + typedArray: sr + }, + DI = { + arrayRows: lr, + objectRows: function(t, e, i, n) { + return ur(t[e], this._dimensionInfos[e]) + }, + keyedColumns: lr, + original: function(t, e, i, n) { + var o = t && (null == t.value ? t : t.value); + return !this._rawData.pure && ki(t) && (this.hasItemOption = !0), ur(o instanceof Array ? o[n] : o, this._dimensionInfos[e]) + }, + typedArray: function(t, e, i, n) { + return t[n] + } + }, + CI = /\{@(.+?)\}/g, + LI = { + getDataParams: function(t, e) { + var i = this.getData(e), + n = this.getRawValue(t, e), + o = i.getRawIndex(t), + a = i.getName(t), + r = i.getRawDataItem(t), + s = i.getItemVisual(t, "color"), + l = this.ecModel.getComponent("tooltip"), + u = Hi(l && l.get("renderMode")), + h = this.mainType, + c = "series" === h; + return { + componentType: h, + componentSubType: this.subType, + componentIndex: this.componentIndex, + seriesType: c ? this.subType : null, + seriesIndex: this.seriesIndex, + seriesId: c ? this.id : null, + seriesName: c ? this.name : null, + name: a, + dataIndex: o, + data: r, + dataType: e, + value: n, + color: s, + marker: ia({ + color: s, + renderMode: u + }), + $vars: ["seriesName", "name", "value"] + } + }, + getFormattedLabel: function(t, e, i, n, o) { + e = e || "normal"; + var a = this.getData(i), + r = a.getItemModel(t), + s = this.getDataParams(t, i); + null != n && s.value instanceof Array && (s.value = s.value[n]); + var l = r.get("normal" === e ? [o || "label", "formatter"] : [e, o || "label", "formatter"]); + return "function" == typeof l ? (s.status = e, l(s)) : "string" == typeof l ? ta(l, s).replace(CI, function(e, i) { + var n = i.length; + return "[" === i.charAt(0) && "]" === i.charAt(n - 1) && (i = +i.slice(1, n - 1)), hr(a, t, i) + }) : void 0 + }, + getRawValue: function(t, e) { + return hr(this.getData(e), t) + }, + formatTooltip: function() {} + }, + kI = fr.prototype; + kI.perform = function(t) { + function e(t) { + return !(t >= 1) && (t = 1), t + } + var i = this._upstream, + n = t && t.skip; + if (this._dirty && i) { + var o = this.context; + o.data = o.outputData = i.context.outputData + } + this.__pipeline && (this.__pipeline.currentTask = this); + var a; + this._plan && !n && (a = this._plan(this.context)); + var r = e(this._modBy), + s = this._modDataCount || 0, + l = e(t && t.modBy), + u = t && t.modDataCount || 0; + r === l && s === u || (a = "reset"); + var h; + (this._dirty || "reset" === a) && (this._dirty = !1, h = gr(this, n)), this._modBy = l, this._modDataCount = u; + var c = t && t.step; + if (this._dueEnd = i ? i._outputDueEnd : this._count ? this._count(this.context) : 1 / 0, this._progress) { + var d = this._dueIndex, + f = Math.min(null != c ? this._dueIndex + c : 1 / 0, this._dueEnd); + if (!n && (h || d < f)) { + var p = this._progress; + if (y(p)) + for (var g = 0; g < p.length; g++) pr(this, p[g], d, f, l, u); + else pr(this, p, d, f, l, u) + } + this._dueIndex = f; + var m = null != this._settedOutputEnd ? this._settedOutputEnd : f; + this._outputDueEnd = m + } else this._dueIndex = this._outputDueEnd = null != this._settedOutputEnd ? this._settedOutputEnd : this._dueEnd; + return this.unfinished() + }; + var PI = function() { + function t() { + return n < i ? n++ : null + } + + function e() { + var t = n % r * o + Math.ceil(n / r), + e = n >= i ? null : t < a ? t : n; + return n++, e + } + var i, n, o, a, r, s = { + reset: function(l, u, h, c) { + n = l, i = u, o = h, a = c, r = Math.ceil(a / o), s.next = o > 1 && a > 0 ? e : t + } + }; + return s + }(); + kI.dirty = function() { + this._dirty = !0, this._onDirty && this._onDirty(this.context) + }, kI.unfinished = function() { + return this._progress && this._dueIndex < this._dueEnd + }, kI.pipe = function(t) { + (this._downstream !== t || this._dirty) && (this._downstream = t, t._upstream = this, t.dirty()) + }, kI.dispose = function() { + this._disposed || (this._upstream && (this._upstream._downstream = null), this._downstream && (this._downstream._upstream = null), this._dirty = !1, this._disposed = !0) + }, kI.getUpstream = function() { + return this._upstream + }, kI.getDownstream = function() { + return this._downstream + }, kI.setOutputEnd = function(t) { + this._outputDueEnd = this._settedOutputEnd = t + }; + var NI = Bi(), + OI = YM.extend({ + type: "series.__base__", + seriesIndex: 0, + coordinateSystem: null, + defaultOption: null, + legendDataProvider: null, + visualColorAccessPath: "itemStyle.color", + layoutMode: null, + init: function(t, e, i, n) { + this.seriesIndex = this.componentIndex, this.dataTask = dr({ + count: yr, + reset: xr + }), this.dataTask.context = { + model: this + }, this.mergeDefaultAndTheme(t, i), wa(this); + var o = this.getInitialData(t, i); + wr(o, this), this.dataTask.context.data = o, NI(this).dataBeforeProcessed = o, mr(this) + }, + mergeDefaultAndTheme: function(t, e) { + var i = this.layoutMode, + o = i ? da(t) : {}, + a = this.subType; + YM.hasClass(a) && (a += "Series"), n(t, e.getTheme().get(this.subType)), n(t, this.getDefaultOption()), Ci(t, "label", ["show"]), this.fillDataTextStyle(t.data), i && ca(t, o, i) + }, + mergeOption: function(t, e) { + t = n(this.option, t, !0), this.fillDataTextStyle(t.data); + var i = this.layoutMode; + i && ca(this.option, t, i), wa(this); + var o = this.getInitialData(t, e); + wr(o, this), this.dataTask.dirty(), this.dataTask.context.data = o, NI(this).dataBeforeProcessed = o, mr(this) + }, + fillDataTextStyle: function(t) { + if (t && !S(t)) + for (var e = ["show"], i = 0; i < t.length; i++) t[i] && t[i].label && Ci(t[i], "label", e) + }, + getInitialData: function() {}, + appendData: function(t) { + this.getRawData().appendData(t.data) + }, + getData: function(t) { + var e = Sr(this); + if (e) { + var i = e.context.data; + return null == t ? i : i.getLinkedData(t) + } + return NI(this).data + }, + setData: function(t) { + var e = Sr(this); + if (e) { + var i = e.context; + i.data !== t && e.modifyOutputEnd && e.setOutputEnd(t.count()), i.outputData = t, e !== this.dataTask && (i.data = t) + } + NI(this).data = t + }, + getSource: function() { + return xa(this) + }, + getRawData: function() { + return NI(this).dataBeforeProcessed + }, + getBaseAxis: function() { + var t = this.coordinateSystem; + return t && t.getBaseAxis && t.getBaseAxis() + }, + formatTooltip: function(t, e, i, n) { + function o(t) { + return { + renderMode: n, + content: Qo($o(t)), + style: l + } + } + var a = this, + r = "html" === (n = n || "html") ? "
" : "\n", + s = "richText" === n, + l = {}, + u = 0, + h = this.getData(), + c = h.mapDimension("defaultedTooltip", !0), + f = c.length, + g = this.getRawValue(t), + m = y(g), + v = h.getItemVisual(t, "color"); + w(v) && v.colorStops && (v = (v.colorStops[0] || {}).color), v = v || "transparent"; + var x = (f > 1 || m && !f ? function(i) { + function o(t, i) { + var o = h.getDimensionInfo(i); + if (o && !1 !== o.otherDims.tooltip) { + var c = o.type, + d = "sub" + a.seriesIndex + "at" + u, + p = ia({ + color: v, + type: "subItem", + renderMode: n, + markerId: d + }), + g = "string" == typeof p ? p : p.content, + m = (r ? g + Qo(o.displayName || "-") + ": " : "") + Qo("ordinal" === c ? t + "" : "time" === c ? e ? "" : oa("yyyy/MM/dd hh:mm:ss", t) : $o(t)); + m && f.push(m), s && (l[d] = v, ++u) + } + } + var r = p(i, function(t, e, i) { + var n = h.getDimensionInfo(i); + return t |= n && !1 !== n.tooltip && null != n.displayName + }, 0), + f = []; + c.length ? d(c, function(e) { + o(hr(h, t, e), e) + }) : d(i, o); + var g = r ? s ? "\n" : "
" : "", + m = g + f.join(g || ", "); + return { + renderMode: n, + content: m, + style: l + } + }(g) : o(f ? hr(h, t, c[0]) : m ? g[0] : g)).content, + _ = a.seriesIndex + "at" + u, + b = ia({ + color: v, + type: "item", + renderMode: n, + markerId: _ + }); + l[_] = v, ++u; + var S = h.getName(t), + M = this.name; + Oi(this) || (M = ""), M = M ? Qo(M) + (e ? ": " : r) : ""; + var I = "string" == typeof b ? b : b.content; + return { + html: e ? I + M + x : M + I + (S ? Qo(S) + ": " + x : x), + markers: l + } + }, + isAnimationEnabled: function() { + if (z_.node) return !1; + var t = this.getShallow("animation"); + return t && this.getData().count() > this.getShallow("animationThreshold") && (t = !1), t + }, + restoreData: function() { + this.dataTask.dirty() + }, + getColorFromPalette: function(t, e, i) { + var n = this.ecModel, + o = JM.getColorFromPalette.call(this, t, e, i); + return o || (o = n.getColorFromPalette(t, e, i)), o + }, + coordDimToDataDim: function(t) { + return this.getRawData().mapDimension(t, !0) + }, + getProgressive: function() { + return this.get("progressive") + }, + getProgressiveThreshold: function() { + return this.get("progressiveThreshold") + }, + getAxisTooltipData: null, + getTooltipPosition: null, + pipeTask: null, + preventIncremental: null, + pipelineContext: null + }); + h(OI, LI), h(OI, JM); + var EI = function() { + this.group = new Zw, this.uid = No("viewComponent") + }; + EI.prototype = { + constructor: EI, + init: function(t, e) {}, + render: function(t, e, i, n) {}, + dispose: function() {}, + filterForExposedEvent: null + }; + var RI = EI.prototype; + RI.updateView = RI.updateLayout = RI.updateVisual = function(t, e, i, n) {}, Xi(EI), Ki(EI, { + registerWhenExtend: !0 + }); + var zI = function() { + var t = Bi(); + return function(e) { + var i = t(e), + n = e.pipelineContext, + o = i.large, + a = i.progressiveRender, + r = i.large = n.large, + s = i.progressiveRender = n.progressiveRender; + return !!(o ^ r || a ^ s) && "reset" + } + }, + BI = Bi(), + VI = zI(); + Mr.prototype = { + type: "chart", + init: function(t, e) {}, + render: function(t, e, i, n) {}, + highlight: function(t, e, i, n) { + Tr(t.getData(), n, "emphasis") + }, + downplay: function(t, e, i, n) { + Tr(t.getData(), n, "normal") + }, + remove: function(t, e) { + this.group.removeAll() + }, + dispose: function() {}, + incrementalPrepareRender: null, + incrementalRender: null, + updateTransform: null, + filterForExposedEvent: null + }; + var GI = Mr.prototype; + GI.updateView = GI.updateLayout = GI.updateVisual = function(t, e, i, n) { + this.render(t, e, i, n) + }, Xi(Mr), Ki(Mr, { + registerWhenExtend: !0 + }), Mr.markUpdateMethod = function(t, e) { + BI(t).updateMethod = e + }; + var FI = { + incrementalPrepareRender: { + progress: function(t, e) { + e.view.incrementalRender(t, e.model, e.ecModel, e.api, e.payload) + } + }, + render: { + forceFirstProgress: !0, + progress: function(t, e) { + e.view.render(e.model, e.ecModel, e.api, e.payload) + } + } + }, + WI = "\0__throttleOriginMethod", + HI = "\0__throttleRate", + ZI = "\0__throttleType", + UI = { + createOnAllSeries: !0, + performRawSeries: !0, + reset: function(t, e) { + var i = t.getData(), + n = (t.visualColorAccessPath || "itemStyle.color").split("."), + o = t.get(n) || t.getColorFromPalette(t.name, null, e.getSeriesCount()); + if (i.setVisual("color", o), !e.isSeriesFiltered(t)) { + "function" != typeof o || o instanceof cM || i.each(function(e) { + i.setItemVisual(e, "color", o(t.getDataParams(e))) + }); + return { + dataEach: i.hasItemOption ? function(t, e) { + var i = t.getItemModel(e).get(n, !0); + null != i && t.setItemVisual(e, "color", i) + } : null + } + } + } + }, + XI = { + toolbox: { + brush: { + title: { + rect: "矩形选择", + polygon: "圈选", + lineX: "横向选择", + lineY: "纵向选择", + keep: "保持选择", + clear: "清除选择" + } + }, + dataView: { + title: "数据视图", + lang: ["数据视图", "关闭", "刷新"] + }, + dataZoom: { + title: { + zoom: "区域缩放", + back: "区域缩放还原" + } + }, + magicType: { + title: { + line: "切换为折线图", + bar: "切换为柱状图", + stack: "切换为堆叠", + tiled: "切换为平铺" + } + }, + restore: { + title: "还原" + }, + saveAsImage: { + title: "保存为图片", + lang: ["右键另存为图片"] + } + }, + series: { + typeNames: { + pie: "饼图", + bar: "柱状图", + line: "折线图", + scatter: "散点图", + effectScatter: "涟漪散点图", + radar: "雷达图", + tree: "树图", + treemap: "矩形树图", + boxplot: "箱型图", + candlestick: "K线图", + k: "K线图", + heatmap: "热力图", + map: "地图", + parallel: "平行坐标图", + lines: "线图", + graph: "关系图", + sankey: "桑基图", + funnel: "漏斗图", + gauge: "仪表盘图", + pictorialBar: "象形柱图", + themeRiver: "主题河流图", + sunburst: "旭日图" + } + }, + aria: { + general: { + withTitle: "这是一个关于“{title}”的图表。", + withoutTitle: "这是一个图表," + }, + series: { + single: { + prefix: "", + withName: "图表类型是{seriesType},表示{seriesName}。", + withoutName: "图表类型是{seriesType}。" + }, + multiple: { + prefix: "它由{seriesCount}个图表系列组成。", + withName: "第{seriesId}个系列是一个表示{seriesName}的{seriesType},", + withoutName: "第{seriesId}个系列是一个{seriesType},", + separator: { + middle: ";", + end: "。" + } + } + }, + data: { + allData: "其数据是——", + partialData: "其中,前{displayCnt}项是——", + withName: "{name}的数据是{value}", + withoutName: "{value}", + separator: { + middle: ",", + end: "" + } + } + } + }, + jI = function(t, e) { + function i(t, e) { + if ("string" != typeof t) return t; + var i = t; + return d(e, function(t, e) { + i = i.replace(new RegExp("\\{\\s*" + e + "\\s*\\}", "g"), t) + }), i + } + + function n(t) { + var e = a.get(t); + if (null == e) { + for (var i = t.split("."), n = XI.aria, o = 0; o < i.length; ++o) n = n[i[o]]; + return n + } + return e + } + + function o(t) { + return XI.series.typeNames[t] || "自定义图" + } + var a = e.getModel("aria"); + if (a.get("show")) + if (a.get("description")) t.setAttribute("aria-label", a.get("description")); + else { + var r = 0; + e.eachSeries(function(t, e) { + ++r + }, this); + var s, l = a.get("data.maxCount") || 10, + u = a.get("series.maxCount") || 10, + h = Math.min(r, u); + if (!(r < 1)) { + var c = function() { + var t = e.getModel("title").option; + return t && t.length && (t = t[0]), t && t.text + }(); + s = c ? i(n("general.withTitle"), { + title: c + }) : n("general.withoutTitle"); + var f = []; + s += i(n(r > 1 ? "series.multiple.prefix" : "series.single.prefix"), { + seriesCount: r + }), e.eachSeries(function(t, e) { + if (e < h) { + var a, s = t.get("name"), + u = "series." + (r > 1 ? "multiple" : "single") + "."; + a = i(a = n(s ? u + "withName" : u + "withoutName"), { + seriesId: t.seriesIndex, + seriesName: t.get("name"), + seriesType: o(t.subType) + }); + var c = t.getData(); + window.data = c, c.count() > l ? a += i(n("data.partialData"), { + displayCnt: l + }) : a += n("data.allData"); + for (var d = [], p = 0; p < c.count(); p++) + if (p < l) { + var g = c.getName(p), + m = hr(c, p); + d.push(i(n(g ? "data.withName" : "data.withoutName"), { + name: g, + value: m + })) + } a += d.join(n("data.separator.middle")) + n("data.separator.end"), f.push(a) + } + }), s += f.join(n("series.multiple.separator.middle")) + n("series.multiple.separator.end"), t.setAttribute("aria-label", s) + } + } + }, + YI = Math.PI, + qI = Pr.prototype; + qI.restoreData = function(t, e) { + t.restoreData(e), this._stageTaskMap.each(function(t) { + var e = t.overallTask; + e && e.dirty() + }) + }, qI.getPerformArgs = function(t, e) { + if (t.__pipeline) { + var i = this._pipelineMap.get(t.__pipeline.id), + n = i.context, + o = !e && i.progressiveEnabled && (!n || n.progressiveRender) && t.__idxInPipeline > i.blockIndex ? i.step : null, + a = n && n.modDataCount; + return { + step: o, + modBy: null != a ? Math.ceil(a / o) : null, + modDataCount: a + } + } + }, qI.getPipeline = function(t) { + return this._pipelineMap.get(t) + }, qI.updateStreamModes = function(t, e) { + var i = this._pipelineMap.get(t.uid), + n = t.getData().count(), + o = i.progressiveEnabled && e.incrementalPrepareRender && n >= i.threshold, + a = t.get("large") && n >= t.get("largeThreshold"), + r = "mod" === t.get("progressiveChunkMode") ? n : null; + t.pipelineContext = i.context = { + progressiveRender: o, + modDataCount: r, + large: a + } + }, qI.restorePipelines = function(t) { + var e = this, + i = e._pipelineMap = R(); + t.eachSeries(function(t) { + var n = t.getProgressive(), + o = t.uid; + i.set(o, { + id: o, + head: null, + tail: null, + threshold: t.getProgressiveThreshold(), + progressiveEnabled: n && !(t.preventIncremental && t.preventIncremental()), + blockIndex: -1, + step: Math.round(n || 700), + count: 0 + }), Zr(e, t, t.dataTask) + }) + }, qI.prepareStageTasks = function() { + var t = this._stageTaskMap, + e = this.ecInstance.getModel(), + i = this.api; + d(this._allHandlers, function(n) { + var o = t.get(n.uid) || t.set(n.uid, []); + n.reset && Or(this, n, o, e, i), n.overallReset && Er(this, n, o, e, i) + }, this) + }, qI.prepareView = function(t, e, i, n) { + var o = t.renderTask, + a = o.context; + a.model = e, a.ecModel = i, a.api = n, o.__block = !t.incrementalPrepareRender, Zr(this, e, o) + }, qI.performDataProcessorTasks = function(t, e) { + Nr(this, this._dataProcessorHandlers, t, e, { + block: !0 + }) + }, qI.performVisualTasks = function(t, e, i) { + Nr(this, this._visualHandlers, t, e, i) + }, qI.performSeriesTasks = function(t) { + var e; + t.eachSeries(function(t) { + e |= t.dataTask.perform() + }), this.unfinished |= e + }, qI.plan = function() { + this._pipelineMap.each(function(t) { + var e = t.tail; + do { + if (e.__block) { + t.blockIndex = e.__idxInPipeline; + break + } + e = e.getUpstream() + } while (e) + }) + }; + var KI = qI.updatePayload = function(t, e) { + "remain" !== e && (t.context.payload = e) + }, + $I = Wr(0); + Pr.wrapStageHandler = function(t, e) { + return x(t) && (t = { + overallReset: t, + seriesType: Ur(t) + }), t.uid = No("stageHandler"), e && (t.visualType = e), t + }; + var JI, QI = {}, + tT = {}; + Xr(QI, hI), Xr(tT, za), QI.eachSeriesByType = QI.eachRawSeriesByType = function(t) { + JI = t + }, QI.eachComponent = function(t) { + "series" === t.mainType && t.subType && (JI = t.subType) + }; + var eT = ["#37A2DA", "#32C5E9", "#67E0E3", "#9FE6B8", "#FFDB5C", "#ff9f7f", "#fb7293", "#E062AE", "#E690D1", "#e7bcf3", "#9d96f5", "#8378EA", "#96BFFF"], + iT = { + color: eT, + colorLayer: [ + ["#37A2DA", "#ffd85c", "#fd7b5f"], + ["#37A2DA", "#67E0E3", "#FFDB5C", "#ff9f7f", "#E062AE", "#9d96f5"], + ["#37A2DA", "#32C5E9", "#9FE6B8", "#FFDB5C", "#ff9f7f", "#fb7293", "#e7bcf3", "#8378EA", "#96BFFF"], eT + ] + }, + nT = ["#dd6b66", "#759aa0", "#e69d87", "#8dc1a9", "#ea7e53", "#eedd78", "#73a373", "#73b9bc", "#7289ab", "#91ca8c", "#f49f42"], + oT = { + color: nT, + backgroundColor: "#333", + tooltip: { + axisPointer: { + lineStyle: { + color: "#eee" + }, + crossStyle: { + color: "#eee" + } + } + }, + legend: { + textStyle: { + color: "#eee" + } + }, + textStyle: { + color: "#eee" + }, + title: { + textStyle: { + color: "#eee" + } + }, + toolbox: { + iconStyle: { + normal: { + borderColor: "#eee" + } + } + }, + dataZoom: { + textStyle: { + color: "#eee" + } + }, + visualMap: { + textStyle: { + color: "#eee" + } + }, + timeline: { + lineStyle: { + color: "#eee" + }, + itemStyle: { + normal: { + color: nT[1] + } + }, + label: { + normal: { + textStyle: { + color: "#eee" + } + } + }, + controlStyle: { + normal: { + color: "#eee", + borderColor: "#eee" + } + } + }, + timeAxis: { + axisLine: { + lineStyle: { + color: "#eee" + } + }, + axisTick: { + lineStyle: { + color: "#eee" + } + }, + axisLabel: { + textStyle: { + color: "#eee" + } + }, + splitLine: { + lineStyle: { + type: "dashed", + color: "#aaa" + } + }, + splitArea: { + areaStyle: { + color: "#eee" + } + } + }, + logAxis: { + axisLine: { + lineStyle: { + color: "#eee" + } + }, + axisTick: { + lineStyle: { + color: "#eee" + } + }, + axisLabel: { + textStyle: { + color: "#eee" + } + }, + splitLine: { + lineStyle: { + type: "dashed", + color: "#aaa" + } + }, + splitArea: { + areaStyle: { + color: "#eee" + } + } + }, + valueAxis: { + axisLine: { + lineStyle: { + color: "#eee" + } + }, + axisTick: { + lineStyle: { + color: "#eee" + } + }, + axisLabel: { + textStyle: { + color: "#eee" + } + }, + splitLine: { + lineStyle: { + type: "dashed", + color: "#aaa" + } + }, + splitArea: { + areaStyle: { + color: "#eee" + } + } + }, + categoryAxis: { + axisLine: { + lineStyle: { + color: "#eee" + } + }, + axisTick: { + lineStyle: { + color: "#eee" + } + }, + axisLabel: { + textStyle: { + color: "#eee" + } + }, + splitLine: { + lineStyle: { + type: "dashed", + color: "#aaa" + } + }, + splitArea: { + areaStyle: { + color: "#eee" + } + } + }, + line: { + symbol: "circle" + }, + graph: { + color: nT + }, + gauge: { + title: { + textStyle: { + color: "#eee" + } + } + }, + candlestick: { + itemStyle: { + normal: { + color: "#FD1050", + color0: "#0CF49B", + borderColor: "#FD1050", + borderColor0: "#0CF49B" + } + } + } + }; + oT.categoryAxis.splitLine.show = !1, YM.extend({ + type: "dataset", + defaultOption: { + seriesLayoutBy: rI, + sourceHeader: null, + dimensions: null, + source: null + }, + optionUpdated: function() { + ya(this) + } + }), EI.extend({ + type: "dataset" + }); + var aT = kn.extend({ + type: "ellipse", + shape: { + cx: 0, + cy: 0, + rx: 0, + ry: 0 + }, + buildPath: function(t, e) { + var i = .5522848, + n = e.cx, + o = e.cy, + a = e.rx, + r = e.ry, + s = a * i, + l = r * i; + t.moveTo(n - a, o), t.bezierCurveTo(n - a, o - l, n - s, o - r, n, o - r), t.bezierCurveTo(n + s, o - r, n + a, o - l, n + a, o), t.bezierCurveTo(n + a, o + l, n + s, o + r, n, o + r), t.bezierCurveTo(n - s, o + r, n - a, o + l, n - a, o), t.closePath() + } + }), + rT = /[\s,]+/; + Yr.prototype.parse = function(t, e) { + e = e || {}; + var i = jr(t); + if (!i) throw new Error("Illegal svg"); + var n = new Zw; + this._root = n; + var o = i.getAttribute("viewBox") || "", + a = parseFloat(i.getAttribute("width") || e.width), + r = parseFloat(i.getAttribute("height") || e.height); + isNaN(a) && (a = null), isNaN(r) && (r = null), Jr(i, n, null, !0); + for (var s = i.firstChild; s;) this._parseNode(s, n), s = s.nextSibling; + var l, u; + if (o) { + var h = P(o).split(rT); + h.length >= 4 && (l = { + x: parseFloat(h[0] || 0), + y: parseFloat(h[1] || 0), + width: parseFloat(h[2]), + height: parseFloat(h[3]) + }) + } + if (l && null != a && null != r && (u = is(l, a, r), !e.ignoreViewBox)) { + var c = n; + (n = new Zw).add(c), c.scale = u.scale.slice(), c.position = u.position.slice() + } + return e.ignoreRootClip || null == a || null == r || n.setClipPath(new aM({ + shape: { + x: 0, + y: 0, + width: a, + height: r + } + })), { + root: n, + width: a, + height: r, + viewBoxRect: l, + viewBoxTransform: u + } + }, Yr.prototype._parseNode = function(t, e) { + var i = t.nodeName.toLowerCase(); + "defs" === i ? this._isDefine = !0 : "text" === i && (this._isText = !0); + var n; + if (this._isDefine) { + if (r = lT[i]) { + var o = r.call(this, t), + a = t.getAttribute("id"); + a && (this._defs[a] = o) + } + } else { + var r = sT[i]; + r && (n = r.call(this, t, e), e.add(n)) + } + for (var s = t.firstChild; s;) 1 === s.nodeType && this._parseNode(s, n), 3 === s.nodeType && this._isText && this._parseText(s, n), s = s.nextSibling; + "defs" === i ? this._isDefine = !1 : "text" === i && (this._isText = !1) + }, Yr.prototype._parseText = function(t, e) { + if (1 === t.nodeType) { + var i = t.getAttribute("dx") || 0, + n = t.getAttribute("dy") || 0; + this._textX += parseFloat(i), this._textY += parseFloat(n) + } + var o = new qS({ + style: { + text: t.textContent, + transformText: !0 + }, + position: [this._textX || 0, this._textY || 0] + }); + Kr(e, o), Jr(t, o, this._defs); + var a = o.style.fontSize; + a && a < 9 && (o.style.fontSize = 9, o.scale = o.scale || [1, 1], o.scale[0] *= a / 9, o.scale[1] *= a / 9); + var r = o.getBoundingRect(); + return this._textX += r.width, e.add(o), o + }; + var sT = { + g: function(t, e) { + var i = new Zw; + return Kr(e, i), Jr(t, i, this._defs), i + }, + rect: function(t, e) { + var i = new aM; + return Kr(e, i), Jr(t, i, this._defs), i.setShape({ + x: parseFloat(t.getAttribute("x") || 0), + y: parseFloat(t.getAttribute("y") || 0), + width: parseFloat(t.getAttribute("width") || 0), + height: parseFloat(t.getAttribute("height") || 0) + }), i + }, + circle: function(t, e) { + var i = new KS; + return Kr(e, i), Jr(t, i, this._defs), i.setShape({ + cx: parseFloat(t.getAttribute("cx") || 0), + cy: parseFloat(t.getAttribute("cy") || 0), + r: parseFloat(t.getAttribute("r") || 0) + }), i + }, + line: function(t, e) { + var i = new rM; + return Kr(e, i), Jr(t, i, this._defs), i.setShape({ + x1: parseFloat(t.getAttribute("x1") || 0), + y1: parseFloat(t.getAttribute("y1") || 0), + x2: parseFloat(t.getAttribute("x2") || 0), + y2: parseFloat(t.getAttribute("y2") || 0) + }), i + }, + ellipse: function(t, e) { + var i = new aT; + return Kr(e, i), Jr(t, i, this._defs), i.setShape({ + cx: parseFloat(t.getAttribute("cx") || 0), + cy: parseFloat(t.getAttribute("cy") || 0), + rx: parseFloat(t.getAttribute("rx") || 0), + ry: parseFloat(t.getAttribute("ry") || 0) + }), i + }, + polygon: function(t, e) { + var i = t.getAttribute("points"); + i && (i = $r(i)); + var n = new nM({ + shape: { + points: i || [] + } + }); + return Kr(e, n), Jr(t, n, this._defs), n + }, + polyline: function(t, e) { + var i = new kn; + Kr(e, i), Jr(t, i, this._defs); + var n = t.getAttribute("points"); + return n && (n = $r(n)), new oM({ + shape: { + points: n || [] + } + }) + }, + image: function(t, e) { + var i = new hi; + return Kr(e, i), Jr(t, i, this._defs), i.setStyle({ + image: t.getAttribute("xlink:href"), + x: t.getAttribute("x"), + y: t.getAttribute("y"), + width: t.getAttribute("width"), + height: t.getAttribute("height") + }), i + }, + text: function(t, e) { + var i = t.getAttribute("x") || 0, + n = t.getAttribute("y") || 0, + o = t.getAttribute("dx") || 0, + a = t.getAttribute("dy") || 0; + this._textX = parseFloat(i) + parseFloat(o), this._textY = parseFloat(n) + parseFloat(a); + var r = new Zw; + return Kr(e, r), Jr(t, r, this._defs), r + }, + tspan: function(t, e) { + var i = t.getAttribute("x"), + n = t.getAttribute("y"); + null != i && (this._textX = parseFloat(i)), null != n && (this._textY = parseFloat(n)); + var o = t.getAttribute("dx") || 0, + a = t.getAttribute("dy") || 0, + r = new Zw; + return Kr(e, r), Jr(t, r, this._defs), this._textX += o, this._textY += a, r + }, + path: function(t, e) { + var i = En(t.getAttribute("d") || ""); + return Kr(e, i), Jr(t, i, this._defs), i + } + }, + lT = { + lineargradient: function(t) { + var e = parseInt(t.getAttribute("x1") || 0, 10), + i = parseInt(t.getAttribute("y1") || 0, 10), + n = parseInt(t.getAttribute("x2") || 10, 10), + o = parseInt(t.getAttribute("y2") || 0, 10), + a = new dM(e, i, n, o); + return qr(t, a), a + }, + radialgradient: function(t) {} + }, + uT = { + fill: "fill", + stroke: "stroke", + "stroke-width": "lineWidth", + opacity: "opacity", + "fill-opacity": "fillOpacity", + "stroke-opacity": "strokeOpacity", + "stroke-dasharray": "lineDash", + "stroke-dashoffset": "lineDashOffset", + "stroke-linecap": "lineCap", + "stroke-linejoin": "lineJoin", + "stroke-miterlimit": "miterLimit", + "font-family": "fontFamily", + "font-size": "fontSize", + "font-style": "fontStyle", + "font-weight": "fontWeight", + "text-align": "textAlign", + "alignment-baseline": "textBaseline" + }, + hT = /url\(\s*#(.*?)\)/, + cT = /(translate|scale|rotate|skewX|skewY|matrix)\(([\-\s0-9\.e,]*)\)/g, + dT = /([^\s:;]+)\s*:\s*([^:;]+)/g, + fT = R(), + pT = { + registerMap: function(t, e, i) { + var n; + return y(e) ? n = e : e.svg ? n = [{ + type: "svg", + source: e.svg, + specialAreas: e.specialAreas + }] : (e.geoJson && !e.features && (i = e.specialAreas, e = e.geoJson), n = [{ + type: "geoJSON", + source: e, + specialAreas: i + }]), d(n, function(t) { + var e = t.type; + "geoJson" === e && (e = t.type = "geoJSON"), (0, gT[e])(t) + }), fT.set(t, n) + }, + retrieveMap: function(t) { + return fT.get(t) + } + }, + gT = { + geoJSON: function(t) { + var e = t.source; + t.geoJSON = _(e) ? "undefined" != typeof JSON && JSON.parse ? JSON.parse(e) : new Function("return (" + e + ");")() : e + }, + svg: function(t) { + t.svgXML = jr(t.source) + } + }, + mT = k, + vT = d, + yT = x, + xT = w, + _T = YM.parseClassType, + wT = { + zrender: "4.0.5" + }, + bT = 1e3, + ST = 1e3, + MT = 3e3, + IT = { + PROCESSOR: { + FILTER: bT, + STATISTIC: 5e3 + }, + VISUAL: { + LAYOUT: ST, + GLOBAL: 2e3, + CHART: MT, + COMPONENT: 4e3, + BRUSH: 5e3 + } + }, + TT = "__flagInMainProcess", + AT = "__optionUpdated", + DT = /^[a-zA-Z0-9_]+$/; + as.prototype.on = os("on"), as.prototype.off = os("off"), as.prototype.one = os("one"), h(as, aw); + var CT = rs.prototype; + CT._onframe = function() { + if (!this._disposed) { + var t = this._scheduler; + if (this[AT]) { + var e = this[AT].silent; + this[TT] = !0, ls(this), LT.update.call(this), this[TT] = !1, this[AT] = !1, ds.call(this, e), fs.call(this, e) + } else if (t.unfinished) { + var i = 1, + n = this._model; + this._api; + t.unfinished = !1; + do { + var o = +new Date; + t.performSeriesTasks(n), t.performDataProcessorTasks(n), hs(this, n), t.performVisualTasks(n), xs(this, this._model, 0, "remain"), i -= +new Date - o + } while (i > 0 && t.unfinished); + t.unfinished || this._zr.flush() + } + } + }, CT.getDom = function() { + return this._dom + }, CT.getZr = function() { + return this._zr + }, CT.setOption = function(t, e, i) { + var n; + if (xT(e) && (i = e.lazyUpdate, n = e.silent, e = e.notMerge), this[TT] = !0, !this._model || e) { + var o = new Va(this._api), + a = this._theme, + r = this._model = new hI(null, null, a, o); + r.scheduler = this._scheduler, r.init(null, null, a, o) + } + this._model.setOption(t, ET), i ? (this[AT] = { + silent: n + }, this[TT] = !1) : (ls(this), LT.update.call(this), this._zr.flush(), this[AT] = !1, this[TT] = !1, ds.call(this, n), fs.call(this, n)) + }, CT.setTheme = function() { + console.error("ECharts#setTheme() is DEPRECATED in ECharts 3.0") + }, CT.getModel = function() { + return this._model + }, CT.getOption = function() { + return this._model && this._model.getOption() + }, CT.getWidth = function() { + return this._zr.getWidth() + }, CT.getHeight = function() { + return this._zr.getHeight() + }, CT.getDevicePixelRatio = function() { + return this._zr.painter.dpr || window.devicePixelRatio || 1 + }, CT.getRenderedCanvas = function(t) { + if (z_.canvasSupported) return (t = t || {}).pixelRatio = t.pixelRatio || 1, t.backgroundColor = t.backgroundColor || this._model.get("backgroundColor"), this._zr.painter.getRenderedCanvas(t) + }, CT.getSvgDataUrl = function() { + if (z_.svgSupported) { + var t = this._zr; + return d(t.storage.getDisplayList(), function(t) { + t.stopAnimation(!0) + }), t.painter.pathToDataUrl() + } + }, CT.getDataURL = function(t) { + var e = (t = t || {}).excludeComponents, + i = this._model, + n = [], + o = this; + vT(e, function(t) { + i.eachComponent({ + mainType: t + }, function(t) { + var e = o._componentsMap[t.__viewId]; + e.group.ignore || (n.push(e), e.group.ignore = !0) + }) + }); + var a = "svg" === this._zr.painter.getType() ? this.getSvgDataUrl() : this.getRenderedCanvas(t).toDataURL("image/" + (t && t.type || "png")); + return vT(n, function(t) { + t.group.ignore = !1 + }), a + }, CT.getConnectedDataURL = function(t) { + if (z_.canvasSupported) { + var e = this.group, + n = Math.min, + o = Math.max; + if (FT[e]) { + var a = 1 / 0, + r = 1 / 0, + s = -1 / 0, + l = -1 / 0, + u = [], + h = t && t.pixelRatio || 1; + d(GT, function(h, c) { + if (h.group === e) { + var d = h.getRenderedCanvas(i(t)), + f = h.getDom().getBoundingClientRect(); + a = n(f.left, a), r = n(f.top, r), s = o(f.right, s), l = o(f.bottom, l), u.push({ + dom: d, + left: f.left, + top: f.top + }) + } + }); + var c = (s *= h) - (a *= h), + f = (l *= h) - (r *= h), + p = Y_(); + p.width = c, p.height = f; + var g = Ii(p); + return vT(u, function(t) { + var e = new hi({ + style: { + x: t.left * h - a, + y: t.top * h - r, + image: t.dom + } + }); + g.add(e) + }), g.refreshImmediately(), p.toDataURL("image/" + (t && t.type || "png")) + } + return this.getDataURL(t) + } + }, CT.convertToPixel = v(ss, "convertToPixel"), CT.convertFromPixel = v(ss, "convertFromPixel"), CT.containPixel = function(t, e) { + var i; + return t = Vi(this._model, t), d(t, function(t, n) { + n.indexOf("Models") >= 0 && d(t, function(t) { + var o = t.coordinateSystem; + if (o && o.containPoint) i |= !!o.containPoint(e); + else if ("seriesModels" === n) { + var a = this._chartsMap[t.__viewId]; + a && a.containPoint && (i |= a.containPoint(e, t)) + } + }, this) + }, this), !!i + }, CT.getVisual = function(t, e) { + var i = (t = Vi(this._model, t, { + defaultMainType: "series" + })).seriesModel.getData(), + n = t.hasOwnProperty("dataIndexInside") ? t.dataIndexInside : t.hasOwnProperty("dataIndex") ? i.indexOfRawIndex(t.dataIndex) : null; + return null != n ? i.getItemVisual(n, e) : i.getVisual(e) + }, CT.getViewOfComponentModel = function(t) { + return this._componentsMap[t.__viewId] + }, CT.getViewOfSeriesModel = function(t) { + return this._chartsMap[t.__viewId] + }; + var LT = { + prepareAndUpdate: function(t) { + ls(this), LT.update.call(this, t) + }, + update: function(t) { + var e = this._model, + i = this._api, + n = this._zr, + o = this._coordSysMgr, + a = this._scheduler; + if (e) { + a.restoreData(e, t), a.performSeriesTasks(e), o.create(e, i), a.performDataProcessorTasks(e, t), hs(this, e), o.update(e, i), ms(e), a.performVisualTasks(e, t), vs(this, e, i, t); + var r = e.get("backgroundColor") || "transparent"; + if (z_.canvasSupported) n.setBackgroundColor(r); + else { + var s = zt(r); + r = Xt(s, "rgb"), 0 === s[3] && (r = "transparent") + } + _s(e, i) + } + }, + updateTransform: function(t) { + var e = this._model, + i = this, + n = this._api; + if (e) { + var o = []; + e.eachComponent(function(a, r) { + var s = i.getViewOfComponentModel(r); + if (s && s.__alive) + if (s.updateTransform) { + var l = s.updateTransform(r, e, n, t); + l && l.update && o.push(s) + } else o.push(s) + }); + var a = R(); + e.eachSeries(function(o) { + var r = i._chartsMap[o.__viewId]; + if (r.updateTransform) { + var s = r.updateTransform(o, e, n, t); + s && s.update && a.set(o.uid, 1) + } else a.set(o.uid, 1) + }), ms(e), this._scheduler.performVisualTasks(e, t, { + setDirty: !0, + dirtyMap: a + }), xs(i, e, 0, t, a), _s(e, this._api) + } + }, + updateView: function(t) { + var e = this._model; + e && (Mr.markUpdateMethod(t, "updateView"), ms(e), this._scheduler.performVisualTasks(e, t, { + setDirty: !0 + }), vs(this, this._model, this._api, t), _s(e, this._api)) + }, + updateVisual: function(t) { + LT.update.call(this, t) + }, + updateLayout: function(t) { + LT.update.call(this, t) + } + }; + CT.resize = function(t) { + this._zr.resize(t); + var e = this._model; + if (this._loadingFX && this._loadingFX.resize(), e) { + var i = e.resetOption("media"), + n = t && t.silent; + this[TT] = !0, i && ls(this), LT.update.call(this), this[TT] = !1, ds.call(this, n), fs.call(this, n) + } + }, CT.showLoading = function(t, e) { + if (xT(t) && (e = t, t = ""), t = t || "default", this.hideLoading(), VT[t]) { + var i = VT[t](this._api, e), + n = this._zr; + this._loadingFX = i, n.add(i) + } + }, CT.hideLoading = function() { + this._loadingFX && this._zr.remove(this._loadingFX), this._loadingFX = null + }, CT.makeActionFromEvent = function(t) { + var e = a({}, t); + return e.type = NT[t.type], e + }, CT.dispatchAction = function(t, e) { + xT(e) || (e = { + silent: !!e + }), PT[t.type] && this._model && (this[TT] ? this._pendingActions.push(t) : (cs.call(this, t, e.silent), e.flush ? this._zr.flush(!0) : !1 !== e.flush && z_.browser.weChat && this._throttledZrFlush(), ds.call(this, e.silent), fs.call(this, e.silent))) + }, CT.appendData = function(t) { + var e = t.seriesIndex; + this.getModel().getSeriesByIndex(e).appendData(t), this._scheduler.unfinished = !0 + }, CT.on = os("on"), CT.off = os("off"), CT.one = os("one"); + var kT = ["click", "dblclick", "mouseover", "mouseout", "mousemove", "mousedown", "mouseup", "globalout", "contextmenu"]; + CT._initEvents = function() { + vT(kT, function(t) { + this._zr.on(t, function(e) { + var i, n = this.getModel(), + o = e.target; + if ("globalout" === t) i = {}; + else if (o && null != o.dataIndex) { + var r = o.dataModel || n.getSeriesByIndex(o.seriesIndex); + i = r && r.getDataParams(o.dataIndex, o.dataType, o) || {} + } else o && o.eventData && (i = a({}, o.eventData)); + if (i) { + var s = i.componentType, + l = i.componentIndex; + "markLine" !== s && "markPoint" !== s && "markArea" !== s || (s = "series", l = i.seriesIndex); + var u = s && null != l && n.getComponent(s, l), + h = u && this["series" === u.mainType ? "_chartsMap" : "_componentsMap"][u.__viewId]; + i.event = e, i.type = t, this._ecEventProcessor.eventInfo = { + targetEl: o, + packedEvent: i, + model: u, + view: h + }, this.trigger(t, i) + } + }, this) + }, this), vT(NT, function(t, e) { + this._messageCenter.on(e, function(t) { + this.trigger(e, t) + }, this) + }, this) + }, CT.isDisposed = function() { + return this._disposed + }, CT.clear = function() { + this.setOption({ + series: [] + }, !0) + }, CT.dispose = function() { + if (!this._disposed) { + this._disposed = !0, Fi(this.getDom(), ZT, ""); + var t = this._api, + e = this._model; + vT(this._componentsViews, function(i) { + i.dispose(e, t) + }), vT(this._chartsViews, function(i) { + i.dispose(e, t) + }), this._zr.dispose(), delete GT[this.id] + } + }, h(rs, aw), Is.prototype = { + constructor: Is, + normalizeQuery: function(t) { + var e = {}, + i = {}, + n = {}; + if (_(t)) { + var o = _T(t); + e.mainType = o.main || null, e.subType = o.sub || null + } else { + var a = ["Index", "Name", "Id"], + r = { + name: 1, + dataIndex: 1, + dataType: 1 + }; + d(t, function(t, o) { + for (var s = !1, l = 0; l < a.length; l++) { + var u = a[l], + h = o.lastIndexOf(u); + if (h > 0 && h === o.length - u.length) { + var c = o.slice(0, h); + "data" !== c && (e.mainType = c, e[u.toLowerCase()] = t, s = !0) + } + } + r.hasOwnProperty(o) && (i[o] = t, s = !0), s || (n[o] = t) + }) + } + return { + cptQuery: e, + dataQuery: i, + otherQuery: n + } + }, + filter: function(t, e, i) { + function n(t, e, i, n) { + return null == t[i] || e[n || i] === t[i] + } + var o = this.eventInfo; + if (!o) return !0; + var a = o.targetEl, + r = o.packedEvent, + s = o.model, + l = o.view; + if (!s || !l) return !0; + var u = e.cptQuery, + h = e.dataQuery; + return n(u, s, "mainType") && n(u, s, "subType") && n(u, s, "index", "componentIndex") && n(u, s, "name") && n(u, s, "id") && n(h, r, "name") && n(h, r, "dataIndex") && n(h, r, "dataType") && (!l.filterForExposedEvent || l.filterForExposedEvent(t, e.otherQuery, a, r)) + }, + afterTrigger: function() { + this.eventInfo = null + } + }; + var PT = {}, + NT = {}, + OT = [], + ET = [], + RT = [], + zT = [], + BT = {}, + VT = {}, + GT = {}, + FT = {}, + WT = new Date - 0, + HT = new Date - 0, + ZT = "_echarts_instance_", + UT = As; + Es(2e3, UI), Ls(MI), ks(5e3, function(t) { + var e = R(); + t.eachSeries(function(t) { + var i = t.get("stack"); + if (i) { + var n = e.get(i) || e.set(i, []), + o = t.getData(), + a = { + stackResultDimension: o.getCalculationInfo("stackResultDimension"), + stackedOverDimension: o.getCalculationInfo("stackedOverDimension"), + stackedDimension: o.getCalculationInfo("stackedDimension"), + stackedByDimension: o.getCalculationInfo("stackedByDimension"), + isStackedByIndex: o.getCalculationInfo("isStackedByIndex"), + data: o, + seriesModel: t + }; + if (!a.stackedDimension || !a.isStackedByIndex && !a.stackedByDimension) return; + n.length && o.setCalculationInfo("stackedOnSeries", n[n.length - 1].seriesModel), n.push(a) + } + }), e.each(ir) + }), zs("default", function(t, e) { + r(e = e || {}, { + text: "loading", + color: "#c23531", + textColor: "#000", + maskColor: "rgba(255, 255, 255, 0.8)", + zlevel: 0 + }); + var i = new aM({ + style: { + fill: e.maskColor + }, + zlevel: e.zlevel, + z: 1e4 + }), + n = new uM({ + shape: { + startAngle: -YI / 2, + endAngle: -YI / 2 + .1, + r: 10 + }, + style: { + stroke: e.color, + lineCap: "round", + lineWidth: 5 + }, + zlevel: e.zlevel, + z: 10001 + }), + o = new aM({ + style: { + fill: "none", + text: e.text, + textPosition: "right", + textDistance: 10, + textFill: e.textColor + }, + zlevel: e.zlevel, + z: 10001 + }); + n.animateShape(!0).when(1e3, { + endAngle: 3 * YI / 2 + }).start("circularInOut"), n.animateShape(!0).when(1e3, { + startAngle: 3 * YI / 2 + }).delay(300).start("circularInOut"); + var a = new Zw; + return a.add(n), a.add(o), a.add(i), a.resize = function() { + var e = t.getWidth() / 2, + a = t.getHeight() / 2; + n.setShape({ + cx: e, + cy: a + }); + var r = n.shape.r; + o.setShape({ + x: e - r, + y: a - r, + width: 2 * r, + height: 2 * r + }), i.setShape({ + x: 0, + y: 0, + width: t.getWidth(), + height: t.getHeight() + }) + }, a.resize(), a + }), Ps({ + type: "highlight", + event: "highlight", + update: "highlight" + }, B), Ps({ + type: "downplay", + event: "downplay", + update: "downplay" + }, B), Cs("light", iT), Cs("dark", oT); + var XT = {}; + Hs.prototype = { + constructor: Hs, + add: function(t) { + return this._add = t, this + }, + update: function(t) { + return this._update = t, this + }, + remove: function(t) { + return this._remove = t, this + }, + execute: function() { + var t = this._old, + e = this._new, + i = {}, + n = [], + o = []; + for (Zs(t, {}, n, "_oldKeyGetter", this), Zs(e, i, o, "_newKeyGetter", this), a = 0; a < t.length; a++) null != (s = i[r = n[a]]) ? ((u = s.length) ? (1 === u && (i[r] = null), s = s.unshift()) : i[r] = null, this._update && this._update(s, a)) : this._remove && this._remove(a); + for (var a = 0; a < o.length; a++) { + var r = o[a]; + if (i.hasOwnProperty(r)) { + var s = i[r]; + if (null == s) continue; + if (s.length) + for (var l = 0, u = s.length; l < u; l++) this._add && this._add(s[l]); + else this._add && this._add(s) + } + } + } + }; + var jT = R(["tooltip", "label", "itemName", "itemId", "seriesName"]), + YT = w, + qT = "e\0\0", + KT = { + float: "undefined" == typeof Float64Array ? Array : Float64Array, + int: "undefined" == typeof Int32Array ? Array : Int32Array, + ordinal: Array, + number: Array, + time: Array + }, + $T = "undefined" == typeof Uint32Array ? Array : Uint32Array, + JT = "undefined" == typeof Uint16Array ? Array : Uint16Array, + QT = ["hasItemOption", "_nameList", "_idList", "_invertedIndicesMap", "_rawData", "_chunkSize", "_chunkCount", "_dimValueGetter", "_count", "_rawCount", "_nameDimIdx", "_idDimIdx"], + tA = ["_extent", "_approximateExtent", "_rawExtent"], + eA = function(t, e) { + t = t || ["x", "y"]; + for (var i = {}, n = [], o = {}, a = 0; a < t.length; a++) { + var r = t[a]; + _(r) && (r = { + name: r + }); + var s = r.name; + r.type = r.type || "float", r.coordDim || (r.coordDim = s, r.coordDimIndex = 0), r.otherDims = r.otherDims || {}, n.push(s), i[s] = r, r.index = a, r.createInvertedIndices && (o[s] = []) + } + this.dimensions = n, this._dimensionInfos = i, this.hostModel = e, this.dataType, this._indices = null, this._count = 0, this._rawCount = 0, this._storage = {}, this._nameList = [], this._idList = [], this._optionModels = [], this._visual = {}, this._layout = {}, this._itemVisuals = [], this.hasItemVisual = {}, this._itemLayouts = [], this._graphicEls = [], this._chunkSize = 1e5, this._chunkCount = 0, this._rawData, this._rawExtent = {}, this._extent = {}, this._approximateExtent = {}, this._dimensionsSummary = Us(this), this._invertedIndicesMap = o, this._calculationInfo = {} + }, + iA = eA.prototype; + iA.type = "list", iA.hasItemOption = !0, iA.getDimension = function(t) { + return isNaN(t) || (t = this.dimensions[t] || t), t + }, iA.getDimensionInfo = function(t) { + return this._dimensionInfos[this.getDimension(t)] + }, iA.getDimensionsOnCoord = function() { + return this._dimensionsSummary.dataDimsOnCoord.slice() + }, iA.mapDimension = function(t, e) { + var i = this._dimensionsSummary; + if (null == e) return i.encodeFirstDimNotExtra[t]; + var n = i.encode[t]; + return !0 === e ? (n || []).slice() : n && n[e] + }, iA.initData = function(t, e, i) { + (va.isInstance(t) || c(t)) && (t = new nr(t, this.dimensions.length)), this._rawData = t, this._storage = {}, this._indices = null, this._nameList = e || [], this._idList = [], this._nameRepeatCount = {}, i || (this.hasItemOption = !1), this.defaultDimValueGetter = DI[this._rawData.getSource().sourceFormat], this._dimValueGetter = i = i || this.defaultDimValueGetter, this._rawExtent = {}, this._initDataFromProvider(0, t.count()), t.pure && (this.hasItemOption = !1) + }, iA.getProvider = function() { + return this._rawData + }, iA.appendData = function(t) { + var e = this._rawData, + i = this.count(); + e.appendData(t); + var n = e.count(); + e.persistent || (n += i), this._initDataFromProvider(i, n) + }, iA._initDataFromProvider = function(t, e) { + if (!(t >= e)) { + for (var i, n = this._chunkSize, o = this._rawData, a = this._storage, r = this.dimensions, s = r.length, l = this._dimensionInfos, u = this._nameList, h = this._idList, c = this._rawExtent, d = this._nameRepeatCount = {}, f = this._chunkCount, p = f - 1, g = 0; g < s; g++) { + c[T = r[g]] || (c[T] = [1 / 0, -1 / 0]); + var m = l[T]; + 0 === m.otherDims.itemName && (i = this._nameDimIdx = g), 0 === m.otherDims.itemId && (this._idDimIdx = g); + var v = KT[m.type]; + a[T] || (a[T] = []); + var y = a[T][p]; + if (y && y.length < n) { + for (var x = new v(Math.min(e - p * n, n)), _ = 0; _ < y.length; _++) x[_] = y[_]; + a[T][p] = x + } + for (I = f * n; I < e; I += n) a[T].push(new v(Math.min(e - I, n))); + this._chunkCount = a[T].length + } + for (var w = new Array(s), b = t; b < e; b++) { + w = o.getItem(b, w); + for (var S = Math.floor(b / n), M = b % n, I = 0; I < s; I++) { + var T = r[I], + A = a[T][S], + D = this._dimValueGetter(w, T, b, I); + A[M] = D; + var C = c[T]; + D < C[0] && (C[0] = D), D > C[1] && (C[1] = D) + } + if (!o.pure) { + var L = u[b]; + if (w && null == L) + if (null != w.name) u[b] = L = w.name; + else if (null != i) { + var k = r[i], + P = a[k][S]; + if (P) { + L = P[M]; + var N = l[k].ordinalMeta; + N && N.categories.length && (L = N.categories[L]) + } + } + var O = null == w ? null : w.id; + null == O && null != L && (d[L] = d[L] || 0, O = L, d[L] > 0 && (O += "__ec__" + d[L]), d[L]++), null != O && (h[b] = O) + } + }!o.persistent && o.clean && o.clean(), this._rawCount = this._count = e, this._extent = {}, $s(this) + } + }, iA.count = function() { + return this._count + }, iA.getIndices = function() { + var t = this._indices; + if (t) { + var e = t.constructor, + i = this._count; + if (e === Array) { + n = new e(i); + for (o = 0; o < i; o++) n[o] = t[o] + } else n = new e(t.buffer, 0, i) + } else + for (var n = new(e = Ys(this))(this.count()), o = 0; o < n.length; o++) n[o] = o; + return n + }, iA.get = function(t, e) { + if (!(e >= 0 && e < this._count)) return NaN; + var i = this._storage; + if (!i[t]) return NaN; + e = this.getRawIndex(e); + var n = Math.floor(e / this._chunkSize), + o = e % this._chunkSize; + return i[t][n][o] + }, iA.getByRawIndex = function(t, e) { + if (!(e >= 0 && e < this._rawCount)) return NaN; + var i = this._storage[t]; + if (!i) return NaN; + var n = Math.floor(e / this._chunkSize), + o = e % this._chunkSize; + return i[n][o] + }, iA._getFast = function(t, e) { + var i = Math.floor(e / this._chunkSize), + n = e % this._chunkSize; + return this._storage[t][i][n] + }, iA.getValues = function(t, e) { + var i = []; + y(t) || (e = t, t = this.dimensions); + for (var n = 0, o = t.length; n < o; n++) i.push(this.get(t[n], e)); + return i + }, iA.hasValue = function(t) { + for (var e = this._dimensionsSummary.dataDimsOnCoord, i = this._dimensionInfos, n = 0, o = e.length; n < o; n++) + if ("ordinal" !== i[e[n]].type && isNaN(this.get(e[n], t))) return !1; + return !0 + }, iA.getDataExtent = function(t) { + t = this.getDimension(t); + var e = [1 / 0, -1 / 0]; + if (!this._storage[t]) return e; + var i, n = this.count(); + if (!this._indices) return this._rawExtent[t].slice(); + if (i = this._extent[t]) return i.slice(); + for (var o = (i = e)[0], a = i[1], r = 0; r < n; r++) { + var s = this._getFast(t, this.getRawIndex(r)); + s < o && (o = s), s > a && (a = s) + } + return i = [o, a], this._extent[t] = i, i + }, iA.getApproximateExtent = function(t) { + return t = this.getDimension(t), this._approximateExtent[t] || this.getDataExtent(t) + }, iA.setApproximateExtent = function(t, e) { + e = this.getDimension(e), this._approximateExtent[e] = t.slice() + }, iA.getCalculationInfo = function(t) { + return this._calculationInfo[t] + }, iA.setCalculationInfo = function(t, e) { + YT(t) ? a(this._calculationInfo, t) : this._calculationInfo[t] = e + }, iA.getSum = function(t) { + var e = 0; + if (this._storage[t]) + for (var i = 0, n = this.count(); i < n; i++) { + var o = this.get(t, i); + isNaN(o) || (e += o) + } + return e + }, iA.getMedian = function(t) { + var e = []; + this.each(t, function(t, i) { + isNaN(t) || e.push(t) + }); + var i = [].concat(e).sort(function(t, e) { + return t - e + }), + n = this.count(); + return 0 === n ? 0 : n % 2 == 1 ? i[(n - 1) / 2] : (i[n / 2] + i[n / 2 - 1]) / 2 + }, iA.rawIndexOf = function(t, e) { + var i = (t && this._invertedIndicesMap[t])[e]; + return null == i || isNaN(i) ? -1 : i + }, iA.indexOfName = function(t) { + for (var e = 0, i = this.count(); e < i; e++) + if (this.getName(e) === t) return e; + return -1 + }, iA.indexOfRawIndex = function(t) { + if (!this._indices) return t; + if (t >= this._rawCount || t < 0) return -1; + var e = this._indices, + i = e[t]; + if (null != i && i < this._count && i === t) return t; + for (var n = 0, o = this._count - 1; n <= o;) { + var a = (n + o) / 2 | 0; + if (e[a] < t) n = a + 1; + else { + if (!(e[a] > t)) return a; + o = a - 1 + } + } + return -1 + }, iA.indicesOfNearest = function(t, e, i) { + var n = []; + if (!this._storage[t]) return n; + null == i && (i = 1 / 0); + for (var o = Number.MAX_VALUE, a = -1, r = 0, s = this.count(); r < s; r++) { + var l = e - this.get(t, r), + u = Math.abs(l); + l <= i && u <= o && ((u < o || l >= 0 && a < 0) && (o = u, a = l, n.length = 0), n.push(r)) + } + return n + }, iA.getRawIndex = Qs, iA.getRawDataItem = function(t) { + if (this._rawData.persistent) return this._rawData.getItem(this.getRawIndex(t)); + for (var e = [], i = 0; i < this.dimensions.length; i++) { + var n = this.dimensions[i]; + e.push(this.get(n, t)) + } + return e + }, iA.getName = function(t) { + var e = this.getRawIndex(t); + return this._nameList[e] || Js(this, this._nameDimIdx, e) || "" + }, iA.getId = function(t) { + return el(this, this.getRawIndex(t)) + }, iA.each = function(t, e, i, n) { + if (this._count) { + "function" == typeof t && (n = i, i = e, e = t, t = []), i = i || n || this; + for (var o = (t = f(il(t), this.getDimension, this)).length, a = 0; a < this.count(); a++) switch (o) { + case 0: + e.call(i, a); + break; + case 1: + e.call(i, this.get(t[0], a), a); + break; + case 2: + e.call(i, this.get(t[0], a), this.get(t[1], a), a); + break; + default: + for (var r = 0, s = []; r < o; r++) s[r] = this.get(t[r], a); + s[r] = a, e.apply(i, s) + } + } + }, iA.filterSelf = function(t, e, i, n) { + if (this._count) { + "function" == typeof t && (n = i, i = e, e = t, t = []), i = i || n || this, t = f(il(t), this.getDimension, this); + for (var o = this.count(), a = new(Ys(this))(o), r = [], s = t.length, l = 0, u = t[0], h = 0; h < o; h++) { + var c, d = this.getRawIndex(h); + if (0 === s) c = e.call(i, h); + else if (1 === s) { + var p = this._getFast(u, d); + c = e.call(i, p, h) + } else { + for (var g = 0; g < s; g++) r[g] = this._getFast(u, d); + r[g] = h, c = e.apply(i, r) + } + c && (a[l++] = d) + } + return l < o && (this._indices = a), this._count = l, this._extent = {}, this.getRawIndex = this._indices ? tl : Qs, this + } + }, iA.selectRange = function(t) { + if (this._count) { + var e = []; + for (var i in t) t.hasOwnProperty(i) && e.push(i); + var n = e.length; + if (n) { + var o = this.count(), + a = new(Ys(this))(o), + r = 0, + s = e[0], + l = t[s][0], + u = t[s][1], + h = !1; + if (!this._indices) { + var c = 0; + if (1 === n) { + for (var d = this._storage[e[0]], f = 0; f < this._chunkCount; f++) + for (var p = d[f], g = Math.min(this._count - f * this._chunkSize, this._chunkSize), m = 0; m < g; m++)((w = p[m]) >= l && w <= u || isNaN(w)) && (a[r++] = c), c++; + h = !0 + } else if (2 === n) { + for (var d = this._storage[s], v = this._storage[e[1]], y = t[e[1]][0], x = t[e[1]][1], f = 0; f < this._chunkCount; f++) + for (var p = d[f], _ = v[f], g = Math.min(this._count - f * this._chunkSize, this._chunkSize), m = 0; m < g; m++) { + var w = p[m], + b = _[m]; + (w >= l && w <= u || isNaN(w)) && (b >= y && b <= x || isNaN(b)) && (a[r++] = c), c++ + } + h = !0 + } + } + if (!h) + if (1 === n) + for (m = 0; m < o; m++) { + M = this.getRawIndex(m); + ((w = this._getFast(s, M)) >= l && w <= u || isNaN(w)) && (a[r++] = M) + } else + for (m = 0; m < o; m++) { + for (var S = !0, M = this.getRawIndex(m), f = 0; f < n; f++) { + var I = e[f]; + ((w = this._getFast(i, M)) < t[I][0] || w > t[I][1]) && (S = !1) + } + S && (a[r++] = this.getRawIndex(m)) + } + return r < o && (this._indices = a), this._count = r, this._extent = {}, this.getRawIndex = this._indices ? tl : Qs, this + } + } + }, iA.mapArray = function(t, e, i, n) { + "function" == typeof t && (n = i, i = e, e = t, t = []), i = i || n || this; + var o = []; + return this.each(t, function() { + o.push(e && e.apply(this, arguments)) + }, i), o + }, iA.map = function(t, e, i, n) { + i = i || n || this; + var o = nl(this, t = f(il(t), this.getDimension, this)); + o._indices = this._indices, o.getRawIndex = o._indices ? tl : Qs; + for (var a = o._storage, r = [], s = this._chunkSize, l = t.length, u = this.count(), h = [], c = o._rawExtent, d = 0; d < u; d++) { + for (var p = 0; p < l; p++) h[p] = this.get(t[p], d); + h[l] = d; + var g = e && e.apply(i, h); + if (null != g) { + "object" != typeof g && (r[0] = g, g = r); + for (var m = this.getRawIndex(d), v = Math.floor(m / s), y = m % s, x = 0; x < g.length; x++) { + var _ = t[x], + w = g[x], + b = c[_], + S = a[_]; + S && (S[v][y] = w), w < b[0] && (b[0] = w), w > b[1] && (b[1] = w) + } + } + } + return o + }, iA.downSample = function(t, e, i, n) { + for (var o = nl(this, [t]), a = o._storage, r = [], s = Math.floor(1 / e), l = a[t], u = this.count(), h = this._chunkSize, c = o._rawExtent[t], d = new(Ys(this))(u), f = 0, p = 0; p < u; p += s) { + s > u - p && (s = u - p, r.length = s); + for (var g = 0; g < s; g++) { + var m = this.getRawIndex(p + g), + v = Math.floor(m / h), + y = m % h; + r[g] = l[v][y] + } + var x = i(r), + _ = this.getRawIndex(Math.min(p + n(r, x) || 0, u - 1)), + w = _ % h; + l[Math.floor(_ / h)][w] = x, x < c[0] && (c[0] = x), x > c[1] && (c[1] = x), d[f++] = _ + } + return o._count = f, o._indices = d, o.getRawIndex = tl, o + }, iA.getItemModel = function(t) { + var e = this.hostModel; + return new Lo(this.getRawDataItem(t), e, e && e.ecModel) + }, iA.diff = function(t) { + var e = this; + return new Hs(t ? t.getIndices() : [], this.getIndices(), function(e) { + return el(t, e) + }, function(t) { + return el(e, t) + }) + }, iA.getVisual = function(t) { + var e = this._visual; + return e && e[t] + }, iA.setVisual = function(t, e) { + if (YT(t)) + for (var i in t) t.hasOwnProperty(i) && this.setVisual(i, t[i]); + else this._visual = this._visual || {}, this._visual[t] = e + }, iA.setLayout = function(t, e) { + if (YT(t)) + for (var i in t) t.hasOwnProperty(i) && this.setLayout(i, t[i]); + else this._layout[t] = e + }, iA.getLayout = function(t) { + return this._layout[t] + }, iA.getItemLayout = function(t) { + return this._itemLayouts[t] + }, iA.setItemLayout = function(t, e, i) { + this._itemLayouts[t] = i ? a(this._itemLayouts[t] || {}, e) : e + }, iA.clearItemLayouts = function() { + this._itemLayouts.length = 0 + }, iA.getItemVisual = function(t, e, i) { + var n = this._itemVisuals[t], + o = n && n[e]; + return null != o || i ? o : this.getVisual(e) + }, iA.setItemVisual = function(t, e, i) { + var n = this._itemVisuals[t] || {}, + o = this.hasItemVisual; + if (this._itemVisuals[t] = n, YT(e)) + for (var a in e) e.hasOwnProperty(a) && (n[a] = e[a], o[a] = !0); + else n[e] = i, o[e] = !0 + }, iA.clearAllVisual = function() { + this._visual = {}, this._itemVisuals = [], this.hasItemVisual = {} + }; + var nA = function(t) { + t.seriesIndex = this.seriesIndex, t.dataIndex = this.dataIndex, t.dataType = this.dataType + }; + iA.setItemGraphicEl = function(t, e) { + var i = this.hostModel; + e && (e.dataIndex = t, e.dataType = this.dataType, e.seriesIndex = i && i.seriesIndex, "group" === e.type && e.traverse(nA, e)), this._graphicEls[t] = e + }, iA.getItemGraphicEl = function(t) { + return this._graphicEls[t] + }, iA.eachItemGraphicEl = function(t, e) { + d(this._graphicEls, function(i, n) { + i && t && t.call(e, i, n) + }) + }, iA.cloneShallow = function(t) { + if (!t) { + var e = f(this.dimensions, this.getDimensionInfo, this); + t = new eA(e, this.hostModel) + } + if (t._storage = this._storage, Ks(t, this), this._indices) { + var i = this._indices.constructor; + t._indices = new i(this._indices) + } else t._indices = null; + return t.getRawIndex = t._indices ? tl : Qs, t + }, iA.wrapMethod = function(t, e) { + var i = this[t]; + "function" == typeof i && (this.__wrappedMethods = this.__wrappedMethods || [], this.__wrappedMethods.push(t), this[t] = function() { + var t = i.apply(this, arguments); + return e.apply(this, [t].concat(C(arguments))) + }) + }, iA.TRANSFERABLE_METHODS = ["cloneShallow", "downSample", "map"], iA.CHANGABLE_METHODS = ["filterSelf", "selectRange"]; + var oA = function(t, e) { + return e = e || {}, rl(e.coordDimensions || [], t, { + dimsDef: e.dimensionsDefine || t.dimensionsDefine, + encodeDef: e.encodeDefine || t.encodeDefine, + dimCount: e.dimensionsCount, + generateCoord: e.generateCoord, + generateCoordCount: e.generateCoordCount + }) + }; + gl.prototype.parse = function(t) { + return t + }, gl.prototype.getSetting = function(t) { + return this._setting[t] + }, gl.prototype.contain = function(t) { + var e = this._extent; + return t >= e[0] && t <= e[1] + }, gl.prototype.normalize = function(t) { + var e = this._extent; + return e[1] === e[0] ? .5 : (t - e[0]) / (e[1] - e[0]) + }, gl.prototype.scale = function(t) { + var e = this._extent; + return t * (e[1] - e[0]) + e[0] + }, gl.prototype.unionExtent = function(t) { + var e = this._extent; + t[0] < e[0] && (e[0] = t[0]), t[1] > e[1] && (e[1] = t[1]) + }, gl.prototype.unionExtentFromData = function(t, e) { + this.unionExtent(t.getApproximateExtent(e)) + }, gl.prototype.getExtent = function() { + return this._extent.slice() + }, gl.prototype.setExtent = function(t, e) { + var i = this._extent; + isNaN(t) || (i[0] = t), isNaN(e) || (i[1] = e) + }, gl.prototype.isBlank = function() { + return this._isBlank + }, gl.prototype.setBlank = function(t) { + this._isBlank = t + }, gl.prototype.getLabel = null, Xi(gl), Ki(gl, { + registerWhenExtend: !0 + }), ml.createByAxisModel = function(t) { + var e = t.option, + i = e.data, + n = i && f(i, yl); + return new ml({ + categories: n, + needCollect: !n, + deduplication: !1 !== e.dedplication + }) + }; + var aA = ml.prototype; + aA.getOrdinal = function(t) { + return vl(this).get(t) + }, aA.parseAndCollect = function(t) { + var e, i = this._needCollect; + if ("string" != typeof t && !i) return t; + if (i && !this._deduplication) return e = this.categories.length, this.categories[e] = t, e; + var n = vl(this); + return null == (e = n.get(t)) && (i ? (e = this.categories.length, this.categories[e] = t, n.set(t, e)) : e = NaN), e + }; + var rA = gl.prototype, + sA = gl.extend({ + type: "ordinal", + init: function(t, e) { + t && !y(t) || (t = new ml({ + categories: t + })), this._ordinalMeta = t, this._extent = e || [0, t.categories.length - 1] + }, + parse: function(t) { + return "string" == typeof t ? this._ordinalMeta.getOrdinal(t) : Math.round(t) + }, + contain: function(t) { + return t = this.parse(t), rA.contain.call(this, t) && null != this._ordinalMeta.categories[t] + }, + normalize: function(t) { + return rA.normalize.call(this, this.parse(t)) + }, + scale: function(t) { + return Math.round(rA.scale.call(this, t)) + }, + getTicks: function() { + for (var t = [], e = this._extent, i = e[0]; i <= e[1];) t.push(i), i++; + return t + }, + getLabel: function(t) { + if (!this.isBlank()) return this._ordinalMeta.categories[t] + }, + count: function() { + return this._extent[1] - this._extent[0] + 1 + }, + unionExtentFromData: function(t, e) { + this.unionExtent(t.getApproximateExtent(e)) + }, + getOrdinalMeta: function() { + return this._ordinalMeta + }, + niceTicks: B, + niceExtent: B + }); + sA.create = function() { + return new sA + }; + var lA = zo, + uA = zo, + hA = gl.extend({ + type: "interval", + _interval: 0, + _intervalPrecision: 2, + setExtent: function(t, e) { + var i = this._extent; + isNaN(t) || (i[0] = parseFloat(t)), isNaN(e) || (i[1] = parseFloat(e)) + }, + unionExtent: function(t) { + var e = this._extent; + t[0] < e[0] && (e[0] = t[0]), t[1] > e[1] && (e[1] = t[1]), hA.prototype.setExtent.call(this, e[0], e[1]) + }, + getInterval: function() { + return this._interval + }, + setInterval: function(t) { + this._interval = t, this._niceExtent = this._extent.slice(), this._intervalPrecision = _l(t) + }, + getTicks: function() { + return Sl(this._interval, this._extent, this._niceExtent, this._intervalPrecision) + }, + getLabel: function(t, e) { + if (null == t) return ""; + var i = e && e.precision; + return null == i ? i = Go(t) || 0 : "auto" === i && (i = this._intervalPrecision), t = uA(t, i, !0), $o(t) + }, + niceTicks: function(t, e, i) { + t = t || 5; + var n = this._extent, + o = n[1] - n[0]; + if (isFinite(o)) { + o < 0 && (o = -o, n.reverse()); + var a = xl(n, t, e, i); + this._intervalPrecision = a.intervalPrecision, this._interval = a.interval, this._niceExtent = a.niceTickExtent + } + }, + niceExtent: function(t) { + var e = this._extent; + if (e[0] === e[1]) + if (0 !== e[0]) { + var i = e[0]; + t.fixMax ? e[0] -= i / 2 : (e[1] += i / 2, e[0] -= i / 2) + } else e[1] = 1; + var n = e[1] - e[0]; + isFinite(n) || (e[0] = 0, e[1] = 1), this.niceTicks(t.splitNumber, t.minInterval, t.maxInterval); + var o = this._interval; + t.fixMin || (e[0] = uA(Math.floor(e[0] / o) * o)), t.fixMax || (e[1] = uA(Math.ceil(e[1] / o) * o)) + } + }); + hA.create = function() { + return new hA + }; + var cA = "__ec_stack_", + dA = "undefined" != typeof Float32Array ? Float32Array : Array, + fA = { + seriesType: "bar", + plan: zI(), + reset: function(t) { + if (Pl(t) && Nl(t)) { + var e = t.getData(), + i = t.coordinateSystem, + n = i.getBaseAxis(), + o = i.getOtherAxis(n), + a = e.mapDimension(o.dim), + r = e.mapDimension(n.dim), + s = o.isHorizontal(), + l = s ? 0 : 1, + u = Ll(Dl([t]), n, t).width; + return u > .5 || (u = .5), { + progress: function(t, e) { + for (var n, h = new dA(2 * t.count), c = [], d = [], f = 0; null != (n = t.next());) d[l] = e.get(a, n), d[1 - l] = e.get(r, n), c = i.dataToPoint(d, null, c), h[f++] = c[0], h[f++] = c[1]; + e.setLayout({ + largePoints: h, + barWidth: u, + valueAxisStart: Ol(0, o), + valueAxisHorizontal: s + }) + } + } + } + } + }, + pA = hA.prototype, + gA = Math.ceil, + mA = Math.floor, + vA = function(t, e, i, n) { + for (; i < n;) { + var o = i + n >>> 1; + t[o][1] < e ? i = o + 1 : n = o + } + return i + }, + yA = hA.extend({ + type: "time", + getLabel: function(t) { + var e = this._stepLvl, + i = new Date(t); + return oa(e[0], i, this.getSetting("useUTC")) + }, + niceExtent: function(t) { + var e = this._extent; + if (e[0] === e[1] && (e[0] -= 864e5, e[1] += 864e5), e[1] === -1 / 0 && e[0] === 1 / 0) { + var i = new Date; + e[1] = +new Date(i.getFullYear(), i.getMonth(), i.getDate()), e[0] = e[1] - 864e5 + } + this.niceTicks(t.splitNumber, t.minInterval, t.maxInterval); + var n = this._interval; + t.fixMin || (e[0] = zo(mA(e[0] / n) * n)), t.fixMax || (e[1] = zo(gA(e[1] / n) * n)) + }, + niceTicks: function(t, e, i) { + t = t || 10; + var n = this._extent, + o = n[1] - n[0], + a = o / t; + null != e && a < e && (a = e), null != i && a > i && (a = i); + var r = xA.length, + s = vA(xA, a, 0, r), + l = xA[Math.min(s, r - 1)], + u = l[1]; + "year" === l[0] && (u *= Yo(o / u / t, !0)); + var h = this.getSetting("useUTC") ? 0 : 60 * new Date(+n[0] || +n[1]).getTimezoneOffset() * 1e3, + c = [Math.round(gA((n[0] - h) / u) * u + h), Math.round(mA((n[1] - h) / u) * u + h)]; + bl(c, n), this._stepLvl = l, this._interval = u, this._niceExtent = c + }, + parse: function(t) { + return +Uo(t) + } + }); + d(["contain", "normalize"], function(t) { + yA.prototype[t] = function(e) { + return pA[t].call(this, this.parse(e)) + } + }); + var xA = [ + ["hh:mm:ss", 1e3], + ["hh:mm:ss", 5e3], + ["hh:mm:ss", 1e4], + ["hh:mm:ss", 15e3], + ["hh:mm:ss", 3e4], + ["hh:mm\nMM-dd", 6e4], + ["hh:mm\nMM-dd", 3e5], + ["hh:mm\nMM-dd", 6e5], + ["hh:mm\nMM-dd", 9e5], + ["hh:mm\nMM-dd", 18e5], + ["hh:mm\nMM-dd", 36e5], + ["hh:mm\nMM-dd", 72e5], + ["hh:mm\nMM-dd", 216e5], + ["hh:mm\nMM-dd", 432e5], + ["MM-dd\nyyyy", 864e5], + ["MM-dd\nyyyy", 1728e5], + ["MM-dd\nyyyy", 2592e5], + ["MM-dd\nyyyy", 3456e5], + ["MM-dd\nyyyy", 432e6], + ["MM-dd\nyyyy", 5184e5], + ["week", 6048e5], + ["MM-dd\nyyyy", 864e6], + ["week", 12096e5], + ["week", 18144e5], + ["month", 26784e5], + ["week", 36288e5], + ["month", 53568e5], + ["week", 6048e6], + ["quarter", 8208e6], + ["month", 107136e5], + ["month", 13392e6], + ["half-year", 16416e6], + ["month", 214272e5], + ["month", 26784e6], + ["year", 32832e6] + ]; + yA.create = function(t) { + return new yA({ + useUTC: t.ecModel.get("useUTC") + }) + }; + var _A = gl.prototype, + wA = hA.prototype, + bA = Go, + SA = zo, + MA = Math.floor, + IA = Math.ceil, + TA = Math.pow, + AA = Math.log, + DA = gl.extend({ + type: "log", + base: 10, + $constructor: function() { + gl.apply(this, arguments), this._originalScale = new hA + }, + getTicks: function() { + var t = this._originalScale, + e = this._extent, + i = t.getExtent(); + return f(wA.getTicks.call(this), function(n) { + var o = zo(TA(this.base, n)); + return o = n === e[0] && t.__fixMin ? El(o, i[0]) : o, o = n === e[1] && t.__fixMax ? El(o, i[1]) : o + }, this) + }, + getLabel: wA.getLabel, + scale: function(t) { + return t = _A.scale.call(this, t), TA(this.base, t) + }, + setExtent: function(t, e) { + var i = this.base; + t = AA(t) / AA(i), e = AA(e) / AA(i), wA.setExtent.call(this, t, e) + }, + getExtent: function() { + var t = this.base, + e = _A.getExtent.call(this); + e[0] = TA(t, e[0]), e[1] = TA(t, e[1]); + var i = this._originalScale, + n = i.getExtent(); + return i.__fixMin && (e[0] = El(e[0], n[0])), i.__fixMax && (e[1] = El(e[1], n[1])), e + }, + unionExtent: function(t) { + this._originalScale.unionExtent(t); + var e = this.base; + t[0] = AA(t[0]) / AA(e), t[1] = AA(t[1]) / AA(e), _A.unionExtent.call(this, t) + }, + unionExtentFromData: function(t, e) { + this.unionExtent(t.getApproximateExtent(e)) + }, + niceTicks: function(t) { + t = t || 10; + var e = this._extent, + i = e[1] - e[0]; + if (!(i === 1 / 0 || i <= 0)) { + var n = Xo(i); + for (t / i * n <= .5 && (n *= 10); !isNaN(n) && Math.abs(n) < 1 && Math.abs(n) > 0;) n *= 10; + var o = [zo(IA(e[0] / n) * n), zo(MA(e[1] / n) * n)]; + this._interval = n, this._niceExtent = o + } + }, + niceExtent: function(t) { + wA.niceExtent.call(this, t); + var e = this._originalScale; + e.__fixMin = t.fixMin, e.__fixMax = t.fixMax + } + }); + d(["contain", "normalize"], function(t) { + DA.prototype[t] = function(e) { + return e = AA(e) / AA(this.base), _A[t].call(this, e) + } + }), DA.create = function() { + return new DA + }; + var CA = { + getMin: function(t) { + var e = this.option, + i = t || null == e.rangeStart ? e.min : e.rangeStart; + return this.axis && null != i && "dataMin" !== i && "function" != typeof i && !I(i) && (i = this.axis.scale.parse(i)), i + }, + getMax: function(t) { + var e = this.option, + i = t || null == e.rangeEnd ? e.max : e.rangeEnd; + return this.axis && null != i && "dataMax" !== i && "function" != typeof i && !I(i) && (i = this.axis.scale.parse(i)), i + }, + getNeedCrossZero: function() { + var t = this.option; + return null == t.rangeStart && null == t.rangeEnd && !t.scale + }, + getCoordSysModel: B, + setRange: function(t, e) { + this.option.rangeStart = t, this.option.rangeEnd = e + }, + resetRange: function() { + this.option.rangeStart = this.option.rangeEnd = null + } + }, + LA = Fn({ + type: "triangle", + shape: { + cx: 0, + cy: 0, + width: 0, + height: 0 + }, + buildPath: function(t, e) { + var i = e.cx, + n = e.cy, + o = e.width / 2, + a = e.height / 2; + t.moveTo(i, n - a), t.lineTo(i + o, n + a), t.lineTo(i - o, n + a), t.closePath() + } + }), + kA = Fn({ + type: "diamond", + shape: { + cx: 0, + cy: 0, + width: 0, + height: 0 + }, + buildPath: function(t, e) { + var i = e.cx, + n = e.cy, + o = e.width / 2, + a = e.height / 2; + t.moveTo(i, n - a), t.lineTo(i + o, n), t.lineTo(i, n + a), t.lineTo(i - o, n), t.closePath() + } + }), + PA = Fn({ + type: "pin", + shape: { + x: 0, + y: 0, + width: 0, + height: 0 + }, + buildPath: function(t, e) { + var i = e.x, + n = e.y, + o = e.width / 5 * 3, + a = Math.max(o, e.height), + r = o / 2, + s = r * r / (a - r), + l = n - a + r + s, + u = Math.asin(s / r), + h = Math.cos(u) * r, + c = Math.sin(u), + d = Math.cos(u), + f = .6 * r, + p = .7 * r; + t.moveTo(i - h, l + s), t.arc(i, l, r, Math.PI - u, 2 * Math.PI + u), t.bezierCurveTo(i + h - c * f, l + s + d * f, i, n - p, i, n), t.bezierCurveTo(i, n - p, i - h + c * f, l + s + d * f, i - h, l + s), t.closePath() + } + }), + NA = Fn({ + type: "arrow", + shape: { + x: 0, + y: 0, + width: 0, + height: 0 + }, + buildPath: function(t, e) { + var i = e.height, + n = e.width, + o = e.x, + a = e.y, + r = n / 3 * 2; + t.moveTo(o, a), t.lineTo(o + r, a + i), t.lineTo(o, a + i / 4 * 3), t.lineTo(o - r, a + i), t.lineTo(o, a), t.closePath() + } + }), + OA = { + line: function(t, e, i, n, o) { + o.x1 = t, o.y1 = e + n / 2, o.x2 = t + i, o.y2 = e + n / 2 + }, + rect: function(t, e, i, n, o) { + o.x = t, o.y = e, o.width = i, o.height = n + }, + roundRect: function(t, e, i, n, o) { + o.x = t, o.y = e, o.width = i, o.height = n, o.r = Math.min(i, n) / 4 + }, + square: function(t, e, i, n, o) { + var a = Math.min(i, n); + o.x = t, o.y = e, o.width = a, o.height = a + }, + circle: function(t, e, i, n, o) { + o.cx = t + i / 2, o.cy = e + n / 2, o.r = Math.min(i, n) / 2 + }, + diamond: function(t, e, i, n, o) { + o.cx = t + i / 2, o.cy = e + n / 2, o.width = i, o.height = n + }, + pin: function(t, e, i, n, o) { + o.x = t + i / 2, o.y = e + n / 2, o.width = i, o.height = n + }, + arrow: function(t, e, i, n, o) { + o.x = t + i / 2, o.y = e + n / 2, o.width = i, o.height = n + }, + triangle: function(t, e, i, n, o) { + o.cx = t + i / 2, o.cy = e + n / 2, o.width = i, o.height = n + } + }, + EA = {}; + d({ + line: rM, + rect: aM, + roundRect: aM, + square: aM, + circle: KS, + diamond: kA, + pin: PA, + arrow: NA, + triangle: LA + }, function(t, e) { + EA[e] = new t + }); + var RA = Fn({ + type: "symbol", + shape: { + symbolType: "", + x: 0, + y: 0, + width: 0, + height: 0 + }, + beforeBrush: function() { + var t = this.style; + "pin" === this.shape.symbolType && "inside" === t.textPosition && (t.textPosition = ["50%", "40%"], t.textAlign = "center", t.textVerticalAlign = "middle") + }, + buildPath: function(t, e, i) { + var n = e.symbolType, + o = EA[n]; + "none" !== e.symbolType && (o || (o = EA[n = "rect"]), OA[n](e.x, e.y, e.width, e.height, o.shape), o.buildPath(t, o.shape, i)) + } + }), + zA = { + isDimensionStacked: hl, + enableDataStack: ul, + getStackedDimension: cl + }, + BA = (Object.freeze || Object)({ + createList: function(t) { + return dl(t.getSource(), t) + }, + getLayoutRect: la, + dataStack: zA, + createScale: function(t, e) { + var i = e; + Lo.isInstance(e) || h(i = new Lo(e), CA); + var n = Vl(i); + return n.setExtent(t[0], t[1]), Bl(n, i), n + }, + mixinAxisModelCommonMethods: function(t) { + h(t, CA) + }, + completeDimensions: rl, + createDimensions: oA, + createSymbol: Xl + }), + VA = 1e-8; + ql.prototype = { + constructor: ql, + properties: null, + getBoundingRect: function() { + var t = this._rect; + if (t) return t; + for (var e = Number.MAX_VALUE, i = [e, e], n = [-e, -e], o = [], a = [], r = this.geometries, s = 0; s < r.length; s++) "polygon" === r[s].type && (dn(r[s].exterior, o, a), tt(i, i, o), et(n, n, a)); + return 0 === s && (i[0] = i[1] = n[0] = n[1] = 0), this._rect = new ue(i[0], i[1], n[0] - i[0], n[1] - i[1]) + }, + contain: function(t) { + var e = this.getBoundingRect(), + i = this.geometries; + if (!e.contain(t[0], t[1])) return !1; + t: for (var n = 0, o = i.length; n < o; n++) + if ("polygon" === i[n].type) { + var a = i[n].exterior, + r = i[n].interiors; + if (Yl(a, t[0], t[1])) { + for (var s = 0; s < (r ? r.length : 0); s++) + if (Yl(r[s])) continue t; + return !0 + } + } + return !1 + }, + transformTo: function(t, e, i, n) { + var o = this.getBoundingRect(), + a = o.width / o.height; + i ? n || (n = i / a) : i = a * n; + for (var r = new ue(t, e, i, n), s = o.calculateTransform(r), l = this.geometries, u = 0; u < l.length; u++) + if ("polygon" === l[u].type) { + for (var h = l[u].exterior, c = l[u].interiors, d = 0; d < h.length; d++) Q(h[d], h[d], s); + for (var f = 0; f < (c ? c.length : 0); f++) + for (d = 0; d < c[f].length; d++) Q(c[f][d], c[f][d], s) + }(o = this._rect). copy(r), this.center = [o.x + o.width / 2, o.y + o.height / 2] + }, + cloneShallow: function(t) { + null == t && (t = this.name); + var e = new ql(t, this.geometries, this.center); + return e._rect = this._rect, e.transformTo = null, e + } + }; + var GA = function(t) { + return Kl(t), f(g(t.features, function(t) { + return t.geometry && t.properties && t.geometry.coordinates.length > 0 + }), function(t) { + var e = t.properties, + i = t.geometry, + n = i.coordinates, + o = []; + "Polygon" === i.type && o.push({ + type: "polygon", + exterior: n[0], + interiors: n.slice(1) + }), "MultiPolygon" === i.type && d(n, function(t) { + t[0] && o.push({ + type: "polygon", + exterior: t[0], + interiors: t.slice(1) + }) + }); + var a = new ql(e.name, o, e.cp); + return a.properties = e, a + }) + }, + FA = Bi(), + WA = [0, 1], + HA = function(t, e, i) { + this.dim = t, this.scale = e, this._extent = i || [0, 0], this.inverse = !1, this.onBand = !1 + }; + HA.prototype = { + constructor: HA, + contain: function(t) { + var e = this._extent, + i = Math.min(e[0], e[1]), + n = Math.max(e[0], e[1]); + return t >= i && t <= n + }, + containData: function(t) { + return this.contain(this.dataToCoord(t)) + }, + getExtent: function() { + return this._extent.slice() + }, + getPixelPrecision: function(t) { + return Fo(t || this.scale.getExtent(), this._extent) + }, + setExtent: function(t, e) { + var i = this._extent; + i[0] = t, i[1] = e + }, + dataToCoord: function(t, e) { + var i = this._extent, + n = this.scale; + return t = n.normalize(t), this.onBand && "ordinal" === n.type && fu(i = i.slice(), n.count()), Eo(t, WA, i, e) + }, + coordToData: function(t, e) { + var i = this._extent, + n = this.scale; + this.onBand && "ordinal" === n.type && fu(i = i.slice(), n.count()); + var o = Eo(t, i, WA, e); + return this.scale.scale(o) + }, + pointToData: function(t, e) {}, + getTicksCoords: function(t) { + var e = (t = t || {}).tickModel || this.getTickModel(), + i = Ql(this, e), + n = f(i.ticks, function(t) { + return { + coord: this.dataToCoord(t), + tickValue: t + } + }, this), + o = e.get("alignWithLabel"); + return pu(this, n, i.tickCategoryInterval, o, t.clamp), n + }, + getViewLabels: function() { + return Jl(this).labels + }, + getLabelModel: function() { + return this.model.getModel("axisLabel") + }, + getTickModel: function() { + return this.model.getModel("axisTick") + }, + getBandWidth: function() { + var t = this._extent, + e = this.scale.getExtent(), + i = e[1] - e[0] + (this.onBand ? 1 : 0); + 0 === i && (i = 1); + var n = Math.abs(t[1] - t[0]); + return Math.abs(n) / i + }, + isHorizontal: null, + getRotate: null, + calculateCategoryInterval: function() { + return lu(this) + } + }; + var ZA = GA, + UA = {}; + d(["map", "each", "filter", "indexOf", "inherits", "reduce", "filter", "bind", "curry", "isArray", "isString", "isObject", "isFunction", "extend", "defaults", "clone", "merge"], function(t) { + UA[t] = $_[t] + }); + var XA = {}; + d(["extendShape", "extendPath", "makePath", "makeImage", "mergePath", "resizePath", "createIcon", "setHoverStyle", "setLabelStyle", "setTextStyle", "setText", "getFont", "updateProps", "initProps", "getTransform", "clipPointsByRect", "clipRectByRect", "Group", "Image", "Text", "Circle", "Sector", "Ring", "Polygon", "Polyline", "Rect", "Line", "BezierCurve", "Arc", "IncrementalDisplayable", "CompoundPath", "LinearGradient", "RadialGradient", "BoundingRect"], function(t) { + XA[t] = bM[t] + }), OI.extend({ + type: "series.line", + dependencies: ["grid", "polar"], + getInitialData: function(t, e) { + return dl(this.getSource(), this) + }, + defaultOption: { + zlevel: 0, + z: 2, + coordinateSystem: "cartesian2d", + legendHoverLink: !0, + hoverAnimation: !0, + clipOverflow: !0, + label: { + position: "top" + }, + lineStyle: { + width: 2, + type: "solid" + }, + step: !1, + smooth: !1, + smoothMonotone: null, + symbol: "emptyCircle", + symbolSize: 4, + symbolRotate: null, + showSymbol: !0, + showAllSymbol: "auto", + connectNulls: !1, + sampling: "none", + animationEasing: "linear", + progressive: 0, + hoverLayerThreshold: 1 / 0 + } + }); + var jA = mu.prototype, + YA = mu.getSymbolSize = function(t, e) { + var i = t.getItemVisual(e, "symbolSize"); + return i instanceof Array ? i.slice() : [+i, +i] + }; + jA._createSymbol = function(t, e, i, n, o) { + this.removeAll(); + var a = Xl(t, -1, -1, 2, 2, e.getItemVisual(i, "color"), o); + a.attr({ + z2: 100, + culling: !0, + scale: vu(n) + }), a.drift = yu, this._symbolType = t, this.add(a) + }, jA.stopSymbolAnimation = function(t) { + this.childAt(0).stopAnimation(t) + }, jA.getSymbolPath = function() { + return this.childAt(0) + }, jA.getScale = function() { + return this.childAt(0).scale + }, jA.highlight = function() { + this.childAt(0).trigger("emphasis") + }, jA.downplay = function() { + this.childAt(0).trigger("normal") + }, jA.setZ = function(t, e) { + var i = this.childAt(0); + i.zlevel = t, i.z = e + }, jA.setDraggable = function(t) { + var e = this.childAt(0); + e.draggable = t, e.cursor = t ? "move" : "pointer" + }, jA.updateData = function(t, e, i) { + this.silent = !1; + var n = t.getItemVisual(e, "symbol") || "circle", + o = t.hostModel, + a = YA(t, e), + r = n !== this._symbolType; + if (r) { + var s = t.getItemVisual(e, "symbolKeepAspect"); + this._createSymbol(n, t, e, a, s) + } else(l = this.childAt(0)).silent = !1, bo(l, { + scale: vu(a) + }, o, e); + if (this._updateCommon(t, e, a, i), r) { + var l = this.childAt(0), + u = i && i.fadeIn, + h = { + scale: l.scale.slice() + }; + u && (h.style = { + opacity: l.style.opacity + }), l.scale = [0, 0], u && (l.style.opacity = 0), So(l, h, o, e) + } + this._seriesModel = o + }; + var qA = ["itemStyle"], + KA = ["emphasis", "itemStyle"], + $A = ["label"], + JA = ["emphasis", "label"]; + jA._updateCommon = function(t, e, i, n) { + var o = this.childAt(0), + r = t.hostModel, + s = t.getItemVisual(e, "color"); + "image" !== o.type && o.useStyle({ + strokeNoScale: !0 + }); + var l = n && n.itemStyle, + u = n && n.hoverItemStyle, + h = n && n.symbolRotate, + c = n && n.symbolOffset, + d = n && n.labelModel, + f = n && n.hoverLabelModel, + p = n && n.hoverAnimation, + g = n && n.cursorStyle; + if (!n || t.hasItemOption) { + var m = n && n.itemModel ? n.itemModel : t.getItemModel(e); + l = m.getModel(qA).getItemStyle(["color"]), u = m.getModel(KA).getItemStyle(), h = m.getShallow("symbolRotate"), c = m.getShallow("symbolOffset"), d = m.getModel($A), f = m.getModel(JA), p = m.getShallow("hoverAnimation"), g = m.getShallow("cursor") + } else u = a({}, u); + var v = o.style; + o.attr("rotation", (h || 0) * Math.PI / 180 || 0), c && o.attr("position", [Ro(c[0], i[0]), Ro(c[1], i[1])]), g && o.attr("cursor", g), o.setColor(s, n && n.symbolInnerColor), o.setStyle(l); + var y = t.getItemVisual(e, "opacity"); + null != y && (v.opacity = y); + var x = t.getItemVisual(e, "liftZ"), + _ = o.__z2Origin; + null != x ? null == _ && (o.__z2Origin = o.z2, o.z2 += x) : null != _ && (o.z2 = _, o.__z2Origin = null); + var w = n && n.useNameLabel; + co(v, u, d, f, { + labelFetcher: r, + labelDataIndex: e, + defaultText: function(e, i) { + return w ? t.getName(e) : gu(t, e) + }, + isRectText: !0, + autoColor: s + }), o.off("mouseover").off("mouseout").off("emphasis").off("normal"), o.hoverStyle = u, uo(o), o.__symbolOriginalScale = vu(i), p && r.isAnimationEnabled() && o.on("mouseover", xu).on("mouseout", _u).on("emphasis", wu).on("normal", bu) + }, jA.fadeOut = function(t, e) { + var i = this.childAt(0); + this.silent = i.silent = !0, !(e && e.keepLabel) && (i.style.text = null), bo(i, { + style: { + opacity: 0 + }, + scale: [0, 0] + }, this._seriesModel, this.dataIndex, t) + }, u(mu, Zw); + var QA = Su.prototype; + QA.updateData = function(t, e) { + e = Iu(e); + var i = this.group, + n = t.hostModel, + o = this._data, + a = this._symbolCtor, + r = Tu(t); + o || i.removeAll(), t.diff(o).add(function(n) { + var o = t.getItemLayout(n); + if (Mu(t, o, n, e)) { + var s = new a(t, n, r); + s.attr("position", o), t.setItemGraphicEl(n, s), i.add(s) + } + }).update(function(s, l) { + var u = o.getItemGraphicEl(l), + h = t.getItemLayout(s); + Mu(t, h, s, e) ? (u ? (u.updateData(t, s, r), bo(u, { + position: h + }, n)) : (u = new a(t, s)).attr("position", h), i.add(u), t.setItemGraphicEl(s, u)) : i.remove(u) + }).remove(function(t) { + var e = o.getItemGraphicEl(t); + e && e.fadeOut(function() { + i.remove(e) + }) + }).execute(), this._data = t + }, QA.isPersistent = function() { + return !0 + }, QA.updateLayout = function() { + var t = this._data; + t && t.eachItemGraphicEl(function(e, i) { + var n = t.getItemLayout(i); + e.attr("position", n) + }) + }, QA.incrementalPrepareUpdate = function(t) { + this._seriesScope = Tu(t), this._data = null, this.group.removeAll() + }, QA.incrementalUpdate = function(t, e, i) { + i = Iu(i); + for (var n = t.start; n < t.end; n++) { + var o = e.getItemLayout(n); + if (Mu(e, o, n, i)) { + var a = new this._symbolCtor(e, n, this._seriesScope); + a.traverse(function(t) { + t.isGroup || (t.incremental = t.useHoverLayer = !0) + }), a.attr("position", o), this.group.add(a), e.setItemGraphicEl(n, a) + } + } + }, QA.remove = function(t) { + var e = this.group, + i = this._data; + i && t ? i.eachItemGraphicEl(function(t) { + t.fadeOut(function() { + e.remove(t) + }) + }) : e.removeAll() + }; + var tD = function(t, e, i, n, o, a, r, s) { + for (var l = Lu(t, e), u = [], h = [], c = [], d = [], f = [], p = [], g = [], m = Au(o, e, r), v = Au(a, t, s), y = 0; y < l.length; y++) { + var x = l[y], + _ = !0; + switch (x.cmd) { + case "=": + var w = t.getItemLayout(x.idx), + b = e.getItemLayout(x.idx1); + (isNaN(w[0]) || isNaN(w[1])) && (w = b.slice()), u.push(w), h.push(b), c.push(i[x.idx]), d.push(n[x.idx1]), g.push(e.getRawIndex(x.idx1)); + break; + case "+": + S = x.idx; + u.push(o.dataToPoint([e.get(m.dataDimsForPoint[0], S), e.get(m.dataDimsForPoint[1], S)])), h.push(e.getItemLayout(S).slice()), c.push(Cu(m, o, e, S)), d.push(n[S]), g.push(e.getRawIndex(S)); + break; + case "-": + var S = x.idx, + M = t.getRawIndex(S); + M !== S ? (u.push(t.getItemLayout(S)), h.push(a.dataToPoint([t.get(v.dataDimsForPoint[0], S), t.get(v.dataDimsForPoint[1], S)])), c.push(i[S]), d.push(Cu(v, a, t, S)), g.push(M)) : _ = !1 + } + _ && (f.push(x), p.push(p.length)) + } + p.sort(function(t, e) { + return g[t] - g[e] + }); + for (var I = [], T = [], A = [], D = [], C = [], y = 0; y < p.length; y++) { + S = p[y]; + I[y] = u[S], T[y] = h[S], A[y] = c[S], D[y] = d[S], C[y] = f[S] + } + return { + current: I, + next: T, + stackedOnCurrent: A, + stackedOnNext: D, + status: C + } + }, + eD = tt, + iD = et, + nD = Z, + oD = G, + aD = [], + rD = [], + sD = [], + lD = kn.extend({ + type: "ec-polyline", + shape: { + points: [], + smooth: 0, + smoothConstraint: !0, + smoothMonotone: null, + connectNulls: !1 + }, + style: { + fill: null, + stroke: "#000" + }, + brush: JS(kn.prototype.brush), + buildPath: function(t, e) { + var i = e.points, + n = 0, + o = i.length, + a = Eu(i, e.smoothConstraint); + if (e.connectNulls) { + for (; o > 0 && ku(i[o - 1]); o--); + for (; n < o && ku(i[n]); n++); + } + for (; n < o;) n += Pu(t, i, n, o, o, 1, a.min, a.max, e.smooth, e.smoothMonotone, e.connectNulls) + 1 + } + }), + uD = kn.extend({ + type: "ec-polygon", + shape: { + points: [], + stackedOnPoints: [], + smooth: 0, + stackedOnSmooth: 0, + smoothConstraint: !0, + smoothMonotone: null, + connectNulls: !1 + }, + brush: JS(kn.prototype.brush), + buildPath: function(t, e) { + var i = e.points, + n = e.stackedOnPoints, + o = 0, + a = i.length, + r = e.smoothMonotone, + s = Eu(i, e.smoothConstraint), + l = Eu(n, e.smoothConstraint); + if (e.connectNulls) { + for (; a > 0 && ku(i[a - 1]); a--); + for (; o < a && ku(i[o]); o++); + } + for (; o < a;) { + var u = Pu(t, i, o, a, a, 1, s.min, s.max, e.smooth, r, e.connectNulls); + Pu(t, n, o + u - 1, u, a, -1, l.min, l.max, e.stackedOnSmooth, r, e.connectNulls), o += u + 1, t.closePath() + } + } + }); + Mr.extend({ + type: "line", + init: function() { + var t = new Zw, + e = new Su; + this.group.add(e.group), this._symbolDraw = e, this._lineGroup = t + }, + render: function(t, e, i) { + var n = t.coordinateSystem, + o = this.group, + a = t.getData(), + s = t.getModel("lineStyle"), + l = t.getModel("areaStyle"), + u = a.mapArray(a.getItemLayout), + h = "polar" === n.type, + c = this._coordSys, + d = this._symbolDraw, + f = this._polyline, + p = this._polygon, + g = this._lineGroup, + m = t.get("animation"), + v = !l.isEmpty(), + y = l.get("origin"), + x = Vu(n, a, Au(n, a, y)), + _ = t.get("showSymbol"), + w = _ && !h && Uu(t, a, n), + b = this._data; + b && b.eachItemGraphicEl(function(t, e) { + t.__temp && (o.remove(t), b.setItemGraphicEl(e, null)) + }), _ || d.remove(), o.add(g); + var S = !h && t.get("step"); + f && c.type === n.type && S === this._step ? (v && !p ? p = this._newPolygon(u, x, n, m) : p && !v && (g.remove(p), p = this._polygon = null), g.setClipPath(Wu(n, !1, !1, t)), _ && d.updateData(a, { + isIgnore: w, + clipShape: Wu(n, !1, !0, t) + }), a.eachItemGraphicEl(function(t) { + t.stopAnimation(!0) + }), Ru(this._stackedOnPoints, x) && Ru(this._points, u) || (m ? this._updateAnimation(a, x, n, i, S, y) : (S && (u = Hu(u, n, S), x = Hu(x, n, S)), f.setShape({ + points: u + }), p && p.setShape({ + points: u, + stackedOnPoints: x + })))) : (_ && d.updateData(a, { + isIgnore: w, + clipShape: Wu(n, !1, !0, t) + }), S && (u = Hu(u, n, S), x = Hu(x, n, S)), f = this._newPolyline(u, n, m), v && (p = this._newPolygon(u, x, n, m)), g.setClipPath(Wu(n, !0, !1, t))); + var M = Zu(a, n) || a.getVisual("color"); + f.useStyle(r(s.getLineStyle(), { + fill: "none", + stroke: M, + lineJoin: "bevel" + })); + var I = t.get("smooth"); + if (I = zu(t.get("smooth")), f.setShape({ + smooth: I, + smoothMonotone: t.get("smoothMonotone"), + connectNulls: t.get("connectNulls") + }), p) { + var T = a.getCalculationInfo("stackedOnSeries"), + A = 0; + p.useStyle(r(l.getAreaStyle(), { + fill: M, + opacity: .7, + lineJoin: "bevel" + })), T && (A = zu(T.get("smooth"))), p.setShape({ + smooth: I, + stackedOnSmooth: A, + smoothMonotone: t.get("smoothMonotone"), + connectNulls: t.get("connectNulls") + }) + } + this._data = a, this._coordSys = n, this._stackedOnPoints = x, this._points = u, this._step = S, this._valueOrigin = y + }, + dispose: function() {}, + highlight: function(t, e, i, n) { + var o = t.getData(), + a = zi(o, n); + if (!(a instanceof Array) && null != a && a >= 0) { + var r = o.getItemGraphicEl(a); + if (!r) { + var s = o.getItemLayout(a); + if (!s) return; + (r = new mu(o, a)).position = s, r.setZ(t.get("zlevel"), t.get("z")), r.ignore = isNaN(s[0]) || isNaN(s[1]), r.__temp = !0, o.setItemGraphicEl(a, r), r.stopSymbolAnimation(!0), this.group.add(r) + } + r.highlight() + } else Mr.prototype.highlight.call(this, t, e, i, n) + }, + downplay: function(t, e, i, n) { + var o = t.getData(), + a = zi(o, n); + if (null != a && a >= 0) { + var r = o.getItemGraphicEl(a); + r && (r.__temp ? (o.setItemGraphicEl(a, null), this.group.remove(r)) : r.downplay()) + } else Mr.prototype.downplay.call(this, t, e, i, n) + }, + _newPolyline: function(t) { + var e = this._polyline; + return e && this._lineGroup.remove(e), e = new lD({ + shape: { + points: t + }, + silent: !0, + z2: 10 + }), this._lineGroup.add(e), this._polyline = e, e + }, + _newPolygon: function(t, e) { + var i = this._polygon; + return i && this._lineGroup.remove(i), i = new uD({ + shape: { + points: t, + stackedOnPoints: e + }, + silent: !0 + }), this._lineGroup.add(i), this._polygon = i, i + }, + _updateAnimation: function(t, e, i, n, o, a) { + var r = this._polyline, + s = this._polygon, + l = t.hostModel, + u = tD(this._data, t, this._stackedOnPoints, e, this._coordSys, i, this._valueOrigin, a), + h = u.current, + c = u.stackedOnCurrent, + d = u.next, + f = u.stackedOnNext; + o && (h = Hu(u.current, i, o), c = Hu(u.stackedOnCurrent, i, o), d = Hu(u.next, i, o), f = Hu(u.stackedOnNext, i, o)), r.shape.__points = u.current, r.shape.points = h, bo(r, { + shape: { + points: d + } + }, l), s && (s.setShape({ + points: h, + stackedOnPoints: c + }), bo(s, { + shape: { + points: d, + stackedOnPoints: f + } + }, l)); + for (var p = [], g = u.status, m = 0; m < g.length; m++) + if ("=" === g[m].cmd) { + var v = t.getItemGraphicEl(g[m].idx1); + v && p.push({ + el: v, + ptIdx: m + }) + } r.animators && r.animators.length && r.animators[0].during(function() { + for (var t = 0; t < p.length; t++) p[t].el.attr("position", r.shape.__points[p[t].ptIdx]) + }) + }, + remove: function(t) { + var e = this.group, + i = this._data; + this._lineGroup.removeAll(), this._symbolDraw.remove(!0), i && i.eachItemGraphicEl(function(t, n) { + t.__temp && (e.remove(t), i.setItemGraphicEl(n, null)) + }), this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._data = null + } + }); + var hD = function(t, e, i) { + return { + seriesType: t, + performRawSeries: !0, + reset: function(t, n, o) { + var a = t.getData(), + r = t.get("symbol") || e, + s = t.get("symbolSize"), + l = t.get("symbolKeepAspect"); + if (a.setVisual({ + legendSymbol: i || r, + symbol: r, + symbolSize: s, + symbolKeepAspect: l + }), !n.isSeriesFiltered(t)) { + var u = "function" == typeof s; + return { + dataEach: a.hasItemOption || u ? function(e, i) { + if ("function" == typeof s) { + var n = t.getRawValue(i), + o = t.getDataParams(i); + e.setItemVisual(i, "symbolSize", s(n, o)) + } + if (e.hasItemOption) { + var a = e.getItemModel(i), + r = a.getShallow("symbol", !0), + l = a.getShallow("symbolSize", !0), + u = a.getShallow("symbolKeepAspect", !0); + null != r && e.setItemVisual(i, "symbol", r), null != l && e.setItemVisual(i, "symbolSize", l), null != u && e.setItemVisual(i, "symbolKeepAspect", u) + } + } : null + } + } + } + } + }, + cD = function(t) { + return { + seriesType: t, + plan: zI(), + reset: function(t) { + var e = t.getData(), + i = t.coordinateSystem, + n = t.pipelineContext.large; + if (i) { + var o = f(i.dimensions, function(t) { + return e.mapDimension(t) + }).slice(0, 2), + a = o.length, + r = e.getCalculationInfo("stackResultDimension"); + return hl(e, o[0]) && (o[0] = r), hl(e, o[1]) && (o[1] = r), a && { + progress: function(t, e) { + for (var r = t.end - t.start, s = n && new Float32Array(r * a), l = t.start, u = 0, h = [], c = []; l < t.end; l++) { + var d; + if (1 === a) f = e.get(o[0], l), d = !isNaN(f) && i.dataToPoint(f, null, c); + else { + var f = h[0] = e.get(o[0], l), + p = h[1] = e.get(o[1], l); + d = !isNaN(f) && !isNaN(p) && i.dataToPoint(h, null, c) + } + n ? (s[u++] = d ? d[0] : NaN, s[u++] = d ? d[1] : NaN) : e.setItemLayout(l, d && d.slice() || [NaN, NaN]) + } + n && e.setLayout("symbolPoints", s) + } + } + } + } + } + }, + dD = { + average: function(t) { + for (var e = 0, i = 0, n = 0; n < t.length; n++) isNaN(t[n]) || (e += t[n], i++); + return 0 === i ? NaN : e / i + }, + sum: function(t) { + for (var e = 0, i = 0; i < t.length; i++) e += t[i] || 0; + return e + }, + max: function(t) { + for (var e = -1 / 0, i = 0; i < t.length; i++) t[i] > e && (e = t[i]); + return isFinite(e) ? e : NaN + }, + min: function(t) { + for (var e = 1 / 0, i = 0; i < t.length; i++) t[i] < e && (e = t[i]); + return isFinite(e) ? e : NaN + }, + nearest: function(t) { + return t[0] + } + }, + fD = function(t, e) { + return Math.round(t.length / 2) + }, + pD = function(t) { + this._axes = {}, this._dimList = [], this.name = t || "" + }; + pD.prototype = { + constructor: pD, + type: "cartesian", + getAxis: function(t) { + return this._axes[t] + }, + getAxes: function() { + return f(this._dimList, ju, this) + }, + getAxesByScale: function(t) { + return t = t.toLowerCase(), g(this.getAxes(), function(e) { + return e.scale.type === t + }) + }, + addAxis: function(t) { + var e = t.dim; + this._axes[e] = t, this._dimList.push(e) + }, + dataToCoord: function(t) { + return this._dataCoordConvert(t, "dataToCoord") + }, + coordToData: function(t) { + return this._dataCoordConvert(t, "coordToData") + }, + _dataCoordConvert: function(t, e) { + for (var i = this._dimList, n = t instanceof Array ? [] : {}, o = 0; o < i.length; o++) { + var a = i[o], + r = this._axes[a]; + n[a] = r[e](t[a]) + } + return n + } + }, Yu.prototype = { + constructor: Yu, + type: "cartesian2d", + dimensions: ["x", "y"], + getBaseAxis: function() { + return this.getAxesByScale("ordinal")[0] || this.getAxesByScale("time")[0] || this.getAxis("x") + }, + containPoint: function(t) { + var e = this.getAxis("x"), + i = this.getAxis("y"); + return e.contain(e.toLocalCoord(t[0])) && i.contain(i.toLocalCoord(t[1])) + }, + containData: function(t) { + return this.getAxis("x").containData(t[0]) && this.getAxis("y").containData(t[1]) + }, + dataToPoint: function(t, e, i) { + var n = this.getAxis("x"), + o = this.getAxis("y"); + return i = i || [], i[0] = n.toGlobalCoord(n.dataToCoord(t[0])), i[1] = o.toGlobalCoord(o.dataToCoord(t[1])), i + }, + clampData: function(t, e) { + var i = this.getAxis("x").scale, + n = this.getAxis("y").scale, + o = i.getExtent(), + a = n.getExtent(), + r = i.parse(t[0]), + s = n.parse(t[1]); + return e = e || [], e[0] = Math.min(Math.max(Math.min(o[0], o[1]), r), Math.max(o[0], o[1])), e[1] = Math.min(Math.max(Math.min(a[0], a[1]), s), Math.max(a[0], a[1])), e + }, + pointToData: function(t, e) { + var i = this.getAxis("x"), + n = this.getAxis("y"); + return e = e || [], e[0] = i.coordToData(i.toLocalCoord(t[0])), e[1] = n.coordToData(n.toLocalCoord(t[1])), e + }, + getOtherAxis: function(t) { + return this.getAxis("x" === t.dim ? "y" : "x") + } + }, u(Yu, pD); + var gD = function(t, e, i, n, o) { + HA.call(this, t, e, i), this.type = n || "value", this.position = o || "bottom" + }; + gD.prototype = { + constructor: gD, + index: 0, + getAxesOnZeroOf: null, + model: null, + isHorizontal: function() { + var t = this.position; + return "top" === t || "bottom" === t + }, + getGlobalExtent: function(t) { + var e = this.getExtent(); + return e[0] = this.toGlobalCoord(e[0]), e[1] = this.toGlobalCoord(e[1]), t && e[0] > e[1] && e.reverse(), e + }, + getOtherAxis: function() { + this.grid.getOtherAxis() + }, + pointToData: function(t, e) { + return this.coordToData(this.toLocalCoord(t["x" === this.dim ? 0 : 1]), e) + }, + toLocalCoord: null, + toGlobalCoord: null + }, u(gD, HA); + var mD = { + show: !0, + zlevel: 0, + z: 0, + inverse: !1, + name: "", + nameLocation: "end", + nameRotate: null, + nameTruncate: { + maxWidth: null, + ellipsis: "...", + placeholder: "." + }, + nameTextStyle: {}, + nameGap: 15, + silent: !1, + triggerEvent: !1, + tooltip: { + show: !1 + }, + axisPointer: {}, + axisLine: { + show: !0, + onZero: !0, + onZeroAxisIndex: null, + lineStyle: { + color: "#333", + width: 1, + type: "solid" + }, + symbol: ["none", "none"], + symbolSize: [10, 15] + }, + axisTick: { + show: !0, + inside: !1, + length: 5, + lineStyle: { + width: 1 + } + }, + axisLabel: { + show: !0, + inside: !1, + rotate: 0, + showMinLabel: null, + showMaxLabel: null, + margin: 8, + fontSize: 12 + }, + splitLine: { + show: !0, + lineStyle: { + color: ["#ccc"], + width: 1, + type: "solid" + } + }, + splitArea: { + show: !1, + areaStyle: { + color: ["rgba(250,250,250,0.3)", "rgba(200,200,200,0.3)"] + } + } + }, + vD = {}; + vD.categoryAxis = n({ + boundaryGap: !0, + deduplication: null, + splitLine: { + show: !1 + }, + axisTick: { + alignWithLabel: !1, + interval: "auto" + }, + axisLabel: { + interval: "auto" + } + }, mD), vD.valueAxis = n({ + boundaryGap: [0, 0], + splitNumber: 5 + }, mD), vD.timeAxis = r({ + scale: !0, + min: "dataMin", + max: "dataMax" + }, vD.valueAxis), vD.logAxis = r({ + scale: !0, + logBase: 10 + }, vD.valueAxis); + var yD = ["value", "category", "time", "log"], + xD = function(t, e, i, a) { + d(yD, function(r) { + e.extend({ + type: t + "Axis." + r, + mergeDefaultAndTheme: function(e, o) { + var a = this.layoutMode, + s = a ? da(e) : {}; + n(e, o.getTheme().get(r + "Axis")), n(e, this.getDefaultOption()), e.type = i(t, e), a && ca(e, s, a) + }, + optionUpdated: function() { + "category" === this.option.type && (this.__ordinalMeta = ml.createByAxisModel(this)) + }, + getCategories: function(t) { + var e = this.option; + if ("category" === e.type) return t ? e.data : this.__ordinalMeta.categories + }, + getOrdinalMeta: function() { + return this.__ordinalMeta + }, + defaultOption: o([{}, vD[r + "Axis"], a], !0) + }) + }), YM.registerSubTypeDefaulter(t + "Axis", v(i, t)) + }, + _D = YM.extend({ + type: "cartesian2dAxis", + axis: null, + init: function() { + _D.superApply(this, "init", arguments), this.resetRange() + }, + mergeOption: function() { + _D.superApply(this, "mergeOption", arguments), this.resetRange() + }, + restoreData: function() { + _D.superApply(this, "restoreData", arguments), this.resetRange() + }, + getCoordSysModel: function() { + return this.ecModel.queryComponents({ + mainType: "grid", + index: this.option.gridIndex, + id: this.option.gridId + })[0] + } + }); + n(_D.prototype, CA); + var wD = { + offset: 0 + }; + xD("x", _D, qu, wD), xD("y", _D, qu, wD), YM.extend({ + type: "grid", + dependencies: ["xAxis", "yAxis"], + layoutMode: "box", + coordinateSystem: null, + defaultOption: { + show: !1, + zlevel: 0, + z: 0, + left: "10%", + top: 60, + right: "10%", + bottom: 60, + containLabel: !1, + backgroundColor: "rgba(0,0,0,0)", + borderWidth: 1, + borderColor: "#ccc" + } + }); + var bD = $u.prototype; + bD.type = "grid", bD.axisPointerEnabled = !0, bD.getRect = function() { + return this._rect + }, bD.update = function(t, e) { + var i = this._axesMap; + this._updateScale(t, this.model), d(i.x, function(t) { + Bl(t.scale, t.model) + }), d(i.y, function(t) { + Bl(t.scale, t.model) + }); + var n = {}; + d(i.x, function(t) { + Ju(i, "y", t, n) + }), d(i.y, function(t) { + Ju(i, "x", t, n) + }), this.resize(this.model, e) + }, bD.resize = function(t, e, i) { + function n() { + d(a, function(t) { + var e = t.isHorizontal(), + i = e ? [0, o.width] : [0, o.height], + n = t.inverse ? 1 : 0; + t.setExtent(i[n], i[1 - n]), th(t, e ? o.x : o.y) + }) + } + var o = la(t.getBoxLayoutParams(), { + width: e.getWidth(), + height: e.getHeight() + }); + this._rect = o; + var a = this._axesList; + n(), !i && t.get("containLabel") && (d(a, function(t) { + if (!t.model.get("axisLabel.inside")) { + var e = Hl(t); + if (e) { + var i = t.isHorizontal() ? "height" : "width", + n = t.model.get("axisLabel.margin"); + o[i] -= e[i] + n, "top" === t.position ? o.y += e.height + n : "left" === t.position && (o.x += e.width + n) + } + } + }), n()) + }, bD.getAxis = function(t, e) { + var i = this._axesMap[t]; + if (null != i) { + if (null == e) + for (var n in i) + if (i.hasOwnProperty(n)) return i[n]; + return i[e] + } + }, bD.getAxes = function() { + return this._axesList.slice() + }, bD.getCartesian = function(t, e) { + if (null != t && null != e) { + var i = "x" + t + "y" + e; + return this._coordsMap[i] + } + w(t) && (e = t.yAxisIndex, t = t.xAxisIndex); + for (var n = 0, o = this._coordsList; n < o.length; n++) + if (o[n].getAxis("x").index === t || o[n].getAxis("y").index === e) return o[n] + }, bD.getCartesians = function() { + return this._coordsList.slice() + }, bD.convertToPixel = function(t, e, i) { + var n = this._findConvertTarget(t, e); + return n.cartesian ? n.cartesian.dataToPoint(i) : n.axis ? n.axis.toGlobalCoord(n.axis.dataToCoord(i)) : null + }, bD.convertFromPixel = function(t, e, i) { + var n = this._findConvertTarget(t, e); + return n.cartesian ? n.cartesian.pointToData(i) : n.axis ? n.axis.coordToData(n.axis.toLocalCoord(i)) : null + }, bD._findConvertTarget = function(t, e) { + var i, n, o = e.seriesModel, + a = e.xAxisModel || o && o.getReferringComponents("xAxis")[0], + r = e.yAxisModel || o && o.getReferringComponents("yAxis")[0], + s = e.gridModel, + u = this._coordsList; + return o ? l(u, i = o.coordinateSystem) < 0 && (i = null) : a && r ? i = this.getCartesian(a.componentIndex, r.componentIndex) : a ? n = this.getAxis("x", a.componentIndex) : r ? n = this.getAxis("y", r.componentIndex) : s && s.coordinateSystem === this && (i = this._coordsList[0]), { + cartesian: i, + axis: n + } + }, bD.containPoint = function(t) { + var e = this._coordsList[0]; + if (e) return e.containPoint(t) + }, bD._initCartesian = function(t, e, i) { + function n(i) { + return function(n, s) { + if (Ku(n, t, e)) { + var l = n.get("position"); + "x" === i ? "top" !== l && "bottom" !== l && o[l = "bottom"] && (l = "top" === l ? "bottom" : "top") : "left" !== l && "right" !== l && o[l = "left"] && (l = "left" === l ? "right" : "left"), o[l] = !0; + var u = new gD(i, Vl(n), [0, 0], n.get("type"), l), + h = "category" === u.type; + u.onBand = h && n.get("boundaryGap"), u.inverse = n.get("inverse"), n.axis = u, u.model = n, u.grid = this, u.index = s, this._axesList.push(u), a[i][s] = u, r[i]++ + } + } + } + var o = { + left: !1, + right: !1, + top: !1, + bottom: !1 + }, + a = { + x: {}, + y: {} + }, + r = { + x: 0, + y: 0 + }; + if (e.eachComponent("xAxis", n("x"), this), e.eachComponent("yAxis", n("y"), this), !r.x || !r.y) return this._axesMap = {}, void(this._axesList = []); + this._axesMap = a, d(a.x, function(e, i) { + d(a.y, function(n, o) { + var a = "x" + i + "y" + o, + r = new Yu(a); + r.grid = this, r.model = t, this._coordsMap[a] = r, this._coordsList.push(r), r.addAxis(e), r.addAxis(n) + }, this) + }, this) + }, bD._updateScale = function(t, e) { + function i(t, e, i) { + d(t.mapDimension(e.dim, !0), function(i) { + e.scale.unionExtentFromData(t, cl(t, i)) + }) + } + d(this._axesList, function(t) { + t.scale.setExtent(1 / 0, -1 / 0) + }), t.eachSeries(function(n) { + if (ih(n)) { + var o = eh(n), + a = o[0], + r = o[1]; + if (!Ku(a, e, t) || !Ku(r, e, t)) return; + var s = this.getCartesian(a.componentIndex, r.componentIndex), + l = n.getData(), + u = s.getAxis("x"), + h = s.getAxis("y"); + "list" === l.type && (i(l, u), i(l, h)) + } + }, this) + }, bD.getTooltipAxes = function(t) { + var e = [], + i = []; + return d(this.getCartesians(), function(n) { + var o = null != t && "auto" !== t ? n.getAxis(t) : n.getBaseAxis(), + a = n.getOtherAxis(o); + l(e, o) < 0 && e.push(o), l(i, a) < 0 && i.push(a) + }), { + baseAxes: e, + otherAxes: i + } + }; + var SD = ["xAxis", "yAxis"]; + $u.create = function(t, e) { + var i = []; + return t.eachComponent("grid", function(n, o) { + var a = new $u(n, t, e); + a.name = "grid_" + o, a.resize(n, e, !0), n.coordinateSystem = a, i.push(a) + }), t.eachSeries(function(t) { + if (ih(t)) { + var e = eh(t), + i = e[0], + n = e[1], + o = i.getCoordSysModel().coordinateSystem; + t.coordinateSystem = o.getCartesian(i.componentIndex, n.componentIndex) + } + }), i + }, $u.dimensions = $u.prototype.dimensions = Yu.prototype.dimensions, Ba.register("cartesian2d", $u); + var MD = Math.PI, + ID = function(t, e) { + this.opt = e, this.axisModel = t, r(e, { + labelOffset: 0, + nameDirection: 1, + tickDirection: 1, + labelDirection: 1, + silent: !0 + }), this.group = new Zw; + var i = new Zw({ + position: e.position.slice(), + rotation: e.rotation + }); + i.updateTransform(), this._transform = i.transform, this._dumbGroup = i + }; + ID.prototype = { + constructor: ID, + hasBuilder: function(t) { + return !!TD[t] + }, + add: function(t) { + TD[t].call(this) + }, + getGroup: function() { + return this.group + } + }; + var TD = { + axisLine: function() { + var t = this.opt, + e = this.axisModel; + if (e.get("axisLine.show")) { + var i = this.axisModel.axis.getExtent(), + n = this._transform, + o = [i[0], 0], + r = [i[1], 0]; + n && (Q(o, o, n), Q(r, r, n)); + var s = a({ + lineCap: "round" + }, e.getModel("axisLine.lineStyle").getLineStyle()); + this.group.add(new rM(Xn({ + anid: "line", + shape: { + x1: o[0], + y1: o[1], + x2: r[0], + y2: r[1] + }, + style: s, + strokeContainThreshold: t.strokeContainThreshold || 5, + silent: !0, + z2: 1 + }))); + var l = e.get("axisLine.symbol"), + u = e.get("axisLine.symbolSize"), + h = e.get("axisLine.symbolOffset") || 0; + if ("number" == typeof h && (h = [h, h]), null != l) { + "string" == typeof l && (l = [l, l]), "string" != typeof u && "number" != typeof u || (u = [u, u]); + var c = u[0], + f = u[1]; + d([{ + rotate: t.rotation + Math.PI / 2, + offset: h[0], + r: 0 + }, { + rotate: t.rotation - Math.PI / 2, + offset: h[1], + r: Math.sqrt((o[0] - r[0]) * (o[0] - r[0]) + (o[1] - r[1]) * (o[1] - r[1])) + }], function(e, i) { + if ("none" !== l[i] && null != l[i]) { + var n = Xl(l[i], -c / 2, -f / 2, c, f, s.stroke, !0), + a = e.r + e.offset, + r = [o[0] + a * Math.cos(t.rotation), o[1] - a * Math.sin(t.rotation)]; + n.attr({ + rotation: e.rotate, + position: r, + silent: !0 + }), this.group.add(n) + } + }, this) + } + } + }, + axisTickLabel: function() { + var t = this.axisModel, + e = this.opt, + i = hh(this, t, e); + rh(t, ch(this, t, e), i) + }, + axisName: function() { + var t = this.opt, + e = this.axisModel, + i = T(t.axisName, e.get("name")); + if (i) { + var n, o = e.get("nameLocation"), + r = t.nameDirection, + s = e.getModel("nameTextStyle"), + l = e.get("nameGap") || 0, + u = this.axisModel.axis.getExtent(), + h = u[0] > u[1] ? -1 : 1, + c = ["start" === o ? u[0] - h * l : "end" === o ? u[1] + h * l : (u[0] + u[1]) / 2, uh(o) ? t.labelOffset + r * l : 0], + d = e.get("nameRotate"); + null != d && (d = d * MD / 180); + var f; + uh(o) ? n = AD(t.rotation, null != d ? d : t.rotation, r) : (n = oh(t, o, d || 0, u), null != (f = t.axisNameAvailableWidth) && (f = Math.abs(f / Math.sin(n.rotation)), !isFinite(f) && (f = null))); + var p = s.getFont(), + g = e.get("nameTruncate", !0) || {}, + m = g.ellipsis, + v = T(t.nameTruncateMaxWidth, g.maxWidth, f), + y = null != m && null != v ? VM(i, v, p, m, { + minChar: 2, + placeholder: g.placeholder + }) : i, + x = e.get("tooltip", !0), + _ = e.mainType, + w = { + componentType: _, + name: i, + $vars: ["name"] + }; + w[_ + "Index"] = e.componentIndex; + var b = new qS({ + anid: "name", + __fullText: i, + __truncatedText: y, + position: c, + rotation: n.rotation, + silent: ah(e), + z2: 1, + tooltip: x && x.show ? a({ + content: i, + formatter: function() { + return i + }, + formatterParams: w + }, x) : null + }); + fo(b.style, s, { + text: y, + textFont: p, + textFill: s.getTextColor() || e.get("axisLine.lineStyle.color"), + textAlign: n.textAlign, + textVerticalAlign: n.textVerticalAlign + }), e.get("triggerEvent") && (b.eventData = nh(e), b.eventData.targetType = "axisName", b.eventData.name = i), this._dumbGroup.add(b), b.updateTransform(), this.group.add(b), b.decomposeTransform() + } + } + }, + AD = ID.innerTextLayout = function(t, e, i) { + var n, o, a = Ho(e - t); + return Zo(a) ? (o = i > 0 ? "top" : "bottom", n = "center") : Zo(a - MD) ? (o = i > 0 ? "bottom" : "top", n = "center") : (o = "middle", n = a > 0 && a < MD ? i > 0 ? "right" : "left" : i > 0 ? "left" : "right"), { + rotation: a, + textAlign: n, + textVerticalAlign: o + } + }, + DD = d, + CD = v, + LD = Vs({ + type: "axis", + _axisPointer: null, + axisPointerClass: null, + render: function(t, e, i, n) { + this.axisPointerClass && yh(t), LD.superApply(this, "render", arguments), Sh(this, t, 0, i, 0, !0) + }, + updateAxisPointer: function(t, e, i, n, o) { + Sh(this, t, 0, i, 0, !1) + }, + remove: function(t, e) { + var i = this._axisPointer; + i && i.remove(e), LD.superApply(this, "remove", arguments) + }, + dispose: function(t, e) { + Mh(this, e), LD.superApply(this, "dispose", arguments) + } + }), + kD = []; + LD.registerAxisPointerClass = function(t, e) { + kD[t] = e + }, LD.getAxisPointerClass = function(t) { + return t && kD[t] + }; + var PD = ["axisLine", "axisTickLabel", "axisName"], + ND = ["splitArea", "splitLine"], + OD = LD.extend({ + type: "cartesianAxis", + axisPointerClass: "CartesianAxisPointer", + render: function(t, e, i, n) { + this.group.removeAll(); + var o = this._axisGroup; + if (this._axisGroup = new Zw, this.group.add(this._axisGroup), t.get("show")) { + var a = t.getCoordSysModel(), + r = Ih(a, t), + s = new ID(t, r); + d(PD, s.add, s), this._axisGroup.add(s.getGroup()), d(ND, function(e) { + t.get(e + ".show") && this["_" + e](t, a) + }, this), Ao(o, this._axisGroup, t), OD.superCall(this, "render", t, e, i, n) + } + }, + remove: function() { + this._splitAreaColors = null + }, + _splitLine: function(t, e) { + var i = t.axis; + if (!i.scale.isBlank()) { + var n = t.getModel("splitLine"), + o = n.getModel("lineStyle"), + a = o.get("color"); + a = y(a) ? a : [a]; + for (var s = e.coordinateSystem.getRect(), l = i.isHorizontal(), u = 0, h = i.getTicksCoords({ + tickModel: n + }), c = [], d = [], f = o.getLineStyle(), p = 0; p < h.length; p++) { + var g = i.toGlobalCoord(h[p].coord); + l ? (c[0] = g, c[1] = s.y, d[0] = g, d[1] = s.y + s.height) : (c[0] = s.x, c[1] = g, d[0] = s.x + s.width, d[1] = g); + var m = u++ % a.length, + v = h[p].tickValue; + this._axisGroup.add(new rM(Xn({ + anid: null != v ? "line_" + h[p].tickValue : null, + shape: { + x1: c[0], + y1: c[1], + x2: d[0], + y2: d[1] + }, + style: r({ + stroke: a[m] + }, f), + silent: !0 + }))) + } + } + }, + _splitArea: function(t, e) { + var i = t.axis; + if (!i.scale.isBlank()) { + var n = t.getModel("splitArea"), + o = n.getModel("areaStyle"), + a = o.get("color"), + s = e.coordinateSystem.getRect(), + l = i.getTicksCoords({ + tickModel: n, + clamp: !0 + }); + if (l.length) { + var u = a.length, + h = this._splitAreaColors, + c = R(), + d = 0; + if (h) + for (m = 0; m < l.length; m++) { + var f = h.get(l[m].tickValue); + if (null != f) { + d = (f + (u - 1) * m) % u; + break + } + } + var p = i.toGlobalCoord(l[0].coord), + g = o.getAreaStyle(); + a = y(a) ? a : [a]; + for (var m = 1; m < l.length; m++) { + var v, x, _, w, b = i.toGlobalCoord(l[m].coord); + i.isHorizontal() ? (v = p, x = s.y, _ = b - v, w = s.height, p = v + _) : (v = s.x, x = p, _ = s.width, p = x + (w = b - x)); + var S = l[m - 1].tickValue; + null != S && c.set(S, d), this._axisGroup.add(new aM({ + anid: null != S ? "area_" + S : null, + shape: { + x: v, + y: x, + width: _, + height: w + }, + style: r({ + fill: a[d] + }, g), + silent: !0 + })), d = (d + 1) % u + } + this._splitAreaColors = c + } + } + } + }); + OD.extend({ + type: "xAxis" + }), OD.extend({ + type: "yAxis" + }), Vs({ + type: "grid", + render: function(t, e) { + this.group.removeAll(), t.get("show") && this.group.add(new aM({ + shape: t.coordinateSystem.getRect(), + style: r({ + fill: t.get("backgroundColor") + }, t.getItemStyle()), + silent: !0, + z2: -1 + })) + } + }), Ls(function(t) { + t.xAxis && t.yAxis && !t.grid && (t.grid = {}) + }), Es(hD("line", "circle", "line")), Os(cD("line")), ks(IT.PROCESSOR.STATISTIC, function(t) { + return { + seriesType: t, + modifyOutputEnd: !0, + reset: function(t, e, i) { + var n = t.getData(), + o = t.get("sampling"), + a = t.coordinateSystem; + if ("cartesian2d" === a.type && o) { + var r = a.getBaseAxis(), + s = a.getOtherAxis(r), + l = r.getExtent(), + u = l[1] - l[0], + h = Math.round(n.count() / u); + if (h > 1) { + var c; + "string" == typeof o ? c = dD[o] : "function" == typeof o && (c = o), c && t.setData(n.downSample(n.mapDimension(s.dim), 1 / h, c, fD)) + } + } + } + } + }("line")); + var ED = OI.extend({ + type: "series.__base_bar__", + getInitialData: function(t, e) { + return dl(this.getSource(), this) + }, + getMarkerPosition: function(t) { + var e = this.coordinateSystem; + if (e) { + var i = e.dataToPoint(e.clampData(t)), + n = this.getData(), + o = n.getLayout("offset"), + a = n.getLayout("size"); + return i[e.getBaseAxis().isHorizontal() ? 0 : 1] += o + a / 2, i + } + return [NaN, NaN] + }, + defaultOption: { + zlevel: 0, + z: 2, + coordinateSystem: "cartesian2d", + legendHoverLink: !0, + barMinHeight: 0, + barMinAngle: 0, + large: !1, + largeThreshold: 400, + progressive: 3e3, + progressiveChunkMode: "mod", + itemStyle: {}, + emphasis: {} + } + }); + ED.extend({ + type: "series.bar", + dependencies: ["grid", "polar"], + brushSelector: "rect", + getProgressive: function() { + return !!this.get("large") && this.get("progressive") + }, + getProgressiveThreshold: function() { + var t = this.get("progressiveThreshold"), + e = this.get("largeThreshold"); + return e > t && (t = e), t + } + }); + var RD = Wb([ + ["fill", "color"], + ["stroke", "borderColor"], + ["lineWidth", "borderWidth"], + ["stroke", "barBorderColor"], + ["lineWidth", "barBorderWidth"], + ["opacity"], + ["shadowBlur"], + ["shadowOffsetX"], + ["shadowOffsetY"], + ["shadowColor"] + ]), + zD = { + getBarItemStyle: function(t) { + var e = RD(this, t); + if (this.getBorderLineDash) { + var i = this.getBorderLineDash(); + i && (e.lineDash = i) + } + return e + } + }, + BD = ["itemStyle", "barBorderWidth"]; + a(Lo.prototype, zD), Fs({ + type: "bar", + render: function(t, e, i) { + this._updateDrawMode(t); + var n = t.get("coordinateSystem"); + return "cartesian2d" !== n && "polar" !== n || (this._isLargeDraw ? this._renderLarge(t, e, i) : this._renderNormal(t, e, i)), this.group + }, + incrementalPrepareRender: function(t, e, i) { + this._clear(), this._updateDrawMode(t) + }, + incrementalRender: function(t, e, i, n) { + this._incrementalRenderLarge(t, e) + }, + _updateDrawMode: function(t) { + var e = t.pipelineContext.large; + (null == this._isLargeDraw || e ^ this._isLargeDraw) && (this._isLargeDraw = e, this._clear()) + }, + _renderNormal: function(t, e, i) { + var n, o = this.group, + a = t.getData(), + r = this._data, + s = t.coordinateSystem, + l = s.getBaseAxis(); + "cartesian2d" === s.type ? n = l.isHorizontal() : "polar" === s.type && (n = "angle" === l.dim); + var u = t.isAnimationEnabled() ? t : null; + a.diff(r).add(function(e) { + if (a.hasValue(e)) { + var i = a.getItemModel(e), + r = GD[s.type](a, e, i), + l = VD[s.type](a, e, i, r, n, u); + a.setItemGraphicEl(e, l), o.add(l), Lh(l, a, e, i, r, t, n, "polar" === s.type) + } + }).update(function(e, i) { + var l = r.getItemGraphicEl(i); + if (a.hasValue(e)) { + var h = a.getItemModel(e), + c = GD[s.type](a, e, h); + l ? bo(l, { + shape: c + }, u, e) : l = VD[s.type](a, e, h, c, n, u, !0), a.setItemGraphicEl(e, l), o.add(l), Lh(l, a, e, h, c, t, n, "polar" === s.type) + } else o.remove(l) + }).remove(function(t) { + var e = r.getItemGraphicEl(t); + "cartesian2d" === s.type ? e && Dh(t, u, e) : e && Ch(t, u, e) + }).execute(), this._data = a + }, + _renderLarge: function(t, e, i) { + this._clear(), Ph(t, this.group) + }, + _incrementalRenderLarge: function(t, e) { + Ph(e, this.group, !0) + }, + dispose: B, + remove: function(t) { + this._clear(t) + }, + _clear: function(t) { + var e = this.group, + i = this._data; + t && t.get("animation") && i && !this._isLargeDraw ? i.eachItemGraphicEl(function(e) { + "sector" === e.type ? Ch(e.dataIndex, t, e) : Dh(e.dataIndex, t, e) + }) : e.removeAll(), this._data = null + } + }); + var VD = { + cartesian2d: function(t, e, i, n, o, r, s) { + var l = new aM({ + shape: a({}, n) + }); + if (r) { + var u = l.shape, + h = o ? "height" : "width", + c = {}; + u[h] = 0, c[h] = n[h], bM[s ? "updateProps" : "initProps"](l, { + shape: c + }, r, e) + } + return l + }, + polar: function(t, e, i, n, o, a, s) { + var l = n.startAngle < n.endAngle, + u = new QS({ + shape: r({ + clockwise: l + }, n) + }); + if (a) { + var h = u.shape, + c = o ? "r" : "endAngle", + d = {}; + h[c] = o ? 0 : n.startAngle, d[c] = n[c], bM[s ? "updateProps" : "initProps"](u, { + shape: d + }, a, e) + } + return u + } + }, + GD = { + cartesian2d: function(t, e, i) { + var n = t.getItemLayout(e), + o = kh(i, n), + a = n.width > 0 ? 1 : -1, + r = n.height > 0 ? 1 : -1; + return { + x: n.x + a * o / 2, + y: n.y + r * o / 2, + width: n.width - a * o, + height: n.height - r * o + } + }, + polar: function(t, e, i) { + var n = t.getItemLayout(e); + return { + cx: n.cx, + cy: n.cy, + r0: n.r0, + r: n.r, + startAngle: n.startAngle, + endAngle: n.endAngle + } + } + }, + FD = kn.extend({ + type: "largeBar", + shape: { + points: [] + }, + buildPath: function(t, e) { + for (var i = e.points, n = this.__startPoint, o = this.__valueIdx, a = 0; a < i.length; a += 2) n[this.__valueIdx] = i[a + o], t.moveTo(n[0], n[1]), t.lineTo(i[a], i[a + 1]) + } + }); + Os(v(kl, "bar")), Os(fA), Es({ + seriesType: "bar", + reset: function(t) { + t.getData().setVisual("legendSymbol", "roundRect") + } + }); + var WD = function(t, e, i) { + e = y(e) && { + coordDimensions: e + } || a({}, e); + var n = t.getSource(), + o = oA(n, e), + r = new eA(o, t); + return r.initData(n, i), r + }, + HD = { + updateSelectedMap: function(t) { + this._targetList = y(t) ? t.slice() : [], this._selectTargetMap = p(t || [], function(t, e) { + return t.set(e.name, e), t + }, R()) + }, + select: function(t, e) { + var i = null != e ? this._targetList[e] : this._selectTargetMap.get(t); + "single" === this.get("selectedMode") && this._selectTargetMap.each(function(t) { + t.selected = !1 + }), i && (i.selected = !0) + }, + unSelect: function(t, e) { + var i = null != e ? this._targetList[e] : this._selectTargetMap.get(t); + i && (i.selected = !1) + }, + toggleSelected: function(t, e) { + var i = null != e ? this._targetList[e] : this._selectTargetMap.get(t); + if (null != i) return this[i.selected ? "unSelect" : "select"](t, e), i.selected + }, + isSelected: function(t, e) { + var i = null != e ? this._targetList[e] : this._selectTargetMap.get(t); + return i && i.selected + } + }, + ZD = Gs({ + type: "series.pie", + init: function(t) { + ZD.superApply(this, "init", arguments), this.legendDataProvider = function() { + return this.getRawData() + }, this.updateSelectedMap(this._createSelectableList()), this._defaultLabelLine(t) + }, + mergeOption: function(t) { + ZD.superCall(this, "mergeOption", t), this.updateSelectedMap(this._createSelectableList()) + }, + getInitialData: function(t, e) { + return WD(this, ["value"]) + }, + _createSelectableList: function() { + for (var t = this.getRawData(), e = t.mapDimension("value"), i = [], n = 0, o = t.count(); n < o; n++) i.push({ + name: t.getName(n), + value: t.get(e, n), + selected: cr(t, n, "selected") + }); + return i + }, + getDataParams: function(t) { + var e = this.getData(), + i = ZD.superCall(this, "getDataParams", t), + n = []; + return e.each(e.mapDimension("value"), function(t) { + n.push(t) + }), i.percent = Wo(n, t, e.hostModel.get("percentPrecision")), i.$vars.push("percent"), i + }, + _defaultLabelLine: function(t) { + Ci(t, "labelLine", ["show"]); + var e = t.labelLine, + i = t.emphasis.labelLine; + e.show = e.show && t.label.show, i.show = i.show && t.emphasis.label.show + }, + defaultOption: { + zlevel: 0, + z: 2, + legendHoverLink: !0, + hoverAnimation: !0, + center: ["50%", "50%"], + radius: [0, "75%"], + clockwise: !0, + startAngle: 90, + minAngle: 0, + selectedOffset: 10, + hoverOffset: 10, + avoidLabelOverlap: !0, + percentPrecision: 2, + stillShowZeroSum: !0, + label: { + rotate: !1, + show: !0, + position: "outer" + }, + labelLine: { + show: !0, + length: 15, + length2: 15, + smooth: !1, + lineStyle: { + width: 1, + type: "solid" + } + }, + itemStyle: { + borderWidth: 1 + }, + animationType: "expansion", + animationEasing: "cubicOut" + } + }); + h(ZD, HD); + var UD = Rh.prototype; + UD.updateData = function(t, e, i) { + function n() { + s.stopAnimation(!0), s.animateTo({ + shape: { + r: h.r + l.get("hoverOffset") + } + }, 300, "elasticOut") + } + + function o() { + s.stopAnimation(!0), s.animateTo({ + shape: { + r: h.r + } + }, 300, "elasticOut") + } + var s = this.childAt(0), + l = t.hostModel, + u = t.getItemModel(e), + h = t.getItemLayout(e), + c = a({}, h); + c.label = null, i ? (s.setShape(c), "scale" === l.getShallow("animationType") ? (s.shape.r = h.r0, So(s, { + shape: { + r: h.r + } + }, l, e)) : (s.shape.endAngle = h.startAngle, bo(s, { + shape: { + endAngle: h.endAngle + } + }, l, e))) : bo(s, { + shape: c + }, l, e); + var d = t.getItemVisual(e, "color"); + s.useStyle(r({ + lineJoin: "bevel", + fill: d + }, u.getModel("itemStyle").getItemStyle())), s.hoverStyle = u.getModel("emphasis.itemStyle").getItemStyle(); + var f = u.getShallow("cursor"); + f && s.attr("cursor", f), Eh(this, t.getItemLayout(e), l.isSelected(null, e), l.get("selectedOffset"), l.get("animation")), s.off("mouseover").off("mouseout").off("emphasis").off("normal"), u.get("hoverAnimation") && l.isAnimationEnabled() && s.on("mouseover", n).on("mouseout", o).on("emphasis", n).on("normal", o), this._updateLabel(t, e), uo(this) + }, UD._updateLabel = function(t, e) { + var i = this.childAt(1), + n = this.childAt(2), + o = t.hostModel, + a = t.getItemModel(e), + r = t.getItemLayout(e).label, + s = t.getItemVisual(e, "color"); + bo(i, { + shape: { + points: r.linePoints || [ + [r.x, r.y], + [r.x, r.y], + [r.x, r.y] + ] + } + }, o, e), bo(n, { + style: { + x: r.x, + y: r.y + } + }, o, e), n.attr({ + rotation: r.rotation, + origin: [r.x, r.y], + z2: 10 + }); + var l = a.getModel("label"), + u = a.getModel("emphasis.label"), + h = a.getModel("labelLine"), + c = a.getModel("emphasis.labelLine"), + s = t.getItemVisual(e, "color"); + co(n.style, n.hoverStyle = {}, l, u, { + labelFetcher: t.hostModel, + labelDataIndex: e, + defaultText: t.getName(e), + autoColor: s, + useInsideStyle: !!r.inside + }, { + textAlign: r.textAlign, + textVerticalAlign: r.verticalAlign, + opacity: t.getItemVisual(e, "opacity") + }), n.ignore = n.normalIgnore = !l.get("show"), n.hoverIgnore = !u.get("show"), i.ignore = i.normalIgnore = !h.get("show"), i.hoverIgnore = !c.get("show"), i.setStyle({ + stroke: s, + opacity: t.getItemVisual(e, "opacity") + }), i.setStyle(h.getModel("lineStyle").getLineStyle()), i.hoverStyle = c.getModel("lineStyle").getLineStyle(); + var d = h.get("smooth"); + d && !0 === d && (d = .4), i.setShape({ + smooth: d + }) + }, u(Rh, Zw); + Mr.extend({ + type: "pie", + init: function() { + var t = new Zw; + this._sectorGroup = t + }, + render: function(t, e, i, n) { + if (!n || n.from !== this.uid) { + var o = t.getData(), + a = this._data, + r = this.group, + s = e.get("animation"), + l = !a, + u = t.get("animationType"), + h = v(Oh, this.uid, t, s, i), + c = t.get("selectedMode"); + if (o.diff(a).add(function(t) { + var e = new Rh(o, t); + l && "scale" !== u && e.eachChild(function(t) { + t.stopAnimation(!0) + }), c && e.on("click", h), o.setItemGraphicEl(t, e), r.add(e) + }).update(function(t, e) { + var i = a.getItemGraphicEl(e); + i.updateData(o, t), i.off("click"), c && i.on("click", h), r.add(i), o.setItemGraphicEl(t, i) + }).remove(function(t) { + var e = a.getItemGraphicEl(t); + r.remove(e) + }).execute(), s && l && o.count() > 0 && "scale" !== u) { + var d = o.getItemLayout(0), + f = Math.max(i.getWidth(), i.getHeight()) / 2, + p = m(r.removeClipPath, r); + r.setClipPath(this._createClipPath(d.cx, d.cy, f, d.startAngle, d.clockwise, p, t)) + } else r.removeClipPath(); + this._data = o + } + }, + dispose: function() {}, + _createClipPath: function(t, e, i, n, o, a, r) { + var s = new QS({ + shape: { + cx: t, + cy: e, + r0: 0, + r: i, + startAngle: n, + endAngle: n, + clockwise: o + } + }); + return So(s, { + shape: { + endAngle: n + (o ? 1 : -1) * Math.PI * 2 + } + }, r, a), s + }, + containPoint: function(t, e) { + var i = e.getData().getItemLayout(0); + if (i) { + var n = t[0] - i.cx, + o = t[1] - i.cy, + a = Math.sqrt(n * n + o * o); + return a <= i.r && a >= i.r0 + } + } + }); + var XD = function(t, e) { + d(e, function(e) { + e.update = "updateView", Ps(e, function(i, n) { + var o = {}; + return n.eachComponent({ + mainType: "series", + subType: t, + query: i + }, function(t) { + t[e.method] && t[e.method](i.name, i.dataIndex); + var n = t.getData(); + n.each(function(e) { + var i = n.getName(e); + o[i] = t.isSelected(i) || !1 + }) + }), { + name: i.name, + selected: o + } + }) + }) + }, + jD = function(t) { + return { + getTargetSeries: function(e) { + var i = {}, + n = R(); + return e.eachSeriesByType(t, function(t) { + t.__paletteScope = i, n.set(t.uid, t) + }), n + }, + reset: function(t, e) { + var i = t.getRawData(), + n = {}, + o = t.getData(); + o.each(function(t) { + var e = o.getRawIndex(t); + n[e] = t + }), i.each(function(e) { + var a = n[e], + r = null != a && o.getItemVisual(a, "color", !0); + if (r) i.setItemVisual(e, "color", r); + else { + var s = i.getItemModel(e).get("itemStyle.color") || t.getColorFromPalette(i.getName(e) || e + "", t.__paletteScope, i.count()); + i.setItemVisual(e, "color", s), null != a && o.setItemVisual(a, "color", s) + } + }) + } + } + }, + YD = function(t, e, i, n) { + var o, a, r = t.getData(), + s = [], + l = !1; + r.each(function(i) { + var n, u, h, c, d = r.getItemLayout(i), + f = r.getItemModel(i), + p = f.getModel("label"), + g = p.get("position") || f.get("emphasis.label.position"), + m = f.getModel("labelLine"), + v = m.get("length"), + y = m.get("length2"), + x = (d.startAngle + d.endAngle) / 2, + _ = Math.cos(x), + w = Math.sin(x); + o = d.cx, a = d.cy; + var b = "inside" === g || "inner" === g; + if ("center" === g) n = d.cx, u = d.cy, c = "center"; + else { + var S = (b ? (d.r + d.r0) / 2 * _ : d.r * _) + o, + M = (b ? (d.r + d.r0) / 2 * w : d.r * w) + a; + if (n = S + 3 * _, u = M + 3 * w, !b) { + var I = S + _ * (v + e - d.r), + T = M + w * (v + e - d.r), + A = I + (_ < 0 ? -1 : 1) * y, + D = T; + n = A + (_ < 0 ? -5 : 5), u = D, h = [ + [S, M], + [I, T], + [A, D] + ] + } + c = b ? "center" : _ > 0 ? "left" : "right" + } + var C = p.getFont(), + L = p.get("rotate") ? _ < 0 ? -x + Math.PI : -x : 0, + k = De(t.getFormattedLabel(i, "normal") || r.getName(i), C, c, "top"); + l = !!L, d.label = { + x: n, + y: u, + position: g, + height: k.height, + len: v, + len2: y, + linePoints: h, + textAlign: c, + verticalAlign: "middle", + rotation: L, + inside: b + }, b || s.push(d.label) + }), !l && t.get("avoidLabelOverlap") && Bh(s, o, a, e, i, n) + }, + qD = 2 * Math.PI, + KD = Math.PI / 180, + $D = function(t) { + return { + seriesType: t, + reset: function(t, e) { + var i = e.findComponents({ + mainType: "legend" + }); + if (i && i.length) { + var n = t.getData(); + n.filterSelf(function(t) { + for (var e = n.getName(t), o = 0; o < i.length; o++) + if (!i[o].isSelected(e)) return !1; + return !0 + }) + } + } + } + }; + XD("pie", [{ + type: "pieToggleSelect", + event: "pieselectchanged", + method: "toggleSelected" + }, { + type: "pieSelect", + event: "pieselected", + method: "select" + }, { + type: "pieUnSelect", + event: "pieunselected", + method: "unSelect" + }]), Es(jD("pie")), Os(v(function(t, e, i, n) { + e.eachSeriesByType(t, function(t) { + var e = t.getData(), + n = e.mapDimension("value"), + o = t.get("center"), + a = t.get("radius"); + y(a) || (a = [0, a]), y(o) || (o = [o, o]); + var r = i.getWidth(), + s = i.getHeight(), + l = Math.min(r, s), + u = Ro(o[0], r), + h = Ro(o[1], s), + c = Ro(a[0], l / 2), + d = Ro(a[1], l / 2), + f = -t.get("startAngle") * KD, + p = t.get("minAngle") * KD, + g = 0; + e.each(n, function(t) { + !isNaN(t) && g++ + }); + var m = e.getSum(n), + v = Math.PI / (m || g) * 2, + x = t.get("clockwise"), + _ = t.get("roseType"), + w = t.get("stillShowZeroSum"), + b = e.getDataExtent(n); + b[0] = 0; + var S = qD, + M = 0, + I = f, + T = x ? 1 : -1; + if (e.each(n, function(t, i) { + var n; + if (isNaN(t)) e.setItemLayout(i, { + angle: NaN, + startAngle: NaN, + endAngle: NaN, + clockwise: x, + cx: u, + cy: h, + r0: c, + r: _ ? NaN : d + }); + else { + (n = "area" !== _ ? 0 === m && w ? v : t * v : qD / g) < p ? (n = p, S -= p) : M += t; + var o = I + T * n; + e.setItemLayout(i, { + angle: n, + startAngle: I, + endAngle: o, + clockwise: x, + cx: u, + cy: h, + r0: c, + r: _ ? Eo(t, b, [c, d]) : d + }), I = o + } + }), S < qD && g) + if (S <= .001) { + var A = qD / g; + e.each(n, function(t, i) { + if (!isNaN(t)) { + var n = e.getItemLayout(i); + n.angle = A, n.startAngle = f + T * i * A, n.endAngle = f + T * (i + 1) * A + } + }) + } else v = S / M, I = f, e.each(n, function(t, i) { + if (!isNaN(t)) { + var n = e.getItemLayout(i), + o = n.angle === p ? p : t * v; + n.startAngle = I, n.endAngle = I + T * o, I += T * o + } + }); + YD(t, d, r, s) + }) + }, "pie")), ks($D("pie")), OI.extend({ + type: "series.scatter", + dependencies: ["grid", "polar", "geo", "singleAxis", "calendar"], + getInitialData: function(t, e) { + return dl(this.getSource(), this) + }, + brushSelector: "point", + getProgressive: function() { + var t = this.option.progressive; + return null == t ? this.option.large ? 5e3 : this.get("progressive") : t + }, + getProgressiveThreshold: function() { + var t = this.option.progressiveThreshold; + return null == t ? this.option.large ? 1e4 : this.get("progressiveThreshold") : t + }, + defaultOption: { + coordinateSystem: "cartesian2d", + zlevel: 0, + z: 2, + legendHoverLink: !0, + hoverAnimation: !0, + symbolSize: 10, + large: !1, + largeThreshold: 2e3, + itemStyle: { + opacity: .8 + } + } + }); + var JD = Fn({ + shape: { + points: null + }, + symbolProxy: null, + buildPath: function(t, e) { + var i = e.points, + n = e.size, + o = this.symbolProxy, + a = o.shape; + if (!((t.getContext ? t.getContext() : t) && n[0] < 4)) + for (var r = 0; r < i.length;) { + var s = i[r++], + l = i[r++]; + isNaN(s) || isNaN(l) || (a.x = s - n[0] / 2, a.y = l - n[1] / 2, a.width = n[0], a.height = n[1], o.buildPath(t, a, !0)) + } + }, + afterBrush: function(t) { + var e = this.shape, + i = e.points, + n = e.size; + if (n[0] < 4) { + this.setTransform(t); + for (var o = 0; o < i.length;) { + var a = i[o++], + r = i[o++]; + isNaN(a) || isNaN(r) || t.fillRect(a - n[0] / 2, r - n[1] / 2, n[0], n[1]) + } + this.restoreTransform(t) + } + }, + findDataIndex: function(t, e) { + for (var i = this.shape, n = i.points, o = i.size, a = Math.max(o[0], 4), r = Math.max(o[1], 4), s = n.length / 2 - 1; s >= 0; s--) { + var l = 2 * s, + u = n[l] - a / 2, + h = n[l + 1] - r / 2; + if (t >= u && e >= h && t <= u + a && e <= h + r) return s + } + return -1 + } + }), + QD = Vh.prototype; + QD.isPersistent = function() { + return !this._incremental + }, QD.updateData = function(t) { + this.group.removeAll(); + var e = new JD({ + rectHover: !0, + cursor: "default" + }); + e.setShape({ + points: t.getLayout("symbolPoints") + }), this._setCommon(e, t), this.group.add(e), this._incremental = null + }, QD.updateLayout = function(t) { + if (!this._incremental) { + var e = t.getLayout("symbolPoints"); + this.group.eachChild(function(t) { + if (null != t.startIndex) { + var i = 2 * (t.endIndex - t.startIndex), + n = 4 * t.startIndex * 2; + e = new Float32Array(e.buffer, n, i) + } + t.setShape("points", e) + }) + } + }, QD.incrementalPrepareUpdate = function(t) { + this.group.removeAll(), this._clearIncremental(), t.count() > 2e6 ? (this._incremental || (this._incremental = new Gn({ + silent: !0 + })), this.group.add(this._incremental)) : this._incremental = null + }, QD.incrementalUpdate = function(t, e) { + var i; + this._incremental ? (i = new JD, this._incremental.addDisplayable(i, !0)) : ((i = new JD({ + rectHover: !0, + cursor: "default", + startIndex: t.start, + endIndex: t.end + })).incremental = !0, this.group.add(i)), i.setShape({ + points: e.getLayout("symbolPoints") + }), this._setCommon(i, e, !!this._incremental) + }, QD._setCommon = function(t, e, i) { + var n = e.hostModel, + o = e.getVisual("symbolSize"); + t.setShape("size", o instanceof Array ? o : [o, o]), t.symbolProxy = Xl(e.getVisual("symbol"), 0, 0, 0, 0), t.setColor = t.symbolProxy.setColor; + var a = t.shape.size[0] < 4; + t.useStyle(n.getModel("itemStyle").getItemStyle(a ? ["color", "shadowBlur", "shadowColor"] : ["color"])); + var r = e.getVisual("color"); + r && t.setColor(r), i || (t.seriesIndex = n.seriesIndex, t.on("mousemove", function(e) { + t.dataIndex = null; + var i = t.findDataIndex(e.offsetX, e.offsetY); + i >= 0 && (t.dataIndex = i + (t.startIndex || 0)) + })) + }, QD.remove = function() { + this._clearIncremental(), this._incremental = null, this.group.removeAll() + }, QD._clearIncremental = function() { + var t = this._incremental; + t && t.clearDisplaybles() + }, Fs({ + type: "scatter", + render: function(t, e, i) { + var n = t.getData(); + this._updateSymbolDraw(n, t).updateData(n), this._finished = !0 + }, + incrementalPrepareRender: function(t, e, i) { + var n = t.getData(); + this._updateSymbolDraw(n, t).incrementalPrepareUpdate(n), this._finished = !1 + }, + incrementalRender: function(t, e, i) { + this._symbolDraw.incrementalUpdate(t, e.getData()), this._finished = t.end === e.getData().count() + }, + updateTransform: function(t, e, i) { + var n = t.getData(); + if (this.group.dirty(), !this._finished || n.count() > 1e4 || !this._symbolDraw.isPersistent()) return { + update: !0 + }; + var o = cD().reset(t); + o.progress && o.progress({ + start: 0, + end: n.count() + }, n), this._symbolDraw.updateLayout(n) + }, + _updateSymbolDraw: function(t, e) { + var i = this._symbolDraw, + n = e.pipelineContext.large; + return i && n === this._isLargeDraw || (i && i.remove(), i = this._symbolDraw = n ? new Vh : new Su, this._isLargeDraw = n, this.group.removeAll()), this.group.add(i.group), i + }, + remove: function(t, e) { + this._symbolDraw && this._symbolDraw.remove(!0), this._symbolDraw = null + }, + dispose: function() {} + }), Es(hD("scatter", "circle")), Os(cD("scatter")), u(Gh, HA), Fh.prototype.getIndicatorAxes = function() { + return this._indicatorAxes + }, Fh.prototype.dataToPoint = function(t, e) { + var i = this._indicatorAxes[e]; + return this.coordToPoint(i.dataToCoord(t), e) + }, Fh.prototype.coordToPoint = function(t, e) { + var i = this._indicatorAxes[e].angle; + return [this.cx + t * Math.cos(i), this.cy - t * Math.sin(i)] + }, Fh.prototype.pointToData = function(t) { + var e = t[0] - this.cx, + i = t[1] - this.cy, + n = Math.sqrt(e * e + i * i); + e /= n, i /= n; + for (var o, a = Math.atan2(-i, e), r = 1 / 0, s = -1, l = 0; l < this._indicatorAxes.length; l++) { + var u = this._indicatorAxes[l], + h = Math.abs(a - u.angle); + h < r && (o = u, s = l, r = h) + } + return [s, +(o && o.coodToData(n))] + }, Fh.prototype.resize = function(t, e) { + var i = t.get("center"), + n = e.getWidth(), + o = e.getHeight(), + a = Math.min(n, o) / 2; + this.cx = Ro(i[0], n), this.cy = Ro(i[1], o), this.startAngle = t.get("startAngle") * Math.PI / 180; + var r = t.get("radius"); + "string" != typeof r && "number" != typeof r || (r = [0, r]), this.r0 = Ro(r[0], a), this.r = Ro(r[1], a), d(this._indicatorAxes, function(t, e) { + t.setExtent(this.r0, this.r); + var i = this.startAngle + e * Math.PI * 2 / this._indicatorAxes.length; + i = Math.atan2(Math.sin(i), Math.cos(i)), t.angle = i + }, this) + }, Fh.prototype.update = function(t, e) { + function i(t) { + var e = Math.pow(10, Math.floor(Math.log(t) / Math.LN10)), + i = t / e; + return 2 === i ? i = 5 : i *= 2, i * e + } + var n = this._indicatorAxes, + o = this._model; + d(n, function(t) { + t.scale.setExtent(1 / 0, -1 / 0) + }), t.eachSeriesByType("radar", function(e, i) { + if ("radar" === e.get("coordinateSystem") && t.getComponent("radar", e.get("radarIndex")) === o) { + var a = e.getData(); + d(n, function(t) { + t.scale.unionExtentFromData(a, a.mapDimension(t.dim)) + }) + } + }, this); + var a = o.get("splitNumber"); + d(n, function(t, e) { + var n = Rl(t.scale, t.model); + Bl(t.scale, t.model); + var o = t.model, + r = t.scale, + s = o.getMin(), + l = o.getMax(), + u = r.getInterval(); + if (null != s && null != l) r.setExtent(+s, +l), r.setInterval((l - s) / a); + else if (null != s) { + var h; + do { + h = s + u * a, r.setExtent(+s, h), r.setInterval(u), u = i(u) + } while (h < n[1] && isFinite(h) && isFinite(n[1])) + } else if (null != l) { + var c; + do { + c = l - u * a, r.setExtent(c, +l), r.setInterval(u), u = i(u) + } while (c > n[0] && isFinite(c) && isFinite(n[0])) + } else { + r.getTicks().length - 1 > a && (u = i(u)); + var d = Math.round((n[0] + n[1]) / 2 / u) * u, + f = Math.round(a / 2); + r.setExtent(zo(d - f * u), zo(d + (a - f) * u)), r.setInterval(u) + } + }) + }, Fh.dimensions = [], Fh.create = function(t, e) { + var i = []; + return t.eachComponent("radar", function(n) { + var o = new Fh(n, t, e); + i.push(o), n.coordinateSystem = o + }), t.eachSeriesByType("radar", function(t) { + "radar" === t.get("coordinateSystem") && (t.coordinateSystem = i[t.get("radarIndex") || 0]) + }), i + }, Ba.register("radar", Fh); + var tC = vD.valueAxis, + eC = (Bs({ + type: "radar", + optionUpdated: function() { + var t = this.get("boundaryGap"), + e = this.get("splitNumber"), + o = this.get("scale"), + s = this.get("axisLine"), + l = this.get("axisTick"), + u = this.get("axisLabel"), + h = this.get("name"), + c = this.get("name.show"), + d = this.get("name.formatter"), + p = this.get("nameGap"), + g = this.get("triggerEvent"), + m = f(this.get("indicator") || [], function(f) { + null != f.max && f.max > 0 && !f.min ? f.min = 0 : null != f.min && f.min < 0 && !f.max && (f.max = 0); + var m = h; + if (null != f.color && (m = r({ + color: f.color + }, h)), f = n(i(f), { + boundaryGap: t, + splitNumber: e, + scale: o, + axisLine: s, + axisTick: l, + axisLabel: u, + name: f.text, + nameLocation: "end", + nameGap: p, + nameTextStyle: m, + triggerEvent: g + }, !1), c || (f.name = ""), "string" == typeof d) { + var v = f.name; + f.name = d.replace("{value}", null != v ? v : "") + } else "function" == typeof d && (f.name = d(f.name, f)); + var y = a(new Lo(f, null, this.ecModel), CA); + return y.mainType = "radar", y.componentIndex = this.componentIndex, y + }, this); + this.getIndicatorModels = function() { + return m + } + }, + defaultOption: { + zlevel: 0, + z: 0, + center: ["50%", "50%"], + radius: "75%", + startAngle: 90, + name: { + show: !0 + }, + boundaryGap: [0, 0], + splitNumber: 5, + nameGap: 15, + scale: !1, + shape: "polygon", + axisLine: n({ + lineStyle: { + color: "#bbb" + } + }, tC.axisLine), + axisLabel: Wh(tC.axisLabel, !1), + axisTick: Wh(tC.axisTick, !1), + splitLine: Wh(tC.splitLine, !0), + splitArea: Wh(tC.splitArea, !0), + indicator: [] + } + }), ["axisLine", "axisTickLabel", "axisName"]); + Vs({ + type: "radar", + render: function(t, e, i) { + this.group.removeAll(), this._buildAxes(t), this._buildSplitLineAndArea(t) + }, + _buildAxes: function(t) { + var e = t.coordinateSystem; + d(f(e.getIndicatorAxes(), function(t) { + return new ID(t.model, { + position: [e.cx, e.cy], + rotation: t.angle, + labelDirection: -1, + tickDirection: -1, + nameDirection: 1 + }) + }), function(t) { + d(eC, t.add, t), this.group.add(t.getGroup()) + }, this) + }, + _buildSplitLineAndArea: function(t) { + function e(t, e, i) { + var n = i % e.length; + return t[n] = t[n] || [], n + } + var i = t.coordinateSystem, + n = i.getIndicatorAxes(); + if (n.length) { + var o = t.get("shape"), + a = t.getModel("splitLine"), + s = t.getModel("splitArea"), + l = a.getModel("lineStyle"), + u = s.getModel("areaStyle"), + h = a.get("show"), + c = s.get("show"), + p = l.get("color"), + g = u.get("color"); + p = y(p) ? p : [p], g = y(g) ? g : [g]; + var m = [], + v = []; + if ("circle" === o) + for (var x = n[0].getTicksCoords(), _ = i.cx, w = i.cy, b = 0; b < x.length; b++) h && m[D = e(m, p, b)].push(new KS({ + shape: { + cx: _, + cy: w, + r: x[b].coord + } + })), c && b < x.length - 1 && v[D = e(v, g, b)].push(new tM({ + shape: { + cx: _, + cy: w, + r0: x[b].coord, + r: x[b + 1].coord + } + })); + else + for (var S, M = f(n, function(t, e) { + var n = t.getTicksCoords(); + return S = null == S ? n.length - 1 : Math.min(n.length - 1, S), f(n, function(t) { + return i.coordToPoint(t.coord, e) + }) + }), I = [], b = 0; b <= S; b++) { + for (var T = [], A = 0; A < n.length; A++) T.push(M[A][b]); + if (T[0] && T.push(T[0].slice()), h && m[D = e(m, p, b)].push(new oM({ + shape: { + points: T + } + })), c && I) { + var D = e(v, g, b - 1); + v[D].push(new nM({ + shape: { + points: T.concat(I) + } + })) + } + I = T.slice().reverse() + } + var C = l.getLineStyle(), + L = u.getAreaStyle(); + d(v, function(t, e) { + this.group.add(xM(t, { + style: r({ + stroke: "none", + fill: g[e % g.length] + }, L), + silent: !0 + })) + }, this), d(m, function(t, e) { + this.group.add(xM(t, { + style: r({ + fill: "none", + stroke: p[e % p.length] + }, C), + silent: !0 + })) + }, this) + } + } + }); + var iC = OI.extend({ + type: "series.radar", + dependencies: ["radar"], + init: function(t) { + iC.superApply(this, "init", arguments), this.legendDataProvider = function() { + return this.getRawData() + } + }, + getInitialData: function(t, e) { + return WD(this, { + generateCoord: "indicator_", + generateCoordCount: 1 / 0 + }) + }, + formatTooltip: function(t) { + var e = this.getData(), + i = this.coordinateSystem.getIndicatorAxes(), + n = this.getData().getName(t); + return Qo("" === n ? this.name : n) + "
" + f(i, function(i, n) { + var o = e.get(e.mapDimension(i.dim), t); + return Qo(i.name + " : " + o) + }).join("
") + }, + defaultOption: { + zlevel: 0, + z: 2, + coordinateSystem: "radar", + legendHoverLink: !0, + radarIndex: 0, + lineStyle: { + width: 2, + type: "solid" + }, + label: { + position: "top" + }, + symbol: "emptyCircle", + symbolSize: 4 + } + }); + Fs({ + type: "radar", + render: function(t, e, n) { + function o(t, e) { + var i = t.getItemVisual(e, "symbol") || "circle", + n = t.getItemVisual(e, "color"); + if ("none" !== i) { + var o = Hh(t.getItemVisual(e, "symbolSize")), + a = Xl(i, -1, -1, 2, 2, n); + return a.attr({ + style: { + strokeNoScale: !0 + }, + z2: 100, + scale: [o[0] / 2, o[1] / 2] + }), a + } + } + + function a(e, i, n, a, r, s) { + n.removeAll(); + for (var l = 0; l < i.length - 1; l++) { + var u = o(a, r); + u && (u.__dimIdx = l, e[l] ? (u.attr("position", e[l]), bM[s ? "initProps" : "updateProps"](u, { + position: i[l] + }, t, r)) : u.attr("position", i[l]), n.add(u)) + } + } + + function s(t) { + return f(t, function(t) { + return [l.cx, l.cy] + }) + } + var l = t.coordinateSystem, + u = this.group, + h = t.getData(), + c = this._data; + h.diff(c).add(function(e) { + var i = h.getItemLayout(e); + if (i) { + var n = new nM, + o = new oM, + r = { + shape: { + points: i + } + }; + n.shape.points = s(i), o.shape.points = s(i), So(n, r, t, e), So(o, r, t, e); + var l = new Zw, + u = new Zw; + l.add(o), l.add(n), l.add(u), a(o.shape.points, i, u, h, e, !0), h.setItemGraphicEl(e, l) + } + }).update(function(e, i) { + var n = c.getItemGraphicEl(i), + o = n.childAt(0), + r = n.childAt(1), + s = n.childAt(2), + l = { + shape: { + points: h.getItemLayout(e) + } + }; + l.shape.points && (a(o.shape.points, l.shape.points, s, h, e, !1), bo(o, l, t), bo(r, l, t), h.setItemGraphicEl(e, n)) + }).remove(function(t) { + u.remove(c.getItemGraphicEl(t)) + }).execute(), h.eachItemGraphicEl(function(t, e) { + function n() { + l.attr("ignore", m) + } + + function o() { + l.attr("ignore", g) + } + var a = h.getItemModel(e), + s = t.childAt(0), + l = t.childAt(1), + c = t.childAt(2), + d = h.getItemVisual(e, "color"); + u.add(t), s.useStyle(r(a.getModel("lineStyle").getLineStyle(), { + fill: "none", + stroke: d + })), s.hoverStyle = a.getModel("emphasis.lineStyle").getLineStyle(); + var f = a.getModel("areaStyle"), + p = a.getModel("emphasis.areaStyle"), + g = f.isEmpty() && f.parentModel.isEmpty(), + m = p.isEmpty() && p.parentModel.isEmpty(); + m = m && g, l.ignore = g, l.useStyle(r(f.getAreaStyle(), { + fill: d, + opacity: .7 + })), l.hoverStyle = p.getAreaStyle(); + var v = a.getModel("itemStyle").getItemStyle(["color"]), + y = a.getModel("emphasis.itemStyle").getItemStyle(), + x = a.getModel("label"), + _ = a.getModel("emphasis.label"); + c.eachChild(function(t) { + t.setStyle(v), t.hoverStyle = i(y), co(t.style, t.hoverStyle, x, _, { + labelFetcher: h.hostModel, + labelDataIndex: e, + labelDimIndex: t.__dimIdx, + defaultText: h.get(h.dimensions[t.__dimIdx], e), + autoColor: d, + isRectText: !0 + }) + }), t.off("mouseover").off("mouseout").off("normal").off("emphasis"), t.on("emphasis", n).on("mouseover", n).on("normal", o).on("mouseout", o), uo(t) + }), this._data = h + }, + remove: function() { + this.group.removeAll(), this._data = null + }, + dispose: function() {} + }); + Es(jD("radar")), Es(hD("radar", "circle")), Os(function(t) { + t.eachSeriesByType("radar", function(t) { + var e = t.getData(), + i = [], + n = t.coordinateSystem; + if (n) { + for (var o = n.getIndicatorAxes(), a = 0; a < o.length; a++) e.each(e.mapDimension(o[a].dim), function(t, e) { + i[e] = i[e] || [], i[e][a] = n.dataToPoint(t, a) + }); + e.each(function(t) { + i[t][0] && i[t].push(i[t][0].slice()), e.setItemLayout(t, i[t]) + }) + } + }) + }), ks($D("radar")), Ls(function(t) { + var e = t.polar; + if (e) { + y(e) || (e = [e]); + var i = []; + d(e, function(e, n) { + e.indicator ? (e.type && !e.shape && (e.shape = e.type), t.radar = t.radar || [], y(t.radar) || (t.radar = [t.radar]), t.radar.push(e)) : i.push(e) + }), t.polar = i + } + d(t.series, function(t) { + t && "radar" === t.type && t.polarIndex && (t.radarIndex = t.polarIndex) + }) + }); + var nC = Q; + h(Zh, mw), Uh.prototype = { + constructor: Uh, + type: "view", + dimensions: ["x", "y"], + setBoundingRect: function(t, e, i, n) { + return this._rect = new ue(t, e, i, n), this._rect + }, + getBoundingRect: function() { + return this._rect + }, + setViewRect: function(t, e, i, n) { + this.transformTo(t, e, i, n), this._viewRect = new ue(t, e, i, n) + }, + transformTo: function(t, e, i, n) { + var o = this.getBoundingRect(), + a = this._rawTransformable; + a.transform = o.calculateTransform(new ue(t, e, i, n)), a.decomposeTransform(), this._updateTransform() + }, + setCenter: function(t) { + t && (this._center = t, this._updateCenterAndZoom()) + }, + setZoom: function(t) { + t = t || 1; + var e = this.zoomLimit; + e && (null != e.max && (t = Math.min(e.max, t)), null != e.min && (t = Math.max(e.min, t))), this._zoom = t, this._updateCenterAndZoom() + }, + getDefaultCenter: function() { + var t = this.getBoundingRect(); + return [t.x + t.width / 2, t.y + t.height / 2] + }, + getCenter: function() { + return this._center || this.getDefaultCenter() + }, + getZoom: function() { + return this._zoom || 1 + }, + getRoamTransform: function() { + return this._roamTransformable.getLocalTransform() + }, + _updateCenterAndZoom: function() { + var t = this._rawTransformable.getLocalTransform(), + e = this._roamTransformable, + i = this.getDefaultCenter(), + n = this.getCenter(), + o = this.getZoom(); + n = Q([], n, t), i = Q([], i, t), e.origin = n, e.position = [i[0] - n[0], i[1] - n[1]], e.scale = [o, o], this._updateTransform() + }, + _updateTransform: function() { + var t = this._roamTransformable, + e = this._rawTransformable; + e.parent = t, t.updateTransform(), e.updateTransform(), yt(this.transform || (this.transform = []), e.transform || mt()), this._rawTransform = e.getLocalTransform(), this.invTransform = this.invTransform || [], St(this.invTransform, this.transform), this.decomposeTransform() + }, + getViewRect: function() { + return this._viewRect + }, + getViewRectAfterRoam: function() { + var t = this.getBoundingRect().clone(); + return t.applyTransform(this.transform), t + }, + dataToPoint: function(t, e, i) { + var n = e ? this._rawTransform : this.transform; + return i = i || [], n ? nC(i, t, n) : G(i, t) + }, + pointToData: function(t) { + var e = this.invTransform; + return e ? nC([], t, e) : [t[0], t[1]] + }, + convertToPixel: v(Xh, "dataToPoint"), + convertFromPixel: v(Xh, "pointToData"), + containPoint: function(t) { + return this.getViewRectAfterRoam().contain(t[0], t[1]) + } + }, h(Uh, mw); + for (var oC = [126, 25], aC = [ + [ + [0, 3.5], + [7, 11.2], + [15, 11.9], + [30, 7], + [42, .7], + [52, .7], + [56, 7.7], + [59, .7], + [64, .7], + [64, 0], + [5, 0], + [0, 3.5] + ], + [ + [13, 16.1], + [19, 14.7], + [16, 21.7], + [11, 23.1], + [13, 16.1] + ], + [ + [12, 32.2], + [14, 38.5], + [15, 38.5], + [13, 32.2], + [12, 32.2] + ], + [ + [16, 47.6], + [12, 53.2], + [13, 53.2], + [18, 47.6], + [16, 47.6] + ], + [ + [6, 64.4], + [8, 70], + [9, 70], + [8, 64.4], + [6, 64.4] + ], + [ + [23, 82.6], + [29, 79.8], + [30, 79.8], + [25, 82.6], + [23, 82.6] + ], + [ + [37, 70.7], + [43, 62.3], + [44, 62.3], + [39, 70.7], + [37, 70.7] + ], + [ + [48, 51.1], + [51, 45.5], + [53, 45.5], + [50, 51.1], + [48, 51.1] + ], + [ + [51, 35], + [51, 28.7], + [53, 28.7], + [53, 35], + [51, 35] + ], + [ + [52, 22.4], + [55, 17.5], + [56, 17.5], + [53, 22.4], + [52, 22.4] + ], + [ + [58, 12.6], + [62, 7], + [63, 7], + [60, 12.6], + [58, 12.6] + ], + [ + [0, 3.5], + [0, 93.1], + [64, 93.1], + [64, 0], + [63, 0], + [63, 92.4], + [1, 92.4], + [1, 3.5], + [0, 3.5] + ] + ], rC = 0; rC < aC.length; rC++) + for (var sC = 0; sC < aC[rC].length; sC++) aC[rC][sC][0] /= 10.5, aC[rC][sC][1] /= -14, aC[rC][sC][0] += oC[0], aC[rC][sC][1] += oC[1]; + var lC = function(t, e) { + "china" === t && e.push(new ql("南海诸岛", f(aC, function(t) { + return { + type: "polygon", + exterior: t + } + }), oC)) + }, + uC = { + "南海诸岛": [32, 80], + "广东": [0, -10], + "香港": [10, 5], + "澳门": [-10, 10], + "天津": [5, 5] + }, + hC = function(t, e) { + if ("china" === t) { + var i = uC[e.name]; + if (i) { + var n = e.center; + n[0] += i[0] / 10.5, n[1] += -i[1] / 14 + } + } + }, + cC = { + Russia: [100, 60], + "United States": [-99, 38], + "United States of America": [-99, 38] + }, + dC = function(t, e) { + if ("world" === t) { + var i = cC[e.name]; + if (i) { + var n = e.center; + n[0] = i[0], n[1] = i[1] + } + } + }, + fC = [ + [ + [123.45165252685547, 25.73527164402261], + [123.49731445312499, 25.73527164402261], + [123.49731445312499, 25.750734064600884], + [123.45165252685547, 25.750734064600884], + [123.45165252685547, 25.73527164402261] + ] + ], + pC = function(t, e) { + "china" === t && "台湾" === e.name && e.geometries.push({ + type: "polygon", + exterior: fC[0] + }) + }, + gC = Bi(), + mC = { + load: function(t, e) { + var i = gC(e).parsed; + if (i) return i; + var n, o = e.specialAreas || {}, + a = e.geoJSON; + try { + n = a ? GA(a) : [] + } catch (t) { + throw new Error("Invalid geoJson format\n" + t.message) + } + return d(n, function(e) { + var i = e.name; + hC(t, e), dC(t, e), pC(t, e); + var n = o[i]; + n && e.transformTo(n.left, n.top, n.width, n.height) + }), lC(t, n), gC(e).parsed = { + regions: n, + boundingRect: jh(n) + } + } + }, + vC = Bi(), + yC = { + geoJSON: mC, + svg: { + load: function(t, e) { + var i = vC(e).originRoot; + if (i) return { + root: i, + boundingRect: vC(e).boundingRect + }; + var n = Yh(e); + return vC(e).originRoot = n.root, vC(e).boundingRect = n.boundingRect, n + }, + makeGraphic: function(t, e, i) { + var n = vC(e), + o = n.rootMap || (n.rootMap = R()), + a = o.get(i); + if (a) return a; + var r = n.originRoot, + s = n.boundingRect; + return n.originRootHostKey ? a = Yh(e, s).root : (n.originRootHostKey = i, a = r), o.set(i, a) + }, + removeGraphic: function(t, e, i) { + var n = vC(e), + o = n.rootMap; + o && o.removeKey(i), i === n.originRootHostKey && (n.originRootHostKey = null) + } + } + }, + xC = { + load: function(t, e) { + var i, n = [], + o = R(), + a = R(); + return d(Kh(t), function(r) { + var s = yC[r.type].load(t, r); + d(s.regions, function(t) { + var i = t.name; + e && e.hasOwnProperty(i) && (t = t.cloneShallow(i = e[i])), n.push(t), o.set(i, t), a.set(i, t.center) + }); + var l = s.boundingRect; + l && (i ? i.union(l) : i = l.clone()) + }), { + regions: n, + regionsMap: o, + nameCoordMap: a, + boundingRect: i || new ue(0, 0, 0, 0) + } + }, + makeGraphic: qh("makeGraphic"), + removeGraphic: qh("removeGraphic") + }; + $h.prototype = { + constructor: $h, + type: "geo", + dimensions: ["lng", "lat"], + containCoord: function(t) { + for (var e = this.regions, i = 0; i < e.length; i++) + if (e[i].contain(t)) return !0; + return !1 + }, + transformTo: function(t, e, i, n) { + var o = this.getBoundingRect(), + a = this._invertLongitute; + o = o.clone(), a && (o.y = -o.y - o.height); + var r = this._rawTransformable; + if (r.transform = o.calculateTransform(new ue(t, e, i, n)), r.decomposeTransform(), a) { + var s = r.scale; + s[1] = -s[1] + } + r.updateTransform(), this._updateTransform() + }, + getRegion: function(t) { + return this._regionsMap.get(t) + }, + getRegionByCoord: function(t) { + for (var e = this.regions, i = 0; i < e.length; i++) + if (e[i].contain(t)) return e[i] + }, + addGeoCoord: function(t, e) { + this._nameCoordMap.set(t, e) + }, + getGeoCoord: function(t) { + return this._nameCoordMap.get(t) + }, + getBoundingRect: function() { + return this._rect + }, + dataToPoint: function(t, e, i) { + if ("string" == typeof t && (t = this.getGeoCoord(t)), t) return Uh.prototype.dataToPoint.call(this, t, e, i) + }, + convertToPixel: v(Jh, "dataToPoint"), + convertFromPixel: v(Jh, "pointToData") + }, h($h, Uh); + var _C = { + dimensions: $h.prototype.dimensions, + create: function(t, e) { + var i = []; + t.eachComponent("geo", function(t, n) { + var o = t.get("map"), + a = t.get("aspectScale"), + r = !0, + s = pT.retrieveMap(o); + s && s[0] && "svg" === s[0].type ? (null == a && (a = 1), r = !1) : null == a && (a = .75); + var l = new $h(o + n, o, t.get("nameMap"), r); + l.aspectScale = a, l.zoomLimit = t.get("scaleLimit"), i.push(l), tc(l, t), t.coordinateSystem = l, l.model = t, l.resize = Qh, l.resize(t, e) + }), t.eachSeries(function(t) { + if ("geo" === t.get("coordinateSystem")) { + var e = t.get("geoIndex") || 0; + t.coordinateSystem = i[e] + } + }); + var n = {}; + return t.eachSeriesByType("map", function(t) { + if (!t.getHostGeoModel()) { + var e = t.getMapType(); + n[e] = n[e] || [], n[e].push(t) + } + }), d(n, function(t, n) { + var a = new $h(n, n, o(f(t, function(t) { + return t.get("nameMap") + }))); + a.zoomLimit = T.apply(null, f(t, function(t) { + return t.get("scaleLimit") + })), i.push(a), a.resize = Qh, a.aspectScale = t[0].get("aspectScale"), a.resize(t[0], e), d(t, function(t) { + t.coordinateSystem = a, tc(a, t) + }) + }), i + }, + getFilledRegions: function(t, e, i) { + for (var n = (t || []).slice(), o = R(), a = 0; a < n.length; a++) o.set(n[a].name, n[a]); + return d(xC.load(e, i).regions, function(t) { + var e = t.name; + !o.get(e) && n.push({ + name: e + }) + }), n + } + }; + Ns("geo", _C); + var wC = OI.extend({ + type: "series.map", + dependencies: ["geo"], + layoutMode: "box", + needsDrawMap: !1, + seriesGroup: [], + init: function(t) { + wC.superApply(this, "init", arguments), this.updateSelectedMap(this._createSelectableList()) + }, + getInitialData: function(t) { + return WD(this, ["value"]) + }, + mergeOption: function(t) { + wC.superApply(this, "mergeOption", arguments), this.updateSelectedMap(this._createSelectableList()) + }, + _createSelectableList: function() { + for (var t = this.getRawData(), e = t.mapDimension("value"), i = [], n = 0, o = t.count(); n < o; n++) i.push({ + name: t.getName(n), + value: t.get(e, n), + selected: cr(t, n, "selected") + }); + return i = _C.getFilledRegions(i, this.getMapType(), this.option.nameMap) + }, + getHostGeoModel: function() { + var t = this.option.geoIndex; + return null != t ? this.dependentModels.geo[t] : null + }, + getMapType: function() { + return (this.getHostGeoModel() || this).option.map + }, + _fillOption: function(t, e) {}, + getRawValue: function(t) { + var e = this.getData(); + return e.get(e.mapDimension("value"), t) + }, + getRegionModel: function(t) { + var e = this.getData(); + return e.getItemModel(e.indexOfName(t)) + }, + formatTooltip: function(t) { + for (var e = this.getData(), i = $o(this.getRawValue(t)), n = e.getName(t), o = this.seriesGroup, a = [], r = 0; r < o.length; r++) { + var s = o[r].originalData.indexOfName(n), + l = e.mapDimension("value"); + isNaN(o[r].originalData.get(l, s)) || a.push(Qo(o[r].name)) + } + return a.join(", ") + "
" + Qo(n + " : " + i) + }, + getTooltipPosition: function(t) { + if (null != t) { + var e = this.getData().getName(t), + i = this.coordinateSystem, + n = i.getRegion(e); + return n && i.dataToPoint(n.center) + } + }, + setZoom: function(t) { + this.option.zoom = t + }, + setCenter: function(t) { + this.option.center = t + }, + defaultOption: { + zlevel: 0, + z: 2, + coordinateSystem: "geo", + map: "", + left: "center", + top: "center", + aspectScale: .75, + showLegendSymbol: !0, + dataRangeHoverLink: !0, + boundingCoords: null, + center: null, + zoom: 1, + scaleLimit: null, + label: { + show: !1, + color: "#000" + }, + itemStyle: { + borderWidth: .5, + borderColor: "#444", + areaColor: "#eee" + }, + emphasis: { + label: { + show: !0, + color: "rgb(100,0,0)" + }, + itemStyle: { + areaColor: "rgba(255,215,0,0.8)" + } + } + } + }); + h(wC, HD); + var bC = "\0_ec_interaction_mutex"; + Ps({ + type: "takeGlobalCursor", + event: "globalCursorTaken", + update: "update" + }, function() {}), h(ac, aw); + var SC = { + axisPointer: 1, + tooltip: 1, + brush: 1 + }; + _c.prototype = { + constructor: _c, + draw: function(t, e, i, n, o) { + var a = "geo" === t.mainType, + r = t.getData && t.getData(); + a && e.eachComponent({ + mainType: "series", + subType: "map" + }, function(e) { + r || e.getHostGeoModel() !== t || (r = e.getData()) + }); + var s = t.coordinateSystem; + this._updateBackground(s); + var l = this._regionsGroup, + u = this.group, + h = s.scale, + c = { + position: s.position, + scale: h + }; + !l.childAt(0) || o ? u.attr(c) : bo(u, c, t), l.removeAll(); + var f = ["itemStyle"], + p = ["emphasis", "itemStyle"], + g = ["label"], + m = ["emphasis", "label"], + v = R(); + d(s.regions, function(e) { + var i = v.get(e.name) || v.set(e.name, new Zw), + n = new hM({ + shape: { + paths: [] + } + }); + i.add(n); + var o, s = (C = t.getRegionModel(e.name) || t).getModel(f), + u = C.getModel(p), + c = vc(s), + y = vc(u), + x = C.getModel(g), + _ = C.getModel(m); + if (r) { + o = r.indexOfName(e.name); + var w = r.getItemVisual(o, "color", !0); + w && (c.fill = w) + } + d(e.geometries, function(t) { + if ("polygon" === t.type) { + n.shape.paths.push(new nM({ + shape: { + points: t.exterior + } + })); + for (var e = 0; e < (t.interiors ? t.interiors.length : 0); e++) n.shape.paths.push(new nM({ + shape: { + points: t.interiors[e] + } + })) + } + }), n.setStyle(c), n.style.strokeNoScale = !0, n.culling = !0; + var b = x.get("show"), + S = _.get("show"), + M = r && isNaN(r.get(r.mapDimension("value"), o)), + I = r && r.getItemLayout(o); + if (a || M && (b || S) || I && I.showLabel) { + var T, A = a ? e.name : o; + (!r || o >= 0) && (T = t); + var D = new qS({ + position: e.center.slice(), + scale: [1 / h[0], 1 / h[1]], + z2: 10, + silent: !0 + }); + co(D.style, D.hoverStyle = {}, x, _, { + labelFetcher: T, + labelDataIndex: A, + defaultText: e.name, + useInsideStyle: !1 + }, { + textAlign: "center", + textVerticalAlign: "middle" + }), i.add(D) + } + if (r) r.setItemGraphicEl(o, i); + else { + var C = t.getRegionModel(e.name); + n.eventData = { + componentType: "geo", + componentIndex: t.componentIndex, + geoIndex: t.componentIndex, + name: e.name, + region: C && C.option || {} + } + }(i.__regions || (i.__regions = [])).push(e), uo(i, y, { + hoverSilentOnTouch: !!t.get("selectedMode") + }), l.add(i) + }), this._updateController(t, e, i), yc(this, t, l, i, n), xc(t, l) + }, + remove: function() { + this._regionsGroup.removeAll(), this._backgroundGroup.removeAll(), this._controller.dispose(), this._mapName && xC.removeGraphic(this._mapName, this.uid), this._mapName = null, this._controllerHost = {} + }, + _updateBackground: function(t) { + var e = t.map; + this._mapName !== e && d(xC.makeGraphic(e, this.uid), function(t) { + this._backgroundGroup.add(t) + }, this), this._mapName = e + }, + _updateController: function(t, e, i) { + function n() { + var e = { + type: "geoRoam", + componentType: l + }; + return e[l + "Id"] = t.id, e + } + var o = t.coordinateSystem, + r = this._controller, + s = this._controllerHost; + s.zoomLimit = t.get("scaleLimit"), s.zoom = o.getZoom(), r.enable(t.get("roam") || !1); + var l = t.mainType; + r.off("pan").on("pan", function(t) { + this._mouseDownFlag = !1, pc(s, t.dx, t.dy), i.dispatchAction(a(n(), { + dx: t.dx, + dy: t.dy + })) + }, this), r.off("zoom").on("zoom", function(t) { + if (this._mouseDownFlag = !1, gc(s, t.scale, t.originX, t.originY), i.dispatchAction(a(n(), { + zoom: t.scale, + originX: t.originX, + originY: t.originY + })), this._updateGroup) { + var e = this.group.scale; + this._regionsGroup.traverse(function(t) { + "text" === t.type && t.attr("scale", [1 / e[0], 1 / e[1]]) + }) + } + }, this), r.setPointerChecker(function(e, n, a) { + return o.getViewRectAfterRoam().contain(n, a) && !mc(e, i, t) + }) + } + }, Fs({ + type: "map", + render: function(t, e, i, n) { + if (!n || "mapToggleSelect" !== n.type || n.from !== this.uid) { + var o = this.group; + if (o.removeAll(), !t.getHostGeoModel()) { + if (n && "geoRoam" === n.type && "series" === n.componentType && n.seriesId === t.id)(a = this._mapDraw) && o.add(a.group); + else if (t.needsDrawMap) { + var a = this._mapDraw || new _c(i, !0); + o.add(a.group), a.draw(t, e, i, this, n), this._mapDraw = a + } else this._mapDraw && this._mapDraw.remove(), this._mapDraw = null; + t.get("showLegendSymbol") && e.getComponent("legend") && this._renderSymbols(t, e, i) + } + } + }, + remove: function() { + this._mapDraw && this._mapDraw.remove(), this._mapDraw = null, this.group.removeAll() + }, + dispose: function() { + this._mapDraw && this._mapDraw.remove(), this._mapDraw = null + }, + _renderSymbols: function(t, e, i) { + var n = t.originalData, + o = this.group; + n.each(n.mapDimension("value"), function(e, i) { + if (!isNaN(e)) { + var a = n.getItemLayout(i); + if (a && a.point) { + var r = a.point, + s = a.offset, + l = new KS({ + style: { + fill: t.getData().getVisual("color") + }, + shape: { + cx: r[0] + 9 * s, + cy: r[1], + r: 3 + }, + silent: !0, + z2: s ? 8 : 10 + }); + if (!s) { + var u = t.mainSeries.getData(), + h = n.getName(i), + c = u.indexOfName(h), + d = n.getItemModel(i), + f = d.getModel("label"), + p = d.getModel("emphasis.label"), + g = u.getItemGraphicEl(c), + m = A(t.getFormattedLabel(i, "normal"), h), + v = A(t.getFormattedLabel(i, "emphasis"), m), + y = function() { + var t = fo({}, p, { + text: p.get("show") ? v : null + }, { + isRectText: !0, + useInsideStyle: !1 + }, !0); + l.style.extendFrom(t), l.__mapOriginalZ2 = l.z2, l.z2 += 1 + }, + x = function() { + fo(l.style, f, { + text: f.get("show") ? m : null, + textPosition: f.getShallow("position") || "bottom" + }, { + isRectText: !0, + useInsideStyle: !1 + }), null != l.__mapOriginalZ2 && (l.z2 = l.__mapOriginalZ2, l.__mapOriginalZ2 = null) + }; + g.on("mouseover", y).on("mouseout", x).on("emphasis", y).on("normal", x), x() + } + o.add(l) + } + } + }) + } + }), Ps({ + type: "geoRoam", + event: "geoRoam", + update: "updateTransform" + }, function(t, e) { + var i = t.componentType || "series"; + e.eachComponent({ + mainType: i, + query: t + }, function(e) { + var n = e.coordinateSystem; + if ("geo" === n.type) { + var o = wc(n, t, e.get("scaleLimit")); + e.setCenter && e.setCenter(o.center), e.setZoom && e.setZoom(o.zoom), "series" === i && d(e.seriesGroup, function(t) { + t.setCenter(o.center), t.setZoom(o.zoom) + }) + } + }) + }); + Os(function(t) { + var e = {}; + t.eachSeriesByType("map", function(i) { + var n = i.getMapType(); + if (!i.getHostGeoModel() && !e[n]) { + var o = {}; + d(i.seriesGroup, function(e) { + var i = e.coordinateSystem, + n = e.originalData; + e.get("showLegendSymbol") && t.getComponent("legend") && n.each(n.mapDimension("value"), function(t, e) { + var a = n.getName(e), + r = i.getRegion(a); + if (r && !isNaN(t)) { + var s = o[a] || 0, + l = i.dataToPoint(r.center); + o[a] = s + 1, n.setItemLayout(e, { + point: l, + offset: s + }) + } + }) + }); + var a = i.getData(); + a.each(function(t) { + var e = a.getName(t), + i = a.getItemLayout(t) || {}; + i.showLabel = !o[e], a.setItemLayout(t, i) + }), e[n] = !0 + } + }) + }), Es(function(t) { + t.eachSeriesByType("map", function(t) { + var e = t.get("color"), + i = t.getModel("itemStyle"), + n = i.get("areaColor"), + o = i.get("color") || e[t.seriesIndex % e.length]; + t.getData().setVisual({ + areaColor: n, + color: o + }) + }) + }), ks(IT.PROCESSOR.STATISTIC, function(t) { + var e = {}; + t.eachSeriesByType("map", function(t) { + var i = t.getHostGeoModel(), + n = i ? "o" + i.id : "i" + t.getMapType(); + (e[n] = e[n] || []).push(t) + }), d(e, function(t, e) { + for (var i = bc(f(t, function(t) { + return t.getData() + }), t[0].get("mapValueCalculation")), n = 0; n < t.length; n++) t[n].originalData = t[n].getData(); + for (n = 0; n < t.length; n++) t[n].seriesGroup = t, t[n].needsDrawMap = 0 === n && !t[n].getHostGeoModel(), t[n].setData(i.cloneShallow()), t[n].mainSeries = t[0] + }) + }), Ls(function(t) { + var e = []; + d(t.series, function(t) { + t && "map" === t.type && (e.push(t), t.map = t.map || t.mapType, r(t, t.mapLocation)) + }) + }), XD("map", [{ + type: "mapToggleSelect", + event: "mapselectchanged", + method: "toggleSelected" + }, { + type: "mapSelect", + event: "mapselected", + method: "select" + }, { + type: "mapUnSelect", + event: "mapunselected", + method: "unSelect" + }]); + var MC = d, + IC = "\0__link_datas", + TC = "\0__link_mainData", + AC = function(t, e) { + this.name = t || "", this.depth = 0, this.height = 0, this.parentNode = null, this.dataIndex = -1, this.children = [], this.viewChildren = [], this.hostTree = e + }; + AC.prototype = { + constructor: AC, + isRemoved: function() { + return this.dataIndex < 0 + }, + eachNode: function(t, e, i) { + "function" == typeof t && (i = e, e = t, t = null), _(t = t || {}) && (t = { + order: t + }); + var n, o = t.order || "preorder", + a = this[t.attr || "children"]; + "preorder" === o && (n = e.call(i, this)); + for (var r = 0; !n && r < a.length; r++) a[r].eachNode(t, e, i); + "postorder" === o && e.call(i, this) + }, + updateDepthAndHeight: function(t) { + var e = 0; + this.depth = t; + for (var i = 0; i < this.children.length; i++) { + var n = this.children[i]; + n.updateDepthAndHeight(t + 1), n.height > e && (e = n.height) + } + this.height = e + 1 + }, + getNodeById: function(t) { + if (this.getId() === t) return this; + for (var e = 0, i = this.children, n = i.length; e < n; e++) { + var o = i[e].getNodeById(t); + if (o) return o + } + }, + contains: function(t) { + if (t === this) return !0; + for (var e = 0, i = this.children, n = i.length; e < n; e++) { + var o = i[e].contains(t); + if (o) return o + } + }, + getAncestors: function(t) { + for (var e = [], i = t ? this : this.parentNode; i;) e.push(i), i = i.parentNode; + return e.reverse(), e + }, + getValue: function(t) { + var e = this.hostTree.data; + return e.get(e.getDimension(t || "value"), this.dataIndex) + }, + setLayout: function(t, e) { + this.dataIndex >= 0 && this.hostTree.data.setItemLayout(this.dataIndex, t, e) + }, + getLayout: function() { + return this.hostTree.data.getItemLayout(this.dataIndex) + }, + getModel: function(t) { + if (!(this.dataIndex < 0)) { + var e, i = this.hostTree, + n = i.data.getItemModel(this.dataIndex), + o = this.getLevelModel(); + return o || 0 !== this.children.length && (0 === this.children.length || !1 !== this.isExpand) || (e = this.getLeavesModel()), n.getModel(t, (o || e || i.hostModel).getModel(t)) + } + }, + getLevelModel: function() { + return (this.hostTree.levelModels || [])[this.depth] + }, + getLeavesModel: function() { + return this.hostTree.leavesModel + }, + setVisual: function(t, e) { + this.dataIndex >= 0 && this.hostTree.data.setItemVisual(this.dataIndex, t, e) + }, + getVisual: function(t, e) { + return this.hostTree.data.getItemVisual(this.dataIndex, t, e) + }, + getRawIndex: function() { + return this.hostTree.data.getRawIndex(this.dataIndex) + }, + getId: function() { + return this.hostTree.data.getId(this.dataIndex) + }, + isAncestorOf: function(t) { + for (var e = t.parentNode; e;) { + if (e === this) return !0; + e = e.parentNode + } + return !1 + }, + isDescendantOf: function(t) { + return t !== this && t.isAncestorOf(this) + } + }, kc.prototype = { + constructor: kc, + type: "tree", + eachNode: function(t, e, i) { + this.root.eachNode(t, e, i) + }, + getNodeByDataIndex: function(t) { + var e = this.data.getRawIndex(t); + return this._nodes[e] + }, + getNodeByName: function(t) { + return this.root.getNodeByName(t) + }, + update: function() { + for (var t = this.data, e = this._nodes, i = 0, n = e.length; i < n; i++) e[i].dataIndex = -1; + for (var i = 0, n = t.count(); i < n; i++) e[t.getRawIndex(i)].dataIndex = i + }, + clearLayouts: function() { + this.data.clearItemLayouts() + } + }, kc.createTree = function(t, e, i) { + function n(t, e) { + var i = t.value; + r = Math.max(r, y(i) ? i.length : 1), a.push(t); + var s = new AC(t.name, o); + e ? Pc(s, e) : o.root = s, o._nodes.push(s); + var l = t.children; + if (l) + for (var u = 0; u < l.length; u++) n(l[u], s) + } + var o = new kc(e, i.levels, i.leaves), + a = [], + r = 1; + n(t), o.root.updateDepthAndHeight(0); + var s = oA(a, { + coordDimensions: ["value"], + dimensionsCount: r + }), + l = new eA(s, e); + return l.initData(a), Sc({ + mainData: l, + struct: o, + structAttr: "tree" + }), o.update(), o + }, OI.extend({ + type: "series.tree", + layoutInfo: null, + layoutMode: "box", + getInitialData: function(t) { + var e = { + name: t.name, + children: t.data + }, + i = t.leaves || {}, + n = {}; + n.leaves = i; + var o = kc.createTree(e, this, n), + a = 0; + o.eachNode("preorder", function(t) { + t.depth > a && (a = t.depth) + }); + var r = t.expandAndCollapse && t.initialTreeDepth >= 0 ? t.initialTreeDepth : a; + return o.root.eachNode("preorder", function(t) { + var e = t.hostTree.data.getRawDataItem(t.dataIndex); + t.isExpand = e && null != e.collapsed ? !e.collapsed : t.depth <= r + }), o.data + }, + getOrient: function() { + var t = this.get("orient"); + return "horizontal" === t ? t = "LR" : "vertical" === t && (t = "TB"), t + }, + setZoom: function(t) { + this.option.zoom = t + }, + setCenter: function(t) { + this.option.center = t + }, + formatTooltip: function(t) { + for (var e = this.getData().tree, i = e.root.children[0], n = e.getNodeByDataIndex(t), o = n.getValue(), a = n.name; n && n !== i;) a = n.parentNode.name + "." + a, n = n.parentNode; + return Qo(a + (isNaN(o) || null == o ? "" : " : " + o)) + }, + defaultOption: { + zlevel: 0, + z: 2, + coordinateSystem: "view", + left: "12%", + top: "12%", + right: "12%", + bottom: "12%", + layout: "orthogonal", + roam: !1, + nodeScaleRatio: .4, + center: null, + zoom: 1, + orient: "LR", + symbol: "emptyCircle", + symbolSize: 7, + expandAndCollapse: !0, + initialTreeDepth: 2, + lineStyle: { + color: "#ccc", + width: 1.5, + curveness: .5 + }, + itemStyle: { + color: "lightsteelblue", + borderColor: "#c23531", + borderWidth: 1.5 + }, + label: { + show: !0, + color: "#555" + }, + leaves: { + label: { + show: !0 + } + }, + animationEasing: "linear", + animationDuration: 700, + animationDurationUpdate: 1e3 + } + }), Fs({ + type: "tree", + init: function(t, e) { + this._oldTree, this._mainGroup = new Zw, this._controller = new ac(e.getZr()), this._controllerHost = { + target: this.group + }, this.group.add(this._mainGroup) + }, + render: function(t, e, i, n) { + var o = t.getData(), + a = t.layoutInfo, + r = this._mainGroup, + s = t.get("layout"); + "radial" === s ? r.attr("position", [a.x + a.width / 2, a.y + a.height / 2]) : r.attr("position", [a.x, a.y]), this._updateViewCoordSys(t), this._updateController(t, e, i); + var l = this._data, + u = { + expandAndCollapse: t.get("expandAndCollapse"), + layout: s, + orient: t.getOrient(), + curvature: t.get("lineStyle.curveness"), + symbolRotate: t.get("symbolRotate"), + symbolOffset: t.get("symbolOffset"), + hoverAnimation: t.get("hoverAnimation"), + useNameLabel: !0, + fadeIn: !0 + }; + o.diff(l).add(function(e) { + Xc(o, e) && Yc(o, e, null, r, t, u) + }).update(function(e, i) { + var n = l.getItemGraphicEl(i); + Xc(o, e) ? Yc(o, e, n, r, t, u) : n && qc(l, i, n, r, t, u) + }).remove(function(e) { + var i = l.getItemGraphicEl(e); + i && qc(l, e, i, r, t, u) + }).execute(), this._nodeScaleRatio = t.get("nodeScaleRatio"), this._updateNodeAndLinkScale(t), !0 === u.expandAndCollapse && o.eachItemGraphicEl(function(e, n) { + e.off("click").on("click", function() { + i.dispatchAction({ + type: "treeExpandAndCollapse", + seriesId: t.id, + dataIndex: n + }) + }) + }), this._data = o + }, + _updateViewCoordSys: function(t) { + var e = t.getData(), + i = []; + e.each(function(t) { + var n = e.getItemLayout(t); + !n || isNaN(n.x) || isNaN(n.y) || i.push([+n.x, +n.y]) + }); + var n = [], + o = []; + dn(i, n, o), o[0] - n[0] == 0 && (o[0] += 1, n[0] -= 1), o[1] - n[1] == 0 && (o[1] += 1, n[1] -= 1); + var a = t.coordinateSystem = new Uh; + a.zoomLimit = t.get("scaleLimit"), a.setBoundingRect(n[0], n[1], o[0] - n[0], o[1] - n[1]), a.setCenter(t.get("center")), a.setZoom(t.get("zoom")), this.group.attr({ + position: a.position, + scale: a.scale + }), this._viewCoordSys = a + }, + _updateController: function(t, e, i) { + var n = this._controller, + o = this._controllerHost, + a = this.group; + n.setPointerChecker(function(e, n, o) { + var r = a.getBoundingRect(); + return r.applyTransform(a.transform), r.contain(n, o) && !mc(e, i, t) + }), n.enable(t.get("roam")), o.zoomLimit = t.get("scaleLimit"), o.zoom = t.coordinateSystem.getZoom(), n.off("pan").off("zoom").on("pan", function(e) { + pc(o, e.dx, e.dy), i.dispatchAction({ + seriesId: t.id, + type: "treeRoam", + dx: e.dx, + dy: e.dy + }) + }, this).on("zoom", function(e) { + gc(o, e.scale, e.originX, e.originY), i.dispatchAction({ + seriesId: t.id, + type: "treeRoam", + zoom: e.scale, + originX: e.originX, + originY: e.originY + }), this._updateNodeAndLinkScale(t) + }, this) + }, + _updateNodeAndLinkScale: function(t) { + var e = t.getData(), + i = this._getNodeGlobalScale(t), + n = [i, i]; + e.eachItemGraphicEl(function(t, e) { + t.attr("scale", n) + }) + }, + _getNodeGlobalScale: function(t) { + var e = t.coordinateSystem; + if ("view" !== e.type) return 1; + var i = this._nodeScaleRatio, + n = e.scale, + o = n && n[0] || 1; + return ((e.getZoom() - 1) * i + 1) / o + }, + dispose: function() { + this._controller && this._controller.dispose(), this._controllerHost = {} + }, + remove: function() { + this._mainGroup.removeAll(), this._data = null + } + }), Ps({ + type: "treeExpandAndCollapse", + event: "treeExpandAndCollapse", + update: "update" + }, function(t, e) { + e.eachComponent({ + mainType: "series", + subType: "tree", + query: t + }, function(e) { + var i = t.dataIndex, + n = e.getData().tree.getNodeByDataIndex(i); + n.isExpand = !n.isExpand + }) + }), Ps({ + type: "treeRoam", + event: "treeRoam", + update: "none" + }, function(t, e) { + e.eachComponent({ + mainType: "series", + subType: "tree", + query: t + }, function(e) { + var i = wc(e.coordinateSystem, t); + e.setCenter && e.setCenter(i.center), e.setZoom && e.setZoom(i.zoom) + }) + }); + Es(hD("tree", "circle")), Os(function(t, e) { + t.eachSeriesByType("tree", function(t) { + Qc(t, e) + }) + }), OI.extend({ + type: "series.treemap", + layoutMode: "box", + dependencies: ["grid", "polar"], + _viewRoot: null, + defaultOption: { + progressive: 0, + hoverLayerThreshold: 1 / 0, + left: "center", + top: "middle", + right: null, + bottom: null, + width: "80%", + height: "80%", + sort: !0, + clipWindow: "origin", + squareRatio: .5 * (1 + Math.sqrt(5)), + leafDepth: null, + drillDownIcon: "▶", + zoomToNodeRatio: .1024, + roam: !0, + nodeClick: "zoomToNode", + animation: !0, + animationDurationUpdate: 900, + animationEasing: "quinticInOut", + breadcrumb: { + show: !0, + height: 22, + left: "center", + top: "bottom", + emptyItemWidth: 25, + itemStyle: { + color: "rgba(0,0,0,0.7)", + borderColor: "rgba(255,255,255,0.7)", + borderWidth: 1, + shadowColor: "rgba(150,150,150,1)", + shadowBlur: 3, + shadowOffsetX: 0, + shadowOffsetY: 0, + textStyle: { + color: "#fff" + } + }, + emphasis: { + textStyle: {} + } + }, + label: { + show: !0, + distance: 0, + padding: 5, + position: "inside", + color: "#fff", + ellipsis: !0 + }, + upperLabel: { + show: !1, + position: [0, "50%"], + height: 20, + color: "#fff", + ellipsis: !0, + verticalAlign: "middle" + }, + itemStyle: { + color: null, + colorAlpha: null, + colorSaturation: null, + borderWidth: 0, + gapWidth: 0, + borderColor: "#fff", + borderColorSaturation: null + }, + emphasis: { + upperLabel: { + show: !0, + position: [0, "50%"], + color: "#fff", + ellipsis: !0, + verticalAlign: "middle" + } + }, + visualDimension: 0, + visualMin: null, + visualMax: null, + color: [], + colorAlpha: null, + colorSaturation: null, + colorMappingBy: "index", + visibleMin: 10, + childrenVisibleMin: null, + levels: [] + }, + getInitialData: function(t, e) { + var i = { + name: t.name, + children: t.data + }; + od(i); + var n = t.levels || []; + n = t.levels = ad(n, e); + var o = {}; + return o.levels = n, kc.createTree(i, this, o).data + }, + optionUpdated: function() { + this.resetViewRoot() + }, + formatTooltip: function(t) { + var e = this.getData(), + i = this.getRawValue(t), + n = $o(y(i) ? i[0] : i); + return Qo(e.getName(t) + ": " + n) + }, + getDataParams: function(t) { + var e = OI.prototype.getDataParams.apply(this, arguments), + i = this.getData().tree.getNodeByDataIndex(t); + return e.treePathInfo = nd(i, this), e + }, + setLayoutInfo: function(t) { + this.layoutInfo = this.layoutInfo || {}, a(this.layoutInfo, t) + }, + mapIdToIndex: function(t) { + var e = this._idIndexMap; + e || (e = this._idIndexMap = R(), this._idIndexMapCount = 0); + var i = e.get(t); + return null == i && e.set(t, i = this._idIndexMapCount++), i + }, + getViewRoot: function() { + return this._viewRoot + }, + resetViewRoot: function(t) { + t ? this._viewRoot = t : t = this._viewRoot; + var e = this.getRawData().tree.root; + t && (t === e || e.contains(t)) || (this._viewRoot = e) + } + }); + var DC = 5; + rd.prototype = { + constructor: rd, + render: function(t, e, i, n) { + var o = t.getModel("breadcrumb"), + a = this.group; + if (a.removeAll(), o.get("show") && i) { + var r = o.getModel("itemStyle"), + s = r.getModel("textStyle"), + l = { + pos: { + left: o.get("left"), + right: o.get("right"), + top: o.get("top"), + bottom: o.get("bottom") + }, + box: { + width: e.getWidth(), + height: e.getHeight() + }, + emptyItemWidth: o.get("emptyItemWidth"), + totalWidth: 0, + renderList: [] + }; + this._prepare(i, l, s), this._renderContent(t, l, r, s, n), ua(a, l.pos, l.box) + } + }, + _prepare: function(t, e, i) { + for (var n = t; n; n = n.parentNode) { + var o = n.getModel().get("name"), + a = i.getTextRect(o), + r = Math.max(a.width + 16, e.emptyItemWidth); + e.totalWidth += r + 8, e.renderList.push({ + node: n, + text: o, + width: r + }) + } + }, + _renderContent: function(t, e, i, n, o) { + for (var a = 0, s = e.emptyItemWidth, l = t.get("breadcrumb.height"), u = sa(e.pos, e.box), h = e.totalWidth, c = e.renderList, d = c.length - 1; d >= 0; d--) { + var f = c[d], + p = f.node, + g = f.width, + m = f.text; + h > u.width && (h -= g - s, g = s, m = null); + var y = new nM({ + shape: { + points: sd(a, 0, g, l, d === c.length - 1, 0 === d) + }, + style: r(i.getItemStyle(), { + lineJoin: "bevel", + text: m, + textFill: n.getTextColor(), + textFont: n.getFont() + }), + z: 10, + onclick: v(o, p) + }); + this.group.add(y), ld(y, t, p), a += g + 8 + } + }, + remove: function() { + this.group.removeAll() + } + }; + var CC = m, + LC = Zw, + kC = aM, + PC = d, + NC = ["label"], + OC = ["emphasis", "label"], + EC = ["upperLabel"], + RC = ["emphasis", "upperLabel"], + zC = 10, + BC = 1, + VC = 2, + GC = Wb([ + ["fill", "color"], + ["stroke", "strokeColor"], + ["lineWidth", "strokeWidth"], + ["shadowBlur"], + ["shadowOffsetX"], + ["shadowOffsetY"], + ["shadowColor"] + ]), + FC = function(t) { + var e = GC(t); + return e.stroke = e.fill = e.lineWidth = null, e + }; + Fs({ + type: "treemap", + init: function(t, e) { + this._containerGroup, this._storage = { + nodeGroup: [], + background: [], + content: [] + }, this._oldTree, this._breadcrumb, this._controller, this._state = "ready" + }, + render: function(t, e, i, n) { + if (!(l(e.findComponents({ + mainType: "series", + subType: "treemap", + query: n + }), t) < 0)) { + this.seriesModel = t, this.api = i, this.ecModel = e; + var o = td(n, ["treemapZoomToNode", "treemapRootToNode"], t), + a = n && n.type, + r = t.layoutInfo, + s = !this._oldTree, + u = this._storage, + h = "treemapRootToNode" === a && o && u ? { + rootNodeGroup: u.nodeGroup[o.node.getRawIndex()], + direction: n.direction + } : null, + c = this._giveContainerGroup(r), + d = this._doRender(c, t, h); + s || a && "treemapZoomToNode" !== a && "treemapRootToNode" !== a ? d.renderFinally() : this._doAnimation(c, d, t, h), this._resetController(i), this._renderBreadcrumb(t, i, o) + } + }, + _giveContainerGroup: function(t) { + var e = this._containerGroup; + return e || (e = this._containerGroup = new LC, this._initEvents(e), this.group.add(e)), e.attr("position", [t.x, t.y]), e + }, + _doRender: function(t, e, i) { + function n(t, e, i, o, a) { + function r(t) { + return t.getId() + } + + function s(r, s) { + var l = null != r ? t[r] : null, + u = null != s ? e[s] : null, + c = h(l, u, i, a); + c && n(l && l.viewChildren || [], u && u.viewChildren || [], c, o, a + 1) + } + o ? (e = t, PC(t, function(t, e) { + !t.isRemoved() && s(e, e) + })) : new Hs(e, t, r, r).add(s).update(s).remove(v(s, null)).execute() + } + var o = e.getData().tree, + a = this._oldTree, + r = { + nodeGroup: [], + background: [], + content: [] + }, + s = { + nodeGroup: [], + background: [], + content: [] + }, + l = this._storage, + u = [], + h = v(hd, e, s, l, i, r, u); + n(o.root ? [o.root] : [], a && a.root ? [a.root] : [], t, o === a || !a, 0); + var c = function(t) { + var e = { + nodeGroup: [], + background: [], + content: [] + }; + return t && PC(t, function(t, i) { + var n = e[i]; + PC(t, function(t) { + t && (n.push(t), t.__tmWillDelete = 1) + }) + }), e + }(l); + return this._oldTree = o, this._storage = s, { + lastsForAnimation: r, + willDeleteEls: c, + renderFinally: function() { + PC(c, function(t) { + PC(t, function(t) { + t.parent && t.parent.remove(t) + }) + }), PC(u, function(t) { + t.invisible = !0, t.dirty() + }) + } + } + }, + _doAnimation: function(t, e, i, n) { + if (i.get("animation")) { + var o = i.get("animationDurationUpdate"), + r = i.get("animationEasing"), + s = ud(); + PC(e.willDeleteEls, function(t, e) { + PC(t, function(t, i) { + if (!t.invisible) { + var a, l = t.parent; + if (n && "drillDown" === n.direction) a = l === n.rootNodeGroup ? { + shape: { + x: 0, + y: 0, + width: l.__tmNodeWidth, + height: l.__tmNodeHeight + }, + style: { + opacity: 0 + } + } : { + style: { + opacity: 0 + } + }; + else { + var u = 0, + h = 0; + l.__tmWillDelete || (u = l.__tmNodeWidth / 2, h = l.__tmNodeHeight / 2), a = "nodeGroup" === e ? { + position: [u, h], + style: { + opacity: 0 + } + } : { + shape: { + x: u, + y: h, + width: 0, + height: 0 + }, + style: { + opacity: 0 + } + } + } + a && s.add(t, a, o, r) + } + }) + }), PC(this._storage, function(t, i) { + PC(t, function(t, n) { + var l = e.lastsForAnimation[i][n], + u = {}; + l && ("nodeGroup" === i ? l.old && (u.position = t.position.slice(), t.attr("position", l.old)) : (l.old && (u.shape = a({}, t.shape), t.setShape(l.old)), l.fadein ? (t.setStyle("opacity", 0), u.style = { + opacity: 1 + }) : 1 !== t.style.opacity && (u.style = { + opacity: 1 + })), s.add(t, u, o, r)) + }) + }, this), this._state = "animating", s.done(CC(function() { + this._state = "ready", e.renderFinally() + }, this)).start() + } + }, + _resetController: function(t) { + var e = this._controller; + e || ((e = this._controller = new ac(t.getZr())).enable(this.seriesModel.get("roam")), e.on("pan", CC(this._onPan, this)), e.on("zoom", CC(this._onZoom, this))); + var i = new ue(0, 0, t.getWidth(), t.getHeight()); + e.setPointerChecker(function(t, e, n) { + return i.contain(e, n) + }) + }, + _clearController: function() { + var t = this._controller; + t && (t.dispose(), t = null) + }, + _onPan: function(t) { + if ("animating" !== this._state && (Math.abs(t.dx) > 3 || Math.abs(t.dy) > 3)) { + var e = this.seriesModel.getData().tree.root; + if (!e) return; + var i = e.getLayout(); + if (!i) return; + this.api.dispatchAction({ + type: "treemapMove", + from: this.uid, + seriesId: this.seriesModel.id, + rootRect: { + x: i.x + t.dx, + y: i.y + t.dy, + width: i.width, + height: i.height + } + }) + } + }, + _onZoom: function(t) { + var e = t.originX, + i = t.originY; + if ("animating" !== this._state) { + var n = this.seriesModel.getData().tree.root; + if (!n) return; + var o = n.getLayout(); + if (!o) return; + var a = new ue(o.x, o.y, o.width, o.height), + r = this.seriesModel.layoutInfo; + e -= r.x, i -= r.y; + var s = mt(); + _t(s, s, [-e, -i]), bt(s, s, [t.scale, t.scale]), _t(s, s, [e, i]), a.applyTransform(s), this.api.dispatchAction({ + type: "treemapRender", + from: this.uid, + seriesId: this.seriesModel.id, + rootRect: { + x: a.x, + y: a.y, + width: a.width, + height: a.height + } + }) + } + }, + _initEvents: function(t) { + t.on("click", function(t) { + if ("ready" === this._state) { + var e = this.seriesModel.get("nodeClick", !0); + if (e) { + var i = this.findTarget(t.offsetX, t.offsetY); + if (i) { + var n = i.node; + if (n.getLayout().isLeafRoot) this._rootToNode(i); + else if ("zoomToNode" === e) this._zoomToNode(i); + else if ("link" === e) { + var o = n.hostTree.data.getItemModel(n.dataIndex), + a = o.get("link", !0), + r = o.get("target", !0) || "blank"; + a && window.open(a, r) + } + } + } + } + }, this) + }, + _renderBreadcrumb: function(t, e, i) { + i || (i = null != t.get("leafDepth", !0) ? { + node: t.getViewRoot() + } : this.findTarget(e.getWidth() / 2, e.getHeight() / 2)) || (i = { + node: t.getData().tree.root + }), (this._breadcrumb || (this._breadcrumb = new rd(this.group))).render(t, e, i.node, CC(function(e) { + "animating" !== this._state && (id(t.getViewRoot(), e) ? this._rootToNode({ + node: e + }) : this._zoomToNode({ + node: e + })) + }, this)) + }, + remove: function() { + this._clearController(), this._containerGroup && this._containerGroup.removeAll(), this._storage = { + nodeGroup: [], + background: [], + content: [] + }, this._state = "ready", this._breadcrumb && this._breadcrumb.remove() + }, + dispose: function() { + this._clearController() + }, + _zoomToNode: function(t) { + this.api.dispatchAction({ + type: "treemapZoomToNode", + from: this.uid, + seriesId: this.seriesModel.id, + targetNode: t.node + }) + }, + _rootToNode: function(t) { + this.api.dispatchAction({ + type: "treemapRootToNode", + from: this.uid, + seriesId: this.seriesModel.id, + targetNode: t.node + }) + }, + findTarget: function(t, e) { + var i; + return this.seriesModel.getViewRoot().eachNode({ + attr: "viewChildren", + order: "preorder" + }, function(n) { + var o = this._storage.background[n.getRawIndex()]; + if (o) { + var a = o.transformCoordToLocal(t, e), + r = o.shape; + if (!(r.x <= a[0] && a[0] <= r.x + r.width && r.y <= a[1] && a[1] <= r.y + r.height)) return !1; + i = { + node: n, + offsetX: a[0], + offsetY: a[1] + } + } + }, this), i + } + }); + for (var WC = ["treemapZoomToNode", "treemapRender", "treemapMove"], HC = 0; HC < WC.length; HC++) Ps({ + type: WC[HC], + update: "updateView" + }, function() {}); + Ps({ + type: "treemapRootToNode", + update: "updateView" + }, function(t, e) { + e.eachComponent({ + mainType: "series", + subType: "treemap", + query: t + }, function(e, i) { + var n = td(t, ["treemapZoomToNode", "treemapRootToNode"], e); + if (n) { + var o = e.getViewRoot(); + o && (t.direction = id(o, n.node) ? "rollUp" : "drillDown"), e.resetViewRoot(n.node) + } + }) + }); + var ZC = d, + UC = w, + XC = -1, + jC = function(t) { + var e = t.mappingMethod, + n = t.type, + o = this.option = i(t); + this.type = n, this.mappingMethod = e, this._normalizeData = qC[e]; + var a = YC[n]; + this.applyVisual = a.applyVisual, this.getColorMapper = a.getColorMapper, this._doMap = a._doMap[e], "piecewise" === e ? (pd(o), dd(o)) : "category" === e ? o.categories ? fd(o) : pd(o, !0) : (k("linear" !== e || o.dataExtent), pd(o)) + }; + jC.prototype = { + constructor: jC, + mapValueToVisual: function(t) { + var e = this._normalizeData(t); + return this._doMap(e, t) + }, + getNormalizer: function() { + return m(this._normalizeData, this) + } + }; + var YC = jC.visualHandlers = { + color: { + applyVisual: vd("color"), + getColorMapper: function() { + var t = this.option; + return m("category" === t.mappingMethod ? function(t, e) { + return !e && (t = this._normalizeData(t)), yd.call(this, t) + } : function(e, i, n) { + var o = !!n; + return !i && (e = this._normalizeData(e)), n = Wt(e, t.parsedVisual, n), o ? n : Xt(n, "rgba") + }, this) + }, + _doMap: { + linear: function(t) { + return Xt(Wt(t, this.option.parsedVisual), "rgba") + }, + category: yd, + piecewise: function(t, e) { + var i = wd.call(this, e); + return null == i && (i = Xt(Wt(t, this.option.parsedVisual), "rgba")), i + }, + fixed: xd + } + }, + colorHue: gd(function(t, e) { + return Zt(t, e) + }), + colorSaturation: gd(function(t, e) { + return Zt(t, null, e) + }), + colorLightness: gd(function(t, e) { + return Zt(t, null, null, e) + }), + colorAlpha: gd(function(t, e) { + return Ut(t, e) + }), + opacity: { + applyVisual: vd("opacity"), + _doMap: _d([0, 1]) + }, + liftZ: { + applyVisual: vd("liftZ"), + _doMap: { + linear: xd, + category: xd, + piecewise: xd, + fixed: xd + } + }, + symbol: { + applyVisual: function(t, e, i) { + var n = this.mapValueToVisual(t); + if (_(n)) i("symbol", n); + else if (UC(n)) + for (var o in n) n.hasOwnProperty(o) && i(o, n[o]) + }, + _doMap: { + linear: md, + category: yd, + piecewise: function(t, e) { + var i = wd.call(this, e); + return null == i && (i = md.call(this, t)), i + }, + fixed: xd + } + }, + symbolSize: { + applyVisual: vd("symbolSize"), + _doMap: _d([0, 1]) + } + }, + qC = { + linear: function(t) { + return Eo(t, this.option.dataExtent, [0, 1], !0) + }, + piecewise: function(t) { + var e = this.option.pieceList, + i = jC.findPieceIndex(t, e, !0); + if (null != i) return Eo(i, [0, e.length - 1], [0, 1], !0) + }, + category: function(t) { + var e = this.option.categories ? this.option.categoryMap[t] : t; + return null == e ? XC : e + }, + fixed: B + }; + jC.listVisualTypes = function() { + var t = []; + return d(YC, function(e, i) { + t.push(i) + }), t + }, jC.addVisualHandler = function(t, e) { + YC[t] = e + }, jC.isValidType = function(t) { + return YC.hasOwnProperty(t) + }, jC.eachVisual = function(t, e, i) { + w(t) ? d(t, e, i) : e.call(i, t) + }, jC.mapVisual = function(t, e, i) { + var n, o = y(t) ? [] : w(t) ? {} : (n = !0, null); + return jC.eachVisual(t, function(t, a) { + var r = e.call(i, t, a); + n ? o = r : o[a] = r + }), o + }, jC.retrieveVisuals = function(t) { + var e, i = {}; + return t && ZC(YC, function(n, o) { + t.hasOwnProperty(o) && (i[o] = t[o], e = !0) + }), e ? i : null + }, jC.prepareVisualTypes = function(t) { + if (UC(t)) { + var e = []; + ZC(t, function(t, i) { + e.push(i) + }), t = e + } else { + if (!y(t)) return []; + t = t.slice() + } + return t.sort(function(t, e) { + return "color" === e && "color" !== t && 0 === t.indexOf("color") ? 1 : -1 + }), t + }, jC.dependsOn = function(t, e) { + return "color" === e ? !(!t || 0 !== t.indexOf(e)) : t === e + }, jC.findPieceIndex = function(t, e, i) { + function n(e, i) { + var n = Math.abs(e - t); + n < a && (a = n, o = i) + } + for (var o, a = 1 / 0, r = 0, s = e.length; r < s; r++) { + var l = e[r].value; + if (null != l) { + if (l === t || "string" == typeof l && l === t + "") return r; + i && n(l, r) + } + } + for (var r = 0, s = e.length; r < s; r++) { + var u = e[r], + h = u.interval, + c = u.close; + if (h) { + if (h[0] === -1 / 0) { + if (Sd(c[1], t, h[1])) return r + } else if (h[1] === 1 / 0) { + if (Sd(c[0], h[0], t)) return r + } else if (Sd(c[0], h[0], t) && Sd(c[1], t, h[1])) return r; + i && n(h[0], r), i && n(h[1], r) + } + } + if (i) return t === 1 / 0 ? e.length - 1 : t === -1 / 0 ? 0 : o + }; + var KC = y, + $C = "itemStyle", + JC = { + seriesType: "treemap", + reset: function(t, e, i, n) { + var o = t.getData().tree, + a = o.root, + r = t.getModel($C); + a.isRemoved() || Md(a, {}, f(o.levelModels, function(t) { + return t ? t.get($C) : null + }), r, t.getViewRoot().getAncestors(), t) + } + }, + QC = Math.max, + tL = Math.min, + eL = T, + iL = d, + nL = ["itemStyle", "borderWidth"], + oL = ["itemStyle", "gapWidth"], + aL = ["upperLabel", "show"], + rL = ["upperLabel", "height"], + sL = { + seriesType: "treemap", + reset: function(t, e, i, n) { + var o = i.getWidth(), + r = i.getHeight(), + s = t.option, + l = la(t.getBoxLayoutParams(), { + width: i.getWidth(), + height: i.getHeight() + }), + u = s.size || [], + h = Ro(eL(l.width, u[0]), o), + c = Ro(eL(l.height, u[1]), r), + d = n && n.type, + f = td(n, ["treemapZoomToNode", "treemapRootToNode"], t), + p = "treemapRender" === d || "treemapMove" === d ? n.rootRect : null, + g = t.getViewRoot(), + m = ed(g); + if ("treemapMove" !== d) { + var v = "treemapZoomToNode" === d ? Vd(t, f, g, h, c) : p ? [p.width, p.height] : [h, c], + y = s.sort; + y && "asc" !== y && "desc" !== y && (y = "desc"); + var x = { + squareRatio: s.squareRatio, + sort: y, + leafDepth: s.leafDepth + }; + g.hostTree.clearLayouts(); + _ = { + x: 0, + y: 0, + width: v[0], + height: v[1], + area: v[0] * v[1] + }; + g.setLayout(_), Pd(g, x, !1, 0); + var _ = g.getLayout(); + iL(m, function(t, e) { + var i = (m[e + 1] || g).getValue(); + t.setLayout(a({ + dataExtent: [i, i], + borderWidth: 0, + upperHeight: 0 + }, _)) + }) + } + var w = t.getData().tree.root; + w.setLayout(Gd(l, p, f), !0), t.setLayoutInfo(l), Fd(w, new ue(-l.x, -l.y, o, r), m, g, 0) + } + }; + Es(JC), Os(sL); + var lL = function(t) { + this._directed = t || !1, this.nodes = [], this.edges = [], this._nodesMap = {}, this._edgesMap = {}, this.data, this.edgeData + }, + uL = lL.prototype; + uL.type = "graph", uL.isDirected = function() { + return this._directed + }, uL.addNode = function(t, e) { + t = t || "" + e; + var i = this._nodesMap; + if (!i[Hd(t)]) { + var n = new Zd(t, e); + return n.hostGraph = this, this.nodes.push(n), i[Hd(t)] = n, n + } + }, uL.getNodeByIndex = function(t) { + var e = this.data.getRawIndex(t); + return this.nodes[e] + }, uL.getNodeById = function(t) { + return this._nodesMap[Hd(t)] + }, uL.addEdge = function(t, e, i) { + var n = this._nodesMap, + o = this._edgesMap; + if ("number" == typeof t && (t = this.nodes[t]), "number" == typeof e && (e = this.nodes[e]), Zd.isInstance(t) || (t = n[Hd(t)]), Zd.isInstance(e) || (e = n[Hd(e)]), t && e) { + var a = t.id + "-" + e.id; + if (!o[a]) { + var r = new Ud(t, e, i); + return r.hostGraph = this, this._directed && (t.outEdges.push(r), e.inEdges.push(r)), t.edges.push(r), t !== e && e.edges.push(r), this.edges.push(r), o[a] = r, r + } + } + }, uL.getEdgeByIndex = function(t) { + var e = this.edgeData.getRawIndex(t); + return this.edges[e] + }, uL.getEdge = function(t, e) { + Zd.isInstance(t) && (t = t.id), Zd.isInstance(e) && (e = e.id); + var i = this._edgesMap; + return this._directed ? i[t + "-" + e] : i[t + "-" + e] || i[e + "-" + t] + }, uL.eachNode = function(t, e) { + for (var i = this.nodes, n = i.length, o = 0; o < n; o++) i[o].dataIndex >= 0 && t.call(e, i[o], o) + }, uL.eachEdge = function(t, e) { + for (var i = this.edges, n = i.length, o = 0; o < n; o++) i[o].dataIndex >= 0 && i[o].node1.dataIndex >= 0 && i[o].node2.dataIndex >= 0 && t.call(e, i[o], o) + }, uL.breadthFirstTraverse = function(t, e, i, n) { + if (Zd.isInstance(e) || (e = this._nodesMap[Hd(e)]), e) { + for (var o = "out" === i ? "outEdges" : "in" === i ? "inEdges" : "edges", a = 0; a < this.nodes.length; a++) this.nodes[a].__visited = !1; + if (!t.call(n, e, null)) + for (var r = [e]; r.length;) + for (var s = r.shift(), l = s[o], a = 0; a < l.length; a++) { + var u = l[a], + h = u.node1 === s ? u.node2 : u.node1; + if (!h.__visited) { + if (t.call(n, h, s)) return; + r.push(h), h.__visited = !0 + } + } + } + }, uL.update = function() { + for (var t = this.data, e = this.edgeData, i = this.nodes, n = this.edges, o = 0, a = i.length; o < a; o++) i[o].dataIndex = -1; + for (var o = 0, a = t.count(); o < a; o++) i[t.getRawIndex(o)].dataIndex = o; + e.filterSelf(function(t) { + var i = n[e.getRawIndex(t)]; + return i.node1.dataIndex >= 0 && i.node2.dataIndex >= 0 + }); + for (var o = 0, a = n.length; o < a; o++) n[o].dataIndex = -1; + for (var o = 0, a = e.count(); o < a; o++) n[e.getRawIndex(o)].dataIndex = o + }, uL.clone = function() { + for (var t = new lL(this._directed), e = this.nodes, i = this.edges, n = 0; n < e.length; n++) t.addNode(e[n].id, e[n].dataIndex); + for (n = 0; n < i.length; n++) { + var o = i[n]; + t.addEdge(o.node1.id, o.node2.id, o.dataIndex) + } + return t + }, Zd.prototype = { + constructor: Zd, + degree: function() { + return this.edges.length + }, + inDegree: function() { + return this.inEdges.length + }, + outDegree: function() { + return this.outEdges.length + }, + getModel: function(t) { + if (!(this.dataIndex < 0)) return this.hostGraph.data.getItemModel(this.dataIndex).getModel(t) + } + }, Ud.prototype.getModel = function(t) { + if (!(this.dataIndex < 0)) return this.hostGraph.edgeData.getItemModel(this.dataIndex).getModel(t) + }; + var hL = function(t, e) { + return { + getValue: function(i) { + var n = this[t][e]; + return n.get(n.getDimension(i || "value"), this.dataIndex) + }, + setVisual: function(i, n) { + this.dataIndex >= 0 && this[t][e].setItemVisual(this.dataIndex, i, n) + }, + getVisual: function(i, n) { + return this[t][e].getItemVisual(this.dataIndex, i, n) + }, + setLayout: function(i, n) { + this.dataIndex >= 0 && this[t][e].setItemLayout(this.dataIndex, i, n) + }, + getLayout: function() { + return this[t][e].getItemLayout(this.dataIndex) + }, + getGraphicEl: function() { + return this[t][e].getItemGraphicEl(this.dataIndex) + }, + getRawIndex: function() { + return this[t][e].getRawIndex(this.dataIndex) + } + } + }; + h(Zd, hL("hostGraph", "data")), h(Ud, hL("hostGraph", "edgeData")), lL.Node = Zd, lL.Edge = Ud, ji(Zd), ji(Ud); + var cL = function(t, e, i, n, o) { + for (var a = new lL(n), r = 0; r < t.length; r++) a.addNode(T(t[r].id, t[r].name, r), r); + for (var s = [], u = [], h = 0, r = 0; r < e.length; r++) { + var c = e[r], + d = c.source, + f = c.target; + a.addEdge(d, f, h) && (u.push(c), s.push(T(c.id, d + " > " + f)), h++) + } + var p, g = i.get("coordinateSystem"); + if ("cartesian2d" === g || "polar" === g) p = dl(t, i); + else { + var m = Ba.get(g), + v = m && "view" !== m.type ? m.dimensions || [] : []; + l(v, "value") < 0 && v.concat(["value"]); + var y = oA(t, { + coordDimensions: v + }); + (p = new eA(y, i)).initData(t) + } + var x = new eA(["value"], i); + return x.initData(u, s), o && o(p, x), Sc({ + mainData: p, + struct: a, + structAttr: "graph", + datas: { + node: p, + edge: x + }, + datasAttr: { + node: "data", + edge: "edgeData" + } + }), a.update(), a + }, + dL = Gs({ + type: "series.graph", + init: function(t) { + dL.superApply(this, "init", arguments), this.legendDataProvider = function() { + return this._categoriesData + }, this.fillDataTextStyle(t.edges || t.links), this._updateCategoriesData() + }, + mergeOption: function(t) { + dL.superApply(this, "mergeOption", arguments), this.fillDataTextStyle(t.edges || t.links), this._updateCategoriesData() + }, + mergeDefaultAndTheme: function(t) { + dL.superApply(this, "mergeDefaultAndTheme", arguments), Ci(t, ["edgeLabel"], ["show"]) + }, + getInitialData: function(t, e) { + var i = t.edges || t.links || [], + n = t.data || t.nodes || [], + o = this; + if (n && i) return cL(n, i, this, !0, function(t, i) { + function n(t) { + return (t = this.parsePath(t)) && "label" === t[0] ? r : t && "emphasis" === t[0] && "label" === t[1] ? l : this.parentModel + } + t.wrapMethod("getItemModel", function(t) { + var e = o._categoriesModels[t.getShallow("category")]; + return e && (e.parentModel = t.parentModel, t.parentModel = e), t + }); + var a = o.getModel("edgeLabel"), + r = new Lo({ + label: a.option + }, a.parentModel, e), + s = o.getModel("emphasis.edgeLabel"), + l = new Lo({ + emphasis: { + label: s.option + } + }, s.parentModel, e); + i.wrapMethod("getItemModel", function(t) { + return t.customizeGetParent(n), t + }) + }).data + }, + getGraph: function() { + return this.getData().graph + }, + getEdgeData: function() { + return this.getGraph().edgeData + }, + getCategoriesData: function() { + return this._categoriesData + }, + formatTooltip: function(t, e, i) { + if ("edge" === i) { + var n = this.getData(), + o = this.getDataParams(t, i), + a = n.graph.getEdgeByIndex(t), + r = n.getName(a.node1.dataIndex), + s = n.getName(a.node2.dataIndex), + l = []; + return null != r && l.push(r), null != s && l.push(s), l = Qo(l.join(" > ")), o.value && (l += " : " + Qo(o.value)), l + } + return dL.superApply(this, "formatTooltip", arguments) + }, + _updateCategoriesData: function() { + var t = f(this.option.categories || [], function(t) { + return null != t.value ? t : a({ + value: 0 + }, t) + }), + e = new eA(["value"], this); + e.initData(t), this._categoriesData = e, this._categoriesModels = e.mapArray(function(t) { + return e.getItemModel(t, !0) + }) + }, + setZoom: function(t) { + this.option.zoom = t + }, + setCenter: function(t) { + this.option.center = t + }, + isAnimationEnabled: function() { + return dL.superCall(this, "isAnimationEnabled") && !("force" === this.get("layout") && this.get("force.layoutAnimation")) + }, + defaultOption: { + zlevel: 0, + z: 2, + coordinateSystem: "view", + legendHoverLink: !0, + hoverAnimation: !0, + layout: null, + focusNodeAdjacency: !1, + circular: { + rotateLabel: !1 + }, + force: { + initLayout: null, + repulsion: [0, 50], + gravity: .1, + edgeLength: 30, + layoutAnimation: !0 + }, + left: "center", + top: "center", + symbol: "circle", + symbolSize: 10, + edgeSymbol: ["none", "none"], + edgeSymbolSize: 10, + edgeLabel: { + position: "middle" + }, + draggable: !1, + roam: !1, + center: null, + zoom: 1, + nodeScaleRatio: .6, + label: { + show: !1, + formatter: "{b}" + }, + itemStyle: {}, + lineStyle: { + color: "#aaa", + width: 1, + curveness: 0, + opacity: .5 + }, + emphasis: { + label: { + show: !0 + } + } + } + }), + fL = rM.prototype, + pL = lM.prototype, + gL = Fn({ + type: "ec-line", + style: { + stroke: "#000", + fill: null + }, + shape: { + x1: 0, + y1: 0, + x2: 0, + y2: 0, + percent: 1, + cpx1: null, + cpy1: null + }, + buildPath: function(t, e) { + (Xd(e) ? fL : pL).buildPath(t, e) + }, + pointAt: function(t) { + return Xd(this.shape) ? fL.pointAt.call(this, t) : pL.pointAt.call(this, t) + }, + tangentAt: function(t) { + var e = this.shape, + i = Xd(e) ? [e.x2 - e.x1, e.y2 - e.y1] : pL.tangentAt.call(this, t); + return q(i, i) + } + }), + mL = ["fromSymbol", "toSymbol"], + vL = $d.prototype; + vL.beforeUpdate = function() { + var t = this, + e = t.childOfName("fromSymbol"), + i = t.childOfName("toSymbol"), + n = t.childOfName("label"); + if (e || i || !n.ignore) { + for (var o = 1, a = this.parent; a;) a.scale && (o /= a.scale[0]), a = a.parent; + var r = t.childOfName("line"); + if (this.__dirty || r.__dirty) { + var s = r.shape.percent, + l = r.pointAt(0), + u = r.pointAt(s), + h = U([], u, l); + if (q(h, h), e && (e.attr("position", l), c = r.tangentAt(0), e.attr("rotation", Math.PI / 2 - Math.atan2(c[1], c[0])), e.attr("scale", [o * s, o * s])), i) { + i.attr("position", u); + var c = r.tangentAt(1); + i.attr("rotation", -Math.PI / 2 - Math.atan2(c[1], c[0])), i.attr("scale", [o * s, o * s]) + } + if (!n.ignore) { + n.attr("position", u); + var d, f, p, g = 5 * o; + if ("end" === n.__position) d = [h[0] * g + u[0], h[1] * g + u[1]], f = h[0] > .8 ? "left" : h[0] < -.8 ? "right" : "center", p = h[1] > .8 ? "top" : h[1] < -.8 ? "bottom" : "middle"; + else if ("middle" === n.__position) { + var m = s / 2, + v = [(c = r.tangentAt(m))[1], -c[0]], + y = r.pointAt(m); + v[1] > 0 && (v[0] = -v[0], v[1] = -v[1]), d = [y[0] + v[0] * g, y[1] + v[1] * g], f = "center", p = "bottom"; + var x = -Math.atan2(c[1], c[0]); + u[0] < l[0] && (x = Math.PI + x), n.attr("rotation", x) + } else d = [-h[0] * g + l[0], -h[1] * g + l[1]], f = h[0] > .8 ? "right" : h[0] < -.8 ? "left" : "center", p = h[1] > .8 ? "bottom" : h[1] < -.8 ? "top" : "middle"; + n.attr({ + style: { + textVerticalAlign: n.__verticalAlign || p, + textAlign: n.__textAlign || f + }, + position: d, + scale: [o, o] + }) + } + } + } + }, vL._createLine = function(t, e, i) { + var n = t.hostModel, + o = qd(t.getItemLayout(e)); + o.shape.percent = 0, So(o, { + shape: { + percent: 1 + } + }, n, e), this.add(o); + var a = new qS({ + name: "label" + }); + this.add(a), d(mL, function(i) { + var n = Yd(i, t, e); + this.add(n), this[jd(i)] = t.getItemVisual(e, i) + }, this), this._updateCommonStl(t, e, i) + }, vL.updateData = function(t, e, i) { + var n = t.hostModel, + o = this.childOfName("line"), + a = t.getItemLayout(e), + r = { + shape: {} + }; + Kd(r.shape, a), bo(o, r, n, e), d(mL, function(i) { + var n = t.getItemVisual(e, i), + o = jd(i); + if (this[o] !== n) { + this.remove(this.childOfName(i)); + var a = Yd(i, t, e); + this.add(a) + } + this[o] = n + }, this), this._updateCommonStl(t, e, i) + }, vL._updateCommonStl = function(t, e, i) { + var n = t.hostModel, + o = this.childOfName("line"), + a = i && i.lineStyle, + s = i && i.hoverLineStyle, + l = i && i.labelModel, + u = i && i.hoverLabelModel; + if (!i || t.hasItemOption) { + var h = t.getItemModel(e); + a = h.getModel("lineStyle").getLineStyle(), s = h.getModel("emphasis.lineStyle").getLineStyle(), l = h.getModel("label"), u = h.getModel("emphasis.label") + } + var c = t.getItemVisual(e, "color"), + f = D(t.getItemVisual(e, "opacity"), a.opacity, 1); + o.useStyle(r({ + strokeNoScale: !0, + fill: "none", + stroke: c, + opacity: f + }, a)), o.hoverStyle = s, d(mL, function(t) { + var e = this.childOfName(t); + e && (e.setColor(c), e.setStyle({ + opacity: f + })) + }, this); + var p, g, m = l.getShallow("show"), + v = u.getShallow("show"), + y = this.childOfName("label"); + if ((m || v) && (p = c || "#000", null == (g = n.getFormattedLabel(e, "normal", t.dataType)))) { + var x = n.getRawValue(e); + g = null == x ? t.getName(e) : isFinite(x) ? zo(x) : x + } + var _ = m ? g : null, + w = v ? A(n.getFormattedLabel(e, "emphasis", t.dataType), g) : null, + b = y.style; + null == _ && null == w || (fo(y.style, l, { + text: _ + }, { + autoColor: p + }), y.__textAlign = b.textAlign, y.__verticalAlign = b.textVerticalAlign, y.__position = l.get("position") || "middle"), y.hoverStyle = null != w ? { + text: w, + textFill: u.getTextColor(!0), + fontStyle: u.getShallow("fontStyle"), + fontWeight: u.getShallow("fontWeight"), + fontSize: u.getShallow("fontSize"), + fontFamily: u.getShallow("fontFamily") + } : { + text: null + }, y.ignore = !m && !v, uo(this) + }, vL.highlight = function() { + this.trigger("emphasis") + }, vL.downplay = function() { + this.trigger("normal") + }, vL.updateLayout = function(t, e) { + this.setLinePoints(t.getItemLayout(e)) + }, vL.setLinePoints = function(t) { + var e = this.childOfName("line"); + Kd(e.shape, t), e.dirty() + }, u($d, Zw); + var yL = Jd.prototype; + yL.isPersistent = function() { + return !0 + }, yL.updateData = function(t) { + var e = this, + i = e.group, + n = e._lineData; + e._lineData = t, n || i.removeAll(); + var o = ef(t); + t.diff(n).add(function(i) { + Qd(e, t, i, o) + }).update(function(i, a) { + tf(e, n, t, a, i, o) + }).remove(function(t) { + i.remove(n.getItemGraphicEl(t)) + }).execute() + }, yL.updateLayout = function() { + var t = this._lineData; + t && t.eachItemGraphicEl(function(e, i) { + e.updateLayout(t, i) + }, this) + }, yL.incrementalPrepareUpdate = function(t) { + this._seriesScope = ef(t), this._lineData = null, this.group.removeAll() + }, yL.incrementalUpdate = function(t, e) { + for (var i = t.start; i < t.end; i++) + if ( of (e.getItemLayout(i))) { + var n = new this._ctor(e, i, this._seriesScope); + n.traverse(function(t) { + t.isGroup || (t.incremental = t.useHoverLayer = !0) + }), this.group.add(n), e.setItemGraphicEl(i, n) + } + }, yL.remove = function() { + this._clearIncremental(), this._incremental = null, this.group.removeAll() + }, yL._clearIncremental = function() { + var t = this._incremental; + t && t.clearDisplaybles() + }; + var xL = [], + _L = [], + wL = [], + bL = rn, + SL = iw, + ML = Math.abs, + IL = function(t, e) { + function i(t) { + var e = t.getVisual("symbolSize"); + return e instanceof Array && (e = (e[0] + e[1]) / 2), e + } + var n = [], + o = hn, + a = [ + [], + [], + [] + ], + r = [ + [], + [] + ], + s = []; + e /= 2, t.eachEdge(function(t, l) { + var u = t.getLayout(), + h = t.getVisual("fromSymbol"), + c = t.getVisual("toSymbol"); + u.__original || (u.__original = [F(u[0]), F(u[1])], u[2] && u.__original.push(F(u[2]))); + var d = u.__original; + if (null != u[2]) { + if (G(a[0], d[0]), G(a[1], d[2]), G(a[2], d[1]), h && "none" !== h) { + var f = i(t.node1), + p = af(a, d[0], f * e); + o(a[0][0], a[1][0], a[2][0], p, n), a[0][0] = n[3], a[1][0] = n[4], o(a[0][1], a[1][1], a[2][1], p, n), a[0][1] = n[3], a[1][1] = n[4] + } + if (c && "none" !== c) { + var f = i(t.node2), + p = af(a, d[1], f * e); + o(a[0][0], a[1][0], a[2][0], p, n), a[1][0] = n[1], a[2][0] = n[2], o(a[0][1], a[1][1], a[2][1], p, n), a[1][1] = n[1], a[2][1] = n[2] + } + G(u[0], a[0]), G(u[1], a[2]), G(u[2], a[1]) + } else { + if (G(r[0], d[0]), G(r[1], d[1]), U(s, r[1], r[0]), q(s, s), h && "none" !== h) { + f = i(t.node1); + Z(r[0], r[0], s, f * e) + } + if (c && "none" !== c) { + f = i(t.node2); + Z(r[1], r[1], s, -f * e) + } + G(u[0], r[0]), G(u[1], r[1]) + } + }) + }, + TL = ["itemStyle", "opacity"], + AL = ["lineStyle", "opacity"]; + Fs({ + type: "graph", + init: function(t, e) { + var i = new Su, + n = new Jd, + o = this.group; + this._controller = new ac(e.getZr()), this._controllerHost = { + target: o + }, o.add(i.group), o.add(n.group), this._symbolDraw = i, this._lineDraw = n, this._firstRender = !0 + }, + render: function(t, e, i) { + var n = t.coordinateSystem; + this._model = t, this._nodeScaleRatio = t.get("nodeScaleRatio"); + var o = this._symbolDraw, + a = this._lineDraw, + r = this.group; + if ("view" === n.type) { + var s = { + position: n.position, + scale: n.scale + }; + this._firstRender ? r.attr(s) : bo(r, s, t) + } + IL(t.getGraph(), this._getNodeGlobalScale(t)); + var l = t.getData(); + o.updateData(l); + var u = t.getEdgeData(); + a.updateData(u), this._updateNodeAndLinkScale(), this._updateController(t, e, i), clearTimeout(this._layoutTimeout); + var h = t.forceLayout, + c = t.get("force.layoutAnimation"); + h && this._startForceLayoutIteration(h, c), l.eachItemGraphicEl(function(e, n) { + var o = l.getItemModel(n); + e.off("drag").off("dragend"); + var a = o.get("draggable"); + a && e.on("drag", function() { + h && (h.warmUp(), !this._layouting && this._startForceLayoutIteration(h, c), h.setFixed(n), l.setItemLayout(n, e.position)) + }, this).on("dragend", function() { + h && h.setUnfixed(n) + }, this), e.setDraggable(a && h), e.off("mouseover", e.__focusNodeAdjacency), e.off("mouseout", e.__unfocusNodeAdjacency), o.get("focusNodeAdjacency") && (e.on("mouseover", e.__focusNodeAdjacency = function() { + i.dispatchAction({ + type: "focusNodeAdjacency", + seriesId: t.id, + dataIndex: e.dataIndex + }) + }), e.on("mouseout", e.__unfocusNodeAdjacency = function() { + i.dispatchAction({ + type: "unfocusNodeAdjacency", + seriesId: t.id + }) + })) + }, this), l.graph.eachEdge(function(e) { + var n = e.getGraphicEl(); + n.off("mouseover", n.__focusNodeAdjacency), n.off("mouseout", n.__unfocusNodeAdjacency), e.getModel().get("focusNodeAdjacency") && (n.on("mouseover", n.__focusNodeAdjacency = function() { + i.dispatchAction({ + type: "focusNodeAdjacency", + seriesId: t.id, + edgeDataIndex: e.dataIndex + }) + }), n.on("mouseout", n.__unfocusNodeAdjacency = function() { + i.dispatchAction({ + type: "unfocusNodeAdjacency", + seriesId: t.id + }) + })) + }); + var d = "circular" === t.get("layout") && t.get("circular.rotateLabel"), + f = l.getLayout("cx"), + p = l.getLayout("cy"); + l.eachItemGraphicEl(function(t, e) { + var i = t.getSymbolPath(); + if (d) { + var n = l.getItemLayout(e), + o = Math.atan2(n[1] - p, n[0] - f); + o < 0 && (o = 2 * Math.PI + o); + var a = n[0] < f; + a && (o -= Math.PI); + var r = a ? "left" : "right"; + i.setStyle({ + textRotation: -o, + textPosition: r, + textOrigin: "center" + }), i.hoverStyle && (i.hoverStyle.textPosition = r) + } else i.setStyle({ + textRotation: 0 + }) + }), this._firstRender = !1 + }, + dispose: function() { + this._controller && this._controller.dispose(), this._controllerHost = {} + }, + focusNodeAdjacency: function(t, e, i, n) { + var o = this._model.getData().graph, + a = n.dataIndex, + r = n.edgeDataIndex, + s = o.getNodeByIndex(a), + l = o.getEdgeByIndex(r); + (s || l) && (o.eachNode(function(t) { + sf(t, TL, .1) + }), o.eachEdge(function(t) { + sf(t, AL, .1) + }), s && (lf(s, TL), d(s.edges, function(t) { + t.dataIndex < 0 || (lf(t, AL), lf(t.node1, TL), lf(t.node2, TL)) + })), l && (lf(l, AL), lf(l.node1, TL), lf(l.node2, TL))) + }, + unfocusNodeAdjacency: function(t, e, i, n) { + var o = this._model.getData().graph; + o.eachNode(function(t) { + sf(t, TL) + }), o.eachEdge(function(t) { + sf(t, AL) + }) + }, + _startForceLayoutIteration: function(t, e) { + var i = this; + ! function n() { + t.step(function(t) { + i.updateLayout(i._model), (i._layouting = !t) && (e ? i._layoutTimeout = setTimeout(n, 16) : n()) + }) + }() + }, + _updateController: function(t, e, i) { + var n = this._controller, + o = this._controllerHost, + a = this.group; + n.setPointerChecker(function(e, n, o) { + var r = a.getBoundingRect(); + return r.applyTransform(a.transform), r.contain(n, o) && !mc(e, i, t) + }), "view" === t.coordinateSystem.type ? (n.enable(t.get("roam")), o.zoomLimit = t.get("scaleLimit"), o.zoom = t.coordinateSystem.getZoom(), n.off("pan").off("zoom").on("pan", function(e) { + pc(o, e.dx, e.dy), i.dispatchAction({ + seriesId: t.id, + type: "graphRoam", + dx: e.dx, + dy: e.dy + }) + }).on("zoom", function(e) { + gc(o, e.scale, e.originX, e.originY), i.dispatchAction({ + seriesId: t.id, + type: "graphRoam", + zoom: e.scale, + originX: e.originX, + originY: e.originY + }), this._updateNodeAndLinkScale(), IL(t.getGraph(), this._getNodeGlobalScale(t)), this._lineDraw.updateLayout() + }, this)) : n.disable() + }, + _updateNodeAndLinkScale: function() { + var t = this._model, + e = t.getData(), + i = this._getNodeGlobalScale(t), + n = [i, i]; + e.eachItemGraphicEl(function(t, e) { + t.attr("scale", n) + }) + }, + _getNodeGlobalScale: function(t) { + var e = t.coordinateSystem; + if ("view" !== e.type) return 1; + var i = this._nodeScaleRatio, + n = e.scale, + o = n && n[0] || 1; + return ((e.getZoom() - 1) * i + 1) / o + }, + updateLayout: function(t) { + IL(t.getGraph(), this._getNodeGlobalScale(t)), this._symbolDraw.updateLayout(), this._lineDraw.updateLayout() + }, + remove: function(t, e) { + this._symbolDraw && this._symbolDraw.remove(), this._lineDraw && this._lineDraw.remove() + } + }), Ps({ + type: "focusNodeAdjacency", + event: "focusNodeAdjacency", + update: "series:focusNodeAdjacency" + }, function() {}), Ps({ + type: "unfocusNodeAdjacency", + event: "unfocusNodeAdjacency", + update: "series:unfocusNodeAdjacency" + }, function() {}), Ps({ + type: "graphRoam", + event: "graphRoam", + update: "none" + }, function(t, e) { + e.eachComponent({ + mainType: "series", + query: t + }, function(e) { + var i = wc(e.coordinateSystem, t); + e.setCenter && e.setCenter(i.center), e.setZoom && e.setZoom(i.zoom) + }) + }); + var DL = Z; + ks(function(t) { + var e = t.findComponents({ + mainType: "legend" + }); + e && e.length && t.eachSeriesByType("graph", function(t) { + var i = t.getCategoriesData(), + n = t.getGraph().data, + o = i.mapArray(i.getName); + n.filterSelf(function(t) { + var i = n.getItemModel(t).getShallow("category"); + if (null != i) { + "number" == typeof i && (i = o[i]); + for (var a = 0; a < e.length; a++) + if (!e[a].isSelected(i)) return !1 + } + return !0 + }) + }, this) + }), Es(hD("graph", "circle", null)), Es(function(t) { + var e = {}; + t.eachSeriesByType("graph", function(t) { + var i = t.getCategoriesData(), + n = t.getData(), + o = {}; + i.each(function(n) { + var a = i.getName(n); + o["ec-" + a] = n; + var r = i.getItemModel(n).get("itemStyle.color") || t.getColorFromPalette(a, e); + i.setItemVisual(n, "color", r) + }), i.count() && n.each(function(t) { + var e = n.getItemModel(t).getShallow("category"); + null != e && ("string" == typeof e && (e = o["ec-" + e]), n.getItemVisual(t, "color", !0) || n.setItemVisual(t, "color", i.getItemVisual(e, "color"))) + }) + }) + }), Es(function(t) { + t.eachSeriesByType("graph", function(t) { + var e = t.getGraph(), + i = t.getEdgeData(), + n = uf(t.get("edgeSymbol")), + o = uf(t.get("edgeSymbolSize")), + a = "lineStyle.color".split("."), + r = "lineStyle.opacity".split("."); + i.setVisual("fromSymbol", n && n[0]), i.setVisual("toSymbol", n && n[1]), i.setVisual("fromSymbolSize", o && o[0]), i.setVisual("toSymbolSize", o && o[1]), i.setVisual("color", t.get(a)), i.setVisual("opacity", t.get(r)), i.each(function(t) { + var n = i.getItemModel(t), + o = e.getEdgeByIndex(t), + s = uf(n.getShallow("symbol", !0)), + l = uf(n.getShallow("symbolSize", !0)), + u = n.get(a), + h = n.get(r); + switch (u) { + case "source": + u = o.node1.getVisual("color"); + break; + case "target": + u = o.node2.getVisual("color") + } + s[0] && o.setVisual("fromSymbol", s[0]), s[1] && o.setVisual("toSymbol", s[1]), l[0] && o.setVisual("fromSymbolSize", l[0]), l[1] && o.setVisual("toSymbolSize", l[1]), o.setVisual("color", u), o.setVisual("opacity", h) + }) + }) + }), Os(function(t, e) { + t.eachSeriesByType("graph", function(t) { + var e = t.get("layout"), + i = t.coordinateSystem; + if (i && "view" !== i.type) { + var n = t.getData(), + o = []; + d(i.dimensions, function(t) { + o = o.concat(n.mapDimension(t, !0)) + }); + for (var a = 0; a < n.count(); a++) { + for (var r = [], s = !1, l = 0; l < o.length; l++) { + var u = n.get(o[l], a); + isNaN(u) || (s = !0), r.push(u) + } + s ? n.setItemLayout(a, i.dataToPoint(r)) : n.setItemLayout(a, [NaN, NaN]) + } + cf(n.graph) + } else e && "none" !== e || hf(t) + }) + }), Os(function(t) { + t.eachSeriesByType("graph", function(t) { + "circular" === t.get("layout") && df(t) + }) + }), Os(function(t) { + t.eachSeriesByType("graph", function(t) { + var e = t.coordinateSystem; + if (!e || "view" === e.type) + if ("force" === t.get("layout")) { + var i = t.preservedPoints || {}, + n = t.getGraph(), + o = n.data, + a = n.edgeData, + r = t.getModel("force"), + s = r.get("initLayout"); + t.preservedPoints ? o.each(function(t) { + var e = o.getId(t); + o.setItemLayout(t, i[e] || [NaN, NaN]) + }) : s && "none" !== s ? "circular" === s && df(t) : hf(t); + var l = o.getDataExtent("value"), + u = a.getDataExtent("value"), + h = r.get("repulsion"), + c = r.get("edgeLength"); + y(h) || (h = [h, h]), y(c) || (c = [c, c]), c = [c[1], c[0]]; + var d = o.mapArray("value", function(t, e) { + var i = o.getItemLayout(e), + n = Eo(t, l, h); + return isNaN(n) && (n = (h[0] + h[1]) / 2), { + w: n, + rep: n, + fixed: o.getItemModel(e).get("fixed"), + p: !i || isNaN(i[0]) || isNaN(i[1]) ? null : i + } + }), + f = a.mapArray("value", function(t, e) { + var i = n.getEdgeByIndex(e), + o = Eo(t, u, c); + return isNaN(o) && (o = (c[0] + c[1]) / 2), { + n1: d[i.node1.dataIndex], + n2: d[i.node2.dataIndex], + d: o, + curveness: i.getModel().get("lineStyle.curveness") || 0 + } + }), + p = (e = t.coordinateSystem).getBoundingRect(), + g = ff(d, f, { + rect: p, + gravity: r.get("gravity") + }), + m = g.step; + g.step = function(t) { + for (var e = 0, a = d.length; e < a; e++) d[e].fixed && G(d[e].p, n.getNodeByIndex(e).getLayout()); + m(function(e, a, r) { + for (var s = 0, l = e.length; s < l; s++) e[s].fixed || n.getNodeByIndex(s).setLayout(e[s].p), i[o.getId(s)] = e[s].p; + for (var s = 0, l = a.length; s < l; s++) { + var u = a[s], + h = n.getEdgeByIndex(s), + c = u.n1.p, + d = u.n2.p, + f = h.getLayout(); + (f = f ? f.slice() : [])[0] = f[0] || [], f[1] = f[1] || [], G(f[0], c), G(f[1], d), +u.curveness && (f[2] = [(c[0] + d[0]) / 2 - (c[1] - d[1]) * u.curveness, (c[1] + d[1]) / 2 - (d[0] - c[0]) * u.curveness]), h.setLayout(f) + } + t && t(r) + }) + }, t.forceLayout = g, t.preservedPoints = i, g.step() + } else t.forceLayout = null + }) + }), Ns("graphView", { + create: function(t, e) { + var i = []; + return t.eachSeriesByType("graph", function(t) { + var n = t.get("coordinateSystem"); + if (!n || "view" === n) { + var o = t.getData(), + a = [], + r = []; + dn(o.mapArray(function(t) { + var e = o.getItemModel(t); + return [+e.get("x"), +e.get("y")] + }), a, r), r[0] - a[0] == 0 && (r[0] += 1, a[0] -= 1), r[1] - a[1] == 0 && (r[1] += 1, a[1] -= 1); + var s = (r[0] - a[0]) / (r[1] - a[1]), + l = pf(t, e, s); + isNaN(s) && (a = [l.x, l.y], r = [l.x + l.width, l.y + l.height]); + var u = r[0] - a[0], + h = r[1] - a[1], + c = l.width, + d = l.height, + f = t.coordinateSystem = new Uh; + f.zoomLimit = t.get("scaleLimit"), f.setBoundingRect(a[0], a[1], u, h), f.setViewRect(l.x, l.y, c, d), f.setCenter(t.get("center")), f.setZoom(t.get("zoom")), i.push(f) + } + }), i + } + }); + OI.extend({ + type: "series.gauge", + getInitialData: function(t, e) { + var i = t.data || []; + return y(i) || (i = [i]), t.data = i, WD(this, ["value"]) + }, + defaultOption: { + zlevel: 0, + z: 2, + center: ["50%", "50%"], + legendHoverLink: !0, + radius: "75%", + startAngle: 225, + endAngle: -45, + clockwise: !0, + min: 0, + max: 100, + splitNumber: 10, + axisLine: { + show: !0, + lineStyle: { + color: [ + [.2, "#91c7ae"], + [.8, "#63869e"], + [1, "#c23531"] + ], + width: 30 + } + }, + splitLine: { + show: !0, + length: 30, + lineStyle: { + color: "#eee", + width: 2, + type: "solid" + } + }, + axisTick: { + show: !0, + splitNumber: 5, + length: 8, + lineStyle: { + color: "#eee", + width: 1, + type: "solid" + } + }, + axisLabel: { + show: !0, + distance: 5, + color: "auto" + }, + pointer: { + show: !0, + length: "80%", + width: 8 + }, + itemStyle: { + color: "auto" + }, + title: { + show: !0, + offsetCenter: [0, "-40%"], + color: "#333", + fontSize: 15 + }, + detail: { + show: !0, + backgroundColor: "rgba(0,0,0,0)", + borderWidth: 0, + borderColor: "#ccc", + width: 100, + height: null, + padding: [5, 10], + offsetCenter: [0, "40%"], + color: "auto", + fontSize: 30 + } + } + }); + var CL = kn.extend({ + type: "echartsGaugePointer", + shape: { + angle: 0, + width: 10, + r: 10, + x: 0, + y: 0 + }, + buildPath: function(t, e) { + var i = Math.cos, + n = Math.sin, + o = e.r, + a = e.width, + r = e.angle, + s = e.x - i(r) * a * (a >= o / 3 ? 1 : 2), + l = e.y - n(r) * a * (a >= o / 3 ? 1 : 2); + r = e.angle - Math.PI / 2, t.moveTo(s, l), t.lineTo(e.x + i(r) * a, e.y + n(r) * a), t.lineTo(e.x + i(e.angle) * o, e.y + n(e.angle) * o), t.lineTo(e.x - i(r) * a, e.y - n(r) * a), t.lineTo(s, l) + } + }), + LL = 2 * Math.PI, + kL = (Mr.extend({ + type: "gauge", + render: function(t, e, i) { + this.group.removeAll(); + var n = t.get("axisLine.lineStyle.color"), + o = gf(t, i); + this._renderMain(t, e, i, n, o) + }, + dispose: function() {}, + _renderMain: function(t, e, i, n, o) { + for (var a = this.group, r = t.getModel("axisLine").getModel("lineStyle"), s = t.get("clockwise"), l = -t.get("startAngle") / 180 * Math.PI, u = -t.get("endAngle") / 180 * Math.PI, h = (u - l) % LL, c = l, d = r.get("width"), f = 0; f < n.length; f++) { + var p = Math.min(Math.max(n[f][0], 0), 1), + g = new QS({ + shape: { + startAngle: c, + endAngle: u = l + h * p, + cx: o.cx, + cy: o.cy, + clockwise: s, + r0: o.r - d, + r: o.r + }, + silent: !0 + }); + g.setStyle({ + fill: n[f][1] + }), g.setStyle(r.getLineStyle(["color", "borderWidth", "borderColor"])), a.add(g), c = u + } + var m = function(t) { + if (t <= 0) return n[0][1]; + for (var e = 0; e < n.length; e++) + if (n[e][0] >= t && (0 === e ? 0 : n[e - 1][0]) < t) return n[e][1]; + return n[e - 1][1] + }; + if (!s) { + var v = l; + l = u, u = v + } + this._renderTicks(t, e, i, m, o, l, u, s), this._renderPointer(t, e, i, m, o, l, u, s), this._renderTitle(t, e, i, m, o), this._renderDetail(t, e, i, m, o) + }, + _renderTicks: function(t, e, i, n, o, a, r, s) { + for (var l = this.group, u = o.cx, h = o.cy, c = o.r, d = +t.get("min"), f = +t.get("max"), p = t.getModel("splitLine"), g = t.getModel("axisTick"), m = t.getModel("axisLabel"), v = t.get("splitNumber"), y = g.get("splitNumber"), x = Ro(p.get("length"), c), _ = Ro(g.get("length"), c), w = a, b = (r - a) / v, S = b / y, M = p.getModel("lineStyle").getLineStyle(), I = g.getModel("lineStyle").getLineStyle(), T = 0; T <= v; T++) { + var A = Math.cos(w), + D = Math.sin(w); + if (p.get("show")) { + var C = new rM({ + shape: { + x1: A * c + u, + y1: D * c + h, + x2: A * (c - x) + u, + y2: D * (c - x) + h + }, + style: M, + silent: !0 + }); + "auto" === M.stroke && C.setStyle({ + stroke: n(T / v) + }), l.add(C) + } + if (m.get("show")) { + var L = mf(zo(T / v * (f - d) + d), m.get("formatter")), + k = m.get("distance"), + P = n(T / v); + l.add(new qS({ + style: fo({}, m, { + text: L, + x: A * (c - x - k) + u, + y: D * (c - x - k) + h, + textVerticalAlign: D < -.4 ? "top" : D > .4 ? "bottom" : "middle", + textAlign: A < -.4 ? "left" : A > .4 ? "right" : "center" + }, { + autoColor: P + }), + silent: !0 + })) + } + if (g.get("show") && T !== v) { + for (var N = 0; N <= y; N++) { + var A = Math.cos(w), + D = Math.sin(w), + O = new rM({ + shape: { + x1: A * c + u, + y1: D * c + h, + x2: A * (c - _) + u, + y2: D * (c - _) + h + }, + silent: !0, + style: I + }); + "auto" === I.stroke && O.setStyle({ + stroke: n((T + N / y) / v) + }), l.add(O), w += S + } + w -= S + } else w += b + } + }, + _renderPointer: function(t, e, i, n, o, a, r, s) { + var l = this.group, + u = this._data; + if (t.get("pointer.show")) { + var h = [+t.get("min"), +t.get("max")], + c = [a, r], + d = t.getData(), + f = d.mapDimension("value"); + d.diff(u).add(function(e) { + var i = new CL({ + shape: { + angle: a + } + }); + So(i, { + shape: { + angle: Eo(d.get(f, e), h, c, !0) + } + }, t), l.add(i), d.setItemGraphicEl(e, i) + }).update(function(e, i) { + var n = u.getItemGraphicEl(i); + bo(n, { + shape: { + angle: Eo(d.get(f, e), h, c, !0) + } + }, t), l.add(n), d.setItemGraphicEl(e, n) + }).remove(function(t) { + var e = u.getItemGraphicEl(t); + l.remove(e) + }).execute(), d.eachItemGraphicEl(function(t, e) { + var i = d.getItemModel(e), + a = i.getModel("pointer"); + t.setShape({ + x: o.cx, + y: o.cy, + width: Ro(a.get("width"), o.r), + r: Ro(a.get("length"), o.r) + }), t.useStyle(i.getModel("itemStyle").getItemStyle()), "auto" === t.style.fill && t.setStyle("fill", n(Eo(d.get(f, e), h, [0, 1], !0))), uo(t, i.getModel("emphasis.itemStyle").getItemStyle()) + }), this._data = d + } else u && u.eachItemGraphicEl(function(t) { + l.remove(t) + }) + }, + _renderTitle: function(t, e, i, n, o) { + var a = t.getData(), + r = a.mapDimension("value"), + s = t.getModel("title"); + if (s.get("show")) { + var l = s.get("offsetCenter"), + u = o.cx + Ro(l[0], o.r), + h = o.cy + Ro(l[1], o.r), + c = +t.get("min"), + d = +t.get("max"), + f = n(Eo(t.getData().get(r, 0), [c, d], [0, 1], !0)); + this.group.add(new qS({ + silent: !0, + style: fo({}, s, { + x: u, + y: h, + text: a.getName(0), + textAlign: "center", + textVerticalAlign: "middle" + }, { + autoColor: f, + forceRich: !0 + }) + })) + } + }, + _renderDetail: function(t, e, i, n, o) { + var a = t.getModel("detail"), + r = +t.get("min"), + s = +t.get("max"); + if (a.get("show")) { + var l = a.get("offsetCenter"), + u = o.cx + Ro(l[0], o.r), + h = o.cy + Ro(l[1], o.r), + c = Ro(a.get("width"), o.r), + d = Ro(a.get("height"), o.r), + f = t.getData(), + p = f.get(f.mapDimension("value"), 0), + g = n(Eo(p, [r, s], [0, 1], !0)); + this.group.add(new qS({ + silent: !0, + style: fo({}, a, { + x: u, + y: h, + text: mf(p, a.get("formatter")), + textWidth: isNaN(c) ? null : c, + textHeight: isNaN(d) ? null : d, + textAlign: "center", + textVerticalAlign: "middle" + }, { + autoColor: g, + forceRich: !0 + }) + })) + } + } + }), Gs({ + type: "series.funnel", + init: function(t) { + kL.superApply(this, "init", arguments), this.legendDataProvider = function() { + return this.getRawData() + }, this._defaultLabelLine(t) + }, + getInitialData: function(t, e) { + return WD(this, ["value"]) + }, + _defaultLabelLine: function(t) { + Ci(t, "labelLine", ["show"]); + var e = t.labelLine, + i = t.emphasis.labelLine; + e.show = e.show && t.label.show, i.show = i.show && t.emphasis.label.show + }, + getDataParams: function(t) { + var e = this.getData(), + i = kL.superCall(this, "getDataParams", t), + n = e.mapDimension("value"), + o = e.getSum(n); + return i.percent = o ? +(e.get(n, t) / o * 100).toFixed(2) : 0, i.$vars.push("percent"), i + }, + defaultOption: { + zlevel: 0, + z: 2, + legendHoverLink: !0, + left: 80, + top: 60, + right: 80, + bottom: 60, + minSize: "0%", + maxSize: "100%", + sort: "descending", + gap: 0, + funnelAlign: "center", + label: { + show: !0, + position: "outer" + }, + labelLine: { + show: !0, + length: 20, + lineStyle: { + width: 1, + type: "solid" + } + }, + itemStyle: { + borderColor: "#fff", + borderWidth: 1 + }, + emphasis: { + label: { + show: !0 + } + } + } + })), + PL = vf.prototype, + NL = ["itemStyle", "opacity"]; + PL.updateData = function(t, e, i) { + var n = this.childAt(0), + o = t.hostModel, + a = t.getItemModel(e), + s = t.getItemLayout(e), + l = t.getItemModel(e).get(NL); + l = null == l ? 1 : l, n.useStyle({}), i ? (n.setShape({ + points: s.points + }), n.setStyle({ + opacity: 0 + }), So(n, { + style: { + opacity: l + } + }, o, e)) : bo(n, { + style: { + opacity: l + }, + shape: { + points: s.points + } + }, o, e); + var u = a.getModel("itemStyle"), + h = t.getItemVisual(e, "color"); + n.setStyle(r({ + lineJoin: "round", + fill: h + }, u.getItemStyle(["opacity"]))), n.hoverStyle = u.getModel("emphasis").getItemStyle(), this._updateLabel(t, e), uo(this) + }, PL._updateLabel = function(t, e) { + var i = this.childAt(1), + n = this.childAt(2), + o = t.hostModel, + a = t.getItemModel(e), + r = t.getItemLayout(e).label, + s = t.getItemVisual(e, "color"); + bo(i, { + shape: { + points: r.linePoints || r.linePoints + } + }, o, e), bo(n, { + style: { + x: r.x, + y: r.y + } + }, o, e), n.attr({ + rotation: r.rotation, + origin: [r.x, r.y], + z2: 10 + }); + var l = a.getModel("label"), + u = a.getModel("emphasis.label"), + h = a.getModel("labelLine"), + c = a.getModel("emphasis.labelLine"), + s = t.getItemVisual(e, "color"); + co(n.style, n.hoverStyle = {}, l, u, { + labelFetcher: t.hostModel, + labelDataIndex: e, + defaultText: t.getName(e), + autoColor: s, + useInsideStyle: !!r.inside + }, { + textAlign: r.textAlign, + textVerticalAlign: r.verticalAlign + }), n.ignore = n.normalIgnore = !l.get("show"), n.hoverIgnore = !u.get("show"), i.ignore = i.normalIgnore = !h.get("show"), i.hoverIgnore = !c.get("show"), i.setStyle({ + stroke: s + }), i.setStyle(h.getModel("lineStyle").getLineStyle()), i.hoverStyle = c.getModel("lineStyle").getLineStyle() + }, u(vf, Zw); + Mr.extend({ + type: "funnel", + render: function(t, e, i) { + var n = t.getData(), + o = this._data, + a = this.group; + n.diff(o).add(function(t) { + var e = new vf(n, t); + n.setItemGraphicEl(t, e), a.add(e) + }).update(function(t, e) { + var i = o.getItemGraphicEl(e); + i.updateData(n, t), a.add(i), n.setItemGraphicEl(t, i) + }).remove(function(t) { + var e = o.getItemGraphicEl(t); + a.remove(e) + }).execute(), this._data = n + }, + remove: function() { + this.group.removeAll(), this._data = null + }, + dispose: function() {} + }); + Es(jD("funnel")), Os(function(t, e, i) { + t.eachSeriesByType("funnel", function(t) { + var i = t.getData(), + n = i.mapDimension("value"), + o = t.get("sort"), + a = yf(t, e), + r = xf(i, o), + s = [Ro(t.get("minSize"), a.width), Ro(t.get("maxSize"), a.width)], + l = i.getDataExtent(n), + u = t.get("min"), + h = t.get("max"); + null == u && (u = Math.min(l[0], 0)), null == h && (h = l[1]); + var c = t.get("funnelAlign"), + d = t.get("gap"), + f = (a.height - d * (i.count() - 1)) / i.count(), + p = a.y, + g = function(t, e) { + var o, r = Eo(i.get(n, t) || 0, [u, h], s, !0); + switch (c) { + case "left": + o = a.x; + break; + case "center": + o = a.x + (a.width - r) / 2; + break; + case "right": + o = a.x + a.width - r + } + return [ + [o, e], + [o + r, e] + ] + }; + "ascending" === o && (f = -f, d = -d, p += a.height, r = r.reverse()); + for (var m = 0; m < r.length; m++) { + var v = r[m], + y = r[m + 1], + x = i.getItemModel(v).get("itemStyle.height"); + null == x ? x = f : (x = Ro(x, a.height), "ascending" === o && (x = -x)); + var _ = g(v, p), + w = g(y, p + x); + p += x + d, i.setItemLayout(v, { + points: _.concat(w.slice().reverse()) + }) + } + _f(i) + }) + }), ks($D("funnel")); + var OL = function(t, e, i, n, o) { + HA.call(this, t, e, i), this.type = n || "value", this.axisIndex = o + }; + OL.prototype = { + constructor: OL, + model: null, + isHorizontal: function() { + return "horizontal" !== this.coordinateSystem.getModel().get("layout") + } + }, u(OL, HA); + var EL = function(t, e, i, n, o, a) { + e[0] = Mf(e[0], i), e[1] = Mf(e[1], i), t = t || 0; + var r = i[1] - i[0]; + null != o && (o = Mf(o, [0, r])), null != a && (a = Math.max(a, null != o ? o : 0)), "all" === n && (o = a = Math.abs(e[1] - e[0]), n = 0); + var s = Sf(e, n); + e[n] += t; + var l = o || 0, + u = i.slice(); + s.sign < 0 ? u[0] += l : u[1] -= l, e[n] = Mf(e[n], u); + h = Sf(e, n); + null != o && (h.sign !== s.sign || h.span < o) && (e[1 - n] = e[n] + s.sign * o); + var h = Sf(e, n); + return null != a && h.span > a && (e[1 - n] = e[n] + h.sign * a), e + }, + RL = d, + zL = Math.min, + BL = Math.max, + VL = Math.floor, + GL = Math.ceil, + FL = zo, + WL = Math.PI; + If.prototype = { + type: "parallel", + constructor: If, + _init: function(t, e, i) { + var n = t.dimensions, + o = t.parallelAxisIndex; + RL(n, function(t, i) { + var n = o[i], + a = e.getComponent("parallelAxis", n), + r = this._axesMap.set(t, new OL(t, Vl(a), [0, 0], a.get("type"), n)), + s = "category" === r.type; + r.onBand = s && a.get("boundaryGap"), r.inverse = a.get("inverse"), a.axis = r, r.model = a, r.coordinateSystem = a.coordinateSystem = this + }, this) + }, + update: function(t, e) { + this._updateAxesFromSeries(this._model, t) + }, + containPoint: function(t) { + var e = this._makeLayoutInfo(), + i = e.axisBase, + n = e.layoutBase, + o = e.pixelDimIndex, + a = t[1 - o], + r = t[o]; + return a >= i && a <= i + e.axisLength && r >= n && r <= n + e.layoutLength + }, + getModel: function() { + return this._model + }, + _updateAxesFromSeries: function(t, e) { + e.eachSeries(function(i) { + if (t.contains(i, e)) { + var n = i.getData(); + RL(this.dimensions, function(t) { + var e = this._axesMap.get(t); + e.scale.unionExtentFromData(n, n.mapDimension(t)), Bl(e.scale, e.model) + }, this) + } + }, this) + }, + resize: function(t, e) { + this._rect = la(t.getBoxLayoutParams(), { + width: e.getWidth(), + height: e.getHeight() + }), this._layoutAxes() + }, + getRect: function() { + return this._rect + }, + _makeLayoutInfo: function() { + var t, e = this._model, + i = this._rect, + n = ["x", "y"], + o = ["width", "height"], + a = e.get("layout"), + r = "horizontal" === a ? 0 : 1, + s = i[o[r]], + l = [0, s], + u = this.dimensions.length, + h = Tf(e.get("axisExpandWidth"), l), + c = Tf(e.get("axisExpandCount") || 0, [0, u]), + d = e.get("axisExpandable") && u > 3 && u > c && c > 1 && h > 0 && s > 0, + f = e.get("axisExpandWindow"); + f ? (t = Tf(f[1] - f[0], l), f[1] = f[0] + t) : (t = Tf(h * (c - 1), l), (f = [h * (e.get("axisExpandCenter") || VL(u / 2)) - t / 2])[1] = f[0] + t); + var p = (s - t) / (u - c); + p < 3 && (p = 0); + var g = [VL(FL(f[0] / h, 1)) + 1, GL(FL(f[1] / h, 1)) - 1], + m = p / h * f[0]; + return { + layout: a, + pixelDimIndex: r, + layoutBase: i[n[r]], + layoutLength: s, + axisBase: i[n[1 - r]], + axisLength: i[o[1 - r]], + axisExpandable: d, + axisExpandWidth: h, + axisCollapseWidth: p, + axisExpandWindow: f, + axisCount: u, + winInnerIndices: g, + axisExpandWindow0Pos: m + } + }, + _layoutAxes: function() { + var t = this._rect, + e = this._axesMap, + i = this.dimensions, + n = this._makeLayoutInfo(), + o = n.layout; + e.each(function(t) { + var e = [0, n.axisLength], + i = t.inverse ? 1 : 0; + t.setExtent(e[i], e[1 - i]) + }), RL(i, function(e, i) { + var a = (n.axisExpandable ? Df : Af)(i, n), + r = { + horizontal: { + x: a.position, + y: n.axisLength + }, + vertical: { + x: 0, + y: a.position + } + }, + s = { + horizontal: WL / 2, + vertical: 0 + }, + l = [r[o].x + t.x, r[o].y + t.y], + u = s[o], + h = mt(); + wt(h, h, u), _t(h, h, l), this._axesLayout[e] = { + position: l, + rotation: u, + transform: h, + axisNameAvailableWidth: a.axisNameAvailableWidth, + axisLabelShow: a.axisLabelShow, + nameTruncateMaxWidth: a.nameTruncateMaxWidth, + tickDirection: 1, + labelDirection: 1 + } + }, this) + }, + getAxis: function(t) { + return this._axesMap.get(t) + }, + dataToPoint: function(t, e) { + return this.axisCoordToPoint(this._axesMap.get(e).dataToCoord(t), e) + }, + eachActiveState: function(t, e, i, n) { + null == i && (i = 0), null == n && (n = t.count()); + var o = this._axesMap, + a = this.dimensions, + r = [], + s = []; + d(a, function(e) { + r.push(t.mapDimension(e)), s.push(o.get(e).model) + }); + for (var l = this.hasAxisBrushed(), u = i; u < n; u++) { + var h; + if (l) { + h = "active"; + for (var c = t.getValues(r, u), f = 0, p = a.length; f < p; f++) + if ("inactive" === s[f].getActiveState(c[f])) { + h = "inactive"; + break + } + } else h = "normal"; + e(h, u) + } + }, + hasAxisBrushed: function() { + for (var t = this.dimensions, e = this._axesMap, i = !1, n = 0, o = t.length; n < o; n++) "normal" !== e.get(t[n]).model.getActiveState() && (i = !0); + return i + }, + axisCoordToPoint: function(t, e) { + return Io([t, 0], this._axesLayout[e].transform) + }, + getAxisLayout: function(t) { + return i(this._axesLayout[t]) + }, + getSlidedAxisExpandWindow: function(t) { + var e = this._makeLayoutInfo(), + i = e.pixelDimIndex, + n = e.axisExpandWindow.slice(), + o = n[1] - n[0], + a = [0, e.axisExpandWidth * (e.axisCount - 1)]; + if (!this.containPoint(t)) return { + behavior: "none", + axisExpandWindow: n + }; + var r, s = t[i] - e.layoutBase - e.axisExpandWindow0Pos, + l = "slide", + u = e.axisCollapseWidth, + h = this._model.get("axisExpandSlideTriggerArea"), + c = null != h[0]; + if (u) c && u && s < o * h[0] ? (l = "jump", r = s - o * h[2]) : c && u && s > o * (1 - h[0]) ? (l = "jump", r = s - o * (1 - h[2])) : (r = s - o * h[1]) >= 0 && (r = s - o * (1 - h[1])) <= 0 && (r = 0), (r *= e.axisExpandWidth / u) ? EL(r, n, a, "all") : l = "none"; + else { + o = n[1] - n[0]; + (n = [BL(0, a[1] * s / o - o / 2)])[1] = zL(a[1], n[0] + o), n[0] = n[1] - o + } + return { + axisExpandWindow: n, + behavior: l + } + } + }, Ba.register("parallel", { + create: function(t, e) { + var i = []; + return t.eachComponent("parallel", function(n, o) { + var a = new If(n, t, e); + a.name = "parallel_" + o, a.resize(n, e), n.coordinateSystem = a, a.model = n, i.push(a) + }), t.eachSeries(function(e) { + if ("parallel" === e.get("coordinateSystem")) { + var i = t.queryComponents({ + mainType: "parallel", + index: e.get("parallelIndex"), + id: e.get("parallelId") + })[0]; + e.coordinateSystem = i.coordinateSystem + } + }), i + } + }); + var HL = YM.extend({ + type: "baseParallelAxis", + axis: null, + activeIntervals: [], + getAreaSelectStyle: function() { + return Wb([ + ["fill", "color"], + ["lineWidth", "borderWidth"], + ["stroke", "borderColor"], + ["width", "width"], + ["opacity", "opacity"] + ])(this.getModel("areaSelectStyle")) + }, + setActiveIntervals: function(t) { + var e = this.activeIntervals = i(t); + if (e) + for (var n = e.length - 1; n >= 0; n--) Bo(e[n]) + }, + getActiveState: function(t) { + var e = this.activeIntervals; + if (!e.length) return "normal"; + if (null == t || isNaN(t)) return "inactive"; + if (1 === e.length) { + var i = e[0]; + if (i[0] <= t && t <= i[1]) return "active" + } else + for (var n = 0, o = e.length; n < o; n++) + if (e[n][0] <= t && t <= e[n][1]) return "active"; + return "inactive" + } + }), + ZL = { + type: "value", + dim: null, + areaSelectStyle: { + width: 20, + borderWidth: 1, + borderColor: "rgba(160,197,232)", + color: "rgba(160,197,232)", + opacity: .3 + }, + realtime: !0, + z: 10 + }; + n(HL.prototype, CA), xD("parallel", HL, function(t, e) { + return e.type || (e.data ? "category" : "value") + }, ZL), YM.extend({ + type: "parallel", + dependencies: ["parallelAxis"], + coordinateSystem: null, + dimensions: null, + parallelAxisIndex: null, + layoutMode: "box", + defaultOption: { + zlevel: 0, + z: 0, + left: 80, + top: 60, + right: 80, + bottom: 60, + layout: "horizontal", + axisExpandable: !1, + axisExpandCenter: null, + axisExpandCount: 0, + axisExpandWidth: 50, + axisExpandRate: 17, + axisExpandDebounce: 50, + axisExpandSlideTriggerArea: [-.15, .05, .4], + axisExpandTriggerOn: "click", + parallelAxisDefault: null + }, + init: function() { + YM.prototype.init.apply(this, arguments), this.mergeOption({}) + }, + mergeOption: function(t) { + var e = this.option; + t && n(e, t, !0), this._initDimensions() + }, + contains: function(t, e) { + var i = t.get("parallelIndex"); + return null != i && e.getComponent("parallel", i) === this + }, + setAxisExpand: function(t) { + d(["axisExpandable", "axisExpandCenter", "axisExpandCount", "axisExpandWidth", "axisExpandWindow"], function(e) { + t.hasOwnProperty(e) && (this.option[e] = t[e]) + }, this) + }, + _initDimensions: function() { + var t = this.dimensions = [], + e = this.parallelAxisIndex = []; + d(g(this.dependentModels.parallelAxis, function(t) { + return (t.get("parallelIndex") || 0) === this.componentIndex + }, this), function(i) { + t.push("dim" + i.get("dim")), e.push(i.componentIndex) + }) + } + }), Ps({ + type: "axisAreaSelect", + event: "axisAreaSelected" + }, function(t, e) { + e.eachComponent({ + mainType: "parallelAxis", + query: t + }, function(e) { + e.axis.model.setActiveIntervals(t.intervals) + }) + }), Ps("parallelAxisExpand", function(t, e) { + e.eachComponent({ + mainType: "parallel", + query: t + }, function(e) { + e.setAxisExpand(t) + }) + }); + var UL = v, + XL = d, + jL = f, + YL = Math.min, + qL = Math.max, + KL = Math.pow, + $L = 1e4, + JL = 6, + QL = 6, + tk = "globalPan", + ek = { + w: [0, 0], + e: [0, 1], + n: [1, 0], + s: [1, 1] + }, + ik = { + w: "ew", + e: "ew", + n: "ns", + s: "ns", + ne: "nesw", + sw: "nesw", + nw: "nwse", + se: "nwse" + }, + nk = { + brushStyle: { + lineWidth: 2, + stroke: "rgba(0,0,0,0.3)", + fill: "rgba(0,0,0,0.1)" + }, + transformable: !0, + brushMode: "single", + removeOnClick: !1 + }, + ok = 0; + Cf.prototype = { + constructor: Cf, + enableBrush: function(t) { + return this._brushType && kf(this), t.brushType && Lf(this, t), this + }, + setPanels: function(t) { + if (t && t.length) { + var e = this._panels = {}; + d(t, function(t) { + e[t.panelId] = i(t) + }) + } else this._panels = null; + return this + }, + mount: function(t) { + t = t || {}, this._enableGlobalPan = t.enableGlobalPan; + var e = this.group; + return this._zr.add(e), e.attr({ + position: t.position || [0, 0], + rotation: t.rotation || 0, + scale: t.scale || [1, 1] + }), this._transform = e.getLocalTransform(), this + }, + eachCover: function(t, e) { + XL(this._covers, t, e) + }, + updateCovers: function(t) { + function e(t, e) { + return (null != t.id ? t.id : a + e) + "-" + t.brushType + } + + function o(e, i) { + var n = t[e]; + if (null != i && r[i] === u) s[e] = r[i]; + else { + var o = s[e] = null != i ? (r[i].__brushOption = n, r[i]) : Nf(l, Pf(l, n)); + Rf(l, o) + } + } + t = f(t, function(t) { + return n(i(nk), t, !0) + }); + var a = "\0-brush-index-", + r = this._covers, + s = this._covers = [], + l = this, + u = this._creatingCover; + return new Hs(r, t, function(t, i) { + return e(t.__brushOption, i) + }, e).add(o).update(o).remove(function(t) { + r[t] !== u && l.group.remove(r[t]) + }).execute(), this + }, + unmount: function() { + return this.enableBrush(!1), Gf(this), this._zr.remove(this.group), this + }, + dispose: function() { + this.unmount(), this.off() + } + }, h(Cf, aw); + var ak = { + mousedown: function(t) { + if (this._dragging) lp.call(this, t); + else if (!t.target || !t.target.draggable) { + op(t); + var e = this.group.transformCoordToLocal(t.offsetX, t.offsetY); + this._creatingCover = null, (this._creatingPanel = Bf(this, t, e)) && (this._dragging = !0, this._track = [e.slice()]) + } + }, + mousemove: function(t) { + var e = this.group.transformCoordToLocal(t.offsetX, t.offsetY); + if (np(this, t, e), this._dragging) { + op(t); + var i = rp(this, t, e, !1); + i && Ff(this, i) + } + }, + mouseup: lp + }, + rk = { + lineX: up(0), + lineY: up(1), + rect: { + createCover: function(t, e) { + return Zf(UL(Jf, function(t) { + return t + }, function(t) { + return t + }), t, e, ["w", "e", "n", "s", "se", "sw", "ne", "nw"]) + }, + getCreatingRange: function(t) { + var e = Hf(t); + return qf(e[1][0], e[1][1], e[0][0], e[0][1]) + }, + updateCoverShape: function(t, e, i, n) { + Uf(t, e, i, n) + }, + updateCommon: Xf, + contain: ap + }, + polygon: { + createCover: function(t, e) { + var i = new Zw; + return i.add(new oM({ + name: "main", + style: Yf(e), + silent: !0 + })), i + }, + getCreatingRange: function(t) { + return t + }, + endCreating: function(t, e) { + e.remove(e.childAt(0)), e.add(new nM({ + name: "main", + draggable: !0, + drift: UL(Qf, t, e), + ondragend: UL(Ff, t, { + isEnd: !0 + }) + })) + }, + updateCoverShape: function(t, e, i, n) { + e.childAt(0).setShape({ + points: ep(t, e, i) + }) + }, + updateCommon: Xf, + contain: ap + } + }, + sk = ["axisLine", "axisTickLabel", "axisName"], + lk = Vs({ + type: "parallelAxis", + init: function(t, e) { + lk.superApply(this, "init", arguments), (this._brushController = new Cf(e.getZr())).on("brush", m(this._onBrush, this)) + }, + render: function(t, e, i, n) { + if (!pp(t, e, n)) { + this.axisModel = t, this.api = i, this.group.removeAll(); + var o = this._axisGroup; + if (this._axisGroup = new Zw, this.group.add(this._axisGroup), t.get("show")) { + var r = mp(t, e), + s = r.coordinateSystem, + l = t.getAreaSelectStyle(), + u = l.width, + h = t.axis.dim, + c = a({ + strokeContainThreshold: u + }, s.getAxisLayout(h)), + f = new ID(t, c); + d(sk, f.add, f), this._axisGroup.add(f.getGroup()), this._refreshBrushController(c, l, t, r, u, i); + var p = n && !1 === n.animation ? null : t; + Ao(o, this._axisGroup, p) + } + } + }, + _refreshBrushController: function(t, e, i, n, o, a) { + var r = i.axis.getExtent(), + s = r[1] - r[0], + l = Math.min(30, .1 * Math.abs(s)), + u = ue.create({ + x: r[0], + y: -o / 2, + width: s, + height: o + }); + u.x -= l, u.width += 2 * l, this._brushController.mount({ + enableGlobalPan: !0, + rotation: t.rotation, + position: t.position + }).setPanels([{ + panelId: "pl", + clipPath: hp(u), + isTargetByCursor: dp(u, a, n), + getLinearBrushOtherExtent: cp(u, 0) + }]).enableBrush({ + brushType: "lineX", + brushStyle: e, + removeOnClick: !0 + }).updateCovers(gp(i)) + }, + _onBrush: function(t, e) { + var i = this.axisModel, + n = i.axis, + o = f(t, function(t) { + return [n.coordToData(t.range[0], !0), n.coordToData(t.range[1], !0)] + }); + (!i.option.realtime === e.isEnd || e.removeOnClick) && this.api.dispatchAction({ + type: "axisAreaSelect", + parallelAxisId: i.id, + intervals: o + }) + }, + dispose: function() { + this._brushController.dispose() + } + }); + Vs({ + type: "parallel", + render: function(t, e, i) { + this._model = t, this._api = i, this._handlers || (this._handlers = {}, d(uk, function(t, e) { + i.getZr().on(e, this._handlers[e] = m(t, this)) + }, this)), Lr(this, "_throttledDispatchExpand", t.get("axisExpandRate"), "fixRate") + }, + dispose: function(t, e) { + d(this._handlers, function(t, i) { + e.getZr().off(i, t) + }), this._handlers = null + }, + _throttledDispatchExpand: function(t) { + this._dispatchExpand(t) + }, + _dispatchExpand: function(t) { + t && this._api.dispatchAction(a({ + type: "parallelAxisExpand" + }, t)) + } + }); + var uk = { + mousedown: function(t) { + vp(this, "click") && (this._mouseDownPoint = [t.offsetX, t.offsetY]) + }, + mouseup: function(t) { + var e = this._mouseDownPoint; + if (vp(this, "click") && e) { + var i = [t.offsetX, t.offsetY]; + if (Math.pow(e[0] - i[0], 2) + Math.pow(e[1] - i[1], 2) > 5) return; + var n = this._model.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX, t.offsetY]); + "none" !== n.behavior && this._dispatchExpand({ + axisExpandWindow: n.axisExpandWindow + }) + } + this._mouseDownPoint = null + }, + mousemove: function(t) { + if (!this._mouseDownPoint && vp(this, "mousemove")) { + var e = this._model, + i = e.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX, t.offsetY]), + n = i.behavior; + "jump" === n && this._throttledDispatchExpand.debounceNextCall(e.get("axisExpandDebounce")), this._throttledDispatchExpand("none" === n ? null : { + axisExpandWindow: i.axisExpandWindow, + animation: "jump" === n && null + }) + } + } + }; + Ls(function(t) { + wf(t), bf(t) + }), OI.extend({ + type: "series.parallel", + dependencies: ["parallel"], + visualColorAccessPath: "lineStyle.color", + getInitialData: function(t, e) { + var i = this.getSource(); + return yp(i, this), dl(i, this) + }, + getRawIndicesByActiveState: function(t) { + var e = this.coordinateSystem, + i = this.getData(), + n = []; + return e.eachActiveState(i, function(e, o) { + t === e && n.push(i.getRawIndex(o)) + }), n + }, + defaultOption: { + zlevel: 0, + z: 2, + coordinateSystem: "parallel", + parallelIndex: 0, + label: { + show: !1 + }, + inactiveOpacity: .05, + activeOpacity: 1, + lineStyle: { + width: 1, + opacity: .45, + type: "solid" + }, + emphasis: { + label: { + show: !1 + } + }, + progressive: 500, + smooth: !1, + animationEasing: "linear" + } + }); + var hk = .3, + ck = (Mr.extend({ + type: "parallel", + init: function() { + this._dataGroup = new Zw, this.group.add(this._dataGroup), this._data, this._initialized + }, + render: function(t, e, i, n) { + var o = this._dataGroup, + a = t.getData(), + r = this._data, + s = t.coordinateSystem, + l = s.dimensions, + u = Sp(t); + if (a.diff(r).add(function(t) { + Mp(bp(a, o, t, l, s), a, t, u) + }).update(function(e, i) { + var o = r.getItemGraphicEl(i), + h = wp(a, e, l, s); + a.setItemGraphicEl(e, o), bo(o, { + shape: { + points: h + } + }, n && !1 === n.animation ? null : t, e), Mp(o, a, e, u) + }).remove(function(t) { + var e = r.getItemGraphicEl(t); + o.remove(e) + }).execute(), !this._initialized) { + this._initialized = !0; + var h = _p(s, t, function() { + setTimeout(function() { + o.removeClipPath() + }) + }); + o.setClipPath(h) + } + this._data = a + }, + incrementalPrepareRender: function(t, e, i) { + this._initialized = !0, this._data = null, this._dataGroup.removeAll() + }, + incrementalRender: function(t, e, i) { + for (var n = e.getData(), o = e.coordinateSystem, a = o.dimensions, r = Sp(e), s = t.start; s < t.end; s++) { + var l = bp(n, this._dataGroup, s, a, o); + l.incremental = !0, Mp(l, n, s, r) + } + }, + dispose: function() {}, + remove: function() { + this._dataGroup && this._dataGroup.removeAll(), this._data = null + } + }), ["lineStyle", "normal", "opacity"]); + Es({ + seriesType: "parallel", + reset: function(t, e, i) { + var n = t.getModel("itemStyle"), + o = t.getModel("lineStyle"), + a = e.get("color"), + r = o.get("color") || n.get("color") || a[t.seriesIndex % a.length], + s = t.get("inactiveOpacity"), + l = t.get("activeOpacity"), + u = t.getModel("lineStyle").getLineStyle(), + h = t.coordinateSystem, + c = t.getData(), + d = { + normal: u.opacity, + active: l, + inactive: s + }; + return c.setVisual("color", r), { + progress: function(t, e) { + h.eachActiveState(e, function(t, i) { + var n = d[t]; + if ("normal" === t && e.hasItemOption) { + var o = e.getItemModel(i).get(ck, !0); + null != o && (n = o) + } + e.setItemVisual(i, "opacity", n) + }, t.start, t.end) + } + } + } + }); + var dk = OI.extend({ + type: "series.sankey", + layoutInfo: null, + getInitialData: function(t) { + var e = t.edges || t.links, + i = t.data || t.nodes; + if (i && e) return cL(i, e, this, !0).data + }, + setNodePosition: function(t, e) { + var i = this.option.data[t]; + i.localX = e[0], i.localY = e[1] + }, + getGraph: function() { + return this.getData().graph + }, + getEdgeData: function() { + return this.getGraph().edgeData + }, + formatTooltip: function(t, e, i) { + if ("edge" === i) { + var n = this.getDataParams(t, i), + o = n.data, + a = o.source + " -- " + o.target; + return n.value && (a += " : " + n.value), Qo(a) + } + return dk.superCall(this, "formatTooltip", t, e) + }, + optionUpdated: function() { + var t = this.option; + !0 === t.focusNodeAdjacency && (t.focusNodeAdjacency = "allEdges") + }, + defaultOption: { + zlevel: 0, + z: 2, + coordinateSystem: "view", + layout: null, + left: "5%", + top: "5%", + right: "20%", + bottom: "5%", + orient: "horizontal", + nodeWidth: 20, + nodeGap: 8, + draggable: !0, + focusNodeAdjacency: !1, + layoutIterations: 32, + label: { + show: !0, + position: "right", + color: "#000", + fontSize: 12 + }, + itemStyle: { + borderWidth: 1, + borderColor: "#333" + }, + lineStyle: { + color: "#314656", + opacity: .2, + curveness: .5 + }, + emphasis: { + label: { + show: !0 + }, + lineStyle: { + opacity: .6 + } + }, + animationEasing: "linear", + animationDuration: 1e3 + } + }), + fk = ["itemStyle", "opacity"], + pk = ["lineStyle", "opacity"], + gk = Fn({ + shape: { + x1: 0, + y1: 0, + x2: 0, + y2: 0, + cpx1: 0, + cpy1: 0, + cpx2: 0, + cpy2: 0, + extent: 0, + orient: "" + }, + buildPath: function(t, e) { + var i = e.extent; + "vertical" === e.orient ? (t.moveTo(e.x1, e.y1), t.bezierCurveTo(e.cpx1, e.cpy1, e.cpx2, e.cpy2, e.x2, e.y2), t.lineTo(e.x2 + i, e.y2), t.bezierCurveTo(e.cpx2 + i, e.cpy2, e.cpx1 + i, e.cpy1, e.x1 + i, e.y1)) : (t.moveTo(e.x1, e.y1), t.bezierCurveTo(e.cpx1, e.cpy1, e.cpx2, e.cpy2, e.x2, e.y2), t.lineTo(e.x2, e.y2 + i), t.bezierCurveTo(e.cpx2, e.cpy2 + i, e.cpx1, e.cpy1 + i, e.x1, e.y1 + i)), t.closePath() + } + }); + Fs({ + type: "sankey", + _model: null, + _focusAdjacencyDisabled: !1, + render: function(t, e, i) { + var n = this, + o = t.getGraph(), + a = this.group, + r = t.layoutInfo, + s = r.width, + l = r.height, + u = t.getData(), + h = t.getData("edge"), + c = t.get("orient"); + this._model = t, a.removeAll(), a.attr("position", [r.x, r.y]), o.eachEdge(function(e) { + var i = new gk; + i.dataIndex = e.dataIndex, i.seriesIndex = t.seriesIndex, i.dataType = "edge"; + var n, o, r, u, d, f, p, g, m = e.getModel("lineStyle"), + v = m.get("curveness"), + y = e.node1.getLayout(), + x = e.node1.getModel(), + _ = x.get("localX"), + w = x.get("localY"), + b = e.node2.getLayout(), + S = e.node2.getModel(), + M = S.get("localX"), + I = S.get("localY"), + T = e.getLayout(); + switch (i.shape.extent = Math.max(1, T.dy), i.shape.orient = c, "vertical" === c ? (n = (null != _ ? _ * s : y.x) + T.sy, o = (null != w ? w * l : y.y) + y.dy, r = (null != M ? M * s : b.x) + T.ty, d = n, f = o * (1 - v) + (u = null != I ? I * l : b.y) * v, p = r, g = o * v + u * (1 - v)) : (n = (null != _ ? _ * s : y.x) + y.dx, o = (null != w ? w * l : y.y) + T.sy, d = n * (1 - v) + (r = null != M ? M * s : b.x) * v, f = o, p = n * v + r * (1 - v), g = u = (null != I ? I * l : b.y) + T.ty), i.setShape({ + x1: n, + y1: o, + x2: r, + y2: u, + cpx1: d, + cpy1: f, + cpx2: p, + cpy2: g + }), i.setStyle(m.getItemStyle()), i.style.fill) { + case "source": + i.style.fill = e.node1.getVisual("color"); + break; + case "target": + i.style.fill = e.node2.getVisual("color") + } + uo(i, e.getModel("emphasis.lineStyle").getItemStyle()), a.add(i), h.setItemGraphicEl(e.dataIndex, i) + }), o.eachNode(function(e) { + var i = e.getLayout(), + n = e.getModel(), + o = n.get("localX"), + r = n.get("localY"), + h = n.getModel("label"), + c = n.getModel("emphasis.label"), + d = new aM({ + shape: { + x: null != o ? o * s : i.x, + y: null != r ? r * l : i.y, + width: i.dx, + height: i.dy + }, + style: n.getModel("itemStyle").getItemStyle() + }), + f = e.getModel("emphasis.itemStyle").getItemStyle(); + co(d.style, f, h, c, { + labelFetcher: t, + labelDataIndex: e.dataIndex, + defaultText: e.id, + isRectText: !0 + }), d.setStyle("fill", e.getVisual("color")), uo(d, f), a.add(d), u.setItemGraphicEl(e.dataIndex, d), d.dataType = "node" + }), u.eachItemGraphicEl(function(e, o) { + var a = u.getItemModel(o); + a.get("draggable") && (e.drift = function(e, a) { + n._focusAdjacencyDisabled = !0, this.shape.x += e, this.shape.y += a, this.dirty(), i.dispatchAction({ + type: "dragNode", + seriesId: t.id, + dataIndex: u.getRawIndex(o), + localX: this.shape.x / s, + localY: this.shape.y / l + }) + }, e.ondragend = function() { + n._focusAdjacencyDisabled = !1 + }, e.draggable = !0, e.cursor = "move"), a.get("focusNodeAdjacency") && (e.off("mouseover").on("mouseover", function() { + n._focusAdjacencyDisabled || i.dispatchAction({ + type: "focusNodeAdjacency", + seriesId: t.id, + dataIndex: e.dataIndex + }) + }), e.off("mouseout").on("mouseout", function() { + n._focusAdjacencyDisabled || i.dispatchAction({ + type: "unfocusNodeAdjacency", + seriesId: t.id + }) + })) + }), h.eachItemGraphicEl(function(e, o) { + h.getItemModel(o).get("focusNodeAdjacency") && (e.off("mouseover").on("mouseover", function() { + n._focusAdjacencyDisabled || i.dispatchAction({ + type: "focusNodeAdjacency", + seriesId: t.id, + edgeDataIndex: e.dataIndex + }) + }), e.off("mouseout").on("mouseout", function() { + n._focusAdjacencyDisabled || i.dispatchAction({ + type: "unfocusNodeAdjacency", + seriesId: t.id + }) + })) + }), !this._data && t.get("animation") && a.setClipPath(Cp(a.getBoundingRect(), t, function() { + a.removeClipPath() + })), this._data = t.getData() + }, + dispose: function() {}, + focusNodeAdjacency: function(t, e, i, n) { + var o = this._model.getData(), + a = o.graph, + r = n.dataIndex, + s = o.getItemModel(r), + l = n.edgeDataIndex; + if (null != r || null != l) { + var u = a.getNodeByIndex(r), + h = a.getEdgeByIndex(l); + if (a.eachNode(function(t) { + Ap(t, fk, .1) + }), a.eachEdge(function(t) { + Ap(t, pk, .1) + }), u) { + Dp(u, fk); + var c = s.get("focusNodeAdjacency"); + "outEdges" === c ? d(u.outEdges, function(t) { + t.dataIndex < 0 || (Dp(t, pk), Dp(t.node2, fk)) + }) : "inEdges" === c ? d(u.inEdges, function(t) { + t.dataIndex < 0 || (Dp(t, pk), Dp(t.node1, fk)) + }) : "allEdges" === c && d(u.edges, function(t) { + t.dataIndex < 0 || (Dp(t, pk), Dp(t.node1, fk), Dp(t.node2, fk)) + }) + } + h && (Dp(h, pk), Dp(h.node1, fk), Dp(h.node2, fk)) + } + }, + unfocusNodeAdjacency: function(t, e, i, n) { + var o = this._model.getGraph(); + o.eachNode(function(t) { + Ap(t, fk) + }), o.eachEdge(function(t) { + Ap(t, pk) + }) + } + }), Ps({ + type: "dragNode", + event: "dragNode", + update: "update" + }, function(t, e) { + e.eachComponent({ + mainType: "series", + subType: "sankey", + query: t + }, function(e) { + e.setNodePosition(t.dataIndex, [t.localX, t.localY]) + }) + }); + Os(function(t, e, i) { + t.eachSeriesByType("sankey", function(t) { + var i = t.get("nodeWidth"), + n = t.get("nodeGap"), + o = kp(t, e); + t.layoutInfo = o; + var a = o.width, + r = o.height, + s = t.getGraph(), + l = s.nodes, + u = s.edges; + Np(l), Pp(l, u, i, n, a, r, 0 !== g(l, function(t) { + return 0 === t.getLayout().value + }).length ? 0 : t.get("layoutIterations"), t.get("orient")) + }) + }), Es(function(t, e) { + t.eachSeriesByType("sankey", function(t) { + var e = t.getGraph().nodes; + if (e.length) { + var i = 1 / 0, + n = -1 / 0; + d(e, function(t) { + var e = t.getLayout().value; + e < i && (i = e), e > n && (n = e) + }), d(e, function(e) { + var o = new jC({ + type: "color", + mappingMethod: "linear", + dataExtent: [i, n], + visual: t.get("color") + }).mapValueToVisual(e.getLayout().value); + e.setVisual("color", o); + var a = e.getModel().get("itemStyle.color"); + null != a && e.setVisual("color", a) + }) + } + }) + }); + var mk = { + _baseAxisDim: null, + getInitialData: function(t, e) { + var i, n, o = e.getComponent("xAxis", this.get("xAxisIndex")), + a = e.getComponent("yAxis", this.get("yAxisIndex")), + r = o.get("type"), + s = a.get("type"); + "category" === r ? (t.layout = "horizontal", i = o.getOrdinalMeta(), n = !0) : "category" === s ? (t.layout = "vertical", i = a.getOrdinalMeta(), n = !0) : t.layout = t.layout || "horizontal"; + var l = ["x", "y"], + u = "horizontal" === t.layout ? 0 : 1, + h = this._baseAxisDim = l[u], + c = l[1 - u], + f = [o, a], + p = f[u].get("type"), + g = f[1 - u].get("type"), + m = t.data; + if (m && n) { + var v = []; + d(m, function(t, e) { + var i; + t.value && y(t.value) ? (i = t.value.slice(), t.value.unshift(e)) : y(t) ? (i = t.slice(), t.unshift(e)) : i = t, v.push(i) + }), t.data = v + } + var x = this.defaultValueDimensions; + return WD(this, { + coordDimensions: [{ + name: h, + type: Xs(p), + ordinalMeta: i, + otherDims: { + tooltip: !1, + itemName: 0 + }, + dimsDef: ["base"] + }, { + name: c, + type: Xs(g), + dimsDef: x.slice() + }], + dimensionsCount: x.length + 1 + }) + }, + getBaseAxis: function() { + var t = this._baseAxisDim; + return this.ecModel.getComponent(t + "Axis", this.get(t + "AxisIndex")).axis + } + }; + h(OI.extend({ + type: "series.boxplot", + dependencies: ["xAxis", "yAxis", "grid"], + defaultValueDimensions: [{ + name: "min", + defaultTooltip: !0 + }, { + name: "Q1", + defaultTooltip: !0 + }, { + name: "median", + defaultTooltip: !0 + }, { + name: "Q3", + defaultTooltip: !0 + }, { + name: "max", + defaultTooltip: !0 + }], + dimensions: null, + defaultOption: { + zlevel: 0, + z: 2, + coordinateSystem: "cartesian2d", + legendHoverLink: !0, + hoverAnimation: !0, + layout: null, + boxWidth: [7, 50], + itemStyle: { + color: "#fff", + borderWidth: 1 + }, + emphasis: { + itemStyle: { + borderWidth: 2, + shadowBlur: 5, + shadowOffsetX: 2, + shadowOffsetY: 2, + shadowColor: "rgba(0,0,0,0.4)" + } + }, + animationEasing: "elasticOut", + animationDuration: 800 + } + }), mk, !0); + var vk = ["itemStyle"], + yk = ["emphasis", "itemStyle"], + xk = (Mr.extend({ + type: "boxplot", + render: function(t, e, i) { + var n = t.getData(), + o = this.group, + a = this._data; + this._data || o.removeAll(); + var r = "horizontal" === t.get("layout") ? 1 : 0; + n.diff(a).add(function(t) { + if (n.hasValue(t)) { + var e = qp(n.getItemLayout(t), n, t, r, !0); + n.setItemGraphicEl(t, e), o.add(e) + } + }).update(function(t, e) { + var i = a.getItemGraphicEl(e); + if (n.hasValue(t)) { + var s = n.getItemLayout(t); + i ? Kp(s, i, n, t) : i = qp(s, n, t, r), o.add(i), n.setItemGraphicEl(t, i) + } else o.remove(i) + }).remove(function(t) { + var e = a.getItemGraphicEl(t); + e && o.remove(e) + }).execute(), this._data = n + }, + remove: function(t) { + var e = this.group, + i = this._data; + this._data = null, i && i.eachItemGraphicEl(function(t) { + t && e.remove(t) + }) + }, + dispose: B + }), kn.extend({ + type: "boxplotBoxPath", + shape: {}, + buildPath: function(t, e) { + var i = e.points, + n = 0; + for (t.moveTo(i[n][0], i[n][1]), n++; n < 4; n++) t.lineTo(i[n][0], i[n][1]); + for (t.closePath(); n < i.length; n++) t.moveTo(i[n][0], i[n][1]), n++, t.lineTo(i[n][0], i[n][1]) + } + })), + _k = ["itemStyle", "borderColor"], + wk = d; + Es(function(t, e) { + var i = t.get("color"); + t.eachRawSeriesByType("boxplot", function(e) { + var n = i[e.seriesIndex % i.length], + o = e.getData(); + o.setVisual({ + legendSymbol: "roundRect", + color: e.get(_k) || n + }), t.isSeriesFiltered(e) || o.each(function(t) { + var e = o.getItemModel(t); + o.setItemVisual(t, { + color: e.get(_k, !0) + }) + }) + }) + }), Os(function(t) { + var e = Jp(t); + wk(e, function(t) { + var e = t.seriesModels; + e.length && (Qp(t), wk(e, function(e, i) { + tg(e, t.boxOffsetList[i], t.boxWidthList[i]) + })) + }) + }), h(OI.extend({ + type: "series.candlestick", + dependencies: ["xAxis", "yAxis", "grid"], + defaultValueDimensions: [{ + name: "open", + defaultTooltip: !0 + }, { + name: "close", + defaultTooltip: !0 + }, { + name: "lowest", + defaultTooltip: !0 + }, { + name: "highest", + defaultTooltip: !0 + }], + dimensions: null, + defaultOption: { + zlevel: 0, + z: 2, + coordinateSystem: "cartesian2d", + legendHoverLink: !0, + hoverAnimation: !0, + layout: null, + itemStyle: { + color: "#c23531", + color0: "#314656", + borderWidth: 1, + borderColor: "#c23531", + borderColor0: "#314656" + }, + emphasis: { + itemStyle: { + borderWidth: 2 + } + }, + barMaxWidth: null, + barMinWidth: null, + barWidth: null, + large: !0, + largeThreshold: 600, + progressive: 3e3, + progressiveThreshold: 1e4, + progressiveChunkMode: "mod", + animationUpdate: !1, + animationEasing: "linear", + animationDuration: 300 + }, + getShadowDim: function() { + return "open" + }, + brushSelector: function(t, e, i) { + var n = e.getItemLayout(t); + return n && i.rect(n.brushRect) + } + }), mk, !0); + var bk = ["itemStyle"], + Sk = ["emphasis", "itemStyle"], + Mk = ["color", "color0", "borderColor", "borderColor0"], + Ik = (Mr.extend({ + type: "candlestick", + render: function(t, e, i) { + this._updateDrawMode(t), this._isLargeDraw ? this._renderLarge(t) : this._renderNormal(t) + }, + incrementalPrepareRender: function(t, e, i) { + this._clear(), this._updateDrawMode(t) + }, + incrementalRender: function(t, e, i, n) { + this._isLargeDraw ? this._incrementalRenderLarge(t, e) : this._incrementalRenderNormal(t, e) + }, + _updateDrawMode: function(t) { + var e = t.pipelineContext.large; + (null == this._isLargeDraw || e ^ this._isLargeDraw) && (this._isLargeDraw = e, this._clear()) + }, + _renderNormal: function(t) { + var e = t.getData(), + i = this._data, + n = this.group, + o = e.getLayout("isSimpleBox"); + this._data || n.removeAll(), e.diff(i).add(function(i) { + if (e.hasValue(i)) { + var a, r = e.getItemLayout(i); + So(a = eg(r, 0, !0), { + shape: { + points: r.ends + } + }, t, i), ig(a, e, i, o), n.add(a), e.setItemGraphicEl(i, a) + } + }).update(function(a, r) { + var s = i.getItemGraphicEl(r); + if (e.hasValue(a)) { + var l = e.getItemLayout(a); + s ? bo(s, { + shape: { + points: l.ends + } + }, t, a) : s = eg(l), ig(s, e, a, o), n.add(s), e.setItemGraphicEl(a, s) + } else n.remove(s) + }).remove(function(t) { + var e = i.getItemGraphicEl(t); + e && n.remove(e) + }).execute(), this._data = e + }, + _renderLarge: function(t) { + this._clear(), og(t, this.group) + }, + _incrementalRenderNormal: function(t, e) { + for (var i, n = e.getData(), o = n.getLayout("isSimpleBox"); null != (i = t.next());) { + var a; + ig(a = eg(n.getItemLayout(i)), n, i, o), a.incremental = !0, this.group.add(a) + } + }, + _incrementalRenderLarge: function(t, e) { + og(e, this.group, !0) + }, + remove: function(t) { + this._clear() + }, + _clear: function() { + this.group.removeAll(), this._data = null + }, + dispose: B + }), kn.extend({ + type: "normalCandlestickBox", + shape: {}, + buildPath: function(t, e) { + var i = e.points; + this.__simpleBox ? (t.moveTo(i[4][0], i[4][1]), t.lineTo(i[6][0], i[6][1])) : (t.moveTo(i[0][0], i[0][1]), t.lineTo(i[1][0], i[1][1]), t.lineTo(i[2][0], i[2][1]), t.lineTo(i[3][0], i[3][1]), t.closePath(), t.moveTo(i[4][0], i[4][1]), t.lineTo(i[5][0], i[5][1]), t.moveTo(i[6][0], i[6][1]), t.lineTo(i[7][0], i[7][1])) + } + })), + Tk = kn.extend({ + type: "largeCandlestickBox", + shape: {}, + buildPath: function(t, e) { + for (var i = e.points, n = 0; n < i.length;) + if (this.__sign === i[n++]) { + var o = i[n++]; + t.moveTo(o, i[n++]), t.lineTo(o, i[n++]) + } else n += 3 + } + }), + Ak = ["itemStyle", "borderColor"], + Dk = ["itemStyle", "borderColor0"], + Ck = ["itemStyle", "color"], + Lk = ["itemStyle", "color0"], + kk = { + seriesType: "candlestick", + plan: zI(), + performRawSeries: !0, + reset: function(t, e) { + function i(t, e) { + return e.get(t > 0 ? Ck : Lk) + } + + function n(t, e) { + return e.get(t > 0 ? Ak : Dk) + } + var o = t.getData(), + a = t.pipelineContext.large; + if (o.setVisual({ + legendSymbol: "roundRect", + colorP: i(1, t), + colorN: i(-1, t), + borderColorP: n(1, t), + borderColorN: n(-1, t) + }), !e.isSeriesFiltered(t)) return !a && { + progress: function(t, e) { + for (var o; null != (o = t.next());) { + var a = e.getItemModel(o), + r = e.getItemLayout(o).sign; + e.setItemVisual(o, { + color: i(r, a), + borderColor: n(r, a) + }) + } + } + } + } + }, + Pk = "undefined" != typeof Float32Array ? Float32Array : Array, + Nk = { + seriesType: "candlestick", + plan: zI(), + reset: function(t) { + var e = t.coordinateSystem, + i = t.getData(), + n = sg(t, i), + o = 0, + a = 1, + r = ["x", "y"], + s = i.mapDimension(r[o]), + l = i.mapDimension(r[a], !0), + u = l[0], + h = l[1], + c = l[2], + d = l[3]; + if (i.setLayout({ + candleWidth: n, + isSimpleBox: n <= 1.3 + }), !(null == s || l.length < 4)) return { + progress: t.pipelineContext.large ? function(t, i) { + for (var n, r, l = new Pk(5 * t.count), f = 0, p = [], g = []; null != (r = t.next());) { + var m = i.get(s, r), + v = i.get(u, r), + y = i.get(h, r), + x = i.get(c, r), + _ = i.get(d, r); + isNaN(m) || isNaN(x) || isNaN(_) ? (l[f++] = NaN, f += 4) : (l[f++] = rg(i, r, v, y, h), p[o] = m, p[a] = x, n = e.dataToPoint(p, null, g), l[f++] = n ? n[0] : NaN, l[f++] = n ? n[1] : NaN, p[a] = _, n = e.dataToPoint(p, null, g), l[f++] = n ? n[1] : NaN) + } + i.setLayout("largePoints", l) + } : function(t, i) { + function r(t, i) { + var n = []; + return n[o] = i, n[a] = t, isNaN(i) || isNaN(t) ? [NaN, NaN] : e.dataToPoint(n) + } + + function l(t, e, i) { + var a = e.slice(), + r = e.slice(); + a[o] = Yn(a[o] + n / 2, 1, !1), r[o] = Yn(r[o] - n / 2, 1, !0), i ? t.push(a, r) : t.push(r, a) + } + + function f(t) { + return t[o] = Yn(t[o], 1), t + } + for (var p; null != (p = t.next());) { + var g = i.get(s, p), + m = i.get(u, p), + v = i.get(h, p), + y = i.get(c, p), + x = i.get(d, p), + _ = Math.min(m, v), + w = Math.max(m, v), + b = r(_, g), + S = r(w, g), + M = r(y, g), + I = r(x, g), + T = []; + l(T, S, 0), l(T, b, 1), T.push(f(I), f(S), f(M), f(b)), i.setItemLayout(p, { + sign: rg(i, p, m, v, h), + initBaseline: m > v ? S[a] : b[a], + ends: T, + brushRect: function(t, e, i) { + var s = r(t, i), + l = r(e, i); + return s[o] -= n / 2, l[o] -= n / 2, { + x: s[0], + y: s[1], + width: a ? n : l[0] - s[0], + height: a ? l[1] - s[1] : n + } + }(y, x, g) + }) + } + } + } + } + }; + Ls(function(t) { + t && y(t.series) && d(t.series, function(t) { + w(t) && "k" === t.type && (t.type = "candlestick") + }) + }), Es(kk), Os(Nk), OI.extend({ + type: "series.effectScatter", + dependencies: ["grid", "polar"], + getInitialData: function(t, e) { + return dl(this.getSource(), this) + }, + brushSelector: "point", + defaultOption: { + coordinateSystem: "cartesian2d", + zlevel: 0, + z: 2, + legendHoverLink: !0, + effectType: "ripple", + progressive: 0, + showEffectOn: "render", + rippleEffect: { + period: 4, + scale: 2.5, + brushType: "fill" + }, + symbolSize: 10 + } + }); + var Ok = hg.prototype; + Ok.stopEffectAnimation = function() { + this.childAt(1).removeAll() + }, Ok.startEffectAnimation = function(t) { + for (var e = t.symbolType, i = t.color, n = this.childAt(1), o = 0; o < 3; o++) { + var a = Xl(e, -1, -1, 2, 2, i); + a.attr({ + style: { + strokeNoScale: !0 + }, + z2: 99, + silent: !0, + scale: [.5, .5] + }); + var r = -o / 3 * t.period + t.effectOffset; + a.animate("", !0).when(t.period, { + scale: [t.rippleScale / 2, t.rippleScale / 2] + }).delay(r).start(), a.animateStyle(!0).when(t.period, { + opacity: 0 + }).delay(r).start(), n.add(a) + } + ug(n, t) + }, Ok.updateEffectAnimation = function(t) { + for (var e = this._effectCfg, i = this.childAt(1), n = ["symbolType", "period", "rippleScale"], o = 0; o < n.length; o++) { + var a = n[o]; + if (e[a] !== t[a]) return this.stopEffectAnimation(), void this.startEffectAnimation(t) + } + ug(i, t) + }, Ok.highlight = function() { + this.trigger("emphasis") + }, Ok.downplay = function() { + this.trigger("normal") + }, Ok.updateData = function(t, e) { + var i = t.hostModel; + this.childAt(0).updateData(t, e); + var n = this.childAt(1), + o = t.getItemModel(e), + a = t.getItemVisual(e, "symbol"), + r = lg(t.getItemVisual(e, "symbolSize")), + s = t.getItemVisual(e, "color"); + n.attr("scale", r), n.traverse(function(t) { + t.attr({ + fill: s + }) + }); + var l = o.getShallow("symbolOffset"); + if (l) { + var u = n.position; + u[0] = Ro(l[0], r[0]), u[1] = Ro(l[1], r[1]) + } + n.rotation = (o.getShallow("symbolRotate") || 0) * Math.PI / 180 || 0; + var h = {}; + if (h.showEffectOn = i.get("showEffectOn"), h.rippleScale = o.get("rippleEffect.scale"), h.brushType = o.get("rippleEffect.brushType"), h.period = 1e3 * o.get("rippleEffect.period"), h.effectOffset = e / t.count(), h.z = o.getShallow("z") || 0, h.zlevel = o.getShallow("zlevel") || 0, h.symbolType = a, h.color = s, this.off("mouseover").off("mouseout").off("emphasis").off("normal"), "render" === h.showEffectOn) this._effectCfg ? this.updateEffectAnimation(h) : this.startEffectAnimation(h), this._effectCfg = h; + else { + this._effectCfg = null, this.stopEffectAnimation(); + var c = this.childAt(0), + d = function() { + c.highlight(), "render" !== h.showEffectOn && this.startEffectAnimation(h) + }, + f = function() { + c.downplay(), "render" !== h.showEffectOn && this.stopEffectAnimation() + }; + this.on("mouseover", d, this).on("mouseout", f, this).on("emphasis", d, this).on("normal", f, this) + } + this._effectCfg = h + }, Ok.fadeOut = function(t) { + this.off("mouseover").off("mouseout").off("emphasis").off("normal"), t && t() + }, u(hg, Zw), Fs({ + type: "effectScatter", + init: function() { + this._symbolDraw = new Su(hg) + }, + render: function(t, e, i) { + var n = t.getData(), + o = this._symbolDraw; + o.updateData(n), this.group.add(o.group) + }, + updateTransform: function(t, e, i) { + var n = t.getData(); + this.group.dirty(); + var o = cD().reset(t); + o.progress && o.progress({ + start: 0, + end: n.count() + }, n), this._symbolDraw.updateLayout(n) + }, + _updateGroupTransform: function(t) { + var e = t.coordinateSystem; + e && e.getRoamTransform && (this.group.transform = Mt(e.getRoamTransform()), this.group.decomposeTransform()) + }, + remove: function(t, e) { + this._symbolDraw && this._symbolDraw.remove(e) + }, + dispose: function() {} + }), Es(hD("effectScatter", "circle")), Os(cD("effectScatter")); + var Ek = "undefined" == typeof Uint32Array ? Array : Uint32Array, + Rk = "undefined" == typeof Float64Array ? Array : Float64Array, + zk = OI.extend({ + type: "series.lines", + dependencies: ["grid", "polar"], + visualColorAccessPath: "lineStyle.color", + init: function(t) { + t.data = t.data || [], cg(t); + var e = this._processFlatCoordsArray(t.data); + this._flatCoords = e.flatCoords, this._flatCoordsOffset = e.flatCoordsOffset, e.flatCoords && (t.data = new Float32Array(e.count)), zk.superApply(this, "init", arguments) + }, + mergeOption: function(t) { + if (t.data = t.data || [], cg(t), t.data) { + var e = this._processFlatCoordsArray(t.data); + this._flatCoords = e.flatCoords, this._flatCoordsOffset = e.flatCoordsOffset, e.flatCoords && (t.data = new Float32Array(e.count)) + } + zk.superApply(this, "mergeOption", arguments) + }, + appendData: function(t) { + var e = this._processFlatCoordsArray(t.data); + e.flatCoords && (this._flatCoords ? (this._flatCoords = z(this._flatCoords, e.flatCoords), this._flatCoordsOffset = z(this._flatCoordsOffset, e.flatCoordsOffset)) : (this._flatCoords = e.flatCoords, this._flatCoordsOffset = e.flatCoordsOffset), t.data = new Float32Array(e.count)), this.getRawData().appendData(t.data) + }, + _getCoordsFromItemModel: function(t) { + var e = this.getData().getItemModel(t); + return e.option instanceof Array ? e.option : e.getShallow("coords") + }, + getLineCoordsCount: function(t) { + return this._flatCoordsOffset ? this._flatCoordsOffset[2 * t + 1] : this._getCoordsFromItemModel(t).length + }, + getLineCoords: function(t, e) { + if (this._flatCoordsOffset) { + for (var i = this._flatCoordsOffset[2 * t], n = this._flatCoordsOffset[2 * t + 1], o = 0; o < n; o++) e[o] = e[o] || [], e[o][0] = this._flatCoords[i + 2 * o], e[o][1] = this._flatCoords[i + 2 * o + 1]; + return n + } + for (var a = this._getCoordsFromItemModel(t), o = 0; o < a.length; o++) e[o] = e[o] || [], e[o][0] = a[o][0], e[o][1] = a[o][1]; + return a.length + }, + _processFlatCoordsArray: function(t) { + var e = 0; + if (this._flatCoords && (e = this._flatCoords.length), "number" == typeof t[0]) { + for (var i = t.length, n = new Ek(i), o = new Rk(i), a = 0, r = 0, s = 0, l = 0; l < i;) { + s++; + var u = t[l++]; + n[r++] = a + e, n[r++] = u; + for (var h = 0; h < u; h++) { + var c = t[l++], + d = t[l++]; + o[a++] = c, o[a++] = d + } + } + return { + flatCoordsOffset: new Uint32Array(n.buffer, 0, r), + flatCoords: o, + count: s + } + } + return { + flatCoordsOffset: null, + flatCoords: null, + count: t.length + } + }, + getInitialData: function(t, e) { + var i = new eA(["value"], this); + return i.hasItemOption = !1, i.initData(t.data, [], function(t, e, n, o) { + if (t instanceof Array) return NaN; + i.hasItemOption = !0; + var a = t.value; + return null != a ? a instanceof Array ? a[o] : a : void 0 + }), i + }, + formatTooltip: function(t) { + var e = this.getData().getItemModel(t), + i = e.get("name"); + if (i) return i; + var n = e.get("fromName"), + o = e.get("toName"), + a = []; + return null != n && a.push(n), null != o && a.push(o), Qo(a.join(" > ")) + }, + preventIncremental: function() { + return !!this.get("effect.show") + }, + getProgressive: function() { + var t = this.option.progressive; + return null == t ? this.option.large ? 1e4 : this.get("progressive") : t + }, + getProgressiveThreshold: function() { + var t = this.option.progressiveThreshold; + return null == t ? this.option.large ? 2e4 : this.get("progressiveThreshold") : t + }, + defaultOption: { + coordinateSystem: "geo", + zlevel: 0, + z: 2, + legendHoverLink: !0, + hoverAnimation: !0, + xAxisIndex: 0, + yAxisIndex: 0, + symbol: ["none", "none"], + symbolSize: [10, 10], + geoIndex: 0, + effect: { + show: !1, + period: 4, + constantSpeed: 0, + symbol: "circle", + symbolSize: 3, + loop: !0, + trailLength: .2 + }, + large: !1, + largeThreshold: 2e3, + polyline: !1, + label: { + show: !1, + position: "end" + }, + lineStyle: { + opacity: .5 + } + } + }), + Bk = dg.prototype; + Bk.createLine = function(t, e, i) { + return new $d(t, e, i) + }, Bk._updateEffectSymbol = function(t, e) { + var i = t.getItemModel(e).getModel("effect"), + n = i.get("symbolSize"), + o = i.get("symbol"); + y(n) || (n = [n, n]); + var a = i.get("color") || t.getItemVisual(e, "color"), + r = this.childAt(1); + this._symbolType !== o && (this.remove(r), (r = Xl(o, -.5, -.5, 1, 1, a)).z2 = 100, r.culling = !0, this.add(r)), r && (r.setStyle("shadowColor", a), r.setStyle(i.getItemStyle(["color"])), r.attr("scale", n), r.setColor(a), r.attr("scale", n), this._symbolType = o, this._updateEffectAnimation(t, i, e)) + }, Bk._updateEffectAnimation = function(t, e, i) { + var n = this.childAt(1); + if (n) { + var o = this, + a = t.getItemLayout(i), + r = 1e3 * e.get("period"), + s = e.get("loop"), + l = e.get("constantSpeed"), + u = T(e.get("delay"), function(e) { + return e / t.count() * r / 3 + }), + h = "function" == typeof u; + if (n.ignore = !0, this.updateAnimationPoints(n, a), l > 0 && (r = this.getLineLength(n) / l * 1e3), r !== this._period || s !== this._loop) { + n.stopAnimation(); + var c = u; + h && (c = u(i)), n.__t > 0 && (c = -r * n.__t), n.__t = 0; + var d = n.animate("", s).when(r, { + __t: 1 + }).delay(c).during(function() { + o.updateSymbolPosition(n) + }); + s || d.done(function() { + o.remove(n) + }), d.start() + } + this._period = r, this._loop = s + } + }, Bk.getLineLength = function(t) { + return ew(t.__p1, t.__cp1) + ew(t.__cp1, t.__p2) + }, Bk.updateAnimationPoints = function(t, e) { + t.__p1 = e[0], t.__p2 = e[1], t.__cp1 = e[2] || [(e[0][0] + e[1][0]) / 2, (e[0][1] + e[1][1]) / 2] + }, Bk.updateData = function(t, e, i) { + this.childAt(0).updateData(t, e, i), this._updateEffectSymbol(t, e) + }, Bk.updateSymbolPosition = function(t) { + var e = t.__p1, + i = t.__p2, + n = t.__cp1, + o = t.__t, + a = t.position, + r = rn, + s = sn; + a[0] = r(e[0], n[0], i[0], o), a[1] = r(e[1], n[1], i[1], o); + var l = s(e[0], n[0], i[0], o), + u = s(e[1], n[1], i[1], o); + t.rotation = -Math.atan2(u, l) - Math.PI / 2, t.ignore = !1 + }, Bk.updateLayout = function(t, e) { + this.childAt(0).updateLayout(t, e); + var i = t.getItemModel(e).getModel("effect"); + this._updateEffectAnimation(t, i, e) + }, u(dg, Zw); + var Vk = fg.prototype; + Vk._createPolyline = function(t, e, i) { + var n = t.getItemLayout(e), + o = new oM({ + shape: { + points: n + } + }); + this.add(o), this._updateCommonStl(t, e, i) + }, Vk.updateData = function(t, e, i) { + var n = t.hostModel; + bo(this.childAt(0), { + shape: { + points: t.getItemLayout(e) + } + }, n, e), this._updateCommonStl(t, e, i) + }, Vk._updateCommonStl = function(t, e, i) { + var n = this.childAt(0), + o = t.getItemModel(e), + a = t.getItemVisual(e, "color"), + s = i && i.lineStyle, + l = i && i.hoverLineStyle; + i && !t.hasItemOption || (s = o.getModel("lineStyle").getLineStyle(), l = o.getModel("emphasis.lineStyle").getLineStyle()), n.useStyle(r({ + strokeNoScale: !0, + fill: "none", + stroke: a + }, s)), n.hoverStyle = l, uo(this) + }, Vk.updateLayout = function(t, e) { + this.childAt(0).setShape("points", t.getItemLayout(e)) + }, u(fg, Zw); + var Gk = pg.prototype; + Gk.createLine = function(t, e, i) { + return new fg(t, e, i) + }, Gk.updateAnimationPoints = function(t, e) { + this._points = e; + for (var i = [0], n = 0, o = 1; o < e.length; o++) { + var a = e[o - 1], + r = e[o]; + n += ew(a, r), i.push(n) + } + if (0 !== n) { + for (o = 0; o < i.length; o++) i[o] /= n; + this._offsets = i, this._length = n + } + }, Gk.getLineLength = function(t) { + return this._length + }, Gk.updateSymbolPosition = function(t) { + var e = t.__t, + i = this._points, + n = this._offsets, + o = i.length; + if (n) { + var a = this._lastFrame; + if (e < this._lastFramePercent) { + for (r = Math.min(a + 1, o - 1); r >= 0 && !(n[r] <= e); r--); + r = Math.min(r, o - 2) + } else { + for (var r = a; r < o && !(n[r] > e); r++); + r = Math.min(r - 1, o - 2) + } + J(t.position, i[r], i[r + 1], (e - n[r]) / (n[r + 1] - n[r])); + var s = i[r + 1][0] - i[r][0], + l = i[r + 1][1] - i[r][1]; + t.rotation = -Math.atan2(l, s) - Math.PI / 2, this._lastFrame = r, this._lastFramePercent = e, t.ignore = !1 + } + }, u(pg, dg); + var Fk = Fn({ + shape: { + polyline: !1, + curveness: 0, + segs: [] + }, + buildPath: function(t, e) { + var i = e.segs, + n = e.curveness; + if (e.polyline) + for (r = 0; r < i.length;) { + var o = i[r++]; + if (o > 0) { + t.moveTo(i[r++], i[r++]); + for (var a = 1; a < o; a++) t.lineTo(i[r++], i[r++]) + } + } else + for (var r = 0; r < i.length;) { + var s = i[r++], + l = i[r++], + u = i[r++], + h = i[r++]; + if (t.moveTo(s, l), n > 0) { + var c = (s + u) / 2 - (l - h) * n, + d = (l + h) / 2 - (u - s) * n; + t.quadraticCurveTo(c, d, u, h) + } else t.lineTo(u, h) + } + }, + findDataIndex: function(t, e) { + var i = this.shape, + n = i.segs, + o = i.curveness; + if (i.polyline) + for (var a = 0, r = 0; r < n.length;) { + var s = n[r++]; + if (s > 0) + for (var l = n[r++], u = n[r++], h = 1; h < s; h++) + if (vn(l, u, c = n[r++], d = n[r++])) return a; + a++ + } else + for (var a = 0, r = 0; r < n.length;) { + var l = n[r++], + u = n[r++], + c = n[r++], + d = n[r++]; + if (o > 0) { + if (xn(l, u, (l + c) / 2 - (u - d) * o, (u + d) / 2 - (c - l) * o, c, d)) return a + } else if (vn(l, u, c, d)) return a; + a++ + } + return -1 + } + }), + Wk = gg.prototype; + Wk.isPersistent = function() { + return !this._incremental + }, Wk.updateData = function(t) { + this.group.removeAll(); + var e = new Fk({ + rectHover: !0, + cursor: "default" + }); + e.setShape({ + segs: t.getLayout("linesPoints") + }), this._setCommon(e, t), this.group.add(e), this._incremental = null + }, Wk.incrementalPrepareUpdate = function(t) { + this.group.removeAll(), this._clearIncremental(), t.count() > 5e5 ? (this._incremental || (this._incremental = new Gn({ + silent: !0 + })), this.group.add(this._incremental)) : this._incremental = null + }, Wk.incrementalUpdate = function(t, e) { + var i = new Fk; + i.setShape({ + segs: e.getLayout("linesPoints") + }), this._setCommon(i, e, !!this._incremental), this._incremental ? this._incremental.addDisplayable(i, !0) : (i.rectHover = !0, i.cursor = "default", i.__startIndex = t.start, this.group.add(i)) + }, Wk.remove = function() { + this._clearIncremental(), this._incremental = null, this.group.removeAll() + }, Wk._setCommon = function(t, e, i) { + var n = e.hostModel; + t.setShape({ + polyline: n.get("polyline"), + curveness: n.get("lineStyle.curveness") + }), t.useStyle(n.getModel("lineStyle").getLineStyle()), t.style.strokeNoScale = !0; + var o = e.getVisual("color"); + o && t.setStyle("stroke", o), t.setStyle("fill"), i || (t.seriesIndex = n.seriesIndex, t.on("mousemove", function(e) { + t.dataIndex = null; + var i = t.findDataIndex(e.offsetX, e.offsetY); + i > 0 && (t.dataIndex = i + t.__startIndex) + })) + }, Wk._clearIncremental = function() { + var t = this._incremental; + t && t.clearDisplaybles() + }; + var Hk = { + seriesType: "lines", + plan: zI(), + reset: function(t) { + var e = t.coordinateSystem, + i = t.get("polyline"), + n = t.pipelineContext.large; + return { + progress: function(o, a) { + var r = []; + if (n) { + var s, l = o.end - o.start; + if (i) { + for (var u = 0, h = o.start; h < o.end; h++) u += t.getLineCoordsCount(h); + s = new Float32Array(l + 2 * u) + } else s = new Float32Array(4 * l); + for (var c = 0, d = [], h = o.start; h < o.end; h++) { + g = t.getLineCoords(h, r), i && (s[c++] = g); + for (var f = 0; f < g; f++) d = e.dataToPoint(r[f], !1, d), s[c++] = d[0], s[c++] = d[1] + } + a.setLayout("linesPoints", s) + } else + for (h = o.start; h < o.end; h++) { + var p = a.getItemModel(h), + g = t.getLineCoords(h, r), + m = []; + if (i) + for (var v = 0; v < g; v++) m.push(e.dataToPoint(r[v])); + else { + m[0] = e.dataToPoint(r[0]), m[1] = e.dataToPoint(r[1]); + var y = p.get("lineStyle.curveness"); + y && (m[2] = [(m[0][0] + m[1][0]) / 2 - (m[0][1] - m[1][1]) * y, (m[0][1] + m[1][1]) / 2 - (m[1][0] - m[0][0]) * y]) + } + a.setItemLayout(h, m) + } + } + } + } + }; + Fs({ + type: "lines", + init: function() {}, + render: function(t, e, i) { + var n = t.getData(), + o = this._updateLineDraw(n, t), + a = t.get("zlevel"), + r = t.get("effect.trailLength"), + s = i.getZr(), + l = "svg" === s.painter.getType(); + l || s.painter.getLayer(a).clear(!0), null == this._lastZlevel || l || s.configLayer(this._lastZlevel, { + motionBlur: !1 + }), this._showEffect(t) && r && (l || s.configLayer(a, { + motionBlur: !0, + lastFrameAlpha: Math.max(Math.min(r / 10 + .9, 1), 0) + })), o.updateData(n), this._lastZlevel = a, this._finished = !0 + }, + incrementalPrepareRender: function(t, e, i) { + var n = t.getData(); + this._updateLineDraw(n, t).incrementalPrepareUpdate(n), this._clearLayer(i), this._finished = !1 + }, + incrementalRender: function(t, e, i) { + this._lineDraw.incrementalUpdate(t, e.getData()), this._finished = t.end === e.getData().count() + }, + updateTransform: function(t, e, i) { + var n = t.getData(), + o = t.pipelineContext; + if (!this._finished || o.large || o.progressiveRender) return { + update: !0 + }; + var a = Hk.reset(t); + a.progress && a.progress({ + start: 0, + end: n.count() + }, n), this._lineDraw.updateLayout(), this._clearLayer(i) + }, + _updateLineDraw: function(t, e) { + var i = this._lineDraw, + n = this._showEffect(e), + o = !!e.get("polyline"), + a = e.pipelineContext.large; + return i && n === this._hasEffet && o === this._isPolyline && a === this._isLargeDraw || (i && i.remove(), i = this._lineDraw = a ? new gg : new Jd(o ? n ? pg : fg : n ? dg : $d), this._hasEffet = n, this._isPolyline = o, this._isLargeDraw = a, this.group.removeAll()), this.group.add(i.group), i + }, + _showEffect: function(t) { + return !!t.get("effect.show") + }, + _clearLayer: function(t) { + var e = t.getZr(); + "svg" === e.painter.getType() || null == this._lastZlevel || e.painter.getLayer(this._lastZlevel).clear(!0) + }, + remove: function(t, e) { + this._lineDraw && this._lineDraw.remove(), this._lineDraw = null, this._clearLayer(e) + }, + dispose: function() {} + }); + var Zk = "lineStyle.opacity".split("."), + Uk = { + seriesType: "lines", + reset: function(t, e, i) { + var n = mg(t.get("symbol")), + o = mg(t.get("symbolSize")), + a = t.getData(); + return a.setVisual("fromSymbol", n && n[0]), a.setVisual("toSymbol", n && n[1]), a.setVisual("fromSymbolSize", o && o[0]), a.setVisual("toSymbolSize", o && o[1]), a.setVisual("opacity", t.get(Zk)), { + dataEach: a.hasItemOption ? function(t, e) { + var i = t.getItemModel(e), + n = mg(i.getShallow("symbol", !0)), + o = mg(i.getShallow("symbolSize", !0)), + a = i.get(Zk); + n[0] && t.setItemVisual(e, "fromSymbol", n[0]), n[1] && t.setItemVisual(e, "toSymbol", n[1]), o[0] && t.setItemVisual(e, "fromSymbolSize", o[0]), o[1] && t.setItemVisual(e, "toSymbolSize", o[1]), t.setItemVisual(e, "opacity", a) + } : null + } + } + }; + Os(Hk), Es(Uk), OI.extend({ + type: "series.heatmap", + getInitialData: function(t, e) { + return dl(this.getSource(), this, { + generateCoord: "value" + }) + }, + preventIncremental: function() { + var t = Ba.get(this.get("coordinateSystem")); + if (t && t.dimensions) return "lng" === t.dimensions[0] && "lat" === t.dimensions[1] + }, + defaultOption: { + coordinateSystem: "cartesian2d", + zlevel: 0, + z: 2, + geoIndex: 0, + blurSize: 30, + pointSize: 20, + maxOpacity: 1, + minOpacity: 0 + } + }); + vg.prototype = { + update: function(t, e, i, n, o, a) { + var r = this._getBrush(), + s = this._getGradient(t, o, "inRange"), + l = this._getGradient(t, o, "outOfRange"), + u = this.pointSize + this.blurSize, + h = this.canvas, + c = h.getContext("2d"), + d = t.length; + h.width = e, h.height = i; + for (var f = 0; f < d; ++f) { + var p = t[f], + g = p[0], + m = p[1], + v = n(p[2]); + c.globalAlpha = v, c.drawImage(r, g - u, m - u) + } + if (!h.width || !h.height) return h; + for (var y = c.getImageData(0, 0, h.width, h.height), x = y.data, _ = 0, w = x.length, b = this.minOpacity, S = this.maxOpacity - b; _ < w;) { + var v = x[_ + 3] / 256, + M = 4 * Math.floor(255 * v); + if (v > 0) { + var I = a(v) ? s : l; + v > 0 && (v = v * S + b), x[_++] = I[M], x[_++] = I[M + 1], x[_++] = I[M + 2], x[_++] = I[M + 3] * v * 256 + } else _ += 4 + } + return c.putImageData(y, 0, 0), h + }, + _getBrush: function() { + var t = this._brushCanvas || (this._brushCanvas = Y_()), + e = this.pointSize + this.blurSize, + i = 2 * e; + t.width = i, t.height = i; + var n = t.getContext("2d"); + return n.clearRect(0, 0, i, i), n.shadowOffsetX = i, n.shadowBlur = this.blurSize, n.shadowColor = "#000", n.beginPath(), n.arc(-e, e, this.pointSize, 0, 2 * Math.PI, !0), n.closePath(), n.fill(), t + }, + _getGradient: function(t, e, i) { + for (var n = this._gradientPixels, o = n[i] || (n[i] = new Uint8ClampedArray(1024)), a = [0, 0, 0, 0], r = 0, s = 0; s < 256; s++) e[i](s / 255, !0, a), o[r++] = a[0], o[r++] = a[1], o[r++] = a[2], o[r++] = a[3]; + return o + } + }, Fs({ + type: "heatmap", + render: function(t, e, i) { + var n; + e.eachComponent("visualMap", function(e) { + e.eachTargetSeries(function(i) { + i === t && (n = e) + }) + }), this.group.removeAll(), this._incrementalDisplayable = null; + var o = t.coordinateSystem; + "cartesian2d" === o.type || "calendar" === o.type ? this._renderOnCartesianAndCalendar(t, i, 0, t.getData().count()) : _g(o) && this._renderOnGeo(o, t, n, i) + }, + incrementalPrepareRender: function(t, e, i) { + this.group.removeAll() + }, + incrementalRender: function(t, e, i, n) { + e.coordinateSystem && this._renderOnCartesianAndCalendar(e, n, t.start, t.end, !0) + }, + _renderOnCartesianAndCalendar: function(t, e, i, n, o) { + var r, s, l = t.coordinateSystem; + if ("cartesian2d" === l.type) { + var u = l.getAxis("x"), + h = l.getAxis("y"); + r = u.getBandWidth(), s = h.getBandWidth() + } + for (var c = this.group, d = t.getData(), f = t.getModel("itemStyle").getItemStyle(["color"]), p = t.getModel("emphasis.itemStyle").getItemStyle(), g = t.getModel("label"), m = t.getModel("emphasis.label"), v = l.type, y = "cartesian2d" === v ? [d.mapDimension("x"), d.mapDimension("y"), d.mapDimension("value")] : [d.mapDimension("time"), d.mapDimension("value")], x = i; x < n; x++) { + var _; + if ("cartesian2d" === v) { + if (isNaN(d.get(y[2], x))) continue; + var w = l.dataToPoint([d.get(y[0], x), d.get(y[1], x)]); + _ = new aM({ + shape: { + x: w[0] - r / 2, + y: w[1] - s / 2, + width: r, + height: s + }, + style: { + fill: d.getItemVisual(x, "color"), + opacity: d.getItemVisual(x, "opacity") + } + }) + } else { + if (isNaN(d.get(y[1], x))) continue; + _ = new aM({ + z2: 1, + shape: l.dataToRect([d.get(y[0], x)]).contentShape, + style: { + fill: d.getItemVisual(x, "color"), + opacity: d.getItemVisual(x, "opacity") + } + }) + } + var b = d.getItemModel(x); + d.hasItemOption && (f = b.getModel("itemStyle").getItemStyle(["color"]), p = b.getModel("emphasis.itemStyle").getItemStyle(), g = b.getModel("label"), m = b.getModel("emphasis.label")); + var S = t.getRawValue(x), + M = "-"; + S && null != S[2] && (M = S[2]), co(f, p, g, m, { + labelFetcher: t, + labelDataIndex: x, + defaultText: M, + isRectText: !0 + }), _.setStyle(f), uo(_, d.hasItemOption ? p : a({}, p)), _.incremental = o, o && (_.useHoverLayer = !0), c.add(_), d.setItemGraphicEl(x, _) + } + }, + _renderOnGeo: function(t, e, i, n) { + var o = i.targetVisuals.inRange, + a = i.targetVisuals.outOfRange, + r = e.getData(), + s = this._hmLayer || this._hmLayer || new vg; + s.blurSize = e.get("blurSize"), s.pointSize = e.get("pointSize"), s.minOpacity = e.get("minOpacity"), s.maxOpacity = e.get("maxOpacity"); + var l = t.getViewRect().clone(), + u = t.getRoamTransform(); + l.applyTransform(u); + var h = Math.max(l.x, 0), + c = Math.max(l.y, 0), + d = Math.min(l.width + l.x, n.getWidth()), + f = Math.min(l.height + l.y, n.getHeight()), + p = d - h, + g = f - c, + m = [r.mapDimension("lng"), r.mapDimension("lat"), r.mapDimension("value")], + v = r.mapArray(m, function(e, i, n) { + var o = t.dataToPoint([e, i]); + return o[0] -= h, o[1] -= c, o.push(n), o + }), + y = i.getExtent(), + x = "visualMap.continuous" === i.type ? xg(y, i.option.range) : yg(y, i.getPieceList(), i.option.selected); + s.update(v, p, g, o.color.getNormalizer(), { + inRange: o.color.getColorMapper(), + outOfRange: a.color.getColorMapper() + }, x); + var _ = new hi({ + style: { + width: p, + height: g, + x: h, + y: c, + image: s.canvas + }, + silent: !0 + }); + this.group.add(_) + }, + dispose: function() {} + }); + var Xk = ED.extend({ + type: "series.pictorialBar", + dependencies: ["grid"], + defaultOption: { + symbol: "circle", + symbolSize: null, + symbolRotate: null, + symbolPosition: null, + symbolOffset: null, + symbolMargin: null, + symbolRepeat: !1, + symbolRepeatDirection: "end", + symbolClip: !1, + symbolBoundingData: null, + symbolPatternSize: 400, + barGap: "-100%", + progressive: 0, + hoverAnimation: !1 + }, + getInitialData: function(t) { + return t.stack = null, Xk.superApply(this, "getInitialData", arguments) + } + }), + jk = ["itemStyle", "borderWidth"], + Yk = [{ + xy: "x", + wh: "width", + index: 0, + posDesc: ["left", "right"] + }, { + xy: "y", + wh: "height", + index: 1, + posDesc: ["top", "bottom"] + }], + qk = new KS; + Fs({ + type: "pictorialBar", + render: function(t, e, i) { + var n = this.group, + o = t.getData(), + a = this._data, + r = t.coordinateSystem, + s = !!r.getBaseAxis().isHorizontal(), + l = r.grid.getRect(), + u = { + ecSize: { + width: i.getWidth(), + height: i.getHeight() + }, + seriesModel: t, + coordSys: r, + coordSysExtent: [ + [l.x, l.x + l.width], + [l.y, l.y + l.height] + ], + isHorizontal: s, + valueDim: Yk[+s], + categoryDim: Yk[1 - s] + }; + return o.diff(a).add(function(t) { + if (o.hasValue(t)) { + var e = Pg(o, t), + i = wg(o, t, e, u), + a = Rg(o, u, i); + o.setItemGraphicEl(t, a), n.add(a), Wg(a, u, i) + } + }).update(function(t, e) { + var i = a.getItemGraphicEl(e); + if (o.hasValue(t)) { + var r = Pg(o, t), + s = wg(o, t, r, u), + l = Vg(o, s); + i && l !== i.__pictorialShapeStr && (n.remove(i), o.setItemGraphicEl(t, null), i = null), i ? zg(i, u, s) : i = Rg(o, u, s, !0), o.setItemGraphicEl(t, i), i.__pictorialSymbolMeta = s, n.add(i), Wg(i, u, s) + } else n.remove(i) + }).remove(function(t) { + var e = a.getItemGraphicEl(t); + e && Bg(a, t, e.__pictorialSymbolMeta.animationModel, e) + }).execute(), this._data = o, this.group + }, + dispose: B, + remove: function(t, e) { + var i = this.group, + n = this._data; + t.get("animation") ? n && n.eachItemGraphicEl(function(e) { + Bg(n, e.dataIndex, t, e) + }) : i.removeAll() + } + }); + Os(v(kl, "pictorialBar")), Es(hD("pictorialBar", "roundRect")); + var Kk = function(t, e, i, n, o) { + HA.call(this, t, e, i), this.type = n || "value", this.position = o || "bottom", this.orient = null + }; + Kk.prototype = { + constructor: Kk, + model: null, + isHorizontal: function() { + var t = this.position; + return "top" === t || "bottom" === t + }, + pointToData: function(t, e) { + return this.coordinateSystem.pointToData(t, e)[0] + }, + toGlobalCoord: null, + toLocalCoord: null + }, u(Kk, HA), Zg.prototype = { + type: "singleAxis", + axisPointerEnabled: !0, + constructor: Zg, + _init: function(t, e, i) { + var n = this.dimension, + o = new Kk(n, Vl(t), [0, 0], t.get("type"), t.get("position")), + a = "category" === o.type; + o.onBand = a && t.get("boundaryGap"), o.inverse = t.get("inverse"), o.orient = t.get("orient"), t.axis = o, o.model = t, o.coordinateSystem = this, this._axis = o + }, + update: function(t, e) { + t.eachSeries(function(t) { + if (t.coordinateSystem === this) { + var e = t.getData(); + d(e.mapDimension(this.dimension, !0), function(t) { + this._axis.scale.unionExtentFromData(e, t) + }, this), Bl(this._axis.scale, this._axis.model) + } + }, this) + }, + resize: function(t, e) { + this._rect = la({ + left: t.get("left"), + top: t.get("top"), + right: t.get("right"), + bottom: t.get("bottom"), + width: t.get("width"), + height: t.get("height") + }, { + width: e.getWidth(), + height: e.getHeight() + }), this._adjustAxis() + }, + getRect: function() { + return this._rect + }, + _adjustAxis: function() { + var t = this._rect, + e = this._axis, + i = e.isHorizontal(), + n = i ? [0, t.width] : [0, t.height], + o = e.reverse ? 1 : 0; + e.setExtent(n[o], n[1 - o]), this._updateAxisTransform(e, i ? t.x : t.y) + }, + _updateAxisTransform: function(t, e) { + var i = t.getExtent(), + n = i[0] + i[1], + o = t.isHorizontal(); + t.toGlobalCoord = o ? function(t) { + return t + e + } : function(t) { + return n - t + e + }, t.toLocalCoord = o ? function(t) { + return t - e + } : function(t) { + return n - t + e + } + }, + getAxis: function() { + return this._axis + }, + getBaseAxis: function() { + return this._axis + }, + getAxes: function() { + return [this._axis] + }, + getTooltipAxes: function() { + return { + baseAxes: [this.getAxis()] + } + }, + containPoint: function(t) { + var e = this.getRect(), + i = this.getAxis(); + return "horizontal" === i.orient ? i.contain(i.toLocalCoord(t[0])) && t[1] >= e.y && t[1] <= e.y + e.height : i.contain(i.toLocalCoord(t[1])) && t[0] >= e.y && t[0] <= e.y + e.height + }, + pointToData: function(t) { + var e = this.getAxis(); + return [e.coordToData(e.toLocalCoord(t["horizontal" === e.orient ? 0 : 1]))] + }, + dataToPoint: function(t) { + var e = this.getAxis(), + i = this.getRect(), + n = [], + o = "horizontal" === e.orient ? 0 : 1; + return t instanceof Array && (t = t[0]), n[o] = e.toGlobalCoord(e.dataToCoord(+t)), n[1 - o] = 0 === o ? i.y + i.height / 2 : i.x + i.width / 2, n + } + }, Ba.register("single", { + create: function(t, e) { + var i = []; + return t.eachComponent("singleAxis", function(n, o) { + var a = new Zg(n, t, e); + a.name = "single_" + o, a.resize(n, e), n.coordinateSystem = a, i.push(a) + }), t.eachSeries(function(e) { + if ("singleAxis" === e.get("coordinateSystem")) { + var i = t.queryComponents({ + mainType: "singleAxis", + index: e.get("singleAxisIndex"), + id: e.get("singleAxisId") + })[0]; + e.coordinateSystem = i && i.coordinateSystem + } + }), i + }, + dimensions: Zg.prototype.dimensions + }); + var $k = ["axisLine", "axisTickLabel", "axisName"], + Jk = LD.extend({ + type: "singleAxis", + axisPointerClass: "SingleAxisPointer", + render: function(t, e, i, n) { + var o = this.group; + o.removeAll(); + var a = Ug(t), + r = new ID(t, a); + d($k, r.add, r), o.add(r.getGroup()), t.get("splitLine.show") && this._splitLine(t), Jk.superCall(this, "render", t, e, i, n) + }, + _splitLine: function(t) { + var e = t.axis; + if (!e.scale.isBlank()) { + var i = t.getModel("splitLine"), + n = i.getModel("lineStyle"), + o = n.get("width"), + a = n.get("color"); + a = a instanceof Array ? a : [a]; + for (var r = t.coordinateSystem.getRect(), s = e.isHorizontal(), l = [], u = 0, h = e.getTicksCoords({ + tickModel: i + }), c = [], d = [], f = 0; f < h.length; ++f) { + var p = e.toGlobalCoord(h[f].coord); + s ? (c[0] = p, c[1] = r.y, d[0] = p, d[1] = r.y + r.height) : (c[0] = r.x, c[1] = p, d[0] = r.x + r.width, d[1] = p); + var g = u++ % a.length; + l[g] = l[g] || [], l[g].push(new rM(Xn({ + shape: { + x1: c[0], + y1: c[1], + x2: d[0], + y2: d[1] + }, + style: { + lineWidth: o + }, + silent: !0 + }))) + } + for (f = 0; f < l.length; ++f) this.group.add(xM(l[f], { + style: { + stroke: a[f % a.length], + lineDash: n.getLineDash(o), + lineWidth: o + }, + silent: !0 + })) + } + } + }), + Qk = YM.extend({ + type: "singleAxis", + layoutMode: "box", + axis: null, + coordinateSystem: null, + getCoordSysModel: function() { + return this + } + }), + tP = { + left: "5%", + top: "5%", + right: "5%", + bottom: "5%", + type: "value", + position: "bottom", + orient: "horizontal", + axisLine: { + show: !0, + lineStyle: { + width: 2, + type: "solid" + } + }, + tooltip: { + show: !0 + }, + axisTick: { + show: !0, + length: 6, + lineStyle: { + width: 2 + } + }, + axisLabel: { + show: !0, + interval: "auto" + }, + splitLine: { + show: !0, + lineStyle: { + type: "dashed", + opacity: .2 + } + } + }; + n(Qk.prototype, CA), xD("single", Qk, function(t, e) { + return e.type || (e.data ? "category" : "value") + }, tP); + var eP = function(t, e) { + var i, n = [], + o = t.seriesIndex; + if (null == o || !(i = e.getSeriesByIndex(o))) return { + point: [] + }; + var a = i.getData(), + r = zi(a, t); + if (null == r || r < 0 || y(r)) return { + point: [] + }; + var s = a.getItemGraphicEl(r), + l = i.coordinateSystem; + if (i.getTooltipPosition) n = i.getTooltipPosition(r) || []; + else if (l && l.dataToPoint) n = l.dataToPoint(a.getValues(f(l.dimensions, function(t) { + return a.mapDimension(t) + }), r, !0)) || []; + else if (s) { + var u = s.getBoundingRect().clone(); + u.applyTransform(s.transform), n = [u.x + u.width / 2, u.y + u.height / 2] + } + return { + point: n, + el: s + } + }, + iP = d, + nP = v, + oP = Bi(), + aP = (Bs({ + type: "axisPointer", + coordSysAxesInfo: null, + defaultOption: { + show: "auto", + triggerOn: null, + zlevel: 0, + z: 50, + type: "line", + snap: !1, + triggerTooltip: !0, + value: null, + status: null, + link: [], + animation: null, + animationDurationUpdate: 200, + lineStyle: { + color: "#aaa", + width: 1, + type: "solid" + }, + shadowStyle: { + color: "rgba(150,150,150,0.3)" + }, + label: { + show: !0, + formatter: null, + precision: "auto", + margin: 3, + color: "#fff", + padding: [5, 7, 5, 7], + backgroundColor: "auto", + borderColor: null, + borderWidth: 0, + shadowBlur: 3, + shadowColor: "#aaa" + }, + handle: { + show: !1, + icon: "M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z", + size: 45, + margin: 50, + color: "#333", + shadowBlur: 3, + shadowColor: "#aaa", + shadowOffsetX: 0, + shadowOffsetY: 2, + throttle: 40 + } + } + }), Bi()), + rP = d, + sP = Vs({ + type: "axisPointer", + render: function(t, e, i) { + var n = e.getComponent("tooltip"), + o = t.get("triggerOn") || n && n.get("triggerOn") || "mousemove|click"; + im("axisPointer", i, function(t, e, i) { + "none" !== o && ("leave" === t || o.indexOf(t) >= 0) && i({ + type: "updateAxisPointer", + currTrigger: t, + x: e && e.offsetX, + y: e && e.offsetY + }) + }) + }, + remove: function(t, e) { + lm(e.getZr(), "axisPointer"), sP.superApply(this._model, "remove", arguments) + }, + dispose: function(t, e) { + lm("axisPointer", e), sP.superApply(this._model, "dispose", arguments) + } + }), + lP = Bi(), + uP = i, + hP = m; + (um.prototype = { + _group: null, + _lastGraphicKey: null, + _handle: null, + _dragging: !1, + _lastValue: null, + _lastStatus: null, + _payloadInfo: null, + animationThreshold: 15, + render: function(t, e, i, n) { + var o = e.get("value"), + a = e.get("status"); + if (this._axisModel = t, this._axisPointerModel = e, this._api = i, n || this._lastValue !== o || this._lastStatus !== a) { + this._lastValue = o, this._lastStatus = a; + var r = this._group, + s = this._handle; + if (!a || "hide" === a) return r && r.hide(), void(s && s.hide()); + r && r.show(), s && s.show(); + var l = {}; + this.makeElOption(l, o, t, e, i); + var u = l.graphicKey; + u !== this._lastGraphicKey && this.clear(i), this._lastGraphicKey = u; + var h = this._moveAnimation = this.determineAnimation(t, e); + if (r) { + var c = v(hm, e, h); + this.updatePointerEl(r, l, c, e), this.updateLabelEl(r, l, c, e) + } else r = this._group = new Zw, this.createPointerEl(r, l, t, e), this.createLabelEl(r, l, t, e), i.getZr().add(r); + pm(r, e, !0), this._renderHandle(o) + } + }, + remove: function(t) { + this.clear(t) + }, + dispose: function(t) { + this.clear(t) + }, + determineAnimation: function(t, e) { + var i = e.get("animation"), + n = t.axis, + o = "category" === n.type, + a = e.get("snap"); + if (!a && !o) return !1; + if ("auto" === i || null == i) { + var r = this.animationThreshold; + if (o && n.getBandWidth() > r) return !0; + if (a) { + var s = xh(t).seriesDataCount, + l = n.getExtent(); + return Math.abs(l[0] - l[1]) / s > r + } + return !1 + } + return !0 === i + }, + makeElOption: function(t, e, i, n, o) {}, + createPointerEl: function(t, e, i, n) { + var o = e.pointer; + if (o) { + var a = lP(t).pointerEl = new bM[o.type](uP(e.pointer)); + t.add(a) + } + }, + createLabelEl: function(t, e, i, n) { + if (e.label) { + var o = lP(t).labelEl = new aM(uP(e.label)); + t.add(o), dm(o, n) + } + }, + updatePointerEl: function(t, e, i) { + var n = lP(t).pointerEl; + n && (n.setStyle(e.pointer.style), i(n, { + shape: e.pointer.shape + })) + }, + updateLabelEl: function(t, e, i, n) { + var o = lP(t).labelEl; + o && (o.setStyle(e.label.style), i(o, { + shape: e.label.shape, + position: e.label.position + }), dm(o, n)) + }, + _renderHandle: function(t) { + if (!this._dragging && this.updateHandleTransform) { + var e = this._axisPointerModel, + i = this._api.getZr(), + n = this._handle, + o = e.getModel("handle"), + a = e.get("status"); + if (!o.get("show") || !a || "hide" === a) return n && i.remove(n), void(this._handle = null); + var r; + this._handle || (r = !0, n = this._handle = Co(o.get("icon"), { + cursor: "move", + draggable: !0, + onmousemove: function(t) { + lw(t.event) + }, + onmousedown: hP(this._onHandleDragMove, this, 0, 0), + drift: hP(this._onHandleDragMove, this), + ondragend: hP(this._onHandleDragEnd, this) + }), i.add(n)), pm(n, e, !1); + var s = ["color", "borderColor", "borderWidth", "opacity", "shadowColor", "shadowBlur", "shadowOffsetX", "shadowOffsetY"]; + n.setStyle(o.getItemStyle(null, s)); + var l = o.get("size"); + y(l) || (l = [l, l]), n.attr("scale", [l[0] / 2, l[1] / 2]), Lr(this, "_doDispatchAxisPointer", o.get("throttle") || 0, "fixRate"), this._moveHandleToValue(t, r) + } + }, + _moveHandleToValue: function(t, e) { + hm(this._axisPointerModel, !e && this._moveAnimation, this._handle, fm(this.getHandleTransform(t, this._axisModel, this._axisPointerModel))) + }, + _onHandleDragMove: function(t, e) { + var i = this._handle; + if (i) { + this._dragging = !0; + var n = this.updateHandleTransform(fm(i), [t, e], this._axisModel, this._axisPointerModel); + this._payloadInfo = n, i.stopAnimation(), i.attr(fm(n)), lP(i).lastProp = null, this._doDispatchAxisPointer() + } + }, + _doDispatchAxisPointer: function() { + if (this._handle) { + var t = this._payloadInfo, + e = this._axisModel; + this._api.dispatchAction({ + type: "updateAxisPointer", + x: t.cursorPoint[0], + y: t.cursorPoint[1], + tooltipOption: t.tooltipOption, + axesInfo: [{ + axisDim: e.axis.dim, + axisIndex: e.componentIndex + }] + }) + } + }, + _onHandleDragEnd: function(t) { + if (this._dragging = !1, this._handle) { + var e = this._axisPointerModel.get("value"); + this._moveHandleToValue(e), this._api.dispatchAction({ + type: "hideTip" + }) + } + }, + getHandleTransform: null, + updateHandleTransform: null, + clear: function(t) { + this._lastValue = null, this._lastStatus = null; + var e = t.getZr(), + i = this._group, + n = this._handle; + e && i && (this._lastGraphicKey = null, i && e.remove(i), n && e.remove(n), this._group = null, this._handle = null, this._payloadInfo = null) + }, + doClear: function() {}, + buildLabel: function(t, e, i) { + return i = i || 0, { + x: t[i], + y: t[1 - i], + width: e[i], + height: e[1 - i] + } + } + }).constructor = um, Xi(um); + var cP = um.extend({ + makeElOption: function(t, e, i, n, o) { + var a = i.axis, + r = a.grid, + s = n.get("type"), + l = Mm(r, a).getOtherAxis(a).getGlobalExtent(), + u = a.toGlobalCoord(a.dataToCoord(e, !0)); + if (s && "none" !== s) { + var h = gm(n), + c = dP[s](a, u, l, h); + c.style = h, t.graphicKey = c.type, t.pointer = c + } + _m(e, t, Ih(r.model, i), i, n, o) + }, + getHandleTransform: function(t, e, i) { + var n = Ih(e.axis.grid.model, e, { + labelInside: !1 + }); + return n.labelMargin = i.get("handle.margin"), { + position: xm(e.axis, t, n), + rotation: n.rotation + (n.labelDirection < 0 ? Math.PI : 0) + } + }, + updateHandleTransform: function(t, e, i, n) { + var o = i.axis, + a = o.grid, + r = o.getGlobalExtent(!0), + s = Mm(a, o).getOtherAxis(o).getGlobalExtent(), + l = "x" === o.dim ? 0 : 1, + u = t.position; + u[l] += e[l], u[l] = Math.min(r[1], u[l]), u[l] = Math.max(r[0], u[l]); + var h = (s[1] + s[0]) / 2, + c = [h, h]; + c[l] = u[l]; + var d = [{ + verticalAlign: "middle" + }, { + align: "center" + }]; + return { + position: u, + rotation: t.rotation, + cursorPoint: c, + tooltipOption: d[l] + } + } + }), + dP = { + line: function(t, e, i, n) { + var o = wm([e, i[0]], [e, i[1]], Im(t)); + return Xn({ + shape: o, + style: n + }), { + type: "Line", + shape: o + } + }, + shadow: function(t, e, i, n) { + var o = Math.max(1, t.getBandWidth()), + a = i[1] - i[0]; + return { + type: "Rect", + shape: bm([e - o / 2, i[0]], [o, a], Im(t)) + } + } + }; + LD.registerAxisPointerClass("CartesianAxisPointer", cP), Ls(function(t) { + if (t) { + (!t.axisPointer || 0 === t.axisPointer.length) && (t.axisPointer = {}); + var e = t.axisPointer.link; + e && !y(e) && (t.axisPointer.link = [e]) + } + }), ks(IT.PROCESSOR.STATISTIC, function(t, e) { + t.getComponent("axisPointer").coordSysAxesInfo = dh(t, e) + }), Ps({ + type: "updateAxisPointer", + event: "updateAxisPointer", + update: ":updateAxisPointer" + }, function(t, e, i) { + var n = t.currTrigger, + o = [t.x, t.y], + a = t, + r = t.dispatchAction || m(i.dispatchAction, i), + s = e.getComponent("axisPointer").coordSysAxesInfo; + if (s) { + em(o) && (o = eP({ + seriesIndex: a.seriesIndex, + dataIndex: a.dataIndex + }, e).point); + var l = em(o), + u = a.axesInfo, + h = s.axesInfo, + c = "leave" === n || em(o), + d = {}, + f = {}, + p = { + list: [], + map: {} + }, + g = { + showPointer: nP(Yg, f), + showTooltip: nP(qg, p) + }; + iP(s.coordSysMap, function(t, e) { + var i = l || t.containPoint(o); + iP(s.coordSysAxesInfo[e], function(t, e) { + var n = t.axis, + a = Qg(u, t); + if (!c && i && (!u || a)) { + var r = a && a.value; + null != r || l || (r = n.pointToData(o)), null != r && Xg(t, r, g, !1, d) + } + }) + }); + var v = {}; + return iP(h, function(t, e) { + var i = t.linkGroup; + i && !f[e] && iP(i.axesInfo, function(e, n) { + var o = f[n]; + if (e !== t && o) { + var a = o.value; + i.mapper && (a = t.axis.scale.parse(i.mapper(a, tm(e), tm(t)))), v[t.key] = a + } + }) + }), iP(v, function(t, e) { + Xg(h[e], t, g, !0, d) + }), Kg(f, h, d), $g(p, o, t, r), Jg(h, 0, i), d + } + }); + var fP = ["x", "y"], + pP = ["width", "height"], + gP = um.extend({ + makeElOption: function(t, e, i, n, o) { + var a = i.axis, + r = a.coordinateSystem, + s = Am(r, 1 - Tm(a)), + l = r.dataToPoint(e)[0], + u = n.get("type"); + if (u && "none" !== u) { + var h = gm(n), + c = mP[u](a, l, s, h); + c.style = h, t.graphicKey = c.type, t.pointer = c + } + _m(e, t, Ug(i), i, n, o) + }, + getHandleTransform: function(t, e, i) { + var n = Ug(e, { + labelInside: !1 + }); + return n.labelMargin = i.get("handle.margin"), { + position: xm(e.axis, t, n), + rotation: n.rotation + (n.labelDirection < 0 ? Math.PI : 0) + } + }, + updateHandleTransform: function(t, e, i, n) { + var o = i.axis, + a = o.coordinateSystem, + r = Tm(o), + s = Am(a, r), + l = t.position; + l[r] += e[r], l[r] = Math.min(s[1], l[r]), l[r] = Math.max(s[0], l[r]); + var u = Am(a, 1 - r), + h = (u[1] + u[0]) / 2, + c = [h, h]; + return c[r] = l[r], { + position: l, + rotation: t.rotation, + cursorPoint: c, + tooltipOption: { + verticalAlign: "middle" + } + } + } + }), + mP = { + line: function(t, e, i, n) { + var o = wm([e, i[0]], [e, i[1]], Tm(t)); + return Xn({ + shape: o, + style: n + }), { + type: "Line", + shape: o + } + }, + shadow: function(t, e, i, n) { + var o = t.getBandWidth(), + a = i[1] - i[0]; + return { + type: "Rect", + shape: bm([e - o / 2, i[0]], [o, a], Tm(t)) + } + } + }; + LD.registerAxisPointerClass("SingleAxisPointer", gP), Vs({ + type: "single" + }); + var vP = OI.extend({ + type: "series.themeRiver", + dependencies: ["singleAxis"], + nameMap: null, + init: function(t) { + vP.superApply(this, "init", arguments), this.legendDataProvider = function() { + return this.getRawData() + } + }, + fixData: function(t) { + for (var e = t.length, i = f(Lp().key(function(t) { + return t[2] + }).entries(t), function(t) { + return { + name: t.key, + dataList: t.values + } + }), n = i.length, o = -1, a = -1, r = 0; r < n; ++r) { + var s = i[r].dataList.length; + s > o && (o = s, a = r) + } + for (var l = 0; l < n; ++l) + if (l !== a) + for (var u = i[l].name, h = 0; h < o; ++h) { + for (var c = i[a].dataList[h][0], d = i[l].dataList.length, p = -1, g = 0; g < d; ++g) + if (i[l].dataList[g][0] === c) { + p = g; + break + } - 1 === p && (t[e] = [], t[e][0] = c, t[e][1] = 0, t[e][2] = u, e++) + } + return t + }, + getInitialData: function(t, e) { + for (var i = e.queryComponents({ + mainType: "singleAxis", + index: this.get("singleAxisIndex"), + id: this.get("singleAxisId") + })[0].get("type"), n = g(t.data, function(t) { + return void 0 !== t[2] + }), o = this.fixData(n || []), a = [], r = this.nameMap = R(), s = 0, l = 0; l < o.length; ++l) a.push(o[l][2]), r.get(o[l][2]) || (r.set(o[l][2], s), s++); + var u = oA(o, { + coordDimensions: ["single"], + dimensionsDefine: [{ + name: "time", + type: Xs(i) + }, { + name: "value", + type: "float" + }, { + name: "name", + type: "ordinal" + }], + encodeDefine: { + single: 0, + value: 1, + itemName: 2 + } + }), + h = new eA(u, this); + return h.initData(o), h + }, + getLayerSeries: function() { + for (var t = this.getData(), e = t.count(), i = [], n = 0; n < e; ++n) i[n] = n; + for (var o = f(Lp().key(function(e) { + return t.get("name", e) + }).entries(i), function(t) { + return { + name: t.key, + indices: t.values + } + }), a = t.mapDimension("single"), r = 0; r < o.length; ++r) o[r].indices.sort(function(e, i) { + return t.get(a, e) - t.get(a, i) + }); + return o + }, + getAxisTooltipData: function(t, e, i) { + y(t) || (t = t ? [t] : []); + for (var n, o = this.getData(), a = this.getLayerSeries(), r = [], s = a.length, l = 0; l < s; ++l) { + for (var u = Number.MAX_VALUE, h = -1, c = a[l].indices.length, d = 0; d < c; ++d) { + var f = o.get(t[0], a[l].indices[d]), + p = Math.abs(f - e); + p <= u && (n = f, u = p, h = a[l].indices[d]) + } + r.push(h) + } + return { + dataIndices: r, + nestestValue: n + } + }, + formatTooltip: function(t) { + var e = this.getData(), + i = e.getName(t), + n = e.get(e.mapDimension("value"), t); + return (isNaN(n) || null == n) && (n = "-"), Qo(i + " : " + n) + }, + defaultOption: { + zlevel: 0, + z: 2, + coordinateSystem: "singleAxis", + boundaryGap: ["10%", "10%"], + singleAxisIndex: 0, + animationEasing: "linear", + label: { + margin: 4, + show: !0, + position: "left", + color: "#000", + fontSize: 11 + }, + emphasis: { + label: { + show: !0 + } + } + } + }); + Fs({ + type: "themeRiver", + init: function() { + this._layers = [] + }, + render: function(t, e, i) { + function n(t) { + return t.name + } + + function o(e, i, n) { + var o = this._layers; + if ("remove" !== e) { + for (var u, h = [], c = [], f = l[i].indices, p = 0; p < f.length; p++) { + var g = r.getItemLayout(f[p]), + m = g.x, + v = g.y0, + y = g.y; + h.push([m, v]), c.push([m, v + y]), u = r.getItemVisual(f[p], "color") + } + var x, _, w = r.getItemLayout(f[0]), + b = r.getItemModel(f[p - 1]), + S = b.getModel("label"), + M = S.get("margin"); + if ("add" === e) { + I = d[i] = new Zw; + x = new uD({ + shape: { + points: h, + stackedOnPoints: c, + smooth: .4, + stackedOnSmooth: .4, + smoothConstraint: !1 + }, + z2: 0 + }), _ = new qS({ + style: { + x: w.x - M, + y: w.y0 + w.y / 2 + } + }), I.add(x), I.add(_), s.add(I), x.setClipPath(Dm(x.getBoundingRect(), t, function() { + x.removeClipPath() + })) + } else { + var I = o[n]; + x = I.childAt(0), _ = I.childAt(1), s.add(I), d[i] = I, bo(x, { + shape: { + points: h, + stackedOnPoints: c + } + }, t), bo(_, { + style: { + x: w.x - M, + y: w.y0 + w.y / 2 + } + }, t) + } + var T = b.getModel("emphasis.itemStyle"), + A = b.getModel("itemStyle"); + fo(_.style, S, { + text: S.get("show") ? t.getFormattedLabel(f[p - 1], "normal") || r.getName(f[p - 1]) : null, + textVerticalAlign: "middle" + }), x.setStyle(a({ + fill: u + }, A.getItemStyle(["color"]))), uo(x, T.getItemStyle()) + } else s.remove(o[i]) + } + var r = t.getData(), + s = this.group, + l = t.getLayerSeries(), + u = r.getLayout("layoutInfo"), + h = u.rect, + c = u.boundaryGap; + s.attr("position", [0, h.y + c[0]]); + var d = {}; + new Hs(this._layersSeries || [], l, n, n).add(m(o, this, "add")).update(m(o, this, "update")).remove(m(o, this, "remove")).execute(), this._layersSeries = l, this._layers = d + }, + dispose: function() {} + }); + Os(function(t, e) { + t.eachSeriesByType("themeRiver", function(t) { + var e = t.getData(), + i = t.coordinateSystem, + n = {}, + o = i.getRect(); + n.rect = o; + var a = t.get("boundaryGap"), + r = i.getAxis(); + n.boundaryGap = a, "horizontal" === r.orient ? (a[0] = Ro(a[0], o.height), a[1] = Ro(a[1], o.height), Cm(e, t, o.height - a[0] - a[1])) : (a[0] = Ro(a[0], o.width), a[1] = Ro(a[1], o.width), Cm(e, t, o.width - a[0] - a[1])), e.setLayout("layoutInfo", n) + }) + }), Es(function(t) { + t.eachSeriesByType("themeRiver", function(t) { + var e = t.getData(), + i = t.getRawData(), + n = t.get("color"), + o = R(); + e.each(function(t) { + o.set(e.getRawIndex(t), t) + }), i.each(function(a) { + var r = i.getName(a), + s = n[(t.nameMap.get(r) - 1) % n.length]; + i.setItemVisual(a, "color", s); + var l = o.get(a); + null != l && e.setItemVisual(l, "color", s) + }) + }) + }), ks($D("themeRiver")), OI.extend({ + type: "series.sunburst", + _viewRoot: null, + getInitialData: function(t, e) { + var i = { + name: t.name, + children: t.data + }; + km(i); + var n = t.levels || [], + o = {}; + return o.levels = n, kc.createTree(i, this, o).data + }, + optionUpdated: function() { + this.resetViewRoot() + }, + getDataParams: function(t) { + var e = OI.prototype.getDataParams.apply(this, arguments), + i = this.getData().tree.getNodeByDataIndex(t); + return e.treePathInfo = nd(i, this), e + }, + defaultOption: { + zlevel: 0, + z: 2, + center: ["50%", "50%"], + radius: [0, "75%"], + clockwise: !0, + startAngle: 90, + minAngle: 0, + percentPrecision: 2, + stillShowZeroSum: !0, + highlightPolicy: "descendant", + nodeClick: "rootToNode", + renderLabelForZeroData: !1, + label: { + rotate: "radial", + show: !0, + opacity: 1, + align: "center", + position: "inside", + distance: 5, + silent: !0, + emphasis: {} + }, + itemStyle: { + borderWidth: 1, + borderColor: "white", + borderType: "solid", + shadowBlur: 0, + shadowColor: "rgba(0, 0, 0, 0.2)", + shadowOffsetX: 0, + shadowOffsetY: 0, + opacity: 1, + emphasis: {}, + highlight: { + opacity: 1 + }, + downplay: { + opacity: .9 + } + }, + animationType: "expansion", + animationDuration: 1e3, + animationDurationUpdate: 500, + animationEasing: "cubicOut", + data: [], + levels: [], + sort: "desc" + }, + getViewRoot: function() { + return this._viewRoot + }, + resetViewRoot: function(t) { + t ? this._viewRoot = t : t = this._viewRoot; + var e = this.getRawData().tree.root; + t && (t === e || e.contains(t)) || (this._viewRoot = e) + } + }); + var yP = { + NONE: "none", + DESCENDANT: "descendant", + ANCESTOR: "ancestor", + SELF: "self" + }, + xP = 2, + _P = 4, + wP = Pm.prototype; + wP.updateData = function(t, e, i, o, s) { + this.node = e, e.piece = this, o = o || this._seriesModel, s = s || this._ecModel; + var l = this.childAt(0); + l.dataIndex = e.dataIndex; + var u = e.getModel(), + h = e.getLayout(); + h || console.log(e.getLayout()); + var c = a({}, h); + c.label = null; + var d, f = Nm(e, 0, s), + p = u.getModel("itemStyle").getItemStyle(); + d = r({ + lineJoin: "bevel", + fill: (d = "normal" === i ? p : n(u.getModel(i + ".itemStyle").getItemStyle(), p)).fill || f + }, d), t ? (l.setShape(c), l.shape.r = h.r0, bo(l, { + shape: { + r: h.r + } + }, o, e.dataIndex), l.useStyle(d)) : "object" == typeof d.fill && d.fill.type || "object" == typeof l.style.fill && l.style.fill.type ? (bo(l, { + shape: c + }, o), l.useStyle(d)) : bo(l, { + shape: c, + style: d + }, o), this._updateLabel(o, f, i); + var g = u.getShallow("cursor"); + if (g && l.attr("cursor", g), t) { + var m = o.getShallow("highlightPolicy"); + this._initEvents(l, e, o, m) + } + this._seriesModel = o || this._seriesModel, this._ecModel = s || this._ecModel + }, wP.onEmphasis = function(t) { + var e = this; + this.node.hostTree.root.eachNode(function(i) { + i.piece && (e.node === i ? i.piece.updateData(!1, i, "emphasis") : Em(i, e.node, t) ? i.piece.childAt(0).trigger("highlight") : t !== yP.NONE && i.piece.childAt(0).trigger("downplay")) + }) + }, wP.onNormal = function() { + this.node.hostTree.root.eachNode(function(t) { + t.piece && t.piece.updateData(!1, t, "normal") + }) + }, wP.onHighlight = function() { + this.updateData(!1, this.node, "highlight") + }, wP.onDownplay = function() { + this.updateData(!1, this.node, "downplay") + }, wP._updateLabel = function(t, e, i) { + function n(t) { + var e = r.get(t); + return null == e ? a.get(t) : e + } + var o = this.node.getModel(), + a = o.getModel("label"), + r = "normal" === i || "emphasis" === i ? a : o.getModel(i + ".label"), + s = o.getModel("emphasis.label"), + l = T(t.getFormattedLabel(this.node.dataIndex, "normal", null, null, "label"), this.node.name); + !1 === n("show") && (l = ""); + var u = this.node.getLayout(), + h = r.get("minAngle"); + null == h && (h = a.get("minAngle")), h = h / 180 * Math.PI; + var c = u.endAngle - u.startAngle; + null != h && Math.abs(c) < h && (l = ""); + var d = this.childAt(1); + co(d.style, d.hoverStyle || {}, a, s, { + defaultText: r.getShallow("show") ? l : null, + autoColor: e, + useInsideStyle: !0 + }); + var f, p = (u.startAngle + u.endAngle) / 2, + g = Math.cos(p), + m = Math.sin(p), + v = n("position"), + y = n("distance") || 0, + x = n("align"); + "outside" === v ? (f = u.r + y, x = p > Math.PI / 2 ? "right" : "left") : x && "center" !== x ? "left" === x ? (f = u.r0 + y, p > Math.PI / 2 && (x = "right")) : "right" === x && (f = u.r - y, p > Math.PI / 2 && (x = "left")) : (f = (u.r + u.r0) / 2, x = "center"), d.attr("style", { + text: l, + textAlign: x, + textVerticalAlign: n("verticalAlign") || "middle", + opacity: n("opacity") + }); + var _ = f * g + u.cx, + w = f * m + u.cy; + d.attr("position", [_, w]); + var b = n("rotate"), + S = 0; + "radial" === b ? (S = -p) < -Math.PI / 2 && (S += Math.PI) : "tangential" === b ? (S = Math.PI / 2 - p) > Math.PI / 2 ? S -= Math.PI : S < -Math.PI / 2 && (S += Math.PI) : "number" == typeof b && (S = b * Math.PI / 180), d.attr("rotation", S) + }, wP._initEvents = function(t, e, i, n) { + t.off("mouseover").off("mouseout").off("emphasis").off("normal"); + var o = this, + a = function() { + o.onEmphasis(n) + }, + r = function() { + o.onNormal() + }; + i.isAnimationEnabled() && t.on("mouseover", a).on("mouseout", r).on("emphasis", a).on("normal", r).on("downplay", function() { + o.onDownplay() + }).on("highlight", function() { + o.onHighlight() + }) + }, u(Pm, Zw); + Mr.extend({ + type: "sunburst", + init: function() {}, + render: function(t, e, i, n) { + function o(i, n) { + if (c || !i || i.getValue() || (i = null), i !== l && n !== l) + if (n && n.piece) i ? (n.piece.updateData(!1, i, "normal", t, e), s.setItemGraphicEl(i.dataIndex, n.piece)) : a(n); + else if (i) { + var o = new Pm(i, t, e); + h.add(o), s.setItemGraphicEl(i.dataIndex, o) + } + } + + function a(t) { + t && t.piece && (h.remove(t.piece), t.piece = null) + } + var r = this; + this.seriesModel = t, this.api = i, this.ecModel = e; + var s = t.getData(), + l = s.tree.root, + u = t.getViewRoot(), + h = this.group, + c = t.get("renderLabelForZeroData"), + d = []; + u.eachNode(function(t) { + d.push(t) + }); + var f = this._oldChildren || []; + if (function(t, e) { + function i(t) { + return t.getId() + } + + function n(i, n) { + o(null == i ? null : t[i], null == n ? null : e[n]) + } + 0 === t.length && 0 === e.length || new Hs(e, t, i, i).add(n).update(n).remove(v(n, null)).execute() + }(d, f), function(i, n) { + if (n.depth > 0) { + r.virtualPiece ? r.virtualPiece.updateData(!1, i, "normal", t, e) : (r.virtualPiece = new Pm(i, t, e), h.add(r.virtualPiece)), n.piece._onclickEvent && n.piece.off("click", n.piece._onclickEvent); + var o = function(t) { + r._rootToNode(n.parentNode) + }; + n.piece._onclickEvent = o, r.virtualPiece.on("click", o) + } else r.virtualPiece && (h.remove(r.virtualPiece), r.virtualPiece = null) + }(l, u), n && n.highlight && n.highlight.piece) { + var p = t.getShallow("highlightPolicy"); + n.highlight.piece.onEmphasis(p) + } else if (n && n.unhighlight) { + var g = this.virtualPiece; + !g && l.children.length && (g = l.children[0].piece), g && g.onNormal() + } + this._initEvents(), this._oldChildren = d + }, + dispose: function() {}, + _initEvents: function() { + var t = this, + e = function(e) { + var i = !1; + t.seriesModel.getViewRoot().eachNode(function(n) { + if (!i && n.piece && n.piece.childAt(0) === e.target) { + var o = n.getModel().get("nodeClick"); + if ("rootToNode" === o) t._rootToNode(n); + else if ("link" === o) { + var a = n.getModel(), + r = a.get("link"); + if (r) { + var s = a.get("target", !0) || "_blank"; + window.open(r, s) + } + } + i = !0 + } + }) + }; + this.group._onclickEvent && this.group.off("click", this.group._onclickEvent), this.group.on("click", e), this.group._onclickEvent = e + }, + _rootToNode: function(t) { + t !== this.seriesModel.getViewRoot() && this.api.dispatchAction({ + type: "sunburstRootToNode", + from: this.uid, + seriesId: this.seriesModel.id, + targetNode: t + }) + }, + containPoint: function(t, e) { + var i = e.getData().getItemLayout(0); + if (i) { + var n = t[0] - i.cx, + o = t[1] - i.cy, + a = Math.sqrt(n * n + o * o); + return a <= i.r && a >= i.r0 + } + } + }); + var bP = "sunburstRootToNode"; + Ps({ + type: bP, + update: "updateView" + }, function(t, e) { + e.eachComponent({ + mainType: "series", + subType: "sunburst", + query: t + }, function(e, i) { + var n = td(t, [bP], e); + if (n) { + var o = e.getViewRoot(); + o && (t.direction = id(o, n.node) ? "rollUp" : "drillDown"), e.resetViewRoot(n.node) + } + }) + }); + var SP = "sunburstHighlight"; + Ps({ + type: SP, + update: "updateView" + }, function(t, e) { + e.eachComponent({ + mainType: "series", + subType: "sunburst", + query: t + }, function(e, i) { + var n = td(t, [SP], e); + n && (t.highlight = n.node) + }) + }); + Ps({ + type: "sunburstUnhighlight", + update: "updateView" + }, function(t, e) { + e.eachComponent({ + mainType: "series", + subType: "sunburst", + query: t + }, function(e, i) { + t.unhighlight = !0 + }) + }); + var MP = Math.PI / 180; + Es(v(jD, "sunburst")), Os(v(function(t, e, i, n) { + e.eachSeriesByType(t, function(t) { + var e = t.get("center"), + n = t.get("radius"); + y(n) || (n = [0, n]), y(e) || (e = [e, e]); + var o = i.getWidth(), + a = i.getHeight(), + r = Math.min(o, a), + s = Ro(e[0], o), + l = Ro(e[1], a), + u = Ro(n[0], r / 2), + h = Ro(n[1], r / 2), + c = -t.get("startAngle") * MP, + f = t.get("minAngle") * MP, + p = t.getData().tree.root, + g = t.getViewRoot(), + m = g.depth, + v = t.get("sort"); + null != v && Rm(g, v); + var x = 0; + d(g.children, function(t) { + !isNaN(t.getValue()) && x++ + }); + var _ = g.getValue(), + w = Math.PI / (_ || x) * 2, + b = g.depth > 0, + S = g.height - (b ? -1 : 1), + M = (h - u) / (S || 1), + I = t.get("clockwise"), + T = t.get("stillShowZeroSum"), + A = I ? 1 : -1, + D = function(t, e) { + if (t) { + var i = e; + if (t !== p) { + var n = t.getValue(), + o = 0 === _ && T ? w : n * w; + o < f && (o = f), i = e + A * o; + var a = t.depth - m - (b ? -1 : 1), + h = u + M * a, + c = u + M * (a + 1), + g = t.getModel(); + null != g.get("r0") && (h = Ro(g.get("r0"), r / 2)), null != g.get("r") && (c = Ro(g.get("r"), r / 2)), t.setLayout({ + angle: o, + startAngle: e, + endAngle: i, + clockwise: I, + cx: s, + cy: l, + r0: h, + r: c + }) + } + if (t.children && t.children.length) { + var v = 0; + d(t.children, function(t) { + v += D(t, e + v) + }) + } + return i - e + } + }; + if (b) { + var C = u, + L = u + M, + k = 2 * Math.PI; + p.setLayout({ + angle: k, + startAngle: c, + endAngle: c + k, + clockwise: I, + cx: s, + cy: l, + r0: C, + r: L + }) + } + D(g, c) + }) + }, "sunburst")), ks(v($D, "sunburst")); + var IP = ["itemStyle"], + TP = ["emphasis", "itemStyle"], + AP = ["label"], + DP = ["emphasis", "label"], + CP = "e\0\0", + LP = { + cartesian2d: function(t) { + var e = t.grid.getRect(); + return { + coordSys: { + type: "cartesian2d", + x: e.x, + y: e.y, + width: e.width, + height: e.height + }, + api: { + coord: function(e) { + return t.dataToPoint(e) + }, + size: m(Bm, t) + } + } + }, + geo: function(t) { + var e = t.getBoundingRect(); + return { + coordSys: { + type: "geo", + x: e.x, + y: e.y, + width: e.width, + height: e.height, + zoom: t.getZoom() + }, + api: { + coord: function(e) { + return t.dataToPoint(e) + }, + size: m(Vm, t) + } + } + }, + singleAxis: function(t) { + var e = t.getRect(); + return { + coordSys: { + type: "singleAxis", + x: e.x, + y: e.y, + width: e.width, + height: e.height + }, + api: { + coord: function(e) { + return t.dataToPoint(e) + }, + size: m(Gm, t) + } + } + }, + polar: function(t) { + var e = t.getRadiusAxis(), + i = t.getAngleAxis(), + n = e.getExtent(); + return n[0] > n[1] && n.reverse(), { + coordSys: { + type: "polar", + cx: t.cx, + cy: t.cy, + r: n[1], + r0: n[0] + }, + api: { + coord: m(function(n) { + var o = e.dataToRadius(n[0]), + a = i.dataToAngle(n[1]), + r = t.coordToPoint([o, a]); + return r.push(o, a * Math.PI / 180), r + }), + size: m(Fm, t) + } + } + }, + calendar: function(t) { + var e = t.getRect(), + i = t.getRangeInfo(); + return { + coordSys: { + type: "calendar", + x: e.x, + y: e.y, + width: e.width, + height: e.height, + cellWidth: t.getCellWidth(), + cellHeight: t.getCellHeight(), + rangeInfo: { + start: i.start, + end: i.end, + weeks: i.weeks, + dayCount: i.allDay + } + }, + api: { + coord: function(e, i) { + return t.dataToPoint(e, i) + } + } + } + } + }; + OI.extend({ + type: "series.custom", + dependencies: ["grid", "polar", "geo", "singleAxis", "calendar"], + defaultOption: { + coordinateSystem: "cartesian2d", + zlevel: 0, + z: 2, + legendHoverLink: !0, + useTransform: !0 + }, + getInitialData: function(t, e) { + return dl(this.getSource(), this) + }, + getDataParams: function(t, e, i) { + var n = OI.prototype.getDataParams.apply(this, arguments); + return i && (n.info = i.info), n + } + }), Mr.extend({ + type: "custom", + _data: null, + render: function(t, e, i, n) { + var o = this._data, + a = t.getData(), + r = this.group, + s = Um(t, a, e, i); + a.diff(o).add(function(e) { + jm(null, e, s(e, n), t, r, a) + }).update(function(e, i) { + jm(o.getItemGraphicEl(i), e, s(e, n), t, r, a) + }).remove(function(t) { + var e = o.getItemGraphicEl(t); + e && r.remove(e) + }).execute(), this._data = a + }, + incrementalPrepareRender: function(t, e, i) { + this.group.removeAll(), this._data = null + }, + incrementalRender: function(t, e, i, n, o) { + for (var a = e.getData(), r = Um(e, a, i, n), s = t.start; s < t.end; s++) jm(null, s, r(s, o), e, this.group, a).traverse(function(t) { + t.isGroup || (t.incremental = !0, t.useHoverLayer = !0) + }) + }, + dispose: B, + filterForExposedEvent: function(t, e, i, n) { + var o = e.element; + if (null == o || i.name === o) return !0; + for (; + (i = i.parent) && i !== this.group;) + if (i.name === o) return !0; + return !1 + } + }), Ls(function(t) { + var e = t.graphic; + y(e) ? e[0] && e[0].elements ? t.graphic = [t.graphic[0]] : t.graphic = [{ + elements: e + }] : e && !e.elements && (t.graphic = [{ + elements: [e] + }]) + }); + var kP = Bs({ + type: "graphic", + defaultOption: { + elements: [], + parentId: null + }, + _elOptionsToUpdate: null, + mergeOption: function(t) { + var e = this.option.elements; + this.option.elements = null, kP.superApply(this, "mergeOption", arguments), this.option.elements = e + }, + optionUpdated: function(t, e) { + var i = this.option, + n = (e ? i : t).elements, + o = i.elements = e ? [] : i.elements, + a = []; + this._flatten(n, a); + var r = Pi(o, a); + Ni(r); + var s = this._elOptionsToUpdate = []; + d(r, function(t, e) { + var i = t.option; + i && (s.push(i), sv(t, i), lv(o, e, i), uv(o[e], i)) + }, this); + for (var l = o.length - 1; l >= 0; l--) null == o[l] ? o.splice(l, 1) : delete o[l].$action + }, + _flatten: function(t, e, i) { + d(t, function(t) { + if (t) { + i && (t.parentOption = i), e.push(t); + var n = t.children; + "group" === t.type && n && this._flatten(n, e, t), delete t.children + } + }, this) + }, + useElOptionsToUpdate: function() { + var t = this._elOptionsToUpdate; + return this._elOptionsToUpdate = null, t + } + }); + Vs({ + type: "graphic", + init: function(t, e) { + this._elMap = R(), this._lastGraphicModel + }, + render: function(t, e, i) { + t !== this._lastGraphicModel && this._clear(), this._lastGraphicModel = t, this._updateElements(t), this._relocate(t, i) + }, + _updateElements: function(t) { + var e = t.useElOptionsToUpdate(); + if (e) { + var i = this._elMap, + n = this.group; + d(e, function(e) { + var o = e.$action, + a = e.id, + r = i.get(a), + s = e.parentId, + l = null != s ? i.get(s) : n, + u = e.style; + "text" === e.type && u && (e.hv && e.hv[1] && (u.textVerticalAlign = u.textBaseline = null), !u.hasOwnProperty("textFill") && u.fill && (u.textFill = u.fill), !u.hasOwnProperty("textStroke") && u.stroke && (u.textStroke = u.stroke)); + var h = av(e); + o && "merge" !== o ? "replace" === o ? (ov(r, i), nv(a, l, h, i)) : "remove" === o && ov(r, i) : r ? r.attr(h) : nv(a, l, h, i); + var c = i.get(a); + c && (c.__ecGraphicWidth = e.width, c.__ecGraphicHeight = e.height, hv(c, t)) + }) + } + }, + _relocate: function(t, e) { + for (var i = t.option.elements, n = this.group, o = this._elMap, a = i.length - 1; a >= 0; a--) { + var r = i[a], + s = o.get(r.id); + if (s) { + var l = s.parent; + ua(s, r, l === n ? { + width: e.getWidth(), + height: e.getHeight() + } : { + width: l.__ecGraphicWidth || 0, + height: l.__ecGraphicHeight || 0 + }, null, { + hv: r.hv, + boundingMode: r.bounding + }) + } + } + }, + _clear: function() { + var t = this._elMap; + t.each(function(e) { + ov(e, t) + }), this._elMap = R() + }, + dispose: function() { + this._clear() + } + }); + var PP = Bs({ + type: "legend.plain", + dependencies: ["series"], + layoutMode: { + type: "box", + ignoreSize: !0 + }, + init: function(t, e, i) { + this.mergeDefaultAndTheme(t, i), t.selected = t.selected || {} + }, + mergeOption: function(t) { + PP.superCall(this, "mergeOption", t) + }, + optionUpdated: function() { + this._updateData(this.ecModel); + var t = this._data; + if (t[0] && "single" === this.get("selectedMode")) { + for (var e = !1, i = 0; i < t.length; i++) { + var n = t[i].get("name"); + if (this.isSelected(n)) { + this.select(n), e = !0; + break + } + }!e && this.select(t[0].get("name")) + } + }, + _updateData: function(t) { + var e = [], + i = []; + t.eachRawSeries(function(n) { + var o = n.name; + i.push(o); + var a; + if (n.legendDataProvider) { + var r = n.legendDataProvider(), + s = r.mapArray(r.getName); + t.isSeriesFiltered(n) || (i = i.concat(s)), s.length ? e = e.concat(s) : a = !0 + } else a = !0; + a && Oi(n) && e.push(n.name) + }), this._availableNames = i; + var n = f(this.get("data") || e, function(t) { + return "string" != typeof t && "number" != typeof t || (t = { + name: t + }), new Lo(t, this, this.ecModel) + }, this); + this._data = n + }, + getData: function() { + return this._data + }, + select: function(t) { + var e = this.option.selected; + "single" === this.get("selectedMode") && d(this._data, function(t) { + e[t.get("name")] = !1 + }), e[t] = !0 + }, + unSelect: function(t) { + "single" !== this.get("selectedMode") && (this.option.selected[t] = !1) + }, + toggleSelected: function(t) { + var e = this.option.selected; + e.hasOwnProperty(t) || (e[t] = !0), this[e[t] ? "unSelect" : "select"](t) + }, + isSelected: function(t) { + var e = this.option.selected; + return !(e.hasOwnProperty(t) && !e[t]) && l(this._availableNames, t) >= 0 + }, + defaultOption: { + zlevel: 0, + z: 4, + show: !0, + orient: "horizontal", + left: "center", + top: 0, + align: "auto", + backgroundColor: "rgba(0,0,0,0)", + borderColor: "#ccc", + borderRadius: 0, + borderWidth: 0, + padding: 5, + itemGap: 10, + itemWidth: 25, + itemHeight: 14, + inactiveColor: "#ccc", + textStyle: { + color: "#333" + }, + selectedMode: !0, + tooltip: { + show: !1 + } + } + }); + Ps("legendToggleSelect", "legendselectchanged", v(cv, "toggleSelected")), Ps("legendSelect", "legendselected", v(cv, "select")), Ps("legendUnSelect", "legendunselected", v(cv, "unSelect")); + var NP = v, + OP = d, + EP = Zw, + RP = Vs({ + type: "legend.plain", + newlineDisabled: !1, + init: function() { + this.group.add(this._contentGroup = new EP), this._backgroundEl + }, + getContentGroup: function() { + return this._contentGroup + }, + render: function(t, e, i) { + if (this.resetInner(), t.get("show", !0)) { + var n = t.get("align"); + n && "auto" !== n || (n = "right" === t.get("left") && "vertical" === t.get("orient") ? "right" : "left"), this.renderInner(n, t, e, i); + var o = t.getBoxLayoutParams(), + a = { + width: i.getWidth(), + height: i.getHeight() + }, + s = t.get("padding"), + l = la(o, a, s), + u = this.layoutInner(t, n, l), + h = la(r({ + width: u.width, + height: u.height + }, o), a, s); + this.group.attr("position", [h.x - u.x, h.y - u.y]), this.group.add(this._backgroundEl = fv(u, t)) + } + }, + resetInner: function() { + this.getContentGroup().removeAll(), this._backgroundEl && this.group.remove(this._backgroundEl) + }, + renderInner: function(t, e, i, n) { + var o = this.getContentGroup(), + a = R(), + r = e.get("selectedMode"), + s = []; + i.eachRawSeries(function(t) { + !t.get("legendHoverLink") && s.push(t.id) + }), OP(e.getData(), function(l, u) { + var h = l.get("name"); + if (this.newlineDisabled || "" !== h && "\n" !== h) { + var c = i.getSeriesByName(h)[0]; + if (!a.get(h)) + if (c) { + var d = c.getData(), + f = d.getVisual("color"); + "function" == typeof f && (f = f(c.getDataParams(0))); + var p = d.getVisual("legendSymbol") || "roundRect", + g = d.getVisual("symbol"); + this._createItem(h, u, l, e, p, g, t, f, r).on("click", NP(pv, h, n)).on("mouseover", NP(gv, c.name, null, n, s)).on("mouseout", NP(mv, c.name, null, n, s)), a.set(h, !0) + } else i.eachRawSeries(function(i) { + if (!a.get(h) && i.legendDataProvider) { + var o = i.legendDataProvider(), + c = o.indexOfName(h); + if (c < 0) return; + var d = o.getItemVisual(c, "color"); + this._createItem(h, u, l, e, "roundRect", null, t, d, r).on("click", NP(pv, h, n)).on("mouseover", NP(gv, null, h, n, s)).on("mouseout", NP(mv, null, h, n, s)), a.set(h, !0) + } + }, this) + } else o.add(new EP({ + newline: !0 + })) + }, this) + }, + _createItem: function(t, e, i, n, o, r, s, l, u) { + var h = n.get("itemWidth"), + c = n.get("itemHeight"), + d = n.get("inactiveColor"), + f = n.get("symbolKeepAspect"), + p = n.isSelected(t), + g = new EP, + m = i.getModel("textStyle"), + v = i.get("icon"), + y = i.getModel("tooltip"), + x = y.parentModel; + if (o = v || o, g.add(Xl(o, 0, 0, h, c, p ? l : d, null == f || f)), !v && r && (r !== o || "none" === r)) { + var _ = .8 * c; + "none" === r && (r = "circle"), g.add(Xl(r, (h - _) / 2, (c - _) / 2, _, _, p ? l : d, null == f || f)) + } + var w = "left" === s ? h + 5 : -5, + b = s, + S = n.get("formatter"), + M = t; + "string" == typeof S && S ? M = S.replace("{name}", null != t ? t : "") : "function" == typeof S && (M = S(t)), g.add(new qS({ + style: fo({}, m, { + text: M, + x: w, + y: c / 2, + textFill: p ? m.getTextColor() : d, + textAlign: b, + textVerticalAlign: "middle" + }) + })); + var I = new aM({ + shape: g.getBoundingRect(), + invisible: !0, + tooltip: y.get("show") ? a({ + content: t, + formatter: x.get("formatter", !0) || function() { + return t + }, + formatterParams: { + componentType: "legend", + legendIndex: n.componentIndex, + name: t, + $vars: ["name"] + } + }, y.option) : null + }); + return g.add(I), g.eachChild(function(t) { + t.silent = !0 + }), I.silent = !u, this.getContentGroup().add(g), uo(g), g.__legendDataIndex = e, g + }, + layoutInner: function(t, e, i) { + var n = this.getContentGroup(); + UM(t.get("orient"), n, t.get("itemGap"), i.width, i.height); + var o = n.getBoundingRect(); + return n.attr("position", [-o.x, -o.y]), this.group.getBoundingRect() + } + }); + ks(function(t) { + var e = t.findComponents({ + mainType: "legend" + }); + e && e.length && t.filterSeries(function(t) { + for (var i = 0; i < e.length; i++) + if (!e[i].isSelected(t.name)) return !1; + return !0 + }) + }), YM.registerSubTypeDefaulter("legend", function() { + return "plain" + }); + var zP = PP.extend({ + type: "legend.scroll", + setScrollDataIndex: function(t) { + this.option.scrollDataIndex = t + }, + defaultOption: { + scrollDataIndex: 0, + pageButtonItemGap: 5, + pageButtonGap: null, + pageButtonPosition: "end", + pageFormatter: "{current}/{total}", + pageIcons: { + horizontal: ["M0,0L12,-10L12,10z", "M0,0L-12,-10L-12,10z"], + vertical: ["M0,0L20,0L10,-20z", "M0,0L20,0L10,20z"] + }, + pageIconColor: "#2f4554", + pageIconInactiveColor: "#aaa", + pageIconSize: 15, + pageTextStyle: { + color: "#333" + }, + animationDurationUpdate: 800 + }, + init: function(t, e, i, n) { + var o = da(t); + zP.superCall(this, "init", t, e, i, n), vv(this, t, o) + }, + mergeOption: function(t, e) { + zP.superCall(this, "mergeOption", t, e), vv(this, this.option, t) + }, + getOrient: function() { + return "vertical" === this.get("orient") ? { + index: 1, + name: "vertical" + } : { + index: 0, + name: "horizontal" + } + } + }), + BP = Zw, + VP = ["width", "height"], + GP = ["x", "y"], + FP = RP.extend({ + type: "legend.scroll", + newlineDisabled: !0, + init: function() { + FP.superCall(this, "init"), this._currentIndex = 0, this.group.add(this._containerGroup = new BP), this._containerGroup.add(this.getContentGroup()), this.group.add(this._controllerGroup = new BP), this._showController + }, + resetInner: function() { + FP.superCall(this, "resetInner"), this._controllerGroup.removeAll(), this._containerGroup.removeClipPath(), this._containerGroup.__rectSize = null + }, + renderInner: function(t, e, i, n) { + function o(t, i) { + var o = t + "DataIndex", + l = Co(e.get("pageIcons", !0)[e.getOrient().name][i], { + onclick: m(a._pageGo, a, o, e, n) + }, { + x: -s[0] / 2, + y: -s[1] / 2, + width: s[0], + height: s[1] + }); + l.name = t, r.add(l) + } + var a = this; + FP.superCall(this, "renderInner", t, e, i, n); + var r = this._controllerGroup, + s = e.get("pageIconSize", !0); + y(s) || (s = [s, s]), o("pagePrev", 0); + var l = e.getModel("pageTextStyle"); + r.add(new qS({ + name: "pageText", + style: { + textFill: l.getTextColor(), + font: l.getFont(), + textVerticalAlign: "middle", + textAlign: "center" + }, + silent: !0 + })), o("pageNext", 1) + }, + layoutInner: function(t, e, i) { + var n = this.getContentGroup(), + o = this._containerGroup, + a = this._controllerGroup, + r = t.getOrient().index, + s = VP[r], + l = VP[1 - r], + u = GP[1 - r]; + UM(t.get("orient"), n, t.get("itemGap"), r ? i.width : null, r ? null : i.height), UM("horizontal", a, t.get("pageButtonItemGap", !0)); + var h = n.getBoundingRect(), + c = a.getBoundingRect(), + d = this._showController = h[s] > i[s], + f = [-h.x, -h.y]; + f[r] = n.position[r]; + var p = [0, 0], + g = [-c.x, -c.y], + m = A(t.get("pageButtonGap", !0), t.get("itemGap", !0)); + d && ("end" === t.get("pageButtonPosition", !0) ? g[r] += i[s] - c[s] : p[r] += c[s] + m), g[1 - r] += h[l] / 2 - c[l] / 2, n.attr("position", f), o.attr("position", p), a.attr("position", g); + var v = this.group.getBoundingRect(); + if ((v = { + x: 0, + y: 0 + })[s] = d ? i[s] : h[s], v[l] = Math.max(h[l], c[l]), v[u] = Math.min(0, c[u] + g[1 - r]), o.__rectSize = i[s], d) { + var y = { + x: 0, + y: 0 + }; + y[s] = Math.max(i[s] - c[s] - m, 0), y[l] = v[l], o.setClipPath(new aM({ + shape: y + })), o.__rectSize = y[s] + } else a.eachChild(function(t) { + t.attr({ + invisible: !0, + silent: !0 + }) + }); + var x = this._getPageInfo(t); + return null != x.pageIndex && bo(n, { + position: x.contentPosition + }, !!d && t), this._updatePageInfoView(t, x), v + }, + _pageGo: function(t, e, i) { + var n = this._getPageInfo(e)[t]; + null != n && i.dispatchAction({ + type: "legendScroll", + scrollDataIndex: n, + legendId: e.id + }) + }, + _updatePageInfoView: function(t, e) { + var i = this._controllerGroup; + d(["pagePrev", "pageNext"], function(n) { + var o = null != e[n + "DataIndex"], + a = i.childOfName(n); + a && (a.setStyle("fill", o ? t.get("pageIconColor", !0) : t.get("pageIconInactiveColor", !0)), a.cursor = o ? "pointer" : "default") + }); + var n = i.childOfName("pageText"), + o = t.get("pageFormatter"), + a = e.pageIndex, + r = null != a ? a + 1 : 0, + s = e.pageCount; + n && o && n.setStyle("text", _(o) ? o.replace("{current}", r).replace("{total}", s) : o({ + current: r, + total: s + })) + }, + _getPageInfo: function(t) { + function e(t) { + var e = t.getBoundingRect().clone(); + return e[f] += t.position[h], e + } + var i, n, o, a, r = t.get("scrollDataIndex", !0), + s = this.getContentGroup(), + l = s.getBoundingRect(), + u = this._containerGroup.__rectSize, + h = t.getOrient().index, + c = VP[h], + d = VP[1 - h], + f = GP[h], + p = s.position.slice(); + this._showController ? s.eachChild(function(t) { + t.__legendDataIndex === r && (a = t) + }) : a = s.childAt(0); + var g = u ? Math.ceil(l[c] / u) : 0; + if (a) { + var m = a.getBoundingRect(), + v = a.position[h] + m[f]; + p[h] = -v - l[f], i = Math.floor(g * (v + m[f] + u / 2) / l[c]), i = l[c] && g ? Math.max(0, Math.min(g - 1, i)) : -1; + var y = { + x: 0, + y: 0 + }; + y[c] = u, y[d] = l[d], y[f] = -p[h] - l[f]; + var x, _ = s.children(); + if (s.eachChild(function(t, i) { + var n = e(t); + n.intersect(y) && (null == x && (x = i), o = t.__legendDataIndex), i === _.length - 1 && n[f] + n[c] <= y[f] + y[c] && (o = null) + }), null != x) { + var w = e(_[x]); + if (y[f] = w[f] + w[c] - y[c], x <= 0 && w[f] >= y[f]) n = null; + else { + for (; x > 0 && e(_[x - 1]).intersect(y);) x--; + n = _[x].__legendDataIndex + } + } + } + return { + contentPosition: p, + pageIndex: i, + pageCount: g, + pagePrevDataIndex: n, + pageNextDataIndex: o + } + } + }); + Ps("legendScroll", "legendscroll", function(t, e) { + var i = t.scrollDataIndex; + null != i && e.eachComponent({ + mainType: "legend", + subType: "scroll", + query: t + }, function(t) { + t.setScrollDataIndex(i) + }) + }), Bs({ + type: "tooltip", + dependencies: ["axisPointer"], + defaultOption: { + zlevel: 0, + z: 60, + show: !0, + showContent: !0, + trigger: "item", + triggerOn: "mousemove|click", + alwaysShowContent: !1, + displayMode: "single", + renderMode: "auto", + confine: !1, + showDelay: 0, + hideDelay: 100, + transitionDuration: .4, + enterable: !1, + backgroundColor: "rgba(50,50,50,0.7)", + borderColor: "#333", + borderRadius: 4, + borderWidth: 0, + padding: 5, + extraCssText: "", + axisPointer: { + type: "line", + axis: "auto", + animation: "auto", + animationDurationUpdate: 200, + animationEasingUpdate: "exponentialOut", + crossStyle: { + color: "#999", + width: 1, + type: "dashed", + textStyle: {} + } + }, + textStyle: { + color: "#fff", + fontSize: 14 + } + } + }); + var WP = d, + HP = Jo, + ZP = ["", "-webkit-", "-moz-", "-o-"]; + wv.prototype = { + constructor: wv, + _enterable: !0, + update: function() { + var t = this._container, + e = t.currentStyle || document.defaultView.getComputedStyle(t), + i = t.style; + "absolute" !== i.position && "absolute" !== e.position && (i.position = "relative") + }, + show: function(t) { + clearTimeout(this._hideTimeout); + var e = this.el; + e.style.cssText = "position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;" + _v(t) + ";left:" + this._x + "px;top:" + this._y + "px;" + (t.get("extraCssText") || ""), e.style.display = e.innerHTML ? "block" : "none", e.style.pointerEvents = this._enterable ? "auto" : "none", this._show = !0 + }, + setContent: function(t) { + this.el.innerHTML = null == t ? "" : t + }, + setEnterable: function(t) { + this._enterable = t + }, + getSize: function() { + var t = this.el; + return [t.clientWidth, t.clientHeight] + }, + moveTo: function(t, e) { + var i, n = this._zr; + n && n.painter && (i = n.painter.getViewportRootOffset()) && (t += i.offsetLeft, e += i.offsetTop); + var o = this.el.style; + o.left = t + "px", o.top = e + "px", this._x = t, this._y = e + }, + hide: function() { + this.el.style.display = "none", this._show = !1 + }, + hideLater: function(t) { + !this._show || this._inContent && this._enterable || (t ? (this._hideDelay = t, this._show = !1, this._hideTimeout = setTimeout(m(this.hide, this), t)) : this.hide()) + }, + isShow: function() { + return this._show + }, + getOuterSize: function() { + var t = this.el.clientWidth, + e = this.el.clientHeight; + if (document.defaultView && document.defaultView.getComputedStyle) { + var i = document.defaultView.getComputedStyle(this.el); + i && (t += parseInt(i.paddingLeft, 10) + parseInt(i.paddingRight, 10) + parseInt(i.borderLeftWidth, 10) + parseInt(i.borderRightWidth, 10), e += parseInt(i.paddingTop, 10) + parseInt(i.paddingBottom, 10) + parseInt(i.borderTopWidth, 10) + parseInt(i.borderBottomWidth, 10)) + } + return { + width: t, + height: e + } + } + }, bv.prototype = { + constructor: bv, + _enterable: !0, + update: function() {}, + show: function(t) { + this._hideTimeout && clearTimeout(this._hideTimeout), this.el.attr("show", !0), this._show = !0 + }, + setContent: function(t, e, i) { + this.el && this._zr.remove(this.el); + for (var n = {}, o = t, a = o.indexOf("{marker"); a >= 0;) { + var r = o.indexOf("|}"), + s = o.substr(a + "{marker".length, r - a - "{marker".length); + s.indexOf("sub") > -1 ? n["marker" + s] = { + textWidth: 4, + textHeight: 4, + textBorderRadius: 2, + textBackgroundColor: e[s], + textOffset: [3, 0] + } : n["marker" + s] = { + textWidth: 10, + textHeight: 10, + textBorderRadius: 5, + textBackgroundColor: e[s] + }, a = (o = o.substr(r + 1)).indexOf("{marker") + } + this.el = new qS({ + style: { + rich: n, + text: t, + textLineHeight: 20, + textBackgroundColor: i.get("backgroundColor"), + textBorderRadius: i.get("borderRadius"), + textFill: i.get("textStyle.color"), + textPadding: i.get("padding") + }, + z: i.get("z") + }), this._zr.add(this.el); + var l = this; + this.el.on("mouseover", function() { + l._enterable && (clearTimeout(l._hideTimeout), l._show = !0), l._inContent = !0 + }), this.el.on("mouseout", function() { + l._enterable && l._show && l.hideLater(l._hideDelay), l._inContent = !1 + }) + }, + setEnterable: function(t) { + this._enterable = t + }, + getSize: function() { + var t = this.el.getBoundingRect(); + return [t.width, t.height] + }, + moveTo: function(t, e) { + this.el && this.el.attr("position", [t, e]) + }, + hide: function() { + this.el.hide(), this._show = !1 + }, + hideLater: function(t) { + !this._show || this._inContent && this._enterable || (t ? (this._hideDelay = t, this._show = !1, this._hideTimeout = setTimeout(m(this.hide, this), t)) : this.hide()) + }, + isShow: function() { + return this._show + }, + getOuterSize: function() { + return this.getSize() + } + }; + var UP = m, + XP = d, + jP = Ro, + YP = new aM({ + shape: { + x: -1, + y: -1, + width: 2, + height: 2 + } + }); + Vs({ + type: "tooltip", + init: function(t, e) { + if (!z_.node) { + var i = t.getComponent("tooltip").get("renderMode"); + this._renderMode = Hi(i); + var n; + "html" === this._renderMode ? (n = new wv(e.getDom(), e), this._newLine = "
") : (n = new bv(e), this._newLine = "\n"), this._tooltipContent = n + } + }, + render: function(t, e, i) { + if (!z_.node) { + this.group.removeAll(), this._tooltipModel = t, this._ecModel = e, this._api = i, this._lastDataByCoordSys = null, this._alwaysShowContent = t.get("alwaysShowContent"); + var n = this._tooltipContent; + n.update(), n.setEnterable(t.get("enterable")), this._initGlobalListener(), this._keepShow() + } + }, + _initGlobalListener: function() { + var t = this._tooltipModel.get("triggerOn"); + im("itemTooltip", this._api, UP(function(e, i, n) { + "none" !== t && (t.indexOf(e) >= 0 ? this._tryShow(i, n) : "leave" === e && this._hide(n)) + }, this)) + }, + _keepShow: function() { + var t = this._tooltipModel, + e = this._ecModel, + i = this._api; + if (null != this._lastX && null != this._lastY && "none" !== t.get("triggerOn")) { + var n = this; + clearTimeout(this._refreshUpdateTimeout), this._refreshUpdateTimeout = setTimeout(function() { + n.manuallyShowTip(t, e, i, { + x: n._lastX, + y: n._lastY + }) + }) + } + }, + manuallyShowTip: function(t, e, i, n) { + if (n.from !== this.uid && !z_.node) { + var o = Mv(n, i); + this._ticket = ""; + var a = n.dataByCoordSys; + if (n.tooltip && null != n.x && null != n.y) { + var r = YP; + r.position = [n.x, n.y], r.update(), r.tooltip = n.tooltip, this._tryShow({ + offsetX: n.x, + offsetY: n.y, + target: r + }, o) + } else if (a) this._tryShow({ + offsetX: n.x, + offsetY: n.y, + position: n.position, + event: {}, + dataByCoordSys: n.dataByCoordSys, + tooltipOption: n.tooltipOption + }, o); + else if (null != n.seriesIndex) { + if (this._manuallyAxisShowTip(t, e, i, n)) return; + var s = eP(n, e), + l = s.point[0], + u = s.point[1]; + null != l && null != u && this._tryShow({ + offsetX: l, + offsetY: u, + position: n.position, + target: s.el, + event: {} + }, o) + } else null != n.x && null != n.y && (i.dispatchAction({ + type: "updateAxisPointer", + x: n.x, + y: n.y + }), this._tryShow({ + offsetX: n.x, + offsetY: n.y, + position: n.position, + target: i.getZr().findHover(n.x, n.y).target, + event: {} + }, o)) + } + }, + manuallyHideTip: function(t, e, i, n) { + var o = this._tooltipContent; + !this._alwaysShowContent && this._tooltipModel && o.hideLater(this._tooltipModel.get("hideDelay")), this._lastX = this._lastY = null, n.from !== this.uid && this._hide(Mv(n, i)) + }, + _manuallyAxisShowTip: function(t, e, i, n) { + var o = n.seriesIndex, + a = n.dataIndex, + r = e.getComponent("axisPointer").coordSysAxesInfo; + if (null != o && null != a && null != r) { + var s = e.getSeriesByIndex(o); + if (s && "axis" === (t = Sv([s.getData().getItemModel(a), s, (s.coordinateSystem || {}).model, t])).get("trigger")) return i.dispatchAction({ + type: "updateAxisPointer", + seriesIndex: o, + dataIndex: a, + position: n.position + }), !0 + } + }, + _tryShow: function(t, e) { + var i = t.target; + if (this._tooltipModel) { + this._lastX = t.offsetX, this._lastY = t.offsetY; + var n = t.dataByCoordSys; + n && n.length ? this._showAxisTooltip(n, t) : i && null != i.dataIndex ? (this._lastDataByCoordSys = null, this._showSeriesItemTooltip(t, i, e)) : i && i.tooltip ? (this._lastDataByCoordSys = null, this._showComponentItemTooltip(t, i, e)) : (this._lastDataByCoordSys = null, this._hide(e)) + } + }, + _showOrMove: function(t, e) { + var i = t.get("showDelay"); + e = m(e, this), clearTimeout(this._showTimout), i > 0 ? this._showTimout = setTimeout(e, i) : e() + }, + _showAxisTooltip: function(t, e) { + var i = this._ecModel, + o = this._tooltipModel, + a = [e.offsetX, e.offsetY], + r = [], + s = [], + l = Sv([e.tooltipOption, o]), + u = this._renderMode, + h = this._newLine, + c = {}; + XP(t, function(t) { + XP(t.dataByAxis, function(t) { + var e = i.getComponent(t.axisDim + "Axis", t.axisIndex), + o = t.value, + a = []; + if (e && null != o) { + var l = ym(o, e.axis, i, t.seriesDataIndices, t.valueLabelOpt); + d(t.seriesDataIndices, function(r) { + var h = i.getSeriesByIndex(r.seriesIndex), + d = r.dataIndexInside, + f = h && h.getDataParams(d); + if (f.axisDim = t.axisDim, f.axisIndex = t.axisIndex, f.axisType = t.axisType, f.axisId = t.axisId, f.axisValue = Wl(e.axis, o), f.axisValueLabel = l, f) { + s.push(f); + var p, g = h.formatTooltip(d, !0, null, u); + if (w(g)) { + p = g.html; + var m = g.markers; + n(c, m) + } else p = g; + a.push(p) + } + }); + var f = l; + "html" !== u ? r.push(a.join(h)) : r.push((f ? Qo(f) + h : "") + a.join(h)) + } + }) + }, this), r.reverse(), r = r.join(this._newLine + this._newLine); + var f = e.position; + this._showOrMove(l, function() { + this._updateContentNotChangedOnAxis(t) ? this._updatePosition(l, f, a[0], a[1], this._tooltipContent, s) : this._showTooltipContent(l, r, s, Math.random(), a[0], a[1], f, void 0, c) + }) + }, + _showSeriesItemTooltip: function(t, e, i) { + var n = this._ecModel, + o = e.seriesIndex, + a = n.getSeriesByIndex(o), + r = e.dataModel || a, + s = e.dataIndex, + l = e.dataType, + u = r.getData(), + h = Sv([u.getItemModel(s), r, a && (a.coordinateSystem || {}).model, this._tooltipModel]), + c = h.get("trigger"); + if (null == c || "item" === c) { + var d, f, p = r.getDataParams(s, l), + g = r.formatTooltip(s, !1, l, this._renderMode); + w(g) ? (d = g.html, f = g.markers) : (d = g, f = null); + var m = "item_" + r.name + "_" + s; + this._showOrMove(h, function() { + this._showTooltipContent(h, d, p, m, t.offsetX, t.offsetY, t.position, t.target, f) + }), i({ + type: "showTip", + dataIndexInside: s, + dataIndex: u.getRawIndex(s), + seriesIndex: o, + from: this.uid + }) + } + }, + _showComponentItemTooltip: function(t, e, i) { + var n = e.tooltip; + if ("string" == typeof n) { + var o = n; + n = { + content: o, + formatter: o + } + } + var a = new Lo(n, this._tooltipModel, this._ecModel), + r = a.get("content"), + s = Math.random(); + this._showOrMove(a, function() { + this._showTooltipContent(a, r, a.get("formatterParams") || {}, s, t.offsetX, t.offsetY, t.position, e) + }), i({ + type: "showTip", + from: this.uid + }) + }, + _showTooltipContent: function(t, e, i, n, o, a, r, s, l) { + if (this._ticket = "", t.get("showContent") && t.get("show")) { + var u = this._tooltipContent, + h = t.get("formatter"); + r = r || t.get("position"); + var c = e; + if (h && "string" == typeof h) c = ta(h, i, !0); + else if ("function" == typeof h) { + var d = UP(function(e, n) { + e === this._ticket && (u.setContent(n, l, t), this._updatePosition(t, r, o, a, u, i, s)) + }, this); + this._ticket = n, c = h(i, n, d) + } + u.setContent(c, l, t), u.show(t), this._updatePosition(t, r, o, a, u, i, s) + } + }, + _updatePosition: function(t, e, i, n, o, a, r) { + var s = this._api.getWidth(), + l = this._api.getHeight(); + e = e || t.get("position"); + var u = o.getSize(), + h = t.get("align"), + c = t.get("verticalAlign"), + d = r && r.getBoundingRect().clone(); + if (r && d.applyTransform(r.transform), "function" == typeof e && (e = e([i, n], a, o.el, d, { + viewSize: [s, l], + contentSize: u.slice() + })), y(e)) i = jP(e[0], s), n = jP(e[1], l); + else if (w(e)) { + e.width = u[0], e.height = u[1]; + var f = la(e, { + width: s, + height: l + }); + i = f.x, n = f.y, h = null, c = null + } else "string" == typeof e && r ? (i = (p = Av(e, d, u))[0], n = p[1]) : (i = (p = Iv(i, n, o, s, l, h ? null : 20, c ? null : 20))[0], n = p[1]); + if (h && (i -= Dv(h) ? u[0] / 2 : "right" === h ? u[0] : 0), c && (n -= Dv(c) ? u[1] / 2 : "bottom" === c ? u[1] : 0), t.get("confine")) { + var p = Tv(i, n, o, s, l); + i = p[0], n = p[1] + } + o.moveTo(i, n) + }, + _updateContentNotChangedOnAxis: function(t) { + var e = this._lastDataByCoordSys, + i = !!e && e.length === t.length; + return i && XP(e, function(e, n) { + var o = e.dataByAxis || {}, + a = (t[n] || {}).dataByAxis || []; + (i &= o.length === a.length) && XP(o, function(t, e) { + var n = a[e] || {}, + o = t.seriesDataIndices || [], + r = n.seriesDataIndices || []; + (i &= t.value === n.value && t.axisType === n.axisType && t.axisId === n.axisId && o.length === r.length) && XP(o, function(t, e) { + var n = r[e]; + i &= t.seriesIndex === n.seriesIndex && t.dataIndex === n.dataIndex + }) + }) + }), this._lastDataByCoordSys = t, !!i + }, + _hide: function(t) { + this._lastDataByCoordSys = null, t({ + type: "hideTip", + from: this.uid + }) + }, + dispose: function(t, e) { + z_.node || (this._tooltipContent.hide(), lm("itemTooltip", e)) + } + }), Ps({ + type: "showTip", + event: "showTip", + update: "tooltip:manuallyShowTip" + }, function() {}), Ps({ + type: "hideTip", + event: "hideTip", + update: "tooltip:manuallyHideTip" + }, function() {}), Pv.prototype = { + constructor: Pv, + pointToData: function(t, e) { + return this.polar.pointToData(t, e)["radius" === this.dim ? 0 : 1] + }, + dataToRadius: HA.prototype.dataToCoord, + radiusToData: HA.prototype.coordToData + }, u(Pv, HA); + var qP = Bi(); + Nv.prototype = { + constructor: Nv, + pointToData: function(t, e) { + return this.polar.pointToData(t, e)["radius" === this.dim ? 0 : 1] + }, + dataToAngle: HA.prototype.dataToCoord, + angleToData: HA.prototype.coordToData, + calculateCategoryInterval: function() { + var t = this, + e = t.getLabelModel(), + i = t.scale, + n = i.getExtent(), + o = i.count(); + if (n[1] - n[0] < 1) return 0; + var a = n[0], + r = t.dataToCoord(a + 1) - t.dataToCoord(a), + s = Math.abs(r), + l = De(a, e.getFont(), "center", "top"), + u = Math.max(l.height, 7) / s; + isNaN(u) && (u = 1 / 0); + var h = Math.max(0, Math.floor(u)), + c = qP(t.model), + d = c.lastAutoInterval, + f = c.lastTickCount; + return null != d && null != f && Math.abs(d - h) <= 1 && Math.abs(f - o) <= 1 && d > h ? h = d : (c.lastTickCount = o, c.lastAutoInterval = h), h + } + }, u(Nv, HA); + var KP = function(t) { + this.name = t || "", this.cx = 0, this.cy = 0, this._radiusAxis = new Pv, this._angleAxis = new Nv, this._radiusAxis.polar = this._angleAxis.polar = this + }; + KP.prototype = { + type: "polar", + axisPointerEnabled: !0, + constructor: KP, + dimensions: ["radius", "angle"], + model: null, + containPoint: function(t) { + var e = this.pointToCoord(t); + return this._radiusAxis.contain(e[0]) && this._angleAxis.contain(e[1]) + }, + containData: function(t) { + return this._radiusAxis.containData(t[0]) && this._angleAxis.containData(t[1]) + }, + getAxis: function(t) { + return this["_" + t + "Axis"] + }, + getAxes: function() { + return [this._radiusAxis, this._angleAxis] + }, + getAxesByScale: function(t) { + var e = [], + i = this._angleAxis, + n = this._radiusAxis; + return i.scale.type === t && e.push(i), n.scale.type === t && e.push(n), e + }, + getAngleAxis: function() { + return this._angleAxis + }, + getRadiusAxis: function() { + return this._radiusAxis + }, + getOtherAxis: function(t) { + var e = this._angleAxis; + return t === e ? this._radiusAxis : e + }, + getBaseAxis: function() { + return this.getAxesByScale("ordinal")[0] || this.getAxesByScale("time")[0] || this.getAngleAxis() + }, + getTooltipAxes: function(t) { + var e = null != t && "auto" !== t ? this.getAxis(t) : this.getBaseAxis(); + return { + baseAxes: [e], + otherAxes: [this.getOtherAxis(e)] + } + }, + dataToPoint: function(t, e) { + return this.coordToPoint([this._radiusAxis.dataToRadius(t[0], e), this._angleAxis.dataToAngle(t[1], e)]) + }, + pointToData: function(t, e) { + var i = this.pointToCoord(t); + return [this._radiusAxis.radiusToData(i[0], e), this._angleAxis.angleToData(i[1], e)] + }, + pointToCoord: function(t) { + var e = t[0] - this.cx, + i = t[1] - this.cy, + n = this.getAngleAxis(), + o = n.getExtent(), + a = Math.min(o[0], o[1]), + r = Math.max(o[0], o[1]); + n.inverse ? a = r - 360 : r = a + 360; + var s = Math.sqrt(e * e + i * i); + e /= s, i /= s; + for (var l = Math.atan2(-i, e) / Math.PI * 180, u = l < a ? 1 : -1; l < a || l > r;) l += 360 * u; + return [s, l] + }, + coordToPoint: function(t) { + var e = t[0], + i = t[1] / 180 * Math.PI; + return [Math.cos(i) * e + this.cx, -Math.sin(i) * e + this.cy] + } + }; + var $P = YM.extend({ + type: "polarAxis", + axis: null, + getCoordSysModel: function() { + return this.ecModel.queryComponents({ + mainType: "polar", + index: this.option.polarIndex, + id: this.option.polarId + })[0] + } + }); + n($P.prototype, CA); + var JP = { + angle: { + startAngle: 90, + clockwise: !0, + splitNumber: 12, + axisLabel: { + rotate: !1 + } + }, + radius: { + splitNumber: 5 + } + }; + xD("angle", $P, Ov, JP.angle), xD("radius", $P, Ov, JP.radius), Bs({ + type: "polar", + dependencies: ["polarAxis", "angleAxis"], + coordinateSystem: null, + findAxisModel: function(t) { + var e; + return this.ecModel.eachComponent(t, function(t) { + t.getCoordSysModel() === this && (e = t) + }, this), e + }, + defaultOption: { + zlevel: 0, + z: 0, + center: ["50%", "50%"], + radius: "80%" + } + }); + var QP = { + dimensions: KP.prototype.dimensions, + create: function(t, e) { + var i = []; + return t.eachComponent("polar", function(t, n) { + var o = new KP(n); + o.update = Rv; + var a = o.getRadiusAxis(), + r = o.getAngleAxis(), + s = t.findAxisModel("radiusAxis"), + l = t.findAxisModel("angleAxis"); + zv(a, s), zv(r, l), Ev(o, t, e), i.push(o), t.coordinateSystem = o, o.model = t + }), t.eachSeries(function(e) { + if ("polar" === e.get("coordinateSystem")) { + var i = t.queryComponents({ + mainType: "polar", + index: e.get("polarIndex"), + id: e.get("polarId") + })[0]; + e.coordinateSystem = i.coordinateSystem + } + }), i + } + }; + Ba.register("polar", QP); + var tN = ["axisLine", "axisLabel", "axisTick", "splitLine", "splitArea"]; + LD.extend({ + type: "angleAxis", + axisPointerClass: "PolarAxisPointer", + render: function(t, e) { + if (this.group.removeAll(), t.get("show")) { + var n = t.axis, + o = n.polar, + a = o.getRadiusAxis().getExtent(), + r = n.getTicksCoords(), + s = f(n.getViewLabels(), function(t) { + return (t = i(t)).coord = n.dataToCoord(t.tickValue), t + }); + Gv(s), Gv(r), d(tN, function(e) { + !t.get(e + ".show") || n.scale.isBlank() && "axisLine" !== e || this["_" + e](t, o, r, a, s) + }, this) + } + }, + _axisLine: function(t, e, i, n) { + var o = t.getModel("axisLine.lineStyle"), + a = new KS({ + shape: { + cx: e.cx, + cy: e.cy, + r: n[Vv(e)] + }, + style: o.getLineStyle(), + z2: 1, + silent: !0 + }); + a.style.fill = null, this.group.add(a) + }, + _axisTick: function(t, e, i, n) { + var o = t.getModel("axisTick"), + a = (o.get("inside") ? -1 : 1) * o.get("length"), + s = n[Vv(e)], + l = f(i, function(t) { + return new rM({ + shape: Bv(e, [s, s + a], t.coord) + }) + }); + this.group.add(xM(l, { + style: r(o.getModel("lineStyle").getLineStyle(), { + stroke: t.get("axisLine.lineStyle.color") + }) + })) + }, + _axisLabel: function(t, e, i, n, o) { + var a = t.getCategories(!0), + r = t.getModel("axisLabel"), + s = r.get("margin"); + d(o, function(i, o) { + var l = r, + u = i.tickValue, + h = n[Vv(e)], + c = e.coordToPoint([h + s, i.coord]), + d = e.cx, + f = e.cy, + p = Math.abs(c[0] - d) / h < .3 ? "center" : c[0] > d ? "left" : "right", + g = Math.abs(c[1] - f) / h < .3 ? "middle" : c[1] > f ? "top" : "bottom"; + a && a[u] && a[u].textStyle && (l = new Lo(a[u].textStyle, r, r.ecModel)); + var m = new qS({ + silent: !0 + }); + this.group.add(m), fo(m.style, l, { + x: c[0], + y: c[1], + textFill: l.getTextColor() || t.get("axisLine.lineStyle.color"), + text: i.formattedLabel, + textAlign: p, + textVerticalAlign: g + }) + }, this) + }, + _splitLine: function(t, e, i, n) { + var o = t.getModel("splitLine").getModel("lineStyle"), + a = o.get("color"), + s = 0; + a = a instanceof Array ? a : [a]; + for (var l = [], u = 0; u < i.length; u++) { + var h = s++ % a.length; + l[h] = l[h] || [], l[h].push(new rM({ + shape: Bv(e, n, i[u].coord) + })) + } + for (u = 0; u < l.length; u++) this.group.add(xM(l[u], { + style: r({ + stroke: a[u % a.length] + }, o.getLineStyle()), + silent: !0, + z: t.get("z") + })) + }, + _splitArea: function(t, e, i, n) { + if (i.length) { + var o = t.getModel("splitArea").getModel("areaStyle"), + a = o.get("color"), + s = 0; + a = a instanceof Array ? a : [a]; + for (var l = [], u = Math.PI / 180, h = -i[0].coord * u, c = Math.min(n[0], n[1]), d = Math.max(n[0], n[1]), f = t.get("clockwise"), p = 1; p < i.length; p++) { + var g = s++ % a.length; + l[g] = l[g] || [], l[g].push(new QS({ + shape: { + cx: e.cx, + cy: e.cy, + r0: c, + r: d, + startAngle: h, + endAngle: -i[p].coord * u, + clockwise: f + }, + silent: !0 + })), h = -i[p].coord * u + } + for (p = 0; p < l.length; p++) this.group.add(xM(l[p], { + style: r({ + fill: a[p % a.length] + }, o.getAreaStyle()), + silent: !0 + })) + } + } + }); + var eN = ["axisLine", "axisTickLabel", "axisName"], + iN = ["splitLine", "splitArea"]; + LD.extend({ + type: "radiusAxis", + axisPointerClass: "PolarAxisPointer", + render: function(t, e) { + if (this.group.removeAll(), t.get("show")) { + var i = t.axis, + n = i.polar, + o = n.getAngleAxis(), + a = i.getTicksCoords(), + r = o.getExtent()[0], + s = i.getExtent(), + l = Fv(n, t, r), + u = new ID(t, l); + d(eN, u.add, u), this.group.add(u.getGroup()), d(iN, function(e) { + t.get(e + ".show") && !i.scale.isBlank() && this["_" + e](t, n, r, s, a) + }, this) + } + }, + _splitLine: function(t, e, i, n, o) { + var a = t.getModel("splitLine").getModel("lineStyle"), + s = a.get("color"), + l = 0; + s = s instanceof Array ? s : [s]; + for (var u = [], h = 0; h < o.length; h++) { + var c = l++ % s.length; + u[c] = u[c] || [], u[c].push(new KS({ + shape: { + cx: e.cx, + cy: e.cy, + r: o[h].coord + }, + silent: !0 + })) + } + for (h = 0; h < u.length; h++) this.group.add(xM(u[h], { + style: r({ + stroke: s[h % s.length], + fill: null + }, a.getLineStyle()), + silent: !0 + })) + }, + _splitArea: function(t, e, i, n, o) { + if (o.length) { + var a = t.getModel("splitArea").getModel("areaStyle"), + s = a.get("color"), + l = 0; + s = s instanceof Array ? s : [s]; + for (var u = [], h = o[0].coord, c = 1; c < o.length; c++) { + var d = l++ % s.length; + u[d] = u[d] || [], u[d].push(new QS({ + shape: { + cx: e.cx, + cy: e.cy, + r0: h, + r: o[c].coord, + startAngle: 0, + endAngle: 2 * Math.PI + }, + silent: !0 + })), h = o[c].coord + } + for (c = 0; c < u.length; c++) this.group.add(xM(u[c], { + style: r({ + fill: s[c % s.length] + }, a.getAreaStyle()), + silent: !0 + })) + } + } + }); + var nN = um.extend({ + makeElOption: function(t, e, i, n, o) { + var a = i.axis; + "angle" === a.dim && (this.animationThreshold = Math.PI / 18); + var r, s = a.polar, + l = s.getOtherAxis(a).getExtent(); + r = a["dataTo" + aa(a.dim)](e); + var u = n.get("type"); + if (u && "none" !== u) { + var h = gm(n), + c = oN[u](a, s, r, l, h); + c.style = h, t.graphicKey = c.type, t.pointer = c + } + mm(t, i, n, o, Wv(e, i, 0, s, n.get("label.margin"))) + } + }), + oN = { + line: function(t, e, i, n, o) { + return "angle" === t.dim ? { + type: "Line", + shape: wm(e.coordToPoint([n[0], i]), e.coordToPoint([n[1], i])) + } : { + type: "Circle", + shape: { + cx: e.cx, + cy: e.cy, + r: i + } + } + }, + shadow: function(t, e, i, n, o) { + var a = Math.max(1, t.getBandWidth()), + r = Math.PI / 180; + return "angle" === t.dim ? { + type: "Sector", + shape: Sm(e.cx, e.cy, n[0], n[1], (-i - a / 2) * r, (a / 2 - i) * r) + } : { + type: "Sector", + shape: Sm(e.cx, e.cy, i - a / 2, i + a / 2, 0, 2 * Math.PI) + } + } + }; + LD.registerAxisPointerClass("PolarAxisPointer", nN), Os(v(function(t, e, i) { + var n = {}, + o = kv(g(e.getSeriesByType(t), function(t) { + return !e.isSeriesFiltered(t) && t.coordinateSystem && "polar" === t.coordinateSystem.type + })); + e.eachSeriesByType(t, function(t) { + if ("polar" === t.coordinateSystem.type) { + var e = t.getData(), + i = t.coordinateSystem, + a = i.getBaseAxis(), + r = Cv(t), + s = o[Lv(a)][r], + l = s.offset, + u = s.width, + h = i.getOtherAxis(a), + c = t.coordinateSystem.cx, + d = t.coordinateSystem.cy, + f = t.get("barMinHeight") || 0, + p = t.get("barMinAngle") || 0; + n[r] = n[r] || []; + for (var g = e.mapDimension(h.dim), m = e.mapDimension(a.dim), v = hl(e, g), y = h.getExtent()[0], x = 0, _ = e.count(); x < _; x++) { + var w = e.get(g, x), + b = e.get(m, x); + if (!isNaN(w)) { + var S = w >= 0 ? "p" : "n", + M = y; + v && (n[r][b] || (n[r][b] = { + p: y, + n: y + }), M = n[r][b][S]); + var I, T, A, D; + if ("radius" === h.dim) { + var C = h.dataToRadius(w) - y, + L = a.dataToAngle(b); + Math.abs(C) < f && (C = (C < 0 ? -1 : 1) * f), I = M, T = M + C, D = (A = L - l) - u, v && (n[r][b][S] = T) + } else { + var k = h.dataToAngle(w, !0) - y, + P = a.dataToRadius(b); + Math.abs(k) < p && (k = (k < 0 ? -1 : 1) * p), T = (I = P + l) + u, A = M, D = M + k, v && (n[r][b][S] = D) + } + e.setItemLayout(x, { + cx: c, + cy: d, + r0: I, + r: T, + startAngle: -A * Math.PI / 180, + endAngle: -D * Math.PI / 180 + }) + } + } + } + }, this) + }, "bar")), Vs({ + type: "polar" + }), h(YM.extend({ + type: "geo", + coordinateSystem: null, + layoutMode: "box", + init: function(t) { + YM.prototype.init.apply(this, arguments), Ci(t, "label", ["show"]) + }, + optionUpdated: function() { + var t = this.option, + e = this; + t.regions = _C.getFilledRegions(t.regions, t.map, t.nameMap), this._optionModelMap = p(t.regions || [], function(t, i) { + return i.name && t.set(i.name, new Lo(i, e)), t + }, R()), this.updateSelectedMap(t.regions) + }, + defaultOption: { + zlevel: 0, + z: 0, + show: !0, + left: "center", + top: "center", + aspectScale: null, + silent: !1, + map: "", + boundingCoords: null, + center: null, + zoom: 1, + scaleLimit: null, + label: { + show: !1, + color: "#000" + }, + itemStyle: { + borderWidth: .5, + borderColor: "#444", + color: "#eee" + }, + emphasis: { + label: { + show: !0, + color: "rgb(100,0,0)" + }, + itemStyle: { + color: "rgba(255,215,0,0.8)" + } + }, + regions: [] + }, + getRegionModel: function(t) { + return this._optionModelMap.get(t) || new Lo(null, this, this.ecModel) + }, + getFormattedLabel: function(t, e) { + var i = this.getRegionModel(t).get("label." + e + ".formatter"), + n = { + name: t + }; + return "function" == typeof i ? (n.status = e, i(n)) : "string" == typeof i ? i.replace("{a}", null != t ? t : "") : void 0 + }, + setZoom: function(t) { + this.option.zoom = t + }, + setCenter: function(t) { + this.option.center = t + } + }), HD), Vs({ + type: "geo", + init: function(t, e) { + var i = new _c(e, !0); + this._mapDraw = i, this.group.add(i.group) + }, + render: function(t, e, i, n) { + if (!n || "geoToggleSelect" !== n.type || n.from !== this.uid) { + var o = this._mapDraw; + t.get("show") ? o.draw(t, e, i, this, n) : this._mapDraw.group.removeAll(), this.group.silent = t.get("silent") + } + }, + dispose: function() { + this._mapDraw && this._mapDraw.remove() + } + }), Hv("toggleSelected", { + type: "geoToggleSelect", + event: "geoselectchanged" + }), Hv("select", { + type: "geoSelect", + event: "geoselected" + }), Hv("unSelect", { + type: "geoUnSelect", + event: "geounselected" + }); + var aN = ["rect", "polygon", "keep", "clear"], + rN = d, + sN = { + lineX: Kv(0), + lineY: Kv(1), + rect: { + point: function(t, e, i) { + return t && i.boundingRect.contain(t[0], t[1]) + }, + rect: function(t, e, i) { + return t && i.boundingRect.intersect(t) + } + }, + polygon: { + point: function(t, e, i) { + return t && i.boundingRect.contain(t[0], t[1]) && Yl(i.range, t[0], t[1]) + }, + rect: function(t, e, i) { + var n = i.range; + if (!t || n.length <= 1) return !1; + var o = t.x, + a = t.y, + r = t.width, + s = t.height, + l = n[0]; + return !!(Yl(n, o, a) || Yl(n, o + r, a) || Yl(n, o, a + s) || Yl(n, o + r, a + s) || ue.create(t).contain(l[0], l[1]) || Jv(o, a, o + r, a, n) || Jv(o, a, o, a + s, n) || Jv(o + r, a, o + r, a + s, n) || Jv(o, a + s, o + r, a + s, n)) || void 0 + } + } + }, + lN = d, + uN = l, + hN = v, + cN = ["dataToPoint", "pointToData"], + dN = ["grid", "xAxis", "yAxis", "geo", "graph", "polar", "radiusAxis", "angleAxis", "bmap"], + fN = iy.prototype; + fN.setOutputRanges = function(t, e) { + this.matchOutputRanges(t, e, function(t, e, i) { + if ((t.coordRanges || (t.coordRanges = [])).push(e), !t.coordRange) { + t.coordRange = e; + var n = vN[t.brushType](0, i, e); + t.__rangeOffset = { + offset: yN[t.brushType](n.values, t.range, [1, 1]), + xyMinMax: n.xyMinMax + } + } + }) + }, fN.matchOutputRanges = function(t, e, i) { + lN(t, function(t) { + var n = this.findTargetInfo(t, e); + n && !0 !== n && d(n.coordSyses, function(n) { + var o = vN[t.brushType](1, n, t.range); + i(t, o.values, n, e) + }) + }, this) + }, fN.setInputRanges = function(t, e) { + lN(t, function(t) { + var i = this.findTargetInfo(t, e); + if (t.range = t.range || [], i && !0 !== i) { + t.panelId = i.panelId; + var n = vN[t.brushType](0, i.coordSys, t.coordRange), + o = t.__rangeOffset; + t.range = o ? yN[t.brushType](n.values, o.offset, sy(n.xyMinMax, o.xyMinMax)) : n.values + } + }, this) + }, fN.makePanelOpts = function(t, e) { + return f(this._targetInfoList, function(i) { + var n = i.getPanelRect(); + return { + panelId: i.panelId, + defaultBrushType: e && e(i), + clipPath: hp(n), + isTargetByCursor: dp(n, t, i.coordSysModel), + getLinearBrushOtherExtent: cp(n) + } + }) + }, fN.controlSeries = function(t, e, i) { + var n = this.findTargetInfo(t, i); + return !0 === n || n && uN(n.coordSyses, e.coordinateSystem) >= 0 + }, fN.findTargetInfo = function(t, e) { + for (var i = this._targetInfoList, n = oy(e, t), o = 0; o < i.length; o++) { + var a = i[o], + r = t.panelId; + if (r) { + if (a.panelId === r) return a + } else + for (o = 0; o < gN.length; o++) + if (gN[o](n, a)) return a + } + return !0 + }; + var pN = { + grid: function(t, e) { + var i = t.xAxisModels, + n = t.yAxisModels, + o = t.gridModels, + a = R(), + r = {}, + s = {}; + (i || n || o) && (lN(i, function(t) { + var e = t.axis.grid.model; + a.set(e.id, e), r[e.id] = !0 + }), lN(n, function(t) { + var e = t.axis.grid.model; + a.set(e.id, e), s[e.id] = !0 + }), lN(o, function(t) { + a.set(t.id, t), r[t.id] = !0, s[t.id] = !0 + }), a.each(function(t) { + var o = t.coordinateSystem, + a = []; + lN(o.getCartesians(), function(t, e) { + (uN(i, t.getAxis("x").model) >= 0 || uN(n, t.getAxis("y").model) >= 0) && a.push(t) + }), e.push({ + panelId: "grid--" + t.id, + gridModel: t, + coordSysModel: t, + coordSys: a[0], + coordSyses: a, + getPanelRect: mN.grid, + xAxisDeclared: r[t.id], + yAxisDeclared: s[t.id] + }) + })) + }, + geo: function(t, e) { + lN(t.geoModels, function(t) { + var i = t.coordinateSystem; + e.push({ + panelId: "geo--" + t.id, + geoModel: t, + coordSysModel: t, + coordSys: i, + coordSyses: [i], + getPanelRect: mN.geo + }) + }) + } + }, + gN = [function(t, e) { + var i = t.xAxisModel, + n = t.yAxisModel, + o = t.gridModel; + return !o && i && (o = i.axis.grid.model), !o && n && (o = n.axis.grid.model), o && o === e.gridModel + }, function(t, e) { + var i = t.geoModel; + return i && i === e.geoModel + }], + mN = { + grid: function() { + return this.coordSys.grid.getRect().clone() + }, + geo: function() { + var t = this.coordSys, + e = t.getBoundingRect().clone(); + return e.applyTransform(Mo(t)), e + } + }, + vN = { + lineX: hN(ay, 0), + lineY: hN(ay, 1), + rect: function(t, e, i) { + var n = e[cN[t]]([i[0][0], i[1][0]]), + o = e[cN[t]]([i[0][1], i[1][1]]), + a = [ny([n[0], o[0]]), ny([n[1], o[1]])]; + return { + values: a, + xyMinMax: a + } + }, + polygon: function(t, e, i) { + var n = [ + [1 / 0, -1 / 0], + [1 / 0, -1 / 0] + ]; + return { + values: f(i, function(i) { + var o = e[cN[t]](i); + return n[0][0] = Math.min(n[0][0], o[0]), n[1][0] = Math.min(n[1][0], o[1]), n[0][1] = Math.max(n[0][1], o[0]), n[1][1] = Math.max(n[1][1], o[1]), o + }), + xyMinMax: n + } + } + }, + yN = { + lineX: hN(ry, 0), + lineY: hN(ry, 1), + rect: function(t, e, i) { + return [ + [t[0][0] - i[0] * e[0][0], t[0][1] - i[0] * e[0][1]], + [t[1][0] - i[1] * e[1][0], t[1][1] - i[1] * e[1][1]] + ] + }, + polygon: function(t, e, i) { + return f(t, function(t, n) { + return [t[0] - i[0] * e[n][0], t[1] - i[1] * e[n][1]] + }) + } + }, + xN = ["inBrush", "outOfBrush"], + _N = "__ecBrushSelect", + wN = "__ecInBrushSelectEvent", + bN = IT.VISUAL.BRUSH; + Os(bN, function(t, e, i) { + t.eachComponent({ + mainType: "brush" + }, function(e) { + i && "takeGlobalCursor" === i.type && e.setBrushOption("brush" === i.key ? i.brushOption : { + brushType: !1 + }), (e.brushTargetManager = new iy(e.option, t)).setInputRanges(e.areas, t) + }) + }), Es(bN, function(t, e, n) { + var o, a, s = []; + t.eachComponent({ + mainType: "brush" + }, function(e, n) { + function l(t) { + return "all" === m || v[t] + } + + function u(t) { + return !!t.length + } + + function h(t, e) { + var i = t.coordinateSystem; + w |= i.hasAxisBrushed(), l(e) && i.eachActiveState(t.getData(), function(t, e) { + "active" === t && (x[e] = 1) + }) + } + + function c(i, n, o) { + var a = dy(i); + if (a && !fy(e, n) && (d(b, function(n) { + a[n.brushType] && e.brushTargetManager.controlSeries(n, i, t) && o.push(n), w |= u(o) + }), l(n) && u(o))) { + var r = i.getData(); + r.each(function(t) { + cy(a, o, r, t) && (x[t] = 1) + }) + } + } + var p = { + brushId: e.id, + brushIndex: n, + brushName: e.name, + areas: i(e.areas), + selected: [] + }; + s.push(p); + var g = e.option, + m = g.brushLink, + v = [], + x = [], + _ = [], + w = 0; + n || (o = g.throttleType, a = g.throttleDelay); + var b = f(e.areas, function(t) { + return py(r({ + boundingRect: SN[t.brushType](t) + }, t)) + }), + S = Xv(e.option, xN, function(t) { + t.mappingMethod = "fixed" + }); + y(m) && d(m, function(t) { + v[t] = 1 + }), t.eachSeries(function(t, e) { + var i = _[e] = []; + "parallel" === t.subType ? h(t, e) : c(t, e, i) + }), t.eachSeries(function(t, e) { + var i = { + seriesId: t.id, + seriesIndex: e, + seriesName: t.name, + dataIndex: [] + }; + p.selected.push(i); + var n = dy(t), + o = _[e], + a = t.getData(), + r = l(e) ? function(t) { + return x[t] ? (i.dataIndex.push(a.getRawIndex(t)), "inBrush") : "outOfBrush" + } : function(t) { + return cy(n, o, a, t) ? (i.dataIndex.push(a.getRawIndex(t)), "inBrush") : "outOfBrush" + }; + (l(e) ? w : u(o)) && Yv(xN, S, a, r) + }) + }), uy(e, o, a, s, n) + }); + var SN = { + lineX: B, + lineY: B, + rect: function(t) { + return gy(t.range) + }, + polygon: function(t) { + for (var e, i = t.range, n = 0, o = i.length; n < o; n++) { + e = e || [ + [1 / 0, -1 / 0], + [1 / 0, -1 / 0] + ]; + var a = i[n]; + a[0] < e[0][0] && (e[0][0] = a[0]), a[0] > e[0][1] && (e[0][1] = a[0]), a[1] < e[1][0] && (e[1][0] = a[1]), a[1] > e[1][1] && (e[1][1] = a[1]) + } + return e && gy(e) + } + }, + MN = ["#ddd"]; + Bs({ + type: "brush", + dependencies: ["geo", "grid", "xAxis", "yAxis", "parallel", "series"], + defaultOption: { + toolbox: null, + brushLink: null, + seriesIndex: "all", + geoIndex: null, + xAxisIndex: null, + yAxisIndex: null, + brushType: "rect", + brushMode: "single", + transformable: !0, + brushStyle: { + borderWidth: 1, + color: "rgba(120,140,180,0.3)", + borderColor: "rgba(120,140,180,0.8)" + }, + throttleType: "fixRate", + throttleDelay: 0, + removeOnClick: !0, + z: 1e4 + }, + areas: [], + brushType: null, + brushOption: {}, + coordInfoList: [], + optionUpdated: function(t, e) { + var i = this.option; + !e && jv(i, t, ["inBrush", "outOfBrush"]); + var n = i.inBrush = i.inBrush || {}; + i.outOfBrush = i.outOfBrush || { + color: MN + }, n.hasOwnProperty("liftZ") || (n.liftZ = 5) + }, + setAreas: function(t) { + t && (this.areas = f(t, function(t) { + return my(this.option, t) + }, this)) + }, + setBrushOption: function(t) { + this.brushOption = my(this.option, t), this.brushType = this.brushOption.brushType + } + }); + Vs({ + type: "brush", + init: function(t, e) { + this.ecModel = t, this.api = e, this.model, (this._brushController = new Cf(e.getZr())).on("brush", m(this._onBrush, this)).mount() + }, + render: function(t) { + return this.model = t, vy.apply(this, arguments) + }, + updateTransform: vy, + updateView: vy, + dispose: function() { + this._brushController.dispose() + }, + _onBrush: function(t, e) { + var n = this.model.id; + this.model.brushTargetManager.setOutputRanges(t, this.ecModel), (!e.isEnd || e.removeOnClick) && this.api.dispatchAction({ + type: "brush", + brushId: n, + areas: i(t), + $from: n + }) + } + }), Ps({ + type: "brush", + event: "brush" + }, function(t, e) { + e.eachComponent({ + mainType: "brush", + query: t + }, function(e) { + e.setAreas(t.areas) + }) + }), Ps({ + type: "brushSelect", + event: "brushSelected", + update: "none" + }, function() {}); + var IN = {}, + TN = XI.toolbox.brush; + _y.defaultOption = { + show: !0, + type: ["rect", "polygon", "lineX", "lineY", "keep", "clear"], + icon: { + rect: "M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13", + polygon: "M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2", + lineX: "M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4", + lineY: "M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4", + keep: "M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z", + clear: "M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2" + }, + title: i(TN.title) + }; + var AN = _y.prototype; + AN.render = AN.updateView = function(t, e, i) { + var n, o, a; + e.eachComponent({ + mainType: "brush" + }, function(t) { + n = t.brushType, o = t.brushOption.brushMode || "single", a |= t.areas.length + }), this._brushType = n, this._brushMode = o, d(t.get("type", !0), function(e) { + t.setIconStatus(e, ("keep" === e ? "multiple" === o : "clear" === e ? a : e === n) ? "emphasis" : "normal") + }) + }, AN.getIcons = function() { + var t = this.model, + e = t.get("icon", !0), + i = {}; + return d(t.get("type", !0), function(t) { + e[t] && (i[t] = e[t]) + }), i + }, AN.onclick = function(t, e, i) { + var n = this._brushType, + o = this._brushMode; + "clear" === i ? (e.dispatchAction({ + type: "axisAreaSelect", + intervals: [] + }), e.dispatchAction({ + type: "brush", + command: "clear", + areas: [] + })) : e.dispatchAction({ + type: "takeGlobalCursor", + key: "brush", + brushOption: { + brushType: "keep" === i ? n : n !== i && i, + brushMode: "keep" === i ? "multiple" === o ? "single" : "multiple" : o + } + }) + }, yy("brush", _y), Ls(function(t, e) { + var i = t && t.brush; + if (y(i) || (i = i ? [i] : []), i.length) { + var n = []; + d(i, function(t) { + var e = t.hasOwnProperty("toolbox") ? t.toolbox : []; + e instanceof Array && (n = n.concat(e)) + }); + var o = t && t.toolbox; + y(o) && (o = o[0]), o || (o = { + feature: {} + }, t.toolbox = [o]); + var a = o.feature || (o.feature = {}), + r = a.brush || (a.brush = {}), + s = r.type || (r.type = []); + s.push.apply(s, n), Zv(s), e && !s.length && s.push.apply(s, aN) + } + }); + wy.prototype = { + constructor: wy, + type: "calendar", + dimensions: ["time", "value"], + getDimensionsInfo: function() { + return [{ + name: "time", + type: "time" + }, "value"] + }, + getRangeInfo: function() { + return this._rangeInfo + }, + getModel: function() { + return this._model + }, + getRect: function() { + return this._rect + }, + getCellWidth: function() { + return this._sw + }, + getCellHeight: function() { + return this._sh + }, + getOrient: function() { + return this._orient + }, + getFirstDayOfWeek: function() { + return this._firstDayOfWeek + }, + getDateInfo: function(t) { + var e = (t = Uo(t)).getFullYear(), + i = t.getMonth() + 1; + i = i < 10 ? "0" + i : i; + var n = t.getDate(); + n = n < 10 ? "0" + n : n; + var o = t.getDay(); + return o = Math.abs((o + 7 - this.getFirstDayOfWeek()) % 7), { + y: e, + m: i, + d: n, + day: o, + time: t.getTime(), + formatedDate: e + "-" + i + "-" + n, + date: t + } + }, + getNextNDay: function(t, e) { + return 0 === (e = e || 0) ? this.getDateInfo(t) : ((t = new Date(this.getDateInfo(t).time)).setDate(t.getDate() + e), this.getDateInfo(t)) + }, + update: function(t, e) { + function i(t, e) { + return null != t[e] && "auto" !== t[e] + } + this._firstDayOfWeek = +this._model.getModel("dayLabel").get("firstDay"), this._orient = this._model.get("orient"), this._lineWidth = this._model.getModel("itemStyle").getItemStyle().lineWidth || 0, this._rangeInfo = this._getRangeInfo(this._initRangeOption()); + var n = this._rangeInfo.weeks || 1, + o = ["width", "height"], + a = this._model.get("cellSize").slice(), + r = this._model.getBoxLayoutParams(), + s = "horizontal" === this._orient ? [n, 7] : [7, n]; + d([0, 1], function(t) { + i(a, t) && (r[o[t]] = a[t] * s[t]) + }); + var l = { + width: e.getWidth(), + height: e.getHeight() + }, + u = this._rect = la(r, l); + d([0, 1], function(t) { + i(a, t) || (a[t] = u[o[t]] / s[t]) + }), this._sw = a[0], this._sh = a[1] + }, + dataToPoint: function(t, e) { + y(t) && (t = t[0]), null == e && (e = !0); + var i = this.getDateInfo(t), + n = this._rangeInfo, + o = i.formatedDate; + if (e && !(i.time >= n.start.time && i.time < n.end.time + 864e5)) return [NaN, NaN]; + var a = i.day, + r = this._getRangeInfo([n.start.time, o]).nthWeek; + return "vertical" === this._orient ? [this._rect.x + a * this._sw + this._sw / 2, this._rect.y + r * this._sh + this._sh / 2] : [this._rect.x + r * this._sw + this._sw / 2, this._rect.y + a * this._sh + this._sh / 2] + }, + pointToData: function(t) { + var e = this.pointToDate(t); + return e && e.time + }, + dataToRect: function(t, e) { + var i = this.dataToPoint(t, e); + return { + contentShape: { + x: i[0] - (this._sw - this._lineWidth) / 2, + y: i[1] - (this._sh - this._lineWidth) / 2, + width: this._sw - this._lineWidth, + height: this._sh - this._lineWidth + }, + center: i, + tl: [i[0] - this._sw / 2, i[1] - this._sh / 2], + tr: [i[0] + this._sw / 2, i[1] - this._sh / 2], + br: [i[0] + this._sw / 2, i[1] + this._sh / 2], + bl: [i[0] - this._sw / 2, i[1] + this._sh / 2] + } + }, + pointToDate: function(t) { + var e = Math.floor((t[0] - this._rect.x) / this._sw) + 1, + i = Math.floor((t[1] - this._rect.y) / this._sh) + 1, + n = this._rangeInfo.range; + return "vertical" === this._orient ? this._getDateByWeeksAndDay(i, e - 1, n) : this._getDateByWeeksAndDay(e, i - 1, n) + }, + convertToPixel: v(by, "dataToPoint"), + convertFromPixel: v(by, "pointToData"), + _initRangeOption: function() { + var t = this._model.get("range"), + e = t; + if (y(e) && 1 === e.length && (e = e[0]), /^\d{4}$/.test(e) && (t = [e + "-01-01", e + "-12-31"]), /^\d{4}[\/|-]\d{1,2}$/.test(e)) { + var i = this.getDateInfo(e), + n = i.date; + n.setMonth(n.getMonth() + 1); + var o = this.getNextNDay(n, -1); + t = [i.formatedDate, o.formatedDate] + } + /^\d{4}[\/|-]\d{1,2}[\/|-]\d{1,2}$/.test(e) && (t = [e, e]); + var a = this._getRangeInfo(t); + return a.start.time > a.end.time && t.reverse(), t + }, + _getRangeInfo: function(t) { + var e; + (t = [this.getDateInfo(t[0]), this.getDateInfo(t[1])])[0].time > t[1].time && (e = !0, t.reverse()); + var i = Math.floor(t[1].time / 864e5) - Math.floor(t[0].time / 864e5) + 1, + n = new Date(t[0].time), + o = n.getDate(), + a = t[1].date.getDate(); + if (n.setDate(o + i - 1), n.getDate() !== a) + for (var r = n.getTime() - t[1].time > 0 ? 1 : -1; n.getDate() !== a && (n.getTime() - t[1].time) * r > 0;) i -= r, n.setDate(o + i - 1); + var s = Math.floor((i + t[0].day + 6) / 7), + l = e ? 1 - s : s - 1; + return e && t.reverse(), { + range: [t[0].formatedDate, t[1].formatedDate], + start: t[0], + end: t[1], + allDay: i, + weeks: s, + nthWeek: l, + fweek: t[0].day, + lweek: t[1].day + } + }, + _getDateByWeeksAndDay: function(t, e, i) { + var n = this._getRangeInfo(i); + if (t > n.weeks || 0 === t && e < n.fweek || t === n.weeks && e > n.lweek) return !1; + var o = 7 * (t - 1) - n.fweek + e, + a = new Date(n.start.time); + return a.setDate(n.start.d + o), this.getDateInfo(a) + } + }, wy.dimensions = wy.prototype.dimensions, wy.getDimensionsInfo = wy.prototype.getDimensionsInfo, wy.create = function(t, e) { + var i = []; + return t.eachComponent("calendar", function(n) { + var o = new wy(n, t, e); + i.push(o), n.coordinateSystem = o + }), t.eachSeries(function(t) { + "calendar" === t.get("coordinateSystem") && (t.coordinateSystem = i[t.get("calendarIndex") || 0]) + }), i + }, Ba.register("calendar", wy); + var DN = YM.extend({ + type: "calendar", + coordinateSystem: null, + defaultOption: { + zlevel: 0, + z: 2, + left: 80, + top: 60, + cellSize: 20, + orient: "horizontal", + splitLine: { + show: !0, + lineStyle: { + color: "#000", + width: 1, + type: "solid" + } + }, + itemStyle: { + color: "#fff", + borderWidth: 1, + borderColor: "#ccc" + }, + dayLabel: { + show: !0, + firstDay: 0, + position: "start", + margin: "50%", + nameMap: "en", + color: "#000" + }, + monthLabel: { + show: !0, + position: "start", + margin: 5, + align: "center", + nameMap: "en", + formatter: null, + color: "#000" + }, + yearLabel: { + show: !0, + position: null, + margin: 30, + formatter: null, + color: "#ccc", + fontFamily: "sans-serif", + fontWeight: "bolder", + fontSize: 20 + } + }, + init: function(t, e, i, n) { + var o = da(t); + DN.superApply(this, "init", arguments), Sy(t, o) + }, + mergeOption: function(t, e) { + DN.superApply(this, "mergeOption", arguments), Sy(this.option, t) + } + }), + CN = { + EN: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], + CN: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"] + }, + LN = { + EN: ["S", "M", "T", "W", "T", "F", "S"], + CN: ["日", "一", "二", "三", "四", "五", "六"] + }; + Vs({ + type: "calendar", + _tlpoints: null, + _blpoints: null, + _firstDayOfMonth: null, + _firstDayPoints: null, + render: function(t, e, i) { + var n = this.group; + n.removeAll(); + var o = t.coordinateSystem, + a = o.getRangeInfo(), + r = o.getOrient(); + this._renderDayRect(t, a, n), this._renderLines(t, a, r, n), this._renderYearText(t, a, r, n), this._renderMonthText(t, r, n), this._renderWeekText(t, a, r, n) + }, + _renderDayRect: function(t, e, i) { + for (var n = t.coordinateSystem, o = t.getModel("itemStyle").getItemStyle(), a = n.getCellWidth(), r = n.getCellHeight(), s = e.start.time; s <= e.end.time; s = n.getNextNDay(s, 1).time) { + var l = n.dataToRect([s], !1).tl, + u = new aM({ + shape: { + x: l[0], + y: l[1], + width: a, + height: r + }, + cursor: "default", + style: o + }); + i.add(u) + } + }, + _renderLines: function(t, e, i, n) { + function o(e) { + a._firstDayOfMonth.push(r.getDateInfo(e)), a._firstDayPoints.push(r.dataToRect([e], !1).tl); + var o = a._getLinePointsOfOneWeek(t, e, i); + a._tlpoints.push(o[0]), a._blpoints.push(o[o.length - 1]), l && a._drawSplitline(o, s, n) + } + var a = this, + r = t.coordinateSystem, + s = t.getModel("splitLine.lineStyle").getLineStyle(), + l = t.get("splitLine.show"), + u = s.lineWidth; + this._tlpoints = [], this._blpoints = [], this._firstDayOfMonth = [], this._firstDayPoints = []; + for (var h = e.start, c = 0; h.time <= e.end.time; c++) { + o(h.formatedDate), 0 === c && (h = r.getDateInfo(e.start.y + "-" + e.start.m)); + var d = h.date; + d.setMonth(d.getMonth() + 1), h = r.getDateInfo(d) + } + o(r.getNextNDay(e.end.time, 1).formatedDate), l && this._drawSplitline(a._getEdgesPoints(a._tlpoints, u, i), s, n), l && this._drawSplitline(a._getEdgesPoints(a._blpoints, u, i), s, n) + }, + _getEdgesPoints: function(t, e, i) { + var n = [t[0].slice(), t[t.length - 1].slice()], + o = "horizontal" === i ? 0 : 1; + return n[0][o] = n[0][o] - e / 2, n[1][o] = n[1][o] + e / 2, n + }, + _drawSplitline: function(t, e, i) { + var n = new oM({ + z2: 20, + shape: { + points: t + }, + style: e + }); + i.add(n) + }, + _getLinePointsOfOneWeek: function(t, e, i) { + var n = t.coordinateSystem; + e = n.getDateInfo(e); + for (var o = [], a = 0; a < 7; a++) { + var r = n.getNextNDay(e.time, a), + s = n.dataToRect([r.time], !1); + o[2 * r.day] = s.tl, o[2 * r.day + 1] = s["horizontal" === i ? "bl" : "tr"] + } + return o + }, + _formatterLabel: function(t, e) { + return "string" == typeof t && t ? ea(t, e) : "function" == typeof t ? t(e) : e.nameMap + }, + _yearTextPositionControl: function(t, e, i, n, o) { + e = e.slice(); + var a = ["center", "bottom"]; + "bottom" === n ? (e[1] += o, a = ["center", "top"]) : "left" === n ? e[0] -= o : "right" === n ? (e[0] += o, a = ["center", "top"]) : e[1] -= o; + var r = 0; + return "left" !== n && "right" !== n || (r = Math.PI / 2), { + rotation: r, + position: e, + style: { + textAlign: a[0], + textVerticalAlign: a[1] + } + } + }, + _renderYearText: function(t, e, i, n) { + var o = t.getModel("yearLabel"); + if (o.get("show")) { + var a = o.get("margin"), + r = o.get("position"); + r || (r = "horizontal" !== i ? "top" : "left"); + var s = [this._tlpoints[this._tlpoints.length - 1], this._blpoints[0]], + l = (s[0][0] + s[1][0]) / 2, + u = (s[0][1] + s[1][1]) / 2, + h = "horizontal" === i ? 0 : 1, + c = { + top: [l, s[h][1]], + bottom: [l, s[1 - h][1]], + left: [s[1 - h][0], u], + right: [s[h][0], u] + }, + d = e.start.y; + e.end.y > +e.start.y && (d = d + "-" + e.end.y); + var f = o.get("formatter"), + p = { + start: e.start.y, + end: e.end.y, + nameMap: d + }, + g = this._formatterLabel(f, p), + m = new qS({ + z2: 30 + }); + fo(m.style, o, { + text: g + }), m.attr(this._yearTextPositionControl(m, c[r], i, r, a)), n.add(m) + } + }, + _monthTextPositionControl: function(t, e, i, n, o) { + var a = "left", + r = "top", + s = t[0], + l = t[1]; + return "horizontal" === i ? (l += o, e && (a = "center"), "start" === n && (r = "bottom")) : (s += o, e && (r = "middle"), "start" === n && (a = "right")), { + x: s, + y: l, + textAlign: a, + textVerticalAlign: r + } + }, + _renderMonthText: function(t, e, i) { + var n = t.getModel("monthLabel"); + if (n.get("show")) { + var o = n.get("nameMap"), + r = n.get("margin"), + s = n.get("position"), + l = n.get("align"), + u = [this._tlpoints, this._blpoints]; + _(o) && (o = CN[o.toUpperCase()] || []); + var h = "start" === s ? 0 : 1, + c = "horizontal" === e ? 0 : 1; + r = "start" === s ? -r : r; + for (var d = "center" === l, f = 0; f < u[h].length - 1; f++) { + var p = u[h][f].slice(), + g = this._firstDayOfMonth[f]; + if (d) { + var m = this._firstDayPoints[f]; + p[c] = (m[c] + u[0][f + 1][c]) / 2 + } + var v = n.get("formatter"), + y = o[+g.m - 1], + x = { + yyyy: g.y, + yy: (g.y + "").slice(2), + MM: g.m, + M: +g.m, + nameMap: y + }, + w = this._formatterLabel(v, x), + b = new qS({ + z2: 30 + }); + a(fo(b.style, n, { + text: w + }), this._monthTextPositionControl(p, d, e, s, r)), i.add(b) + } + } + }, + _weekTextPositionControl: function(t, e, i, n, o) { + var a = "center", + r = "middle", + s = t[0], + l = t[1], + u = "start" === i; + return "horizontal" === e ? (s = s + n + (u ? 1 : -1) * o[0] / 2, a = u ? "right" : "left") : (l = l + n + (u ? 1 : -1) * o[1] / 2, r = u ? "bottom" : "top"), { + x: s, + y: l, + textAlign: a, + textVerticalAlign: r + } + }, + _renderWeekText: function(t, e, i, n) { + var o = t.getModel("dayLabel"); + if (o.get("show")) { + var r = t.coordinateSystem, + s = o.get("position"), + l = o.get("nameMap"), + u = o.get("margin"), + h = r.getFirstDayOfWeek(); + _(l) && (l = LN[l.toUpperCase()] || []); + var c = r.getNextNDay(e.end.time, 7 - e.lweek).time, + d = [r.getCellWidth(), r.getCellHeight()]; + u = Ro(u, d["horizontal" === i ? 0 : 1]), "start" === s && (c = r.getNextNDay(e.start.time, -(7 + e.fweek)).time, u = -u); + for (var f = 0; f < 7; f++) { + var p = r.getNextNDay(c, f), + g = r.dataToRect([p.time], !1).center, + m = f; + m = Math.abs((f + h) % 7); + var v = new qS({ + z2: 30 + }); + a(fo(v.style, o, { + text: l[m] + }), this._weekTextPositionControl(g, i, s, u, d)), n.add(v) + } + } + } + }), Bs({ + type: "title", + layoutMode: { + type: "box", + ignoreSize: !0 + }, + defaultOption: { + zlevel: 0, + z: 6, + show: !0, + text: "", + target: "blank", + subtext: "", + subtarget: "blank", + left: 0, + top: 0, + backgroundColor: "rgba(0,0,0,0)", + borderColor: "#ccc", + borderWidth: 0, + padding: 5, + itemGap: 10, + textStyle: { + fontSize: 18, + fontWeight: "bolder", + color: "#333" + }, + subtextStyle: { + color: "#aaa" + } + } + }), Vs({ + type: "title", + render: function(t, e, i) { + if (this.group.removeAll(), t.get("show")) { + var n = this.group, + o = t.getModel("textStyle"), + a = t.getModel("subtextStyle"), + r = t.get("textAlign"), + s = t.get("textBaseline"), + l = new qS({ + style: fo({}, o, { + text: t.get("text"), + textFill: o.getTextColor() + }, { + disableBox: !0 + }), + z2: 10 + }), + u = l.getBoundingRect(), + h = t.get("subtext"), + c = new qS({ + style: fo({}, a, { + text: h, + textFill: a.getTextColor(), + y: u.height + t.get("itemGap"), + textVerticalAlign: "top" + }, { + disableBox: !0 + }), + z2: 10 + }), + d = t.get("link"), + f = t.get("sublink"), + p = t.get("triggerEvent", !0); + l.silent = !d && !p, c.silent = !f && !p, d && l.on("click", function() { + window.open(d, "_" + t.get("target")) + }), f && c.on("click", function() { + window.open(f, "_" + t.get("subtarget")) + }), l.eventData = c.eventData = p ? { + componentType: "title", + componentIndex: t.componentIndex + } : null, n.add(l), h && n.add(c); + var g = n.getBoundingRect(), + m = t.getBoxLayoutParams(); + m.width = g.width, m.height = g.height; + var v = la(m, { + width: i.getWidth(), + height: i.getHeight() + }, t.get("padding")); + r || ("middle" === (r = t.get("left") || t.get("right")) && (r = "center"), "right" === r ? v.x += v.width : "center" === r && (v.x += v.width / 2)), s || ("center" === (s = t.get("top") || t.get("bottom")) && (s = "middle"), "bottom" === s ? v.y += v.height : "middle" === s && (v.y += v.height / 2), s = s || "top"), n.attr("position", [v.x, v.y]); + var y = { + textAlign: r, + textVerticalAlign: s + }; + l.setStyle(y), c.setStyle(y), g = n.getBoundingRect(); + var x = v.margin, + _ = t.getItemStyle(["color", "opacity"]); + _.fill = t.get("backgroundColor"); + var w = new aM({ + shape: { + x: g.x - x[3], + y: g.y - x[0], + width: g.width + x[1] + x[3], + height: g.height + x[0] + x[2], + r: t.get("borderRadius") + }, + style: _, + silent: !0 + }); + jn(w), n.add(w) + } + } + }), YM.registerSubTypeDefaulter("dataZoom", function() { + return "slider" + }); + var kN = ["cartesian2d", "polar", "singleAxis"], + PN = function(t, e) { + var i = f(t = t.slice(), aa), + n = f(e = (e || []).slice(), aa); + return function(o, a) { + d(t, function(t, r) { + for (var s = { + name: t, + capital: i[r] + }, l = 0; l < e.length; l++) s[e[l]] = t + n[l]; + o.call(a, s) + }) + } + }(["x", "y", "z", "radius", "angle", "single"], ["axisIndex", "axis", "index", "id"]), + NN = d, + ON = Bo, + EN = function(t, e, i, n) { + this._dimName = t, this._axisIndex = e, this._valueWindow, this._percentWindow, this._dataExtent, this._minMaxSpan, this.ecModel = n, this._dataZoomModel = i + }; + EN.prototype = { + constructor: EN, + hostedBy: function(t) { + return this._dataZoomModel === t + }, + getDataValueWindow: function() { + return this._valueWindow.slice() + }, + getDataPercentWindow: function() { + return this._percentWindow.slice() + }, + getTargetSeriesModels: function() { + var t = [], + e = this.ecModel; + return e.eachSeries(function(i) { + if (My(i.get("coordinateSystem"))) { + var n = this._dimName, + o = e.queryComponents({ + mainType: n + "Axis", + index: i.get(n + "AxisIndex"), + id: i.get(n + "AxisId") + })[0]; + this._axisIndex === (o && o.componentIndex) && t.push(i) + } + }, this), t + }, + getAxisModel: function() { + return this.ecModel.getComponent(this._dimName + "Axis", this._axisIndex) + }, + getOtherAxisModel: function() { + var t, e, i = this._dimName, + n = this.ecModel, + o = this.getAxisModel(); + "x" === i || "y" === i ? (e = "gridIndex", t = "x" === i ? "y" : "x") : (e = "polarIndex", t = "angle" === i ? "radius" : "angle"); + var a; + return n.eachComponent(t + "Axis", function(t) { + (t.get(e) || 0) === (o.get(e) || 0) && (a = t) + }), a + }, + getMinMaxSpan: function() { + return i(this._minMaxSpan) + }, + calculateDataWindow: function(t) { + var e = this._dataExtent, + i = this.getAxisModel().axis.scale, + n = this._dataZoomModel.getRangePropMode(), + o = [0, 100], + a = [t.start, t.end], + r = []; + return NN(["startValue", "endValue"], function(e) { + r.push(null != t[e] ? i.parse(t[e]) : null) + }), NN([0, 1], function(t) { + var s = r[t], + l = a[t]; + "percent" === n[t] ? (null == l && (l = o[t]), s = i.parse(Eo(l, o, e, !0))) : l = Eo(s, e, o, !0), r[t] = s, a[t] = l + }), { + valueWindow: ON(r), + percentWindow: ON(a) + } + }, + reset: function(t) { + if (t === this._dataZoomModel) { + var e = this.getTargetSeriesModels(); + this._dataExtent = Ty(this, this._dimName, e); + var i = this.calculateDataWindow(t.option); + this._valueWindow = i.valueWindow, this._percentWindow = i.percentWindow, Cy(this), Dy(this) + } + }, + restore: function(t) { + t === this._dataZoomModel && (this._valueWindow = this._percentWindow = null, Dy(this, !0)) + }, + filterData: function(t, e) { + function i(t) { + return t >= r[0] && t <= r[1] + } + if (t === this._dataZoomModel) { + var n = this._dimName, + o = this.getTargetSeriesModels(), + a = t.get("filterMode"), + r = this._valueWindow; + "none" !== a && NN(o, function(t) { + var e = t.getData(), + o = e.mapDimension(n, !0); + o.length && ("weakFilter" === a ? e.filterSelf(function(t) { + for (var i, n, a, s = 0; s < o.length; s++) { + var l = e.get(o[s], t), + u = !isNaN(l), + h = l < r[0], + c = l > r[1]; + if (u && !h && !c) return !0; + u && (a = !0), h && (i = !0), c && (n = !0) + } + return a && i && n + }) : NN(o, function(n) { + if ("empty" === a) t.setData(e.map(n, function(t) { + return i(t) ? t : NaN + })); + else { + var o = {}; + o[n] = r, e.selectRange(o) + } + }), NN(o, function(t) { + e.setApproximateExtent(r, t) + })) + }) + } + } + }; + var RN = d, + zN = PN, + BN = Bs({ + type: "dataZoom", + dependencies: ["xAxis", "yAxis", "zAxis", "radiusAxis", "angleAxis", "singleAxis", "series"], + defaultOption: { + zlevel: 0, + z: 4, + orient: null, + xAxisIndex: null, + yAxisIndex: null, + filterMode: "filter", + throttle: null, + start: 0, + end: 100, + startValue: null, + endValue: null, + minSpan: null, + maxSpan: null, + minValueSpan: null, + maxValueSpan: null, + rangeMode: null + }, + init: function(t, e, i) { + this._dataIntervalByAxis = {}, this._dataInfo = {}, this._axisProxies = {}, this.textStyleModel, this._autoThrottle = !0, this._rangePropMode = ["percent", "percent"]; + var n = Ly(t); + this.mergeDefaultAndTheme(t, i), this.doInit(n) + }, + mergeOption: function(t) { + var e = Ly(t); + n(this.option, t, !0), this.doInit(e) + }, + doInit: function(t) { + var e = this.option; + z_.canvasSupported || (e.realtime = !1), this._setDefaultThrottle(t), ky(this, t), RN([ + ["start", "startValue"], + ["end", "endValue"] + ], function(t, i) { + "value" === this._rangePropMode[i] && (e[t[0]] = null) + }, this), this.textStyleModel = this.getModel("textStyle"), this._resetTarget(), this._giveAxisProxies() + }, + _giveAxisProxies: function() { + var t = this._axisProxies; + this.eachTargetAxis(function(e, i, n, o) { + var a = this.dependentModels[e.axis][i], + r = a.__dzAxisProxy || (a.__dzAxisProxy = new EN(e.name, i, this, o)); + t[e.name + "_" + i] = r + }, this) + }, + _resetTarget: function() { + var t = this.option, + e = this._judgeAutoMode(); + zN(function(e) { + var i = e.axisIndex; + t[i] = Di(t[i]) + }, this), "axisIndex" === e ? this._autoSetAxisIndex() : "orient" === e && this._autoSetOrient() + }, + _judgeAutoMode: function() { + var t = this.option, + e = !1; + zN(function(i) { + null != t[i.axisIndex] && (e = !0) + }, this); + var i = t.orient; + return null == i && e ? "orient" : e ? void 0 : (null == i && (t.orient = "horizontal"), "axisIndex") + }, + _autoSetAxisIndex: function() { + var t = !0, + e = this.get("orient", !0), + i = this.option, + n = this.dependentModels; + if (t) { + var o = "vertical" === e ? "y" : "x"; + n[o + "Axis"].length ? (i[o + "AxisIndex"] = [0], t = !1) : RN(n.singleAxis, function(n) { + t && n.get("orient", !0) === e && (i.singleAxisIndex = [n.componentIndex], t = !1) + }) + } + t && zN(function(e) { + if (t) { + var n = [], + o = this.dependentModels[e.axis]; + if (o.length && !n.length) + for (var a = 0, r = o.length; a < r; a++) "category" === o[a].get("type") && n.push(a); + i[e.axisIndex] = n, n.length && (t = !1) + } + }, this), t && this.ecModel.eachSeries(function(t) { + this._isSeriesHasAllAxesTypeOf(t, "value") && zN(function(e) { + var n = i[e.axisIndex], + o = t.get(e.axisIndex), + a = t.get(e.axisId); + l(n, o = t.ecModel.queryComponents({ + mainType: e.axis, + index: o, + id: a + })[0].componentIndex) < 0 && n.push(o) + }) + }, this) + }, + _autoSetOrient: function() { + var t; + this.eachTargetAxis(function(e) { + !t && (t = e.name) + }, this), this.option.orient = "y" === t ? "vertical" : "horizontal" + }, + _isSeriesHasAllAxesTypeOf: function(t, e) { + var i = !0; + return zN(function(n) { + var o = t.get(n.axisIndex), + a = this.dependentModels[n.axis][o]; + a && a.get("type") === e || (i = !1) + }, this), i + }, + _setDefaultThrottle: function(t) { + if (t.hasOwnProperty("throttle") && (this._autoThrottle = !1), this._autoThrottle) { + var e = this.ecModel.option; + this.option.throttle = e.animation && e.animationDurationUpdate > 0 ? 100 : 20 + } + }, + getFirstTargetAxisModel: function() { + var t; + return zN(function(e) { + if (null == t) { + var i = this.get(e.axisIndex); + i.length && (t = this.dependentModels[e.axis][i[0]]) + } + }, this), t + }, + eachTargetAxis: function(t, e) { + var i = this.ecModel; + zN(function(n) { + RN(this.get(n.axisIndex), function(o) { + t.call(e, n, o, this, i) + }, this) + }, this) + }, + getAxisProxy: function(t, e) { + return this._axisProxies[t + "_" + e] + }, + getAxisModel: function(t, e) { + var i = this.getAxisProxy(t, e); + return i && i.getAxisModel() + }, + setRawRange: function(t, e) { + var i = this.option; + RN([ + ["start", "startValue"], + ["end", "endValue"] + ], function(e) { + null == t[e[0]] && null == t[e[1]] || (i[e[0]] = t[e[0]], i[e[1]] = t[e[1]]) + }, this), !e && ky(this, t) + }, + getPercentRange: function() { + var t = this.findRepresentativeAxisProxy(); + if (t) return t.getDataPercentWindow() + }, + getValueRange: function(t, e) { + if (null != t || null != e) return this.getAxisProxy(t, e).getDataValueWindow(); + var i = this.findRepresentativeAxisProxy(); + return i ? i.getDataValueWindow() : void 0 + }, + findRepresentativeAxisProxy: function(t) { + if (t) return t.__dzAxisProxy; + var e = this._axisProxies; + for (var i in e) + if (e.hasOwnProperty(i) && e[i].hostedBy(this)) return e[i]; + for (var i in e) + if (e.hasOwnProperty(i) && !e[i].hostedBy(this)) return e[i] + }, + getRangePropMode: function() { + return this._rangePropMode.slice() + } + }), + VN = EI.extend({ + type: "dataZoom", + render: function(t, e, i, n) { + this.dataZoomModel = t, this.ecModel = e, this.api = i + }, + getTargetCoordInfo: function() { + function t(t, e, i, n) { + for (var o, a = 0; a < i.length; a++) + if (i[a].model === t) { + o = i[a]; + break + } o || i.push(o = { + model: t, + axisModels: [], + coordIndex: n + }), o.axisModels.push(e) + } + var e = this.dataZoomModel, + i = this.ecModel, + n = {}; + return e.eachTargetAxis(function(e, o) { + var a = i.getComponent(e.axis, o); + if (a) { + var r = a.getCoordSysModel(); + r && t(r, a, n[r.mainType] || (n[r.mainType] = []), r.componentIndex) + } + }, this), n + } + }), + GN = (BN.extend({ + type: "dataZoom.slider", + layoutMode: "box", + defaultOption: { + show: !0, + right: "ph", + top: "ph", + width: "ph", + height: "ph", + left: null, + bottom: null, + backgroundColor: "rgba(47,69,84,0)", + dataBackground: { + lineStyle: { + color: "#2f4554", + width: .5, + opacity: .3 + }, + areaStyle: { + color: "rgba(47,69,84,0.3)", + opacity: .3 + } + }, + borderColor: "#ddd", + fillerColor: "rgba(167,183,204,0.4)", + handleIcon: "M8.2,13.6V3.9H6.3v9.7H3.1v14.9h3.3v9.7h1.8v-9.7h3.3V13.6H8.2z M9.7,24.4H4.8v-1.4h4.9V24.4z M9.7,19.1H4.8v-1.4h4.9V19.1z", + handleSize: "100%", + handleStyle: { + color: "#a7b7cc" + }, + labelPrecision: null, + labelFormatter: null, + showDetail: !0, + showDataShadow: "auto", + realtime: !0, + zoomLock: !1, + textStyle: { + color: "#333" + } + } + }), aM), + FN = Eo, + WN = Bo, + HN = m, + ZN = d, + UN = "horizontal", + XN = 5, + jN = ["line", "bar", "candlestick", "scatter"], + YN = VN.extend({ + type: "dataZoom.slider", + init: function(t, e) { + this._displayables = {}, this._orient, this._range, this._handleEnds, this._size, this._handleWidth, this._handleHeight, this._location, this._dragging, this._dataShadowInfo, this.api = e + }, + render: function(t, e, i, n) { + YN.superApply(this, "render", arguments), Lr(this, "_dispatchZoomAction", this.dataZoomModel.get("throttle"), "fixRate"), this._orient = t.get("orient"), !1 !== this.dataZoomModel.get("show") ? (n && "dataZoom" === n.type && n.from === this.uid || this._buildView(), this._updateView()) : this.group.removeAll() + }, + remove: function() { + YN.superApply(this, "remove", arguments), kr(this, "_dispatchZoomAction") + }, + dispose: function() { + YN.superApply(this, "dispose", arguments), kr(this, "_dispatchZoomAction") + }, + _buildView: function() { + var t = this.group; + t.removeAll(), this._resetLocation(), this._resetInterval(); + var e = this._displayables.barGroup = new Zw; + this._renderBackground(), this._renderHandle(), this._renderDataShadow(), t.add(e), this._positionGroup() + }, + _resetLocation: function() { + var t = this.dataZoomModel, + e = this.api, + i = this._findCoordRect(), + n = { + width: e.getWidth(), + height: e.getHeight() + }, + o = this._orient === UN ? { + right: n.width - i.x - i.width, + top: n.height - 30 - 7, + width: i.width, + height: 30 + } : { + right: 7, + top: i.y, + width: 30, + height: i.height + }, + a = da(t.option); + d(["right", "top", "width", "height"], function(t) { + "ph" === a[t] && (a[t] = o[t]) + }); + var r = la(a, n, t.padding); + this._location = { + x: r.x, + y: r.y + }, this._size = [r.width, r.height], "vertical" === this._orient && this._size.reverse() + }, + _positionGroup: function() { + var t = this.group, + e = this._location, + i = this._orient, + n = this.dataZoomModel.getFirstTargetAxisModel(), + o = n && n.get("inverse"), + a = this._displayables.barGroup, + r = (this._dataShadowInfo || {}).otherAxisInverse; + a.attr(i !== UN || o ? i === UN && o ? { + scale: r ? [-1, 1] : [-1, -1] + } : "vertical" !== i || o ? { + scale: r ? [-1, -1] : [-1, 1], + rotation: Math.PI / 2 + } : { + scale: r ? [1, -1] : [1, 1], + rotation: Math.PI / 2 + } : { + scale: r ? [1, 1] : [1, -1] + }); + var s = t.getBoundingRect([a]); + t.attr("position", [e.x - s.x, e.y - s.y]) + }, + _getViewExtent: function() { + return [0, this._size[0]] + }, + _renderBackground: function() { + var t = this.dataZoomModel, + e = this._size, + i = this._displayables.barGroup; + i.add(new GN({ + silent: !0, + shape: { + x: 0, + y: 0, + width: e[0], + height: e[1] + }, + style: { + fill: t.get("backgroundColor") + }, + z2: -40 + })), i.add(new GN({ + shape: { + x: 0, + y: 0, + width: e[0], + height: e[1] + }, + style: { + fill: "transparent" + }, + z2: 0, + onclick: m(this._onClickPanelClick, this) + })) + }, + _renderDataShadow: function() { + var t = this._dataShadowInfo = this._prepareDataShadowInfo(); + if (t) { + var e = this._size, + i = t.series, + n = i.getRawData(), + o = i.getShadowDim ? i.getShadowDim() : t.otherDim; + if (null != o) { + var a = n.getDataExtent(o), + s = .3 * (a[1] - a[0]); + a = [a[0] - s, a[1] + s]; + var l, u = [0, e[1]], + h = [0, e[0]], + c = [ + [e[0], 0], + [0, 0] + ], + d = [], + f = h[1] / (n.count() - 1), + p = 0, + g = Math.round(n.count() / e[0]); + n.each([o], function(t, e) { + if (g > 0 && e % g) p += f; + else { + var i = null == t || isNaN(t) || "" === t, + n = i ? 0 : FN(t, a, u, !0); + i && !l && e ? (c.push([c[c.length - 1][0], 0]), d.push([d[d.length - 1][0], 0])) : !i && l && (c.push([p, 0]), d.push([p, 0])), c.push([p, n]), d.push([p, n]), p += f, l = i + } + }); + var m = this.dataZoomModel; + this._displayables.barGroup.add(new nM({ + shape: { + points: c + }, + style: r({ + fill: m.get("dataBackgroundColor") + }, m.getModel("dataBackground.areaStyle").getAreaStyle()), + silent: !0, + z2: -20 + })), this._displayables.barGroup.add(new oM({ + shape: { + points: d + }, + style: m.getModel("dataBackground.lineStyle").getLineStyle(), + silent: !0, + z2: -19 + })) + } + } + }, + _prepareDataShadowInfo: function() { + var t = this.dataZoomModel, + e = t.get("showDataShadow"); + if (!1 !== e) { + var i, n = this.ecModel; + return t.eachTargetAxis(function(o, a) { + d(t.getAxisProxy(o.name, a).getTargetSeriesModels(), function(t) { + if (!(i || !0 !== e && l(jN, t.get("type")) < 0)) { + var r, s = n.getComponent(o.axis, a).axis, + u = Py(o.name), + h = t.coordinateSystem; + null != u && h.getOtherAxis && (r = h.getOtherAxis(s).inverse), u = t.getData().mapDimension(u), i = { + thisAxis: s, + series: t, + thisDim: o.name, + otherDim: u, + otherAxisInverse: r + } + } + }, this) + }, this), i + } + }, + _renderHandle: function() { + var t = this._displayables, + e = t.handles = [], + i = t.handleLabels = [], + n = this._displayables.barGroup, + o = this._size, + a = this.dataZoomModel; + n.add(t.filler = new GN({ + draggable: !0, + cursor: Ny(this._orient), + drift: HN(this._onDragMove, this, "all"), + onmousemove: function(t) { + lw(t.event) + }, + ondragstart: HN(this._showDataInfo, this, !0), + ondragend: HN(this._onDragEnd, this), + onmouseover: HN(this._showDataInfo, this, !0), + onmouseout: HN(this._showDataInfo, this, !1), + style: { + fill: a.get("fillerColor"), + textPosition: "inside" + } + })), n.add(new GN(jn({ + silent: !0, + shape: { + x: 0, + y: 0, + width: o[0], + height: o[1] + }, + style: { + stroke: a.get("dataBackgroundColor") || a.get("borderColor"), + lineWidth: 1, + fill: "rgba(0,0,0,0)" + } + }))), ZN([0, 1], function(t) { + var o = Co(a.get("handleIcon"), { + cursor: Ny(this._orient), + draggable: !0, + drift: HN(this._onDragMove, this, t), + onmousemove: function(t) { + lw(t.event) + }, + ondragend: HN(this._onDragEnd, this), + onmouseover: HN(this._showDataInfo, this, !0), + onmouseout: HN(this._showDataInfo, this, !1) + }, { + x: -1, + y: 0, + width: 2, + height: 2 + }), + r = o.getBoundingRect(); + this._handleHeight = Ro(a.get("handleSize"), this._size[1]), this._handleWidth = r.width / r.height * this._handleHeight, o.setStyle(a.getModel("handleStyle").getItemStyle()); + var s = a.get("handleColor"); + null != s && (o.style.fill = s), n.add(e[t] = o); + var l = a.textStyleModel; + this.group.add(i[t] = new qS({ + silent: !0, + invisible: !0, + style: { + x: 0, + y: 0, + text: "", + textVerticalAlign: "middle", + textAlign: "center", + textFill: l.getTextColor(), + textFont: l.getFont() + }, + z2: 10 + })) + }, this) + }, + _resetInterval: function() { + var t = this._range = this.dataZoomModel.getPercentRange(), + e = this._getViewExtent(); + this._handleEnds = [FN(t[0], [0, 100], e, !0), FN(t[1], [0, 100], e, !0)] + }, + _updateInterval: function(t, e) { + var i = this.dataZoomModel, + n = this._handleEnds, + o = this._getViewExtent(), + a = i.findRepresentativeAxisProxy().getMinMaxSpan(), + r = [0, 100]; + EL(e, n, o, i.get("zoomLock") ? "all" : t, null != a.minSpan ? FN(a.minSpan, r, o, !0) : null, null != a.maxSpan ? FN(a.maxSpan, r, o, !0) : null); + var s = this._range, + l = this._range = WN([FN(n[0], o, r, !0), FN(n[1], o, r, !0)]); + return !s || s[0] !== l[0] || s[1] !== l[1] + }, + _updateView: function(t) { + var e = this._displayables, + i = this._handleEnds, + n = WN(i.slice()), + o = this._size; + ZN([0, 1], function(t) { + var n = e.handles[t], + a = this._handleHeight; + n.attr({ + scale: [a / 2, a / 2], + position: [i[t], o[1] / 2 - a / 2] + }) + }, this), e.filler.setShape({ + x: n[0], + y: 0, + width: n[1] - n[0], + height: o[1] + }), this._updateDataInfo(t) + }, + _updateDataInfo: function(t) { + function e(t) { + var e = Mo(n.handles[t].parent, this.group), + i = To(0 === t ? "right" : "left", e), + s = this._handleWidth / 2 + XN, + l = Io([c[t] + (0 === t ? -s : s), this._size[1] / 2], e); + o[t].setStyle({ + x: l[0], + y: l[1], + textVerticalAlign: a === UN ? "middle" : i, + textAlign: a === UN ? i : "center", + text: r[t] + }) + } + var i = this.dataZoomModel, + n = this._displayables, + o = n.handleLabels, + a = this._orient, + r = ["", ""]; + if (i.get("showDetail")) { + var s = i.findRepresentativeAxisProxy(); + if (s) { + var l = s.getAxisModel().axis, + u = this._range, + h = t ? s.calculateDataWindow({ + start: u[0], + end: u[1] + }).valueWindow : s.getDataValueWindow(); + r = [this._formatLabel(h[0], l), this._formatLabel(h[1], l)] + } + } + var c = WN(this._handleEnds.slice()); + e.call(this, 0), e.call(this, 1) + }, + _formatLabel: function(t, e) { + var i = this.dataZoomModel, + n = i.get("labelFormatter"), + o = i.get("labelPrecision"); + null != o && "auto" !== o || (o = e.getPixelPrecision()); + var a = null == t || isNaN(t) ? "" : "category" === e.type || "time" === e.type ? e.scale.getLabel(Math.round(t)) : t.toFixed(Math.min(o, 20)); + return x(n) ? n(t, a) : _(n) ? n.replace("{value}", a) : a + }, + _showDataInfo: function(t) { + t = this._dragging || t; + var e = this._displayables.handleLabels; + e[0].attr("invisible", !t), e[1].attr("invisible", !t) + }, + _onDragMove: function(t, e, i) { + this._dragging = !0; + var n = Io([e, i], this._displayables.barGroup.getLocalTransform(), !0), + o = this._updateInterval(t, n[0]), + a = this.dataZoomModel.get("realtime"); + this._updateView(!a), o && a && this._dispatchZoomAction() + }, + _onDragEnd: function() { + this._dragging = !1, this._showDataInfo(!1), !this.dataZoomModel.get("realtime") && this._dispatchZoomAction() + }, + _onClickPanelClick: function(t) { + var e = this._size, + i = this._displayables.barGroup.transformCoordToLocal(t.offsetX, t.offsetY); + if (!(i[0] < 0 || i[0] > e[0] || i[1] < 0 || i[1] > e[1])) { + var n = this._handleEnds, + o = (n[0] + n[1]) / 2, + a = this._updateInterval("all", i[0] - o); + this._updateView(), a && this._dispatchZoomAction() + } + }, + _dispatchZoomAction: function() { + var t = this._range; + this.api.dispatchAction({ + type: "dataZoom", + from: this.uid, + dataZoomId: this.dataZoomModel.id, + start: t[0], + end: t[1] + }) + }, + _findCoordRect: function() { + var t; + if (ZN(this.getTargetCoordInfo(), function(e) { + if (!t && e.length) { + var i = e[0].model.coordinateSystem; + t = i.getRect && i.getRect() + } + }), !t) { + var e = this.api.getWidth(), + i = this.api.getHeight(); + t = { + x: .2 * e, + y: .2 * i, + width: .6 * e, + height: .6 * i + } + } + return t + } + }); + BN.extend({ + type: "dataZoom.inside", + defaultOption: { + disabled: !1, + zoomLock: !1, + zoomOnMouseWheel: !0, + moveOnMouseMove: !0, + moveOnMouseWheel: !1, + preventDefaultMouseMove: !0 + } + }); + var qN = "\0_ec_dataZoom_roams", + KN = m, + $N = VN.extend({ + type: "dataZoom.inside", + init: function(t, e) { + this._range + }, + render: function(t, e, i, n) { + $N.superApply(this, "render", arguments), this._range = t.getPercentRange(), d(this.getTargetCoordInfo(), function(e, n) { + var o = f(e, function(t) { + return Ry(t.model) + }); + d(e, function(e) { + var a = e.model, + r = {}; + d(["pan", "zoom", "scrollMove"], function(t) { + r[t] = KN(JN[t], this, e, n) + }, this), Oy(i, { + coordId: Ry(a), + allCoordIds: o, + containsPoint: function(t, e, i) { + return a.coordinateSystem.containPoint([e, i]) + }, + dataZoomId: t.id, + dataZoomModel: t, + getRange: r + }) + }, this) + }, this) + }, + dispose: function() { + Ey(this.api, this.dataZoomModel.id), $N.superApply(this, "dispose", arguments), this._range = null + } + }), + JN = { + zoom: function(t, e, i, n) { + var o = this._range, + a = o.slice(), + r = t.axisModels[0]; + if (r) { + var s = QN[e](null, [n.originX, n.originY], r, i, t), + l = (s.signal > 0 ? s.pixelStart + s.pixelLength - s.pixel : s.pixel - s.pixelStart) / s.pixelLength * (a[1] - a[0]) + a[0], + u = Math.max(1 / n.scale, 0); + a[0] = (a[0] - l) * u + l, a[1] = (a[1] - l) * u + l; + var h = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan(); + return EL(0, a, [0, 100], 0, h.minSpan, h.maxSpan), this._range = a, o[0] !== a[0] || o[1] !== a[1] ? a : void 0 + } + }, + pan: Wy(function(t, e, i, n, o, a) { + var r = QN[n]([a.oldX, a.oldY], [a.newX, a.newY], e, o, i); + return r.signal * (t[1] - t[0]) * r.pixel / r.pixelLength + }), + scrollMove: Wy(function(t, e, i, n, o, a) { + return QN[n]([0, 0], [a.scrollDelta, a.scrollDelta], e, o, i).signal * (t[1] - t[0]) * a.scrollDelta + }) + }, + QN = { + grid: function(t, e, i, n, o) { + var a = i.axis, + r = {}, + s = o.model.coordinateSystem.getRect(); + return t = t || [0, 0], "x" === a.dim ? (r.pixel = e[0] - t[0], r.pixelLength = s.width, r.pixelStart = s.x, r.signal = a.inverse ? 1 : -1) : (r.pixel = e[1] - t[1], r.pixelLength = s.height, r.pixelStart = s.y, r.signal = a.inverse ? -1 : 1), r + }, + polar: function(t, e, i, n, o) { + var a = i.axis, + r = {}, + s = o.model.coordinateSystem, + l = s.getRadiusAxis().getExtent(), + u = s.getAngleAxis().getExtent(); + return t = t ? s.pointToCoord(t) : [0, 0], e = s.pointToCoord(e), "radiusAxis" === i.mainType ? (r.pixel = e[0] - t[0], r.pixelLength = l[1] - l[0], r.pixelStart = l[0], r.signal = a.inverse ? 1 : -1) : (r.pixel = e[1] - t[1], r.pixelLength = u[1] - u[0], r.pixelStart = u[0], r.signal = a.inverse ? -1 : 1), r + }, + singleAxis: function(t, e, i, n, o) { + var a = i.axis, + r = o.model.coordinateSystem.getRect(), + s = {}; + return t = t || [0, 0], "horizontal" === a.orient ? (s.pixel = e[0] - t[0], s.pixelLength = r.width, s.pixelStart = r.x, s.signal = a.inverse ? 1 : -1) : (s.pixel = e[1] - t[1], s.pixelLength = r.height, s.pixelStart = r.y, s.signal = a.inverse ? -1 : 1), s + } + }; + ks({ + getTargetSeries: function(t) { + var e = R(); + return t.eachComponent("dataZoom", function(t) { + t.eachTargetAxis(function(t, i, n) { + d(n.getAxisProxy(t.name, i).getTargetSeriesModels(), function(t) { + e.set(t.uid, t) + }) + }) + }), e + }, + modifyOutputEnd: !0, + overallReset: function(t, e) { + t.eachComponent("dataZoom", function(t) { + t.eachTargetAxis(function(t, i, n) { + n.getAxisProxy(t.name, i).reset(n, e) + }), t.eachTargetAxis(function(t, i, n) { + n.getAxisProxy(t.name, i).filterData(n, e) + }) + }), t.eachComponent("dataZoom", function(t) { + var e = t.findRepresentativeAxisProxy(), + i = e.getDataPercentWindow(), + n = e.getDataValueWindow(); + t.setRawRange({ + start: i[0], + end: i[1], + startValue: n[0], + endValue: n[1] + }, !0) + }) + } + }), Ps("dataZoom", function(t, e) { + var i = Iy(m(e.eachComponent, e, "dataZoom"), PN, function(t, e) { + return t.get(e.axisIndex) + }), + n = []; + e.eachComponent({ + mainType: "dataZoom", + query: t + }, function(t, e) { + n.push.apply(n, i(t).nodes) + }), d(n, function(e, i) { + e.setRawRange({ + start: t.start, + end: t.end, + startValue: t.startValue, + endValue: t.endValue + }) + }) + }); + var tO = d, + eO = function(t) { + var e = t && t.visualMap; + y(e) || (e = e ? [e] : []), tO(e, function(t) { + if (t) { + Hy(t, "splitList") && !Hy(t, "pieces") && (t.pieces = t.splitList, delete t.splitList); + var e = t.pieces; + e && y(e) && tO(e, function(t) { + w(t) && (Hy(t, "start") && !Hy(t, "min") && (t.min = t.start), Hy(t, "end") && !Hy(t, "max") && (t.max = t.end)) + }) + } + }) + }; + YM.registerSubTypeDefaulter("visualMap", function(t) { + return t.categories || (t.pieces ? t.pieces.length > 0 : t.splitNumber > 0) && !t.calculable ? "piecewise" : "continuous" + }); + var iO = IT.VISUAL.COMPONENT; + Es(iO, { + createOnAllSeries: !0, + reset: function(t, e) { + var i = []; + return e.eachComponent("visualMap", function(e) { + var n = t.pipelineContext; + !e.isTargetSeries(t) || n && n.large || i.push(qv(e.stateList, e.targetVisuals, m(e.getValueState, e), e.getDataDimension(t.getData()))) + }), i + } + }), Es(iO, { + createOnAllSeries: !0, + reset: function(t, e) { + var i = t.getData(), + n = []; + e.eachComponent("visualMap", function(e) { + if (e.isTargetSeries(t)) { + var o = e.getVisualMeta(m(Zy, null, t, e)) || { + stops: [], + outerColors: [] + }, + a = e.getDataDimension(i), + r = i.getDimensionInfo(a); + null != r && (o.dimension = r.index, n.push(o)) + } + }), t.getData().setVisual("visualMeta", n) + } + }); + var nO = { + get: function(t, e, n) { + var o = i((oO[t] || {})[e]); + return n && y(o) ? o[o.length - 1] : o + } + }, + oO = { + color: { + active: ["#006edd", "#e0ffff"], + inactive: ["rgba(0,0,0,0)"] + }, + colorHue: { + active: [0, 360], + inactive: [0, 0] + }, + colorSaturation: { + active: [.3, 1], + inactive: [0, 0] + }, + colorLightness: { + active: [.9, .5], + inactive: [0, 0] + }, + colorAlpha: { + active: [.3, 1], + inactive: [0, 0] + }, + opacity: { + active: [.3, 1], + inactive: [0, 0] + }, + symbol: { + active: ["circle", "roundRect", "diamond"], + inactive: ["none"] + }, + symbolSize: { + active: [10, 50], + inactive: [0, 0] + } + }, + aO = jC.mapVisual, + rO = jC.eachVisual, + sO = y, + lO = d, + uO = Bo, + hO = Eo, + cO = B, + dO = Bs({ + type: "visualMap", + dependencies: ["series"], + stateList: ["inRange", "outOfRange"], + replacableOptionKeys: ["inRange", "outOfRange", "target", "controller", "color"], + dataBound: [-1 / 0, 1 / 0], + layoutMode: { + type: "box", + ignoreSize: !0 + }, + defaultOption: { + show: !0, + zlevel: 0, + z: 4, + seriesIndex: "all", + min: 0, + max: 200, + dimension: null, + inRange: null, + outOfRange: null, + left: 0, + right: null, + top: null, + bottom: 0, + itemWidth: null, + itemHeight: null, + inverse: !1, + orient: "vertical", + backgroundColor: "rgba(0,0,0,0)", + borderColor: "#ccc", + contentColor: "#5793f3", + inactiveColor: "#aaa", + borderWidth: 0, + padding: 5, + textGap: 10, + precision: 0, + color: null, + formatter: null, + text: null, + textStyle: { + color: "#333" + } + }, + init: function(t, e, i) { + this._dataExtent, this.targetVisuals = {}, this.controllerVisuals = {}, this.textStyleModel, this.itemSize, this.mergeDefaultAndTheme(t, i) + }, + optionUpdated: function(t, e) { + var i = this.option; + z_.canvasSupported || (i.realtime = !1), !e && jv(i, t, this.replacableOptionKeys), this.textStyleModel = this.getModel("textStyle"), this.resetItemSize(), this.completeVisualOption() + }, + resetVisual: function(t) { + var e = this.stateList; + t = m(t, this), this.controllerVisuals = Xv(this.option.controller, e, t), this.targetVisuals = Xv(this.option.target, e, t) + }, + getTargetSeriesIndices: function() { + var t = this.option.seriesIndex, + e = []; + return null == t || "all" === t ? this.ecModel.eachSeries(function(t, i) { + e.push(i) + }) : e = Di(t), e + }, + eachTargetSeries: function(t, e) { + d(this.getTargetSeriesIndices(), function(i) { + t.call(e, this.ecModel.getSeriesByIndex(i)) + }, this) + }, + isTargetSeries: function(t) { + var e = !1; + return this.eachTargetSeries(function(i) { + i === t && (e = !0) + }), e + }, + formatValueText: function(t, e, i) { + function n(t) { + return t === l[0] ? "min" : t === l[1] ? "max" : (+t).toFixed(Math.min(s, 20)) + } + var o, a, r = this.option, + s = r.precision, + l = this.dataBound, + u = r.formatter; + return i = i || ["<", ">"], y(t) && (t = t.slice(), o = !0), a = e ? t : o ? [n(t[0]), n(t[1])] : n(t), _(u) ? u.replace("{value}", o ? a[0] : a).replace("{value2}", o ? a[1] : a) : x(u) ? o ? u(t[0], t[1]) : u(t) : o ? t[0] === l[0] ? i[0] + " " + a[1] : t[1] === l[1] ? i[1] + " " + a[0] : a[0] + " - " + a[1] : a + }, + resetExtent: function() { + var t = this.option, + e = uO([t.min, t.max]); + this._dataExtent = e + }, + getDataDimension: function(t) { + var e = this.option.dimension, + i = t.dimensions; + if (null != e || i.length) { + if (null != e) return t.getDimension(e); + for (var n = t.dimensions, o = n.length - 1; o >= 0; o--) { + var a = n[o]; + if (!t.getDimensionInfo(a).isCalculationCoord) return a + } + } + }, + getExtent: function() { + return this._dataExtent.slice() + }, + completeVisualOption: function() { + function t(t) { + sO(o.color) && !t.inRange && (t.inRange = { + color: o.color.slice().reverse() + }), t.inRange = t.inRange || { + color: e.get("gradientColor") + }, lO(this.stateList, function(e) { + var i = t[e]; + if (_(i)) { + var n = nO.get(i, "active", l); + n ? (t[e] = {}, t[e][i] = n) : delete t[e] + } + }, this) + } + var e = this.ecModel, + o = this.option, + a = { + inRange: o.inRange, + outOfRange: o.outOfRange + }, + r = o.target || (o.target = {}), + s = o.controller || (o.controller = {}); + n(r, a), n(s, a); + var l = this.isCategory(); + t.call(this, r), t.call(this, s), + function(t, e, i) { + var n = t[e], + o = t[i]; + n && !o && (o = t[i] = {}, lO(n, function(t, e) { + if (jC.isValidType(e)) { + var i = nO.get(e, "inactive", l); + null != i && (o[e] = i, "color" !== e || o.hasOwnProperty("opacity") || o.hasOwnProperty("colorAlpha") || (o.opacity = [0, 0])) + } + })) + }.call(this, r, "inRange", "outOfRange"), + function(t) { + var e = (t.inRange || {}).symbol || (t.outOfRange || {}).symbol, + n = (t.inRange || {}).symbolSize || (t.outOfRange || {}).symbolSize, + o = this.get("inactiveColor"); + lO(this.stateList, function(a) { + var r = this.itemSize, + s = t[a]; + s || (s = t[a] = { + color: l ? o : [o] + }), null == s.symbol && (s.symbol = e && i(e) || (l ? "roundRect" : ["roundRect"])), null == s.symbolSize && (s.symbolSize = n && i(n) || (l ? r[0] : [r[0], r[0]])), s.symbol = aO(s.symbol, function(t) { + return "none" === t || "square" === t ? "roundRect" : t + }); + var u = s.symbolSize; + if (null != u) { + var h = -1 / 0; + rO(u, function(t) { + t > h && (h = t) + }), s.symbolSize = aO(u, function(t) { + return hO(t, [0, h], [0, r[0]], !0) + }) + } + }, this) + }.call(this, s) + }, + resetItemSize: function() { + this.itemSize = [parseFloat(this.get("itemWidth")), parseFloat(this.get("itemHeight"))] + }, + isCategory: function() { + return !!this.option.categories + }, + setSelected: cO, + getValueState: cO, + getVisualMeta: cO + }), + fO = [20, 140], + pO = dO.extend({ + type: "visualMap.continuous", + defaultOption: { + align: "auto", + calculable: !1, + range: null, + realtime: !0, + itemHeight: null, + itemWidth: null, + hoverLink: !0, + hoverLinkDataSize: null, + hoverLinkOnHandle: null + }, + optionUpdated: function(t, e) { + pO.superApply(this, "optionUpdated", arguments), this.resetExtent(), this.resetVisual(function(t) { + t.mappingMethod = "linear", t.dataExtent = this.getExtent() + }), this._resetRange() + }, + resetItemSize: function() { + pO.superApply(this, "resetItemSize", arguments); + var t = this.itemSize; + "horizontal" === this._orient && t.reverse(), (null == t[0] || isNaN(t[0])) && (t[0] = fO[0]), (null == t[1] || isNaN(t[1])) && (t[1] = fO[1]) + }, + _resetRange: function() { + var t = this.getExtent(), + e = this.option.range; + !e || e.auto ? (t.auto = 1, this.option.range = t) : y(e) && (e[0] > e[1] && e.reverse(), e[0] = Math.max(e[0], t[0]), e[1] = Math.min(e[1], t[1])) + }, + completeVisualOption: function() { + dO.prototype.completeVisualOption.apply(this, arguments), d(this.stateList, function(t) { + var e = this.option.controller[t].symbolSize; + e && e[0] !== e[1] && (e[0] = 0) + }, this) + }, + setSelected: function(t) { + this.option.range = t.slice(), this._resetRange() + }, + getSelected: function() { + var t = this.getExtent(), + e = Bo((this.get("range") || []).slice()); + return e[0] > t[1] && (e[0] = t[1]), e[1] > t[1] && (e[1] = t[1]), e[0] < t[0] && (e[0] = t[0]), e[1] < t[0] && (e[1] = t[0]), e + }, + getValueState: function(t) { + var e = this.option.range, + i = this.getExtent(); + return (e[0] <= i[0] || e[0] <= t) && (e[1] >= i[1] || t <= e[1]) ? "inRange" : "outOfRange" + }, + findTargetDataIndices: function(t) { + var e = []; + return this.eachTargetSeries(function(i) { + var n = [], + o = i.getData(); + o.each(this.getDataDimension(o), function(e, i) { + t[0] <= e && e <= t[1] && n.push(i) + }, this), e.push({ + seriesId: i.id, + dataIndex: n + }) + }, this), e + }, + getVisualMeta: function(t) { + function e(e, i) { + o.push({ + value: e, + color: t(e, i) + }) + } + for (var i = Uy(0, 0, this.getExtent()), n = Uy(0, 0, this.option.range.slice()), o = [], a = 0, r = 0, s = n.length, l = i.length; r < l && (!n.length || i[r] <= n[0]); r++) i[r] < n[a] && e(i[r], "outOfRange"); + for (u = 1; a < s; a++, u = 0) u && o.length && e(n[a], "outOfRange"), e(n[a], "inRange"); + for (var u = 1; r < l; r++)(!n.length || n[n.length - 1] < i[r]) && (u && (o.length && e(o[o.length - 1].value, "outOfRange"), u = 0), e(i[r], "outOfRange")); + var h = o.length; + return { + stops: o, + outerColors: [h ? o[0].color : "transparent", h ? o[h - 1].color : "transparent"] + } + } + }), + gO = Vs({ + type: "visualMap", + autoPositionValues: { + left: 1, + right: 1, + top: 1, + bottom: 1 + }, + init: function(t, e) { + this.ecModel = t, this.api = e, this.visualMapModel + }, + render: function(t, e, i, n) { + this.visualMapModel = t, !1 !== t.get("show") ? this.doRender.apply(this, arguments) : this.group.removeAll() + }, + renderBackground: function(t) { + var e = this.visualMapModel, + i = OM(e.get("padding") || 0), + n = t.getBoundingRect(); + t.add(new aM({ + z2: -1, + silent: !0, + shape: { + x: n.x - i[3], + y: n.y - i[0], + width: n.width + i[3] + i[1], + height: n.height + i[0] + i[2] + }, + style: { + fill: e.get("backgroundColor"), + stroke: e.get("borderColor"), + lineWidth: e.get("borderWidth") + } + })) + }, + getControllerVisual: function(t, e, i) { + function n(t) { + return s[t] + } + + function o(t, e) { + s[t] = e + } + var a = (i = i || {}).forceState, + r = this.visualMapModel, + s = {}; + if ("symbol" === e && (s.symbol = r.get("itemSymbol")), "color" === e) { + var l = r.get("contentColor"); + s.color = l + } + var u = r.controllerVisuals[a || r.getValueState(t)]; + return d(jC.prepareVisualTypes(u), function(a) { + var r = u[a]; + i.convertOpacityToAlpha && "opacity" === a && (a = "colorAlpha", r = u.__alphaForOpacity), jC.dependsOn(a, e) && r && r.applyVisual(t, n, o) + }), s[e] + }, + positionGroup: function(t) { + var e = this.visualMapModel, + i = this.api; + ua(t, e.getBoxLayoutParams(), { + width: i.getWidth(), + height: i.getHeight() + }) + }, + doRender: B + }), + mO = Eo, + vO = d, + yO = Math.min, + xO = Math.max, + _O = 12, + wO = 6, + bO = gO.extend({ + type: "visualMap.continuous", + init: function() { + bO.superApply(this, "init", arguments), this._shapes = {}, this._dataInterval = [], this._handleEnds = [], this._orient, this._useHandle, this._hoverLinkDataIndices = [], this._dragging, this._hovering + }, + doRender: function(t, e, i, n) { + n && "selectDataRange" === n.type && n.from === this.uid || this._buildView() + }, + _buildView: function() { + this.group.removeAll(); + var t = this.visualMapModel, + e = this.group; + this._orient = t.get("orient"), this._useHandle = t.get("calculable"), this._resetInterval(), this._renderBar(e); + var i = t.get("text"); + this._renderEndsText(e, i, 0), this._renderEndsText(e, i, 1), this._updateView(!0), this.renderBackground(e), this._updateView(), this._enableHoverLinkToSeries(), this._enableHoverLinkFromSeries(), this.positionGroup(e) + }, + _renderEndsText: function(t, e, i) { + if (e) { + var n = e[1 - i]; + n = null != n ? n + "" : ""; + var o = this.visualMapModel, + a = o.get("textGap"), + r = o.itemSize, + s = this._shapes.barGroup, + l = this._applyTransform([r[0] / 2, 0 === i ? -a : r[1] + a], s), + u = this._applyTransform(0 === i ? "bottom" : "top", s), + h = this._orient, + c = this.visualMapModel.textStyleModel; + this.group.add(new qS({ + style: { + x: l[0], + y: l[1], + textVerticalAlign: "horizontal" === h ? "middle" : u, + textAlign: "horizontal" === h ? u : "center", + text: n, + textFont: c.getFont(), + textFill: c.getTextColor() + } + })) + } + }, + _renderBar: function(t) { + var e = this.visualMapModel, + i = this._shapes, + n = e.itemSize, + o = this._orient, + a = this._useHandle, + r = Xy(e, this.api, n), + s = i.barGroup = this._createBarGroup(r); + s.add(i.outOfRange = Yy()), s.add(i.inRange = Yy(null, a ? Qy(this._orient) : null, m(this._dragHandle, this, "all", !1), m(this._dragHandle, this, "all", !0))); + var l = e.textStyleModel.getTextRect("国"), + u = xO(l.width, l.height); + a && (i.handleThumbs = [], i.handleLabels = [], i.handleLabelPoints = [], this._createHandle(s, 0, n, u, o, r), this._createHandle(s, 1, n, u, o, r)), this._createIndicator(s, n, u, o), t.add(s) + }, + _createHandle: function(t, e, i, n, o) { + var a = m(this._dragHandle, this, e, !1), + r = m(this._dragHandle, this, e, !0), + s = Yy(qy(e, n), Qy(this._orient), a, r); + s.position[0] = i[0], t.add(s); + var l = this.visualMapModel.textStyleModel, + u = new qS({ + draggable: !0, + drift: a, + onmousemove: function(t) { + lw(t.event) + }, + ondragend: r, + style: { + x: 0, + y: 0, + text: "", + textFont: l.getFont(), + textFill: l.getTextColor() + } + }); + this.group.add(u); + var h = ["horizontal" === o ? n / 2 : 1.5 * n, "horizontal" === o ? 0 === e ? -1.5 * n : 1.5 * n : 0 === e ? -n / 2 : n / 2], + c = this._shapes; + c.handleThumbs[e] = s, c.handleLabelPoints[e] = h, c.handleLabels[e] = u + }, + _createIndicator: function(t, e, i, n) { + var o = Yy([ + [0, 0] + ], "move"); + o.position[0] = e[0], o.attr({ + invisible: !0, + silent: !0 + }), t.add(o); + var a = this.visualMapModel.textStyleModel, + r = new qS({ + silent: !0, + invisible: !0, + style: { + x: 0, + y: 0, + text: "", + textFont: a.getFont(), + textFill: a.getTextColor() + } + }); + this.group.add(r); + var s = ["horizontal" === n ? i / 2 : wO + 3, 0], + l = this._shapes; + l.indicator = o, l.indicatorLabel = r, l.indicatorLabelPoint = s + }, + _dragHandle: function(t, e, i, n) { + if (this._useHandle) { + if (this._dragging = !e, !e) { + var o = this._applyTransform([i, n], this._shapes.barGroup, !0); + this._updateInterval(t, o[1]), this._updateView() + } + e === !this.visualMapModel.get("realtime") && this.api.dispatchAction({ + type: "selectDataRange", + from: this.uid, + visualMapId: this.visualMapModel.id, + selected: this._dataInterval.slice() + }), e ? !this._hovering && this._clearHoverLinkToSeries() : Jy(this.visualMapModel) && this._doHoverLinkToSeries(this._handleEnds[t], !1) + } + }, + _resetInterval: function() { + var t = this.visualMapModel, + e = this._dataInterval = t.getSelected(), + i = t.getExtent(), + n = [0, t.itemSize[1]]; + this._handleEnds = [mO(e[0], i, n, !0), mO(e[1], i, n, !0)] + }, + _updateInterval: function(t, e) { + e = e || 0; + var i = this.visualMapModel, + n = this._handleEnds, + o = [0, i.itemSize[1]]; + EL(e, n, o, t, 0); + var a = i.getExtent(); + this._dataInterval = [mO(n[0], o, a, !0), mO(n[1], o, a, !0)] + }, + _updateView: function(t) { + var e = this.visualMapModel, + i = e.getExtent(), + n = this._shapes, + o = [0, e.itemSize[1]], + a = t ? o : this._handleEnds, + r = this._createBarVisual(this._dataInterval, i, a, "inRange"), + s = this._createBarVisual(i, i, o, "outOfRange"); + n.inRange.setStyle({ + fill: r.barColor, + opacity: r.opacity + }).setShape("points", r.barPoints), n.outOfRange.setStyle({ + fill: s.barColor, + opacity: s.opacity + }).setShape("points", s.barPoints), this._updateHandle(a, r) + }, + _createBarVisual: function(t, e, i, n) { + var o = { + forceState: n, + convertOpacityToAlpha: !0 + }, + a = this._makeColorGradient(t, o), + r = [this.getControllerVisual(t[0], "symbolSize", o), this.getControllerVisual(t[1], "symbolSize", o)], + s = this._createBarPoints(i, r); + return { + barColor: new dM(0, 0, 0, 1, a), + barPoints: s, + handlesColor: [a[0].color, a[a.length - 1].color] + } + }, + _makeColorGradient: function(t, e) { + var i = [], + n = (t[1] - t[0]) / 100; + i.push({ + color: this.getControllerVisual(t[0], "color", e), + offset: 0 + }); + for (var o = 1; o < 100; o++) { + var a = t[0] + n * o; + if (a > t[1]) break; + i.push({ + color: this.getControllerVisual(a, "color", e), + offset: o / 100 + }) + } + return i.push({ + color: this.getControllerVisual(t[1], "color", e), + offset: 1 + }), i + }, + _createBarPoints: function(t, e) { + var i = this.visualMapModel.itemSize; + return [ + [i[0] - e[0], t[0]], + [i[0], t[0]], + [i[0], t[1]], + [i[0] - e[1], t[1]] + ] + }, + _createBarGroup: function(t) { + var e = this._orient, + i = this.visualMapModel.get("inverse"); + return new Zw("horizontal" !== e || i ? "horizontal" === e && i ? { + scale: "bottom" === t ? [-1, 1] : [1, 1], + rotation: -Math.PI / 2 + } : "vertical" !== e || i ? { + scale: "left" === t ? [1, 1] : [-1, 1] + } : { + scale: "left" === t ? [1, -1] : [-1, -1] + } : { + scale: "bottom" === t ? [1, 1] : [-1, 1], + rotation: Math.PI / 2 + }) + }, + _updateHandle: function(t, e) { + if (this._useHandle) { + var i = this._shapes, + n = this.visualMapModel, + o = i.handleThumbs, + a = i.handleLabels; + vO([0, 1], function(r) { + var s = o[r]; + s.setStyle("fill", e.handlesColor[r]), s.position[1] = t[r]; + var l = Io(i.handleLabelPoints[r], Mo(s, this.group)); + a[r].setStyle({ + x: l[0], + y: l[1], + text: n.formatValueText(this._dataInterval[r]), + textVerticalAlign: "middle", + textAlign: this._applyTransform("horizontal" === this._orient ? 0 === r ? "bottom" : "top" : "left", i.barGroup) + }) + }, this) + } + }, + _showIndicator: function(t, e, i, n) { + var o = this.visualMapModel, + a = o.getExtent(), + r = o.itemSize, + s = [0, r[1]], + l = mO(t, a, s, !0), + u = this._shapes, + h = u.indicator; + if (h) { + h.position[1] = l, h.attr("invisible", !1), h.setShape("points", Ky(!!i, n, l, r[1])); + var c = { + convertOpacityToAlpha: !0 + }, + d = this.getControllerVisual(t, "color", c); + h.setStyle("fill", d); + var f = Io(u.indicatorLabelPoint, Mo(h, this.group)), + p = u.indicatorLabel; + p.attr("invisible", !1); + var g = this._applyTransform("left", u.barGroup), + m = this._orient; + p.setStyle({ + text: (i || "") + o.formatValueText(e), + textVerticalAlign: "horizontal" === m ? g : "middle", + textAlign: "horizontal" === m ? "center" : g, + x: f[0], + y: f[1] + }) + } + }, + _enableHoverLinkToSeries: function() { + var t = this; + this._shapes.barGroup.on("mousemove", function(e) { + if (t._hovering = !0, !t._dragging) { + var i = t.visualMapModel.itemSize, + n = t._applyTransform([e.offsetX, e.offsetY], t._shapes.barGroup, !0, !0); + n[1] = yO(xO(0, n[1]), i[1]), t._doHoverLinkToSeries(n[1], 0 <= n[0] && n[0] <= i[0]) + } + }).on("mouseout", function() { + t._hovering = !1, !t._dragging && t._clearHoverLinkToSeries() + }) + }, + _enableHoverLinkFromSeries: function() { + var t = this.api.getZr(); + this.visualMapModel.option.hoverLink ? (t.on("mouseover", this._hoverLinkFromSeriesMouseOver, this), t.on("mouseout", this._hideIndicator, this)) : this._clearHoverLinkFromSeries() + }, + _doHoverLinkToSeries: function(t, e) { + var i = this.visualMapModel, + n = i.itemSize; + if (i.option.hoverLink) { + var o = [0, n[1]], + a = i.getExtent(); + t = yO(xO(o[0], t), o[1]); + var r = $y(i, a, o), + s = [t - r, t + r], + l = mO(t, o, a, !0), + u = [mO(s[0], o, a, !0), mO(s[1], o, a, !0)]; + s[0] < o[0] && (u[0] = -1 / 0), s[1] > o[1] && (u[1] = 1 / 0), e && (u[0] === -1 / 0 ? this._showIndicator(l, u[1], "< ", r) : u[1] === 1 / 0 ? this._showIndicator(l, u[0], "> ", r) : this._showIndicator(l, l, "≈ ", r)); + var h = this._hoverLinkDataIndices, + c = []; + (e || Jy(i)) && (c = this._hoverLinkDataIndices = i.findTargetDataIndices(u)); + var d = Ri(h, c); + this._dispatchHighDown("downplay", jy(d[0])), this._dispatchHighDown("highlight", jy(d[1])) + } + }, + _hoverLinkFromSeriesMouseOver: function(t) { + var e = t.target, + i = this.visualMapModel; + if (e && null != e.dataIndex) { + var n = this.ecModel.getSeriesByIndex(e.seriesIndex); + if (i.isTargetSeries(n)) { + var o = n.getData(e.dataType), + a = o.get(i.getDataDimension(o), e.dataIndex, !0); + isNaN(a) || this._showIndicator(a, a) + } + } + }, + _hideIndicator: function() { + var t = this._shapes; + t.indicator && t.indicator.attr("invisible", !0), t.indicatorLabel && t.indicatorLabel.attr("invisible", !0) + }, + _clearHoverLinkToSeries: function() { + this._hideIndicator(); + var t = this._hoverLinkDataIndices; + this._dispatchHighDown("downplay", jy(t)), t.length = 0 + }, + _clearHoverLinkFromSeries: function() { + this._hideIndicator(); + var t = this.api.getZr(); + t.off("mouseover", this._hoverLinkFromSeriesMouseOver), t.off("mouseout", this._hideIndicator) + }, + _applyTransform: function(t, e, i, n) { + var o = Mo(e, n ? null : this.group); + return bM[y(t) ? "applyTransform" : "transformDirection"](t, o, i) + }, + _dispatchHighDown: function(t, e) { + e && e.length && this.api.dispatchAction({ + type: t, + batch: e + }) + }, + dispose: function() { + this._clearHoverLinkFromSeries(), this._clearHoverLinkToSeries() + }, + remove: function() { + this._clearHoverLinkFromSeries(), this._clearHoverLinkToSeries() + } + }); + Ps({ + type: "selectDataRange", + event: "dataRangeSelected", + update: "update" + }, function(t, e) { + e.eachComponent({ + mainType: "visualMap", + query: t + }, function(e) { + e.setSelected(t.selected) + }) + }), Ls(eO); + var SO = dO.extend({ + type: "visualMap.piecewise", + defaultOption: { + selected: null, + minOpen: !1, + maxOpen: !1, + align: "auto", + itemWidth: 20, + itemHeight: 14, + itemSymbol: "roundRect", + pieceList: null, + categories: null, + splitNumber: 5, + selectedMode: "multiple", + itemGap: 10, + hoverLink: !0, + showLabel: null + }, + optionUpdated: function(t, e) { + SO.superApply(this, "optionUpdated", arguments), this._pieceList = [], this.resetExtent(); + var n = this._mode = this._determineMode(); + MO[this._mode].call(this), this._resetSelected(t, e); + var o = this.option.categories; + this.resetVisual(function(t, e) { + "categories" === n ? (t.mappingMethod = "category", t.categories = i(o)) : (t.dataExtent = this.getExtent(), t.mappingMethod = "piecewise", t.pieceList = f(this._pieceList, function(t) { + var t = i(t); + return "inRange" !== e && (t.visual = null), t + })) + }) + }, + completeVisualOption: function() { + function t(t, e, i) { + return t && t[e] && (w(t[e]) ? t[e].hasOwnProperty(i) : t[e] === i) + } + var e = this.option, + i = {}, + n = jC.listVisualTypes(), + o = this.isCategory(); + d(e.pieces, function(t) { + d(n, function(e) { + t.hasOwnProperty(e) && (i[e] = 1) + }) + }), d(i, function(i, n) { + var a = 0; + d(this.stateList, function(i) { + a |= t(e, i, n) || t(e.target, i, n) + }, this), !a && d(this.stateList, function(t) { + (e[t] || (e[t] = {}))[n] = nO.get(n, "inRange" === t ? "active" : "inactive", o) + }) + }, this), dO.prototype.completeVisualOption.apply(this, arguments) + }, + _resetSelected: function(t, e) { + var i = this.option, + n = this._pieceList, + o = (e ? i : t).selected || {}; + if (i.selected = o, d(n, function(t, e) { + var i = this.getSelectedMapKey(t); + o.hasOwnProperty(i) || (o[i] = !0) + }, this), "single" === i.selectedMode) { + var a = !1; + d(n, function(t, e) { + var i = this.getSelectedMapKey(t); + o[i] && (a ? o[i] = !1 : a = !0) + }, this) + } + }, + getSelectedMapKey: function(t) { + return "categories" === this._mode ? t.value + "" : t.index + "" + }, + getPieceList: function() { + return this._pieceList + }, + _determineMode: function() { + var t = this.option; + return t.pieces && t.pieces.length > 0 ? "pieces" : this.option.categories ? "categories" : "splitNumber" + }, + setSelected: function(t) { + this.option.selected = i(t) + }, + getValueState: function(t) { + var e = jC.findPieceIndex(t, this._pieceList); + return null != e && this.option.selected[this.getSelectedMapKey(this._pieceList[e])] ? "inRange" : "outOfRange" + }, + findTargetDataIndices: function(t) { + var e = []; + return this.eachTargetSeries(function(i) { + var n = [], + o = i.getData(); + o.each(this.getDataDimension(o), function(e, i) { + jC.findPieceIndex(e, this._pieceList) === t && n.push(i) + }, this), e.push({ + seriesId: i.id, + dataIndex: n + }) + }, this), e + }, + getRepresentValue: function(t) { + var e; + if (this.isCategory()) e = t.value; + else if (null != t.value) e = t.value; + else { + var i = t.interval || []; + e = i[0] === -1 / 0 && i[1] === 1 / 0 ? 0 : (i[0] + i[1]) / 2 + } + return e + }, + getVisualMeta: function(t) { + function e(e, a) { + var r = o.getRepresentValue({ + interval: e + }); + a || (a = o.getValueState(r)); + var s = t(r, a); + e[0] === -1 / 0 ? n[0] = s : e[1] === 1 / 0 ? n[1] = s : i.push({ + value: e[0], + color: s + }, { + value: e[1], + color: s + }) + } + if (!this.isCategory()) { + var i = [], + n = [], + o = this, + a = this._pieceList.slice(); + if (a.length) { + var r = a[0].interval[0]; + r !== -1 / 0 && a.unshift({ + interval: [-1 / 0, r] + }), (r = a[a.length - 1].interval[1]) !== 1 / 0 && a.push({ + interval: [r, 1 / 0] + }) + } else a.push({ + interval: [-1 / 0, 1 / 0] + }); + var s = -1 / 0; + return d(a, function(t) { + var i = t.interval; + i && (i[0] > s && e([s, i[0]], "outOfRange"), e(i.slice()), s = i[1]) + }, this), { + stops: i, + outerColors: n + } + } + } + }), + MO = { + splitNumber: function() { + var t = this.option, + e = this._pieceList, + i = Math.min(t.precision, 20), + n = this.getExtent(), + o = t.splitNumber; + o = Math.max(parseInt(o, 10), 1), t.splitNumber = o; + for (var a = (n[1] - n[0]) / o; + a.toFixed(i) !== a && i < 5;) i++; + t.precision = i, a = +a.toFixed(i); + var r = 0; + t.minOpen && e.push({ + index: r++, + interval: [-1 / 0, n[0]], + close: [0, 0] + }); + for (var s = n[0], l = r + o; r < l; s += a) { + var u = r === o - 1 ? n[1] : s + a; + e.push({ + index: r++, + interval: [s, u], + close: [1, 1] + }) + } + t.maxOpen && e.push({ + index: r++, + interval: [n[1], 1 / 0], + close: [0, 0] + }), qo(e), d(e, function(t) { + t.text = this.formatValueText(t.interval) + }, this) + }, + categories: function() { + var t = this.option; + d(t.categories, function(t) { + this._pieceList.push({ + text: this.formatValueText(t, !0), + value: t + }) + }, this), tx(t, this._pieceList) + }, + pieces: function() { + var t = this.option, + e = this._pieceList; + d(t.pieces, function(t, i) { + w(t) || (t = { + value: t + }); + var n = { + text: "", + index: i + }; + if (null != t.label && (n.text = t.label), t.hasOwnProperty("value")) { + var o = n.value = t.value; + n.interval = [o, o], n.close = [1, 1] + } else { + for (var a = n.interval = [], r = n.close = [0, 0], s = [1, 0, 1], l = [-1 / 0, 1 / 0], u = [], h = 0; h < 2; h++) { + for (var c = [ + ["gte", "gt", "min"], + ["lte", "lt", "max"] + ][h], d = 0; d < 3 && null == a[h]; d++) a[h] = t[c[d]], r[h] = s[d], u[h] = 2 === d; + null == a[h] && (a[h] = l[h]) + } + u[0] && a[1] === 1 / 0 && (r[0] = 0), u[1] && a[0] === -1 / 0 && (r[1] = 0), a[0] === a[1] && r[0] && r[1] && (n.value = a[0]) + } + n.visual = jC.retrieveVisuals(t), e.push(n) + }, this), tx(t, e), qo(e), d(e, function(t) { + var e = t.close, + i = [ + ["<", "≤"][e[1]], + [">", "≥"][e[0]] + ]; + t.text = t.text || this.formatValueText(null != t.value ? t.value : t.interval, !1, i) + }, this) + } + }; + gO.extend({ + type: "visualMap.piecewise", + doRender: function() { + var t = this.group; + t.removeAll(); + var e = this.visualMapModel, + i = e.get("textGap"), + n = e.textStyleModel, + o = n.getFont(), + a = n.getTextColor(), + r = this._getItemAlign(), + s = e.itemSize, + l = this._getViewData(), + u = l.endsText, + h = T(e.get("showLabel", !0), !u); + u && this._renderEndsText(t, u[0], s, h, r), d(l.viewPieceList, function(n) { + var l = n.piece, + u = new Zw; + u.onclick = m(this._onItemClick, this, l), this._enableHoverLink(u, n.indexInModelPieceList); + var c = e.getRepresentValue(l); + if (this._createItemSymbol(u, c, [0, 0, s[0], s[1]]), h) { + var d = this.visualMapModel.getValueState(c); + u.add(new qS({ + style: { + x: "right" === r ? -i : s[0] + i, + y: s[1] / 2, + text: l.text, + textVerticalAlign: "middle", + textAlign: r, + textFont: o, + textFill: a, + opacity: "outOfRange" === d ? .5 : 1 + } + })) + } + t.add(u) + }, this), u && this._renderEndsText(t, u[1], s, h, r), UM(e.get("orient"), t, e.get("itemGap")), this.renderBackground(t), this.positionGroup(t) + }, + _enableHoverLink: function(t, e) { + function i(t) { + var i = this.visualMapModel; + i.option.hoverLink && this.api.dispatchAction({ + type: t, + batch: jy(i.findTargetDataIndices(e)) + }) + } + t.on("mouseover", m(i, this, "highlight")).on("mouseout", m(i, this, "downplay")) + }, + _getItemAlign: function() { + var t = this.visualMapModel, + e = t.option; + if ("vertical" === e.orient) return Xy(t, this.api, t.itemSize); + var i = e.align; + return i && "auto" !== i || (i = "left"), i + }, + _renderEndsText: function(t, e, i, n, o) { + if (e) { + var a = new Zw, + r = this.visualMapModel.textStyleModel; + a.add(new qS({ + style: { + x: n ? "right" === o ? i[0] : 0 : i[0] / 2, + y: i[1] / 2, + textVerticalAlign: "middle", + textAlign: n ? o : "center", + text: e, + textFont: r.getFont(), + textFill: r.getTextColor() + } + })), t.add(a) + } + }, + _getViewData: function() { + var t = this.visualMapModel, + e = f(t.getPieceList(), function(t, e) { + return { + piece: t, + indexInModelPieceList: e + } + }), + i = t.get("text"), + n = t.get("orient"), + o = t.get("inverse"); + return ("horizontal" === n ? o : !o) ? e.reverse() : i && (i = i.slice().reverse()), { + viewPieceList: e, + endsText: i + } + }, + _createItemSymbol: function(t, e, i) { + t.add(Xl(this.getControllerVisual(e, "symbol"), i[0], i[1], i[2], i[3], this.getControllerVisual(e, "color"))) + }, + _onItemClick: function(t) { + var e = this.visualMapModel, + n = e.option, + o = i(n.selected), + a = e.getSelectedMapKey(t); + "single" === n.selectedMode ? (o[a] = !0, d(o, function(t, e) { + o[e] = e === a + })) : o[a] = !o[a], this.api.dispatchAction({ + type: "selectDataRange", + from: this.uid, + visualMapId: this.visualMapModel.id, + selected: o + }) + } + }); + Ls(eO); + var IO = $o, + TO = Qo, + AO = Bs({ + type: "marker", + dependencies: ["series", "grid", "polar", "geo"], + init: function(t, e, i, n) { + this.mergeDefaultAndTheme(t, i), this.mergeOption(t, i, n.createdBySelf, !0) + }, + isAnimationEnabled: function() { + if (z_.node) return !1; + var t = this.__hostSeries; + return this.getShallow("animation") && t && t.isAnimationEnabled() + }, + mergeOption: function(t, e, i, n) { + var o = this.constructor, + r = this.mainType + "Model"; + i || e.eachSeries(function(t) { + var i = t.get(this.mainType, !0), + s = t[r]; + i && i.data ? (s ? s.mergeOption(i, e, !0) : (n && ex(i), d(i.data, function(t) { + t instanceof Array ? (ex(t[0]), ex(t[1])) : ex(t) + }), a(s = new o(i, this, e), { + mainType: this.mainType, + seriesIndex: t.seriesIndex, + name: t.name, + createdBySelf: !0 + }), s.__hostSeries = t), t[r] = s) : t[r] = null + }, this) + }, + formatTooltip: function(t) { + var e = this.getData(), + i = this.getRawValue(t), + n = y(i) ? f(i, IO).join(", ") : IO(i), + o = e.getName(t), + a = TO(this.name); + return (null != i || o) && (a += "
"), o && (a += TO(o), null != i && (a += " : ")), null != i && (a += TO(n)), a + }, + getData: function() { + return this._data + }, + setData: function(t) { + this._data = t + } + }); + h(AO, LI), AO.extend({ + type: "markPoint", + defaultOption: { + zlevel: 0, + z: 5, + symbol: "pin", + symbolSize: 50, + tooltip: { + trigger: "item" + }, + label: { + show: !0, + position: "inside" + }, + itemStyle: { + borderWidth: 2 + }, + emphasis: { + label: { + show: !0 + } + } + } + }); + var DO = l, + CO = v, + LO = { + min: CO(ox, "min"), + max: CO(ox, "max"), + average: CO(ox, "average") + }, + kO = Vs({ + type: "marker", + init: function() { + this.markerGroupMap = R() + }, + render: function(t, e, i) { + var n = this.markerGroupMap; + n.each(function(t) { + t.__keep = !1 + }); + var o = this.type + "Model"; + e.eachSeries(function(t) { + var n = t[o]; + n && this.renderSeries(t, n, e, i) + }, this), n.each(function(t) { + !t.__keep && this.group.remove(t.group) + }, this) + }, + renderSeries: function() {} + }); + kO.extend({ + type: "markPoint", + updateTransform: function(t, e, i) { + e.eachSeries(function(t) { + var e = t.markPointModel; + e && (cx(e.getData(), t, i), this.markerGroupMap.get(t.id).updateLayout(e)) + }, this) + }, + renderSeries: function(t, e, i, n) { + var o = t.coordinateSystem, + a = t.id, + r = t.getData(), + s = this.markerGroupMap, + l = s.get(a) || s.set(a, new Su), + u = dx(o, t, e); + e.setData(u), cx(e.getData(), t, n), u.each(function(t) { + var i = u.getItemModel(t), + n = i.getShallow("symbolSize"); + "function" == typeof n && (n = n(e.getRawValue(t), e.getDataParams(t))), u.setItemVisual(t, { + symbolSize: n, + color: i.get("itemStyle.color") || r.getVisual("color"), + symbol: i.getShallow("symbol") + }) + }), l.updateData(u), this.group.add(l.group), u.eachItemGraphicEl(function(t) { + t.traverse(function(t) { + t.dataModel = e + }) + }), l.__keep = !0, l.group.silent = e.get("silent") || t.get("silent") + } + }), Ls(function(t) { + t.markPoint = t.markPoint || {} + }), AO.extend({ + type: "markLine", + defaultOption: { + zlevel: 0, + z: 5, + symbol: ["circle", "arrow"], + symbolSize: [8, 16], + precision: 2, + tooltip: { + trigger: "item" + }, + label: { + show: !0, + position: "end" + }, + lineStyle: { + type: "dashed" + }, + emphasis: { + label: { + show: !0 + }, + lineStyle: { + width: 3 + } + }, + animationEasing: "linear" + } + }); + var PO = function(t, e, o, r) { + var s = t.getData(), + l = r.type; + if (!y(r) && ("min" === l || "max" === l || "average" === l || "median" === l || null != r.xAxis || null != r.yAxis)) { + var u, h; + if (null != r.yAxis || null != r.xAxis) u = null != r.yAxis ? "y" : "x", e.getAxis(u), h = T(r.yAxis, r.xAxis); + else { + var c = rx(r, s, e, t); + u = c.valueDataDim, c.valueAxis, h = hx(s, u, l) + } + var d = "x" === u ? 0 : 1, + f = 1 - d, + p = i(r), + g = {}; + p.type = null, p.coord = [], g.coord = [], p.coord[f] = -1 / 0, g.coord[f] = 1 / 0; + var m = o.get("precision"); + m >= 0 && "number" == typeof h && (h = +h.toFixed(Math.min(m, 20))), p.coord[d] = g.coord[d] = h, r = [p, g, { + type: l, + valueIndex: r.valueIndex, + value: h + }] + } + return r = [ax(t, r[0]), ax(t, r[1]), a({}, r[2])], r[2].type = r[2].type || "", n(r[2], r[0]), n(r[2], r[1]), r + }; + kO.extend({ + type: "markLine", + updateTransform: function(t, e, i) { + e.eachSeries(function(t) { + var e = t.markLineModel; + if (e) { + var n = e.getData(), + o = e.__from, + a = e.__to; + o.each(function(e) { + mx(o, e, !0, t, i), mx(a, e, !1, t, i) + }), n.each(function(t) { + n.setItemLayout(t, [o.getItemLayout(t), a.getItemLayout(t)]) + }), this.markerGroupMap.get(t.id).updateLayout() + } + }, this) + }, + renderSeries: function(t, e, i, n) { + function o(e, i, o) { + var a = e.getItemModel(i); + mx(e, i, o, t, n), e.setItemVisual(i, { + symbolSize: a.get("symbolSize") || g[o ? 0 : 1], + symbol: a.get("symbol", !0) || p[o ? 0 : 1], + color: a.get("itemStyle.color") || s.getVisual("color") + }) + } + var a = t.coordinateSystem, + r = t.id, + s = t.getData(), + l = this.markerGroupMap, + u = l.get(r) || l.set(r, new Jd); + this.group.add(u.group); + var h = vx(a, t, e), + c = h.from, + d = h.to, + f = h.line; + e.__from = c, e.__to = d, e.setData(f); + var p = e.get("symbol"), + g = e.get("symbolSize"); + y(p) || (p = [p, p]), "number" == typeof g && (g = [g, g]), h.from.each(function(t) { + o(c, t, !0), o(d, t, !1) + }), f.each(function(t) { + var e = f.getItemModel(t).get("lineStyle.color"); + f.setItemVisual(t, { + color: e || c.getItemVisual(t, "color") + }), f.setItemLayout(t, [c.getItemLayout(t), d.getItemLayout(t)]), f.setItemVisual(t, { + fromSymbolSize: c.getItemVisual(t, "symbolSize"), + fromSymbol: c.getItemVisual(t, "symbol"), + toSymbolSize: d.getItemVisual(t, "symbolSize"), + toSymbol: d.getItemVisual(t, "symbol") + }) + }), u.updateData(f), h.line.eachItemGraphicEl(function(t, i) { + t.traverse(function(t) { + t.dataModel = e + }) + }), u.__keep = !0, u.group.silent = e.get("silent") || t.get("silent") + } + }), Ls(function(t) { + t.markLine = t.markLine || {} + }), AO.extend({ + type: "markArea", + defaultOption: { + zlevel: 0, + z: 1, + tooltip: { + trigger: "item" + }, + animation: !1, + label: { + show: !0, + position: "top" + }, + itemStyle: { + borderWidth: 0 + }, + emphasis: { + label: { + show: !0, + position: "top" + } + } + } + }); + var NO = function(t, e, i, n) { + var a = ax(t, n[0]), + r = ax(t, n[1]), + s = T, + l = a.coord, + u = r.coord; + l[0] = s(l[0], -1 / 0), l[1] = s(l[1], -1 / 0), u[0] = s(u[0], 1 / 0), u[1] = s(u[1], 1 / 0); + var h = o([{}, a, r]); + return h.coord = [a.coord, r.coord], h.x0 = a.x, h.y0 = a.y, h.x1 = r.x, h.y1 = r.y, h + }, + OO = [ + ["x0", "y0"], + ["x1", "y0"], + ["x1", "y1"], + ["x0", "y1"] + ]; + kO.extend({ + type: "markArea", + updateTransform: function(t, e, i) { + e.eachSeries(function(t) { + var e = t.markAreaModel; + if (e) { + var n = e.getData(); + n.each(function(e) { + var o = f(OO, function(o) { + return bx(n, e, o, t, i) + }); + n.setItemLayout(e, o), n.getItemGraphicEl(e).setShape("points", o) + }) + } + }, this) + }, + renderSeries: function(t, e, i, n) { + var o = t.coordinateSystem, + a = t.id, + s = t.getData(), + l = this.markerGroupMap, + u = l.get(a) || l.set(a, { + group: new Zw + }); + this.group.add(u.group), u.__keep = !0; + var h = Sx(o, t, e); + e.setData(h), h.each(function(e) { + h.setItemLayout(e, f(OO, function(i) { + return bx(h, e, i, t, n) + })), h.setItemVisual(e, { + color: s.getVisual("color") + }) + }), h.diff(u.__data).add(function(t) { + var e = new nM({ + shape: { + points: h.getItemLayout(t) + } + }); + h.setItemGraphicEl(t, e), u.group.add(e) + }).update(function(t, i) { + var n = u.__data.getItemGraphicEl(i); + bo(n, { + shape: { + points: h.getItemLayout(t) + } + }, e, t), u.group.add(n), h.setItemGraphicEl(t, n) + }).remove(function(t) { + var e = u.__data.getItemGraphicEl(t); + u.group.remove(e) + }).execute(), h.eachItemGraphicEl(function(t, i) { + var n = h.getItemModel(i), + o = n.getModel("label"), + a = n.getModel("emphasis.label"), + s = h.getItemVisual(i, "color"); + t.useStyle(r(n.getModel("itemStyle").getItemStyle(), { + fill: Ut(s, .4), + stroke: s + })), t.hoverStyle = n.getModel("emphasis.itemStyle").getItemStyle(), co(t.style, t.hoverStyle, o, a, { + labelFetcher: e, + labelDataIndex: i, + defaultText: h.getName(i) || "", + isRectText: !0, + autoColor: s + }), uo(t, {}), t.dataModel = e + }), u.__data = h, u.group.silent = e.get("silent") || t.get("silent") + } + }), Ls(function(t) { + t.markArea = t.markArea || {} + }); + YM.registerSubTypeDefaulter("timeline", function() { + return "slider" + }), Ps({ + type: "timelineChange", + event: "timelineChanged", + update: "prepareAndUpdate" + }, function(t, e) { + var i = e.getComponent("timeline"); + return i && null != t.currentIndex && (i.setCurrentIndex(t.currentIndex), !i.get("loop", !0) && i.isIndexMax() && i.setPlayState(!1)), e.resetOption("timeline"), r({ + currentIndex: i.option.currentIndex + }, t) + }), Ps({ + type: "timelinePlayChange", + event: "timelinePlayChanged", + update: "update" + }, function(t, e) { + var i = e.getComponent("timeline"); + i && null != t.playState && i.setPlayState(t.playState) + }); + var EO = YM.extend({ + type: "timeline", + layoutMode: "box", + defaultOption: { + zlevel: 0, + z: 4, + show: !0, + axisType: "time", + realtime: !0, + left: "20%", + top: null, + right: "20%", + bottom: 0, + width: null, + height: 40, + padding: 5, + controlPosition: "left", + autoPlay: !1, + rewind: !1, + loop: !0, + playInterval: 2e3, + currentIndex: 0, + itemStyle: {}, + label: { + color: "#000" + }, + data: [] + }, + init: function(t, e, i) { + this._data, this._names, this.mergeDefaultAndTheme(t, i), this._initData() + }, + mergeOption: function(t) { + EO.superApply(this, "mergeOption", arguments), this._initData() + }, + setCurrentIndex: function(t) { + null == t && (t = this.option.currentIndex); + var e = this._data.count(); + this.option.loop ? t = (t % e + e) % e : (t >= e && (t = e - 1), t < 0 && (t = 0)), this.option.currentIndex = t + }, + getCurrentIndex: function() { + return this.option.currentIndex + }, + isIndexMax: function() { + return this.getCurrentIndex() >= this._data.count() - 1 + }, + setPlayState: function(t) { + this.option.autoPlay = !!t + }, + getPlayState: function() { + return !!this.option.autoPlay + }, + _initData: function() { + var t = this.option, + e = t.data || [], + n = t.axisType, + o = this._names = []; + if ("category" === n) { + var a = []; + d(e, function(t, e) { + var n, r = Li(t); + w(t) ? (n = i(t)).value = e : n = e, a.push(n), _(r) || null != r && !isNaN(r) || (r = ""), o.push(r + "") + }), e = a + } + var r = { + category: "ordinal", + time: "time" + } [n] || "number"; + (this._data = new eA([{ + name: "value", + type: r + }], this)).initData(e, o) + }, + getData: function() { + return this._data + }, + getCategories: function() { + if ("category" === this.get("axisType")) return this._names.slice() + } + }); + h(EO.extend({ + type: "timeline.slider", + defaultOption: { + backgroundColor: "rgba(0,0,0,0)", + borderColor: "#ccc", + borderWidth: 0, + orient: "horizontal", + inverse: !1, + tooltip: { + trigger: "item" + }, + symbol: "emptyCircle", + symbolSize: 10, + lineStyle: { + show: !0, + width: 2, + color: "#304654" + }, + label: { + position: "auto", + show: !0, + interval: "auto", + rotate: 0, + color: "#304654" + }, + itemStyle: { + color: "#304654", + borderWidth: 1 + }, + checkpointStyle: { + symbol: "circle", + symbolSize: 13, + color: "#c23531", + borderWidth: 5, + borderColor: "rgba(194,53,49, 0.5)", + animation: !0, + animationDuration: 300, + animationEasing: "quinticInOut" + }, + controlStyle: { + show: !0, + showPlayBtn: !0, + showPrevBtn: !0, + showNextBtn: !0, + itemSize: 22, + itemGap: 12, + position: "left", + playIcon: "path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z", + stopIcon: "path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z", + nextIcon: "path://M18.6,50.8l22.5-22.5c0.2-0.2,0.3-0.4,0.3-0.7c0-0.3-0.1-0.5-0.3-0.7L18.7,4.4c-0.1-0.1-0.2-0.3-0.2-0.5 c0-0.4,0.3-0.8,0.8-0.8c0.2,0,0.5,0.1,0.6,0.3l23.5,23.5l0,0c0.2,0.2,0.3,0.4,0.3,0.7c0,0.3-0.1,0.5-0.3,0.7l-0.1,0.1L19.7,52 c-0.1,0.1-0.3,0.2-0.5,0.2c-0.4,0-0.8-0.3-0.8-0.8C18.4,51.2,18.5,51,18.6,50.8z", + prevIcon: "path://M43,52.8L20.4,30.3c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3,0.1-0.5,0.3-0.7L42.9,6.4c0.1-0.1,0.2-0.3,0.2-0.5 c0-0.4-0.3-0.8-0.8-0.8c-0.2,0-0.5,0.1-0.6,0.3L18.3,28.8l0,0c-0.2,0.2-0.3,0.4-0.3,0.7c0,0.3,0.1,0.5,0.3,0.7l0.1,0.1L41.9,54 c0.1,0.1,0.3,0.2,0.5,0.2c0.4,0,0.8-0.3,0.8-0.8C43.2,53.2,43.1,53,43,52.8z", + color: "#304654", + borderColor: "#304654", + borderWidth: 1 + }, + emphasis: { + label: { + show: !0, + color: "#c23531" + }, + itemStyle: { + color: "#c23531" + }, + controlStyle: { + color: "#c23531", + borderColor: "#c23531", + borderWidth: 2 + } + }, + data: [] + } + }), LI); + var RO = EI.extend({ + type: "timeline" + }), + zO = function(t, e, i, n) { + HA.call(this, t, e, i), this.type = n || "value", this.model = null + }; + zO.prototype = { + constructor: zO, + getLabelModel: function() { + return this.model.getModel("label") + }, + isHorizontal: function() { + return "horizontal" === this.model.get("orient") + } + }, u(zO, HA); + var BO = m, + VO = d, + GO = Math.PI; + RO.extend({ + type: "timeline.slider", + init: function(t, e) { + this.api = e, this._axis, this._viewRect, this._timer, this._currentPointer, this._mainGroup, this._labelGroup + }, + render: function(t, e, i, n) { + if (this.model = t, this.api = i, this.ecModel = e, this.group.removeAll(), t.get("show", !0)) { + var o = this._layout(t, i), + a = this._createGroup("mainGroup"), + r = this._createGroup("labelGroup"), + s = this._axis = this._createAxis(o, t); + t.formatTooltip = function(t) { + return Qo(s.scale.getLabel(t)) + }, VO(["AxisLine", "AxisTick", "Control", "CurrentPointer"], function(e) { + this["_render" + e](o, a, s, t) + }, this), this._renderAxisLabel(o, r, s, t), this._position(o, t) + } + this._doPlayStop() + }, + remove: function() { + this._clearTimer(), this.group.removeAll() + }, + dispose: function() { + this._clearTimer() + }, + _layout: function(t, e) { + var i = t.get("label.position"), + n = t.get("orient"), + o = Ax(t, e); + null == i || "auto" === i ? i = "horizontal" === n ? o.y + o.height / 2 < e.getHeight() / 2 ? "-" : "+" : o.x + o.width / 2 < e.getWidth() / 2 ? "+" : "-" : isNaN(i) && (i = { + horizontal: { + top: "-", + bottom: "+" + }, + vertical: { + left: "-", + right: "+" + } + } [n][i]); + var a = { + horizontal: "center", + vertical: i >= 0 || "+" === i ? "left" : "right" + }, + r = { + horizontal: i >= 0 || "+" === i ? "top" : "bottom", + vertical: "middle" + }, + s = { + horizontal: 0, + vertical: GO / 2 + }, + l = "vertical" === n ? o.height : o.width, + u = t.getModel("controlStyle"), + h = u.get("show", !0), + c = h ? u.get("itemSize") : 0, + d = h ? u.get("itemGap") : 0, + f = c + d, + p = t.get("label.rotate") || 0; + p = p * GO / 180; + var g, m, v, y, x = u.get("position", !0), + _ = h && u.get("showPlayBtn", !0), + w = h && u.get("showPrevBtn", !0), + b = h && u.get("showNextBtn", !0), + S = 0, + M = l; + return "left" === x || "bottom" === x ? (_ && (g = [0, 0], S += f), w && (m = [S, 0], S += f), b && (v = [M - c, 0], M -= f)) : (_ && (g = [M - c, 0], M -= f), w && (m = [0, 0], S += f), b && (v = [M - c, 0], M -= f)), y = [S, M], t.get("inverse") && y.reverse(), { + viewRect: o, + mainLength: l, + orient: n, + rotation: s[n], + labelRotation: p, + labelPosOpt: i, + labelAlign: t.get("label.align") || a[n], + labelBaseline: t.get("label.verticalAlign") || t.get("label.baseline") || r[n], + playPosition: g, + prevBtnPosition: m, + nextBtnPosition: v, + axisExtent: y, + controlSize: c, + controlGap: d + } + }, + _position: function(t, e) { + function i(t) { + var e = t.position; + t.origin = [c[0][0] - e[0], c[1][0] - e[1]] + } + + function n(t) { + return [ + [t.x, t.x + t.width], + [t.y, t.y + t.height] + ] + } + + function o(t, e, i, n, o) { + t[n] += i[n][o] - e[n][o] + } + var a = this._mainGroup, + r = this._labelGroup, + s = t.viewRect; + if ("vertical" === t.orient) { + var l = mt(), + u = s.x, + h = s.y + s.height; + _t(l, l, [-u, -h]), wt(l, l, -GO / 2), _t(l, l, [u, h]), (s = s.clone()).applyTransform(l) + } + var c = n(s), + d = n(a.getBoundingRect()), + f = n(r.getBoundingRect()), + p = a.position, + g = r.position; + g[0] = p[0] = c[0][0]; + var m = t.labelPosOpt; + if (isNaN(m)) o(p, d, c, 1, v = "+" === m ? 0 : 1), o(g, f, c, 1, 1 - v); + else { + var v = m >= 0 ? 0 : 1; + o(p, d, c, 1, v), g[1] = p[1] + m + } + a.attr("position", p), r.attr("position", g), a.rotation = r.rotation = t.rotation, i(a), i(r) + }, + _createAxis: function(t, e) { + var i = e.getData(), + n = e.get("axisType"), + o = Vl(e, n); + o.getTicks = function() { + return i.mapArray(["value"], function(t) { + return t + }) + }; + var a = i.getDataExtent("value"); + o.setExtent(a[0], a[1]), o.niceTicks(); + var r = new zO("value", o, t.axisExtent, n); + return r.model = e, r + }, + _createGroup: function(t) { + var e = this["_" + t] = new Zw; + return this.group.add(e), e + }, + _renderAxisLine: function(t, e, i, n) { + var o = i.getExtent(); + n.get("lineStyle.show") && e.add(new rM({ + shape: { + x1: o[0], + y1: 0, + x2: o[1], + y2: 0 + }, + style: a({ + lineCap: "round" + }, n.getModel("lineStyle").getLineStyle()), + silent: !0, + z2: 1 + })) + }, + _renderAxisTick: function(t, e, i, n) { + var o = n.getData(), + a = i.scale.getTicks(); + VO(a, function(t) { + var a = i.dataToCoord(t), + r = o.getItemModel(t), + s = r.getModel("itemStyle"), + l = r.getModel("emphasis.itemStyle"), + u = { + position: [a, 0], + onclick: BO(this._changeTimeline, this, t) + }, + h = Cx(r, s, e, u); + uo(h, l.getItemStyle()), r.get("tooltip") ? (h.dataIndex = t, h.dataModel = n) : h.dataIndex = h.dataModel = null + }, this) + }, + _renderAxisLabel: function(t, e, i, n) { + if (i.getLabelModel().get("show")) { + var o = n.getData(), + a = i.getViewLabels(); + VO(a, function(n) { + var a = n.tickValue, + r = o.getItemModel(a), + s = r.getModel("label"), + l = r.getModel("emphasis.label"), + u = i.dataToCoord(n.tickValue), + h = new qS({ + position: [u, 0], + rotation: t.labelRotation - t.rotation, + onclick: BO(this._changeTimeline, this, a), + silent: !1 + }); + fo(h.style, s, { + text: n.formattedLabel, + textAlign: t.labelAlign, + textVerticalAlign: t.labelBaseline + }), e.add(h), uo(h, fo({}, l)) + }, this) + } + }, + _renderControl: function(t, e, i, n) { + function o(t, i, o, h) { + if (t) { + var c = Dx(n, i, u, { + position: t, + origin: [a / 2, 0], + rotation: h ? -r : 0, + rectHover: !0, + style: s, + onclick: o + }); + e.add(c), uo(c, l) + } + } + var a = t.controlSize, + r = t.rotation, + s = n.getModel("controlStyle").getItemStyle(), + l = n.getModel("emphasis.controlStyle").getItemStyle(), + u = [0, -a / 2, a, a], + h = n.getPlayState(), + c = n.get("inverse", !0); + o(t.nextBtnPosition, "controlStyle.nextIcon", BO(this._changeTimeline, this, c ? "-" : "+")), o(t.prevBtnPosition, "controlStyle.prevIcon", BO(this._changeTimeline, this, c ? "+" : "-")), o(t.playPosition, "controlStyle." + (h ? "stopIcon" : "playIcon"), BO(this._handlePlayClick, this, !h), !0) + }, + _renderCurrentPointer: function(t, e, i, n) { + var o = n.getData(), + a = n.getCurrentIndex(), + r = o.getItemModel(a).getModel("checkpointStyle"), + s = this, + l = { + onCreate: function(t) { + t.draggable = !0, t.drift = BO(s._handlePointerDrag, s), t.ondragend = BO(s._handlePointerDragend, s), Lx(t, a, i, n, !0) + }, + onUpdate: function(t) { + Lx(t, a, i, n) + } + }; + this._currentPointer = Cx(r, r, this._mainGroup, {}, this._currentPointer, l) + }, + _handlePlayClick: function(t) { + this._clearTimer(), this.api.dispatchAction({ + type: "timelinePlayChange", + playState: t, + from: this.uid + }) + }, + _handlePointerDrag: function(t, e, i) { + this._clearTimer(), this._pointerChangeTimeline([i.offsetX, i.offsetY]) + }, + _handlePointerDragend: function(t) { + this._pointerChangeTimeline([t.offsetX, t.offsetY], !0) + }, + _pointerChangeTimeline: function(t, e) { + var i = this._toAxisCoord(t)[0], + n = Bo(this._axis.getExtent().slice()); + i > n[1] && (i = n[1]), i < n[0] && (i = n[0]), this._currentPointer.position[0] = i, this._currentPointer.dirty(); + var o = this._findNearestTick(i), + a = this.model; + (e || o !== a.getCurrentIndex() && a.get("realtime")) && this._changeTimeline(o) + }, + _doPlayStop: function() { + this._clearTimer(), this.model.getPlayState() && (this._timer = setTimeout(BO(function() { + var t = this.model; + this._changeTimeline(t.getCurrentIndex() + (t.get("rewind", !0) ? -1 : 1)) + }, this), this.model.get("playInterval"))) + }, + _toAxisCoord: function(t) { + return Io(t, this._mainGroup.getLocalTransform(), !0) + }, + _findNearestTick: function(t) { + var e, i = this.model.getData(), + n = 1 / 0, + o = this._axis; + return i.each(["value"], function(i, a) { + var r = o.dataToCoord(i), + s = Math.abs(r - t); + s < n && (n = s, e = a) + }), e + }, + _clearTimer: function() { + this._timer && (clearTimeout(this._timer), this._timer = null) + }, + _changeTimeline: function(t) { + var e = this.model.getCurrentIndex(); + "+" === t ? t = e + 1 : "-" === t && (t = e - 1), this.api.dispatchAction({ + type: "timelineChange", + currentIndex: t, + from: this.uid + }) + } + }), Ls(function(t) { + var e = t && t.timeline; + y(e) || (e = e ? [e] : []), d(e, function(t) { + t && Mx(t) + }) + }); + var FO = Bs({ + type: "toolbox", + layoutMode: { + type: "box", + ignoreSize: !0 + }, + optionUpdated: function() { + FO.superApply(this, "optionUpdated", arguments), d(this.option.feature, function(t, e) { + var i = xy(e); + i && n(t, i.defaultOption) + }) + }, + defaultOption: { + show: !0, + z: 6, + zlevel: 0, + orient: "horizontal", + left: "right", + top: "top", + backgroundColor: "transparent", + borderColor: "#ccc", + borderRadius: 0, + borderWidth: 0, + padding: 5, + itemSize: 15, + itemGap: 8, + showTitle: !0, + iconStyle: { + borderColor: "#666", + color: "none" + }, + emphasis: { + iconStyle: { + borderColor: "#3E98C5" + } + } + } + }); + Vs({ + type: "toolbox", + render: function(t, e, i, n) { + function o(o, r) { + var s, c = h[o], + d = h[r], + f = new Lo(l[c], t, t.ecModel); + if (c && !d) { + if (kx(c)) s = { + model: f, + onclick: f.option.onclick, + featureName: c + }; + else { + var p = xy(c); + if (!p) return; + s = new p(f, e, i) + } + u[c] = s + } else { + if (!(s = u[d])) return; + s.model = f, s.ecModel = e, s.api = i + } + c || !d ? f.get("show") && !s.unusable ? (a(f, s, c), f.setIconStatus = function(t, e) { + var i = this.option, + n = this.iconPaths; + i.iconStatus = i.iconStatus || {}, i.iconStatus[t] = e, n[t] && n[t].trigger(e) + }, s.render && s.render(f, e, i, n)) : s.remove && s.remove(e, i) : s.dispose && s.dispose(e, i) + } + + function a(n, o, a) { + var l = n.getModel("iconStyle"), + u = n.getModel("emphasis.iconStyle"), + h = o.getIcons ? o.getIcons() : n.get("icon"), + c = n.get("title") || {}; + if ("string" == typeof h) { + var f = h, + p = c; + c = {}, (h = {})[a] = f, c[a] = p + } + var g = n.iconPaths = {}; + d(h, function(a, h) { + var d = Co(a, {}, { + x: -s / 2, + y: -s / 2, + width: s, + height: s + }); + d.setStyle(l.getItemStyle()), d.hoverStyle = u.getItemStyle(), uo(d), t.get("showTitle") && (d.__title = c[h], d.on("mouseover", function() { + var t = u.getItemStyle(); + d.setStyle({ + text: c[h], + textPosition: t.textPosition || "bottom", + textFill: t.fill || t.stroke || "#000", + textAlign: t.textAlign || "center" + }) + }).on("mouseout", function() { + d.setStyle({ + textFill: null + }) + })), d.trigger(n.get("iconStatus." + h) || "normal"), r.add(d), d.on("click", m(o.onclick, o, e, i, h)), g[h] = d + }) + } + var r = this.group; + if (r.removeAll(), t.get("show")) { + var s = +t.get("itemSize"), + l = t.get("feature") || {}, + u = this._features || (this._features = {}), + h = []; + d(l, function(t, e) { + h.push(e) + }), new Hs(this._featureNames || [], h).add(o).update(o).remove(v(o, null)).execute(), this._featureNames = h, dv(r, t, i), r.add(fv(r.getBoundingRect(), t)), r.eachChild(function(t) { + var e = t.__title, + n = t.hoverStyle; + if (n && e) { + var o = De(e, He(n)), + a = t.position[0] + r.position[0], + l = !1; + t.position[1] + r.position[1] + s + o.height > i.getHeight() && (n.textPosition = "top", l = !0); + var u = l ? -5 - o.height : s + 8; + a + o.width / 2 > i.getWidth() ? (n.textPosition = ["100%", u], n.textAlign = "right") : a - o.width / 2 < 0 && (n.textPosition = [0, u], n.textAlign = "left") + } + }) + } + }, + updateView: function(t, e, i, n) { + d(this._features, function(t) { + t.updateView && t.updateView(t.model, e, i, n) + }) + }, + remove: function(t, e) { + d(this._features, function(i) { + i.remove && i.remove(t, e) + }), this.group.removeAll() + }, + dispose: function(t, e) { + d(this._features, function(i) { + i.dispose && i.dispose(t, e) + }) + } + }); + var WO = XI.toolbox.saveAsImage; + Px.defaultOption = { + show: !0, + icon: "M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0", + title: WO.title, + type: "png", + name: "", + excludeComponents: ["toolbox"], + pixelRatio: 1, + lang: WO.lang.slice() + }, Px.prototype.unusable = !z_.canvasSupported, Px.prototype.onclick = function(t, e) { + var i = this.model, + n = i.get("name") || t.get("title.0.text") || "echarts", + o = document.createElement("a"), + a = i.get("type", !0) || "png"; + o.download = n + "." + a, o.target = "_blank"; + var r = e.getConnectedDataURL({ + type: a, + backgroundColor: i.get("backgroundColor", !0) || t.get("backgroundColor") || "#fff", + excludeComponents: i.get("excludeComponents"), + pixelRatio: i.get("pixelRatio") + }); + if (o.href = r, "function" != typeof MouseEvent || z_.browser.ie || z_.browser.edge) + if (window.navigator.msSaveOrOpenBlob) { + for (var s = atob(r.split(",")[1]), l = s.length, u = new Uint8Array(l); l--;) u[l] = s.charCodeAt(l); + var h = new Blob([u]); + window.navigator.msSaveOrOpenBlob(h, n + "." + a) + } else { + var c = i.get("lang"), + d = ''; + window.open().document.write(d) + } + else { + var f = new MouseEvent("click", { + view: window, + bubbles: !0, + cancelable: !1 + }); + o.dispatchEvent(f) + } + }, yy("saveAsImage", Px); + var HO = XI.toolbox.magicType; + Nx.defaultOption = { + show: !0, + type: [], + icon: { + line: "M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4", + bar: "M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7", + stack: "M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z", + tiled: "M2.3,2.2h22.8V25H2.3V2.2z M35,2.2h22.8V25H35V2.2zM2.3,35h22.8v22.8H2.3V35z M35,35h22.8v22.8H35V35z" + }, + title: i(HO.title), + option: {}, + seriesIndex: {} + }; + var ZO = Nx.prototype; + ZO.getIcons = function() { + var t = this.model, + e = t.get("icon"), + i = {}; + return d(t.get("type"), function(t) { + e[t] && (i[t] = e[t]) + }), i + }; + var UO = { + line: function(t, e, i, o) { + if ("bar" === t) return n({ + id: e, + type: "line", + data: i.get("data"), + stack: i.get("stack"), + markPoint: i.get("markPoint"), + markLine: i.get("markLine") + }, o.get("option.line") || {}, !0) + }, + bar: function(t, e, i, o) { + if ("line" === t) return n({ + id: e, + type: "bar", + data: i.get("data"), + stack: i.get("stack"), + markPoint: i.get("markPoint"), + markLine: i.get("markLine") + }, o.get("option.bar") || {}, !0) + }, + stack: function(t, e, i, o) { + if ("line" === t || "bar" === t) return n({ + id: e, + stack: "__ec_magicType_stack__" + }, o.get("option.stack") || {}, !0) + }, + tiled: function(t, e, i, o) { + if ("line" === t || "bar" === t) return n({ + id: e, + stack: "" + }, o.get("option.tiled") || {}, !0) + } + }, + XO = [ + ["line", "bar"], + ["stack", "tiled"] + ]; + ZO.onclick = function(t, e, i) { + var n = this.model, + o = n.get("seriesIndex." + i); + if (UO[i]) { + var a = { + series: [] + }; + d(XO, function(t) { + l(t, i) >= 0 && d(t, function(t) { + n.setIconStatus(t, "normal") + }) + }), n.setIconStatus(i, "emphasis"), t.eachComponent({ + mainType: "series", + query: null == o ? null : { + seriesIndex: o + } + }, function(e) { + var o = e.subType, + s = e.id, + l = UO[i](o, s, e, n); + l && (r(l, e.option), a.series.push(l)); + var u = e.coordinateSystem; + if (u && "cartesian2d" === u.type && ("line" === i || "bar" === i)) { + var h = u.getAxesByScale("ordinal")[0]; + if (h) { + var c = h.dim + "Axis", + d = t.queryComponents({ + mainType: c, + index: e.get(name + "Index"), + id: e.get(name + "Id") + })[0].componentIndex; + a[c] = a[c] || []; + for (var f = 0; f <= d; f++) a[c][d] = a[c][d] || {}; + a[c][d].boundaryGap = "bar" === i + } + } + }), e.dispatchAction({ + type: "changeMagicType", + currentType: i, + newOption: a + }) + } + }, Ps({ + type: "changeMagicType", + event: "magicTypeChanged", + update: "prepareAndUpdate" + }, function(t, e) { + e.mergeOption(t.newOption) + }), yy("magicType", Nx); + var jO = XI.toolbox.dataView, + YO = new Array(60).join("-"), + qO = "\t", + KO = new RegExp("[" + qO + "]+", "g"); + Hx.defaultOption = { + show: !0, + readOnly: !1, + optionToContent: null, + contentToOption: null, + icon: "M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28", + title: i(jO.title), + lang: i(jO.lang), + backgroundColor: "#fff", + textColor: "#000", + textareaColor: "#fff", + textareaBorderColor: "#333", + buttonColor: "#c23531", + buttonTextColor: "#fff" + }, Hx.prototype.onclick = function(t, e) { + function i() { + n.removeChild(a), x._dom = null + } + var n = e.getDom(), + o = this.model; + this._dom && n.removeChild(this._dom); + var a = document.createElement("div"); + a.style.cssText = "position:absolute;left:5px;top:5px;bottom:5px;right:5px;", a.style.backgroundColor = o.get("backgroundColor") || "#fff"; + var r = document.createElement("h4"), + s = o.get("lang") || []; + r.innerHTML = s[0] || o.get("title"), r.style.cssText = "margin: 10px 20px;", r.style.color = o.get("textColor"); + var l = document.createElement("div"), + u = document.createElement("textarea"); + l.style.cssText = "display:block;width:100%;overflow:auto;"; + var h = o.get("optionToContent"), + c = o.get("contentToOption"), + d = zx(t); + if ("function" == typeof h) { + var f = h(e.getOption()); + "string" == typeof f ? l.innerHTML = f : M(f) && l.appendChild(f) + } else l.appendChild(u), u.readOnly = o.get("readOnly"), u.style.cssText = "width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;", u.style.color = o.get("textColor"), u.style.borderColor = o.get("textareaBorderColor"), u.style.backgroundColor = o.get("textareaColor"), u.value = d.value; + var p = d.meta, + g = document.createElement("div"); + g.style.cssText = "position:absolute;bottom:0;left:0;right:0;"; + var m = "float:right;margin-right:20px;border:none;cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px", + v = document.createElement("div"), + y = document.createElement("div"); + m += ";background-color:" + o.get("buttonColor"), m += ";color:" + o.get("buttonTextColor"); + var x = this; + ut(v, "click", i), ut(y, "click", function() { + var t; + try { + t = "function" == typeof c ? c(l, e.getOption()) : Wx(u.value, p) + } catch (t) { + throw i(), new Error("Data view format error " + t) + } + t && e.dispatchAction({ + type: "changeDataView", + newOption: t + }), i() + }), v.innerHTML = s[1], y.innerHTML = s[2], y.style.cssText = m, v.style.cssText = m, !o.get("readOnly") && g.appendChild(y), g.appendChild(v), ut(u, "keydown", function(t) { + if (9 === (t.keyCode || t.which)) { + var e = this.value, + i = this.selectionStart, + n = this.selectionEnd; + this.value = e.substring(0, i) + qO + e.substring(n), this.selectionStart = this.selectionEnd = i + 1, lw(t) + } + }), a.appendChild(r), a.appendChild(l), a.appendChild(g), l.style.height = n.clientHeight - 80 + "px", n.appendChild(a), this._dom = a + }, Hx.prototype.remove = function(t, e) { + this._dom && e.getDom().removeChild(this._dom) + }, Hx.prototype.dispose = function(t, e) { + this.remove(t, e) + }, yy("dataView", Hx), Ps({ + type: "changeDataView", + event: "dataViewChanged", + update: "prepareAndUpdate" + }, function(t, e) { + var i = []; + d(t.newOption.series, function(t) { + var n = e.getSeriesByName(t.name)[0]; + if (n) { + var o = n.get("data"); + i.push({ + name: t.name, + data: Zx(t.data, o) + }) + } else i.push(a({ + type: "scatter" + }, t)) + }), e.mergeOption(r({ + series: i + }, t.newOption)) + }); + var $O = d, + JO = "\0_ec_hist_store"; + BN.extend({ + type: "dataZoom.select" + }), VN.extend({ + type: "dataZoom.select" + }); + var QO = XI.toolbox.dataZoom, + tE = d, + eE = "\0_ec_\0toolbox-dataZoom_"; + Kx.defaultOption = { + show: !0, + icon: { + zoom: "M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1", + back: "M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26" + }, + title: i(QO.title) + }; + var iE = Kx.prototype; + iE.render = function(t, e, i, n) { + this.model = t, this.ecModel = e, this.api = i, Qx(t, e, this, n, i), Jx(t, e) + }, iE.onclick = function(t, e, i) { + nE[i].call(this) + }, iE.remove = function(t, e) { + this._brushController.unmount() + }, iE.dispose = function(t, e) { + this._brushController.dispose() + }; + var nE = { + zoom: function() { + var t = !this._isZoomActive; + this.api.dispatchAction({ + type: "takeGlobalCursor", + key: "dataZoomSelect", + dataZoomSelectActive: t + }) + }, + back: function() { + this._dispatchZoomAction(Xx(this.ecModel)) + } + }; + iE._onBrush = function(t, e) { + function i(t, e, i) { + var r = e.getAxis(t), + s = r.model, + l = n(t, s, a), + u = l.findRepresentativeAxisProxy(s).getMinMaxSpan(); + null == u.minValueSpan && null == u.maxValueSpan || (i = EL(0, i.slice(), r.scale.getExtent(), 0, u.minValueSpan, u.maxValueSpan)), l && (o[l.id] = { + dataZoomId: l.id, + startValue: i[0], + endValue: i[1] + }) + } + + function n(t, e, i) { + var n; + return i.eachComponent({ + mainType: "dataZoom", + subType: "select" + }, function(i) { + i.getAxisModel(t, e.componentIndex) && (n = i) + }), n + } + if (e.isEnd && t.length) { + var o = {}, + a = this.ecModel; + this._brushController.updateCovers([]), new iy($x(this.model.option), a, { + include: ["grid"] + }).matchOutputRanges(t, a, function(t, e, n) { + if ("cartesian2d" === n.type) { + var o = t.brushType; + "rect" === o ? (i("x", n, e[0]), i("y", n, e[1])) : i({ + lineX: "x", + lineY: "y" + } [o], n, e) + } + }), Ux(a, o), this._dispatchZoomAction(o) + } + }, iE._dispatchZoomAction = function(t) { + var e = []; + tE(t, function(t, n) { + e.push(i(t)) + }), e.length && this.api.dispatchAction({ + type: "dataZoom", + from: this.uid, + batch: e + }) + }, yy("dataZoom", Kx), Ls(function(t) { + function e(t, e) { + if (e) { + var o = t + "Index", + a = e[o]; + null == a || "all" === a || y(a) || (a = !1 === a || "none" === a ? [] : [a]), i(t, function(e, i) { + if (null == a || "all" === a || -1 !== l(a, i)) { + var r = { + type: "select", + $fromToolbox: !0, + id: eE + t + i + }; + r[o] = i, n.push(r) + } + }) + } + } + + function i(e, i) { + var n = t[e]; + y(n) || (n = n ? [n] : []), tE(n, i) + } + if (t) { + var n = t.dataZoom || (t.dataZoom = []); + y(n) || (t.dataZoom = n = [n]); + var o = t.toolbox; + if (o && (y(o) && (o = o[0]), o && o.feature)) { + var a = o.feature.dataZoom; + e("xAxis", a), e("yAxis", a) + } + } + }); + var oE = XI.toolbox.restore; + t_.defaultOption = { + show: !0, + icon: "M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5", + title: oE.title + }, t_.prototype.onclick = function(t, e, i) { + jx(t), e.dispatchAction({ + type: "restore", + from: this.uid + }) + }, yy("restore", t_), Ps({ + type: "restore", + event: "restore", + update: "prepareAndUpdate" + }, function(t, e) { + e.resetOption("recreate") + }); + var aE, rE = "urn:schemas-microsoft-com:vml", + sE = "undefined" == typeof window ? null : window, + lE = !1, + uE = sE && sE.document; + if (uE && !z_.canvasSupported) try { + !uE.namespaces.zrvml && uE.namespaces.add("zrvml", rE), aE = function(t) { + return uE.createElement("') + } + } catch (t) { + aE = function(t) { + return uE.createElement("<" + t + ' xmlns="' + rE + '" class="zrvml">') + } + } + var hE = MS.CMD, + cE = Math.round, + dE = Math.sqrt, + fE = Math.abs, + pE = Math.cos, + gE = Math.sin, + mE = Math.max; + if (!z_.canvasSupported) { + var vE = 21600, + yE = vE / 2, + xE = function(t) { + t.style.cssText = "position:absolute;left:0;top:0;width:1px;height:1px;", t.coordsize = vE + "," + vE, t.coordorigin = "0,0" + }, + _E = function(t) { + return String(t).replace(/&/g, "&").replace(/"/g, """) + }, + wE = function(t, e, i) { + return "rgb(" + [t, e, i].join(",") + ")" + }, + bE = function(t, e) { + e && t && e.parentNode !== t && t.appendChild(e) + }, + SE = function(t, e) { + e && t && e.parentNode === t && t.removeChild(e) + }, + ME = function(t, e, i) { + return 1e5 * (parseFloat(t) || 0) + 1e3 * (parseFloat(e) || 0) + i + }, + IE = function(t, e) { + return "string" == typeof t ? t.lastIndexOf("%") >= 0 ? parseFloat(t) / 100 * e : parseFloat(t) : t + }, + TE = function(t, e, i) { + var n = zt(e); + i = +i, isNaN(i) && (i = 1), n && (t.color = wE(n[0], n[1], n[2]), t.opacity = i * n[3]) + }, + AE = function(t) { + var e = zt(t); + return [wE(e[0], e[1], e[2]), e[3]] + }, + DE = function(t, e, i) { + var n = e.fill; + if (null != n) + if (n instanceof cM) { + var o, a = 0, + r = [0, 0], + s = 0, + l = 1, + u = i.getBoundingRect(), + h = u.width, + c = u.height; + if ("linear" === n.type) { + o = "gradient"; + var d = i.transform, + f = [n.x * h, n.y * c], + p = [n.x2 * h, n.y2 * c]; + d && (Q(f, f, d), Q(p, p, d)); + var g = p[0] - f[0], + m = p[1] - f[1]; + (a = 180 * Math.atan2(g, m) / Math.PI) < 0 && (a += 360), a < 1e-6 && (a = 0) + } else { + o = "gradientradial"; + var f = [n.x * h, n.y * c], + d = i.transform, + v = i.scale, + y = h, + x = c; + r = [(f[0] - u.x) / y, (f[1] - u.y) / x], d && Q(f, f, d), y /= v[0] * vE, x /= v[1] * vE; + var _ = mE(y, x); + s = 0 / _, l = 2 * n.r / _ - s + } + var w = n.colorStops.slice(); + w.sort(function(t, e) { + return t.offset - e.offset + }); + for (var b = w.length, S = [], M = [], I = 0; I < b; I++) { + var T = w[I], + A = AE(T.color); + M.push(T.offset * l + s + " " + A[0]), 0 !== I && I !== b - 1 || S.push(A) + } + if (b >= 2) { + var D = S[0][0], + C = S[1][0], + L = S[0][1] * e.opacity, + k = S[1][1] * e.opacity; + t.type = o, t.method = "none", t.focus = "100%", t.angle = a, t.color = D, t.color2 = C, t.colors = M.join(","), t.opacity = k, t.opacity2 = L + } + "radial" === o && (t.focusposition = r.join(",")) + } else TE(t, n, e.opacity) + }, + CE = function(t, e) { + null != e.lineDash && (t.dashstyle = e.lineDash.join(" ")), null == e.stroke || e.stroke instanceof cM || TE(t, e.stroke, e.opacity) + }, + LE = function(t, e, i, n) { + var o = "fill" == e, + a = t.getElementsByTagName(e)[0]; + null != i[e] && "none" !== i[e] && (o || !o && i.lineWidth) ? (t[o ? "filled" : "stroked"] = "true", i[e] instanceof cM && SE(t, a), a || (a = e_(e)), o ? DE(a, i, n) : CE(a, i), bE(t, a)) : (t[o ? "filled" : "stroked"] = "false", SE(t, a)) + }, + kE = [ + [], + [], + [] + ], + PE = function(t, e) { + var i, n, o, a, r, s, l = hE.M, + u = hE.C, + h = hE.L, + c = hE.A, + d = hE.Q, + f = [], + p = t.data, + g = t.len(); + for (a = 0; a < g;) { + switch (o = p[a++], n = "", i = 0, o) { + case l: + n = " m ", i = 1, r = p[a++], s = p[a++], kE[0][0] = r, kE[0][1] = s; + break; + case h: + n = " l ", i = 1, r = p[a++], s = p[a++], kE[0][0] = r, kE[0][1] = s; + break; + case d: + case u: + n = " c ", i = 3; + var m, v, y = p[a++], + x = p[a++], + _ = p[a++], + w = p[a++]; + o === d ? (m = _, v = w, _ = (_ + 2 * y) / 3, w = (w + 2 * x) / 3, y = (r + 2 * y) / 3, x = (s + 2 * x) / 3) : (m = p[a++], v = p[a++]), kE[0][0] = y, kE[0][1] = x, kE[1][0] = _, kE[1][1] = w, kE[2][0] = m, kE[2][1] = v, r = m, s = v; + break; + case c: + var b = 0, + S = 0, + M = 1, + I = 1, + T = 0; + e && (b = e[4], S = e[5], M = dE(e[0] * e[0] + e[1] * e[1]), I = dE(e[2] * e[2] + e[3] * e[3]), T = Math.atan2(-e[1] / I, e[0] / M)); + var A = p[a++], + D = p[a++], + C = p[a++], + L = p[a++], + k = p[a++] + T, + P = p[a++] + k + T; + a++; + var N = p[a++], + O = A + pE(k) * C, + E = D + gE(k) * L, + y = A + pE(P) * C, + x = D + gE(P) * L, + R = N ? " wa " : " at "; + Math.abs(O - y) < 1e-4 && (Math.abs(P - k) > .01 ? N && (O += .0125) : Math.abs(E - D) < 1e-4 ? N && O < A || !N && O > A ? x -= .0125 : x += .0125 : N && E < D || !N && E > D ? y += .0125 : y -= .0125), f.push(R, cE(((A - C) * M + b) * vE - yE), ",", cE(((D - L) * I + S) * vE - yE), ",", cE(((A + C) * M + b) * vE - yE), ",", cE(((D + L) * I + S) * vE - yE), ",", cE((O * M + b) * vE - yE), ",", cE((E * I + S) * vE - yE), ",", cE((y * M + b) * vE - yE), ",", cE((x * I + S) * vE - yE)), r = y, s = x; + break; + case hE.R: + var z = kE[0], + B = kE[1]; + z[0] = p[a++], z[1] = p[a++], B[0] = z[0] + p[a++], B[1] = z[1] + p[a++], e && (Q(z, z, e), Q(B, B, e)), z[0] = cE(z[0] * vE - yE), B[0] = cE(B[0] * vE - yE), z[1] = cE(z[1] * vE - yE), B[1] = cE(B[1] * vE - yE), f.push(" m ", z[0], ",", z[1], " l ", B[0], ",", z[1], " l ", B[0], ",", B[1], " l ", z[0], ",", B[1]); + break; + case hE.Z: + f.push(" x ") + } + if (i > 0) { + f.push(n); + for (var V = 0; V < i; V++) { + var G = kE[V]; + e && Q(G, G, e), f.push(cE(G[0] * vE - yE), ",", cE(G[1] * vE - yE), V < i - 1 ? "," : "") + } + } + } + return f.join("") + }; + kn.prototype.brushVML = function(t) { + var e = this.style, + i = this._vmlEl; + i || (i = e_("shape"), xE(i), this._vmlEl = i), LE(i, "fill", e, this), LE(i, "stroke", e, this); + var n = this.transform, + o = null != n, + a = i.getElementsByTagName("stroke")[0]; + if (a) { + var r = e.lineWidth; + if (o && !e.strokeNoScale) { + var s = n[0] * n[3] - n[1] * n[2]; + r *= dE(fE(s)) + } + a.weight = r + "px" + } + var l = this.path || (this.path = new MS); + this.__dirtyPath && (l.beginPath(), this.buildPath(l, this.shape), l.toStatic(), this.__dirtyPath = !1), i.path = PE(l, this.transform), i.style.zIndex = ME(this.zlevel, this.z, this.z2), bE(t, i), null != e.text ? this.drawRectText(t, this.getBoundingRect()) : this.removeRectText(t) + }, kn.prototype.onRemove = function(t) { + SE(t, this._vmlEl), this.removeRectText(t) + }, kn.prototype.onAdd = function(t) { + bE(t, this._vmlEl), this.appendRectText(t) + }; + var NE = function(t) { + return "object" == typeof t && t.tagName && "IMG" === t.tagName.toUpperCase() + }; + hi.prototype.brushVML = function(t) { + var e, i, n = this.style, + o = n.image; + if (NE(o)) { + var a = o.src; + if (a === this._imageSrc) e = this._imageWidth, i = this._imageHeight; + else { + var r = o.runtimeStyle, + s = r.width, + l = r.height; + r.width = "auto", r.height = "auto", e = o.width, i = o.height, r.width = s, r.height = l, this._imageSrc = a, this._imageWidth = e, this._imageHeight = i + } + o = a + } else o === this._imageSrc && (e = this._imageWidth, i = this._imageHeight); + if (o) { + var u = n.x || 0, + h = n.y || 0, + c = n.width, + d = n.height, + f = n.sWidth, + p = n.sHeight, + g = n.sx || 0, + m = n.sy || 0, + v = f && p, + y = this._vmlEl; + y || (y = uE.createElement("div"), xE(y), this._vmlEl = y); + var x, _ = y.style, + w = !1, + b = 1, + S = 1; + if (this.transform && (x = this.transform, b = dE(x[0] * x[0] + x[1] * x[1]), S = dE(x[2] * x[2] + x[3] * x[3]), w = x[1] || x[2]), w) { + var M = [u, h], + I = [u + c, h], + T = [u, h + d], + A = [u + c, h + d]; + Q(M, M, x), Q(I, I, x), Q(T, T, x), Q(A, A, x); + var D = mE(M[0], I[0], T[0], A[0]), + C = mE(M[1], I[1], T[1], A[1]), + L = []; + L.push("M11=", x[0] / b, ",", "M12=", x[2] / S, ",", "M21=", x[1] / b, ",", "M22=", x[3] / S, ",", "Dx=", cE(u * b + x[4]), ",", "Dy=", cE(h * S + x[5])), _.padding = "0 " + cE(D) + "px " + cE(C) + "px 0", _.filter = "progid:DXImageTransform.Microsoft.Matrix(" + L.join("") + ", SizingMethod=clip)" + } else x && (u = u * b + x[4], h = h * S + x[5]), _.filter = "", _.left = cE(u) + "px", _.top = cE(h) + "px"; + var k = this._imageEl, + P = this._cropEl; + k || (k = uE.createElement("div"), this._imageEl = k); + var N = k.style; + if (v) { + if (e && i) N.width = cE(b * e * c / f) + "px", N.height = cE(S * i * d / p) + "px"; + else { + var O = new Image, + E = this; + O.onload = function() { + O.onload = null, e = O.width, i = O.height, N.width = cE(b * e * c / f) + "px", N.height = cE(S * i * d / p) + "px", E._imageWidth = e, E._imageHeight = i, E._imageSrc = o + }, O.src = o + } + P || ((P = uE.createElement("div")).style.overflow = "hidden", this._cropEl = P); + var R = P.style; + R.width = cE((c + g * c / f) * b), R.height = cE((d + m * d / p) * S), R.filter = "progid:DXImageTransform.Microsoft.Matrix(Dx=" + -g * c / f * b + ",Dy=" + -m * d / p * S + ")", P.parentNode || y.appendChild(P), k.parentNode != P && P.appendChild(k) + } else N.width = cE(b * c) + "px", N.height = cE(S * d) + "px", y.appendChild(k), P && P.parentNode && (y.removeChild(P), this._cropEl = null); + var z = "", + B = n.opacity; + B < 1 && (z += ".Alpha(opacity=" + cE(100 * B) + ") "), z += "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=" + o + ", SizingMethod=scale)", N.filter = z, y.style.zIndex = ME(this.zlevel, this.z, this.z2), bE(t, y), null != n.text && this.drawRectText(t, this.getBoundingRect()) + } + }, hi.prototype.onRemove = function(t) { + SE(t, this._vmlEl), this._vmlEl = null, this._cropEl = null, this._imageEl = null, this.removeRectText(t) + }, hi.prototype.onAdd = function(t) { + bE(t, this._vmlEl), this.appendRectText(t) + }; + var OE, EE = {}, + RE = 0, + zE = document.createElement("div"), + BE = function(t) { + var e = EE[t]; + if (!e) { + RE > 100 && (RE = 0, EE = {}); + var i, n = zE.style; + try { + n.font = t, i = n.fontFamily.split(",")[0] + } catch (t) {} + e = { + style: n.fontStyle || "normal", + variant: n.fontVariant || "normal", + weight: n.fontWeight || "normal", + size: 0 | parseFloat(n.fontSize || 12), + family: i || "Microsoft YaHei" + }, EE[t] = e, RE++ + } + return e + }; + ! function(t, e) { + hb[t] = e + }("measureText", function(t, e) { + var i = uE; + OE || ((OE = i.createElement("div")).style.cssText = "position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;", uE.body.appendChild(OE)); + try { + OE.style.font = e + } catch (t) {} + return OE.innerHTML = "", OE.appendChild(i.createTextNode(t)), { + width: OE.offsetWidth + } + }); + for (var VE = new ue, GE = [gb, ui, hi, kn, qS], FE = 0; FE < GE.length; FE++) { + var WE = GE[FE].prototype; + WE.drawRectText = function(t, e, i, n) { + var o = this.style; + this.__dirty && Ue(o); + var a = o.text; + if (null != a && (a += ""), a) { + if (o.rich) { + var r = Fe(a, o); + a = []; + for (var s = 0; s < r.lines.length; s++) { + for (var l = r.lines[s].tokens, u = [], h = 0; h < l.length; h++) u.push(l[h].text); + a.push(u.join("")) + } + a = a.join("\n") + } + var c, d, f = o.textAlign, + p = o.textVerticalAlign, + g = BE(o.font), + m = g.style + " " + g.variant + " " + g.weight + " " + g.size + 'px "' + g.family + '"'; + i = i || De(a, m, f, p); + var v = this.transform; + if (v && !n && (VE.copy(e), VE.applyTransform(v), e = VE), n) c = e.x, d = e.y; + else { + var y = o.textPosition, + x = o.textDistance; + if (y instanceof Array) c = e.x + IE(y[0], e.width), d = e.y + IE(y[1], e.height), f = f || "left"; + else { + var _ = Ne(y, e, x); + c = _.x, d = _.y, f = f || _.textAlign, p = p || _.textVerticalAlign + } + } + c = ke(c, i.width, f), d = Pe(d, i.height, p), d += i.height / 2; + var w, b, S, M = e_, + I = this._textVmlEl; + I ? b = (w = (S = I.firstChild).nextSibling).nextSibling : (I = M("line"), w = M("path"), b = M("textpath"), S = M("skew"), b.style["v-text-align"] = "left", xE(I), w.textpathok = !0, b.on = !0, I.from = "0 0", I.to = "1000 0.05", bE(I, S), bE(I, w), bE(I, b), this._textVmlEl = I); + var T = [c, d], + A = I.style; + v && n ? (Q(T, T, v), S.on = !0, S.matrix = v[0].toFixed(3) + "," + v[2].toFixed(3) + "," + v[1].toFixed(3) + "," + v[3].toFixed(3) + ",0,0", S.offset = (cE(T[0]) || 0) + "," + (cE(T[1]) || 0), S.origin = "0 0", A.left = "0px", A.top = "0px") : (S.on = !1, A.left = cE(c) + "px", A.top = cE(d) + "px"), b.string = _E(a); + try { + b.style.font = m + } catch (t) {} + LE(I, "fill", { + fill: o.textFill, + opacity: o.opacity + }, this), LE(I, "stroke", { + stroke: o.textStroke, + opacity: o.opacity, + lineDash: o.lineDash + }, this), I.style.zIndex = ME(this.zlevel, this.z, this.z2), bE(t, I) + } + }, WE.removeRectText = function(t) { + SE(t, this._textVmlEl), this._textVmlEl = null + }, WE.appendRectText = function(t) { + bE(t, this._textVmlEl) + } + } + qS.prototype.brushVML = function(t) { + var e = this.style; + null != e.text ? this.drawRectText(t, { + x: e.x || 0, + y: e.y || 0, + width: 0, + height: 0 + }, this.getBoundingRect(), !0) : this.removeRectText(t) + }, qS.prototype.onRemove = function(t) { + this.removeRectText(t) + }, qS.prototype.onAdd = function(t) { + this.appendRectText(t) + } + } + o_.prototype = { + constructor: o_, + getType: function() { + return "vml" + }, + getViewportRoot: function() { + return this._vmlViewport + }, + getViewportRootOffset: function() { + var t = this.getViewportRoot(); + if (t) return { + offsetLeft: t.offsetLeft || 0, + offsetTop: t.offsetTop || 0 + } + }, + refresh: function() { + var t = this.storage.getDisplayList(!0, !0); + this._paintList(t) + }, + _paintList: function(t) { + for (var e = this._vmlRoot, i = 0; i < t.length; i++) { + var n = t[i]; + n.invisible || n.ignore ? (n.__alreadyNotVisible || n.onRemove(e), n.__alreadyNotVisible = !0) : (n.__alreadyNotVisible && n.onAdd(e), n.__alreadyNotVisible = !1, n.__dirty && (n.beforeBrush && n.beforeBrush(), (n.brushVML || n.brush).call(n, e), n.afterBrush && n.afterBrush())), n.__dirty = !1 + } + this._firstPaint && (this._vmlViewport.appendChild(e), this._firstPaint = !1) + }, + resize: function(t, e) { + var t = null == t ? this._getWidth() : t, + e = null == e ? this._getHeight() : e; + if (this._width != t || this._height != e) { + this._width = t, this._height = e; + var i = this._vmlViewport.style; + i.width = t + "px", i.height = e + "px" + } + }, + dispose: function() { + this.root.innerHTML = "", this._vmlRoot = this._vmlViewport = this.storage = null + }, + getWidth: function() { + return this._width + }, + getHeight: function() { + return this._height + }, + clear: function() { + this._vmlViewport && this.root.removeChild(this._vmlViewport) + }, + _getWidth: function() { + var t = this.root, + e = t.currentStyle; + return (t.clientWidth || n_(e.width)) - n_(e.paddingLeft) - n_(e.paddingRight) | 0 + }, + _getHeight: function() { + var t = this.root, + e = t.currentStyle; + return (t.clientHeight || n_(e.height)) - n_(e.paddingTop) - n_(e.paddingBottom) | 0 + } + }, d(["getLayer", "insertLayer", "eachLayer", "eachBuiltinLayer", "eachOtherLayer", "getLayers", "modLayer", "delLayer", "clearLayer", "toDataURL", "pathToImage"], function(t) { + o_.prototype[t] = a_(t) + }), Ti("vml", o_); + var HE = "http://www.w3.org/2000/svg", + ZE = MS.CMD, + UE = Array.prototype.join, + XE = "none", + jE = Math.round, + YE = Math.sin, + qE = Math.cos, + KE = Math.PI, + $E = 2 * Math.PI, + JE = 180 / KE, + QE = 1e-4, + tR = {}; + tR.brush = function(t) { + var e = t.style, + i = t.__svgEl; + i || (i = r_("path"), t.__svgEl = i), t.path || t.createPathProxy(); + var n = t.path; + if (t.__dirtyPath) { + n.beginPath(), t.buildPath(n, t.shape), t.__dirtyPath = !1; + var o = g_(n); + o.indexOf("NaN") < 0 && d_(i, "d", o) + } + p_(i, e, !1, t), c_(i, t.transform), null != e.text && oR(t, t.getBoundingRect()) + }; + var eR = {}; + eR.brush = function(t) { + var e = t.style, + i = e.image; + if (i instanceof HTMLImageElement && (i = i.src), i) { + var n = e.x || 0, + o = e.y || 0, + a = e.width, + r = e.height, + s = t.__svgEl; + s || (s = r_("image"), t.__svgEl = s), i !== t.__imageSrc && (f_(s, "href", i), t.__imageSrc = i), d_(s, "width", a), d_(s, "height", r), d_(s, "x", n), d_(s, "y", o), c_(s, t.transform), null != e.text && oR(t, t.getBoundingRect()) + } + }; + var iR = {}, + nR = new ue, + oR = function(t, e, i) { + var n = t.style; + t.__dirty && Ue(n); + var o = n.text; + if (null != o) { + o += ""; + var a = t.__textSvgEl; + a || (a = r_("text"), t.__textSvgEl = a); + var r, s, l = n.textPosition, + u = n.textDistance, + h = n.textAlign || "left"; + "number" == typeof n.fontSize && (n.fontSize += "px"); + var c = n.font || [n.fontStyle || "", n.fontWeight || "", n.fontSize || "", n.fontFamily || ""].join(" ") || ub, + d = m_(n.textVerticalAlign), + f = (i = De(o, c, h, d)).lineHeight; + if (l instanceof Array) r = e.x + l[0], s = e.y + l[1]; + else { + var p = Ne(l, e, u); + r = p.x, s = p.y, d = m_(p.textVerticalAlign), h = p.textAlign + } + d_(a, "alignment-baseline", d), c && (a.style.font = c); + var g = n.textPadding; + if (d_(a, "x", r), d_(a, "y", s), p_(a, n, !0, t), t instanceof qS || t.style.transformText) c_(a, t.transform); + else { + if (t.transform) nR.copy(e), nR.applyTransform(t.transform), e = nR; + else { + var m = t.transformCoordToGlobal(e.x, e.y); + e.x = m[0], e.y = m[1], t.transform = vt(mt()) + } + var v = n.textOrigin; + "center" === v ? (r = i.width / 2 + r, s = i.height / 2 + s) : v && (r = v[0] + r, s = v[1] + s); + var y = -n.textRotation || 0, + x = mt(); + wt(x, x, y), _t(x, x, m = [t.transform[4], t.transform[5]]), c_(a, x) + } + var _ = o.split("\n"), + w = _.length, + b = h; + "left" === b ? (b = "start", g && (r += g[3])) : "right" === b ? (b = "end", g && (r -= g[1])) : "center" === b && (b = "middle", g && (r += (g[3] - g[1]) / 2)); + var S = 0; + if ("after-edge" === d ? (S = -i.height + f, g && (S -= g[2])) : "middle" === d ? (S = (-i.height + f) / 2, g && (s += (g[0] - g[2]) / 2)) : g && (S += g[0]), t.__text !== o || t.__textFont !== c) { + var M = t.__tspanList || []; + t.__tspanList = M; + for (T = 0; T < w; T++)(A = M[T]) ? A.innerHTML = "" : (A = M[T] = r_("tspan"), a.appendChild(A), d_(A, "alignment-baseline", d), d_(A, "text-anchor", b)), d_(A, "x", r), d_(A, "y", s + T * f + S), A.appendChild(document.createTextNode(_[T])); + for (; T < M.length; T++) a.removeChild(M[T]); + M.length = w, t.__text = o, t.__textFont = c + } else if (t.__tspanList.length) + for (var I = t.__tspanList.length, T = 0; T < I; ++T) { + var A = t.__tspanList[T]; + A && (d_(A, "x", r), d_(A, "y", s + T * f + S)) + } + } + }; + iR.drawRectText = oR, iR.brush = function(t) { + var e = t.style; + null != e.text && (e.textPosition = [0, 0], oR(t, { + x: e.x || 0, + y: e.y || 0, + width: 0, + height: 0 + }, t.getBoundingRect())) + }, v_.prototype = { + diff: function(t, e, i) { + i || (i = function(t, e) { + return t === e + }), this.equals = i; + var n = this; + t = t.slice(); + var o = (e = e.slice()).length, + a = t.length, + r = 1, + s = o + a, + l = [{ + newPos: -1, + components: [] + }], + u = this.extractCommon(l[0], e, t, 0); + if (l[0].newPos + 1 >= o && u + 1 >= a) { + for (var h = [], c = 0; c < e.length; c++) h.push(c); + return [{ + indices: h, + count: e.length + }] + } + for (; r <= s;) { + var d = function() { + for (var i = -1 * r; i <= r; i += 2) { + var s, u = l[i - 1], + h = l[i + 1], + c = (h ? h.newPos : 0) - i; + u && (l[i - 1] = void 0); + var d = u && u.newPos + 1 < o, + f = h && 0 <= c && c < a; + if (d || f) { + if (!d || f && u.newPos < h.newPos ? (s = x_(h), n.pushComponent(s.components, void 0, !0)) : ((s = u).newPos++, n.pushComponent(s.components, !0, void 0)), c = n.extractCommon(s, e, t, i), s.newPos + 1 >= o && c + 1 >= a) return y_(0, s.components); + l[i] = s + } else l[i] = void 0 + } + r++ + }(); + if (d) return d + } + }, + pushComponent: function(t, e, i) { + var n = t[t.length - 1]; + n && n.added === e && n.removed === i ? t[t.length - 1] = { + count: n.count + 1, + added: e, + removed: i + } : t.push({ + count: 1, + added: e, + removed: i + }) + }, + extractCommon: function(t, e, i, n) { + for (var o = e.length, a = i.length, r = t.newPos, s = r - n, l = 0; r + 1 < o && s + 1 < a && this.equals(e[r + 1], i[s + 1]);) r++, s++, l++; + return l && t.components.push({ + count: l + }), t.newPos = r, s + }, + tokenize: function(t) { + return t.slice() + }, + join: function(t) { + return t.slice() + } + }; + var aR = new v_, + rR = function(t, e, i) { + return aR.diff(t, e, i) + }; + __.prototype.createElement = r_, __.prototype.getDefs = function(t) { + var e = this._svgRoot, + i = this._svgRoot.getElementsByTagName("defs"); + return 0 === i.length ? t ? ((i = e.insertBefore(this.createElement("defs"), e.firstChild)).contains || (i.contains = function(t) { + var e = i.children; + if (!e) return !1; + for (var n = e.length - 1; n >= 0; --n) + if (e[n] === t) return !0; + return !1 + }), i) : null : i[0] + }, __.prototype.update = function(t, e) { + if (t) { + var i = this.getDefs(!1); + if (t[this._domName] && i.contains(t[this._domName])) "function" == typeof e && e(t); + else { + var n = this.add(t); + n && (t[this._domName] = n) + } + } + }, __.prototype.addDom = function(t) { + this.getDefs(!0).appendChild(t) + }, __.prototype.removeDom = function(t) { + var e = this.getDefs(!1); + e && t[this._domName] && (e.removeChild(t[this._domName]), t[this._domName] = null) + }, __.prototype.getDoms = function() { + var t = this.getDefs(!1); + if (!t) return []; + var e = []; + return d(this._tagNames, function(i) { + var n = t.getElementsByTagName(i); + e = e.concat([].slice.call(n)) + }), e + }, __.prototype.markAllUnused = function() { + var t = this; + d(this.getDoms(), function(e) { + e[t._markLabel] = "0" + }) + }, __.prototype.markUsed = function(t) { + t && (t[this._markLabel] = "1") + }, __.prototype.removeUnused = function() { + var t = this.getDefs(!1); + if (t) { + var e = this; + d(this.getDoms(), function(i) { + "1" !== i[e._markLabel] && t.removeChild(i) + }) + } + }, __.prototype.getSvgProxy = function(t) { + return t instanceof kn ? tR : t instanceof hi ? eR : t instanceof qS ? iR : tR + }, __.prototype.getTextSvgElement = function(t) { + return t.__textSvgEl + }, __.prototype.getSvgElement = function(t) { + return t.__svgEl + }, u(w_, __), w_.prototype.addWithoutUpdate = function(t, e) { + if (e && e.style) { + var i = this; + d(["fill", "stroke"], function(n) { + if (e.style[n] && ("linear" === e.style[n].type || "radial" === e.style[n].type)) { + var o, a = e.style[n], + r = i.getDefs(!0); + a._dom ? (o = a._dom, r.contains(a._dom) || i.addDom(o)) : o = i.add(a), i.markUsed(e); + var s = o.getAttribute("id"); + t.setAttribute(n, "url(#" + s + ")") + } + }) + } + }, w_.prototype.add = function(t) { + var e; + if ("linear" === t.type) e = this.createElement("linearGradient"); + else { + if ("radial" !== t.type) return Bw("Illegal gradient type."), null; + e = this.createElement("radialGradient") + } + return t.id = t.id || this.nextId++, e.setAttribute("id", "zr" + this._zrId + "-gradient-" + t.id), this.updateDom(t, e), this.addDom(e), e + }, w_.prototype.update = function(t) { + var e = this; + __.prototype.update.call(this, t, function() { + var i = t.type, + n = t._dom.tagName; + "linear" === i && "linearGradient" === n || "radial" === i && "radialGradient" === n ? e.updateDom(t, t._dom) : (e.removeDom(t), e.add(t)) + }) + }, w_.prototype.updateDom = function(t, e) { + if ("linear" === t.type) e.setAttribute("x1", t.x), e.setAttribute("y1", t.y), e.setAttribute("x2", t.x2), e.setAttribute("y2", t.y2); + else { + if ("radial" !== t.type) return void Bw("Illegal gradient type."); + e.setAttribute("cx", t.x), e.setAttribute("cy", t.y), e.setAttribute("r", t.r) + } + t.global ? e.setAttribute("gradientUnits", "userSpaceOnUse") : e.setAttribute("gradientUnits", "objectBoundingBox"), e.innerHTML = ""; + for (var i = t.colorStops, n = 0, o = i.length; n < o; ++n) { + var a = this.createElement("stop"); + a.setAttribute("offset", 100 * i[n].offset + "%"), a.setAttribute("stop-color", i[n].color), e.appendChild(a) + } + t._dom = e + }, w_.prototype.markUsed = function(t) { + if (t.style) { + var e = t.style.fill; + e && e._dom && __.prototype.markUsed.call(this, e._dom), (e = t.style.stroke) && e._dom && __.prototype.markUsed.call(this, e._dom) + } + }, u(b_, __), b_.prototype.update = function(t) { + var e = this.getSvgElement(t); + e && this.updateDom(e, t.__clipPaths, !1); + var i = this.getTextSvgElement(t); + i && this.updateDom(i, t.__clipPaths, !0), this.markUsed(t) + }, b_.prototype.updateDom = function(t, e, i) { + if (e && e.length > 0) { + var n, o, a = this.getDefs(!0), + r = e[0], + s = i ? "_textDom" : "_dom"; + r[s] ? (o = r[s].getAttribute("id"), n = r[s], a.contains(n) || a.appendChild(n)) : (o = "zr" + this._zrId + "-clip-" + this.nextId, ++this.nextId, (n = this.createElement("clipPath")).setAttribute("id", o), a.appendChild(n), r[s] = n); + var l = this.getSvgProxy(r); + if (r.transform && r.parent.invTransform && !i) { + var u = Array.prototype.slice.call(r.transform); + xt(r.transform, r.parent.invTransform, r.transform), l.brush(r), r.transform = u + } else l.brush(r); + var h = this.getSvgElement(r); + n.innerHTML = "", n.appendChild(h.cloneNode()), t.setAttribute("clip-path", "url(#" + o + ")"), e.length > 1 && this.updateDom(n, e.slice(1), i) + } else t && t.setAttribute("clip-path", "none") + }, b_.prototype.markUsed = function(t) { + var e = this; + t.__clipPaths && t.__clipPaths.length > 0 && d(t.__clipPaths, function(t) { + t._dom && __.prototype.markUsed.call(e, t._dom), t._textDom && __.prototype.markUsed.call(e, t._textDom) + }) + }, u(S_, __), S_.prototype.addWithoutUpdate = function(t, e) { + if (e && M_(e.style)) { + var i, n = e.style; + n._shadowDom ? (i = n._shadowDom, this.getDefs(!0).contains(n._shadowDom) || this.addDom(i)) : i = this.add(e), this.markUsed(e); + var o = i.getAttribute("id"); + t.style.filter = "url(#" + o + ")" + } + }, S_.prototype.add = function(t) { + var e = this.createElement("filter"), + i = t.style; + return i._shadowDomId = i._shadowDomId || this.nextId++, e.setAttribute("id", "zr" + this._zrId + "-shadow-" + i._shadowDomId), this.updateDom(t, e), this.addDom(e), e + }, S_.prototype.update = function(t, e) { + var i = e.style; + if (M_(i)) { + var n = this; + __.prototype.update.call(this, e, function(t) { + n.updateDom(e, t._shadowDom) + }) + } else this.remove(t, i) + }, S_.prototype.remove = function(t, e) { + null != e._shadowDomId && (this.removeDom(e), t.style.filter = "") + }, S_.prototype.updateDom = function(t, e) { + var i = e.getElementsByTagName("feDropShadow"); + i = 0 === i.length ? this.createElement("feDropShadow") : i[0]; + var n, o, a, r, s = t.style, + l = t.scale ? t.scale[0] || 1 : 1, + u = t.scale ? t.scale[1] || 1 : 1; + if (s.shadowBlur || s.shadowOffsetX || s.shadowOffsetY) n = s.shadowOffsetX || 0, o = s.shadowOffsetY || 0, a = s.shadowBlur, r = s.shadowColor; + else { + if (!s.textShadowBlur) return void this.removeDom(e, s); + n = s.textShadowOffsetX || 0, o = s.textShadowOffsetY || 0, a = s.textShadowBlur, r = s.textShadowColor + } + i.setAttribute("dx", n / l), i.setAttribute("dy", o / u), i.setAttribute("flood-color", r); + var h = a / 2 / l + " " + a / 2 / u; + i.setAttribute("stdDeviation", h), e.setAttribute("x", "-100%"), e.setAttribute("y", "-100%"), e.setAttribute("width", Math.ceil(a / 2 * 200) + "%"), e.setAttribute("height", Math.ceil(a / 2 * 200) + "%"), e.appendChild(i), s._shadowDom = e + }, S_.prototype.markUsed = function(t) { + var e = t.style; + e && e._shadowDom && __.prototype.markUsed.call(this, e._shadowDom) + }; + var sR = function(t, e, i, n) { + this.root = t, this.storage = e, this._opts = i = a({}, i || {}); + var o = r_("svg"); + o.setAttribute("xmlns", "http://www.w3.org/2000/svg"), o.setAttribute("version", "1.1"), o.setAttribute("baseProfile", "full"), o.style.cssText = "user-select:none;position:absolute;left:0;top:0;", this.gradientManager = new w_(n, o), this.clipPathManager = new b_(n, o), this.shadowManager = new S_(n, o); + var r = document.createElement("div"); + r.style.cssText = "overflow:hidden;position:relative", this._svgRoot = o, this._viewport = r, t.appendChild(r), r.appendChild(o), this.resize(i.width, i.height), this._visibleList = [] + }; + sR.prototype = { + constructor: sR, + getType: function() { + return "svg" + }, + getViewportRoot: function() { + return this._viewport + }, + getViewportRootOffset: function() { + var t = this.getViewportRoot(); + if (t) return { + offsetLeft: t.offsetLeft || 0, + offsetTop: t.offsetTop || 0 + } + }, + refresh: function() { + var t = this.storage.getDisplayList(!0); + this._paintList(t) + }, + setBackgroundColor: function(t) { + this._viewport.style.background = t + }, + _paintList: function(t) { + this.gradientManager.markAllUnused(), this.clipPathManager.markAllUnused(), this.shadowManager.markAllUnused(); + var e, i = this._svgRoot, + n = this._visibleList, + o = t.length, + a = []; + for (e = 0; e < o; e++) { + var r = T_(f = t[e]), + s = P_(f) || k_(f); + f.invisible || (f.__dirty && (r && r.brush(f), this.clipPathManager.update(f), f.style && (this.gradientManager.update(f.style.fill), this.gradientManager.update(f.style.stroke), this.shadowManager.update(s, f)), f.__dirty = !1), a.push(f)) + } + var l, u = rR(n, a); + for (e = 0; e < u.length; e++) + if ((c = u[e]).removed) + for (d = 0; d < c.count; d++) { + var s = P_(f = n[c.indices[d]]), + h = k_(f); + L_(i, s), L_(i, h) + } + for (e = 0; e < u.length; e++) { + var c = u[e]; + if (c.added) + for (d = 0; d < c.count; d++) { + var s = P_(f = a[c.indices[d]]), + h = k_(f); + l ? D_(i, s, l) : C_(i, s), s ? D_(i, h, s) : l ? D_(i, h, l) : C_(i, h), D_(i, h, s), l = h || s || l, this.gradientManager.addWithoutUpdate(s, f), this.shadowManager.addWithoutUpdate(l, f), this.clipPathManager.markUsed(f) + } else if (!c.removed) + for (var d = 0; d < c.count; d++) { + var f = a[c.indices[d]]; + l = s = k_(f) || P_(f) || l, this.gradientManager.markUsed(f), this.gradientManager.addWithoutUpdate(s, f), this.shadowManager.markUsed(f), this.shadowManager.addWithoutUpdate(s, f), this.clipPathManager.markUsed(f) + } + } + this.gradientManager.removeUnused(), this.clipPathManager.removeUnused(), this.shadowManager.removeUnused(), this._visibleList = a + }, + _getDefs: function(t) { + var e = this._svgRoot, + i = this._svgRoot.getElementsByTagName("defs"); + return 0 === i.length ? t ? ((i = e.insertBefore(r_("defs"), e.firstChild)).contains || (i.contains = function(t) { + var e = i.children; + if (!e) return !1; + for (var n = e.length - 1; n >= 0; --n) + if (e[n] === t) return !0; + return !1 + }), i) : null : i[0] + }, + resize: function(t, e) { + var i = this._viewport; + i.style.display = "none"; + var n = this._opts; + if (null != t && (n.width = t), null != e && (n.height = e), t = this._getSize(0), e = this._getSize(1), i.style.display = "", this._width !== t || this._height !== e) { + this._width = t, this._height = e; + var o = i.style; + o.width = t + "px", o.height = e + "px"; + var a = this._svgRoot; + a.setAttribute("width", t), a.setAttribute("height", e) + } + }, + getWidth: function() { + return this._width + }, + getHeight: function() { + return this._height + }, + _getSize: function(t) { + var e = this._opts, + i = ["width", "height"][t], + n = ["clientWidth", "clientHeight"][t], + o = ["paddingLeft", "paddingTop"][t], + a = ["paddingRight", "paddingBottom"][t]; + if (null != e[i] && "auto" !== e[i]) return parseFloat(e[i]); + var r = this.root, + s = document.defaultView.getComputedStyle(r); + return (r[n] || I_(s[i]) || I_(r.style[i])) - (I_(s[o]) || 0) - (I_(s[a]) || 0) | 0 + }, + dispose: function() { + this.root.innerHTML = "", this._svgRoot = this._viewport = this.storage = null + }, + clear: function() { + this._viewport && this.root.removeChild(this._viewport) + }, + pathToDataUrl: function() { + return this.refresh(), "data:image/svg+xml;charset=UTF-8," + this._svgRoot.outerHTML + } + }, d(["getLayer", "insertLayer", "eachLayer", "eachBuiltinLayer", "eachOtherLayer", "getLayers", "modLayer", "delLayer", "clearLayer", "toDataURL", "pathToImage"], function(t) { + sR.prototype[t] = N_(t) + }), Ti("svg", sR), t.version = "4.2.0", t.dependencies = wT, t.PRIORITY = IT, t.init = function(t, e, i) { + var n = Ds(t); + if (n) return n; + var o = new rs(t, e, i); + return o.id = "ec_" + WT++, GT[o.id] = o, Fi(t, ZT, o.id), Ts(o), o + }, t.connect = function(t) { + if (y(t)) { + var e = t; + t = null, vT(e, function(e) { + null != e.group && (t = e.group) + }), t = t || "g_" + HT++, vT(e, function(e) { + e.group = t + }) + } + return FT[t] = !0, t + }, t.disConnect = As, t.disconnect = UT, t.dispose = function(t) { + "string" == typeof t ? t = GT[t] : t instanceof rs || (t = Ds(t)), t instanceof rs && !t.isDisposed() && t.dispose() + }, t.getInstanceByDom = Ds, t.getInstanceById = function(t) { + return GT[t] + }, t.registerTheme = Cs, t.registerPreprocessor = Ls, t.registerProcessor = ks, t.registerPostUpdate = function(t) { + RT.push(t) + }, t.registerAction = Ps, t.registerCoordinateSystem = Ns, t.getCoordinateSystemDimensions = function(t) { + var e = Ba.get(t); + if (e) return e.getDimensionsInfo ? e.getDimensionsInfo() : e.dimensions.slice() + }, t.registerLayout = Os, t.registerVisual = Es, t.registerLoading = zs, t.extendComponentModel = Bs, t.extendComponentView = Vs, t.extendSeriesModel = Gs, t.extendChartView = Fs, t.setCanvasCreator = function(t) { + e("createCanvas", t) + }, t.registerMap = function(t, e, i) { + pT.registerMap(t, e, i) + }, t.getMap = function(t) { + var e = pT.retrieveMap(t); + return e && e[0] && { + geoJson: e[0].geoJSON, + specialAreas: e[0].specialAreas + } + }, t.dataTool = XT, t.zrender = Pb, t.number = NM, t.format = FM, t.throttle = Cr, t.helper = BA, t.matrix = fw, t.vector = nw, t.color = Pw, t.parseGeoJSON = GA, t.parseGeoJson = ZA, t.util = UA, t.graphic = XA, t.List = eA, t.Model = Lo, t.Axis = HA, t.env = z_ +}); \ No newline at end of file diff --git "a/web/099 \350\213\261\351\233\204\350\201\224\347\233\237LPL\346\257\224\350\265\233\346\225\260\346\215\256\345\217\257\350\247\206\345\214\226/js/jquery.cxselect.min.js" "b/web/099 \350\213\261\351\233\204\350\201\224\347\233\237LPL\346\257\224\350\265\233\346\225\260\346\215\256\345\217\257\350\247\206\345\214\226/js/jquery.cxselect.min.js" new file mode 100644 index 00000000..b5987ebe --- /dev/null +++ "b/web/099 \350\213\261\351\233\204\350\201\224\347\233\237LPL\346\257\224\350\265\233\346\225\260\346\215\256\345\217\257\350\247\206\345\214\226/js/jquery.cxselect.min.js" @@ -0,0 +1,84 @@ +/*! + * JQuery cxSelect + * @name jquery.cxselect.js + * @version 1.3.4 + * #date 2013-12-18 + * @author ciaoca + * @email ciaoca@gmail.com + * @site https://github.com/ciaoca/cxSelect + * @license Released under the MIT license + */ +! function(a) { + "function" == typeof define && define.amd ? define(["jquery"], a) : a(jQuery) +}(function(a) { + a.cxSelect = function(b) { + var c, h, i, d = { + dom: {}, + api: {} + }, + e = function(a) { + return a && ("function" == typeof HTMLElement || "object" == typeof HTMLElement) && a instanceof HTMLElement ? !0 : a && a.nodeType && 1 === a.nodeType ? !0 : !1 + }, + f = function(a) { + return a && a.length && ("function" == typeof jQuery || "object" == typeof jQuery) && a instanceof jQuery ? !0 : !1 + }, + g = function(a) { + return Array.isArray ? Array.isArray(a) : "[object Array]" === Object.prototype.toString.call(a) + }; + for (h = 0, i = arguments.length; i > h; h++) f(arguments[h]) ? c = arguments[h] : e(arguments[h]) ? c = a(arguments[h]) : "object" == typeof arguments[h] && (b = arguments[h]); + if (!(c.length < 1)) return d.init = function() { + var e, d = this; + if (d.dom.box = c, d.settings = a.extend({}, a.cxSelect.defaults, b, { + url: d.dom.box.data("url"), + nodata: d.dom.box.data("nodata"), + required: d.dom.box.data("required"), + firstTitle: d.dom.box.data("firstTitle"), + firstValue: d.dom.box.data("firstValue") + }), d.settings.selects.length) { + for (d.selectArray = [], d.selectSum = d.settings.selects.length, e = 0; e < d.selectSum && d.dom.box.find("select." + d.settings.selects[e]); e++) d.selectArray.push(d.dom.box.find("select." + d.settings.selects[e])); + d.selectSum = d.selectArray.length, d.selectSum && ("string" == typeof d.settings.url ? a.getJSON(d.settings.url, function(a) { + d.dataJson = a, d.buildContent() + }) : "object" == typeof d.settings.url && (d.dataJson = d.settings.url, d.buildContent())) + } + }, d.getIndex = function(a) { + return this.settings.required ? a : a - 1 + }, d.getNewOptions = function(b, c) { + var d, e, f, g, h; + if (b) return d = this.settings.firstTitle, e = this.settings.firstValue, f = b.data("firstTitle"), g = b.data("firstValue"), h = "", ("string" == typeof f || "number" == typeof f || "boolean" == typeof f) && (d = f.toString()), ("string" == typeof g || "number" == typeof g || "boolean" == typeof g) && (e = g.toString()), this.settings.required || (h = '"), a.each(c, function(a, b) { + h += "string" == typeof b.v || "number" == typeof b.v || "boolean" == typeof b.v ? '" : '" + }), h + }, d.buildContent = function() { + var b, a = this; + a.dom.box.on("change", "select", function() { + a.selectChange(this.className) + }), b = a.getNewOptions(a.selectArray[0], a.dataJson), a.selectArray[0].html(b).prop("disabled", !1).trigger("change"), a.setDefaultValue() + }, d.setDefaultValue = function(a) { + var b, c; + a = a || 0, b = this, a >= b.selectSum || !b.selectArray[a] || (c = b.selectArray[a].data("value"), ("string" == typeof c || "number" == typeof c || "boolean" == typeof c) && (c = c.toString(), setTimeout(function() { + b.selectArray[a].val(c).trigger("change"), a++, b.setDefaultValue(a) + }, 1))) + }, d.selectChange = function(a) { + var b, c, d, e, f, h; + for (a = a.replace(/ /g, ","), a = "," + a + ",", b = [], h = 0; h < this.selectSum; h++) b.push(this.getIndex(this.selectArray[h].get(0).selectedIndex)), "number" == typeof c && h > c && (this.selectArray[h].empty().prop("disabled", !0), "none" === this.settings.nodata ? this.selectArray[h].css("display", "none") : "hidden" === this.settings.nodata && this.selectArray[h].css("visibility", "hidden")), a.indexOf("," + this.settings.selects[h] + ",") > -1 && (c = h); + for (d = c + 1, e = this.dataJson, h = 0; d > h; h++) { + if ("undefined" == typeof e[b[h]] || g(e[b[h]].s) === !1 || !e[b[h]].s.length) return; + e = e[b[h]].s + } + this.selectArray[d] && (f = this.getNewOptions(this.selectArray[d], e), this.selectArray[d].html(f).prop("disabled", !1).css({ + display: "", + visibility: "" + }).trigger("change")) + }, d.init(), this + }, a.cxSelect.defaults = { + selects: [], + url: null, + nodata: null, + required: !1, + firstTitle: "请选择", + firstValue: "0" + }, a.fn.cxSelect = function(b, c) { + return this.each(function() { + a.cxSelect(this, b, c) + }), this + } +}); \ No newline at end of file diff --git "a/web/099 \350\213\261\351\233\204\350\201\224\347\233\237LPL\346\257\224\350\265\233\346\225\260\346\215\256\345\217\257\350\247\206\345\214\226/js/jquery.js" "b/web/099 \350\213\261\351\233\204\350\201\224\347\233\237LPL\346\257\224\350\265\233\346\225\260\346\215\256\345\217\257\350\247\206\345\214\226/js/jquery.js" new file mode 100644 index 00000000..2f569806 --- /dev/null +++ "b/web/099 \350\213\261\351\233\204\350\201\224\347\233\237LPL\346\257\224\350\265\233\346\225\260\346\215\256\345\217\257\350\247\206\345\214\226/js/jquery.js" @@ -0,0 +1,3081 @@ +/*! JQuery v2.1.4 | (c) 2005, 2015 JQuery Foundation, Inc. | jquery.org/license */ ! function(a, b) { + "object" == typeof module && "object" == typeof module.exports ? module.exports = a.document ? b(a, !0) : function(a) { + if (!a.document) throw new Error("JQuery requires a window with a document"); + return b(a) + } : b(a) +}("undefined" != typeof window ? window : this, function(a, b) { + var c = [], + d = c.slice, + e = c.concat, + f = c.push, + g = c.indexOf, + h = {}, + i = h.toString, + j = h.hasOwnProperty, + k = {}, + l = a.document, + m = "2.1.4", + n = function(a, b) { + return new n.fn.init(a, b) + }, + o = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + p = /^-ms-/, + q = /-([\da-z])/gi, + r = function(a, b) { + return b.toUpperCase() + }; + n.fn = n.prototype = { + jquery: m, + constructor: n, + selector: "", + length: 0, + toArray: function() { + return d.call(this) + }, + get: function(a) { + return null != a ? 0 > a ? this[a + this.length] : this[a] : d.call(this) + }, + pushStack: function(a) { + var b = n.merge(this.constructor(), a); + return b.prevObject = this, b.context = this.context, b + }, + each: function(a, b) { + return n.each(this, a, b) + }, + map: function(a) { + return this.pushStack(n.map(this, function(b, c) { + return a.call(b, c, b) + })) + }, + slice: function() { + return this.pushStack(d.apply(this, arguments)) + }, + first: function() { + return this.eq(0) + }, + last: function() { + return this.eq(-1) + }, + eq: function(a) { + var b = this.length, + c = +a + (0 > a ? b : 0); + return this.pushStack(c >= 0 && b > c ? [this[c]] : []) + }, + end: function() { + return this.prevObject || this.constructor(null) + }, + push: f, + sort: c.sort, + splice: c.splice + }, n.extend = n.fn.extend = function() { + var a, b, c, d, e, f, g = arguments[0] || {}, + h = 1, + i = arguments.length, + j = !1; + for ("boolean" == typeof g && (j = g, g = arguments[h] || {}, h++), "object" == typeof g || n.isFunction(g) || (g = {}), h === i && (g = this, h--); i > h; h++) + if (null != (a = arguments[h])) + for (b in a) c = g[b], d = a[b], g !== d && (j && d && (n.isPlainObject(d) || (e = n.isArray(d))) ? (e ? (e = !1, f = c && n.isArray(c) ? c : []) : f = c && n.isPlainObject(c) ? c : {}, g[b] = n.extend(j, f, d)) : void 0 !== d && (g[b] = d)); + return g + }, n.extend({ + expando: "jQuery" + (m + Math.random()).replace(/\D/g, ""), + isReady: !0, + error: function(a) { + throw new Error(a) + }, + noop: function() {}, + isFunction: function(a) { + return "function" === n.type(a) + }, + isArray: Array.isArray, + isWindow: function(a) { + return null != a && a === a.window + }, + isNumeric: function(a) { + return !n.isArray(a) && a - parseFloat(a) + 1 >= 0 + }, + isPlainObject: function(a) { + return "object" !== n.type(a) || a.nodeType || n.isWindow(a) ? !1 : a.constructor && !j.call(a.constructor.prototype, "isPrototypeOf") ? !1 : !0 + }, + isEmptyObject: function(a) { + var b; + for (b in a) return !1; + return !0 + }, + type: function(a) { + return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? h[i.call(a)] || "object" : typeof a + }, + globalEval: function(a) { + var b, c = eval; + a = n.trim(a), a && (1 === a.indexOf("use strict") ? (b = l.createElement("script"), b.text = a, l.head.appendChild(b).parentNode.removeChild(b)) : c(a)) + }, + camelCase: function(a) { + return a.replace(p, "ms-").replace(q, r) + }, + nodeName: function(a, b) { + return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase() + }, + each: function(a, b, c) { + var d, e = 0, + f = a.length, + g = s(a); + if (c) { + if (g) { + for (; f > e; e++) + if (d = b.apply(a[e], c), d === !1) break + } else + for (e in a) + if (d = b.apply(a[e], c), d === !1) break + } else if (g) { + for (; f > e; e++) + if (d = b.call(a[e], e, a[e]), d === !1) break + } else + for (e in a) + if (d = b.call(a[e], e, a[e]), d === !1) break; + return a + }, + trim: function(a) { + return null == a ? "" : (a + "").replace(o, "") + }, + makeArray: function(a, b) { + var c = b || []; + return null != a && (s(Object(a)) ? n.merge(c, "string" == typeof a ? [a] : a) : f.call(c, a)), c + }, + inArray: function(a, b, c) { + return null == b ? -1 : g.call(b, a, c) + }, + merge: function(a, b) { + for (var c = +b.length, d = 0, e = a.length; c > d; d++) a[e++] = b[d]; + return a.length = e, a + }, + grep: function(a, b, c) { + for (var d, e = [], f = 0, g = a.length, h = !c; g > f; f++) d = !b(a[f], f), d !== h && e.push(a[f]); + return e + }, + map: function(a, b, c) { + var d, f = 0, + g = a.length, + h = s(a), + i = []; + if (h) + for (; g > f; f++) d = b(a[f], f, c), null != d && i.push(d); + else + for (f in a) d = b(a[f], f, c), null != d && i.push(d); + return e.apply([], i) + }, + guid: 1, + proxy: function(a, b) { + var c, e, f; + return "string" == typeof b && (c = a[b], b = a, a = c), n.isFunction(a) ? (e = d.call(arguments, 2), f = function() { + return a.apply(b || this, e.concat(d.call(arguments))) + }, f.guid = a.guid = a.guid || n.guid++, f) : void 0 + }, + now: Date.now, + support: k + }), n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(a, b) { + h["[object " + b + "]"] = b.toLowerCase() + }); + + function s(a) { + var b = "length" in a && a.length, + c = n.type(a); + return "function" === c || n.isWindow(a) ? !1 : 1 === a.nodeType && b ? !0 : "array" === c || 0 === b || "number" == typeof b && b > 0 && b - 1 in a + } + var t = function(a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u = "sizzle" + 1 * new Date, + v = a.document, + w = 0, + x = 0, + y = ha(), + z = ha(), + A = ha(), + B = function(a, b) { + return a === b && (l = !0), 0 + }, + C = 1 << 31, + D = {}.hasOwnProperty, + E = [], + F = E.pop, + G = E.push, + H = E.push, + I = E.slice, + J = function(a, b) { + for (var c = 0, d = a.length; d > c; c++) + if (a[c] === b) return c; + return -1 + }, + K = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + L = "[\\x20\\t\\r\\n\\f]", + M = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", + N = M.replace("w", "w#"), + O = "\\[" + L + "*(" + M + ")(?:" + L + "*([*^$|!~]?=)" + L + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + N + "))|)" + L + "*\\]", + P = ":(" + M + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + O + ")*)|.*)\\)|)", + Q = new RegExp(L + "+", "g"), + R = new RegExp("^" + L + "+|((?:^|[^\\\\])(?:\\\\.)*)" + L + "+$", "g"), + S = new RegExp("^" + L + "*," + L + "*"), + T = new RegExp("^" + L + "*([>+~]|" + L + ")" + L + "*"), + U = new RegExp("=" + L + "*([^\\]'\"]*?)" + L + "*\\]", "g"), + V = new RegExp(P), + W = new RegExp("^" + N + "$"), + X = { + ID: new RegExp("^#(" + M + ")"), + CLASS: new RegExp("^\\.(" + M + ")"), + TAG: new RegExp("^(" + M.replace("w", "w*") + ")"), + ATTR: new RegExp("^" + O), + PSEUDO: new RegExp("^" + P), + CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + L + "*(even|odd|(([+-]|)(\\d*)n|)" + L + "*(?:([+-]|)" + L + "*(\\d+)|))" + L + "*\\)|)", "i"), + bool: new RegExp("^(?:" + K + ")$", "i"), + needsContext: new RegExp("^" + L + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + L + "*((?:-\\d)?\\d*)" + L + "*\\)|)(?=[^-]|$)", "i") + }, + Y = /^(?:input|select|textarea|button)$/i, + Z = /^h\d$/i, + $ = /^[^{]+\{\s*\[native \w/, + _ = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + aa = /[+~]/, + ba = /'|\\/g, + ca = new RegExp("\\\\([\\da-f]{1,6}" + L + "?|(" + L + ")|.)", "ig"), + da = function(a, b, c) { + var d = "0x" + b - 65536; + return d !== d || c ? b : 0 > d ? String.fromCharCode(d + 65536) : String.fromCharCode(d >> 10 | 55296, 1023 & d | 56320) + }, + ea = function() { + m() + }; + try { + H.apply(E = I.call(v.childNodes), v.childNodes), E[v.childNodes.length].nodeType + } catch (fa) { + H = { + apply: E.length ? function(a, b) { + G.apply(a, I.call(b)) + } : function(a, b) { + var c = a.length, + d = 0; + while (a[c++] = b[d++]); + a.length = c - 1 + } + } + } + + function ga(a, b, d, e) { + var f, h, j, k, l, o, r, s, w, x; + if ((b ? b.ownerDocument || b : v) !== n && m(b), b = b || n, d = d || [], k = b.nodeType, "string" != typeof a || !a || 1 !== k && 9 !== k && 11 !== k) return d; + if (!e && p) { + if (11 !== k && (f = _.exec(a))) + if (j = f[1]) { + if (9 === k) { + if (h = b.getElementById(j), !h || !h.parentNode) return d; + if (h.id === j) return d.push(h), d + } else if (b.ownerDocument && (h = b.ownerDocument.getElementById(j)) && t(b, h) && h.id === j) return d.push(h), d + } else { + if (f[2]) return H.apply(d, b.getElementsByTagName(a)), d; + if ((j = f[3]) && c.getElementsByClassName) return H.apply(d, b.getElementsByClassName(j)), d + } if (c.qsa && (!q || !q.test(a))) { + if (s = r = u, w = b, x = 1 !== k && a, 1 === k && "object" !== b.nodeName.toLowerCase()) { + o = g(a), (r = b.getAttribute("id")) ? s = r.replace(ba, "\\$&") : b.setAttribute("id", s), s = "[id='" + s + "'] ", l = o.length; + while (l--) o[l] = s + ra(o[l]); + w = aa.test(a) && pa(b.parentNode) || b, x = o.join(",") + } + if (x) try { + return H.apply(d, w.querySelectorAll(x)), d + } catch (y) {} finally { + r || b.removeAttribute("id") + } + } + } + return i(a.replace(R, "$1"), b, d, e) + } + + function ha() { + var a = []; + + function b(c, e) { + return a.push(c + " ") > d.cacheLength && delete b[a.shift()], b[c + " "] = e + } + return b + } + + function ia(a) { + return a[u] = !0, a + } + + function ja(a) { + var b = n.createElement("div"); + try { + return !!a(b) + } catch (c) { + return !1 + } finally { + b.parentNode && b.parentNode.removeChild(b), b = null + } + } + + function ka(a, b) { + var c = a.split("|"), + e = a.length; + while (e--) d.attrHandle[c[e]] = b + } + + function la(a, b) { + var c = b && a, + d = c && 1 === a.nodeType && 1 === b.nodeType && (~b.sourceIndex || C) - (~a.sourceIndex || C); + if (d) return d; + if (c) + while (c = c.nextSibling) + if (c === b) return -1; + return a ? 1 : -1 + } + + function ma(a) { + return function(b) { + var c = b.nodeName.toLowerCase(); + return "input" === c && b.type === a + } + } + + function na(a) { + return function(b) { + var c = b.nodeName.toLowerCase(); + return ("input" === c || "button" === c) && b.type === a + } + } + + function oa(a) { + return ia(function(b) { + return b = +b, ia(function(c, d) { + var e, f = a([], c.length, b), + g = f.length; + while (g--) c[e = f[g]] && (c[e] = !(d[e] = c[e])) + }) + }) + } + + function pa(a) { + return a && "undefined" != typeof a.getElementsByTagName && a + } + c = ga.support = {}, f = ga.isXML = function(a) { + var b = a && (a.ownerDocument || a).documentElement; + return b ? "HTML" !== b.nodeName : !1 + }, m = ga.setDocument = function(a) { + var b, e, g = a ? a.ownerDocument || a : v; + return g !== n && 9 === g.nodeType && g.documentElement ? (n = g, o = g.documentElement, e = g.defaultView, e && e !== e.top && (e.addEventListener ? e.addEventListener("unload", ea, !1) : e.attachEvent && e.attachEvent("onunload", ea)), p = !f(g), c.attributes = ja(function(a) { + return a.className = "i", !a.getAttribute("className") + }), c.getElementsByTagName = ja(function(a) { + return a.appendChild(g.createComment("")), !a.getElementsByTagName("*").length + }), c.getElementsByClassName = $.test(g.getElementsByClassName), c.getById = ja(function(a) { + return o.appendChild(a).id = u, !g.getElementsByName || !g.getElementsByName(u).length + }), c.getById ? (d.find.ID = function(a, b) { + if ("undefined" != typeof b.getElementById && p) { + var c = b.getElementById(a); + return c && c.parentNode ? [c] : [] + } + }, d.filter.ID = function(a) { + var b = a.replace(ca, da); + return function(a) { + return a.getAttribute("id") === b + } + }) : (delete d.find.ID, d.filter.ID = function(a) { + var b = a.replace(ca, da); + return function(a) { + var c = "undefined" != typeof a.getAttributeNode && a.getAttributeNode("id"); + return c && c.value === b + } + }), d.find.TAG = c.getElementsByTagName ? function(a, b) { + return "undefined" != typeof b.getElementsByTagName ? b.getElementsByTagName(a) : c.qsa ? b.querySelectorAll(a) : void 0 + } : function(a, b) { + var c, d = [], + e = 0, + f = b.getElementsByTagName(a); + if ("*" === a) { + while (c = f[e++]) 1 === c.nodeType && d.push(c); + return d + } + return f + }, d.find.CLASS = c.getElementsByClassName && function(a, b) { + return p ? b.getElementsByClassName(a) : void 0 + }, r = [], q = [], (c.qsa = $.test(g.querySelectorAll)) && (ja(function(a) { + o.appendChild(a).innerHTML = "", a.querySelectorAll("[msallowcapture^='']").length && q.push("[*^$]=" + L + "*(?:''|\"\")"), a.querySelectorAll("[selected]").length || q.push("\\[" + L + "*(?:value|" + K + ")"), a.querySelectorAll("[id~=" + u + "-]").length || q.push("~="), a.querySelectorAll(":checked").length || q.push(":checked"), a.querySelectorAll("a#" + u + "+*").length || q.push(".#.+[+~]") + }), ja(function(a) { + var b = g.createElement("input"); + b.setAttribute("type", "hidden"), a.appendChild(b).setAttribute("name", "D"), a.querySelectorAll("[name=d]").length && q.push("name" + L + "*[*^$|!~]?="), a.querySelectorAll(":enabled").length || q.push(":enabled", ":disabled"), a.querySelectorAll("*,:x"), q.push(",.*:") + })), (c.matchesSelector = $.test(s = o.matches || o.webkitMatchesSelector || o.mozMatchesSelector || o.oMatchesSelector || o.msMatchesSelector)) && ja(function(a) { + c.disconnectedMatch = s.call(a, "div"), s.call(a, "[s!='']:x"), r.push("!=", P) + }), q = q.length && new RegExp(q.join("|")), r = r.length && new RegExp(r.join("|")), b = $.test(o.compareDocumentPosition), t = b || $.test(o.contains) ? function(a, b) { + var c = 9 === a.nodeType ? a.documentElement : a, + d = b && b.parentNode; + return a === d || !(!d || 1 !== d.nodeType || !(c.contains ? c.contains(d) : a.compareDocumentPosition && 16 & a.compareDocumentPosition(d))) + } : function(a, b) { + if (b) + while (b = b.parentNode) + if (b === a) return !0; + return !1 + }, B = b ? function(a, b) { + if (a === b) return l = !0, 0; + var d = !a.compareDocumentPosition - !b.compareDocumentPosition; + return d ? d : (d = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1, 1 & d || !c.sortDetached && b.compareDocumentPosition(a) === d ? a === g || a.ownerDocument === v && t(v, a) ? -1 : b === g || b.ownerDocument === v && t(v, b) ? 1 : k ? J(k, a) - J(k, b) : 0 : 4 & d ? -1 : 1) + } : function(a, b) { + if (a === b) return l = !0, 0; + var c, d = 0, + e = a.parentNode, + f = b.parentNode, + h = [a], + i = [b]; + if (!e || !f) return a === g ? -1 : b === g ? 1 : e ? -1 : f ? 1 : k ? J(k, a) - J(k, b) : 0; + if (e === f) return la(a, b); + c = a; + while (c = c.parentNode) h.unshift(c); + c = b; + while (c = c.parentNode) i.unshift(c); + while (h[d] === i[d]) d++; + return d ? la(h[d], i[d]) : h[d] === v ? -1 : i[d] === v ? 1 : 0 + }, g) : n + }, ga.matches = function(a, b) { + return ga(a, null, null, b) + }, ga.matchesSelector = function(a, b) { + if ((a.ownerDocument || a) !== n && m(a), b = b.replace(U, "='$1']"), !(!c.matchesSelector || !p || r && r.test(b) || q && q.test(b))) try { + var d = s.call(a, b); + if (d || c.disconnectedMatch || a.document && 11 !== a.document.nodeType) return d + } catch (e) {} + return ga(b, n, null, [a]).length > 0 + }, ga.contains = function(a, b) { + return (a.ownerDocument || a) !== n && m(a), t(a, b) + }, ga.attr = function(a, b) { + (a.ownerDocument || a) !== n && m(a); + var e = d.attrHandle[b.toLowerCase()], + f = e && D.call(d.attrHandle, b.toLowerCase()) ? e(a, b, !p) : void 0; + return void 0 !== f ? f : c.attributes || !p ? a.getAttribute(b) : (f = a.getAttributeNode(b)) && f.specified ? f.value : null + }, ga.error = function(a) { + throw new Error("Syntax error, unrecognized expression: " + a) + }, ga.uniqueSort = function(a) { + var b, d = [], + e = 0, + f = 0; + if (l = !c.detectDuplicates, k = !c.sortStable && a.slice(0), a.sort(B), l) { + while (b = a[f++]) b === a[f] && (e = d.push(f)); + while (e--) a.splice(d[e], 1) + } + return k = null, a + }, e = ga.getText = function(a) { + var b, c = "", + d = 0, + f = a.nodeType; + if (f) { + if (1 === f || 9 === f || 11 === f) { + if ("string" == typeof a.textContent) return a.textContent; + for (a = a.firstChild; a; a = a.nextSibling) c += e(a) + } else if (3 === f || 4 === f) return a.nodeValue + } else + while (b = a[d++]) c += e(b); + return c + }, d = ga.selectors = { + cacheLength: 50, + createPseudo: ia, + match: X, + attrHandle: {}, + find: {}, + relative: { + ">": { + dir: "parentNode", + first: !0 + }, + " ": { + dir: "parentNode" + }, + "+": { + dir: "previousSibling", + first: !0 + }, + "~": { + dir: "previousSibling" + } + }, + preFilter: { + ATTR: function(a) { + return a[1] = a[1].replace(ca, da), a[3] = (a[3] || a[4] || a[5] || "").replace(ca, da), "~=" === a[2] && (a[3] = " " + a[3] + " "), a.slice(0, 4) + }, + CHILD: function(a) { + return a[1] = a[1].toLowerCase(), "nth" === a[1].slice(0, 3) ? (a[3] || ga.error(a[0]), a[4] = +(a[4] ? a[5] + (a[6] || 1) : 2 * ("even" === a[3] || "odd" === a[3])), a[5] = +(a[7] + a[8] || "odd" === a[3])) : a[3] && ga.error(a[0]), a + }, + PSEUDO: function(a) { + var b, c = !a[6] && a[2]; + return X.CHILD.test(a[0]) ? null : (a[3] ? a[2] = a[4] || a[5] || "" : c && V.test(c) && (b = g(c, !0)) && (b = c.indexOf(")", c.length - b) - c.length) && (a[0] = a[0].slice(0, b), a[2] = c.slice(0, b)), a.slice(0, 3)) + } + }, + filter: { + TAG: function(a) { + var b = a.replace(ca, da).toLowerCase(); + return "*" === a ? function() { + return !0 + } : function(a) { + return a.nodeName && a.nodeName.toLowerCase() === b + } + }, + CLASS: function(a) { + var b = y[a + " "]; + return b || (b = new RegExp("(^|" + L + ")" + a + "(" + L + "|$)")) && y(a, function(a) { + return b.test("string" == typeof a.className && a.className || "undefined" != typeof a.getAttribute && a.getAttribute("class") || "") + }) + }, + ATTR: function(a, b, c) { + return function(d) { + var e = ga.attr(d, a); + return null == e ? "!=" === b : b ? (e += "", "=" === b ? e === c : "!=" === b ? e !== c : "^=" === b ? c && 0 === e.indexOf(c) : "*=" === b ? c && e.indexOf(c) > -1 : "$=" === b ? c && e.slice(-c.length) === c : "~=" === b ? (" " + e.replace(Q, " ") + " ").indexOf(c) > -1 : "|=" === b ? e === c || e.slice(0, c.length + 1) === c + "-" : !1) : !0 + } + }, + CHILD: function(a, b, c, d, e) { + var f = "nth" !== a.slice(0, 3), + g = "last" !== a.slice(-4), + h = "of-type" === b; + return 1 === d && 0 === e ? function(a) { + return !!a.parentNode + } : function(b, c, i) { + var j, k, l, m, n, o, p = f !== g ? "nextSibling" : "previousSibling", + q = b.parentNode, + r = h && b.nodeName.toLowerCase(), + s = !i && !h; + if (q) { + if (f) { + while (p) { + l = b; + while (l = l[p]) + if (h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) return !1; + o = p = "only" === a && !o && "nextSibling" + } + return !0 + } + if (o = [g ? q.firstChild : q.lastChild], g && s) { + k = q[u] || (q[u] = {}), j = k[a] || [], n = j[0] === w && j[1], m = j[0] === w && j[2], l = n && q.childNodes[n]; + while (l = ++n && l && l[p] || (m = n = 0) || o.pop()) + if (1 === l.nodeType && ++m && l === b) { + k[a] = [w, n, m]; + break + } + } else if (s && (j = (b[u] || (b[u] = {}))[a]) && j[0] === w) m = j[1]; + else + while (l = ++n && l && l[p] || (m = n = 0) || o.pop()) + if ((h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) && ++m && (s && ((l[u] || (l[u] = {}))[a] = [w, m]), l === b)) break; + return m -= e, m === d || m % d === 0 && m / d >= 0 + } + } + }, + PSEUDO: function(a, b) { + var c, e = d.pseudos[a] || d.setFilters[a.toLowerCase()] || ga.error("unsupported pseudo: " + a); + return e[u] ? e(b) : e.length > 1 ? (c = [a, a, "", b], d.setFilters.hasOwnProperty(a.toLowerCase()) ? ia(function(a, c) { + var d, f = e(a, b), + g = f.length; + while (g--) d = J(a, f[g]), a[d] = !(c[d] = f[g]) + }) : function(a) { + return e(a, 0, c) + }) : e + } + }, + pseudos: { + not: ia(function(a) { + var b = [], + c = [], + d = h(a.replace(R, "$1")); + return d[u] ? ia(function(a, b, c, e) { + var f, g = d(a, null, e, []), + h = a.length; + while (h--)(f = g[h]) && (a[h] = !(b[h] = f)) + }) : function(a, e, f) { + return b[0] = a, d(b, null, f, c), b[0] = null, !c.pop() + } + }), + has: ia(function(a) { + return function(b) { + return ga(a, b).length > 0 + } + }), + contains: ia(function(a) { + return a = a.replace(ca, da), + function(b) { + return (b.textContent || b.innerText || e(b)).indexOf(a) > -1 + } + }), + lang: ia(function(a) { + return W.test(a || "") || ga.error("unsupported lang: " + a), a = a.replace(ca, da).toLowerCase(), + function(b) { + var c; + do + if (c = p ? b.lang : b.getAttribute("xml:lang") || b.getAttribute("lang")) return c = c.toLowerCase(), c === a || 0 === c.indexOf(a + "-"); while ((b = b.parentNode) && 1 === b.nodeType); + return !1 + } + }), + target: function(b) { + var c = a.location && a.location.hash; + return c && c.slice(1) === b.id + }, + root: function(a) { + return a === o + }, + focus: function(a) { + return a === n.activeElement && (!n.hasFocus || n.hasFocus()) && !!(a.type || a.href || ~a.tabIndex) + }, + enabled: function(a) { + return a.disabled === !1 + }, + disabled: function(a) { + return a.disabled === !0 + }, + checked: function(a) { + var b = a.nodeName.toLowerCase(); + return "input" === b && !!a.checked || "option" === b && !!a.selected + }, + selected: function(a) { + return a.parentNode && a.parentNode.selectedIndex, a.selected === !0 + }, + empty: function(a) { + for (a = a.firstChild; a; a = a.nextSibling) + if (a.nodeType < 6) return !1; + return !0 + }, + parent: function(a) { + return !d.pseudos.empty(a) + }, + header: function(a) { + return Z.test(a.nodeName) + }, + input: function(a) { + return Y.test(a.nodeName) + }, + button: function(a) { + var b = a.nodeName.toLowerCase(); + return "input" === b && "button" === a.type || "button" === b + }, + text: function(a) { + var b; + return "input" === a.nodeName.toLowerCase() && "text" === a.type && (null == (b = a.getAttribute("type")) || "text" === b.toLowerCase()) + }, + first: oa(function() { + return [0] + }), + last: oa(function(a, b) { + return [b - 1] + }), + eq: oa(function(a, b, c) { + return [0 > c ? c + b : c] + }), + even: oa(function(a, b) { + for (var c = 0; b > c; c += 2) a.push(c); + return a + }), + odd: oa(function(a, b) { + for (var c = 1; b > c; c += 2) a.push(c); + return a + }), + lt: oa(function(a, b, c) { + for (var d = 0 > c ? c + b : c; --d >= 0;) a.push(d); + return a + }), + gt: oa(function(a, b, c) { + for (var d = 0 > c ? c + b : c; ++d < b;) a.push(d); + return a + }) + } + }, d.pseudos.nth = d.pseudos.eq; + for (b in { + radio: !0, + checkbox: !0, + file: !0, + password: !0, + image: !0 + }) d.pseudos[b] = ma(b); + for (b in { + submit: !0, + reset: !0 + }) d.pseudos[b] = na(b); + + function qa() {} + qa.prototype = d.filters = d.pseudos, d.setFilters = new qa, g = ga.tokenize = function(a, b) { + var c, e, f, g, h, i, j, k = z[a + " "]; + if (k) return b ? 0 : k.slice(0); + h = a, i = [], j = d.preFilter; + while (h) { + (!c || (e = S.exec(h))) && (e && (h = h.slice(e[0].length) || h), i.push(f = [])), c = !1, (e = T.exec(h)) && (c = e.shift(), f.push({ + value: c, + type: e[0].replace(R, " ") + }), h = h.slice(c.length)); + for (g in d.filter) !(e = X[g].exec(h)) || j[g] && !(e = j[g](e)) || (c = e.shift(), f.push({ + value: c, + type: g, + matches: e + }), h = h.slice(c.length)); + if (!c) break + } + return b ? h.length : h ? ga.error(a) : z(a, i).slice(0) + }; + + function ra(a) { + for (var b = 0, c = a.length, d = ""; c > b; b++) d += a[b].value; + return d + } + + function sa(a, b, c) { + var d = b.dir, + e = c && "parentNode" === d, + f = x++; + return b.first ? function(b, c, f) { + while (b = b[d]) + if (1 === b.nodeType || e) return a(b, c, f) + } : function(b, c, g) { + var h, i, j = [w, f]; + if (g) { + while (b = b[d]) + if ((1 === b.nodeType || e) && a(b, c, g)) return !0 + } else + while (b = b[d]) + if (1 === b.nodeType || e) { + if (i = b[u] || (b[u] = {}), (h = i[d]) && h[0] === w && h[1] === f) return j[2] = h[2]; + if (i[d] = j, j[2] = a(b, c, g)) return !0 + } + } + } + + function ta(a) { + return a.length > 1 ? function(b, c, d) { + var e = a.length; + while (e--) + if (!a[e](b, c, d)) return !1; + return !0 + } : a[0] + } + + function ua(a, b, c) { + for (var d = 0, e = b.length; e > d; d++) ga(a, b[d], c); + return c + } + + function va(a, b, c, d, e) { + for (var f, g = [], h = 0, i = a.length, j = null != b; i > h; h++)(f = a[h]) && (!c || c(f, d, e)) && (g.push(f), j && b.push(h)); + return g + } + + function wa(a, b, c, d, e, f) { + return d && !d[u] && (d = wa(d)), e && !e[u] && (e = wa(e, f)), ia(function(f, g, h, i) { + var j, k, l, m = [], + n = [], + o = g.length, + p = f || ua(b || "*", h.nodeType ? [h] : h, []), + q = !a || !f && b ? p : va(p, m, a, h, i), + r = c ? e || (f ? a : o || d) ? [] : g : q; + if (c && c(q, r, h, i), d) { + j = va(r, n), d(j, [], h, i), k = j.length; + while (k--)(l = j[k]) && (r[n[k]] = !(q[n[k]] = l)) + } + if (f) { + if (e || a) { + if (e) { + j = [], k = r.length; + while (k--)(l = r[k]) && j.push(q[k] = l); + e(null, r = [], j, i) + } + k = r.length; + while (k--)(l = r[k]) && (j = e ? J(f, l) : m[k]) > -1 && (f[j] = !(g[j] = l)) + } + } else r = va(r === g ? r.splice(o, r.length) : r), e ? e(null, g, r, i) : H.apply(g, r) + }) + } + + function xa(a) { + for (var b, c, e, f = a.length, g = d.relative[a[0].type], h = g || d.relative[" "], i = g ? 1 : 0, k = sa(function(a) { + return a === b + }, h, !0), l = sa(function(a) { + return J(b, a) > -1 + }, h, !0), m = [function(a, c, d) { + var e = !g && (d || c !== j) || ((b = c).nodeType ? k(a, c, d) : l(a, c, d)); + return b = null, e + }]; f > i; i++) + if (c = d.relative[a[i].type]) m = [sa(ta(m), c)]; + else { + if (c = d.filter[a[i].type].apply(null, a[i].matches), c[u]) { + for (e = ++i; f > e; e++) + if (d.relative[a[e].type]) break; + return wa(i > 1 && ta(m), i > 1 && ra(a.slice(0, i - 1).concat({ + value: " " === a[i - 2].type ? "*" : "" + })).replace(R, "$1"), c, e > i && xa(a.slice(i, e)), f > e && xa(a = a.slice(e)), f > e && ra(a)) + } + m.push(c) + } return ta(m) + } + + function ya(a, b) { + var c = b.length > 0, + e = a.length > 0, + f = function(f, g, h, i, k) { + var l, m, o, p = 0, + q = "0", + r = f && [], + s = [], + t = j, + u = f || e && d.find.TAG("*", k), + v = w += null == t ? 1 : Math.random() || .1, + x = u.length; + for (k && (j = g !== n && g); q !== x && null != (l = u[q]); q++) { + if (e && l) { + m = 0; + while (o = a[m++]) + if (o(l, g, h)) { + i.push(l); + break + } k && (w = v) + } + c && ((l = !o && l) && p--, f && r.push(l)) + } + if (p += q, c && q !== p) { + m = 0; + while (o = b[m++]) o(r, s, g, h); + if (f) { + if (p > 0) + while (q--) r[q] || s[q] || (s[q] = F.call(i)); + s = va(s) + } + H.apply(i, s), k && !f && s.length > 0 && p + b.length > 1 && ga.uniqueSort(i) + } + return k && (w = v, j = t), r + }; + return c ? ia(f) : f + } + return h = ga.compile = function(a, b) { + var c, d = [], + e = [], + f = A[a + " "]; + if (!f) { + b || (b = g(a)), c = b.length; + while (c--) f = xa(b[c]), f[u] ? d.push(f) : e.push(f); + f = A(a, ya(e, d)), f.selector = a + } + return f + }, i = ga.select = function(a, b, e, f) { + var i, j, k, l, m, n = "function" == typeof a && a, + o = !f && g(a = n.selector || a); + if (e = e || [], 1 === o.length) { + if (j = o[0] = o[0].slice(0), j.length > 2 && "ID" === (k = j[0]).type && c.getById && 9 === b.nodeType && p && d.relative[j[1].type]) { + if (b = (d.find.ID(k.matches[0].replace(ca, da), b) || [])[0], !b) return e; + n && (b = b.parentNode), a = a.slice(j.shift().value.length) + } + i = X.needsContext.test(a) ? 0 : j.length; + while (i--) { + if (k = j[i], d.relative[l = k.type]) break; + if ((m = d.find[l]) && (f = m(k.matches[0].replace(ca, da), aa.test(j[0].type) && pa(b.parentNode) || b))) { + if (j.splice(i, 1), a = f.length && ra(j), !a) return H.apply(e, f), e; + break + } + } + } + return (n || h(a, o))(f, b, !p, e, aa.test(a) && pa(b.parentNode) || b), e + }, c.sortStable = u.split("").sort(B).join("") === u, c.detectDuplicates = !!l, m(), c.sortDetached = ja(function(a) { + return 1 & a.compareDocumentPosition(n.createElement("div")) + }), ja(function(a) { + return a.innerHTML = "", "#" === a.firstChild.getAttribute("href") + }) || ka("type|href|height|width", function(a, b, c) { + return c ? void 0 : a.getAttribute(b, "type" === b.toLowerCase() ? 1 : 2) + }), c.attributes && ja(function(a) { + return a.innerHTML = "", a.firstChild.setAttribute("value", ""), "" === a.firstChild.getAttribute("value") + }) || ka("value", function(a, b, c) { + return c || "input" !== a.nodeName.toLowerCase() ? void 0 : a.defaultValue + }), ja(function(a) { + return null == a.getAttribute("disabled") + }) || ka(K, function(a, b, c) { + var d; + return c ? void 0 : a[b] === !0 ? b.toLowerCase() : (d = a.getAttributeNode(b)) && d.specified ? d.value : null + }), ga + }(a); + n.find = t, n.expr = t.selectors, n.expr[":"] = n.expr.pseudos, n.unique = t.uniqueSort, n.text = t.getText, n.isXMLDoc = t.isXML, n.contains = t.contains; + var u = n.expr.match.needsContext, + v = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, + w = /^.[^:#\[\.,]*$/; + + function x(a, b, c) { + if (n.isFunction(b)) return n.grep(a, function(a, d) { + return !!b.call(a, d, a) !== c + }); + if (b.nodeType) return n.grep(a, function(a) { + return a === b !== c + }); + if ("string" == typeof b) { + if (w.test(b)) return n.filter(b, a, c); + b = n.filter(b, a) + } + return n.grep(a, function(a) { + return g.call(b, a) >= 0 !== c + }) + } + n.filter = function(a, b, c) { + var d = b[0]; + return c && (a = ":not(" + a + ")"), 1 === b.length && 1 === d.nodeType ? n.find.matchesSelector(d, a) ? [d] : [] : n.find.matches(a, n.grep(b, function(a) { + return 1 === a.nodeType + })) + }, n.fn.extend({ + find: function(a) { + var b, c = this.length, + d = [], + e = this; + if ("string" != typeof a) return this.pushStack(n(a).filter(function() { + for (b = 0; c > b; b++) + if (n.contains(e[b], this)) return !0 + })); + for (b = 0; c > b; b++) n.find(a, e[b], d); + return d = this.pushStack(c > 1 ? n.unique(d) : d), d.selector = this.selector ? this.selector + " " + a : a, d + }, + filter: function(a) { + return this.pushStack(x(this, a || [], !1)) + }, + not: function(a) { + return this.pushStack(x(this, a || [], !0)) + }, + is: function(a) { + return !!x(this, "string" == typeof a && u.test(a) ? n(a) : a || [], !1).length + } + }); + var y, z = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, + A = n.fn.init = function(a, b) { + var c, d; + if (!a) return this; + if ("string" == typeof a) { + if (c = "<" === a[0] && ">" === a[a.length - 1] && a.length >= 3 ? [null, a, null] : z.exec(a), !c || !c[1] && b) return !b || b.jquery ? (b || y).find(a) : this.constructor(b).find(a); + if (c[1]) { + if (b = b instanceof n ? b[0] : b, n.merge(this, n.parseHTML(c[1], b && b.nodeType ? b.ownerDocument || b : l, !0)), v.test(c[1]) && n.isPlainObject(b)) + for (c in b) n.isFunction(this[c]) ? this[c](b[c]) : this.attr(c, b[c]); + return this + } + return d = l.getElementById(c[2]), d && d.parentNode && (this.length = 1, this[0] = d), this.context = l, this.selector = a, this + } + return a.nodeType ? (this.context = this[0] = a, this.length = 1, this) : n.isFunction(a) ? "undefined" != typeof y.ready ? y.ready(a) : a(n) : (void 0 !== a.selector && (this.selector = a.selector, this.context = a.context), n.makeArray(a, this)) + }; + A.prototype = n.fn, y = n(l); + var B = /^(?:parents|prev(?:Until|All))/, + C = { + children: !0, + contents: !0, + next: !0, + prev: !0 + }; + n.extend({ + dir: function(a, b, c) { + var d = [], + e = void 0 !== c; + while ((a = a[b]) && 9 !== a.nodeType) + if (1 === a.nodeType) { + if (e && n(a).is(c)) break; + d.push(a) + } return d + }, + sibling: function(a, b) { + for (var c = []; a; a = a.nextSibling) 1 === a.nodeType && a !== b && c.push(a); + return c + } + }), n.fn.extend({ + has: function(a) { + var b = n(a, this), + c = b.length; + return this.filter(function() { + for (var a = 0; c > a; a++) + if (n.contains(this, b[a])) return !0 + }) + }, + closest: function(a, b) { + for (var c, d = 0, e = this.length, f = [], g = u.test(a) || "string" != typeof a ? n(a, b || this.context) : 0; e > d; d++) + for (c = this[d]; c && c !== b; c = c.parentNode) + if (c.nodeType < 11 && (g ? g.index(c) > -1 : 1 === c.nodeType && n.find.matchesSelector(c, a))) { + f.push(c); + break + } return this.pushStack(f.length > 1 ? n.unique(f) : f) + }, + index: function(a) { + return a ? "string" == typeof a ? g.call(n(a), this[0]) : g.call(this, a.jquery ? a[0] : a) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 + }, + add: function(a, b) { + return this.pushStack(n.unique(n.merge(this.get(), n(a, b)))) + }, + addBack: function(a) { + return this.add(null == a ? this.prevObject : this.prevObject.filter(a)) + } + }); + + function D(a, b) { + while ((a = a[b]) && 1 !== a.nodeType); + return a + } + n.each({ + parent: function(a) { + var b = a.parentNode; + return b && 11 !== b.nodeType ? b : null + }, + parents: function(a) { + return n.dir(a, "parentNode") + }, + parentsUntil: function(a, b, c) { + return n.dir(a, "parentNode", c) + }, + next: function(a) { + return D(a, "nextSibling") + }, + prev: function(a) { + return D(a, "previousSibling") + }, + nextAll: function(a) { + return n.dir(a, "nextSibling") + }, + prevAll: function(a) { + return n.dir(a, "previousSibling") + }, + nextUntil: function(a, b, c) { + return n.dir(a, "nextSibling", c) + }, + prevUntil: function(a, b, c) { + return n.dir(a, "previousSibling", c) + }, + siblings: function(a) { + return n.sibling((a.parentNode || {}).firstChild, a) + }, + children: function(a) { + return n.sibling(a.firstChild) + }, + contents: function(a) { + return a.contentDocument || n.merge([], a.childNodes) + } + }, function(a, b) { + n.fn[a] = function(c, d) { + var e = n.map(this, b, c); + return "Until" !== a.slice(-5) && (d = c), d && "string" == typeof d && (e = n.filter(d, e)), this.length > 1 && (C[a] || n.unique(e), B.test(a) && e.reverse()), this.pushStack(e) + } + }); + var E = /\S+/g, + F = {}; + + function G(a) { + var b = F[a] = {}; + return n.each(a.match(E) || [], function(a, c) { + b[c] = !0 + }), b + } + n.Callbacks = function(a) { + a = "string" == typeof a ? F[a] || G(a) : n.extend({}, a); + var b, c, d, e, f, g, h = [], + i = !a.once && [], + j = function(l) { + for (b = a.memory && l, c = !0, g = e || 0, e = 0, f = h.length, d = !0; h && f > g; g++) + if (h[g].apply(l[0], l[1]) === !1 && a.stopOnFalse) { + b = !1; + break + } d = !1, h && (i ? i.length && j(i.shift()) : b ? h = [] : k.disable()) + }, + k = { + add: function() { + if (h) { + var c = h.length; + ! function g(b) { + n.each(b, function(b, c) { + var d = n.type(c); + "function" === d ? a.unique && k.has(c) || h.push(c) : c && c.length && "string" !== d && g(c) + }) + }(arguments), d ? f = h.length : b && (e = c, j(b)) + } + return this + }, + remove: function() { + return h && n.each(arguments, function(a, b) { + var c; + while ((c = n.inArray(b, h, c)) > -1) h.splice(c, 1), d && (f >= c && f--, g >= c && g--) + }), this + }, + has: function(a) { + return a ? n.inArray(a, h) > -1 : !(!h || !h.length) + }, + empty: function() { + return h = [], f = 0, this + }, + disable: function() { + return h = i = b = void 0, this + }, + disabled: function() { + return !h + }, + lock: function() { + return i = void 0, b || k.disable(), this + }, + locked: function() { + return !i + }, + fireWith: function(a, b) { + return !h || c && !i || (b = b || [], b = [a, b.slice ? b.slice() : b], d ? i.push(b) : j(b)), this + }, + fire: function() { + return k.fireWith(this, arguments), this + }, + fired: function() { + return !!c + } + }; + return k + }, n.extend({ + Deferred: function(a) { + var b = [ + ["resolve", "done", n.Callbacks("once memory"), "resolved"], + ["reject", "fail", n.Callbacks("once memory"), "rejected"], + ["notify", "progress", n.Callbacks("memory")] + ], + c = "pending", + d = { + state: function() { + return c + }, + always: function() { + return e.done(arguments).fail(arguments), this + }, + then: function() { + var a = arguments; + return n.Deferred(function(c) { + n.each(b, function(b, f) { + var g = n.isFunction(a[b]) && a[b]; + e[f[1]](function() { + var a = g && g.apply(this, arguments); + a && n.isFunction(a.promise) ? a.promise().done(c.resolve).fail(c.reject).progress(c.notify) : c[f[0] + "With"](this === d ? c.promise() : this, g ? [a] : arguments) + }) + }), a = null + }).promise() + }, + promise: function(a) { + return null != a ? n.extend(a, d) : d + } + }, + e = {}; + return d.pipe = d.then, n.each(b, function(a, f) { + var g = f[2], + h = f[3]; + d[f[1]] = g.add, h && g.add(function() { + c = h + }, b[1 ^ a][2].disable, b[2][2].lock), e[f[0]] = function() { + return e[f[0] + "With"](this === e ? d : this, arguments), this + }, e[f[0] + "With"] = g.fireWith + }), d.promise(e), a && a.call(e, e), e + }, + when: function(a) { + var b = 0, + c = d.call(arguments), + e = c.length, + f = 1 !== e || a && n.isFunction(a.promise) ? e : 0, + g = 1 === f ? a : n.Deferred(), + h = function(a, b, c) { + return function(e) { + b[a] = this, c[a] = arguments.length > 1 ? d.call(arguments) : e, c === i ? g.notifyWith(b, c) : --f || g.resolveWith(b, c) + } + }, + i, j, k; + if (e > 1) + for (i = new Array(e), j = new Array(e), k = new Array(e); e > b; b++) c[b] && n.isFunction(c[b].promise) ? c[b].promise().done(h(b, k, c)).fail(g.reject).progress(h(b, j, i)) : --f; + return f || g.resolveWith(k, c), g.promise() + } + }); + var H; + n.fn.ready = function(a) { + return n.ready.promise().done(a), this + }, n.extend({ + isReady: !1, + readyWait: 1, + holdReady: function(a) { + a ? n.readyWait++ : n.ready(!0) + }, + ready: function(a) { + (a === !0 ? --n.readyWait : n.isReady) || (n.isReady = !0, a !== !0 && --n.readyWait > 0 || (H.resolveWith(l, [n]), n.fn.triggerHandler && (n(l).triggerHandler("ready"), n(l).off("ready")))) + } + }); + + function I() { + l.removeEventListener("DOMContentLoaded", I, !1), a.removeEventListener("load", I, !1), n.ready() + } + n.ready.promise = function(b) { + return H || (H = n.Deferred(), "complete" === l.readyState ? setTimeout(n.ready) : (l.addEventListener("DOMContentLoaded", I, !1), a.addEventListener("load", I, !1))), H.promise(b) + }, n.ready.promise(); + var J = n.access = function(a, b, c, d, e, f, g) { + var h = 0, + i = a.length, + j = null == c; + if ("object" === n.type(c)) { + e = !0; + for (h in c) n.access(a, b, h, c[h], !0, f, g) + } else if (void 0 !== d && (e = !0, n.isFunction(d) || (g = !0), j && (g ? (b.call(a, d), b = null) : (j = b, b = function(a, b, c) { + return j.call(n(a), c) + })), b)) + for (; i > h; h++) b(a[h], c, g ? d : d.call(a[h], h, b(a[h], c))); + return e ? a : j ? b.call(a) : i ? b(a[0], c) : f + }; + n.acceptData = function(a) { + return 1 === a.nodeType || 9 === a.nodeType || !+a.nodeType + }; + + function K() { + Object.defineProperty(this.cache = {}, 0, { + get: function() { + return {} + } + }), this.expando = n.expando + K.uid++ + } + K.uid = 1, K.accepts = n.acceptData, K.prototype = { + key: function(a) { + if (!K.accepts(a)) return 0; + var b = {}, + c = a[this.expando]; + if (!c) { + c = K.uid++; + try { + b[this.expando] = { + value: c + }, Object.defineProperties(a, b) + } catch (d) { + b[this.expando] = c, n.extend(a, b) + } + } + return this.cache[c] || (this.cache[c] = {}), c + }, + set: function(a, b, c) { + var d, e = this.key(a), + f = this.cache[e]; + if ("string" == typeof b) f[b] = c; + else if (n.isEmptyObject(f)) n.extend(this.cache[e], b); + else + for (d in b) f[d] = b[d]; + return f + }, + get: function(a, b) { + var c = this.cache[this.key(a)]; + return void 0 === b ? c : c[b] + }, + access: function(a, b, c) { + var d; + return void 0 === b || b && "string" == typeof b && void 0 === c ? (d = this.get(a, b), void 0 !== d ? d : this.get(a, n.camelCase(b))) : (this.set(a, b, c), void 0 !== c ? c : b) + }, + remove: function(a, b) { + var c, d, e, f = this.key(a), + g = this.cache[f]; + if (void 0 === b) this.cache[f] = {}; + else { + n.isArray(b) ? d = b.concat(b.map(n.camelCase)) : (e = n.camelCase(b), b in g ? d = [b, e] : (d = e, d = d in g ? [d] : d.match(E) || [])), c = d.length; + while (c--) delete g[d[c]] + } + }, + hasData: function(a) { + return !n.isEmptyObject(this.cache[a[this.expando]] || {}) + }, + discard: function(a) { + a[this.expando] && delete this.cache[a[this.expando]] + } + }; + var L = new K, + M = new K, + N = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + O = /([A-Z])/g; + + function P(a, b, c) { + var d; + if (void 0 === c && 1 === a.nodeType) + if (d = "data-" + b.replace(O, "-$1").toLowerCase(), c = a.getAttribute(d), "string" == typeof c) { + try { + c = "true" === c ? !0 : "false" === c ? !1 : "null" === c ? null : +c + "" === c ? +c : N.test(c) ? n.parseJSON(c) : c + } catch (e) {} + M.set(a, b, c) + } else c = void 0; + return c + } + n.extend({ + hasData: function(a) { + return M.hasData(a) || L.hasData(a) + }, + data: function(a, b, c) { + return M.access(a, b, c) + }, + removeData: function(a, b) { + M.remove(a, b) + }, + _data: function(a, b, c) { + return L.access(a, b, c) + }, + _removeData: function(a, b) { + L.remove(a, b) + } + }), n.fn.extend({ + data: function(a, b) { + var c, d, e, f = this[0], + g = f && f.attributes; + if (void 0 === a) { + if (this.length && (e = M.get(f), 1 === f.nodeType && !L.get(f, "hasDataAttrs"))) { + c = g.length; + while (c--) g[c] && (d = g[c].name, 0 === d.indexOf("data-") && (d = n.camelCase(d.slice(5)), P(f, d, e[d]))); + L.set(f, "hasDataAttrs", !0) + } + return e + } + return "object" == typeof a ? this.each(function() { + M.set(this, a) + }) : J(this, function(b) { + var c, d = n.camelCase(a); + if (f && void 0 === b) { + if (c = M.get(f, a), void 0 !== c) return c; + if (c = M.get(f, d), void 0 !== c) return c; + if (c = P(f, d, void 0), void 0 !== c) return c + } else this.each(function() { + var c = M.get(this, d); + M.set(this, d, b), -1 !== a.indexOf("-") && void 0 !== c && M.set(this, a, b) + }) + }, null, b, arguments.length > 1, null, !0) + }, + removeData: function(a) { + return this.each(function() { + M.remove(this, a) + }) + } + }), n.extend({ + queue: function(a, b, c) { + var d; + return a ? (b = (b || "fx") + "queue", d = L.get(a, b), c && (!d || n.isArray(c) ? d = L.access(a, b, n.makeArray(c)) : d.push(c)), d || []) : void 0 + }, + dequeue: function(a, b) { + b = b || "fx"; + var c = n.queue(a, b), + d = c.length, + e = c.shift(), + f = n._queueHooks(a, b), + g = function() { + n.dequeue(a, b) + }; + "inprogress" === e && (e = c.shift(), d--), e && ("fx" === b && c.unshift("inprogress"), delete f.stop, e.call(a, g, f)), !d && f && f.empty.fire() + }, + _queueHooks: function(a, b) { + var c = b + "queueHooks"; + return L.get(a, c) || L.access(a, c, { + empty: n.Callbacks("once memory").add(function() { + L.remove(a, [b + "queue", c]) + }) + }) + } + }), n.fn.extend({ + queue: function(a, b) { + var c = 2; + return "string" != typeof a && (b = a, a = "fx", c--), arguments.length < c ? n.queue(this[0], a) : void 0 === b ? this : this.each(function() { + var c = n.queue(this, a, b); + n._queueHooks(this, a), "fx" === a && "inprogress" !== c[0] && n.dequeue(this, a) + }) + }, + dequeue: function(a) { + return this.each(function() { + n.dequeue(this, a) + }) + }, + clearQueue: function(a) { + return this.queue(a || "fx", []) + }, + promise: function(a, b) { + var c, d = 1, + e = n.Deferred(), + f = this, + g = this.length, + h = function() { + --d || e.resolveWith(f, [f]) + }; + "string" != typeof a && (b = a, a = void 0), a = a || "fx"; + while (g--) c = L.get(f[g], a + "queueHooks"), c && c.empty && (d++, c.empty.add(h)); + return h(), e.promise(b) + } + }); + var Q = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, + R = ["Top", "Right", "Bottom", "Left"], + S = function(a, b) { + return a = b || a, "none" === n.css(a, "display") || !n.contains(a.ownerDocument, a) + }, + T = /^(?:checkbox|radio)$/i; + ! function() { + var a = l.createDocumentFragment(), + b = a.appendChild(l.createElement("div")), + c = l.createElement("input"); + c.setAttribute("type", "radio"), c.setAttribute("checked", "checked"), c.setAttribute("name", "t"), b.appendChild(c), k.checkClone = b.cloneNode(!0).cloneNode(!0).lastChild.checked, b.innerHTML = "", k.noCloneChecked = !!b.cloneNode(!0).lastChild.defaultValue + }(); + var U = "undefined"; + k.focusinBubbles = "onfocusin" in a; + var V = /^key/, + W = /^(?:mouse|pointer|contextmenu)|click/, + X = /^(?:focusinfocus|focusoutblur)$/, + Y = /^([^.]*)(?:\.(.+)|)$/; + + function Z() { + return !0 + } + + function $() { + return !1 + } + + function _() { + try { + return l.activeElement + } catch (a) {} + } + n.event = { + global: {}, + add: function(a, b, c, d, e) { + var f, g, h, i, j, k, l, m, o, p, q, r = L.get(a); + if (r) { + c.handler && (f = c, c = f.handler, e = f.selector), c.guid || (c.guid = n.guid++), (i = r.events) || (i = r.events = {}), (g = r.handle) || (g = r.handle = function(b) { + return typeof n !== U && n.event.triggered !== b.type ? n.event.dispatch.apply(a, arguments) : void 0 + }), b = (b || "").match(E) || [""], j = b.length; + while (j--) h = Y.exec(b[j]) || [], o = q = h[1], p = (h[2] || "").split(".").sort(), o && (l = n.event.special[o] || {}, o = (e ? l.delegateType : l.bindType) || o, l = n.event.special[o] || {}, k = n.extend({ + type: o, + origType: q, + data: d, + handler: c, + guid: c.guid, + selector: e, + needsContext: e && n.expr.match.needsContext.test(e), + namespace: p.join(".") + }, f), (m = i[o]) || (m = i[o] = [], m.delegateCount = 0, l.setup && l.setup.call(a, d, p, g) !== !1 || a.addEventListener && a.addEventListener(o, g, !1)), l.add && (l.add.call(a, k), k.handler.guid || (k.handler.guid = c.guid)), e ? m.splice(m.delegateCount++, 0, k) : m.push(k), n.event.global[o] = !0) + } + }, + remove: function(a, b, c, d, e) { + var f, g, h, i, j, k, l, m, o, p, q, r = L.hasData(a) && L.get(a); + if (r && (i = r.events)) { + b = (b || "").match(E) || [""], j = b.length; + while (j--) + if (h = Y.exec(b[j]) || [], o = q = h[1], p = (h[2] || "").split(".").sort(), o) { + l = n.event.special[o] || {}, o = (d ? l.delegateType : l.bindType) || o, m = i[o] || [], h = h[2] && new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)"), g = f = m.length; + while (f--) k = m[f], !e && q !== k.origType || c && c.guid !== k.guid || h && !h.test(k.namespace) || d && d !== k.selector && ("**" !== d || !k.selector) || (m.splice(f, 1), k.selector && m.delegateCount--, l.remove && l.remove.call(a, k)); + g && !m.length && (l.teardown && l.teardown.call(a, p, r.handle) !== !1 || n.removeEvent(a, o, r.handle), delete i[o]) + } else + for (o in i) n.event.remove(a, o + b[j], c, d, !0); + n.isEmptyObject(i) && (delete r.handle, L.remove(a, "events")) + } + }, + trigger: function(b, c, d, e) { + var f, g, h, i, k, m, o, p = [d || l], + q = j.call(b, "type") ? b.type : b, + r = j.call(b, "namespace") ? b.namespace.split(".") : []; + if (g = h = d = d || l, 3 !== d.nodeType && 8 !== d.nodeType && !X.test(q + n.event.triggered) && (q.indexOf(".") >= 0 && (r = q.split("."), q = r.shift(), r.sort()), k = q.indexOf(":") < 0 && "on" + q, b = b[n.expando] ? b : new n.Event(q, "object" == typeof b && b), b.isTrigger = e ? 2 : 3, b.namespace = r.join("."), b.namespace_re = b.namespace ? new RegExp("(^|\\.)" + r.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, b.result = void 0, b.target || (b.target = d), c = null == c ? [b] : n.makeArray(c, [b]), o = n.event.special[q] || {}, e || !o.trigger || o.trigger.apply(d, c) !== !1)) { + if (!e && !o.noBubble && !n.isWindow(d)) { + for (i = o.delegateType || q, X.test(i + q) || (g = g.parentNode); g; g = g.parentNode) p.push(g), h = g; + h === (d.ownerDocument || l) && p.push(h.defaultView || h.parentWindow || a) + } + f = 0; + while ((g = p[f++]) && !b.isPropagationStopped()) b.type = f > 1 ? i : o.bindType || q, m = (L.get(g, "events") || {})[b.type] && L.get(g, "handle"), m && m.apply(g, c), m = k && g[k], m && m.apply && n.acceptData(g) && (b.result = m.apply(g, c), b.result === !1 && b.preventDefault()); + return b.type = q, e || b.isDefaultPrevented() || o._default && o._default.apply(p.pop(), c) !== !1 || !n.acceptData(d) || k && n.isFunction(d[q]) && !n.isWindow(d) && (h = d[k], h && (d[k] = null), n.event.triggered = q, d[q](), n.event.triggered = void 0, h && (d[k] = h)), b.result + } + }, + dispatch: function(a) { + a = n.event.fix(a); + var b, c, e, f, g, h = [], + i = d.call(arguments), + j = (L.get(this, "events") || {})[a.type] || [], + k = n.event.special[a.type] || {}; + if (i[0] = a, a.delegateTarget = this, !k.preDispatch || k.preDispatch.call(this, a) !== !1) { + h = n.event.handlers.call(this, a, j), b = 0; + while ((f = h[b++]) && !a.isPropagationStopped()) { + a.currentTarget = f.elem, c = 0; + while ((g = f.handlers[c++]) && !a.isImmediatePropagationStopped())(!a.namespace_re || a.namespace_re.test(g.namespace)) && (a.handleObj = g, a.data = g.data, e = ((n.event.special[g.origType] || {}).handle || g.handler).apply(f.elem, i), void 0 !== e && (a.result = e) === !1 && (a.preventDefault(), a.stopPropagation())) + } + return k.postDispatch && k.postDispatch.call(this, a), a.result + } + }, + handlers: function(a, b) { + var c, d, e, f, g = [], + h = b.delegateCount, + i = a.target; + if (h && i.nodeType && (!a.button || "click" !== a.type)) + for (; i !== this; i = i.parentNode || this) + if (i.disabled !== !0 || "click" !== a.type) { + for (d = [], c = 0; h > c; c++) f = b[c], e = f.selector + " ", void 0 === d[e] && (d[e] = f.needsContext ? n(e, this).index(i) >= 0 : n.find(e, this, null, [i]).length), d[e] && d.push(f); + d.length && g.push({ + elem: i, + handlers: d + }) + } return h < b.length && g.push({ + elem: this, + handlers: b.slice(h) + }), g + }, + props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + fixHooks: {}, + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function(a, b) { + return null == a.which && (a.which = null != b.charCode ? b.charCode : b.keyCode), a + } + }, + mouseHooks: { + props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function(a, b) { + var c, d, e, f = b.button; + return null == a.pageX && null != b.clientX && (c = a.target.ownerDocument || l, d = c.documentElement, e = c.body, a.pageX = b.clientX + (d && d.scrollLeft || e && e.scrollLeft || 0) - (d && d.clientLeft || e && e.clientLeft || 0), a.pageY = b.clientY + (d && d.scrollTop || e && e.scrollTop || 0) - (d && d.clientTop || e && e.clientTop || 0)), a.which || void 0 === f || (a.which = 1 & f ? 1 : 2 & f ? 3 : 4 & f ? 2 : 0), a + } + }, + fix: function(a) { + if (a[n.expando]) return a; + var b, c, d, e = a.type, + f = a, + g = this.fixHooks[e]; + g || (this.fixHooks[e] = g = W.test(e) ? this.mouseHooks : V.test(e) ? this.keyHooks : {}), d = g.props ? this.props.concat(g.props) : this.props, a = new n.Event(f), b = d.length; + while (b--) c = d[b], a[c] = f[c]; + return a.target || (a.target = l), 3 === a.target.nodeType && (a.target = a.target.parentNode), g.filter ? g.filter(a, f) : a + }, + special: { + load: { + noBubble: !0 + }, + focus: { + trigger: function() { + return this !== _() && this.focus ? (this.focus(), !1) : void 0 + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + return this === _() && this.blur ? (this.blur(), !1) : void 0 + }, + delegateType: "focusout" + }, + click: { + trigger: function() { + return "checkbox" === this.type && this.click && n.nodeName(this, "input") ? (this.click(), !1) : void 0 + }, + _default: function(a) { + return n.nodeName(a.target, "a") + } + }, + beforeunload: { + postDispatch: function(a) { + void 0 !== a.result && a.originalEvent && (a.originalEvent.returnValue = a.result) + } + } + }, + simulate: function(a, b, c, d) { + var e = n.extend(new n.Event, c, { + type: a, + isSimulated: !0, + originalEvent: {} + }); + d ? n.event.trigger(e, null, b) : n.event.dispatch.call(b, e), e.isDefaultPrevented() && c.preventDefault() + } + }, n.removeEvent = function(a, b, c) { + a.removeEventListener && a.removeEventListener(b, c, !1) + }, n.Event = function(a, b) { + return this instanceof n.Event ? (a && a.type ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || void 0 === a.defaultPrevented && a.returnValue === !1 ? Z : $) : this.type = a, b && n.extend(this, b), this.timeStamp = a && a.timeStamp || n.now(), void(this[n.expando] = !0)) : new n.Event(a, b) + }, n.Event.prototype = { + isDefaultPrevented: $, + isPropagationStopped: $, + isImmediatePropagationStopped: $, + preventDefault: function() { + var a = this.originalEvent; + this.isDefaultPrevented = Z, a && a.preventDefault && a.preventDefault() + }, + stopPropagation: function() { + var a = this.originalEvent; + this.isPropagationStopped = Z, a && a.stopPropagation && a.stopPropagation() + }, + stopImmediatePropagation: function() { + var a = this.originalEvent; + this.isImmediatePropagationStopped = Z, a && a.stopImmediatePropagation && a.stopImmediatePropagation(), this.stopPropagation() + } + }, n.each({ + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" + }, function(a, b) { + n.event.special[a] = { + delegateType: b, + bindType: b, + handle: function(a) { + var c, d = this, + e = a.relatedTarget, + f = a.handleObj; + return (!e || e !== d && !n.contains(d, e)) && (a.type = f.origType, c = f.handler.apply(this, arguments), a.type = b), c + } + } + }), k.focusinBubbles || n.each({ + focus: "focusin", + blur: "focusout" + }, function(a, b) { + var c = function(a) { + n.event.simulate(b, a.target, n.event.fix(a), !0) + }; + n.event.special[b] = { + setup: function() { + var d = this.ownerDocument || this, + e = L.access(d, b); + e || d.addEventListener(a, c, !0), L.access(d, b, (e || 0) + 1) + }, + teardown: function() { + var d = this.ownerDocument || this, + e = L.access(d, b) - 1; + e ? L.access(d, b, e) : (d.removeEventListener(a, c, !0), L.remove(d, b)) + } + } + }), n.fn.extend({ + on: function(a, b, c, d, e) { + var f, g; + if ("object" == typeof a) { + "string" != typeof b && (c = c || b, b = void 0); + for (g in a) this.on(g, b, c, a[g], e); + return this + } + if (null == c && null == d ? (d = b, c = b = void 0) : null == d && ("string" == typeof b ? (d = c, c = void 0) : (d = c, c = b, b = void 0)), d === !1) d = $; + else if (!d) return this; + return 1 === e && (f = d, d = function(a) { + return n().off(a), f.apply(this, arguments) + }, d.guid = f.guid || (f.guid = n.guid++)), this.each(function() { + n.event.add(this, a, d, c, b) + }) + }, + one: function(a, b, c, d) { + return this.on(a, b, c, d, 1) + }, + off: function(a, b, c) { + var d, e; + if (a && a.preventDefault && a.handleObj) return d = a.handleObj, n(a.delegateTarget).off(d.namespace ? d.origType + "." + d.namespace : d.origType, d.selector, d.handler), this; + if ("object" == typeof a) { + for (e in a) this.off(e, b, a[e]); + return this + } + return (b === !1 || "function" == typeof b) && (c = b, b = void 0), c === !1 && (c = $), this.each(function() { + n.event.remove(this, a, c, b) + }) + }, + trigger: function(a, b) { + return this.each(function() { + n.event.trigger(a, b, this) + }) + }, + triggerHandler: function(a, b) { + var c = this[0]; + return c ? n.event.trigger(a, b, c, !0) : void 0 + } + }); + var aa = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + ba = /<([\w:]+)/, + ca = /<|&#?\w+;/, + da = /<(?:script|style|link)/i, + ea = /checked\s*(?:[^=]|=\s*.checked.)/i, + fa = /^$|\/(?:java|ecma)script/i, + ga = /^true\/(.*)/, + ha = /^\s*\s*$/g, + ia = { + option: [1, ""], + thead: [1, "", "
"], + col: [2, "", "
"], + tr: [2, "", "
"], + td: [3, "", "
"], + _default: [0, "", ""] + }; + ia.optgroup = ia.option, ia.tbody = ia.tfoot = ia.colgroup = ia.caption = ia.thead, ia.th = ia.td; + + function ja(a, b) { + return n.nodeName(a, "table") && n.nodeName(11 !== b.nodeType ? b : b.firstChild, "tr") ? a.getElementsByTagName("tbody")[0] || a.appendChild(a.ownerDocument.createElement("tbody")) : a + } + + function ka(a) { + return a.type = (null !== a.getAttribute("type")) + "/" + a.type, a + } + + function la(a) { + var b = ga.exec(a.type); + return b ? a.type = b[1] : a.removeAttribute("type"), a + } + + function ma(a, b) { + for (var c = 0, d = a.length; d > c; c++) L.set(a[c], "globalEval", !b || L.get(b[c], "globalEval")) + } + + function na(a, b) { + var c, d, e, f, g, h, i, j; + if (1 === b.nodeType) { + if (L.hasData(a) && (f = L.access(a), g = L.set(b, f), j = f.events)) { + delete g.handle, g.events = {}; + for (e in j) + for (c = 0, d = j[e].length; d > c; c++) n.event.add(b, e, j[e][c]) + } + M.hasData(a) && (h = M.access(a), i = n.extend({}, h), M.set(b, i)) + } + } + + function oa(a, b) { + var c = a.getElementsByTagName ? a.getElementsByTagName(b || "*") : a.querySelectorAll ? a.querySelectorAll(b || "*") : []; + return void 0 === b || b && n.nodeName(a, b) ? n.merge([a], c) : c + } + + function pa(a, b) { + var c = b.nodeName.toLowerCase(); + "input" === c && T.test(a.type) ? b.checked = a.checked : ("input" === c || "textarea" === c) && (b.defaultValue = a.defaultValue) + } + n.extend({ + clone: function(a, b, c) { + var d, e, f, g, h = a.cloneNode(!0), + i = n.contains(a.ownerDocument, a); + if (!(k.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || n.isXMLDoc(a))) + for (g = oa(h), f = oa(a), d = 0, e = f.length; e > d; d++) pa(f[d], g[d]); + if (b) + if (c) + for (f = f || oa(a), g = g || oa(h), d = 0, e = f.length; e > d; d++) na(f[d], g[d]); + else na(a, h); + return g = oa(h, "script"), g.length > 0 && ma(g, !i && oa(a, "script")), h + }, + buildFragment: function(a, b, c, d) { + for (var e, f, g, h, i, j, k = b.createDocumentFragment(), l = [], m = 0, o = a.length; o > m; m++) + if (e = a[m], e || 0 === e) + if ("object" === n.type(e)) n.merge(l, e.nodeType ? [e] : e); + else if (ca.test(e)) { + f = f || k.appendChild(b.createElement("div")), g = (ba.exec(e) || ["", ""])[1].toLowerCase(), h = ia[g] || ia._default, f.innerHTML = h[1] + e.replace(aa, "<$1>") + h[2], j = h[0]; + while (j--) f = f.lastChild; + n.merge(l, f.childNodes), f = k.firstChild, f.textContent = "" + } else l.push(b.createTextNode(e)); + k.textContent = "", m = 0; + while (e = l[m++]) + if ((!d || -1 === n.inArray(e, d)) && (i = n.contains(e.ownerDocument, e), f = oa(k.appendChild(e), "script"), i && ma(f), c)) { + j = 0; + while (e = f[j++]) fa.test(e.type || "") && c.push(e) + } return k + }, + cleanData: function(a) { + for (var b, c, d, e, f = n.event.special, g = 0; void 0 !== (c = a[g]); g++) { + if (n.acceptData(c) && (e = c[L.expando], e && (b = L.cache[e]))) { + if (b.events) + for (d in b.events) f[d] ? n.event.remove(c, d) : n.removeEvent(c, d, b.handle); + L.cache[e] && delete L.cache[e] + } + delete M.cache[c[M.expando]] + } + } + }), n.fn.extend({ + text: function(a) { + return J(this, function(a) { + return void 0 === a ? n.text(this) : this.empty().each(function() { + (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) && (this.textContent = a) + }) + }, null, a, arguments.length) + }, + append: function() { + return this.domManip(arguments, function(a) { + if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { + var b = ja(this, a); + b.appendChild(a) + } + }) + }, + prepend: function() { + return this.domManip(arguments, function(a) { + if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { + var b = ja(this, a); + b.insertBefore(a, b.firstChild) + } + }) + }, + before: function() { + return this.domManip(arguments, function(a) { + this.parentNode && this.parentNode.insertBefore(a, this) + }) + }, + after: function() { + return this.domManip(arguments, function(a) { + this.parentNode && this.parentNode.insertBefore(a, this.nextSibling) + }) + }, + remove: function(a, b) { + for (var c, d = a ? n.filter(a, this) : this, e = 0; null != (c = d[e]); e++) b || 1 !== c.nodeType || n.cleanData(oa(c)), c.parentNode && (b && n.contains(c.ownerDocument, c) && ma(oa(c, "script")), c.parentNode.removeChild(c)); + return this + }, + empty: function() { + for (var a, b = 0; null != (a = this[b]); b++) 1 === a.nodeType && (n.cleanData(oa(a, !1)), a.textContent = ""); + return this + }, + clone: function(a, b) { + return a = null == a ? !1 : a, b = null == b ? a : b, this.map(function() { + return n.clone(this, a, b) + }) + }, + html: function(a) { + return J(this, function(a) { + var b = this[0] || {}, + c = 0, + d = this.length; + if (void 0 === a && 1 === b.nodeType) return b.innerHTML; + if ("string" == typeof a && !da.test(a) && !ia[(ba.exec(a) || ["", ""])[1].toLowerCase()]) { + a = a.replace(aa, "<$1>"); + try { + for (; d > c; c++) b = this[c] || {}, 1 === b.nodeType && (n.cleanData(oa(b, !1)), b.innerHTML = a); + b = 0 + } catch (e) {} + } + b && this.empty().append(a) + }, null, a, arguments.length) + }, + replaceWith: function() { + var a = arguments[0]; + return this.domManip(arguments, function(b) { + a = this.parentNode, n.cleanData(oa(this)), a && a.replaceChild(b, this) + }), a && (a.length || a.nodeType) ? this : this.remove() + }, + detach: function(a) { + return this.remove(a, !0) + }, + domManip: function(a, b) { + a = e.apply([], a); + var c, d, f, g, h, i, j = 0, + l = this.length, + m = this, + o = l - 1, + p = a[0], + q = n.isFunction(p); + if (q || l > 1 && "string" == typeof p && !k.checkClone && ea.test(p)) return this.each(function(c) { + var d = m.eq(c); + q && (a[0] = p.call(this, c, d.html())), d.domManip(a, b) + }); + if (l && (c = n.buildFragment(a, this[0].ownerDocument, !1, this), d = c.firstChild, 1 === c.childNodes.length && (c = d), d)) { + for (f = n.map(oa(c, "script"), ka), g = f.length; l > j; j++) h = c, j !== o && (h = n.clone(h, !0, !0), g && n.merge(f, oa(h, "script"))), b.call(this[j], h, j); + if (g) + for (i = f[f.length - 1].ownerDocument, n.map(f, la), j = 0; g > j; j++) h = f[j], fa.test(h.type || "") && !L.access(h, "globalEval") && n.contains(i, h) && (h.src ? n._evalUrl && n._evalUrl(h.src) : n.globalEval(h.textContent.replace(ha, ""))) + } + return this + } + }), n.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" + }, function(a, b) { + n.fn[a] = function(a) { + for (var c, d = [], e = n(a), g = e.length - 1, h = 0; g >= h; h++) c = h === g ? this : this.clone(!0), n(e[h])[b](c), f.apply(d, c.get()); + return this.pushStack(d) + } + }); + var qa, ra = {}; + + function sa(b, c) { + var d, e = n(c.createElement(b)).appendTo(c.body), + f = a.getDefaultComputedStyle && (d = a.getDefaultComputedStyle(e[0])) ? d.display : n.css(e[0], "display"); + return e.detach(), f + } + + function ta(a) { + var b = l, + c = ra[a]; + return c || (c = sa(a, b), "none" !== c && c || (qa = (qa || n("

PGl^ARx5+)R_wkgCm2`tJ5z3}eKfjRZs}F@yW-qw z0W+qS5r_E3-7_~dqP|&Dp=?zEG%zR=+DfuT2!b;L;AQ;xCvxar7VhE zqA~qZG~P&_A{V$em7CUF1ikb3&#~GA6z95z+aMzsrWDIv1!^4@tN8*hg#b{FKe3Tg z##{p7k;-{B19TLXw94@V!C8%R-|~e@WmQYCzpqAoNp6RSBv&1f@GI^;oxK3~L z;4-zGGK&1vHD5rpu!XmP%E4PCByTy@UP|- z!f@$nIN^XdJg_2_)Ebrk$O*^Dg(%D1NFt19kCn($Ve{Noc)vLb+?-r}{ za2<@9tHq?Mr_8Duv`y@as|8~n3=gYir}MrCRB^xIhBvDbc;cdcQzL@PYd%*ke#Ffx z(gndgHDhVXLjDvdK6Q=Qy4ow`W1MNFLzjkAtCA26{{{|%qANIgW} zHwM|FUfQ?btfXEH&QR{C(i)YQfU6<f@k3kNN?Log z{pJr_N3>gU2%tM!oO{M?^YTJyA_UMWt!IO(G1T^jk{bkNOXEykj_G6qX z5VhShumeOZ=sR6-3u>p-sD4^*Cv53B*oh!v=scxPfBD^>VUdONCJM2X12PN9IehBe zsHSBcuEkps6GqA<9_45`7bRNhI`u)uVeNkTj752DNsrcbGu*{;%wZhWjbho^pAG-| z)P3AtFE7%A_gotn&;y~am9XUaDct)6oBvUvw-&bXN)rH#>P6jVE(y(4M(f*wqscF+ zP)FnR&o9#+<=|0+*L&`J#1Ty9?Eg{PM3&MIjP0u*?gvU`ziI+(QaK;YOTOp~xV8?s ztqgeLS$d4NmGg9YuY9vo8N83NMEM3AW(j+=JQ%^s^%lq;#@ZS`%Jo_Y*qIvi9T}p; zZS!792x?_7NomO`W&a^FXp=fD`rO%DGF*}xRpmNd+FQ0AIykDG2iZFyZ%IYH*Y2_5 zjySy-(NLl6JtkA18iC@>7>gf0ZXE;17;Z70C*Jn**%UKw6pN!xXGEiCU&kgbG1I?| z$rw=NF?ED*p>MiTW>k+GbB@0p_1H*^7h{oKx6&MvPH2+QK9bse|sKvKaDo8!)^U_>bXxLa=n0cJ`V2GM%ty8v zDJw<=vgs?g85zYX9&PB0 zrtsAkje+jPv5FOJmyD`5i#O5qE}e_NU|C{cGJNM3a>5rW+u$?PmbPk_RBVfXY%I;j z;CR_BRla4c51*H|S!A?A_f<>@O%wQ|fYtRDUKK5?RCkGWsT}zowr=GL)^J7aE-g4b z6PXjQKy_6OtJ15WFZ7+{VKTR z&kAtsZN{I~ildhWbz9~r@EivAqBP|IQONAX20Sn#6GETTG5!_-U2Nd2b;FZ$6T2A0 z-Dk6)1&q_R`Dng@q*R6(F#$o}qD!B0=|N;nXGK*3Qd*Y~lrwUTH^P&qzXxxT3@pI1 zuTa0P$A4Z54~Jh81_+*R6QY!d<8G*Y`h(rJ75eE5V`1k$f90+~`Nn&%-HsTX-{ot|;C<$HG#w9e�a7D3$=dJwc2Ed=u=e+WB`83;tFM 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 %E-+UMxvrAQ@VXnh!p;k%1Le?TEY zlzWEkyUa#YP|AF5ihU}E6y7BXvk@ZR#ntxu!)N2Mg-H6T12U@Oa^eHH>jMN*q}m1|74<#XE`{LPnSxQMipuYmARH(UfhI#@hA0bU0piz>b|31+$L}rOK+Gt4pAx_UM zL?VQoajYuQS|mbE9nn5TR6*!Rv3$}GmWV4dD&HS&xYN1vxY%)nuj_~O)9O=CeDFZ`n zpptZey0!m)`pR~4@ggg-d0Hx``=5}E3Cgsx#tiM540C*oP0GxP5~B_Ls1*s@ilNMX zW(BKS?>`Nh*N40hHCavSh6d#57l&D2cOcaIFxX*Xo8oXwrfkGvLCn5vgd0fzT_Hz^ z9!)am>ulmVMkIlo)$9TA{60sYCAas|l{EGH*N|MwVfzOTI+~?idH<;QRC$Ub;5@cw zQI=3d_bLQVNl|*FJl=;q-hn9TK_wB*d|U|{p$A2glzcURb$P@B_NACOh5}{Hf_Qx+ z*3<$)WkfdkINjlIYE4Rn7EuOF0Kh2bB1rWgE(&xj)}GZ0ZT=R%RP5`P98FLX!c{^=Rgzd*kdRtJ*PNQpC9<$h zmgOdpDw3JkEWFDRR-`Gs0~cI2EVRF1Qb{0^?})U=S%%}761Y*?_$W{+8CD39Pa|b? zQI(_Rm(H7)qvU4{4+}+Vl#jUy^jV}&5`d2DGKMTcVBvC|QqW6Y2Bh!~x`V0Mq^h_P zHu`Q_f#F6yS6XomgThNyc80_Yz7F>$Q#9=dUP)GV_GI%SNNi0v9+pkt$03`BD(#qUYoDh$uAn2$5i432#VM2 zD#hdwo5x0JLzu1jeh%A|u$g}6Qs;c);~=Pe#fpa3s1QNsrCp4bc;b~h z((zoX+o{bxg^XhI)Qt`5uea6hbL+LFVs)wOZZUqtl42Qa)q(AQ-@zbRy4PDT|2BO3 zZNJQ?!`P6IRP3DA;MUUMvE1PG)ZqQ0(U-f?U#l??S;!=$E~o{}#oO4ZzJnK8R;OCr z7=z4ZSR9i;%^j$b+>qLYw43N()r7Uzlyg;9Dn$ZLl5dg zm#+V@+2w0g$H{_CBCVz{Qv27r8+cv!wX}=Inq4}qkdX(hi6+^@8qW6q0fTd;TYtHS zg669LPj@nFFTlS+6h(O>t@qPOxAds0^iwbPNv~q72BmgiT0oy>YoGQ?pBrbht_Mf) zhkn1AX5&`&8g4(cR`#Kme#@DDTWRJHZZ!Lk0}OGcKO}%o)&sP{ovt*%v5^68tXzD> zLi(EoUv1`}4;YNeh9T)JX)QbtfFhrO!6R6i_@HLL|SQteSzDl#H-6;o!s}{DJI35p zHcd`A!;V$xXgR~?H=~g=!_qUudpg4iGn+{@OOG`u3StiAQA|vqWfdOMJ)BkKom1AC zGi51O&0zkPF~@jS{Po2b*yXWtfC;qVxg1Vsg43>8q>6Tuk|p zxFHi+)gO=5KOThrUW5z3UZhtv=Sge-tcHUZ{3Ae77D%BP3uK)YEg@q)iqJx+720hJ zh0Q|veHk>GpMsvf=V~a`+i$~nGSS)4(AmBki}Wi*?5*&$F(KKsvsTO*g#)HdtX8D;f&#h zX-oBz4A*v@K4xp#bDdI`k!XCga}2zdWw0fvNX|k>z!;emY_R>+7M+`K6@Pq-Hd0e0 zb3JZjo1JfmGjdzZc0(>_=OklQZhV8TovxyX-WM|)4!To1k`}PFtA{qGQL$?zySLf6 z%cHy3ZH^3wwKpcb+YQ`5CfV1w-BJnxMAXp2AJ2csMWl4Ea+1Y_impNQCa;F4A|Z^@&QOD_hMI$J6_2px`2&*C!b_-%j{1&G8h|mkCSCF z*b0vqm4MxJ+3w>fsHr=<+2GUPIwvEqDkK+U6NW}+NA};(PCMJNDu|A|nP;pmkC&m( z`G&gkp#f~7iVKE_7ZvCFvFOZD=VZI9EA2?o>kD;4=a*-+Y^H!se8dO7i@S;l1i4M= zO(2fk(E%Sa^e=^JL!+Cu(i18ms@|yt+Hrxcyt}>;Y-iJ1Hv-M4qt488Sio3fHUi7~ z;fD?&HCTmpVu`X6k@uGhf5$3-^_qcv=*;(8bK%U-`--OHd?^+v%^y##LKPu@BWsB= zqJ*OPOF4uNT`#IKXJi`yxDh$u53V?QcECI@K{l$Kp2mn|IKT4O-RI0YOz^%H`Gvtf zaistru_w9q0UM9L1K-j9x}5X9x1mS$KsUNm1bUxeMU0=tt>0t=^o_X$m>0uhz|-YNGTz0Ua^= zS!d1D19V|O|GqU5U`XyFyAwDjhwrG1(zA{;-}y++51gCWZQ?&b(Cy5wJhR{fHhP_< z($oGyi!6$Mg(f&t3pkPIyNS#`ixQyU?bz?5KO4|PY^wl3igu4#C-arS>yC|12k<&S zGTR>5)b3Qziv#vP-ClYFgfsxJc2`-^(*ni&zEu(b`sAbyBV_CJU*CI-45cXw z*!#7Y`mZ-fUB*REQ`x*)f7;}dooWU^4TCmek)bfWA4T%tB+DhxTd4r33fhekh+!Gy zfzT@(aw(*{8TxiyQBp*K9D&S9ikVcW#Daq3B!XUR++J(QFm0p*sd?AFc*GmsVw#S2LC?R!Oiuvw_uXx;1Nq zwBUhLvbl(r%U>&yBjjOlxiXkB^R8}bQ0Cdr_H$(q#qb~nN+{!S@Cu$BBkmTkzhZVh7|gnDJ=mMMqjeC;N**wvvHm{~EVz_db?}>+jyZ;T7aDHGLnr zd5ydI81`9V5VRf>MZd6y_k9g7LXP&Bi1uk6vNuED!1P(MlIkgnrnvIGBIMZ)>v#=s zXqu93ok|f*Qix7H+DduUL79z4T^~im^^0nO4rigAGMn!+*E%H^KjjfRe)bxrYaqqj z5uLgaoif|@ztRBI|0WFx1pG&XKLR@Ft-&7~0%`C=$3XBmS;?t+;cpFozx4d_u#(E+ zGEhFG!5^1fn+Hh){F|C1)7yIkx?1{%Y6iN8#w$C!S|{2^24-g4rfPc@`{t+DhDSpe zwkCIW_ve;Dd&k)u&8rtxmn%09zNdAM4bN$74`r|nSZzKPD#p??WOUFhGYkhWi`HvKYVXe6I2&UTE>}_i=A!wYZ}4o z^@KoYI-Oekj_%PB6_WKDcd+V;s^Ueva{%hP6pahnc1PGLld;A9^2Bgpu7p>yYwdDG zGBq1=#siauNU9tddhfk~*<7z?nZL{jO^6fOW@wz(k^O&kBL6Safc1%v4v3HzKKbKU z*hf({pC%mh4IfzYU}9S&y5cC`R$ici-2`D^_?>k_h(5LIMLi#V>Nffv^~)+ztVSSl}3yYNvcQ399$IK}w1# zxTbu(h-A81@p)t-3Z95D@+8i18p*1|WTryqZ1d!Lqy<9-WW*qg1QzGp>zEirhxSLB#o4x&B}G}W zPL$@QfmEIORic{vs%4K0#$3A7p_UbOTd9_DEv0$X6)6>aR@J2#VKkNl?F7{232R5k zl>%@hmi6;;|eaoqk6v*mvjdZ^2k2BJD%3ImibFdFCJ&$ESoLXFU|0}EqjxuUe zEJFb>tNe2Kzr)}BhZFf9{0(YJ63rir>uG8B)9V>|v41!CXUZL?J^t-P{uln{Q%21& zalz^B^1mDW!%n)}C#xR++2CI%X6zZ-2>y=-f8*#dAKk;wKMj6exfb@l^q>DU_-(J2 za+7S|(tu2k!_tN~Cvwl3iO(l)oHr$MMa#|oK!VRqThQB%InYzJM zq$WZ5^!f}@B3F8Lx0&ra)Lh&C)8NO7io2omo3MFH16~i&!h37P&foAi%VpD-#1QO1 z7~GP#K70!W!QVhufo9g9<^A69H$D+xAbfqOw=}@lDQ@GHCHT#W?5Cl$0pJ8e@HZF! zB3K5GXnv41;39ziN}Prb0fPO%2&{TUK!f0K2wwdHc_9sc*W&KCG=Sdt^Bea69a9w~ z4cLMSdrJeRyrAFG0P%L3w=}>y^Pe=}C^Gad4Nw^9c*EcPe{JyFx!}Jw_=Bzosl08?@2Zd%F+#K%9k|Xy4g`5`+f=N; z0c$+ye$H{5%&UyA(q`oqL$cQI0GanJ2Fyk(6W{l)vOdwIlRr{I@Hg0gAYux(pRSXE zxY5{~CuUIXhm)ZY^gpahCm-$b6nsTo1`uc>CPvW06=IExR7DPjL=2rAeO*v`ye5Iz zFQ2?L>#%CH%TxMuCe!fDC3U)w#^PuumyfPU(58>CR81+5E5Q!0MMUXqLAwR-O=&t< zc)M1B6RF%SAwu%wXMp@rF>jYsyWrih9P}aP9e@%gw19 z7N$~F?frQ{mI_b3bIpnM*d8Ejua&2&AZTbq%8GVfbz}J$!_4l0d0Gi;0+Zt9|?Jkv~d(I?Or`qq!h-5`_ zh4rUq)gm;QZ`Y5<>oZ$8E-rCNKNk_#prhuMCam$m^4tRQupA4GmC_8n!z1HYx-N~E zI|U@bDIaJI{Q|;!1_$92I<3`}6Hgd4F2hZUQJSR+f5e;t z^7Z>vj52f%!TDNIM|A@Pb5wnZ7u6FM$v-FaMD*$MY}_QV7I$r{((1We%4b2S8~lW=VYEW9sCCif>8H z;j!}X zgKaCx6W`uf(nUnNST6y<6wly?7tJuL79a$xUnqiTCF*LoZ9B+jsSo_NSd1r!x^wB9Omc-0IJBY9^sD{Ki4iM~PZsa$JAIPEjfy{uQHkdvj*e}>9 z8b2g{kT*#^1cFGXH6=|oSCSHy$}$hZFty5akyUaIO>3kqEDp^-2(>XWuHulW6(%-J z#H|gMxS2L_iwlds4s_bXHs1>ioAvi(LkfjA=?xb5x<__oQ|hjQSdl3n;nlj5(WW^h z?^V@}k|KtUoh-qC1QcZ&V^M5Tz0}JbjWPaSo+U*kuXj zBR{yxK7N&r+mHI3BDdiZdl4T?4`CMTFFOMr^Grp#=0 zC3v#qfd;NzcpLUQ8j002X1TG6A$~q1x4yQn+~XX9eh6IeFYLCRlNx^nB$MdZaBvb6 zd+Pv`n|?$e70lUwqnXukyeF(+CDS;eOCCN2UZ8aa|Rplq5_#%EG84@07U zcvwrM?p~$Pk|)^J@9rm|tEZhPC1)h3nbal{6#w|pX)lS8 ze)c8AvM0psOB!~Ss}H$%@IdEo_xeTa6k@9c1hA^iVL zQA3UuN>;0f3{-~1T!@o1F4TTILqII;UW30G;=CkQv}4Z7xlIFG2m%G`=M=`HWCK=%h!AaBd7>sC0kq05*u;vHE)eAZW#_Wiw@>mM**V?*#%ehg{H@%LHWdep1LzDkjMC#19 zHMXcTEpYTN=q)KQj*n#CFStuA_=;6%So%%>h}(=njQk##xHT6!&0;~E$Zqe79pW+lk;K?ti#Sd&a>(@9F|U&YanhnpDL(w2 zpv)9=6j6WKol{n`k8UI+h61>3Kx}g* zK#~TwOm5hvN(j3G>4QAYRMnP|VnZV`Mi{RFTQ$5wb%86RnW!=WH%}84UHDMwrxtED zu9_$Y{{yBfvJr0o1w6@svcQ>|M&Ys#un|GuY8QT33@iY-!uX2`D5;)+kOsg0NaVnq@M}5Kp_!J%0V&RdI-Fy=vGuf{=PGYCd>8WIbeo=B^r}4?NgEe-j!P zT3Xd9E&s;JkFh_l)8uXd_WpK0=5tAFIIV5)psr`SZ$NV_@r9%T?v26REZwQ##@D#= za4Y@^F2K!WS4mK0l6(P72e-kjIH)6(b8m61|5a?I8HlrH?x zI{Kl_O|)@Viwngnd@+q{x5RAqxUD!vKMKFS*r*K~CU&o^ZI3|z_=A#eF1ycD``ibr z>t(J-*N(!tjz=jT@41dqtTuo)8@W>}zSVCS6xNpDYV@>DJD6~rVtV=GPQ|z~-ZVsb zo?2|_PQKJ6MyoK`+Aia(8oy=%j;9V16t*g)d|-O_55M}O_D2tf$`CJd`*Wuco5 zg`M@JfqRtQ$z4tGxhGVqN29DqB%F9qXm&-FwkQ#_@nbe+90MfFkHJY@M4hNIzE<%V@7Kz``b|R2@CfDdfGF~>t z#gGh4(*BiyzBWtC2qozWVoADC*9ZLyY^=(3p`>n7+~=Tr9+vv<(!!<@<(bxT#8H(m zojuZ{O0{jZQ##ZDa?fds zHe2ekX(pILdej+4rJg*gnJ>J~FEB1U6Q zZP;=sd~BG*GX7tk$fa#d<*Q2-|HA(BF4yTS|MpyN;1!DW9U1VLgL%mrC}n=LB+IY# zj{$mkS7OswdOcVAGFGCm+WvlI?$wzbBwQVKuSt+!MTuB(?q^*^p+sT$GfuP6DVg3O zJ%hp!K3F$~5&_Fw+lHAT1H_=aZ^giJSoh=nj6ySX(7mEh0?mhv&s+_)wvHIN zp_Bl?AxC>$m3(-&37toW5*{!vzj0}`iMQ5OJ+;~T;RE*B0v6g9h=%kF9cG?<|AXPy z67M^@vrT?%@HQxCvs`_P$SZf zfA@I!_KeSf)TOwNvQ**@`zB{!9duE=h_=9|`=FNn!s&gl%)P*heZN;A69H~8-CpzG z1A01@#5Kk^wEb@xhp`oVri!!Kx?~xz2XM8AE7KKCD7Dnc-PBg-(z{0o(Az9z$Ihb1 zpo-0nX$GWA`h-{d-xV|ky2o&tbbYeiFVM%GUhBWC0o`fJVcs!VGFwDE$U>oj*9+lBAQN+rStC#w2^{K8@a^>bCNPE@Kzno2F$TOTQ26*=5uG3KN#eZnbzo~2 zs@V%j6eWX+o`vvoLB{{pnhlAf`ifGHe3A%2 zdw!l=fr#F5)jD#FcRulrURiSDEK0vgm}&$yOCE_;fsac`QBF4ZJH2Am&5$inkN!l4 z|2BW^CPn`izrDpmPtSMYXs7DtCuT zu;5&`TZ_8vT(@KbrE)@6y?xUc<8jps*vP*T!1qKbiIc~V)NUsSG2_boxo4>Y1zWr8o;?s^cl9@_tZVZ!v3b$NS~r z)0yAJJ&YZ2?-!Z%^uzk6qY=5s967A3iQC_wkZ3+0L*ThViD%Asii3Q#THxD(EHuxo zgZRn2igza-c6av~JK>Xe$-XC}RX28e2Ln|%{q(nL;8&OFV^6tj)3rMbpA!%R`1bqz z<1Sg6+sG5d_>0w{6!!M!Ys8o<@d?y{=qskEV^|o*`|i?nJ?=cbswA|72!?f^ zpzBXYNOpKGH-zXjOmD~EU_?7H*&E)!yG-jl{?}GnJ3{bmoE;JN|{Cy~$ zDdZ?pc>u{VFaTR>?ck`l7mR8|C)bcSbUwXD14HHUaVxIvrupROc^yvk?`ZPvsI5H{ zdhL#7?Fz|mbDV9l@*VkCoCwm9(nxQAwB4%lIa0RUA@|z-wzbvHc;xqKpL~3i*lV|I zeN&B&m&RjHt>OjYBOT<%ePZKl?jEx5QJL*~$QLF7w%$4Hsqqbvuk0Xubw01If6m)@ z25mfhc7BfA{nru8p_Y<}l<$lrjfj-eYquKAt(N(0xJOcaMiS?>tJA&V_?LI%j9TU| zqhap4p(3}T!@3$8`NtXTPhZF%SFu0U(ky`=&|w(Wbbn+0*lqN>LuY1mhTgqk`mY=H z?rWZ|V~MWg<#)F{T>;lS4tEz0caST{IUke0?;ZW%JNmv{dUZ_t6p{_K*Ub%dYy&yE z4LOoAUz*8AnkTvIh1_#>MkO`d{V;xpok-fpNE~LTT^Yf%X=t!k*S_v|#gXn?t4N#{ zhh33>F4ey)b|{3}8(tPToE1TXb*BO$uOkefK;0CO8-ahbg;4&xWWw+No=n8OB@;1_ zJ%!BV)ZFN-fGo6ETgKe zV|;vQczR}FZhm2GvTbE-IDB*iwAQe*Td*{Bc$B?gc6Oflx9|FXa0}|{A^zm@xv8c> zVx!aZ1%-g5QF@ayFzOwb2#hC#oLfXvoBnQ%gMC#4@ zFpa2WsaR$URjT(2`z)D6p7SUa*PklVzJ4yHX~w{t`6Zbp3Ed2&l+9H{%^4vGFP+P8 zZ+Ac$aXM9NpMTa0cxUqWAf2MKm^OvNBb<3OTOI$ZG#KC$adVzpva^|) zZ;NjD|1+7mpQnet6wS6wCJat92a*?V_&!jWXZtrRn5P9)Y9}N4Ut166aOHUdV@+!< zW{3?wSc)5lP%afJP(JsXE?H%V1k32MDZ-3}Xa~gSMgAH(z>i46Tzn5BPF}JDjzv+% zQP<)}g4wk!=!o^ zMck>sTiQ9ww~-k&1k)(zglal?uXU>w~!dm=6Xu}>wgM~ z|1+7WpEX-+z8Y8id3y8bUqa&l+*6n|3$3~7xB53*2qGlDTazih{N3+?KzIL-ka#or zD_`aMFLdwPt!T*R$XhbOxtoW5@e>MG_g`!w2$-K4)VYq7ulgTg{;DgG02C~SyucAb z-#>c_5Vnv+B_br5c-vFRHH-KsnRvePoN&u#{lt&<@|H}z?4Oe;71zxnSG_>kLXbU$ zRSb8{Kb>1yZ(#lbFw01Ao!;r=%kUdp=uXdcxVUP)6=SpGEtvq;&G+V$3CN(5_+W%* z!;bvnjn^J^#~OtQiN#ytaJS3`--N{CLVE!hzF%o_kkkf+{utPM(_81DK-fY2=m zr4Y8zU{BlXq#6Gkm|wiN`t#Q3Z*M|k{CYap=(jxu>~k^XW0}8iY@tcRH@48!2A<1 z01~{RK~b*DnCS3)(ytOjlA4#X$)ow?>_bDcZkOP=Y?J~DF^OTtRELn%Weq6Vp<&fW z8Y4SlZ)!7%5wb&TE8emKI-SKvsFTYiuWMbOX_gRO=&R(PG{$k{g#<<aw{W*WQ?8VKfQEogODnbI^x z`QsLh9*@kS8&p zl}(C4KFMh^)o&_fG8XT03Z@g0s?FW-@pH;1L?2mLqx~)Y z-MZY^RZYE-$-X9ePRHc4`{JnEZzq-BV>2-+&abf$`1|oYOSR*c-kRI`a(5bQvkzR0 z)3?8qmT7E%ma)SeNbAXOg6v_Eh9hu@8+&9bR@<9uBVUA@CKHxve~JR6MDCg`jtiWs zM|5g*YFjo`mVZLnLNz#Q3A-|Oi^(n3_N8}i`cnJj^N8z@UN)Ka)ZVAPoLG{(l3?vHz5YTL_=W64?rre)iJxE7gt$6Qd{!i7Ee=$H%i zMJGu+ZHSenVLK5?AC)Pw(QFmmC|(Qv0*5?6mfU?^HnvT22`4~Vo4*qxYcnz&l`+!O`|V7KYWVHP5a@AC1xbm z6P9Vz3aLcj%Z*tk9rCDDdQB9|?_OyivhS0%DQWc1cxR6Q4f|GDK^;Bba5VNl-~6hl z%-XCT*zDgt0W(>U5jqWMihv&mv_0YtM**;uSAv9w#5Xw1&!H_$Byg0`TIKtJK1fx~ zKoQ6olG@t`c%nHkKRc579-NKtz8MBM<6W-)Q|Kf6YYADp#v497!kWi9F%-Z-->z!G z_HDujrVRcDGdP=+*}8Lq_uzK}GKlonq1<{eF)d$X^$4BD0;zw^r!~$(i%jOHQPZ^=)G^Xu)e*?M_l zh1~TM_tc2VFI#A8v!|3>dSu0D&z=_l%Yq)mQyUmc;fW9C>W}^IfMb2ouZKHB$DUu3MNZKO(DSO! zbY^bwF5ZFq>_`h9Q9-uGVi5k2Pimc)bB_Z~r?(HD8`mHA{(YZ#SYIb*S4no4?VnCx z)V-;KB_7S#59h&l<##{la6P$$ezGn|-~_V+#D9_ELvbcMM&kMZD1egSuj zUexb`GE?6;4#wlPkTU3J(3HQ**Fqc*d`^NY9};{Y-(t}qRb^UHCpRM}6T_g0gFycS zd^z%vpWEKXVo*e8P)W(6)QL(l;+*Mh7I+MndBGv=?}9vG!a(*fF z=1#;4e^V`8Jhos*(4RP#vLyB-Ubq-Oj!iScdC!qu+fmAI#hU9T4Epejld=BOO4lVKR zli~Zo_Lcp~;CLvMuc6V0a^D8s12s~%>!3bx_@=t@*)6Db%%ps{NZE@EN@ifRDC7=# zu#h%O-MNze!WdpYlZuw)Ta_aIQXDiJ&$I-z$=(j?Mo4Z7;f)ffO``xRumh&ZIb#usuTLZ8kSNFR?41ca1Vj!`2VEvk>USr+});vbsv|M)2}R$cE<1hHXyuF^sk^ zVh3oFkL+7k!RH|QM@mA+Y}B!XG(tW$S3q7!`bj{}=%WrLBzqqV$HR63@Ln7si!&TLiHe&yF7Mt|Onht5K5toE3mxz{>BwLE7 zmy!lAl>}WU;8B*6-IYivmKM5wAHgjxBajx0C#QQXH8Iw#8 zPUs{kFXk$b*eUIQ6mLo`7f>r7Ju0zyC{O53oYn-*yMY#vbT^VgL3Qb4Lm&@-aK;3D zg|C11&Z8(qNNf{dag-{0vQ%NR1G*R%BM70tX07Du6(C|k2WE5rz5?ANiS3daTwqi| zd<+biW$@Hh-V`Ygx)Z)u}7jDstCTYSy29;jJMts|~Fm*oKU5RVN78IZ?k8>9&plV7=6CiIuODhxl{n$imh1hYZ%|zME0vkCJ+KjjZDjR8rC#`tc zGOsEVTEdC1mlA47vuG+4Y#G6AOB2L)(+>F1im}t2&*|wiRRv;f1#7Fz*eirbYI4%wFHUk*3|WcA$UziIu?FQ~N7c$7Kt54rN)9 zdWCCp!unU)m ztA0TSx23B+uWL&9H?gz|FrAc0vs=okn_{$^%KA5sN;TufQ`}(qr<(W$;wP(z) zjt7OG?YU>N7AQo+FR0xs63`?5%&Fbd8_gVrI*NzF+#}1wX6BBppk1iK!vPcWn@p>@ zu(8j5yUIf{czh(Ll(^qWx-sE6ns`auqP*YbM{y&vFcet};@1Ix;Q@!AYUiZ`j>08w z+?l^%2D4TAe_0R4eJM_5Y7PCUh0>Iccrh3~I%w?BACICLBh78kK9q7IG)SD9)ymZ( z(3f|@S?N9;Z9QD-!6Cmm49}BLRXzmAJ(8bJ{#%<1<}=?&+DH>CMti#E5Z-7p&uFhT z=k*Bb^3TzPAAY0KBdw34(>!Cd+GFz`V+-kHORZxLP92#e;4wbOBD&4)4Q)24R!lMN zaoyU6n&j~#ZC1PEZj7gK1LiI?X_Ip42?3)C?9rM>8aBdKqlf2-hMF4m@?O{%RuY~G zL_&6CLO{Xt^d|EI!`V*@& zk*KvOAgKGXH! z6>P2xzxxb3o<{s`Lx1`+(wPCg*9K&^hcP~|$gnBAOtm4vjGwuQDvSHkb`xzJmEeqm z7#o}Vs5MMjG0XmLM~!KR z+jiUb+fL2K`!8r)2{}7rg4=wrJM!&2{0h6Obi1st5W(mc)6_1M{jPrG&KT<66!E61 z?B3$bR@Btax!c;_PhH+075lngh`%aubv_?(+TsSc z???C^80#J&w{Q7Y>_yXU6to@`ZHXl4V&nuI8hUPr(GA)X@x>Ay*;XH>6KxmLk!8{y z74!9#R+wE=Fp4v7)yf`MkDGY+^VJbEHLTIAVDq(9m^D=#8-?L1Js;aep2$PA8m}1I z$0vqTM}GRz`bC@Gf;lT3+oG6Yz&N#2^gDs-i__7?t(?o#<#CjS*VD-l@!mwX)z>G2 zckIjKrwTG>H$+?92IvR68$VU)PWZ523{Mwi(dJ*zWa>{QHjYz#`qX*9j&K49JL_X7 zr5b-w#=rXuWB=EMDE>D4?^oTuJdD4zk_RwYe+f6vs?Y$K6Mu&l5ed#OWeqOFF|K0H zRKKiqe2gMq^u1(Rr{~kV2$;NVl>P9#{eqf*-nqOGK-^-VbR9S;wHb`TT@924Uuzg% zr`q2pN zO&UmoI|O%kcMIh6E2 zrk{G=S01iiMfW9&KCN>fGy1U!@@}&IiIn~_?&1;eV(xwM@s|vBmcT@_gF&+e_v4!&)7JXQ;=In=xsBEmq~y@+NeGA1zojDAIrzOSh` zb-1{ooPyF}K$(8OGvAk>I0dtfZ{}FxnTG8>&ON`LbQ!r^Nq{8 zOkmCi#Sr~jOZ5DM_cb@7a;Cu*Tpl$01n{*LaSGT3eTZ^Z5RUvJczvS}wL6|(=B*NL zaPuP?g`EH%beMq;E8@K+DStjn_0lSIE24eM`1ev3vRKeghjZ;AD?4&xo=LSLawlkp z!4Zi~K=+f+3`Rwy($~}N?8pq6=axwOf|m=LypIQp>EV_+Z8>eWmLIKs@nM%2hu&oo zWUW z922J;c1*>7nBESFA8;q1>3GwdM4X?P6LdtsLkO;hcyR)&w1d~P-^6tMgJIjLVt>qT z+Y;eeE(+15V&Cp#k6vTBjVpA3i*i8VxA(D_kBiS4Y56zF$B7&&_QepkEcw4Ck5kkf#s0pvwm`9diFB|Qsx6Y|Ua`(|lsN%n0 zhr@Y{w`jGJ7fFT1Mq&`HZXMxm*-2AeF;>ygj8bD4} zLsDsNG)R4jYi{||(HoG{oz^!5)-@1bF+7<)7B(@}(LdHU-#c16x6-gyzPY-+v)jJ7 zba=F%w|rW8esR@!^LyiN<+$bYx#&S^?788CWDXn@5D-XXdtmv zAEp)FfM@rsXL`QE?w~#yLnfL^?D}v3m444@;Sb{xSvL9gzT}&oaa}$W_va(pB3VuH zKvNM*r+kh-po-KxDs*be0=3G9)G$Trg|ZL{vQIo0G~zC%t(g!WP;}Y}hM*uM&t&IZ z?Ph7+ZP@|G3mtKzjdi$DXNvDNqX_Y5CykhsEoQ##^z-mF8@lm8jIneV5;IjFfzn}< zC)%oM%fL_!NX+`R$K{;&jcZB17@gYh)_<89412a|cy zS#s?ycPERrRvZ6c^+6v8;0w6?f+X10(ed{3*ohM|;VtO<3ig?D)2EMUQs4U)xoFc5 zj@^9D<4eD|k3X84`BvaP9NKqpg}~fJJ$$ba^^mTg=(#qeN#+Zo^|2v1;dDLb&}DL?p1F~p%+Hk^OGcGG%4K*Y8Y3ARV z#$p&nI)U$!GI>A5S|o^|46yV8(8sgU`T(+Fg&e1-#p1lJ2$<~xkDTG6;#@5>i}V~~ zXSm{PkzI>8qN&s{vBr0n(h9UIm{W>uEsOl}UKE~_(yDVREA}CB*2o+&xfPleY%Cg; zYF_@A(ni)ZsPd*}W^FPyydNuCEi>FJ-&@aZ)6RrWwbIVps*{$^>t8n0>@wej3@Z}S z0C0BQG{rQ(+rHeuMt0uXy4kmJe~YjO{zc_UkLZCt_+1SKA?{W!j~Wg7hKlW|%-n)m ziF;;F-`N)N7kNeGrW3b(v}TOkpZBtb=6E&4LTKUjXiQKbz-e0Qs||C79OB58GC8-b z&7>kMtl*%|{}(VUTQ~mS>VqeH8~+LjF#M1D@E^cnw3ET{U(LV&1sI-64e7j|{#$(j z1tA%X2>n-iL0RK@OTKnH{mVyr0Z4raKC=V`A%Orx*Ov)S*`5!;Fi27P>xh;9;$IMw z=MMfo??1r6ch4Hf32RPo_fLIDmVfC44~Fv^Vo3Q17#O(5SzN}Z$F2`P0K-VRjaaHj zBK7k}^Y5jP{R;tcM?VTANPR$x*lecUhpuE(@WTWFhBa{koy7|;9Jm}P@szegcrqXG zHo|}91;e&x_m7**I-us?F} ze}I~Qq0O_QOiJiHK!5=nDhERL5XE06pLi{qOqv!182a=`XpljGLCH7oS`P%H@|tT$yp1jM#&U!Qd4mwgZZlqvkh+2V%rGlC^?}~@xjv%Wp+oM zr|J=~i8C%ocb>Ioa@G9P(KMq`vF{C97%Owh~(o}b`-uoJ>x;GjX}1(OUgvxKlV zMIyzI3RZKD@~C6xs0&X_73iXQgrByji?-^cgKqOpoIckn3{Nv|m;Yg0%iT7Vn&ITm zE8w&tk#rnZW?`=^6#TR!>n}A+n_5>S@z>x^A!s02p%fu=LwqRdX#U&1P``;tst!#&c`V5VJ<{x-cPjjP`^)Eh@%MsWzK0!)p4WWFqLk z?r$prnN0Zd{CfpzQhS1iuC(?B8^*W0(sJ8qb&bbO3#3+f+be1^0+}^cPRPW*_@ zhFf*>msYE-1Mwzpta4pLrG&YCY|NK8+ZEByRhJ zQJgQ|bY??yOgX#J|C$d*J%0yxM5p{3X&*Wyt?KUXR7g``7jiT`f!Ui}wq8^nITgOM z_I6sxb8Z_xa%VXG8LJhy{5V|nm+`S&B!x8lk9cUfUF2TZVU_jdu<8gs%|mqlUw4ej zIIAlFOu($H8T~x`d|$To3j{AJ_Qd@>Qo-w zLjVaufH9SY;uk~+jO?y2&Tjx16+(#8BqIZ!j2^5cM2LcYwn{3XkFPjySkR3`f+eYTa=O$#{YB70-&nbO}}k)YfV{N^z_G759;wNngg zE~1)w6UH7lR7#G@ojQM{O`Z*%)rShxG=-k>6?@c8pJo?XUvh~fXm(f5p861M^?@S> zzZuRgV*V>Vv(_)Xi<}hV5J;ks^fSR}fnhiXXJ5HbkTM|waNi4LntLi(0)2ccR!NG z3sJ28#-`cHk)qErM{7RG!lC?f4i;H7w#`FF%?G9YT?)`9}@=o7><4yll_w`z)%hE!}uHAyy zO!n^AW6N%bFpDSY4;)ldl?_f5Uy7d+R^oW8nhd@}#> z=He9G=tYR>=Z$V}YzEkOaZ2KFRHXPp&8dF;<>$ja(3{THkquK5o6&i}6o3O}9qVVq zyXYSq=!s+ws8sqT9uiO&@V$7)*Tuzl=1X8$zAW+dw{w6glsy-RMj)HGzebUGRlo5* zGjs4~f=~8bf|UM8YC-<2M&^UGP>$NKSAmIn0e6KqKPV;qv(44|VI9Z`l7$23lWe>( zCHOvLlGRg`v2h8Qy9_sk__!KE%*lZxg~qu8n)j`W_dSvp#hfsC)cQjc^W3mF!+y+$ z@FxXXQ4*CwDWw#d=s;L}$qlaMRFrQpgMhGXEm9;=4UQ$YvVPR)HdkW>R~#yeXjqIW z5;dH3)ktHEoTUtzf8-X*mXwK&wE3g3{-{cW4vgX=Q^gXFx|-!9y5_4dGCq8iP2YF; zu^l#c8Fe|R8OWjW&dzi%A=^tHO|TFZJsJH3Y17QcD9mmS`8#Uk-ZrWs=Cg^MUtrA0 zr`U%gd(Q>CZPVDE*%&Z@9d4)`SD!sPRvg8iE5O2<99miGHkM{6PUay_Jur?LOQlaO zUgBpA=aC9ob3C7DJin$gA65cqVzh`wJcnBX7a0`nCRlAPpt3NboRbG;5THnvXuq3K zuIw`0575w5)>%r_e-hE9BxqUW!4?c1ZU{4S6RBPdYKH*FFtF8IN)lHINeSfnerV;q zBvSOq{awNlR9?XD$AdZPj9vxs4;ArV0&-h6TOBr}L};co!~>8pgX1hjTrGGAFH@$) zgMPaSyJ8ZUJ#hoYE2aiOfZL;j%)Hc+Q2Fl~04j|%I?}+u!hxZZX)PA~ zT8pS_D!ku^th_MOUmd@xCI$7S@Zemgw0}+?mgF~EOiyt%X`cBF>Y{j#kC~vNKzZV} z3$d9!%2ta;6_cr{~C zY74f6!d53R-fW zxt6HqGN*M*u3d?!!!W0ZWd2V}krS#yXBW$ohQijRaB!j`KQz_V+{_WfB6pE*$OT2+ zT}3?&b_`Nvge9{v+gB7!npgQ`+aHzE{PQUg0#$f7M0V_CC3 zRLgZD^bm@Od{@hdR;M7A!!BKiRag5dtWHW>c)#71kSK_0T!{zX)Ur;*R8p4YGuA)u&RAxxi~pgsuI z-6}twtgH*nvYfH$(=E`Zy#%3Yk-#?%I&4Is+_WhSDcpd)85z>1rvxgpxcRxZBv2PZ^a;I>$P&L<5%XcqSogbheoT)X4p2? ze60b?HjY`xq0+Vi9E9;w(Ey}&i3FtC(ppQGc7>JJ<(IbAm3Gz3XYWAdUQUfbw0Otf@*)?Upm2XyFj(Skm=vrG`o;fiC0M* zq2Tz4OlyCxbWIBfOOAA*{NnYcY*KXYM*UUHFU@E)+>LqKjnP(PN7GYeROfSVL=e$a zo7W>g(&NoTKu-(QeL0NkbR{fP>22_DMCK)nP7CJM;o)6YN#pAKN!9?$xRQwAt%)I% zTj zpkJRL22Ndj4>$*Mdz-LBS>18D@t2xdZw4}NqDeysAS4G%NLr%AV8VWJR}U9knIJ^- za#w`66ywwM#nyaN_*wPUuxUm#sp#vXRySfE!h{H>PT{_IZh2%{%xZm9jS$D zZ#W&6P8eCf8Ez}%?RXs-oGI^t<4w^SwL2{xEYs<08*Q5z9k=e4#Tpwi%9)Mez4Z71 z46CbS>#xAEP2BNqTqP69-W_Y6PLJ`L-inIi@si%Yb6PF}ZKzA!2}hQ6SXz`j>j_;E zQe;zFP=A4qaJMq7usH1`_12KTrQq?n67CW_{xjmonyhj z0XOR&-y~wgwdOh-kD4pB#<{sT`|WL3fsdD$Z%#3Pa>-zBbO(`rq^=-u4ss47Qk&Tz zvaY6OSXg(SZ=^M{blw(qs1JA4wtY@^s>DKf9^~jJl`J^I^TbTed+Ktx!PvRrEjGa{ z29*Oj`k&iFWjThI7oC-@$=`3{5SS% z%l6_m_C+bl@-cP*-ij&9N}Vh_$bK-4Uul77|FX8?urt{u%Td6$+V2U<4p|+BmxpLr zH8hePC=V@9$A8}efZ~9#E-iAv zzP|5Hzl%6?;I&TSGp?fKbx=Zd7?iot#CYh7Kp7f!fOd5lQ$ZVtfNOh>4R)TO+Cbze6d8FNH!A zCg^-8w1)L$kwv+BXC0MgVq9gvi1Rx>%SDCB+4=eYIQj$s1&iK=Q2E7+*Xe!K`IYSj zb$=Zwv{H*6zPpOZObve5>(cbIpane?5`iVq7W#|b6}}==Ud+`NJzf6hm9_2gnbK8- z7bCj&MI6`_y+2eb;dM9)dNkP0BjH(h%oVZFc`DItAId;cV!jXm9ZW!rRMO zFfjop34wB;?g3a=#pSnKS0iX8`MbLF>*&c_4Ios39E=Xb0meC$=8t6~0T@{UFe!%1 z1Va*ChI%oAdku%{2*L-6_39P_5*ugCV}7Ll%wz7Ip{z3Kz?8qi>p+Ydg-7SQlS`$? z_tZ#Ja7%~VS@{A3*9{GnE!dHmNtrUK!VS*%72wQ}$bl((`Yh_XxqGGK05`>=&P`vk-x+ zr58({?su`7@Bsl}Kf|l19n=Kk8$|(daPmi{_B-1KR)ZahSPtVG!81MbyBXr~vmJ6_ zHqf!M=(&>QLE)VT@gf%CEeCk=z+f}F`5bb5QJeiJJVhUW0nCkKeCqH%2W&pGd7oB9 zqaIX%KKx~a_sa=BsLA-26B(vL;2~@C8N=Z`uj={e{k@R^=^%<30>}iquCNVtP2O7Q zz>v+{noc}+$J|?_KL-=uopJ9qgU(OywvfP-vic2~;AQRZg<~JwEBj9Ap_Dc%{&q5h z&MTu~KvyCrSXtoTM_UBUV2#j| zc0`eO=i(cCNmFk@8f)&Q9qNponc?!?<{>|f8?BWas25Q{l0$B5tZ@_=(QrU zK#x)ApOZ)Mlj>wLGf(W<`knO=Ao`z^`^)WsPFfN7HmA3#@-9Jd2BvcNWAje2DED%e zeE`}^Wikr`K=1ZamY$_*V_V68N6Cnds@5L#(OUg>!VK9!CtX6j|2g5->*L)iewkA0 zQ$c3qRc0O9-lxhtv({(p$f8ZAXQ3N7hc*I=1KxOhU&Oo5Q+xi6-7l#_7bP<=H}b2SimH+M}JSba5T_zoK9;_guY&-5bL z4;=7Oy&N409`aGW8~`2`la?NroRyuBnw}q(nNw5@miOn+?~c)`Tx|oKh zj?k9Y==RR0?w;7c!=;1uBNI8l$HFTohX?BV<{KBwmsd)rX8;?UMcXrT`>SgidnYw# z=a;KHySLScM~|=1OBb)yLp$h<8=O9$DDY%3>G6bu0$<%cpd2QMmFj}@(KFqT4}nW^X?_hXwKr(CQtBFU8vFHX}exdyHa(Utzp=V;K&*kXJ9 zVYkxZMfW*=rQTRKl?XAfuYi+$vnvSa2A3AAlD@}?;R}0!gX6k!rtcHn*r>{0d92*c zsf>G)@V$ThGW##MX%lKU znBW)iBeMxgs6Nx@6uGL)A4!aIE8ri!z%(t|3c__h+zKWPqTCJvfs5@>%7UWpFxrO0 z?Qq6^N|K=8l>LNWNOKz6GHlxgc{bdJ{c16S?;6I@;^!%fz!<1%;$0$+hJl!PDLD%* z>t~hUF#=i`347Km!~0svZvjiGR=7%ebAE6bn|mh4J@FdpCla^D%AtWtg_-u(k}+B8 z?(Al%G=B`cA_0Fz4_HJ&@n^Xa{d<(UUUyCuhK8Et#RYXv8kE#fs|$Jn$YHmsKSiF2 zOT{tM&c`v|G)+}Y`>VL~%Pp!~h)C-8^QKkIhGuDKmHuE@v-B1y(V7Roxy#oMW@}B= zSejy#gSD#hB-bu)yD8L=Exs%$I$Y=ER2u?XH?Hv`Gsed4p@Mp-=@)zEIoSFwTZTRVTkIF zd))_SWbHt{Ntu&Va?1+d=h{;N-yu>IH?VuacwM|wNf#a*Unp4 zEzKP17$q;9kvFUSRrlw-mR&oGqBg3o-QwxE`Tdf4Vfp?4LNAC6Gnhu4KJ4f!5bIus9fZYeZnBZJkl*>QS;OGD7g)&qb89un64`x8;I~GWf_=P_<-c7{5R|p0T(jzE}T0c=+ z2`gfQ{i|M%8u!~eTn}VE?EVODielOLB#udj1`2LsoW+3(6@o_TzYO9W-HPb@4F6@j z5R7>CLyr(a!h^>T9*zdkD*dAu_R8}9Qe;q+S|B|_Wrf-=<)0ow@{AACBl?-uLP9@+ zo4Q>)K7yO%L`ZNCBnBY+bE8~Gjb3bX2Kb*9J$}9B5q@#wl|s6X3319KLIvp&@3yf~ zAU(qD%a9~UkN8tc3eqDa$A~~}IN5M}dvHV`J>oi{Nahcq^uB(7{zp10s9v!?08qp-z#tjIK>B% zZVrm+hsHave&E%P1veRLq-F}MM*>6LH<=En1;Y7~^1q&E0vB{Nd0w6-{A?96X&mQS z;fEDqj+M>IiwHbmV!$j}Z*x)Vv}xi(2p|?w^9b>bz-?8gf&*{!_0ST1V8D11TF}C< zWX7b;wE9wp6AC#0=E%y%&SZ8d{6TaImJeR;jzyV77m=j~#w|caH4NmHE0m~&er*>g z`h$!D{3$P)$30hZEoTIo7=zm`HGeW@Uxq1UrMckFTTOQ>q-|WP6FJaJJ$wPuBdpF; zB$5z5IU&2l)84*+g}*%#t_pc0e3i&0s%Ipwj#L8S=?1xp?Mkb5}L2sEALY@e1SF&rfMu`T0O0Ifr^uzdx@L8&O4jeU%%Bb4aH7kea zk-_I{=Mi!qcw<2bL%BVvOpI1IQ0x+VRo5r>nEh{h4H^xHnj|_d9~c6{JIXNw$XQP+ zPdPAVuA3#$bttAz2!V|0gx^fD@`VVys;#vv3+K!nPK0neE;G+OZ%Kn(IM*e7zb=pH z?MR_BwkkeGUnjiLLe(48mHy~ds#`9mA^x|r{|xU7r-7B=f!0Fn{v9R<&;v?1ygsru zO|UvL^3<5-C496Zv@Bzd+wf}|_}59nk8mh_pXX&g-qITCcCf7$+r(^G2%l8DPbIZ~LIu zMoIa$%}m!{oD2tJJKUu1Oytxp_8)Q_xVscCWOd&buEpfLcA2vNv@#SPS$O+Ea5OrP z8#Ox)TeQrVWcomo65i&F)Eq{YK27*`IHmBs9Z?nPd@7IylrX#^-t_?5JKceJAG%>{)m{gGX$m{=*5T z^h5{V``LYqBKou!h<6!wK^kdO)(E8oCWM>KyN77!3(v`WQ;2I2en)=Y;Rptq%kgW2 ziT|J=k3WITS$>_-0Fdv!xmaE4oaKpV-emNCpZ?0Yx~gLhTgCmTROoXQ9sRo7X#Y@a zS9c{k@ldnU@tmXLwc65oxoG6`7~$1=)Ll8e%AjFq?80*i?d^5jiFbdh|I6p80ASI& zHglWoNooeD68C&+loVuB^kM0-g;54kGlU%M2oYBmE zFgR7;$ASrz%D?Btp7gL42MAJnbEf#a z-O2#>&>qB~0%`&LhmM%)?jl9vO#L=UHJSnO02C-cny-OBjg3_v3Dr0`ajJe|_Soxa z1pN7qa!Rf>Ovb742>1#PZnhX$pa!$C%N(lgkI512WX_=91a{2s?3Lt&-WBXevg zU9*-G4%00NN<1XQ1S^*zk_8YA6?&4OfP_JroFW&Sf^a<@df4|}mfbM7NY+9lZ0bi? z3Oa8Yr3S%WSV%nzDn+=|oKk~17eAp?Q%bnoURVdEdKYHI=f5g*!Vz66syr!bzs;Ej zAEgsaH6{iXsBeSMlK5v1Vo`gX(o6H!M@3O5 zhfsJNsG*AJ7O@pZp#YOU_r+f&)7Yv$8n>@9&&PDiv7UqisQ<6 zfBGg$NyYts;Nv6~&zay8=>na56C{5aZ&K%+2_g^*)+`nY@N)s_{UB*ifiOEby+2m@ zNnXvuQBzZ)cs@~It#veIk2F+2oJsyhlWzljRZ}R1!%)d(gQC-e)?@i?w2WSuf(X~|aG|E4G@Zgmy zz}roCQ_ixb2)4EqwUy!!Yq5897uFP2+;b|h`)uyekm-i~tsfJNHi=v=yyA)7hwb zD6r-)-zumr!MPl6BA67;+C&UQ$728Cc`PwM82&1Pc0;YioF8`aNjdXbgZ zYuwhJRjX>kHXzrz6?|_{?=ymrEBaZ|plkfc-b0j%r_qVJ(K%eO&Yab)lwb7^wJ;C7 zCl9}7udNhMv40xh{tU4AI;QElH^|$(HtK}`AS89Cs3^XbKM@D{0`whDx+yI!zSJ@| zi-!NKC^nBq{!eMs#B-_rPu0x&mU+h(Du;?1p4P@=`V;rok@(hqg@!he@mXTmT`K&l z+9oQ}Hs~R|+|t&t6f+*4l!x8!4BbAfEi~rQE)<@yywbk@(!Pn)vCY%5tKG5h(UBt- z6BXR?C873oM1UQ-?xIxSoTKxZrT#vg4+JpgYdc@1d4Z~(Ky98*==4#P&NHT32wWcJ zrXV0hLS0K29BvcAivVU(7s_cK*S8we)NV-JrYNx5u9NO?hM1Z!Bb9pp1uN&zWCmJ@q)hgv=BKR zUOt?^?ZR~`r#x!E{_59%eH9Z|#pmXRYRL zw}0izkshez>G>(c;qux)(NN>@i?eQ}*cErsRHl5@T*KXZFny+_Ss^+?hri=x@ELQ+ ze_|*1zl2VdUj_B*~}_5=^i!o$EbqG_iJcl$UG#bu^l!Ynqn3ix&)2XDkb% zds&D3>*{~#1@HJzuF+jysYmzml)T@^Iz2f{v6`2 z@#uQ7S4J*Zdu#o2i86>O%frgsrqP)DC0_qBp6Rnh_OjXZGi1!TZHOoShqNQidnVEt%6EBleW(9c`M?*Cncw z8blEVLsOj>+Z_!2C3ZeCzhBq-)vykkc3}r=9=yA5A$Y;Ge4&*IdP-;3))Q9aWZ_*H zNTcB~w*?o=@nh63a?#Xr><{shon!a8`I1|Fdn)|Y@XC^1?@~5A2|ma29qv-W*i=c( zGBG@CSvm33>oO(EN{tOMD7%UD$4V0&aZCFO;q*!ep5O)UD!t)2D6i>*UbL@{uE{hm zt&UPotd&5a!>$d8gnxlqLqah|r=1$}oJ1I1nQIa(iR<`}Q4h!skd@ za{JD>%yE`ZPtKXouP}go8MQB5w21+f|?wD`3 zX*LkC_m=Xkd?XKxxah)04^Rr%8}?%mm-kaWBe$qzKKeIo03ft8@S#rc4mq%1_kz)V z1LGG1lvgwuLNwG5{m1AQG)(VD!;Kq)-Vv8iSK#04&XFIpH;xpAz-~65$_<_ifk+pI z&oO5jDDp3xdba_BFWAu!Z2~kG?@(0}&$96{tza(!OiWF7FZb^+IReoAzl{AVFQo}? zE9BlF*EBRQjczBbS6r+C(yyC-WI^)l%#>0 z=g)t9fE!))XA`dk{=ii|;bZ!@1-rL&;L|AZl`}RfS$^ly?($#~>ap@`z$DzBH-frH z+>z%!aN@GT2Y4rs@+cr5;eGOW(W>MNL}u9qR=y+n1A*<)P*=dWtgF}Wl`K`IEK>$e zM`uXzolxT&&j(2F(Qk;z-mh3HFG>t>bsLw93{cGn_*L3Fzc*jIqG84b zvmo5!%jv@f9SdGK%vhHi^!!5T>1u#6eNt6Mh&aISdBx)BZBPz)uI_SGcKUcA3GuSO z6Z&JbVNB8O+D&_h1$toiCArJ>{5vpao__dM@Ab6m>JR8Y*s7=cj*sl8jz76jImKi zS+QsGUNb2OtxLAlUi@wT_A@E#)=Qa`%KZB*c>4zY>>Th^c2P%T&NC^tK!bBS?Q=5i z4l-^0eSvp!(E1q9$qX|o1#Ib3JFrvFStI!A6&qMT_8r&}_-v{C^mqJi>>E!}-*%<_ zE7{oMk5jx5RQ-=|r)2mURC?t?&wdwXBn z`H%70{`(I4|CV8V1`7JvOVDCRi}(_DS#xJ86oPy_t;${#rx6pm>P>sq6*`X2?K*5h zc9+Bx&Ze{V+&$O)8oiDKpperq1uq|OKYyj5@Q_fw!0=f0NYj`&w}iyxxZieZ5g9u6 zSw0?7fTVoO9OvSa?`6)F!G%S&DfJDFt=3T$ZSjSjT}B;!4%JG%17ZdKd86NZMy51- z<_w3-7OOgDS4)3QZpIJo>>BMKYK*6zsGWIktX|pO-0nXtK3!bCzD2C2L%0Ua3Hph` z5$7v0gz?+MXW{BBmQD-1gEOcpOH>mML^VD8%#!@rMRp;tb(#*D(iZ`UbGH+=n2MneqVox=%`L6IoIQl$(FCLyamxM&Tm*iz3RA|%7(_Ev7^_oca{1r z2RLKxt53JlOP!qpw%(05R}Wd@R-WJ+U}sc645Vzb2j;P!uBOLT;Nrf0SA-X9k`6L+ zSOn&1LK=z=yNm{!4Jwnum=TMrYN|#DRl@D%5`L|DM2pC83o(i^YHs=qF8G;hHwIR) zNz%RtSzQWilB`*slE=?aDNtGINJ&;f%nd5R(Sb@?1PO)8G&b7W4=ipqV{rI)1^Q%n z{Lfhpb=n_sB;&~rmQNTN?!>)?zq~QX##0P!Q4`r)x~Sx`ws?EZ*_UUVk#nPkQlWyP zU{Z^7!%?{NV`=A=s4#M)QpZ`-=|Roa?AW#HAQ4Dtjx`eonp)5RrcR-P3AxWovV+*& zN}y9Ow6v_Zi z!E4Wop-=13KZHVZ&hlt~DmsX({>)T*Cu{vVwH@7FtekOx_GXlI!TM&5^Pucz{C_R2 z_)j!cU5Y>`?x$bh>Hnv+!mRwiDy(5S_iiy1XdwO{>_fhsnZP6s?_upPFl3i?b*cDL5^|+wH76qWg{HXnOqJs>{XOgNsXg`{+0e;Qi^a zu(D%n@g%2RO0J9n_DLF}WC_+BPN>?0bAv*3#9DpY}V8z~oLZhWwh4|8MiANw$X%lpSZK;{N08tTK` zVE7BcX*7OPe-E#?dUE7y-_o4rhYJ#}&axyTx~m z{D->pa7a8KoE98xkJ{|F=;PLiwo(ikoeP$zHj1AqU=r7ndT7Luy4vD8MiUHkDHR;^ z=C`OwfuJdQ+5!?N8tODhwk>DW`ie1aQ|9{}KHUf+jOPIQ zn|}Wc-0f%~aMNwV`1mI41XWvL=tI_LfMT=Zsh5>A9ndW)UaqW!%9bF;V8gBMl)$M>@FA-Un=~ZV!3E_q2I@L z9z5{W=gaCy*8tTbiNFlm0YMg0^1I?ZoF!}+Dbhs2yOI==W8B+ss%7r=_F9os>H}d- zRY9et#*>>zFEjB#*4_bN`2ZaF_=iX{k%Z zj1gf}w64%r`QkxvgS(hWOMT&@sgS?~R$9$rF?l2@v={um7-```e)Lo8fQ{6AIZe~N zXO`~l-M%n>Tlta_O4$l-d&*vTH3>|qdBgkfqDrxArMlany*&f$Jz|Ac4XA*&An&Khi>pOxT{_R^R5>u>O{ zAz(2Nu0|UcU4sf0f{+DmyUaooT2y@au{k=%RLaf6hILdam>g5CjXPi&Gdcj?1GfononwT^;m<3w29rAUPMLQR z=CsS`RRT7*Cxq~OYy>USNwy3;!1Y3ld7IxOnWij7!gxM_A3uL$2(pyWFiez1QmGVtKKirZF5gb}uMW_+w)4tykCE_%)y`nC&nveYxT(FxSvVRpB3Roz3NRP< z2u)^(w44br7%|BP|4Dxh$^T|U7PNwN`Hgmu-RIm%UJ$&*mZQlGGuV~F*rK6gxp-z2 z0FBAJ`P`A$`P9$tM{S)P-?5r=>a^=v?Mr6HEe01zUsv+Z8y?1<@imiisn3RB`C zg9zc8AHfABxL2^9B+@LYF+F-PBMKeP<(yl6a|!wJaf}Yyr^muzUvXTpBREqdn1E|Y z+RXhsgMwL9t@besdds*^2GI0-Bi2ad;$wvS6yX?-08DRJU;4=T~Rb843Sr3{B z*~`)8Xy0+y#Yb;f515oq;uY_WxM(s<;agT`ATNlL(aT}+g#~BOR~M9aKP^i|=?6Aw zLT2u#b^BcpOonBUqwb3dwI8ooxeeopW$I3!#snyYmi?;5KL{5^`fFI zMljYNuuol9FbW1vi;9E$@*Wb3J*2p9kDp=f!MrgQ{ccEtCFCnacmWF9;h4segEU@M zkf7d*R!B3xDY)d2(9(Pmx?vF#bb#Cp{cEhg_!*4&02|sM?01MBTn=CFURWJun7hJ{ z0MYOqQo%t%OQ23sc!+Vhx9J0U!WJkD_7Q-~7$^ZP$Kh)H?I~fC)d$xlK?PctwfPrvN@9OPJgh~$9+ec1 zLc+*{AJB+O+z^`8^vQ|(canWwk^pKV?n9D2m$cJSq|1=>Bc~NpbFyn40Ch8gyEajG zKG7#sTx2MLM>**zC@EA^9vUiEJug9YKA}+EY8mQRES5t26Kp{MjEi#83h3_&mx;)d zpTzv{BNqN136caVHq6N+0(%z4VpI2_)D04S^g(|s)I>oP@ZWA}Ka0~gmA@}Kf4;oN z{v@cSvlGAK%z_DJ@=TfBkHu^38Y!3ymf*zBubIZd;zQu$Iq#OyDIBB$VA&DVF_=k? zRinYN_l&W~oZj&jm7vThV#5+NW8F!aQO~>$<P}}kP&Sm0ek&Feys}(|@ZyqG!>M6LLIV+h<74J9!;j)dD#J?PEvS?sXn};Ol18FPxL6|2mJ%8zYnoz$zfL`taD>S070vFU-$ z&%$@+4DHzNIhbYT2UdNSZYj=XKl?O>!^HRI%UpNCCb`RJ|C0@sTE5&;zPenl5p2D# zC00s_x5X`XqFG^RoPB61dfZZ>GFx#DBYKHlDZ^R;v6+7BE(0wAS({SHzAL$BFXa;B z_^u^&6n9~qn#Y))--tSAa;-1IhMQ!$ZFmZ9#+^O9-O+tn;KAc zg;<*4L{(jfdzKumEj~`Y7;C+Xv`DmjJvJ+^*2|wr4Kk^f`q>Zxqj@->Ve7Z-5M?-* z2BcXtlcaF#7lD+LjBAX>x0_V9*J+t`oAc9%b+;hE^W6P8h3XmxVw9B_uzpb!Gi_&;7)Lt;FjR7!QCB# zyE}p2oxJnT_sq=RU+t;ty6Wz$`zO^^oa3%b=5WEcp5mo0lQp z+E3!pqxp?Ud@vccyj<+A%-P|-1yGl*Bi0I6=hzq8`odY=W+U41+vjlOrB<-ximGEzPY(_)o6=OhT*Y8f+uEpK%B5dO&HsBx=;>T$FLN&^VC!~t)-J_e>L%!F| z6vbm-62eH_n@{zP$DkQHvp21^S13y8-E;4zZmEQK?;!^aw?SX?wmfw|6S%0atRP(M z{U_BEexJQaH(9_{K0r%|zvQ6-0H`u-<4cfNTIv32W}uyO+<4SXa+1~`%-O`I!`O{9 zU`^GGpaug`SX&k}n~>*ukBYlT!WE`A1|ajgx50iNsR%XDar%wGs?!)9#bZ-}2=!}D-XP{)rb{yKw^Sey}X zQ|8ES>qtYzNQYui7x8Gq%t+tru<7T~;kMDy)ltagW0H7mT2VTOf6TqMqd2f=K9lE8 z3cIFx%(gdUvbSsVgqyA;i_c(Oiz?{gr1z+e3or9~_V00_#M(Qt?`IG+ltxc*ZsC(H z7t8Muup$@5YPX#27>ps(ySAU|Y?GqB6I0Wn%O{iESd&vdSySv`4DwSv+a>p3!-&SF zte~eUn5T^;r@5`BErX^XE2cFP^MenjjWh}>!c?XiW(+tD?EPmnpd(#2fpE+->Wb`X z!!z<`CFh(I(kLcLQNzJdjS47S=D!=&l(>}I8$`_!wbnR;42BiW6!a@OlOwgkw#4&X zgAQJ%^AAz;`uX!@UUNiS^Jdd?Z43(yPz$&p7Q}ky`STZ+>+yV}c~nUj^|t4Nv$&(Y z7Y(i}BHFo`RuAM2*4*=UHOhC`{c=vNkQe zHfy*x@3Xd;wYJ>8wz{^q{;~$~S8oZgL)JF-eAXfU>ZA7cleP7;m-X{@PO-AAzQ`r| zimYKG&Nnq15ct#Y)6rLwP4LScl47oToU?huhIHkoWWpraQWcJL6PPo+iDU%zJEQOo zGxeL?d0Z4Tag;GsRI^~aUw2Wz2uSBi?Y0OxkyxXsWEGUVF19{zi8JDEbF)w|D{nKj zQE@85v#)Ohwwv&?$v8xq**SKk?6;&)cV1eXC0TX^h$s|Ae)4nd(uCl>ePwow-_2Lw zWms==$lLNBLpK)L+fORgwcl0hD6>|cwSC={e%*7l-}8>xbLrmQ_<>;8v8MpFZ*nH) z?7Q!!yz6ANH+-;PlTQ;i4$7=KaEaMp#l(%P+Ew2=NDw)&Zhez%bQqS6oBA5!({bQ# zh?=jw(5QP9YfGOmvX@ADnAdSw=YQnAb~KfMQP|USJXb<)aj;j zuP?`$v&Pw?{n=sF+0U6@s%%w^KSW`A-}MHZY5JdM?H-L?fPUKpM#fjw{Li7z`;gob zAB@hI43LnF_rqC0zl{JJujjx{`pr2ItmyXL87$Gp94*xp`&@TTF2{DoIRWdbblhR( zS0sF4JxinGivYlE42Xp7y0>bDm5k(*#F1Lf^}O^!+c=z`kaz#;4`37NvF>-Az z2f_qQW9L?j9c-=23VJ(CE%+Rf^BJ1$Nyg;2r^;{Tn&E!7wB@)eo6D@bMeqIFD!6Au zoM@rr2&i@xb;S;uMZAH=16M+Z5xK9l`CE|p{n=OM03hz(Ar>^mU2z7|_H;$|m0x$2?GHSwPWrP^0_>v$UJ;znc0yuMO_j-pmB}Vve=Aq* zY*`)5)9u~lo&0%So=oJh39PVqDetGM)TwvuyTm+7G486Z|GBZQu08#+@6u5wWwT9W zvCUes&0xFD8nw-8yUpvXEmgkFK+GU`#xD2@`BWUY=#7T*KFHzy)Aw!Bj`z5QJ?WGj zvC~H`EN7Hv9Newg%70Hv$^Dr#F39DZpf_)%_nWiX;hbNdRZU&8k70e-7IHY=II~&H zvL&+ZVbS=p*mR;5|2eU(WtrxE@oZE$R;qEU&asdSB;P9UM~pLfY(4D<{&xNK=Y*R9 z>-~D-lsN3zIzLip$f^K$s~@+jLox<({%V%5XN*s1dbitukdKhB~D~ooea>O3|fKcD)_^z6IUJTx8?b_-=R2a)o;7dK>&(J5DXmPpDK#~ zoKwjBk2wX3;`hxO$ee;RX{%08mM5k2_(AKCr+3%=Lu*I-KG@dV!9Vz2pn=sFf3Hxb z@Q65*C~x0*zeLxhWG9#C*bI-X?DSmg{J@-VpHl4$%SzSOA9#WmFnOSA0- zwdQ!(&aVfbr&al@6CC*vWpa!_*mDZSk^vp@5YS7K{-A1lR>VA=>FAc~mb6WS2q`js zLJn5^TSd>y)H4EkNkiSD@;BFHV=2UPTPHk+zhuDPBJ5Y?{I#@GJ}+*2nr_%1zvkiu z@YF;8Z>FRr07dkpW(pFq>23!yn{zgwOw&1d{v zFm!VRoGA{p{Q(TAAOgTF+=|cY?!XMM?oFc#5tOtu7*UVNXOV)FIL19H>{B?DYQ!5F z*?!6K+>~|CT{+WP9FF;UBkpnk!AVx*%i3H$nsv$~U13~)BpUe+C~R2+;?PW|YFRl0 z&Pvb#aT4|PY~dS*%3uu{!FUfX4s!v`A_dkjX<@AJy6^ly*OL2_X5Fire#xpH`#8@n zqFiVx7xW4`NP#vFq@#E*@Z*5;ONcB2^jB@`!*7;C@{xk+xCIJfXJG_dC0SKHA4{9O z8A{6vejs9$_Dj`|mCxjQzOO)^V<@j`j*(!jhUFgCEbn<>h^vt!A!2yf&2lU&F{nLf z`#nur-!`{Pim~#??D8^deb>`IQ^=kFaf$GD0ung3L98m{OzxnA@u+1_TQIim`bp=! ze(TIDr1jNQAF=fj&{o}*yXj@G_S(T2-=ld{KBQdDC`bo zh+LceE7^fty+2vewbDIE~Plx05#Bl2}>#ST25z$N+z zftjzvt0s~?roonawTT+e`D+btgKaz$6P7Z`b6XzAoNzfZU%CitM~9Tf@;S+}t%`+C zo0JwRKV&~hnF*hIOn5(CM?UZD6THezGNOv->eH1-q&z4Gqq^jwue}!|dHNcrck>11 z8{IpW;VJYol>)be5?OXxzBp1!Z#eu?d7?#uh-AlaU^Y85EC^yMefg${Z>*HRy?7?O zhfM>}EQ{+cuZcy&hMUx7td?RePOx4=p%{GxjBQe}rqe3Zoy$Q!rX6E2;4U|@+t5yo zt3}232Y^y%6ncl}Pd;9w*?30-JC^5LB+e^6!l;}v9XVQ`<~$6UK{SR1+4ZltHC;%y z6i1wzeFF2J&0s)gM9+)EZm|*ZsZ8d~BTHSsv@jAf(ccLw=z$pAusq+6+ezy$&v&5I zmUZpKknSumS4Eq8JWvCh>PEgU-!-maLH$#%4Wl!*E7174!Mn=E25$6FFQr+tsmcwg zvv%sq>#+7x<^BtI{WATt-L5dW+Os!#{kEmiX3D49yL*21arwUEVXWHs{@)IZJqu_> z69w}C+IdE{fFy#i2Kd_D4=^LT-=KcIba3J@bz_r$INDwTj)*A!?HNxT&75|9h<8$s)Op%b?U8__09`$Z zZ{V?cLv{&WLcw29MaPVwqc_QhQ$}<Vx_A>MYb~tp*}8H15{Kwxg8|KX z(rZ^uJ40;P2kk|HpQn}aN}9|O0ZY?K&~*id!5{UXmlwwy8XCt=?Y*8?Hc=a!29(a6 zGM-ltlp9+X#?IVYpVuxRa_xPkbI%nbH{=dp4FcOahg6(O=jleJVpuBazB%qZY(5C} z8Nt#!jXyz~Pe#xiPBHUcB4*Bm{#5{{pylrz1ve=?q1Q`q?KHjHL)W3$cj_^h%{h!I zw6VwBR!pK?dncKX9UmBBGBY&xU$?Mqf3)G`7<2A$YBx`5csL~rSRc0Aw#?+9x*9Zi zA5D}zF^_nIc`IkW>KTQWo)M$p#k=L57{ghsVny6}drm08bxW;WddvojA0jwA>|>B1 zM+@)x6!-0+CtEyyb~tOP4uV$rRgG}clp%2#Y5eB97w~Z~MSUhCm;HvP1~_s*F-P5E zv`?=Ufb^m3`cbg0v>*kD1lgncBQD6Fm-7Kr`~Vrh+aNOVBb?f+jL$bXC}4>y78@s-swbhNKg^uxP_cLI zXCE+Xm`W>Nz^qIF4xh^Oz0X}^02mu$nCC=*54@%hB!%}qv<##T1LCN15_bi1-#C1n z0}gEm;+J@{(*?1)I1Wv5qrmgwM83BT4t}9?`BHx!_@2)9!=i-uogj;qAD}6OMbo(o<5N>25Qi=J z6J024p+3Ss4_-}>WC75l$ro=j*qcwDMV3DBfpeNSn9MOO++AWX*TeogM2hN*Mp#(l zpy=={vYtt}^^DJk3>St8C+=i8=mY9kb!(y&`cKZlxRMabYhYb*L^i(a0UP#DIBqa~ ziFczc7m{pb6TB!boQOodUjckbvS}od82`GZU$1V|V~}b7V#H{E)CcDP&e|_x+rG2- zqGH9!{gXV?jluKxd<1~-PP~{ccUPAANChk?ZZlwJ80Y9g%s!PXfpfG?Z*Zh@Y_h5U z)1pZAqM4mWAg42sJeRLjmJ{k-+^TaN>YG>vPJc|gaPI9W%#R|n1MIJh+$ZipO1|Ke zg?LiAcyjZ2o$ENdk5Ru5)R{hV^*tn9VI?Z_Ccf23NdsLKbuT039RGFYP?f)2ZuIjGy#_>npxvlJ23n!$MN>joXkcp9zATYbZRJKrK0P zM|1USvNeHh(jCR=MY5lZd!7}QOR3BRt$9{*ibb%OXC9frVG4JlPo8w@hYzXk{;9@= zsqt*7QIFztSW@u>Z&PKwllb3OExt*UlS+99FEXfqJCi0Tw;eU^pMPQ`lMrG zTmC4Mo@Dr)KEp^iBkn^;)5nb2?-{XDp$)$>V(YAW9%X%XGY8W$hnq7;A?|EBnakTu z&sn4CH0jxQS(YwYi|?eDo3qSjv(^z*>j<*#K-oJ8Z+~)S@AFF?5}={xM;|Xq@=uvq zV&ov-Cc=onzoVDJgB6j5NqcUNU`P|`fyxE8h_cgLYktn9s1^(Vx$|WG+@}&h{jN6=BAG zBx3NHhkrR$W2r#Q+Hel5kV{keohiH$tRtmZVS=0}fdz=$GE@;!oZp4|t$+Gx9za7+ z+`Znd*fm)HNUW=0Q8PE=J)vmR=V%MhqDIT~c~uyj;iB>VqK{pc1jD??@JUYA+%W{O zT^>Y?W!!@)v0mwdimHe|>Oa=@dVeA0_NRyQwL{y!A+er%fm zu-yK^id5_BT;P4-B>u71p|-&AqS&s#cB0o=oUv{^QLoj!4i+It-b?4ssai=v(3-Zu zZ6QT%M9^|68QG=2z4r6nw$_KP`i3Bn(K~M6@=g<~I_9nhmc@YUG>s zsG9RanF&uy`3}+UEGpgkH?+vtsR_CHLy{&U`~rJlLA3ZAt4i;?xYbI{NH+NHQn#GrR+Al ztB%;9TaZ;5dxU$Fm*BPNqPXJUq(IH~yfsS+DebCxF7Y0U;5gxQJI3G{Z3!De5UfxZ zCq|Ss;EW!jlOb+)NiS81idJGOld)}9pzPHgm7vS)(~auBgo9OyGRk}Y3DIhQ@RqJW zZZ)sqZqDe}g)Xus=AL@)7sVQITIF;x7!Y(GaL?piXdO_TY4<(hIv^ShHux*oK9Rpo z8Wf$$p41!6SwuajHwY(I63N4jZ5x=<+=|%`{EV@(P#B`b@|2&awZRQLeOA zi008HnUnfHw>CW|%{&9GYKNv+Zr0|A+}-_Wu2sak~Cr8k4pK#Szx z7x{$YBF2cLd=rRjR}wbo ze~fW_l7Xe{B9Zz$mp=wGz$|lIJLNsO>QuKnOSz_RI)c^LTJ~l^I`{j^DZ|VxXkM6j zXl%T94CXd|bp)GXTWK8)ihW&}STkWkDtB#XZNUtEgXgn)^4QA0^}-9vrpd@!@0x?6 zqeacs3}6-pUKs$M&7}4A->m7bdZ7G;8#pYyw)q+jBD81fBmt1DvjAh(aWKVx`M~3% z{<@vsME*T1fxh)Vi`H^)lk!xn$7d^DX$^{H$;xbVM+`1+myk4f(^el=Tm&Hb+GrM6 zi|NFHWX~c)x`Ju3Ad|flYzU(@KKl^2tMZ=8oSZ^ix##UVyqd_S>bS0z56EDA4uHJ_ z$ffI6+QheC*747)9GiFN@3O7gGouH&cI{$*LNRCABh%R1C+YMiUDk{{*lFvCieaV! z?lB^Fh1hRzI_)@+vdQ`%*0!(MEAQvZZr-e|JYUyN=@Lvp8%& zJcGJmY`W3+iJ4%8#90fgBX?tk#i^(AR3{(xneq(2ctzLb?ATuAD4RIUa8XH>47RJ| z7V~@z?S5&h$k^o?x9X6K8fCuSWmc~V_yleIjG$G zP22}L+J;O0)0qlCI2pu0n~=0M4pnC8~NAo_Kw9c(o;^ex3mDnLdAu0rT5~!Dwig8?46P zAWyO2Z!y%S4$thQtU9EurW4HCXpf}6tdJYX0}Cm2&FasCvtQjkv-hS~-CNW1TU(b~ z)7_@G4d+{u`3LjU2b1{+-CJ9eJsThM4(2iGCnXpRZ4aAJ5yb)jkvWt8!%py@nX|0_ zzq;`yKtjFXU+_+$P?-*dEUPc?5}AO8TA zpkOzr(7=e;$Y`bTxX)41Uz6e!tkdICLbI|XLY&hIEWZ_%1m{9rk2+PJ`QIbU>}nd4 zn!H+l+x0t>y8~N#-G8bN3`!4&jX6$CPJK+Bn_pNosdZVYSktTD_%ySh%*AQ;70nvoQqen!shzL0O6kfnK|?;4;6K zhm<`KIh+=6h`Jj)o5>AxcQ9G%H~V3j63tjT&3jyiZ|cQm;B4krAd0mjZEp_m^QEF5 zR;ik$P>wGXLp^$Z89NHQj}`p!teie?GD2i+)Ix>&_$yGVA$`8VdK)o-ae->B1?hab zcLY!2f1Np(E8F>Z`7b~tl8em~Hk?@08*fPOE#IBYbp;^}7yueBfxQuAWG3W~PJ81i zykwAWylXFPcIR0QW2@U)Lz^fZnZj?UtA&|zV^*!!Gs82p-p|G+9d}PB*T);N^3h<{ zOAM0@XQ-;%4JsgNlR<#dW3dhw>fP>U(3oP_LNGQZ7KJfU5hoaz31JyCpHcA(eq^|M z0LNDqv$>zzA>ZQ;Oe392;mx9KZn#ENFMoZ`_ZmZR)rjT8d^e|Jed@kVr|^bAD?yXH zY5bkMZ~a@EVP?FwPwTkJv2pX1m6bLA`reGMrU|2Ey>F}HCz=bn!E`R zb7;x49La8=zZi|s1}t0pg`(GkfXNYV-A zTQ4iq6^%|zrWxtm;kjwq*nU~GAX2LVOC6uqS!of0F`K#eaH@W6cOX>?T}4Eq zwW_VRo>qf?G1|60`#vkQL!q^uw-u7Ep0wXyjl^_nOs}x@pwZj1O5i$=IQEZ77*zG) z;ze2YPn#-U{X|#(?eLR!;)Bx&Ya-JXEkk35(+FKqWNrVznPM!Q7##D>q}2brHu=A0 z&OGxrk4&eF|BVaevM_c_W|3p_PcBd}l9Ai`3huwTK#*<|$PV=XkvaccoBV$= z=cfHCuOoN;j`OoFIM)C0CPTCae==vVXGx;W-){ULFwk|S^xfZX{2wsTpUnAhH~#hM zt>qCpBy;}TjgRHheQoDT0sQU81CUL2hNFW-AXDMBzKgI%z0%qrT$@3e_!|7Om} z)a07vy1{?q%1Ctptc+|AX1b#{p&~4%zy%2?8`6!B%0qrh?s1{cQ*2P{LH?6DKTXUyYXhL$zc(z=q3WXlMpbF++gKpJoy($=8RWbCrOzA@g{$u zQ~EW;YEUe&Ff{Jga-C(jN=66q4}B(-#WkG#AbjsJ-ixx!{2SSdkCC?9F<31Z zzTM(nWWLOU2Esp~E@2yVRSnbonu4?oPebfE6*H`!FS1=CBjYI_m#$PutyIc@bRbw$ za`O$Gg{-CU4KR}~@8l5V^v%%0`Vp{ zhRwA7QsuQvEz`~$)J*spicIR*r9JS}TjeTTaxrPI(d~l zin&@&kbm1#eZpDqd*G|QF2|M%fz(9-5OGA88B>*n;bX;zZ>bV_g=Rlex$~*Ym*0Mc zaDfEBQYpx2sZFNO2j;&7aVd}J!4=(Mh}u=!9^NmjjNUceCFU}lMy{+Us5G|HRXT(| zw~yZiH4QRXeIiR(-7|8i9d)g8q0rH{b>9TcjM@LnWkfsm)N$;3c{|hhw03o7N3*8{ zu7>(jzJAwo-+mEY?Y*zC@$}y_=Re-$|Ee{3=thsJ38rOg$imHq#vW&zyK7uv`}ol7 ztOiw?DUgk(vM2`r(4%E$wgvC()*R|(6G>z{?d&hnS8IiiI~yx-Ji0TYRPgh&Kc zb3gDrMn}>x`JUwvYY4n{*#QznpnK*Wj8?6vsmR=EP7sGz+r9EJ7tlzL@aT|dxz-(D zHDXFhYqV9a%9umm=X>TEvnCD7s%6|2I`)_tKdns%o*HpHFChfmJB*ZW4)>pAsL z9c+ne4_@v9TgmNV8C(CEIh)>)!?Plvzw$hCM^=9JeWz>cv+?<7&~2lS50m2~X4~e4 zFkjD_!p_2~>#r;B*iTm|mk)>yTQ}TjKiS7GW4wNElcVu3?|6KOx5WKfqe}o#v|o-o zI$)MG;kU3EMThP;*o!i^X1l*=3x<`AHKd zi?>kWCEsqWcCI=bJXt~3a%kYUKV6S{S970u6pGro1dVtrUY(U=_xX9{@G-QR3eVGx z_H6!o{Jx|1s>bWyO9@yl+J@v?LD=_G49f2zMj$~d&BS{fi_l1Q()x~hDO5uU=o}zKzdj);pEHhy=L(!UtPs-3lll~`Wi?-T>UTVIkRL@)~ z0Z0(!6K)gahtfe}I!JsAnhy(KQdD^CeJ&I>fDnc**LzRp(=|j)T{dL-0&!peJ^%ym z+l|HdbGjqs=!_p{a$XTl{9jO{UPw02M=#|z!I&n#H=li1i@hEi#p;R?5K}||bU-XN ze~=Y$S|ms1WD-zvnBE4k^A511j)l|Djo#i z&<3dKDiK};IAR4a!Ud4U1?$jhzV#O|IQT-=1$-YS^D@ALLC%{x6KpXE#EJ`X{HnMX z#4mC1#Y#4`4%=@lkzX^_7rQ3ZTQ}4fUPS!h3khH77ppLv17UakFpR}8Yxl4?e4xie zu!wAUj5{bS41#y@)gBDb;#2bH1V-s{$Cm^$$wqu@atd_zCEgTRkO9gbL~IrUaRFQh zcu?Sq#PC4Ah$dZWY8ju8L6Ay(&T~-4FziuQam>wDn(sgAuuW!K$T+A$yhycs!VK(dc2`;}2io@k>a?xq)pg zco$2e!B$)(kY4ton4pKca5(qD;unjO_)j0joj>xseoT2P;o@sfL7q+Nz)FDs7}6@6 ziv1xqlpsOLoy&136~W~#VqG$qY#PpN(gieBy{tcEXCSdO4OnO8Ne)$cDMN|QkD=;~ z8|Ph!Ad@CxIzl1wT}~-@9|-_(Y$Q+$w{!;7__q@%a)X>D$uoPK6`Tqw-}+|`eN-q- zf`R^(IYFRM|C94ATcEUdR@;uRG`X(pK-Q0)EZN*oCe+zg!M4DF?9#$)#jBK)L+PC~ z&&wgXYXtqO{YL`1XMW_DQdw{~GEh(Ui~vbN(g-G91_3@7$yyG#1ObeeuH?p- zH>#P3Tc(Jgo;Pq4Mog$w^pHm>kWa0bPve55Z><`g38o4?gUw(4)5$*oD8=N| z2~}>I;0zocri#Dm%WJ8Z!qs^YtHR`%d5Xt8f&h4hHiU2WKe8Lc6o2xRGGB&w)r0*U zQEXVo=9Ql8!w^@|z_}c*86*(vyv$+pL@4v6B)lw1jvr1lSvx*L+>Q{wxtrM8vDBiu zB$*17ttSN`7UdTf6(MGQ4Jj)f_Bw-RU=Og`N{o(ND)YbARj_{Z%NYpX*C}sU=1rQT z&gZdS4+1vm0z2g;i~4afF#zkez=8CNE^8ZpOt|r3VM3G0CECjUxm=SwW<`0vJsIHT zV5QxRU2drGb~-T1mH zET4}kHG(dZhvFE4b>uC+0xGA1{*E*sqG#DX>AQQ$3mwx~SjOKs)+ zKEjvjWmR9!*Lcj?%qX18@VT9lzo?n9+e^GpuMO&k5re;FkcjW$x;1I8?ch4&k z`^34PI8#L5i&*oyd-uAYT2aKxt7kT`hk;3$2|}#tZD1o7VdZP&Bo^`T>fO9<6j<#Q z`Q0m~7(hYTx44}rb<&#b-Y09@C%?+~^B`Pll-EHYhKH(5&6YRm+KCK0Qb&mQV-fnD zyR#uOuYl!8D)#;ls|gW|^i~Eflg}WBHe|aBo?4_*=M(N~BG=EW+^yvUUYXoJqwF{* zy#Y*|K|;MA2CjZg+^*hi$3#D)Gub06xZ=GzAb)B}wnHhlTp^7^(bt37t308^!-YbU z;k?5citTeNL*IybVCsLWP7Rwt8>ZAy<}!_l7kGeSM~9mfx##w}0CC+qh@>T}eVxe& zIyPzT$lMf+zL17|blr#v!0%^8FPy-bu}k)(Hy0uk==c5T$_a4oWNe9e*Fi zIOg1F*P#InH?pi7Xl%h7ZqEaz-C!b?t!LksOJ#n-%XtJKJP8t(mo%8P_nw4T8jx$7 zq*|CnW#%Cwocatsh5f>ftOk_>Aq@q@p3v&f*&7b?zCio3n-1-ux{Q}j-gc_&-Z z7d4Fn#Pk-VN&1Y|KqZgjW8Y~|SJZhqN@4RTf(;kT%NHYskwac+Vuagb(3hCCD8i_q zRNgGUh`aIiENylrWhq&DUM}9CQ)LTt4NVRsmEP%^G}Wx}rcEas4}V+i;hwd3r!tJTb{D_^V)DA7Y|^JUW; zylNW>u-RYz?h9Gl664#I{2Do)3<2jd2Ah~Y64dM7q?&q4Cw|U3uB-EA3P8e z3ks$E8g3s!B5$LxrA(6g@7NT`-t*ny(;0Fp+|2##c=uN&`PiD68(JXUu{KIKkO?)AUl zC34x8P~APm+#WmJUGG70dfuHk?bkQivqT+XP=;J#a@SOEOyCApxYKP>U)tn@t{0#2+^NX3A$F$t7j$E+v_H zzqrqKh=sTR=y){Uy-N5B0@wKxWAu(Y#~s&*AGLKbcc7AR>+A%tL!_~Z@w9`ib|>%R z;l7HEj*{-4i30|eVSwr@jc1KZXBuO}Fx-lPTC01Z=x2lRM=O|TP)@rW?@ou6nfB~Y zv$rTzP0qTSPdAND8#2#!70=F58{>UXz@#V1zMC+9n}yt`R1bsz$Ad)?sb$h~)tU?B z&S6;559na`6^Y9mUp8!3D6B+y;_9P(>C3^qr6G~4^{NB?uFH9OofqY1=GRlXvjd>Y zMNHJ0&?C&!%c6De6{j)G<)^DQVNIHii|yRXuL?-9n#r{WRt9Z7 z!|3)S#bv<7O&uiy7|CIupA5F@3|7QpXWaL0b#sft?7S5dR?^{CstRUL1i)Z%+R^zOXYtTC;|SWxu6*Ykr>W_y4I?RWwnO5@DWe%+f_--)6=2FE@Mj_**D z8Klr~Tgo3o`@*D>vVCAXc}TtipMuJA4!2C$tI6)>uAaDaKsB$&lB6(Y6Qw#m8|^Ac z^=Q;7PVl`(hn!UySvG_6XM>}$i@4A;CzzVD0OP-#JJbOuhJO5d=Ok{%ui4JhQnRK*QKoJxDemx5!n?40)?Dv1tLRhhH4tuR%(&Km!8Y9Vnop%*Gr0 z%iqz-wdz}b%4=3bYj0ln7qV6g{F5)U7P_NXjA>VYM6dj)WNl<#ZM0kIMp@;=*&tD| zEb>`t@>%Km^IArm`E|MW`7wO}TX$y;6?!QV#KC z{9N=!ph6s9^p#r*R$3~LM0T*iTVtj@ZKsA387EOmNj^iu&Xbi1VgST3SmD*CZ}FnvOM%@&EffhuxpFx6Zuv2tlgoAu0=^XF>) zfSvQUg5wko>uRRw>}LAliQ`s&>VTZ{cH`nV+RTA2d+FucY6==UN)XEiq=h=gcEIuX zrkWKF%m(L2eTBJ^!F;^Uaq)7+aNy&HMe1PB3X5cy0(@WjQ&pjYe`AY=ACQL0j zGF~gxB`)DpbeLgEL|S@srqx&5+&s&I!Xm#C^KWHNG4@r}i4_L5b#mEWP0d-~+dDiO zf_fZV?K1lFzmI(EQ|%u2@0xi(sXRRIw5YVak{C0+S-iNh^DAk4ez5Vt_|*G&<}&sV z&t~Ly>Z$+t&-M4ec2#m&OkuLbIpJB~_4o|o_fXzm7)ynlqMIr%l;yKpk@9kw;#?I} zCN#_DD=x`X%ZRXWHbn8;(kM|eIBY3?n^9>6I}6XLLJ{7ePvu_)ZgI7!FHRKEhcc`! zp)pkEX|taV6LK%l3IRJA4rv=?bAL#;<>QpORc05+Lw6e@#j;>lxxLvMd$zBZ=JzS)rfYVn;%7d zBYP+F1I-tqpRQ_Z_R4Qc^09rs3@0XS26Q? zs%E{@){mX%J+1Mbhp5Dk9nYy)7oEt=qmITP#uf8E`wz!8?PsJ>>_5@&T`&7l@tES; z%)`j_fv{E)G<_72#B>8BLD0^l4|Su#v7AT{OeA~;pYw#sb(`HdkWMTI>a0eRtMh3& zs!~J2i>h{J;)i5?AGa||-8Z!v+vzzRMjzK~o_PvD)&I!s?f%KL@rPr1_!rN{+MfjA zXG?tcu>Ie9;(@ePeB0)Z5EJpgd*YDH{`iUCx8k3f{dnVX^-S>}74g3^d++60hVed^ zdJM4`&lHUazG z02ekiD#biRok58)y9;<-Xh|f?KRxkDdsamWgrAOoc{W_5d8m!^G~|CW`wu3_Fx!dL z5EHTLha7Yb%)dOFfsA~)zdiAISHa(dcz;>`EP>~2e|a|TA2EpSq6&!jOL!b6|7P~v zyC43*{2@K@TB<*py+n`F-<~+i(7>ObxDN=AnikR%hrs+(M$?TgONKkU2N24sbhWe>K>eZ$KHYd0n5k}&POAwcLiug3>zrIPm zCjUiTEFdF?!s-7e>p04iHt{~#>*KkKVO+5Y>$~xWq}cQZ@f{JkvO%{5@j#$h4mSL- zsstrAV)jZP`orX8#L-kP_PfO;rr{~R=|pUb5la~vf&S2Rl>};~LmVYfb)8a3W-t5O zO5qri**~EdaN1=meO{JG-or)|La|2lDHF;gtPhc5K2l35lSq5z0w_i^z$aRZl=y)_A#lFllcPXxofUsm`&MVm7ZuF%#*C*Su z0CRa7mNklkqte=;QP-{FuKv4ZCA*2j$_%%Y3u;NFy`lTc+LN0P%S)wWz;VbgLSFA~ z;VP%f(CJ-)6whwYDi@8#fJ7XVmc=)u9C?Xr5I0uZyL`~Uzxp^d@zE( zuDu;Y&ld`0fc~#QDThVJppi!<92luS`2It+n(6o0(D=nJ-w^Q(DvT3NlgYU(s#QwU zqlt6y`qdm6-g>VZmRZyrrN8;%?15ZM&FIl2RFp28^LvHPW^72as4}iTVwWitcTmqK zFhvJxk4^CXXb}!#I)@eKH&Q*6+Re$)z4+ySFaqZALV+4DZ}hIdWQ8v^B-@ zM}my(qo$t1f~cRG3+!&FNh??TvTJI-zA}Gc^$J!zcB>1TTlxSNZr4*49YPPIaWykX zf@j3e1%SFREwskoDF?l8omIoAB(bsP@?V&0g{}AiRyA7r5DbKaZ!pl0gnQK$U;0$f zO_*s2V->5l{4tJo*~!MP)RYMIjs)P_8ol7q8_;=6@wqva1QA&7wUj^pGhlko z`^Lzo?0W3n_xX8afeWhZdt`8cXbK{%F-s4Y@9Gy$;$b=WrcWd+pElInwp!Zx`fcL%{Le=t)<#Sl2Sk83?{Q>j8#5Oev32R=lE`K4AVX-b<+ZwGy-_cfM^aFc&3F3IoVKQ2{46piOAf zFlArjaGQKNx^N%F(yUQ0ZQI=~eJdB50btws%_qKw>oU_1Fvar`f=O?9gUEMQX1s6y z+1){LAUmUi<&x9hZ_J4CJx*I}Q8N<8)8@I;Ll&LyJ!O~oc6rt09 zLZeSZgF=z&dcv3Lpzm*dfmFt!4j|fa4uCIQ1R2`nN(T(XMZnWS4ixUB*fY+-vuasVP|*r_0`~>P?L#OV{Ll#0)0LkKu2c>>^cYs zhDAQ4eCg+tWY$4?m+SPc*L!au;P^hu06si5?8}_2q_rwzH>LycJX#^A53XZiEqn|< zdCcAYmtCvqh+Sol{+I%2e{J^=+>5Ao*cj%)>`HV1z^34#Sx3lwF+0%1-6vLQ&PJF$u)jz11gI7sfPj{ z;36QShS`Gz4H!3x1yC-uYZ_HBtt=2n&WDgK>L?{%}%$hoy!iB=ZD`pijbPVgX$U(wb${ zaBq^s$e|b{;qq&v>}L{lhr}F1M3Z!ZwlfLk&0;mhqCF)%W&9Z+%?xm2SOk1V%TRjT zqv)!;?*VUWcd3|5F<&#ZKhZ_z&``Pu4VuLqXlh8_Tq{eC9oN?_t5nm9Ng8K8Ts{)! zjSyFMA@;}MZ=eHu`Q(1C`pN8UuH?oZYiF9A^uCW2gD4O0Kjajl=OXG!FXH(?GJ6>ehCnQN8E%if>aTf(%ko2WdEcdS$e*%cx$=L^8qgpr zpr!qn%$`fHfXCW7iXQ;)Sda@c5;~IOd@RT+^pH4`mC`GWa4D4ie<*v)pg6l`ZF>fH zcefzH-5r8^gy2aCf#4F{-Q9x>?(Xiv-QC^YnQzGb+!I%E~up`x-jmuV+8O08VIg+_sd+;eeM$IZj(jaCR8V6i`UznL35<*o+XlKjqrM z82!qz`}s4Mq~DnIJokII`lnrx-GZc8L28qCo>Oo{JfR`ZW}e5wd%IafKO&96eJ;b~ ze1wL4t<8LAqI?zU{OAR-*q=raaYZKAUduozyS^ZSIvIE=d@2hJU?_}~EIj>MSdw2D ziyij~S_FSAxB#ihpEHFDCJEdSROFXcL>UVdlm)gD@uwzh;7$lrw1<+jCG|84%zvie zl@%U(D6Z5nM)1X+ybS+w?>18?5b`HA!RW_mS4p>H(dt`)gMx@gDJ43gT^n1Q@}@Y{k$`Ww5?lUGU{G8bvs4koj5}Ju6{N~$zX}nx%5dtyI`sg?!Ah5IkS$b| zzeW+cD&rDT8P9KiK4PT%ShKvUnA^NEabkX|LzJSfDrv`Z1($cY0@_8F5!e(!4TT!2 zh8lgYYAaP;$K4v|4>e%-$Sgtm+9&v0leMg$A)W`uNa7E*P&jq(p#<%S#Uv-PowOxg z7wb5$oIHu8RS)!i9;Jpj4FZs*wHxcz>@35H8=?gpVu|@EJ~fCBsVq4;##Mf zN)q8WrYx9bn}&m28YASXaB~~0`x`krSWAmidWpPM*qflcb06;z>XF3|=c7F4n{K}4 zwI3#SE{X`o7j(EZZ)n&Lm^KeB3Trs9k2AIe&#Mb)w-iAageJEvm{>*btZ8x5mkpUJxg*yl>N#hL{m2hBdZ9$2#6|z(TpUzJv(QCl&aP zwZSq8C)RN+G`53RC!H>BI36j((A!t7nbs-={_YeuM{ll(NqPqNUndD&w?^5R;1tD&a=LJL-?PY}#mS&Q=sTFjXmu94H*>=&MS3do*C- zV+X0_SBLU~E0I`;xCa}C0L6vOZ76&lI;>qwyzAO<_P0N8*z5LMsKm%~8enG?d0nRkx6X%~VusDm>b638c9!7wQbrmoM~*`4PK0=Smf*YvN3T!@ z=3}ykyhd%I+bh<99}Y&XIa4h^xU?#cQ7plqd*&jRjO}TrMe}rHkn#}@mE!1*yHWqa z4ExhwIBs*9@oQ_G2yVhLD_v2jgjR_cAK8`hnCF=e5nX9Og9(X~v|o&gmNkr#VHqSy zI!;hE$*qgPDm*oMGfAy95#l*zNdR8#*nx!;)@!CtYqd=4EKln_PaBZV zd=;Jn8|uy&xy?k|I?(&f(C^log)wR#*w{YKoC-Nvjl&+NO#gVx;-ov>IB5K|j)Xi0 z&@umJLo~;$G;&@vaO zGUjb-l@S5j*Xb>W}NbM!AiNSIXYsyC%%Mgr2sBQo7z~zR^v$ zv7)rbth~W-(#{pWG4vHdKpFI=R1Jc(A#&d|szMSjoqAik36S5q5p$Ih*^)t9E47VbC6cfW`(?XjXj7*Y-L-H_lWcqXc-x3`N7f#N-&TzJ1x0johrDY?B5TLg zV)@s~PND&)&C51l^scM&F13i0CEBjj%FgB4id))BpYSkGrc2ElLbwGru{&F)cW0kD zc7ie)7vgHm7;H=_@pR?3HpW34`>LEWTrQca1Q%zKg&B7T=hM)Edm7Bs(mvS1eL%_J zpk8D%%6%JC@30N+sK<1_hFLU@ET(`(?d}V}_{mO3{ph-~3!E{EuLtvWK2MVkc32r> zQ2Enx_(8F&>hefGvgGk6juTpzH-6zT>u9TT;U~}2^j+@k2~0<{Gbh>MryEpUvh8~v zrLd~<#GrV`Cw9QIJ3F)rG40l=borUs2s2{bF(28XD&QQzdaPZ3R)xWi9C6lo3`;(` z8|is2$a0RYLXO&ciV4PgO54{dKSoPG?M9P4V}LVLHLF%jmJ(-&2Q$o^APBTw3SoCY zjSp{rRgsLiBD6eLF2BNU%a=rdTfufU3Nwm{V^QO^_YQOo-G23h8xt&mexsCjbO#0J zJaX}e^Id;btm`^a6fL;)=7%LLvH~1!I<@@?0=)id1=|Jd=^aiP zv+oK_*6I}t`Qrz*2eb0Ca&H83%f~Dc81mIcG&RcV^b%vXv-I-4hVYxfmj~wbN1u_$ zlTl+&SEm z(8E+@Iibvi#Q-eo;9~($f#q(;;w$Qq5L)j=5wIxw0gDD2SYC2UQ^W^JegPxnjBG#_ z?8{r@*0)S6D^gG!QXA{G8|#prJbd*vRA1}y-ifhfxLXDxm9Fe8g6>L?q%77TA@9is zcx0WAb46UE;8VwUN9#2f_tQnUl}%DE(HeZJlMQdM27wO*lY#_ax+DrqCAz(V?bR|D z)}n8_On$C0@T|d-RyFsCesG~nWt=uSDz^N_dxfR+36i=f(5#5F}J^@u8qo z6tY-Y_CC?_7{t8Qk9#`++5OmWOHaREf;pve(8|T4w{u=b zZ+$}TWq}cTK+P%2WG%w+8j5guL3TYn&MaK+HqIMm*5Of(B37QFHdLitd}c_J6%TN< zLC&(x6!XLv^MpG2OwE}OEy>36vOa6UuC9movaxZn{0P0tN|1F@1jQz2$)>)-rmoD| zBFgsY%`O5w9k#hRpLpEzW*N*p9)>zy`5Ug-Fy;PF`5*cJYT570`VY=tEV5XuY!-sE z&-vQ6b`Yx&?mxPhQ9Fd@IC*B~@)EuncX@F&BD!Zw zpWeRyFWtIB232N7W0CP4(>}BFNfZ8aODq0M`WvBZTO%q{TU`h0d+Vo4=hHi($CXY; z_tLj#&m_;b*kcRT&in5vhj=0k#MukUf|KgT(jNQ={n8giKfbE zQ7EWPl=GO>d$9dDVJI8lFEJo>ZBEw>=g< zux@}CupAy|4>b7e2v}{}<}bXM;I-IdJ0DJ(QUk%+XB@Yp5{s8?*QJX7SP{a%nw$8n z+nd(hbbA_sq}oQR@N@^P8H!NxAag6eIq85{`GS$2fN+`}qh)QvV2#I?U41tgJXwAC zTU;w7?_-9(UK|Xfjx{H=aE^6H+_%6CS$y>ba0UzU$n=cAqaXcOWtx@mUxP3!^WO)M zu^_Alm`HV^g|=6CQ(K<^eE)13SLi$J|HNxONntU&vTt5S2WKnp>s+C>rl%)Us>@N#4sWUM)|*1zRs#1c?ZOk{^x(K zeCf@|gr9gi-)8^QvajZV*qRe&zzM1OJM>9*`i=QBhrUC9#n~TN`H8t|^Cy1)YvqgC zOo=sjgZS6VH&nl;5Y$cd{XE0~W%DYZ4@EZU6=zRqs0`yAfx&Cb{;hzOy!rpxvVTIEk$M(Nx2Z!v>b$^db=90Fayws~Ssj=T z;Lg*`+-e8HU4ho$L+4q|WVumZWz0`4NHqe+gIO*OTusTPnFrK#f^#g1-pI+w5Gg<; z2hTE!0(s8+@fbaGBrs#xKDFe7@1w3{E+2QcQXNRhYx^qCWoe&x08Rr$gd5KFYgH}5 z`CSGQn+K%)kEir@y09?1@Z<1LdfdY4(n>C4J=8-Q?YA?Pw9&;zN~RPQg)_AmYOZ(4 zQQEr);w#d_Y5@jRy0>pTGN&okzKcS6IY3hJ>qJ<6H$B|4pvKVG zN#WWaHWpIASH(@D#k)UzBNgEeLz~)#U+{&|D)Wq*8SD~e`y@m(Lnt;>X$}cWQKrXu zQ$oMh3Lp;{WO9Uk3MtJ_lN@BIwGpilLS>859FjaKkQhq&Qf*I|bNiLkFZBS1WA*(A zVy>+c;hdom_|xd2=5M{{P<=7hh%rAn#?0+vqii6kD*eqxCg#z0;u}u^#6&JHMpO>W z6d9Q0m#S27Lap|SuX9`04H3JFuAbzi*>rKMMd2*mp{6AM$Qx~M&RWyMlZ%G0hGNXW zP}uhLWa`UxWIH&0KAL^Q)@=KI-RZ);cLbw?7ag!>WKbl$Ho*g#Dcj(2Z#ibNYLZ+! zG`D=e_Z!yE;nQ;Yn;eW~b6tCK6wJUJ2lMq~boo7()f=N8D3UYF8MqX5*xeH+;V7#; z7FQfp-jfbYOzYKTL2O)0<~G8#^Km_rO;Y^hUUE#E2;}-L8VjC*Pa_xcO;6iw5e-8> zlrNJPpLY008%7*PF4G>LcE!*e#{!hEGFi3yF*uyR!Xu%{?$WKwJ21xfSeXc?3LX6H zvBAYT1Me4o(=GNnTkMc${%z{fQl!&bdA9}~QKij&{8NTuad!PCzte5VD$OPRFkC~@ zlq*SNr%9227)FOve69f3#1?i{?NfR%@~EO08Nuq^XV#4tTTrv~X{l3BX2YcdJjb5& z;QcuA%()(?+cv6)@w8;@nUn3axEeX{Jap`J3n%7#bB|H|^gPC#QwNpd*l9+EsbW14h;pz$ZQqFAYloB=&?1@d4oz#g=EK zz{mtZ2&x@d42Yu&q`>fk%`H=Qw%u}}2H zPZ~BKh_C6*VeHMN>2nS3jkD)LtqByS_aOlImQH)C&;VcZfHaQ25XFE9!#G_hi%}i9_Wq7=5J`M0L~M@9P`6&2b$giaSebNcmAZ? z9>&H2rkX(f_5f;WPi!`zLtub~Y@qU%-Se&oAs|p)7KjJ(3!Re+oFzGv^dv9uey+-ar#}J@;>itRBfPDzk&F=(B#QetQ!j}6&ri{a8@1)j$ z5ud>d{;Fq)MSxnF3x`bvR?hj5ScPsnN}qBI*3>i5Y66MZ!k6=XeiHcOmIq%aO5bn` zb`$vHuSJaVc@yyk#c4)r_}NuT`bP8l4fjQ!B7_Um2e#2i(RJHBfM6FK1YQCHW%|O1 z5TV%af(XXEDDEXdnXr+bv=y8I^b9_SeUZeT!5B#q>_HOsJZk;`K|ZIb$Hb`P`jB%+ z@7Vf4aTAI3A8d?3L1TKqr@8Rdx!6ZXpcr8sITsAYw6W%;fX-Yj82UaG;1m#x5YNCB zH~Q7-dxIa4!N*zCOR+y5b3gu#ud9i_OJSsdjw4X1AqKWDij+Ulbw0uHvtt-xVnG#< zoi9Y55Q6HDhi*vx!jQmcD{gehAOAT)V=iJMki`rkE?G{z{FYVfIw@5$)XxdnWSoq% z7FRGYo+5{C;Uj>u7xYDw%`rc*u0gzEUZ4OwIfySLi9ZFmI+^`a5EJ0nALL!xpE8V? z_?=UzZ$FyNBo&J${^gsOPC?)bzqq@cC}w-?c0*F|jcCh#Bz=9_4r0RfwXE}Rm?)F=hwNIdktxxBxTBlL|AP)zqk`g|+vM$6 zd}jrty3fRoAkt)cUV66^x=iY1ISE=@jk`zI|t?m3wTR>tL7Ztr}io9d3psa~G{=>#XRc9_%on2;Y$B{*dQMlD>mw2tvmtTj2D4 zQ4Mx+eK1G%gAj#*FHvA}-`lTUZ$ZS|!lQ3}I{8bcf>VFdLZ-xoS{owB`%7p)rhL_q z9Jv8(fy@AVG)`=`vrIX%HrvFj zR_RfIID`cs6oZUdSE-Rn`v7OBU029ix;Ig?@KEb&DzH{7*FTk6p5;GW3A9hD3UU$H za?rE-skDnHNU`=i#T!VpR=%y(;JcM8Q(?A^FDM-nfc6*%p~e_S<>|8t&J+3LJ~jqx z=X?U08?aebVmHPH)z>fbyBCSpn0mViHfMiRg?%4DM-LomYF;O5(TvS?5NjdHZki2g zQOj;Y=xssZ%Ep0jCC|@+l4)h?llS&)&8{&xLM~2tXjREBxM-4$)oN4j&bUKvdt7XL zd29oav_lEC!|1fbxwa!TyD9RvAU2C4GZlheX4}DCg`$$hSWBW;{H7?b9XBzxmOL0F z#iA&SRq&Xd7g@zE&NZ~n!i1(Jn9ZF`ObJ;#KxKHy+*j8LSF!5`swgqBOQz#taMzfR zbN8CbCM8r1T{qfJr?yzI8K_&bxXTvgpabX`>FPE#$oQ)-Mp*GjS>F+}wUHywi zLpdojBd&fRl3`e$;i)6xWY^*4nBj$H;iaYF1?b^56wxf9ksa3&Na6pWdE{tmjc@h*;q=}FFAmt-_RH> zWBqeAjENawhH0FI5$3A{)+h}u5vc(45H5qK6D!F?j8CU|^BBDn9|u#9|MWz}=1?Qv3fBvupga0mZfFfwqTkv)7xj=S_xh#$p^< zvKJ`A?9{qgNwNQxY%fk3FG6I0Mtwgtb>}zPKFEDDRhhR3>L7z z|4=&lVe=F51~-{kA7$t9@<|e6vS~WtWb=iaD&u$;?a1rv$qLyCbm8%~2uOd}>>(>Xb0>CBVR@AcB_JKv$2fVRmRJJ<97~Q;j zh9OWnN1^_sdfcx`Unfg0I_P{0YafC7B5^B4$Z5ffW3qayMh%}Daf{h@$EtGm zwMznB#=blQfO~q8FA6C1xFsHiDLH*G=)Ct}d!)BSEJ-K!VTCCHKm723X#=0~joh69 zpWf@^n6o_=TGAd@KGv#m=Cd-kupay_yW#S=$w0qjC4biTF)wF(lDB-W^myt|f84fw zi8$@72g71QKVK-rG>ukCQ@)ImvE6z-?XF@BMPNK!JUVSBO{QO|>Ob$PoNTF_43Axa zliP0Oa8Lq8A68#r0!1$~S?~R?j}siof!KFb+s85n_r5G_i{W=QX{=%7%+lnr9{SX% zUU#&aGfC+8S#8JZtE}hB;8wCzcj?bxCMcFhVD-rJIMW~XEW--{9D3>0O!^3VqGt>$ zV+5TWjh`JAJ;3)i*N>_QdgvtkD{zp@>SM{;-jo&k93}VrOM0i{FBjJquw5%ah;;zh z<1SSs9ZdP9Q5K>S1(cHnK(I{+36cS54VNRlJ{n8@IQDuI1bbm_&|On`*)a?MdZGMs zkoxsL2=`d+pBE!|VjwqxS}Se)$)F?e_QUd1w7c9rFvHrNkHL+Gfv( z<-v(_FQJTo;$qJy{Mk-}IY4ADGo4qb%P@Zh%X*X3iIYu4WN#RQ_gBp8()Z%|h0W`; zvbis?#~oejvvN|>kC9K!!fmw7^?eirl09BYmiOV&**r{7$6#Q^XI|xi9MV_0I{qgV z#hqovpH0UIhvS?V<%Ap-)6p43ITu$sW<_y{IQP5_czq!F|5XmiIXTi)NAhKfisPTq zyS-TFlA_K4%Q~GMvKBE|dC6G^F<2KVSa2?xt@Wt}4OqLuERfar!lF;c>Q~O(4Q3vs zU^(X4llVWy3wW?6z}v^y&p#kA2ml2P3y+A5ihv4^i%$p)jsBeij7Y=LIVmkW(f7<(pGr9-UI!5Zo#=EEbdK%{! z#=|C;3ub0FS{8HXcBc3C*AEkqo6agOF0anEst@i8A0D3%;*j|)C^|mCq5rAE4@&P; z0BiBP(woi;2Ky7pHwH$fvV@Z&N*BX&WP_r9(K#(?k+Z+8l4)B4wu>(V6r$6+i`K;Yx?H^4wiBbWZ%C%w% z%&cKor?Y~Qv;w`CJg1V;@f0;=Sm7eOAG4ruU_a(X>*JU@=^ef5rn=Kr2semax%t&o zH-=Gvq`3jYs?SnL|Ldtc2bn<_X@Q6kYh4ge-PY#&%W+f;f_8T?FSO^WIuCMH5toPO znbClV(HFOutGit?&pljY3g?HKSuzpCw}Aj3q}p2wVN`k9FTQx48ejb3?e{VqU=8Xi zgeZgg0K#vA12co@N@FsESt{o?0=Q;0Q$yj}eX_!tcIrpMcl!7|BQ_A^vcqI)?}@?e zig@0hp|Hi5G$CpmhVzsf$(lKQpMy2qo*YLQKMp%q{=m{V+qG zGTBWPJjQ=E?CR+=RI94%Xc5zr0m27W5be)+Pv(T;vltbP!25tyQ6(F zoo*BclwqW>{0EdopHMBD5CjzYu&7W8C_r)K+uFHzg{if3-?CDF?u(~5YwdnAajT?s z!T2f*lI`)gIjY1TK+4}0+mxX~W! zCZwT#rkd?Lu|f)JPmq97Xx~Vr4##&gmkrH9`n)6dUidF5)=lI+OrZm%@1`#XWS&v3 zRD?WI%E!1iHL3?iJYu+nB|ec{^$>VmhfOWN6RxhG-8&keRtc%PnlaNG<{JMNz+5~3 zGotu<-gxoJ#8~%-`OOdes^c0_%NV!)Wz8}e$2HP0U4{jRy5-PyM+ZjU3LoqjjLm@G zJoOv9QWjj&vE*I9He7rr8dj0QSe*8g16TwkiA+~)drMtJoK_hMEPfv4F@_25-;bTl z9yN8LKAzNS`w8yM?=am$utEQ75L2ICu|fZ%LA+vvzz}ZGX!A6A(myi@udMpN+#tvd z!W4GMUlHQp8H9EyiBm?n|8Ro@&LEz;6t@`k|FG(ZKybW$9XqMMKS?1o2!FXjXTEd9 zFpwF9zpQ#TE(+LhuQLc|{(M907gu?IXAs0tGGQt4n;T>00%c!4bpxfSpu(NPep6!S zy?W|a_>hN^Ak5-QOX$3c5LpE9vb^Qy6&kuzlLUV~b*)`nWBivyzCmi;YqC^Me>DgZ ze{>St*moIJ-6fn4=aGSmG*l`TLNW*&(nu0>ayYLe2sU9Xh}i;$FgTKW7hs48@f{WZ zd)2Hp7Ja5-&f8B;67S-%jPu^ZF#eDm)RH*+6*Q;Cg#Beu@8KfhS%I30<_9wr;4-mK zG56WGAQ+WUBWVmGLUi;FX*cHsCSSQhge^ZWpn#-nxv$(H!S9uSxj_Z+eZL^wptGx3 z>J7P3=iHdso1r|BoP8zhqsw%_2Pzg*yfJU0EC1*0UUB?^F+2-pO4P7?Dd|8V9mT6m zf*ON!rl|37XRg4?r+ir%t**%Et898{N-Fh%iTLm_43@A0MQ-}Qq<>KL$_@jQX%AO< zVyK0x0rFFsMA!MUN`>kP15>$LQJNh#h3~BkJA2(!u@%9|g&)7k7yEG;78ywI!uyH~z}_R`a$$^I@iOM z_}=mxL6OFLcA+*tpPQIw*LHEGl%vu!CJMq0>L2;3T;Hu^K?Qv%u=Vz~!NsujFc@+9 zppw0=l+!Z^#bEiw8?&jxmR7e#VTDHiQzegrm;G)`??oei;Ggf>6hM$C49P~z-SHQ* z;XC>D0`@jQ?iZ5nzzSa$s&<50DldKhm>$}@4nCnDV6SInOnAw=PA0o;UxsE36c+;j zyQOkdrl)nRAF5qccz>YK3^wor*fOA7{6c;dcMy#)G1qqPA#7F?y%0Dr0f`nv4|h2Vm^7B`Su#1LW%m4S2o;b}1TRhBpiui=2B; z4((8tH4IzDuQ_fi?!rgck2sE0rQHtgiag$rdZJZ>;Fb0yh#$rRm8&!HhxgtIK8%~= zF*{Hyne6`x5-usR%Mlk}FkEhTA74 zEt}anLJ)AWUM$ru$9Mie+l;6k5{FwbfB7`doXlJ~eZxQHsUmi`es|g8kZ}6Tqc#w@ z$D6Q=dgh7jIZ2z9X0lF zNn2)dDD7=Iv7Z%Kxz)L8nRLqXjjUchcijgADGbi6$g;gLR(I5z0?tkBS+=^E?)x1Y zF5-JResQ83eUmYsNI9+KlvLR8W0G)0C7@Hg6BQL#=d6kcrw1a)LPa?oqInKvHMtJv! zuk45KK4S=R6po5_AK%$y`Z+ji^!X?UB8CSjeMaz+r$b7Fm%>!_|9%8zfnGr2oRt_6JXotFK!qB(M<4Efq0QX=R_%mc%=X4g24?aFlSe{Z zTEXQeN=hZ7kb3%EVFRBx{fXEDE9gV`twIEFe9~!vMu`yOPsqp}%%4O_`g$2GP-yyG z=m=l16h>I+hcK*2V0mI#76fHU*JBSc{9SC&NjD3fw@j@MfzaOhq00i-c&i4V|^DBI8 z5dF>egfh~k)ofO`9(V1oEsE|(YV2qgYsoUxdnh=KTH@%H^dY(Rpw(+3vFA0B$( zFTx;&qy(e8K+1k_q-TSUjR~i9obQ=N7kRKqz4(Zu{@0`*)d1 zUUK6hL&m@D6Mv`PCmr^ujRk0~CApnz_`3up{rT)qRGu8zka8Q8eodEjev90a5A0_M zF-D9*7l?^<1R)Fv5cPsu2x4j(LR0%w@EYIUs3YBf7RQ9NkkzxqI06p{GrvrEPJ9*% z=gR=f1()uFGrv`PP~!lH=y`F2v-q7o>9zuKJlWxpvc-u~h+v?~>6r+FvcJ+~V>bXZ z5OSQevzWWH%4LDljR2LOIr_ditah0MRzQaR5CdoFLwtTRPk_BIfGjc>^^MmmoAz6* zEE@r3LII0RBl?x3Jog&VfDd~GOumDk4H_Px!Z**KNa>C7m#}gLkA-~vX$MKVf*AP% z6zL>Mdeok7tYjj!K25r?O~p!#LfC1ax4f9MFqrudDiU)Al0fB*v%&|MZ;S~@wOT4t z#sy8uY9I2m+XjlV1d5scf*XGp*J-K6fr`5aiiZ!1&$7P*DN9abLp~an+;#_yfJ*j! zi{I{mOE!E<<|#^-vi)BSOBZ2E`U^`JU>v{gmqO+auC&T-oXhT#%N`obo)#egLM#Ii zmqQ^ZSx^>ZR0BQu%W-3wLjf*K-Jy|t2}sD|#|`>$zs1h^gAMpAP~TTXdr1%$Rgesd zwe6?%IE$ktLw>)?skO!46tRUCiYY$CG5;2O^V2kYEZ6b?*ghr>Hc7x$tzvPh;yXk@ z@}!)^N+Y5pxGZ;8i;#5W@0+R$A zPpWb~H-U&CfHjfCdx4me!^R`(T+#P+rbSKX*bwjAxa`EHc5RXJLr->75e(B*rT+Rb z)8<}Ak$weh>RY5iL6H=vIwhx?%EZLUCXt*&q}kt?vO#epgV8I*jT6MJtJL}XT?VI- zEvvRknkJleA#ufrt%sZjw24Jmhr;MubU^1+Z0EWsQ!%+=YBmNli1~ytS}w!9d`P=;5Z7BPCcH&wSlHh+nUtMRwyU1Khu$D z;X=WiX1iPJE(eZK-10VF62%YiO2-$vVB~=kLf!Z&MPjvG8S!Fc#6dVi-AYH@VmDam zTs^`jJ$F@x_{d_R3P9YWp2L_f)~g6A(?3@}f6SWYQy%_Q;S|}R^wMefX5v6t_40Pj zy`Zf>?oV=VBz*~6MZPKWUtIrd27#npouEG<+tFX9KhCiK$g4kg$}c5F*8Q>H9A_Z2 z`CYcoz}NSRM4qyLm>RqRd918K>7mr3QB0Ud@Pag^ZTf{G)q+r9u;ZrRj z0|<{K{Df5lsLzeJOxWm~zpz`x(3yv+@X&%%#o;8PR1HOjlaw`i7Ud^Jro~dW zeD1MEMNZS19lV;fISz1E67_T#@F)@Y7M>&Ut@jrOOOy-I1i4A1EzZ&UHb(yAsf(I? z>NvmU8k?-7A+|g(c{LAW7H3*7&mt95L(v>kXUIbpn>Mp3Ij&tm`P`1b_;|UnRyk42 zEWG;Ua^AFfRyFkKG~C|O)S_grr7_XdGK}|eys~y_-DhzfW%<-}1eqCeYFYR|ae7`@ zl&x@aIaM?Vd1ZZgkxh4{Zg_bwY@w=UMY3q+qCnq zv92I--#l2C`{j2&jqV!3Wj?ffA<~MlgV6M4$*S`cd-RMPy1OtZs-O4R%&|BCyVHws zMA`pIK(|kg`b5YsR3VY5jA2EeB13`68@$0v<{eML@29&dR5xScg}`6B$=5d<;5jF@ zver^Q7pJ|&lZFyqvUOpKhR`0OyrQomBHFIA4dLr+o(MNIZ)3R6t{-eqJz!|FY%ObT zpS@ksBU^^Z57VhJ7J92zWV>r!QFbEY=I*J<^`J$B<4UpZ+x z+UnJ}zW|`O17_ThQN)g?^yU}zz{hhI#|tbgaVJYQ?~iX&k9UMma=)ECq#mOvWNx7$ zBDVwd(wgthIj{7#Q4v-rVor}=Q1~fDI00MdWQgWkG6)oIKz0M8adec`Gu6v8nhY*1 zQ3#ga%76urKy*5(>ij4f5m$v7zl>jQ^XZ7g!nUBs@%pd zMK08q%gZ2nU6gTUPjbr`hOcQP<5-;f1x}m0-+`t~HwT z=#?w^t+}O;T^sG^h+7YG@NM7Zt-A_aFza;yxsZe99TEDS(Fk^|%8dxQ;7^S^qp9=Q zRh|@m-Zb>P->Y{v=Xa6hrdn6r3HtZI@N*UH2R(iCT+6He$p-<}$LNU5dh*8_QM_V( zslpTid&&t#iKkO{{_oyTFJezr%otkLPXp;s1C~$C=zKpf@~6-RddZ(>N1p?co}bJ( za|c!%t!NAPkc%Q-3hxG+A`p(qDPh)L=(1iSt*WUcz{%b>sh;4AGBB^f`VN;e{29kBS+!1|}~BC&XbcSYFRrf*rPwI&BDVuzd9ty> zBGM)=j?6hQBA++-nZ%1)G#xQ=4Jh1+r>=%XHb(u}wlKa1^n$vGih=UNdhzq527PwW|6QN$}IbPr}_5g6v1zntQUpN8(l!Q z;=v-~8UOqVvR@vy(U91>Z8|32JW#PBNJLl9i6Vv1lF7N?KCL2z_masWpAu$Zz8)U2 zL?PFVz(J6mXRQ6y@i?klR3Gv6k;^!t7g{(kK(2_9FG|2W;`w95GetUB;3N8LkZgzN z4|xag#gBppF;XD@@0%f~wqa|IM^V*gUtWM~j*0eoZy|U52?tIck1#j7NZA2vuOC1O zjr95f#2n6@h>#CJT)P-;e@aU4DDWXn(72qlyib<&>ha)){QO=Y`zVpd{jjk*m3*<*10!Dd5P6=zp@%j}?JeEM7av%<|B6xWd zLcY#GERF(YKy2lz@E9dwb6^sGk0sP`W24s~0IC3rh zdia|;y=VaeAeqXg3#v#e7*Cm)Rm9f=E3f~_+-3ZI9S#Hr&_OY9fGass zO3L`!^aTYcAK1h1ov~0EKwuCyqjW6PgTA1AI#k=~Ly{OWBv~4B7xf$JftnW^jI)jP zmV5N_>*XUP!?SwXMt+9@yupUPk+0y*UA=@pem(>}K8jwmtzOPPgI}yHFEb|Zghj`O zSb4%$FE>^%YA0`nBM8aL1R5=80O*&slXtaQuS>XXfjNEWBf6EaB^V9fk$Ls<2HgrK zxGhsf-b6-O2-7$V6o9dX&Fo^72VVX!YVuSoF4Z z@)CE)(~tVxq;(%+uVcl3yCna&g5(1Q1$8Ehq;_mzD1EwrqIhJ!ZgFX) zEp&Eyqi`)}YPWp<;Hdtj@9g+hK^i)|%esl)c`_u0COC_3`vUt&Y8J1$F6NCYhZ;&R zPu`=7OsMDk&Vr~r%um4P5dn*UIr2rUkIe|=DBL^iF-olU(RLGpeGI_jyg z0Izy~Fdfp+2{x-3534yoQ8eKnl|VhZrd#h!c^cTR;iWO?!Gz}>d2r-d^@zkbt=37v z`cdsHIyn@2ySgi$s8YmLB0#YJr|iRE8i~unQ9_;VAy57Pvx2lYPe{<7=H}&jxQM?8 zXnXd&f7%$#i%@BEfhb50Qy|5201gVi8EtI`p;;bZQ@QOh7D@Vyt zIfa8GpwITUVk+5fG^r5o?pF9etY~`1t{CpG$C1b-dB$mSAm%cuXKv*LsN{UsHq=?! zF|sh3`253$O39=z89gltH64j)OwrtPVKa3l+{y1n(2|r2B0g#yaIyi*52DN7RSm@|D#IokSNS7Fd}*xYd|TRlfb%WTA@`!)R z!R0-Hi}5`d_9zPt3MNN{dB_FY3oNv}v1$W|LCv50-e?DN{AsNhV(BN{ZT|RAY1Q{=eJ;}GZI)7es0J|07ARd12*w_;V%yx^MYPq(qxeR_hV$;$eo<{I<5 zF%SibC1d!iRAaCSZ`LQRhK=^)u!!@T&zPz_h`+mp`pWqv zhu6*deeUH*!$6ylQuA3pzHhB=J#xC!aIULjmTScStswpDJaP2b?bx!7lkrlNOZ1t|F|9h9bK%r3?r)nq%;ylr7q!|%gww1#cAUDMHFcF`wAoV)NV#Hys+E*OQnFn#6 z=q!)VvU@{S{OUY0>D?|B*4X;jdBS7e4uxg(uk(cKK8hUMDnvnAxJ;OP9b@Sqy&$bh z2cYJQRon)75nX}chv_8n2UML!GBYs3^7%6u#)Gx&lEKaS?|2&rLv60ID7bTEB;_Zf zB`QI*N(J)BCjD`ZS2;E~Zxnz0kJ<76pMoT>4r3MwKrkqLpC=%Ku6A9h2_9a#T8f!2 zb^f3y@^$l5ul#$3JJ}3Fr6Ofk>yN>O*CpJ#zElebAL|!B@0)g=>Bazg9HY5*FXpaO(3|t6GCu;1%gX( zf(CbYcXxLP?oM!bcbB=H_x+z+=iWMBPF2^g-MfF?Jv|Ln)6ZUO)o+VhIJ%6Aio?Vt zZyU+sz_NRr~0*g^3$eq@w&|E4dm-? zu1U)tu7UkwL)cW_ZL0-C`6b?~)rTa-Hlmb-qobi!Ms4;Vcd|6EH5OK3sLtE%sLrN0 z<~3k>=KR~0tf75BRR<9?=R#;}w-=d)^%%q0j22Ri{3S}df#eC?O7aR%Ashp!wb{3H;1Jnt*jDY!`bApTl5pR#n)6Rt@M@ot@dO>3>D(^bzP8PqO2_tRgP(pec8w#nCJh5%N;lIQy)C0zOO*@a{@kP7e+93K+xf9R(aSr zPIOL8&0XNJyDX?8xV6i`Uo3l!>>Eq#M_$Dn0*WSJqiZZSXKywkATIMuEx*VE=u zSmr%wDz^Kctbl9sr8a60@X+^U&Fh*jfilpnjv0qu{{bLK!?rI&Y0#%Q5#|T_=(ejb zD>Mg<<^eO!K+t!1>yc4-Z)#xd4SJdX^pErvEvWbHb1eNv3cTwb(fxeK8~5{`V9UlC zV%DK_%ip`PPtl^QjZ;P){Tz?ShnF{Z`zOh_{>bh{g$7UXmTmXT!7sN(0@|lm?T(p` zR`<=&`@nh+N1hj#=Ue{A7b6`4BP2Rc(5p{eUvNCdso}1>J!UgN=vg470F66GlrkGi zJ+@yd+n%!(4n%-&pd_-My$gAQ3MH)^b{A=?+I*r=g6OR9wU zBYWY1F~|MA?fhL6B)n(?0N~?OAYqA!8bAQ1hyddQ^aY?S0TO)p&hR;4oR|PYT`(>H zmjuDMp5R1836DEu`0fB~>HrGQziORx;a9evfrSa*+~ZJfassL(gSn>Q8xn%`+5DQQ z1BfYt$SXpI@4(_`OvZvCJ$t^*F#+vre9{!5WHg4uJ|Tm1A;Wv{3u;htX{V4_N$^^K zh%QUm7N;B*1sKmWY`-By{|xSkQ{%6-7e)A`TKMS)xZ4CZObQ^x1AN&Zg4+QP=28zb zjzEwK!ex1dyst!50SVL=an*z!NL8Jw24tGdy$vMLHL3Q zR0B%bXG}QO;CIf^M2X<)yGXnU@cVhC5jF7Jz-SJsz}<{JUr&u^@J-n0NQV==Wee zmJsPcrTe{zVL z`WvDdrNDaoaaCW;jMTy&mEzVU!2}U;#MWSm`6wV)LVo}nU$o`&yzKQJXx+SwlR%GwhVgyu;ofX5P!tD8td z7_6O`$Ty#q>TKhs%QN^^kZ3$vs4$rz5Zo`7)DB50Q}-BCu|E(LB<_e(SC7YcPMDKQ zibqT>Qx7xK6Uh@4#Pm$~uAcD67#uDVbOcE&$g!AV<*=K9z}ux>8iOf7%*$K}!2?NW z^HSTpuFBsW&~SjuNXk)57$%HOBFxBR%Q#aNcy%B+kid$2#-!*R^a#m>d6&A503o{z zge1kcH71fZNgeM@KMF(ZY9U#7AZNs-K3Tb3t1d8q6bAlFf!f`x+$sC05mVg4^m&ZC^c{T3pNAr~gi@~B(xo7!xCekBahGi!$V(WJlYS~=xwg}vPB<78Rh}(_ z=ZZZY6vYh^RV$2@)hL&+D;NI~Q52ZRG7juZGW$fl1C(S+$Td{lomPcU2_%9R$_Xg z8IK*9OsbmmD(TgGJf5wJ507EIn$_^C+HYKh?zj?M)N9^QXHGk2>w-nd9>IK^W^%_!4hujU~iM?UoO!4DTI8~#Z(RT`ru%pG1Z3c?}AY>`~#ASc>$Ht z$U@zC7Mxp^Mv0B-i-N5ENZi!*LkV^H#6s4lA92|L@v zLtt@pMsck;bv(H>xFa~avp6Y8rlnx9SjMMCb|6-GF@y%vIzcZ=hFSJ#3*JxQ>yt_{ zDr|j)(~N`QdCnR?uTh^r?Fg*K}fy+H(pGa zH>A>pM976!o>#P0cfRHaijZbX-w<10(V1;}Z(kBzccyjO!0UeRBggiRvH&f~oFK^g zLcgDAe^y6Dl&iQq3UZw5fPqhE5{hw3Ng%5h3Kh|y+pQ+@E}QQ$I|d<3kwPI$N_w! zf$YdngAtdI5jPxB4i{*_(vdg-6^S-m*UiP8WXu6EixgXfxvAUH(uj0J2N+{aeY)Xv zsre>kw3jE-yk+cZY0Tnr3^XFTU(yD@JQBw<3gHu%Y#v1o6+6{L$*e2X<-7p>t@Ff0})4l#a}F2aejDXuT#Qo9CsA$Kwg z@efH_|5!rv8M7o_8h&29dtz-QT|Ts}8T*>{XIbDRWvsbk`Dtod7qox>WoT78DXO`CuhFTl0#a>hBQUN&>VIN$j zH!^Vbf~TRTEd1%XWY}+ZIX|YEW5)d^sN7VV+MMt~Lje^DGVu=_%uAdo_@EZ5v~C?! z^-zPik8C?jWw-aKwqN^gZ;BMt4g-=Fy3!{>_z#9?{7GMZP1>Z>QXv*Ee0-$4 z4^xYFFZ?pDyWpCUpJn{+%e(59)1G19ZTa`C{%rZB33#RLJydUmyzE7g?E@1@Vzl?; z-1jZHxK2X%kGg11H};|}AE;~wRs~ZzX3p1pRS4!(`+nnW>*lcxg z_l0iML>$j)!<<)G?0toaU|PvwV%|yH+f135t3DBAIw{meCwDu};-`de+c`nHOMwoUtiQUuT_yna@6ooCUHnV5Jk_K+nQZmk7|$_bSfQN=A?b z7|5VIJ?9QG^wa4a5%%yw0>XkDiCsxov$8U zvXNgYW}|*g#~X~edMe`*XTB2AyAlXLh1^~;qhG>8uarElvDdE@!mr^juY+6(b%5QO z+1@kXd>^}lM%@^OUzsWp8J!j^P}~@!^EsejBS+u8|}-hI=#a3H@=YUhYuy_niKH_^|hU}pOqb=s23 zS(yHVw4A$C;GAgeA(s0Qg7=tdcVDCPSl)hzqJYPHOj9IsL$Hbpq-imJKJH+3P4#>l zDCcp9dcMh8^4@%UkChM7>j&`WV7e~fDdL~@=VgJ*VJPDI7}?V5&FU%=U}5D=Fx5jv@$NQ{+O!@ML zf1Qi+gc2njapg1Uh1{%cjS>FrM;hdzNK7*8{y+0i~{ z0#CBPCqoP#WZyqcx8HHeKSyBD-737m{z0nU@RP@;JN}K6i4BZglOup49iTtIVMN+M zfe(=al$BrbPas83k}bW$bOb6ZZ-dF{_S7^mYd5l&45Eui z`OAwV3Y07WEx|BB-XJK7HX^uK4`W7j{=4-)D8lF{62wY{nSx;gbcV>Ub1_VgBSB?3 zHj#hGWGA?t*+GzwNyYX%;4>?pK0J?cLfY?u?`47-xB8!b->(zUI#EF=aFHX8kfU&2 z-hrI`DAgm|{+^xUA>p6HhK)fz{y86S3Nys{4;iF`T`0lmcpWjCdaCnlK#{V0WOeNhE6aLqzrrVD_tfE)|$Ef@3LbtZ<%EfgbH z2MH)6TrB_!EQ}dC(K&$*w*p5b@VEcetS$U;W%aRn40;*%+%U#jI(=IX+$B%0Vc<4q zKITTis9Zo=ln|AV2`ZvtG&b(CGu}XYk?1ns5T@g%u7Ou<$XgyHV^t|ikeEJm9)%Lag_YM2$&1Wc)IXQzi^Ywbu4lDpAI&X%? zFomErnPa>&7!Si;n4h6E=Iu`p{czyl3_ADs0`kQu}QWGec(i$M}l-lFv_a-!2HSAIzAL zGSe@!BCe3FE<}_rl}@pH(9aN-+;n-m6(xU$_Ov*KlEes0E0#X*I5;(mD!J7<%A5&ym_mW+iN?52w`^PK+VtQ;I=xT?wEsxOV9p%(Dut;uh2>r9#hJpB>l=A;> zdG_C#kKcb(LjdvtR73v%S2YyyS2dJXPzZ>I(hJMui%XKrD(bSU^J?o`ys8=_n_FAj zJHk7=Dtda;`Ul2hhe}4r>n59K#$aYsr{@b6heH=vyVi%dw!1er4_cQ}R!$Pm&M)h) zqb_d8@1vjYx{qNCBq@Xp_g;}{ZCRys`uY%Y|3v%|A*z5Y_O&|!bGpZlv^X_c{QZ{X z*Eg(b=CPl1+v9Lm9gqp7zw;(wSWIT^pT8OP<-R^=P(95bG!b!mEhmjmCYcxeop3}7 z%e16O1s8XO$bx>>U@4C*_5P#cxP#${pImV8n?+fG`4Dx|)Q>MTVV-Wd8D8#d>-0RG z%+S?+TkU*r0_i0t_%Ui2d`R|U=J?joESe;o&%s%-V$>P>>*kFe8wf~n@?dw(f2kVUo4RFZ$#8pwL6~nQulV%x_;9(7UE|>aeF8s#yU9Jz z8}T!KBGM$Ff}xGGU;z~NI|?6EG?sNf%ooQ@9zs(|JzwIYsdZOSsIjLPZJyImz$K=q zo-b^}oxbmf(XK3)rw)S65VniCHGgO!?N&s*UB)*T#D;G<&@ib{TZ8BW1_)Kmwxl{` z?7W(DZj{1kcJ41xKe`HuAO=u6~=2 zmz$VG>#@V3kjc|VV{GYFv_F{<^AU+8>x7U+(L5&YeuOJ=rBFV9P3s+cL3)z&u2h7+ zuxTM*n?p!8LM9TuP|jB2UU9qIJvmGRe|E8pT3dAx;#Zpi1Gx(4OZuo@GGs#LAv6s0 zkKGGgNwS4`Gqa_MUx^8+=lCX;6-Sjs$N%kvflOZ# z7W_arCSFIP!My>`w0i3x{ADiq+nY-m&fOB$(O)o|ALLlehvP&Ak`0DSb}$&LC#~M| z*@=h|@32mGo|s?5;8kLO`~;&Isy=H7-@2fx??`+juGxp=FsI=%GAm)(?sh%uS-FX! zYKVZ%QRTqleJgIfZsE9ayTwi!v_iC-dKq)SE;z-n__;pZa_*ouy6o}L>R`0#tSg=W zX=S22?4wC9GAZ`iPh!&Nlg~Qjyq~5w$;@ucG79ivt~&DO*M4) zKQJG_x-0``u^#nC`NR$RznBk@T=K7K2<@k}CEuYaqWXWV%l=6&0aQa3-s-G9uu^xO z|Eh-mWj>P@ey>{s{;@9mhxxolmncB~LHjptJPYTqYRHSlZ_~vGx4yrJ=_jBXilM-+ zCh%lQ`fFX5P4pX)?*q4fsP*6E63ISX{fW>Aj4z~sbJ^eEl8a_4vaVS{!N1OBvRn9l zoc+i5!he|$_1i=darQ}K-<*G$k2nT2Ae35%hWFp(l5-x(k04vCD&C7NE?riA3^+n)ca%jJNIQ`lKHDA5}1F|#_duNA8P{t zNgLNB$zw@`{F62=nzO?=6ZlWsIGx>=RzKt~^GU;v+0`-+9CLrTOn+wmdI^#SR6}g; z4MAZkif= z3DZJZBh%h!cd9(L5#X22cq;k87*GwFV!{`pr62*Sq1ttsOiU&i>g&Q!%IoKzTV(m- zf0@s-zBFnKzW|6gMaFpu1l>$i?w!(#6`ye!h)Oe^>T2w zZAAgo9koO^6(89hNOpEQMxsIqp6l%d^azT1-`*}ND+`KO#f+GLK4(K6`H5HX>jII5 zUuGfkRZv9+gP4h`=I0L1vtK2ljK+u88oh%zb&U3mrWQcjc-U2BZBL1n|Ds}WMqFLD z9Fqjqg~ngi5GLQTr7!aG0iIoK_;{&(y~{FtTxa7FDl>m2G0J(8W6J_x`A__$mFp(_ zjAOTQ*9qjd!gGhVJNO(55$Bf2o!fR>YGy*;bsZ2fL1-bVfhiF0{K`tPLw%_a$}VpW zLeO-Igoyi(?fqCsv;EQTU5o&Or0Z#NJkv!Rr+-S@BoA*F05XuP457RqZ~Q8s!#Y|? zx!)+OU>>W$jrM`uxkX;u#|$JaZ$r{J|1FF_dEgToRrKsW2Z)zzPz~*EWNBS%-uL^V zFGu^7BwQKNzwU<>aBOJ`e!nixx*ypeF0jHm{|5SfKg$25nz55xh4+!mpW&rC<9EZh z5V6M4G+#|tX2GsG!@~rTxg8gUoCyRAmm+r54krEpP0mHbGoHUcUxIY}oxjg?!DxD+ zLh6A^K1M}Zm_0;~@leC|th;X1{uOHGp|;g0j5f5o3V*pHed5Qte)&4pP-yYd_eG6YOGfw_?~0P=PF^UTR=*xO zO<62nmDRS=`JcM>{lqx?R@c7XYUO~=yL8!>^c%g*3^AJr1Yr>jBuq0!MCfpfvi=c_ zBY3VLpk-n*ru*ucs#`8JD;$=H=v9vI+ zj(yC2$>w{`ldL=D!?==`-FLx^5mWW1h#!``py@^hhscMJWHNM>017Z72H3y$M6Zm# z_j>|Gv%e~@A@Qu*vEr*8c4X9B+4g7Ct>WfozV{=__`;{bmd%UI@@CKuWQ{YYc-9V7 zs8RPR!*t8{r&LM-L@DUk3*)*LioBnYVeiC?U`gNIYLo}P5dOiW-Jbo-;eG8A?SUYL z-a|d+k@@$o=hT@lvN;3@6ie zW=E$5+34eQyd|{nE0~t&qpIfvzD2>dArh?)B;R_`+V0hv=gAxE-9JPJlN4|uFkXQ+ zfstgotwnQwF9v=c+J|aRr8Rw9CBfLLv!NS>l z$8CBy7&^#{`c&3>Tl)CqZrg57(H{5t0E#+=1pChfYT|cX{TRNg{VM7N`Vlj}O0+&Z z*vR?>sydvI#xqubdpKJN}YH)`2lGfgSeJfQK2LH8_nxDh^TR zU({133C?p0@~;VKt@&%!MjjE|2!w=F1bgBHG{=DP1c7jn;0gk8+nz+IlW4z_aEW9{ zPeU*P26!YPWWFYl_e&^w4!E8mw8t1Mf&o8m3=Or32@;tO9OVpIDG0{Z1+#myN@s*_ zsVQ|3$kZc-t^gq-)?g}KcusHl%LMTqM47vUa9oy9o(R^@7!gKn5d~~ul8UfK0L4^* zF(cqn=pwEOWJoX~u^PjPFu;ltkwk_3RO~;@;3Bc^!4CmoN(lUmWEAQE@BZxT_YUHO zYmtYNk%WSwEP<>9bkVxqyf=Nyx(2}wcaeasXqo`5N)gk&<*7{_0bzg{5D$a&0etIsH-WiNH9|M|?YrBdg zH30vRiuan2sdI|!=?Ci$#P?9gzM+PKF`PrZxe~rKMggJm*yAxlCbBpQ!eq`7k#q^A z4N;_YU@VrfL}yu5e_{NHaQw5xZ;jxChG;w%z`Q;w|6bPBA(|!!%smjMwx1+-A3|;d zrudXxe=j%QD}-GUh6hTS?hnm0i6|um*Ey%m!C6EF2(@xWwi6~+m?SWmfZOT7f1Fc! z0z$z#Q4{^a>51Tp{m|orxC^zkye$jo9HB+RG-s}O3f=fa#Ha+R^m2prbIsv!6L1yR*sHcumx^ZHc7hoxC{#R`HOIubb!5B=u!4SIQvQmNhi6sKB7# zmp3O&WhyvQIzKZ({5dhEY%VNOTFQh-yiPI*-?K3DofLCIk%gFF?-XrGla{oTlnO!d z#K&T!UW~ehPbPEhiuJ|I_W3mnxE)A3orBWEut+@z3S|pOwtddA)-ZMrB{y~@koWR) zz#9hc&m9esi_%K-`%s6Nhf>y=05qvG`kB(9fU*y{W$S}wJca=^h~?WvE}#g-kLt=z zQssE?LDx};oW14GrsbHCh+>5{F!YLrj*yVV3WV+Qgtd6IMFlu|BrG1lA-xjsQHen2 z6EZzg@_gmXRb}D$_t!F&rG3bxpFyrZVQ z@m6V74OqD`T#(pg&qR8uKZ(M+hJdZCc`Ln_AXr{TtieH?v@t{3OiYzn{Gc(7prTg! zi<9nEEv0m=KE0U1q1gAKF#n`Fm1M;4qFId%thkW+AB(kGIr-KP)lNKOX3b)si-R2> z>pkh~mDCIT_o4ZI$)a%)H5^-MegojpN8RiSwTMIE=*BP-!L-<+T8CdmpJH;>q>_O- zK32BrlA`q~Jm7pDQMjTe@$P!-g~swjkxI=B@tg*1uH-bAW^Oowt8s79t*o>8=nmqR z9$sxwlgz{WtTP;gIu>}@cp6iG`-cnrVud;xU5*9w>hn!xMPXl zd!;!U?^EK#X5Jw|D_V$futo=NcT?Pc%Jf|tWm6krh|rh2GK+WF0g#lO=4fNhPBOM4 zQJ>riW2nH5OFIj%*;BD7M+htBSt18X+Ff!N5zcS^nnrs~0Rm7Ou2iRJi{MBT?-jjZ zXG8u?S99}Rhk{mjvcCkT5eP!TN8&2*(wsJ04VK>T)^rtYU4Rg&DkF6`E0G9tne?20 z`)wWc+ss_ZVi@xJmMT72=$-S&<@uP6#UvM3A-5%ngugvci=aBP0EcX5;BcR!EOP3Z z4XmNi(0zJ4*TAXffWA*LByxaTA3``i0K8N-dt*4aV*5J9?l#4lI>p^O#k)L(fMD_AcnZAp6_5pUC>^2>u(OQF(sp=*UE88KpJVVf{>q!aHNdf7P zNIWhQSuK&lb^I{ln+Z>`$T{y5!kV?dnjtBI42R5qr|wd-t8{m3_#^G4xs2$=2c45P z_|cg(7vv`THXpn5X-?6uGpz&SCO7}7rl0tZ9BvJqR9Y9$Agn53llgVtpOo)4h01H| zg@Wgy8{h0Q#*Qiyy=II*)usK}rM_lyi|3kib*%$!rN5hxxnX}Tc3B7pKVbnbYHzFJ5W(Y*fx`G6MEk|tC-(&=hetsAE!xz25qL!2(K`{SlAATq-g(^IHZI#Kci2V|^|UNoR4<)jVco@ro2y+$ zbmAZEI4*Ka6MP%Lph>m|J8eU(w+C-9?~uLs6Mk9icuyZ~X@Y8BA8nD$bpN4iZ$K$O zsV(bin@2!?E4W3k{b661^dRXi2*>Y$4sr2yv_shoZ@ZQ*HGOHB{Ql<&M>77yBUoAK zzO}X!0ovh!Z2lv}nM1dL^?v!I9;Sfdm7}L`V|`4=fwxD<73+W61nx+o$BSVC#oEWK zZAV9Z(wo|Xxb7#QoZ|ya!IhO0*sGJXwiBXIB)TxrCBIX}q-zAShB;=)tumGBR}k-LcXK{*z(bvwMC)KBR9&= zqq89cm4a%hWgA|a3`$;H{#8DyrC+1yUaRPAXn9;~gkNh}?HG~mMq&u4jDe!suE$hv znwPJW+OAJAtPM|jO$9EjSNNZ7Z;8rx?JWgdt@crLQ7`FFc2A(U*Y?;oojSYOI9*5> zfmY}dXQ~sA_2f;h<&S?@9zjaHjpR?U;3rf4r@nI3QH96X@1Me8 z9xZd8vIKN1^`0fFpC_PSrv#qb%5gW+A6yk*=Ek0tsIXR?3CbO_4y(l8j$%CPLA;cg@!jnjpLhM#vUG-S-LBrr&t&-Rxh7U zp?S8SqJ z>xeU*zm!IyrRb2q9eJi9D-@u>wF?bshje6WJ5DWIcPkbCDRXDb!Ug>;TaoUxLIMif zY#Ymw@Q0{0hBgU@Ht(z(e9H$p>d2YkKOKVT-}Wv)fUOPQRpYQRLnQJ(B!xpeFqq&e z^a`+&d-ynbtv8H~_LR%0GlCWXwsG*Vgz+^3n3e+r< zqlW!cJn7Mx5&`1=!1TTPJ8;kmZ>f%}hH`1t3U|mvwQhNnoe=1MP-$z;7P3jYNuI`7+ z@I@*fB7u*r&x^Vqi!2mn7%w5fjxHz+&6FaVF4Drtb^Kx4#wbV z$pwLtb_m*0z%7i>Of+yDCG@QP>7d;&Df8u!8G66!IKuog*S?B@TR@=|nC0iE=ID%N={PG{~&XC4Mx=En|TRlt!s9rZwg=`!PGYXj}y zPTV@$qt$~e_Q4!FeqA`*zk@;V9p}OyGku=7$fYf_U!rvHGq>0uPuY*dpBtd}$*V63 zt1qxWphedA+ujl`*)Qu#oTK5-MA^D7*w1t1sKAbF>BXj(cN4mNhI?4QTL}#l_<%(@ zVe+5#V=T-#K4mqQS?_0}$U7#+rwQ-pB5S@m@+;i{-tr*ciOtDQa=tlc%kqQC)3c%$ z5x%)qXzdo~#1ywRA}+Aitd4h3Nrnj(e~6VRb(E*r`+0AZJ78)*Oi2c4TdKL|!uiX9 z3CZ0=_1@1rXIviG`b? zNd}_ue(KK{#@y-S#$PgkWFLtHt^iX##%o=>9ZH0fmvooK|ogQ`IL-wRwl(VYt zP9+X3V{7&~J6P6?DqsCyCi?{AP_SfNd%|?9H2aYz+nX)?HeW3}e)xDg-|mPI&BzNR z`?zuMo$#&2+3b|^aO#|BG?na*m*#h-J#$|ltYo5(w>>{PZS75Yzh8a8bAdVOLHA@n zbaT7EJRQnUA8d2qdn$ap<|%CFxe7vT(5G;RSUT!@=P=Nc`=pZuWO$?Nb7p!GV(mdG zZHy?aGr(m8EUy)ybNa8{sq?C`Tp6XKvncR-3kHH&nw<2>S&4p8*|ForWT~EC5zI!| zqDtk++6MGz(aZ19j;dvg(rHJ;szGw(N_3UKz0%Z$fWrtjF73qtj9VFq2n1-g8R=Pa>>s5*H z!(_2w?+NuGw@Twyyc7mO1~J&&{WYU?xop>D?d5v!P)!Zvq9MtW!{H$IguD!NL%J$P z#1*nf658b<^R@*to_`B1B3fq(h}gV8 zWERYoBD+dNd(PXiAiO8Nrngp!6Mn<5g{xYzzE4QulgcIW?>>{Ir5(sFz9-;;g%-Ls3aPakL6Hecyl)KQvZv`W@ZIx9Hb#i!&!I$9@~@} z2?9%cf>9zo!}KbH|KhRP{thA=G*FZNUpyx9Q3V=l_VsSU{NOJis|*l(BrIf;Bq37F~)NMCcU z$2fme{>N1Bb9huaYj*k1Z<3mTsb0quDHEY%BMc!3Op2KI0gyyVCygSO80WF&OUc#a zULxj|0H%8PLuNGI$!jP^^x1R(9>Y#(dg|ty9T*k+T#9uZlF#cl$E7-anRch8$88n) z7ms;AZtV&nNPj|n^(6ydu0Z&HS5BSbDigzPRmdCjFCKHn-tH0O7*s?i%FL!f-G>RJ zn2bsSO!WXs6oAL#07(>-1#s2-e>71_vP^~%e5eQV6P-S&03Tx`?WBwt{F31Q14%B_ zRQj|5zEHzH!<6MfxxQ$;1SYmv_t{A23Fl8$kg{h9Ri^qZw?b`QrLTFY8BbTdO3mPP z*>;T?F*Bw3hmGs<8N1Y{g-JL}1|wBZIdhifgF5C;MPAUS5(5({)m}d3@Y44k1{}rG zt!*E1jtD_U62$}gHorqNs7p<;rDmqyQP&oST9C@oSAPNUm`x7j1Pc#nWaFmZ*lu&0 zx8of;+Xi`u+zF;{@<$L(21f;#lwqvQG67Si9TLFsL@|6BzT7r5n==xmbHSY@-TE|< zLdzKm);uqpX1#}NUw>JVSw-&U2+%1lcNZd%>;lUoKB872C`ycK3CnjN?&z_rs}95Q zaQY$B?C_Aw>fwstSzJ?__;N6G#`ZIH5$#k2aP8^AwzGCq$yW-=nCn*+-1Q()Gh-5I zz!5Aqc(UOMi<`M_lCk1+j~gTarh4rp@jm^M{JOuQhqsWJ8V5dUQv_$rZWFj<4yuW- zMOP1RKU*{o>DH~rcggNtqgD?aJ8b&`rh4qn_aoL})hWBOyWETS|JPK{5fl7P)H5An zgy&?qPg&zlO;$QhI%S^mM8x+F+aB-a;w_Fzmzyyq7QQ`L%sAwf8&-3uh}$mxT->x% zn+%rIq2`y_#7ay0vSOX%`9Banu8PEusd~!|DF*mpr19%w?ABQsWa81<6MM}t3nOj% z#kpb2>S_!HhwEOY& z{bnp%%{sBzL{Vey%jW%F5a_xk$J97A8e$VwzS(ta$rYWSGL$exGO*dp=n9P2au{hT+#_xBEA`_V3WspT&% zMQAG6+UaMx-3+@mMs8KsAb9(Co7TEKV2ZS{&zUp5bx#KuQ zJ$>Kg_{#SC%1MIpF~GWrV&dOjBy{~Kx4cc~d;zTw=9-_CvFHzD)5miFu=qIw&UBt& zmwtaYNd<$quY&4@z10Hb2z&zz0)h)fJQ~PA8^YLv0jB@(rdVUx_yS#nJ48~DF>3=~ zTt6S+b{B;h^iwS`Hz1J8Nsvg8ADbf34@maOQVXQ~6wC_e^%Nbv+6Asq3jnYd(Wk&t z+7Kqukk4>1_#MGRb0IZ|p)5JSOs2il`hETPLdFV0X>sh6bcKm4e0&jos}n-E3KRtW zK9R+M51jm~_Cih(MKYohFV(;;ci{GffO|wKBRe6D{^0(-FxWy#cy%EM+Q5EVFic|v zTq4{dRoGui6d^bgF_MG=jKvj(b1#8v!cW-@O)C}7aPQ-c7|ow3MQ+G1oe<(T7bZ>@X50`q+~EIy zJ|DR1GYq9vkQsF*xT3#U6+)WfSN(4 zUKm1 z$L|0MtG-Jdp$l4a$hj4IMrgNY)*#27hG zknG|J`e876-%OnBPkEFEgpxXi4;s0HTREb(6dUmfvbG?tCOM1-B;5mSL(@D}U@AbT zwb?s4kwHW|f_$5Wykbuuhrzs|_#aw=TFDLhc!oZo7KmD@3ov>@MeDKV4MD{L1?b!M z!A-dlK?=$VUa>zF$&I}ei4^M_3Q`sdk>3>V&=%dseDg3ax}f$0brfkA7VR2@T}HpE zFqKb~M6Z1(UloJ^ZA6l99xQGxk}Eqv_$@7Wj;PSHAloio!rPEDVEVle3G!j91f?S6 z_P%6?s?aVcO~|QqZh>zyK^#*sQ-RZG6{##;LjtoRYQ(v0StK`{I^Af$4E_zce=cQ3 zy8PLoydC1JQ&0}2j`6)O2Q`X)v}ubh=~Jc5-7wEk~kaH-R+l+sm$ zYbh7lny}QNlxAh0VC(dT1ZESx4L=AOBY(sluQYQJcqY`q?yj-K_O&0X!>5I_9~5}Q z9SFBr@4!>1X#46{u|SD)ysufq^<~jkA^gulK77HNmTa)*U7!kb zurm|$5I@h;37| zbIG=o+^BAUv)y8@MWLXcrG$@=7e1Pz@rJ6C$DALhfE`v3;mEs9gu!rsL077!8{5E# zP(^?nrAOmWJc}d-yeL?uL|~uD=8Lz$QwTD#I83pMEA&Lt{r7zX77EAmh z2z|D^5<3KCj!R-yK|L<6l3hW)9jImVqd^@-&jcERqs>&cR4(@4OO8oA^QhZcU#4LANiG6-N@mJVWYVhUyr^ zpf8cm$H_xn-KI?R{cQ{)C9kzxd57QIsp0q!YfOW`8ITTj4)aVWPd)GF|S zgcJU0!asQImKX;`Fpv7V5wG+EX8k0?$b@Xn1j|=`TMhP)a)KX1Ax{xgZ$$?pkEW#m zbO$p`V_o%xnNMSW>6a>lK% zC@aUIyzd5=&%g3rNUUBnu5cx-vbSbE$?=mtuii{e(kd;(teC;6tUWlcohh|KVG$Qm zEX`=#CW)7{F<;an+AR2^!aNpS`aU4V=5>;^wZ`%0@OK;4O5LWgJY^vp6R^{f#~a<3 zy)f2uA1rySTd>&OH>)qb)SuLfhc~;Zdg!q?h0}PHQ#rC+w%V${&DyEG9o>>dn>*hd z4tuvP$Mokebi3(tMvIA8`(?WWdq+QQ`{nZvpL=jD_ct$jzWlFy0cm?dZF?bQ8s_s$p-ck5rguStFp*5WL0ow8 zVf!Sg`^jiE$?ju-02~?PV6b;7Pn#z<;-H3Vbg%CK^T6(v<-r{4VHIpTR8#(NH{~!B ztvk+srLJvca2FNHTGsHYBPnYASHuy{=+Q{n#{)z5!4r&8H1R}67g9###3=}et##gY zlixy7{|d(x6N912noKrGi&N7|7Tr-oGV`DR4vN9tGFpKgt zU(x7XiI*b^3tSamH)+N7zSY6xO zULxOOePNcQoVf8~L;l`=)YEbOl{wGh^vcQVHUsvSFa6ZE{Yu-Ai)8i9yOT+Dp$)pM z>;FU9TL;C_yvH zd3dwMS+cn(&C~mk_(+4<0w{Xm*t#dhc#P>hR8hrCIFC&0L2M{L{gM#*Z})YQZ$Vxg@QLVg@8$QsMfi6ltJ3bY2|k2>kR({bE@i8hCoWERKXY&UxQsToVjH zkhCxld7|n!t_=q0O{4voB}FN?8-XIcG}I6?4#bxxf!pNU%b~PQs9LviZ6Y=oEo7zgr-`jcKS#=-dG?HJZj_shz;$?N7lkFLEhE8AQBvyKM0XE*B0f6yFxUJz8DTfR2OPA7ulOq;)~& z)$jCZ@8+qH;@9p%PtB7~&G$HOOsSzP=iN`vxE^lLS#^sKU-_-6p|oA+4;x5!U5``P zD0_iVau!rN&UcC5__y+Oebg6WJu?4AWf!9OH+C&`1VICi1$J)08SP=wy5;(Jq_cBC z5bfc+v&0L8m&Ubg?3ePHD_<-C0GkiHQ(pQUGj*57xDdf!T9Yoq0CR4p7P?J1;9Msi z95xWj+d!v;4b*qP(gXkzyXXSofk)sQn$wE_^SAPKm&$k$-Qx=es#`Sm^H)^o9(WL6 zFgENc!`f2<^@Ydgt@xiaT=PKR&O59%7Pow+fbrvP%JWRFTXyxQ+Y=_Y)BlVRl^@HV zURb%Dva3U{PX2BFFdTCPU|(#Tojq^fQrDdzp1RZK>%y}hU**AmegN%|I7Pj@oD%D1 zcg7XZe;N7cc1q2E;bHFbbNx0+>sSjcI2ph_Ud!}SpP5k91p}b`3PIP27lM_cPv{JI z=<-4@wI9=A9P?RTNFb0)z!}k(>he-wU?m@G=;R_){G{rj;D|k6ml0clafA?7SHRfT zZcjnnPwu_X4BAhy-URnnj{80Y|JL2@Y4qY&j#j8L6nmD6Z?=nfTAgp2LjYD^cE_3I zFnH|ox#WJlRP(J1d2{Z{(Bnxe*!RPQeBGThE)P4^Wk!KeaqYUq))d*s6y??wQz&XB z_urR6b~MjmZub21Jq;qlX*@JaF4%^(b%6$bX1#o7zwG_=-{D68+nNpu+ASdgV1)6T z64yZ!w6KYCcOiPdx`pZs#baMYy&CVFZQt=JP9HX;;x#E=zX0Ceao09VyDqOwzhJ=U z0Ns#C*|2bpAds6=j80s9ib}Lsa_Yx~#LO(~oEVGz$ijfU634{YijZ`dn&3L;@~^62 z%9_5bHJG=x*H(3P8|U_cJCb_)-|KzU@?JTw) ztZYgj9haRM?&+@2T-)7lY;Iqsojg9VMA)rKD7#?D4HNHC6FI<9;61*B6$%IAmD=4HaN-m6@CeChl)^}A5DiioYYiD9s<3HerY zh0E(wXmU7ReN8eD8jY#aQoqp)!e=oXY5BUAB_eW87y#}q^H+?Z({=Mf7Zmj%h$AJ+2T2e6>*7WG9nSFBUDvS(g+d!g(oCStI9nUA4=}-x&Hw z=lwknyNNYd6gvc*pVa%Q0940a0^SCPcIv zmYe=KP{lPbRBYz*7x+mZdjX72O>fu&E-7MQJm>_ng+U<60&rz9Q(Q5xues3+!WQG_ z%Wi1X*!K)o6PnNUbGqBflh(u{N$95(1Rx$ULLZJ>_WmFE&HqkC5*I#dV}LvKnDaV) zx_wDSf`uaeYiSp78Fhv=2Ri)kP^5qO4Vb^7-SBKHAAtNn{H6h!2x&=U;yFL812|932z81P*ZFmQQ+r76}VQ!U^{7 z4f`PpM3D%Bix}v8BLw3&1QsxJDs*z$7fU-Bzu6aV(7?r3T>sb7?jDELyaW|b&f;H7 zI~i)yX-K%h67(GAX=nBLLqT3~{~R2IQ9>O@3?Fl)NfoM6LPI>LfF!f+US_Ai9HP;3xk!W5INz&cnIrfu37Dnb|0};i5$^8A+J~hg$x_yY zz*3R!YdzOsR)Oh5Is-ll#I%l;I(9-uTp}Bl+N1U=Rh6lXw%1i`JN8(mfVpp98pDsd ztBg#A1dnR2YnXTJg8!h+x5??CQ+OLA@7vFJGP~nzURPP5FU9g9c-Dhzj@=VW#~u#Ax`KE!?n{9=>X6PV3jY&|lo0RE=EroPM5S&J zFC0|LztZJtkT_ky$7%?b96fLfN}I|4f?TP8++ysXK3lkpSWS<)U?_cW4Xke}MkfQC z9A-`Crm~R+VjfuxV>S2jxqk#ZR#_9be;o;EYIunKIIiTkma(a+~{iPUy|;V0%Wdj-41Mp`pJzC^#25^qhFa zwKI?Ds?)GbvW^iC?~sES+UI+N&5O9uI@Wlr*hrr)TLnN8{`xuC{P7bFwfkV^$4$c1 z2{9IiZwX}mQqO0CyMkgqv9GTrbEY$XVc3FlK2vUHB8%EcGx&xZQ(ApoG&~^VyBE4< z&B>O2`l-hkk_`L|^+2p^=vU!}OIa-5uT{?(2DHKz4Lf@Cp5ie7tFe3LM7Q z`}ybQpmjvv9)3T2aFdk9{K+t{r*BF@gQ33thBIIwKJXDt%W+4p-Fd-d2Dckb{(IE# z`LY1JV_&|jOT7tnMZ?biSMblu?6MzDt@zt!D=L?%sm>owogF@Ib$(|TZDbw&q6SO2 zk7r|)u3PM#ZcTCi%PjeABhF22`OrUG{9PL}bv4(e*bhh2;`edNowq*d&u7vi05r}Z zyne9Jxt9>TrngUuZ1?l%&4a@^RuJ+VeQ3X@?yBjT`_rEO?H)4iJM4VEAj2jXHMbxR zX=OA4U1VZZC>F>Qmr)m=1eKD`ix@=*gOQ)D#En8hhl-K^f?t1uKZJM3EHg|7sQ^Gz z9wOkOczVsr#2ES+(G@i~w2a=%qd(M>-h+Zc4))lZ6cARt9okSL`(i2wi!pKmk_Cn3 z5QNIhyJ)(41_c!45`>m&UaB7I82EX#aU`hek}2m%)n2*z(nK=J@@l`~L+ z0Vo*+a8ia(fI#$!KnSY_Pcl7 zf`XhLiTs*vq!wfR7K+7AxrDr}*q&|V$Uxj7iY!H`!g)pnK4K_1mRXKTo+(`FHoX2 zMP4y!))q)M5i2{WwYr}|4uDfJOlHoE7ZObUU6O#FDFV}fg@GcfGg6_T@^BlbDCvXL zNq1=r7r3nVqHsQuKA<$agA^FWF+E7@P6=F_4okEJ`hwCi6@i+I=>bv7TZm%(h9K#| z6tH28OlwASm@N|=;4gQkT}zT-6wqNYQ==jyO;E{^Fm1LNSg{}V(I7boHI^tSwZt$h zcSfq*P89zv#(p7-yCS`wDYdax(V*MyIypPhJ6+N)5vI5JsiQDP zg9=ef(vl2-qQ1qiG6FL_Bwo1yiEzS6G>T=jcfn=PHP`2q+pHLUz{wr!T+j_YKk4z~U@!BW@2)IIOQ9>%eanSI(6lJ0qh{PhsK$c~@(4g=j zCDA6qAe=zX*~F{UG?ZL0+0byQlz?B*#9*xprJsrTtCV1EEcs*ptD`_2aqD-|M${A` zskw?AE0$)oD?eqpcb*Q(j1EBG_GYLeq1n#&Q>LO&2MNJ87Z6#CR(s36cG0kIj*o+g zEm_NJme%Cu&sDnE*P#(gQR&=1HBUpWhzP-@vqp#91#!s{uO-?FGFlR2+ODTtZ2vYN zaHl!=q?NFgkT|q!T@_(`6_bCJ<-pjkS`i)1^5ZVF7@0vFw;qUq7CR7?_BT3X%-FXz zCXh2)+%cml!7x`jvm>Ov1EL)iw$%#P7`cg_eOaFB;@7zEApTbvA;PU}W;%juIkQu^ z{j$CFnx)2CNWhgkeXXG$OBooxn2jjh4ZU*fs-y*>j@0)rcF$Gjz+wF44d}0=Q3l~f8VR27{wm4pWu{}xn zCfYX<6EPo+&>}#m6l+v7e7?Mi7(t}sO=;KEL!pL4pC+p$Ml$*_OJV!;593$~@KV(Q zKJZjH!|I1bdUVx?>hKo)UI+5(sw_*VYO(&qD7R_}j~q)qRtaj0Hd6!O_m+Oix&9zX zKfLu<%;oxYhk+iQ=AE#C1QkW4eS8P~!DPBHy<*p_9EFm~O54lYd{)hhXiw939;N>B zuC}_$5;;||@`bEOkvK2~5a4o~zwy|y!Fpb>E;(kX1oZIglS^M{t zdu<~I1VrtCMkS1x zw9HHgWPXybqe(k!O88g?@1sBv?zDJ^yqJj~fyoT2`;4{pn38JCCp1Kb5*h6TVaxlO zikN9}?fl!<)dnlAlt=sz^WUH|_p=CnA$Hc;?{g)Pq!E<4Np0hv~Hon#OcIIdyh%LlSb&=40P$q6M z^0A`8Xdy>*zU*jmj$lbvZi(|N#+T9GEh913^-I=&hW!A`h&;oQ63aa$-o8Q0kJC#j z-OG2=LnVMe7okie5`X*E4*h@n%gJx+hW`YfJ5g>*aGL6BQ0)Umd*wDz1E zaEQF#%(6b;JDX*|Vb(o+ha&3}D+>mu__{nI{<&d1Wd?zPd30Kdptc zNn<90xL`^gusPBDrFIJgIJ7w<{bf}nzv1gT*XpLqF(M5zzt+a6;Ipvs36B`=_D}9@ zarjlP+F6~FZHALg^Q$$v69s0?UTsPd5BnW`ED;`(S&K#`V=OW5G9>}Z-4*U#k@veF z%znp}@6I)p|JvT2hTqGi-kXxy)3?~0fM3Ln81@|#$^KgzxGLh^UlAHFk{*Wm-haP$ zdbnV8Ka73E1pT1TZ80Ta4;*l?=GLE8D-yGM5cGUdkoP`-=kFSKjhfS6#xQTK+W!@b z)ajaOatNK`7SuolFa#a`4AtXL@}`r3>wFe|hnVrp=?F)wb?`*^orfdl#LCA9n1fZ;!6`TyHeH#y_fGU;5wZJL@`&-}3j|csjRugYhYTZev8^8grnj zKyMtu*B)KC7IkvzQV?-xNEjFrMRiWn3-NJ2AL@pPtl>qfUj}nPd?)TutZ)jblybm# zappT;IPQzp-_Baxm#N>rQvdbA?YdC=lMM&!9m|8N>2-tigTm-TM_pf=Y3Q}C;DbeX z8x`L`fc&@9CdPRL(-lE~? z>k|tt63qn5ZgT7|7oQKGte=83#_r?AA8fiG7uFuK^0&J*9$cv(7skz%UIUPNt* z2iR7=_HeuQ(g0px+Vj(JLO21Mo3wDD;_(6>3IMcR0L}~#kzxRC5sN*nCIQl@paRitiMeiY)%tI|Nb0-qHrd9#yuepB5B7vFY(AAZAP!AsF$ zM>#=U3rC1A*Kcs~g%1&plLj6Tdav=wSPWo%$0rWE7jU6nr_`|ed+iZ+l#}F46ddp} zAA&iEjSL$>ow#r1cx-w9I9m7ElK;?$jn!xV_*g1HM#AU(@*!Qi3%`6M-a-7pDm3wi z;I455%B#8P`d}dT6>Plhj9Z=l$+Gt`-?@7d>;TiM42wIz5=Y+GBs-wzfK~dg$MZc} z1PwCi^eHVuJ-MAZ%7vE45tz$=%LcZa2Id!&0yJ%)%h0^chMlANoty^>X_vZtuMTOy zfZRviJAoBWXN&j$8qDjrYhxp z&D3=nihGw?hbEbSA#8q^HEwQBbr%kP5*8;hTvH|Ox(va)3;A}R34UNUzY?xH7v{K1 ztQtS2~b?-caE>i=cfn5Ru<}Zgx%zynzzROp?Kn=V= zHUEVNy@f@r;fX&%)h^z+y^Q?ezI-=sV&!&DK6#ePac$;%2GQf29>;}Hn)4}{-)Wte zj<^e0Ly_yaUFz_6{;gT~JCO}gT5clMXCe4`)ks<>l0R>m_MNHtPdhiE)U|8QI>8z@ zf%@^smtCs2BX#?A`DlHC0sveAcdPCYe1Q-@Y;z{eK!aD6GjZc(h2~<__gbt>c94 zR&;Zx=A$XN34Ef0GUG!-L%1SouaE1v&c(UU*WO|mzij8uc=>AfaD(-^pOj(x7=NckRW%V+7q?Zw`;D(d*nD^e3HdS z^?T8p%y)l>h~n8xk@@G}hfp~Wf8Br}-;hwdh!}uVl&;~Y*yK2HQc4WS(=sC>9-NaK znB@{)w@tU%poIhT(=9w-sJa%K-7tpgPpY^{27u< zsQd|K8!)L#rD>h7x64LvZp|3bfx2E?Oy~UnM-f3Z1KKm=ZlVJCB4$G)TusE zywt7I{3_mDh{^x)IMK=`^>qlTd+oBOSN`^FJHPQ-7X`43P-VgS{|^jmI-IY!s$=6U z@N|S9vR$S;Q@K4}ZU01k`Q!&V0rmvr%I66SxGWF4v4Pp!?+38@9q|XkMISs*7LonS zW}hGs{f%Ft*n!VFK9`3Z{c9_$qJD=ENj!zR=h^3n#>YKVcDSKPGv8}Vt%Be())um0 z6e*N~K-}FA8)7JD`o_pr)&o$gND6zDO(x1O{6&oP5neQJm?}v&BkLNy|3tG!lN84h z?+(NPNx8gI2_^piqz#<03HrouI*z(D8fZci4M0y4^m# z@mf?(Kevfr)wqGTMCSocYo^I)=6c$`ZuCaRmU}dD`Te-+?Tit41$Tu%-;}SL1&Rp~ z`-G3syq->=<8ADSzRLd-B>p_K>B^#ZEB{V2&vO)H=gF*j#-MzjsfpnYh{|kd675Zr6$9+Yw3USl_ z1A|nk@tXU)_+|bBg9d&v=K&)={09bQorjq{(i}#({3qXN>#lpCW`6J=7*tHzt{}gM zY4r~bLbmJWxqr(P_Ad;A6S9h%`xgc&<(&e0hksx2Sq`fCUL@y}o3vq}A_0S5@{M+= z>#pgvc6(DQVfjWMUJWTsU8J>)lv4ltGHeEeLGQ1SUh<9Jah+=%a=wUpR7m5C{l-83 zBj&-x+whxw5%UbH!kJC`&Hw!((66Wlu}St@V=WV!A5{DJ1wU8HwoGJCaNN!QRO4!- zOsq9Z-L}*11qQv9tq9wGRVaag1A{?E!z%AKd=x=M(hN$PvUmifs{2VmW|-IA>Uq(} ziG&xgJ1$apEE+bLn1{44)tbH(%K9SaS*X_6g8RY^GrLoSq^-VvXSlgop%Gd6GY?Lk zV3?*-EB#)^6Sn|fC9YB@3Iu>B0RXi}EA^U(U|x4Hx`SC|(62Q2;&o?i4fo=82dQX! z@w&Uqp`LGBA`DY#uQHpDZUh`%*V)V>S|BUWS#&4WgPtniVr4J<_MN4Uk2|swrdb^F zY{EzzJ+cumUmUCCsmsHxk(Xpyn$mLTjNz@ZCl-=D`Q+JDKl{O3eQn={s7d zVPl_NKEJMGSiVt(_>U9MmVx86|e^mu~t8CNXljK<@*e0fv_mNpSqsY53 z>tw3zkW=2}l~n!Jts1c*6Y}vjKlzsN!F%WU>!%Uh&ceM6jV7M<%n|t2Y?4)#59qa- zcphVJaHp}Tq7RGNpNM|tBV%?2lYlY9)Oa556?kNYNk4CgUvN{Z9$-v0O=WypFXbLR zKPDOYQ%)F1t;*M2`+pZAegZ9T|fS?IHTOH=Kq+!fOY(iV}& zrut-oqj%GM3%}LAUu9K&w2^OK?0L`EsI9tWSG=S+r^joro$Y8J8M?gk=DMNO?~hA* z+x%=*MKJD1C$(bX6~!;ufF)HsJ1R0X(wlhX{Tf@pQ=AYW%G)mFV`o=ksebr*?%;5X zfmaOvBZs+CRJ`tyk@!9vTIC3YDkCvI#y@_Or2i)7$pV8f1*SsaC4A)+iIPJ_Hf`{M zQnF|A>Bc0=5DF={>MRSpg&)0Gn5~xrkC%v4m8rGWQj_xj@1dlQ2VuMPGtiI26^B0L zhXYNshbGWnhB}`^=aaViYoI63?evJ`yzgS`pZ9_9?2dKCF2T7#uQ!o`zW$URD?a|7 zjmvhY{!oUr*Y|ea?EwAhnUY`iKOICq#Ag>)8+W5%u|>&))$zR^*+DLj1GOV!Ch*3|jA+9Yk3LbP*2c zPg;ukp%8516~tz7*NQ;rfkWu?&aTnuMc`~|;55ANlXOtCZs66esd+(Ay-g72eh}0W z_M{Tg4MRRy&pJ3aJh;18m>gt4nSu0WEATanzEq?L% zfkc*A0_Z~$K~wjN4#f2{?QJh?kIna0j-M z@lA#EN8z+lu}<&-C7?0^G4A9N^_Wm}CDd#sk{~feE{Uj_i7sKj(KPh3VZgJD$P^MF zv0YLZLV%=Bd}RyplR*;KfihO4H0eZ=a|ZCLC0S&UN?In-${<2oF{N!LnJ+Ab3J@DT zkkTfTEa(o*%ZUA}klG;=0MBVnRFZta9T#p8r#+YoZKJaxf+?^T!NZU==fSvSQ1XYU zw9XP616@hn1mL7qqRU-+8YF&2AsyW=ePY%R*qF{1l@NrQA-)(#P@fWEsJa0_Y`hU? zHB5{{O}|6QR1(Zw?hCqlP;o{=iG7)=dGC6LJ7sZf%2lg!OXU4IpMQjvA;qx4zVmq;gn zD-%S7ljLNO{V=sS?GkflV^d~x z6{9a(DIvd-zt|6{+?IwG-hTNzV=lgr=RTwsEEhJIQs%29wFPq#4;mB4sRjNT5QoZfUs@j>=I__yz)?q$~)rZ^O)(MmY_hpga z5$qSMr?**igVLvzGAlSMzS3pRGfTwIDLXILAj-(E59NUvYY}uZFH@CkGJvqCF&F@* zimDZAM6j8OCS^_{m8cWY@is{T-GK_Jf^r{?6jV9oo?3u$Ahnk~*7rmFZ8g63ufeC=VOVS1Nrhw%CMvw!V^^}XH31Gs$ z=63@?{Getjg72&ZKs4pAt0XNU4pOs3GLWd2p!Sy7b|fdG7TmMqF7M`~VQo|;?45kKl{JEh6rBvT^+$RG9|D!EXQMudj}JFc5lO5}bE8fV^cAsD>R?BpKzI zvDb&aTWEbQ60T@(B=I=Al*l4?mzz|N`mRIWdU`))8A;?;^Z*}Y;75KzLqq+U5eSeg zkz_h5ZGlVN^-eLr0q!4o7JlD9h^NQ2lsfdo@q{^uAk;>8TbUHWKePwsNKvOz_E$>I z9E$F@56~kZGZRzNxwjH_i$<#qz9Hx}r*^w~ok%g$Oi&=2d^AWt6JOfmX6z{ysa%j< zJ(NFEX^AnoVH^(CW9)A<8T{^F!JU%8Q`OR;BGqgZJ!L$SyZzf95<7&Ul$M1t{!y`- zymGO{dzw`-=^k@2CngLzZoV2}B}ZY%9$`G=+ZJp5-ba*!k@(&=lw*~5ha#xwCUVG$ z9M>2Lr2Qgg3FFo>zQ5MT--r1gGEX3Vo) z`8T|al%kY;Wzslngt}vrN_0v(Yx2#LjPV2z`S)v@+$qCGL_DNvhNu8F9JU9!Y4|6{ zSE-a_rPI*Ijw$T{iO;fxzJo9wk`dj^@El5a<&3m@_lCrbhN;ZqGU9KeS!UBI)hAO* z7b>F_8E&OuXi+r<8qS>U@GK?>yEX@4n>z=U`YE^d$vIc*W3;8G&OD3zJbg>Q?^Cbq zv3$VOJdh_e*r+_rRASM)>|4S@RgPz@V{d$iWOZ0TVjNELlT1w3q8uHc`{<$!!qDde zqykeJuX&+-(%@DIf-i_pT_XzSX}pDi|N z!B4AyJ64ZYR%3^zkR*mqYNROy*RGB!ZsMeMa@QDnKJSmLQEabeSw{oLB;l|=BdSRu z$4{XKNI-x45@H5O4Tr4bnn`J;trCt&Rc3FD4|kHE*fpJPAgZ)(vTa^W2jn?yQu)si zly9Q(lmZVnk!4D-8MojYO9*YZptQ4i2Iq+g_+#PumK<;BFM_Ck0& zw@;Hpo^?05#^&i!cDAi{tdw?8ofaZZR}8S;_i+vsQ|uai!L~O0^j^%nqRyxna@WNnF=!?{=%4w|o!MyA<%e_hWPQZv?z{Jd^Xl= zf#P7B`yi!rKh0?$JhqdK_5M^uY4_>ir0)-6I6W&xVhN>KvKQf+JXIBY)wnN0#nS%F zy*3o(+rbB+L#4AB%Q4&B^~0{b&?4%i-c?p-S8cghhmhpik$CaR`=e*8nklp6xq#z^ zTAhWQV->Ycy6$6nnbs*cxOGagO|uijG2ZE+X=suO_t56+g2b*FB7)l*r@h3~!Gu4ZE=u8WhV96|$!R@7xgT?T}wXL#f1 zgli%k`)8utyRYi-=**e$PPMHscj%oNBUdgIaLYNNv z>iE-}yERxmLgVArE>{X`+%nF8iwmwAE?HE?FE##r`Ko;;%6@4Ayw1M7QZ>J#d%lJi zQr^7lx;E*$tfs!PQb)2sy;3W>;pFI08@o`#y&9mtcFaHb6koz!yKz!)4XC^QPZr|cSb7H%0;>RIB;vo?YY)M`Ceu1|t9CvRnA<61@%7MHKzs`8EdB9ZH z5gzvm;J1~5wwX{am^T*A`8}B?q!N1T=k@@5-2ZmtGCtHj5g$hec1UC$*q)>i3s*6!+#R2{TY4cowyJ=yTUjof`BP_88RIOt_Ag z{a78De&GJN?!3+odVJbiyPZ1KBdpg=wf6N9_ZJlc&NKQ(>L&1kT^!L&5g;)B;JluS z;G*TQor-$#BtcKvDve=L&D(e(MB25}_-zN>(u`vAF>&qLCPCQK^%CujaWg~!t>86k z{iEU;s~GzH>nturH0U*-28*A{UZ zu_M&tQLH&5h`s~-2t}`b2e6RF-Tifctd6_u0iA?htkngyZmX4k|3Yz(nW8}sHp6%f z;oCdFaiHn9o?A2_1lWj#<~3|BeM{8ZO^#96S~TQ8LXlzPV#Qd-@y~;GSjNvxb+BIT z(wGvvF7&yi1OV=Nuql4Iu*q?RQ(Q_^m&fipfM^e!H5K6HE^scbgOOm@Su~D}Ho>rv z|EMUzC_ix~QS@?3v&BQ-m%-*U2F$fH%&&^W#gD@cBEPvGdAsPw%dpY_ z0A(ovZ_c9?4*fX)EwmW^pZ#ifyTD52Zxq330ObpR*na|7n!TfI(>x;h-{ArBuoFxk z%*O8&1Mg*k_YYL4ZR59HQv5hLT)$4)g;0R6wUs`LBfxgu%{g`fz}M4fhLXFl;U99% zZ?q*J1lI0c#0eYKQEs{}w8hy%)vrP7*EZ%vAakNd@Vz4RS_cfV35Lj_+Wg3V ziC=&Ebi*iqUFC8kD1I%dex-BzV8n4aSahW`{!E1}$N|1k%4e-pzt)$$O?JDw`e*z# z)T%vDge0Gd%bAJmp9<@R@;QXYxjFKgNSwnie_ULYig190ZP6}ZTZzo|8)(S!&}GOF z{spzVQXh*Q?pyaOPWL`-k*k6bEA9aub>t9LY-R;)X?bkvTdVf`OT8|kY?y0jBKp~!}v z6PfEN^GAF9r%3IW%0erwL-jCN$5&U(H(AFw3Du~|XL6FhwxfFXOn&^Z#is-1T+GMK zN+@g3)_-Vq~Ou4{#y?8eIjBJKd!M(A;l+jZI&hjat3he;8Kgr2a}u|LNNqFgVof zJ?cKLJ2_Q9TMF)8P@ezeG_C!8&16Gsd0T#W&)9zd;P2si2H%kLzIpV(qaSc( z(^QK&z*CXW8rN}(m2UV_1kHdIuXIAJxOzVG|-Qd{SCmWMGv zt+8Eip0IQi-THEDn;b2EAPD+s`` zUBO@aT1zoJ45+2GXd`Nr_H!$>M#s)3BQGP0JTp(>*G|aCqM}`wPjD$aL~dyM3^HEq zX{DA6kFBs@q@84<7GAts`c3wITQI07mfF75=p^CoE?bh3UAReRt>O?%?$n@ixo?{* zl97DE{l0i(0h&%#G$InCqzV=TTtO4sUP%QUFu?&V_M34^&*ZG7>U9?uwUkNbqwhyr zXF43Zgq|@P1=g`mHzKq7F;a}L=}ZzdbT!+zmaoxJsi960z&vzBhVG0*Coei*9HciF zX!Gw0X+#t_+C5!25u%oQhG%$ceZ%T)GyxWXa0HTs9`h0ciPv6>C?C&#NxUGI{hqI4 z8TzQx6)*atQ<~oP=Lc=nhvHgEn~v;cxJ?gTrjo~rN-rL<(V{sDEefUnCgAzSfGe6f zDZ^k=FRekpc_pU=ja8o2;C1xilBb%{npa@K7@mvC;%YKfBBsDw7vuF!`YFdmd zRjuv$xaOg`>UiqdJmH;9Gqe;~C5g9Yf64|~ci>R-WC@2?!`ZZSAZy(q&|JOUj$s(H z-^(NRyqm&^8-r{Yi$6yll*M5A?i+PrHM3TuYeIdGE4vCqu|XkGp=N9Cs#DR`LGVbLQaBCx7Vz`PC9hX#YnJ^nW8j|10f?Cqk>5@W1Wc zhzGingwFo4bAy(poF%F=;s00K(b>OpAdnbFT3ra;f2AG0$bl>$+dha944p*?jQpE+ zbgvNvXpzDUwf#x;PufutUiyH{&E#2_%*TJzj*QNu$z*zPLP7tg9bpuc1e5$i7yI;2 z+R^;LZ^FD!{)B%_$zW+mLN9Wl%@|rzDWo=<&41-UHZ9;{+(e%M@)tSKfSgo<{KA=FgAgaHnL+QKlpyM*yY4iwFSw6+C*DYE_=ZoxtO%L@UrQyhF%hgQfH zL}&|3JG#dMXD6ZEh%{1qJziuCsO+*D(xKVB$bqcsV!}xNNjq||#)T1}Q76*3n0+~5 z{(i+V*IFDbO2&j2J2y`;EzCW9U6Mg+m{~CRrtj*Dz%QC*JUJouZI~R$bn~?=QUV_WEbeH>@;2jBOo`BS1?N$oeh6^3 z(ugMgo2T?pJRs#5mVZMOxhwE(C*8sU)}_)4-q%p*F!b|tA4 ze~go`fp}0Cg4Ill^%m~~sl`#LN*`ky%@KQb96`Hx^iS)ztY#`!B-sX(yknnew+gl> zSuXm-uv|$G-fYvvBsz8TeoOjlir3IkJ|*u zXX#L2SaVqhl~?_%m3{wzB0%v?)gM$3 zIp>Ig*VRq6Yw~$`OqTQAX)-L$I7g;?T6DkWcs-PpKAJWtyczYp2?@b-v=DFaoDJah zAI)|&5?7d6iSR()Wumo@5MFpjU~C@${8u(OdnNyUZ~I2g0oq*bYL!{D`_Jf8&*o-4 z!zbG=`KQy*w^r+UW9;O_qKIK1vRX8FK)qBo&Wa{kX!uk--`Sqcf7(0_k(o>MBN9i! z`}+@SsrC*i2DlQa*EmSZZ2vIsG^@#yqy&}tL@Sb?k@d^&vA_8m>i~48=wI*?U~ik` z-*JOy$(;=j@U6IIy%rvC`5VedHrG%KMT-1rI-!{_v(TlsD|mP}Vcp!;+8cY**nc;aR4_+iv2!@u1!I4G#>yGNyoY!QCr$lH_pX zJ<^LOSQ;MshVck(%U+M06pLu!x`tm-YssE7;$#@=`4`Hu+Q5!1D-J)d>CPL|2#ym= zj{KEgpFePIKTadnA2-RMkb&C*qGT!`ea^1mUwp;lia9cn;U})1}AoOm}?D;lu3-Qx? zo*)F-KpQRTbay@hgA-~M4n{0t0n1S0uq{MynQ|j5x3HhH z$hj$iW~mS*14AzWU>nz5lf+o%7O~tby!6`Z;8%DNZ`eCxKr?bglCBpPJ;25`A}%~4 z%nQw7AR=7XTiONT6Jun^wU=zMpZ7w9Q;U~qsoLiZ1CdAs-W_#B9F0(KePMcBjTTV4 z2M-5w6sXikP9Z9@G#CXGRY+*x&=ck5VP2?@R6r8F5{g;6V5FW9UD*^}ZEFOR02L9& zeA_o{G>FOah-t})`p^^uZD{fD^fpB&iT!RH)Rz(S=oK49=sILzFt`vKb{#tbF~Adu zOSO%iTQImykDFNt`cob^1&J%BcizmOl>*7HxBlq&=4;OkI$4e^UB>(p{K$nk^b7Oc%tY0ZI@3 zu1yU9gbEMp!oQ(LqfU`t)IEp*2xX?&&!(vTAC$diP}|+xuASiSS}0zuSb^dMcP;Mj zP@n}`pcHp^3GVLh6e#Yr6nB^4F4^gQ|M#<>{mlOGzRa36YhC%xbSC{0a&R6es)inM zl0j0ShKHuo4Z3z%k{O?{{(*+)yn5eV65n-*IUgF-;$Gd#7L_5@!WLEC)kaYFEZLbU z*tZ4UwNy<&H&i7#h3aRD7?YLqddi)K&51KlV5vd8j_G4;>TSd4adl*i_0)TWw2v}r zGH##lL(`}=&C>bhVezgECb9Cp=xzdV2@^P9SF@B977YW|v;xc1G++fru)Zl+It)ez zsW{TbeuK$OfCOj2{(B%nEU@cdy)q2gs+;i>Mr6X&OG|;x{23E+8B?U0?}ETTbb)^k zGDvbVIo<$sOM$)jnf$R?lqT?-y7I3$#PD#k@p>}m?lT3ZvW&Nr<><2U*E84TG6-NF zjS(Ur^1-+Sz^7p#R4#)sHWN->>WV}HnoF9EpOb^G2P8hr(Im*_2n6GE0MSQshDvkQ z8>09E!K5a+P&pvcSr#3$)bo69ZWt`;lZSbj$37yFZ0#){2ySl8X(!F%Ka|jPM-kS` z+H1`tqDq%ol;|Uh6%NdkgH;sy<|~y+3|fH&2*AHd^T?eGL6U~qsG|73z($WE8*mZT zR3Z8ZOxRb%mWcTEPLx~~=7fWFa}}#UWILi2vlbw_w22Zjqq3mEd3ctTrU9?-Gs({i zy$_`i&k+2=MHK~5G1`Ek;l;lWve!rpV$e#@7(p&(0Mh=#Oiy51c+rp2ba}hN>{sH1 zD2auKU}n7xLX)CWaLKpB3@FKASv8vY6N#kMJvCa5ST1Vbnr(6GDP ztp$w>Rj7|utZ23H`mx`({jJQaFYvR8V{4YdV2E8gDOw#WUA%gzAZ`P2+#{2qrV7^= zi1n?Uqg?bOf9>X(DPBW8iG6u$ThXR@1`$rR$Tv|AxqvfHF@v%?;;AYH1t8$D0iDiO zEh4V)RmNKZ5ZYrM)L>MU=f2UTTuhoQFY~b8`bbpfHbC@F4A&&f5j{tntXaOHY5uTc z@>QjmpqaaJtb+%yCo&{OGXABRZCS2mbLQRYU&NA@uNLk*t>{Qsz***Js-iE~NJh zLFpU~0*isnjWiPnd7p!1Y?n!&Jwe5k0)jw>^p96KA_kq?cFuhq{U#Q9b4Pu$$5Ldx zwMrS;QY@bp$k9F=ONhTsA$R}Dq#?^iCbT>H6F|_A%-_JwIN(j6s_S588aV*N3$78i zj$X=HTM2sngRBIKmSY3%7_$9KgCj_QXMi=f_bb*Mtrshy`JmwPRz;WAVJoNL`N6IC>Zy3oeUgRF zDY0U55CiMQVDbyz6dWrCLex)nuPOGxA844RY0Fb|{kb^fqBla*s~A2+m}4|))5Mj9 zWMk9Ffql;yGgp_9s7f;gN|lsRGr;~n+VL5#f*A(PS?bsQ>`JpIv<*Xwu6)8EvQ`=W zC5pSl^0`ly)Vy7$em{VGy0+F8eWu9sL>CVDYN_Y9VYGM7g> zm&Y;<%omm)Byy%+uly2NIi;PR%LHL$t{m0REWiGg9<{vmyz+*7cDr(A_xtMJ*2-w+ zo?9bH>(iBpZ!)XZFPw6~(p?8wpI{qeHVT(Y0~(T9W@hfVgW`wToQ{ zvcPJz^Py{ydzD@ui;d4{M|hRMq-u1Eb5|Gg14$+rJ${4Od%Lk_!(4f{18?sGWS4zo z>r>X|`-HuZt2+rP+g>lI`rC+{s5@Gwdrr}89#vbtHTzniy@;xDnB7fVc~5s^Pbzmm z8nVWLr4>Z6VF}syjNZtb*eozQlzw;6=8IkkI^_LxSQ>qxNO+j1Jf5kH4$Y<@YPrPW zykRg=Jfcl~!`Zx5Co%Wk0+Z6}I65DfJT;(u_Q>bLw5RKMr0ck!;`q1n=OG9u8wx-) z?LZQUbU;Umc(czKid3ONg_w-YBE9k6%sX@&a`*v4*NomTdAjHfk%)y{VnKlFh#P^Y zde^*9S#;lwjvpLPkbRD;*#y~-1u-Yjpk0Dz(P!wV$i^HMN1qa3Q=F@FFd)=yzYa$7 z5C?R2%0;MOP#B+T$kP0{M4+0yAQVA($8O8%hlIk(}#$pEOuSe*{yHBU&NM)zYW50!YzzVA=@Efg?C>|IbGq!T!cceWRo9Odmb0hkjo&4G$aotPWNh}_t+vR!)oN@sR+5) zOP!PVvE7G`CQr&uqt3q1r&I3-CLxX3PinNtUZ+TX(ND5Q$a^s_^~#U!>^HC=rBm!J zIG%I*1to=MJxmm8eF2N0-;~olnZZ@1M1t*YRL4-~9;iLuZh#6R>@J*o)s2lc z%y!)Db3UJSWzO!z$#Coo+f%NH*mk)^*qCh4qG_CB))}8pZsl>5F?wGzL@&4EpFgTz zF2)bj`d_<{Lof6{9Rslg$h)t1jMstKT;$z5E~2zYq7#RW(Qned4=TG_o!JnW zV&ODI*2^zZ{vJ+mouh@BM6Y?AP&AA;nWzBx>U*=WdAG3TyQkNbD0LKR%vig+pr_Mp zG!w^d6Yt$K*k9_y@4m;{g-T=X!j?4_RO##PnekDB`ZjC@Qy;+=yU{j<(Kd3|rghcx zTkqYb(@j=llAJAKEa_8Lz+A8vTFwmwkGbd95?(fHV|Gmth4T5|8!XQ4wmwktPTW@Uf#kF z%;rCZ@>kRHv^w!yD_SqB-@Q@b6UpWea@jRDs*9q%^oFg=%QSU9Ypnh2Rkh`0A3mQxVTj0!3)hVt*RvnjO~@s0d(Zw;&kf(Z8{-6?b*>lK;(m7{&2=N)ccaMl zqW}NI5XewppnpIB92_7tEIcAIDmo?xE-)c6DJV8I4ICAmoRyWHn-`Z|m=Ka*njc?O z2`nkAO{=KN3a)EOZD>rYY3&Zn>`3nF>1ppP9vB@O4nm)ro|*FhIXX5`J@==3ys>%t z&uZn;MqTg3&TiR$$NJIAR?+EM%L(MVXQBGO^%gPGPE%-h4vqY-P##mOp z(FJ^&J^d(HFzmII9d}`aoq~&Zzud3sUnR0mTEDs7>{UM-xyAQ^-6$54wfn*|i&4uK z8-<{2@eh)kY=9{1QJ#j;FxIuW!ox*N#yi%H?(YYVufkKOTRMcl5>Y&naLz_Wy%w1` z)?wO{$`YZKx4Y*Y$}cQTCcsRc+U_1#EB`XCH!ZU8&ioJ77th=M-(7JVR>I58=UYPw z`kEkc>t)i`6zJ4#=8tp=(9RAvhkUrYgR>OeFKSy3rsEt}k6Tq4(8 zU+N3%P5sy8?&~4UXhV77Wb*TQ5i}FB<|0fJB(%{2T_w3O1S9iXVUod?TL45xR|{x7 zB5P?ul;W-nUA&UOLQImj`2BX|hdD0G6scg+1fV*RIDBWge zp(v9}OSd@Hi`imG5PKq2RK%}|k5Su4TC*fPWUhYS4~0&T91tUp7DJtcB)gv&6;5L- znT9oWAdnjk-sg0R_B<#Zt_{y9SjoM#E={K>Et9EwEoBeNrOz3ApBvtW_10nafU&rA zIbo`5aM6y8wc0k`PV7W-^bgw{)|Zij&vNv8S=V0n4s@$JZymEfCAXfu-^(MzVm)a} zWorRlU&wa6oe*?v?H)^uu~?RO)$hRqIvA=2FmgD8_e4awg><;QXq;rxNJ&2uq6DP?8BuJKJoB$jyFX(^?dg?>a zP&4awM@gcndF56z>H~z<7&)h+7?m2tKWN`2u*fIeohos5E2uT8MLm=E_V>_h0PNcF zdAP*mKF%zDjtJzjTHJK`xa>sca$8+lb&_oA|Hm+HJ)k^@&)k%CwOKfnjLmr?Mn6$` zr&cohzB>Yc`}Z2L)9=>3yqK=m;>>IcwEf(qu9)rTnpIEDy4xoGliZZf$v1hYS$wK3 zOUmu11@J0DTX9h@?U1fM$OU9VKNJA>`pK)~aGS!o!>C^dyZL5luSf{`aX28RQ*(@y3%ncFw8ENQ3O}ZFREW~nRymj%%*)&{Dnp`>kbwu z+2Bw9{&1NM_)gCcCl9lWB_{bX?TNu~LNHPt0ag?YC$x>us$S)hjF;fCBLn{0#i$xh zsk?HgV*lF3PS)j_QIZm2?Jyjf>s&fzQK^epMQoX+iuU2NSq~cdtcA96J}|i$QNt_l z??Hd%Vzx8vC4!oE>c#S!hT$%-uVFM%HOgT)p(>sikej322@90?&%C(~=+_w^nQJ1# ztHiO7U|)gZ1US5^-t-_t7)}s^bJ70}!wHzEbCp;(Fq}|fMm#z{AaGL~8&zS!ps+Ba zcT<--USY*My1A(Whrb$x*~J=X7+C{M6!ia;q2e`;vsyYm zqO3d+)pfY_JB5tS%ljSZ_A6DH5eFOW2z;#}r4_yAzFa<}AOa$;(>+v-t_;A{x34R) zQ1&UT_UP4h>|4Hdn;l)vwkqg6`^hATfV=k4mKc7WSN;7KedbbNM>lZ2+V|bVfN`CA zH@vd51bPNu2a?VY9MC@Wt4~-BivC^pOCg6O`cyYMKwyhXEgJ_!DVNMCQeO^=Q@Ow(jt zm7%yJHgj1zPWw5j*F;94H$m?J+gT6A{*zQOp@!;>57 zvV$)(G}rJ$`3A)ey3!>pBpy8y-GrPUNoJ$)xG3Jh)6~2ovGw_JNu&X{WpKO?Ype!- zTe%sFUl)K-^0;yq-Q2OKbn3~afqOG?TSuIG>it!<bnpDiKi zwtWN3`c9mN!ddb|$7X#;OV6kBPvKlGTVyhHLu=2gapmpX^pwpCS}7NkUER-s9rVapOBBJ8pdqL`V@l6#vwPH#tWm*4uasub2KJ=3CKE$OD5WAka zL~&Pv{Pc7SH7U-Si=X${P&lzifZ+rmwx6{hF+J4N#g~$dujD~~_hT~NJu!EDd!^Yo6th!>{?g(ZilP97#*UL68@9NX=kEOx~7t~=N{E4rWd2a&UXT4;x> zM)^Duagp)aCB5lNU)$Q7e88RA7t`Kw+O>bsxg zyhWafS)uo2uhws3d}uEwp)ZfHR3C{iT&l$z7AF{II>oF ze14`#u0$x-B&mM3H@@Vuep}amHd=l(HWnalf4bn$ux|J94g9w{W_0_0>?o#$vQpo) zeYr@WrVNZY;Z*MYvH@~~0imk)*;fHijREg($r7vs``qMXk+kv#151;>FIk%GbG#{{ z3d*x|(@rr%4h|wK3d(%{MNSK?4JjBx7n~~Ro3}NR6B2muB3+A@juKP&#S%ND@>3n@}R2(0IPEM4hl>MBEbJumd-1 zDC9)Cw?qxVyz4_l&-=c6Ha(Ptzv7kn{SIx%a(0XO>wQYkSHp}tRidb3;p(0ScP zB2;)Ly{KZYE%(^u_a3yLqA^-^IuPSHDJG6jOhSFL zB}>Podl!UyOvJ=g8c)3+gnl0%LKyH)E@3q&kh&;=kI9IPF_3E^!T&lzs0Cj??A@@1GKiScJJ_At(bte2jL+T>l5!)!~d+$#Y%8sP!NBzkzJSmZuMDF)GpITB9e}{Xg>G+bS2D}dsJkSEWr+!IF4VQyz z`z|C$$!P}jM@*BX#p|Y_bEG9NXaKXiU^x_$n5bPX9Z24lcfn{{yEqPcMH4-ka#bu#8sQ=+WVf@Sk=~ z1i)W%nNzLOjYtZ=TQmQJNuw^vFX?8!$^ou;NGr6+Z?pnosx(3qAgOAWB|%UuK^AUJ z77R}OttavYp504b*vf98!odK>ZCLjGLDutv6cklrD^2pi7Dzya$P zyBtF2!mpD4R+5=KBS52vLP}L2F;$TX_ouHGdA1LQ4sAfkhay#5ncrdgcJe@?siLnB zQbfhYzgmHE4~5=##eRoU2Dy?XzCbe3?0A9FMEOiAU!X=={zDj$s;0!h3|*cMh~NoK z(kn|k%q5&EMma3aMl+ZBRcNaRjI%3iu*(a1C?pZhs#q+`sF7qkEN+x9f5nl5_)th* zQ?8cC67MVdYoSoy4)_YEA~78JQ?Jk_yyC+ze|3BS7BkSrE{8xAS~dgDB37*g!!U?% zrAou+rIE@p&mwu|@-4m0o3IjxvZ|wz1jj2k1&e(AoPr*Ksy=X8s2%VrtXk0`p>JRE ztStYLsZ!RiifN=sB)mqUp!#t!U1GZ$fL_@vUvUElw%OIn2iBsS)XBl#Rt4C9a+$1r zjV8E+F1_Y!oU9Rd4&ZIoRV$FMyr^8Do-NQ-O-2ZP%2kK}NTgbbO_p_CRz%2AC%Pow zz*nNh=O#=5WLT`-K&?akR`WqYsol1&Aq)@Iy#ZIX3b0i7s}zVQSWA>sV*Ds>z~AH; znxu1`K?w_!0P300DpN+9!EM=}A|xD!1o}|Eh-qZ|euL&v>eV<4w$S`ksN=G5e=F{p z-T*ivc<=zKqPOz)hlG?w$`rKNE!GkqwF+E)$^DkB7}#hkFXkW7rt&2nOTH5Ss;TZ# zH5XNq3XsbLENLy5sbG@)D-wIv@ujJ~pRASukk=E@Vd(lrub`R485rA^J2fh`pxVk$ z2V6+E{f%R{7NG(z)pSSzKzOFP@;hY7g^EbaE6zUV_hkoa-P>FQzyO%5wh*ZA*)3FTVgs91N_|1*(a%|WqT_2*t-osN*AT-=UAi1O|IWju{{X zkB*J$2L?@IjO$q#%qouS63BRb9-sG;tek?rBZvpAV90Lhqk$6*S%oIt5eVT6Cp-|+ zj*ljyzKj9irCvBl=e7#p8hmJ$5q<2CglEy{xto-AZE>vkN)w%ux$3D&v&qewLVO-3 z9z)5DjKO&=**1))vY=1gIn|)sTRJr@w;km~J3|{KS24v)eN5{zm8cVU=l5Up{C5UHpB?IPJq+@m%`XjX76V zamIAcR~dg;uLe7)|1g_Pdw&#*XGus{hXT_HLaS8gTS*AHvdj$yj9hHBq-BQL42BLU`BmEYaGr zWOBq4c(TOU&?&^a%(NZ$39)cMc==_NWc2%T>cZk=rP`IjWP{)eUE*YI)XFOhaM-{K zK>@hCxMOsDs?H#CT}eSF2z4fNm57}6cjjtBB*zb?wOOr@rH^a3!jbotYn0m=FR$0( zKqy?~yfStuRpQs}>vRp>SZv~0{8P9_Vm}&v2pu=BE@DZmHpbrkBJ|!+=v-%k zXMkD8NC^y!;uq#ILl<^P7?s7PUPHG^CAU1I=3ZC%^He1cEo|3oW8u?(U`|H1MS|Z?#jNz z+C=ZzzpzW_?^;ppIxBN1ukP&j?0C}hID@7KRrfT!_r7KA?v8KwZSEOq?|*3B%V)t4 zpV-?o+1IFl7e%pG&UGM*br2Vg83kf;_ipyA+E0ld&Ybw*9dKYvh@AjR9swVcbsmd6Khq-x?MBx-(}d&k;uABA%XJR5@$Oo&u=!(WZpSKRMv5 zEYD=g5oHU?IiiMG)3#fYwO^jIavHuCxv0|=epV;u`Fu{WMod>t!`6N5;&(cCc_Esm z)M9q2g(b{8c`6JQ2>Wq)qK6u`wcjNe1Br3Omur0EjMt!rt8PA;I zJ-tb!MC*Xk*ZLgNeR^WWd;ENfcUDb#~`?yI75Row@YWjH%_F@u`~DG!0*p!>%O5Nc`>M3al*Nf3nz z;6fchLv_>g@1dsc@5II68G;Hse1N^gA*x~e_dqZ5&}IJ5!#Vf)|GwmV33d;Ir{Fl~+W!pN3tHU|!a4*dK>8-Q{|;ZE&+)6fTwHtiIQzz2d-_?B9w&$y z+y0!RivPqN=;i%3=ve<{$48vim~H>Z>DI5jWB=7xome}tYvre%+Wcex=-X|!of=lr z4@MlF5Qf^-?HWT4*j3DkL)%DHENjnubBo09z#sH*L$|*uBAUK+5;4gg%eLRdWchdK zDv(;$(}TSO?+OZ?Qr_#kwT%%4xPs=4o?T{P*Sj1iUU<5F{%VnDmi@>HkbkrQhAT)0 ziaAF6Sd{x<6DRtgN%jj$fylELXcFt8{*!PY*Gnt)#@oTuI6*C=grFE z^>8EsJCT6b_<~^97nJ{Jt^L0MBGCW81Bf6PfC%{uAR^qrrZL8ce}|1W49&I7S1v7$1uU-B ztPE~#=fmwb?jPhHZ2*r>JC7T$Z!RwHo6k2U3Q#k6CJjY&0ob1vN@~bqEqf4DE|l8o zZo@0)GI-e!`7~k0LXH-5ALwXegOJd;E!19*M6&W4x@y+#jJdqq=&Z2Cd()i(cJ%f~ zC5Tt`l6v>LvA=##Icci@ed9v7jat5D@lA#2`x41Ynv~$(4ygfFQx~Tz3HQmy%Z{+p@J9DL%-OkAbH>AVn+M!<9?3 zC>~w~yFAFji1ldAJ0g~G#E+E zJvIp5{mwKPho|2(jFv6bOoXZmW&H~ZOUb6#yOANPD4x}Ml_*ZU9Mx!nxjyq4zTN$; zXlZ6{3#gwAjjeftI2`JZpaSQ;*;i3K9Z?Zo$Kf}zM!T~+V&>txR>HbiqV%cuyCn2r z2QVo^hNw|%CeXG_7duP$rq4R_{wXa#+ZG92oco;yZ9glBS%5J=s*AQH>Wkf=X*9}E zL$qDA0ke70wR@WhTEZDg?fk|hN;x>4KHUJ^&JhO-CY!R&o_=e@ES{SQGDWC^Qe9(C}BxEBP+g`nBJ#3s|~@Z8+*9 z&HT_-QRcN9FnIa0`~73)IV|PEow9f5Ptmq}`MHYtAZ#*;{}8j*s7)_-RH|Jl5r6M) zzfsWeLc)5u3$owR2f>jWLxp;1kEoD&omMjZ_L{R$QW3s<42^yUwQ5@k|Iz-wCJa59 z5~TFL{{w&h{VLhg>6;p)o89ASi?RW9ciHabHTiJrH2!?tXYjOLEcmSH=-Z`E`7o9u z@^C-Nh>npX4M+t|P^o_N4WnX5aQ}fO9_U|x8H)5_HxUa~R zVR?qX03x5_mhopOivNEBh*$Bke{7a1v0-rrfqwyniw=0u%YrBY)=vMo-NbVS8WB}% z;YfcztOovTw6dheFTo%qio*HFXeBqQ=ZG5&{#{cn zTJw(?5O7hA!TEpj!1om0SL@e>Oz`->P_4%82_oK2gT8Cx&G5mPw}~+hz};T(l$eh6m=;U#bj2{ zL?eucwbRR1GN7BI5l7Nrm#SVDnc>{2C)ET>AVNc7Myv3#fpthQ%K}+K3k*OkUL^gf z+4zWO1*mVkt}K?c7o$vgUt5OqH_t%7qKn>0#GvE}0}y1x+NQs1+{8SPy*=m7bZNlqEdc4Fqhpd%z$~~WhHuSwMX?NUgZD~ZS3u>6_yqk zZ<<=hD;>X%F0DS?H1}XaUXxNUZ@&5(8qHVrIVD0umgBZ{Dk<0{U%_x!xw&ng72;Mu zYPjau+`c}3!rH4~G@G2?v47&goC;pO;nZS)M6uhyWm zVGG}4r6?Q$z_(TFeiTfwUsMwQo1g)H%x1NKPrybSK9^}~>?qMe0 z;F2MgJ|D~EVKxe(K~vZlFkeRWtAxJbL%Ln4MtfT%l?Jzk-t(cJ4=(PxkVEdraeLKZ z9+EnG6i!d2Mb|K>GTs^p4Gg zAN!4~N&bwi^0fXr=`;T0L~tD4O!}Mk)YCd{^=9HLVM6(-_gXvd3l<+y3hS9a+0#0T zN=q;C#96T5(*{mVOFx71dH5{}fN1hAL?!P$dN6K_;tyY_1jQ$~gp5rTkjKybiqDDl z9XmL@{9}}Cmuc+ez)iHK@zPGz3Nx?0n^nnlRDi38^&PGQ>qDD88;%f}>_ITnL|CD| zEtQzz)XYsd8~?X!0r&-)IyTHd?GU$*$WkeWH$r>0H9XES>774@N#iks zZ?jIn>`AbDs>i-u2JwGCz%26AcL{`4A~zOYB0bI<>oJp1x12b|ocI+u-GY>FZOi}agO`a9@;0q+;&30yX%SnnP%`w zc&!k(THgIMIQ{E-&1ah`Ci~@Xvis%s{{RR+Uj!XrBzIqwRNsowc3dJa>R}o+gEq`N`hU^(SWSTb@N+fL`>uw4I5OG66$@?adlrY4b z&y7{X#LAkm0v#M&V0|Y7f$S zvjN4zL5bcZwCIm@-3>KTmT^7OF*3i6ULcIQ&@qHDh-tT&yE}uJrkM34y%$-dYC?UW zZY+{VEJ|9eGo2sWeMH_=>`xM09Mb5cok;w9qeJJoj`wV@TH{{L#kF0>QF%nmzl+B$ zHK#v_n@^0t)Qn?U(38H4&q@lkW=NQ_QM6`^;JG(uM<)E(k|5YfHhr5Q+N!>?kC#`F zAQh%=EKAJYlxV3LOqG(LYO7@&64E||p?RRTSr9Z`lBB<&25SNuz0))uP8yLGFdmMu zW=bY$P$8L4Zfp$yJgir#lal3@;=Z6e-;&~`8|Hnl>q?p$kpyRH6&I+h-oW7+b`RAm z=0iQ4Pc`_RGC36;udAl;#{R)QjeyYJt}!hG^+Qi8zc(T{_dwO&BXWwE*ZwP*N;7$g zKC%Qrm$eI~MhrdpDy%u<+jI}sWs0f`!+>Yf@6=UW+r>)M&0uYeSmuiyX*Fpa3YNdm zz;AjRDwoOCiZUOj{nV6c8RXPK0K{F-bVtalr_0*s&)T-tjlogeFa1j*U^2BMIhkEu zsaG}9`>lV269i}3gsRytuGy*uS$2V0B)&*iIG9$xNP1K`j*>Z9fjLB?FlZpN;*o`$ z1AMm4ol!-gl1G4d&i$B}TNao_s+tRb{ugHu#RBObq}v!2_7}2M&!Ipk9AqDye11aU zIcbhin_T0qEFKl`^+=vB-L0%Sj2qQW^zX4?qPp1gf(F|6hSo1VC71 z0+wo!JIo{LDGZQI^b5=)=P0sR%!6^1tFR)!f}*=t;6YlkXIrrsxR?qj+i4^Z7XGl7 zFLql@Flqo2Q5An*EQxN*ekLuU#3|OdD~Sp!G2{jkPUR7wm1MOQGwBsN*%c*wmdv6` z$>{+}&q`qupY&HHgw8+?y)rL?LK8aROivz65m)h0a?Vud^pMxkCiBHkO6ssk&JNhQ zSWL)VN;y^37cRZ$CXMG?AuC@p3N9u`t8fwkPBT}sr9q{Cdlt5XD>q5Y{N#b;>y>K) zP8-Zs_|Am{Q>CMaW$~}dj~A; zO@yS{JudeE8buBOZ5`;;0K|_d*a2tV*wqjT)^n%35&3-yRJHoJoevN!C5g>CM=6se>k6&joF@xn0|DyM%(oAo>cu4E7Y<-Sq^S%jVrOVcm6!;Id)6 z{q=6>WBS49cO zC`p<{2|c~PxZl@gsK0aDrQ11El|_!QrC;+{jx@Ai*FfQ9=%?YawXXP2Q?HU(6R;(Q z9N2fjR#Armi26J~kRh3>(#4oDDb46-Wh5-B^JpAbwQER z?;}ubWCkKIq}9Tb_(+F+=|U8&l#>mlzmg0oHVs>GqeRHq=A+`|cu9i`lY`wyA~8I| z&wn5weyqr_{lq_-MiANLHCh!rnxKW&u{;|4IBH5X)>~m$WH44P2_DKAtIHo6t&k32 z!km5@)7R)8k{vfg7|kWgn9mq59D|0!VGOT$N&51&PcckvDNd{%qmHLeT%e$slhh(1Va@>R5Le>0hJOb0o(6RFFnA&bUk@|Fow? z8c~#tL&mgq!!)^}G{y6@sjELZ%Z%BTf2zrh6?Xt*#f)V`y1d^6o0622&@5bMEzh{L zXzHwO!>rJWz1-vM`eCB@cWFl5U#lJQvL79eg2EJ@CAmpw1I~V3MNavrglJ$&p^a+m z8cKvz{31h+G*r?yKAEL#CNO_JF~SjYoH5s&8Yj3rC+eEyS21k6l9cA~=WC`#RQp6D z%b#APFRMA@gBbJmR_G6OP_JOt@gnq;^^SRihRN8EQkX&u5oCbm6{)iH1x4=h3{0t{ z=Y?Yg2hQ<@{cl!zN|MK9i{_bW!^w*hJmTjDi)mGyM9>DkHCWyGd9f47v2A8FXGy(FP5#cN>j!oHt^?b9 z`!4pC+3gd+w&Tk#p~s$kG_RxME>Z5@w=Oi_XmZzySJFoNdR;hQA$u8TilNa2PM7<5 z2^gv`o^e?Feyg0R6Z=0-w$wrn2*>t3Cl0)YcM6n;lO}}qu@1en4jk@5Hjow9Bc>!`>A~B`jO&0qX>m_3JhJ&Hv<$RwHK!!l$T5G54@+D z->GmlDWh;;A5gBLp>EM4n+p@TT+v12(1~0v)L+#JW3l`?XUsmPVgJp{&ZDa$Eog;C z5&PD7UdTNAO&q*9Q!E1k4Wv4j0VxsH;#6IY9mN`(F7z@))fnw-4AY-0VOu=@z-NJd zDlhN^^g^%u%=+azjPln0#~u9IbwSU$E~90UY6p)RKz8W>=zGt3L7xFd{gy#*WEL96 z@t{j{lIr{5cp(tIj+)g?1@7MdhW%JTDT*%nkkEY{C34L)`51@&ghOzxEOJfnbw-PQ zZ^Ztz-n>+6OogZ_0y=-vyFd#bdT`8B`eghb(O)pP=NX>ku`K^NQ1p32<#DFYws}ne zQ1IwxEW{ggcL2Sx&y@5!m@$a+}En@J$_XV0M}n3x`Cdg-8X55JdX-5X&}9DFS=dOcOvOy7-D#izasG z--l_Y5{*8fGX3+gq&F&34KM6rqaTMY6h|43C;SlXR^@|17+EmcYlwvta}w{{m}kPd zYLGdwp|~n|8Hb%Yl@A5jxB75TTEFh+gUF{}&JrC@wxA*rT`Xf&&8J>~;fcYQEWFDqipcp}!IhH`&CNd`V;% zuYD5T?uN2Ss$xr?_uR~7P)ihKK@yF{Vb7d*L*H!QoS2Ja6F`TY@Y8NZ&s8q^Fhvq4 zNj2GpHGSR>`MghD1Hsk^CDBl|D4odi225*q2^EGsZUl(_?t3EYeVWYr2T+IlDo5bD@^$bnZc=X&XetyySCfKX0=P!tXdfchQ*5gC9CU;)5>AaE#f zfd7z&p#MV}qT%3z5|ffcV$;CskqOD!DH(bBF*!xSsRd>ES;a;1<+T~{RmG)sEl~}P zInA)BLuE&9&rd*aU(&$9&~QLJ^7PE?WY=iVcn2)%uu!$MT-QDUT;C|)8s6P2TWvZz z&Vw|a&u{Nsw;mkcw>&mZ6`@9IRc3=epJCX6WfV+~_Z|4XzI>jo%WSs_%Qx`{4<>85yd;0Ls6ZE6 zdN7k_uj}C@*>5F4HP%m?U-UEndbHnAyx(NOr z|5lq~*x-HNcJju3dbO9!m|FVE?Tvx$TWIol5y89Zksu$l2?N(!8mD*$2F&jS4SSP` zauFSo7w3LM#hCfwne#X&lTA)*S0(LfhwXtp);E>upCC(6?{8X09Ucz5;<>kpkPZRk z!@2*DQHOs>0|1F}-50^=w-^wfjt>At;&aXMhv(j>@<-)l{D6$3S27iVW@m#FLMVSn z9Yn1>pBqY>Wdln&#J5m|-}~N~`R!8!U@&6Aeaj#1z?~K-3>h*P0llQ=$4cy~(?J8p zASl~$%FKb=3G&LQJJH-(Ar}5fA9Y1jWW5(+Qq1GiCX?Yqbz{=3gHelO?Wzu}(p^SS zt&_J&eXT@19f$X_?ytfu(!A$r_j7{bz&5!NG>av%etG<&1(BPmSrLL?dghhKOg-~q zqyde(p2r)<4P14KzhjEvymOuz)d%n+u(Ro=#%&h^1OMeX@w{<~p>5b)I>pa}vGMuxd&?oA^c0)@4OOednk9)<KZM41=d*0dvm55p$k=bb^*rO=UR3H8UMRE>A!Vn{9mL&mn4$Ma(9 zOwF958oMykfKkMONIF`4^*O!|MjBFv$2fvxlVeb&sfA$Qom17P&5!-<&gjFT;C!=; z*T2lUjfU*}FKLMI7*B+KSVAjLXBsP=@PwI@epCzyCh<;C-Xp@^(h||5F!~&fe@Fu- zI+!2`MjCJo-$+ywPKWDV6ruwE(uPM0KtM=a0n9I-CctP3-0djgS&fh z3GPmC9bAJCHs9nu=X|?g?bcRpRaaMc*Zg^=X8!c`T=(r_1NWCS@S4qI($Mcw(2Xul zH2tXy9S<@Wm)4Tv$!jQ)Wgy4NU0#5x4mDAg*8exsP-Pz?4I>SAup)IBX&7DInT&Z!wm85X#a?D(TuxZkFq9FaX?19uo<5cJZrSRMF z1KPJYB#5>R1qsa=rR#1psb+aPcxX%9<`1)c^wyB3Rz-yjt=T->Z)Vb7M{3GE^WQ!; z7VFA>Bfi8TE6;MS{NW{{p`SO~j?Vd(_;GRYNo8>em%Nr1Ds|*Q`M5L^>|Bs5dupZq zxV$*g)bw-w)Yjv1WfT2p^PudR!({DiV&S@hMF51e~FZJ=$LKMq@KxJw>eDBta8=ZY|@o7+k&{(Kjy-#OZ2 z8tUuE2NuD@qZ+Z72K{zDirU~o^ zoIYm5#!pBESDJ?<5Vu(n<8`{q?%RIH`J5TYW;SRR+9UFK9*n`c{Vv8rf{kP-=IhW3 zX^ei;{4-7>2CK#Bo20RC>%TKOUAFk45GfJ&iU?}2!;j|R>GIBzjB~LnYUl%UfB;1~ zI)GwI*Mr)J_%1J7x6Q)`ywO{*^d;=`p9s5$xxtTmp*44xeli11(Eg2CbN1W%n1fTt z?5TCAK#mCgi|FSkY_yz5V|Fz=P!8Z+O>1iOPQj z$8c51g^Ei@Bn16!v;R1U$-yR}30%M|yfaL73ix0VFqvfRRBOx^sw>beIEWp%G4DuJ z5+G|9D8A@V7wRYDs=IDtGLV9*IOOkB=x_GJMLjf#xi% zhQbR&5xwB8>ojz#Xk2M)gMT(_XSsR~{f-z43ah-6`E{?oW#WA37&+wnj%EmH>|XZ; zFKUG&YR*-6!8K|&DQX#CcXcsp@+NBY0IKu&IeMi;ckh2!9YUoSaALq3KG#D!3a&A| z{ofyGbeXixqo*v{d^b8OVb#|7kd$p(R#~8sI}?#{yBMw!|OA1|+2> zNX|Q|XlMu`B}#Av$uyx5nj(F5OQgIGENx2ESx6M`m+N>J&daLgBAx`|Fh=^Nq&=Jj znm5L$_AuhsHgZj_D~zx@)UsYmF71!7r`0gyPAO2ec7Z5`l<>F_D0@J{t`<`mlOm4D z%nxW%X-vb9rmX7&ps7rSsm;Nj_xq^8f(+qCH^1h0O>U}exfyMcjBYnkSci8{iv|&_fgBd9 zBwNlI1mMB6$^l|s~3H#9q_GC*|$V{0&dZ=bPxqyVI^`g zteYm5rvQ(+ylLd?{%5)tE73Ns{H})_AD$vygRBPk3LDDr#mgczgn78#MNx#sy*$vo zNUidPbdi(%aP}~<@dqGwO>q=qmJwl|f>be&R#lBt++u8{P(#(|Qt|Xd!81?UZMq1X zn*h_0*l{ap{iu-eqHN}<^7V@B`!q+fA0^t@)#a@Tc9BB4sNz?bOo-ThX`bi<{?$>A{;_f_ zdm_6ux)Qi%hqhQgz2V!aXq%{+fh&emV73fV9>b@aA1F-*1GG^?*2*Sz*~`!dPM&6$ zz7&nXdf(AJ`Qv75u$iV)gW_~^vWK|GfY=uvOoFKvFQ+uUf}9ig+=4cVAB$r6zL|Kj zFdL;cRHeQlLb1lJZ5-^{Ix6KuYu>RUWyi~3hTHxtBE8Jfa)3yEsJvY?%OJ_%(!-j2@YT@LuPiR^?PpT{-+o_>5Pem&Jk=6_qK}5 zHmQ!ojJvk3r4^$FS-^-vsb$4O+yp5CwtM@D= zRuud9EH`++Z(@a{#vArrIV3*v+`@Et$K?S zv$whdlh0F{;I5aSzD_vvE2Tx3ScTZV6_-OwpN&e5d>r52ai2VDznfHJ(${`F>^gxr zc=Q$h-}?GRq#GWP2MXun*?1exo|+{NnoQdVbPAjlN(byC#qp?`0uPa$Ph>PDf;>=u zdZ2zCOzxxz?DKmv1$zu7!*zt8n1`(n1><(bzLz@T9ggGcPd*un&m4|;8p>=J?K*DH zrWcEJZ7yLR(M%jPyF!}}9MJ}M%(bb$IvLS`8-)f_)0k<}0i| z!!U6Q`B@BBpP_p_g*h%($2{$b9f!;CRX=lD4@Mefr*R*r4ZyMF{4*bPXRu@kX+Sg7 z9W(9LLyR3F*aWlm4Sf))Stj<{3g39HQ(>h~@z^V~%#;Hnafx>AGoqDvCiHV$*R%Mi z&J5#o4B$ES;u$4=5rzE$b>jLTCj)=#=S!N=98b{5$zHj*A{$huGaeFpNQX4WE|gg| zkH3>&LisJ|l+b1N`zvJa2=I9&pm@Sb$g5 zOs+MO34uX01Df`&V8ZFlj&^Ex#*)I?cstSWJbuhFos@z0j$#JPK0ZQ_OKK(mawVI` z1K-MxmAjC`V+D>LCWa` zG?CrZHU2)W)#tTM;`MF*b+GO_EH>#t)|WkYy<=dV^Lp+KBn*QMVqZ5{z|*(%BjUjkh*CY^59=WJqmH{9HFt5pzhqJuiBQ3LT5gM&bhJe5HaF%cG6Qax)A{l*ht