From dc037fa46123e2c50f8b0465bbf4976520905286 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=AC=E9=91=AB=20=E6=9D=A8?= <571944791@qq.com> Date: Tue, 25 May 2021 10:41:52 +0800 Subject: [PATCH 01/34] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20=20=E6=89=8B?= =?UTF-8?q?=E6=9C=BA=E5=8F=B7+=E9=AA=8C=E8=AF=81=E7=A0=81=EF=BC=8C?= =?UTF-8?q?=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-dev.bat | 20 +++++ package-prod.bat | 21 +++++ .../MobileSmsCodeAuthenticationToken.java | 82 +++++++++++++++++++ zlt-config/pom.xml | 53 ++++++++++++ .../main/resources/application-dev.properties | 16 ++-- .../resources/application-prod.properties | 13 +-- .../src/main/resources/bootstrap.properties | 10 ++- .../central/oauth/config/SecurityConfig.java | 6 ++ .../oauth/config/TokenGranterConfig.java | 3 + .../oauth/granter/MobileSmsCodeGranter.java | 52 ++++++++++++ .../MobileSmsCodeAuthenticationProvider.java | 45 ++++++++++ ...leSmsCodeAuthenticationSecurityConfig.java | 34 ++++++++ 12 files changed, 341 insertions(+), 14 deletions(-) create mode 100644 package-dev.bat create mode 100644 package-prod.bat create mode 100644 zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/token/MobileSmsCodeAuthenticationToken.java create mode 100644 zlt-uaa/src/main/java/com/central/oauth/granter/MobileSmsCodeGranter.java create mode 100644 zlt-uaa/src/main/java/com/central/oauth/mobile/smscode/MobileSmsCodeAuthenticationProvider.java create mode 100644 zlt-uaa/src/main/java/com/central/oauth/mobile/smscode/MobileSmsCodeAuthenticationSecurityConfig.java diff --git a/package-dev.bat b/package-dev.bat new file mode 100644 index 00000000..30eac903 --- /dev/null +++ b/package-dev.bat @@ -0,0 +1,20 @@ +@echo on +@echo ============================================================= +@echo $ $ +@echo $ 和谐医疗 Microservices-Platform $ +@echo $ $ +@echo $ $ +@echo $ $ +@echo $ ZLT All Right Reserved $ +@echo $ Copyright (C) 2019-2050 $ +@echo $ $ +@echo ============================================================= +@echo. +@echo off + +@title ZLT Microservices-Platform +@color 0e + +call mvn clean package -Dmaven.test.skip=true -Pdev + +pause \ No newline at end of file diff --git a/package-prod.bat b/package-prod.bat new file mode 100644 index 00000000..177089c0 --- /dev/null +++ b/package-prod.bat @@ -0,0 +1,21 @@ +@echo on +@echo ============================================================= +@echo $ $ +@echo $ 和谐医疗 Microservices-Platform $ +@echo $ $ +@echo $ $ +@echo $ $ +@echo $ ZLT All Right Reserved $ +@echo $ Copyright (C) 2019-2050 $ +@echo $ $ +@echo ============================================================= +@echo. +@echo off + +@title ZLT Microservices-Platform +@color 0e + +call mvn clean package -Dmaven.test.skip=true -Pprod + +pause + diff --git a/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/token/MobileSmsCodeAuthenticationToken.java b/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/token/MobileSmsCodeAuthenticationToken.java new file mode 100644 index 00000000..3551196c --- /dev/null +++ b/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/token/MobileSmsCodeAuthenticationToken.java @@ -0,0 +1,82 @@ +package com.central.oauth2.common.token; + +import org.springframework.security.authentication.AbstractAuthenticationToken; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.SpringSecurityCoreVersion; + +import java.util.Collection; + +/** + * @Auther: Yang Binxin + * @Date: 2021/5/25 + * @Description: com.central.oauth2.common.token + * @version: 1.0 + */ +public class MobileSmsCodeAuthenticationToken extends AbstractAuthenticationToken { + private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID; + + // ~ Instance fields + // ================================================================================================ + + private final Object principal; + private Object credentials; + + // ~ Constructors + // =================================================================================================== + + /** + * This constructor can be safely used by any code that wishes to create a + * UsernamePasswordAuthenticationToken, as the {@link #isAuthenticated()} + * will return false. + */ + public MobileSmsCodeAuthenticationToken(String mobile, String smsCode) { + super(null); + this.principal = mobile; + this.credentials = smsCode; + setAuthenticated(false); + } + + /** + * This constructor should only be used by AuthenticationManager or + * AuthenticationProvider implementations that are satisfied with + * producing a trusted (i.e. {@link #isAuthenticated()} = true) + * authentication token. + * + * @param principal + * @param authorities + */ + public MobileSmsCodeAuthenticationToken(Object principal, Object credentials, + Collection authorities) { + super(authorities); + this.principal = principal; + this.credentials = credentials; + super.setAuthenticated(true); + } + + // ~ Methods + // ======================================================================================================== + + @Override + public Object getCredentials() { + return this.credentials; + } + + @Override + public Object getPrincipal() { + return this.principal; + } + + @Override + public void setAuthenticated(boolean isAuthenticated) { + if (isAuthenticated) { + throw new IllegalArgumentException( + "Cannot set this token to trusted - use constructor which takes a GrantedAuthority list instead"); + } + super.setAuthenticated(false); + } + + @Override + public void eraseCredentials() { + super.eraseCredentials(); + } +} diff --git a/zlt-config/pom.xml b/zlt-config/pom.xml index faf5228a..f0781215 100644 --- a/zlt-config/pom.xml +++ b/zlt-config/pom.xml @@ -17,4 +17,57 @@ spring-cloud-starter-alibaba-nacos-config + + + + dev + + dev + 39.106.15.230:8848 + nacos + nacos + + + false + + + + + prod + + prod + 39.106.15.230:8848 + nacos + nacos + + + true + + + + + + + src/main/resources + + true + + + application.properties + application-dev.properties + application-prod.properties + application-test.properties + + + + src/main/resources + true + + + application.properties + application-${profileActive}.properties + + + + diff --git a/zlt-config/src/main/resources/application-dev.properties b/zlt-config/src/main/resources/application-dev.properties index 091ab6e3..2b1e2ed8 100644 --- a/zlt-config/src/main/resources/application-dev.properties +++ b/zlt-config/src/main/resources/application-dev.properties @@ -1,11 +1,11 @@ ########################## 统一变量配置 ########################## ##### 数据库配置 -zlt.datasource.ip=192.168.28.130 +zlt.datasource.ip=39.106.15.230 zlt.datasource.username=root -zlt.datasource.password=1q2w3e4r +zlt.datasource.password=root ##### redis配置 -spring.redis.host=192.168.28.130 +spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.timeout=5000 @@ -31,7 +31,13 @@ zlt.s3.bucketName=test zlt.trace.enable=true ##### 负载均衡隔离(version隔离,只适用于开发环境) -zlt.ribbon.isolation.enabled=false +zlt.ribbon.isolation.enabled=true ##### mybatis-plus打印完整sql(只适用于开发环境) -mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl \ No newline at end of file +mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl + +##### 关闭nacos的心跳检测日志 +logging.level.com.alibaba.nacos.client.naming=error + +##### SpringBoot日志级别 +logging.level.root=INFO \ No newline at end of file diff --git a/zlt-config/src/main/resources/application-prod.properties b/zlt-config/src/main/resources/application-prod.properties index 5fe2ca3d..632d05d9 100644 --- a/zlt-config/src/main/resources/application-prod.properties +++ b/zlt-config/src/main/resources/application-prod.properties @@ -1,13 +1,16 @@ ########################## 统一变量配置 ########################## ##### 数据库配置 -zlt.datasource.ip=192.168.28.131 +zlt.datasource.ip=39.106.15.230 zlt.datasource.username=root -zlt.datasource.password=1q2w3e4r +zlt.datasource.password=root ##### redis配置 -spring.redis.sentinel.master=mymaster -spring.redis.sentinel.nodes=192.168.28.130:26380,192.168.28.131:26381 -spring.redis.password=1q2w3e4r +spring.redis.host=127.0.0.1 +spring.redis.port=6379 +spring.redis.timeout=5000 +#spring.redis.sentinel.master=mymaster +#spring.redis.sentinel.nodes=192.168.28.130:26380,192.168.28.131:26381 +#spring.redis.password=1q2w3e4r ##### elasticsearch配置 zlt.elasticsearch.uris=192.168.28.130:9200 diff --git a/zlt-config/src/main/resources/bootstrap.properties b/zlt-config/src/main/resources/bootstrap.properties index 5fe08308..2b6005cf 100644 --- a/zlt-config/src/main/resources/bootstrap.properties +++ b/zlt-config/src/main/resources/bootstrap.properties @@ -1,11 +1,13 @@ ########################## bootstrap级别通用配置 ########################## # 默认开发环境 -spring.profiles.active=dev +spring.profiles.active=@profileActive@ ##### nacos(注册中心和配置中心)地址 -spring.cloud.nacos.server-addr=192.168.28.130:8848 -#spring.cloud.nacos.username=nacos -#spring.cloud.nacos.password=nacos +spring.cloud.nacos.server-addr=@nacosIp@ +spring.cloud.nacos.username=@nacosUserName@ +spring.cloud.nacos.password=@nacosPassWord@ + +##### naocs配置文件配置 spring.cloud.nacos.config.file-extension=yml spring.cloud.nacos.config.shared-dataids=common.yml spring.cloud.nacos.config.refreshable-dataids=common.yml diff --git a/zlt-uaa/src/main/java/com/central/oauth/config/SecurityConfig.java b/zlt-uaa/src/main/java/com/central/oauth/config/SecurityConfig.java index aa308742..800eabee 100644 --- a/zlt-uaa/src/main/java/com/central/oauth/config/SecurityConfig.java +++ b/zlt-uaa/src/main/java/com/central/oauth/config/SecurityConfig.java @@ -4,6 +4,7 @@ import com.central.common.constant.SecurityConstants; import com.central.common.properties.TenantProperties; import com.central.oauth.filter.LoginProcessSetTenantFilter; import com.central.oauth.handler.OauthLogoutSuccessHandler; +import com.central.oauth.mobile.smscode.MobileSmsCodeAuthenticationSecurityConfig; import com.central.oauth.tenant.TenantAuthenticationSecurityConfig; import com.central.oauth.tenant.TenantUsernamePasswordAuthenticationFilter; import com.central.oauth.mobile.MobileAuthenticationSecurityConfig; @@ -62,6 +63,9 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private MobileAuthenticationSecurityConfig mobileAuthenticationSecurityConfig; + @Autowired + private MobileSmsCodeAuthenticationSecurityConfig mobileSmsCodeAuthenticationSecurityConfig; + @Autowired private AuthenticationManager authenticationManager; @@ -108,6 +112,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { .and() .apply(mobileAuthenticationSecurityConfig) .and() + .apply(mobileSmsCodeAuthenticationSecurityConfig) + .and() .addFilterBefore(new LoginProcessSetTenantFilter(), UsernamePasswordAuthenticationFilter.class) .csrf().disable() // 解决不允许显示在iframe的问题 diff --git a/zlt-uaa/src/main/java/com/central/oauth/config/TokenGranterConfig.java b/zlt-uaa/src/main/java/com/central/oauth/config/TokenGranterConfig.java index b6adc821..bef0667a 100644 --- a/zlt-uaa/src/main/java/com/central/oauth/config/TokenGranterConfig.java +++ b/zlt-uaa/src/main/java/com/central/oauth/config/TokenGranterConfig.java @@ -1,6 +1,7 @@ package com.central.oauth.config; import com.central.oauth.granter.MobilePwdGranter; +import com.central.oauth.granter.MobileSmsCodeGranter; import com.central.oauth.granter.OpenIdGranter; import com.central.oauth.granter.PwdImgCodeGranter; import com.central.oauth.service.IValidateCodeService; @@ -112,6 +113,8 @@ public class TokenGranterConfig { tokenGranters.add(new OpenIdGranter(authenticationManager, tokenServices, clientDetailsService, requestFactory)); // 添加手机号加密码授权模式 tokenGranters.add(new MobilePwdGranter(authenticationManager, tokenServices, clientDetailsService, requestFactory)); + // 添加手机号加验证码授权模式 + tokenGranters.add(new MobileSmsCodeGranter(authenticationManager, tokenServices, clientDetailsService, requestFactory)); } return tokenGranters; } diff --git a/zlt-uaa/src/main/java/com/central/oauth/granter/MobileSmsCodeGranter.java b/zlt-uaa/src/main/java/com/central/oauth/granter/MobileSmsCodeGranter.java new file mode 100644 index 00000000..79c6f202 --- /dev/null +++ b/zlt-uaa/src/main/java/com/central/oauth/granter/MobileSmsCodeGranter.java @@ -0,0 +1,52 @@ +package com.central.oauth.granter; + +import com.central.oauth.service.IValidateCodeService; +import com.central.oauth2.common.token.MobileSmsCodeAuthenticationToken; +import org.springframework.security.authentication.AbstractAuthenticationToken; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.core.Authentication; +import org.springframework.security.oauth2.common.exceptions.InvalidGrantException; +import org.springframework.security.oauth2.provider.*; +import org.springframework.security.oauth2.provider.token.AbstractTokenGranter; +import org.springframework.security.oauth2.provider.token.AuthorizationServerTokenServices; + +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * @Auther: Yang Binxin + * @Date: 2021/5/25 + * @Description: 手机号+验证码 + * @version: 1.0 + */ +public class MobileSmsCodeGranter extends AbstractTokenGranter { + private static final String GRANT_TYPE = "mobile_sms_code"; + private final AuthenticationManager authenticationManager; + + public MobileSmsCodeGranter(AuthenticationManager authenticationManager, + AuthorizationServerTokenServices tokenServices, + ClientDetailsService clientDetailsService, + OAuth2RequestFactory requestFactory) { + super(tokenServices, clientDetailsService, requestFactory, GRANT_TYPE); + this.authenticationManager = authenticationManager; + } + + @Override + protected OAuth2Authentication getOAuth2Authentication(ClientDetails client, TokenRequest tokenRequest) { + Map parameters = new LinkedHashMap<>(tokenRequest.getRequestParameters()); + String mobile = parameters.get("mobile"); + String smsCode = parameters.get("sms_code"); + // Protect from downstream leaks of sms_code + parameters.remove("sms_code"); + + Authentication userAuth = new MobileSmsCodeAuthenticationToken(mobile,smsCode); + ((AbstractAuthenticationToken) userAuth).setDetails(parameters); + userAuth = authenticationManager.authenticate(userAuth); + if (userAuth == null || !userAuth.isAuthenticated()) { + throw new InvalidGrantException("Could not authenticate mobile: " + mobile); + } + + OAuth2Request storedOAuth2Request = getRequestFactory().createOAuth2Request(client, tokenRequest); + return new OAuth2Authentication(storedOAuth2Request, userAuth); + } +} diff --git a/zlt-uaa/src/main/java/com/central/oauth/mobile/smscode/MobileSmsCodeAuthenticationProvider.java b/zlt-uaa/src/main/java/com/central/oauth/mobile/smscode/MobileSmsCodeAuthenticationProvider.java new file mode 100644 index 00000000..efbb18f3 --- /dev/null +++ b/zlt-uaa/src/main/java/com/central/oauth/mobile/smscode/MobileSmsCodeAuthenticationProvider.java @@ -0,0 +1,45 @@ +package com.central.oauth.mobile.smscode; + +import com.central.oauth.service.IValidateCodeService; +import com.central.oauth.service.ZltUserDetailsService; +import com.central.oauth2.common.token.MobileSmsCodeAuthenticationToken; +import lombok.Setter; +import org.springframework.security.authentication.AuthenticationProvider; +import org.springframework.security.authentication.InternalAuthenticationServiceException; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.core.userdetails.UserDetails; + +/** + * @Auther: Yang Binxin + * @Date: 2021/5/25 + * @Description: com.central.oauth.mobile.smscode + * @version: 1.0 + */ +@Setter +public class MobileSmsCodeAuthenticationProvider implements AuthenticationProvider { + private ZltUserDetailsService userDetailsService; + private IValidateCodeService validateCodeService; + + @Override + public Authentication authenticate(Authentication authentication) throws AuthenticationException { + MobileSmsCodeAuthenticationToken authenticationToken = (MobileSmsCodeAuthenticationToken)authentication; + String mobile = (String) authenticationToken.getPrincipal(); + String smsCode = (String) authenticationToken.getCredentials(); + // 手机号获取用户信息 + UserDetails user = userDetailsService.loadUserByMobile(mobile); + if (user == null) { + throw new InternalAuthenticationServiceException("手机号错误"); + } + // 校验验证码 + validateCodeService.validate(mobile,smsCode); + MobileSmsCodeAuthenticationToken authenticationResult = new MobileSmsCodeAuthenticationToken(mobile,smsCode,user.getAuthorities()); + authenticationResult.setDetails(authenticationToken.getDetails()); + return authenticationResult; + } + + @Override + public boolean supports(Class authentication) { + return MobileSmsCodeAuthenticationToken.class.isAssignableFrom(authentication); + } +} diff --git a/zlt-uaa/src/main/java/com/central/oauth/mobile/smscode/MobileSmsCodeAuthenticationSecurityConfig.java b/zlt-uaa/src/main/java/com/central/oauth/mobile/smscode/MobileSmsCodeAuthenticationSecurityConfig.java new file mode 100644 index 00000000..dc5dfc77 --- /dev/null +++ b/zlt-uaa/src/main/java/com/central/oauth/mobile/smscode/MobileSmsCodeAuthenticationSecurityConfig.java @@ -0,0 +1,34 @@ +package com.central.oauth.mobile.smscode; + +import com.central.oauth.mobile.MobileAuthenticationProvider; +import com.central.oauth.service.IValidateCodeService; +import com.central.oauth.service.ZltUserDetailsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.config.annotation.SecurityConfigurerAdapter; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.web.DefaultSecurityFilterChain; +import org.springframework.stereotype.Component; + +/** + * @Auther: Yang Binxin + * @Date: 2021/5/25 + * @Description: 手机+验证码 + * @version: 1.0 + */ +@Component +public class MobileSmsCodeAuthenticationSecurityConfig extends SecurityConfigurerAdapter { + @Autowired + private ZltUserDetailsService userDetailsService; + + @Autowired + private IValidateCodeService validateCodeService; + + @Override + public void configure(HttpSecurity http) { + //mobile_sms_code provider + MobileSmsCodeAuthenticationProvider provider = new MobileSmsCodeAuthenticationProvider(); + provider.setUserDetailsService(userDetailsService); + provider.setValidateCodeService(validateCodeService); + http.authenticationProvider(provider); + } +} -- Gitee From 7a60f1e61dd8b45b4d7a7bdbb0d98ba6c99eb57a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=BD=AC=E9=91=AB?= <18235529318@163.com> Date: Mon, 2 Aug 2021 07:58:19 +0800 Subject: [PATCH 02/34] =?UTF-8?q?=E5=88=A0=E9=99=A4web?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/bootstrap.yml | 8 +- zlt-web/back-web/Dockerfile | 9 - zlt-web/back-web/pom.xml | 67 - .../com/central/web/BackWebApplication.java | 14 - .../src/main/resources/application.yml | 2 - .../resources/static/assets/css/admin.css | 700 -------- .../resources/static/assets/css/console.css | 29 - .../resources/static/assets/css/login.css | 141 -- .../static/assets/css/theme-blue.css | 102 -- .../static/assets/css/theme/black.css | 85 - .../static/assets/css/theme/blue-side.css | 175 -- .../static/assets/css/theme/blue-white.css | 175 -- .../static/assets/css/theme/blue.css | 176 -- .../static/assets/css/theme/cyan.css | 176 -- .../static/assets/css/theme/green-dark.css | 176 -- .../static/assets/css/theme/green.css | 176 -- .../static/assets/css/theme/red-dark.css | 176 -- .../static/assets/css/theme/red-white.css | 176 -- .../resources/static/assets/css/theme/red.css | 176 -- .../static/assets/css/theme/white.css | 127 -- .../resources/static/assets/css/tpl-theme.css | 60 - .../static/assets/images/bg_login.png | Bin 73703 -> 0 bytes .../static/assets/images/bg_login2.jpg | Bin 603252 -> 0 bytes .../static/assets/images/bg_login_backup.png | Bin 68062 -> 0 bytes .../resources/static/assets/images/head.png | Bin 53185 -> 0 bytes .../static/assets/images/icon_date.png | Bin 314 -> 0 bytes .../static/assets/images/img_theme_1.png | Bin 266 -> 0 bytes .../static/assets/images/img_theme_10.png | Bin 258 -> 0 bytes .../static/assets/images/img_theme_11.png | Bin 252 -> 0 bytes .../static/assets/images/img_theme_12.png | Bin 261 -> 0 bytes .../static/assets/images/img_theme_2.png | Bin 256 -> 0 bytes .../static/assets/images/img_theme_3.png | Bin 265 -> 0 bytes .../static/assets/images/img_theme_4.png | Bin 259 -> 0 bytes .../static/assets/images/img_theme_5.png | Bin 258 -> 0 bytes .../static/assets/images/img_theme_6.png | Bin 239 -> 0 bytes .../static/assets/images/img_theme_7.png | Bin 259 -> 0 bytes .../static/assets/images/img_theme_8.png | Bin 257 -> 0 bytes .../static/assets/images/img_theme_9.png | Bin 249 -> 0 bytes .../resources/static/assets/images/logo.png | Bin 3665 -> 0 bytes .../resources/static/assets/images/logo_1.png | Bin 52283 -> 0 bytes .../resources/static/assets/images/logo_2.png | Bin 67445 -> 0 bytes .../static/assets/images/message.png | Bin 1873 -> 0 bytes .../static/assets/images/welcome.png | Bin 17743 -> 0 bytes .../main/resources/static/assets/js/common.js | 27 - .../main/resources/static/assets/js/main.js | 43 - .../assets/libs/baidu-map/MarkerClusterer.js | 640 -------- .../assets/libs/baidu-map/TextIconOverlay.js | 1040 ------------ .../static/assets/libs/jquery-3.2.1.min.js | 4 - .../static/assets/libs/layui/css/layui.css | 2 - .../assets/libs/layui/css/layui.mobile.css | 2 - .../assets/libs/layui/css/modules/code.css | 2 - .../css/modules/laydate/default/laydate.css | 2 - .../css/modules/layer/default/icon-ext.png | Bin 5911 -> 0 bytes .../layui/css/modules/layer/default/icon.png | Bin 11493 -> 0 bytes .../layui/css/modules/layer/default/layer.css | 2 - .../css/modules/layer/default/loading-0.gif | Bin 5793 -> 0 bytes .../css/modules/layer/default/loading-1.gif | Bin 701 -> 0 bytes .../css/modules/layer/default/loading-2.gif | Bin 1787 -> 0 bytes .../assets/libs/layui/font/iconfont.eot | Bin 40144 -> 0 bytes .../assets/libs/layui/font/iconfont.svg | 468 ------ .../assets/libs/layui/font/iconfont.ttf | Bin 39968 -> 0 bytes .../assets/libs/layui/font/iconfont.woff | Bin 26328 -> 0 bytes .../assets/libs/layui/images/face/0.gif | Bin 2689 -> 0 bytes .../assets/libs/layui/images/face/1.gif | Bin 5514 -> 0 bytes .../assets/libs/layui/images/face/10.gif | Bin 2797 -> 0 bytes .../assets/libs/layui/images/face/11.gif | Bin 4121 -> 0 bytes .../assets/libs/layui/images/face/12.gif | Bin 3361 -> 0 bytes .../assets/libs/layui/images/face/13.gif | Bin 7425 -> 0 bytes .../assets/libs/layui/images/face/14.gif | Bin 2375 -> 0 bytes .../assets/libs/layui/images/face/15.gif | Bin 1793 -> 0 bytes .../assets/libs/layui/images/face/16.gif | Bin 6721 -> 0 bytes .../assets/libs/layui/images/face/17.gif | Bin 4439 -> 0 bytes .../assets/libs/layui/images/face/18.gif | Bin 3017 -> 0 bytes .../assets/libs/layui/images/face/19.gif | Bin 3040 -> 0 bytes .../assets/libs/layui/images/face/2.gif | Bin 3222 -> 0 bytes .../assets/libs/layui/images/face/20.gif | Bin 5144 -> 0 bytes .../assets/libs/layui/images/face/21.gif | Bin 5191 -> 0 bytes .../assets/libs/layui/images/face/22.gif | Bin 9823 -> 0 bytes .../assets/libs/layui/images/face/23.gif | Bin 3792 -> 0 bytes .../assets/libs/layui/images/face/24.gif | Bin 8096 -> 0 bytes .../assets/libs/layui/images/face/25.gif | Bin 3127 -> 0 bytes .../assets/libs/layui/images/face/26.gif | Bin 3291 -> 0 bytes .../assets/libs/layui/images/face/27.gif | Bin 4377 -> 0 bytes .../assets/libs/layui/images/face/28.gif | Bin 2793 -> 0 bytes .../assets/libs/layui/images/face/29.gif | Bin 4854 -> 0 bytes .../assets/libs/layui/images/face/3.gif | Bin 4017 -> 0 bytes .../assets/libs/layui/images/face/30.gif | Bin 2555 -> 0 bytes .../assets/libs/layui/images/face/31.gif | Bin 2002 -> 0 bytes .../assets/libs/layui/images/face/32.gif | Bin 3481 -> 0 bytes .../assets/libs/layui/images/face/33.gif | Bin 2454 -> 0 bytes .../assets/libs/layui/images/face/34.gif | Bin 3700 -> 0 bytes .../assets/libs/layui/images/face/35.gif | Bin 1800 -> 0 bytes .../assets/libs/layui/images/face/36.gif | Bin 2331 -> 0 bytes .../assets/libs/layui/images/face/37.gif | Bin 1513 -> 0 bytes .../assets/libs/layui/images/face/38.gif | Bin 3615 -> 0 bytes .../assets/libs/layui/images/face/39.gif | Bin 6495 -> 0 bytes .../assets/libs/layui/images/face/4.gif | Bin 5689 -> 0 bytes .../assets/libs/layui/images/face/40.gif | Bin 3154 -> 0 bytes .../assets/libs/layui/images/face/41.gif | Bin 3644 -> 0 bytes .../assets/libs/layui/images/face/42.gif | Bin 5305 -> 0 bytes .../assets/libs/layui/images/face/43.gif | Bin 2674 -> 0 bytes .../assets/libs/layui/images/face/44.gif | Bin 4126 -> 0 bytes .../assets/libs/layui/images/face/45.gif | Bin 3417 -> 0 bytes .../assets/libs/layui/images/face/46.gif | Bin 3007 -> 0 bytes .../assets/libs/layui/images/face/47.gif | Bin 2333 -> 0 bytes .../assets/libs/layui/images/face/48.gif | Bin 2689 -> 0 bytes .../assets/libs/layui/images/face/49.gif | Bin 2315 -> 0 bytes .../assets/libs/layui/images/face/5.gif | Bin 4567 -> 0 bytes .../assets/libs/layui/images/face/50.gif | Bin 5866 -> 0 bytes .../assets/libs/layui/images/face/51.gif | Bin 2785 -> 0 bytes .../assets/libs/layui/images/face/52.gif | Bin 777 -> 0 bytes .../assets/libs/layui/images/face/53.gif | Bin 2127 -> 0 bytes .../assets/libs/layui/images/face/54.gif | Bin 2196 -> 0 bytes .../assets/libs/layui/images/face/55.gif | Bin 1971 -> 0 bytes .../assets/libs/layui/images/face/56.gif | Bin 2034 -> 0 bytes .../assets/libs/layui/images/face/57.gif | Bin 2705 -> 0 bytes .../assets/libs/layui/images/face/58.gif | Bin 2258 -> 0 bytes .../assets/libs/layui/images/face/59.gif | Bin 10311 -> 0 bytes .../assets/libs/layui/images/face/6.gif | Bin 2213 -> 0 bytes .../assets/libs/layui/images/face/60.gif | Bin 3245 -> 0 bytes .../assets/libs/layui/images/face/61.gif | Bin 2495 -> 0 bytes .../assets/libs/layui/images/face/62.gif | Bin 2017 -> 0 bytes .../assets/libs/layui/images/face/63.gif | Bin 5871 -> 0 bytes .../assets/libs/layui/images/face/64.gif | Bin 6448 -> 0 bytes .../assets/libs/layui/images/face/65.gif | Bin 3576 -> 0 bytes .../assets/libs/layui/images/face/66.gif | Bin 3029 -> 0 bytes .../assets/libs/layui/images/face/67.gif | Bin 2701 -> 0 bytes .../assets/libs/layui/images/face/68.gif | Bin 1424 -> 0 bytes .../assets/libs/layui/images/face/69.gif | Bin 2431 -> 0 bytes .../assets/libs/layui/images/face/7.gif | Bin 3398 -> 0 bytes .../assets/libs/layui/images/face/70.gif | Bin 4590 -> 0 bytes .../assets/libs/layui/images/face/71.gif | Bin 5304 -> 0 bytes .../assets/libs/layui/images/face/8.gif | Bin 4050 -> 0 bytes .../assets/libs/layui/images/face/9.gif | Bin 4221 -> 0 bytes .../assets/libs/layui/lay/modules/carousel.js | 2 - .../assets/libs/layui/lay/modules/code.js | 2 - .../assets/libs/layui/lay/modules/element.js | 2 - .../assets/libs/layui/lay/modules/flow.js | 2 - .../assets/libs/layui/lay/modules/form.js | 2 - .../assets/libs/layui/lay/modules/jquery.js | 5 - .../assets/libs/layui/lay/modules/laydate.js | 2 - .../assets/libs/layui/lay/modules/layedit.js | 2 - .../assets/libs/layui/lay/modules/layer.js | 2 - .../assets/libs/layui/lay/modules/laypage.js | 2 - .../assets/libs/layui/lay/modules/laytpl.js | 2 - .../assets/libs/layui/lay/modules/mobile.js | 2 - .../assets/libs/layui/lay/modules/rate.js | 2 - .../assets/libs/layui/lay/modules/table.js | 2 - .../assets/libs/layui/lay/modules/tree.js | 2 - .../assets/libs/layui/lay/modules/upload.js | 2 - .../assets/libs/layui/lay/modules/util.js | 2 - .../static/assets/libs/layui/layui.all.js | 5 - .../static/assets/libs/layui/layui.js | 2 - .../resources/static/assets/libs/login.js | 57 - .../static/assets/libs/pandyle.min.js | 1 - .../main/resources/static/assets/libs/q.js | 100 -- .../libs/respond.js/1.4.2/respond.min.js | 6 - .../zTree/css/metroStyle/img/line_conn.png | Bin 933 -> 0 bytes .../libs/zTree/css/metroStyle/img/loading.gif | Bin 381 -> 0 bytes .../libs/zTree/css/metroStyle/img/metro.gif | Bin 4679 -> 0 bytes .../libs/zTree/css/metroStyle/img/metro.png | Bin 5283 -> 0 bytes .../libs/zTree/css/metroStyle/metroStyle.css | 96 -- .../zTree/css/zTreeStyle/img/line_conn.gif | Bin 45 -> 0 bytes .../libs/zTree/css/zTreeStyle/img/loading.gif | Bin 381 -> 0 bytes .../css/zTreeStyle/img/zTreeStandard.gif | Bin 5564 -> 0 bytes .../css/zTreeStyle/img/zTreeStandard.png | Bin 11173 -> 0 bytes .../libs/zTree/css/zTreeStyle/zTreeStyle.css | 97 -- .../libs/zTree/js/jquery.ztree.all-3.5.min.js | 161 -- .../src/main/resources/static/docs/.nojekyll | 0 .../resources/static/docs/FileSaver.min.js | 2 - .../src/main/resources/static/docs/README.md | 1174 -------------- .../src/main/resources/static/docs/cover.md | 12 - .../static/docs/generater_theme.html | 209 --- .../src/main/resources/static/docs/index.html | 31 - .../src/main/resources/static/docs/logo.png | Bin 3674 -> 0 bytes .../src/main/resources/static/docs/theme.tpl | 102 -- .../src/main/resources/static/index.html | 95 -- .../src/main/resources/static/login.html | 129 -- .../main/resources/static/module/Math.uuid.js | 63 - .../src/main/resources/static/module/admin.js | 341 ---- .../main/resources/static/module/apiUrl.js | 1 - .../main/resources/static/module/config.js | 63 - .../main/resources/static/module/echarts.js | 39 - .../resources/static/module/echartsTheme.js | 82 - .../module/formSelects/formSelects-v4.all.js | 1415 ----------------- .../module/formSelects/formSelects-v4.css | 156 -- .../module/formSelects/formSelects-v4.js | 1412 ---------------- .../src/main/resources/static/module/index.js | 291 ---- .../static/module/treetable-lay/treetable.css | 18 - .../static/module/treetable-lay/treetable.js | 198 --- .../static/pages/attestation/app.html | 237 --- .../main/resources/static/pages/console.html | 308 ---- .../resources/static/pages/console_old.html | 16 - .../resources/static/pages/files/files.html | 108 -- .../static/pages/generator/list.html | 78 - .../main/resources/static/pages/header.html | 45 - .../resources/static/pages/log/auditLog.html | 70 - .../static/pages/log/slowQueryLog.html | 61 - .../resources/static/pages/log/sysLog.html | 69 - .../static/pages/search/index_manager.html | 107 -- .../pages/search/index_manager_form.html | 54 - .../pages/search/index_manager_view.html | 56 - .../static/pages/search/user_search.html | 67 - .../src/main/resources/static/pages/side.html | 38 - .../resources/static/pages/system/menus.html | 192 --- .../static/pages/system/menus_form.html | 140 -- .../resources/static/pages/system/myInfo.html | 112 -- .../resources/static/pages/system/role.html | 253 --- .../resources/static/pages/system/tokens.html | 110 -- .../resources/static/pages/system/user.html | 221 --- .../static/pages/system/user_form.html | 99 -- .../resources/static/pages/tpl/iframe.html | 32 - .../resources/static/pages/tpl/message.html | 78 - .../resources/static/pages/tpl/password.html | 63 - .../resources/static/pages/tpl/theme.html | 55 - zlt-web/pom.xml | 17 - 216 files changed, 4 insertions(+), 14235 deletions(-) delete mode 100644 zlt-web/back-web/Dockerfile delete mode 100644 zlt-web/back-web/pom.xml delete mode 100644 zlt-web/back-web/src/main/java/com/central/web/BackWebApplication.java delete mode 100644 zlt-web/back-web/src/main/resources/application.yml delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/css/admin.css delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/css/console.css delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/css/login.css delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/css/theme-blue.css delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/css/theme/black.css delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/css/theme/blue-side.css delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/css/theme/blue-white.css delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/css/theme/blue.css delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/css/theme/cyan.css delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/css/theme/green-dark.css delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/css/theme/green.css delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/css/theme/red-dark.css delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/css/theme/red-white.css delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/css/theme/red.css delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/css/theme/white.css delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/css/tpl-theme.css delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/images/bg_login.png delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/images/bg_login2.jpg delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/images/bg_login_backup.png delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/images/head.png delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/images/icon_date.png delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/images/img_theme_1.png delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/images/img_theme_10.png delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/images/img_theme_11.png delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/images/img_theme_12.png delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/images/img_theme_2.png delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/images/img_theme_3.png delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/images/img_theme_4.png delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/images/img_theme_5.png delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/images/img_theme_6.png delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/images/img_theme_7.png delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/images/img_theme_8.png delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/images/img_theme_9.png delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/images/logo.png delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/images/logo_1.png delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/images/logo_2.png delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/images/message.png delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/images/welcome.png delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/js/common.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/js/main.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/baidu-map/MarkerClusterer.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/baidu-map/TextIconOverlay.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/jquery-3.2.1.min.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/css/layui.css delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/css/layui.mobile.css delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/css/modules/code.css delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/css/modules/laydate/default/laydate.css delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/css/modules/layer/default/icon-ext.png delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/css/modules/layer/default/icon.png delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/css/modules/layer/default/layer.css delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/css/modules/layer/default/loading-0.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/css/modules/layer/default/loading-1.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/css/modules/layer/default/loading-2.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/font/iconfont.eot delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/font/iconfont.svg delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/font/iconfont.ttf delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/font/iconfont.woff delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/0.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/1.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/10.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/11.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/12.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/13.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/14.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/15.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/16.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/17.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/18.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/19.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/2.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/20.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/21.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/22.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/23.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/24.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/25.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/26.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/27.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/28.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/29.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/3.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/30.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/31.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/32.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/33.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/34.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/35.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/36.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/37.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/38.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/39.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/4.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/40.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/41.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/42.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/43.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/44.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/45.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/46.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/47.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/48.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/49.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/5.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/50.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/51.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/52.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/53.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/54.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/55.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/56.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/57.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/58.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/59.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/6.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/60.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/61.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/62.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/63.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/64.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/65.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/66.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/67.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/68.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/69.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/7.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/70.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/71.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/8.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/images/face/9.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/lay/modules/carousel.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/lay/modules/code.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/lay/modules/element.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/lay/modules/flow.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/lay/modules/form.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/lay/modules/jquery.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/lay/modules/laydate.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/lay/modules/layedit.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/lay/modules/layer.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/lay/modules/laypage.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/lay/modules/laytpl.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/lay/modules/mobile.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/lay/modules/rate.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/lay/modules/table.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/lay/modules/tree.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/lay/modules/upload.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/lay/modules/util.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/layui.all.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/layui/layui.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/login.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/pandyle.min.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/q.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/respond.js/1.4.2/respond.min.js delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/zTree/css/metroStyle/img/line_conn.png delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/zTree/css/metroStyle/img/loading.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/zTree/css/metroStyle/img/metro.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/zTree/css/metroStyle/img/metro.png delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/zTree/css/metroStyle/metroStyle.css delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/zTree/css/zTreeStyle/img/line_conn.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/zTree/css/zTreeStyle/img/loading.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/zTree/css/zTreeStyle/img/zTreeStandard.gif delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/zTree/css/zTreeStyle/img/zTreeStandard.png delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/zTree/css/zTreeStyle/zTreeStyle.css delete mode 100644 zlt-web/back-web/src/main/resources/static/assets/libs/zTree/js/jquery.ztree.all-3.5.min.js delete mode 100644 zlt-web/back-web/src/main/resources/static/docs/.nojekyll delete mode 100644 zlt-web/back-web/src/main/resources/static/docs/FileSaver.min.js delete mode 100644 zlt-web/back-web/src/main/resources/static/docs/README.md delete mode 100644 zlt-web/back-web/src/main/resources/static/docs/cover.md delete mode 100644 zlt-web/back-web/src/main/resources/static/docs/generater_theme.html delete mode 100644 zlt-web/back-web/src/main/resources/static/docs/index.html delete mode 100644 zlt-web/back-web/src/main/resources/static/docs/logo.png delete mode 100644 zlt-web/back-web/src/main/resources/static/docs/theme.tpl delete mode 100644 zlt-web/back-web/src/main/resources/static/index.html delete mode 100644 zlt-web/back-web/src/main/resources/static/login.html delete mode 100644 zlt-web/back-web/src/main/resources/static/module/Math.uuid.js delete mode 100644 zlt-web/back-web/src/main/resources/static/module/admin.js delete mode 100644 zlt-web/back-web/src/main/resources/static/module/apiUrl.js delete mode 100644 zlt-web/back-web/src/main/resources/static/module/config.js delete mode 100644 zlt-web/back-web/src/main/resources/static/module/echarts.js delete mode 100644 zlt-web/back-web/src/main/resources/static/module/echartsTheme.js delete mode 100644 zlt-web/back-web/src/main/resources/static/module/formSelects/formSelects-v4.all.js delete mode 100644 zlt-web/back-web/src/main/resources/static/module/formSelects/formSelects-v4.css delete mode 100644 zlt-web/back-web/src/main/resources/static/module/formSelects/formSelects-v4.js delete mode 100644 zlt-web/back-web/src/main/resources/static/module/index.js delete mode 100644 zlt-web/back-web/src/main/resources/static/module/treetable-lay/treetable.css delete mode 100644 zlt-web/back-web/src/main/resources/static/module/treetable-lay/treetable.js delete mode 100644 zlt-web/back-web/src/main/resources/static/pages/attestation/app.html delete mode 100644 zlt-web/back-web/src/main/resources/static/pages/console.html delete mode 100644 zlt-web/back-web/src/main/resources/static/pages/console_old.html delete mode 100644 zlt-web/back-web/src/main/resources/static/pages/files/files.html delete mode 100644 zlt-web/back-web/src/main/resources/static/pages/generator/list.html delete mode 100644 zlt-web/back-web/src/main/resources/static/pages/header.html delete mode 100644 zlt-web/back-web/src/main/resources/static/pages/log/auditLog.html delete mode 100644 zlt-web/back-web/src/main/resources/static/pages/log/slowQueryLog.html delete mode 100644 zlt-web/back-web/src/main/resources/static/pages/log/sysLog.html delete mode 100644 zlt-web/back-web/src/main/resources/static/pages/search/index_manager.html delete mode 100644 zlt-web/back-web/src/main/resources/static/pages/search/index_manager_form.html delete mode 100644 zlt-web/back-web/src/main/resources/static/pages/search/index_manager_view.html delete mode 100644 zlt-web/back-web/src/main/resources/static/pages/search/user_search.html delete mode 100644 zlt-web/back-web/src/main/resources/static/pages/side.html delete mode 100644 zlt-web/back-web/src/main/resources/static/pages/system/menus.html delete mode 100644 zlt-web/back-web/src/main/resources/static/pages/system/menus_form.html delete mode 100644 zlt-web/back-web/src/main/resources/static/pages/system/myInfo.html delete mode 100644 zlt-web/back-web/src/main/resources/static/pages/system/role.html delete mode 100644 zlt-web/back-web/src/main/resources/static/pages/system/tokens.html delete mode 100644 zlt-web/back-web/src/main/resources/static/pages/system/user.html delete mode 100644 zlt-web/back-web/src/main/resources/static/pages/system/user_form.html delete mode 100644 zlt-web/back-web/src/main/resources/static/pages/tpl/iframe.html delete mode 100644 zlt-web/back-web/src/main/resources/static/pages/tpl/message.html delete mode 100644 zlt-web/back-web/src/main/resources/static/pages/tpl/password.html delete mode 100644 zlt-web/back-web/src/main/resources/static/pages/tpl/theme.html delete mode 100644 zlt-web/pom.xml diff --git a/zlt-business/user-center/src/main/resources/bootstrap.yml b/zlt-business/user-center/src/main/resources/bootstrap.yml index 37d61a52..a8723864 100644 --- a/zlt-business/user-center/src/main/resources/bootstrap.yml +++ b/zlt-business/user-center/src/main/resources/bootstrap.yml @@ -4,8 +4,8 @@ server: spring: application: name: user-center -# cloud: -# nacos: + cloud: + nacos: # discovery: -# metadata: -# version: zlt \ No newline at end of file +# ip: 39.106.15.230 +# port: 7000 \ No newline at end of file diff --git a/zlt-web/back-web/Dockerfile b/zlt-web/back-web/Dockerfile deleted file mode 100644 index 517420c5..00000000 --- a/zlt-web/back-web/Dockerfile +++ /dev/null @@ -1,9 +0,0 @@ -FROM nginx:1.21.0 - -LABEL MAINTAINER=Andy -RUN rm -rf /usr/share/nginx/html/* -COPY src/main/resources/static/* /usr/share/nginx/html/ - -# docker run --name zlt-web \ -# -v /host/path/apiUrl.js:/usr/share/nginx/html/module/apiUrl.js:ro -# -d zlt-web:4.5 \ No newline at end of file diff --git a/zlt-web/back-web/pom.xml b/zlt-web/back-web/pom.xml deleted file mode 100644 index 4d996ce0..00000000 --- a/zlt-web/back-web/pom.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - 4.0.0 - - - com.zlt - zlt-web - 4.5.0 - - back-web - 后台管理前端 - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-devtools - true - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - repackage - - - - - - com.spotify - docker-maven-plugin - - ${docker.image.prefix}/${project.artifactId} - - ${project.version} - latest - - true - ${docker.baseImage} - ${docker.volumes} - - ${docker.java.opts} - - ["sh","-c","java $JAVA_OPTS ${docker.java.security.egd} -jar /${project.build.finalName}.jar"] - - - / - ${project.build.directory} - ${project.build.finalName}.jar - - - - - - ${project.artifactId} - - diff --git a/zlt-web/back-web/src/main/java/com/central/web/BackWebApplication.java b/zlt-web/back-web/src/main/java/com/central/web/BackWebApplication.java deleted file mode 100644 index 7bee83b2..00000000 --- a/zlt-web/back-web/src/main/java/com/central/web/BackWebApplication.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.central.web; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -/** - * @author zlt - */ -@SpringBootApplication -public class BackWebApplication { - public static void main(String[] args) { - SpringApplication.run(BackWebApplication.class, args); - } -} diff --git a/zlt-web/back-web/src/main/resources/application.yml b/zlt-web/back-web/src/main/resources/application.yml deleted file mode 100644 index fb49eec5..00000000 --- a/zlt-web/back-web/src/main/resources/application.yml +++ /dev/null @@ -1,2 +0,0 @@ -server: - port: 8066 \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/assets/css/admin.css b/zlt-web/back-web/src/main/resources/static/assets/css/admin.css deleted file mode 100644 index 9fddd337..00000000 --- a/zlt-web/back-web/src/main/resources/static/assets/css/admin.css +++ /dev/null @@ -1,700 +0,0 @@ -/** EasyWeb */ -html { - background-color: #f2f2f2; - color: #666; -} - -/** header样式 */ -/** 导航栏下面的线条 */ -.layui-layout-admin .layui-header .layui-nav .layui-this:after, .layui-layout-admin .layui-header .layui-nav-bar { - height: 2px; - background-color: #03152A; - top: 0 !important; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-item { - line-height: 50px; /** 高度重写 */ -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-item .layui-nav-child { - top: 55px; -} - -.layui-layout-admin .layui-header .layui-nav-item .layui-icon { - font-size: 16px; /** 图标大小 */ -} - -.layui-layout-admin .layui-header .layui-layout-left { - left: 220px; - padding: 0 10px; - transition: all .3s; -} - -.layui-layout-admin .layui-header .layui-layout-right { - padding: 0; -} - -/** 重写header的背景色和字体颜色 */ -.layui-layout-admin .layui-header { - background-color: #fff; - height: 50px; - box-shadow: 0 1px 4px 0 rgba(0, 21, 41, .08); -} - -.layui-layout-admin .layui-header a { - color: #333; - padding: 0 15px; -} - -.layui-layout-admin .layui-header a:hover { - color: #333; -} - -.layui-layout-admin .layui-header .layui-nav-child a { - color: #333 !important; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-more { - border-color: #666 transparent transparent; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-mored { - border-color: transparent transparent #666; -} - -/** logo部分样式 */ -.layui-layout-admin .layui-header .layui-logo { - width: 220px; - background-color: #001529; - box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .15); - color: #eee; - font-size: 16px; - font-family: Myriad Pro, Helvetica Neue, Arial, Helvetica, sans-serif; - font-weight: 300; - overflow: hidden; - line-height: 50px; - transition: all .3s; -} - -.layui-layout-admin .layui-header .layui-logo img { - height: 40px; -} - -.layui-layout-admin .layui-header .layui-logo cite { - font-style: normal; -} - -.layui-layout-admin .layui-header .layui-nav-img { - margin-right: 5px; -} - -.layui-layout-admin .layui-header .layui-nav-img + cite { - margin-right: 5px; -} - -.layui-layout-admin .layui-header .layui-nav-child dd { - text-align: center; -} - -.layui-layout-admin .layui-header a { - cursor: pointer; -} - -/** //header样式结束 */ - -/** 侧边栏样式 */ -.layui-layout-admin .layui-side .layui-side-scroll { - width: 240px; -} - -.layui-layout-admin .layui-side { - top: 50px; - width: 220px; - background-color: #001529; - transition: all .3s; - -webkit-transition: all .3s; -} - -.layui-layout-admin .layui-side .layui-nav { - width: 220px; - background-color: transparent; -} - -.layui-layout-admin .layui-side .layui-nav .layui-nav-item > a:hover { - background: transparent; -} - -.layui-layout-admin .layui-side .layui-nav .layui-nav-item > .layui-nav-child { - padding: 5px 0; - background-color: rgba(0, 0, 0, .3) !important; -} - -.layui-layout-admin .layui-side .layui-nav .layui-nav-more { - right: 15px; -} - -.layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child a { - padding-left: 50px; /** 导航字体位置 */ -} - -.layui-layout-admin .layui-side .layui-nav .layui-nav-item > a { - padding-top: 8px; - padding-bottom: 8px; -} - -/** 侧边栏样式结束 */ - -/** 主体部分样式 */ -.layui-layout-admin .layui-body { - left: 220px; - top: 50px; - transition: left .3s; - overflow-y: scroll; - padding: 15px; -} - -/** //主体部分样式结束 */ - -/** 底部样式 */ -.layui-layout-admin .layui-footer { - left: 220px; - background: #fff; - transition: all .3s; -} - -/** 底部样式结束 */ - -/** 侧导航折叠样式PC */ -.layui-layout-admin.admin-nav-mini .layui-header .layui-logo { - width: 60px; -} - -.layui-layout-admin.admin-nav-mini .layui-header .layui-logo cite { - display: none; -} - -.layui-layout-admin.admin-nav-mini .layui-header .layui-layout-left { - left: 60px; -} - -.layui-layout-admin.admin-nav-mini .layui-side { - width: 60px; -} - -.layui-layout-admin.admin-nav-mini .layui-side .layui-nav { - width: 60px; -} - -.layui-layout-admin.admin-nav-mini .layui-side-scroll { - width: 80px; -} - -/** 侧导航隐藏文字 */ -.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item > a > cite { - display: none; -} - -.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item > a .layui-nav-more { - display: none; -} - -.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item > a { - overflow: visible; -} - -.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-itemed .layui-nav-child { - display: none; -} - -.layui-layout-admin.admin-nav-mini .layui-body { - left: 60px; -} - -.layui-layout-admin.admin-nav-mini .layui-footer { - left: 60px; -} - -.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-itemed > a { - background: rgba(0, 0, 0, .3); -} - -/** 修改折叠的图标 */ -.layui-layout-admin.admin-nav-mini .layui-header .layui-icon-shrink-right:before { - content: "\e66b"; -} - -/** //侧导航折叠样式结束 */ - -/** 移动设备样式 */ -@media screen and (max-width: 750px) { - .layui-layout-admin .layui-side { - position: fixed; - left: -260px; - z-index: 10000; - } - - .layui-layout-admin .layui-body { - left: 0; - } - - .layui-layout-admin .layui-footer { - left: 0; - } - - .layui-layout-admin .layui-header .layui-logo { - left: -260px; - } - - .layui-layout-admin .layui-header .layui-layout-left { - left: 0; - } - - .layui-layout-admin .layui-header .layui-icon-shrink-right:before { - content: "\e66b"; - } - - /* 移动设备侧导航折叠样式 */ - .layui-layout-admin.admin-nav-mini .layui-header .layui-logo { - width: 220px; - left: 0; - z-index: 10001; - } - - .layui-layout-admin.admin-nav-mini .layui-header { - z-index: auto; - } - - .layui-layout-admin.admin-nav-mini .layui-header .layui-logo cite { - display: inline-block; - } - - .layui-layout-admin.admin-nav-mini .layui-header .layui-layout-left { - left: 0; - } - - .layui-layout-admin.admin-nav-mini .layui-side { - width: 220px; - left: 0; - } - - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav { - width: 220px; - } - - .layui-layout-admin.admin-nav-mini .layui-side-scroll { - width: 240px; - } - - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item > a > cite { - display: inline-block; - } - - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item > a .layui-nav-more { - display: inline-block; - } - - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item > a { - overflow: hidden; - } - - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-itemed .layui-nav-child { - display: block; - } - - .layui-layout-admin.admin-nav-mini .layui-body { - left: 0; - } - - .layui-layout-admin.admin-nav-mini .layui-footer { - left: 0; - } - - /** 移动设备遮罩层 */ - .layui-layout-admin.admin-nav-mini .site-mobile-shade { - content: ''; - position: fixed; - top: 0; - bottom: 0; - left: 0; - right: 0; - background-color: rgba(0, 0, 0, .2); - z-index: 9999; - cursor: pointer; - } - - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-itemed > a { - background: transparent; - } - - .layui-layout-admin.admin-nav-mini .layui-header .layui-icon-shrink-right:before { - content: "\e668"; - } -} - -/** //移动设备样式结束 */ - -/** 右侧弹窗样式 */ -.layui-layer.layui-layer-adminRight { - top: 50px !important; - bottom: 0; - box-shadow: 1px 1px 10px rgba(0, 0, 0, .1); - border-radius: 0; - overflow: auto; -} - -/** 消息列表样式 */ -.message-list { -} - -.message-list-item { - padding: 10px 24px; - border-bottom: 1px solid #e8e8e8; - -ms-flex-align: start; - align-items: flex-start; - display: flex; - -ms-flex: 1 1; - flex: 1 1; -} - -.message-list-item:hover { - background: #F2F2F2; -} - -.message-item-icon { - width: 40px; - height: 40px; - margin-right: 16px; - display: block; - margin-top: 4px; -} - -.message-item-right { - display: block; - flex: 1 0; -} - -.message-item-title { - font-size: 14px; - color: rgba(0, 0, 0, .65); -} - -.message-item-text { - color: rgba(0, 0, 0, .45); - font-size: 12px; -} - -/** //消息列表样式结束 */ - -/** 主体部分标题样式 */ -.layui-card-header .header-title { - display: inline; - font-size: 16px; -} - -/** 表格搜索框样式 */ -.search-input { - width: 150px; - display: inline-block; - height: 36px; - vertical-align: middle; - padding: 3px 6px; -} - -/** 重写layui默认按钮的高度,因为按钮跟输入框不一样高特别丑 */ -.layui-btn:not(.layui-btn-lg ):not(.layui-btn-sm):not(.layui-btn-xs) { - height: 34px; - line-height: 34px; -} - -/** 如果按钮加图标减少内边距 */ -.icon-btn { - padding: 0 8px; -} - -.layui-form.toolbar .layui-btn + .layui-btn { - margin-left: 15px; -} - -.model-form-footer .layui-btn + .layui-btn { - margin-left: 15px; -} - -.layui-table-cell .layui-btn + .layui-btn { - margin-left: 5px; -} - -/** 表格上方工具栏样式 */ -.layui-form.toolbar { - color: #333; -} - -.layui-form.toolbar .layui-form-select input { - height: 35px; - line-height: 35px; - width: 150px; - overflow: hidden; -} - -.layui-form.toolbar .layui-form-select { - display: inline-block; -} - -/* 表单弹窗样式 */ -.model-form { - padding-top: 30px; - padding-right: 45px; -} - -.model-form-footer { - text-align: right; -} - -/** dialog超出显示 */ -.layui-layout-body .layui-layer-page .layui-layer-content { - overflow: visible; -} - -/* layui文档官网右侧弹窗目录列表的样式 */ -.site-dir li { - line-height: 26px; - margin-left: 20px; - overflow: visible; - list-style-type: disc; -} - -/** laydate加图标 */ -.date-icon { - background-image: url(../images/icon_date.png); - background-repeat: no-repeat; - background-position: right center; -} - -/** 辅助样式 */ -.layui-link { - color: #029789 !important; -} - -.layui-link:hover { - opacity: .8; -} - -.pull-right { - float: right; -} - -.inline-block { - display: inline-block; -} - -/** 卡片header里面的徽章样式调整 */ -.layui-card .layui-card-header .layui-badge.pull-right { - top: 50%; - margin-top: -9px; -} - -/** 特大字体 */ -.lay-big-font { - font-size: 36px; - color: #666; - line-height: 36px; - padding: 5px 0 10px; - overflow: hidden; - text-overflow: ellipsis; - word-break: break-all; - white-space: nowrap; -} - -/** 超链接样式 */ -.layui-text a:not(.layui-btn) { - color: #01AAED; -} - -.layui-text a:not(.layui-btn):hover { - text-decoration: underline; -} - -/** loading组件样式 */ -.admin-loading { - position: absolute; - left: 50%; - top: 50%; - margin: -16px -15px; - font-size: 30px; - color: #c2c2c2 -} - -/** admin选项卡样式 */ -/** 调整header阴影 */ -.layui-layout-admin.open-tab .layui-header { - box-shadow: 0 1px 1px 0 rgba(0, 21, 41, .05); -} - -.layui-layout-admin.open-tab .layui-body { - padding: 0; - overflow: hidden; -} - -.layui-layout-admin .layui-body .layui-tab { - margin: 0; - overflow: hidden; -} - -/** 开启选项卡后让tab-content样式为以前的layui-body样式 */ -.layui-layout-admin .layui-body .layui-tab .layui-tab-content .layui-tab-item { - position: absolute; - bottom: 0; - overflow-y: scroll; - padding: 15px; - right: 0; - top: 40px; - left: 0; -} - -/** 选项卡标题样式 */ -.layui-layout-admin .layui-body .layui-tab .layui-tab-title { - height: 40px; - line-height: 40px; - padding: 0 80px 0 40px; - background-color: #fff; - box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .1); - position: absolute; - right: 0; - z-index: 999; - border: none; - overflow: hidden; -} - -.layui-layout-admin .layui-body .layui-tab .layui-tab-title li { - min-width: 0; - line-height: 40px; - max-width: 160px; - text-overflow: ellipsis; - overflow: hidden; - border-right: 1px solid #f6f6f6; - vertical-align: top; -} - -.layui-layout-admin .layui-body .layui-tab .layui-tab-title .layui-tab-bar { - display: none; -} - -.layui-layout-admin .layui-body .layui-tab .layui-tab-title li.layui-this, -.layui-layout-admin .layui-body .layui-tab .layui-tab-title li:hover { - background-color: #f6f6f6; -} - -.layui-layout-admin .layui-body .layui-tab .layui-tab-title li.layui-this:after { - width: 100%; - border: none; - height: 2px; - background-color: #292B34; - border-radius: 0; -} - -/** tab关闭按钮样式 */ -.layui-layout-admin .layui-body .layui-tab .layui-tab-title li .layui-tab-close { - width: 16px; - height: 16px; - line-height: 16px; - border-radius: 50%; - font-size: 12px; -} - -.layui-layout-admin .layui-body .layui-tab .layui-tab-title li:first-child .layui-tab-close { - display: none; /** 第一个选项卡不可关闭 */ -} - -/** 选项卡其他操作按钮样式 */ -.layui-layout-admin .layui-body .admin-tabs-control { - position: absolute; - top: 0; - width: 40px; - height: 40px; - line-height: 40px; - text-align: center; - cursor: pointer; - transition: all .3s; - box-sizing: border-box; - border-left: 1px solid #f6f6f6; - z-index: 1000; - visibility: hidden; /** 默认隐藏 */ - background-color: white; -} - -.layui-layout-admin.open-tab .layui-body .admin-tabs-control { - visibility: visible; -} - -.layui-layout-admin .layui-body .admin-tabs-control:hover { - background-color: #f6f6f6 -} - -.layui-layout-admin .layui-body .layui-icon-prev { - left: 0; - border-left: none; - border-right: 1px solid #f6f6f6; -} - -.layui-layout-admin .layui-body .layui-icon-next { - right: 40px; -} - -.layui-layout-admin .layui-body .layui-icon-down { - right: 0; -} - -.admin-tabs-select.layui-nav { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - padding: 0; - background: 0 0; -} - -.admin-tabs-select.layui-nav .layui-nav-item { - line-height: 40px -} - -.admin-tabs-select.layui-nav .layui-nav-item > a { - height: 40px -} - -.admin-tabs-select.layui-nav .layui-nav-item a { - color: #666 -} - -.admin-tabs-select.layui-nav .layui-nav-child { - top: 40px; - left: auto; - right: 0 -} - -.admin-tabs-select.layui-nav .layui-nav-child dd.layui-this, -.admin-tabs-select.layui-nav .layui-nav-child dd.layui-this a { - background-color: #f2f2f2 !important; - color: #333 -} - -.admin-tabs-select.layui-nav .layui-nav-bar, .admin-tabs-select.layui-nav .layui-nav-more { - display: none; -} - -.layui-fluid { - padding: 15px; -} - -body.layui-fluid { - overflow-y: scroll; -} - -.admin-iframe { - width: 100%; - height: 100%; -} - -.layui-layout-admin .layui-body.admin-iframe-body { - padding: 0; - overflow: hidden; -} diff --git a/zlt-web/back-web/src/main/resources/static/assets/css/console.css b/zlt-web/back-web/src/main/resources/static/assets/css/console.css deleted file mode 100644 index b4d9beaf..00000000 --- a/zlt-web/back-web/src/main/resources/static/assets/css/console.css +++ /dev/null @@ -1,29 +0,0 @@ -/** 卡片轮播图样式 */ -.admin-carousel .layui-carousel-ind { - position: absolute; - top: -41px; - text-align: right; -} - -.admin-carousel .layui-carousel-ind ul { - background: 0 0; -} - -.admin-carousel .layui-carousel-ind li { - background-color: #e2e2e2; -} - -.admin-carousel .layui-carousel-ind li.layui-this { - background-color: #999; -} - -/** 广告位轮播图 */ -.admin-news .layui-carousel-ind { - height: 45px; -} - -.admin-news a { - display: block; - line-height: 60px; - text-align: center; -} diff --git a/zlt-web/back-web/src/main/resources/static/assets/css/login.css b/zlt-web/back-web/src/main/resources/static/assets/css/login.css deleted file mode 100644 index 714d1c2f..00000000 --- a/zlt-web/back-web/src/main/resources/static/assets/css/login.css +++ /dev/null @@ -1,141 +0,0 @@ -/** EasyWeb */ - -body { - background-image: url("../images/bg_login.png"); - background-repeat: no-repeat; - background-size: cover; -} - -.login-wrapper, body, html { - height: 100% -} - -.login-wrapper { - overflow: auto; - position: absolute; - top: 0; - bottom: 0; - left: 0; - right: 0; -} - -.login-body { - padding: 10px 10px 40px 10px; -} - -.login-body > .layui-card { - max-width: 360px; - margin: 0 auto; -} - -.login-body .layui-card-header { - font-weight: 700; - font-size: 15px; -} - -.login-body .layui-form-pane .layui-form-label { - width: 48px; -} - -.login-body .layui-form-pane .layui-input-block { - margin-left: 48px; -} - -.login-body .login-captcha { - width: 100%; - cursor: pointer; -} - -.login-body .login-other > * { - display: inline-block; - vertical-align: middle; - margin-right: 10px; - font-size: 14px; -} - -.login-body .login-other .layui-icon { - position: relative; - top: 2px; - font-size: 26px; -} - -.login-body .login-other a:hover { - opacity: .8; -} - -.layui-icon-login-qq { - color: #3492ED -} - -.layui-icon-login-wechat { - color: #4DAF29 -} - -.layui-icon-login-weibo { - color: #CF1900 -} - -/** 底部样式 */ -.login-footer { - text-align: center; - line-height: 30px; - color: rgba(255, 255, 255, 0.7) !important; - padding-bottom: 20px; -} - -.login-footer span { - padding: 0 5px -} - -.login-footer a { - padding: 0 5px; - color: rgba(255, 255, 255, 0.7) !important; -} - -.login-footer a:hover { - color: rgba(255, 255, 255, 0.4) !important; -} - -/** 头部样式 */ -.login-header { - font-size: 20px; - font-weight: bold; - color: rgba(255, 255, 255, 0.85) !important; - padding: 10px; -} - -.login-header img { - height: 40px; -} - -/** 移动设备样式 */ -@media screen and (min-height: 590px) { - .login-footer { - position: absolute; - bottom: 0; - width: 100%; - } -} - -@media screen and (min-height: 670px) { - .login-body { - padding: 110px 10px 40px 10px; - } -} - -/** 辅助样式 */ -.layui-link { - color: #029789 !important; -} - -.layui-link:hover { - opacity: .8; -} - -.pull-right { - float: right; -} - -.inline-block { - display: inline-block; -} \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/assets/css/theme-blue.css b/zlt-web/back-web/src/main/resources/static/assets/css/theme-blue.css deleted file mode 100644 index a2169ed3..00000000 --- a/zlt-web/back-web/src/main/resources/static/assets/css/theme-blue.css +++ /dev/null @@ -1,102 +0,0 @@ -/** logo部分样式 */ -.layui-layout-admin .layui-header .layui-logo { - background-color: #0085E8; - color: #fff; -} - -/** header样式 */ -.layui-layout-admin .layui-header { - background-color: #1E9FFF; -} - -.layui-layout-admin .layui-header a { - color: #fff; -} - -.layui-layout-admin .layui-header a:hover { - color: #fff; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-more { - border-color: #fff transparent transparent; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-mored { - border-color: transparent transparent #fff; -} - -/** 导航栏下面的线条 */ -.layui-layout-admin .layui-header .layui-nav .layui-this:after, .layui-layout-admin .layui-header .layui-nav-bar { - background-color: #fff; -} - -/** 侧边栏样式 */ -.layui-layout-admin .layui-side { - background-color: #344058; -} - -.layui-nav-tree .layui-nav-child dd.layui-this, .layui-nav-tree .layui-nav-child dd.layui-this a, .layui-nav-tree .layui-this, .layui-nav-tree .layui-this > a, .layui-nav-tree .layui-this > a:hover { - background-color: #1E9FFF; -} - -.layui-nav-tree .layui-nav-bar { - background-color: #1E9FFF; -} - -/** 主题颜色 */ - -/** 按钮 */ -.layui-btn:not(.layui-btn-primary):not(.layui-btn-normal):not(.layui-btn-warm):not(.layui-btn-danger):not(.layui-btn-disabled) { - background-color: #1E9FFF; -} - -.layui-btn.layui-btn-primary:hover { - border-color: #1E9FFF; -} - -/** 开关 */ -.layui-form-onswitch { - border-color: #1E9FFF; - background-color: #1E9FFF; -} - -/** 分页插件 */ -.layui-laypage .layui-laypage-curr .layui-laypage-em { - background-color: #1E9FFF; -} - -.layui-table-page .layui-laypage input:focus { - border-color: #1E9FFF !important; -} - -.layui-table-view select:focus { - border-color: #1E9FFF !important; -} - -.layui-table-page .layui-laypage a:hover { - color: #1E9FFF; -} - -/** 单选按钮 */ -.layui-form-radio > i:hover, .layui-form-radioed > i { - color: #1E9FFF; -} - -/** 下拉条目选中 */ -.layui-form-select dl dd.layui-this { - background-color: #1E9FFF; -} - -/** 选项卡 */ -.layui-tab-brief > .layui-tab-title .layui-this { - color: #1E9FFF; -} - -.layui-tab-brief > .layui-tab-more li.layui-this:after, .layui-tab-brief > .layui-tab-title .layui-this:after { - border-color: #1E9FFF !important; -} - -/** 面包屑导航 */ -.layui-breadcrumb a:hover { - color: #1E9FFF !important; -} \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/assets/css/theme/black.css b/zlt-web/back-web/src/main/resources/static/assets/css/theme/black.css deleted file mode 100644 index d9297d71..00000000 --- a/zlt-web/back-web/src/main/resources/static/assets/css/theme/black.css +++ /dev/null @@ -1,85 +0,0 @@ -/** EasyWeb 暗黑主题 data:2018-10-17 */ - -/** 透明侧边栏导航 */ -.layui-layout-admin .layui-side .layui-nav { - background-color: transparent; -} - -.layui-layout-admin .layui-side .layui-nav .layui-nav-item > a:hover { - background: rgba(255, 255, 255, .03); -} - -/** logo部分样式 */ -.layui-layout-admin .layui-header .layui-logo { - background-color: #3A3D49; - color: #eee; -} - -/** header样式 */ -.layui-layout-admin .layui-header { - background-color: #3A3D49; -} - -.layui-layout-admin .layui-header a { - color: #eee; -} - -.layui-layout-admin .layui-header a:hover { - color: #eee; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-more { - border-color: #eee transparent transparent; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-mored { - border-color: transparent transparent #eee; -} - -/** 导航栏下面的线条 */ -.layui-layout-admin .layui-header .layui-nav .layui-this:after, .layui-layout-admin .layui-header .layui-nav-bar { - background-color: #eee; -} - -/** 侧边栏样式 */ -.layui-layout-admin .layui-side { - background-color: #24262F; -} - -.layui-nav-tree .layui-nav-child dd.layui-this, .layui-nav-tree .layui-nav-child dd.layui-this a, .layui-nav-tree .layui-this, .layui-nav-tree .layui-this > a, .layui-nav-tree .layui-this > a:hover { - background-color: #009688; -} - -.layui-nav-tree .layui-nav-bar { - background-color: #009688; -} - -/** 主题颜色 */ - -/** 侧边栏文字颜色 */ -.layui-side .layui-nav .layui-nav-item a { - color: rgba(238, 238, 238, .7); -} - -.layui-side .layui-nav-itemed > a, .layui-nav-tree .layui-nav-title a, .layui-nav-tree .layui-nav-title a:hover { - color: #eee !important; -} - -/** header线条 */ -.layui-layout-admin .layui-header .layui-nav .layui-this:after, .layui-layout-admin .layui-header .layui-nav-bar { - background-color: #eee; -} - -/** tab下划线 */ -.layui-layout-admin .layui-body .layui-tab .layui-tab-title li.layui-this:after { - background-color: #292B34; - top: 38px; -} - -/** 移动设备样式 */ -@media screen and (max-width: 750px) { - /** 去掉PC端折叠鼠标经过样式 */ - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item.admin-nav-hover > .layui-nav-child { - background-color: rgba(0, 0, 0, .3) !important; - } -} \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/assets/css/theme/blue-side.css b/zlt-web/back-web/src/main/resources/static/assets/css/theme/blue-side.css deleted file mode 100644 index 4bed90f1..00000000 --- a/zlt-web/back-web/src/main/resources/static/assets/css/theme/blue-side.css +++ /dev/null @@ -1,175 +0,0 @@ -/** EasyWeb 蓝色主题 data:2018-10-17 */ - -/** 透明侧边栏导航 */ -.layui-layout-admin .layui-side .layui-nav { - background-color: transparent; -} - -.layui-layout-admin .layui-side .layui-nav .layui-nav-item > a:hover { - background: rgba(255, 255, 255, .03); -} - -/** logo部分样式 */ -.layui-layout-admin .layui-header .layui-logo { - background-color: #00509f; - color: #eee; -} - -/** header样式 */ -.layui-layout-admin .layui-header { - background-color: #fff; -} - -.layui-layout-admin .layui-header a { - color: #333; -} - -.layui-layout-admin .layui-header a:hover { - color: #333; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-more { - border-color: #333 transparent transparent; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-mored { - border-color: transparent transparent #333; -} - -/** 导航栏下面的线条 */ -.layui-layout-admin .layui-header .layui-nav .layui-this:after, .layui-layout-admin .layui-header .layui-nav-bar { - background-color: #333; -} - -/** 侧边栏样式 */ -.layui-layout-admin .layui-side { - background-color: #00509f; -} - -.layui-nav-tree .layui-nav-child dd.layui-this, .layui-nav-tree .layui-nav-child dd.layui-this a, .layui-nav-tree .layui-this, .layui-nav-tree .layui-this > a, .layui-nav-tree .layui-this > a:hover { - background-color: #1e90ff; -} - -.layui-nav-tree .layui-nav-bar { - background-color: #1e90ff; -} - -/** 主题颜色 */ - -/** 按钮 */ -.layui-btn:not(.layui-btn-primary):not(.layui-btn-normal):not(.layui-btn-warm):not(.layui-btn-danger):not(.layui-btn-disabled) { - background-color: #1e90ff; -} - -.layui-btn.layui-btn-primary:hover { - border-color: #1e90ff; -} - -/** 开关 */ -.layui-form-onswitch { - border-color: #1e90ff; - background-color: #1e90ff; -} - -/** 分页插件 */ -.layui-laypage .layui-laypage-curr .layui-laypage-em { - background-color: #1e90ff; -} - -.layui-table-page .layui-laypage input:focus { - border-color: #1e90ff !important; -} - -.layui-table-view select:focus { - border-color: #1e90ff !important; -} - -.layui-table-page .layui-laypage a:hover { - color: #1e90ff; -} - -/** 单选按钮 */ -.layui-form-radio > i:hover, .layui-form-radioed > i { - color: #1e90ff; -} - -/** 下拉条目选中 */ -.layui-form-select dl dd.layui-this { - background-color: #1e90ff; -} - -/** 选项卡 */ -.layui-tab-brief > .layui-tab-title .layui-this { - color: #1e90ff; -} - -.layui-tab-brief > .layui-tab-more li.layui-this:after, .layui-tab-brief > .layui-tab-title .layui-this:after { - border-color: #1e90ff !important; -} - -/** 面包屑导航 */ -.layui-breadcrumb a:hover { - color: #1e90ff !important; -} - -/** 主体标题 */ -.layui-body-header-title { - border-left-color: #1e90ff; -} - -/** 日期选择器按钮 */ -.laydate-footer-btns span:hover { - color: #1e90ff !important; -} - -/** 时间轴 */ -.layui-timeline-axis { - color: #1e90ff; -} - -/** 主题切换 */ -.btnTheme:hover, .btnTheme.active { - border-color: #1e90ff; -} - -/** 侧边栏文字颜色 */ -.layui-side .layui-nav .layui-nav-item a { - color: rgba(238, 238, 238, .7); -} - -.layui-side .layui-nav-itemed > a, .layui-nav-tree .layui-nav-title a, .layui-nav-tree .layui-nav-title a:hover { - color: #eee !important; -} - -/** header线条 */ -.layui-layout-admin .layui-header .layui-nav .layui-this:after, .layui-layout-admin .layui-header .layui-nav-bar { - background-color: #1e90ff; -} - -/** tab下划线 */ -.layui-layout-admin .layui-body .layui-tab .layui-tab-title li.layui-this:after { - background-color: #1e90ff; -} - -/** 复选框 */ -.layui-form-checked[lay-skin=primary] i { - border-color: #1e90ff; - background-color: #1e90ff; -} - -.layui-form-checkbox[lay-skin=primary] i:hover { - border-color: #1e90ff; -} - -/** PC端折叠鼠标经过样式 */ -.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item.admin-nav-hover > .layui-nav-child { - background: #00509f !important; -} - -/** 移动设备样式 */ -@media screen and (max-width: 750px) { - /** 去掉PC端折叠鼠标经过样式 */ - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item.admin-nav-hover > .layui-nav-child { - background-color: rgba(0, 0, 0, .3) !important; - } -} \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/assets/css/theme/blue-white.css b/zlt-web/back-web/src/main/resources/static/assets/css/theme/blue-white.css deleted file mode 100644 index ef957aee..00000000 --- a/zlt-web/back-web/src/main/resources/static/assets/css/theme/blue-white.css +++ /dev/null @@ -1,175 +0,0 @@ -/** EasyWeb 蓝黑主题 data:2018-10-17 */ - -/** 透明侧边栏导航 */ -.layui-layout-admin .layui-side .layui-nav { - background-color: transparent; -} - -.layui-layout-admin .layui-side .layui-nav .layui-nav-item > a:hover { - background: rgba(255, 255, 255, .03); -} - -/** logo部分样式 */ -.layui-layout-admin .layui-header .layui-logo { - background-color: #1e90ff; - color: #eee; -} - -/** header样式 */ -.layui-layout-admin .layui-header { - background-color: #fff; -} - -.layui-layout-admin .layui-header a { - color: #333; -} - -.layui-layout-admin .layui-header a:hover { - color: #333; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-more { - border-color: #333 transparent transparent; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-mored { - border-color: transparent transparent #333; -} - -/** 导航栏下面的线条 */ -.layui-layout-admin .layui-header .layui-nav .layui-this:after, .layui-layout-admin .layui-header .layui-nav-bar { - background-color: #333; -} - -/** 侧边栏样式 */ -.layui-layout-admin .layui-side { - background-color: #344058; -} - -.layui-nav-tree .layui-nav-child dd.layui-this, .layui-nav-tree .layui-nav-child dd.layui-this a, .layui-nav-tree .layui-this, .layui-nav-tree .layui-this > a, .layui-nav-tree .layui-this > a:hover { - background-color: #1e90ff; -} - -.layui-nav-tree .layui-nav-bar { - background-color: #1e90ff; -} - -/** 主题颜色 */ - -/** 按钮 */ -.layui-btn:not(.layui-btn-primary):not(.layui-btn-normal):not(.layui-btn-warm):not(.layui-btn-danger):not(.layui-btn-disabled) { - background-color: #1e90ff; -} - -.layui-btn.layui-btn-primary:hover { - border-color: #1e90ff; -} - -/** 开关 */ -.layui-form-onswitch { - border-color: #1e90ff; - background-color: #1e90ff; -} - -/** 分页插件 */ -.layui-laypage .layui-laypage-curr .layui-laypage-em { - background-color: #1e90ff; -} - -.layui-table-page .layui-laypage input:focus { - border-color: #1e90ff !important; -} - -.layui-table-view select:focus { - border-color: #1e90ff !important; -} - -.layui-table-page .layui-laypage a:hover { - color: #1e90ff; -} - -/** 单选按钮 */ -.layui-form-radio > i:hover, .layui-form-radioed > i { - color: #1e90ff; -} - -/** 下拉条目选中 */ -.layui-form-select dl dd.layui-this { - background-color: #1e90ff; -} - -/** 选项卡 */ -.layui-tab-brief > .layui-tab-title .layui-this { - color: #1e90ff; -} - -.layui-tab-brief > .layui-tab-more li.layui-this:after, .layui-tab-brief > .layui-tab-title .layui-this:after { - border-color: #1e90ff !important; -} - -/** 面包屑导航 */ -.layui-breadcrumb a:hover { - color: #1e90ff !important; -} - -/** 主体标题 */ -.layui-body-header-title { - border-left-color: #1e90ff; -} - -/** 日期选择器按钮 */ -.laydate-footer-btns span:hover { - color: #1e90ff !important; -} - -/** 时间轴 */ -.layui-timeline-axis { - color: #1e90ff; -} - -/** 主题切换 */ -.btnTheme:hover, .btnTheme.active { - border-color: #1e90ff; -} - -/** 侧边栏文字颜色 */ -.layui-side .layui-nav .layui-nav-item a { - color: rgba(238, 238, 238, .7); -} - -.layui-side .layui-nav-itemed > a, .layui-nav-tree .layui-nav-title a, .layui-nav-tree .layui-nav-title a:hover { - color: #eee !important; -} - -/** header线条 */ -.layui-layout-admin .layui-header .layui-nav .layui-this:after, .layui-layout-admin .layui-header .layui-nav-bar { - background-color: #1e90ff; -} - -/** tab下划线 */ -.layui-layout-admin .layui-body .layui-tab .layui-tab-title li.layui-this:after { - background-color: #1e90ff; -} - -/** 复选框 */ -.layui-form-checked[lay-skin=primary] i { - border-color: #1e90ff; - background-color: #1e90ff; -} - -.layui-form-checkbox[lay-skin=primary] i:hover { - border-color: #1e90ff; -} - -/** PC端折叠鼠标经过样式 */ -.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item.admin-nav-hover > .layui-nav-child { - background: #344058 !important; -} - -/** 移动设备样式 */ -@media screen and (max-width: 750px) { - /** 去掉PC端折叠鼠标经过样式 */ - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item.admin-nav-hover > .layui-nav-child { - background-color: rgba(0, 0, 0, .3) !important; - } -} \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/assets/css/theme/blue.css b/zlt-web/back-web/src/main/resources/static/assets/css/theme/blue.css deleted file mode 100644 index 185e5471..00000000 --- a/zlt-web/back-web/src/main/resources/static/assets/css/theme/blue.css +++ /dev/null @@ -1,176 +0,0 @@ -/** EasyWeb 蓝白主题 data:2018-10-17 */ - -/** 透明侧边栏导航 */ -.layui-layout-admin .layui-side .layui-nav { - background-color: transparent; -} - -.layui-layout-admin .layui-side .layui-nav .layui-nav-item > a:hover { - background: rgba(255, 255, 255, .03); -} - -/** logo部分样式 */ -.layui-layout-admin .layui-header .layui-logo { - background-color: #1e90ff; - color: #eee; -} - -/** header样式 */ -.layui-layout-admin .layui-header { - background-color: #1e90ff; -} - -.layui-layout-admin .layui-header a { - color: #eee; -} - -.layui-layout-admin .layui-header a:hover { - color: #eee; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-more { - border-color: #eee transparent transparent; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-mored { - border-color: transparent transparent #eee; -} - -/** 导航栏下面的线条 */ -.layui-layout-admin .layui-header .layui-nav .layui-this:after, .layui-layout-admin .layui-header .layui-nav-bar { - background-color: #eee; -} - -/** 侧边栏样式 */ -.layui-layout-admin .layui-side { - background-color: #344058; -} - -.layui-nav-tree .layui-nav-child dd.layui-this, .layui-nav-tree .layui-nav-child dd.layui-this a, .layui-nav-tree .layui-this, .layui-nav-tree .layui-this > a, .layui-nav-tree .layui-this > a:hover { - background-color: #1e90ff; -} - -.layui-nav-tree .layui-nav-bar { - background-color: #1e90ff; -} - -/** 主题颜色 */ - -/** 按钮 */ -.layui-btn:not(.layui-btn-primary):not(.layui-btn-normal):not(.layui-btn-warm):not(.layui-btn-danger):not(.layui-btn-disabled) { - background-color: #1e90ff; -} - -.layui-btn.layui-btn-primary:hover { - border-color: #1e90ff; -} - -/** 开关 */ -.layui-form-onswitch { - border-color: #1e90ff; - background-color: #1e90ff; -} - -/** 分页插件 */ -.layui-laypage .layui-laypage-curr .layui-laypage-em { - background-color: #1e90ff; -} - -.layui-table-page .layui-laypage input:focus { - border-color: #1e90ff !important; -} - -.layui-table-view select:focus { - border-color: #1e90ff !important; -} - -.layui-table-page .layui-laypage a:hover { - color: #1e90ff; -} - -/** 单选按钮 */ -.layui-form-radio > i:hover, .layui-form-radioed > i { - color: #1e90ff; -} - -/** 下拉条目选中 */ -.layui-form-select dl dd.layui-this { - background-color: #1e90ff; -} - -/** 选项卡 */ -.layui-tab-brief > .layui-tab-title .layui-this { - color: #1e90ff; -} - -.layui-tab-brief > .layui-tab-more li.layui-this:after, .layui-tab-brief > .layui-tab-title .layui-this:after { - border-color: #1e90ff !important; -} - -/** 面包屑导航 */ -.layui-breadcrumb a:hover { - color: #1e90ff !important; -} - -/** 主体标题 */ -.layui-body-header-title { - border-left-color: #1e90ff; -} - -/** 日期选择器按钮 */ -.laydate-footer-btns span:hover { - color: #1e90ff !important; -} - -/** 时间轴 */ -.layui-timeline-axis { - color: #1e90ff; -} - -/** 主题切换 */ -.btnTheme:hover, .btnTheme.active { - border-color: #1e90ff; -} - -/** 侧边栏文字颜色 */ -.layui-side .layui-nav .layui-nav-item a { - color: rgba(238, 238, 238, .7); -} - -.layui-side .layui-nav-itemed > a, .layui-nav-tree .layui-nav-title a, .layui-nav-tree .layui-nav-title a:hover { - color: #eee !important; -} - -/** header线条 */ -.layui-layout-admin .layui-header .layui-nav .layui-this:after, .layui-layout-admin .layui-header .layui-nav-bar { - background-color: #eee; -} - -/** tab下划线 */ -.layui-layout-admin .layui-body .layui-tab .layui-tab-title li.layui-this:after { - background-color: #1e90ff; - top: 38px; -} - -/** 复选框 */ -.layui-form-checked[lay-skin=primary] i { - border-color: #1e90ff; - background-color: #1e90ff; -} - -.layui-form-checkbox[lay-skin=primary] i:hover { - border-color: #1e90ff; -} - -/** PC端折叠鼠标经过样式 */ -.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item.admin-nav-hover > .layui-nav-child { - background: #344058 !important; -} - -/** 移动设备样式 */ -@media screen and (max-width: 750px) { - /** 去掉PC端折叠鼠标经过样式 */ - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item.admin-nav-hover > .layui-nav-child { - background-color: rgba(0, 0, 0, .3) !important; - } -} \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/assets/css/theme/cyan.css b/zlt-web/back-web/src/main/resources/static/assets/css/theme/cyan.css deleted file mode 100644 index 548a4c15..00000000 --- a/zlt-web/back-web/src/main/resources/static/assets/css/theme/cyan.css +++ /dev/null @@ -1,176 +0,0 @@ -/** EasyWeb 藏青主题 data:2018-10-17 */ - -/** 透明侧边栏导航 */ -.layui-layout-admin .layui-side .layui-nav { - background-color: transparent; -} - -.layui-layout-admin .layui-side .layui-nav .layui-nav-item > a:hover { - background: rgba(255, 255, 255, .03); -} - -/** logo部分样式 */ -.layui-layout-admin .layui-header .layui-logo { - background-color: #001529; - color: #eee; -} - -/** header样式 */ -.layui-layout-admin .layui-header { - background-color: #fff; -} - -.layui-layout-admin .layui-header a { - color: #333; -} - -.layui-layout-admin .layui-header a:hover { - color: #333; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-more { - border-color: #333 transparent transparent; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-mored { - border-color: transparent transparent #333; -} - -/** 导航栏下面的线条 */ -.layui-layout-admin .layui-header .layui-nav .layui-this:after, .layui-layout-admin .layui-header .layui-nav-bar { - background-color: #333; -} - -/** 侧边栏样式 */ -.layui-layout-admin .layui-side { - background-color: #001529 !important; -} - -.layui-nav-tree .layui-nav-child dd.layui-this, .layui-nav-tree .layui-nav-child dd.layui-this a, .layui-nav-tree .layui-this, .layui-nav-tree .layui-this > a, .layui-nav-tree .layui-this > a:hover { - background-color: #1e9fff; -} - -.layui-nav-tree .layui-nav-bar { - background-color: #1e9fff; -} - -/** 主题颜色 */ - -/** 按钮 */ -.layui-btn:not(.layui-btn-primary):not(.layui-btn-normal):not(.layui-btn-warm):not(.layui-btn-danger):not(.layui-btn-disabled) { - background-color: #1e9fff; -} - -.layui-btn.layui-btn-primary:hover { - border-color: #1e9fff; -} - -/** 开关 */ -.layui-form-onswitch { - border-color: #1e9fff; - background-color: #1e9fff; -} - -/** 分页插件 */ -.layui-laypage .layui-laypage-curr .layui-laypage-em { - background-color: #1e9fff; -} - -.layui-table-page .layui-laypage input:focus { - border-color: #1e9fff !important; -} - -.layui-table-view select:focus { - border-color: #1e9fff !important; -} - -.layui-table-page .layui-laypage a:hover { - color: #1e9fff; -} - -/** 单选按钮 */ -.layui-form-radio > i:hover, .layui-form-radioed > i { - color: #1e9fff; -} - -/** 下拉条目选中 */ -.layui-form-select dl dd.layui-this { - background-color: #1e9fff; -} - -/** 选项卡 */ -.layui-tab-brief > .layui-tab-title .layui-this { - color: #1e9fff; -} - -.layui-tab-brief > .layui-tab-more li.layui-this:after, .layui-tab-brief > .layui-tab-title .layui-this:after { - border-color: #1e9fff !important; -} - -/** 面包屑导航 */ -.layui-breadcrumb a:hover { - color: #1e9fff !important; -} - -/** 主体标题 */ -.layui-body-header-title { - border-left-color: #1e9fff; -} - -/** 日期选择器按钮 */ -.laydate-footer-btns span:hover { - color: #1e9fff !important; -} - -/** 时间轴 */ -.layui-timeline-axis { - color: #1e9fff; -} - -/** 主题切换 */ -.btnTheme:hover, .btnTheme.active { - border-color: #1e9fff; -} - -/** 侧边栏文字颜色 */ -.layui-side .layui-nav .layui-nav-item a { - color: rgba(238, 238, 238, .7); -} - -.layui-side .layui-nav-itemed > a, .layui-nav-tree .layui-nav-title a, .layui-nav-tree .layui-nav-title a:hover { - color: #eee !important; -} - -/** header线条 */ -.layui-layout-admin .layui-header .layui-nav .layui-this:after, .layui-layout-admin .layui-header .layui-nav-bar { - background-color: #1e9fff; -} - -/** tab下划线 */ -.layui-layout-admin .layui-body .layui-tab .layui-tab-title li.layui-this:after { - background-color: #1e9fff; - top: 0px; -} - -/** 复选框 */ -.layui-form-checked[lay-skin=primary] i { - border-color: #1e9fff; - background-color: #1e9fff; -} - -.layui-form-checkbox[lay-skin=primary] i:hover { - border-color: #1e9fff; -} - -/** PC端折叠鼠标经过样式 */ -.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item.admin-nav-hover > .layui-nav-child { - background: #001529 !important; -} - -/** 移动设备样式 */ -@media screen and (max-width: 750px) { - /** 去掉PC端折叠鼠标经过样式 */ - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item.admin-nav-hover > .layui-nav-child { - background-color: rgba(0, 0, 0, .3) !important; - } -} \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/assets/css/theme/green-dark.css b/zlt-web/back-web/src/main/resources/static/assets/css/theme/green-dark.css deleted file mode 100644 index 88f7f8a9..00000000 --- a/zlt-web/back-web/src/main/resources/static/assets/css/theme/green-dark.css +++ /dev/null @@ -1,176 +0,0 @@ -/** EasyWeb 暗绿主题 data:2018-10-17 */ - -/** 透明侧边栏导航 */ -.layui-layout-admin .layui-side .layui-nav { - background-color: transparent; -} - -.layui-layout-admin .layui-side .layui-nav .layui-nav-item > a:hover { - background: rgba(255, 255, 255, .03); -} - -/** logo部分样式 */ -.layui-layout-admin .layui-header .layui-logo { - background-color: #009688; - color: #eee; -} - -/** header样式 */ -.layui-layout-admin .layui-header { - background-color: #009688; -} - -.layui-layout-admin .layui-header a { - color: #eee; -} - -.layui-layout-admin .layui-header a:hover { - color: #eee; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-more { - border-color: #eee transparent transparent; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-mored { - border-color: transparent transparent #eee; -} - -/** 导航栏下面的线条 */ -.layui-layout-admin .layui-header .layui-nav .layui-this:after, .layui-layout-admin .layui-header .layui-nav-bar { - background-color: #eee; -} - -/** 侧边栏样式 */ -.layui-layout-admin .layui-side { - background-color: #00675d !important; -} - -.layui-nav-tree .layui-nav-child dd.layui-this, .layui-nav-tree .layui-nav-child dd.layui-this a, .layui-nav-tree .layui-this, .layui-nav-tree .layui-this > a, .layui-nav-tree .layui-this > a:hover { - background-color: #009688; -} - -.layui-nav-tree .layui-nav-bar { - background-color: #009688; -} - -/** 主题颜色 */ - -/** 按钮 */ -.layui-btn:not(.layui-btn-primary):not(.layui-btn-normal):not(.layui-btn-warm):not(.layui-btn-danger):not(.layui-btn-disabled) { - background-color: #009688; -} - -.layui-btn.layui-btn-primary:hover { - border-color: #009688; -} - -/** 开关 */ -.layui-form-onswitch { - border-color: #009688; - background-color: #009688; -} - -/** 分页插件 */ -.layui-laypage .layui-laypage-curr .layui-laypage-em { - background-color: #009688; -} - -.layui-table-page .layui-laypage input:focus { - border-color: #009688 !important; -} - -.layui-table-view select:focus { - border-color: #009688 !important; -} - -.layui-table-page .layui-laypage a:hover { - color: #009688; -} - -/** 单选按钮 */ -.layui-form-radio > i:hover, .layui-form-radioed > i { - color: #009688; -} - -/** 下拉条目选中 */ -.layui-form-select dl dd.layui-this { - background-color: #009688; -} - -/** 选项卡 */ -.layui-tab-brief > .layui-tab-title .layui-this { - color: #009688; -} - -.layui-tab-brief > .layui-tab-more li.layui-this:after, .layui-tab-brief > .layui-tab-title .layui-this:after { - border-color: #009688 !important; -} - -/** 面包屑导航 */ -.layui-breadcrumb a:hover { - color: #009688 !important; -} - -/** 主体标题 */ -.layui-body-header-title { - border-left-color: #009688; -} - -/** 日期选择器按钮 */ -.laydate-footer-btns span:hover { - color: #009688 !important; -} - -/** 时间轴 */ -.layui-timeline-axis { - color: #009688; -} - -/** 主题切换 */ -.btnTheme:hover, .btnTheme.active { - border-color: #009688; -} - -/** 侧边栏文字颜色 */ -.layui-side .layui-nav .layui-nav-item a { - color: rgba(238, 238, 238, .7); -} - -.layui-side .layui-nav-itemed > a, .layui-nav-tree .layui-nav-title a, .layui-nav-tree .layui-nav-title a:hover { - color: #eee !important; -} - -/** header线条 */ -.layui-layout-admin .layui-header .layui-nav .layui-this:after, .layui-layout-admin .layui-header .layui-nav-bar { - background-color: #eee; -} - -/** tab下划线 */ -.layui-layout-admin .layui-body .layui-tab .layui-tab-title li.layui-this:after { - background-color: #009688; - top: 38px; -} - -/** 复选框 */ -.layui-form-checked[lay-skin=primary] i { - border-color: #009688; - background-color: #009688; -} - -.layui-form-checkbox[lay-skin=primary] i:hover { - border-color: #009688; -} - -/** PC端折叠鼠标经过样式 */ -.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item.admin-nav-hover > .layui-nav-child { - background: #00675d !important; -} - -/** 移动设备样式 */ -@media screen and (max-width: 750px) { - /** 去掉PC端折叠鼠标经过样式 */ - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item.admin-nav-hover > .layui-nav-child { - background-color: rgba(0, 0, 0, .3) !important; - } -} \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/assets/css/theme/green.css b/zlt-web/back-web/src/main/resources/static/assets/css/theme/green.css deleted file mode 100644 index 5df3863d..00000000 --- a/zlt-web/back-web/src/main/resources/static/assets/css/theme/green.css +++ /dev/null @@ -1,176 +0,0 @@ -/** EasyWeb 绿色主题 data:2018-10-17 */ - -/** 透明侧边栏导航 */ -.layui-layout-admin .layui-side .layui-nav { - background-color: transparent; -} - -.layui-layout-admin .layui-side .layui-nav .layui-nav-item > a:hover { - background: rgba(255, 255, 255, .03); -} - -/** logo部分样式 */ -.layui-layout-admin .layui-header .layui-logo { - background-color: #00675d; - color: #eee; -} - -/** header样式 */ -.layui-layout-admin .layui-header { - background-color: #fff; -} - -.layui-layout-admin .layui-header a { - color: #333; -} - -.layui-layout-admin .layui-header a:hover { - color: #333; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-more { - border-color: #333 transparent transparent; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-mored { - border-color: transparent transparent #333; -} - -/** 导航栏下面的线条 */ -.layui-layout-admin .layui-header .layui-nav .layui-this:after, .layui-layout-admin .layui-header .layui-nav-bar { - background-color: #333; -} - -/** 侧边栏样式 */ -.layui-layout-admin .layui-side { - background-color: #00675d !important; -} - -.layui-nav-tree .layui-nav-child dd.layui-this, .layui-nav-tree .layui-nav-child dd.layui-this a, .layui-nav-tree .layui-this, .layui-nav-tree .layui-this > a, .layui-nav-tree .layui-this > a:hover { - background-color: #009688; -} - -.layui-nav-tree .layui-nav-bar { - background-color: #009688; -} - -/** 主题颜色 */ - -/** 按钮 */ -.layui-btn:not(.layui-btn-primary):not(.layui-btn-normal):not(.layui-btn-warm):not(.layui-btn-danger):not(.layui-btn-disabled) { - background-color: #009688; -} - -.layui-btn.layui-btn-primary:hover { - border-color: #009688; -} - -/** 开关 */ -.layui-form-onswitch { - border-color: #009688; - background-color: #009688; -} - -/** 分页插件 */ -.layui-laypage .layui-laypage-curr .layui-laypage-em { - background-color: #009688; -} - -.layui-table-page .layui-laypage input:focus { - border-color: #009688 !important; -} - -.layui-table-view select:focus { - border-color: #009688 !important; -} - -.layui-table-page .layui-laypage a:hover { - color: #009688; -} - -/** 单选按钮 */ -.layui-form-radio > i:hover, .layui-form-radioed > i { - color: #009688; -} - -/** 下拉条目选中 */ -.layui-form-select dl dd.layui-this { - background-color: #009688; -} - -/** 选项卡 */ -.layui-tab-brief > .layui-tab-title .layui-this { - color: #009688; -} - -.layui-tab-brief > .layui-tab-more li.layui-this:after, .layui-tab-brief > .layui-tab-title .layui-this:after { - border-color: #009688 !important; -} - -/** 面包屑导航 */ -.layui-breadcrumb a:hover { - color: #009688 !important; -} - -/** 主体标题 */ -.layui-body-header-title { - border-left-color: #009688; -} - -/** 日期选择器按钮 */ -.laydate-footer-btns span:hover { - color: #009688 !important; -} - -/** 时间轴 */ -.layui-timeline-axis { - color: #009688; -} - -/** 主题切换 */ -.btnTheme:hover, .btnTheme.active { - border-color: #009688; -} - -/** 侧边栏文字颜色 */ -.layui-side .layui-nav .layui-nav-item a { - color: rgba(238, 238, 238, .7); -} - -.layui-side .layui-nav-itemed > a, .layui-nav-tree .layui-nav-title a, .layui-nav-tree .layui-nav-title a:hover { - color: #eee !important; -} - -/** header线条 */ -.layui-layout-admin .layui-header .layui-nav .layui-this:after, .layui-layout-admin .layui-header .layui-nav-bar { - background-color: #009688; -} - -/** tab下划线 */ -.layui-layout-admin .layui-body .layui-tab .layui-tab-title li.layui-this:after { - background-color: #009688; - top: 0px; -} - -/** 复选框 */ -.layui-form-checked[lay-skin=primary] i { - border-color: #009688; - background-color: #009688; -} - -.layui-form-checkbox[lay-skin=primary] i:hover { - border-color: #009688; -} - -/** PC端折叠鼠标经过样式 */ -.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item.admin-nav-hover > .layui-nav-child { - background: #00675d !important; -} - -/** 移动设备样式 */ -@media screen and (max-width: 750px) { - /** 去掉PC端折叠鼠标经过样式 */ - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item.admin-nav-hover > .layui-nav-child { - background-color: rgba(0, 0, 0, .3) !important; - } -} \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/assets/css/theme/red-dark.css b/zlt-web/back-web/src/main/resources/static/assets/css/theme/red-dark.css deleted file mode 100644 index 4abbb784..00000000 --- a/zlt-web/back-web/src/main/resources/static/assets/css/theme/red-dark.css +++ /dev/null @@ -1,176 +0,0 @@ -/** EasyWeb 暗红主题 data:2018-10-17 */ - -/** 透明侧边栏导航 */ -.layui-layout-admin .layui-side .layui-nav { - background-color: transparent; -} - -.layui-layout-admin .layui-side .layui-nav .layui-nav-item > a:hover { - background: rgba(255, 255, 255, .03); -} - -/** logo部分样式 */ -.layui-layout-admin .layui-header .layui-logo { - background-color: #AA3130; - color: #eee; -} - -/** header样式 */ -.layui-layout-admin .layui-header { - background-color: #AA3130; -} - -.layui-layout-admin .layui-header a { - color: #eee; -} - -.layui-layout-admin .layui-header a:hover { - color: #eee; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-more { - border-color: #eee transparent transparent; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-mored { - border-color: transparent transparent #eee; -} - -/** 导航栏下面的线条 */ -.layui-layout-admin .layui-header .layui-nav .layui-this:after, .layui-layout-admin .layui-header .layui-nav-bar { - background-color: #eee; -} - -/** 侧边栏样式 */ -.layui-layout-admin .layui-side { - background-color: #801a1a !important; -} - -.layui-nav-tree .layui-nav-child dd.layui-this, .layui-nav-tree .layui-nav-child dd.layui-this a, .layui-nav-tree .layui-this, .layui-nav-tree .layui-this > a, .layui-nav-tree .layui-this > a:hover { - background-color: #e63e3e; -} - -.layui-nav-tree .layui-nav-bar { - background-color: #e63e3e; -} - -/** 主题颜色 */ - -/** 按钮 */ -.layui-btn:not(.layui-btn-primary):not(.layui-btn-normal):not(.layui-btn-warm):not(.layui-btn-danger):not(.layui-btn-disabled) { - background-color: #e63e3e; -} - -.layui-btn.layui-btn-primary:hover { - border-color: #e63e3e; -} - -/** 开关 */ -.layui-form-onswitch { - border-color: #e63e3e; - background-color: #e63e3e; -} - -/** 分页插件 */ -.layui-laypage .layui-laypage-curr .layui-laypage-em { - background-color: #e63e3e; -} - -.layui-table-page .layui-laypage input:focus { - border-color: #e63e3e !important; -} - -.layui-table-view select:focus { - border-color: #e63e3e !important; -} - -.layui-table-page .layui-laypage a:hover { - color: #e63e3e; -} - -/** 单选按钮 */ -.layui-form-radio > i:hover, .layui-form-radioed > i { - color: #e63e3e; -} - -/** 下拉条目选中 */ -.layui-form-select dl dd.layui-this { - background-color: #e63e3e; -} - -/** 选项卡 */ -.layui-tab-brief > .layui-tab-title .layui-this { - color: #e63e3e; -} - -.layui-tab-brief > .layui-tab-more li.layui-this:after, .layui-tab-brief > .layui-tab-title .layui-this:after { - border-color: #e63e3e !important; -} - -/** 面包屑导航 */ -.layui-breadcrumb a:hover { - color: #e63e3e !important; -} - -/** 主体标题 */ -.layui-body-header-title { - border-left-color: #e63e3e; -} - -/** 日期选择器按钮 */ -.laydate-footer-btns span:hover { - color: #e63e3e !important; -} - -/** 时间轴 */ -.layui-timeline-axis { - color: #e63e3e; -} - -/** 主题切换 */ -.btnTheme:hover, .btnTheme.active { - border-color: #e63e3e; -} - -/** 侧边栏文字颜色 */ -.layui-side .layui-nav .layui-nav-item a { - color: rgba(238, 238, 238, .7); -} - -.layui-side .layui-nav-itemed > a, .layui-nav-tree .layui-nav-title a, .layui-nav-tree .layui-nav-title a:hover { - color: #eee !important; -} - -/** header线条 */ -.layui-layout-admin .layui-header .layui-nav .layui-this:after, .layui-layout-admin .layui-header .layui-nav-bar { - background-color: #eee; -} - -/** tab下划线 */ -.layui-layout-admin .layui-body .layui-tab .layui-tab-title li.layui-this:after { - background-color: #e63e3e; - top: 38px; -} - -/** 复选框 */ -.layui-form-checked[lay-skin=primary] i { - border-color: #e63e3e; - background-color: #e63e3e; -} - -.layui-form-checkbox[lay-skin=primary] i:hover { - border-color: #e63e3e; -} - -/** PC端折叠鼠标经过样式 */ -.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item.admin-nav-hover > .layui-nav-child { - background: #801a1a !important; -} - -/** 移动设备样式 */ -@media screen and (max-width: 750px) { - /** 去掉PC端折叠鼠标经过样式 */ - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item.admin-nav-hover > .layui-nav-child { - background-color: rgba(0, 0, 0, .3) !important; - } -} \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/assets/css/theme/red-white.css b/zlt-web/back-web/src/main/resources/static/assets/css/theme/red-white.css deleted file mode 100644 index 5b386e17..00000000 --- a/zlt-web/back-web/src/main/resources/static/assets/css/theme/red-white.css +++ /dev/null @@ -1,176 +0,0 @@ -/** EasyWeb 红黑主题 data:2018-10-17 */ - -/** 透明侧边栏导航 */ -.layui-layout-admin .layui-side .layui-nav { - background-color: transparent; -} - -.layui-layout-admin .layui-side .layui-nav .layui-nav-item > a:hover { - background: rgba(255, 255, 255, .03); -} - -/** logo部分样式 */ -.layui-layout-admin .layui-header .layui-logo { - background-color: #e63e3e; - color: #eee; -} - -/** header样式 */ -.layui-layout-admin .layui-header { - background-color: #ffffff; -} - -.layui-layout-admin .layui-header a { - color: #333; -} - -.layui-layout-admin .layui-header a:hover { - color: #333; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-more { - border-color: #333 transparent transparent; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-mored { - border-color: transparent transparent #333; -} - -/** 导航栏下面的线条 */ -.layui-layout-admin .layui-header .layui-nav .layui-this:after, .layui-layout-admin .layui-header .layui-nav-bar { - background-color: #333; -} - -/** 侧边栏样式 */ -.layui-layout-admin .layui-side { - background-color: #28333E !important; -} - -.layui-nav-tree .layui-nav-child dd.layui-this, .layui-nav-tree .layui-nav-child dd.layui-this a, .layui-nav-tree .layui-this, .layui-nav-tree .layui-this > a, .layui-nav-tree .layui-this > a:hover { - background-color: #e63e3e; -} - -.layui-nav-tree .layui-nav-bar { - background-color: #e63e3e; -} - -/** 主题颜色 */ - -/** 按钮 */ -.layui-btn:not(.layui-btn-primary):not(.layui-btn-normal):not(.layui-btn-warm):not(.layui-btn-danger):not(.layui-btn-disabled) { - background-color: #e63e3e; -} - -.layui-btn.layui-btn-primary:hover { - border-color: #e63e3e; -} - -/** 开关 */ -.layui-form-onswitch { - border-color: #e63e3e; - background-color: #e63e3e; -} - -/** 分页插件 */ -.layui-laypage .layui-laypage-curr .layui-laypage-em { - background-color: #e63e3e; -} - -.layui-table-page .layui-laypage input:focus { - border-color: #e63e3e !important; -} - -.layui-table-view select:focus { - border-color: #e63e3e !important; -} - -.layui-table-page .layui-laypage a:hover { - color: #e63e3e; -} - -/** 单选按钮 */ -.layui-form-radio > i:hover, .layui-form-radioed > i { - color: #e63e3e; -} - -/** 下拉条目选中 */ -.layui-form-select dl dd.layui-this { - background-color: #e63e3e; -} - -/** 选项卡 */ -.layui-tab-brief > .layui-tab-title .layui-this { - color: #e63e3e; -} - -.layui-tab-brief > .layui-tab-more li.layui-this:after, .layui-tab-brief > .layui-tab-title .layui-this:after { - border-color: #e63e3e !important; -} - -/** 面包屑导航 */ -.layui-breadcrumb a:hover { - color: #e63e3e !important; -} - -/** 主体标题 */ -.layui-body-header-title { - border-left-color: #e63e3e; -} - -/** 日期选择器按钮 */ -.laydate-footer-btns span:hover { - color: #e63e3e !important; -} - -/** 时间轴 */ -.layui-timeline-axis { - color: #e63e3e; -} - -/** 主题切换 */ -.btnTheme:hover, .btnTheme.active { - border-color: #e63e3e; -} - -/** 侧边栏文字颜色 */ -.layui-side .layui-nav .layui-nav-item a { - color: rgba(238, 238, 238, .7); -} - -.layui-side .layui-nav-itemed > a, .layui-nav-tree .layui-nav-title a, .layui-nav-tree .layui-nav-title a:hover { - color: #eee !important; -} - -/** header线条 */ -.layui-layout-admin .layui-header .layui-nav .layui-this:after, .layui-layout-admin .layui-header .layui-nav-bar { - background-color: #e63e3e; -} - -/** tab下划线 */ -.layui-layout-admin .layui-body .layui-tab .layui-tab-title li.layui-this:after { - background-color: #e63e3e; - top: 0px; -} - -/** 复选框 */ -.layui-form-checked[lay-skin=primary] i { - border-color: #e63e3e; - background-color: #e63e3e; -} - -.layui-form-checkbox[lay-skin=primary] i:hover { - border-color: #e63e3e; -} - -/** PC端折叠鼠标经过样式 */ -.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item.admin-nav-hover > .layui-nav-child { - background: #28333E !important; -} - -/** 移动设备样式 */ -@media screen and (max-width: 750px) { - /** 去掉PC端折叠鼠标经过样式 */ - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item.admin-nav-hover > .layui-nav-child { - background-color: rgba(0, 0, 0, .3) !important; - } -} \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/assets/css/theme/red.css b/zlt-web/back-web/src/main/resources/static/assets/css/theme/red.css deleted file mode 100644 index a70cfa14..00000000 --- a/zlt-web/back-web/src/main/resources/static/assets/css/theme/red.css +++ /dev/null @@ -1,176 +0,0 @@ -/** EasyWeb 红色主题 data:2018-10-17 */ - -/** 透明侧边栏导航 */ -.layui-layout-admin .layui-side .layui-nav { - background-color: transparent; -} - -.layui-layout-admin .layui-side .layui-nav .layui-nav-item > a:hover { - background: rgba(255, 255, 255, .03); -} - -/** logo部分样式 */ -.layui-layout-admin .layui-header .layui-logo { - background-color: #801a1a; - color: #eee; -} - -/** header样式 */ -.layui-layout-admin .layui-header { - background-color: #ffffff; -} - -.layui-layout-admin .layui-header a { - color: #333; -} - -.layui-layout-admin .layui-header a:hover { - color: #333; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-more { - border-color: #333 transparent transparent; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-mored { - border-color: transparent transparent #333; -} - -/** 导航栏下面的线条 */ -.layui-layout-admin .layui-header .layui-nav .layui-this:after, .layui-layout-admin .layui-header .layui-nav-bar { - background-color: #333; -} - -/** 侧边栏样式 */ -.layui-layout-admin .layui-side { - background-color: #801a1a !important; -} - -.layui-nav-tree .layui-nav-child dd.layui-this, .layui-nav-tree .layui-nav-child dd.layui-this a, .layui-nav-tree .layui-this, .layui-nav-tree .layui-this > a, .layui-nav-tree .layui-this > a:hover { - background-color: #e63e3e; -} - -.layui-nav-tree .layui-nav-bar { - background-color: #e63e3e; -} - -/** 主题颜色 */ - -/** 按钮 */ -.layui-btn:not(.layui-btn-primary):not(.layui-btn-normal):not(.layui-btn-warm):not(.layui-btn-danger):not(.layui-btn-disabled) { - background-color: #e63e3e; -} - -.layui-btn.layui-btn-primary:hover { - border-color: #e63e3e; -} - -/** 开关 */ -.layui-form-onswitch { - border-color: #e63e3e; - background-color: #e63e3e; -} - -/** 分页插件 */ -.layui-laypage .layui-laypage-curr .layui-laypage-em { - background-color: #e63e3e; -} - -.layui-table-page .layui-laypage input:focus { - border-color: #e63e3e !important; -} - -.layui-table-view select:focus { - border-color: #e63e3e !important; -} - -.layui-table-page .layui-laypage a:hover { - color: #e63e3e; -} - -/** 单选按钮 */ -.layui-form-radio > i:hover, .layui-form-radioed > i { - color: #e63e3e; -} - -/** 下拉条目选中 */ -.layui-form-select dl dd.layui-this { - background-color: #e63e3e; -} - -/** 选项卡 */ -.layui-tab-brief > .layui-tab-title .layui-this { - color: #e63e3e; -} - -.layui-tab-brief > .layui-tab-more li.layui-this:after, .layui-tab-brief > .layui-tab-title .layui-this:after { - border-color: #e63e3e !important; -} - -/** 面包屑导航 */ -.layui-breadcrumb a:hover { - color: #e63e3e !important; -} - -/** 主体标题 */ -.layui-body-header-title { - border-left-color: #e63e3e; -} - -/** 日期选择器按钮 */ -.laydate-footer-btns span:hover { - color: #e63e3e !important; -} - -/** 时间轴 */ -.layui-timeline-axis { - color: #e63e3e; -} - -/** 主题切换 */ -.btnTheme:hover, .btnTheme.active { - border-color: #e63e3e; -} - -/** 侧边栏文字颜色 */ -.layui-side .layui-nav .layui-nav-item a { - color: rgba(238, 238, 238, .7); -} - -.layui-side .layui-nav-itemed > a, .layui-nav-tree .layui-nav-title a, .layui-nav-tree .layui-nav-title a:hover { - color: #eee !important; -} - -/** header线条 */ -.layui-layout-admin .layui-header .layui-nav .layui-this:after, .layui-layout-admin .layui-header .layui-nav-bar { - background-color: #e63e3e; -} - -/** tab下划线 */ -.layui-layout-admin .layui-body .layui-tab .layui-tab-title li.layui-this:after { - background-color: #e63e3e; - top: 0px; -} - -/** 复选框 */ -.layui-form-checked[lay-skin=primary] i { - border-color: #e63e3e; - background-color: #e63e3e; -} - -.layui-form-checkbox[lay-skin=primary] i:hover { - border-color: #e63e3e; -} - -/** PC端折叠鼠标经过样式 */ -.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item.admin-nav-hover > .layui-nav-child { - background: #801a1a !important; -} - -/** 移动设备样式 */ -@media screen and (max-width: 750px) { - /** 去掉PC端折叠鼠标经过样式 */ - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item.admin-nav-hover > .layui-nav-child { - background-color: rgba(0, 0, 0, .3) !important; - } -} \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/assets/css/theme/white.css b/zlt-web/back-web/src/main/resources/static/assets/css/theme/white.css deleted file mode 100644 index c81a5270..00000000 --- a/zlt-web/back-web/src/main/resources/static/assets/css/theme/white.css +++ /dev/null @@ -1,127 +0,0 @@ -/** EasyWeb 白色主题 data:2018-10-17 */ - -/** 透明侧边栏导航 */ -.layui-layout-admin .layui-side .layui-nav { - background-color: transparent; -} - -.layui-layout-admin .layui-side .layui-nav .layui-nav-item > a:hover { - background: rgba(255, 255, 255, .03); -} - -/** logo部分样式 */ -.layui-layout-admin .layui-header .layui-logo { - background-color: #ffffff; - color: #333; -} - -/** header样式 */ -.layui-layout-admin .layui-header { - background-color: #fff; -} - -.layui-layout-admin .layui-header a { - color: #333; -} - -.layui-layout-admin .layui-header a:hover { - color: #333; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-more { - border-color: #333 transparent transparent; -} - -.layui-layout-admin .layui-header .layui-nav .layui-nav-mored { - border-color: transparent transparent #333; -} - -/** 导航栏下面的线条 */ -.layui-layout-admin .layui-header .layui-nav .layui-this:after, .layui-layout-admin .layui-header .layui-nav-bar { - background-color: #333; -} - -/** 侧边栏样式 */ -.layui-layout-admin .layui-side { - background-color: #ffffff !important; -} - -.layui-nav-tree .layui-nav-child dd.layui-this, .layui-nav-tree .layui-nav-child dd.layui-this a, .layui-nav-tree .layui-this, .layui-nav-tree .layui-this > a, .layui-nav-tree .layui-this > a:hover { - color: #ffffff; -} - -/** 主题颜色 */ - -/** 主体标题 */ -.layui-body-header-title { - border-left-color: #009688; -} - -/** 主题切换 */ -.btnTheme:hover, .btnTheme.active { - border-color: #009688; -} - -/** 侧边栏文字颜色 */ -.layui-side .layui-nav .layui-nav-item a { - color: rgba(51, 51, 51, .7); - font-weight: 600; -} - -.layui-side .layui-nav .layui-nav-child a { - font-weight: 500; -} - -.layui-side .layui-nav-itemed > a, .layui-nav-tree .layui-nav-title a, .layui-nav-tree .layui-nav-title a:hover { - color: #333 !important; -} - -.layui-layout-admin .layui-side .layui-nav .layui-nav-more { - border-color: #666 transparent transparent; -} - -.layui-layout-admin .layui-side .layui-nav .layui-nav-itemed > a .layui-nav-more { - border-color: transparent transparent #666; -} - -.layui-layout-admin .layui-side .layui-nav .layui-nav-item > .layui-nav-child { - background-color: rgba(0, 0, 0, .05) !important; -} - -.layui-layout-admin .layui-side { - border-right: 1px solid #E6E6E6; -} - -.layui-layout-admin.admin-nav-mini .layui-side .layui-nav li.layui-nav-itemed > a { - background: rgba(0, 0, 0, .05); -} - -/** logo样式 */ -.layui-layout-admin .layui-header .layui-logo { - border-right: 1px solid #E6E6E6; -} - -/** header线条 */ -.layui-layout-admin .layui-header .layui-nav .layui-this:after, .layui-layout-admin .layui-header .layui-nav-bar { - background-color: #009688; -} - -/** tab下划线 */ -.layui-layout-admin .layui-body .layui-tab .layui-tab-title li.layui-this:after { - background-color: #009688; -} - -/** PC端折叠鼠标经过样式 */ -.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item.admin-nav-hover > .layui-nav-child { - background: #ffffff !important; - box-shadow: 0 2px 4px rgba(0, 0, 0, .12); - border: 1px solid #dddddd; -} - -/** 移动设备样式 */ -@media screen and (max-width: 750px) { - /** 去掉PC端折叠鼠标经过样式 */ - .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item.admin-nav-hover > .layui-nav-child { - background-color: rgba(0, 0, 0, .3) !important; - } -} \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/assets/css/tpl-theme.css b/zlt-web/back-web/src/main/resources/static/assets/css/tpl-theme.css deleted file mode 100644 index 348c8709..00000000 --- a/zlt-web/back-web/src/main/resources/static/assets/css/tpl-theme.css +++ /dev/null @@ -1,60 +0,0 @@ -.layui-card-body { - padding: 0; -} - -.theme-div { - padding-left: 15px; - padding-top: 20px; - margin-bottom: 10px; -} - -.btnTheme { - display: inline-block; - margin: 0 6px 15px 0; - padding: 4px; - border: 1px solid #fff; -} - -.btnTheme img { - width: 80px; - height: 50px; - border: 1px solid #f2f2f2; - background: #F2F2F2; - cursor: pointer; -} - -.btnTheme:hover, .btnTheme.active { - border-color: #5FB878; -} - -.more-menu-item { - display: block; - height: 50px; - line-height: 50px; - font-size: 16px; - border-bottom: 1px solid #e8e8e8; - color: #333; - padding: 0px 25px; - font-style: normal; -} - -.more-menu-item:first-child { - border-top: 1px solid #e8e8e8; -} - -.more-menu-item:hover { - background: #F2F2F2; - color: #333; -} - -.more-menu-item .layui-icon { - padding-right: 10px; - font-size: 18px; -} - -.more-menu-item:after { - content: "\e602"; - font-family: layui-icon !important; - position: absolute; - right: 16px; -} \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/assets/images/bg_login.png b/zlt-web/back-web/src/main/resources/static/assets/images/bg_login.png deleted file mode 100644 index 59f766a8102da1dc59e910f34c72c265fb1a9f32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73703 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≥zY9eGtCi_&=mgcDZ2L0*OYN6j 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 z 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 diff --git a/zlt-web/back-web/src/main/resources/static/assets/images/bg_login2.jpg b/zlt-web/back-web/src/main/resources/static/assets/images/bg_login2.jpg deleted file mode 100644 index 69366fd88b72135d47056f3eda206c036b74b305..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 603252 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 z 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

l6ri>BKuFf9wSxH5VzuT`Y# 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

j;b&@HuB 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


K1sRn)X}t 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
D2(J(YzVt4q98$JdL#8@) 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 xsD6J?5Oo`zZSM3Mmx{{VZebG{!)n?Ob0 zmD8!3C|KYZ6zFeBozbd*kAOaVgsrU*gfOUt3sC1xsi z3l~P(oKacNt%&uyS=rjYx+{027Af;C9{XoFVbciT{O<#2CM;(Ji z1b5H%^AFC#gAcDy`Za|lLM)d2#@0&BlT?1Z{&2OLF&djt8Jq9b3TfM4Kh5(1hk$G; zE|cr-3IGXhsi`$Bo45%Alq?PHR`VDQkoDbr{yfCywKCL#z#Y&WAM483=$77dLx@qh z6d)ICui)-G^vgQC+lViS+1>dc_BdT3pjvhj{{SD$td&w}sU6Q}pTC&a4G@8){tox^ zCec|cIZEpka*WdNV%^~z;6Y79-nag;2FV@}=BM76g%t??SE+QG*FNC_qy;qnfi?3q z4G@f);{M$;B3c1xNDS2xg+Kuvnr)hx@{nLb*}@0DfWh6zEs|^CfmHxmL&e`+#-ZNACLXl=+s-)-(6KuZB#bca+^> z_=X@LYg#q;E*rC9UpfB&05IxE*0euA%gj_U2(nYZ(S`vV!navjw4ewmp3mZ7*#Q#h zVXCM7+=HzE(n9R-n>G65J77W(M@il3b%X?=6q+&9Z9Auz&yfAgHyUeX@%%{s;endM z2k=YtHVMv;lNm3|%(82LWngdDmFvtgBgzF4U)Bx)auFJ;m~42{A$K1V3HYWVCjk(N9$%T>*hC*6pOn@k zdMGMQ3%6e3A+JIl2TbR@#v-)kDGWUo$6l#z6sO_q!Ny(^YR|*`LgtR7t!S}X`uFZd zs1~UepDz9W@=%(ajMq=kd5mCcS|(lZ(w~k$3s2A#M(G?vkZ8oz{pZ{66J2Rmse9i_ zU)*VL!>AWR&BI@C=&(U{0E_H>@OO~NX?Lrt5By{e0F%-0K4pa%(x-GGdTV%@gn~ls z4GpCJQ#Trz2_kEU#F?dy1r;`G8fD(-%z+O?O?)rE-UA(E6^rxx$&er*DK|f#aeHrv zZuj*W_ZMZR5CauD(jzfe%4uj;&-1Nwr9r2=KsFak@Q-eRO`L_p04&GGFX^4e#&fS%cEiWXB zP|cj6rb=u;niQ(ZO`ltYp%XC>cAFoXo5yH`672!dAI<>-B}c#yVjOW{Z9&l3^L=@i z2Po;v2Y-|uF)<{+EfA^kAeg5(jM`ewZF%1?Ur^ZXv%~#s7|iIK74~x=0yJ#_6#)k$ zs$|+HH_eAIfMiSd3Hq<>ONA&U#t=$7Df(PS#w{cpe$==4raLzxqD6HVzH9r|EM-7y zw{D5fZ$=Q3+f+#G+4JrXdzr;2W{_#VS(p8O4W1`@b9t`cR)#x? zx96L}o3cQw0A0Ro`M5R+fhC0-h;`mjroF^$8?-rI~(!BRr zoJ3))3J!;pSSgVQK?@YU_ZEwMt4X;&S01QEAv9<`-yh5yyJ%wHuCq7luaw z1zQ7dx%@lCn@9(NtflLgqWPjbcmV%XDkk#P}hl@v)) z?J9oY8zzlx6@PFrLss`K(snNJ0b+nkiV7WJyyk2cE(m6TU$ zeKEM$Z55SvoB~{$#Rs?Dd43b-K5c}68=L8F?kjK~f+^nU?o2^oB>)Ylmb%4tvp<{% z)_Q9lcJG8#Un zg+$-)-^>hZ=>99y`Tfau0a3tIpmyY?C?X%QyAQ57;BL`LJh%6_GgIJ4^Pku5C`GBQ zuDL&>DvF4o4F3S#F;3v6RKJV&eq|ZQ#Wtt5{{Z^q0=uxR6I(T}xT9MU5XC<)E(toe z3dREPz4l~}a6P80wiT?nt=!N{w{G^g8tycPgnXvkKa4_;&T}N)Ff0$7ocp|8q|hRp z0sd0|0Nza4L8J@~uDo0+uU%|co_8kHfv#?wen%WEdIBl%xLbnYiesfV``e5)At3+| zR4FS64~{uJ#`p4|1$Va#9UQIE*3aD~aX!4#2gR^7sb^Db)a5&`ym zj-oE*G(z;2(F+_bm-g9?t&&e&vM{!lkO& z`eE%R?uzJ=W1EXs^yc(+c`}863c~97znJ*Vs|1JL`HMm+rHfwc`qmMwDOGC!08{*G z<5d8>CH|)PKlO+YO+p$qr~OO=sMdkk-hSgwYVCd92z!%R-%BX$Pbs^CC@7Xxug{aF zJ_p;0JBpw|8#;gS+;LWgLhknujR2^R;FbWo=?wXz!ZHj)>Jg{{Xyb zT2K(5>-Se8^rqiKdcU9XaV@5Ixx7D~wHn=5p96u6@&GipESNZl+^M&r{LOP0DI$mi zy$(Q+VQ;hO+?=MNIu>N8e;>h7Y1WCpm}s2$maO?YzSn zhDE1Hw_*|gE+Y0c2#s{UriNviStY4<>VFt3!xR*=TK;GGm|02k=vm*tjsPJ-9Z+K3 zAkjW7-U6EtSFk%iVi^jw6zCxZFX4+otqDg26x2)mzF||dG*G4bPfcd4%_VwK_|Y2c zTEVm^y$!g&Xx9fDBEjSk3-mN=eYj$MyA(*bbmBg51$;drvLDWjH$);Gq;A;k{{R<)xp%+S8FRpHrAi73<)81r7oF>>*D4f$l)jx4!MpPnBD_`-B($MOPBdHCy%z~N# zG$!f%e8bYou8I}%#K3Wh0SQF0N~W}2WsA}$C4Z7n5?y7|X-3 z@(}bO+ws9fK&Op_*T08%gBMV=FiUHoHHd4)z0zqAb;kU-AvJ@$R5t$rml#KZy2g?H zNcs)lZ_E1)O()cU&QewBH6&c}vl}A~(kO=Y*Y^{}BrO?~KF@v`t>v6p3?sD~n9Dn3 z2380>35r4#Lv%2aLUE+W0Pvh$w|3Cyi*gAHj)G})d_Le4Jt?$LE0-ta6hKbF^tmLf z2@0R*`(|s;B?W1-mVC$K&~!vv^h0O21X60vx7DO80|x5MU?Uc46$ECSYapPcCdZqs za{mBH8a)8DZpdQzr*DR<{MHizv$CkAOZ4`8+z}AY3NDTDCi|8VDu7wj)#id@J<*7( zvORy}yu^7G2tWl|z(ZsA56Hc<7$*GdiN;K(zXj%kh6Em4xbhNL_PdTElc}$-05tO4 zHR`+0R6}mx(!gm62(~1G{2Y2*>SwKv{oCJ-a7l-FPDOL9+l<2!031~rh!-0ZOs?> z(YC6AUpHBZ4cZidAC8Ci;K~r{Y~Nq>?-h?yU3x3k?r(9c>jWy;6#lg{Z1GhTsotJc z+|3LkMT&eq?q40DKxTrgJ(wqF90>hvuidyvTzIm~U7=xJBTYJO#gFh13u2)K_Nt>XU349&{4(F? z$%1J$Qukn3R@p9aI+A7Qwfd`vijJ4xot@?gsXRpy)OGvw5~C6{Cd3WxJ`=kz)Ma`) z1uOtTqur2pjyo)H7;W$anB>(Ek7!UU5|qRIPy|mp4n<0p2GA;nSviKA40-hWpaI{Ii^y^()$RZ(`mxBGD^ z#sbg{_a!i0MT1XX>*d9-dTDNgGxgR5)JpKLj{ZNG53`_(k14D;>R+#D3)6T4(4Stc z(eL=gkQDo~`=58b5P^Ro9>e@^9TrhVQKG*)&hH6#qHMO=I8ulN+f8qq15rXBEdvyhSUE5 z&$y#vl^y=A{{Wn!rnm;T{{XMKCOuFh{@$2xMAidOPp-Fe7_?%${2qUdT@dV57khPx zwJyig!T$dMyhk!Jit{BboPI|(nx3mj21WMlkRA2N++!Ml0TQz`OO5-7^;)o<_h8iFH>BYO${^+GxOY300Hm> zU+UtnvXBalQ+ZIOTRUe-fVou?tLO0j%^L_ryJ|OcF8XevSG2QV=HZqu{g6OZ7{4il z5H&ym6TiS;?nrA-Z}SG|H)V85n+s}M zR+G2(;?*X}4VTNU`HotJ(*y1H1`7*gpy`ait$)TNv!bDfq0Kh@JB}i!#G_)N>8B`^ zk=Cg5`mz4=yTZm@@BGWW9BPqGOHh2($+b!l7U{1wyhvz~q>@iN;r-k+T_3oJhmOZK zkTXbm-9CSQ=Ob!i3iiLv$kl}b*uISnU4RDF+)Z=+WdfEuKs5Jvr{~N-5`Z)>3O~p5 z{AG9)4ZCbU$U`5QLZBrO@kTc~_s?P`+w^;Iyvq z{dm0^C=ZlT`dmOD5v?Sq`H!73J3F)NU)+j87}nAKKcgDU^ntcUU%zmob*&~N@ftrw zw+)|M5k)&rg17TobvRawSN>1jdkrNL3L3NB<**cw80&Yig!b?_uPI|jXMOL zESu6`ij@G12G?6E1J_v6%PZRIz8jf51Uj244x19Zdz<(8V`656LEejT2_lS!!x4+B zOHi3Uw2bZo{Zktpuk#`_gZ#i!dbb@nRux4D$4dUB#>Djs)o#ig@82Ar{IIL$`M2)z z)!juSQZJ_W`7tG(1n=kvWgY(jo#Urr9oSVrR3A($KAQOlnkkE;MS+oNTfQ*+j`wcV zSfWqjYd5$m8&DuSl)c3QIw^stTn;5tAi66k>=XJkeSOdZyf#VGJJ?suL=4(TNxD}Y z$rOqgnw23BaNU9eQWi+#tsl1pptaD5(rPQFVI~of?5B7C01w@nYY#T}YCk+~?Q(5967?+H5;9VrxhHcnSI z4-C=;v;?;%_7k zKzgb*?rO=1GJfx@4BRRt*r)(1o4=R=;dZ6gpxq{}HVL5GWzs0!(1XI-g)BJehq)3#n6eci%LI543z~#%p zaFGU$Te{X6)NzqStD(kFyc+t0_tnjQ`f!biy&g`kA=j!v2n1M5eaZw|Hi`3JIkza! z1di!f(TaNN#E?u6e>X9T&j)`}@sc;wl}-$OrH1n!{*B-=V`6 z>&G=yYFjAk<2r^iGAbnpKFr&9w$VpqRY_#VB+$*OcS zYg=uAW8t+@1~*sDXz+KH<{lo6-1C2M&uXitUBP#UQV;>OlhXGL2<2e1tONV}$?|$2 zmH1QsW<&;S#G!h6ULD~ZA20@Q zQF^O+my*_y5IcWg+!9JlvQXl%#d;69U|BBuRL56i5vjCvYH8QE2PSf;4FPrm44;6S zcY6t1yLW+VE|kRwP{SK4LWZ#6KQojBQtV7XD>Ts9&|Y@pF4V4|d}j~LA{;Lw^*#Dy z&_`)N4sB9<+_aJEM?@$sNt?d_2KgmdLh$i3_hzv5)1AhV$8k5UnEVxa+vJciw5 z;#@6*UTNRHV?`J;wk$%^D4s)&{RjMF0VW!zpP)7W0IaYPO$!^^`TXK6QrN9rTmmQv z)A-*tjX^~thv0qR_GO4bpf2ID_D2e!BeIT%{*B|g7)*B68ck>%EZc&hzA>_2G3r?E z!K>&p_?+cj2|HJraxzN?sA@S5NmlHOP5b_44I&dF{`~&1n^6rAJ4XKi&RSW3h*j4U zxa!loGAFiq^uPkGaoB&8{AROayMq<@3I<2@T|x1e5)~c9HTVzf`Oet-@v53UwYULw zvqMISSiL!vTN4N>C%8eBBNlnT{{XorXtaP$b*}NP^%4zyy8es-ql!I#@P}q^?!`-h zLy4fkK8p)(zt#BXI6%ZD9hLt8AKn!!Do(1LKfV6|-b!GBMSJ|=QD~I9eg6PBk2?l8 z{{S<)^9Y4dP!SaKUO3snU46aR(_hvSh!7jaHQWLyh)zw(&$%+uFkhTw*Ua$ERH}2` z_a+K9q(QlM4`u=hE;Omg{(nEXL8MSekLqT@y9yLh*#7{GOKloCG3i6S{hR*)c;qFG zjdAmv&UW35m+r1?F}K303yOeNpdNefXo%27D}Fz6BLzGwr}6&)?P36eS~?SUyZm3S zD??Q5f1jS;G0CE!K+!p|7?=aXX;_hYFbW3>LhPp~Wi*DXx@!2dU)Jy&lnMm`KJdWa zD7cDr8?)b-VnsC_z@6tk!JvgoeP1&78c4){KQ({U$+i3%6%jAJboi$?j3|%-7Vn>! zVc42HWjEqiUQ9v_x0c?2b0V@KG-;hvw~x%MJR~Ed_{UGK*6NY>{pBf$MFucK#XQA9 zp|A~u$+y0kE>6jH-`{8RaJZ}pG$>YhW7|838CFi3QxTGmE1a6^rZCtq+XfL$?07n7taRX1+&ddrx1s(~x{{TK< zVw7IN76+w6gz3eR(GrQqB>o(F>Xrhah1DqS%Yb&G;-Dyb7GNNRBGSHu_H6wyp%4b3 z+9mopZpbkhF^@iX1$nLnOxxn@9vCUOOIm5$uws2CE|?fvpvW8`YqsG?6}>If9Y3)! zFY*ithRC;C)-<6mWeW;D(#hy!TQ>pFEM;PW{9>ZO38)1A&`#m#0<9nyO@i6*b90CY z0*wXO8-14&LP4*9gAD4B=uP)tn>ncAp_*%z1w9MAV0mrqlADPU)iFgFlr{jO_v5ZVMq_hYOIiW=2*e`oQA*rKUHI~{bt zvkSrvQm-bMn;+&H#`JK4$OiNpr^R=a4k=a=A)^<6H;5Z7otViDkFsF|)o5FP&DQnY z3&5Jt04MWT?o5A-2#9%tbq%JuJJ36JgoJ)RJOr;)kb0V>Cp zO{eiU{bFv)W!u0e)}G)XGft-B1Fu>7WVJ@__t#0U;ffS6W|pc?-kNdfkfr|q0&wAs zL@_ji()a{!t}JVGq&X^U?LUkL9Abh2+7OzCJpJmmz5Pj!`)KG2 zZVkhFH;P_LnxOV{TdSlo(}(N?7^m0p#3eu=rcrJc@ZWP=)Ps9YU8}_OsNuHu1nTpT z;%)uO$y@?f3|VI9(&d*#ld)n6wKdKDWYe7?5j5@Dv)nN_NE2(K!AhuJTB%?zVZV&fe#|}01 z-3F@zf8IA7g&pwNG897uXQ2W%t7@>@hv>UOK;u%E`o^pzr>mmszO!1H%>}>Cx37zs1f~wwkBYew>&NCWwWCupU1F-Lf}pe{ z-nZPcuM|YBqUA2|!+}vFeFPQQvo7WMl#K*+>5f-aNCwCO1Ng>q!6I_bnI55yfeaAo zu?nRf3o*Uq3mvVTFQjpTNz>h$zk0WL2~`k@I72pj_I z#iv9RBKpr|(>E}Y)P}5T05$x+JHV}NmK3^BVfj5okf1*b%|lrsfQnkrY9&)Zdw~IwB82Xq``+TAT-FO;PmuOw zRWni8`Tli@Z!urgJ3t-y%iOB$FjCX-CwgGh^~<~fwQkVZ7}57=#Sb_oJjE4@x_kId zd^eGHEJ3Mt{D13w!Oq)Ff`9jJPkSIB8-3BE1sWr%-N)oy_l)L$@_Ekk6f1FzgB z!9Y*I1w#sD#cfUMZmw$tqnwdfTDmVWk8rRRQ|f5Rg`^Y!Rul6&yFfLd*k+VLvZJ$G zPwxqZ4%1+K)rK4SdAo3aHM}yUixN8&Z_eEIpV_Zs^>*AvyKbF=eEj>45G_>D&RhJ; zo8GaeCYiO6@7!*YngDyM`eL=oK(aewuk6+i*1}*zLA|o;*@jD~Qn+to9vH72Wmh$0 zYZk!t{*%wR!;-8nJ9_m@-J}O(Lj8aGZx|xf>H%N+%`nRL5H=hSKKX%Bpn%qvBu{+b z@;HidHi=rY&zM2d=oS^5`g7x&U{1z{{=WD3P617JE`@l%%)vNHQS?er`~LtL0E$7h z9iVx=7}%zv2B;?A+j6?k=U5@zx6k>Q2rWwhp{^gFn6;`@YNF8v`!ErrS|-5W#r`mR z3U)Cgnjs@X38dT0HGtno2bh11`GwG4DQ~FyIVw~@dog{BOUzfH07v7^{{Yq&Y6YNZ6#9r`C|<~H z)hqjs4aAV8N7Av%io^uw!(M+F4WnXxG!!`O*D>jk0=DQT?|JTTrIjOhXlkz6>zkoF zX%}nZa3|f`0;QeH5duXR)Tf_uOLR~v{vSEvhzd2>XiY!8*Xf&~Oo}A{-8CPk8tgpg z*iie?{T$O)n$0z=mmYd{{SW!hJa~nJKWqY z9<_80Coh>q7+?`sN7MSn2xBNJZErOgAd+jQD% z`qnV&DEFIa&z&`_v7s)ThmheB{%$~`kk|ktz4(R+qbll%pm`RCIPkG>tMgpflNmfi zxlRatO7?NbM9psi74ZVa=G+Xh3hpY)ulnW*D*%PW*Y!7!h+tNS(nLiXIYX}9yb51K z^S2TW*xB<`pC%539MmX(7=n8)7C8>8y9v6UW2M!I?p4&6>_ZvaQW4sFv1dJ)-B61E z0LopQ=4!V?OhjFN>LZtznr&FWZmIa0U6cZ`sYgbf^hbDZskyMLHrq8dqnS`PIvO=~ z@a>%2hyy`D6ck0$Do)YGj*#;WQFJssjlyM2F;hYucGCBlW-%$dSc@a2JjQYzeZ*dD z{*vIZfDKhcXU^~Z;0^gZ1b|JXNBN<-iq%fi(P0~4q-X1ouT%(P$}N0m3#bu~5hm$G z)y;?^MHqv#MWo9Q0MVmBS%#4{2y|Jkr{)`UsYc2Pc+6w=u&4wo!~I5NOaTxSmqdD9 z@y3L-J_5B*%_PKKUs4z-r!Az)j|f&I4N~l8{C;8ARme-AulVorF#^nJnrom*ziH+% z+C)Xkq;Awi=JNdHgxX*_m0hkC*`=gnXgLUvkeK+yC8(8G_t1Ni43#iAv8z{ifrK+z zRwQkDKX-946-IahG&O==q3K8bZ zT$B)YTADY;2Jrl#Rb?2X@4qXX>LNQTL-4z}I>N#_F55@V4q7|ElW8Hp&6qkq(b?Dw z;_wl{ZP#mKMN&ZymkAWn5C=>&177}Q1Ifx71b93yE`cf=El1u>QOO9q7@^&(C-WRA zr6}4FLnffUV6+o$R4M4W8w4UND|@xTm|##s)zKpJ^GWN68a#@JKu1<<5DLSn9bnBG zn#<7OlcPuVeU4iR4H5z1e)}_F3KA=k(Nxj~+j64O`51buyp1>;LTb;@a_(&`99pM# zn$3d%HVjD~K8Nd;8%>)5dbl1SmZ{Q%oqWKiT?ByvT?SY5*y~;FL5%o0+;rguuxicB z(5I8E^$!iOZ~>%&jFm!${Hrr*BsHWSvzTNgP;I}a9jjE@52~T~X~uBq4LoRNcjkGX zk!96mrwJxhMJgYu{W$YQ#pGhY4QrPiT~)7bM?nK?HI`g7xgI@LVem2?iI7i#AC1Tc zswGTK2<;R2zf9X}>Y_fX>`36}85ax02BH2xj9!nV2~P;1-!h#~ZwqVp!v-f8TAKmd zb>Wp=WtA9wm$>C{5&~(oux$*Y^(kd-DzkyO;7SWZ2F;`O{xK!3NYkqaoAdR~Q_-=8 z>+}12i~_x{=GgB8WpsdD10-0_F+B&>p3PZ%xn)7@Yx&^slKY|(2lIs#LO_z#<&(|CpeTCqiX z_nrBU^TsZMDlorN(<%ye4Zn5v@BFz9#J~!uZ?)g?pIGoINci&ML8BI=cjNy6LfqO? zi0bJ5tArv88Hcq!Xk$h-kO{KOR$rw9NcbSb=d0hj`*7^fl3 zK{Y#bb-i!+!$c(({{S_=>qbw8n=5qeXmj}aiLJ77G|;oGmD_p^DWG;fez{^6|&V&5bk{BiPYM~Nh#=G=ZMG1kwY z=byNt5Y`|hzx%kQfhAk1ql2sU!l2NpKf-!zxM=|pw%0)}G?t2%t54?h=4@1Ah{Rsy z8Xzrq`9Hn6E`S5Io#ofKbOP%N3c#-++(LlpYfAN$5CVKxTW_S`{{ z&C2zwJEvbUB)}r|QvUckX|Bl*fo-nHy2{;A0%~|4464BbfR3$~=P@)#SHIJGYc5?b zpAt#>vjV}=*QY-J0QH#b0a0lJ>JEg+3SppNJ$FAccQLO=fnobo6Rlp6DyiR`U*&Pw zncLCatmd(+>wd3KqVO>lgHh<+x9!3^Dj=F&^#1_&>yUr~U9$Duf0=?G|e6 z7rh-L;!b6o0r-rMe>ThucweR4t^WXnBeq6VNQ3kL0Olfyy#tq@RF zy`E3;w**OoG@%kYsju9s3XBm}x+J*AbZony)8_DEUz_8b4*Y-4U@KdVp0ti z--G&-cp?Kfl9yUP2HZbhn+p=0XeCNZQ&adR3v60YvxT!}U6>FilXO>!jpR*;j{g9! z;~7%iEztD;0OJm62`}XSKfjnq*8CEXU(^m|K!A{;V$DHz`12B@MhYW;lTw~8L_*gu`sG)}Q%q@nM>X>Z89+xN*o7`J-PJKgo?~1=^{lAHOjP zOoY>A6VZS!e`gnZ+hDRv;Jh?S??90didOHFBymw&+dia1WHSVoBd00?u; zK+e;qS5I`4+HV9D3Ol(X>XvXfIGTbxhd}s89|XN|Ee2m(U>=+bo>d z+#y*O#6g0bDL(wd9dO8H(sV$Z(}Op{)B+~05v`6YDsKlwQTBxX#|&=~0Of~}jMyd! zVqb2-Q|Jm8@WZ8PUQ$pGB0TiO`rX2{(WM;`A9VIQC%EV#gme+JW^X$9VB36lNA6!7 zH6h^^ZTC~$X%0|WHvn$q_`(Xe=dDWCW7FraEA)A+`s>Z@DH92vO8iU~R;c)u@IDnnz7A&GG|iN(uRP)}CAn zLyd!0fbxUOhB&JV3xQrLL8cPd{IVcpw0>aMkBH0(^+fJINEks7HQFQF(aVJEBLGDf z$94GO8=+2{QF#D~GOz|X7@mlmaFqnLqtU)y-QwPk%xP2}S-bl+j0lNMN-4`7a^zPV zt~Ds4w7TYPotjdNOVni_GC(Ep2I!4Tu50Etr_h0>tJlJ7ZX&Y{GMj9X7}o_-JD`Cp zW4cVS_L?MHsSjR`HmL!il_}{HY}LmCrr1$I9a;9~la0GybbU&(!>3~)TBMz-8Md{W4i%;CAaf4$hTuhGU09#j9M4*&ogvcet|k8fZwi)t z0S}?>NQxq&6b9Y|)&$82gIjgi^}U$E{8GknKqy~3n<)z-I;Rt^91%lSqzSyU`hQVt zuGaNb#I|Ati=qb&8vfi$8wetXlv@7)GWmnKv^^|3t1@rI2`TWg>+T8J2$jDsOrcQk z5_rGW%HZ1wCrcep<+LRNNN=Yl`@DJpis)=p<4#GBQWyms8v%Q}mSQ%%jWk|A*KsAk zcdcHj03zbOP#XvoOMNhgFXuv=G%DDB1Pm3@?|T>w%J8ttY{{=@%xsT`DFBJc4xHF$ z4hTupL%YCL=FWvcNwKBRa0u zr?tv%xKj;`yIz_zLxKVB-Hvx*dAvOGX#mappzi%~;vH-P`kVe|?n_*U3GZr=#D5a8 z>Hv0{((eK~qyS0!{(cxFiY12+8gBk!1$G9lHh%rW1^WuJa*dZ*F&&izY4Tt9aYb@e z2)AO{(Ef2M3Mjj6DE?~YJX&ck`KwRCrI5F$6X*?BTmH251h#U)BIWGNdY{=x76-{O`FSU_~Dmgq8g*A!eEtI=PhT`C&o6On2$^KZk@rb>38py>5mJi(@bH^8#*eZ9iE zc4PbC(vkHwPfQe28A2j-PWg>uk%J@_tG&s%Zx@~mS8w^#!vH%3-w>=P&V9{HZ3970 zf`5KuVm)OByZ-=O%1AA&w5Hi-oXd0rs-!!=^QZdmu{KyMwD05m1jdsr0P4bRf4vy+ zfw09rs8sw{CbZV}i_hmy7ugh6&3K>7l?sbeSi`>go^mLO5Z>YEaeE;GoAN&}zh&$y3()7tAeNVpp5S%?g7%pfYRzY z8BwS0@|gGV>PD$l%M|qT&NtrMHBf2p~S+v08B@Sd8kYT&I*THv3zBJoaxrnT`fcN!W_ zFWZ`qBU%md%F^OFpO8)@m!fKGBKn{le{{URW=bmsN zpu&QIapKj0F6P7J`ET)tn?ix8y1rMtHxH|KQMkdGK-os4HP-#OAEtv%+0P#T0IYps5lTe# z)2sfz<%w3V8@g{^eWRV*l#!_{NBF>UxLH7HeTbiM48Rm%NTbC!ADwbpD)6Nc{D?H( zKq{iUL{bBNC-}*~vPNu*rwY-*r%ynQ5w__GJ;RtqrtkCR!cj`=(fjXp{{Xya<%+6k zT_BPEaBS$cZe1kkzT|8+@M-;zt9jg^P)KD2)rm^D4iYOCrlvuu)7B``3JPPy8xn)r) z3KMiIW{(_zSODAb4_%S*CR6}|!?j5JQk?EP+EsGY6x1c*HLTE7TI#5;UV9vUaD@qJ z{u4;dxQaM8N+z37{J^|3C5-^cq!aC!@1CeIv*D?IFb{^^0s+~3qo3mq#G5NrPl>#p zlMbw{MAny+1lt%Q=@O~!-teonU1@{<5%-p3wMz?Sw0{pWJlp|W9vh;E_ny&sB41wh zhtn80RZ)ypDaun3?81Qv0AVe9V0OWSYDDx1jOD{z)|Kd#z23BC&Kp}S+6qBhc4K@2 zU>%~a+8x72VMzf3FU>H{JV3hXCOpM zcNebl;zppNw=S>l@O04VMcQe$V4Jy7qSJ2uC~x6_yNa{Wf=?QI!N+!<1`*Jrl5OKm zFvYF_A<&m->uZIO;!-q_k~y_p1|BUu5RNTHf9Zyy{|rU z;f*P^v*2^}ujY7G3IGpE(6|_xz|{5Msryw92hGbnLG;|FvACyrV(-oC{a|g&rL`KOr(+By0ghE0(3?m2 zG~?Q04WK$A3eU_#06~dD0(-eX%Zm~f2%pFgD~?4-6`lfLdpyM*#>*m{=P%vAGE?bd zycJ-5o5sbV9UxSZzvaNDG9(kCy@KKZz)%MBOjg~R*@mxh0NCuKO(#b?Y)RV^ty+u# z2OmY*M0*cD9yo=(;aDZmKC-xw!MX}6+o!(avf2<+bk||5AvGrVcLh|o!LdU zttt|%8dG8JtkiGkLv)6w#_(pw%Ia_N~x=?i>E~koL$J6RX~iq@Lj>>;F8KWes0381S7ZtC;bU*7L zDe4?=+J5316KEj|P>cPpKAHrIji5UIaka&ZahuxR7^oIOVFA!RFYWxzkt<0W1&{^U z700IuA8U19gu9u`3t=rK0sjC<<3c!kc?q>vs$vtaIsnZS=-dAQ8pd37ymx`w`Q|MJ zt0p_wPxNDOeaEW^`g(-ACcA*{xd1?PXuot%Ex^h44GQkUUEv#UEz-Kz@?2!bih{;Z ze7Qba6m&LqX|ROAUfA$KP+TLPgF!Ds)nl^_wekwL*LvO&N{Xy|LVVux1;i$Y*Om9= z#qU$<^Yp)={#+TMMi-%Px6R~3kQa1y;h}xW-~>t{lSj>5NL2`W6aN4Sz2aC?x=>W_ z88bkraFUJx0B8L;(nWJyb)+7CxKU=T1I_y3Tv68>4Yg^o47b2KZ9fIiTZ@s>scPfF z1xRDs4`j@c#LPRbl|yosUOo_ZBvVupd|Ezk$mdsObQH*}h0)dWs+_7mC`?0mT5Ajv%LI z_L~0yS!;(ar{Fv}+#^f6P&xu3PVGB<0MLzCQja6 z?{03X06=3Ezq9Y;!&RU_I{3Z$Mob)P779Q2iK!Yz)c*iJYYY~VF39P2>wCyUEDPw; z{{W{DG@%jrJ;lP$gO~iv@5KST18X|1Rh~uaH^DlG`#Q=i4USPS! zfUwZNtZpL0aKni_MDF~?*#~w(MgIWnd5JbJ4ZQ9OHY5pM7hyZI%nD5fkz7dOv5nfr zzjf#N#t^U(e>G@tPIEW|WF4g6)AIm!v`}h%*D$+_l_Ki?Y`6j&Dj%D&cl=@8!iFVNFdU*qBEn7MW`EA ztMT2&mEi>~IB(MY#1|maCE*?>{{W=N5u)t)?EW3(+P(21L`{#L_G8pmq7)}B-?(5x zA%=h?_ffs=!*{ZXyA)>6kLD{UWeZkw`PQ*8bX61-{F=TvU1_g30NGM&*8vcbM!`M) zonnDij>ywjcmA@{gls%~Z}W(mzJd;t>c9=iha8}O55nnho5F1LV`$KHkQbep;ebYT zNK>LHowF@V0}TQ+2S-#-e88Hb#L)CxvdfNP5EZt~zq`V;#T-G0JFYl1h6ZU$#XdIS zoW}+pF{ErYRI#Lr8=mDPp3h9WUd7hDb8$QMoKNF_%jP$#-e4A^s5JOu zxP{pY(Wy;`$5>7Hy+lHvtFg^|NI(NNH%RjVu7!1U>TnAG0L}|9-64G`6xi|6iCbFo zb=WC-{LRXll>tin>@BM@2%5x1v#fR+K5GkJ#YNf&_%-v)vXZHV2YTtp_gLkXeAH1y z*&iNaKNA86fFtRo@)Noc-e|BzEktyk%ShUSgK2(iUzvA66o_mdO7HZ?WU^Cq*^ji2 z^x-&oBt=~pb4rUi=D6ai3Q@A@-1h*O2FkR9$674QLfH*Nv(|mafRz|6Q-0{@F^KK; zDySWr3KTJIpeg}<52L^JypwZ-7%$-ze@sG}a$Mht(Nb)fxCDb~Rrt0h@k(^FNK&&k z-UC`@;=H@=9ry;{c)LT|;uNwd>Pn!-RLeES*LIYp!!7Cnmh;hi8C8lda*n0Y@c3ZN z&^D&WdKd&AxS;|RD5LiqxBw=gF=_MX%q#x@O6q+YLt3%O;e>5MiMVn=S1{wo0BzT|cnjZZA?v^AxY=^uqVGd0cI8DmKFuNR`p-3%B3q37|u zilwsxnlLr_O&1x7ExK((b0X_Xe_sybRr{O;sK3P1 zmb=|*fFUbY(~e_mfCm5>`l*9xAbPK5M$9g~#zde7DS+5%o&rH5V0^g^e<-{lID>$y zl0Zm&2n6HFjr>87X=RMzELIP^~xBd)3XjBy#`#+zZGND2(h!0U-{{WmJ;GR_hL_9HA+6fg^gH~(< z%+bpTMl+MK$!&osN2+WjXk}R{%E0aLPdwf?ZWARY(NjR*Y$Fn9=oJH{{WBg4?e8` zT@sp%j}+1G?n>TBFpmLz z{lRVnLIepJ3;A_^<;tKffU~dO;yNx6k8PPWmE>elIP=iUw8T z-^23>u{L4_2Xswe#{NtK(L2Z{lb%<&N+6)3l;97azqu3(*GQ}%=lYq?yiz(HNq7GM za{{D|hI)8E%3Q4!du`f#fsq>E3#o1Z^}8A#kkBGd1l|ITw*bQ5xVz&U=Y&oEml9} z@!6Fi4;||Zlo8cN#NaOb#iz>!o6lJ7;<@MKVkTAPZ$KjROEYO`V^ zIw#*Uh-l5B-{0=@6+ncsu(z_pxkxh@4bkU+ zjE6SkRxFmh#X=jp0G;3Qm&OAGD1{^>OYHg#*|6KfKZ5!$ls~#TopV z5DAT-A}2(jnwW$!3U27>07n*4KiRZc`r2dFN+3|;n=LWq43lcw+hqql(sS7d?w zI6eVvI8z%yEWp%bYZ9t6!g_1mQ-RO{5r7;`LwTh@t$73DSelMUUIls@poK*d9C;=R zEe;o!HHk>lHdEcN-`E~vOdV}T38Z-Lj~-ktc?lrhAIaWt?j2xcQQoBWG@8ai;=xn~ z%e4V69n}E8#^kTv^I3G-;SC852<)9#C_xe{@QPa5tA!?LG~pW~M}Fjw)ZoBW?GbyW z);nZ^Ky@DPOmY`Qy&F_(X7tsZQO5MD!5M8dh?_8`5>_ZR7SW}f?jLOoX-0LXh;8|c zeKwViiQ*wJFbzQ5Z3mPlS13dh3Xn$Z5U1tMfUeaW(N_FXIWqINMMR>BFC8b`eS3oh zq}6mVh4BNhYU$0YvR7_AO++Mi>>PE#!q*WanT6uz?i7`&le0M@_ zICPKzLWdfLfp}Szen<)ii73b>QKB0m8pryx=cXh{N>aEGc6mQ_jiDhXjS8j{87nLW zC@iV-DU}Efs)#L?b{BpR3JI+`0NngeIOc6u^zxKy@Q!@4lD0 zMcEf}kFUG_bnidFR)Mtce0Jeb)Cz8;c;v^`w-%BSbsPqN;het@_fyG@~8mXsiwKCVrp6_ZiV8#nQW;QgeKO*^CYN& zDJx?vvwPW0x?u!KiFE|?8I`YJMN|TI_x)vRC#OQ#?Am|NaibLt_;vnTK}Y>;A9r2Q>t!EA!)f9-M}^0f2)fDKEpglM(m2c8N zn8u@POb`VQO`_sFjHVLwznz}ocKQKo0#`KfTgqi8!V*(xDzos$RUJ7>C?r=GAo8G1 zf_XJz4QAk2s9~_ykTn~CN1@mYv2DF_bOD$rk^l|&+^huaN6Pn;Z+F}Q6q=c@vVZxM zT?SUAVcGux7*d2%1_su!;cdZKSV053HLRbJtg(^i!Q3gLimr#Bt><#WoJ6ca<#vA_;_$jep*gy5+#xwcX1r7d zyoTJcQiM3R44#jDq%hoF04*+rHvGbF<5GH1>oi(O1jVzf=Q0pwhM!<;JjCdPkyI)D zUvj`3NL6YoK>3c@SOqz;MFWBvTUF7Zz_59~{{S};5i)J;C-;BThSzCb33PuSd5CLT zPLLp{*t@{eq`O1a0_fZha|o2x2KX@BYE`YcKnVggDWd&;Ln~k=kYdU6+%AJ4m+W*? zzMq(zO-YNVn}43+BQ@QVN(g@#DGidNw_J|TCpCa=h=K?_{vW1By#RW4ruVB2#|S#Y z4@Qzr{3hmVl~sCgX&dLcyK@c%LX)nefVmdQw24W*Mq$5Fy$B02;#i z$SN4LehvBM$@Sa6;8q}zh*nhBmb&vOTSF?e(ubdh@bVFWHQn_2k73{A5)9!rg8Fqk`!Zy^8YD=O7@C{8FXR+Us0!0WCIT-1 z0BR@?t~51Y@AgomtZY3VB(Sac3Y&|BXP^}b^1a>n9PFOy@eke3V@6s80WUi57nuM6 z1HHG;U+m^=02o#ah*-sZwvek98%H>)O z+%$RIdN7jdbW`K0kw8+`^ZsVC_gy6pf;v9q)*C^Uu=%#m3g&>OZHB)803LgXHB#1o zAAjBlfg?Aj6rRoe!(3gYq(=I}7=SdfMcCNFYkHl)uJ=tz_x}L5Fi^V)I%IddnpT94 z)|)HwUgRD~AMgFx{l%pLG<)A(-R}x&Bag;;ul1~efTF?n{P5(>m1u=tGrjE10Mk+w z5BGSUVVFSH15lnO%q1cXSdRP5s;Hb+*VBK0jpE%~N;MyR{)_~tqOXVe3?ZWeA%nEh z`Ane@3aB;rzrmJDXZ#VvldXd7mJQ_wVF*aIpUwN-o5GS1F5^JzHO*HXoiGUcF4#mGR?Svj;f6ad zih@>`V=`2Uu8K7uqC|DQU^5h9X4_);9iEfyqoul4ig$WlaUHb#08LGEUbhb89l=7dUv$h897Fx3 z^WhxZV$=9j>F@Q9i%~bB1n&Nv!YYu0`mOWbOcoq>Y6K;^?vI#RY&N~uQU3ry<@UG; zC@+$ZipL-Zu(}HDtqarTaH!=rh%6B@?3axl47vS zbZ#I#+oEClnAN6;juj)TaaDVWMHF06smqX=i4deF$OEqoVF1X{(MM@Qw`N&Y1f5rO zeAoELee#%(6g0Hl_a96pASGhax3A@y60i~lM4<1VxHH$pHrNieQN&6httE;nM6@LH z$$Mh^v=mK2vQ0tWGaFARhq2)i^GN2^YJ^&+t$2~h1!DCy5+Ox4S(8kP5`{YH=RY!e z3|Te>O%egXu>l4~+CQ)B-C`#q`pU%~A+1wJu{1IrG~8NXn*3%(3|_Vo0I*y?4Hk$| zC^kKpRvE9VoHJgHj#iO)A*Bz!+{NAd)vNwMxgPd0R54K58RisBNg`2TdQw~suaO{H zfjGWaV54|5Z7J|H#&wQ0?Gi&p5v@{PZ44upDAQL)f|L^wKxhb~u{Iyq9FUo{Ud=cP zM8bp19m3UJF5Q0<2Gu2s)pixIW1||ajpG{jz!mofiW)Zv)H{5?GJ3Q{Lm~B|b5|%> zjU-fqtEhD0w4!n~0M&PX;?*LH0HY)q{!y8v=;TO= zM26sHY9SIM>8TwFk#Ch*0Gklr=}P^_aN_BUujuY0ZN%z`%{t2KhFgwDX(T-WwaV^6 zK%ysqo&N7w=X#sEvaZzM34oGv#I4c|hx?dPw@D0Y*66yM#Z0iY0*o}NKeGUL`lS>t zV!06js1#l)P`t%w8%X&mu)9f+c2lh#k5j$Y3u`29m$emtVUg!}p)Qz#JG%a1Kd}Cd z0VIC!3()Gp>W&t>BcySnny$03I6={FFf69+s;2|Ku1*BTB0KTtns|08b^~K(bwEaI209fPw0o zcd-uR_}*T4D-L~ii(64puIn`4fa_QYT32v>DBJvN8(I#&erx;l9Gl2;)D!?saal3d zc)WH{XyLR;2&AJ(*{?E;B7i7!=Klb^v{rP}2J3SxHC-vM0 z?K-p(*bli^lTBISf8BSHOE!{?Bww(`Br^cgZ)^4Z`Mlh1g24LKo?#bMj^X(U^Z3CQ zi)PR9c|vH%XDFa26VLIG((KV*A9wB%^J<%?%iP~8n^82^^T!!ALT=5f!-4+*D~V0U z(|T!tk2$;;o!H?;v-PEDZWTT z8s_I7`Gg7_DA@+Y0KPy$zj;|Oxa4iSORai3+4;PNi4T#yFE)ebBNGVF#`#r%Pxq_< zh3wseK}k(}`!dz6da6PtdG}B<&?8V&O?L(D?84G_LdbTvXoRu!F1+POe*)OOf)=DM6a@U zoWO%puCsPszFuz$K$cK+Zin^j{xVsSX`qJBw}$W%+-BN0)8BFlR22s2U+Z}=%?%M4 zA}RbknGp##M`iNjKrCtd2VDKbEKwaKON_!o(NQK#Sl(`t9|=Rm#QH>i1vQIQ>?8gI z-+XWlB7l~-9yz*;cT6H1J`P^pRN8KQF8=_G)Kf!krO~4+R79eBN89J_HkDC?ino8c z8@9_9O`G|@xgZ4uC7+tqxI&Z@W4hVrzjJcPR&Knf&KQS=rS?6$-r_&Wk~YT45s2<{ z@0cdfB@cgt{N%{9Z8q1}_?cGUqp-8~AIqEH0mS!vc*a(@Y@!jxA{^(9sKDqa!$SoGfV!jIZ+MTKRYMhF-%QhdjsfZ&oe63HW^la;0*KvIv_dMESyn(@1} zTJMO7JV#k=VSm1U1~Umw*t5|ae6)Wuv%6PiTNezpx=;oUo{gDpqe<+jvt8EnW^KHe z01c|V!vb}vyAecAjk?5|fHz_p1An^76-Cm%j_vpE5F_>;x0?6&1t9OdfC6-g{9Hmx zp%I8voI&o{h=Nc=We%w~=KlaNz$LVWoo>Ftz%~w)-S;j0$_j7B)4g}_i19@)(B?!Yi$`HUO9$TK ztoKWycCDY`)-chdz*S4CQu5;e04_ohqjleBkuY1xYbZeZVpmoU5ak_e6oO5m3?L~G zsh}>4Td%lIDJso&9X0&aql7pvIzdEV+Z}xUXs-~!0o0toe8LtcloMdEWD#%y3Rag? zcdHcmAwGW`1wfus4yaFiLBw#3?7VGXRbxUeM0@?sia1<#irGy=z z%Q9o9f2?j~sbzDh@djZP z9x{vUp=vRbLk^M9W`IIFZal-j%|ux2k1fIvtHnS%XoL&QEwIQ@2;U>WaGJa*gg=rO z{qo?=s7N7HyRRnkbWIg4MM5}X-UFqib~Y*9;iVeV7W$IUrb%r=)QPI;2WeL%{Q`|| zaUDg|H@x4EiEIeJ8XZZa8~g^rHk#^v))yAC(9*pKYiu>65KiidXmuX<;rwDq0RS`Q zZW)VFPR2@kDNL@O0z?2(z&;*gl?Dka!AIM-{){EJomL zS4pcSjJahwcmUP{yKmnsfi_V)P--A2_~s-;F2jZa&zs(AAdvxW6`kp3R7pO zN1wmQVH2UiUsiS7uQIw81=B(yvg%ghj!Q*ul~6H>5pGjk0*>a>SpvBoNb^hp>Hcs^ z>;MELf0;=Dw&z0z-n`Z9r}vXypezwss?&D_v0{};E{?sw^M&og9b6jdmvPnz9aVC! zrK$dn;1hD9TLD#R;jLUD#1J1MfKmpvj76c)LcShb?)fkd%mRZ}O{AUf2&4#7wAQ&8 z^1H_v1836gcMs$+5QktY@$~KP9=B3Z+X?Qv<92eDR37L<{N3Q+#TX;fuKxg&7ST#j znxnED#;a8V$Fd~n_paeRl0! zu>Sy1!U?4TA@#4-)*x`$@l*c*&*KF>2y4_!pn^;V$*QEO6By;h86_0D(k886>)dy% z07lcrm;4tVG-Ndvl}#rOn8;wN&^}3NSHI^ksW9HG-8?ySzL3b(=JBRnvD3))R99S^~1K!$RNnoS^8@ zg!9>dtdX69q)@Y8^EdNZEf+;Ze6Ka|{_|_JtlBDmvy#&mE1}rIV$C=E$Xj+qP?7R~ zME?MJ2$QP73+Mj;8AQUV2#d&H_{Uc`GDAdLu@~+>nVOB2s`>23kek>wHK9*~AJ-ZJ ziV$A#*Jpn+$c#djZ*|+>uCQ@kAXuA`4aj`)?g_kt2(Rn6x92g+s-YUG$8L_p*>Iag zmt|4B2Y=qCKyJfTUd=@B^Or~_CNbOly?w?&v=uh9Nv}*agRwel=yn$G{9fa|$kA)w z>New|YDZlAfEYL?0pg!Dp7!G~_Ec4~kK~-!|~V5*9b z8V`sc#Yp(D0H~Tjiem5}4PwZ*yOw>pfWS!zUH0G`Xi<9W_A>tf ztQFayRZ+wW-5=g0Emi8hDnq@^uSk#>ALsrvTrxopsqP6SfhhB+j|uQ`+$~P)Zuf^0 z3a*eW{*=wB8yZ_qt7+U7?e2y@qp9aG64V*J8q@T?WeRNB4im}0W((%p0;1sD-8G^% zc!^K&<3j-;zPbm$nD{bUEgNnAaPN>E6eT=l=a&Me!52sN&m#W-dc(i~oflo)yTB&t z5+X-PhZD>t&<(MLVEBk&>mZmwu}yTJ$GDLq0YxKp-G4Yu5GGv&A2j_i-j{7nHjkXBx+#ZEt|bPI zRr|m3%)6ig5JU0#Jj$nSLOX+>$MgPj$wswG-u#sNIf}M~qxAW|Fjxpkh#DXo>v2$! z6hhnc@}^LJAapO^>kTM2D4$H%n8WI&hOE`u`En}&rmxU>FZ;kyCueHa6Y}r)JBadA zZNk*wm(SJ7tU?@af6sq$Oe%)KC~u(_m}yafmQfA<`}|AX0?Z17KJ~B6Hv^?0LJdA? zxC5pkf)PW2?&Ik&d~?wCKJa-TWqks=)poA7Y2>7+%} z9Atdn5{}t56ci9CWbT=Dg%U*`s9SaTI1yzC3v1+)-*n?SSO7wrc5xs397|BMc!hOi z-Pw(R1vYjo&TcfLg=dV0rq-I+tNq+digLzKJrz_YHq+_H& znnc-*eS$WW3LR}mElh^<6=-gS2Bmycc8dV)y7^6OP~_r61mhmgVQ#XeoE|tIit6@X_K`6kWv~p5omcvbFFotm~}a zZ9vz#GCe|Iv;Y)^?wy$mRy0`n7<06)lf}wq2 z0Cx=4SwI>JBbOr79lwW z1S3kJ93orqsnL%4$GIq%xgwKxL^*SivGfyYC0hyTI7$vgU`T^vC$}22Y&yD(5)jY{ z!wmE)U7E@B%6-Oh3Kbepq!^$;A5?c{_`;hhO? z6obv%qX3-}lmP~Ms~xzR53b1C(pOI8|ZZ*=5lW`uf34$(V?Ua0q6HD5RT zh5=hK;Hk^Ur!m*{c^G*noe-G#Apxm$FE+I<5qYgGjh`?6>}nxNk+e3Jrd5 zm$)s}5u`XKP2G0m4Vq}s7ILfHsB9#Vog$)ek=8M!kf5PjHGN4jklZCmil)WWrA#L2 z2kbBu$mwV`t=1mK*6`M7fT**2qb8e*kz!a)Ex*3-aSoXg@%&Gw?U0PpjaYLjoU4<7 z7E^97JCG7myGNh^LnFJ3avNRCS6b}Cg8@<@((ZU+tH#~sY8oMk@sg^Q-M`4eZiG6Px#kqkeC2e zg&+WH^;h@@8*th>A9vUJ))fE<6$YBJSAKNK1gNHT)qx*_y>AeTs$82uAxpOkO(X;x zs;`@x{{T2i1kjWCy7OZ1R^8_HFewA2rpy#OAfnIRn_LJu5s6Xae}3Xppa9*RUSH4S zSQ7c0O3i3OcbFTjgcTjr-tYrcC6rqZ5aND!`Z6RVQA!Ao^qxlKy(ka}0tgTz-^q&k z2C1-h-}}T2`XMfDFX!j(vrTF+ie7HBTHZL5T7X*^vtL#R+z^q)7EnFe+r@XC z+4m8zO}qoh`-p7;u8JFIGV7C{xa{6_F=_x6CFzKjJ^s^1wLk64p_~fE;y%nyD;w}e zn4iW2Vl<<%LE33Ih&B1(^%4mHc9=27qL%T4SG?!A3`w&cLJt1l&gSMYF*LlqxRC;4 zG!Mx6{C&n2U?*j3B7OHD!lsoOI18`)xG<{3K@4|3AM=Bgn*wi2EW8*~X%P($AD+of zS^xv7cXpq**7=k?rB;A}Z<_3`035L;2YT<|y4ceQ1uoD(z}Jn6;U&&g2)l=U;(s{4 z%3>%Q?KjJcgbNOUSC)U*HTFQN2&q!oa@lUY>5N7b(171B`Z6(+MH^Y^=o{7$6ojc8 z>^OYAZX}30Bu7)uJGdiTI*=i;Ci&iGlj)G%Ik5i#FYx0BT-wUVf$7i85JEvi4K&w& zH{2a&&~(CA^W96VNDNm`wUGWl&L1sl8&EWx{ud>iaSC3bY&-khrWhyzJ-;P`ywuu9 zN+GlJ&i??MNhwhNJ2!s*;BJs6Q`7$d-{%F*V#FuS<7>19HokBBGR(UMxKx~2I1K3s zkn9~9r1lOCcI1p${&H!azyqrdvr@#+r)v?V8mMTB>*X#8A2%(k^~ zM@Ga<8Y{Y_B;7Cg)?VJ&16K4hQAF{g>)!tW-W_1cIj>L685$-9O@k2QFVd!3;shk9 zO+TWN`IJ?7$LgB#>3@x8fk=I7{{ZuZ0vPc=&;H-Iejr7&1v@WZ8QeXiK}-5Fn9RGb zpk6QIWn!=d_FySMC@Y{pH7)}J4+SPNuy70IUT~_Er*x;u`#KDVPG03~!=3Y|COJBnF>{ zsrJ+PN3ti9EFV`kzg-Hm8mcNhjk1MZbsI&bTNHF=u{x!E*2-w|G*#`ET?80;q zNRq~$ySYMGvreC-{yCgAP~z>T)cW9nD0V?9;$7}!jTu^?nr$tgE(AvSLtvp^`>YZc zh6G^^-|_q1V{9{K_*ZRreB{Dx3YKnt{=dF=DFzB`k|lMOd0bnV3O0c4e>re3a!p7u zyPt0TGBciyHh}n>8?cT9gxgr9^mLwqFkqlN0I6P!S~2Y@H42K$4GXPT8NM*rttAz( zPio*f2C8gN8alPgD^|px;VyUirx+DzB+|c(!Qpp^Mk(M(n@15)VBJN_(h6TjOkP&X z3L_bQhtHJrO!pE601-}uRQVhf%h50`)6=mqQob7_r;p0}-`pWL#p)4<^Z3 zm7CeX{R`9|$Ct%ZXc4HPr9X;clSxN5{ogdXya5@C(IFisr|r31;%bc3r5rMvz(j-q z?}-gyw#7n&qfpe+Bc|cSHQAVhdQIs}SH1_di62|Ca+s4EG&+Qx{x!d|3+Rvs&}|T!&;k=%^wgq1`aZ#TGPp{pRptW>}px+1T{T$KlZoMAA7gQ*5h>xXp zq<(PO{a093<40+{51x!nNFWx;3TL7b*7=Hxuwf}-O*^JJurWd^0@S0ho67w?*U+On zEsvODn^I70`v{vHa)LU^6)X9D<_ioEtFZyCZ*0KvWlhSJrs_%sp;O5!1fS+3dtJbs|QpAaDtGVN$UU)j;Sc+p`tk{OLe( zFsB+@0ve>D3QLlBJqu>QY-kJbaZ~)`RoJxf#5bPSF*ajRfMD{)B398?7HZ0x-bHl8 z^tG~x#)4r5#w8T3A5M1(3;-a4x|dearop@xupb92ZJ*>XvF^ahp18NMmV2=|@JOmy)U*|2)o7VH5!+|h+ zip`Ev{{UZbBuLYdG$x+zJFW&(5Cbel=J&7f9A&_RO;s(og#E&!Y>9jEHcz5BR$THetq+H&vi4Arr%4}eK9YcS9ZHK4jZTuM?vEmu&o27_GI3v*-~8@*k37!Z`? z5}QQqzT${-Qo*(_t|=VHVo(4$Y5hrZDgM*~=+wAb3RxF*=BUDB2YLie-(R19)-Jsl zBwh$&PK9uYP`AY#X=mEUcqCZ~Sg-)EJe}S-Lv%$RNbmj4^I0Cm3cD(Ccw!LQ0HJ7o zKJpg{sDY_~5ux%f27aiW9pUPq?9F;qvRCa2JL=&@2S{L(?6>uO)-eb{rFBpRx2udG zT9h3ckw57BF$-+0xk#o$Ug3r^Dxk`jTQ+=fN9C&F1yIMnP0HbwOBzeHSTDlt!P@RB zKpPEMgRkD>P{O-|w$wTHDXnB_Pz@8UsP5RtR_it|^nV=hm^Fltbvn>c3MQKxVQ_pH ze3WXN4*kTXzwAAtV=j$>^|$RX20yr_iXmZvsB_q-vdAJZl!y=zI^ zSZYp1)^!I4WOFu+pgMV%fJGoL0V2}5yjN;q64rE1@MLwRL89m z*7^Rv1i}zl?_nYpZ1}j;NT{RbKjhvtLTF$?ro#O& z*exZpS7#tMV}`Z0An)KBGWE2os`cOZ?ixIR5COWofry|31qQ~dcZ|8psE19vCZB)j zSYyFcH{kE4&*Kn6r3*F1B#Swf8-M}~1DZMH*YlmEw2ieLOS?O$`Hq6AP+P120D8+3 z(4y6pS*M*b1;ncAk3{}i&fo-r+L1YK&PxxN8eq0yoI-1;4f9xqJb+OL)HvT<+c#oR zt4^-odw+M6bP%4H+D#nSUE-qr2Ts~pwkli(Tto&bwL#yP^8Ct;lQa!Y2fEIrYGSunpXd_VNx``kFS1r6A6HPF?O78Roqi& zq6e&Kd@yk{LPq|6Zv-qYJrQ*Lz@h!l&1>hr{{XCgl!RI`Yy49fHU#te{sVix#x~NW z*&n~IT0y$4XZ@e!AV4CKbxmx*2%}yKi90_1k8zrf9HNK?^rQJrV3F6PqHne7j0>ZL zTXrAc+!SVj38fOAZ+KZ+I1v%Yg%J05` zWjT~tR3QtXP^~d56oS#0b;5=(gaVYN~If0hF=9Ka7F(BnGo2hR~$f!=TXZ`|tOx>7%?&&j*%cX&52`OT1w_J1)_I2ilz9x!}{W;di=y^Vxyi`g&Ue z>?EHS1hi$@qCjl${{W1904>%+NP5d=L9IJ**wS`AxB%)B7RHap+ktL{Bd-8``M=zd zGW94skK20LtV+NuVu&z~!hcN22wj2k*Dd|V_)-di(_e$_-i5-=5CiKz;s&W9?yp-C zQ<~N`f_ic%Dg6H7JX8$Oq(5$_?o=w61pfdMSJVAww!!4xUY>jm0ZNAR=lm1?ZV23+ zAk@MTXn?d>{{RNh=Xmfo5TL6~EKMJoxhR8r=zkk^%nrHGpeHQZ{FC=xrGVs`uH`?4 zo^E3`vxe_T4!1d*KCDClR4pBj6kt`U2yOl~uKr-dZYnJ-KVi>xtB}8d>L7wVM&BB0 z;v2Mp4HCbiL|!2?S?-5V+G3(4H7Wfxi1Y3{KmcoWA=r`nN0SLc zL|P+7zl;;Gdx92RC?K?+;aj*Xi;M=82E@^GYZXLLB@{GcqgNJs!#LYZ0MwLVc%W*CQwz0kMeOdmwiteZwKuCeL zqMOO|1%O(+_4(i4IOgvvYf*%YYmv>%rk)Eb4}`}O3Jr+9zbA(A>sJX*v;uz{#W4*< zrPtHSd7C9j9xt@{;qA(5IyDArq{MAaNJmv{4Ui09DFh}Lz(n}rZt@$TTOgaWm-@zP zL_{E6em~#(!y&O&EZT3w!cR=lfRe#iSe5;5DA<%55BDei;DWJ3fk1WlqwABRDB1`c zRM(rqcNNmE>7^5fq(BO(x5IGKRHPDQd3S9Vv)AK_Cv+Qzg{6 z@riBR*`*t}I?K~vseM*MU`*i99ipKvpUZ??DpHlAq8`KROis)!6LLDN*~Vs|LG3_x z&*$zriUmmkx{>a(D!{5y56vytU%Qxr!6{khiO2Xp^A$*aq7*9Koi~nIuB$AC6Z$i1 z5RKJz05VOgHxD``*)u?+{O5*T6+(|ycJ3YcVMLi(qQW=|K6tp%i)%prmP5>qomt>r z1yy&{^qIn~;@cvxVooxfYE519_ zZbjBb>rzF4e>nSXHw|nULHX;fW~WvK-oy{epI z@7?nN2^d@f+o7rO+YEXBgZuh#TH0evZH9yfC40(XBN{+#1BdGJpT1(iWCJThY~6-v zOeCQ;yLB7;f+Ma0v8T6tQJ6qL*fbg$>UZw*nt&3Z59{J~^V|R^zGScB_CDy*mnEny zUR@U=7DQ1BX^}PNruB=gmVy!aJRbt#)O`|!JO&A~ByA|7YHR-h&3T)=rJ&heDXYUY z+@fnGw9rkXpvQ!e3V)#1@3RUMs;5+w-tYcB&H>$pNVb}u&vK*|wLk`Qd;TsI3`D59 z^Jl#^r(3~AlEJh-z?}E^(S>OW2{!g7<>mttVc4F8j-7Ki91X2CVI0~#rpLU?PUI{V zH36G)KfOV~k2?_^OxUQbTABhId+*J-uvUnbzWdf__jxNxj1U?`nt#i2)mbiyVn4!< ziHkxI6l2fLX5k&Q)n9A>046b1Q9%tqGQ@@o)0f$Sh{$V!71Ezk$TKj+KxJ-#SQAmBv0kP6>>-DCphT}a9oyx;MS=Ha^a z(es+-vhWW=Vm1SbK$LLPnX$js_uuCjAykcbHKG3iUh@qQh)Ts0_6EfK-dIp52Tt{V z{{R{_9pP6}5QZQq+LP?k7uRHHbA9y*d6Idmz0u)no93`?DD>J=g*mu980Csyzu#>YpDEvv@bL z)dmD8>dy4RWJrM#=?6-RQ|3lK#lH| zlC9LbOnbqVG*nYsbt|e@A{waNw22)-^Fm`_Fi6rxMe)#|YmurG06;{od{_LrTkWq< zFm5_Bc&l!+6ei)hy(F#~hvm}<4eXBiIMyjqDGb^Dr2H{<8=>U95-~pnt|n#*+JRs0 zp3AJ&w^2SQk*HVxH=G)kX-ZL7&+kv%QQc`^2T_}M?pTi}f}yQD*k5^vNk9Uq^@_t= z{{V~v3_^jQY3PZ)IALZg=(^fY5{GWzvRBU>P1e!!!zT$+GR5fUb zh1uLFKx#xtmWf(6TvrAWI4$aEsGHN4iInsgN$>aM!4bh!VDxK9>sNCI49GwTrH#_= zM+9@)5L%?)A2KJ9JqN28MwHueqK`^&SP~J|sh+Ghfd@mLlMVG7K_rSnO|-ab$f&z4 zA78T#aLdxJ=9VQELB}PQibN)N-RZ@NGo~n{DMXrcbD$Y(c4+?qa&HJ-;)Nrq056Yl zd{UPmB74u=O6vraL{&xdOg?l=b)MM49{iaZp1M&g0n_~CI_SCxZ(L8~TTCm;4%2Eh z=zw$Xu)@IwGu7B$%Xe@pA!-7<){0s0n!~8fXiWeQ?SYZ+3_E zg-DKqqR{@oybhqsPJ)9?pN2Ee&xOrE^sd~0c9S4F5esHGXeh#n>$7g=Neny$r%S8; zaS)jW00Vp@<}t%kT-6L6$j%uokq~_X0bl;EHYDc@YO5;Oit0>wnBW})P3mF82Wf?L z9hPff-zl1(@mQgBxu`HzC_?qt@8%)OR1TEbpgnv2xE)jg0LnSuT%?hJv<>PzcYbKV zYLNg*(9ou(9CFcZG9HjW$1-C;C$d@vH1OUG?vPy4tAE#vF$n0#Xl~{6{&kkxO)68m zFK;na8l@Xoss0MwVv+%1wdn>wt|5oI=r+($zleL3LxhC|_5M7VRH(=-UPI*mFrPSp ziMRkw6>!4qK&%+340^>d^4n-829;0j5AOo5`iwTcWG6n`gR?*&ZsTV@Z_Sxa0U(j- z_y+YT^AkT2=~rn_({8ejf&?SGNATVdNZ}V@yZ*nNy+;6S0viMRK499amJ}b$F0u_} zx59uSCEE<%6pWS=s8G?%Y{rTO60W=msco2^Dnb<(Xg`+IUO0nx@fNRjKIfsL5(w{K zgC@S0R$TdNxhAzcefN*k77 z#HbKybkBZo8rec8WdvA{OHO9K%`7Oon$ta(HUl95FaFts>{LDkYCD+ER5fePrT+f_ z;~Yp)6c%64K6ea*TLJ;vJodK&;hPCJdG~tO8C12CX?{D_zIbEFx&oH<@_nv0DCsq) zhw;pRh5&+*04mjt(qj`{B{8rYK5#OHkhFU9U%J3xE{$%+f_8rx6ly6D2LRvQ&ijvn zHwp@Bf`-p0%#GQhqPv`Ux9N$?bq#(iDM$GJaDZRj)}#Z=eqMMbqhd5 z;T~fNNS{UMKQ!+eK`O*Zy4HJto%w02tc3b20A0e;u%vVjb5z%nKY>#2 zQll*Tfvhy@g_sLKHWAH>lUAmsmUrA#DPVTR=C!S2D`8&gr8q%2{V^@BjZN6rulvi0 z5@}S?HunDEhSOAS3G#7qn6T9wCZDg2#!RY*#C*Ls^AxF~m1eXn*{=MU6KIPAM4)|d zHHgZDcTgw_{{XDy!m2onHT*jN09eu8L>tri!i>V{qHk39{oq5O*+kLajo6r*+5*#n zdZ(M1WdO=BRVunp8vMk0Yamb&ekXrUW{@oab~uNIm;V5BG=iy0S_#KVHex(AaA;UF zs%pQ*)*vuMC~8oA{{X!>h&)6WRxZt*!jra(1lnjZFB9vFYjIL@zuw>GU^gu%T5=NuXNgROmIy~3O_WHOJ4lpDHy;;ibxdgj7Ew5C2~Rz) zHkC-iST=b?N7CZlm;$A{=SfbTa@gAl6kD@UeAV}OXd5WgbX&Bb*x|g4Q#&eMNpR^M zCPETFZ4=0Ed2g#XMnJDodPgIxQiM@Wd^Be8L==!HjT6z(-)d#|y9%mlQPSx@jp5{* zK!KnD^ZsV-%?iTaY2C(3WN=S-p-gvoCf5S>g01!{!=I7X~7*uKtA#}KiUtCnuxP{K@yoz^*a@?A>BOR(>GRGJI!RNC-P&}6@vw# zFN$jWaMXnoqpIp7vXgU|byyi2wP7^PdAYU0-VYEFhm=tdFa>UfG*mA%oc*~!767D+ zP-#{-QYJp3AkdRU`{OVKi9mu<7233!GN27Eyh8+O2YtvAB$_7Q)Q-#yh-GX9%KE6| zzwh6piAPA-H~@&E?n_zn4v9B0_X*7<)A1Y@g9Y1B2X;I-)Jy^~qE^*lCY(581}M@G zI=a}_t`{`#(^Xe=Mns)4iIv+$b}b-jyNyELxJrH5z3yWjU5l%#!de^6{{V?9gJm^h zcOuNCmTC<(LEFijZ&8shs`yx48@Z$eVKjh3%SEN!vf-mfT8U61h^I8*+@&m1g*FIn z>9oOlT3s6;Vj~;o^0mln$rcE2L9KS?!l)5JS4eFu-&~k&)nJk3m!%IX;U2|c7}~Ab zuX}_20ZASHmb{pIx4y$v>vq^&Aeo?{-BDKWOdO66Ai$fbmMf>z*^eU#kZb;(`HOls zo9l|Z4-H_;fw2xB9(!bN978q*;&2@&c{wt+E)$-UWnVq z_Y!i>#(76Y$xjt<1-)8_@MHRjS{eK+&z^rXC?XQnEw zsP!!W ziEVdQO_#sK&4^lag;iZbuxjd<-jsy}V+To_lz>q{d0sX13lheGO>g!|tQ4+;C>1EI zn~o^Ds?rYnH7I=kFo+ONB0V3?@_&Om5Zd9!zijX(OrhwY;cIVK_|_R;y{r|W2U}XJ zfk1XeDcz6r{%}-k5LGX{e~i?Ts3_H%h2Q@0>2TVD2I3tXyETDTrUuCNJFfo#u4bc* zDMCu8ciVl-xvcJR0&11_fRUHqN@RH$p zgb6@MNL|UhlDTpSZUw*DjyH&|q%_SR-u}3j5^#WM&?sz_nRogu2*pYO<;J4lI~~#W z{7*VzU4g$1I_R2?&f$TBuwwFjylva1G^|czlHKP_ajl|Y4i}^ z7sF;S9J+)z9e4ZX^va4m^z%q`)1%3}jD~_mUUT4m{{T5P2>Jx@r&><@!sB}3HBCM5 z@chV`Vv6j%33acR_Zl6fqo1B@_n$SEoRT1cy+5j@{mbeHXsFFbbes)YbCXI9kZ;lR z`ST(r3V?&&^k>YivtUEfx|Cnd-RrX4OVtP~ICyW(U?hON2s(gt6Zg(!)Qb|^mc2c% z`*IG@(2m^!=^lFG!{5*Y9p4^u_GaRXDQdH~pc?tpc@+|biV)j=efi9ywG|1zcAEbH zj+pnhh=WN1_1k}wG{;k+c@zAfn3=P*fFr}3H-HQn*TDE*Y?zU!5q3VGG0(ZRX4&I3 zjLqQDgmebJe*MpxqsL>cW4*L&3;+|Gf6V3ytu1L+e{cB6(5UN?e+LfqcG8aY{{YOu zTT}{w2s~YvA<~G3so1~I?rvt+&W9a)_bagl0QfI;+5G#A#RO5bB>U_8h@};0dX8#Liy0w=^xIYvSV((L#2$C|qF zOngK^{W2%e-REBW(-4NYjGFrY0PFO{TSuaUA3vR4Zw;8IAjwplgLQ;6Me`Df>qw6< zg{jn4^PK*Fr^%IQS|-06f3M>Vs0DxsiTWiRMt(+{3G|WI#ohr6(V7fVl7n!Pi$GNM z<|BHGJ8rPs7Xc8S-?t51K$-@R#SVLONo`TPL9m;C{>;{UH4;vD&9nHy7GM-^e*>qO z_Y1A`4R~o`zEs{L43}o78NwLRHC37g^v2ZaPAUrzrNn6fjfbc_5mUu+sC+^(DvUZe zt%&i}`Gf)$NIwwjU&_p>1|rE4eeU#z02E^fr?H*D)gZRO>r1Ef`+(=df+oaoMrO4D zLP|7fEn|S@r3?mdK7L^kKrJA5#!7%?(PO`Qi;)7_D zTm8#}L=R)OaTCwOEViNvyX!iCc}meFP_h@|Ki9b+$rMTrE3zH@OpE=~2(lu*i9Zt` zXq&W8Cy0rGBW?XW9Y9av8P_TS0*$w`SMKY8Miv6gX#_|UW!U5y-Q18w8(=i)gV%0_ zv1xq~uG8>h*Q0emc9FK6b-aXaY6BWHUAr~=Ff2r%1sgTfjyuw!DK#iiH74!@DmPFo z;{vn=JTmH(tG}~x~x)y>#2bI!$riFr9-%kcfIMyqyQy=QmE;_G-~5c1d)Uk zR8<~&E2ji7fGkvu6!VYqs$h^LW)u-D7BqBZ>r`{eD`KO4GM!KqN!o@c$I!8v4o0fD zJ)y7d&YtpEis`(+$GpSR9pnlkdW{j;fe%SW;#EqMNSqu>ATAeV2tvA;MzPu8O-Ih& z{MKCDgtkya@}e)t1rdS8K{a@=Q(H$8A(HNqtIe-{z`j3OfK475}eqVKj zefkL003n#Z;*rEiNulRBQNXjoQew4yulbl-)Uz78(-diL6!-;nim)nfB1FsCkf1;+ z9ZLCd{gu%XN~Et%=nPI_G*JXq<-67}OkeaH6gSSnK z0+=l|A_*N)*qdzMFh;soluHl8^F~^>bsS39K?(k5BlLkEvG$Rs&6~v3h+P1jLA?<8 zwCZgh5%_>dO$R4;7XDJ$yG;d zUwo5T?uIrLP&A?Q=265IHfhqQ92Ns)QXOKbt&y2T)I^dw&fD90dW0a#%kTiji80ZN8|2lK4%Qag|a;Up=qpD;A@RTb`ro@Mb{aVo~I z)dHC;1Q!DJ6idj-?8mkfgoCLaqz_&f1S4u)7bqp*4imXm3QEelN7&&4=*97+UAyV5 z9&BP8h_>tGCh)~R@p1S7$nS;cr9jeJ*9cPVu|On*ecrKXXuCwG-QR{A*~&Z$?wWZ# z{lbaSZ(wN~25_6Z%eD9UPsRGUnqmuBApm%2{<10*5XZ+p7~k0g2~Pl3H|)q53c!yM z?O3@s^eRIGzIJBDi)m1tsC6D{YZI>2?djO=>w3J%4c@Cnn*jd+mm6rv2Y{R9Ft@OT z6fa@-^Z3EC8_vaG2zx6@l26c%vA<-K=RV_$nyU(Y#CyK+2U(sFdy- zR>{^~VST_%kfzo`J(8uW;vd8zhZ`f<0=Ig|p#`KB`gI)~%`WOtLja)XXo7(PI z3E0qL2v8`5)L&*j)dVPoXTtvg8p!P0h(($TDR0?3m!Q*_kqC-5*fBQSWov5#P+7m2 zQD{UcZii%h9re?fq~SJhsGCvNAV&KERCdrbUz_~+grpF!0qp0S{;_>0#RO5eW#>Ok zfdNYjeDir zlBe;_YGUEDBoMSyzETYcpHhLq*-1$47n9_-hk$(y1|MjAU2+F%UAe$=oowK zll!|jSb42tC0|wIm0jt*VGAATDK;vC@_(6^eyJsX06$e+fdMQ)C3ruGPc`m5=v0yf zJo~w~t}!%}>nn;XDY)jS$(Xymu-{U5~>1mLU+-H)y}!1zQcL z`t$yBDqfY_y`Qjh9m*;ZT>wg8DjnnL#XI{hL$a{YPrrZ870fuDDMrwBOo!ACiqTIJ zqx1|NIns&&tQ1{=~S4; zMtg|XwYgGbQy8?mTHigw3a_XXzrQ`+TGPWy;R(vEBLjc_VM4G;?!I~_c^KSXs)-6K zP;c1x4WyU!4gUb+csp7IuC=$Y{{YrbkpV^o1-Fu13_(EOZ|vwy2V_)5(sg&w=k&#e zX38+XkB2vbbO`N-R@wRg0L~oFswP&>Lq|7)(F!pw+@;rbg?5|i9g2tWh~ZiZy6iqf z?m{N{H)kK}D~GUedWX=po*J@;xo;8gyauK!2Cz~q{i#05~dJ)5j9H6KuBp}$am>_(@0qCT<2wr}4gT5V@zE^|{!)aYOJy z6(EV?dSQJ6X(ri1U)*%J@y$tBM^5{Bf+_yMM~W_&-Hsb70AvsceIv=h!Y_ce4;2ov ze~6h1a}-f%>9gN0xWJ=TM$)dofc~Z;n^Z$;CpK#}lS!_zhJnzm*15btyrYUxO`<1D zOf)(npM+n4L8c6I6#x-v8bPA@uH1+~gG4O^JI6m-i6r?Vg^G(n;&S}`36o54xiHC8*m z$L6uL-;K72wM~#C+ux;d#^`p^QdT2OlXn^+w4>L4(VNY(Jd`P@1TO+=_+sm$0Akcq zRu^)ZU;_bKf&)n_xL@l6P3Y$UjD3xN)-mKQ7RjcKGo|KAfRHX+Yz}#bWnVBvlisQatg^5^_qquNn89 zn#IFlSsOHaR!aJp!TcW|Ho0H{CHyd^F|B;201cM1(~ zl_GR+zR%1kIJJ(RrP_y+G>hbJD*+o%Q-lhiMz_!%q-Spf!hlK2;G|JuRW~AhR@p7bfxJXj zibcN&`@zFmo}U5Iwq2!G;U#E--Ab?5pUUH(dQ*U+3aLGe)xvF1fjGrOp~b{W*Hm1Puj0F47g zq8-#f-=-coP=TSX=0jOWjVJlGz5ELa< ztzAP{8{`9U`c?w%tikKeyJmz1n3#aYLctl$mcR2cASJFNdJR(eKe$BLWcYBgVe zYwF*@;aUT#`~-g|H||hYZqOnrp`J?KwSan+0WJPNiSw+$DH;MRLwirWxVmC&UZC17 z^_<68MqI@j&;66;5C)Rihw?k;^S`+l7HI(=PNN?lce`^|&_oDcI_%P!E;PcrUnQF{ z5N<&u8`!QZ!&!XGh7EO0UFV_sgrNi-58Wh;Dn|nk+0aaa@q=x32YD?Affk zjW!hVD##b+8xTe4qr_jFr|x)5gwy-p^{=JHYQ4H?YhU7P`0fx51hxRw*SxuUR3J(o z{%iL%q$@=5Zhr;W@$&^;qHMbLiRGWp9er9Vwk#)G8^1e^(#;3~UebQ=bNRR$=Bjk4 zB7coy%@9BoK;U_sPV-fW96zi;#N7!(n{;0?;&ZYJ3_YEFmBy7C8Yb3k`HVK#L3O`> zW-gA@`TQZ`d;DU?E4>I>S@ZreDz>EJ*|YrODpcYwynW5P(5K}E{K2ImITZUol)xn| z1rJUu`%G%B3@UT4{{X-7mqH2wK<$^mxR<}^cALK+`c36Xiby3%`TOaWq-_uu*ZOt* z<7_%~O}BIQTapCE#6kV#{_Y`00#u55?EZ|lFvOxMFY=#IMsT4s?@GKUA{OcbfT4s z@PC|IMGT!JLEW19k3vY2A}{f0h&LLwC~Q5B0KlOULXk3B&pCtT_#TwtoxRj{Cwi z6;hxjjC)Lu&qq?|2@zo&RPqVLTF3B2M*;^?Zu6|xhJJcv*PKkNTz#9hSeN4XZce;@i<~$Xl;QJ3SniwTOzB`mXSThm)exL*mHz zI2})LI7EKY4^2!FnxzycN_MKBjysT8*LS~Gt==r9NC9PGb;2dR3~FvlkaQQZHyQ31 zeypO^P$@we>A69aKrs2SFMgPNWLk$=4Qr-AjnqkbL)J0EATd!4XOSy4Xil?p&R1_i7xP}>uCgEf#JgdyyP}u55WR!L5jf;5eQ1s ztS(y+QVR&80!?$!!^N;ERXCQ?dhU6GX^#ZNw`i{E6Eyh(Bn2kT5|b4`S#$|w8$!#u ztaOci{g_v}Of*wtGm8i}Nlh5Jnzoc!3Nf17m%i`_I*67^Z+|Rt&{Pz(wB2X~b-$)9 zP)Jc}87|3W`3%xXfGW3S`9wGAj)HG=NZ20;ZxI(Zg2hD_QEbzSB>X@%WzY-Xp@!DY zNU|GKSll{GS*(4ko?$6PMF>!lzU^T;V9=DxYI<`wWYd$44FafD+E{CI&APq?N4BS8R*sCCn~ zd97<3uFVVpXl}^u$q@#CTWCfp!7=3Bm=ITO7qoqGhNh7hRuu(TMivt*K}EN{d{HuW zfUqvXz;1)hV_-oNs)EZ9kGPweM9nU)kZ+sT@p2QPs0gXhS8s)JfTx9ff56wlQB^`gRt4FtOLABYTPLb_jlY4rD9MBXjK6X?e`evQrKva+88TalT7Vv`*D4{#E!ygZBqhmqS&ZaGm!n0-u_8x9vlLb9e zf!Xt)-tHBx08nQ%!P%@vEY=89LL7JZH%)=WQ=vWcn98w+nW7U*p}t%wKY3m z-gNYe{ZcC(<{o;DA9WKDyWY`!R-SPSa&U zlizg0*MiY@G-G4%GiRj30H^F=#< zZr=wi@vUv)yU*~r>PU*B7pxGSeZf)*1r}{op8o*xjZ28CAXi#-;%^=1dr}{}W!|BU zqV$%XYj;))-4Vz%i;;e7y!Tj>R759NKyG)tKy`r$TZaXLx4Jq0aYL@q1v-_A9b8tv z3V~00d8gbUgQRE^WNfCn+y<+NSs_uVo0`@;3gu>lYH}Lhg9ipSVl%P|RbfY4V^%ALt0&Yrh;NI3ifF5k2SLTJD34{fd;@7Z2lZ(!X&{4XnMXnxEiJv zIG0tuKZCyO3d)HJgJPGP4SwMS3u5Ugx9lUG98xK_My87P^78{4Y$w2_6nPyvd9*_m zAy@a`>Gw9Bgh7Qyv30*cae(cR!6UTbn(j2=5(ovhK27;C=sc~kY^&$rd-Dtk2%u=+ z16|ySaY@XbN9zbb)+iR#z}*Z2ADJ((i8*$k+WuSu&z5c@zE`lrpM;{;W!wN*Wf|`pDzoCV92WSv?xpiNh_X4bn%GkV)uARL5j+lTI zHXPslf2=Ryx(}cA{o+70HA%nB4VY4jfWGUwe&U4_kR+hl`kBQ|^gP#R@N*!vd8m(R zKJELbHjUKMk56uf;RXa%RNZ<*MZLz2D?e#`dc1HADPU3W*M=o)2zcy%{{Z~TsDoNv z`Og0UAGjt2Z|Z*@e^_22x#4^B?Eaichgo8xn%0bO6|m>OnHa8`*kGXwGAr2Y_Xbcq zflb}|30=(Y0yql!ehwsb^lrSwLIe;s`;A92qFI*|=_6C^#Y+jiM1VtLJT3LO| zL(m{@q&57r^EN#pG>n|^=kf8)ItnNdynlXQGlY1WNIQ4&Oqme@-(%nKOc>^8x`#ay zsOiH_T~G?by$)kjfdq6d{x^s4&%SMiqYz$$2orhJ?8-Q0$(;)isqv(GLT_+XF-8k$sPcFb6gRjiJa?#)|``AY15 zz>`>7{+UG@HLHOXuf?@t#7$~pG)q9J3YUF%`;r!XVE{cJolRi8=D@`EaW^ccXgah! zYyFp5F99+_hbj4E_X;i{r5900jc>`5=#z900K6BP^}`ypF-7S*d#%h?MRsBR3#;$D zauLKb@#7gKr;=rzy{K@Tpnjg~6(5f*dJp$bo5TVNS_s#L*%MyD#ijuxx&yBEa^aEK z^@$L4Mj|s7LJMfiZ~Q#VW9oniD9SdJ@VHXfSYc?rG~e0VgAul{(a9}Frm;imB^oaH z`eUlJh=5YcB_FAD@scrHId(DUemuhF0+3BB@dS+eG{i?u6?TuG^Zl8u##J$1?D!|9 z%rwQ#SBQ}j2R3YGD4LAgxN^H8Kg`Xc8z#9|x+w=c>;!VM?D87C&CZeFQDTHvYhCwc z$a7~@q!_7Xg0f;|kqfk@j_f~1<4_K_0MHNXM>Lg^YX#LNiK#sdjg+ep4FIw%SG#i9 znbIAJ@#7n}7|7a!@4i2f`G-gXO)7;3QRUw8q>aSwb{`{M@imH9Vg*PGH3}e`$r7*< z09a_>_rEfbVjyP7nj;=^V6K|j08#+m+zmv#G55G~+MTs{_Xk}$!UPni?wz=aJME-V z1%d=Z*_wSI4J=g@4Atc>1dj`bx-CTugRcfCE)5rNRKNJe-QXEihP5G^zHv#~K z7jf&SDw$!bYAm`D?)XFG?qNmTwl>5?+xd;l;V4KUhh*6?`67*gMuOsPn{w4!5NS@8 zYH!K&2Ni)qlq%V`x;Ly6v66u5FGx-A_cZZ?RoAH|zpQFC)u^BZY`$^C6zjb`5lEpK zF&>G~Z9ClQf?w_&~*g!>exA)pNchvqN!N$}D%Vr^-vVc|CKOHP|U8h4a>GA(vaknSYF zLIQZk>4u7B14m#Q3q0OSBYPsM`DW$t%kb(;Jlq+hRKkC=(!L681L$J^0E;kmbUN3c zz+V;A$_0#6D|bGv#1O=wr(o{WunpISg81SNFes$Q;U2qoqb_-*76x0D+O!IDYFaQ-TTO zAfRq5Q02lexoQD44{Py!w;s9H*ig|<11^_&#K~zYvD@?w;()=B8U+QVkGnDHd#V6) zT4?Rl`q<(L@C7Kc8@_!F@1;O6Y?Q$F8uoJ3VA(?6cY>?{N)yCHLtiv*$xmH zv{P@GIc_deyXxON*?>{&c1nS+aToaC;_dbvA&U?odHklhYDfwoD0ygi>CCsIlmRpV z2DL){apfBU(GMn{!}~Xgt5%CP0p|U4bP);x1A0SR_+a4FXi!)?YpVIHHXAKK#s4tmu5zkydJ3E9ITY4Qzq>hZ2WS< zJ}8WEMDd0|3S@vEfOY5H7)aVA14r}p4}T-PR84?pP6{+HJm= zXvt>e8Qx-mP)bN$fCJ5Ct7v%|=mOKcjx7|~GV5fEy%QPOL7+N*hV^%GD6L2kTBF{Z z#u8snjik}5$bWcos39q6JHK!5-@-(NEsT6U#p_VYEnTX;<30f~5laK0P1jrf(~N@B zg-G22d;D&BgbBf*u|cMkvn?pQ5iE7(pSqpPj^KrAXz0tgvCWIfh^NNKyw{t;c7zCo zp8oH5zs@MY5`<{92kaN$Z*fMcv`z0%^3C@aL_>XV$GBCXxSQ9;d-;z%1Z%C$@8g78 zRRInCpXvU$nl0dhyz>4zvLMQc8}Ir4@$ZgG0M0+1$-Ol+02FIVS>uj1z`};T^~oTJ z?4&EdHYv9O<7&NSO~KGONm7E{8vcCS`;US|sIvXj(Lb4tX#ymsu6Iq2#0m2@RMElk z>sO?EkQ@XDq+9#^>vKBVXs@sD@3_RbJ5Zm%f&6=yR0zjte!n~O97|I-3w-|opWF_T zP-fQbzrTK90o5@WHT7QWn#P?XYOqPse(zYhv`9o$Mf6Mji-mf)?I0WCR+xgoo*}PK z?_q>+`Z6|}qjN*_#vsCVi7Bc^b9iV_RF#|8@{!3UIv0Qov;F+rftx_ur2u!Yo51mU zPyyoCquyLvii(0aPHV^JG?yGV0XIMAxOHv#3@BIfq5Qd2$xRw@9Y=;sL@MmXYwiRH zH@e=w{Ku%JX=yLT`~Lv-%8z)FcAj2u?i^8{0183s3ys7LSRfH(1_tms3quq8UpIrL z1uH=+ecU&I1h8xoKO=G9M3Yb>O%c*RMb=nUCJK(<`tR|GshUs+ba4C35^Av>ME&ed zr~PKjOgadr@Ah1&yDbec{w(wE7Mv9xAIaQ#tbIc4oTPuB^E7hh7tj#wFZAid;h;1{ zwh)|`VcYId0wfu$HQku%&Xh|oK|b;U|W$wCe(LEO=+ zykK2|M#eauQ3*9uA}N{IneyMXs8V3ilybX(s|;D)c>~YW*XS5YjLag2i@&E)>q#Btx{i zEdG(efR1OXudBB&$>4Jvvd`wjJt^A9^@ zx!P*Vg-UBdc6JuvEm<||qatXckgu^uSA2e$_)<`oAyz<86Ph)y%~KvZ`hahq&66}#*XxF>ah8V7axg}3Xi zC`WqVxF1R0Duf9C02{+!-(h^xkjpu27Z+tZ~o*6;$5WRiD1hFG8|Xiipzg&i%wgM6%JnetWN&8Cn$l zqEZRha|-q-T3zXPBj)g#E!M2)g6e>4e6DZKuP~w}^gr8)n?j4XmS6t>wZuVW&0$bf z4ozfOd=|s$W3PmlH1J5HpC!@Y%^S-B*=;r`5m|K`jTtFQG&M?qo$%x_ILSpA#z1t0 zJ(6Pf-~>^48T`&;RceN@n>X!-wT%lb64c7x0;F5c7z^$dl-`hGHT-#vkQEXoYEr`S z_+^S}Xocdnmvc0>GP-2mx5+MRc{C_x@V(LB^Q?{8h^7T;S7`%D+%y^hbc0G2e9_*_ zB;8ey)`$l9tgf)tQ39}y0tYQJ8i)!BZJaAL-`3+7q9Tw9tuHk$^KAnvw0Nte+5GR^ z*f>+Dx&RAb+!>_=ONkKqK-b)Nm=qb&NgbxB;5E1=BSws9{3bz=z$mt}WZz@bOnB@S zbR>%s%`s86%}d${H+tkJH;L>GouLsZfIsBcLL&E2)*Eh~8gFnR$h~6x4Z^z@#mX{n z=?UubdE}051cHFt4x;y`C%7VUB%UR(03}3oPA~j+aidRD?(~t=C>3I z8Z>NeH?8Y?xm!d=mwM9)%N}Dk>9E+P25A1?VhYV&g)2irt?uo}nC{z9H~D`*+li2X zl8uTwPM>p;ny2nC0;a2oQKAJ7;4hI0=WvCtpa>hWUnJMvXAEQ&dHL`7COCv73v@gO zhppZPf`$m8`VCIcFo>XIuYAVBSdhGaAKn3?puzOBefcpol@zL<<67UCni(qrEx!(b zSVv?{ZQ6ADoH982BEOGMm=Gn=1=#Of{xW1gL@)66YRmzp z1g4;Y`RASe$=afAsIA}bR6UwOE&XTnKeIG|A&MJ+mHo{E&|5~5Kh{7a-HIZAUBW6L z@K0&ZznHhcv0Ao4r}NBW)k6cH4N19!U?Yp@wNzg=p7GXR1lEoy#qzc)9RA6XRWiERoF3OFtZBWe5`Coy^;8VJ?4?Q~9` z#d4AqDpqK}dGB!@XeU7(^8A?olHI`*W}TY;;gUQuh(!ia;ilxI^@lbG{Bs%sluD2^ zJR3g@By1EE(OMtDd-oCmqCud&JN+N;1WF5ZdIx9ohuEV+gQw@7Js%mDgPM!U0PJ@VvjQWg~L8ymOR3j6?5X5D=@<5Q9p zK(_tzPfRMcphl%<558n~T1#S`8QY}9>R_3HSS8;Usq|?;Pp+dzM{z5oH(gk3Id_)6quWUMj+ILk(^`{w7!bYGr^^#A_ ztv3Ovqqdt9i21B;hZkf}L#=ns<;`0{iCx-hvQ}Ml8}`K&TBt(T^4yIELN{y3clg2> z&V+O2I+(cllgBpMoq9@5E!jvYPX%`zha>p7GP@XcI^3J~H zDQFc{Lz@7(VZDIumxzxyaZez2(Fc_T6U?iWL@vQJ{AJ(y$50{->=doA*8T1vs)P!z zz;AvMd5h1$@F(j=oHZo~7^NXyS)4h5P-C*rUPSC4mt4bkOgD#?Te8*@n zgjUpfe1C5f1`u?W*%V%u*y{w`&>)q?ZnA^<9GrxSglN&!YgCNL){RU+3J5DJ+KwgM zmZfVgZ4ob{jkFbJ1uZyLOM8u5l1W6^qFT=w7?@CS8!e%91bejD;*+?872O#DY5+@! z5a$N?33^wLg}{nxNGss3wvXSVjF6P@K@E*Dc`V2Hr>Nm|!pB4xxM*W*)gCG$BA3(V zP|91NN~1a=N2JYlAVR0Jq(WW^(a2MoF63-Gg$NL=LA+ZutdoYEu5B9VY|6IkPPY?5 zq~HKoRukswjxxRO06@A&P!QskV%XfQ4QgqyYik}qGvij;+9xj__4>fHXVPiB@38jF%|=;jN$L2Uz|?Fitl8n>ua*Z~6fy>haOU?qx9 zkoF(mT*M0?ED(_Fy}|+nDS88S4NoHBw*V;TAAwUL_1DAUg$j&7J1+V1dy<2}SWt_q z#fA$w30q6Q1~r(%Zk|Z$kUnneUAY=Go`C38U1+ij;xon?d?N<7es3=nfMW*uH+nnI zn0bD{gSM(vb+-2=;|)r&M*4F`v|K|$$Ojs$ztr!zReD=Mc^7~11O-wQeZaVo><3E#>*!Wvc<+lh&8kyI=0GYmJHB_yJi=h8 zAZf1(7h(2XJ^Ud`Z9?lbK;|(8ED2Bt_}yJtOct2c2B+_#ps43&$Pk3tRJ4!bFmrVa zHL5Xr-E!rnR7BBu%ikY3?*n(H&|Rnncq^=jpOICuU=!EeFt}j|Rd~^>LqRY&M|vbI zBV)gA?(tE18*n408V@ zL;Z6UP?4c_R@!Zt&?1n~7wB7K{mYG)2w+s!ss{e<>j8I1qb)K*X96%1?X$6bpBVIFxh96s_wz-)6Q=deQF4@ZJyR;HMK+)^oxHfjeYNg z4UaYVU+WYk3@l;+IDB%$#!ijw>$??yCU+!-5(0Vg-|t)~$h4a}Mf>lW&_Wy)chfG| z1*!dS;#>s+WA|hK04ILtt+wF61D`d_t1Dkxuk-o&gF`mebq~Kka?jppLhVVb8QuB)>*hg5Mgn}<7fzS=87d0EEr0cM+}8=9>4-y}%_b4K=#= zD0tsZm4XYjg$#lVLW!vGKkv8^5Lqon(C=w!H;qT2HG(33VOvl{rs$iY{NqE?f&wf} z`_1ZMc7+3^2GP5-j`7<rTiH{`f5Ml%W01_DkQ7$$jJrlOzf`Cggq!&zL9NW8&i5N={1YK?qyD+;>Rk)yy zgV5=k%RJN_g1sf4LES!XT_9?NFzA!u%Wq>}UlAs{VT9@SxSqqEQ4yc!-xBZwB*%&VfOPvTqPI zmMu{%G{!aAvlX0$ijh}OM`qkS?jZyc-(kf$<^qb+G1((Z&}U}w0LUqHt=`n`&0|Wy zHUz8_QQJO-OK*rOmqewr)W~LQH7F>KgbaJRiK$MrWqkPe^78^6OCo4M4FH39^tfKG z;X_33i=eY$T#6Eu&{bRGIDO`@ABwE5S`$u=a|u=kL?{VMG$d?Hl7a|3K_gVz*#6;R zl0%>e;2|%KxHWPFXb=tVbkz*C2}5XT4v`Hq-CQ}_!ND37Yhk}F#+fDNh z=6CTjS{#((Vxt5pg$RjIiN0a?a!nurcXmW{8zYo;Nkjl`U8cG0?f@CY8LEO0K@A)* zRg9sFT#2PYcRIrj1Ydh9c_p^}xI3E?sXZ70?!DGBkz&bcH^GanPih2RdENQX#lsnt znjgq1k0KT3$%{q!g2-yeOP|96fU|qDF z{kz2tQHrUmb!*1Vbv7Vi3qfrU-yLIzKr%v_UjWteW07J&r>LCZmo->!pr@4o095a$ zSu1Vg4FMI_qwJYH3JF1V1l>8m^OHWRnp@jh6Pws&T-;NQG!mbwtSgihjVMAJugqIT zc%V9%HAQv6)X75h&nOY=0i^c81G_>x&WUk;>ah7xND$GKhv9}DYKWm|VJlKe5>!MU-%XiDvvk1(2u=7O)b>J# z7Pe-iy}((o?qdfjsu+};{{U)m#zR!AFCG0ppYI9Vek23H&};Z^H>ZI$0;S*)Z^soE z1PL#LPs{Ek5EacgxM?+$?nwYL6eY8-7Gw5V8!1}Ts8G2Y?9dCsm39{SfsZiL3B(kl z{YDt4sfZZj2sHWzNU(`L7})OapT;Ho<*-(P_sh3Y zt@9ZQg;fJ+N-gKvgp+z2lGA5kdG4+RfO~{DaJw(x+`qrItHc_-+_)?TDg|{-2G@P& z{@7h3*xQr``Y-n|7Zr*qByUt6cw&2qfG$z1TidKK5&5x>r@>z*UgSd1Ee5-|{{ZcO zng^zU5!vC}PR+g- z3y1|!ZZ~G*zc7$e>DYr-eUtpX#Dc^C)1PeIkM0jlcAfq@_ouI2Wi>Afgk9S-cWmaI zV+|}_5ILt~E-r#V&5pMx{Qfwd)Jpo_e40G^nPSF;7J*H!&mRn2V^KYaOJ=*j_mOeJ zsQiW+O;YBCEG)fB$ocd9VP9ApD7uZo-5Qif1a)J>+){dKO~Vk`nQ0!0vy?nc!_(1>k)CbxisXuE~4{9>ag zT7|r?-ncl5YPYGXU*{I^HBkhxYka@PBT9g1hqBxE?jloID9(J>%#k2Fppv$0?m+PU zn>BZP?l^H^eS4;K{_qi?pP)nKxk?Qzi06O064%d;0k;5`R*etro&ypE~pJ1-!0?(YX@!YL@3{;R*&#a zE{^@@aGY4YpoDPhTo7>e3itm2x4z+!II2Z?t@?jB9@8q1R(Tsord;*{%VO}1oWZ{p z$UBubfkyUVqfu&zg!*a!0FGhIlu$zKRA47OOj}D()I~TY?~-ddXiBPSZIhplRg0=I zs+Qd*LV>ChwRNp`{ow0j?36A40H3%J-cbT;L#9!lnY4Y;sax}h+(K;;ybv}{HzjO- zpMHOLc)~9OuoOiVShDKST-eq!SeC zDvkt)4Sw&}B$B%j7W#5)f9D6JLk>}^2pacAvky@Kv=J)p2G7;QP0gf3u}zBmjWG?+O4N}isjKD>OEdtK zL2n6By9CA>r3$2A^d6rQm=j`zt+(#~0LhyKsUlk4iqME3t=5#jFy_e$b^%Dd34@za zAd1nY)uZ;94$leDH6F9Cq0Cin!iZLF=I{z8D!468^H-C<+BV3ji2+ik&A+%n3Zg23 zERNy1&D<)>&ks5k(}B5?=P%jAvW2l6^vL@k(Rlu${!IG$_&Woyn+u zg9}EKqXtpHkgR}4>hvh^_&&^31(zCB1xZ6f_sN`@4i*3?t%;)rqqiXJI|5oRq8K?v z$83R1WkX+1OcncOJ_mBV*K&!cm@WY#5I>lk0~^-3x9MNMIf$|W*NnH*zrJE6sQYSc zNX3w+LuOM5U5TjAZXsNL!69NG| zgdq|cttxNkKMBr@qCf;uaPng+=|vIc8k!$&BC-&Wx7r?m80?G++-&ur!GebhHk{YO z^9=dGhT{NXSYRzKumuRfsIgZ1?@p#yO-%H!%{B=r9WqHS5fe%#$_lzMTY-jbl<-H0 zN!~iQ385AUlcT~$jY4ma5`6&LFElyPZVkhuGZjscS<5`dRSNj4AXIl5Fqvwl4OJRW zdOPkkr9G8`or$mIm@$y3QUn2w{w^OXYJi|5VxtZtP2|}qjEkyr$L{lZQXxkOL`C@P zJb?w*LkXl29cLvqunPd)aDVr%Vt%k8lLu-cae#B3|sO)iBepqY{rnQN`}^~q;+s1uDEt~g2gXcqXa^#A;tq{#c4X2 zl=!BgfS~COKTK?)^G1oJ-t>ceqbZqV0x0cY-?Jo>6QBnlM(<8cHuh8rNH2>=Mp-DT z6k~NpwjhAF0%*~MZ|W&->V7$B;c%VdAFh+m7_^X907O+Hc zC&Ukbg9#(hRE$uJg%w8F{C^8+i4X)P;C=2fEK1Ys7I3uEn8HAYc5y)Y zrKI`xm5>Wsx~FY3my~H(nx;Hj$7!n& zShHFof~9*6WL~bm^BcGTq*UXrPX29~PluL*pc7U7-OgXiM%_ZHmX?^erC2CF4L)+; zxRF4LDA8zL{NE`z0ns`UQ%7#Saj{g0rkwB0AzVQaB2xmJQulb@0Zt&$qz~Y*I_(^z zR0#>OFgGtShKY7TD1u8ED9?9+0}9avhnJP_{opFPkOaD(9QtB;tQnyDG)v=?vxp^* z?Un_L{$q&`0-2=tw23!t{c+sZY8Zy1iM~zTimNdsBo%jShCw9Z{6k;Q3sf);aOEKb zal_rgp82LwJAnYPYMi_LzzS7T$zD7Q*c;YEG6@7ib`f2?$5&FY6%ad6R9IO#s&a3@ zK|(IC_8QB*e1H~&g^t_*0618{)l;e>dA`#oYeVd}eIwNu3B3s}DQ>hM$l}a_6ctT} zp`-IybOc?84v4O~(;Mz!fvH{q-_#5@=;3dithYj38Whs1)Tkir6va4AXp#|qPvf5) zR96)O=|KV{kJQ zq;z#v;ckF*VsbqP5fwn+((ko!$$Z1x#E4uDB;uB zRrHYM;Oi3eXV4YXs{%hJ9?cvO8ls=CTm^Jx+oONh`ub?WbPx{O(o0G1;9z-5Uk8Wl z?=(lc!~&I~bm(g77VLQ9HHknqdO-a>y1>Cusjv(V_RSrK%$Dw=9>E+61s}}p33S&= zw?)6tneT%kEo>M12bXgY$YDW9_j=Zq_eXwdK&pzPG@H?{`oJWlpeIHCD!s|hT`RYQ zPnQ#w6k&`xt*QHlM`{L%H{E;P&EQ2`2mul_M@jSVacXw70w*EPK<)$maN*(p9HpYH zUJCvH0G(lrKPbQ_({xN?hlF9XDdi{~=~w)iDJohq(uVKxFwKENi>e*JJ?~$bb-7>_ zl8>L$&ik5?)L?i1q~=l71?=zd<_=dANGu(pU3{}V9GKlIbhKw>m{&`DbP|q{HZE}l zJH!0@-s_pPU6KZfar@UHvPVi6Ux)3=+;mW#0i?b?$WgRWKuAI}%D!^YIl30HHD@+Q34*(1Wq_atdOWtTlAqF%JOUg5XKl(2x`$h zVoYIa8i1Lo?wcFjLfok+7l0a^54RAsgDSMvb($ShD=2Ce5;~fa<*ZO;L>{jiN_{tn ze36i(PEw*4|QM_Dk=)i^LHB2LvZm&M~1!_%}q2Eovb>{9ZVCZ z0F*#$zl5VmsmE2x_sqZo+f`ZkSdXX@iM%!;wf=0&t*Rh{4@yr)j$CHJD2X=}h(9@c>yh(uke&B~uoLA|O#~?&*x9hJx-c3-5 zpc>z!y|_+jUI^+7O=+48&?YhcICSQmPH^ZJWTY$VCzgFhOJ+9=Q%dlprTXRV{w>GJ%pTyG=X-`yX+F z;UXj$Pfm2r^32e#inmR>9yrZ=U9{a808WN^l__>_hCdBtY$#<~`Ph!_99-FuQVM|q zAD-_m`f4pw+VzXKd&6XOxKE-`p-717-aSUiRWT4W(D!48Oi^G4kfwv<%uw!U2tkVw zQL18pNJT|hroSd`GVaZGy+55{2cc*I&<>Bg#-c$bwAup>e7MqnC}9(7NpVCTpIu;-{%_um54qlH{M+G#Zb5_x#@Ag&;Yk*QlOvQ4BO>e z-<23=!{JF$&@_gh^_fsd`F6IC|}4r8r!Kcd4;adOU8poDp&Ni|ul zcf-oZl|fY{6___tswlE=^Je_Y)gV?T=%?cU07UK}tu?hkhJt?WTy$uJTEy<%rv;S4 z%peLzsCD|QXEB2eff*NI+Ie(dZ|n0_Qik`o0sjEf<67NJO-7%e4w&LPWWtEL58sF5 z6xRwu0VC&Vb-?k|RF6an@s}7!3lL+Z`|Y1hL$sJM4e~ZO$@_858Nc- zh(Hoj#Qy+FYaZe4PYbm#{?)@JB`O3hU_`n;?;S5q^zrsCC@Jqvd9YKokM3c4QwW&0)m>6{t-HKuXZ$ zsc!G)f2tmc=&&7iaDqhXkaMMY8D{Z zChJ0glJBo+sW-PY;=&AUVYaLN@tG*e3MAEuK2LEP`gt1#FYB<%O@5M!Enisq@#gcX zg5A|_{{T0=7kCyocqXFkx;ehi;5MP+!vMQWb<;k3hHHU}It>ximBG<3JMX*R2GR1) z?|y5{UTSTWQpMk9mj;#M3ZOpx{J90ojiS?DcLYKZ#G2>lE-L6sh9E76cujpX2;@AOKnczzs8_>SpU7eG%9_ zi0|B?*EC5eDXTGk^l4s&?)LK#Py(qFTFy~b&{K1ozy>Qu8`a;qcB||fJ~O#&;Svbw zWU0d(Gt(eotMQ?L@(~i~nBr)xrm{?6|3Qu~Q z-VWl3Qd^4Z>~!2UV6+ILc_Sa>!3cEFqMQcn!v6rg3!^|NK-u)(mgE;b!8bRh;sM-A z+~am=iKLDGOk}#^3{)UZ_xJM(1vO=gaC;qJF=+%gsyw&PwAB4IZgx@vphNhucd>Vo z_5`i4?O*=@35~-vLK7Nz*GZ(-XoDwJ5wQjiwl`TbC@#qo_x}KRK}NkG6xt^x`Lu9s zZMQuhhl;x$VVXv&f;Y$cIsDA476bxY#z16mb&vz5taw3mZB6(;nnL0^AgzrU4vImU zMGVmcd!(C*PuYw6Hw*wCj^fWO96TP3K+TXrHfxp{XtH7vD5z{r)7gV5ZR}XZ`{|B9 zR51or+9+#DccH|t72I@hcU!;b9-@J$4JB;op*L^|=r~adqtR*fW4w+v580)L<09{K z05+Yaxe>J3W2a!#0f(g}5a=4M2h$U_hy;k(x(QAv+`H@mp+xHbDXv4=k57AJ6i}Og z_U{zrfuv5+xvB#xn_CE~_S$#9$Dc7FJP%SaP;^~14j4NHgh9GQ`w<EDaHK>A#wB!$GK$S4lVz*Uz&XRBB=rshU}F$p8UzfWAhd+L-#BOkF@Jwnm;8 zE_eoriqMPEpLK8remq4@jnOo58N7Fe3$f6xU`an6VHrHz50!%Y2SXteC>A3~0bS5M z<^m}KR%lURn$VdCsUV;MDha!-{w1BVYQQ>7BTwf5m8t+cVo^Alx)h*nXwbD6f zqFAV?94VuI7)=fx!?8d?iK1+#A$CrF(S8`L(~gFOLfR(QDY>k^1xpwtt2--+lK#8o zUV!&U<_+fWfUyRbP-%~n0uh2LBj&rVU|%|DF2D}Adj9}-E7g=}H*{n#-JQh_H$g!g zsK;Q5tPnLcp!HDp@xsT76F$NSe=x}6(BNocs;`}^jVMUhwM4I1Vr1YROvD!u>u3hFpe(DV!DtJ+b!T+A94x=4eUa-+ne)%rAj66E9ZL-bM^VYl z-kk*Mw^f;|V!;`z0Cjwi@w_Hi0s&4n@1@he;y^^C74cOmLDbS~EkEI@n$u~&n!x@@ zkx~k>yiB{g-GH{<&&pF7Du4s1g0$inLn7h@vI^jFCpCO`aob^K3Ze^08-)|UZWK@| zramJcm!AB>_N4_{LrqP1?+q8I+1s%1=QwHB5-bNn5cdB75al=S0-s=jF63A7P}Z_k zWxLc}0nVR3IQ0ScAyjEOPR<;{p;cIH6QK_KckWmUfg1!G8w*K^e4j)#>5!ZrHD!C=8%nC8ohmV{M{c!tbqoZO}N$H8Hsv*|- zE=y#>yOw_$ZzyhsAis_KoM043$|7kIqku6XP(w#`>&xyj4W`s>ycwa*xP;aypuH?+ zR9T%>Ia2=szUG!hrz$=Ew0{{UCXAtfqkAqHYWG&%ZNqi6}E`^4y(2Sa5(r|4_8Vup%Z-8^^lA%A$`7kNn2-vRpTA+Vk# z5+iFUxOy}i2~<;z-ad9fw-gq24*i*}SX3|%!&hbdFa&Ox7qh*4tAove0ZO~)=|7By zFskY9w?BN%x+xacU)F4Jp>R+FcctH@b;lu{7SmS$0J-~t(HG`I+3i)c8Rwi(Kdo#{ z^AcDd9H%~Vf1T!{q?Vu&zG$t>14KnodaZlha@Q>yLUHq_dyg7Jh&DTjf+g|0z);IT zDqddt4^0?sQjP@+ereSGFrt!LPK#P~Y?B0Fj*!^3r;}%R)DBE^*fy6&BD$zoq~bRIM(Uf?8kO`Ej?NiK;Hmq>LNx zvGHI~m3AV{-9(t8v`s_ACc-3+N+L@u0}x2;Eb{w?Aem07b))XTiEM2U#l_u30#H~^HnX2FdDtB!itfNY=sm6vchLlhu>>@7iY>X#P}+OLSH;SY zQK*+^A%+SxJtS&tn>Y0kQ{9acKRU`WpCk70&LQv>9k@vyD$h5oNlFIsWQ=U zkrW0XZHxZ^CQ!UKK*n42+tg98aJlyegpyW3Hb-XMdns0m1R{}5vhxPU$lcA=&_?Bw z6-LlVPVzr8EPzoEK~8N2^5a*^$4hkno_mtap$dVT8X6!=vjLT~F_1aG0x={k4qOjr=s^cywsT4pj*30g(f*Z(zyAd4_8CAkZ3%&~&pi~gNW)C1W zp(=*7miw(-_3lEdg6uLa=*>3>3Yw+C(x{Sdz3*L5$3PRnIVd6D3AlA)|*uDhD zNf>4cuq_zg`g%CHM0xG(kwHi#Lj$!`g76VFVHt(J0apkBC{fcT3>P@0O&j8@sMe`BBQCRyGT`U*O-E?xKw%9klo&K16Y`S_hDT%|U6Z z+|YL*1SnVZh5COr>Z{Nm=;$=cN&MV*k-Y>I*_9v88AhXM2~-tsneG@HrnDd}uEeIt z4KjnNKm?^ImND!*dk5U%o;bLuvh(V0o#~nFI>}(HVt#;$V01XOhDsAqX z?ii0*qYU=Z}WTFB#Gnbff7S~4kw%hx0=+_8UM(BebS%U_S)sUvj>O%$EmQV(W3m?aH zFb5|%)G%56siYGBGm2C!sgTwjFyU4F!3$!mPV0|FOE6WPs%tqcz2Ehs?XL&AN+c50l z1gJ-=hS)?RcW9~{z=q0%2;@sX(aDa&dlD@_AKY_)l7}Tt!=!N@&%YSz&^6dp;TJnm;0EIfhZy{YyepX;dQD5V_>n-Ka{QpW`zP+X*8tS(QpC7 zgpZ}MhMASu8r2h0q3rGljdU^8IZ9vDml{@0%Uz%lbu3|vMaHK(X&XU7)bPY11AYWw z-Ai=LAeapWZQLGnU!O2da6|z}C_t|s?&mth06;7tNNba>C;3I;N&tPn&&;qvMQDLw zfvX<;z>u<$i`tvjZE3%7(;Bv5_^QEry#T`(nE@C)2!cs@@xtavrGXBGe~26~G%yhn zQ-YL}hOi~PpBdFP{^c+wK&S;o(1TUG*E@krm?!}qu`Qi$@yM_xQAc)~IXLLXoAA>V zM%`bhW&y(rNF0yA4Hpn!fU{C4fGMM1hcJ>ZFH?6~x;H?|KXfJArA6HNatve?QJe$? ze7iyUgph$+m7*;|{{R#7J`_5^GfQaMG`5oj>ge~vr09EY4Q>Y#hhH{vUG3N9{{Zwu z3ABpKYcc40y&uuIPx%~PD@glL@S=o!(8Ag%ny_jH_bjAvVF~I_cGT20y||Wpr6!df zleH(y?o^}*l+A{;weQ#1-~u`UX%8KoH-=*<*?@5!JBwej>52Cp31xsP^q+Dv&Zp9- zA*@)0fvf^(4*nbIaez{g2!*1$=ywnVhezmQyIt|Z%@MIi5*i3lhmHpAAQ2#Fy_8|~ z^4veMngL*?XY&SS0@9f53Miw$ZZAAkfStiM>zDUfN>q(Q>dW>|xhS4e1IjT(`)TLL zpsIoZT`T0~gLRz1&XS_4p+Q%0{*7CWso+&9z12go{{T28RiG|_#^2ymjx;BEUoAR! z^V4kJHPNg{j;TO2?lT)JK$?)80H2;?RFT9$th&BkzsZ10%s3N!ez#kfUDN<}Lx3j< z#qay~O;VbQ00ZQ-yBVr$8Kf!K3uDO}4Qfr`M+VbCo_vCL9iTLlRgi0>^Y1&%urWrE zcq~_Aztz?m6*(FY8+(5;kTp=yan`r>**BJVQ4MLZ-~umiCqF@fqzn^Lk7T~{3c8dO z1=vDVKtMCGzsq+0?n43Yrj43kPU91FixL;wr#JVnm`MoIO6tx304dLgDZF-o z3;zIYB6-<~Gh)zQX5b8HcP5D-KnTgE{L}cDmD~ZSB_HAPer1!5t%0q{$^7Ra z6;)!9@nimTYPLE9PX7SL7g9h&26p_s%@oq0yuWgx1u17=t<~-%u9jUEO@FWBrb3ET z6>Hevqi! zx4N78f+m?3ph0KBcbY@!AgUsk4_nt200a|Ay&rygid+f=1TL!3d#|Pm9lA(SVOy?E zU||i8vLmNXnkE3YptyJt^pH=-4R%{w73J(sSfGj8Z52}YUrdS65LE-JKLmA6xKWL< z6<|R%qI{ppg#ca6#Wz#+rNp45nVS^a>e3Csa6VLpY!xF$=Pv_bG^OlA`y3Cb2(X1i z7(j`3>m}xbho}*E3VTbpEzPOw13}}bh64;JwgJ*ciqrPGafL}CH3y62<98enb5_7@ zkb2PfotWjNNr|CA$8wwXGMJD;jT%DDrqc}{;M98+3+&l+Tqo+Tw$ABztEW~>4Bsu4 z5okPg6Y#`}Y*MDW4&eL!IO^I~=8P`(`~0{KxHJV&Wzx}?dg*e^7J{X*7O3w0Z!|@Y zW78=h}9}|UZG|ka40=)gmnKf84yY6+$>77U;v;^iU3#Nm>C3hVH{_Hu%6)x_7%izcg0UxqXzhEcs3L=sMR(z z9Zs!e6&oqXYUeKNLI-vz5*V3Mvz9137(}6V8^@v$1vEO?*8BODdZL&W5;RHtIKuR( zNC%;`;-O3@U{+Kj>EiJl$EGVlG+G^iJ~V%a#}YCqkO5NN+QQcv+@z+3&_*JUb><<$ zCbLkA3TnH#LoBCGc>q|tvECTzgu-<=5IgoOmpjQ&Xo#awfk)|==0iGyDHNz^W77~L zDvYV*<+uB}K2I7Dh(bfzwkfRqLmNaRA zQN7WKDL~Qoiyh*-fS@&uLXwv3!dW0{ffRc*ldWl|c#cAKA0m!{>ve|m#l&@J!MNu= zmq^V7S8AKqQRPEbH4Xvqz8SIoHd7UJqysy=@t_NAaSBvD2$w<5eO zAfkj2UFa{&W0pmOC9DY2Z*;?ObVMDR6)NlkVwtbLt7{9t*Yk@?q@#4+kb2_bPMR7c z#;olh!xu3ml-LgKCiG^SX%?!T?%&nqaPG`vgj%h>mxG%j)Ebe|&uzK1pc1Jxut$4- zyU6hn5+>UqPsxY^TiFB2KOK4Q0}=Hg%9{mm0yud91eeOGG;P)!a0&{Is6vd{ioR(z zHHA%3mkG4mifyt)9Tnu(6H$~;R1^T^H~ipbsYtqg2Uhm)8Jhya3%wvG@in|ilPN-M zg`D+W$#To#RsDoT-IGS#AW%gqWP~9+eEi-d-h?oT5Lc&hagjpwXlM!udxlR~jZ|um z=P`<^n=ybiu^_dL0J5XgYF>RaT%P7oHtjj1APZ!8EQdzwuheCC{9 zfasuY+l2<`FT2H&&|x9mQhyr3tPKF9+X|n-=sVm|t41m?-ovc^@0S{Oihj`A(fG5D zTD%>@R2gfpG!3|vUqGtO4wqArl->Y5s|5#uqs6!s7FK&2JH7Z{<0t&EnhhfGLOS`b z%Sxx{O0S#KCbwoYQUIbf+;qYA^nB8?v<9Uo4F`+4E;{l+&_*+IK6xj&jw_;(0z+Xn z-tSoNwyw&pQ81e~kYyu&kelC{hujd>0fB31R`Q?cc$N!;bQ)q?OFe%u0C5r{Ax@N` z-;X8|Dd-hY2f^3zFdMK%UHuj2^e6R%Zvv6O00PzY4HpNth|CzLH_aB!<1hsWXfNG> zy8F)MYf%KNOQiwiP1gda2(2fmHEN&`$~8+uI2t?U1lRG)ks%1fqQMC0{{H}fk=PVa z*)If5o113N&9|xoHU_nwR!49G)h1|jW^>iu!tauk3J7dJHtr?p;J@U{x!T~nJ6qLRs2`-<0K*jN7hZe(b?OK z>cxInOILG%<3S72Xr`w1$A8J?!gV)LN`bkqU0-p8AW~|bKV2H%?Z=FTut2hJx8X4= zpu&;(7jFLm!HTL=V6so*>iq5y{gjr)kAL?5W6_mH*qXQT(>$2)sX@h0-kx1z1SLRH zsl84Y_cRq9NXK5^r|0nZ15_$|0QJ;Q^*f4$yrhA>9&VQJ2>K*( zMD;h_WCir})P{|p>n^rgCTyZuk;C-@dr?AqSY+40q(DEPk{2g6Cl`jVzx9^YSQDZe zi^u!)#h}0td{if4at62Z2>6eNztrv`06`3NJwHE_8k=^ZI#aN9t#0cZ&4!diwvYAu z%m7tUtJUDI{JhP4XePBoUtx>Apb`R?qpjoE%oe23zX66i-qeVtP(%3h5r74}=KTEc zpUw~jT7D^AJ$I{t0u)rYeLDTX+Mrt6q2{4ImBGYV2{5QH9XiGYz)G&-iLmx2KJ=Bi^WK?uXYx07uMo>%Mx;4&Yb~X)*s(1xP>HKjMSvq$`O0Q3tt!XJ}N$Co4-j}#jG&gY3 zhE1BRaAjIHRtkt&K`*(#XpPIV){-dvcaj&R0uqf$tuFRijyQ{M;ZQn|y4@X`bnL)j zLM!JKPGJ@sUTkxBN!xpc3{CK%2}&Vp9sX}lv^^#I;_HY}m@iZTrgcbB>Tdnkbdt*f zY3Z$rb%+KjNm@;@=j68IQZntXjUSLT$5_6DTQ@`3dA-A?W{~k1p?=_ z)(DTDnY(BTFQbzG05gBb*C9;%S^`Q2!G9j(d2v%Gos>jUMvU8m-gfHMHV7&KAKC@+n0%>p4!Kmx|tdvf{s>nBM93Q&mAaK_4y z9aIfS&1?=~lc1d{DJvKjF3pY%&}U^3s&PL^?Is?LU{oL!KY!uYP|_~tK!8$%qjTE1 zN35hoFy9s>3xvX4ObDQ?wIH~D8sGq`_)V#QjQeRDsBV#T zMI(YtA<~v@8wax6Oij{42&1Nb9rognd8Z=15wlK=V@pw~uGa42n+i>1{c2NeBS0>a zAIEZ$asW|Qz%(1@k;0-h#>h~nk%OnlDVCj$?MlRM&3P^+2dGgTEC|n6Y_0%R&Bz8Q zJQYO803iS+Y0uM1IdNpsYtc}T5NbGsV zFVvW+L3ntcCinS4m{U(S1hgfsr05x`RhfNO}V?T>J!wJ5>85CdHAaEKBeF>KM>)$IJlPynefgmb?g66Tk+OrjA0 zHyf9vz(~5OpH2=@cjKDMS@%zWmpl$oeEIp*AcdHr(0p6=G7UCG?$c zG%4BMGE*C3zp%t@s*_OA>~Z_p;x=;tKtK_?;UIos(kKc5kZqOYwoFXu3|dsxPD4;< znJn2PGeGDxz1pe0W$LIvIvtcF@K47U%}+w+zM-n9eDEkJj@3|y2e;|w^_7sg42hv^ zCf#{($$>=|N>sewhGK+~2?RCP;ZtdKytiUk0BM4(NDRah1!-ih)3cLU)>ey2PQB&b z{{T2%P|HHB(Fs4j+kxpAHj!N#gITn@F8VoEp>Q1BK{v;EuykKgKp-?Ku)|F12uEV7 zf&r@ZF`;l$g`13g6OD2b6Jb)WkWx2>+=A7(Dtp;AyX`s4h611f0&Rk*QsLCvpeOj>@AO=1@}`9Y2D@M4{{R^H@yWsC zz5QkL=J9}vDF$8bWf^g{rlD)a(6!OLT5MeiaUyW|efYt{#7Hu)sdguxJuogfAYZ5| zsE*-WYpfsyCt+e)b*xq(8eu~HKYRZGFL6O&Vk4)2Ka#Cma07El5^7(>yWcmKL_ifl z(_GO53?)$lmQM8{<)sb2;C0C`eMQOn97p~s3*}q zAEy5RjbmE?u>yKlx}JK?;Cx#x3OMj==xZ7=00k3e4v)PLzL~rYR>qb0XFzKr(DH(J zcHby&Z@Ike3}wFU&}oT-K$T00nmNwlwyN||Ya?mD=<|D8L{UaW z*MeEPw)19MFs6!t`rqenThsuApev0*blt>G*eErj`cGZXiZhAHU03F9D z%7?7jgwYY!7KZ?#1MRqjAjGXUclMZY?Q{hb-CEp=scef-8%h)gWJMTNb-SP9T-jE# zXn8fw9ec}`Vv;CYy-!n9S6M1xB}_Cc_y+f*9Reh3dW^mMtL|wrYy%GIo{{eV02gKtA}1XP0`q~}aQc|IzJsckM{69mHWclIk4`+;{4t^E zFbKL9m}(ec{6?cjf<2x-V_MVzP#rqs(o09jDI;l0%I{AG{rRhmvUgwt(5JTi+{Ofg z*&RN9!*oed5-W+ zAlO5#uy)_vY^CDR8`3gA5>MQI1vQ%`Cm6bGNSJtWG6LCJ6QW-x5vhYcng;1A1ZE1! zF|gt&x>Pjk{F~xbhOZlL;!TM6SRjNws!$3n_oILv*me-XBe5RIw^$nEN{EOSnnFwW za{va^6i@*@M|4sk?ZWF)Fd~qDZpY?0-itMj$r4;LA=+0*Yf%QV8-lNg z`K$)9vX*Q~x>b--yX1KcgZk6-1 zdUGVY@n^6Qk@2Ce%xy^sK(MOE~=H+9Bg|4!(D*2 zN5hv9zWB-qA_6Grm?oel2`wQ8-t8Y;Ff5=zVR;j858#~0rs$0|Xg9Ndvb)NrtcC`w zM@#X+y9g3|LTw3oYcYRjvJrkZWDkp6JjnIHs`wB6bc^@v#zsYQm% zRqCUpz#jEi;KOye1mBK!WWUUR0~&{u9AXG)0G9fxZ84yX+jB@HCt8k~je_jx0RlTu z&oSoHQARH8^SA4ZZ)VXvFXtT?&EyaS+19SLblhal6HNfMAgr<3+!RtawDAE8G?&|y z_}s!8+hulgzT=B9s1NdtX*K1-Bq8oK2ZFm{flJb$-x{I=wBOuR#a_a-kcO>c_X)cN zEVuN$6v!Gwu^7@ZF3l;MuGZ2%J}kzkBej-nFx?_*+(H1<2FLK$uG|2bp@0zO9#H=P z))4EM$sd4+e4N%j^u>^(fQdh6jmyH^|a;Km=Pvz}$tjRXmD|<&$4{ zgP(#Cx`YkvhCVhlKtWWpb$P92mO@el>||rtcf(E=aU*7@fGV$N@8*^!Z7VbiOY3!j zVK1Rzz1r=kIJo`Q4L5`>S!;uO^nnA|py|3b+JTj2j>HS#-r_BS z1)&%rw2uD(0mO_^cSY0$tw(bdj!*^+U`kJQt>rCoI#R_bXmv5YDh0SMx4&CACowhj ziY+ZD(SMaX;943GAD)Fx$x+dTBEck!l>v7mU@mb4OWh4XPRt9Ego8k=9U9vDcP1l= z)@qp9`;X}vl2V93`4^kR&gB!>XtDSdFu5AMOaevQ&>MzqH3*SxE21oYfMaUV5)szA zJJhV~!k4SC;MzT}O(eO$l7OJt!mFwbGLbk&&)YYxF8&yF07x1MHErcNp7;X}ooFhOxR2boss3uzzZvOxkclTc#fhI@Wl@A9k)5(L6 ztz<*5*mrQQ-DA!`hQi-Lq=y}b3E7dR2pOh`pIB5P8 z5ep*$(btyfOtpt*H8?X-iWgrTjQ~5JuW-zd^)pmZG zrYea*LXAs7_nKzRV7B52pdgn_CaJf$U%`DLkWvjVpC&UEs}Kktk!|X{;nYFsj*3a8 zE~xl8z(A^iv`TFa(dOq;LUG(0w$|#a91bSR1H3|i6L4{eS|JF0Xv!B`{V_BpBXm(b zrrJQ!j0*q)Ubk<9bWMI@5$q5UjbHBi7hN&Y7z6=~;n6>{SuZVQ0~K2T0C2A{#7Y_v zuh!}QwSt7`f@n4YFN&_4yoz0*L+ewiw?`K$O34T&>Z96Onx$ZpFH~aMl>YvrGio3z z9>1IZ19!Ms#Gp_(!tm8c!ypQ%N(TDFL%ZF&oy15a&;)>q{>=XXHevS?YyoNQq|tw! z{FH|Q2&z2Y;LrH_0({<8q+R^fJ;VXnPz&duj4X6Ia8t# zAz^j5Un_(J&`wc5qxfz1x3r*f*37eM44ztO3wP2D9&)-}jS2v;(ga7v1j|R)t%@)91Uwy)$;U zr+|82$(4-gvCfB4{QE{}uVf06V}ShQwO6pU0f@Jdy^0f#laCh4!a% zY*i`g`^;>Qq)8`t<|f-AQldLXpTq7Bn)io@Cy1RnxsrX$N>ve>UfddTq>xnu@UUCM z5lw*U7u!vpHH&O_=7qY3SRq)kXuNAn?i1k(kH5cqO!z*AW|O^8txD_)FMalf1NMMjp?LJLvGk5=Pcd?9f7LT$gHnE=+(gqX#;4L zZ3N@L%G|ny36wRU*7(CNh(d~iI9J(uj<64UUa`V&z#u}lw=iTB` zSb%$ofydvtru1W=D3Ib)^IE|V5PKr+`u5|>AW){G?}y&$#B}J&wxKuO2`3-JBvB{^ z_1C6{Po}Wg0c}hO(Y{ZPE+1%uD+(d8hfIb;0Aj#3#4THLOh5>CMN*XXao~-`5QUX0 z63zQCsW6}dQ6%4&`rnue6o3{b0U1g}em-F?Fwz58M(hp=j{Q+Iu7!2ZZo2fyYV9)$ z=sWAff@NwEoCpvc2J6F^0)Ak$L9oqOFjH@n4W!zpLKN&ugI@hIlPM6mn$@&Vb@4FB zy*7(h%0#VO&g{a(9EwOqM)XSyt~ity)REh*05Z4z7Y3Tdv}pqNi>IbveWtX4G}B^t z3DsG^L@YRj{AKB!-z%~H6@%}w#T41OAfsl`2=4B<{{WY$A^|!#2`>P`XhTGZP>=B? zDJBA#O9f!8Bv37~j`DUxB8-FzaZs8^rWo~A8YrqmRRj$+HGu^gq*mE?jjD>f*}>5z zyxqw9R?<*cf^At`W@8`}gSr$|*{d^D>F5c%0)w)M8+V&4(gzVYxw>m!`KgtM1tCL7 z)e?>NU}Tw-4Z)z}5`H|PhN@6f{{V92bPqbML@QlRe4=%mk#wk_}x}G|;9@fCHl- ziMoU>eGC;IBLRP5FQ+k{I#7YWD2Xz*l?qpojiQ_CO$J(_vYG?8S4S5l>QqFjqS3x1 z?k0y(v5TN09pBt9pe|4rk`)U`m}AK@NYRx8Nb$jUNnB*#qo*eCOe+MjR3@X6{Pkk=LaQ{!KhE;mVN0k~KozHP)WGHZql61~9V|x` zD)QhBa1U(TmF_T5g$3(%kG5i&rjaWjBm7KcpAnQDArHlk+;K5R9X!CWhOHI_joRY++8se(DLCcTlpE2bOQYf2i80!(XPrZO@7}q3 z2P!3a30ZFbI>%IMq8%>pR*=T==_qeaK~?$mm_yLes2=*hAN7$)D#kRmCsELTlNL1U z1S+v9D5>Hj+J=Dx?7JOTUw6C19)m{0zPk|r0QIaccPf&Dx*tD)?{FHWH4052_EVS- z2-E}+k3T*3<)E>w_ee?|{jHVW0K8NL2U0DYH~ulAS5sgY^n#sayugsz88;mw4SXKm zxU*#d0aVxqt8_rRFa!({vW9>S{{Zd%mv#XRSgWSJ?x18AQ2}b{Q-rZC-pnil4YF<~wQl7@;g2@8IFJ!z5Sj~!3PB2l<6kwQ5)MPI0ChruAZ>tp>S5HyO9&DA zHS>}>xI!9eD2oX>xo;0}AgUB00gmV5-`*Ca0pJS_>k2U#hUPecBr19qZ{EA%<|c%M zz$@Z^TQ~e%DYj`qtlHmNEW`l;)C@m_{59Nn;3p z0urBbhPqRK$&X}-5ehtu9Yy`uE<7cNX$J7v>wZjR@ue2|&}9gAAGpb&B%}g|eJYc3 z_hP}0#kIGhKK*~jGQVJz+mv}0&X<=HxIK9Sl|l2;i- z0YO$B87kS^?T1rS@skhIOs2O3{>+s*vI#M)3IAA!BsH^>4Yu-3cL^XK!cdr&}E z=J}xcTu>Tj&DggP79grCD~&xc(5VVOx~IvTt|GQ5I@$P%#|tQ^!iQq7q(6&_D|QGf zqK)SN0F{`XSg`<_k1zbrW{ama(H~RYb;lC~yBBTm^Jit&C_*ULecDyoE%y0=FHV~{ z4(Lflj1vf;G9-l>4xhgqTUwzY9%Aw7-?_e{JzsV&KQ(4pB2fVh_By)1;$iUV>WB)e z>_Pr$??@Y*84+$c_CvD3`-O zPGcmmHo&;0`^J6~xRs(po7GeJKMt4>^VNvKd}46Mm7|IawyjDtTbNM#!k1+9QUpJj z5e`w<0kBO?O?}+K(7Kd|Mm4Fs`6de1NE^|8KaI{|m64{cz9t|hyty22oskgt+RCNqD;3hCRg`3yNJ_*JSlTyS)ZY1pIYt!#4Ti3ZWrMs& zO~%0S6WRoFGc3}@^H5EE16gsYGqnx-x({jQt~1C~>H#V8456E}Az*+b6m31zs$ms+ zp+<<v#_l<&9vGso^dvz%l*6k_ z0R)W=@FLOKg+W3?-8xrE2%9bu1jph8RY8`Ac0|L%Q9vMRDrikT8R5h7#Z(Vk#5Whj za9g6~g59z$*VJzCDg&i%n{*Fm1Xb$^LMRb=qcFA#@ZJzCAU!QRU5Pyfp^up%7QCbG}nlsIF0(ix%%U%HmfnYTP!zsx-VD+NwBn+9S`W7t zcMjr>QbC0{&lu&cUF6U}3l9lR>#>-)6{}#5g*OL?PF_PqFL1+DmvtU0e89JLU=$+N z{{R~tTr?XH-GZUU9CJ}(szU%Fp&|XROcrE=W^X`Lcp9BG zxr?s)k~c)Q(15pEaICYr!J7gEVw<^YPEeI&x4RGBZxAd{ELi|4yFaG5oa&avvqL2~ zJ^ey1Kx|nWRWFF>&YtjURY_*?m`R?RsT}oR*Yk06!SIiFa7# z0+P~1?S|4tEX|gI!KXH$!O!Ah4;C_`xDA_0H@=w=Qx2FQAt&%~!WKKp0HheuJbGgH z(Y}*S29j}c?=Kx8h>=b2LzLl~%V?X03fxEKn2_0Yq~^zX=o_>q>^JYiS?i3gWwH%k zJT&VVSC%fNin=cSa%~omRA51>6Xrx(P&F!=8#Og_a}p%zI8NvhKF#lVeDGB>4UHAiIowURX?7M51Kr;Z9!6`l)d(V~-`yW| zata44=s?=R+IxM;Qb3qAy=&HAy4FIasww){)t+HussdZbP#517#NC+1f-DDfCFEevCiT|geHm9Gh-8llCw9<|%*^E)2~005wQ z_59ueTSEk|Wgh7r%TY?ck|0vG@OI(UA!h`gK&SMcOhf^}y&5%l53Sx7eb-eU+aUhv z{L0G!gGzlgva+9sC=}KhL^pdaG%oVgAu@Ewg4?Y=kGNwd5j05{x7NM;@^~K7IRH{G z`sutO4Qx>DiZl#+ZsQ~^gfxXg7z|#*#nJ6%%4yd)!QUHaECe-)?^ zSS;D@nX!B>7Q!XS1F;RwpV7@`_o58FZryf$<|bJX3bO0)&|Gdnz(UlMs*d-Y=n$hI zP)KR>z}3Q%La5LOkbD0CZX&#(bG8V5=d3e$Wt}K_1lGxfUA+ZMYu0M-zh?5vi~y>s zL}9IW8h=|hiwZVwd(2>6*eHT%=k|PXsX&05g?TM{s|>X)z$DE8vW5Qumdv?_Dz!CT z>-G1B6aY3Y3j9$w4!W3OvWXFWg@o^J5oxkCzHwcN?_Z{HJ{th0t0BKN(+MHelSq%+ zI{EpBdVq~gBo>?lH>4C)h-&e(UzisOK`3iQ1-J8h#E1zu)JeTvT0?pVCWK@Koj1KU z+poRKR26<8KYo8dF>cTbyAQkLyZ|E69V$;l_?HbUkh&vje7l&N5R=xEy5=DYXtJTh z`}wyT!`Wmq;*v8r5>9Bus7};QznpLoNnS=lwIA#An55R4NOFl09Un!e-`Z6h(*Y91q$CIeaxYQ68D z`!#{AhD1Dgs$5i1Sl}qbWT;AOVDkR}7a&0up;fQby6bT2!M8@2x3X!@j6-NZ zJb&N5WerZrQ6a#d{_jR9yp5qL#?khi#kdi{9K>$K!iJk?bZ=%GiH~stfDk)t=sVJH*@}Y*2u0d>T0I}Sm|nDw5&{+kEBma7^$KJUNG!nI27fe{(FeD8x~dh9{%E_1zow+Mlx)!?YVh1e=HpfD1%ZVd|a5vI&No zZ{rafRqECkhVp+8GG2+oX#7ud9mv@-iqhz6@5#(1D8yR5jhx#`xG=q}RSH8$2>C8C zIznCtgLi}=o68f9;z1%D?%RpLC1`+!6pVks+<>~H22oud_mCWQK}K{Ekll>d_Bk&= zS`DFLDhvMrJ2q07P%gSA!VR2Rio3xr?#2xbl-BMII?eA86cHh&S(o{O5LFQqQpax$ zB1}s}NNwp$eAqaBYzLvC(`0K$O~*Thz!50vB~d;u@eWD0h#^y&RGTYI5xz&EYjuv0 z@g>8AROch)LuCa^QA5O4%&QLNH~3xQ2C&{%;;uC&9kyNpV~01^jEjCAZAQH`(w zrmfcYzuxvtM4sg=kn|Bp_TY*;YqY8_!>9Q&YAylNzMB5Bw}pTg!2^h*tJipE7h4uP zEs3XMfZ~W-iAA^Y4#&7hu=L1Fg6kroBLvQV5DV=wM-hU=R_+?6-LV?g*4i zF6*b5V6HM?z%dDKwC^Au1jE3nw}oipBT}OXHdu4UM+{eljSLNRffH_O0kesSM|6;* z?QnqbG#!8uO4DieOaMaEf~coDbV*COb7P5BS%`k-lM_%oAgCcaKBf6+L zFM@2Pyv={&v(A{SSEf)j1Vn9W81*+c zN`)w~DW+@g6dHi(XcuD9W!Z5BPJ#`fs&3uPV)=9-qL)QY40#;2o+b!2FH1H%vs=J9 zFfbypLc2D_^l=5O6R{GGo$_)Q+oi>mOb|8ABBS>-Yami2mW&IpbeMRRfHqo`9oTts zoc8ae2qAXtieL+nKB8+G-`TC;qzwYAfw2=?xv8f;D1jCtNOX1>R8SC6V(&vyq@UDf#+~Ry1VCy9(l;zGCW%Vfkhtfw_gmudXBP9 zqSMcQ>BtGH?S`ycp!==v<x#Nwb3UxcMm&dp1k#6mXjA;dR z*AhunQ+kU9Szc(#{c{)Vw%uMF%Q&^wC-QIb;sJT9 z!XOA$BKT@zkYu_As?cnGFr}`+z$G9nMC|HN!?8#X-P!6idwSWty&DVh| zJJ4&3=4WU(Rn@|#?v?G^$ z0F@>nwSh|4n;hEXtSd!UlvbB%ei%mgGnj^wrS+eNH}h(e+zPX9*@mY?3%F{wm9A)c zy|q!P0SToBw(|V2&XxeOf{1P*dtPwC&6tdet5RQ3rk&;U3_{LG@F?snV(S<1shzNz zQ)Y?IU`Ya#>8DGt<<>MdKX_<1PY--CG0YI1t<>AV8pIR@AP{vO8*B}1)^7$u3cQtI zhU!<4u2>WWWJl3@X!7@%XoaHG2IhxfJ3e^e3ki}zbbTpdy>P&UQYTpLNdShu`EY6h zP34-2pepIo^H^2ATU4}=RR_`=%Xi=*+W!CmdtUQcwianb50SUS_<3+W0SbVM)bmH7f!I_m*hNQUWo)h_8Rly5^pl;#@Trx6kDHE>lg#SvIXc zp_kI=Is-1)pHO6z9JnxA*7OiL$>+FpVoK7GWC#u89Nl0rNEz3DCp`hf&Vd^Ji(PR5 z^A3tA0;b|8Q%}d5-X>9^^Z+7-X1dv+$RctEWW7FC{%zJuHK-Jn;eAK=-ji9rp%eh3 zfCzLW$+_kTgoOo)DXV6`t@F5v#T^1dXhH{H*XAkRmY`j2NS5kg)Cb zeCN!zq6q?&>+qgw4&r9H!}>$`e({S8rC1>z=VdnNc4UT^5<2T#;#s#|Zz+&y0u2>+ zc5-7`8!Kid&}rvBm~2Y{D^&gXOhb4Dg-<&_f?!Qon|j}l45I0z9%s;_qjc`mjhOC` zSTso~^PTeRc(8;UxGz}wbHKIfx-ORYA$ncQ!Y3EK_aUJvHrd+$06KMzhOAKr1P0ED zdOE~<=FCtp&*Pu-jvDe!x8KtS6-F`qVlPRf1EHqyefRJ4`}{`a9?ct_?*8L|hz$yf zO`c8Q3n8u4-rN39?8pF~ov5E|-iNpVGAv6Xh1GXHxJV*lE|B2=036@A*MJ--U*9Qj z{9&%u6;LHQ-F!Er88J3ADML%wdz{?f5b$b8pXq{W*y9TVp`dNqKaUx5-S#Gdg?^+x z*)q4BL5hh^6v_hD0z8_NpX)YM2 z&vZhlZ-(K_A!A|*7&R~THTCxdS|U(rtQ)QuEAGmc_)~{4jLEPTUUK7rUzTGdH@@{Ipw2Ma~8$w z5CjC^BcRvogjz%@nJP;Q71TNy3 z$FK`xu9(C3c&znj05R1)3sdy=@YP@D~%$Qq){3TjS_FG zhmh@X0EkGDPrSVxkfkeBfkEZ{oNgIahH9FiszjHK<;{Y!-?}PV$Fu8&W@kVMs{{G& zF*LRKfg?Frw*Cp?pmkJ6KXp|6}5)Q0&iQpMwdlhzwmd6@WF+ir0U6Wkj zo5M^%bzM<|qXs(L?k(0a9*|xr@d*@6B21w)2|^nsS*cAqQ0rg>Rap97Ql!b|$TT@E zV9gcrE&==V$kni2J49{4NfA?S5MkR$Z144rC%yA3vs`H&mq;W=;wyMsjrufo zhlWFROJXPxA9$GCQ$Sz}i(za#7tAg0tsYKTnYg9X9QFGlk`jDJyvU2NqkBs zxAn8|B&J@)Gzmx`4U=78O%yj&S4uVwhF|%~vV&+>YakLNOrq5irDe2 zQLLjxJaHRlh6y&y1FnPaRk#fn0DOw&nC_|y4U5(0{Ma~LB~(1Hg1G1(7YRl$L&=#T@6=G-C-bH6H8Q5si{xL7hTl_X}YQIwYvUf zN;U*6h_7a;+#&GFB3+}#g{VZ_!2Mnqs&MvyG(<1#_!yE>?-QomEv z&0#$GQB{i3T`>SJE-vK1e6tI#ceBNGbcR^wR?i(BTSv9UkN$N)Dq*;S-ibW8Sft9`+xZNC(vCW-dXt-1u z3RVEJg+P=zhO*0FMw+}Xw?b_PL61F3O=_h`i`!jWliDrBbmB&9b}mM2u;?%=K=R2U z*9M@9s=vodR_X1=qm`veAhLQcwea;ODNcz$Hb4 z`Y!8$?Mfwpr)N36cLjpIiGB%Ps@Ywp5b%Nn^-7HFj8_qG=|t%m5Ui4$*$?5AnCm7)ZxVs$DYo zX-_#Y&+s%Yw5OU-atpTWg9xtgUK16pV{}hdtGB%xn$5jAVhBmDP`|p?5VV3CeUnZmv^@jH5jBI zsEBXnp7RFfHrG?i4}kVJ3GgC79>aR%-8mNSCJ2hhF=?-Ot6WY9qKn4Xo#D-}8ekdO9GacCx-Y z)&_Ce1x;@M09wCrk6zxuG$mO1#~ZPtgLE%{fpl+iFr>&usDBxm|(Iy z#$fDaYkPJ6{{ZU%HCt9}ea0l%+w^zllT#x2VCV>stEAQtkyc1OG?&u$f1TnITI;X2c<=r;g;S z%q0bQZlJvr&A-M^_$YNlbwkr40F4_ld5EQz}jE2q}ewu#XB>j*G9ZC`^vjj0v*7POcIkQr8j^_q#tZWk|LJLdE zn3f$tn4U^#7hfV^R-JtXK=f}w$f24gD4W$yNi}jnueMS`_DoX>YGSlDZfY9R%6r zzl_+j3_B#LR3f3daCc^wngkJ-WAVo7S`0B0L_HqNLzq?oAv6U+Jr%^JcqA~@dlPTO z#Nt-o3lr(06M8bH;tq(gOj1DD#fB+o6^*EVh((t)nj@(~p!wRIt(aU!2d2Q&Xx-fl ztVcCY!9swB)~Yd?S3M~LgRr_`h~i^N>OKyv<-^BCkVvXCVIoBKi;1)WOW`00G!~I< zOG8401O`BzlnVa3`q=sa;587krnU{sVyqGYvO`2tQ%1~VTmn925j4p2_}jr+BALM& z3T!+3Cgv{sfE^HZrItKTbZ;&Wh-?uCB85|Kuw=p}K?ndgiYCN0FjtKgpb-f1>?qbw z0QyuywUJU*AzLtrOi%(Ky#|sd#NICPAeb!5`tBEUT+?8I3M=X^<)x{tdP+jo^@i?y zhfLW}D7|eNAMC_)qk7~`VtyAxtAh}hm?o3zz0MOCXf z;bjGCFo8$Fn`R|hM3g{5&?0RK+?UvvBqpHBFZdj}mv_pjf#5riySzOmP6V=wn)*LC zt(9tIl*XIWXVF(qS7kH|1=|Eptbx2Ds42m1#;e^>@W(4U6b06sXdC$QBX0{*s6&RK5;H54hAJrM0PJ!o4L7j zA=QtnfV(dA;a1uf(|5&58$^7=ZuMd>%0Y(*eacwnQHV%V0Be4oG0e0gn-LX&U*B}$ zgG~she1#GIpPIx}hP11&#b<%7X~b4Ah6K?D`RPA$x`LHOP$EP|`>tYX(M_rw5djTK z!S@aDAV9Q<78KTLC}%rnq*nTzBp8RX1inV6uk{r2vw2=EofJn~V zZ}tSBkwU|MqVP;QGKHd|MWOx{4CK~|tfpYrfI!vJ{WQiA;ae9?L3_j#d25;`f^;Qe zvqpBqkO&Uch>^Ohfr=)T2CXTrXbB03TfSLN&@CI~FuCLaL;Dtzq`mmKj?x=&RMz6P zy616Xhzsk}Zm`8Pmyj<;qh`$pc^XT~?EnS*-q~?eA`?}$xAm0QY`BvUBvjL6uFlMA z4$6%&ZpH6P^IvK z&K@R8Hj>+}+;ZND%EBB47tcv>#!H3^{Y3@RhaY!!bQl!1P%;Dyf12P4OIrejF1JyS z_pD-C3Y#c`yU@LHDg2MvqSO61W~LpBQAHIX1wToQMdT)VqA2gf_jm?U4JK~F!;@?I zi9TA;iAtf)kVgk}qi_dY;WugP##K%DY!NJEkfq>VzFSTB)DvQW0^2aGlNU`53epz?UAAHSG1!0MW>V%7fuxyWXK zxv&yJ-k0YG^Jo_QktlE~!&Z6WfCnC71W}Q$HKhzh8buVM!`UnH>Un`&Qm1o34c4BX zJKhaCDF7mZ9*6S!4)b%c0uVlHUh1p1;X4UNpeV5{wz$aHG8abZikx&jo9-*rsU&x> zkYO>dBLD=B!W_H&m^|SYLeinC%~)s@$&S$7({XJlt1cu`Koy&#`g8a@l^BYu4x)be zTDx&l7QrTu)?591OjIb6D5a{RA?)~ji3EBe%K&V=KheAvl+jS5c%&8s=bqx`et;3Q z2MH)zXwI4vI{eZ@?Fu1eKuy~HrsUhXq-nKEG>GgZHEixuHSP|`ytQSI>&zjAP+q-o zPlNnvwD1P@S?l8vzKw z+z*^gcN1y0Ujn{L`GhoJg2a8Ng_inUiY!I|-*$%pR&yRJQiNRx<*(1`Wh_S(Kq+Jn zI)m`rih*>rTBoJXP(lsZ{%?E69I`rquRqJvxli7Ngh3na4JHPQOGO7=*PUiW)Tt4S z@JZj}9Wiu^MFZGZPcBl@Q+!?d=fAf(H^#s>_IFqf5lGc0<8}OFwrq4Qc#%3)|= zru2UP`I>H|q+zWWWyXS*y8?e7aM+f+omvw1C#F$|j1l-G-=x+6A^_dkwdVf-{nqe5 zbuG0R-@^#l#aSv*zs15ziisL}Ki~0?v6Kgd*<15}@q>R!QTKcY=laG|eL@2chWGpa z@yB#V0(VSF{{THQ%LAm)tx zzzhMcaeY4W{{Wk;5(M28)OUY7zsZI|uu|y?wAA14UvcT0kliZRZ)55HTuD+X)K*CM z`Mt!%vfaB^{HKnzbK&|hLJ~U~Kfll1JwlvSW~stM&v8EJMnSJVNg4EXhARW!J)t^l z@$=Iqu`J%#MZb>B)&Oh_rQ8eM%c?gan^EXA0g)!Z4>@GpLJ(xXO5g8Wm|-A_M(ar; zGRd#z;E+xNg%@9yhQqEqiBJV7@4yq84g^HH3IqlC-3k0+N+nf*I}L4n{F5)rI6xs< znsuedz=Well`rqVzr@Z^W<)|P8~Z%Lb$FuDepAnp-Ucc{u-NL#(XojC02#_G zF^p{pQiv;}yJ<%B$=WIrpilyXtL3}%5FTg06J7rRk{V_pD8Z=tHU9t(vF8Nyt55Vo6Me#z$f5!efKX~WQN$Y> z8joc2Z%oi5ST9Z_;Vhfym_uJnMGl?p5vQ6Ql!IzCyMay}+41~z^I z)D6h*8u%9iT@EZELh3Y|I(cppc4Mrnq6G$!GjyN|DP^+jFB(h>i>$QfgmgOgP!BzES?xdJ$3Z|DKBb^oYN5VNE zLgH>cQb|ob%V#Cr6>K+d%Ie97o>BoW;2WuQGu#L{NWz~=`*py7eU!U#6aph=_9p90 zf^X`fLK3U3x;)5uR5mJus|K3@$k9lxl%es1DY!n zcvtLY5h5C3`I^+)f^1Dwf}(Nn99=?Es2j~2X=sB>ST8x zn3bt8RM9|1o*UxtLxA^{D20_ZWUu+f@v&N+Zt-JuEVV8Ed*N zK5gFSYNfFOYZx^0&U=P~RKRLVI}lMUPD&YU_!K~ER*!MtCKojtr4_a!EfZRZ=^!RU zCDF97Xq*pBVx;jxMM~K&yd7K!YEX7X=@fO{Ik|@^OVFm`zhVwz!Clxuai=?QXL z*eNAihRu#dLek)=ysM=*Wx<3AQ`GBgLNma@JXK7!f^|P%dfY741S}D)&2i^9?l6U& zAX*?wA!8?}6(6)kToy9*bh>)D>XFxTfCkaMfr#y+eqIbVk=#+17!QpusBaE!EOEfC zApsfFqoSQP`(P)(7X`-x0 zE1_nGw*+|5yV^R8`p`a@o&@442(+QUz~YEq9Hkc4bK$u#g)pG2R)ufeVubKPBT-V@ zVO{ZXJueZ4woQaTkvz-NG}sjI^m*^QGD1j54M0xsaNYW2Fa#neXegU@G)y)}OX78m zbnHJINqNbj3Rm&|4fh4aC0YxmMO{00aG+~=R2yAhd&~^fRfD=~M@GX191cn<>O0;~ z>m1j>6q^e`yZh&J%i5A7v5Ft9akNET2^G+yinazdmCDH^NwMn;2Js%D*<4Y#5Assj zS|Vx{bx#&zG7Z{_(Nx$+dY3F(63GMNq+aUjA21-cw<_8dN&L0PIwkUJpfGytzsA!R zqUxwsq*3?zy1?lImqfNu_xqtff_DoQBD5QKFOgjsR&0pig>5W?RO;fw?g)akG`ISr zivkj|3uIAQ1Fjce1v6nyuWw9twNx0A$e#&6A2))FN=LhZpTd^vgRvjZA_|HpN2ikAIghLqVvC3frxv@5*8yQHXQ^f@^W0JK2&OZ*3C8 zLqbovr}ZL07wjDPTj!UD3OAipX2b5?T_Dd<}4(4Sq;1MVLSimK$Qn&Uc2 zIO+`A7zLu0lv)pMyTgxcr?FZYe>V;|K*MzfJxe(+c}yf=*z`?>t!~uO^At4%nxefL z>UgJHfEJ*F29#|6G`LO0O($)&hT7=#Pn~}4NaRIW39o~cI0`Ygff?ULH8td&j00*P zp6sQB*O3#V%9URR*KYfz#)QB~D|-r+tY&SQSZ}7oakY+vT)0$_gJ4jF-zZLRf0XUf zYAxzw4(_;b)73)tpz4uAOA`n*VpXI_@t1@-4HFU?VZK#HHM!JKuw9sU zLI7GPG`rJb@YV++nhk@YhXpU=>GC|p)`;*`UaNL6t&?W&zN`P=>tc8=-zX(9=cJ%O)?l@iN>J37l+IH*x*!kwCxa^IyQGYOBagC zeU1?$bYcl*KZ`xnh}%KnhxPO?^OMwdDng?|R2h4Rg9^0mJ{Hn%1vZOoO86bqr7}@( zL8q^+FQ3Lxfi(>Peor@k;+sUbw3DyT{{VNaTM$Up3jTc6-UMN^O)8cZH8FL8ppT(@ zN6+`0)@fJ>Ui`9q&%-6#kS>+q4ld_?Gkp^!Cx|hCvDN*-Zthlfdfu&=T282d4GGjD8hfu!zG4C(HPIC`{deW>mtEbb#Y<8Ce&Q%CV9Vg~iQKUlA&4fPUp{}v zHaZbH0HsX<*2{7K0OGcUEj4t})Y+_ICdN|6NIF&B!Mg^rUizZ%Tjl4#Ce0EfX6Aza zVZ~U95NsyoH$OuIt?vWkY%E++TuNAkck|`m+_!pCuq-KiXAfLxz$GjeA-B`>c(gW< zJ+kWTWA76wyh-ew3#U|GHrxZHv?v!$X*M8DWUCQafPh2NuE^_dvThM8D5(mSlJK`js_nA&%SEOQZt*aef1k2unIwc|}l!zXV_eF^GYz83rQbQ=s zFkK)Lx257)fXFD7)ex?yqfiC=5_+$AuhZPHsE*2wQz zX?f_N${VzUx0ew^L1crqMA#;#_On^3bb+PoVjMZM6*ieKOssTWj9LtuangJB>h|P~M{{T%8 zq5{zokx3D8>q)2-c0B~T5f^z^M@SSgTB7^Gqn7caY$_BjsHy09Wio!;)TK5=p;0nA zMT#ycG-`%AaI*aZg^RX^i#?fgQJgZAoX}CVJB1{Rf^>=sZDGFYgMidQ*sTrfz_i({ z1MWejRBgI9lgr{wtQ6CyMzE~S5`h~Omv2p0I3hb@LH0e3QaDAHuF}_4ln}s^MLo4q zK&-v&aAj2>5@G-i40Ny*#mdqUI!0K{Oj2vnNztRe>geH??xI2##sTKr^5j6NBq_nF zEP6rSwQ}>6D2WquNYd19v8Z7s*J~9RC3L~aXS|exI@u5!THlsAp!%r=(!IYGLjz!H z5TbBVy5C{Bm3eHkGS1_6E{`S+g%B*p(3!67nLdOv1J(&QT6dVc;Q}S1jRpI>G8W4WPK!WHFxH;YrYHP2dzy)Hi&W_O ze(Mn7O1?dpdN&+XhG)z)H#aJ!o2+RF*tTN! zq!?loU}x2zxYNF})Es?P$KYlN3V4W3J$Hk^K@tJs1Og;ms*@1~YqEiOGl==3&(jd3 zEC{2)qxpX<`~X&w(kV2lPV!jUay3Cz4I%?q{lMNf1y@gG7AO$YG|btEdhBRL)X_p6 z;KWqaQF2`Yv}Ud5DcH~egA_WBx#?UnSin*2EJ?D-Q%*N@a%FKJM4jH{$$CnpqNpZ@ z=D%ELdPo|+tG4Z4_Y6K{u#SqeaX7fX`Kkd5>S{i8)xt;yub~FD8QC3=aEyWjL0b|{ z-ZIVHzOY$vbXbnGpM98!S3-i&{{UzSC%Y@FgY#rs0dXM({`D{0C_)6N0jSw_Yn%I# zeNFAJD(Y{3q%f+mBSQ*UFzM9n$%!>lJGx??bnY06_p$(Yd4B_w_8``lEUCQ$h&$bO zVJxWh@KUG8^FMfE%e@4kT`2SWQp*s^bOB&lwcd?GL~n3VkO1v1d=hY1?iKn$uYT69 z`wi&GO`rnQMI-~&UhvVBMJi=W`%XXBqkuLyHySmdcqx?>4hy$+e_K3USaASA37}n@ z9Yp*vrm(qh?24uB?(1Kwz*|y8i0b*1?IHh*5vXVsw9Z|R#Dr#fv#2} zO{5a{>4{#Nsc7*Bbab~10u{X_{{SLKd3L0R4JoHx8t5<_1unm#$CsHCRO?EX3T%<|(&%Q z%2t6ZR*-OO$-F9UMo?&kqC89$_2TZn(_i2E#fQNYVtfPHtCLm8H@_n!0C(9Xzwri=>3vO+6Q#d(rW|&LV?f~dH46>%yXU;2$+J7r8nGGpcx3H zt9+OIS%M^VsF4-l=&zf`lx+rwTXl9m?-G|2A=TXd*Zkwa3qc#i{ybg(0A1Ad_8d{F z9fsCd6s-j%YO1|kcU|FH#ws-F>D0F&2nNA}79T?uY6}n)5cs{ko8};awW8DsUliW! z?=h=!lqp?;r#Ab82}P+*8;9)Of6(TPj8=9bAZ#yC!z0)LfdOn5a_{DCr-PDy9c|l< zAca^{LAZ23>ddn$Yh5C7=D*o+eItRIKV^&Nx0guzc?9nscQr zQj0dpv?tH*Kj8B{kAKyj`3ll05ENd(n=J%2w}=@W{s zD4+z5t5r)Oh^})rqn$LSjd?OkGT=uJ*F{8>T`uFSZ4HNd{z9t% z02B8b2o&KfqPtJ@;6@ziA}FG0`A_7UHTG11p#|uLal3KPFuPY)o;wsaYV#xklo|lN z8>L{aA%x22HFm5SRX7?3XBV7yjJ)Cq+ch~czT1Ns>RA*gl+K*<8UP~kjX{b>A-2l} zrEkJ*c^4EEl&AiaDg2p%Dz|p#rWDd~)JSHA*CTe9EBud^WVuff8X1Cc+gJ zqyd6~Hl1*ai7OMp2fb28rp)dzwbevcorsi7dKTPJKxe2=G)y7ODk$(VEsRbK!h!bO z$U{MCQ7#b4E(<6NHc-1i;Uh(CkccQIk$1gg9GONV(hilP1;xlcAR;qt1E@}pE1<2l zf&`(vd}f>t5eg9%O8PyvE_6KWqKsj9rkYoHB0XRh3ezf^IeC}zkwGg$Y~`(}UE*8o z)1Vw%AM5jG4L`q?5nJLrH5%6&zg;(_<8%<$rWq~QI_xk{b*6~w<)>`yu|%Uq^S#YY z=)x+1DQiyZIOx2GagM0AU6Dx3gtQTksS=Y)LreB_BP5^=2o9BxY+ZhtZtU4ZwK|p& zoks|(I21c7G&~Ve)+P=BM(XNx{^Umpi|SHCV2HG`fm&j8RHQ0FL_~!ZC72f@Vgo`z zhhVPKI?YzDn99YPQ1+zCp*E~%MLdZGDecW6EMU<^5+9pPm6tatc}hB64mV~aAx6ar zJ~&GBv_v`pdI(KAd@_|;;#Z|pLA!-$x=5M?i)vR*-d(is9KD2nKJT~@8-m~ILMQjv z3fxOjl+uBZADY8xs{tBx5b2NKxx-EkF?k(4A4JZ870v-zw;r9^xIU(DqzD-<>km7DMv1DA+Y{yGQ-warHi*$~MrQQds9 z;VL{r)38Glg!1F52p3FtqF2{r%wvKHyh4oNm-SBMvoyBP4F!nt8tls6m2X@LI%-k= zwU)nB(Y+W;PgU4&8oSCwv>^mt1^k)2(C|2NtH0#)<_?Nj`C_08wwebUkREKG1id?N zgS^%!Bq}Q=&`bH%OMqC~iLCez`4D8;ke;BolF{9$bq@aGQG^Zxq}c7+BjbcmWK12> z)atYNM^h@oTA)DG)6GmrE}%jIqUe>cPCGE7#1LpCH={|_-Z~5fG>Odz^XsD!uWBK5 zoeqI2{oY!16S8$DK5O3ixHS+U)|AnCzjoP;B&$osx(Ac~eX{~OGzJIMcpH=NFzR4I z)Io$$pU6yLQ*j}KM@a}bTITK*jS7LNLjM3i?Zz9(fSQQtIqYX)EzrrmEvC8>1sQ6% z0#ktUuoPEO^K@oM3rCjQWmN8qk+1ZNO(N52w(A(i5i$!EI`h5O{D>-%2+|NKroE>B z05LZc5m6^3dwugoH;QEhun{&|kuI(mg^}@6tbo^}(Q0ZYp28U)cE9`EvG0 z4ft+G^Dp+N1OrtcNoFNhpd=;ZeE>cvYbu6Q8%jU`lt630PVwK@nG+Dks@v|l=il76 z97GW+swuLZ_cx(60;a)$>W;s1hRK9>girK;lIh4$@j6|rB6fqT5|b8|Ow#ODqSHgI zr`^o3*8!v3_j=p@o$ms~&;~4BhbKMe{{UA7MM(z02I){Y<2=e!?GQl78q&wjx0sz_ z(e@#~i`%zP*^LyIkb5F0n|kV{!wTpj%5v>nZZH8W1Vh(y9ZVUC0qcE`g$Lmo4R=iE6LP9)wLJ&J4dUvN}}kaiMT_rER$ z3f~?M-|x)OYKai7@1AVM5TSM#Nqow?3Pe(0#^I>gq9H{MkGA@_?JdHaD35Oa>2dp* zg*3rkNnrN^g_-w6*mVczj%elCRUhFj~_OBFu9*7r4y$kGOoIW_$0-a?86n)%&dUU{s(gF|AjyFPX2 zgHhhInYyEkK+)mN_+kAEYXKrXB9)Q<#E~iCFgsHh$&CGHgkWg1} zj_2l_ElDkuRYN3GXFhix(HiYUXVjY9?7GIE1PZ75+up`ZV4xDh!Pu41tgp@CThB?; zcJSAy@N*Z>1t@`}*5snqNN0%}5NaHUEgs)YBu-X$2$s+r(3fXoj2Zy!!CH8Kox>~n zK^t!fY}^h^ay3HiAk@&cjox279Y&&79kW{TFq&BsqXT#Q8b>7GMWvxRpkTTTaF!|o zV55y_dr6ft^j3hS0-(LT!Q!#R29lph#(9Cus-g#B1Y`n5J@!(n?c(S}wi_A^;>Uad zRwkhuvcG1qD~jMGf+y=@Ecw0&sS*tUX(rGKbZc1JM3}Onciom=0f(eu=f#HmXqmZ&TBETp{2}=I)-cGgU3En%0i0JNX=Jn8M zlaPXiw-ZR91O(D44SxjJij9E;3kwp)M@=%e-5Wp=1&Ob>a|k2If`Ez@0V4B#3_&o& z%S9E`lw?FBdRwotK?Qn;1e-4K5W>_{j*a+y{x_^)_8=j60NhnaqHJ+_(321f#e6Iy zyRu9rx4{ZPMRqBzI>~}DOcQF;n+wmnaQABmT{{LnBRAWZ(8%2aI}kL1{qrGinyxfM zp$(>;IXghu0>+&nG@I2cqz-NyaE)l(jbIo+%g`piJ%aj)uV`-*`cZd z{n~42Hv^?00F5>zHMe`@a624DSi)aT>z8wQcm@hxs_1iI9wso3mKtPICYtS~2@H8b zq$BShj)TJDb&z0*Iw_@$L}=rU$SWPtVr-+gk%^175rKniBydg5qZ}MU3W$jWLESqG zhwi1#1XOJO9W~4MQz@aMvvN_@Nq`wR6iT*OA?$9<2I;1p6Nr>3l*+L85dbWy+6eD^ z>x>vi1p`pB-E$4nOo@O=YEb2yWT+>A42Yl-jsy{kIXwYfp&)>;Ez*GCZJ*sxdF(#bQ`#K+iv<48YYk`eIsy-sF&H7P0 zIN4bj%3`&2YLD_c81_aJdl5SE&A#xE7CP^aiy*ll<*q8bYu4_Wxh_0h46z_6lI*UQ zTsskwAilx}j$8G_5MfkVRUI_loyucDT^Q~G?^4gnh~Ea%GKsi~{_7Ae#A)MHjGNm@ zjdo4w3M(lF?9km}=PpIklw~?>eAXU}62a?gS5j@R7iwgTNS|R+mivVe;k6;4D@69- zl;yC9T`Gt_qLs&O2SSvh6>h27hZC-#0VvUHT(|AVm}E13HXuiKmP2l;h;0&}4`7#k z<-rdXaa~ISo@;#GvM!_ti?w#Xy(SUzAdxCTQm;#{{T7F`_Pni5~ks|`IujK00^E@72hLEZkNfzFdC3RbelgNW5lr- zF3K7&;n5m10udCNDvp@~-1(GXQY0+MHw`8JHODd8p{=BTA&6o@*;p6SbCu|QhNCg^I} zORh{@!ZH(ZJ4Ka%U&h;vg(Xn|cF}{i-^-T>R3@-3rAjaC`<6hO;!|m})6~`RxIoH{ z)EjlQ_CJnTh)p%1D*@)W+udT{$3(;h7Dz$+W7~rX8$gN58&gR2n+;5e)d-_dY#BV& ze8*WskV4u@@A2>Z>x2MAA|)*$;)ah9$g7%+NF(4@FBd6a!8vVz`KZOaZEx45X0H8KR=8T4dPW;cEYJ- ze(c8qs$$THq}{~;mLs6}1A4c<{Bi`)r6Q1kyJ(1F&@A#!lTYEf;V`5C?9jwFLviPL z`GvDUIME^;9t#|35a1OCeLY8``Mso$D?kZ!AyyI5198XW3P>e(XeY_B)(=36g{JC$ zk`5;q-~lJ1EYVG3ZAh?gbre&lbKv1cicr+DI-Kpd0^?x^2|usE{{RwXzi5u>6GqB? z#18{XAdy+LKK$E96;`c)OAX%Lqw+Zm<3J-2_x}KUn3iNf78mjz*XB=2(E`!mDr;-E zWbiRB6d|JV5eq_Cw(w!+LmmsScF=BA9ak-Mui)9N;L!o-tnj`Me?k# z$DbptW)e`=2@89!k0;y-1gcjwoHWa?!2=dkK+#aN7w7zQnWQS#fdhA*f7UURSYJYS z^mUh`F%tM52ycdMGi1^~bzp`%lm*)qe$G7miArfGG-Ti3H=4~rU0wQa;8Z|W3eme` zn}iZ0CDE%_{ORfTBdl$GhC zHszSD1JI98M#+xE6;`RHzm5u{766sve2%X&t`(w?6Juk2*S*ty22@i z0zMV|>-+hT+X7gk>}%g&_pE5epg><=&%s z+-~yR&4DZRyB}|xON|I7hHQ2}e+!AFABZJwH6d4i56hA?S|GYutkq}iS%474CRmjJ z04?b1#K6_42sF}NZ@kcJBqe)r7}@LBLdRGdhDC=Z2aKOFS8Y%TAhC9PE%f4L5+DW) zVOVq5y$(2mnh>i>8Z2E<{GRL!;AlyrnxO>qDFW0;ICwxucVEu-l`Qm;15l!_p-^XU zLcxGap?1Hev%R?tVG~6HRT|03_snpTh`|A-+F0>+{{RPhn^e&>V$eAIk5=u-&=3+o zvP8h8EFc;wdO<^G-?v7 z<+O>2-3g+U0|Puac?eHyKcYR|h$gLZqZ=m50u-VT@!9o(`+y7Soi@vHx&%wwK@~Mp zEA{3Ta{(3FXgNTKYT^P(fkfT$M4rreHwz2JO)FpN@Wg)eM`acvU1@{m zZih8@0NSb&Y!yLY=*vlH;1gjZ?P2!&T0+`Zi0aq-KHQlhQ9{xo>Ub@h#6*@+NpuB{ ztf@=@L_sFAO6g)z59=Hq$XI9(*LC0B?e94VR-+8_(l)wsN^$AX6^Tg3=o23302ZQE zXeN`7xO7T4Qlei15vbB(-J-)p1|xA0?_6r>0DuK_o#1o#Ml7b(DvhC~liBZZiCGUp zAqS$tbt5sm9>qn_0n=Z}g`|S;kT>E5?QsT}KpM!d#?QoCH6JlVPk9P$qbdALf!YKC z1A;fF_Py3L1 z2XvWS6eivb!8s2B4L2QQ36T_T-%JFl(lFfXjf?KQ!GRbK}h3ELD6+T zu)w8y;Q*)rsZ`%)@Z+d8vT2M~k52#y!!z{yLzo;GP8y~7_(J|nL=>tbfoLTr{eKY~e zl8i-NM(D(MpEweysa0<@gxVbns4FT5QMzkUP2+4Z;Ic9X>{`jAcL1>wqg{Ij**OPKb%8e($JJ{=!p_v zxRn+T7NSDE8l}6|G9<;qU_vObz+Ytzo_vbhP!yL3Q<5sWQYameQKgx&gLrHT094;4 za=C~!iD<+T+X*n^FKHC*17}u`PGzHOF|2Kk34Un8W$TqcKo3LXty~jQQV>8xz`7et zl6rE?K+vhC(_F&DFdZmXwr^E%V)}=uG^GJKG;)Jt3$PpZ^AWHGNkm8t-jhz5b8lZt zKg35$`@|kA*dm4!Q6cHV@!kdBj!iwX3uMt#B5WtF1`L?ep_kU6ijoey=J!qIk5u(5 z>FC(%#lnq(fl!(_XDNK+<7?KP0O@L833P7^?_@*<*w9g_r|$5SO$7jmCh*9Bn&wCh zpiq5b1um!DAfORc0RcqyAWmhv`VtdS%DuPK%ZAH4hE}6eKCy*fu-d^RhVU%GvYLB# zp&cY2SJf~K2BMdimkm#Eb&nd*J8E&XKVva4b%;rJ5*4H7c=T4m7>q&zT8>l23y^i* zg(1yvBYx^BeRNGJucMS50Rt0oetY*!T-(nT8=6?RK>$oDkRX8~^cGVLO-l0_Lh68E$aYQa_X-`Lg6hGC{{X%*z#S4$ zP)}g#aYlaa>%kJTabj)XfiDR)U36?4gQHahx z+Tg&&AzLw9^sv!&ohg+8O(O4weflP{q_dr7_M$G7O_PQPy%4iD;(D^pxfQQkq9AXu zV;7p>P?Ht#DlxyTHf3)m1{iYy19gGGk#v zz}ve*4g4{MLMZIIUR(Gnw&IdPkdz%f?{$B|@1k`eB^D6gyqmXfRoL}eNGn|&rk5m` zL{J&P#oaZYAf*a%K-lZEEg>4V6XWpizn(?HU_e#}b&xj4eJ8!wQZlv~S{KBQ`BcxIkk)b6qp@9}C zp-yn2vshM~0+c{O7rQulw*gRTT_sH$bPd;?*0$2sA{D6J2WaS>!X$-E!&;;#mbZpN z0Lq>0ltMw&)-V$h0`5dBYTY{9`r-*<0Yr!p?+flJXH^3lf%V5))uQH5T*;SJ&i=|qr7f!Xu3EG~%#qJ)-jlPPy#VgcNTO&!< z2&w>HsP*QL=d|&-yNKlAlcJ?3o9f!VAo)ez8EVl}j&zrLs(4SKDn z>%s0@^47W<^a-;QyB&*vqw`qn1XxOli6TU3;bK%OF=%e++pggRn^a7@Am`524*-0&3c*-8}yQyqpu3lx1#;OUzcaL`b6)=O^sAwo;UA zQ|_4dPxx?3ItsfB4SPYjqHF~TTzxAymPu8VXld+p{{W5PvlxjLn_6qmr-t(4ga|03 z)iwFFy~83^e?X}acU@yYY)c4foFymnVWy^qS+N)>iL!W15KTdniDv}iF{Ual#E#V^ zC!a}x2;Hk1BSHLE`krAAL5K*Z_cz7!D)F!qPy*{tkMv_HEtO|V@Fmyuw<$!pmVVrbZbpFZSjW;&_q&Vew%9y2uwVVcm=cnKLILHk znqxil3r!AdzHJM;trIP%c2(O+TJp=c8f~Eyuu)}KjGH*_;*HTk6*e5y+KPA$!~q0~ zjo!XHyTevx84keJL>(`0;P0~v6vzxCqQBDXjXR1RNgAn+C_YL{e8Ebc8b3GaY5DFF z&{6?-i|wQd(&orV0#pw4vv|vxM|CXP?7un7i$gRNgbN;4a6K})sdiIqLdp|Hj`;e= z6GI}2O(vIE4w@74lm#dN4)bmqdsGmNcnzEIkCz}+*+vf)L9*{=i<-w03m`%HzlH8G zFhmIgMRvw~bYrMQr-4Cgjq$qV#x*dSiC|*XF7c%Dz=hxgqAin-9Sl=xAs3<$geDLw zh?a;Ah>2&KxoZWk#7HEOHNI~7E0L*13K73w_$KgCSPtYgpod_;<3=pDkU%xFTL`La zQxY(4GixC4zvkgj#t4Dh6)CzNh*^SRT&&2|2T4}1W?FfqK{O%l*pp4g;(;VICmw|J zujWrd&<&yr9S~`~M+^iJ=^%i5EgeNBdUXx7B0esgH8AUU6QN=)C)WJ>;y%a}1t3s1 z?QfP$10W(5<3xHIPd3~ss<~BD1%FddS08l%17JncaBAOg+ku$T1Aqn_>!uuZZOs>I zXthE{{*aRn5Ku)L4Ng}@_Uv*8WKFP*2K3LqZuM^skB`pfH4I|ZeI}_k@7v}LptuUo%J8O=By*p`)l~;&(?Fz3CS7Ju z6Kb=IDp)+pb>=8rFTWKbIAWIN(f~jRfxd0gHLPmGpmairP0w9(nSWq*p%64S6(R1N z3)I!xEa>9IlL}18fe9|ERxbK)82UuLlvX=I1bP^VR2ZNcO~wbHxK&x&31o`J85>if z#FR+|si~w?{{S!?Tj4uNu@IJ35;u+zSqm7DIN2vWSs|M;*--%iaR+zbW*&hWT7W*O zPJWI}&Po9+B8a>YO*TUcRJA0~Dv@Ge=M3pWP?U(E3(fA}n6yZbu@+QgM5aFPlfHnJ z-Q?5@E)Alo2v*VBmNKA1V3C}%0L>^a)HJhL+hfrJRb3H`l)Z6luGBJ=!Xr|M_~5Tw zBn<|TPG9gBD__;mN&=eWp}dAUhzE{{WOCM&hPaJPO4seo+_>DbiB@NEFgiQ|1Ly z7OZfQejfqc)-ZAiL=u8Brz$7!mqu%v(M3}TnjM%-7}(I|2*02%teI^}Wjux1Rp>;P zWZtSGEka?(eU&a7Q~?1llmQ4abl+T49;?Fucb*pBg~hAVoF>G1BKKC3gW> z-j_BTI}(to3DulCjvOkCJNN?5?-|xAv~6WIHLsB)fv$`ogaRtwHvx1}WO9HfdhvwG zHikh{Xsvg~VW^A8m{Po4p{>4 z0^d<86m1!F28p&}7lC_KK`IWclLB@v1p(0%uQ?U^VTedkw6GO)uM@{<(l?B{yBv)J%hm>|1Tzodw>!fU8>S1!QwYvnJcvoD=kQ83tio|Qp zXoPZ2G#c8-gxc*-n@m-(YLK19Q`reSi9}Js<6`bQex<@CkRYl&ZkmsOtdx9_e{4nD zLYF$E0D#if1Mf7hDlObkP%5s*Ke$W-5g|u|MRd_S*O(A|fPqvtRe94Jl!B-zTB{V< zWF39L#M(4iRy#|*?zR&od>lFj8?vPT060g7EfcOClI}NiSkjkTDy)fi?cS%p%um{` zGUx)(TDJn>VS1OKw5^ou*D7>X%&9<1??a>z!#Uc)NYn~$Ygm2P_RUO&Z88;06MP7-n#!jZ1Wiz&R3roS!O&DF1gqF-m9klh zQdM*UNNa1L`7vM^4nkJxP%kB$#wbJ@Y!1zBm+(QBrz^{)?Pjs;?$CGy^A z-_79S+A>0uMuO;F?+^h#iUlMI)Vkii-cF{Hg%g_n9MRTIXj@s)An%-9;3VvqVNFn2 zBFs$JE(KaT_q(%Qz$hx3K}`^R;dSKOl#5-04bX31D-QH#u8nNMZ~TSv{lq|! zHXx6QfeB(Rtn`k;&U%={(58~O5s`tv-Qq!8Q8c_C>7mUrvZ1On>xkFd?mpvKdP>m{ zoSj|j{^AByF@P3d3#s$@$Y#QwfozL#e(kzX1Q7H6O=gI#7tecXEdHfIaW^86R5TC4M zyW?|Zk?4Xg+5QP=!A zxK=4uZufiRm%%e;I66Ex{xQ}pDwH(yesd%;Q9@mZ+W1?A6L28AyF-B{@T(a2`19*2 zfGlJbNZKlY9`Gg?Ge|52QBCjol-_AXu#us&VqU$T;KRf{Aq!7S9k@ZI>p@Y{9r4y9 zQ0juJM!!vcyKyCkj8L`p-lq8X9!zC;Hap`vOZa6!1yE#WgaPp=nN*<~MZ7}vd3WX# z#xD35ntM;%cdLcsG2RFmYW+>6^KtD2DA`LM{{Z~#!!$-zsw&&MpYP_fw%UwERHr-t z03VkxVO+Ek1)6WBG`bk1b7-IP{QS!@ZX(o)$XZs}geo9*7U)0j?2yLjtRPB8-NNV$ zQa@x+rhrm={cc=8LiGjfeg>WP!NAKDAOPPS5MSa=WB^Sn_(fOyBfNw`1w#w8UBAgD z2?uB~Sjzx?s#ln{RFDud0)m>m`a9NKq@V^7y2<3{=O#v}!`5f1chrcxkp}58}qe`&^vRfLk_}yO7bmLQMc#LyB5oy23pJrKmSrup0w+ z8PV89BTBmh`Kyg2pl&psuKJoljt1sp_5gzFJ^QJN6hQ%&VyytQNi~(SBW!i18QnS&Dt2c5&^4G zpklY~j0&@KH7TXKY5n%M9;eTNn}fsI$FB@ZB!1G}hWx2X|4H_eRsgWF*ks-HWyQ=zITmYkyCrF}-*n`h7K@daR846SFoLxc8YxnPSv+BIpGHSz152?& zv%VF|NQ+!;hzQR`bdY8vrkw(X0hOL=)VPAfbS+gj^WL%21ReXzIHI5y~?f zLV~?5H@r89Gf`C-sDyOPN-_zEff|-Oj?*7l1Hodc6(0)ovlXgZN{2=_^KS4`Mn92Af@QmThWUTMHsQxcGh{{WA(xhlOso|Aet z_k|`15QKmW(NSY!l~WCXt4@FvYAMiB#DN?EKvWF~-ln^cR_dEpeFlii+=-2n1sbeJ z_WkY67Em2ukV~_UraLOqjVQE6?0d{*5qlzmI@C>VwAi}AiP%{(qNwK&=a@kuO+l&( zf?wOc=9iS9heNwCgS_V{rQ^tO)QZ!BZKbN>n=Kh>*}Kl-N%> zYRDPU1@{uxHPI!vAI=u&l*XaNn{Mw zZ3`WjxpsAs6f6nl*8c!6FeR42L)8k&_DonNQ)8X07h|il43KqcRFE4Omz?H|MckFB z8lZ*jK03PA8ES(x0VpZLZ~f$u4MC;8t4j@N<;$RhvZ`n{tS+B6u-+@}!$S_zZ1k(h z;lPxqE4`C^>)rPvfrT)eM4LL$GepK(*jonmwEYdsu406$qW}AX&?t=3 zV)Yi3_vons^p=Fkcn&XtWkY_9y6cV+P|Ipvqqly2-X@@hCDcTow&}O{+6Wdeus2H0 zq~FuKa;`QY$SDgaXTD?0Bogb;9qNttnFzfK6jP~9977&ktoj()8zcS9s}NRDuIy?u z5auIdmZE?sE}TZRY$>B?H#WP%Xe&_H8+WDLgIGn9K>$(SuE;v|bnar>1r??2 zB$TJ!I&*S5L?Nr9+K0=mRxeNhz+fk*z&w4pqSMV9S*k?q{J2nZ6KLMJiT!onG#ylE ziK^ZDWt5C4KsI;JU!{EB1tpOUWiLD8hd10If+A=QRt+S7eN#6Pqy|2rNStJPTw&LW z04IP^FE7^_9KyXf?ts$N^O-eZf-#2;lE- z*8+}?Pvg&06%bcl8vJ2lz8o>!^4K+u9Nt=n0MBXc34Q5_ z8gpK(Oa5@7o5Ye{f)1{SpH2yM`nJ4U2yQdH(Sh zjsRAYv1z~M*O<)Kh&2Y-dh%;QfEwN^H1IVw*k;;Wt0@OjZ&&`@r1Z2x3wKYLfk4F# z47&oAy$j=!fb6GG^}q4=Set-p2Wr33`8h+=5S&1$Xwe@>`NCGgMMzg%e@JGoQV?Yo zef~?``+-dx1P#yyUq-st0&vKcqo}{klVm;aN*G~I&}l^O_jSA?TS1_EVzO|W{KhLV zRd@gb%O^hi*T& z;Da3j+?$pSHt2D|UFe#o*?K}-<;s*A2GnUr3lm4=o1>Bo0|nTsv5W7`$&XS(H?SLP zlJXd84(M1SL>xX@b*HXHKvD}uwDC1qhpJ11YFGfXo(MVxgxkgm<^5vCxx2k#3H{EB0Ykof=-$ z2{+fmV<`PY5D;I6>FqHCjH)XkQ7!cw2Xir;}=LL;qMy&06)niT_) zA9!l+$kHS*Vv|(yv|Wk)?;ZJ|D*?D@9Rnj%#MHBJB&jK-Jy+UymkQI#!~q}*-@(I` z1tlKuZIm@zW${^H2^CgKlbkCNc0k(p^g%KaeSP{)Nu!`)R+0AbhgMd&0u|)*j zmg{+<1S<-f8a2HW`i#gnSOyIEREF%KyuIJKWJ|LJ5XyUpsi?6QlmT=c7y7Ofk#&NK zsy4%~R}A}`VoK2331>s^r7IeQ4Wa|Pl7B7_o@~$*RcY8Y97O*Bu^~ZT6%;HVmju#} zLDX$WWDd&iX6>z^EC#o&6;AAt1Kt%NCbqt4lXC?(b_g~sGLj!NRojU<02IClaDJc& z6o+ari~et1EwpJ$>_ibo4ObuQwUmkKv_-w!m-sc{17H>GH(uP16S-G=*~BKtZybjg zh$-T%V|vT|G+?1lA>9-~tpRPB8suBvA&yDwST(+&qZYp$36Ltab_v%aB?P0^DgE zkMP{*KI~y2Iminln8@?7K&3}OM4EVr;ykh=Q5^!iM0Rv;Ff=W23RQX&odq&jeRyAJ zn-YVveRl~&;t&d;B_$)i#l+`t!P1~91R1A+(=1@}brS^!!INJNXu<2DiouqeMApr& zB_O4>u;`ElM|j>~LJ8KWl7U2Fgb9#ffK*da7EroHz|FQK4*lv^8faFD$6#n7L2sT+PP0J+o6iOjt zHEn}jxvjwfw@4uqLh{7pT~tLSa{W5bIxq=FypDwZcWlgp? z^k~$U?I$aDly*+hky8*zX`c+^C+X{t6%Hgr@e3?fm} zv!&iDtH4w$yXtJ^wU}y(Z9t&vsk@Hh)-J?^~rdp2!$3% zUz2_&IYZnX)a`WsYy3#>v*3{pY%klE?o>#D*ei8iPjy2zR}f(O#6)AT6MJz>>X5CA zNzGAL-@#7BwxZ6D0zPntEd~HbwO{g`)wqTujjH&9p{e1_dO*nh0DK$#N$6#X_==(G zxyw!cnJr5KAofnJz9Gw}cvZBc)@U{Ck%i5|091siO$-^n_ZhE}p-v@rCYh&EF*A2r zqp5E6QtxSjK)7-nkm%XvF{5Xc09RxSDsSGn6syuz2@e+UaQraw$h{Hl6h7`RrXY4{ z7ebZPA*2AC6OSEX+(gQ$>WOW3%FSTibrluruZl;|iJOYzgrr)B0Z&>u166531}g@& zs?gw2v;?5gc68Ua-=xRIS|#X$i9d~B>~-S5`kW5Oh?3$oBd)864>1R)z9 z05IZ4ba}vdQ7oFVN`|-H`Sg)qSwJBL5Pm}$redrGwk?I_;f>U!s)#@+j`id;dxl~n z0TEjS4#Fw;^8rYNLYLJ7l=v_4n&=8TkXO8}`#+q%rm1ZFV}Gij!HJJCy~rhCR%kT4 z!kSZbh+ZOZRSPgnL`)!Cz6GOEW>%5`nmcz#2Y;!&0!pd?1ROps2A;U_37QmN7{^R@ zm)t$u%Sj%nEiQwaa3=Rs2s$FF(1@3LSi;rSOAcu4eS1tS76%ZJHFTN}?&2CR2t@=_ z^rxseAZCeTjqZk!9^7nnh(Mr_R)K8NoATu3G60obr4JKV`L_xWM_q?>OI!C&5(vNw z%QZ-Q{{5H}l0-y0cVZt+2WAL5D&9R{ccBFnW=x<8lFHT#3R3LJ#Yo8taG=w)KZ}ep z!P^w0CvES*3^c|Kroija9{&K71yO*AicQzV+2*Cr3owdO_1nkzOrb_0Kzi7S_ z0)d9A^ZtyBw6$HU`f0W$Y zfh2+jD2|Eawe0sVY#LteclY)Exk!Ts7>_lte^kkvED){W)Jvql<61N(lqv_(KJRSj z$99z{+~rzp^ZCLcV@;_1x;wveP_J&fr!Vt}-c~2TYv1S2vA?}+Ij)&jY!yP z4JXgA)<4M5YBolVU+8fMRKyY)z|@?+4J+ne%H(`$j0u|ZkMBY48A|MjP zLvgbA3o%fnBSwcq;aE1<_*#{P$DHuCaR9S_>3VJe$Z>^|8MY+tYesbvFS zJq_8C0$Mk*EfRyE`hMI@aFtWJNM?R@NM; zb>wg@Afim7DaK3VJh&XI0I1r&)SU8W^zxqHPg+>zn&+Y@6PebZIg(SXihg#T_84FL7$; zFi^OUCmV~x_kycB0fSQ6F|yW(IoTEzhQkU16JlO*rrjU!nwY>I&Iv>|UQsqT4Iu4e zuB?Z>smBm&L8NHJ)Bfi6;^TpeD1c&#`}_ITffCau%`&?bx=w2Z0&$(uVltPGLw_$4 zL~)H01C zFfBS-22lfhZdqzl!CH|QL0PT&qYT0#L=dDYzXo5|AFwKlBf|J_-xg;70BHeXz)~{9 zR*uZpB$J~Q0wBM1Ch*8ffe?=~_dd+D4fp#o9E-L?~S}O@<;sg%G}e8%8&K!1onO17h^R z>b!Wk(0k@636714S6p14M;gg z4%ZBddn7dkbeq$Ojg^!}ks_ro`r!-M3B>@3J4I=$F~=I<1yx#{A-254r{b#CsBwA( z+}0C>f$B+sA`7-F%W|J=g#$=XBxoiQfgv(+LAye-F&s!lP@1mS5FYI@j1dG)q@tSs zCh*?g>rk5q-Rx5;ZPRR!nsJm{c)Xa<&XfyCTAG}pQO1;D5GI5~651nc$%U5f7(`kS zJcM@<#?^2o4Jiovn-9zvL6XATWJE*nlP5P?0tsTO4uO`qgsZ!eoR}^ zj6(*1+oisg%T>)36?8&E8gg$;&@=!9dr(|8aJ1ig`H>-P3VEU zdKmzCZR|F13G4P8#I6|xs8@6&y%?u@gKRfJ2WfOXG0TP&V@gR^a5b;YNdyL_uYf-5 zTz!tTo#26XPL+UN>+bOOgAk~T+S=J!AJ8&}j1rC3h3oyhO-(Y8AcR_^O}AChjx?IF zLT^%_Cp|53rR5r+9eb}$>-TtU+%l_Mhey5)OtO7Kw1}+a*`rJgb6({_F-Qb&pZ56N z%>r6(5o+u-J#HBRdO)PmC24o$s}BJw&Xgfup_{)shLn^Hz+@4w&Nu-JEeHaE9jEdA z??p060Vy`CRXmg2Ck4oqtLll;qB8Ff5z*}iw56V|Gfop^MJ9ywqjdhbLe7K%fYj^P zYFscxjc$)&T_;1;VTOJ1uwd1qf#pT{l4GPy+gE5GhTb_OvQRSA5ltRyxP%n|LWlc+krD?kRwaI9salDmmwfjgIl@zrrae$#L%Zkp9p$*YZpq}1vY}65j>s8jY8>5 z;DssI`Q5=_3fTb@O&4JAa`)0;pSs%msBLRLZyCcOWdbXtyJGG)SiwpGN*0sRwkl@G zZ+`BgeqjRX2Ts6B$P(!9Jj8+#APR~scvP|8wS%ycw-P;s6_Z}*<-3KZyzeDs?Bc^s>#kkCu(?y$D@t41p|=U8>|%6hvf z4|MBV!2UF)ycB%a`{cti6^#NnizjEC$}*PlosRfoRPB@?P}i>5`S|7hv=A7q{(LY) z2Eh&AB>rwwX>GJuPM6NUVGEry!InkFkHPW5nZ0KPxEpp?5ZfLMvne>6-599 zD49sRo#&1qQUpaNiK1#en`LrTcXdT%->E zMzW@XLua_kpzI;15Q40#O1pbG@7=Ak{sZ-4=+SAnN@c&UXd5-e59I`_Dp?!pj*Af-F9Y{GP*2pi2; zLb9B^^%?QhF`-cXYfiYm~yPw}C?+=8ri3TS0eO+s(U zjhHRO0Tp)%qK4}Pu@FEM5f+4oxvlF3bd&^8d~V;)e`_;Y+1o-9-`V0<%w!agO^TW; zXzlEA~fP$!|i#*hQa=uk$ z8Fsu~Ro0vhqO^@ln?ck&y_hBm2vi3^Ccb$3VE|$PwP1%9!{MwNiHi`Zk?+NL0^>2L zK#Bkno7kG7;KEai)7?4~>)ou@TQ#L!mPo|AqB>`|P$7oGB?S5xNH+_EwyGdSb}bUl zM($-%3`PD_Ax*lT>&dY(Kp@tF#6+KWg3!XHRT8#F6@CnHcI+Df8cQi|%quaFbfS#?4R;K-fX!^qZk(rbK#W6kXP~IBx)4tRNBQ z+}4U>md!+lgHY6?hxKlSGOOsd+3dKFE%^Y0e)p=F*;q5|zj}nFMY?Ys1chlMLhpZR`u9#1nCJy6dR|j*^@X3q3P=J3Cg_~0mqi$q zW*VA|L+%0?Oh}Iu+t#{!fN8X>1W+GE4u69i9rDl=6*P}N*Op{rl;J^X2KY~bk^cY& z>wrli(`=zZz-ydk(8L|Hr7v-_3WB8(ML|hW)~~nhjjfJpa_g^q`_f~(cK{-AtIpJIr|4+?XL!V^f3#KWQKHT-3FjDH z`x}-BH5M8-DlUBvy1$N_Nvx5#X9hO{PMf>}%2Wf~ z_=3Z@$7PObetTk6l};Bd9QQwfz5m%8{n|0TssM?Xxt1IhOT&r-*}R+WMIO2Q5D%#! z0avJ?R#A!c=SMAKj~q)Tx(xNBZ!=5hb8&nT6KSC*!F4|0_HuF6Z=D(X4X?-tCJrO% zB<0U0Cb{z7w{cA8Or(fj`;rA)yAZ9uBVB?%@uG^J{C*QRP%=hJ&ymug{|bFgO-A}u zbP9%zaz%xS&MU0Yet(X0wv|k>b~lnjiZTzc$)rbp4ZSN`$H#95RBrcSx4ZnFwFchM z9A6fh{1D(7z5v~{=?u81kM5^+h#_jPPkmOWuQlSIIDfUdWJxWF!lUFDjXj+;3@C}7 zD5jD7D~@CE#&Ngoug6M`n)IkdEk*1~O!)FhUS7(9LVvxjqW%vK&7k&yea+sots64A z*iK8M?3@*E{+!&KLr)r)6EIv&6G#(pAAI#d!A{11Z27h2Yhr=sU-0hxY>Ah?>1>-& z;}U&wizCS`)b)pCtr33D;PV3REwkPIbP}e=N>*dUU25K2q60D6%m#u1nAGzF8GlPR z%se+ol?^7a9nL4kYg=QX$$ig{ce+J?Ed%m3l`!9TYCBF7ovYvr$bh4%U?-aycFyhL z@BgmpViWTUZE-Co4;Q?yhByuxHeP@n8?OT|dt+kg#gXkpuICPvin4CyaVm z>)~Xm~3ni{pQncf=x?_?u` zgfD*OeUR{Ue}xT>gtpRvPy7Y%jj05QS8A8a@1GaN^?M@OI=4L^)255zuA@LL>8&g6 z?=%1zRZ$wH5}M(MM?1q{cV30<7jJ&AR-G4kY6(U}5JN~g-zAg00e~y@Z`o58tORSB zjbLAI$u)gU0!Fj%jC}G%XdvShlzuE9*~r~9FiF-1h$z1-M7M~51|>>vMg$Ok1BDs{ zN(8jN59iP{i9d2K*77_4VS7wytldf0YZzw6jZsJG*haddir^)2&+vCV`A)}Mw_$YA z2SueOrhV7z2?inbv3|7iAcs7({DdSL;Q7QqnIDZo`tp5^(09nVUX8Ki$?>f1k*_&0 zR^p0aQP2px);ZMCB99fF2J(dz1H@paoPPGf(mgY3#whs8MFj71S~?5p&@Y#J8zvZw~vLPqbU?t+=$*m>K`c}dCHTR8-$7&yVegomas+i{?B4b5(52^wi=V-bB4vUVObv56a z6^f1vPF-GXcf9r}oA1b)?m0%E=y#{%=3;DCklC)#?^~^{t*|>Nxrqy(>GwEgXR#|H zh?Bip#5H!H#GAWUj=P29(t_;UvA!?4fI!ch>FMLMfSH}`sCSL`>v|3H6(h-$sJ_`` z``BZ{DicP4Gc?npV+%vRrn8vw-)#&2{T6D=HcoJ!wa-6>QKqN;e3LFU*;k)fR8Ebv zK0nOP%}~R z+mUHPc6%MUl@keFLgift${=?pgy}}4G*vUz^G<})r%B6(NO>Ue{ zn*1#yVJ*-lgtel$@27h}C7Ub&0VL9&KfcFapit_ipnk&2|Hcf;+SP2Y#MpsN2*{L9 zuXtF%)S%%B^jf}}4(V%ja^yNU5T1;Gj)2f_U#QHt4v;H~9Ql(+2mX_QZs5np2lK5A zm9f~xJ=zzv%nY6|v(*WozsEpETJ=!ANya^5fD<$27x16KgD7JHLo3(2u#pF6u?vl+ zl650>0kf~x>4!;TTn%=?T3%Y204a;uVSHSio=uwOJismy8Km(v|Eh~xlD^Gp0?QlzNK z&58XgX^^5TohAfkeZ#D9!1)JvG4`(FB%h9U+9FMZrY-GE7}AnHXk>;+w|E%=qUsr2 z_mfpK{j^q;rw)iPBbbjd67|aL#UOCdY+1MH!4ju!aVqcG|j>yiv57ya6WVeUuo z3qe&NE3fe`sNU8${^qc;C&7Y||Mp}Yg^DmkmwikNlO`Bd3?^E>-M{nts7zr&VGL%* zI~A~9jVH0gxX|?sB>1Nimqaf&=9>BC$OXpT&p(+tUzy{fpi}!EYe(0-7WYmHj`3t7j zl1MrYjv7tBM&y1fR7OkxeI0R=%;b3@n&mUuG-1JS)(oU%h9PbnbnswXp}X5wWt9(I zn_B(-yRIHEw$IBB;<`x5QO->U^U-wE3|SmiMS#~@Y0k#lzSR!3T9!*Pzy*?OoL*sd zV~8$^rG-wJgL>FL=h&`#kP$b5z?kqr`b^=_M~|Gp2aqxlq4Jv8{ct{qZ-GU=**ToG zTLuR=f>>N`=Rp5c*G}SQ|0uXVvo>4_QZt-e6mRV8dMnL1N+Vsnwmv#+t$g}m2x*ajKt;85QAsAG*DgNd&@cW(}p{{$}D#Fkx^zB%DSPhE*8wQnN z<8nmz@u=0;l1@b<*-IU`HTA|uHEyYXCoz-7j4m+~ZiQZOYR@c?%$!@PTv!4&AJJ_K z8PZNh)>e5v;Buh1xG#J(DD4>y&HTNat*3pznLVG~PzQckI5>A(Nee6KIh*w5{iY$M zsMOA|*%@=s>b4ygRJX&$`munyq-iXt;sr;<`cs<)VW*d{n=(sMR3HL~E$Nut9v zc;9#-{p%7Prpct`rAcy=tEJiHiH-Go$M%^*bamxbtfyR_jT{MMu|W`U;wtZ7C8PfV ztZ3*goW7CX@|JDK$T%fFjxT(3L$_}bTEPb9ncrG=Dab;D%oyJ~u_!)rgI~oE=)I_W zkBD5K-9FdOPU{e!KAHFd6t{%pRD4(hORJr_8I&9=iw`)wXa3ZB=G4L>gdQX5gzY9| zMlBwlxJO;h;8L@>V}H*st}sfVNq8&h$ zlyd({GxK^&YS>Y9_E0@!NH0t5sW2~(p#1A#=PGeS8@<1vC-*ah&w=$8uQljn7?{OFle%Q+j_e<+CLY_X5umKo$#$7 zIeTe0)dMYdPbZIyv^+|{H~*e*OfQ0D24?t(HEm>GbFig%C7s#u|NJk|G8Z~k54mYwT8*Pn7?4ivwU2YRp zrL#ZHp=;E~k%=YDUSF&#Q}XByxkjj$vfX8J)bj13b~B--!h=7K4#Hrx!z$Ckk9^{G zkmqXZ%szR>hYJP#lpu6>YxheHU3GHN2u*p{zk+EggdYJuYu^}Pu?jP5;Sj$>_sR8t z12I|egi!0=A)PK64@mK0Z@kLo%dd(yBCgx|viS+hwvt141H4kslc8^p&SscqZb*r)pB#QLaa7TvC!Bnte-|2Tyfv@vR&8= zG`1Et4La`ps#4JC4FLIRA1$gA`!(&*gIF0=QqpJv_L~28PRxLU$Lzk~F9)O{D^F5n zTN%IK#gNtMPGANNMw06VGFXAP$8fz?8=)3%wKxF85xk7|^G;kI zm-@3x2+uPzqqt<%{v-4p^64PdFG)7P{vC61=)DFgcr2gYof@@90Aoy<)R8#qz^d&!g7waFS7aM~SN%WMz=PH9v8545-A)_6oZPA){d#@?>jCKyiRV4%H zO0Rq>0BQ>|X?T^Z)<&Flhl=h4=>0;|A_qr(Yn%G4yz^g$z$%KN(Ck;R_|tzKG(PNP zL3!`i@l3-`j-bwQ<2SBH==VZpUyWk2_QPU_wVnPtmD#* zF^H_{b5?%T$5c-M#Fj%rxO~c{ zs~=6P*sgk;$6gjOo<(Id%C;u{>++>X5!N&uF|VHo+mcoW{3!sz7W(NrVIyIJW?g)# zfLFw(myfDRH|yQm(;B)AB%OU5)5-qC8p{Sd1*CfT=nS}y@>U;o{-ZBD7Tqf79d6s_uydt}7 z>Dold6=Qy1O-99&RKwUkAQ4J0&9s4iw1CijM~uUIqnnXZlzkCJF@3?XB1O%huGM~Y zT{QZ83@Z5V*JY=k8RTL}E%zzgqrI?~T_f$E$Q}O!kbotL25n-?Ug(3rB?0bfU3WOv zXI!aj-cu#FB4ZrmJT{=9uygZ2dX8$)bc39Q@rR#f&5RWPq}e`x83{3@14LtlM&LV- zZRvPy#c%6-6)52=8RJK@#N8LE&T;jN6^Q^*rHvW-5=5|{6i~(`}AR*l++WmF9dq|m}&M1IUjL5C(Od|bt z6a}HF=QE&Uy^uHcN;Ktr2mR4Zwb{6av-fDS0t{7TQT{u2hDDXK+iy%``z{-HBpv6; zOI&QvV+YCWYWcpVXo|c}(i=1{3nXBjo#ul=Lsju|EulBuM$eY9d1v^sg&Ud&!6O3&AAXwv{vGr=r6{+t6siZ6N zJ?V*iAO(RMPe~WB$Q>ona2{FK83S7MPy!&^LiXo`ZbRklP~(*L+oX95j% zi(2XY7?TbHP_r9AqHmMx_COY#S>|dK;B%13k~)!6psGV*bk*Q>5uM59Meu>oZcn&!4);v#6_7HJS~N+{SI!HyTW0p zUq`!+L8AhnZHSM?%QiUPA`~r2iFs|K-;bERJpp5y7!f_mt>(Z9sgHNvMjH4#AWG07 zWn&nI`uI)rqYl7ZXH8$!0q1|rnKx7?i+>r-JV^!D^efN<2Tj%g2Z$~B?pMicex_Bs zO64;1|{4VKfeTc5$N@amjn-+p? z+yhKEzGA^q(kV@R0bc0&_Wf*vA^@Wb0zM7~d!PHIOeDd1-iJ6h9vG$4pcE?Qr+t6x zWTuVRq7$_awSVVLDa#?pe1qlV>538+<4nfu5i9%|WG}GSstf%xd%6E(u zTjb2otK2Y@CeeNstYB5-7`KpAVWHD;5UcR+-g86ViQi6WzMZ<8n&VLa4Q(6n18Mx& zOp47kFnzP3XN3pE5|mPhY#OI=M=$T&7v&{4vW+X*cE$A){&5N4(+il+>568D@3IZjS4t_#*WVM=6ebF8 zWCb#CKLhwhYdU(hD6Qx8!JMEk?Bi@dteOMN>5>h~(mamQ8vrJyS+7YAr2_{ykR~{~ zFi3gYjycq|ssO4{WHTS)^TUz1ahPTnoNx2{CaasIMg^>JDU$zlNmakx^(!1i->!~P zS{NM#-zctRP`p%$0z7=#v9@OBNn27DmxqsWzLq z)vZKY?luhOzG6Aix+u!k{M8M>J*&rjcy-ao&rRxiN4tRs>yneIxjlW92El(n zYak77W^9u+K5AWG`g|T@H{Yy%BpDy_c-H$#+^Ucf6J&?*0G29C7t1v7bt0!V87!IK zPTo7_^%+BI$@F)SBklqf__+FBJ!I&8?#D$yL}?bHg`KbNrR41}#M$NC^btHbQicO5 zgBry3_aR5JT88?W-_`&2bRCGoKw=BfT2og@Ho|-K$rT#b&X(y5x$FIK2jd(KJMRcD zy7?BEPPv86w-+BzS*oHI!~;=L;8FRm48wlEuQ!B)gN;dwd?UlRUv?pB)_V4E0vr_DMk=Pg23prmdcXM8+07mjzO!wuNiDVS{c=K=IjG}g%tmwLn4_dRQNq;h+IHQ`!ri$Y)Nm;!*BJ6TV&@T!IZ|Cfeb5vwpa6stisqM;&iFnX%yE z43g6cx0jNVwm6J|8EoT~!%71z5E^=Q#?m{sYsRKiH4c6@<+mYjl*%lHx@Ww1Otvmc zB`#xr_yHmI@wSG@=2AkqTtX|KyQMRgT~oTQ(){X38;tS3e^}+pduH}u*DZyO|6X|- z-#ha`7SF*ee)X>WZ2NjHxPr#x>6Nc%^?c)lHDHT%hlsn%xgdyOFZ^1w{Ydxa)=||q zjN#)Nm`&Ko8sPK1eU!_#BDMN56+Kt0h8g5xBIr6Pn#QG?m?I6xE`+}dU8mQCGRA@0 zw2CGQq78wV94f6_OT?k=1i5&t6?$$z6#t<6jpc*^&A7qWQ;@Ng1B|2CWaIDrW8>)S z)uiaw)pw&#Qt0cHU=sgR;!4ME@^!AUL8Y!QKaL>~pbx6J{j_O?ftPzw)2IE?%4oyx zBVxp>ANXz$BvQw2Z|dYNA0T%EMoLInQFi&5V2trt8TfK1PO+4zkE{r0ieX82~H9HWLA$40Ly|tFH zD`CT(zDU9{#a2u#xZd^w#8SwYl>B8BA$p+`@4!+=v?u}E>=&e zdkzuje^`426z*`nO&Kx8U@GK;4=1>gQ$TbDk*4h8&tX28G^JA$zA7kM9`#lztUeC0+H35ks4!((~E%zM;;cX+0^AdPt|SQxSz* z1RnF%e&~bm@9YpL58c#iWpXu_XD7&8C&c%iGyPwy1=yr-o`VXYTH0{pO?FVwO;#3t z_*7YcRMo7ykLmvGF4yJH}ptW$mT|0>TexssJ}8x88p15+g?$;=t(nCTA0#2~M9c^#dNG z0(Oveue#(bPl}Awf)HT2F-gvbLEl_8YUb5(s9xrlIVB8v_)$Ash(}mDe@)WGQ;Gv&k6-GX zXZs~HN(3NpPz0Qbg!VP`EjFQ<_#1YL5sxtrZ0V_(pHrWQ7_mjjB1_Bmn41pFwF;C{ z$wm_%o^P5_G&v3?^>WScFlmj(Nh=vnHzARtshZC($y~1Kb1TCT>HaSit5=!9l!BmtaM3_S?Z%q#waZV&tODmj+t2k>+x#lTj%1VaL{k{Mo_p5Zjr)(CGp4_FS~7`W8D-9Gd&p9s+yOL8R1V077ucLmu;a?`I{d zqV5&4<>sG1%gM-xLfVaaA-<*oBaY*i6?-2<&!PafvJC+{u5w_`M-_=|P)i}9!wLes zX&w_E(;)80E2s@Nq&gi2{%x1O!|&9{sagK9JeW(T{x#LJMSv_)D6Pc|z<=_6YppnR zv-u0XBfJpY>JLs})NM7s(ku@S2lFW3_0*DkJbmrLpP64KS&RCQQ@(`PGo@ZDv^xe(q~p zUdcU!P_c0BKUYNCWwp>L(y*ZPWm5x^TY{lgvZ*Pm^!DnKc(RQnxGRM#>(#-An@#~| z5%m7u=lZI`^*H&a;>qyYgSIWfHEOA$L7P^$QlbdOQ#$XsU{NcnLA?(cVp7~EE5!^D z#^x-Xo{P@m&HJb?n_?e}zUWwGHi9c4ZM5U;1l_FYOWA0;M8!=Tpw+7KVo1r3f|0q) z5#p_$y?Eqfj=4v4(q z1KWIX0e&@CSLfmhDXs$lt*{*HKXU+DU=6P8Jy#*>qQmii&dY6aIkV9g@@yQRWd+;2 zJgNge3Dkn;1#e?I*l&sC@XpL>IC?HSt!rgoTB`2jNV6}!au6P!NUPsUXK}=7Ae|vZ z@)CD;W4ofZ9|)Kz3_Y~(oXU>EQrqbGzqvJGIgPLr0CSzWH^*48(XSBSB^)r$m6FsR@>-mZ9Y`o8`Ifp1qb2HJ-5C)C zJ_wcz-aeGBgZ94*=PWLP)X?WxFjgYwM>d@6L#WytybU-yxyu~W5? zSj3(gQ>~VT#@o+NaL?oh-u3+YsuFPte>oulFzv3r)(}y@5HEOiPR#{c1N?lQ&g>vF z!e7*vRhw$cCHB{1K2=ZzuC~)!1AR1TfdUKZ+i&$MaCjzxXrGSsDTIioE{v zn@JiII z39P-Q$%840KmDTr{yFxITZPHPuN^(kMp@ZvwtvD-xz)$L_3Krp>Hr)djsd$Df3C|d zjqD%2s=u@WbGZu@pD$IV;rbOf>z5xSQ*^m0Am4?E<5SvxbfWcBC0pIZ?I@5pS&^#e z65OJt3Nz=IQ-AzO5U*zXOt!hbMABpO>v8mRI;5HUyl?=$uE-nFXAITBCk{S*phRks z!XN4Lfxb*tg8|Y$QLV6Jssk1s^<6=KGPDr_P)Ixc_UzXI+&F#zT;umRJMZSDnvI`j z>*uvC6_5iKF%jf}{&)FEDWF)U`=`WV2jI>ct@aA>>FfcYIMEcFQtd5kmudX%X1C;X zCw}P;hz?hf^9?`y8S)i<-5etsHS1FM%7#nyqi*Y!($jL5wPzaYGi12P%mI@jz>sir zf}%gm)gK4Tc*ksgX$BRHx=A;;#%jdu*7Em}JJf8|2Jo%$e}H=;adUWqc}(o-B}$w~ zcbT54kPBKlq=7on(D6G+oc!4=Q31nlj~lPv+`QrPP0;%3{{Z3FUc)n~brn;GIl&hi z;8<+CR_nIq-Od?2==rC=Y`l97yI!b!DUM+A0Ijmg|J3Qbim(*0IovxWo(DSzU6?iF zR9gZq|4jbAsUQ4SklEQ7ASrY=GBrq5tim;Mzb>8c-%@fq#r?ShyL}-4qN}H*Fgjh! zZ@QkJOs&)}R8X2({VY!c-r*Nh?7bJ@LlQP*;&pYI)$;9O6Inm2*K%3mm6xxP`rmCNvA=X%?k7F6CK z3$f639&~|>;cd3z&ndH+_YtgmXx{qMO{!R1ve!7YvVJDeVQx2924MR@^E`x9cyBox zpji3u+}}f;{PqxIdhy^x!7s}6YjX0o{hsAAQ?vF6o3_;NXK&Kpb3>!W>ii!4ea!*$ zZi-_VzCM=wS{VaKacTEX4DOmtk@WzMbE8JtG!+Z14Vrt zJ}f{Ad83I0$>j1?NE#?<_zB?1;Qjd8t+Cr|U?6QZIJ;gKUeKw{+SN7w*MF}@IFnqF zRE>*+_5mJaB{T=MOnry;j?gY3%`xQuapbKKS(+Z#;3{%1GZw`KD#oJau4$~UctQ0+ z+DvNn2-m(m9_`rZPt06A{eRR5X-Qll4nHHYTqV&SLCc_R!~Fp2mf>O?eJ5~g{(dkz zj%(R6X_h=Ui*ROZg?pE-s%*U~_@atvgf4j*)_s;{2n*$mii~*OH6Jj@de9 zHt~wiK{Cw@v>h7Cuvu6(q_az~uo3yDU1L8%)%w2PlFJ@3grj1c8q^t}+PTPvNx^Ne z$kC`yd(cLgG6$NLCq|#B2xl2*tHVArEIczI$`8&QiEbx?wnhxZjN~}xl1(k=YWxmN z>7Ox;3AJmFyAD-N(7HF`Jux9fKK*i$1}``)`0x=soe%5fogETG)+OA3MlK8<%H$lA z9iHZ*AvBp7@91V2i=PaSsyr|LV|ANRXH+&n{7}*YP=85dob%QA6ywvZ_a;5 z(X)dD2bB8c`M8pYP8)v)35lb-CRqeV5gtfq9m^;dWh{L$*v7))F(=^8VmLOKJuuNv z9Rgio$N+s0F-n&|Wl+~k3=V*Dh#J(~q$I~t=LM#@qm9Hn#ezy3w?ARtLAk0OxjQBY z)xRm`z_wwLuC{>4KaOa5E|bO1?Qussft^_NXRd(#+riq|Fc*<6+7;#-d~jjkVBn`}u~}5^($w7xnRVsmbpt zYj3Esjj*@^`o?T%%-~Q12q?H2E}!#{wLvo%Y;iy99`^N6AGVRnsN&y1v6^rk`0cKtD~c@c5(Ty{;bD9lHKFLW2&y<_*O@6Qd0HS2L$j>`{j}~q> zat7H(sYqg#{gIDf(0{&LF9TbF6Dd}(nM{7EJ~9qMpxtI!IS#H>gDwF;dk&igz8fJy zU;+BOsiNMb5^-U?nDTeI;vMX*{Ic}e^jcUtA~*uOA|v*3;ileR+T+%KB% zmi3o1L!FyCD9j#Rv`^n6y-?V$sY%Y1I~$^h8Z;Y_yxqf^p~$8ID*{6Xtws3n9ylPk z*irlrLu&9FdTbqP*4`j{^H*O`9(_U+|4Yv}5al+kcj`((5r(@RupcSVdx$_)unKVM zcgZ(>X3ApV_%1W_sLc0yO)_Z%J*1woa_!DZT=XuV@Nv)gzH$nX`yIUnPNDpU{cx1_ zbr5Q$`z57DEgZ{*`9``lX8K#`qGTKmk5ld*%J~XXp>pT1V%kg?knP0CH0pmz8OR-d-OdXZMmw{D*Hrbs~XnUZstfW` z)ugKNUEstE7!9Dtxzg@FBsOupaWnLuf>%oXF3(nE*1K8Ur@%5Bf8xZ{WrmSl*es6h zukmVl!{sq~W!Q9TOSC&ysM+mgzRYhonSd3K(a^c`A(xSnp2CY+DG%aXp=+$fb2V~$ zRrVThHTpI%H^rqpADOudPkL*<0dirizix+m3HD_{E>ihhO{` zg4Lecjk|ahKq{G+vM{pu4)0Tlmg?ea3J@!umPN58c6Oyc_!@FMP@SZBDOn1ubHGv5 z=2t?(N5>9cEz4cN-&f~OR8?1XyuD#oF{$m@{Aw+Wp6b9GEc5q#z^mWNcvu;Jz`jPt zk{Z2g^%w)Du&CBm;?-XVs0k^@_aj{Oi#b*w^t^vyC6@}-q;fpFy>OSPn3pL{ zrD`{ZX8b$*t?QK;Bsn$HvSb@YM`QkWuTEOG6RXPvC_k!Ku8fvl=Kypy`^48RF=#_; z<%7TLRU33v0kSWJ-Tq5*!J)gHZenM)B)_FhbxrEiqgf8Uhz}hL&{CU?2j{DNm_CrH zkcYtS{{ec-kR?%#>LqFO=L~;i+0|Qt@*f2sC?{r3&4@J56uo{xIUOp7v8RVP#ST=3i6tp5G&K-%Cn9tq+TSR{61agat#rmt04S>>^&t$ z3x&6U>Wi6Lqe!+CnxfAd)bw}$13w*x@wUsAN^DAlY#?Z2lk_OTB>edpn2mw>>YHsC zYnfO?f0Fxf2Quz_i;fs<9c%c#Ypmvg2=~W*)A#!{u@OjV(5Ua};S|^plG1#5f_eWn)m8d#&hO59Fx;cW|U{dq{F^ztokm!Y%()PW)+(Jo`gr{z`aA*3oSO+UHlfy?&@B1&Fsoe@9;+ zms-X<`!M5dsAto1omR8~Y<-1917bj###5l-b|UO(OGtvTn+B^)H}#u~z0SfYm~D=8 zbc59{N-bt?e1C8&6$&b?3JVF{+j?BSsC#J@GOrwM24CCuW}>7qEbKOp6-4J+E)E)u z+)CK=Qe{BEmbCT`m;^X~qKn0(*K`8!OKTZ9Wg798Y>NsZ-jM~_!0Bn;*SB%p(c8UX zp9^_43E)gkB0`~DmF_{#Ez=A&Cwlz$Ws?yIDiF!RR*)t0-IagS&zB^Mj^3?5u3sM! zgi20~Dy|cn#&1|{NQ?M~Hh172bDD|9>Zi_^-R_4p(ExMjYUb)&1>?k?v9aa9uKgdt z`(Jl2bVpsfo!#@&95J?Voj+(ovUL4}+U=`@OZE(r@+!_1z{CmgVc(QS{_@5@FiOlR z>EUI+qCBI2MGj6U97}=dl5^#e00RNeSMfMm1rcaIo^}-fW``LklEeDhK3W&gu8NxT z_DtS8?qJhI($JeJK4gXNpCLgS?@$sUHKyZpah75Zl>CAOqu^9FVR+{fJ5B4JKaSZJ zHScu*l$YBC1=(I4Td;MFN%6Qy=Y~7WO(3xw#spK^S}{^`i(iu<&YgpJ@;N=-?)QXI z5HI{k-sDGXw|5NS_o{b1`p;Ad8+mCA$-td~l*HRjQE+UuvcgTUUvZnlenMG3FSV7S zEwf#d$2n$Lf4Uho5MyX23o}uOmODccP!mg9!5e+D`9)?5`0ER2d{RpG={jqGDwN(iGG{@HAc1N`YNLz_ht zo}Ymtb0wO4>TV**kr)>?rS5Ul)TR;G(bo3qu-W%i8vo29KI}tvMmR39J z6cL^0eE7YfK^f9jjvKqmf3TGyW+vq*Tv7I(5AFT^RfW2rNnB_==hVXO_>*FI7i6vg z_rW+?EVxoF^35;~2o~wuJ0sR4eudMT!V66T9p)WU=+u$hme!l#LCxu?90 zicDt0v)DH@$vjmLUX|Yd8nUMjK+{MfQDK(_O>BoHn3h0)Z93wU>J{r8^Bays_r$+d zz-j2LAj%899X1Ec#lPRc^z*EugeQPIssMhSy7;yyJg&6PW$lT=l@V?W1HXiZ8iSaa zSM-pWC=>d^gCtlWDbCuv!ie>;%)2kaZ;)t1a{$UcvIc*>53O8v!^SW&eNVJYP^}1! z8wiV9O5|$f0iDmzGFBPWfxz!O7avE1INdUnrAR+9ra^3c-{_0+g6o_w_PZz=fsOHYVt z*WQ7$!+4f@iZ_E*dFt*H&lzie9$QbhcPgs3zjV>dFJFG~o=(#&3LmsKW6*91UaTKq z;ZNX|pFlSrMtykbjW-Iiao8IzIcE57`Q~8;>h?one@3_0FnU8kVN@au=c7K?@W>~M zl?sL|Oypho1o(B>P8zg$l_n^+CqXD*s1#po3Rjr#Rv1$EK0raMZB3Sr6H zCmfa8BJTh@ZX=f7J4vi?2b(u!hUoCgwI9HnbPnzJ+{3)OLBUeE!*}9Jg$I@Q1FAlb z5^dD#y4q&dud^!?fXe-|&mFnEY3YFto!GBszY=o<50bqow;zUI4%3KvV+64%_GkGI zLlS8DCP@4u(|5yqyc9R4c*N5zv~5>*T^lM*ams9OEB}4kFhy2Kzz9c7#D#SUv)f$1 zeLY`<-n;pYA<$MOKH*BBvoLCbr|d7*fWd(;3&GFyeewK%0PE!v8k`Hd>=z_=kh2J6 z$=m67@MKlai~_9C%w0MCa`;3r1y)4|wk|yOA6SN#!kfFYO%7@c;#g2z;P5NzwVVIE z$ACrDTAT`|y|8OU!pH*k?3Q!A$ReqajarJGb60t3iYSbS*k(`v`#fHVj;;{Y6L<>w zcOhzQ8K@p7iB0a(*eT?wVVYKWG5dE$-nA6~0eG{eY;q@06QFG}De}$YyV2@0Z^t7~ zuRjfoL$*87zC5@sV}@Tz_~F+qcBmS-++<5ToBv2E&kQ07Qv{#O$th(tE zw^yf?HGx6~bza=PvM&eM#*`b_FRwnRbKao`3n4fnrORN#)Jn?FiwEZ#mYvoEsY$OM zG@R1)S$bIBweK482^_;zmBdLBPo>4*A!7)h>Qgg-%dFcXt{=Z9*Sl5OkcsHSXxYMe z#Im6=0Q*m#l>O7HbT`e@Yhi;YPP*gZ(B%0KFM$IPb=`O3Z#OUOCN{R8qrC7m%l`<02n$|(A)H#K5fqmB-xy=4>9x~wEa@)U^0g1 zXhD?C4lxnBw-U`;GR7lU%ZW)s6uhv+2xP+Uzi->u3c!V8&=*_n;Vz~rte5gddxxn= zHy~*sEnXdJ`KO(okM1pfRoe5~D;-zWN#Z1}mM|*8e$)K6O z5HUfTXQ0$usA%t=&P)Cb^OGioPql<`*J{2{_oAx4-?~8O*I8+!EsJPXjQ#36XI>z+ zj~F2$5dLjQM@BnpO2X?b2|X1goIyJ#qbDglM(a`fN3^mxhbO`tcf)}`#*U%&_l=G$ z$#)9M69=X}VdtrVwD%Q~l*_{`Mjq1;wY94BGPBb@ziDODa470}l; zN}mr+WyNo!@XqW3?q8sJJEGYR<7&HTQ#ok$Z(L>}CjD>2jwS)YpMgba*PX6#m#A?| z(7@bg{6eE@)pd}({mu&(_id2aOi#UOT%pHSd+hBhDfeb4jby*oXbu|k(uGN_akvTC zmlh?+EW$5#78V`-Ov6?yvN!=sQzB7IeDt3umPVXh+Vtv< zW6eC}_#tJz&Y*UNWwJ_q}li8pI8W+QN7lv$N;@>iniQli~dx=`A-D@ zP22nVE(*F$BPU|wbXp@d&j6LxXtOWnM>|mtc)&c64jcS=%xpZS(WGQHA|*4_cX)xv zQpt69v-H}8ZpAMf=2FQQC88#HAvQ)kkJ*7EDTb%g9-h#vF7Z;yaNnUEPmo3cRZ()? z5Uv=dLHlBrkr9oxrmxpCU6oU$;3cm?;bY&lds%RetvQd~DFg?-18MePG9HBF1<1Fi z>0^`8B0%oSMDuwwyLRBJaYTsvXpSiIG(vU&O!CASwv?2l*9@ANWb=K2|B~m;~ z!ATn^oW(GhV@P!EdM8i0)zP?&l8^v-OxLiC59vbWBEydzY`ht=vHQ-e%H<5qzvKr7d236fjYf@HztzkN)@AOmP&@(x?S(ndj z1MiA6#DCj>4@ziRqtQM3{hHeAWq*7yplCyo^syS;sTP`OOtMbd51bs=xfJT;Rnone zCH;zNoigsb$H5fyibPk=Mg`?LAvH;TWFxD7gYBQ9e>LLCsi;CR_k3=VIB?cNDZT4g zrB0fBPXDoJo;sduf-&@uv_L`?(o+F@JcYmsBTM_Bq3&c5DhaM(Fvy4d0|m8j>uKcK z%S|`}NUGQcplOqzV3rR0M|8MCv`{oW);6kzBy-2|NY;{Wk_iLDFHWVr;FT|b$R)Es z{c~tum7w2ul4bqD-s)ps7Jc>G!|RK=JVOS9UA;uj65vC^#-7~z?Cpko+3RC2Ad5E6dphHuw5d9(_cv zw@oYmpyji_35?&3lkmaT=d`0vNYKmlKcabqn0KE`5|ep6qeL`9B0mVcH)Jn1g+LFU zt*cWSDz&L?Cse-^N9iU0fV(lR+`>0qyPO&@4Qy_0IMYGMcH%OPZkTj|lMJdBbd%kM zm3@mZSKTqoxU8;r=xr?aGO#dw)^DjXmPU-fP&lal<1MZK8snIFqTHANT@yu$1DJaX zZ3O?Z-NMoeu$^w5gs*MRe9$bOLPEYTmBDkhITKWuQvFI6b7;qc)oRaqc_S)RUGFJeD{*SxAHV*boDa`15B+xv+ER?q7$rL#J=L&NZ zd2*0_e_7*&8(genOa>y|_G*cY1i5!|c!(5Uv@c1JflZU2jIUxo-di*bD4Ga-R{CPX z+dm!9f*-WDZMECe9pnH8%Xfz6m)E5-8@35Y5v!)KU{OW8>7vxtv`I_7b=-Yjf+Fis zz)xQmb}>QP&iVG|-yUQo+6~h1bgC7Kb<@hASeTXz8}<)TF8>FNKy$yJz)*g@@{jmy zEezHi5zU-K4Vi@omM-@V3+=<{Btm9L$XDaU$&L#M7sK0Y-^Y#%NikI|-#RnR?Q$^J zSW++)ZTFZ&sFVv@j6O%J%f}Q{BG7KcHM#7D@jFF9Dv@J7{P4=Bi7o@$Z|yx27##)3 z0AZo)W!%D083lnTMRXT^ttL8@N;buYn{3iAH-ZM$qgO%r{G(JsTAq}I%{k- z-=#Mi3#}&W*{wcc?P7>*Q4Zs|sGkQa@J$NoQjMC9z6HveWriDO*}5{%O}93(fl!i< zZq>ZUGbjxO1|lNyrPHKtX-j}dNS(_lBA~XR?{)VAz9P_7XCD6m?;+tBi)r3{mwUpr zH%%XY_mr4u07VqzX`^5N09%Ad0VD(JbNpg~*+uX*q>jIne{dA#H%i^9{ck6>P(2uA zwr$=rq9;Y`yztb<(3Fd|&zy=kNA4V_vrdprPsG>e@Kr@RGcoH8l-;? z_Yi_I%7XOpJ`Vm&2*Auoy8cn_?gW)=QRI;IA?Y$Ig88s@r~d$5KI1)-mT{mY(kIKa z^>L)EIjSBvX)nLdYmZG@ubMXR&>gwMc|h;L=Kb{EO0S_r2~DxRdA zr3h6wL7PBOx0-84UgK!xcldrn6!;mR?RX^eqL`88*-Z%RSBjh;ofT!Re@rJZAz&> zncZBp5{7^#-#4l%lFjF;U;rhl7E(HW_sy24U7NriF3;~lfwCgip!%D?Zt>OSFj=yG z?EGfTWF49qlxhWpf2|V`*Rp`aVij(;u3W851X!pP@RIYz?f^IycvH}Dy1SOlMGyf3 zEQo~VUtAJM#Syz%v@C>Spu$wFR0W$0RM4MO1XCbl3t+-SZ=1>kQYwKx1n`G@{Z&1n z*ur|T>eAidRoDokjXs{dHravn)D0L=Y?9M$G`X&zt=Q=T3M0DfQ#JtMM%9`Iglndm zHmaa#tEJJozEM9xor)<0x{QkPKQgx&Ed@nF=#KrS@g3cnmV$-wMuLO9n-XGB2ehEW zert~M>CR9DTUFD)tE69~n6{)=m20#vrQZxYnu;Jcqv8kh99*T4{k(-9A+^38D?^NW%AthugfI;d3VS4uvsgwW!7A>Ktn^E@Q zr)Ua7AgI5QxOQ6AU{n*DO*w(=NCwnaue7uE$V+_))e!>h+SOkWml8=r2~;A1TKBys z0GLD-*xE9bw_Co)5gLu$pKDD{HMz^3oiQ~^+q6JK?=W$R6)aW;(^2ifbihltx<~SR z_wMkL(?CX660fS?rc}tO3Lqebl4%ifj|FN(G_z$#e16ykZqmZWBezNv_lRQ`ys$Oh z@tP0C$pdn=r8W$Cy-_SM@nj(ls-lF9bWBK900SFSL9}Q3m^*Tn8%-@D?Wkbv)NBPq zLweicKHzJ-0uG3DnnCvNV&UjkwG>~hZ#X6O!_ok&ZA*6)2v74dY2dQBI)>D-9?6Yz z^%6n~>7#L_Q&`IbQN1Z;HLEb=h~-7K9x{&7;;}@cg1r^tuehR!&<$OUUdn9+c5q?k z1R#Q;O-@U{-&a{D5QAfHRUkU%%$!xQ#1&Wld9CDN1yT{CUJMknb1l$Qa0Y?cU56XD z53{=oLNe)sw{tGfk>#$~i*cArBi?Nb2*arbGM^AP3vS}wM&k1e8mS^7Xd2z7YpCo+ zce~TnBa_}y6AFY>Sevn23c{MfX+j3|yPmfch5bVw3)_2JvR@?G+_)hXbzZa&hcL`` zRa1tPeqFCjiVTo+&;=~+fidBJsH_k$qh_DnC~}7?RS2EJtE|&1^H4;TMWB%@X^%@o zO|TtAtkM#9EU`odxJk6`2W&DzGgStS5jJq_);B`#_szC%YbUs)gll67xF|_a!%(3O zyHYc5=K0&DDGW&W9fBN9DiWvo>53jj1O*6G*%5cKvlX@rsi24|Y5aQL87cCti?+}Z zj6tOQ+A)Sw>ZMwdSh|W~J`EQF{dGVU?D?ZP{?M!_fa+E)WwX)iCrXv^iFLVCeZbyY zC^0bxJd#{U(3*507n52KAFd=Q*)bl*EFDD?Vi@&e6(k!%sC19P-yL3wB|W0L)4P9fC>y)muYuQCQ&CtN zN;WRH@xvA1_M^w-dD)K97*Vd27TG9WxCa5P2ShcXt2o03nl2H$t5jpXO&)C%5{j+b z!*#zGc(a&*AVCNn*>|>><>5^rQiMww)7@tzMj|Q=+)YEi>pH;j6rxt}62a7%lqATS zBH1>cZ{{s`XjQ=7sr#)KecC;xwWYlkO*$y+nC%Xt0^DvKKb%oXBLXTwX}Wdp@wFF1 zfjvf(Xze+yM`-{CbQQW@GaCe1tGM=!Ne!W=I)XJC3+hzAB6qOHAq26}eWLNxJ@a@S zipB~l7%6D;`NT`kGkZNGV#!_pZK!f_(zaiT7+;~33_J!cI!4H&{XYwZXe}U$)u&Ax ze>;sED-Z)%Xj$zoGBRaTU=oW7y)5YC*6&&wx}eHD#2vN>s=#yzkrC0nOSaTd&{402 zZYjB3a)h+C-41Kd7f4BIBO++tviqW-3_2FUy)F580SNXLSAAk^cT5B=ngW74XhM2_ z8QO(SKwg1I&Tq|3vct3QUL!`Tku}Jvbik?ur|~%8IAQ^oL@oKNvBlcJ=@*p}@=ks} zFuF*Bqvo#G)=-8a5zzrFHnj6hP2_5RLn*Urf)(U@i_s{DVE{%QX!HCgF?1k>Xp|b8 zLesJEH;j-a8>$%YFCd)OHVhg7p=dJJKM(E1;l=_8<5KXi?z@a9H$!C_wE4;?^SF%) zKmZ03eY>YrOxq7C@RA^i`N1`I;_gAEgygEHPrByu5II_Cq(gKtNshiWMk4Ohi@7hi zAv+}|g3!`?{{X>^8i=3?v68FLE#rj{Fguh3jV|5#xbpTOEDgHunG1+^JBy$_1=MW$ z=fu+3z?2q%ywb0o@#;JZL<4-*#&72y;dG6q2!l#!{_|g?(hE~%PQ$?-*W1jv)dCVb z+J{D+_1(?H=#4;v)bQ|Pes9zyri7E$rPYqN^kytIwbX9+)L^+wC2VP_!YIWCVmZw~ z6^SU;_AE0_E0Ut!BDCRq&yER1jRRB=;TZ7VBn;9;2fshuFWZbyP*Ft@r)Bc^ZyRw+ zVD5d`YH+)IjTsX2^bIy6qu}CUsRIC!U*~h=sfYKvQ4bgR9dWz%;?W5WfD_A7?SI5I zimd=Z)C;9fG~eXjoCP{fBMHK~jNYNHxole<0-9|0T1-g=xJX86J!#X(<)icurPE$k zU$HI`r%*_XZh_R^&Z(?$Gm^L;R{P04_)Ha-f{84WKkrzOK&KENkH_Ei;m{7ZSSKiN z_`nvaQUhJO0bNrOqSnGB{dNJ9nwQ{@gUl3=Lf&Klk2i47vh>P}H1} zX0;|Q{@)Ztr%D>wLhA!mhrr2p-u2nfaF}Wqjh2a1)c*iXGNz14EJS2G<>#Ja0$2$E zB}={EZnR>rU|K15izO%b{pGVrM2ZLs{z>rjS<~2+qd*Rz9)CNVa&^5ypgmgi==^na zemE%_yq^ShsY>G$VE_eR8~35y2_l_P2!pHMg?}!E!CALJJ7~vOMed~S=CtH6?&fJ%Un~>*aH{93N3nXq<;H}a!X__ANxw{jg^`rfCcJ#I?JN#TyZ6%_R($J0Gj{N(?fP)b7y60s2 z8r8(qNi9otUHU+9BrB#+fEYW}!&2Z(7$xTAetzBIn8GwdOV4@hHO>}_It8o&w`JH2 z)*5Lg8t=+gGz+ORqaIY0R;O$37@B*5aqw3{9zzBy0BC6-1HjQN<}e8wRVYJYy(d4; z3c&AmQ^~n|{{RzaQ1xMK){t2Z{7q{B^|Pu~7PSS}wAKMGmZ4c@!{(1P7?teIqF*`% zfSX)PBrP^GYz5U9e;F}2rKPgAf=euySC|Z;3XskIjcvecD=IZjUC{E6Y3!hvvxJE) zJ2^7K-y{e=POO^NikxwTwj?P8O$XbrhwxkYiGdUrbO5*02z1CAiE8awEY=WEbXVfe zBc{i}!l;z0pG1K22@W|ar;4FXNwxVu#!UfNNDhjlupO}-(*OesiUD}bL1`PK%!<{l z7$p*cRblz=Cs81RiuI&4KoP>L@DdmUR|okebYMOCX($-3J^VZd!clqQ%Zk9*y%%~a1g`4G zcwRa+o69m-;a3q$NmUN-Lu+szL89A4MLE9jlLMEEP-1J~mtK2Y}0W?_g=F#iX2o5X@Ts+$)_rI-hR z5^(5r9lNa(ml%pW0HCUx(C=f?69TjXR@p0|4eQJeLh+zPCgQ_$W}Fn+skcReqy-^a zdNe&{?GL!y2=iF#Gv0sDt4$<9E<&D(hJ^r(QdEegYHw<=3?Ep=FH4Bl(YP1#My0S+ z5)~#o#t|x15~GFZZDd-3SR%-=af+HeFlO4Gn5{SQaJUPMl2oxxHfH|-zA$2G3Y`$d zcC(f&lDl07Ihjh{3aqATiJQ8LuBs3Pi6b$YM9~vgv3~`VNsdRQwRX*sbaZISPjN)r zRK!Hr8;6(Sy`GivI}!kF#0gqRT>x7I8>UQF?)7XcP>kI3iFdpUgJBRKuScg_rx1E< zn#5^*PNx3=Vq)*|RTxsvfo|@LiBTnlF2o5RO8)>Gm@V+ZBeJ^zU*2n&3*9KN2{td~ z5_)9)^aHd;H0TETu{D8-kfGU92-y46_$C1PsAP0e5#OLQ8!Z$dHX}!tSsyM+S%Cn7 zVnAon8>r=#a3Z3`bQo>ZajW_f9SjcDhZmn}V!J{>YD08poPgFS5U)wKh%;YtSW!*2 z0XZj%D9YhqXl|mDc8@0g=cy^;Dp@1Wyr}CMpFlt2SyBLOjy6d&u%UIJE}|Ba;2C*I zglGq1BYVZw+C}cPs?GKLCsPANCQvB;5YzVlZyvoXA_=ICIO*+4r$E|7U4<%#L#T+E zD!COQO}!iy{tgBuCyoMIC~`v-7i<){R9#fzj6wpN&PVa3*qmtLC5ZEEFfU+F@#eh`+zzVO8*=N_0$_zn4LGP}H zClgsKB1%ee3-|c0h~P&NsiFZ!`13{7-msmDiUzf3wO!0lp_*j@xx3_pqhC@XNkWC$ zTSY=8+vA2I!C9dPJa41v;Em0IGH`)8FuoZnf4^PZg*5`|DphnRA8D^C ztbD|lp-LX~Vw!mH<+s;Z+BRE3wrXN~;L9yaQ!@PPo>yZxAfwyGgh@YQ^HhcTQ<7S%1% zYTo_L?f{?#77Xnoi!)?_DuB&P{hRJEh=2u@JNI57ckV(4C>rfcgnDa6Cd!ylrkJrqtq+5Z3pz~$q&h+p3)`TK!s6udD5 zo!0O8akg}n#qQ^v-|}Ze$f2;OzCYLDrzINVZJ!n4vAB8B}2*y=dRep-KlN9-<0( z%V~neMLX5HP9DEL_X{YaN~loKU!QfY_W*OdP>npdpFr{F$7cZORf5n+UP2n2)nlz^2u^p#5ySrI{lQzi>Qj@%DVwpk|6=GZB8dG}r!D*C4ZjnVt{cv1r zfU^N<5~b7m9?`>cv;c+cPKqh&HT*jl;g?3haXN<#bwrQh#p;o8A zHFEU=EhzLo6Mu4hLTW&VAmCKQ7!C!$dv8*eDDn02O6%gPq7PxJQt zw1D9aE3|KVdv1s|!5%fENLs=1TRnGgW`V6c*vgwji+?wT1(B!_I=dZRWc(}!wB1!v z-*wHVDQIOBfFRvXbx+>lF~=byl#z@B=@wNMpbVB(cYlRu{{U3Vka4qOf(Yon?AAy$ z4NXA+A+h}4+=HVQ<3c?aq4_hyCO1LYyERCS^Ij5zbpb+FDxy)MdN+3&Cy)lLkMmRB z=(6L6l^{i1B&TopM<_9!0j)8bY5HsD6qFK)3+owIUT8StL0}QnySUw&gIO?`PzI`L zQg}r7+pS~&07!zM*FY`0w{FS2h!qt>EI}JhTbH~$4R#An1U&D}+@%P?F9q72Sh}Me zYHV0%fb=fLUzYY`W>aVps)&|dJ9%}ANUAX`0-2{s>D9So(`-`OY@UdnzqzEj>_9M3 zt?2XYa7^EV+Dg(ZrJjWDp?%=rKzd4a-;S^@Y)P{0?%Jw;k(iuHwgqTV>-5RJ+HM7; zeJu0+Aj%T)j%Y(-Lhi;}_6Y0i{FM82|NOSN>#jDi(q`s)KC zN~ad>geV%{5O+5x^>Ra|i#AfWHE>ZPBLRvZPHOn*^^%e9j=4ukv!7z>H$kkTh$^BK z>ZaA}F_%uPZFB*nK&vn`2?0sN8o+5nX}xjq-wn zR{cdoms7V2d!eEs)vAWH?aIkunr0~z)fGMyAGpe$&{pCiaS zGE7neDL*Q{*x`S>0RjZDu_vw}eQU6y8l?c+Zkz)*coB2}`2m-`!71S^sN(O6tD};L zWnB*iG6!`#P2rS~Woqwduk>REBnXQ^4Lmm2UB)hZRjZZJTF6;&ho{QRO^JfxLs=K1 zj({o*MbA7UQ*zc2Si6`C=c4oi#c~F$mO3ENSS3jk^zC`L3gVOCTsogYJkm z-33z7agxB)U+(DEZG9ISDJZ-Uu)dmo^9~O%U{te_g25xXY51jm zI?93rnm?w~?Nat()ubi^gEmFgeVL`8D=L9$TXlH6xXB&0g4Tjm4soN&fV=!MD68n( zP{O9w77mbzQ^N0eC4mD|bnR^}jjMWK^PXhDF5tF&jdLcNl$2dH<8F}qtRmcS0f-ia zA}-@~?idUxVL~aYusWjRy77+%mI6KCsE3XPx~$M(R6!=jnZGR!we)uyhe5<;qjUpZ z{P-lWIgPVTqwAoi)fdc3p0pq#sRd29TlnOm6r-lF1e!#4d56oJ*wIN;?z{~qQfQa~ z`3Tc@W|IDljW#6_xM(%Dj2nz4nq^6S>`HR;*Q}8a;xtw!lSLw9tt^WiqX<2A)8+t< zK#?nJS}bbUjzec1-{IQ-03`W5T%xG~i%kp~KgZ*jX1Emy9@@Pi{57{2CL-WEc9Fae z`>TLIMHy-^4P6z!YT$@Xs--N}z7gHZLRx{Kfwd@3m*yom>^1C1><=`ij;?@4RTAj; zrE*=}#K4oLD@q3ECOIi338Ykbmau*6hDxxcgWDBbBcmk~B|xF-joYcl0SGdYrHC6eR<*|E7x=h2>&BpN)-zgHWZv+m!n%vSKeSrE z16Y&R;71! zT|Cs;Fe!9A6G*6Ur#|p9M?41++6wLqy~h9mL5M-61M1#?6C#TQGI}uxCf#4+7%`nS z0wQiGZ=L%&tUy*P09%^>01VzC4T8I@HZ7;~3$VsSbreF@)3x5Y4jDR+;=C2Wt>XRZ zNYT+%0R&m4ud{tOjS!@w6E!0R-}vTM(iVmgkyv1^0u*5p(Zt@Fk-?DwKn4*Nvy@5h zEigofa| zW&{RFL_~-N@AHWraur^kJ71yp&f&XI^Xpt_1xpC;z56}o zBDta>s#uja)~2WK0I?IlDO92)K5k5H(L|Y12ZXKuXUUCEq9}rzkaN&>e7){b1{&20tpjx_7JI9V zjRX%tAXR3+mKuYUIzqP6g^TXGS+Mc}VUV_jTXz|G=C_v;gs7aH=2WS*S3*9UzrWTp zrK_L{A2~nwG9e8Bg7Cf%*O(GlHB?Jh(cHvB5pAtmzj)zbI_L>MhWV}EaR|}^ghHL| zGKVN65Rss=Yj5}6<55IARPcR!zW&?*6d@q**}1znUokc*+Ngo~_c%OgBDIJ=g_kJ{ zDF9L$@AA^ebFuolG>zb$Z*=YSlNm)66hDEyKynjP?v)L0CIE80KjB{ zy^t64zsuZOqsjto+x&hwl)>Y=0UHfQI{j`DXi@65JRRZrqaQ*wuvVT1i97YiFgI6< z6&>|1zJD9%^E9qPF<2;8OlEyWj)(*J>dl(#oYDaZZ|BON-tmI6g4!jq;*v!B#<>Y= zmr!eE>WFCOKq>4~bk*OXF@vr{)-46+8~MM8Y({J(LEFa9a5_r?D+@H1cV~5Xye5h% zM1i3mpTCAQr0^As*bcY9nmo9!5-!37Kx*i2&bq;@V1R?7Ct5zK-r+?R#cX|bX7x8N z%n;EDRPETc*iFjwZUAbUY8&YU*2}Bc7AC}+CupM&-$G|nvViHL44mre{kamaA+a@M zEhp!24*(isJLC$D2Q=bTT_t5&KCZN5LAlk@@2IL z7eRkFtE>F$cL`VtLcwYSp{}gBP^!TwK?YSp|5`FtZ<RC9hyz3E92%aTM|GmmT1>6R}^9>bT-2cgS7RJ zsWW2~#>9iY9Q_^KK$5cdhfxlIb*A-*$cqM4DYt8;-s{sgD~QzEY}$~r^G<5WrI4Qs zu>rQqO-zgyg;)+Bi2l|}nA>dMN~EEeLdiC5^dng-7$QYs!rR@Kd9dmPq$Z)hZ}FJ# zQ!J<-#FQ8k+)F8l@oWY)C(jOGk8wpH2q9q)#n~N6MUZw537|Llcg$geETABet7%Q) zIJ6qnR4Zo)=!D7k#YTZBx7T(??*J;g8}tYhV7hj16ACaz0-8X77<>DSpruHKj?T3G z>H3&hEfEDZqy2xLr{oibMt5Y6TwE(}-cN zih?snp!>Pwi)~7#Du)qcBd~Y#B$WaZ6Nn+Fq9e2GVRBF+q)q}vKg7nDO;I3VXk8*a z9*!R95UiR6ELkZX+ksX<0u?E(!nPL5Yf9OLw2eiDAHD?7!6W|#t1Y#)}gSHm=M}S6Zo_JpZMFvNtDvZX>3+Ip{{kQ0zyrQ z>~Jr|I%HCSnh^!SehbLW39$?SM9Ev75*k&VOJ2nj2Hp)LwJ8B93^@MP%sKL##+ZKW zRD;=ec#v^eso9z`E7V4gKt8gfjjq?jYrd`$#xVe~XAL}g4!4U0!1A8#D?OC|*ms ziN>WIHX6|+PX7Q`7f(nfXN$IhJ|=m!tu7bkxWQMM z6ps{U%YyTaX-EJjp8ha7+>~jktI5;nds`O%5C)VM>c(PXaUr7%QAbyBF-nolplnE^ zhi2)AN}-`Z9kv#mH(YJ>1ZD%*T-EF6Xd*)aDZ$~WrYB>m{C~T`KH4rLL2}X zs?WCD+)+lLh!<))of3O=W`!Xw57>dOiA`&IxoI;-+WD~Ix4Y4VJ(U48Ai$~P1m^Jy zDOE_mBqT*P^YeHJlV?FKkw&4XO?crUh^IgrAZ#IV1D242YANNlxEQ)M3b$%>jhp?@!3kl@sEXWL$b@E$R>?kq?iN*M|a;NwQ)O2unVz9ubVgQnX5o7ilCck z-Ts+i(v+dv=t`Y-JmYY!XJ}N@W$k&-XY#61DpU=T*7{BE`@E-220OrAO1^43-VPXG zg$(3F&T|ZK0@ynm2#{-lCW58#B;UNkl9YnEWa7j9cP0S}3Q<_bFLbC&<5hGL}Ksf=f&GZKpBX0EG&-j_iC%^V1B`XlMW( zLumos!rG1krB154noql!7dKK4tU-yc)6L9?PpL+>-6yJQ%a-Cw#Ry6zNw+~d#R?Vls1K1`EddPCp&zU9XI>q zhK&G)R5?UhI(erQNV9a&dVOquqGK5Zs{*3&+DG;y^CHo7k{b~9mD#EN!yc7x_9H{4 z*-3rELm?2568est-O&A0;s}*5p+nfb!U~Wov5P@^B;tk>L@ z!=Mlvob&I_V?qaA1V_=c<^KRUf!#0&6ZteAZf`VXfe?ta+4cVbZYhlI+0ckXcm3-W2!mLSb+y*UAG^c$2GFZO zgC@28a${5>8qhk)Mf35>gg^-}YMgtf>)f!-MK-R$NvHAeGeD9^Xtpy|;jepqYj;Eu zR@K`W{{SjDipKOg~3 z29$@1JFerTtt#Az_7-*Y!MLhmDlLgZgJCi%^f2ivXm0(Byd?optqJP4^m(Z_k7Y^M zbTMB9&VA@CDBktYR_ftwl%NPL3%Hwg0_9#4ebw7kG;dC>BY~92B;{?{KqSMGQ2+%3 zihl?B@xbgfIzp9LuKdL;xTIEF5=B+BD2|Teu8!4HZ%!Xz;pHhn#W`Q|&FGsD)DodJ zA-!WVdW_o=D?@sg2m9KQnK@LUtv82(e}fATMP7jcW1@c0nli5R+fu|rF(lKqy~ezU zP)4!Zn;{>XUqz&KiUV5xs(g+p0t5wB*|$#9on6M_r7?5{h(TVT&l!rXSpy_u`D)#C z`-pS^CuNS^DRlK6BN$XRq@^Hi72dY`;hYjG2&g){@AxoIbdaI!TG0_nbkhY&bpn;x z6Jfp7+`~#B0YX|+a$U$WIpst^6p6W^yeexacLf*@7nNTo99164^~;fw*hfUENJ6U`BzXV_;Ko_pY$H3`7A$bV^n=L!pXTD^xZbx~h?|HI%He zHBojf)R5lE%veq$P@$%j**v}z3Ih!gibOOkM~3y{TE;k=OVn%bw>O(oWtaoTwO zz}4MSh!6o|x*Two3Fs4Q&_)eBKI|}MQD}lKbs55g%Qk_v3WTCGS8od~^C9k}fJ#Av zvToUOiEp$JE|%dV2uTuclnz%&}37O zM0CV5rGzMCE!)Vw)TT|!Q>Z%4Q+IYhcXD145<-9hqMvDQwBbw|8Oa@q0J=v`J||!b z1S}tuhVB#;d_n91^hE_8x^g*ZZ9#!X17^N3nF!|6!ndshzo#bhYyJ=<&$?>=h zl4v^`Kzi;yE(w~CPJWQT$Tu2V2#{}!Kq!OCA8^#%QL)r5*z~`~%u+R~N;W;Ir=Dw< zFDM}b0*Zxd^!~B*!GMTeNjLeszjuv{rd}WwMuV}Ix|G3{-~jN_qW!)*F`!ZcEz+e# z=a%T3#5EGT0@rT)yZ-=NaMye#3JM^bE!1&@_yWf%=7^W?zlG5Sg$4A`k)z#jP6J>g za5l?Gi>m5qF|VzsX@H%D5?&*`E;M`c13*CH>}(umXLf-s({0g1&7+AlpbMcd^6Sa{ z!xU#;kw6u8Bm1-W0EooN{m*Rr%lo2r%BmUxN@y2Tzr7E8TS85XK?&_dR3##fhB4cAi@T&%~a{Dyh12|*+A)= zH3`>~+z*^C0y_|d{ci=B1wv40P$0y4Kh`zG!mE{ZZM_@u$YKi`K$y}0@Zkp1c5&9+w45sR#7%azjgbNKuVSfG{<5uW&{M_kqr_4 zlXmxbDUv8kn`2qw?~BZAY$PJV(gAyUgJ=iL1ORkpns4{4l&`cm>ajLgts?kk;{l}y zgaA@h-_XRH3_GXP-in?3e8t=Vq5;A^{{T{ng(uK}K#lIEgh0kFO|DWr*rX4Un88>8 zCA(eUbY1rM9NeS`K7uovdVQH7*oh54n~0slM215Hv?|&BzFqYKLv(<|DD&@RradBw zD5a>{9jBWQvza;ok+BOBslDr$A4=E(TSHobCs~La0V551P8+g1#-1hedQt(q*@o0o zsw$h~O&<{EFeDXZpj2pq>8?3QC4miUy@-L+!+OF~AR&rsl-z1I)P#}(2|)GU$;>y_ z*%a{7{jRR=DeS^dg2WrqC#L;|G*wYj(0CcY&C(|a3!{WUFp)OG{ws^GwCaLWM?)P5R=om65*a{{WwI-U>1BdOGNL0%_8MB%(VfjwXjdj`XvK zfqnYrW}2eP)3!H|aANBizKWEHTL ze5c@I#6U^{qY1Cz8~dq*@qrcNtqNH#+&cxDh1FwuI!oh>#v&vjDWR}+@8{}J3Zq1C z_4NM$)@Ul1d=)hx%EQcP0wYAP4zE9q&?&ek>+?uckKE*i2HRJUW}ar+fhvOyzrwu# z0EvK_w95JdgZ9?V&q6q>RB5CW-;bk;l`17h4<2v_@%hZ+rP{4%SvbDy=J$xstO*o^ z3pOObFe#`YgAQNi8>hZyWieYA%lGRnIlL^;jYiw)T7~#?2(TeQ3Jaw;N1bd;15H9Y zT5dWw&iRZ-6es|es6J``01t5z7t*2|(Cr(xemE73*0estYH#Q+3`8g)6z4dq>)@^s z3VL3I_CwpPW8XMev3AX~%uocq0Ypwa)VJmPtb|g56SX8(*IvEEphX=hi1&#VlT)}P z2mqG;Db;oXDTtjEtr7#m^?E(5Fl*!hdDD$<>+AV8^)L#uZQDpb8@QP_K@SqgLA?j^ z;1+SDib22f%n+g#MV(W_@?u;#CO9K%P4U7L#0CWgknEjtnlTkB9+B5>=($O&Njff) zPHc#7<%3i*!}w@V6IHaC=!8Q!EPJn%{o#lP=v4|YN-Ah}?(YL;g11UkNS=~RW5Q4Y z0Plc*9_uUtpahnb(Oolqx~4$4A$HqV*wWn}#s-!u2N+{QzVogps?{j0=$jO;M{&eq z)4*J}PJy$V-0&E?Dz+37N+tKN8H8zFx)IvZHaGT|a9b$=4$f4qJo4bC5tTARLG_(E zvfRE2dNc(WMuVfjBeldUCELrTHk3JQZm*46QpeR08LCEnH-ygAPXO7ia$Owv0R2Y$ zvaPkg@9l8c!c>6Uq#YZNJ@40P06^R&pQrP_Zw}IqmH`Nn_xoq(F$A;HdnAUzcN6Dv zk*-+~LvIbo?w#jw?AT7%Tj2ZYE}TNjy8^Lw1;5R+5jMw)kObEWNW7cGD0LK0xnAAh z)ZR{cS3yysqtIu~RKk*?gbNm{q1oo$Wt!tDDUd;{vVL2vGa+Cm%}1t{p5g>O06{}q zcd~>@^3zT%*6D(V@jjn7k5&RjQc7CInk~Rn3cL_Tx?;j3!6qQPK^p)Ck$@feaV8eA zZlFt4{x!{h*E>Liu%M}JgT@zRkPG!nb*jrGb63({no3ac!8?s)p}8>=MA=FcMk1HL&eh#hpjEdi6F#SmbDTsy1L#0D4p1#gm$*q z_)klgh!*H>!f7ClQhZ8bFbSwmF?RX=LIlCIVyyz$)o^|fZ%M&LS*ofYcrG^4s%tO3Q_0ZGk>q?{an(rFnsHXZx7h@z$3w>@J>s%eHV-!&sc|cHYK20(DW;Q6@iEA_ z03QZ$c8|<3biIz>Rmhh>OI#c5uq##KOfbB@o_w2zxNL#mQdP(j4aY<#=tGI6zY3T1Ip$K-$dDb&wReL$k+ZdW9X>-OZOrLFuow&3EHd!| z&4HsusNE+qxJ48oAlNK2>x@x>Vq#7a;`$Q_5x zndTMPuqawT$cSrt+0PY71Q%89j-7jwQNlRr8)v%iySG>Y#))z^BT=T|Zpn*FRUNI` zZHMyQy&%MfgF|CGc)ZpK1cC*ng9Bvf!tXaqG|>VGf`KEvfNV4bjVgk1Dtz8P29!ZM zO~Stu0?q6ai^Fe?lJ6nxv?3{Dj0;+)e#mf-g#!ZAOCG^KI(xyr;RA72k=-4`Pl9VkvK$ja#FZ0-Y<90RL<)gz z_>?FrbS~VfnXwTquIc$N58Z_!HZ^xPueOumVb?AcSV}tW4gF=A&*5xIYrs4s<`qyu zY7fh}W8n88wRc>BW+>rtmTC`o)vzOjt>y%e_sSQK#VKU$_G=ps+RbX`Y`MT~v5E9sG zedw%D)6lIU5DVJUQ~od@R1zYp=);40>!UJdE<^|ojMRp|gLp`NU?|$6A02!?Zv$4z zQi38iViIbb`NR>HLpVGBV|}=|f}S9Zbp?Iiw|5*(M${)mU=ByD>f~mRGhVoXF2Snx=7@|#j_x_6Ls%~xVK-Gzo8AqtSs>o)L(Lq^(SS&`Q6TqR z%W<{4T`hnzXr{Fxgk|tTXe+B;y{TrQF;%G6qJDz2RlhsK0tx}Ps{y;VTFqZ`K)L`7 zFIQEp_km91V8jSe5$fN2dHA@~3jMLF(I9GWCi7HY5UQ{#vsAjeiPtRQw{U^rG$;J( z;H^*qRUHrCOg|2CgGMYhzD@?7a+@+Ur6ka7K5#v9r=Y8%2o<6CbuT9J=MuvOlJpAk zzHBlG0#Xa=3tHB{w8|zaP(Gi#=l=j)fp|Qs7k~P}j*`eL`hWb#tg?XMNb3Ip%atXA z78h}Und$k0Vc!H>ej57s45$lg6;48b!-{A$(1pTVt`i*-sn9d$_8Y>eDiLG7{{Vf{ z-MIPTs?gEUa=xGASRT)WsM6>VTG2>4`sIUiBKaR|RHYk&aLLZwie=Z8{ ziAfb&8~uFlDvQ_+ZDBXE?r-K4EsF?KwOt5J8&@r_YJzPdGlsjN-T+m!5HxCr5JGjN zF$Q35R3baRLhJopYVeX?f$p~U555v)B#s>lAR6sXI?-?ts%W}(Vot+O)x-{;$X0m& z0JbGFh0~gsVkp(mnKAL{XoCsjVgVH$K4fTwk|>Q(B-k4t zrWOK4L1=MGkDsh|U@WoIyHr`KmGs6En$V;w6?{HYFL+@ZaXO?BK-21dRPHYD0>DzL z9HFK*SB~&@Yg@FBsVY?47+^~hKEMKR{Qg~hA#6ZRCI0}k-bBe}lur#r59TTFQ%((l znq7zi1AJQiiViuvX><`(IM^EQ!?P8-lt7@6FD|C`8^;!r4Pt>Qcu#<2a1pA4nw?Ok z4eQK3V@L?EW|FXLUc7T&23blsCW`7c`e7V++fYH|i4Q&24XWZIt?=3Z0Mr~SEmSQQ z0mjKFTj`9?DFTTSIG5=Y)|jEJp&=@jGy$WebW9}+NH7S5A$adb6si=K+8bL7w7Fr{ zFE-(9-nOQ@qZt#rvJ;|`h;V6}#IV)0TMKdDAM>m^1;SAq3*dH~`IF2sDW;YN^>=y| znA9m?8W&~O--EM8Miz9yi5j36VaHpzfKArR5|z3DZ9tO0q2~zU#Kbn;V!sRPued;2 z+M6cEqHm#V?kV6WWXZFIG!N=VrVh5@VNwfvM5B+)1(+M87e~;$R3Yo``mR{J5{{a0 z>Ax|-NkmvAyzMS1&0`@tf>2wh0gkGUw_yy@qs=%cTl#7;j|1g3qPbiQp(yEh&l)w& zIk#%)i4=Z;6454rt(>dTYFOs{+Y;O&~=mvb>Cvg_m~_ZQnGgfGCP6CvF~k2&yV<1_cyl{j*Y* zPzGvI2lS$HIF81NhH)jzj==ygVy0dX4^OBl&yx@j>YFv8Of)FrFq6Fh05?XE{{X@f zX1m7(9Co@2B+&+-wU{bu>rrDa#4hE|*g{G{f(DCVDa0XQGAd=GRNzn;c0$0xErllzp$ZDtn-Vym%adCH zmQ+G4M|cP7<#-9TH>DGfBK0Brj>Hp4j_Eaw{{RRL3)|ytm%NTL`$%qrU5L#Ln~v}% zd7=XifTpbD_T;x{0*8?SN2S*V$%_hLi=>|r>bJ)T=oeT`f(X-Nv6(MnArG{PKir{> z?uT&TN(5SH_4g~K38|yNMIR{FP8W)hpg%fAUOTRP9jhe0im9_lxSOtMqHKT%^h+Ea zy9IzB1?7iM%UOh5h=Nco2^t?p8uo!mR0+5w*aPjMmAdo_irN|=G<^wxT?C*_1t`;? z^U&?dKu{4190rGfHV(wVO<4sZ5ZhF{EqNC%?ywqzt?KKL#)RwzX!Q=iZ;S;DEffUU zMuOTP7C{o?eG-DAI1^X|EV0!0WZtDy1uE zNP!=D>wLj|kPu>t>s4l=>AS?`vWPEDo(AAocJ06_HBwr#BG$=UtBDYh4;wyCSHHo$ zNu;iAkzv$dR^V4u4!?00Q+iqVBK?Ger3S(O05&|pk&6}vvR6_~f6KfHa6kteR$c|| z}A8=7mleBXX9I9_;wpt7y7nm=$il`R{v zZ+UJIJu444_gDD}PDOg>jdDq^Htd**x7&}(P z8_0FQGp+^|6-sKfucfrmm&k8KyZ7ho!~ZcTW{38<|4=can-Vv;#{{Tc&$w$LmxeWe` z9>N6KXWSA2={B0$&BytE+z2*W2naS!RgS*&xDy2lBxP-fSoU%5vrdu)ZbeGe6!-eb z0U;5vXdjE?-sZO<27=a;upiwz-Xf5sAh3mT{-R81!VO8G6#}}@+r{II9H4p)HB!$t zznJivdVvinO~Q6<<`st&C{U+Zqk7#Vj54jDcTtde&hvPxDkiF_b?*83xHz|9ERYWs zPv`Tq3X?)T_UWtLd+_cGMeRU3FNh5MK-M1MX%d%nK7+HW2qLStc15TA-<5BXlu3khyWt66-u*T%#g=`LX<+^ z!-J>C4KP}POXE(D-Tc6U0~2_#nmWtr=3PR?4UAnoQh%av93cT|5jF2!yu;P2K?|C9 z*ryDIEpVUkR@-;8{P>iS#8Ajk*->y31VqvcZmddK>)Zm^2qKSP6Px-=fCE5LRj@5< zT)>1v9b&DK;+xh6=!pXhARjmWy~Dd^m{CVZKy(_q)&LxU0*!$WlA3hPC>R$&4%O59 z!dXNr0)Z?7Pv94EF+#kK;9@FU9(>*b2`cnkLP)?9%W(%#jXE$kP_$;WTaV0uR0%we z^!oaSUP2Uz)zkK9*!9GBl{QX|3&>w%>%HWHm<2_n4Z3|#-RlubCIzJ=7JrR94&nr$ z0VpZDKi(03}okFN#6E@4Uzyf{uZ>-BF(4g=6T(QV@uqzqb^Mm_uQpD|>xD zPGX?*A|bc~_G!HSvqM@E5X}{N!oS7}2T@50%`s-r^W1Kz1X4CuU5!oPf~MUx?LZw` zS9umqW}hyn?#gOf(TokL{Ofo^8VOL; zQKpcmGSZqDSV1>+-fs6oxLFXc4MtnZKg`x8$5dKImEM@wZ<}*+omXgf0No}7BmhMq zU^cq=B$*Fjc1da*S`mEftBF)FK_b+JhMha!%tfPC)-_MS=r80jluH2ALi`kU0IzW+ zVz4*L0VscidN715ps5B?4*ppy+&EIb+h^t8ec$PV3ZEi@6O)Re zFWpBBJrZgg9r=?a?^jJxM)h?dmSC^TX<9q*?uJ{5qm4@KLs8x4;#r@;j1 zj=lrFOaq54B?@%Gq`YwoBA|(((0BO{?;9A@X#pPuO1^6jA}Ev`0B!?G{C4BoLsYd1 zO7feU=hp&|LJb12zF27HG^{X9Yl-w7{hR(!(kg8UO3kHF4VuI$q7sNTJ>8sUt{Q1d zT@MB7JBIum&}#hD1%jHTRt*`a@VFeh z%mdzRH}9B$M?#Vt0jgHAUAYK$sz88XtqMuNWvs%-d_6sFdCmL2H zWt|;n>6s+ebP9=5#5plYq(ey1NP$p+3s)mcbk_n=2=j73a?ubxM755^f;28FPEtz@ z(jOo0U&)Q@(u%aY*jVp|i@Z`Lky!*tH;UI{nD#y{yBviyX-C6)(}X0{Yz^IQDEIT> zlINf>C?`Sv2_1T-03`yAm7o>mdsisSz)@A)M{ORaHYn66&q1Snaa0lzP(94S~7`_-s;&zMBqQrj9J_Vg{MNtKAwSq~C}Zoh=Z zVnBdmZC%H&obu)2qoJvHJ~aEg3><-DkUwH%=Fy1zfJ>?XWEfpQoS)NxDA5vtJ5>;& z_H!>~uF4E~25cJYU@(Z=K|v^>t+_L`st96#y$Li}doC0+9*? zr+P)TJN!%odc*SWpC@Mc$%hzZ7=Yb2xBmcp1Iz89N*b3?p{`l2IWC~F6lVc>;MV?}b)fL4>WM21P&NCk3gTyO0cfY0fn8>BkZ3=@J z^4(dNC=kliYY&<`;8b?Sj$nnTJ}@Pt>Xk3 zp<)^}=ozX3i$ul{5fz2k5NX38K~VF8Gogj)qA{5)> zu)#zaA~i;%`2FiHJ#Tjq2v*KU1n%{g3bCVfZI_}4xBPE$0I<}nBE%iqc1wV(`UVNB z209wtD>hx2Xu1Krtq{%c6KEEM72d?-?{Sv0(k+B4g?r5f=Wt6CDIe!sC(iVxamXMQ zn}qtC4RhqpX4r|*62K<(_13$J7bOOwY39RyCby7MT7(V+JMhF1sk~}{K%v9BDa_NA zRAK50b)*kCI>i`K7a_}HS+qhp<*-l|jHrW0;4TiFVwl?M&#BXV>yj;Xg;#sBjI^$` zW+F0bc8!N*C<-U+$kVbQN&f(E^Zs%dnOZQVK$V!%*-QZGXWz&0#7AjYbP~mt_Y!C_ z2#TJUY1|^0wk6%wCXt3|04znJsebf7!HR>RS3ulQ{lXrz*#z=2ecyMyX>C%INZ5y7 z;k8X~1b-GZeC`oBiDUakuX}g-g20HO4l>W?e8{1inH_IKq6VojXf$B3ssK05KH3=D zW=l|D6!>k@d+umJ5GYsH`~Cj73(6n}O}o8^^}}AcLaZcq_g~}9Z_^Eh2Vg#wwXNKl ztfH@mtnJHia4^Eb$kbqVp1PBuP^5PYHS3?jRK*RS5Qa``^02luver-j8?Q z@y&7|cA!1d{{R~O*J$OGWMmcUuEW=HPcmc&p2I|ezx{p2Ce}r^r`7VJZz6&PSVS{Z zp0oVPoglLsvR+fm^z#`c+oFUb{L;ps#J~!rDs4We-rnJ`DCk?Uo7?Z~VX1}b6jRVgpT#+?V_+80sBInXue0+vNeFn&1y0T@CpXZF z%%^lD1$VpgnB`HDEdh{&8jod|X?!YaqpGIIeED#OqYyMFLiU}H?(!srr&!a{Pn(B% zk&k0UO0L(1f8MxZDuz~|)kbe$m-+P?E!+l(eiF3N&vA$<%%iF*?0>ubS%8AZmNd1n zk_tDQxGQBK3Z9UW+$B4El);n|1@q$WpnM#osaUW=L^tl^HRiED4MHI1$C|1Wk9;bj z1W^P;9(Ip9?8MpNM1V(0@&(lM1mFIS z>mxTTi*SfgU0*E@yqrLOIhj0qRkcN~f$-DcNa^xCDqgtHu z=u%{3im5~;D#uQt^)UcSkpTjViM2s4=Vl~TwX0;kTz|y{c~YJ zv4wTpVT zO5#jx#A!+tYIJwsylDVIs%F*LYU>o3Y6?L<2>x;BM3PV6D4DkF60bmuVtb>E44ObE{2mk~r z?$BOxT)K2S0wvU!KH=2sO8`a> z9$Ky6wQ`GQppw9b^>q5>_JwTZg!A@v$2&=^@R^{Ke? z>Y%SwRi$r5GiMK5)}V2orf=(Vh798~?f(Gh#w((E{{Z-3%Bc90EmX-&8UR;Hq{=3a zv=BDxg=2&E6FWZ2CRMk!{sCx=l%_|hL9{J_z{a)!(@QJmjLie|9uyiA(A0I8?`Oym zMxvJNBAIpdeM50IPaG1N+G1MasMNrL(rU!06K1xPqL`7{g|QKY!(-_&T?WQeu8^fj z_wHQO0166&v53C|tOofa6%c}rO+vaut`23;)ke|*tGTk6ghfLjb`rWRKbMyS75EV~ z8K8RLDp*C>C2cmxQ9GZae3Z&DQaWyyf@4_Dh^67W0nz&FDU=lr3#zWS@i2oR1-(1! zaBpkAw;gKu0F% z3MtYdEua)oTf32smX#Vbx68k8z}m-f1KqEqYCJdWP;KbsZ68nhjq* z4!kkJR=N<~F|@S)wUb0Jq|r;ss`v3Ru_l6w7njpqG~BBK-ATdHGuigIoC8r+&`O0! zd5T(MfYGbAI;@3f;NpYp6kYf-4Z8m93}ZkH0J<-M@n7!XA!NFtg6Sa@?)#9h6}3gB zsDFa)WRds?ibkCh0(l|^f7VI~JcV6w2u)~RXnMAWY@))16x>H4C?bYB zbbOr_M>o)!cSy#c8y@odVnmXXF@hF?@3wN>oQ~negD4YRXV+_s?dmO_NNEyk-QXi^ ztZlHoBPQdcwuaznTB#dIF%Nla-wcaHDwgu`MfM!f*AXJYU}+)_!RGfT&cO`{60O<+ z;k5ExVwXuRd;#3IRa7A0cgAZ*7H$>lSEK_EOz_*tYf-v>Yz=pGz0e#YXXpo z5{U+E+4znmvqcsluI#ZzGFI|6bfIe5GBMDY>7Z{vRZgrVF`q0x8d^nQ0XLg)oyrmgz$dFo_PU4rU8TPu9ucj15|X4G0p zA!5Vdd?qz+8wv)fBN|`foA4wN2`M($%JKVzK>7Uk}VDgEyF^C4j4*k0~f`R2pwL;Ddy}x(`5({UI?{|WDF4KX8tjVsz3A859 zfzNI%!j_;Atq$&P$m(+(fyh=bJ1A|o!Glu-pT z2u|qJss1&R)VNfYs~x7Qb6D9LQjAI?c`5s&Tf0EO6-X!$J2V?G3nnl&*5Y~H&aNoL z1?hG-emZqcIYL&#Z3Nm$ALsGJf^?`5sS>-@{{RommUT8zU$afW0$Ycr8Zaz$fbnYY zhj3_9M$jk`_(WNe)?ErJwm~=Gjs-y7Ay?JA5Ix8FOkMO&KJC-!d5i@>H4sU!1_af7 z=UGsIAT>^;?E-h0$^&H%fvhJQ{{H|*Zp0nhYx3`QE}6-ac{&sl=pz3B6PTG`lQj;D z5LCS+cf25^-h>pJ2&)!=YZ6&g7RDuoJWcub%%zoYq8?uG979Q5n-ZQZ5&k?^z=z%r{9OyY84R>i6KB1oYD5=_VJ0{d2pqPT{nAtsG%=YS>K=WxkrAOT_tH7R35Y~;Re$SMQ$3ZkXaEy$xhn#$xPBfU{ltSb?SQCGCB=QzaFtbb{c!H{HfS1} zCYzSpHELITV&A||m{GOE&;c6brvCu0xB|`WgTTMfHj@WqSpfyw8#{l7^ycPL=z=kl z#PHCM3@j#$g<3B&h$XjpWJ{{S*_Sa%@ z2ow74IQ~gHGJtAX+h8E;USGK8O$B;_g8u+TW%Gt9G)0069J`gX^!ETZ;hL$U0e35a z98uHI2oi1X7FOc`4Mq*w?l!m)15`=0rM>&hi0YskG*L}y_#9`ZS!swWSC_Irn)k;M z>{SIK0Y_FJn%)&2^|S>`QXy+{p6OO2$}$}#{B9(pPR7DOgu0vexv>LU8%~|Ex55zL za)q>ZQm}8vKE1e7=}I9eFk=1Lvaa=ul+d;-u4wo7hW>yKMyV;#44bzG&d)&Z+NP4K z-6pq+I9n4@K!E;#S{7u$C@s38QSI}b&9T)c!RXRU?v9dUDHh!==i7|il@OQ*cDgn{d4z|6qd;Q&GL!n6nhO;+wu;5ltNhb?!dFI& zfZB&r&EKmsmFrY$zX-khcV;50iftqpL9LN&-NTe6DJm2x;QjJb7lP2Yd_fteBi@<} z7b>Evpb7;kcN%P;jKb15rLABDwDhDrFpA9y01;#c8Yp#jiVC`lRY$YVcls%gS_P~? zd97O<72>KrU+achcNs?0`QU#!*ea-lYxTN0{xXj$O(+4D2hCx_H+9nMTYgvh-U(ub zR9USE_4Q=NlFri#=>pYV-r|5Lh{7rN_WUO%0-BTp1${K%o&LSW5Lo~x``7$TMlwpM znrV5f@7`m5NxoGe291!xOCH4(S_IRk*y}8Ids7rVU0Hu{SVTD4)Ghti+~gcWQK-9R z+O2=*14C~61nQT6&OmJt(`|0VmERi_IF3|@WyEcYK3c}q<8M6-Z5%{78a9S zSB2X?VA^mMLN=pKy%$)C5DZCK)npyWldcd4HHs)T1I6>FIgEF5Jw!_B)6U!fU6=11ld2Dm`#R~gaP{ZTi|yp5{qYIn|C|7&v1kq zC{|L@zak~>_3R4*D3inhd>YN+afE~eCBIUU~P7PNF%$nXXd4XXLVorpLq0k;{>u_@| zKnX$wC8O%?Zpx5^RVb{a4Gl%EA!k5o0I}x^oD(H+&p`NlB+bQx7{%o+#q#|l-QBng7sgSIDGY?@oC zfn!kxLTRx#`S8Lv%MfGQ1=l)k)>3S1xOVh{PM6z(u9T2K8g;PiJ*Kechyhj*yH(`# zyThMtGKz7uCGR>+Ol$%aYsXZMo4PUbuq6?Y4Y3Co1U2pFS(gkhsnLkJpGCXo_Sw!cC9gdr6`MwgDlx6Uu} zK+u72^Gq}x)UCyoNCi}K5%LLB_Z1dy!k-K`qPm^tJG~+xE!f!Ie|IM9qqEvVFgE&{ zbJ*K^%~-)Og`kS2GJ62#8K?g6Lt)cZpr!}-&ei|`D7xM>E-flue2XYy^QbZ`ML`t| zUozK}s9iBO(;8#cX%naZAqSjUalpFLJ0WRo25%aRg7%d~LKq9C8_}ArP>RE1rXNn< zZjX@kTviD6KnPIW9ctr(15j`xl$1qrt{BG91r0S%TMV330s^YQP;R*DIJj|91WN$a z1?Ka=_+gr`fn_jdK9UUt8mEp7&l$9k6(nxMbk)Mrf!NX;q)`{a^{EXJ(HxGSeRw{9yFGucAr&U!xll&U^n9!gARA^KYE%I+kma3c1j&E@B zcI0D`v#x41ms9*EIFq&r+|>q*@%+RYQG$-T!LZck{Ccx=fT*odH#`sVtg#}Y5Q@PO zHt&6=@-iwZ6fTicD%42EN3R6P6;!27>t+2X;|{e=H3T3iD|wpH8$^|*k31dBYM~Xd z1Q4!lzt_w_7Qw2jmdP||KgqlX?xaK;QmbhRU#1tj!+O2YrH1tDn4XJE29$Q~k^`-; zn8-FD3EiLFoYlWIOK4`HDBfs*Wl(|ufl9Zi>&-aQD2S1_*(1Ron1~)N&^JcO;OWNH z`05L!pa^!J7)mn4T||{*t@oYp3;OlFDa+m9CEAk|YG z{pM1A!X}j(5^Kxw$ptwi_3F}p8`Vbu6{~yFULKQM7;DUQ31QgiqBRW<+yc;}Sx(ft z?AQvdK51K3fT?zFOF6yXZv@a#y4CtUzggThMT=NOX%|c8qqxm$MF@ne!h|eNn)T6) zj5-Jp@D--J{;(mngi#>v3Ag-r1nCMDj+EC;7m1{|fRu$;s-mY~Rrvn^LhT}oQuOVV zACPclGEfl#3iTvbryb)81XIxp73I3UlimS~?1%}is$YeZ+@Yk<0DQWAKXe<$j*=_G z;9oRN*y?vq97z|0- zg>1#`60{OT8}IIGhOBjX9S9NkMupAb#2{%vO#*0lt-j}F2-JA#dus(&;Sd9Q6hK?` z)JRLbprXVI$r2kXX%PbeWDu>2J89_i^_W$IU=1E_TP|5zRHE#6yVGXJ&bhd%X-8Y! zK7Y8e&gu7 zTQ0V7e!k@Zo0tuQx##tVZ4OeS4gUZhV}dfMuq1%I_s-)g?cxN3e71YC;T}AO#c=)mr|c>~O1# zG>J&j_AmD|a1yro$fN+a{$@GMIN%BMC#YZ{1|bh!D|6)znEb9g(G- zU8b2t7;@nfDMqnciaOK2YaJO$pzf3cUmRLvf<+aJL$nfT-!Pnjtyn`qsijYkZUM0! z8Xr(Q>0)&9)Jg48Wz=ggdws+PgrHG0B|4vce&bHmfv`IZCdFyr94MLLL_}1)Y3>_@ zY>lysO&&|-XX0t1?8^R!`QJ4^l}in15n0-S!|+UJA;It-JN8|DIAk{EV4&;;0+l|* zW_m7!092Y`Bs6!pg#-`^++B^J(s%hXvNQp9cwT=bwZ=4ntf-=tysYHb{Bh?kPzr}b zrAK{X<1vO|ikd0F-j7EgQc7Bn`CR9pQZqW^&Q)BxZ%XZfR|Ivp!wb5Yw;a0C$nSl_B1Tc zS8#h23(m&-J{W-{kx4wN$xDA$ca9yf0>Yzi-Q665O=1SDDUgD`jfi`^C(w;3I-Bt}I=@q4 zfIY$jiZIo?ixcA}2#O<9(xTONZ)3BVXhO9CqK^EUj{g91<~lW~8z|AgotSS)ArTV= zcM9`-ON{L-3xL&zlsBwu&7-w6tNwef&viv=!~s=M6P^D63#=3-skSVZc)AAmTtE;3 zY2NrJ?VF>63KAhna1!X3dy(d_9R|Qq0Z{|D{y8!BkD0|P;iVIzOihHLunQ6KR92^k z6GPDs*a9t@O*#rL%oq--vcr0JIR|oeW(UCCUc2hqBKLbS=EYD_s#UV=d@s&2&D3;s zB)faFsl7T6vc@Cs{*zy^hifjl`b@5UElLVX%d{2`L>fyPmD~s?;;dIY2yjaxRHWIRinKitJvaPvD~S`n*^VY z;c!N^qO2Ev3RONy)xlK8x-CI|1pUcDwp%Xj!MaNP` zS-7qWil{~hn!U(G$mjw#m)6jEdv;ISZ4(P&SH&#Hzp*eVhMo~|7x?_GzpwrZQu!OO zo541UOIJ0iN*76-U$#(HCBgF8kLQK>X&vqj4P06~N_7P^gl%+P;83`BxN(KU(9aMHz~1WO{~t8Fb?q@f)u z34O%N^%w(4h>7HTaNm-p)jDbr)cMe+0Bzu9!wfCfD0p4 z2lV#38fqnQa=wNuVdigmK}z@FmT{AxrZSwbTVe ztQEYT8^Bh_XdoabjVOI`rO~5`mI%$et^iOCX$1uWrkn8}E+Sz>7(oMq_-L=cfY1~u zlBm@sj0#Pd5X&Qrp<)DzKD)<)5&;J9RR@D(G9o4_A-IS!p*6kTWn+Yn0D+;4XY=dv z15A)09Yb$fqma{*D)4obMz;@_nlVF$2G+Y}PhE=J=R;=dpsBhHm3AK8Obd|_KAec? z(*EISjY4G~SdrJaSD1h@R1;7ozn#3W!bH$8hUiox3=wDC83VATn^l7Bip%S))Yt-) z5zuOCK8^;I5Z;`zTd*b8wEDn?l|+K*+?DIY&SIQ%J-cVpe1EdJ3q2Z8NEGR#YmO$^ z?txvUb-GKxGP)X-Dn^jmzTfkSNfK2!NES!z)*?X#Aey6SyYItUFd8)qjZj``_Fgvu z2++{Ov;0NBaty#xK(&yRMK72v;Xuav2z2;VxRF(;P$1hEX$5spTyM1PL`51P0)0T$ zxE7TOaYz8BUElG)u`SKQyb3VVJFer53sO-~hJ!l!b%jr85GSfZb)p-ly&45U3KZQ^ zmDlF+O;iu*A|-?kB;FEH0;)6}5ZY}c8IlN7O%ZhXMd)MJ0uk&s3B9l5_guo!=+z=> ztbsnqPbLXzhi217fzXD}(vsi^!~_~{*l*XvOPqCq6lkqb6JK0ogLG7Kt34vL(TNfo z0NT6>r~B9Igi7cH-IIv(U!y|-DxfO`50`7cpM1EXpHw6Sm7zBazhaoh1d1TFq-1~| zUEqOuC|V`sqRmgk5e144`n!8|%Y+I@Q3X7rr&)MU2L--e8U~Gdw|ZA0L)9WC ztqr#BJ?`@0m8k)Q*2U$#^>>V^XD9;7BT5Xvy}{&RNfbv$;lE_>3{e95P%UDiuATZf zAsu0K^c6V!y??VH)dfN!yVkW0I0J;%A+uY@(l5R^bkfxzfT#tVC%<*PEfqvEW!b$l zmd`hF6p;czt0+>w?f!mA3Z@W2fqmPs?iW@nlvqNa8hHDxpOk`>2863cy#3~k0YXv= zB-I6bOVFdT;7Vvn1ppQ32C(hGP#}xgY9~hwUBIJTC@1mHd$U~@;g0KlFAb5mJl4y*(1O}5aVQylh{ z8-}1q(Fn14VG@ZE9Wz^oy*U-YgaJz%MMU5f0N1aREw!I;T`qds0UIni~j!Zg^|_W661Rw?GoF z@z)=q#En4_7fAO87Oj!I*1tEBfSYElb+5275bes68nbQJJTrBRtc0e&$MMWklpQ=% zT7*Yfsk-Idg48v8c*3h?mjk1h_UHoY28<_{O{8yepo*d9RZ=a6m&{sPNP$b(*WKi@*tgbWFW|s~{Ak zbxZujf*6xtl9JP1R?mqE{VOBhVcsPylZ1nKnB5fua|M|FPPQ9Zcx!_!*Ikl09&;U zFHH%FNf>IN-9WZ4e3(2?8-NX70B(PCSiS5Zu#hkDul6+blmmzsj6~nbrs}(K2JqMc zz0;b|I116MLl@Yfe?NzCL3|)J3Z}H~-_YhZ3cqS>*dUS7_l?V_h(fAJY(U+5%kt1e z<^V+^!}CvWMMa}VQrKO<`CO84HUUq4siB&*)*TSdw5cxl-d?5F8X*#(sqsB*+V1zHCHYI)iH3xMD_f(4iNK#6kXT_Vt7x=3?p^ts^#q_E!*h~>_P;UgXeu&@ z0X?2y+&o95p{=Q{sl|B?E>H`}nRGQpfxx6zxDCXc)Pu7Bvk_J4P#Qm)J3}< z-5d8&353lQP!u*LDSY4V0lH|Qj8RXj8o52Jpdx@Mnq76UeAWtsIwlKw!H(bw&PV_U zVQL6n?Yjc+?87OBaat&F04LpIHS4ILJkvFV5Jm@O(S9{dO9 z*m2rxTmb-VZbOevwKaucg(ljSe!vOvJl+!`((G4YJ-l`D+mwx=B^B2GAP0r+CI#q_ ziL#rPL$EL;8Z~INcIZu|0JU(ZLKcQ7XqS{d7Xk{f84&0WM!McGYR(fFTL?dSr_6P# zP|;dvKwl1EkNhzORY&=O*lOiP*jE}jLPd42hA_kL_rRq&S7nl z3MC5k8ml`TXoIR|_LrnL6(7e)Rsn!M(O3-~%M%N95IBJ(9xNkzbF8frzY%C_r(-jHi4FYUoDW`X0C(3x2pJL9 zFq)De8E9Szv+px=#5M-RqpgD1!z8eF=q+7e-|3j`WWYhFj@@X2U1-YpF|aY(uESd2 zJ7lGk6c~zBtT(Cl;sxkx^e>eWOLKnt8ZGoOVvW*SghQ&+8np*U_M605G!uG7Inj=` zUB${yi`u*djJ+0Er(TPmuk{@$T7(a3lgV|SVUm=nLZA0Mc1&)LEuee-y<_g?K)KoiuV+*9 z>OyKu?z?i$s1OdO(wqJRx$u9wGp zJA`JWE~l@x(eq!!kp&jX9i&2xCgz{Jz^Xz3gl3dg4~@n)Xbj?o*Ar>(umBK^m0;uoo;*cw^=UbTwNa+AZuzM?il;#5R z!T?1}!)&2$CKN(LQ$T?@d+xP{WQe68Gj`eQ(}rIPk((l?{kr>R2JS%+Jr?br13pa9 zYS2T(f!%bQ$9v!bQV0RPEq6b4L50ZL_jggYu9}7A#&2p0#f^2eC)T@VI(lc;FdE-fsm zTOE}eyY7rkA#efQ7O1|X%ltUX*2NSK&^g|ym&|Dm0U_9K^M6UC#4QS<0!0BE9*~3Y z3@keaQi{-HvZ2n(;8jrpT~S}4ckdBo=l=c0?^yE zfh2n$-ArmQQ2-%+Ho7K_cUwdNSkacz0F4uR{xUU<(WzuL(a`rE5~FH$1igLxz2Q7b zP?{R`Bde>f>Ly{LLbgLhS$D9Q8Xzcz46CK$H}(0aj{+*C*$Ne#cUy65K*A0_&55(@ z;gcXJC`Hm+?dG{RlB&puKpnIWv}RQ`Edm&VDMCTLpCgP>6SnRXe8!vC6l#!Cg?3z4gW|wW4^FpLdFw(9oJszuqFYW)&)*dot3ND4YE6U;WHQ zOG}{BzW2Un+b>}X3(kL^&gQ}l*){Wi-!sqP1TB-as6>T}#H8jR^{cyoJu zf}qNR0Pk{ZXZ3=b0zpEwfLnJ*B?^>FZ-6*+{{U|?D_$f)e?5LVHXlnOyBb4D@?0%y z0GfxN^2;}13blrW8)E(LLveD5BTG2n5BGs{YD5=v+xy(4@Gz*Wq<#Ewg`^P*%T|3S zpK`YK!BiiAwVuO##Wfp7f{hFIU*lVSM~2X;SsR+BZ`hX5gqu{GzmT2Fwz3z`9~ z=2rnlD6!fnG~dn!0)iWo)z;?S-)!;8N)QSnfvG$nFd~r-2rUaq{7q|*@;xo^3DO&i z_gTJ03!dv#HfUGx(;8HjH4FK{Up*6M3S(g%8K8Oqy8ZRYw6vj5B6v#J{{V9nv^-0o zWIJ{5I=EnFq7+?htXa+#+{qD03?zjOj{VmBxB@-31T%mF79J*4qQ=2ZH$_c0`eYM> z0iggwwP)~0SxPs8i1BH5YvIUY3Cgt!iw}$L=<-a0DJVooR2_F?Ief~R73jzIiwk2m z;{i7*6sJ4;r(EQKo)%NUhhC=G-rD~h6U4Ii(8JP?RWv1Bpu?|l(pEikL zF=w&g%h`)SfCHgOu}y3@?gp(Lp^d*FbpHPUDl`-&2h}Oi?5oaR3~NO-M5H=C7jWX{ z-sZrl6>4ZI@AG;G4&LFyNZ*mH?ytnaV-6C*YBW#YGp+;cp;WG-lo59WQOGq#S{vfL z2Jrs?jb@Ip5EVf-#y)4*OK!Usi%r&xyg8nYr41&xVR@QRT?`E;21s@I?*$HugfzuX zK6!P9PM|_cv@<~mbjGb|r34)gurnK;mD3pRAEFx68KyF-7UeyuzhOfS3z8vL}BO)-kjwfQ{Q!1^`3>9|(?`)l&p2Hvl>mq7K0U3gYS$O;3c;s0G95W7>@afAZDm1t`0`X&DW8!{E`oCfHrqp>^pD0DERR@r#!!Asm^A0osJp=FK;-XmdjP(Si1 zd^AMyg$MYK2I8b6nqnA?BBooYkP|^g8mg-Pl3;A8JGI2OZoT|bJOIumFPsBc&T zRDoFmIjEK#m-B56AP58MHk{Vy#mOoLAZV0XVsB=RKdF#9gQoX(DX)i_B<)aYk}=gg zDsK_HQB-<&L8So_$uXe{BMB{_VjCzgM@_&5Yf=QRg|xcdwqsZ*B8F=4P&A*s$F!xC zQQT4Akgb@+1`Brc!X*~|^v%NLmKREMe*UERt3k!3RTD|kOQ-nOX(f38?$cWa7kU}4 zC)nX!7@Aj6lc&A8G;4g3MO0j2#yafACM0oUp-}RvLL_QlPaC++Nvu@>h!JU_7MvOZZufvNm3U}0B=^wF3t-#YLCYRu!&tX z0C}+a`gv4XN8Kt;BxS>P-kVk)X3 zDgmmgANdzlacrpsiHAr#Eo0uyg(9Z*#8p1&;$WH=8eKqRy#~9xIfS{C>Y-GJHm%>y zV?u?ai{JX)y4EZzD23FKN?mKs;sG=hlcvTCMtNA|5XhPWAnYJ*ff@bXU#8Xj!Ia2i4{ zL_@uP%v3;{2nJQus!q2MyCkFm)r@btkb#Vf_JA~iXwg&Q(DlL;)S)20Q_J7sat-uW z0=!=GGtEu-0F4HOXX#+-^6MfM;Rq;@uPjDA-;)xthQNpljkJl>-Z7hqri$?dkPqW| zQAI^lTOlb34bjtS*IP}H@1X&+w@!!osIqS;yEi2@xEx9PxY*TJL}}oXYhF%sSPu>< zcxBw+bImydLCPW!ZBtVIWRB4LE}QAerO1f%3wq9L`o(mHr8nq}cs<`t z0BUU1+#1LCbCAdoi9HNobiLHsrE`7&Xf=8fHk5DB#ApJ6N`%~YZ=UVQRX~2}f4nM? zT`$(%Yaohbz@Qs=RNg!n7LMSEj6{tx$)E^;J!}5}_adT8N`o|hzs3tyO|5P4f3?9I z11uY^mjWh=Ktl7z{{Z`pqM)TTxclGu!8MwK6#m2fU3XZQO}cH}Fxb)70anCoNLtVG z{{Y4UvmLF5`ltKDDgr8Q+XepsXY^wmV_gWk2ieGADgi138!5Z}>KNdlQBy|RQ`l?1 z;+3?hAheQchi)Xn&}@(Lh3S}e!b1YOb8%8yqEXjd?RbjE~Dq~etKZsD^Q;DF4>UL1PBPx z9g7;>4zdtTG+PjC{aziw7J$~uqw|~jk3|&hB{qU}pZe0=2y9Ud!3cxB51rEfG}^Kt zROHk9^8o_U0L3Rdq|!gRbm7{%R7DFzNbBCNvu1?`g@kBV{{X}8ROKI26sGqt9^oy< z#n>to9*9iedK4(n5Z}7^c)3Aqr3j%3eV=trSY-%8hO2i}zm)nBS&CE(-Rckxe)YcU z=clVi5GO?eo_uxOoJR;4Y_?JO)7|0Aht(DRyNN6O@3R3FiXaH3*sHyL=b9{NAOawW ztU8jet1cqbY>R>}n$t$F?Qx4nqyh)JyZ-=>3+S!_LNKP&l;t(^eh&K*k`WPdT78%{ z)L=+LY)8m&b=k52fmIP8475cZjIKc*6)QG^)gye$%cV`lVNoXgk4v>~wDF+T2kVLIs0F-tWkNe}#&6f}nKL9=rZOY9dY52}%(9 zoARA2vaFgdjMMzv4N1%+x2lGfRvTeDma9+VIGSc% zp>)t`7lap7#1em$1+swATx}Yr(dD7Gy@bj^3<#C?R&9~goWL@aqG?SUnx#2T_mg8H z7QtkM`Nz)e!4U?M8KoSRLmnQ~ltaNGy|->MppyVac!wsBi-KTL71@d?;@fkN&!`=uFQ6nm)CDkM@f`&p#_yl z+6XH){Qet_5KImStWdSmZJOQyfECvYQ^#Y>*l^mSfB$_cDy)dfbbV|Jn zd*uD()+q}LKN-P!E35=Yf{-4q<)Na!<1(;%ChG1h@_KU{aM210_oR0K#+#c_1!4&< z#r)=7f<{L5Af({W#|r3xv=gbyc-i@lZH+zrS@hZe0G`zB^%X+J*jhU=qfux80s3lp z`|J{oNfayQ_&_#3W|jh!H4CWzJpTYVd#O$;y8;YH5@s%qZD=~1<>>PeA{3-2F3oQ1 z{ASw9z(^ZKw6RU>n6MVb(v(p)H>=TY%Bw(-DMws6ndtM5oWF^O8{B~ zuSbw!J;}D90i<+I{_iPzX%rON(lS=8Vca#47@!Mi==9{BJLnb=BVV?V^P29mDhQ1r zd#6v32**b89vEOG4pV0Q{b{UJ!lGmV{4h0Pt$W-+iCEw&2#u!y0PHZ>TdCrQI+It2 z{L-kSLnXRRK-Ze*JCnc&uchwQIY0DmByH$!w@%HyTUkvQN@yCeNU$~mrs+o-&`1&> zAR*Y6C<%&Br)-5R(S&u)F7eu7jI{%TAr?O5NX?`ug0Z&FS*?$84bT_0qd*nBm_7xkL<90z2F0r^$(VK@zUeKuvs(yMRSPN?ESxp(2hQ zBSgLhQ3mTarqhNMP7oXE)hy}KAGph0m1yDd4a5`~YO)e)L}I$WbWI!H>Vz$b zGy)Hemu@8MLa5TZJR{P7D~`~GTtm>EKXlhwO>F`9VUCwdyyT$oHulpwZj1Z_eLv#dNYE0F_0@nP#~HK|Sj?Iq#+tV?vcY z(4>7X*<7`%vFXt?n}P7@yh0kNM1$}3EM43NjW}fwn%x((_}&*Y0Gfw{2)j)ifsAhm zDBfK>5`P#nF`-dFZ$F*>H{Td@&5IBNOE0s}=itFiL?||08WQvT>bgd4)7PN~e%ZJD zxRg2)L=$}wLtM&>dc1Zi6%#_d4{-2fs{`GXgLNk1i2#`Fff5BrN1gf19ekou9FGvw z%{bN#Fe$Zy%60l}bZyZ<=p`f{t&HZsq?HFz2s^2zKd1OUIElq=18K1yPLH~9#eJw1 zABm~$b+TdE*h5yqR5iNt)689t(iInCe2@3piX(suBXN&5g;Pm2F+nB(#AWP0nl-Pc zUis8u*HNKB+^g6d5o%1ETbZ<>#p(lEjoxmh{tV)s{`Dk(v?!uc-!~7 zE>I8%wnio2w_A_$I2Nj7U7)}SQ8?{4jYcgf09;^yCq*%e2#6FuJbc)1>v0d&NfStI zoAF+bn}DbayA(+I@%X=;aFDcjG=skdXvr_QrSSzp1g&=I50_NaG}TEc2OW59AL?Yo zBy2jnNgdZw+pQ)(@C+wX%BItMs(W%%1sZF`hJyBoC#E3O;G0Y)pop4jo;H$l-B)9Qsgw1(zG4bU=%j~3l<4TkrVSGXdkfI_a{ zIC$$Nt!B(nBgwOoJIZd{4Yblzq*X{=;4itgKuE3Oqgtbo-nQ|{@7@Hp{{Z=g4)H*f zM1GR%BEB@hAy(LB2*Y)DkKg;otO>%cGx+}i=P6G_Y5xH4G7bivNBjmFQ>}>DeGHfs z03;9^PwHyAjF8v}L03$)5_cxHTLe!z#rS_d z<5-3TB5ET40C?APICJ^S{l)0jMn&tHjuMT*RkHR7DRLTeaQ7 zM4=;Cn(cO`lTO^BID}1_Q8oL;{J?BIi0iQ1w661TQdioJyZJ6a!c`Fz{kX9J0ucjV z$=bi_Oojy!0=KO`FVp5VWDb-R2(@0>{?9U+2qm&AWhJwrmW}e$-&wo0L{~TyZx@bEi@9dPN+g##?AKx!VMTADRmAW z7YYI1AY(~A0XkM|G;CB_GqJ6A{ND^cWE22UISDWG*5x3gR1jKe@FdYX;($)uGGNdtEL*v%qDt>hF)Sr?n@P{mAMo4=hFX%h zr46RNAx`C?1wb9ZpMu+|?7>)QQ=_Vo4FItDyqFmhu@((?2bYbl!L?KkprC`W9lG_) zpf*%T>tvqVoN>D{AO$BLh`(=44v3DzU8!s#r^?OYc^YyFVqY}TxSs`VC|Xwsz+O(4 zV>Lt~2>?M^z3X2Kg^7~3oS?0Yeruh27y&MNe<$dNPEr)c#4j~PH>GXMCuNhUKE{7#ujyW0@ z5Wp;JaaSU#G9rT@OTJD1Ol*RdvfU_YG_SqND4}9lR_ooNt!iwp6eF^_g$`YPxgM6L z)RiH3dArW*3%}S2fK=}$->HLR!$jRYstkAFw%pNsXlrw>^k|gzdxWMK-4PR!V)y#W zgiwTbhV>|S#_u1sB2@s=8-qWmdB3qV!f{R;A8sU8yonOf?FZ?BSTGuth~S7%-_7n2 zwipFq5qNG?^~oYOZK#+!x=ZNnt_NA8$Oac za7)N0Bn(NVfLsVVDW;8dM26qDCWj|lC=H!m6`V9=5mX3LX!K8s^};BoT!2ExNA>Q< zP8&o-O$!ZbvVV)a!1QoZN*Z3aH%ZQ^gkF+IqjdCM$lc*VN=byjTS(*iHHk1nRVVKw z6I9TRH;;QvK%!PKzVG<{F{l{u1x>F09dGQzs-Xe-ROX|<;O_8}pi+%kXs~~c@8%eu zilD_dC64dLLM1_MAsz&0)SJOGppBr{&*n{Y-eYYDl^xA)n;-d@6&lsJ?^G7A5rBn^6N0R0Bj#cOs!f3iW*C~oKK}q=#KekR0xYTtO`HCvEL!p>6{+3%y}+12 zDu5cRz?CREFXlBV;|c~cpJmj-nM(vCEr~VCFFBfB@zo}$Ps#onylM~h;O^8slX;~{ z2o~34zUmJ94a_p!>$M`FMHN?h6q_&;4J2RR>$d=uj8qK`2yF|m(+=1Y4$IAi0ri{r z6`7J+Z_TjSoZd#dsz5iiS8Iwz^SQSG>U8O#9BmjXEf9|r=PTSx7WzO@;pee}k5UV^twb_m+3gQelRTD(rRc-ExNIz@BGpAt1FcY<+2N4ZoqB zj%?QgoOsM}=`{3-9)yud-XoLQ$rSl8YH9Z7 zf!t^yYWmbCVbdZY--;kr4#QpTNMaK}ygu&gvUi6+LU=`Xpsg31+%3xX%^<|4!~}OD zM^@ni9zl<|+eh|XDlAG+I{{j$DPs&M%NE13#w^q~`-Ou$RazlYtrcUmJ23`cSPG4R zUQh|IO=M^U4RL?7n6GTtywWp>*=xCT|^Z>`jZ}`OIx@rg)gB92G>gsVD@xRU5_a(f9s-SP^r^&mLpX7~zlBmw<`Ik4m zS%<7ZyLh^{00xK<0q6=lyO1vOBco(PeU<3Z{EL*a061J;Y7HX53hWGl(n0BfGi9h8*pl7-JGNi~EXoN4g${iJ^9p5^ zAyqnuhL4}fYb82{H!a$4PWLaCTr78p??_nvZF*mclGTW-1WjpAuYc5-m?%KlpwtDC z;`PFh+Pgm*?SpkOv`s+>QK(qFt!KY*GOebSOujbDm>TiXb~+iqY$_=)!!u6%rVW27%p; zA0#`F5v7F6K!*PSm^H;?SmFR^{!hc*n1|Zcg?2?K%R!$A;#sGOu#JD8$C)We4HQvZ zJXl}*#wMt?QA#fRG(XkuZ4QD-N3@np?joj0AP+6OH==T`7?IB48qw#P)4R_D0HsEP zH2Q6>gL5ehKrMqb2zC5(10jNd(X(NcoYyYtiHL48Pb`B!#^3_5TWUQ>6Te&8Y@ zUL??3$!&keR7f_bNE^P@=13|?tPc;{x>`6X27w|IZM#jrZ|utnl!Z1KLHyEco=ijr zXpSqvs=b~5W@zM2k^ca!IEd?q%kBazDn-jh6LAIq09k8OZs&iz*^puZp*~~=hNjD2 z;d|@yVtYxnWzvT zi%8L$*Owp?rD&vYH}jkM?pbJ602Arg`KC1h-oS!(`nbqQ7ht_zcm5>BH4vpVcx$>2 zl=Bg{u!_(?eb%@8g@j2M>XA-VA2M};X+v+*=bF~AidX`xVO`x9aB;{4Vu3*W-wlCK(k^I3dKh{~hG&ipoiQ*}jX-Y+${tu=I9T~RKW z3hBSgt&5&{w?yz_m*A)!biDW*mrW}h{iE+j=2u}5KB{w5?s z)|~>Z73fjM1vGV96bPOd1SX`T3;BID{cBSQ+d^0q4YY*mxn%0n~%ML{&X6$SlR?gdjl;#rwIT9_8GMqK1J)DJAJW z^BGcF1!otin~%$^1&zf``8#*I&XWUrs3=!}#CCBvb*>vpfE2B%+^8MVBfNHqhk&&6 zT`s(CPIV{{FR8YgKgTg4HIM*{YkF>=woiV@88?1WWB5Q*vZ0bg?LW3beJS`Rz|_i&f+fx~h8j5(JS3 zzfJb=Mzo%93Wo3z#Zd`faGiXa zCqR`L!Ffu$hY5)wh$4t=Lf<%lCIbpZgcp`VFV$|oYa9w}cQ())i0S-(Qs9kt76GZ( zz21Pi7OYg#ZKZZcU*{8CDvGK^*5wEBt|H)xFq>><-QC;H_YxGc78=-_5-;&w90@Gi zs{}-`@^g+zPyz0u9Gx}OhOkSEy0j8BPc_U6MhT{9C<@yK!^hg=sG%{?EQ#V1db-O3 zhdyVo_b>fp5~XrcRWHU|71F zaJV5ldI3;*1`XHmp>Y9Gy2GkJ=-z55nuZPk05SXAj@DZXln1uY51jf@LB;4a&+UP2 z!B7dIC`R=kE~np}$m3C3lms8E^Ak=&kq>m-r#Ry9=5$`4{{Vp}Jd~-V5QM%tO0hvj z9j&c`>GX~uF$q$DG=KA66BoDyP)39TGO)Yzc-4?-(wfYD(Ejc%|G zH?R~VslZk9&PNLlS76-KXQdZR#xb(gMXIRs^X+M_1QrbfF_d1|F(BRR6~{WL5)4Q8 z#Be}*R89#|O?LdmOd?9FMP(E{*QB`-LWDyE_EV0Rb2Kz7Q3&ci4;{yP#!3ND*l%S+ zQ=mfoiw1-NN|qt!pS;!xifVyGWg$)Pzna0FL7^i}D0R;L!E^zs*&@BSTbetFU3Qvf zYqP*L_G=ijqgX4j+=^3ALmkycCYM_DP8Qj9y@Vi*RA{?+Xmz=(_Ov3!8CP7M{1av_ zK~**?0|bWK>&zhhM9wxK@pdX?=olr=a*y6hVgjQY6dm4E# z5(p3#2Wv>clz6u2f}Ex-~=!*#qc(#UaL<3xZ$V{5QYy8i$-D1n7( zP9rwNo|1T*Wrb3Ris=CWy)x7qw6tmf2K-gpK*QYtwT0%o^>}aj5f)t`QM(V1<{QXM z2#C6b-qLFCvj&4<0U&!jJq>;BvA_{uSvMFhCXt2!aZrKOpoA&x!b*)&uv9cNzcHj7 zBLaopg@fRD7_{Q383d1(O=*OAg|?`~p+ieG_2u^{CMl&f$qz$ef}I`hvif%F7;S@-N@qtwgEyHCGA(g9_(55(S++-j8G_V5Cday zP@z7cn{>YG7?5lPprve7d&+m~fKXEjP$LVZ{Od8z6vBc}!iP3cW+|#r!2{2|x?_q_ zQxZZ@Q*2Ay@xZ3o0+AL4U2s3%L7}7@?M((dNUs{v}pLz<_1 zl&`d~B@H4dPsbD0(M*9tFiIfym*Ti$MyLo^1zim1^Et4@up%w$Z4;!8^e~`;!~|hl zI)aX$v&bVr7le&O4Has=jsZdnVNh&l`=GZ*@H+qv)BuaiqU`r~cr^2CMFRN#tEbW2 z;OquhXejIiZ0pYnmXnwi5Loa{Z^>~5o`UPT-FIQO&uVKd)IbImj@Lw_V!0s+0)cud z?cYXCpFq?aokMCh2@PU5EDEZQcI(~k+0RvKLD5t;qo>P%X9GMF2}|+!M{m=xWR&2U#*6Z_MGLu9ewCpuf2Q`m%K->UGjV8SO{Z^7gU2@3RA^Vak;iWN+LM5W< z{lt|a3ltXr0N!Xv>5)hJ^Ti`OE`D1*_@vSwgMQE3W?Un!!Ya zv0|5>@3t%?PRR43jYA>6Ht$WEna_);UTIfRaNXXVIYEFf|2`w zdGj8ja6N)=cK-MCCxL8Be@F7*M{B7K#cCh^m~&Ftk{(@a@ZL%avXE(bkDB?fxnL41 z-3INujzb$3N+bXs@BH%;Q@KD(Zr?O%_gI3mNX)SWn?E6W=0GN`3k&?y?#v-jly24w z{oeDrMA!@h_r9DdHiG~=oWxC{wQtj#wg~BwQqsJt>@f>9_1Dq zi~R*=?~^t{0-lTDHgjZWe8!1oR3f79_x8?Am>8J~B+^>x=zimv#HCi+UQIgI_H$U` zT`*FicLFZGxzUK1L%?fCJH6mY6DxsPvUlIj;?zVLEjLE`Tm5FsK}3*Vl(o9nTI$O- z)qp?A^NQopx>B#tbfaUuPzZnuf%#+S-_Kk?QBpId6rUaS{_%p`6=+&gZ?3-YjtMS^ zJv#9C3yo;ZH)`$$_O)Q;3c`bBrQ1FHH||-4fM9_ws*MaEh^t5M0> z{Dw=0^ic?$ZBTu4i~tPBM?fGtyYF|6ZGs*maJnttj_VMtAP|QOckhqgW1+3OL0en) zO#zV|Nf($wjH}B{VCyy$Yqu2wA9ugFxlmAG(Obon@>zxmin0Tx6Jmain2hxmL~R9p zAT;X)INDT6R3VDv4a@#e$OwQ?9UA@S{XKo`31}*osWv;?{m(ERVE`hUAsr5z;i?k=P&NXAANVPv6A0fZ+8ZkGRhL%;K*>Z26=}V{e`S{xVvwrRO?kg1 z%{Pj2n5RxhtPpMH@zgr048v% zcJKlY&u1_<4w45V2k`jfS}{#Q3Zqrugr8g>m z3AzT2=Q%uk<$!>c;dp$2Y+N(w*2i>$F#Tc3zd-AOV6bajYbN{oa(E;c*q&P-$*VT& z7WG>Vsjaa}4vkax;sMfV;D?){1b4h~3!hpLYA;=kR?p1}j`B576|8rud*fU`DeeHn zuJ>%5+;Mz9ZTK&~O0l*D8qIR9`SrkuTMNx4HnT_cd(>p* z3Xu>r2z}naHHWG83J_FOs|V@1i8w(}1f8;q%h^r$3e+NOgF@0&qt5T}${S%(PUw&I zyKl{A?P#dXi2nrKmivhCS zMGWIui=dD<*8c#EBfb~{Zq(xTYh~U~*(o?SE9dj*%pKUM(07XaSjbm%1tz8Xfl1nI zcrbA9ZCHf$PRqucyzOHq)Xq|sV)na*$^pHTJ z^iNHHoB4uWASwzwhaezE;v$Zd{{Sz#eR6LDR^lC^)Pf8HqiIft@Ealsl6XnaN!(*9 z#LFl&Bk>>O-R8$qK?X#JcMbj?;)ZB}Rn~-qUOkTS>@$cwNTs{K-Ta`rfC7M2RNVd< zt1(32U>1D_+AR0(Dg~SsU8P>HyiMe42K5pQX`=27ZVJ|W#@I0twAIn^#Z(KTKte;e z`*Hx3*LSb5`rV`U`F|-|tIyHd_RS4_)fQW{fjLPQ-SoPPFEOIjN``>^(7MGONlr~@q+?+|uq?u>V2f#TyG zVP}F$g6~^^+h#zhM1yT^&g*ww)W-`5feNv77HCe*#{*lQ(!<1py1TkUo5dZ|t({Zi8aQ)5(&>$ysVX=}Q|6aOhH~L|E<~^N;lFE?86nsrT(?uF0lrK(!QT_zDum&w8;dQ2PBwsN1 zG^{EbmGbVN&$$>bm?VhMNV83OaaF2l-yKAceIN z-%XsxhhTQC1gLT0@yYLNU4*hT-M-usOPWB~HQ-O$PmPUty^t`-P@aND3~ zo6~R-!XYUHn%@Uz#&%1WKuRqLs@MxWZn+#r1xK)z-7Rj5tz&Qy;Z7P6Bc|&NpaPVw zu*tiyJ9&VmNI8}jHAm+cm?Y?^2C=;@2Hs3oinR7%0XfHQXvEqEsGv4{-vt(FbS1_* zaso9`TeoNX*0+cfwu&4~a!BKox2Y0a;8#f$~!n3iic)FsfMX^;+Ut*$!=kh>qN zt@nMoO7HoA4Q1G^MUDD2a8Ew_3(fvy+}0W>;(_9yOM zPqt-*8`|LPlPsXm!s+>hX|{X7{K}=#er$cy zm1AqsApOT#1RA_I!}m3SM5#A_XPz(xOspQOKhh90KbzDu=9df`T4twD=L9x zF8j`0P}=EZV&3v!f1Ct15fFPj9_m|-c?&`%^7{z>=DngUTArW##T}wV0CsobYwj>A z#V86R{{Z(}F``X&Dm*~n+-S8?VWBw~S%f>%>cr&U{{SD#;*lC5!s-4GZd};Vff6&H zr!*^c{Pt1_FLFM7+(frn0^}&rRW3uaKABIv%LR3pl6*hakMH=iuT9x)+ z;Mwjs4VPUHpm-vB=*h}Dpd#yjbspigL0d=)ZjRH5twVWgf&n5CtqXL2`0E@62A6Oc z7u$Cw@WJp(1tEHW8~*?o5&)oyD1Dt9PWy;LVg-~}`t$a`bl9yx2qhlCo_2HgU~bz9 zqptPz{{Y5EXq33mR{TC+m|?!f&}@)-HBZk7#Lw00uXt8UO*;ma&$d)xfL@kW1J{!WfE#f{KpOWrymY#udy^-o4+~kLAlq zDT4~1z;uJ8}7K{X)s_FMVn$mo|u{r6e@~Htbw2pw8JD- z5)~t(WjG(S$wh?#!dxIJ2;T2GiA0)&XEAMB7iBFg-F!G}xXM4SYykm166x+5?xDC1sy{Wq z@;&?!;j za0>VeRN@I{fT=Dtj1HhhF1EBOHHT73NOe(N9kPe+@H~3~1*p#%NO73R-2$K!Q1pC> z$0m{@AQTh_Csz_Ar=hRsNR8UbfpAnbU5R|YKa9H)3=V>pbncC-y<}Gv28ji0`NLe* zmv(eiBvxB%04|ysL#omS0DwQ<&h6F1AWu;EX%u+6nJQ)M2_3?BRc`ehC4yNFk#!Lc zeN7$40b`46La}!2(>tsi3W5j6uBjOBvtux+zzC{<>s4CLAv+ws1PB12UfrgqpEC9x zx^@_?VE$P$reY$tfk$)&cEhQ#5&&zZM$>OUjHC(#6gD)QD|NG9a;0WQ2}i+%sq+y5 z(vBd-q;8G#N11402|^9+wJGVxcagWQ1O|nwq(l}N=v1|clWL8e>5Z9pFIRC!`9=1a zNZUr^;EocSySUf7P!$uO=ylHc=PV;o8yJMy3lFmulTTs+!8mY!>j$tx0|wIlulYQ~ zLBth6z}#kzIy~?|8apIW8pE=bl7>yRl5AfUVi5a@^dL>BK#IF`ZBv}Y9&aKopnOr+ z>47r}AvOi5a1B%L2?8ag(jQfiH_SUbXbxWay>Z_AgFvVdP%4InCw|O3rpW!QGptkT zVL~VvdOCJpn6(vh5DXJY-9GkAL0KS_ms|Mg3n>eUL_=?a0Nbt8NAB<)c0Hv6*0gu4 z{A*aynF>fUXqLLZh6NFzyEzIc4N+gr6FlLo9jKr$(Ee^pipXeQQQRp{is8@qj^m9pOemjR+3~DhnvwbMn#9ZjG{k8?N6Z8K}`2 z1vz+FZvjECh}8=L*c=Rb;C2Y>dam70%8y(L8=!4zy95wD?8|76dMPZ1&D8y7G6>1h z5fKoCN|xgO;cT;rtws$s!xI!YuA7zu%q?2653Q92F@X~{5{_B09JyauJfgi`c0TxQ*c1qZ)a|p zd8Qa74GE?ZG#+dC{*Fmp8Y!>Kw5HFq#yHtfLIY@giS^Zd!qU(QHH*ZIT36F^sm8z; zKv61+@_uN-c2QBbHZx)4$3~_`Ri?HJo8b3%QeBxf;YAg95?Bf2Wz&tO2!JhKkHFDg z2bN?Iu_`;>-Ae3_aOn+V$T*3x20H}DaZnLOSA?IueVEa#o}z36snFZc)y-{!p+G_L zI+L3Q;fMx*p4VwcX2cQ3};8fe~asmmr@4 zExr^>euqA2&TQQ%QvK7oo4b6Ou{B*39j44iK#N=pco>}xT`;!4sEKL0MFjy}%8sU+ zt=uUH0)>Fv;8(tP0Fh#vDDKl&&5uf4d8klAnw#&AuBNez_Mj9{G){0^_baxQ71}{H zrt#M`jY3=mpwOTe>u}bvX<-OfC!#3cciNWbvX*p6MDE2>ok5)5GUKuqge+PU%jv95 zZK^FY3mTg?zvCldgD42VjQw5AR+x%`q*PiETeDl^adpg;QiNsoB;UoxscgaRc%(7c+9QHphUoGCgc994BqpTF6O8z4~v-GHIB89Lk^5rt7<+V8i6^4wU+ zvJq`yE2eGMQ9u#^0svK8Buce)jD^yG2tt7@G@r{bGBg=0>!9KO90{ZuX|1Z0ll-`n z;YBD-M}C`sZ;tUGJAx|bjMZM*ryU_{2_Uh5w{h*Ej78n^Zx)D0D7H;v-kf1c(I`r7sKcC{%|0H@Vj={{{UYzU?u&c zlhgYA!ZNT35PP=~GDrkhn(&?Zh-+*`SG&^nIsQ3_t?7eFH?Q|^H;Ia_Y1sT%o#$%e z>BE~B@E82xkpv`G>^ym`O=S?B0Byjg-#7TUf}s%+Vt2d>cOIt`TIgbOS8hp`aq9!J zn}5N_8dL=dq7zCU>f#BemxZzbJCE;&F%%$D6$;ks%XhoXjQ~bTuTApCM(Y4T4aC{c z<+|49GJ|HQjx3zk{N`2BBrOk{0z?Db?l~7|emej(M)lyh0SqZI9*iA(>!%;F2obAn zR%=J*jT^_W^r#95bwFL0AxfZl&Qu*TdG2h>=oP8W?UsL@++;Et*ow;WcjwJwAB&hI zAM>rcgmTkSx73oBd3Er)Bt*alfV{uIX0+viGJwImNjPgy_q-93f)i$^l5=lkiHV!q zIumB3*Y$UGhLKPJ7q|xf5fwdws;#;F^%=M_%podB6aGGVDs72yFfC z7!`&9JK*(c4gRhWDmGQ7(3a>wDBuzzZHy#hyH>}6<`5!;j8Z=O`f1nhv(_UXJLOcX3ZEo#PWIac3?BH~p`Ldt+{3=Mm&+^Y=&6+69MT^pdlko9SO z+9;oB?3}nWw!~lqZoaXeU{9{Pt95#BvC4q00u&prn{1@xzPP|Pf;4trU8c<_e^)Iz zEub@pTe2IV7`8+lWDsWuvF<5~0s`XDHdkk_@s>9hZq0muOXt0EK)Tqa7VUQP?=cjY zs?if|@FJSC9wT5T#i#-4zrn}}38Yn4)sDT?`E`xak`rL`d&|qan=0_Sk$^p5-gs{r z&ycySB!w#x>rv!H8j;Q1)!RmpgebA>dA*zKh!%`ujHLY4!$|arU|0ure#ssEE_W_U z4Lf{aGS;-juZz1)+JBr^plT0#8@(^&*^nFoKuED)I3|;LEmbuEZmc>SF7&vhJOUb6 zB{o~$8{EWJk$`|5`iAG$;Y2M2hjc0p2zlN7L6m%Nz?8pc++{eB2qaA~JC?8c#VtSr zkEwW(hO}Zp-Mn2_;rIKP2?EryN&)zR5ygcES8b)6w`|sra3c*ML;yY8V|xr}^Z{u! zHoZ2#+&7gZX&6*BwyJk*w-75)NC*{IqcyI>lPFVI9RaXZX2dtxZzRGA13@0T>3B_3 z&0sV{h6iIfW342asj5*mRg0j0KbX0NhL8#Z{A{9^UCC8oD$xxl`*-2!V=|}^iDH)W zG86gM7LuU?MM9+nV_(UdQpN}Z3dtSz81zWQ zAd{fzYu$0)4$#stC8;!<4tnHlO$-VJ7^AuyoGvOg%~A2BDWv03`F$}}y-13C zSDI+dd5sv}Rz={+4doQbuDo2hgNdkn6P;JY2D(`&*1hUx@CwKm5@4yQaZG7$i`hYi|8!#7`RO+bJgXwkdd z+@n?wfJG6Sgtor3CV}dfm9D_IebtTLE{4%EfPL5^7M|h`)k**@SA#uw>5L5xM8*QB zvt>ZX71WzZM^?J6$BD?MA~R>r^6!?T6YT7Clg!4rVeji9immOCp1R{UFcGj zNQDa!ci3VHyb0J}72F-3SMkT9dj%Fmbg=0+Htp4If(Qg=X-AewZV zfCwF1zjTyvqE`6ukYl}X?7${Fl_C|r@#i(`a>;6`fNF;JNZy0#ym(+p zMK3{J1AmOTNX%ry!*;srX`JJ%0i$x&Yp{l;<=wn6QVTAHFo#Hm+v;{{+K>pBbRrYV zvnd*=NNFOn@M^ulLMVf(294xfYo{Fs5JeT^)sC+SuJP}k4J8n*+!ZwM9?*r>lvaq9 z{x=+4=!A-?swp%xUHEIaK@j*Tr&yu$ZPzzVsjU!=sGB>&nWQWY1c)15n~T6ZCK6)R zNEg}-6=uBI_|u35a-+3xocwhc7t;)yij z3R>v^Ppd$S_fmHwNP(bO1zBVc$#1z8kSnxd0=95des>Xw@n}Rsx9{;&Zt*ltPy%bH zyVHJqa^At;+kjhD-vs=)VQ2tB0S=qn>_Eor3MoV7w)#5$H-Q2rLWmG2JGZ>UH=-G! z(^k!I{_*!A0w4wMzpviI5Nf2OQDo-Le)pJ56Uvf&;?iWDW* zru8UzUh4!-oCS4VufaAR`|QVMIJ*c1Nn}GKwt}(+Fz@XX3xT+oa7Kgbo%@L$7Bo~R z_Q3na!~isk$}EPD@$c`c&|9ifT8-AV2WZ{@0OV2s0L2_rJbB(?1YfyZwgwg2TDPY* zKW>OjgfIYU=-Z^g0EfUCa$68W?P-V>tmO0i{{T2d2pn%8<0*95^#1as3L&I-{{Ti1 z5o)0@3U10k)BOJc4gd#1QStk)`@m^+rJecr0>mK@vHQP2j1)?gp*7~U{qB6u1a&Aj z&)+|%9g184joSjrU2783Jt8f;Cy)5%GU-zRG)H&$e{moLBD<%+l0?={jSPjF28qUU z-r@;h17l53)%^beIV-ZN)i()0fFHwIB{no9uTp92`MiM=hMLmde3Fixakoq|Yv$xHb1@-{&3#*aQgiyhb{h?5W0s0p)bD z{{URYERty&(Q7?h0EYX8)v0VY5AO-7adA~5fexZBEUe^kb8P|(6e_^?yVvqzDM(dR zHu?yiS-o(W)pP^dv*5Q<*xaoU79!YIoPvKezzxqtK~AL)-IyKH#nuRyaeq4wb=D{V zlW2ua!%FBkj-?;cuJ=0L3DbDertl;izd4kUn3MZ8%) zwA`l56dn06GQ+pJKaM-aDuH?gF>Fa^`e<_jyL%I0`mT}ht>!}LH6jk3s;;;US0~XFij1#$OATd~3n6z4Z79Ux-t*dT z6osHA3dM&bXWau@Muat1!F9b3hglYosDnb$e9cHv29NRfaEt0uS5@Ng*m zd77JX*DcXE{-bd=rmKTh3#}6UJjf#gvIK!kMMCWiFluv2M3ePLPjJMIBcvw8 z+Ev!w;5qE5co7yBAI8iC-N$Wd?_!HAFeH3hi}z)hbL0#FSh7}v$^&N|b8OZcAuAG8 zgqPP?$p^)V2&q9}pMG4F=+%uZB%}%5Hyj$kuIkf@+qG~t0#s~_0FiASisPi<6hJTP zc6V-SiDgiy6!eBc@k?OE9W8zn;^H2EAz^>>e$lmY)w-lb0Kv{h#tBtM)3w6u^%zj3 zMj`+Yr282_u?mX&7S8VCqfXo|k5!@?vq$_X9njI7l zr3SG2s&be@UuU9s=%%|Qn1F-Wv5NlyZPNqw#DlR{A@mio)|XyuF2t1zF5nK+o=#l4 zs_HET*3Cf^Z6-eZhzY1@RP1y-rp95@+W}Bx0PlJEaH2q<6dhRc;qHy$R~8~V0YMd8 ze46e%rU1>vybIQf`-2>zFo$%n#n!Gb5D22Aqtb!xh7Ub&L|uYt&~!%VxVwU??Exco z4-wp zPtGK8Av^4Rv|qQy^u$_uu?B^sVyi1Jb9QiuSe%R&hxuGUK)sYuY*k{MnsK8XN^XLz zHeKt@PPCoiml&|}_VDfan8uI*^I@jbV$-LtHQa!TFR`$FUz^2f4N`>zQQuBj*~^9| zBB3-`Snu)va(1*U89`FMzKOzpSQ`Q=El(C7K6{3=4Uy@H2R+?>q1l2is-=M(+I^&W z5}4inzy&H*Td>!Z?}LmuHnEp)ZPTmd-U#gps zub^h4&>{v(ianluSy2_i0-`fzs1#(LW8P&#pC||WU-PVqb5MXcTk<=T*USNc3XxY@ z^GQCpSQ60X8rpa?V4*DL^JgJNDxY0*RI*F<2=R@vRNSctsi(|8kWMrB!FryZzG|$;%>+_`NAXM-zkAr zOhTp**2K_h*y49GL^{|?R6(FWW)j9;l?g;E03_=(Lal`!d3NbYv#;$7rs&jr5y1G% zOxI>{Qii;1Q&_DLWi(n>)Kk2nHHOiulTY?KQAy{R@oU?nDPec5caH@0DJRa_~-sRhqz^# zRC?yy8x7(Wa?>RBul_JUz8DaIYwF-HT;Oy+>jWyo?)`a;6)T~${{Wm)BxRWBh4^=m zVzonocU+(#5f_5+z?e|aKK;Qmq-;~a(fOLvqtlW;X7x|VD!sU-Qhe zPbd6q6{P9{A|CYE`Gi2|5oLbETh{Si$aKxKd;7ee6qT!ES|9Iv{KP0}7^*;j!|pY< zA|tE*IoM@R+3d7Wto}cpcP_YyksE1VhoE-msRdfPwvDAyxT(NJ6$Pqazw?!|0zs&f z90+S!(n4e^18wc$i3;eULp*-eDE;@C)CRSxG$={e_zGg9VIpkxcd-7mlvf_kkasLF ztr6TrUeu87e>mbQaFq-ltraGr&H7|Pg(5_oC_8nu{q7tBfF88dZ}}WX?%Jl{t$gqN z9PU(A(5OLfhjY6K-rxw;k_EE=01!3k;X0EL80&|{A-H1-gomL1cS29+6%MedqogDG zKKZMpZE*sH2V@=p0PjToMTn~k$E@c?U+>$x*4tNTBM&=?0L4VCF3^A5^AM{F4QKAn z$N1(TO9Fz%XbDGMo8AyAbUAI`5DS2zwnPinRu+9b_#%MvT9Dv2sIR}zk*r_^P%t}I zdAY1@QBq!-JbN_hXY;I$2wef8-B)Vs^8pRL2r8QAtm*rKkvrE@NFAisu`tTWYs4Q{ zQcg^vf+j6Ir#Yq_-ZAf7Bo*=C@ArwYiis+#Y9cqbp3DnF3V_t26K0*YFS9I=(OF{p zQ?cj!#@5+VBHI_P%cuNo7P2Q$3eFGt`EnfEM5wlxhyYki+ko5zA{&dc`jP(tLd=F; zQCdT=Nc?23%m)QOVw2ncXmRU>0fqp$1r!SU&BK!5Nk$=(vLI^Jo7-?|K#>&<5h$w- zMXvHvwL{YECg$01%vR(@d74FD(|=>9>H*lPf=vWjw5Rav7;R{1Xg4+!_+g-e1XPKC zPIdibB*`=wtU`4nZTTrNOQILK8Z_`KcjJ{lqAf~GUVs`&XUr(;HiaOLxAt?@b-Z=b zMItom{FlS?xEceR)Ch?t^(l#)bJSTnuXPaKQULl;Iczk$w0L>E)^$~5N$~9bk56#% zebbczPBKGZw7AQKpqraDWSg%rG8kk^Bc|y{pTDyPbf8N^TRMf4vjh#T0%|HKLhD<7 z#77beM$`^XZdFW<#8w1hV2`>sd9G!e_>3tO@TCLugE6t_q7tf)f*P+QidZhX#HkWN z&n3#gpNRIXE zqW-Zk8xT@8f?c9Jh&NYHTN4_Fr70HIoq379%50q~P6J9$viKTGq*bz&1bqJh+{G|i z16?{gXKyfvVL+^ot(;O>e3}k4QtC-!&7wZO+To!WqCwaPZ+qTp#2dtd2!aLx_Uud%D%;*hPaiJwZ_$Lc#ES-wk|; zk|MD@4B2D+F87eDu7x;JH{A@uk~cz#BpMFij{R)H@MK7UH1J!eQG%m{+GvCUb#@|j ze{hQx6tauUqKsv~-dI#b8W9G{pKTxC9MUkb5DRKoZq?v7+*hL|NUy0h=+}RDkEFn0 zytS+RZ+*cA0>*4FlS_5>FK~#k)PzNqx1qtW%Y@_s0i*Y=ES;>I#HLp53&Uu`YHM`K z37Kt_LM5-W$!V3E=(K?vDCqZH^LF6J#;O#AN_l6Dr>Cez&q+Zmy^U=h{N`9LfRu~P zrSD%gn-M0stEE_;J2uCi$KX?0NYkf-OXoV`PeG)J@VCBid+$uQYNc>D!6~PH?-7p6 zpe_S?#M*rw^&17T0|+s#iRYck{XI!pq?pj~v^C zFqCT%Iz~nY*Z0RHv@lwYUC}J`yoZ=X1wl1wMEQB=JBAWuCgPXYFUM}@a=v*QG2429 zvwHiRZ4rh6*W}aV{Wwe;j3-=EVjv=LE?8iJL|??vp{DOn?i*ORPAkwX*N-s*$yh-l z(;p4T=1w*B-KL#z8atQ|{L-3%$!R)7w@fy~>Bs%<6Q388$Z3?^WLLG=7p^UmA^5fBjC3|)Zo?+Pi* zJ?h`%PRaPS2oMHrK#fJZ+mijii^(h{k3^(81GjzqA+@C>KnGOT8BLfJBcfDVD%rfyH`3(^FOx<^i zI1~ZeFBnt)_AV?U1<>D@{4Vdg3mRDx$N+yHebIr~S{5;^PJ8eCh9wk2hmp9Oe5bl@ zByTlBF|FFYtKSRI>VW}f?-sqEzTzaDr8M5hgs#p0W6*7tjRceb0O#z&n%32!1Ddyd zsh4P_l4-si_x|v0mGwew`*xXzu#p(Fsgf>EL;R*o|U>k)_+S&+8Cty?c3zqEwW>&QE%REjnO@*2O{b z@BCp2xHLO|&pge(Mua%r6{xQbLtpcqCPs9hxRV2IQM~=s#wLMROlC`1a4XN_<@Yq` zCy`)_{D1YiXf!r0W6gA!E_O(pVYl#a`Ncy-4yR8w%tX)x5qJ6X?ji&s4{SH>zHb;} z+aPEeuh+QI+yR6f{f(pp% zNBI8kKt5@K2b1U}z6L7s1S*2qtJdFNxph=Xs5{XKc4;-{Of*X0SFK<1tG{yWXJk|y zoKJO&2#lj(RQNI;SV`_{gb4XJt8}IByk;dr1gTYas@iO4fltwP9RZZ2b!Urzt>O@* zP#9ai6_7uRW*!r+#aUjT={;~13ZdUPE5?1ZMj_`S0?|}Vh4J(ES$Bh39UE9I8iYSG zijhbcV-Nk7ce=<3mtliyd+96tk%K~18_RlrI$IYIAt*sYA?4&>)6mvj5;PJ+j-Z_D zdG`XY80)ngY*KvrfqJ5b%0+l@`*h~ZLbND2Kb3pH5vj;HX$pY8m7C#f!%0fYG zK$QL?CFjExnS!DMoP2F2_I{2MDQe44)3G@*r4VZEUi0cg75+V27eI(29yYtHJjbp8 z$cI`t-{r9L3tK@1N1dQe?(lpuzhb7t0axzkkFS>=+OCi&2HDylEXTBth!9=s%_ont z+;w;iX#R)pyqY{`!Gzw|ExRpexh1+AwmX=sJD?zddO@den9S1k#K87oxgF;DP zcpAp(14KzzO|FaU;jC!Hnt?;M>2}x(cHmu+6zT>Is%-xN+_`v1WLL0LXvX}Mm{6g1 zC@#ZFlf?1DqXkex7LY+tX#1O`8q6iNP>5^5-`pdV0NGi#gFWx=_$%V;Dy2jFq0Jm} zNTqg!5$8B~{&!eF@ug^1>RVMhuFox2!s6Y4YvgL*n_Kv&MPwGoTU6be8+DH;(E`ON z5oYF%=+-IkLrN}zZC$e4hL#AdDgA+q>2-vy3$fG|0Ygu)1|T1`P!Q)BZ1f%96^q2x*1v?^Axv zCaMP^CP`H6P|`(3IlXFPiE2R>E3wfufv?9CTNSG+w?*!Wcj>HsCJJyH z_US)B*D#S?dl(YXek)wG9_4i-}PSN&4OM<-xRL3L|B7uBWdq5(+3_=$C(g z_hW*hod7}IL5peru0he+qrDrV=r#IjGUs3vW{Fy_&ldsE#bE-Pt@^t)eaniLmvX_5 zu&^U6G40W-XpTqSYf@`k-GVzg1qV#$^2w4WECfM*k|DYelhXodkx>l=ZlD zl}LEER3p8ON1;`;5JDP7vPGGwOih`k3hS}#@^8440x7BsBn2$ui}xycVH9mWnl(-r z?jVgbORZP;QGD;1lA*FHo@`H2!vzuqZhGw%qhOoX0cQv@B32fGC0q(G6bB%iy;I8* zc%<7L6QAhsF<~2GXr~8|^_#xr(v1+SiJ(_P ziGO^+yC6cvbO1}`d$E}+O&hZWi|8Ia(F{ruwe>hsXizTsiMXN-STzaVsyg6d0ZIr8 zUD3W!OA*UNV07z@LdG$YBSSLse zpj0=nir`_D&=*^tEPLVQaX?ZrNJiAtU9VqF;HZom(ADKCo$Y4w5j22AQBwZ^tH1Q+ z7zG7Dhx2)UX=Z9OliCteobZ3P>}g`W6s}C%n3pg zmK1YRf6wOgcLB?ds>k=&(^(`tqErn={PN^RfuJc{t=&s8F<^$QU49?^-{&6*U=L^ykC^F8foV=h zyl+KZsXa>6bpHTc=iJu-^oLKU@K>0Tni)d{K(W#upZ@@&_J8199W9S@e@FK$bwu|F zZIS)n8_Auj0e!$-+rM%hDu0y5Y+1g!Y9f{a?mfasdpZ1M{+9E<-UuOLYEtA>v_hX} z{N(~cUAEKy`H@I0={tFnN{IWd{{X+3y3}=NlJicmw1Sxf7Inq%O2n#OPkqU5#jdyq z{{V9mmp2fGzh4Z}q=U6Q{{XyZ;L_PA${)1+$4bPNJx0}egAoEN%I~ZG@q&S33MU{> z`}=`5h=8h%n(-V&S+0UNU&nQ?E*6f?l+o$%{{TK2Y;5YuPvg@80z$hK)~=0Xt%l`m4ZRWJlD9SXtejXTr21^mu z*YdjN6gKNeP@WwB0QzDrCXpC_(rRCrmMFD+c~kG6<4Ou76@KsMA^tLemH`w>?R|Fl zxLS3Mg_5e)ORwSPXecZT1L&`f9ekf0(gJ{{G9mxKgk*yQ$R1$e>^pVq>ii+c+Y${e&HSUYh8KI%!pap z2@fgD@z(c?Ez_P6-8<9$6IhT1kx<$M57c~oFhLuD1!toW_tQ0!vd~?WGuhjSx&Xk$ zPnEC_4-;nBbRT)1a=MA50Mg=>t&^ z?kN5^$8iFs3B6StKQ>|(WsXo#j>`PlVFlox5OOD8{{SKGI#zH55UQ@imbhBTN3?hl z$OS;bE@G&fC0?9Yn%=O4bkPutvdJN&^xVXXkbt5CtFDwZWJ%Npl;|G@u;1pf2Y|*B zDI;2?FBybM5O5SbSVY*DV_}*HzXfHz>z~g?zBO*|Qc(Lb^Mo=&ADS9o@D75-X#j-n>1?g&U(rR<;2k zGj{@;zy((kuJ@{Y{zEd_)&(>JbUIO=n#0%-QAh}*1Dx7MU5+@+;6~MEu9W*eQNy61 z)BzWoP7Pm-$5r<*3W-ByUAgc61D~X2*o|Tw00aQ6J>y!s=pCxB%@qK)c?CW2LKV9s)yhJATY#Wv5hF zs_pLY<`Hc}DCts`ojyCb2$^UpM}m)JZ|_-*0#Ydglr^J&H#OXH7@&kB(S)~wsf=U@ zh(Z>JgQ1SPZ*_VhYDp0l3$GLN1VM|tgQ4Mc6u)(isHoi_e-QJWeWq+dpaTP?)TYp0 z?|n@)QUWFvA_UWKusm3|bX|sObeGAxYZ8Fr29b~>)Zlj!+QNuZ2ff<5-P>FccYG6iWTsz;8iY1c5AA2%N-`u8JQaLq>8Z(ZvdK`DQKAQ8 z??ULrh;+oOU8drT@Amq}axEkWyELt`&2|YbP?-d~YpGP{cb==XPJ&II>V>l@r6vk2 z3U&k-d?7t$QEDPZ1>o7;?cOZ{(j}(#9xs{#2Cnh{0A`*8b`|2h^q9s)(l$q={r(>e z+ggzd>eWxG*6Uei>*^}scliZP;3KGDJca%TKx%x}G9quZx*tt(v8IiN2$exdr|y+{ z@cu|+;CzJ=kyk?OA54hdinD183!_j!aL8UmTYcO&U7Ex}7>Jl_5v6cVHqRJy)i zcUa8yMTr0iAxCEWTx<-f1Y&9f4G*u@;t5q=0K5i;8T8j2767i00S%$*g{tgvb`v2x z9q+x>zL=B(z}P~~y!U(h<3O^AsPri*{uw*!B9y8CUb68tUjBCzNFdN5Wr;TL+_{o< zJ48U(^Gqgeq=OPac1`~Pcw2cQ8vai(Y&%~EVZHbGz$1Nvpc=2&eo4$_0bPAO%b$Ff zX28)GYm-BS)fkFEUqt4^^qRpP2I+%#pWNU1#=b}!G`1dj+*6mMBCtfUX1|XxtnFIF zLL=SNe-|S2s)ujV&kuSS8Y)yHQEIy*X7AhA2Lq@C2uQl*B4D5(jSI!l`Tqbo#I=YI z>2~X9)AH*Qdc;+;bALOUb}Rrx@PErOWq6kB?vK22Qnb|jt$(Z}0js5FpUxmv2*vx$ z{A(Q@U8J-JzupvDKIyX(8vtrXzwZKV{{Y6F!oap&d5g=M71{p)9mIqOea)}y;g!*7 z_XEkl{{YJO5By*JRQ~|S+!)NaPcmKJc>9#Oc@@nPZ_Syt4ZIAxhBN~xu>jS5GkQ8c zhEqjrCA0Z)B8n-hamuJH>8{Ksl+uVT{=VQ?KedJ5xuX<@K>q+cyUJTht)Lh6*Zas4 z3LUZ!%rFQ+e}A(P4R;t>T~F~a4hKh1-gx-jrKqI|MSnkXu?Z&>kMMi6-fZDgJUnOa zNFl=M(SN`1H;DJ(zbF0c@WcVI0aPW2e_SxhQ319-PJOu0XoZH~9gEC(~XuI$gEF3>jnjlmXFDFzw%7mN|HqEfO&x$L{(sf z-nosHELi9v73by6!`Tx_reDjhnm@9vU5dS*KkSAzI!G`Zzl67s%@+nVK#H+FRT7t< zafK)igFAiuXZ_+8rO3KHNRvm{7;PjswkF*(__!bzBuxuOJty(b;ZTf4$D*CK%p&9# z8-ehz)+YWqDIx-dBq!FO+$4=6U>BsV{l4M_j^%?>z^Xg;dxAq#`zz9a%Z7@QLKf_5 zU(Wvkry?t0>4kV|cDGvQJR3U40(q%ZuhE$b#-)h1+_rCY=QCDx(1Jajo0|KI0|^RM z?|t!4oVO}aT0|sJ9_smwB~HK*cdC)E(*a8kfS~t;Q3sg;2S@}Xw^A3++}rd3g;NQ* zPCoLu^I}j6t19gTd3SNF5P(}3P(Qc3?s_VL#W)uH_I_^~E|RE1yN3aI_ohtkWlDz4 zqDj|JcYwfJivhdWXr8B&SxCa^R)B-O4OH3YAcPYIXe$!1r75DO$%udwI-j9h@~7Sy z#HA2~rh*<1t&<)`ll&A#txT2@bA-+V`jvqR2D1;2jRfW6+ zzn7*W)pZaw3@Wu-?mR~NMpcR$3hvHg2&h;RZdjLDg#=-^^eEFm99_ET;CJIBRsp z0Y^~aN&8-62C{>uPI@KY?Drf8a@!8Bv_IqgR9bS81bYE{Kc`XFH1|}2DYb==`Kn=C zodO$GMM?D3ns&gViV`5vfl$!*07xJaHnmVUIzNpEu_M%EfWba>y*uGD=|$h}$+pUk z{{YCHWDIX{SDkD}3Z3$XAmRhJquVeb4cac&5n67gZa5Hvpk1gWyS}kU4Gcjr2s>Ar zJ$L6^TC=8h2vpNf&0pGOIuj)X1!%fF;c_5?Q2>jo4N-r|$)SCadz8{ibck>2Vv>Wl zJ4(O6^M81_10~Yp)-g&V9_!qSbh8zM77Taz`z|mMqLA70YsnY$wnzoBl!@W3^`gH)Sh)M$pN zV?iYeX{~?^Z}F)vIR_{e+B*Q-_i_fX8Z%J|Zltr~FJt;;#?c4^(t(JZ(##_84XS`$ z8&l5a=+!`)p=c7PPH%=%7#4shLTuH&VlC!S1euulwr3#Hf zRHN;h)&!1NNI_|)*594MThP5UrAU`b{r7oTzd(zSD^u&F9qUVT5|$Ubb$piNeG08@ z6LEj11;Bws5@~iSj*F#y>RSZtR1lHuERC~|8*!CHDOwd>vboqQ3xY#jMoFiT{!8fH6H1XrfJ zaZ_E4G-BNvG-~Ve1_YMxL})-bSyKDlU7+azt*YLD5TARNK{Zwrnq9DMIh&~1E3VY5 zsj7%%4pPO@c31TL#sC1_fUF_ry}ROXKX+h&olP#^OcHxSl@_1RiGRzE`_Mrv z=>0bT02c(%%F-x3{)d{bJ4;Y#?Xcg&(&B`0QdQzUPAAhA098Z^QmFPC)BRutgQtM= zc+bR!x9xu73y*+k?@Nwt8{h`LyY~^2Q3>ofCq94PJ!#y4)i$@=^!wdloj3xu9zRZ# zU%1+2Nnb2e-lq(kZdfZnbI0Z2RVV3L|@$IRm!b)zyAQP<(Yr*;DeF+ z&AD9H_Bx*6&DflB_Jw&eZYce74fn!x30eh=dpE_v(bUKapiqkbAI5Hs3R*w<<~c<@ z{=U~Csycq~{(t1}%-LtFF%G?59KK=*$D;MYU>3**tM~EBB!pdt_tOxN z6SQyt02qj+({?^j=EqhV?D4b9Aj4J@@&3`{`CSi*tKs~$Gu@$sPQQP^Ic1T3AHU`xTIVPu?SAKiQS;h_a6g}T^0 zl;6wlZ^2!3v^7uQhs;&55k`pJESpTZO$iiezlQ$+oYIdhDhufEpX&RJR;*P)_4{M5 zG0f`e*hYLmgZH?BAkEIpukYXa%2#>{FJg-S0LR=O2%r`k*X-}@US-FqpvCEaPWLvX z*e@$JKP?6m_Ti3qLDf~YHVhz2*nj00k84#vANF3My&q;U*mW$ zQ597K^W7bWmf+nqAR1Yuba?NpGNK4XqDl*GjZ1fw!3{t{yPvd^$&iBeAe~gL>-}M- z1Sux3ejVB6FiL^~h}FuDws!rlGZ$(Jdw&Ex(R{{iBA@{4t+G-709a!{@}map%NS_n zaU4|cDnz&HDw5B0Q34$Z)DyKg=e@^j=mzo_6sx-W{{TgxVoF65r1xsP@WmB^q(m*% z;6dGKHI28VIT7(o4R!YrKvlHtPeN$F#zhw}Xrd~-1rOiM-1>4ht=qq^DP|_X6&Q7^ z`>bVP0~5fOLtcHD(g(@y1F0npRXV1C-{D(~sUGDe*tg^dy^!fMT>D zgF=G`7*q|KytSfrDB<3}obnwNAO ztIeUjy?Fx=K?$YayJK-Q24SS#K(Lu@(`C6J3GzhpdvH#wwxB!K`cF^ecqm{Ju(2EU z-&EJ;A!Me2(Lmd;C-<>1(@FxP15b1fm6Z1p4(XQ$OJq||$C#TJE|Tm8-@TLjp#qVm zQ%LA`l842(&5Rbb8=w)7y4A#!I6|9RZ=d}!0x%$ubv3QJnv?ftYk%?D*e=D(5TxQ-MwSV7xtS9hW8 zm_j54YLxHBuKxgTrYL31%C6$DR92twH8f+ShzgM&b5|IciDDqgFP5)YLvAW07?#c# ze4O|=%^+b@_;0R_^z%~-##IFsDg#J68P&Wn2v*cpdsFG?d&dh9-%*o~x@!Tld52*k zvgrqDsZD6OirTOOuJoS9Z(74On$!oUvV;6`hZBG#wS|#cP#0ZrH1JGH%to)v0k`y7lP>elk z+wlV~M{`9F68!uZTFn<=A{WQrLjM5kA$E~r-5%Y=l=e%4f6A-4Eka#gFC1uza<0g; z@;3HNF&qd*ORapGU)NasB$DArrFTpGLtV=weX&l{z7o#-n1tL>2)=BF_!CTSv62)j zG(UpXf8$s-bAoO0l=!yI{Sq*k0 zMIcXWYx#sOii4$xd~UtwE{~Ai$U=L2jZ9E6LML_q0Kd$LH4=>>bQ=n=Ca?7W03FI2(U7Rvq3}L45SUj{ z6fVgA`}4;bIawQS)OFAJ-dZ-`Q)+}8gHr{BkNU$vw$r-(F@xyBs;HbCsOk-d{{Z;^ z0Kh~7`dFX%2l|p*iZT)y!Z1Vm{{Wm_Q~v;){{Z@~5B_ie0O4|jOj%B?fK1-t?ON{z zs>I4KuY(hGqLShcG@Cp)DWM8nV@wCszw0bsDEX`_vR2yk{{Yq~Uv!9hi92!w}C zB>6wA0than!r~e=Dd5~y2qvv>`T3NBov%6n0K8`5HE3&6`A zFQ3;iGAE@sAMf#)v=F=>`1|wRLVQB7f1mBg6m27k%W-3XC=QqB%rNO*_}Aaz%1B@^ zkiPGF$5jA=w~6YW+kydW9G~Oz{$P>-2!u=g{{R?^5k1>Qx8Kj0uWX@+6UNxyV*w|t zCbmgFA8{cPH(H)={TOitwRD>2$NM_x+Yo~{)BE!mVl7WlSov-)2G9yZ$7lRt4VwX? zwSJTS^MFB+K#=4=+uTTky9>E_&+G0$6$4ZCH>>(<1&9Jk*`>SEbK8?Csl8}!k<+e! zyyfO0r`~^0_F*F+kTne(`hPiEhJr0qvu^~Od9QH_gf!EobiRIf_n5H*8=AfT-!;9= zno^s30cbCBtkWLXUeyDhdE=0U6KX0uf|}PSc4q*k9sdC5`Chxgq!kfbev0*fb(=x0 zNQ6Gu`~CIE5X4GRe?HVX%Y$}esivJ*SOzNTjUD$1F3B4KX300_b=)fmYP`hJqwk4FR}@NU0#X7+JGBYNvql?4 zJqU&m=sthAV^u&DQ$wJ$TmJwTD7Uyml(Nfdj_ue0RV%jr*3C>BOR9?qp*CCoKzWdQ zu|je1v3;t{unhqNrlT)ik9uJ~Orv9M*M8m3IC=o3o~yS+dT@N^8k89Q1h@F(HuEYA zfG^syQF5;wmsz>I%)@>c#l(VDL%wua+4_L83b+kQf2}HG{5Y-Ro{A(v< zEl@x@n~M5ko!Afpo2fV?y{<5BTeV2;Uj3HaauBJBV@!;b0mGMSv>K`B-9JA}Dk>o$ zE3PLdxHq!n=sn42BdweBUYB`DRE0?Rme!U!*SgJVp%06@_Mh?Y%oms-#XSlr`zQ4t zjAci1l{C&v?*9N@ZjFi~Ut}XkY2U8h7SM=N-T+PrZ+*a3(t;FEAov4+bRmqJ=VXcs zuJzqM-eJrJv{vzM8{z!)A#_1nsSIc>Z#gTDl9(l}6JO9Y?aJ9=s0BS%sc+X^z~%XO zQkxU9Ywi9FYET7>d#yEXvJ1Q8++~!WgL|t zEcNvQ;t4F1Y$F5*nzT$*!;errr(>b6VTiJ; zD5JK~{L-@(ET)kTs2w$D^Sy2|5Hu5pl8wh{W;8&aLWgjDG$nRdAH!t=i6KZwOT3r? z(d;nQCcdG)Oik)h5gbJax^9Mg&0u5#P@%+8l(`^NR0@F8QbFu^m@Oa{4K@BKn*I!m z;8g=29e&zymo|#6qEbyAhU$FLte+8f3nHgz2ZT(c-inT^f3ee4)+x|JRSFPp-S2J< z0ssXku`Abq=4HVMtp>DVwLf|C=EP4)r5mOfZ@gZ+mlKkTjyjg>dPm%;rUW_=EsOdF z>x9CgvlLZI#tAlT!V@q_Tg`5~G=6ezM^x(S1709-{{UOc7%nSYY@@T|-Ate@nJ}S# zsXIB{_+~hU8<~O>bCPBotIm3h#S&jVS>8 zP&u;5^Gw6FbtT$RiX290;7mr~5Fien>hoIZfmryvMI*N!8rJhg!ZkLlyQSUR=kP@_ z8iNl*5m!+{C=?;_`OIB_0D)BSPgGx;z#vM1yQqzwXXD)2SOigD zSN#4r5CeE6LD90k4R3Me#UM9O5mqPgGb3IrVICC^%LiuN;Tg_A0-F?LR+~K8kQpm| z^%jAmU+44T5|>8UBn|M_{{W^GgM=cJiW_7%^5B%HNl^i2!Cv@f@7DuWI6N8e&oGK? zEft40x_QsOWs5T*qdPx}3*_aPdy@iM5jRop5X7?0SB#~VlWINhd0iU!Sdq8^18LHx{Qm%#z8tYsRSLdzeqzRG zY>W8(pN<`B@C^a^at&i-9ZR?P`^=~b1O}MS;b0fzv->cVuoXeSxbi9EX@jow2n!$t z7M8!q+!g5^0oKhM-~Hl7SdROoqK3xm5Sn5SS?>i|KNoO8-5 zJ&iH2@)Eqq{NIvZ!Y&fMfwG5u`%G$bX;Xg~Nx|58W#aOw*n%C{FC-!6>G5B$8c~C- z*=4vZ$-AMsUoJas!6lF$wQ*!5tM+ws0tlFfBluAZatnT5(9#$ zBuGop0>=W!P&goH-95p3j~f=DC7L-oM#W@r&_2jKefeQ-5K;kn7%vzf!dAw7 z0=B3>zriBJSoDjy=f|(`9me{KgxDi(dfVCYO2VI6wt;vNHj$01*!!d3!dmx|XUnOB z>wr>fAuCl{su63WUojgrmj%XRE_$6K&FN^fvlC8PRjFBz$scKgK2;Xd)yE&)IV z)T)vUGqRs=C~#xCFP-92Ry)i<o1IgdT;SEXHa-^p1Y{^Saa2 z7z6bi3JJ-1`O_Jwf`6TTjrwrqx9&iM&CHz0_aV=OAW2Bk@N%k5J^UaY}sum1|`wtmYUjG|$GSVbO#XY8Wj0>*Sd*V5*bd6j+r z>XP~H?@4AAku%*{fWGMGmoL1t`}8gH3xXqFqL=!`?l=zb;_pA<(B&K{O!(S=VlVpu}u0fy&z7P^4WkSgG~;t25rn{*ifd7Ls4u@fr0KQu+5@ zR6v?~V^MzNT`LTp38dF%1(X81e+*9pG@Vl=h0Km_MU$D?!_yeLE_Ux@{yWhGg~b#q zyh`Be4NnsLPmraE;p(~F;kaO6zd+Ad=so0>)5qPe>#S;nGCEMn_4-SC>vc93A zeKtYA=oWU@sh1{F=sZnn%FH&m1GOqEpID@=j%_>CC+W4e$fliY*i^pmZ6ug&b1Pve zTE~2J>O3FRHv(5QDvt#Zh10$|1hj|?s$O%`S(BrZ&EphutRBKF=(UMLvF=V$-zU4E z;d(Rsb-avO2=SI`z7uegS3Acwvvv+HR`5bR9ib`FbABJ=A1R~ETF2o6eq%k}yoC+8 z)ho302nswV6p1v+RhGvF$K@|G5M$A>44ykmtnI#df(3bFeQhz)8(PEdNE4b(d$}B0s952|nl-mbJ{%mo8vH zy4H})znEBj!iwz%8RXZHpgLx_Ta@Bv{g;MGbc_(-J}Sy+660^{t)m3r!mHM#L1_GK z=ZYgyR3j4!Q_iK&*&j#p5YZy7oT)QJ<{m5i8@8jrm$nPvOq4nq+Y7IGE8tFwC5YPy zK6k}=jUL&Sx$Ik3xi_r;J&JUhWFI{U!~&w{+6-L5+|<_ivkp$(E5Ufg8%V*#ytRv- z*UKTr+Qmrk#T274tyizB;Yf25Cxfg=nvl`@%SlhpuwC@4LXc$LlS()$J4esfKa_=U zQs;O$W8Z;xS`?=0Yg;RyCV8>7y_?#egDHC#Dd;d-G7|W&-0X7%I{`%Fm$~8<9IWF< zctl%DeQUfn*LoIBmjHzX17)N=Nm+%*DJY{5`SLuHY(gvN>gj(U@%0r5z!L&!iILs;)J8M({neo^UEV#L_e1`B^%?~Q zl>ncfPnu5CoY(!sw?d7iPrVoa7Ev%zU!kH(;cLs=W3-TCNSk9~sh<)$6EZ@spwO%4 z5KUL~IY?VHG`_I08(#rI34|ujOcHt|6(Qvy(A~TExr>W^*H7A2`M8ev1(o_$8<^1) zvv|;eZH1tOi=4s8o^!3CLYMIDKn7!-sMf4`3qnIES?cuRNkr(d4)=E1IQi9AWW@E+LUyg(ANf;kzT%ahT@VF7##69AUw- zns0`A;L^m(3c8-!Ste&h(@X<)gNk5@4z`0$k^>F|b*RyNvRI*Pnc(0BTrRoBYlkqc z2z1AIjjbf|5y4uqq*f;{!A-ddaUN9shoT6&SOM`}_U1V0J6|F6H~l7Rb;tC>bYTo0 zxVrtD2%{y=uHarSEr%4$W~Y=A5+cT$RHwMajs~;_inGxqgyRM(Tb z>^DmTGS+RCeFvbQ!7qrz%yDSdDU?IjmZ(J$EM`Efc@%opRgV@wTH)Ni(0_d z5FVeZz=*mrhvh&6 z5`G5>mZwTHdxni)(e zCJ-l0*@O&|ljW4~oXH79e?%>xXxLpeJXt^vfeAn57b{fQPwaf+oG9`qc*ZLFXct%Y ze&rYuMI96?ob;!VwZ`G9h|vhXJ-8z%YbiIU2uagZ$bO=6-Wmy4k>|EcfTU9*Ce7{S z-Rl&X%7if3^Yk-sNuJnvq2d2E|4Cw^*GWJNGZum(0aLVy{>03TBP#Yy%E+X*Ig`RU zL6pELMi0#9|62D~LfY;)l#Z_)2)`4s1hNA!C_z)_O?Fu-Tn)~6F_x8bKqJ${^epl< z5L0boXGmF(tg?F1Hu%^DOPkQiVs9H^HK+jx7AIV0g*oEn;p`{!N)Trg3AW z{xP662C@kS4!I2}Vd9PN5+DPa1MyqK+R%w+2{53Wp~!5d$`xNQWGsKsmqVEd9qm#> zpkv_;Xvs|bEt(W&2o^TF>{PW1K~e9Ix@jB4lodLf1aaEQR=Gk%Rx<)R=_HCRmc!mq2-L|yUw_TSxN^9Y?W&*TYXitLaY&J79@ z!x4cBCOCcy_QU<_^VJ-QaU56v-kc!C?qsj9u^itL3kO3lyCo}_{&zW*YYYg0OG9y^ z7A#&OZQiTTfF%)QA#K?!T*v`P1d5Ig(Pixe_!RW%9(V+;_@7YoJ_(8RP5;AbBc z7i%}0kTl-?#SUO5td?=Ka3F#Jre(BMr5WN*;^h{Il=zs^M~x}sd#|iY@;EI@<_k(2 zh0v;ki*hZdmLNK&F|8RGtBGMIRz)%LjUw`zOflI`m!MisL(qe-r8_RQ>In2eVC%pw zpRi6e(>8_cJ#Ttk3!a@WW|b~iH1=nb$XU`p_!E7r{)KVKR7Dsu%l>|Izd(UHT2hrl z1+<#`vV{A%L#pjJhl;C(Aqlt^%w_h5DAI#J26V`1sFutiEKN8`sgOhCnqy4qUs_tB zs&G-o}Kls zkxF>STR0H4pHxV%EsKy-VE{3oatsw66siPMQRqErGS7;v!)ghxQ_z$JgQU4ndVYsWCNA0Alw!t)|(=h6msdIEt<~;ZVJ_dN9 zDT3W^1|Di!%JpVF8P+|gK|oJxMe1NeK8xL;CIdfTu#lZe2xVr zRvloif@u~5Eqe?@ar*}82E(!x!td#PCz@qk0vh`<-e}*G49!B^%SK#^(n=;7X9zFc zpc{aZx5=uK(N!s22gwcyKN^Rp>usl`B$Ivq5q=EbW(Lm)n1CS6a(6?z3ta-BbBr@tQ)qevUnm%wjWPfRIc=_f8=Gv-t=iE+eiWuRW*?sqR?T8$#Gg=|F;x1>_*?vUXm6mwEV%I z{d$dT62G$IgXn`~qC;vFIvwS-t^T|rh2vdQr4vwyO+;iwV9C)R zawm%)6=oX1vP&1a0A#@=FO>YzMvQ8MApJXV zdFc*lk${h+^TC*&!&ec*L5|nmOOG(w#O!Yn&frAZuw6c)S0KiiGREu)3Y|-{&a=6x_gE0hY#+ie$h88+@C?&X`)R|5$)yka>L! z1fk3(4AZ+tl z2B}z^N=*ZZd#C9$G`IyabPC8o+YR+d6k?QmzC>KGxUF*R+Te#>*frB*+bLrxZ4#ys z;$MN~f55eX18xHVQ{pSlJg|K6i#fiAzu~XhX9|+bDK|y;s4A{2MZVSnPCI2kXFPl9 z!;0$SAo~8Ew>J+=d;-yH!EYS;ERE*d33xD|TN6pah>nr?6cb3c?XK9Qe1z_NuBJrx z)ErLnaEfelY2W-pg5Fy*lGg$z1?v>Hi0>k_9c zNTs$VtACh)Jj(6H%ul9>$K+p3K+2f-Y)wqBCud-W=LN+zui+B#A;CqNMeES2`DO5W zPiTdXnlEzMCdE-N!= zLp=t@v#aY+WHgweWDI6vhIYY0T%26&j#(j3GDhWB?go0#927zZIw5M4B~?VT{W0gl zQy1e8qFg->M7jy~vupoQnzD&>N~b*SngE!`QzeR&ee4uhhb0~s6~g%m^b|yC$ZaNA zt%$>|9YfWS;qp#Ion7DovI-MJ`FL20_UBO8y82+BU@RzwK@P}wS|2RJp-pbJ7jC1s@R&T-?^4jsp)|` zxmXoHzYzx+5*)!puDwe{<>1S}CHMxASfu6Ht}v<55uz2P3CUKu!R9SdB^d^Gaj{g) zvh-DO*t(B7#jxQkf6)gI{@2*pIsmnQ>SZeoFtL0gnVMJK94j<;Qr3Xj!1BlM6X*-+ zvH0cKy*Km?RLvn1(E4RV@{;+nu5;OX=lO{|mpFZI0_hUD=rDu;(sqCl&JgKYxLPYT zh2Mb`{-HosGyw=#{dk=$Dw|}g;9))b0I-r%TI-E~eWN73?MjkY!!C!6kApR?rrv(o z-&B2tkX--)+&|Uzz}e>T$By}rlfqbUszP>^;Om+->@D4+3 z2yGW6>#(2W2qv)Z)4{~BNl&xg3H4Wu^66Iv&Kg67o*A88k!M1sSAl*`s(ZxGo4 zEg41q=tQkgJqSy=mx>Tt|D<pc!z$!|xCUY1xQbCD|_={(6q^v-&es)H02XHM+tk|m1q_F8q zmA?+rCIwMEz*w!wW-+;cVK~WJ6ELdjzQS}Iu&FJ?_vbiR`iZ4Awrd$CU zr}5~1%wt&iu15OhuGB`CaVb`QOnA~NcG2p7F~~{L3k>g$DnV!~#kb?JkG1NRUT;iS zOiJMPZx+qxsJ3HWfxGVax4dO6BkE+MW8C9e!`n19S#|huv1%>g_*shwtCa1R2HAJn z_h$oD=7wIi9WSKkNa5-NWo!Y}rnL$V$yr^Wto1yW9$aIvD@A5O_Q4VS@WKGjvW&=8c~zo_OE$NnI_W0Fy3za$O4{E;We8^` zpq_}yBkc2C{0v)f_QU{_T*YIRD(gZsYh-k=q_Hbc`zyZ}-;o}&zl!RCq%4Z5mQI#8 zD1n6Y2WSM6SmndYi@u91M=Qs~ytjRupG|LWavzyh6M0Gt*DLT}kF(z~KUOuz+ri#F zV>J`BwRP_-T;p9^4{Lxm*bvyddy=aXd;EQK>TUZIrk@V2o+F?a z7_3x(j=$r7X3!Q`dcpT7c_z%U_v)0=lY_cb%1D(Cz7Tp^Q84^Av{NSC+{DjXu;jvj z(8HMQc@K_k$U7w+DjDrIuP#zy4xb(0;96EOXpo>?E_)thw3y-^cmOWWhyD16!n-O~ zo?1ra+^fk1Q!ejQnVjh1&HTf6ph;ZF6sluTo{LuV?r-Ig8(ngZ~{8$ky{h7zO2pJd2k5P z=py|O5c`ZT*giI=S@AKfHuWWHUpHNxiN4|%P8eP#$tl8N4hDo=B z&y>9u4q4LIp`v^m`1Lz>!D8$#c)S4U`s-P&B~2Fr*|lVXTUeLk7r+6UrENjqNouM# zY)qkZnCE#5>>|-0opXE*$7!NExF{`H<9bCkbCmW~QWfdBrmt8E=L~^zs+wFKf&-tX z1#zPaVR3gx;inP4^c7+oM)uM@e^Mm=q1dLgr5Rx8Hz=8?zxQH#a4;@3$Hv~!%CN@5Sll5GHpk+l1M{&DB^)@(=$4XnkxMctJROGH3>=yCFn!rvKIMG$|bYNYA!L+`E znCZ8-^Z1{reqY zVa(vWbWm)N)92}1VYDi2(z}NH!(|7#4`p#{wp+_mC5ftWQg^FU&EI`VbHE$JkNJmU zC7PtzE8y=(X@CplLhx%PT;#GQ7Hl*+U=iR>0zazT%ncxrj8*2MO{6aU27$QIrQ|Ff zv>U(SWNeu*d&qM)+L+O+-0(AYpa{c5W)tSJSuYcr4C}aaX2=k*c&OW5`>UVWu79N} zNuuwGktWBJ&EhGyH5Nv+U;&GiyEvO%B(zi6Z*7UsDXCGXS|S;XQJ3$ebPSnjYoL#@ zbbe#1{s?8-Pq9$y2??UIQ#S$`vgpXJip^ke1oOGOYbt4F2#%l64QB8K*`)+<`h#_P z_f=GspDG=*bOALi(Ojg&Gq6L3D|KoBYfE%K2MJLpBay0|x<3_wWCK6ft+|7tAt+JL zzKHV5(2!kGbMT;SV9JOhAb?02(ZY7O!BMuF5bAHl{ij$9w@nFw7{R08TGVbp7JC}F z+!f#|MDiVXtu)77IqgD~7$(b2;I6FuLWIOVVKtqA#=J$*1YB;ssJ#6iO|{w$yHxcs z{B~uzA0iDbj-=-@`YeJ-y#|UnXtE*~rN7OcK64?sN}$8b@2;nu&tsJ*Q>BOF?3cLN ztqBYqO!}lLTNjfPbK%|yk185Ui`h_C-Woy!nk3w@91+d84jHqjc+()X$`JDCcU)c| zSjVs-2iOZdb&CZu)Nchnv1yaYB9t5B;Hj_($ufZ^Pj5bVx9%n9Gob^Ej2(*%0az($ z?9RAove!+;Y08YX$ZC}$QvWb=PFEz43+p$tC}=s%CM#Ge18W^Rzl=maTmZG%PU@G~ z8mU}MY)b1}L}yZYADjq_435Li@@!2${;1yfvcJ4jRn)P;izQD3 z(VOg`hOuZa_=}|<7;Lx4SH$L$PF;Fc%38z&EiUrPsZ5otWzCP)*NQE*y#-)yCXjx_ z7UI}4TQ8?!3;wksu9eyu+TMeqPHf0+?+($#fSHBp7g_b1IDqJI8B7W#={{o2unbM-Pm%6aekWOjES z#HM6+slM}BNI=D;?OkRm4}5@Vfcw%dGYj$yXao)Zz5id9F~R5TV7IzrPk>Y9xwayv ze;}(V!&zvr6qZi5cJ!BQ<1aZc?@46`*pwrpduHKJEHQr@l#I<%d7z^)mk^d{&U-%P z4J9DZBq|NiIEUv*{vl@p3pO}5D-8)-Vc2hgL~ErMgty0JYdsljio~RAZKjbBm$J#3 z-KvR21GOTNm10BA5P_m#ZIy~rHV9`q^p{q8stQb{l;{ffQAX!aoX)v7QmvTq8Y`(# zr^>{(SJMtwI>4sHkRi*agnUG5DK|II1M~N1E##ZDMlLFFYi?qFSSf2Zn-Vv%8gizw zK`tP_H2I@mkRwV7`I3m(dBV<}U;^wn?2j}Edd5tXsBACo{TypfZZ>x%L#?ODRG1pF zl1f@nOM3%6%RTlP#Q!T%>qwxzgZm?!GIDBVBTFmg8Q^A9Vu{u)f4e&wN`aV9%->3n zR^;C=WiwFDiPl2i1w)SEXsst;7n{5C3yAG+)+JjmH{gG1siiz)+;&-RSqe$WI>G8N zGf0Jqi+oGj{;B5 zdge*sQ$D}rEQ;(QB`)PzLUL{|YL?BSs;@n1gIKd%xc}ESlpPmnSQGn9FZGpBxnbaeZY4n(x z-~jmlvV-wMASIUg`3|G9Tu3i6c4QCr2$7OL72G2&rT^u`09%*~oWq>&n3&WvRlqj* zP#`jmXp@Mu0Qa~JGipbQhBElhku5E4BRKoc?66x`Z&Ji}1H<&0KF~j{AZVgz>{7x8 zr+EGG7K!o$3H}H0|9_w<`H@rrDSWMito6X5 zxQp~AEA}EA{}F_bM^pE4_<^ycGL}`e6T`nlSXGwlWrzb{(Ar-cnfnKa?9n zHI|VyB7UZaPp>2%p{sWaAM^G?=)dBe2O~*KI6IkrqEzQ4q8Am9}q;_wRJjqd|_mTqg~G#hvQomt~=(-%1#=*%4y;1_sTK@$@#E!9B%& z(06IjbiG4Ed!8ai&bE`au%IYZEo3WfYWdxx^Z1OzV0G0xB)yg&S)no)XS zS6H{6cRL){HH;c)eq-jAozSUnnIT8{F#MTT+Rk$(*6S9X`y?BM|GMi$%;dNPwal>N zi^vC3n-HnLpIj8Q%tf00UdE+ANuSdAh}tuMZYNJafbvwTYw5R26u1BeIooi*31s|C zxF=b4vXTrgjksI3Zp;5Hn6VRuzw`JQ&^?aR){%ai*wjk;&WhH2vyU@D|LCE;Cd;-n zUh>J0`HU-{j?V8q$?~%SY3xyJu4G?U$t#D$jl=i)-j8kNLB;|N{k{sk6t9T7zTq67 zWVA0G{BF+m=&SSiI_|_;xDRV0HFKX@(#s*MzZwF^b0=a~#<~SLN5%PLMR;sQJvF!^ zy)jNzr7RuVY#!Bkhbs3!#Qpg@ftg-7vV|V3vDf(~#KeWytB$3*Jg)Lk;#hSbcQokO z*Y^NpV|@Hu?+@r7dForc*J50B8_y`!?S9|A7{{Guv-E^#A$jg@I8a} zum6et(!N z++np0n{6bY&~}EOW}LL~f*va(}aEO*Crk=4Vpn{dDDfZWl4qS$}=S@ zjs*NUk~qN->_djK6RExGpCnzki5ao7*z{lF5~`VN=iBgBRsX;{byuHPD+2LUnF4X~ zwi_@jsdwM@C48CVzWVz(=TQ8!)B1z~msiwEDpmBQDg{bRe(C47?OsOsSaxjw44B}hsa z4Oq01_KOXLv0y#WFKMlM>ek}9Ry3KXc0o^m=D%&>bT6ti%O4F4l;gh%YhDz^B?~@f zngsp)a+R>0i$N;XrgiN)=t*nLMXS60ok!(7@Z=27SG?fhSSbP-pQLQPJ8B#2+bd|c%|b-(>|+cMK28;E#eaR$IWOAz z>9}&gnS!^w)hkE_Bl_m%_36@e;(9t(@!9tI*jTs&h>S<;r}Iy}>A16{&(*`41tPW@ z*S7QYvq5j04sM?1+XBH6J&$&xBe4?ir{6M;s0R|A0u8P)SbvNpQqg*T2N#G4MU-iH zUyBNW)K*ibQ)00;mPA5FgXX1P-^nD?btz8A?$6u2u?v8Cea-Rbrn;Bpwlh6?(?5uF z?RE5yUUJZv4(ks=!R>G`M!aj>$d@*^h{F#YL1xU&?|z3n{bx3goz7jSG@3W>HLtGe z${9GMyx*qE3FJ+D0ZJ5mVuUKJ8Eu)oOK;}aygvOyMkdANB5&m-g>&(-^(Ddd?1SXZ z5Z_4(-nJ8^&mVvITo03Ew?2u2Y4^(qVivV1V>}@%O>5tU|2#LO zYAJkg#lHLx1tmB^Q9`W1WKXh9}yWcZswE=xIV_sw~p-+TvKhR z3-(0iu4;E1^t8vZqiV6yHVZeV#(vv=&H5jDtZY5J@tggQos>F$aPga3^lkms|8AK@ z&sR@J5Krrmc5pgw`>DUKePdoNN1Sp{RlN@=CfNrqsy_7%+CI)nuY6}_`JWV3HZxa1 zD7)}dnTu@B+d>Q}PEmW*!;kM`3yhXfo|@bkLj#S*C`m&b@u?ZzN}m7KB0Tm z==y0F-_Qg<56Oi{zT?2E*{7K)ndl)EX zI|+~%9yJOKl-uhpd7oz;fw7UGuYG+;Ha)vhS{uH+D*1Eu>#gPF0+k3_qT{4I&-5YI zW73}wY7h0of8gIX2|;g*;~%rnib*TnzN)xy`=VD2DfD%3%d4BkC~K&DJd`WYb;jBq zEy>f#sdxG+Nmz>go?RxGmsdRO7hF=~eENlQ9pd=&9(BH#{scCEgt580Yu4yL)*`xy z{)s}=@JG}QDb6Z-b@dkivEdo4{-X6;dqYOw;N2u``CT9zUDDS#3xhfJm8%d$45$Qr3-H<*Lf_olbh-mWAMY_bf8;zSY8JIpPtCpuf~doryjkb z$7j^B4r1MC^(k1y3%I{ZlPa+DUUe^WlY${xRVy(oJ z7#54D{Pa$pj2q3en&W(%x0urH#dzyRd@I=M{re;*e=DRYlfMtiu9dSXzZ;7_=FIPz zxCbo14vrhWz0qdX1-$mApJofZ665t;x$krj!H$X8iff;{$mlp3Yb0c<J&;}%20 z=xg2G{hx^%WJ?j%Ui~n-6uAN4bx3$k){H0rcqPVJFkmHC&FC(SXBLNJiecfqheiluQXF|urFGD!$h7QSyQK&aAl@G_YnJDI)v zP20R#E9GbKtl)zAg2y2|BEAU!tRj*MDs0gDr$lUS+fFWI^eW@+ZH^~M--O&vf85{U zlV68_M)pG-9_U)AZU5FysPaF}qeFL3Ium0m<8x7AzfZ+i5#G$wHBdXBz=cyh+bw6( zvYl_w0;$;sykdE+^zVOM1CP$Q-n^a`1s^qh3t2%IC$`E9GU@!QcANxPqag#0+YrB(_@%%Um+c`9ps)#Wie(dtCW|J*V9Ujos?0Y;He2 zNG$ze+IAa9eKA>xHNOEY{k`gB@X_8WU+_=g;~qcxM&>qD`y*^{=?hnnxVJ$M)1k<= z+T9Av;tlnIP3unMB|mglGD&)Ze{2O{xzaUBgUz@)30?nIaZY82Zv%5Rj&aZ`H=?L4SMmTbC=`6wjt*#jU>R2f} z@sTETv-O!7+dmmk|8074fE~e5<3?*bY|!VEy0A>njRjBKZNR(Et*iy|p}|}5P!aDD z_3_D%CCS$GL|2~=+rrSzR*8~KM@EDVHcg3NTr=-AdGU?02#=H%#IkHA5#4S6Cq_ka@Q<$t~Tri-#Z_4*Gedg(B5W9S^0(f znW@*;5%H`4afI~(=KnJp0%d}D`Qjn zTIlO{*uV=Kh_K99xcFDkp@kqQ+Shj&37mmWZchy{m7HZBG?Z8%$$45>5M=gdVI)|x zPPJ**7k&BtAN;At{nvvi+nH~whh-A?xH?u5z3D%?9&XftwIOV$L%iFsDPaqmyw_OS zw65cpc+W9EPVVr(%TKB=?~HkeZri)P{dpem?`sH55{>x6>hEEN{?O?O<&p6?YnJsN zKB{AuAWT`~S|#+!%O`iBIkF$Via@%KoIG;(<|Q73PI&ir`;N@{PBQIJdwJRhxwB|O zXNulcu;8IrvR3lU#FXxB%JLLm_ALrZ$Q-@(i(yO%nZ4c8Ql{^N-&hu-P-YE#zv#Q5 zi}#q4ig7i#IR->-xfnX%Sx+@aIDhP+pT9X4vo!DWxP7oxRhWAi`E46Ek-S%38c{*L z4P!O&ODCRpPMHn+Hrytq74Fv%*e)8r>iw*UHOdl%8X)X~>D{`RCdvtgOlNEUiTjd}Mr z_3PNSo&;To7bk!E(Db%fd*5btQ{s&hKL;&bHJCosyF-gb+_&t=x=+ofixZX{zSo7u zgO@Ek^gTa6Vnvk41V77v*Bpb++brTdf<;68EgZ{6k9Jyu%U>O*6AHQ42xOZnaK z>0Uxq?JfR`_1JJL6=)_d%>OTvZlAOegnu%RnYC0M#co}AI0ut}P>-Gz;`V^bzpFPe zOC+7HtRENU+~>(>et`Lf#=s1Z-i-~dkmo#vV5xf>7sM=iv0Qdi63pYh>x6cf4hzzG zS|YmQZ$4O#1{+b_SQo8tcSoTFVTVqiQp4x2TJ6hWl5I2l4PM^daGw!Sv7OAG5eXDNUX(<6Wrok2U>vS^DLI0M3`MWdoj&ij(;;+9S$b~#0XxwAl?O1v= zuAy3vmz#z8&dAI1mh9|D1ZF&i&$GI#^!h01v+r<(b6{zL9*^bqmT{hCJPY$AuXLO7 zJ+(m3z42Ab0#J11D^9bk+|T_HFY&O@K|Be`p}O4xFlzN*!IQIXv=@v54Pue}gx`rc zuaCCB?isBa*snQd9W@~)pI#ui_mtijU(d>hJUg~s%TT=Tu_$q_BCV&?IaLG6_!h_` zT9h3f^AgUwmk}lfl9ROXA5(_^uxbl~@LL(!q;miRsHTO7vR zwUrf5+0j zHJ*2Cx%Hp7yzzvA-gYj5rAQpN<6SzxcFYReaW>s!?u}JcHz&`zz1VWw zJ~TLf>ocUT;YI6Q`>X(@8HT7PVMPF!jL?rbzh`q zk!vK~eCE^~Y7?u$JOxCPp^Vtq0Z)d8Nu&T71L3ls>6De+C*|+RU+YqL(YkE`Y!@8c zFZ<#$1D<<7c(=%7<4HKZZ8&QDON%WIT1f{>`NXCNFp{fTwbp^2ply5f{6JH~VTEpA z@{7g<2?H-N+T=M#^FZZMAZ~S}n_Bi;H=Q?nT>E z_vuu-pN}A$(W%7vI-l)RTFi}OC;JcR+sq_$N0wrF^%H0B?nxvDaaKm2FqM41^i3BI zqi`_X?u_bD%B*}F4WxAs(aq1qIfJQi^H5*=tJ9XGND{856Wubn9iiTyx*1X61isL1 zvziGUr|L?0NQG+%=Bi1aWSS(RVB<9Z>AacM-xl_vK5$@K52*Klz0q4=;R-!`320kd zM|}(ENIr}BYviCNp0hy3IQ4jufd=}s6c%H=mh|fG-jjcdDtxt@cNjk*ADx?aiF&Ya z!;cU8NPYbmQ4b;?nTZ~MHp*5*rTdF}2-&>yA-H;|=e+uo|0-K?*)m%tQ21xrUf6ul z>W+*l+E;xkp_as5>mQjc*s-5OMX?!mEXrTM}Ats^K)1BrxU$1qK-$NnUHvA z6(@+?91U)&`Ri<1IAWd9WyL-Zh5r~mzs1X&?GBg) z(Z`jHlVE(oVEzw=yMqbaK-88d+R$s7!lE*eij<_#axlZY@q~<#Yp1rhK3);*P|iX; z)#F>A&x0rPqkJxl%Uxny;dcQxL&mnQIrlBI3+qOM)4`h6JiPf|`C=8xywhOPPShJz z2vL&}6ehdpu-_3FGcqf6PHXp{lDK)PJU;o?8?#I(hbC?vsUqWqLDd49Q;bNyu>6;L z^C7EY$G$w!2ye5l(F_pP}7%INH7>^XNPvq0oEHF)%+i|7A%Y z!{p>o<0lnmXWcpsDmaq=l+h{>`MJQBDe2MKo%U?l_$+N)_rOxjdC+Bhv;*Qaba!K# zz;+dP_AQ3UJoU;=3}?>L3($jz)Ihe?OBKbuI!`~Zl)Z=(xbHMl5WLRc!y!X0URbyFI=1yZMjid3AhgU2 z_Z$9@1YTNr4aXex+5nOzQ{a}sMJX|lo8jHh@F*U-Zwp&J=BuFW1dHCAzc-jzpMtF| zSJNptd#GoZer|{02R7z}uABc+Mo~0cqBKHp7&|?SAEidQ=S&)C&$|woC7Soq@f=** z=oodX7-V!E31DOE-Z{4UBE}86S(kgD7n7{r#lO`xU0f!2i<4OB$~}P*p^u6{sRu@v z!iozR3Nrm^JHIsi@@Fg=3o`M~i&>#d+`I8YdSJa?MiFzTgyTJqO1Bj&*3g9IZXB-o z@Q#G}x4!F?49LXVU8|&0iM6#|qkGQy!fEo=#I=|){yl!Ge<-x{pS#QRE=qeCX>WToxQ6me&?T1aoGSb0hu~4; zl-$X7e7K!8YT*lRSB7`@OLNLuoftXx>Fqqc5u$3P^K(;M1_jK2pIb3qd_@fVU_)RrBd6H7;Wm3Gb&>gPi&iQf19K>+K$e-}5(M>Z?#v4D!-7e}6Sx z70OR}C=XxB@Sl=yITrH8Fxwkr3anlu-TyD#2B2N8kb1-|S@zO7Oq|ubS@3qoJmL>@r^o^22tB7d1HTBRlaI5ZWDX`52gEUj>uLu+W%|m z%EOY{y1wQBUR2a>rm296`rR9*X*q&Qb~CS~z4zWXCCd@C0Y}Pk00&emO%QugQ}J!M z4R3=8g;UNq#4u?z2%Ijc&ttwbx!JX5x<3cde9A zH;;o~I64(q*)7iSaHacGT;q(_Nb@Nbwso+S#5_H>!LFE~fAxb@TQ_w+{1!=D^X)+$ zX@`?$$vfViUb$bP`oY{@-1Yp~amteXlY0}H2TrBjooajz)a2yo*$jqKr#&xEv<-cI z_dd0J-T20k@I$AY9^>%882T#Psrd+t(1r)4f92VzmOT%)TGZlqH`e0@gy-_Dk5m03 z#XBG0)p410J(y>cA#(&t!P&7!6fd7&OyM4OxX5~q2Fj|`h0|&-h28ZdO*I3ChpY=-Vl6mJhq$aNn*-C`x91@VYA&iI2FyQ-zRcjeGloN&GCS zgxU9{?AtZ3BaVTBOrH(>h^9DDRwWbJH?wk-WT#@ z=Di$;jCW@*w4^pw+u0wqI5^RaJ$oqeK}q;_h()Hn&)yh`Y|a)M@w=3J z53ZhwNAY#Q(#u`6775_`^{uFWYvnv-_00^Jq;3siro=W)Mr6q}>w1+Yl*B^B(9w5W z4G}WUCy5Q#U7-IS33?$&Ieh<7V&BlX@WRLpCW<0?~<@b7j%?%H*%f z*`+?F4ctCJt{XVQpdO|Va4@>#m90d|smYBqE-%|>K?ybsmA$Mosjynj^Y`eTmmF_O zc?)T=V1?VGAc2!oS#$X(1i(q&wYJ~6^%OwW{libm?an=w?qR7Z(#ve!k1cjG?|qFg z%_JWR_-9ZOJx1HeN$+&LdWA|kbik#L&P<(KvHiAl3F*})FMI5J z{#y~McMPm&>~{;&ON~!=-%pFNZm-VLnrPORm>dQ-&hX6Az`kng$jGJ&eq?ohY@*y( z#UGc3)H{PuhQV}Fi*3qUdqNWeE6&z2d-)Te3cc@LkSCk!fI4V~R^#6HueU7kc1&3$;>$%FApvnioZ3M z9vLVdQ-XFs$}WXQq2Es1EI!Wgdd2m0Vi!7a)rlfJEOxQ!wnF3Bn4Y&a+j*Q@%GwKM zIXbEjO^5A6-Hvp47>)b!K##0%6lnfDRpU<@46w;|^h{&ZCP^8trq1r}k7MV%N5ekc zZC;MhEE~m<+hBGVmdc04ZMWD>FZy*lCR~BH!kBMe@>%4Y40+}BH!MD3 za(h=M>)0~w=C z@(F;P>hLYGwEV7xG)(g3QG;hgJK7KD8Ov1D|HS|Fe)zrm{PY4N*%vWT8d{ zzZ2$>RA(0^P1=l?KP|)-ciahU{!MQ@&eCypbo8BbNPM@{H7~@J4+f|8Suyo9-b!O9 zgDifGX6bH3F5YPUu4Ugvq8u*|#S{jzNgScVE3ypTPJ;ms0Wu`QwCCKL>Tv50X&%D}=RVZvP>9{<&xedBUn$~~(d#$>;Hazg z7IG$Wb^~zl{rLDtp{ok;n%nX}mN7LPMQ1_8A6-M2F3fvG)6(AtgLec|7i3DeD36GQ zO-&qf^u#XxkI5Iv?-AP4J9wQh$|U~ln4Jv`CjvyPNaG;i8Iyj~>TMVY4RdGKEFF1QNUZOm{8(9e9W9)jykq@Ak8H4OFzQZ9&3&sGPum_Y8MF zSsnJ3!*BF@lDq1F!=2G79mXy8H>Dd*@-bzpv0v}?wu`V4@hk1R=Ci+u@X7sa)IFPx z6{F#xYF=bog|tUs{wGuM$ggx}b<4CEx|KBVbkVxV^{apKxn=+Jwbt9>!Q$Rrqr#1( zYFXI^XW_87Yq3rzxeKfHvu2OmM$>7?5&R+Mwq19bxePZM)VYX+xTCr+EG{O0HcH~X z%n;1*cM~`hZ3JVnEa|+HvoLxuLec@X-V8-MvKCS*GpVIZvz_?yX>UZvv3%68k&3E; zTvsZsT08Eh%uU{Mi4rBP1KI|rcadJvZ0N~dne*S=Ee_ptad1gs(Jc1cv}SYSXb(@w z1lFT;3ORT<-Xh|B?7552SG!XL$1b*8x4g-}*4V2&E2w(D-w$)fu4^^W$aUSNJ3~{Q5ILiU+OQ|AMMo-s%lu;WRgu*Z`R~9H(P`(`AgeG-*SUol za!)dEyogh(JN#_)<2^zbrChl7*~Y*aq?~t(F0YzNp*?KusM{2AK>!H&MJMfARQo#F zk+HL3dFI~iMZTcq-D{OGrwaEpu6sCre)YE>U2Cl+AZV_l(IQ}*UkuHGUI7_qi$4K9 zKuB%Y*t-Kuy)kq$*W-2MF z;lV%N_vR(Om{a4U6_IpPj?PQLfRISu7L;M+-fU`f;AAhsLe>V-o2wROv|XPS<2`vy zMt~!!ybpDh;EeK!y%TSEc?CGPLhsQ2M!NBF9oWi;99mljmc-89?&aC~FVFPz6FI+A z9+QvGTJwip+MgAkxzW(OwD(J%NcK}tcNz3X{Qh2-zSuZ~Rh*|-M-6RWJglTBOfcAg zpACxdJ-=T+{dBQ2HCiXBUG!6N^b1~=kiL}^-lO0tHdczyuKqKE>d(43`tc@$_)oVf zrB2PVs~u6MwEaimSgu?2E$Z;>JMGcerPbL=96#&;=~b?{*Gz5KjMko+wb-tH*)vm* zBcau`-;VtqurL|$e1Lq!i8L7K?e%qj{Z5mQ-&ih&meD2R$&I;#m8!YsL}`@h;hMYg z+7$m&VRpe=15x2__YZKh*XbgyGRDjk)~?h7QRBQmP!1;|$LH+?6co|p<&~1{byDnD z_~Xei=YK6;Ecg2Sy1m09DEOb!kDIjN`?bR*7Lq?d@sma|@$@WG@yCS^v3#IcXKcig z{bh&0s5rFSgGsaC2lfkiU+Zm|5vo^|k+=#@8!;Q&&FyrFWsN}zJgSa*UzN%>>?Gly z$8G3RW#ew8_39zZ)YFjM{zFewge?t^B$64H4tVY%^t;vxOa1bhTb(Wg(E9K%1z_eG z?;jkAKtK#KmL0UF97naYfZ-A>1gytE)mB(|XJv^mR-7RUzH3oQm=qDD^^|($%7qz` zXXPJi1+_F(gcpF!cbjAagzrZt{x>t>B#N%Cb<><^*pVyfz6VjzO>KO#)|z8|ES z)ri%EjXd!ZAsyh7Y+6XoLq7%Emz_Ez6F#~)QJNgDS!Wu=ThGx4_h0d>lofy%Blj!v zQRuN1CWRIDd#q8Ow`miJn>ZhuIWXBvw@OSb+%_1+XNkP6Y*cy`SM;tXsN-p+Zr`=& zuJ(5-!|??JDpLBE2V_^|$I+8nu8-JvI1N#JM3JM>tVOdTZAjH(F@N+n$8~5y^!pk@ z#8FQhO?|A?I;BqZ@~)e^xv%Dj{rPW5bw6K7eIpncGCV&xcO~GvmRWAGa^81`Yg^+Z zsdEHKyu%1F*sZN^rCT2cxkb(Ky)4TuMkxZ&BJHz~r#7X>7fr|7UsiTrMg!|OIMgUI zyB^x$t;5~1*d`xsuq;ogGAF8*2|GN~r?x0Vl0~KVcP)H06FuMMxOE+ZsS8oZwk!3m z;=0S4+=G?b9=Qy%r8l_`KC)X2-yAWW4ZqZ$m;ZIGb^ttYM!$MBG2J-KChUZZ_h3-g zhJ$JaRy#qV2A>H-BTu*{7k$@)4_R*p9E(m3cv2+xq$5z^h-;WuE? zE4Q%W2;+?BX6VGh*~Fqn=vWKziftJ55|gB0fICm(OH<25mKif+@W2n2xP0+M2~6j1 z{QMU2Yy8>YJjs!^RcIM3h&AsSsz42>tVy3=;8AXVw2ZIQKHIh@!(LWh0NpP~w~GV@{6?-)J^eDvlA>`wssTnR;=>p-wDx&v@}x0=nzivF_LIz?Umy+Ay&QQG<| zx7PTxcU%{=e@{kOFVI8Z`m2ubJpbj4yb^jcu?4<(I4A4A<Zne-2V{_X%1Nc=}lEhz47`~a^R-OG9e6m~Rp>we{!|UsK z6Whqv!#(=)2! z=@vos_?~7nr{pI>-|}beG({QuD(lXi^v{Jmz%z^&B#pyQ_RUJyk5Fiv#B>+Y?geCy z!PsiJIT}D2L_^16OZ1@pn1*H;2beeDFR*f=ou;gig*YjK5>QqaJ!vP@E)_1F|o@^X(5WneI}J89(8CEG6}K z3PFABT>iiexip5n(AbFvNO$=qmHek$6${il)9fbmfQlhp4)$z}n&N_QrX=C$vAQ~Z za1pJg0ttXsg!r1H>A0G0&3;l{j9$h4+u!DxM3Hy=d>6OH&mGGNv5|Nf?^7*V4zm|c z_G4E=OxW2zO1AWA5@oeZ2~W_^csagT8>Oh7C`rz~@eAoy#n-;;w8t!mYjfA^_#0++ zK~dTNDowbc_hz$?K$4-dn-Zx{I(I1uX3-CY66yod<-1k_$e~)qnkGOCOq~3y|GEOZ z?N-n8Nykem-=<)u4OlJ0%iyoDJ_>) zCGuT8f7M!=Hd-sQCi;>`HaOaV*ww*wz`_Il-c;KiJ>U$#t>LWZ)pUc?S8@@gEcPT? zT>_iJkN#4%3iM;A8_k+w5{|rlv1qd-vTdBoF_pIg@(O@(j?kZVCntocuH>wfRps*$?7NQBUk(-YR%Kv)dW=Y@?Spy`); z!_$xapl)fYh^>j4>>l0>@+9{iMg_rbD_kA|IB!Lw$=)M7?>|~=Aw-pI*RyTHej}7J z5L9lj1xLL@c}0~V5x|#jN|pbzOC4w!4lK0cjaD?7Y#i0HJsstw0eq_x!DgTN@Y;+@);YD`? zyj?Z4)h{;5Qn%;as59EiVTIM(y?^(5r-R?@m)2fu@xhO5mTm0Z*4(E*X*_Vo{&~Fu zAPB(``1RwM7(IF>UmpnL9EI}G+m|<|N*4>_9T*_p`Wy!a#H?Ranrlu&a#cT;LFGY= z%V$7VaIw`vju0^!ymlS4eE4EMeto?5diooplhCx%0&uq;Xud86gdQt8?O2svZJ{UA z6n%3Lz9%3bl|)DDTH(sj@w_Ux5NP>M_>}+-5K#cO z#In+Xh@}UUME^lF+*<%=m}m6ccUSwgb~|XgTxUiMK5b|8fRGL~xa!2>;L1O*1Sbe` ziU8K@EDM zxqJ+kaV7!-D9wq(#3zR7i{Yetb;>msT73w`ZIa_ zS;JpgHBjCKmUToPz7s<(@lNO-Llg);RH6Ibgm8}LY2g!(fDpM|M4^A*(as64Pp@Ka z4lw%RjD+C$cpQ@`)Zk-)Wd`FIIqc^IycAK;4`&Mv;NTPKhKR*NW(s1WdepKMnxk!A zc(tbb+%Ow=Gr&n~T&gn^dP!wBtgvBd`zC4{C5pXAwe_m?Wr)#}CYb+@xV(ntzNyDb z7ity^5NaIDEd;Sbl}x}1%!o-0ju8xJ;;P|Q0eyIm0LC4};Ho4zItE84q?fRtpu0@8;lck3&_Du&6#$V?MSG50(88uAB;4q`7P#)aR#<`mQe@If z=LU2NnOOS&wyGhx8pj}tmg>j9Ygx(zc@3RPmKzXuWrZhAsgJZAUE!@+oaRZBng*pQ z<(g};G$*BwC(RvMv&yL}2;-p>5#O~i8io21ODwb3Tz;?|zR3DbWI1KS?Kf;m>hSC~ zy6Y-U;z`q`Nz~I6LmpvCj$=yW1-;uIqrOR<@}%NX9nDFabCqLtP-LYzVy>`I#E(@0 zN}*dC8_<}(h=)lm<@QYnYh08@il!U>CzpI)WbC5tf&LJP6~2|2^@J&F+MMg~kR~nq z&m{50xqOYx-V};4lRzyn+$oQJ%(9xT6T2bnH#8=t;Q`}tQzD0R@e|Ad44{y+F1PX* zCy)DRTb~rnxjd$c9Kw`Rm&y-zEPGcN>&P diff --git a/zlt-web/back-web/src/main/resources/static/assets/images/bg_login_backup.png b/zlt-web/back-web/src/main/resources/static/assets/images/bg_login_backup.png deleted file mode 100644 index 91cefd8859fc8c37be784e03d2e6a1555f4097b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68062 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 LNkvXXu0mjfRjz|) diff --git a/zlt-web/back-web/src/main/resources/static/assets/images/welcome.png b/zlt-web/back-web/src/main/resources/static/assets/images/welcome.png deleted file mode 100644 index 94abec2409104a21fc6db682ad9f83c5d8e124d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17743 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' - }); - - // 消息点击事件 - $('#btnMessage').click(function () { - admin.popupRight({ - type: 2, - content: 'tpl/message' - }); - }); - - // 修改密码点击事件 - $('#setPsw').click(function () { - admin.open({ - type: 2, - title: '修改密码', - area: ['380px', '290px'], - content: 'tpl/password' - }); - }); - - // 退出登录点击事件 - $('#btnLogout').click(function () { - layer.confirm('确定退出登录?', function () { - location.replace('/logout'); - }); - }); - - // 个人信息点击事件 - $('#setInfo').click(function () { - - }); -}); \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/assets/libs/baidu-map/MarkerClusterer.js b/zlt-web/back-web/src/main/resources/static/assets/libs/baidu-map/MarkerClusterer.js deleted file mode 100644 index 1ea50967..00000000 --- a/zlt-web/back-web/src/main/resources/static/assets/libs/baidu-map/MarkerClusterer.js +++ /dev/null @@ -1,640 +0,0 @@ -/** - * @fileoverview MarkerClusterer标记聚合器用来解决加载大量点要素到地图上产生覆盖现象的问题,并提高性能。 - * 主入口类是MarkerClusterer, - * 基于Baidu Map API 1.2。 - * - * @author Baidu Map Api Group - * @version 1.2 - */ - - -/** - * @namespace BMap的所有library类均放在BMapLib命名空间下 - */ -var BMapLib = window.BMapLib = BMapLib || {}; -(function(){ - - /** - * 获取一个扩展的视图范围,把上下左右都扩大一样的像素值。 - * @param {Map} map BMap.Map的实例化对象 - * @param {BMap.Bounds} bounds BMap.Bounds的实例化对象 - * @param {Number} gridSize 要扩大的像素值 - * - * @return {BMap.Bounds} 返回扩大后的视图范围。 - */ - var getExtendedBounds = function(map, bounds, gridSize){ - bounds = cutBoundsInRange(bounds); - var pixelNE = map.pointToPixel(bounds.getNorthEast()); - var pixelSW = map.pointToPixel(bounds.getSouthWest()); - pixelNE.x += gridSize; - pixelNE.y -= gridSize; - pixelSW.x -= gridSize; - pixelSW.y += gridSize; - var newNE = map.pixelToPoint(pixelNE); - var newSW = map.pixelToPoint(pixelSW); - return new BMap.Bounds(newSW, newNE); - }; - - /** - * 按照百度地图支持的世界范围对bounds进行边界处理 - * @param {BMap.Bounds} bounds BMap.Bounds的实例化对象 - * - * @return {BMap.Bounds} 返回不越界的视图范围 - */ - var cutBoundsInRange = function (bounds) { - var maxX = getRange(bounds.getNorthEast().lng, -180, 180); - var minX = getRange(bounds.getSouthWest().lng, -180, 180); - var maxY = getRange(bounds.getNorthEast().lat, -74, 74); - var minY = getRange(bounds.getSouthWest().lat, -74, 74); - return new BMap.Bounds(new BMap.Point(minX, minY), new BMap.Point(maxX, maxY)); - }; - - /** - * 对单个值进行边界处理。 - * @param {Number} i 要处理的数值 - * @param {Number} min 下边界值 - * @param {Number} max 上边界值 - * - * @return {Number} 返回不越界的数值 - */ - var getRange = function (i, mix, max) { - mix && (i = Math.max(i, mix)); - max && (i = Math.min(i, max)); - return i; - }; - - /** - * 判断给定的对象是否为数组 - * @param {Object} source 要测试的对象 - * - * @return {Boolean} 如果是数组返回true,否则返回false - */ - var isArray = function (source) { - return '[object Array]' === Object.prototype.toString.call(source); - }; - - /** - * 返回item在source中的索引位置 - * @param {Object} item 要测试的对象 - * @param {Array} source 数组 - * - * @return {Number} 如果在数组内,返回索引,否则返回-1 - */ - var indexOf = function(item, source){ - var index = -1; - if(isArray(source)){ - if (source.indexOf) { - index = source.indexOf(item); - } else { - for (var i = 0, m; m = source[i]; i++) { - if (m === item) { - index = i; - break; - } - } - } - } - return index; - }; - - /** - *@exports MarkerClusterer as BMapLib.MarkerClusterer - */ - var MarkerClusterer = - /** - * MarkerClusterer - * @class 用来解决加载大量点要素到地图上产生覆盖现象的问题,并提高性能 - * @constructor - * @param {Map} map 地图的一个实例。 - * @param {Json Object} options 可选参数,可选项包括:
- * markers {Array} 要聚合的标记数组
- * girdSize {Number} 聚合计算时网格的像素大小,默认60
- * maxZoom {Number} 最大的聚合级别,大于该级别就不进行相应的聚合
- * minClusterSize {Number} 最小的聚合数量,小于该数量的不能成为一个聚合,默认为2
- * isAverangeCenter {Boolean} 聚合点的落脚位置是否是所有聚合在内点的平均值,默认为否,落脚在聚合内的第一个点
- * styles {Array} 自定义聚合后的图标风格,请参考TextIconOverlay类
- */ - BMapLib.MarkerClusterer = function(map, options){ - if (!map){ - return; - } - this._map = map; - this._markers = [];//所有的点位 - this._clusters = [];//聚合的数组 - - var opts = options || {}; - this._gridSize = opts["gridSize"] || 60; - this._maxZoom = opts["maxZoom"] || 18; - this._minClusterSize = opts["minClusterSize"] || 1; - this._isAverageCenter = false; - if (opts['isAverageCenter'] != undefined) { - this._isAverageCenter = opts['isAverageCenter']; - } - this._styles = opts["styles"] || []; - - var that = this; - this._map.addEventListener("zoomend",function(){ - that._redraw(); - }); - - this._map.addEventListener("moveend",function(){ - that._redraw(); - }); - - var mkrs = opts["markers"]; - isArray(mkrs) && this.addMarkers(mkrs); - }; - - /** - * 添加要聚合的标记数组。 - * @param {Array} markers 要聚合的标记数组 - * - * @return 无返回值。 - */ - MarkerClusterer.prototype.addMarkers = function(markers){ - for(var i = 0, len = markers.length; i } markers 需要被删除的marker数组 - * - * @return {Boolean} 删除成功返回true,否则返回false - */ - MarkerClusterer.prototype.removeMarkers = function(markers) { - var success = false; - for (var i = 0; i < markers.length; i++) { - var r = this._removeMarker(markers[i]); - success = success || r; - } - - if (success) { - this._clearLastClusters(); - this._createClusters(); - } - return success; - }; - - /** - * 从地图上彻底清除所有的标记 - * @return 无返回值 - */ - MarkerClusterer.prototype.clearMarkers = function() { - this._clearLastClusters(); - this._removeMarkersFromMap(); - this._markers = []; - }; - - /** - * 重新生成,比如改变了属性等 - * @return 无返回值 - */ - MarkerClusterer.prototype._redraw = function () { - this._clearLastClusters(); - //this._map.clearOverlays(); - this._createClusters(); - }; - - /** - * 获取网格大小 - * @return {Number} 网格大小 - */ - MarkerClusterer.prototype.getGridSize = function() { - return this._gridSize; - }; - - /** - * 设置网格大小 - * @param {Number} size 网格大小 - * @return 无返回值 - */ - MarkerClusterer.prototype.setGridSize = function(size) { - this._gridSize = size; - this._redraw(); - }; - - /** - * 获取聚合的最大缩放级别。 - * @return {Number} 聚合的最大缩放级别。 - */ - MarkerClusterer.prototype.getMaxZoom = function() { - return this._maxZoom; - }; - - /** - * 设置聚合的最大缩放级别 - * @param {Number} maxZoom 聚合的最大缩放级别 - * @return 无返回值 - */ - MarkerClusterer.prototype.setMaxZoom = function(maxZoom) { - this._maxZoom = maxZoom; - this._redraw(); - }; - - /** - * 获取聚合的样式风格集合 - * @return {Array} 聚合的样式风格集合 - */ - MarkerClusterer.prototype.getStyles = function() { - return this._styles; - }; - - /** - * 设置聚合的样式风格集合 - * @param {Array} styles 样式风格数组 - * @return 无返回值 - */ - MarkerClusterer.prototype.setStyles = function(styles) { - this._styles = styles; - this._redraw(); - }; - - /** - * 获取单个聚合的最小数量。 - * @return {Number} 单个聚合的最小数量。 - */ - MarkerClusterer.prototype.getMinClusterSize = function() { - return this._minClusterSize; - }; - - /** - * 设置单个聚合的最小数量。 - * @param {Number} size 单个聚合的最小数量。 - * @return 无返回值。 - */ - MarkerClusterer.prototype.setMinClusterSize = function(size) { - this._minClusterSize = size; - this._redraw(); - }; - - /** - * 获取单个聚合的落脚点是否是聚合内所有标记的平均中心。 - * @return {Boolean} true或false。 - */ - MarkerClusterer.prototype.isAverageCenter = function() { - return this._isAverageCenter; - }; - - /** - * 获取聚合的Map实例。 - * @return {Map} Map的示例。 - */ - MarkerClusterer.prototype.getMap = function() { - return this._map; - }; - - /** - * 获取所有的标记数组。 - * @return {Array} 标记数组。 - */ - MarkerClusterer.prototype.getMarkers = function() { - return this._markers; - }; - - /** - * 获取聚合的总数量。 - * @return {Number} 聚合的总数量。 - */ - MarkerClusterer.prototype.getClustersCount = function() { - var count = 0; - for(var i = 0, cluster; cluster = this._clusters[i]; i++){ - cluster.isReal() && count++; - } - return count; - }; - - /** - * @ignore - * Cluster - * @class 表示一个聚合对象,该聚合,包含有N个标记,这N个标记组成的范围,并有予以显示在Map上的TextIconOverlay等。 - * @constructor - * @param {MarkerClusterer} markerClusterer 一个标记聚合器示例。 - */ - function Cluster(markerClusterer){ - this._markerClusterer = markerClusterer; - this._map = markerClusterer.getMap(); - this._minClusterSize = markerClusterer.getMinClusterSize(); - this._isAverageCenter = markerClusterer.isAverageCenter(); - this._center = null;//落脚位置 - this._markers = [];//这个Cluster中所包含的markers - this._gridBounds = null;//以中心点为准,向四边扩大gridSize个像素的范围,也即网格范围 - this._isReal = false; //真的是个聚合 - this._styles = markerClusterer.getStyles(); - this._labels = []; - this._clusterMarker = new BMapLib.TextIconOverlay(this._center, {name:'共找到',value : this._markers.length}, {"styles":this._markerClusterer.getStyles()}); - //this._map.addOverlay(this._clusterMarker); - } - - /** - * 向该聚合添加一个标记。 - * @param {Marker} marker 要添加的标记。 - * @return 无返回值。 - */ - Cluster.prototype.addMarker = function(marker){ - if(this.isMarkerInCluster(marker)){ - return false; - }//也可用marker.isInCluster判断,外面判断OK,这里基本不会命中 - - if (!this._center){ - this._center = marker.getPosition(); - this.updateGridBounds();// - } else { - if(this._isAverageCenter){ - var l = this._markers.length + 1; - var lat = (this._center.lat * (l - 1) + marker.getPosition().lat) / l; - var lng = (this._center.lng * (l - 1) + marker.getPosition().lng) / l; - this._center = new BMap.Point(lng, lat); - this.updateGridBounds(); - }//计算新的Center - } - - marker.isInCluster = true; - this._markers.push(marker); - - var len = this._markers.length; - if(len < this._minClusterSize ){ - this._map.addOverlay(marker); - //this.updateClusterMarker(); - return true; - } else if (len === this._minClusterSize) { - for (var i = 0; i < len; i++) { - this._markers[i].getMap() && this._map.removeOverlay(this._markers[i]); - } - - } - this._map.addOverlay(this._clusterMarker); - this._isReal = true; - this.updateClusterMarker(); - return true; - }; - - /** - * 判断一个标记是否在该聚合中。 - * @param {Marker} marker 要判断的标记。 - * @return {Boolean} true或false。 - */ - Cluster.prototype.isMarkerInCluster= function(marker){ - if (this._markers.indexOf) { - return this._markers.indexOf(marker) != -1; - } else { - for (var i = 0, m; m = this._markers[i]; i++) { - if (m === marker) { - return true; - } - } - } - return false; - }; - - /** - * 判断一个标记是否在该聚合网格范围中。 - * @param {Marker} marker 要判断的标记。 - * @return {Boolean} true或false。 - */ - Cluster.prototype.isMarkerInClusterBounds = function(marker) { - return this._gridBounds.containsPoint(marker.getPosition()); - }; - - Cluster.prototype.isReal = function(marker) { - return this._isReal; - }; - - /** - * 更新该聚合的网格范围。 - * @return 无返回值。 - */ - Cluster.prototype.updateGridBounds = function() { - var bounds = new BMap.Bounds(this._center, this._center); - this._gridBounds = getExtendedBounds(this._map, bounds, this._markerClusterer.getGridSize()); - }; - - /** - * 对于单个点添加label - */ - Cluster.prototype.addLabel = function (marker) { - //获取marker的坐标 - var position = marker.getPosition(); - //创建label - var label = new BMap.Label({position : position}); - label.setStyle({ - height : '25px', - color : "#fff", - backgroundColor : this._styles[0].backgroundColor, - border : 'none', - borderRadius : "25px", - fontWeight : 'bold', - }); - var content = ''+'

哈哈这是一sssssssssssssss个点

'; - label.setContent(content) - label.setPosition(position); - this._labels.push(label); - this._map.addOverlay(label); - } - /** - * 更新该聚合的显示样式,也即TextIconOverlay。 - * @return 无返回值。 - */ - Cluster.prototype.updateClusterMarker = function () { - if (this._map.getZoom() > this._markerClusterer.getMaxZoom()) { - this._clusterMarker && this._map.removeOverlay(this._clusterMarker); - for (var i = 0, marker; marker = this._markers[i]; i++) { - //this._map.addOverlay(marker); - this.addLabel(marker); - } - return; - } - - if (this._markers.length < this._minClusterSize) { - this._clusterMarker.hide(); - return; - } - - this._clusterMarker.setPosition(this._center); - - this._clusterMarker.setText({name : '共找到' , value : this._markers.length}); - - var thatMap = this._map; - var thatBounds = this.getBounds(); - var center = this._center; - this._clusterMarker.addEventListener("click", function(event){ - //这个方法容易造成晃动 - //thatMap.setViewport(thatBounds); - //console.log(center); - var zoom = thatMap.getZoom(); - zoom = zoom > 14 ? zoom : 14; - thatMap.setZoom(zoom); - thatMap.setCenter(center); - }); - - }; - - /** - * 删除该聚合。 - * @return 无返回值。 - */ - Cluster.prototype.remove = function(){ - for (var i = 0, m; m = this._labels[i]; i++) { - this._map.removeOverlay(m); - }//清除散的标记点 - - this._map.removeOverlay(this._clusterMarker); - this._markers.length = 0; - delete this._markers; - } - - /** - * 获取该聚合所包含的所有标记的最小外接矩形的范围。 - * @return {BMap.Bounds} 计算出的范围。 - */ - Cluster.prototype.getBounds = function() { - var bounds = new BMap.Bounds(this._center,this._center); - for (var i = 0, marker; marker = this._markers[i]; i++) { - bounds.extend(marker.getPosition()); - } - return bounds; - }; - - /** - * 获取该聚合的落脚点。 - * @return {BMap.Point} 该聚合的落脚点。 - */ - Cluster.prototype.getCenter = function() { - return this._center; - }; - -})(); diff --git a/zlt-web/back-web/src/main/resources/static/assets/libs/baidu-map/TextIconOverlay.js b/zlt-web/back-web/src/main/resources/static/assets/libs/baidu-map/TextIconOverlay.js deleted file mode 100644 index ce318f48..00000000 --- a/zlt-web/back-web/src/main/resources/static/assets/libs/baidu-map/TextIconOverlay.js +++ /dev/null @@ -1,1040 +0,0 @@ -/** - * @fileoverview 此类表示地图上的一个覆盖物,该覆盖物由文字和图标组成,从Overlay继承。 - * 主入口类是TextIconOverlay, - * 基于Baidu Map API 1.2。 - * - * @author Baidu Map Api Group - * @version 1.2 - */ - - -/** - * @namespace BMap的所有library类均放在BMapLib命名空间下 - */ -var BMapLib = window.BMapLib = BMapLib || {}; - -(function () { - - /** - * 声明baidu包 - */ - var T, - baidu = T = baidu || {version: "1.3.8"}; - - (function (){ - //提出guid,防止在与老版本Tangram混用时 - //在下一行错误的修改window[undefined] - baidu.guid = "$BAIDU$"; - - //Tangram可能被放在闭包中 - //一些页面级别唯一的属性,需要挂载在window[baidu.guid]上 - window[baidu.guid] = window[baidu.guid] || {}; - - /** - * @ignore - * @namespace baidu.dom 操作dom的方法。 - */ - baidu.dom = baidu.dom || {}; - - - /** - * 从文档中获取指定的DOM元素 - * @name baidu.dom.g - * @function - * @grammar baidu.dom.g(id) - * @param {string|HTMLElement} id 元素的id或DOM元素 - * @shortcut g,T.G - * @meta standard - * @see baidu.dom.q - * - * @returns {HTMLElement|null} 获取的元素,查找不到时返回null,如果参数不合法,直接返回参数 - */ - baidu.dom.g = function (id) { - if ('string' == typeof id || id instanceof String) { - return document.getElementById(id); - } else if (id && id.nodeName && (id.nodeType == 1 || id.nodeType == 9)) { - return id; - } - return null; - }; - - // 声明快捷方法 - baidu.g = baidu.G = baidu.dom.g; - - /** - * 获取目标元素所属的document对象 - * @name baidu.dom.getDocument - * @function - * @grammar baidu.dom.getDocument(element) - * @param {HTMLElement|string} element 目标元素或目标元素的id - * @meta standard - * @see baidu.dom.getWindow - * - * @returns {HTMLDocument} 目标元素所属的document对象 - */ - baidu.dom.getDocument = function (element) { - element = baidu.dom.g(element); - return element.nodeType == 9 ? element : element.ownerDocument || element.document; - }; - - /** - * @ignore - * @namespace baidu.lang 对语言层面的封装,包括类型判断、模块扩展、继承基类以及对象自定义事件的支持。 - */ - baidu.lang = baidu.lang || {}; - - /** - * 判断目标参数是否string类型或String对象 - * @name baidu.lang.isString - * @function - * @grammar baidu.lang.isString(source) - * @param {Any} source 目标参数 - * @shortcut isString - * @meta standard - * @see baidu.lang.isObject,baidu.lang.isNumber,baidu.lang.isArray,baidu.lang.isElement,baidu.lang.isBoolean,baidu.lang.isDate - * - * @returns {boolean} 类型判断结果 - */ - baidu.lang.isString = function (source) { - return '[object String]' == Object.prototype.toString.call(source); - }; - - // 声明快捷方法 - baidu.isString = baidu.lang.isString; - - /** - * 从文档中获取指定的DOM元素 - * **内部方法** - * - * @param {string|HTMLElement} id 元素的id或DOM元素 - * @meta standard - * @return {HTMLElement} DOM元素,如果不存在,返回null,如果参数不合法,直接返回参数 - */ - baidu.dom._g = function (id) { - if (baidu.lang.isString(id)) { - return document.getElementById(id); - } - return id; - }; - - // 声明快捷方法 - baidu._g = baidu.dom._g; - - /** - * @ignore - * @namespace baidu.browser 判断浏览器类型和特性的属性。 - */ - baidu.browser = baidu.browser || {}; - - if (/msie (\d+\.\d)/i.test(navigator.userAgent)) { - //IE 8下,以documentMode为准 - //在百度模板中,可能会有$,防止冲突,将$1 写成 \x241 - /** - * 判断是否为ie浏览器 - * @property ie ie版本号 - * @grammar baidu.browser.ie - * @meta standard - * @shortcut ie - * @see baidu.browser.firefox,baidu.browser.safari,baidu.browser.opera,baidu.browser.chrome,baidu.browser.maxthon - */ - baidu.browser.ie = baidu.ie = document.documentMode || + RegExp['\x241']; - } - - /** - * 获取目标元素的computed style值。如果元素的样式值不能被浏览器计算,则会返回空字符串(IE) - * - * @author berg - * @name baidu.dom.getComputedStyle - * @function - * @grammar baidu.dom.getComputedStyle(element, key) - * @param {HTMLElement|string} element 目标元素或目标元素的id - * @param {string} key 要获取的样式名 - * - * @see baidu.dom.getStyle - * - * @returns {string} 目标元素的computed style值 - */ - - baidu.dom.getComputedStyle = function(element, key){ - element = baidu.dom._g(element); - var doc = baidu.dom.getDocument(element), - styles; - if (doc.defaultView && doc.defaultView.getComputedStyle) { - styles = doc.defaultView.getComputedStyle(element, null); - if (styles) { - return styles[key] || styles.getPropertyValue(key); - } - } - return ''; - }; - - /** - * 提供给setStyle与getStyle使用 - */ - baidu.dom._styleFixer = baidu.dom._styleFixer || {}; - - /** - * 提供给setStyle与getStyle使用 - */ - baidu.dom._styleFilter = baidu.dom._styleFilter || []; - - /** - * 为获取和设置样式的过滤器 - * @private - * @meta standard - */ - baidu.dom._styleFilter.filter = function (key, value, method) { - for (var i = 0, filters = baidu.dom._styleFilter, filter; filter = filters[i]; i++) { - if (filter = filter[method]) { - value = filter(key, value); - } - } - return value; - }; - - /** - * @ignore - * @namespace baidu.string 操作字符串的方法。 - */ - baidu.string = baidu.string || {}; - - /** - * 将目标字符串进行驼峰化处理 - * @name baidu.string.toCamelCase - * @function - * @grammar baidu.string.toCamelCase(source) - * @param {string} source 目标字符串 - * @remark - * 支持单词以“-_”分隔 - * @meta standard - * - * @returns {string} 驼峰化处理后的字符串 - */ - baidu.string.toCamelCase = function (source) { - //提前判断,提高getStyle等的效率 thanks xianwei - if (source.indexOf('-') < 0 && source.indexOf('_') < 0) { - return source; - } - return source.replace(/[-_][^-_]/g, function (match) { - return match.charAt(1).toUpperCase(); - }); - }; - - /** - * 获取目标元素的样式值 - * @name baidu.dom.getStyle - * @function - * @grammar baidu.dom.getStyle(element, key) - * @param {HTMLElement|string} element 目标元素或目标元素的id - * @param {string} key 要获取的样式名 - * @remark - * - * 为了精简代码,本模块默认不对任何浏览器返回值进行归一化处理(如使用getStyle时,不同浏览器下可能返回rgb颜色或hex颜色),也不会修复浏览器的bug和差异性(如设置IE的float属性叫styleFloat,firefox则是cssFloat)。
- * baidu.dom._styleFixer和baidu.dom._styleFilter可以为本模块提供支持。
- * 其中_styleFilter能对颜色和px进行归一化处理,_styleFixer能对display,float,opacity,textOverflow的浏览器兼容性bug进行处理。 - * @shortcut getStyle - * @meta standard - * @see baidu.dom.setStyle,baidu.dom.setStyles, baidu.dom.getComputedStyle - * - * @returns {string} 目标元素的样式值 - */ - baidu.dom.getStyle = function (element, key) { - var dom = baidu.dom; - - element = dom.g(element); - key = baidu.string.toCamelCase(key); - //computed style, then cascaded style, then explicitly set style. - var value = element.style[key] || - (element.currentStyle ? element.currentStyle[key] : "") || - dom.getComputedStyle(element, key); - - // 在取不到值的时候,用fixer进行修正 - if (!value) { - var fixer = dom._styleFixer[key]; - if(fixer){ - value = fixer.get ? fixer.get(element) : baidu.dom.getStyle(element, fixer); - } - } - - /* 检查结果过滤器 */ - if (fixer = dom._styleFilter) { - value = fixer.filter(key, value, 'get'); - } - - return value; - }; - - // 声明快捷方法 - baidu.getStyle = baidu.dom.getStyle; - - - if (/opera\/(\d+\.\d)/i.test(navigator.userAgent)) { - /** - * 判断是否为opera浏览器 - * @property opera opera版本号 - * @grammar baidu.browser.opera - * @meta standard - * @see baidu.browser.ie,baidu.browser.firefox,baidu.browser.safari,baidu.browser.chrome - */ - baidu.browser.opera = + RegExp['\x241']; - } - - /** - * 判断是否为webkit内核 - * @property isWebkit - * @grammar baidu.browser.isWebkit - * @meta standard - * @see baidu.browser.isGecko - */ - baidu.browser.isWebkit = /webkit/i.test(navigator.userAgent); - - /** - * 判断是否为gecko内核 - * @property isGecko - * @grammar baidu.browser.isGecko - * @meta standard - * @see baidu.browser.isWebkit - */ - baidu.browser.isGecko = /gecko/i.test(navigator.userAgent) && !/like gecko/i.test(navigator.userAgent); - - /** - * 判断是否严格标准的渲染模式 - * @property isStrict - * @grammar baidu.browser.isStrict - * @meta standard - */ - baidu.browser.isStrict = document.compatMode == "CSS1Compat"; - - /** - * 获取目标元素相对于整个文档左上角的位置 - * @name baidu.dom.getPosition - * @function - * @grammar baidu.dom.getPosition(element) - * @param {HTMLElement|string} element 目标元素或目标元素的id - * @meta standard - * - * @returns {Object} 目标元素的位置,键值为top和left的Object。 - */ - baidu.dom.getPosition = function (element) { - element = baidu.dom.g(element); - var doc = baidu.dom.getDocument(element), - browser = baidu.browser, - getStyle = baidu.dom.getStyle, - // Gecko 1.9版本以下用getBoxObjectFor计算位置 - // 但是某些情况下是有bug的 - // 对于这些有bug的情况 - // 使用递归查找的方式 - BUGGY_GECKO_BOX_OBJECT = browser.isGecko > 0 && - doc.getBoxObjectFor && - getStyle(element, 'position') == 'absolute' && - (element.style.top === '' || element.style.left === ''), - pos = {"left":0,"top":0}, - viewport = (browser.ie && !browser.isStrict) ? doc.body : doc.documentElement, - parent, - box; - - if(element == viewport){ - return pos; - } - - if(element.getBoundingClientRect){ // IE and Gecko 1.9+ - - //当HTML或者BODY有border width时, 原生的getBoundingClientRect返回值是不符合预期的 - //考虑到通常情况下 HTML和BODY的border只会设成0px,所以忽略该问题. - box = element.getBoundingClientRect(); - - pos.left = Math.floor(box.left) + Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft); - pos.top = Math.floor(box.top) + Math.max(doc.documentElement.scrollTop, doc.body.scrollTop); - - // IE会给HTML元素添加一个border,默认是medium(2px) - // 但是在IE 6 7 的怪异模式下,可以被html { border: 0; } 这条css规则覆盖 - // 在IE7的标准模式下,border永远是2px,这个值通过clientLeft 和 clientTop取得 - // 但是。。。在IE 6 7的怪异模式,如果用户使用css覆盖了默认的medium - // clientTop和clientLeft不会更新 - pos.left -= doc.documentElement.clientLeft; - pos.top -= doc.documentElement.clientTop; - - var htmlDom = doc.body, - // 在这里,不使用element.style.borderLeftWidth,只有computedStyle是可信的 - htmlBorderLeftWidth = parseInt(getStyle(htmlDom, 'borderLeftWidth')), - htmlBorderTopWidth = parseInt(getStyle(htmlDom, 'borderTopWidth')); - if(browser.ie && !browser.isStrict){ - pos.left -= isNaN(htmlBorderLeftWidth) ? 2 : htmlBorderLeftWidth; - pos.top -= isNaN(htmlBorderTopWidth) ? 2 : htmlBorderTopWidth; - } - } else { - // safari/opera/firefox - parent = element; - - do { - pos.left += parent.offsetLeft; - pos.top += parent.offsetTop; - - // safari里面,如果遍历到了一个fixed的元素,后面的offset都不准了 - if (browser.isWebkit > 0 && getStyle(parent, 'position') == 'fixed') { - pos.left += doc.body.scrollLeft; - pos.top += doc.body.scrollTop; - break; - } - - parent = parent.offsetParent; - } while (parent && parent != element); - - // 对body offsetTop的修正 - if(browser.opera > 0 || (browser.isWebkit > 0 && getStyle(element, 'position') == 'absolute')){ - pos.top -= doc.body.offsetTop; - } - - // 计算除了body的scroll - parent = element.offsetParent; - while (parent && parent != doc.body) { - pos.left -= parent.scrollLeft; - // see https://bugs.opera.com/show_bug.cgi?id=249965 - if (!browser.opera || parent.tagName != 'TR') { - pos.top -= parent.scrollTop; - } - parent = parent.offsetParent; - } - } - - return pos; - }; - - /** - * @ignore - * @namespace baidu.event 屏蔽浏览器差异性的事件封装。 - * @property target 事件的触发元素 - * @property pageX 鼠标事件的鼠标x坐标 - * @property pageY 鼠标事件的鼠标y坐标 - * @property keyCode 键盘事件的键值 - */ - baidu.event = baidu.event || {}; - - /** - * 事件监听器的存储表 - * @private - * @meta standard - */ - baidu.event._listeners = baidu.event._listeners || []; - - /** - * 为目标元素添加事件监听器 - * @name baidu.event.on - * @function - * @grammar baidu.event.on(element, type, listener) - * @param {HTMLElement|string|window} element 目标元素或目标元素id - * @param {string} type 事件类型 - * @param {Function} listener 需要添加的监听器 - * @remark - * - 1. 不支持跨浏览器的鼠标滚轮事件监听器添加
- 2. 改方法不为监听器灌入事件对象,以防止跨iframe事件挂载的事件对象获取失败 - - * @shortcut on - * @meta standard - * @see baidu.event.un - * - * @returns {HTMLElement|window} 目标元素 - */ - baidu.event.on = function (element, type, listener) { - type = type.replace(/^on/i, ''); - element = baidu.dom._g(element); - - var realListener = function (ev) { - // 1. 这里不支持EventArgument, 原因是跨frame的事件挂载 - // 2. element是为了修正this - listener.call(element, ev); - }, - lis = baidu.event._listeners, - filter = baidu.event._eventFilter, - afterFilter, - realType = type; - type = type.toLowerCase(); - // filter过滤 - if(filter && filter[type]){ - afterFilter = filter[type](element, type, realListener); - realType = afterFilter.type; - realListener = afterFilter.listener; - } - - // 事件监听器挂载 - if (element.addEventListener) { - element.addEventListener(realType, realListener, false); - } else if (element.attachEvent) { - element.attachEvent('on' + realType, realListener); - } - - // 将监听器存储到数组中 - lis[lis.length] = [element, type, listener, realListener, realType]; - return element; - }; - - // 声明快捷方法 - baidu.on = baidu.event.on; - - /** - * 返回一个当前页面的唯一标识字符串。 - * @name baidu.lang.guid - * @function - * @grammar baidu.lang.guid() - * @version 1.1.1 - * @meta standard - * - * @returns {String} 当前页面的唯一标识字符串 - */ - - (function(){ - //不直接使用window,可以提高3倍左右性能 - var guid = window[baidu.guid]; - - baidu.lang.guid = function() { - return "TANGRAM__" + (guid._counter ++).toString(36); - }; - - guid._counter = guid._counter || 1; - })(); - - /** - * 所有类的实例的容器 - * key为每个实例的guid - * @meta standard - */ - - window[baidu.guid]._instances = window[baidu.guid]._instances || {}; - - /** - * 判断目标参数是否为function或Function实例 - * @name baidu.lang.isFunction - * @function - * @grammar baidu.lang.isFunction(source) - * @param {Any} source 目标参数 - * @version 1.2 - * @see baidu.lang.isString,baidu.lang.isObject,baidu.lang.isNumber,baidu.lang.isArray,baidu.lang.isElement,baidu.lang.isBoolean,baidu.lang.isDate - * @meta standard - * @returns {boolean} 类型判断结果 - */ - baidu.lang.isFunction = function (source) { - // chrome下,'function' == typeof /a/ 为true. - return '[object Function]' == Object.prototype.toString.call(source); - }; - - /** - * - * @ignore - * @class Tangram继承机制提供的一个基类,用户可以通过继承baidu.lang.Class来获取它的属性及方法。 - * @name baidu.lang.Class - * @grammar baidu.lang.Class(guid) - * @param {string} guid 对象的唯一标识 - * @meta standard - * @remark baidu.lang.Class和它的子类的实例均包含一个全局唯一的标识guid。guid是在构造函数中生成的,因此,继承自baidu.lang.Class的类应该直接或者间接调用它的构造函数。
baidu.lang.Class的构造函数中产生guid的方式可以保证guid的唯一性,及每个实例都有一个全局唯一的guid。 - * @meta standard - * @see baidu.lang.inherits,baidu.lang.Event - */ - baidu.lang.Class = function(guid) { - this.guid = guid || baidu.lang.guid(); - window[baidu.guid]._instances[this.guid] = this; - }; - window[baidu.guid]._instances = window[baidu.guid]._instances || {}; - - /** - * 释放对象所持有的资源,主要是自定义事件。 - * @name dispose - * @grammar obj.dispose() - */ - baidu.lang.Class.prototype.dispose = function(){ - delete window[baidu.guid]._instances[this.guid]; - - for(var property in this){ - if (!baidu.lang.isFunction(this[property])) { - delete this[property]; - } - } - this.disposed = true; - }; - - /** - * 重载了默认的toString方法,使得返回信息更加准确一些。 - * @return {string} 对象的String表示形式 - */ - baidu.lang.Class.prototype.toString = function(){ - return "[object " + (this._className || "Object" ) + "]"; - }; - - /** - * @ignore - * @class 自定义的事件对象。 - * @name baidu.lang.Event - * @grammar baidu.lang.Event(type[, target]) - * @param {string} type 事件类型名称。为了方便区分事件和一个普通的方法,事件类型名称必须以"on"(小写)开头。 - * @param {Object} [target]触发事件的对象 - * @meta standard - * @remark 引入该模块,会自动为Class引入3个事件扩展方法:addEventListener、removeEventListener和dispatchEvent。 - * @meta standard - * @see baidu.lang.Class - */ - baidu.lang.Event = function (type, target) { - this.type = type; - this.returnValue = true; - this.target = target || null; - this.currentTarget = null; - }; - - /** - * 注册对象的事件监听器。引入baidu.lang.Event后,Class的子类实例才会获得该方法。 - * @grammar obj.addEventListener(type, handler[, key]) - * @param {string} type 自定义事件的名称 - * @param {Function} handler 自定义事件被触发时应该调用的回调函数 - * @param {string} [key] 为事件监听函数指定的名称,可在移除时使用。如果不提供,方法会默认为它生成一个全局唯一的key。 - * @remark 事件类型区分大小写。如果自定义事件名称不是以小写"on"开头,该方法会给它加上"on"再进行判断,即"click"和"onclick"会被认为是同一种事件。 - */ - baidu.lang.Class.prototype.addEventListener = function (type, handler, key) { - if (!baidu.lang.isFunction(handler)) { - return; - } - - !this.__listeners && (this.__listeners = {}); - - var t = this.__listeners, id; - if (typeof key == "string" && key) { - if (/[^\w\-]/.test(key)) { - throw("nonstandard key:" + key); - } else { - handler.hashCode = key; - id = key; - } - } - type.indexOf("on") != 0 && (type = "on" + type); - - typeof t[type] != "object" && (t[type] = {}); - id = id || baidu.lang.guid(); - handler.hashCode = id; - t[type][id] = handler; - }; - - /** - * 移除对象的事件监听器。引入baidu.lang.Event后,Class的子类实例才会获得该方法。 - * @grammar obj.removeEventListener(type, handler) - * @param {string} type 事件类型 - * @param {Function|string} handler 要移除的事件监听函数或者监听函数的key - * @remark 如果第二个参数handler没有被绑定到对应的自定义事件中,什么也不做。 - */ - baidu.lang.Class.prototype.removeEventListener = function (type, handler) { - if (typeof handler != "undefined") { - if ( (baidu.lang.isFunction(handler) && ! (handler = handler.hashCode)) - || (! baidu.lang.isString(handler)) - ){ - return; - } - } - - !this.__listeners && (this.__listeners = {}); - - type.indexOf("on") != 0 && (type = "on" + type); - - var t = this.__listeners; - if (!t[type]) { - return; - } - if (typeof handler != "undefined") { - t[type][handler] && delete t[type][handler]; - } else { - for(var guid in t[type]){ - delete t[type][guid]; - } - } - }; - - /** - * 派发自定义事件,使得绑定到自定义事件上面的函数都会被执行。引入baidu.lang.Event后,Class的子类实例才会获得该方法。 - * @grammar obj.dispatchEvent(event, options) - * @param {baidu.lang.Event|String} event Event对象,或事件名称(1.1.1起支持) - * @param {Object} options 扩展参数,所含属性键值会扩展到Event对象上(1.2起支持) - * @remark 处理会调用通过addEventListenr绑定的自定义事件回调函数之外,还会调用直接绑定到对象上面的自定义事件。例如:
- myobj.onMyEvent = function(){}
- myobj.addEventListener("onMyEvent", function(){}); - */ - baidu.lang.Class.prototype.dispatchEvent = function (event, options) { - if (baidu.lang.isString(event)) { - event = new baidu.lang.Event(event); - } - !this.__listeners && (this.__listeners = {}); - - // 20100603 添加本方法的第二个参数,将 options extend到event中去传递 - options = options || {}; - for (var i in options) { - event[i] = options[i]; - } - - var i, t = this.__listeners, p = event.type; - event.target = event.target || this; - event.currentTarget = this; - - p.indexOf("on") != 0 && (p = "on" + p); - - baidu.lang.isFunction(this[p]) && this[p].apply(this, arguments); - - if (typeof t[p] == "object") { - for (i in t[p]) { - t[p][i].apply(this, arguments); - } - } - return event.returnValue; - }; - - - baidu.lang.inherits = function (subClass, superClass, className) { - var key, proto, - selfProps = subClass.prototype, - clazz = new Function(); - - clazz.prototype = superClass.prototype; - proto = subClass.prototype = new clazz(); - for (key in selfProps) { - proto[key] = selfProps[key]; - } - subClass.prototype.constructor = subClass; - subClass.superClass = superClass.prototype; - - // 类名标识,兼容Class的toString,基本没用 - if ("string" == typeof className) { - proto._className = className; - } - }; - // 声明快捷方法 - baidu.inherits = baidu.lang.inherits; - })(); - - - /** - - * 图片的路径 - - * @private - * @type {String} - - */ - var _IMAGE_PATH = 'http://api.map.baidu.com/library/TextIconOverlay/1.2/src/images/m'; - - /** - - * 图片的后缀名 - - * @private - * @type {String} - - */ - var _IMAGE_EXTENSION = 'png'; - - /** - *@exports TextIconOverlay as BMapLib.TextIconOverlay - */ - var TextIconOverlay = - /** - * TextIconOverlay - * @class 此类表示地图上的一个覆盖物,该覆盖物由文字和图标组成,从Overlay继承。文字通常是数字(0-9)或字母(A-Z ),而文字与图标之间有一定的映射关系。 - *该覆盖物适用于以下类似的场景:需要在地图上添加一系列覆盖物,这些覆盖物之间用不同的图标和文字来区分,文字可能表示了该覆盖物的某一属性值,根据该文字和一定的映射关系,自动匹配相应颜色和大小的图标。 - * - *@constructor - *@param {Point} position 表示一个经纬度坐标位置。 - *@param {String} text 表示该覆盖物显示的文字信息。 - *@param {Json Object} options 可选参数,可选项包括:
- *"styles":{Array} 一组图标风格。单个图表风格包括以下几个属性:
- * url {String} 图片的url地址。(必选)
- * size {Size} 图片的大小。(必选)
- * anchor {Size} 图标定位在地图上的位置相对于图标左上角的偏移值,默认偏移值为图标的中心位置。(可选)
- * offset {Size} 图片相对于可视区域的偏移值,此功能的作用等同于CSS中的background-position属性。(可选)
- * textSize {Number} 文字的大小。(可选,默认10)
- * textColor {String} 文字的颜色。(可选,默认black)
- */ - BMapLib.TextIconOverlay = function(position, text, options){ - this._position = position; - this._text = text; - this._options = options || {}; - this._styles = this._options['styles'] || []; - (!this._styles.length) && this._setupDefaultStyles(); - }; - - T.lang.inherits(TextIconOverlay, BMap.Overlay, "TextIconOverlay"); - - TextIconOverlay.prototype._setupDefaultStyles = function(){ - var sizes = [53, 56, 66, 78, 90]; - for(var i = 0, size; size = sizes[i]; i++){ - this._styles.push({ - url:_IMAGE_PATH + i + '.' + _IMAGE_EXTENSION, - size: new BMap.Size(size, size) - }); - }//for循环的简洁写法 - }; - - /** - *继承Overlay的intialize方法,自定义覆盖物时必须。 - *@param {Map} map BMap.Map的实例化对象。 - *@return {HTMLElement} 返回覆盖物对应的HTML元素。 - */ - TextIconOverlay.prototype.initialize = function(map){ - this._map = map; - - this._domElement = document.createElement('div'); - this._updateCss(); - this._updateText(); - this._updatePosition(); - - this._bind(); - - this._map.getPanes().markerMouseTarget.appendChild(this._domElement); - return this._domElement; - }; - - /** - *继承Overlay的draw方法,自定义覆盖物时必须。 - *@return 无返回值。 - */ - TextIconOverlay.prototype.draw = function(){ - this._map && this._updatePosition(); - }; - - /** - *获取该覆盖物上的文字。 - *@return {String} 该覆盖物上的文字。 - */ - TextIconOverlay.prototype.getText = function(){ - return this._text; - }; - - /** - *设置该覆盖物上的文字。 - *@param {String} text 要设置的文字,通常是字母A-Z或数字0-9。 - *@return 无返回值。 - */ - TextIconOverlay.prototype.setText = function(text){ - if(text && (!this._text || (this._text.toString() != text.toString()))){ - this._text = text; - this._updateText(); - this._updateCss(); - this._updatePosition(); - } - }; - - /** - *获取该覆盖物的位置。 - *@return {Point} 该覆盖物的经纬度坐标。 - */ - TextIconOverlay.prototype.getPosition = function () { - return this._position; - }; - - /** - *设置该覆盖物的位置。 - *@param {Point} position 要设置的经纬度坐标。 - *@return 无返回值。 - */ - TextIconOverlay.prototype.setPosition = function (position) { - if(position && (!this._position || !this._position.equals(position))){ - this._position = position; - this._updatePosition(); - } - }; - - /** - *由文字信息获取风格数组的对应索引值。 - *内部默认的对应函数为文字转换为数字除以10的结果,比如文字8返回索引0,文字25返回索引2. - *如果需要自定义映射关系,请覆盖该函数。 - *@param {String} text 文字。 - *@param {Array} styles 一组图标风格。 - *@return {Number} 对应的索引值。 - */ - TextIconOverlay.prototype.getStyleByText = function(text, styles){ - var count = parseInt(text); - var index = parseInt(count / 10); - index = Math.max(0, index); - index = Math.min(index, styles.length - 1); - return styles[index]; - } - - /** - *更新相应的CSS。 - *@return 无返回值。 - */ - TextIconOverlay.prototype._updateCss = function(){ - var style = this.getStyleByText(this._text, this._styles); - this._domElement.style.cssText = this._buildCssText(style); - }; - - /** - *更新覆盖物的显示文字。 - *@return 无返回值。 - */ - TextIconOverlay.prototype._updateText = function(){ - if (this._domElement) { - this._domElement.innerHTML = this._text; - } - }; - - /** - *调整覆盖物在地图上的位置更新覆盖物的显示文字。 - *@return 无返回值。 - */ - TextIconOverlay.prototype._updatePosition = function(){ - if (this._domElement && this._position) { - var style = this._domElement.style; - var pixelPosition= this._map.pointToOverlayPixel(this._position); - pixelPosition.x -= Math.ceil(parseInt(style.width) / 2); - pixelPosition.y -= Math.ceil(parseInt(style.height) / 2); - style.left = pixelPosition.x + "px"; - style.top = pixelPosition.y + "px"; - } - }; - - /** - * 为该覆盖物的HTML元素构建CSS - * @param {IconStyle} 一个图标的风格。 - * @return {String} 构建完成的CSSTEXT。 - */ - TextIconOverlay.prototype._buildCssText = function(style) { - //根据style来确定一些默认值 - var url = style['url']; - var size = style['size']; - var anchor = style['anchor']; - var offset = style['offset']; - var textColor = style['textColor'] || 'black'; - var textSize = style['textSize'] || 10; - - var csstext = []; - if (T.browser["ie"] < 7) { - csstext.push('filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(' + - 'sizingMethod=scale,src="' + url + '");'); - } else { - csstext.push('background-image:url(' + url + ');'); - var backgroundPosition = '0 0'; - (offset instanceof BMap.Size) && (backgroundPosition = offset.width + 'px' + ' ' + offset.height + 'px'); - csstext.push('background-position:' + backgroundPosition + ';'); - } - - if (size instanceof BMap.Size){ - if (anchor instanceof BMap.Size) { - if (anchor.height > 0 && anchor.height < size.height) { - csstext.push('height:' + (size.height - anchor.height) + 'px; padding-top:' + anchor.height + 'px;'); - } - if(anchor.width > 0 && anchor.width < size.width){ - csstext.push('width:' + (size.width - anchor.width) + 'px; padding-left:' + anchor.width + 'px;'); - } - } else { - csstext.push('height:' + size.height + 'px; line-height:' + size.height + 'px;'); - csstext.push('width:' + size.width + 'px; text-align:center;'); - } - } - - csstext.push('cursor:pointer; color:' + textColor + '; position:absolute; font-size:' + - textSize + 'px; font-family:Arial,sans-serif; font-weight:bold'); - return csstext.join(''); - }; - - - /** - - * 当鼠标点击该覆盖物时会触发该事件 - - * @name TextIconOverlay#click - - * @event - - * @param {Event Object} e 回调函数会返回event参数,包括以下返回值: - - *
"type : {String} 事件类型 - - *
"target:{BMapLib.TextIconOverlay} 事件目标 - - * - - */ - - /** - - * 当鼠标进入该覆盖物区域时会触发该事件 - - * @name TextIconOverlay#mouseover - - * @event - * @param {Event Object} e 回调函数会返回event参数,包括以下返回值: - - *
"type : {String} 事件类型 - - *
"target:{BMapLib.TextIconOverlay} 事件目标 - - *
"point : {BMap.Point} 最新添加上的节点BMap.Point对象 - - *
"pixel:{BMap.pixel} 最新添加上的节点BMap.Pixel对象 - - * - - * @example 参考示例:
- - * myTextIconOverlay.addEventListener("mouseover", function(e) { alert(e.point); }); - - */ - - /** - - * 当鼠标离开该覆盖物区域时会触发该事件 - - * @name TextIconOverlay#mouseout - - * @event - - * @param {Event Object} e 回调函数会返回event参数,包括以下返回值: - - *
"type : {String} 事件类型 - - *
"target:{BMapLib.TextIconOverlay} 事件目标 - - *
"point : {BMap.Point} 最新添加上的节点BMap.Point对象 - - *
"pixel:{BMap.pixel} 最新添加上的节点BMap.Pixel对象 - - * - - * @example 参考示例:
- - * myTextIconOverlay.addEventListener("mouseout", function(e) { alert(e.point); }); - - */ - - - /** - * 为该覆盖物绑定一系列事件 - * 当前支持click mouseover mouseout - * @return 无返回值。 - */ - TextIconOverlay.prototype._bind = function(){ - if (!this._domElement){ - return; - } - - var me = this; - var map = this._map; - - var BaseEvent = T.lang.Event; - function eventExtend(e, be){ - var elem = e.srcElement || e.target; - var x = e.clientX || e.pageX; - var y = e.clientY || e.pageY; - if (e && be && x && y && elem){ - var offset = T.dom.getPosition(map.getContainer()); - be.pixel = new BMap.Pixel(x - offset.left, y - offset.top); - be.point = map.pixelToPoint(be.pixel); - } - return be; - }//给事件参数增加pixel和point两个值 - - T.event.on(this._domElement,"mouseover", function(e){ - me.dispatchEvent(eventExtend(e, new BaseEvent("onmouseover"))); - }); - T.event.on(this._domElement,"mouseout", function(e){ - me.dispatchEvent(eventExtend(e, new BaseEvent("onmouseout"))); - }); - T.event.on(this._domElement,"click", function(e){ - me.dispatchEvent(eventExtend(e, new BaseEvent("onclick"))); - }); - }; - -})(); \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/assets/libs/jquery-3.2.1.min.js b/zlt-web/back-web/src/main/resources/static/assets/libs/jquery-3.2.1.min.js deleted file mode 100644 index 764485c0..00000000 --- a/zlt-web/back-web/src/main/resources/static/assets/libs/jquery-3.2.1.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(a,b){"use strict";"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){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=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={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.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=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$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("fieldset");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=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;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 function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(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 qa(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},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=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),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){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.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===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(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,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):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(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!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&&C.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.escape=function(a){return(a+"").replace(ba,ca)},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:V,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(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===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 V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.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(_,aa).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("(^|"+K+")"+a+"("+K+"|$)"))&&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(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},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,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/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=I(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(P,"$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(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).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:oa(!1),disabled:oa(!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 X.test(a.nodeName)},input:function(a){return W.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:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(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}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};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=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return 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){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S), -a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.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 W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),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),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==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,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.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 Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(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&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hide)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b), -null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nb(a,b,c,d){var e={},f=a===Jb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSettings,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r(" - - - ``` - -- **第二步:
** - 在module/config.js里面找到menus变量,添加如下所示: - - ![配置menus示例](https://ws1.sinaimg.cn/large/006a7GCKgy1ftg1etm1ahj30i80b4752.jpg) - -- **第三步:
** - 运行项目,查看效果 - - ![添加业务界面效果](https://ws1.sinaimg.cn/large/006a7GCKgy1fswpb4ieu3j30vo0i475m.jpg) - -### 2.3.添加第三方layui扩展模块 - -> 分离版本和不分离版本添加layui扩展模块都按如下方式来。 - -请参考项目里面formSelects的添加方法。 -- 第一步: 把下载的模块放在module文件夹下面 -- 第二步: 打开index.html
- - ```javascript - layui.config({ - base: 'module/' - }).extend({ - formSelects: 'formSelects/formSelects-v4' - }).use(['config', 'admin', 'formSelects'], function () { - var config = layui.config; - var admin = layui.admin; - var formSelects = layui.formSelects; - - }); - ``` - -  如果你的模块没有文件夹直接在module里面就不需要写extend了,如果你的模块有独立的文件夹,像formSelects一样, -就需要在extend里面明确指出模块的位置。 - -![添加模块示例](https://ws1.sinaimg.cn/large/006a7GCKgy1fswoa7omxej30bh0cgwes.jpg) - - ---- - -## 3.开发指南 - -### 3.1.开发规范 - -阅读开发规范之前请先了解前面“项目结构”的介绍。 - -1. css、图片、第三方lib(layui扩展模块除外)全部放在“/assets/”下面; -2. layui扩展模块放在“module”下面,例如项目里面“formSelects”模块; -3. 页面html放在“pages”下面。 - -> 注意:不分离版本html不需要放在“pages”下面,随便放,因为是后端渲染,前端只需要访问后端的url。 -> 比如我这里不分离版本是放在templates目录下面,templates是SpringBoot默认的视图目录。 - - -### 3.2.入口index.html - -index.html是项目的主入口,打开index.html你会看到如下代码: - -```javascript -layui.config({ - base: 'module/' -}).extend({ - formSelects: 'formSelects/formSelects-v4' -}).use(['config', 'admin','index'], function () { - var config = layui.config; - var admin = layui.admin; - var index = layui.admin; - -}); -``` - -  这段代码首先告诉了lauyui扩展模块都位于“module/”下面,然后扩展模块因为formSelects使用了文件夹 -存放,所以需要在“extend”中明确指出formSelects模块js的位置。  为什么admin.js、config.js不需要写extend, -因为admin和config是直接放在module里面。 - -  接着index.html里面使用了“config”、“admin”等模块,所以admin模块里面的一些方法也就即刻执行了。 -admin提供的默认事件也就生效了。 - -> 注意:不分离版本去除了config.js,所以index.html不需要加载config。 - -### 3.3.“config”模块介绍 - -> 注意:不分离版本去除了config.js,不分离的项目也不需要前端做任何配置和缓存。 - -“config”模块主要是配置项目的一些基本参数。 - -名称 | 类型 | 描述 -:---|:--- |:--- -base_server | 变量 | 服务器接口地址 -tableName | 变量 | 本地存储表名(token等都会存储在本地中) -pageTabs | 变量 | 是否开启多标签模式,(**不分离版本在index.js中配置**) -getToken | 方法 | 获取缓存的token -putToken | 方法 | 缓存token -removeToken | 方法 | 清除缓存的token -menus | 变量 | 侧导航菜单数组,侧导航根据menus自动渲染 -getUser | 方法 | 获取缓存的用户信息 -putUser | 方法 | 缓存用户的信息 - -注意:因为我这边的后台返回的token是这样的
-```json -{ - "access_token": "950a7cc9-5a8a-42c9-a693-40e817b1a4b0", - "token_type": "bearer", - "refresh_token": "773a0fcd-6023-45f8-8848-e141296cb3cb", - "expires_in": 27036, - "scope": "select" -} -``` -  所以我这边的token不是一个字符串存储的,是用json存储的,getToken返回的是一个json对象, -如果你的token只是一个字符串,请修改getToken方法和admin里面的req方法,当然我建议最好 -命令你的后台人员按这个json格式返回数据,这个是一个标准的格式。 - -#### 3.3.1.“config”使用示例 -```javascript -layui.use(['config'], function () { - var config = layui.config; - - var token = config.getToken(); // 获取token - var access_token = token.access_token; //获取access_token - - config.putToken(xxx); -}); -``` - -#### 3.3.2.“menus”数组介绍 -config.js里面的menus格式如下: -```javascript -menus: [{ - name: '主页', - url: 'javascript:;', - icon: 'layui-icon-home', - subMenus: [{ - name: '主页一', - url: '#!console', - path: 'console.html' - }] -}, { - name: '系统管理', - icon: 'layui-icon-set', - url: 'javascript:;', - subMenus: [{ - name: '用户管理', - url: '#!user', // 这里url不能带斜杠 - path: user_search.html, - auth: 'post:/user/query' - }, { - name: '角色管理', - url: '#!role', - path: 'system/role.html', - auth: 'get:/role' - }] -}, { - name: '多级菜单', - url: 'javascript:;', - icon: 'layui-icon-unlink', - subMenus: [{ - name: '二级菜单', - url: 'javascript:;', - subMenus: [{ - name: '三级菜单', - url: 'javascript:;' - }] - }] -}, { - name: '一级菜单', - url: 'javascript:;', - icon: 'layui-icon-unlink' -},{ - name: '我是隐藏菜单', - url: '#!userDetail', - path: 'system/user_detail.html', - hidden: true -}] -``` - -  index.js里面会自动使用menus数组渲染左侧导航栏,并且会使用url作为关键字自动注册路由监听。 -目前只设定了最多支持三菜单,原因是因为模板引擎渲染无法使用递归,所以写了三层循环,如果你需要更多级的菜单, -继续加循环就可以了,主要是因为无法递归,并不是无法做到无限级。 - -- `path` 表示html所在的路径,会在pages目录下面寻找。 -- `url` 是路由的关键字,也就是说点击这个菜单,浏览器地址栏的url会变成`/#!xxx`。 -- `auth` 表示这个菜单需要什么权限,index.js渲染的时候会自动判断权限,没有权限不会渲染出来,不写auth不会进行判断。 -- `hidden` 表示菜单是否渲染到左侧导航栏,比如用户详情界面,不需要渲染到左侧导航,name最好也填写,因为在多标签功能中, - name是作为选项卡的标题。建议隐藏的菜单都写在最后面,不要写在subMenus里面,当然写在哪都可以实现。 - 如何打开隐藏的菜单,直接使用``即可,或者`Q.go('userDetail')`。 - - 上面的menus数组已经展示了各种不同的写法,根部不同场景决定某些参数是否填写。 - -**注意:**
-  路由关键字`url`不能带`/`,在EasyWeb1.0版本中,url是以`#!system/xxx`这种格式作为关键字的,这种注册方法 -是把`system/`开头的所有url一起注册,但是在2.0版本中使用的是循环menus数组一个一个注册,所以url有`/`就会变成第一种格式,是不正确的。 - -### 3.4.admin模块介绍 - -admin模块做了很多的操作,这里只重点介绍admin对外封装的一些操作方法。 - -> 不分离版本admin.js去掉了hasPerm方法,其他方法可以放心使用。 - -#### 3.4.1.admin提供的默认事件 -使用示例: -```html -全屏 -折叠导航 -``` -  只需要在DOM节点上面添加ew-event="xx"即可,此时这个DOM节点就会自动加入相关的点击事件了。全部事件如下表: - -事件 | 描述 -:---|:--- -flexible | 折叠侧导航 -refresh | 刷新主体部分 -back | 浏览器后退 -theme | 打开主题设置弹窗 -fullScreen | 全屏切换 -leftPage | 左滚动选项卡 -rightPage | 右滚动选项卡 -closeThisTabs | 关闭当前选项卡 -closeOtherTabs | 关闭其他选项卡 -closeAllTabs | 关闭全部选项卡 -closeDialog | 关闭元素所在的layer弹窗 - -#### 3.4.2.admin提供的方法 -使用示例: -```javascript -layui.use(['admin'], function () { - var admin = layui.admin; - - admin.flexible(true); // 折叠侧导航 -}); -``` - -全部方法: - -方法 | 参数 | 描述 -:---|:--- |:--- -flexible(expand) | true和false | 折叠侧导航 -activeNav(url) | a标签里面的href值 | 设置侧导航栏选中 -refresh() | 无 | 刷新主体部分 - | | -popupRight(path) | html地址 | 右侧弹出弹窗 -closePopupRight() | 无 | 关闭右侧弹出 - | | -popupCenter(object) | 见单独说明 | 中间弹出弹窗 -finishPopupCenter() | 无 | 关闭中间弹出弹窗并回调finish方法 -closePopupCenter() | 无 | 关闭中间弹出弹窗 - | | -open(object) | 见单独说明 | 封装layer弹出弹窗 - | | -req(url, data, success, method) | 见单独说明 | 封装的ajax请求,req只返回json -ajax(object) | 见单独说明 | 封装的ajax请求 - | | -hasPerm(auth) | 权限标识 | 判断用户是否有权限,不分离版本无此方法 - | | -putTempData(key, value) | key,value | 缓存临时数据 -getTempData(key,) | key | 获取缓存的临时数据 - | | -rollPage(d) | 方向 | 滚动选项卡tab - -
- -> 首先说明一下admin为什么要封装那么多layer的弹窗,因为admin封装的弹窗都是支持弹窗的内容是一个单独的页面, -并且不是以iframe的方式嵌入页面,也就是单页面的形式。 - -
- - -##### 3.4.2.1.右侧弹出弹窗popupRight -使用示例: -```javascript -admin.popupRight('pages/tpl/message.html'); -``` -> 分离版本填写独立的html页面即可,不分离版本填写后台的url(Controller) - -“message.html”里面也可以有js代码,如下所示: -```html -
-
    -
  • 通知
  • -
  • 私信
  • -
  • 待办
  • -
-
- - -``` - -> 注意:因为是单页面,不是iframe,所以页面里面请不要写` `之类的东西。 - - -效果图: - -![右侧弹出示例](https://ws1.sinaimg.cn/large/006a7GCKgy1fswkiisvg1j30b406g3z3.jpg) - -##### 3.4.2.2.中间弹出弹窗popupCenter -  admin封装的popupCenter虽然没有什么特别的样式,但是带有回调的功能。 - -使用示例(一般用在表单弹窗,如添加、修改用户等): -```javascript -admin.popupCenter({ - title: '添加用户', - path: 'pages/system/user_form.html', - finish: function () { - - // 这个方法就是回调的功能,用户添加成功之后让表格reload - table.reload('user-table', {}); - - } -}); -``` - -**参数说明:** - -参数 | 类型 | 是否必须 | 描述 -:---|:--- |:--- |:--- -title | 变量 | 否 | 标题,不写没有标题 -`path` | 变量 | 是 | html路径 -`finish` | 方法 | 否 | finish回调 -success | 方法 | 否 | html渲染完毕的回调 -end | 方法 | 否 | 弹窗关闭的回调 -... | ... | ... | 省略更多参数 - -<br> - -> 请注意,除了`path`和`finish`是popupCenter新增的参数,其他参数均与layer的open参数一样,但是`type`和`content`参数无效, -> type固定是1(页面层),content会被path的内容覆盖。 - -<br> - -“user_form.html”内容如下: -```html -<form id="user-form" lay-filter="user-form" class="layui-form model-form"> - <!-- ...省略表单内容 --> -</form> - -<script> - layui.use(['admin', 'form'], function () { - var admin = layui.admin; - var form = layui.form; - - // 表单提交事件 - form.on('submit(user-form-submit)', function (data) { - layer.load(2); - // 这里是用admin封装的ajax请求 - admin.req('user', data.field, function (data) { - layer.closeAll('loading'); - if (data.code == 200) { - layer.msg('添加成功', {icon: 1}); - - // 这里是关键,调用这个方法就触发finish回调并且关闭弹窗 - admin.finishPopupCenter(); - - } else { - layer.msg('添加失败', {icon: 2}); - } - }, 'POST'); - return false; - }); - }); -</script> -``` - -示例图: - -![中间弹窗示例](https://ws1.sinaimg.cn/large/006a7GCKgy1fswla4k4bmj30b407wmxb.jpg) - -完整示例代码: -```javascript -// 全部参数都写 -admin.popupCenter({ - title: '添加用户', - path: 'pages/system/user_form.html', - finish: function () { - // finish回调 - }, - success: function() { - // user_form.html成功渲染到弹窗中 - }, - end: function() { - // 弹窗关闭 - } -}); - -// 只写必须参数 -admin.popupCenter({path: 'pages/system/user_form.html'}); -``` - -<br> - -##### 3.4.2.3.封装的layer弹窗open - -  前面讲了admin所封装的弹窗目的是在不使用iframe的前提下支持使用独立的页面,这样便于我们维护代码,减少一个页面里面的代码量。 - -使用方法: - -```javascript -admin.open({ - title: 'xxx', - path: 'system/user_form.html', - success: function(){ - - } -}); -``` - -参数说明: - -  `path`是新增的参数,其他参数均为layer.open的参数,但是`type`和`content`参数无效,type固定是1(页面层), -content会被path的内容覆盖,open没有finish方法,popupCenter才有。 - - -<br> - -**如何让弹窗出现滚动条?** - - -  弹窗的默认高度是自适应的,设置了宽高后内容超出是无法出现滚动条的,因为出现弹窗里面的下拉框select下拉会出现滚动条,所以amdin.css里面 -禁止了弹窗的滚动条,如果你需要弹窗出现滚动条,请使用如下的方式: -```javascript -admin.open({ - title: 'xxxxx', - area: ['500px','300px'], - path: 'system/user/editForm', - success: function (layero, index) { - // 关键代码, ↑↑↑↑↑↑↑↑↑↑↑↑↑(上面的两个参数不要忘了) - $(layero).children('.layui-layer-content').css('overflow-y', 'scroll'); - } -}); -``` -只需要在success回调方法里面手动加上样式就可以了。 -```javascript -// 写scroll可以防止弹窗内表格出现滚动条 -$(layero).children('.layui-layer-content').css('overflow-y', 'scroll'); - -// 弹窗内没有表格使用auto即可 -$(layero).children('.layui-layer-content').css('overflow-y', 'auto'); - -// 水平垂直都有滚动条使用overflow -$(layero).children('.layui-layer-content').css('overflow', 'auto'); -``` -admin.popupCenter也同样支持此使用方法 - -<br> - -##### 3.4.2.4.封装的ajax请求req - -> 注意:req不支持指定返回的数据类型(json、html、text等),只会返回json的数据。 - -  admin模块封装的ajax请求会自动传递token(access_token),并且会自动把PUT、DELETE请求转成POST、GET请求 -然后加参数_method,因为浏览器不支持PUT、DELETE请求的参数传递,具体原因请百度一下,**不分离版本不会进行此操作**。 - -  另外分离版本和不分离版本封装的ajax和req都会检验状态码(401登录过期,403没有权限),登录过期会自动跳转到登录界面。 - -使用示例: - -```javascript -// 不传递参数的写法 -admin.req('user', {}, function (data) { - console.log(JSON.stringify(data)); -}, 'GET'); - -// 传递参数的写法 -admin.req('user', { - userId: 'xxx', - userName: '张三' -}, function (data) { - console.log(JSON.stringify(data)); -}, 'POST'); -``` - -**方法参数说明:** - -- 第一个参数: 接口地址,会自动在前面加入config.base_server -- 第二个参数: 传给服务器的参数 -- 第三个参数: 请求成功的回调(如果出现http错误404,401等,也会进入这个回调,并且data里面会有code、msg两个参数, - code是http的错误码,msg是错误信息) -- 第四个参数: 请求的方法(GET、POST、PUT、DELETE) - - req还会自动判断token是否过期,如果token过期会自动跳转到登录页面,不分离版本是根据code判断401为登录过期。 - - -##### 3.4.2.5.封装的ajax请求ajax - -使用方法: -```javascript -admin.ajax({ - url: 'xxxx', - data: { - aa:'' - }, - dataType: 'json', - type: 'POST', - success: function(result,status,xhr) { - - } -}); -``` - - 使用方法跟`$.ajax`一模一样,admin封装只是在success之后先判断是否为登录过期和没有权限,然后再执行你的success方法。 - - 使用参数也跟`$.ajax`一样,请到[http://www.runoob.com/jquery/ajax-ajax.html](http://www.runoob.com/jquery/ajax-ajax.html)文档中查看`$.ajax`的参数说明。 - - -<br> - - -##### 3.4.2.6.判断是否有权限hasPerm - -> 注意:不分离版本没有此方法。 - -  这个方法是用来判断当前登录的用户是否有某一权限的操作,使用这个方法的前提是在index.js里面有一个获取 -服务器的user信息并使用config.putUser方法缓存,并且user里面包含了权限列表,因为admin会调用config.getUser获取 -用户信息从而获取用户的权限列表。 - -  我这里面服务器返回的用户json信息如下所示,如果你的服务器返回的信息跟下面不一样,请修改hasPerm方法: - -```json -{ - "userId": "admin", - "username": "admin", - "nickName": "管理员", - "authorities": [{ - "authority": "get:/role" - }, { - "authority": "put:/role" - }] -} -``` - -authorities就是用户的权限集合,authority是权限标识。 - -使用示例,下面的示例是演示没有删除用户的权限隐藏删除按钮: -```html -<div> - <button id="btn-delete">删除</button> -</div> - -<script> - layui.use(['admin'], function () { - var admin = layui.admin; - - if(!admin.hasPerm('delete:user')) { - $('#btn-delete').hide(); // remove()也可以 - } - }); -</script> -``` - -> 如果你担心把按钮隐藏了没有什么卵用,会点技术就可以把按钮在弄出来了,这个担心完全是多余的。 -> 因为后台的接口也会有权限验证的,如果没有权限接口会返回{ code: 401, msg: "没有访问权限" }, -> 既然后台限制了,界面为什么还要限制,因为这是需求,如你项目没有隐藏按钮的需求可以不用隐藏。 - - -##### 3.4.2.7.缓存临时数据putTempData -  这个方法是用来把一些临时数据放在session中,页面关闭数据就会失效。 适当使用缓存可以 -减少接口请求次数,提升用户体验。 - -使用示例: -```javascript - -admin.putTempData('t_name', '张三'); // 缓存数据 - -var tName = admin.getTempData('t_name'); // 获取缓存数据 - -console.log(tName); - -``` - -**使用场景:** - -  前面讲了popupCenter弹出添加用户的界面,如果是修改用户,是不是应该传递user的信息呢, -因为修改界面需要回显user的信息,这时就可以用putTempData了,当然也有别的办法传递,这里就不一一演示了。 - -修改用户按钮的界面(user.html): -```html -<button id="btn-update">修改用户</button> - -<script> - layui.use(['admin'], function () { - var admin = layui.admin; - - admin.putTempData('t_user', {name: 'xx', sex: 'male'}); // 关键代码 - - admin.popupCenter({ - title: '修改用户', - path: 'pages/system/user_form.html', - finish: function () { - - } - }); - }); -</script> -``` -修改用户弹窗的界面(user_form.html): -```html -<form id="user-form" lay-filter="user-form" class="layui-form model-form"> - <!-- ...省略表单内容 --> -</form> - -<script> - layui.use(['admin', 'form'], function () { - var admin = layui.admin; - var form = layui.form; - - var user = admin.getTempData('t_user'); // 关键代码 - - form.val('user-form', user); //回显数据 - }); -</script> -``` - -##### 3.4.2.8 滚动选项卡 rollPage -使用示例: -```javascript -// 向左滚动 -admin.rollPage('left'); - -// 滚动到当前选中的选项卡 -admin.rollPage('auto'); - -// 向右滚动 -admin.rollPage(); -``` -参数说明: -- left - 向左滚动 -- auto - 滚动到当前选项卡 -- 其他 - 向右滚动,不写参数就是向右滚动 - - - -### 3.5.index模块介绍 - -  index模块主要是用于加载index.html的 -header、side等,获取用户的信息,判断是否开启选项卡改变页面局部等操作,说白了就是用来初始化后台布局的,用于给主体部分的界面 -做准备,虽然index.js里面代码行数也不少,但是仔细看就能看懂,注释也都写了,如果你需要 -微微修改阅读几遍就可以上手修改了,下面只介绍两个其他页面会用到的封装方法。 - -> 需要注意的是:分离和不分离版本的index.js和index.html里面的一些写法有很些不同,请注意不要用混淆了。 - - -#### 3.5.1.打开新页面或选项卡Tab - -```javascript -layui.use(['index'], function () { - var index = layui.index; - - // 不分离用后台地址 - index.openNewTab({ - title:'个人信息', - url:'system/user/myInfo?userId=1', - menuId: 'myInfo' - }); - - // 分离用html页面 - index.openNewTab({ - title: '个人信息', - url: 'pages/system/myInfo.html', - menuId: 'myInfo' - }); - - // 当然这行代码一般会写在按钮点击事件里面,直接写在这里就立即打开新页面了 -}); -``` - -- `title` 如果开启了多标签,title是选项卡的标题 -- `url` 打开的页面地址 -- `menuId` 这个参数是一个id标识,浏览器地址栏会变成`#!menuId`。 - -这个功能的使用场景请见`3.8.1`章节 - - -#### 3.5.2.关闭选项卡 - -```javascript -layui.use(['index'], function () { - var index = layui.index; - - var menuId = 'myInfo'; - index.closeTab(menuId); -}); -``` - - ---- - - - -### 3.6.admin提供的css公共类 - -> 分离和不分离版本css都是一样的,这部分文档就不需要注意什么了,哈哈😄~ - -#### 3.6.1.辅助类 - -类名(class) | 说明 -:---|:--- -icon-btn | 带图标的按钮,如果你的按钮用了图标加上类这个更好看 -date-icon | 在元素的右边加入日期的图标 -layui-link | 用于a标签,字体颜色为layui的绿色风格 -layui-text | 用于a标签的上层,a标签字体颜色为蓝色 -pull-right | 右浮动 -inline-block | 设置元素display为inline-block - -![](https://ws1.sinaimg.cn/large/006a7GCKgy1fswq54bfacj307h01ft8h.jpg) - ---- - -![](https://ws1.sinaimg.cn/large/006a7GCKgy1fswq5i3hvbj304v01l3ya.jpg) - ---- - -![](https://ws1.sinaimg.cn/large/006a7GCKgy1fswq6m1i5zj309p01gt8h.jpg) - ---- - -![](https://ws1.sinaimg.cn/large/006a7GCKgy1fswq5ucrwrj309404l3yg.jpg) - -```html -<!-- 日期图标 --> -<input class="layui-input date-icon" type="text" placeholder="请选择日期范围"/> - -<!-- 图标按钮 --> -<button class="layui-btn icon-btn"><i class="layui-icon layui-icon-search"></i>搜索</button> -<button class="layui-btn icon-btn"><i class="layui-icon layui-icon-add-1"></i>添加</button> - -<!-- 绿色超链接 --> -<a href="javascript:;" class="layui-link">帐号注册</a> -<a href="javascript:;" class="layui-link pull-right">忘记密码?</a> - -<!-- 蓝色超链接 --> -<div class="layui-text"> - <a href="http://www.layui.com/">layui-v2.3.0</a> - <a href="https://github.com/itorr/q.js">q.js</a> - <a href="https://gitee.com/pandarrr/pandyle">pandyle.js</a> -</div> - -``` - - -#### 3.6.2.表格上方的工具栏 - -类名(class) | 说明 -:---|:--- -search-input | 表格上面的输入框样式 -toolbar | 表格上方工具栏样式 - -```html -<div class="layui-card-body"> - - <div class="layui-form toolbar"> <!-- 关键代码toolbar --> - 搜索: - <select> - <option value="">-请选择-</option> - <option value="user_id">ID</option> - <option value="username">账号</option> - </select>  - - <!-- 关键代码search-input --> - <input class="layui-input search-input" type="text" placeholder="输入关键字"/>  - - <button class="layui-btn icon-btn"><i class="layui-icon"></i>搜索</button> - <button class="layui-btn icon-btn"><i class="layui-icon"></i>添加</button> - </div> - - <table class="layui-table" id="user-table" lay-filter="user-table"></table> -</div> -``` - -![](https://ws1.sinaimg.cn/large/006a7GCKgy1fswqb6x89hj30mz098dg2.jpg) - - -#### 3.6.3.弹窗里面的表单 - -类名(class) | 说明 -:---|:--- -model-form | 弹窗里面的表单样式 -model-form-footer | 弹窗里面表单底部操作按钮容器的样式 - -```html -<form class="layui-form model-form"> <!-- 关键代码model-form --> - - <div class="layui-form-item"> - <label class="layui-form-label">账号</label> - <div class="layui-input-block"> - <input name="username" placeholder="请输入账号" type="text" class="layui-input"/> - </div> - </div> - - <div class="layui-form-item"> - <label class="layui-form-label">性别</label> - <div class="layui-input-block"> - <input type="radio" name="sex" value="男" title="男" checked/> - <input type="radio" name="sex" value="女" title="女"/> - </div> - </div> - - <div class="layui-form-item"> - <label class="layui-form-label">角色</label> - <div class="layui-input-block"> - <select name="roleId" xm-select="roleId" lay-verify="required"> - </select> - </div> - </div> - - <!-- 关键代码model-form-footer --> - <div class="layui-form-item model-form-footer"> - <button class="layui-btn layui-btn-primary close" type="button">取消</button> - <button class="layui-btn" lay-filter="user-form-submit" lay-submit>保存</button> - </div> - -</form> -``` - -![](https://ws1.sinaimg.cn/large/006a7GCKgy1fswqdrhhpvj30h30cnweo.jpg) - - -#### 3.6.4.完全基于layui后台大布局 -  EasyWeb完全基于layui的后台大布局进行样式修改,html结构是完全基于layui的后台大布局的,所以项目里面的 -admin.css你可以用于任何layui后台大布局的页面,加入之后你的页面就得到EasyWeb的样式了, 但是侧导航栏 -的折叠事件、全屏等事件是写在admin.js里面的,所以建议你直接使用EasyWeb的框架,当然如果你有自己的基于layui后台 -大布局的框架,完全可以使用我的admin.css。 - - -### 3.7.鼠标经过自动弹出tips层 -使用示例: -```html -<button class="layui-btn" lay-tips="大家好!">按钮</button> -``` -  只需要在你的DOM节点上面添加`lay-tips="xxx"`,然后这个节点在鼠标滑过的时候就会自动显示tips层了,简单吧! - -**默认提示位置在元素的上面,修改位置可以这样做:** -```html -<button class="layui-btn" lay-tips="大家好!" lay-direction="2">按钮</button> -``` -再加一个`lay-direction`属性就可以了,参数如下: -- 1 - 上面,默认,可以不写 -- 2 - 右边 -- 3 - 下面 -- 4 - 左边 - -效果图: - -![](https://ws1.sinaimg.cn/large/006a7GCKgy1fsxm581mpxj309405pa9x.jpg) - - -### 3.8.路由的使用 -  路由这里使用的是Q.js框架,如果你的左侧菜单是配置在config.menus里面的话,不需要自己注册路由监听, -index.js里面会自动帮你注册。 - -  如果你需要自己添加路由注册监听的话,请参考q.js的开发文档:[Q.js](https://github.com/itorr/q.js)。 - -**注意:**<br> -  EasyWeb里面使用的q.js进行过修改,我在里面加了一个刷新的方法,所以请不要擅自替换q.js文件,如果你发现 -q.js框架出来新版本了,请联系我进行替换,请多多包含,不要嫌麻烦,以免出问题。 - - -#### 3.8.1.打开不在导航栏中的页面 - -  比如用户详情、个人信息这些页面,它们不在左侧导航中,但是想打开新页面或者选项卡, -又比如添加用户、修改用户这个页面现在是用弹窗的形式,如果想用新页面的形式该怎么实现: - -**第一种实现方式:**<br> - 在分离版本中,你只需要在config.js的menus数组中添加一个隐藏的菜单: -```javascript -menus: [{ - name: '个人信息', - url: '#!myInfo', - path: 'system/my_info.html', - hidden: true -}] -``` -html中跳转: -```html -<a href="#!myInfo">个人信息</a> -``` -js中跳转: -```javascript -Q.go('myInfo'); -``` - -> 或许你已经注意到了,这种方式跳转的界面是一个固定页面,如果我们想要传递一些参数, -> 它就无法满足,所以有了第二种实现方式。 - - -**第二种实现方式:**<br> -```javascript -layui.use(['index'], function () { - var index = layui.index; - - // 不分离用后台地址 - index.openNewTab({ - title:'个人信息', - url:'system/user/myInfo?userId=1', - menuId: 'myInfo' - }); - - // 分离用html页面 - index.openNewTab({ - title: '个人信息', - url: 'pages/system/myInfo.html', - menuId: 'myInfo' - }); - - // 当然这行代码一般会写在按钮点击事件里面,直接写在这里就立即打开新页面了 -}); -``` - -- `title` 如果开启了多标签,title是选项卡的标题 -- `url` 打开的页面地址 -- `menuId` 这个参数是一个id标识,如果id一样就只会存在一个tab,也就是说打开一次没有关闭就不会再打开新的页面, - 比如用户详情页面,如果你想userA的详情和userB的详情是两个页面,可以同时存在选项卡中,menuId就不要写一样的。 - - -> 注意:<br> -> 分离版本两种方式都可以用,不分离版本只能用第二种方式,再分离版本中不能使用`?`问号传递参数,建议使用 -> 临时缓存的方式传递参数。 - - -请到`3.5.1`和`3.5.2`章节查看跟这个使用场景相关的其他功能方法。 - - ---- - - -### 3.9.mvvm数据绑定、组件等 -  虽然现在vue很流行,但是jquery的许多方法仍然很好用,所以现在很多项目里面既有vue,又有jquery, -然而对于开发一个后台管理系统来说,我们仅仅用了vue的数据渲染功能,大部分还是用的jquery的代码,这样一来项目 -就显得有点不伦不类了。 - -  但是对于前后端分离来说,mvvm的框架渲染数据确实很方便,很强大,layui虽然提供了模板引擎, -但是写法别扭,还麻烦,pandyle.js是一个为jquery打造的mvvm框架,还提供了类似vue组件的写法。 - -  EasyWeb里面的头部header、side等都是使用的它的组件的写法,还有一些下拉框select的渲染也是用的它提供的mvvm的写法。 - -  我这里就不提供pandyle.js的用法了,以免跟不上pandyle作者的更新脚步, -大家可以到这里[pandyle.js](https://gitee.com/pandarrr/pandyle)查看pandyle的开发文档。 - -> 注意:<br> ->   不分离版本没有引入pandyle.js,不分离版本的header和side是使用beetl的布局功能实现的,如果你需要在 -> 不分离版本中使用mvvm,请自行在idnex.html中引入pandyle.js。 - - -### 3.10.主题功能 -  EasyWeb包含前后台,所以开发时间比较紧张,暂时只提供了两套主题,但是提供了一个主题生成器, -请使用主题生成器定制化你的样式:[EasyWeb主题生成器](https://whvse.gitee.io/easywebpage/docs/generater_theme.html)。 - - EasyWeb的主题生成器可以深度定制主题,样式深度到按钮、单选框、下拉框、选项卡等样式。 - - - -### 3.11.不分离版本 - -注意: - -  你从EasyWebPage这个地址下载下来的项目是前后端分离版本的,如果你需要前后端不分离版本的页面和后台, -请从[easyweb-shiro](https://gitee.com/whvse/easyweb-shiro)下载。 easyweb-shiro是Java语言开发的,如果你是 -php或其他后台语言,想要使用不分离版的页面,请联系作者辅助你结合到你的项目中,因为不分离版本页面跟后台耦合比较大, -分离出静态页面意义不大,所以不分离版本作者就没有独立再维护成纯静态页面了。 - - - -### 3.12.树形表格treeTable - -在layui的数据表格上进行扩展实现的。 - -treeTable项目地址:[https://gitee.com/whvse/treetable-lay](https://gitee.com/whvse/treetable-lay)。 - -- 演示地址: [https://whvse.gitee.io/treetable-lay/](https://whvse.gitee.io/treetable-lay/) - -截图: - -树形表格1: - -![树形表格1](https://ws1.sinaimg.cn/large/006a7GCKly1ftisynlfq0j30ng0g3t9b.jpg) - -树形表格2: - -![树形表格2](https://ws1.sinaimg.cn/large/006a7GCKgy1ftgdebdnsmj30ux0qktbc.jpg) - - -## 4.项目截图 - -![登录](https://ws1.sinaimg.cn/large/006a7GCKgy1fswqs955sdj316v0qmdj1.jpg)  - -![主页一](https://ws1.sinaimg.cn/large/006a7GCKgy1fstc7ldhlbj315y0q6415.jpg) - -![消息弹窗](https://ws1.sinaimg.cn/large/006a7GCKgy1fstc7lye0jj30vq0i8gmv.jpg) - -![角色管理](https://ws1.sinaimg.cn/large/006a7GCKgy1fstc7logerj30vq0i8js2.jpg) - ---- - -## 5.更新日志 - -- **2018-07-22 - 增加树形表格的功能** - - - 增加树形表格的功能 [treeTable](#_312树形表格treeTable) - -- **2018-07-20 - 发布不分离版的easyweb-shiro稳定版本** - - - 不分离版没有config.js,但是同样支持分离版的所有功能 - - 改进路由的注册方法,全部由框架自动完成,开发方式与传统一样,但是可以轻松的使用路由功能提升操作体验 - -- **2018-07-12 - 增加主题、多标签** - - - 增加多标签tab功能,并且增加自由切换是否开启多标签功能 - - 增加主题切换功能,上线 [主题生成器](#_310主题功能) ,自由生成主题样式 - -- **2018-06-28 - 发布全新2.0版本** - - - 引入pandyle.js(mvvm框架),填补layui模板引擎的短板 - - 采用模块化开发方式,定义admin、config等公用模块,封装ajax请求 - - 界面优化,借鉴layadmin的设计风格,改版登录页面 - -- **2018-02-11 - 发布EasyWeb1.0版本** - - - 基于layui后台大布局、q.js路由框架搭建出第一个版本 - - 1.0 版本在easyweb的gitee附件中下载 - - -## 6.联系方式 -### 6.1.欢迎加入“前后端分离技术交流群” -![群二维码](https://ws1.sinaimg.cn/large/006a7GCKgy1fstbxycj1xj305k07m75h.jpg) - -### 6.2.我要打赏 -  都是猿友,撸码不易,如果这个轮子对你有用,不妨打赏一下! -[码云](https://gitee.com/whvse/EasyWebPage)已开启捐赠功能,谢谢支持! - -  EasyWeb目前提供了“路由+mvvm分离版”、“基于oauth2的后台”、“基于shiro的不分离版”、“不分离版的页面”、 -“EasyWeb主题生成器”、“前端开发文档”等项目,并且全部开源,欢迎加入一起开发,或者提交pull requests。 diff --git a/zlt-web/back-web/src/main/resources/static/docs/cover.md b/zlt-web/back-web/src/main/resources/static/docs/cover.md deleted file mode 100644 index 2d642c30..00000000 --- a/zlt-web/back-web/src/main/resources/static/docs/cover.md +++ /dev/null @@ -1,12 +0,0 @@ -![logo](./logo.png) - -# [EasyWeb](/) - -> 基于layui的管理系统模板 - -* 支持mvvm、路由,单页面、响应式、易上手 -* - -[Gitee](https://gitee.com/whvse/EasyWebPage) -[GitHub](https://github.com/whvcse/EasyWebPage) -[Get Started](#_1简介) \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/docs/generater_theme.html b/zlt-web/back-web/src/main/resources/static/docs/generater_theme.html deleted file mode 100644 index da24c0a6..00000000 --- a/zlt-web/back-web/src/main/resources/static/docs/generater_theme.html +++ /dev/null @@ -1,209 +0,0 @@ -<!DOCTYPE html> -<html> - -<head> - <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> - <meta charset="utf-8"/> - <title>EasyWeb主题生成器 - - - - - - -
-

EasyWeb主题生成器

-
-
- -
- -
-
-
-
-
- -
- -
-
-
-
- -
- -
-
-
-
- -
- -
-
-
-
- -
- -
-
-
-
- -
- -
-
-
-
- -
- -
-
-
-
- -
-
- -
-
-
-

生成结果

-

-
-    
- -

使用方法

-

将下载好的css放在项目里面,然后打开index.html,引入下载的css即可生效,如果样式有生成的不全的,请联系作者增加:

-

-
-    
-
- - - - - - - - - \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/docs/index.html b/zlt-web/back-web/src/main/resources/static/docs/index.html deleted file mode 100644 index d2bd977d..00000000 --- a/zlt-web/back-web/src/main/resources/static/docs/index.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - EasyWeb前端开发文档 - - - - - - - -
加载中..
- - - - - diff --git a/zlt-web/back-web/src/main/resources/static/docs/logo.png b/zlt-web/back-web/src/main/resources/static/docs/logo.png deleted file mode 100644 index 26e5a32cd012568196df7b661a14bfc7597f4ac5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3674 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 a, .layui-nav-tree .layui-this > a:hover { - background-color: {{primary}}; -} - -.layui-nav-tree .layui-nav-bar { - background-color: {{primary}}; -} - -/** 主题颜色 */ - -/** 按钮 */ -.layui-btn:not(.layui-btn-primary):not(.layui-btn-normal):not(.layui-btn-warm):not(.layui-btn-danger):not(.layui-btn-disabled) { - background-color: {{primary}}; -} - -.layui-btn.layui-btn-primary:hover { - border-color: {{primary}}; -} - -/** 开关 */ -.layui-form-onswitch { - border-color: {{primary}}; - background-color: {{primary}}; -} - -/** 分页插件 */ -.layui-laypage .layui-laypage-curr .layui-laypage-em { - background-color: {{primary}}; -} - -.layui-table-page .layui-laypage input:focus { - border-color: {{primary}} !important; -} - -.layui-table-view select:focus { - border-color: {{primary}} !important; -} - -.layui-table-page .layui-laypage a:hover { - color: {{primary}}; -} - -/** 单选按钮 */ -.layui-form-radio > i:hover, .layui-form-radioed > i { - color: {{primary}}; -} - -/** 下拉条目选中 */ -.layui-form-select dl dd.layui-this { - background-color: {{primary}}; -} - -/** 选项卡 */ -.layui-tab-brief > .layui-tab-title .layui-this { - color: {{primary}}; -} - -.layui-tab-brief > .layui-tab-more li.layui-this:after, .layui-tab-brief > .layui-tab-title .layui-this:after { - border-color: {{primary}} !important; -} - -/** 面包屑导航 */ -.layui-breadcrumb a:hover { - color: {{primary}} !important; -} \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/index.html b/zlt-web/back-web/src/main/resources/static/index.html deleted file mode 100644 index 3c5454b2..00000000 --- a/zlt-web/back-web/src/main/resources/static/index.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - Demo - - - - - - - - - - -
- -
- - -
- - -
-
-
    -
-
-
-
-
-
- -
- - - - - -
-
- - - - - - - - - - - \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/login.html b/zlt-web/back-web/src/main/resources/static/login.html deleted file mode 100644 index 59807664..00000000 --- a/zlt-web/back-web/src/main/resources/static/login.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - 用户登录 - - - - - - - - - - - - - - \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/module/Math.uuid.js b/zlt-web/back-web/src/main/resources/static/module/Math.uuid.js deleted file mode 100644 index 63f9528e..00000000 --- a/zlt-web/back-web/src/main/resources/static/module/Math.uuid.js +++ /dev/null @@ -1,63 +0,0 @@ -/*! -Math.uuid.js (v1.4) -http://www.broofa.com -mailto:robert@broofa.com - -Copyright (c) 2010 Robert Kieffer -Dual licensed under the MIT and GPL licenses. -*/ - -/* - * Generate a random uuid. - * - * USAGE: Math.uuid(length, radix) - * length - the desired number of characters - * radix - the number of allowable values for each character. - * - * EXAMPLES: - * // No arguments - returns RFC4122, version 4 ID - * >>> Math.uuid() - * "92329D39-6F5C-4520-ABFC-AAB64544E172" - * - * // One argument - returns ID of the specified length - * >>> Math.uuid(15) // 15 character ID (default base=62) - * "VcydxgltxrVZSTV" - * - * // Two arguments - returns ID of the specified length, and radix. (Radix must be <= 62) - * >>> Math.uuid(8, 2) // 8 character ID (base=2) - * "01001010" - * >>> Math.uuid(8, 10) // 8 character ID (base=10) - * "47473046" - * >>> Math.uuid(8, 16) // 8 character ID (base=16) - * "098F4D35" - */ -(function() { - // Private array of chars to use - var CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split(''); - - Math.uuid = function (len, radix) { - var chars = CHARS, uuid = [], i; - radix = radix || chars.length; - if (len) { - // Compact form - for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random()*radix]; - } else { - // rfc4122, version 4 form - var r; - - // rfc4122 requires these characters - uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-'; - uuid[14] = '4'; - - // Fill in random data. At i==19 set the high bits of clock sequence as - // per rfc4122, sec. 4.1.5 - for (i = 0; i < 36; i++) { - if (!uuid[i]) { - r = 0 | Math.random()*16; - uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r]; - } - } - } - return uuid.join(''); - }; -})(); diff --git a/zlt-web/back-web/src/main/resources/static/module/admin.js b/zlt-web/back-web/src/main/resources/static/module/admin.js deleted file mode 100644 index 931cf024..00000000 --- a/zlt-web/back-web/src/main/resources/static/module/admin.js +++ /dev/null @@ -1,341 +0,0 @@ -layui.define(['config', 'layer'], function (exports) { - var config = layui.config; - var layer = layui.layer; - var popupRightIndex, popupCenterIndex, popupCenterParam; - - var admin = { - isRefresh: false, - // 设置侧栏折叠 - flexible: function (expand) { - var isExapnd = $('.layui-layout-admin').hasClass('admin-nav-mini'); - if (isExapnd == !expand) { - return; - } - if (expand) { - $('.layui-layout-admin').removeClass('admin-nav-mini'); - } else { - $('.layui-layout-admin').addClass('admin-nav-mini'); - } - admin.onResize(); - }, - // 设置导航栏选中 - activeNav: function (url) { - $('.layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child dd').removeClass('layui-this'); - $('.layui-layout-admin .layui-side .layui-nav .layui-nav-item').removeClass('layui-this'); - if (url && url != '') { - $('.layui-layout-admin .layui-side .layui-nav .layui-nav-item').removeClass('layui-nav-itemed'); - var $a = $('.layui-layout-admin .layui-side .layui-nav>.layui-nav-item>.layui-nav-child>dd>a[href="#!' + url + '"]'); - $a.parent('dd').addClass('layui-this'); - $a.parent('li').addClass('layui-this'); - $a.parent('dd').parent('.layui-nav-child').parent('.layui-nav-item').addClass('layui-nav-itemed'); - } - }, - // 右侧弹出 - popupRight: function (path) { - var param = new Object(); - param.path = path; - param.id = 'adminPopupR'; - param.title = false; - param.anim = 2; - param.isOutAnim = false; - param.closeBtn = false; - param.offset = 'r'; - param.shadeClose = true; - param.area = '336px'; - param.skin = 'layui-layer-adminRight'; - param.end = function () { - layer.closeAll('tips'); - }; - popupRightIndex = admin.open(param); - return popupRightIndex; - }, - // 关闭右侧弹出 - closePopupRight: function () { - layer.close(popupRightIndex); - }, - // 中间弹出 - popupCenter: function (param) { - param.id = 'adminPopupC'; - popupCenterParam = param; - popupCenterIndex = admin.open(param); - return popupCenterIndex; - }, - // 关闭中间弹出并且触发finish回调 - finishPopupCenter: function () { - layer.close(popupCenterIndex); - popupCenterParam.finish ? popupCenterParam.finish() : ''; - }, - // 关闭中间弹出 - closePopupCenter: function () { - layer.close(popupCenterIndex); - }, - // 封装layer.open - open: function (param) { - var sCallBack = param.success; - param.type = 1; - param.area = param.area ? param.area : '450px'; - param.offset = param.offset ? param.offset : '120px'; - param.resize ? param.resize : false; - param.shade ? param.shade : .2; - param.success = function (layero, index) { - sCallBack ? sCallBack(layero, index) : ''; - $(layero).children('.layui-layer-content').load(param.path); - }; - return layer.open(param); - }, - // 封装ajax请求,返回数据类型为json - req: function (url, data, success, method, noHeaderToken) { - if ('put' == method.toLowerCase()) { - method = 'PUT'; - } else if ('delete' == method.toLowerCase()) { - method = 'DELETE'; - } - //add by owen ajax 执行前置处理器 - admin.ajax({ - url: config.base_server + url, - data: data, - type: method, - dataType: 'json', - contentType: "application/json", - success: success, - beforeSend: function (xhr) { - if (!noHeaderToken) { - let token = config.getToken(); - if (token) { - xhr.setRequestHeader('Authorization', 'Bearer ' + token.access_token); - } - } - let isolationVersion = config.isolationVersion; - if (isolationVersion) { - xhr.setRequestHeader('z-l-t-version', isolationVersion); - } - } - }); - }, - - // 封装ajax请求 - ajax: function (param) { - var successCallback = param.success; - param.success = function (result, status, xhr) { - // 判断登录过期和没有权限 - var jsonRs; - if ('json' == param.dataType.toLowerCase()) { - jsonRs = result; - } else if ('html' == param.dataType.toLowerCase() || 'text' == param.dataType.toLowerCase()) { - jsonRs = admin.parseJSON(result); - } - if (jsonRs) { - if (jsonRs.code == 401) { - config.removeToken(); - layer.msg('登录过期', {icon: 2, time: 1500}, function () { - location.replace('/login.html'); - }, 1000); - return; - } else if (jsonRs.code == 403) { - layer.msg('没有权限', {icon: 2}); - layer.closeAll('loading'); - return; - } - } - successCallback(result, status, xhr); - }; - param.error = function (xhr) { - param.success({code: xhr.status, msg: xhr.statusText}); - }; - //发送同步ajax请求 - param.async = false; - //console.log(param); - $.ajax(param); - }, - // 判断是否有权限 - hasPerm: function (auth) { - var permissions = admin.getTempData("permissions"); - if (permissions){ - for (var i = 0; i < permissions.length; i++) { - if (auth == permissions[i]) { - return true; - } - } - } - return false; - }, - // 窗口大小改变监听 - onResize: function () { - if (config.autoRender) { - if ($('.layui-table-view').length > 0) { - setTimeout(function () { - admin.events.refresh(); - }, 800); - } - } - }, - // 显示加载动画 - showLoading: function (element) { - $(element).append(''); - }, - // 移除加载动画 - removeLoading: function (element) { - $(element + '>.admin-loading').remove(); - }, - // 缓存临时数据 - putTempData: function (key, value) { - if (value) { - layui.sessionData('tempData', {key: key, value: value}); - } else { - layui.sessionData('tempData', {key: key, remove: true}); - } - }, - // 获取缓存临时数据 - getTempData: function (key) { - return layui.sessionData('tempData')[key]; - }, - // 滑动选项卡 - rollPage: function (d) { - var $tabTitle = $('.layui-layout-admin .layui-body .layui-tab .layui-tab-title'); - var left = $tabTitle.scrollLeft(); - if ('left' === d) { - $tabTitle.scrollLeft(left - 120); - } else if ('auto' === d) { - var autoLeft = 0; - $tabTitle.children("li").each(function () { - if ($(this).hasClass('layui-this')) { - return false; - } else { - autoLeft += $(this).outerWidth(); - } - }); - $tabTitle.scrollLeft(autoLeft - 47); - } else { - $tabTitle.scrollLeft(left + 120); - } - }, - refresh: function () { - admin.isRefresh = true; - Q.refresh(); - }, - // 判断是否为json - parseJSON: function (str) { - if (typeof str == 'string') { - try { - var obj = JSON.parse(str); - if (typeof obj == 'object' && obj) { - return obj; - } - } catch (e) { - } - } - } - }; - - // ewAdmin提供的事件 - admin.events = { - flexible: function (e) { // 折叠侧导航 - var expand = $('.layui-layout-admin').hasClass('admin-nav-mini'); - admin.flexible(expand); - }, - refresh: function () { // 刷新主体部分 - admin.refresh(); - }, - back: function () { //后退 - history.back(); - }, - theme: function () { // 设置主题 - admin.popupRight('pages/tpl/theme.html'); - }, - fullScreen: function (e) { // 全屏 - var ac = 'layui-icon-screen-full', ic = 'layui-icon-screen-restore'; - var ti = $(this).find('i'); - - var isFullscreen = document.fullscreenElement || document.msFullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || false; - if (isFullscreen) { - var efs = document.exitFullscreen || document.webkitExitFullscreen || document.mozCancelFullScreen || document.msExitFullscreen; - if (efs) { - efs.call(document); - } else if (window.ActiveXObject) { - var ws = new ActiveXObject('WScript.Shell'); - ws && ws.SendKeys('{F11}'); - } - ti.addClass(ac).removeClass(ic); - } else { - var el = document.documentElement; - var rfs = el.requestFullscreen || el.webkitRequestFullscreen || el.mozRequestFullScreen || el.msRequestFullscreen; - if (rfs) { - rfs.call(el); - } else if (window.ActiveXObject) { - var ws = new ActiveXObject('WScript.Shell'); - ws && ws.SendKeys('{F11}'); - } - ti.addClass(ic).removeClass(ac); - } - }, - // 左滑动tab - leftPage: function () { - admin.rollPage("left"); - }, - // 右滑动tab - rightPage: function () { - admin.rollPage(); - }, - // 关闭当前选项卡 - closeThisTabs: function () { - var $title = $('.layui-layout-admin .layui-body .layui-tab .layui-tab-title'); - if ($title.find('li').first().hasClass('layui-this')) { - return; - } - $title.find('li.layui-this').find(".layui-tab-close").trigger("click"); - }, - // 关闭其他选项卡 - closeOtherTabs: function () { - $('.layui-layout-admin .layui-body .layui-tab .layui-tab-title li:gt(0):not(.layui-this)').find(".layui-tab-close").trigger("click"); - }, - // 关闭所有选项卡 - closeAllTabs: function () { - $('.layui-layout-admin .layui-body .layui-tab .layui-tab-title li:gt(0)').find(".layui-tab-close").trigger("click"); - }, - // 关闭所有弹窗 - closeDialog: function () { - layer.closeAll('page'); - } - }; - - // 所有ew-event - $('body').on('click', '*[ew-event]', function () { - var event = $(this).attr('ew-event'); - var te = admin.events[event]; - te && te.call(this, $(this)); - }); - - // 移动设备遮罩层点击事件 - $('.site-mobile-shade').click(function () { - admin.flexible(true); - }); - - // 侧导航折叠状态下鼠标经过显示提示 - $('body').on('mouseenter', '.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a', function () { - var tipText = $(this).find('cite').text(); - if (document.body.clientWidth > 750) { - layer.tips(tipText, this); - } - }).on('mouseleave', '.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a', function () { - layer.closeAll('tips'); - }); - - // 侧导航折叠状态下点击展开 - $('body').on('click', '.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a', function () { - if (document.body.clientWidth > 750) { - layer.closeAll('tips'); - admin.flexible(true); - } - }); - - // 所有lay-tips处理 - $('body').on('mouseenter', '*[lay-tips]', function () { - var tipText = $(this).attr('lay-tips'); - var dt = $(this).attr('lay-direction'); - layer.tips(tipText, this, {tips: dt || 1, time: -1}); - }).on('mouseleave', '*[lay-tips]', function () { - layer.closeAll('tips'); - }); - - exports('admin', admin); -}); diff --git a/zlt-web/back-web/src/main/resources/static/module/apiUrl.js b/zlt-web/back-web/src/main/resources/static/module/apiUrl.js deleted file mode 100644 index db75a8fd..00000000 --- a/zlt-web/back-web/src/main/resources/static/module/apiUrl.js +++ /dev/null @@ -1 +0,0 @@ -var my_api_server_url = 'http://127.0.0.1:9900/'; \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/module/config.js b/zlt-web/back-web/src/main/resources/static/module/config.js deleted file mode 100644 index 38c8f6fa..00000000 --- a/zlt-web/back-web/src/main/resources/static/module/config.js +++ /dev/null @@ -1,63 +0,0 @@ -layui.define(function (exports) { - /** - * 用于动态切换环境地址 - */ - //默认地址 - var defUrl = 'http://127.0.0.1:9900/'; - //当前环境的api地址 - var apiUrl; - try{ - if (my_api_server_url.length > 0) { - apiUrl = my_api_server_url; - } else { - apiUrl = defUrl; - } - } catch(e) { - apiUrl = defUrl; - } - var config = { - base_server: apiUrl, - tableName: 'easyweb', // 存储表名 - clientId: 'webApp', // 应用id - isolationVersion: '', // 隔离版本 - clientSecret: 'webApp', // 应用秘钥 - autoRender: false, // 窗口大小改变后是否自动重新渲染表格,解决layui数据表格非响应式的问题,目前实现的还不是很好,暂时关闭该功能 - pageTabs: true, // 是否开启多标签 - // 获取缓存的token - getToken: function () { - var t = layui.data(config.tableName).token; - if (t) { - return JSON.parse(t); - } - }, - // 清除user - removeToken: function () { - layui.data(config.tableName, { - key: 'token', - remove: true - }); - }, - // 缓存token - putToken: function (token) { - layui.data(config.tableName, { - key: 'token', - value: JSON.stringify(token) - }); - }, - // 当前登录的用户 - getUser: function () { - var u = layui.data(config.tableName).login_user; - if (u) { - return JSON.parse(u); - } - }, - // 缓存user - putUser: function (user) { - layui.data(config.tableName, { - key: 'login_user', - value: JSON.stringify(user) - }); - } - }; - exports('config', config); -}); diff --git a/zlt-web/back-web/src/main/resources/static/module/echarts.js b/zlt-web/back-web/src/main/resources/static/module/echarts.js deleted file mode 100644 index 7af448cd..00000000 --- a/zlt-web/back-web/src/main/resources/static/module/echarts.js +++ /dev/null @@ -1,39 +0,0 @@ -!function(e){var t,i;!function(){function e(e,t){if(!t)return e;if(0===e.indexOf(".")){var i=t.split("/"),n=e.split("/"),a=i.length-1,o=n.length,r=0,s=0;e:for(var l=0;o>l;l++)switch(n[l]){case"..":if(!(a>r))break e;r++,s++;break;case".":s++;break;default:break e}return i.length=a-r,n=n.slice(s),i.concat(n).join("/")}return e}function n(t){function i(i,r){if("string"==typeof i){var s=n[i];return s||(s=o(e(i,t)),n[i]=s),s}i instanceof Array&&(r=r||function(){},r.apply(this,a(i,r,t)))}var n={};return i}function a(i,n,a){for(var s=[],l=r[a],h=0,m=Math.min(i.length,n.length);m>h;h++){var V,U=e(i[h],a);switch(U){case"require":V=l&&l.require||t;break;case"exports":V=l.exports;break;case"module":V=l;break;default:V=o(U)}s.push(V)}return s}function o(e){var t=r[e];if(!t)throw new Error("No "+e);if(!t.defined){var i=t.factory,n=i.apply(this,a(t.deps||[],i,e));"undefined"!=typeof n&&(t.exports=n),t.defined=1}return t.exports}var r={};i=function(e,t,i){r[e]={id:e,deps:t,factory:i,defined:0,exports:{},require:n(e)}},t=n("")}(),i("echarts",["echarts/echarts"],function(e){return e}),i("echarts/echarts",["require","./config","zrender/tool/util","zrender/tool/event","zrender/tool/env","zrender","zrender/config","./chart/island","./component/toolbox","./component","./component/title","./component/tooltip","./component/legend","./util/ecData","./chart","zrender/tool/color","./component/timeline","zrender/shape/Image","zrender/loadingEffect/Bar","zrender/loadingEffect/Bubble","zrender/loadingEffect/DynamicLine","zrender/loadingEffect/Ring","zrender/loadingEffect/Spin","zrender/loadingEffect/Whirling","./theme/macarons","./theme/infographic"],function(e){function t(){r.Dispatcher.call(this)}function i(e){e.innerHTML="",this._themeConfig={},this.dom=e,this._connected=!1,this._status={dragIn:!1,dragOut:!1,needRefresh:!1},this._curEventType=!1,this._chartList=[],this._messageCenter=new t,this._messageCenterOutSide=new t,this.resize=this.resize(),this._init()}function n(e,t,i,n,a){for(var o=e._chartList,r=o.length;r--;){var s=o[r];"function"==typeof s[t]&&s[t](i,n,a)}}var a=e("./config"),o=e("zrender/tool/util"),r=e("zrender/tool/event"),s={},l=e("zrender/tool/env").canvasSupported,h=new Date-0,m={},V="_echarts_instance_";s.version="2.2.7",s.dependencies={zrender:"2.1.1"},s.init=function(t,n){var a=e("zrender");a.version.replace(".","")-0r;r++){var l=d[r],h=U[l];o[h]="_on"+l.toLowerCase(),i.on(h,this._onzrevent)}this.chart={},this.component={};var m=e("./chart/island");this._island=new m(this._themeConfig,this._messageCenter,i,{},this),this.chart.island=this._island;var V=e("./component/toolbox");this._toolbox=new V(this._themeConfig,this._messageCenter,i,{},this),this.component.toolbox=this._toolbox;var p=e("./component");p.define("title",e("./component/title")),p.define("tooltip",e("./component/tooltip")),p.define("legend",e("./component/legend")),(0===i.getWidth()||0===i.getHeight())&&console.error("Dom’s width & height should be ready before init.")},__onevent:function(e){e.__echartsId=e.__echartsId||this.id;var t=e.__echartsId===this.id;switch(this._curEventType||(this._curEventType=e.type),e.type){case a.EVENT.LEGEND_SELECTED:this._onlegendSelected(e);break;case a.EVENT.DATA_ZOOM:if(!t){var i=this.component.dataZoom;i&&(i.silence(!0),i.absoluteZoom(e.zoom),i.silence(!1))}this._ondataZoom(e);break;case a.EVENT.DATA_RANGE:t&&this._ondataRange(e);break;case a.EVENT.MAGIC_TYPE_CHANGED:if(!t){var n=this.component.toolbox;n&&(n.silence(!0),n.setMagicType(e.magicType),n.silence(!1))}this._onmagicTypeChanged(e);break;case a.EVENT.DATA_VIEW_CHANGED:t&&this._ondataViewChanged(e);break;case a.EVENT.TOOLTIP_HOVER:t&&this._tooltipHover(e);break;case a.EVENT.RESTORE:this._onrestore();break;case a.EVENT.REFRESH:t&&this._onrefresh(e);break;case a.EVENT.TOOLTIP_IN_GRID:case a.EVENT.TOOLTIP_OUT_GRID:if(t){if(this._connected){var o=this.component.grid;o&&(e.x=(e.event.zrenderX-o.getX())/o.getWidth(),e.y=(e.event.zrenderY-o.getY())/o.getHeight())}}else{var o=this.component.grid;o&&this._zr.trigger("mousemove",{connectTrigger:!0,zrenderX:o.getX()+e.x*o.getWidth(),zrenderY:o.getY()+e.y*o.getHeight()})}}if(this._connected&&t&&this._curEventType===e.type){for(var r in this._connected)this._connected[r].connectedEventHandler(e);this._curEventType=null}(!t||!this._connected&&t)&&(this._curEventType=null)},_onclick:function(e){if(n(this,"onclick",e),e.target){var t=this._eventPackage(e.target);t&&null!=t.seriesIndex&&this._messageCenter.dispatch(a.EVENT.CLICK,e.event,t,this)}},_ondblclick:function(e){if(n(this,"ondblclick",e),e.target){var t=this._eventPackage(e.target);t&&null!=t.seriesIndex&&this._messageCenter.dispatch(a.EVENT.DBLCLICK,e.event,t,this)}},_onmouseover:function(e){if(e.target){var t=this._eventPackage(e.target);t&&null!=t.seriesIndex&&this._messageCenter.dispatch(a.EVENT.HOVER,e.event,t,this)}},_onmouseout:function(e){if(e.target){var t=this._eventPackage(e.target);t&&null!=t.seriesIndex&&this._messageCenter.dispatch(a.EVENT.MOUSEOUT,e.event,t,this)}},_ondragstart:function(e){this._status={dragIn:!1,dragOut:!1,needRefresh:!1},n(this,"ondragstart",e)},_ondragenter:function(e){n(this,"ondragenter",e)},_ondragover:function(e){n(this,"ondragover",e)},_ondragleave:function(e){n(this,"ondragleave",e)},_ondrop:function(e){n(this,"ondrop",e,this._status),this._island.ondrop(e,this._status)},_ondragend:function(e){if(n(this,"ondragend",e,this._status),this._timeline&&this._timeline.ondragend(e,this._status),this._island.ondragend(e,this._status),this._status.needRefresh){this._syncBackupData(this._option);var t=this._messageCenter;t.dispatch(a.EVENT.DATA_CHANGED,e.event,this._eventPackage(e.target),this),t.dispatch(a.EVENT.REFRESH,null,null,this)}},_onlegendSelected:function(e){this._status.needRefresh=!1,n(this,"onlegendSelected",e,this._status),this._status.needRefresh&&this._messageCenter.dispatch(a.EVENT.REFRESH,null,null,this)},_ondataZoom:function(e){this._status.needRefresh=!1,n(this,"ondataZoom",e,this._status),this._status.needRefresh&&this._messageCenter.dispatch(a.EVENT.REFRESH,null,null,this)},_ondataRange:function(e){this._clearEffect(),this._status.needRefresh=!1,n(this,"ondataRange",e,this._status),this._status.needRefresh&&this._zr.refreshNextFrame()},_onmagicTypeChanged:function(){this._clearEffect(),this._render(this._toolbox.getMagicOption())},_ondataViewChanged:function(e){this._syncBackupData(e.option),this._messageCenter.dispatch(a.EVENT.DATA_CHANGED,null,e,this),this._messageCenter.dispatch(a.EVENT.REFRESH,null,null,this)},_tooltipHover:function(e){var t=[];n(this,"ontooltipHover",e,t)},_onrestore:function(){this.restore()},_onrefresh:function(e){this._refreshInside=!0,this.refresh(e),this._refreshInside=!1},_syncBackupData:function(e){this.component.dataZoom&&this.component.dataZoom.syncBackupData(e)},_eventPackage:function(t){if(t){var i=e("./util/ecData"),n=i.get(t,"seriesIndex"),a=i.get(t,"dataIndex");return a=-1!=n&&this.component.dataZoom?this.component.dataZoom.getRealDataIndex(n,a):a,{seriesIndex:n,seriesName:(i.get(t,"series")||{}).name,dataIndex:a,data:i.get(t,"data"),name:i.get(t,"name"),value:i.get(t,"value"),special:i.get(t,"special")}}},_noDataCheck:function(e){for(var t=e.series,i=0,n=t.length;n>i;i++)if(t[i].type==a.CHART_TYPE_MAP||t[i].data&&t[i].data.length>0||t[i].markPoint&&t[i].markPoint.data&&t[i].markPoint.data.length>0||t[i].markLine&&t[i].markLine.data&&t[i].markLine.data.length>0||t[i].nodes&&t[i].nodes.length>0||t[i].links&&t[i].links.length>0||t[i].matrix&&t[i].matrix.length>0||t[i].eventList&&t[i].eventList.length>0)return!1;var o=this._option&&this._option.noDataLoadingOption||this._themeConfig.noDataLoadingOption||a.noDataLoadingOption||{text:this._option&&this._option.noDataText||this._themeConfig.noDataText||a.noDataText,effect:this._option&&this._option.noDataEffect||this._themeConfig.noDataEffect||a.noDataEffect};return this.clear(),this.showLoading(o),!0},_render:function(t){if(this._mergeGlobalConifg(t),!this._noDataCheck(t)){var i=t.backgroundColor;if(i)if(l||-1==i.indexOf("rgba"))this.dom.style.backgroundColor=i;else{var n=i.split(",");this.dom.style.filter="alpha(opacity="+100*n[3].substring(0,n[3].lastIndexOf(")"))+")",n.length=3,n[0]=n[0].replace("a",""),this.dom.style.backgroundColor=n.join(",")+")"}this._zr.clearAnimation(),this._chartList=[];var o=e("./chart"),r=e("./component");(t.xAxis||t.yAxis)&&(t.grid=t.grid||{},t.dataZoom=t.dataZoom||{});for(var s,h,m,V=["title","legend","tooltip","dataRange","roamController","grid","dataZoom","xAxis","yAxis","polar"],U=0,d=V.length;d>U;U++)h=V[U],m=this.component[h],t[h]?(m?m.refresh&&m.refresh(t):(s=r.get(/^[xy]Axis$/.test(h)?"axis":h),m=new s(this._themeConfig,this._messageCenter,this._zr,t,this,h),this.component[h]=m),this._chartList.push(m)):m&&(m.dispose(),this.component[h]=null,delete this.component[h]);for(var p,c,u,y={},U=0,d=t.series.length;d>U;U++)c=t.series[U].type,c?y[c]||(y[c]=!0,p=o.get(c),p?(this.chart[c]?(u=this.chart[c],u.refresh(t)):u=new p(this._themeConfig,this._messageCenter,this._zr,t,this),this._chartList.push(u),this.chart[c]=u):console.error(c+" has not been required.")):console.error("series["+U+"] chart type has not been defined.");for(c in this.chart)c==a.CHART_TYPE_ISLAND||y[c]||(this.chart[c].dispose(),this.chart[c]=null,delete this.chart[c]);this.component.grid&&this.component.grid.refixAxisShape(this.component),this._island.refresh(t),this._toolbox.refresh(t),t.animation&&!t.renderAsImage?this._zr.refresh():this._zr.render();var g="IMG"+this.id,b=document.getElementById(g);t.renderAsImage&&l?(b?b.src=this.getDataURL(t.renderAsImage):(b=this.getImage(t.renderAsImage),b.id=g,b.style.position="absolute",b.style.left=0,b.style.top=0,this.dom.firstChild.appendChild(b)),this.un(),this._zr.un(),this._disposeChartList(),this._zr.clear()):b&&b.parentNode.removeChild(b),b=null,this._option=t}},restore:function(){this._clearEffect(),this._option=o.clone(this._optionRestore),this._disposeChartList(),this._island.clear(),this._toolbox.reset(this._option,!0),this._render(this._option)},refresh:function(e){this._clearEffect(),e=e||{};var t=e.option;!this._refreshInside&&t&&(t=this.getOption(),o.merge(t,e.option,!0),o.merge(this._optionRestore,e.option,!0),this._toolbox.reset(t)),this._island.refresh(t),this._toolbox.refresh(t),this._zr.clearAnimation();for(var i=0,n=this._chartList.length;n>i;i++)this._chartList[i].refresh&&this._chartList[i].refresh(t);this.component.grid&&this.component.grid.refixAxisShape(this.component),this._zr.refresh()},_disposeChartList:function(){this._clearEffect(),this._zr.clearAnimation();for(var e=this._chartList.length;e--;){var t=this._chartList[e];if(t){var i=t.type;this.chart[i]&&delete this.chart[i],this.component[i]&&delete this.component[i],t.dispose&&t.dispose()}}this._chartList=[]},_mergeGlobalConifg:function(t){for(var i=["backgroundColor","calculable","calculableColor","calculableHolderColor","nameConnector","valueConnector","animation","animationThreshold","animationDuration","animationDurationUpdate","animationEasing","addDataAnimation","symbolList","DRAG_ENABLE_TIME"],n=i.length;n--;){var o=i[n];null==t[o]&&(t[o]=null!=this._themeConfig[o]?this._themeConfig[o]:a[o])}var r=t.color;r&&r.length||(r=this._themeConfig.color||a.color),this._zr.getColor=function(t){var i=e("zrender/tool/color");return i.getColor(t,r)},l||(t.animation=!1,t.addDataAnimation=!1)},setOption:function(e,t){return e.timeline?this._setTimelineOption(e):this._setOption(e,t)},_setOption:function(e,t,i){return!t&&this._option?this._option=o.merge(this.getOption(),o.clone(e),!0):(this._option=o.clone(e),!i&&this._timeline&&this._timeline.dispose()),this._optionRestore=o.clone(this._option),this._option.series&&0!==this._option.series.length?(this.component.dataZoom&&(this._option.dataZoom||this._option.toolbox&&this._option.toolbox.feature&&this._option.toolbox.feature.dataZoom&&this._option.toolbox.feature.dataZoom.show)&&this.component.dataZoom.syncOption(this._option),this._toolbox.reset(this._option),this._render(this._option),this):void this._zr.clear()},getOption:function(){function e(e){var n=i._optionRestore[e];if(n)if(n instanceof Array)for(var a=n.length;a--;)t[e][a].data=o.clone(n[a].data);else t[e].data=o.clone(n.data)}var t=o.clone(this._option),i=this;return e("xAxis"),e("yAxis"),e("series"),t},setSeries:function(e,t){return t?(this._option.series=e,this.setOption(this._option,t)):this.setOption({series:e}),this},getSeries:function(){return this.getOption().series},_setTimelineOption:function(t){this._timeline&&this._timeline.dispose();var i=e("./component/timeline"),n=new i(this._themeConfig,this._messageCenter,this._zr,t,this);return this._timeline=n,this.component.timeline=this._timeline,this},addData:function(e,t,i,n,r){function s(){if(V._zr){V._zr.clearAnimation();for(var e=0,t=X.length;t>e;e++)X[e].motionlessOnce=h.addDataAnimation&&X[e].addDataAnimation;V._messageCenter.dispatch(a.EVENT.REFRESH,null,{option:h},V)}}for(var l=e instanceof Array?e:[[e,t,i,n,r]],h=this.getOption(),m=this._optionRestore,V=this,U=0,d=l.length;d>U;U++){e=l[U][0],t=l[U][1],i=l[U][2],n=l[U][3],r=l[U][4];var p=m.series[e],c=i?"unshift":"push",u=i?"pop":"shift";if(p){var y=p.data,g=h.series[e].data;if(y[c](t),g[c](t),n||(y[u](),t=g[u]()),null!=r){var b,f;if(p.type===a.CHART_TYPE_PIE&&(b=m.legend)&&(f=b.data)){var k=h.legend.data;if(f[c](r),k[c](r),!n){var x=o.indexOf(f,t.name);-1!=x&&f.splice(x,1),x=o.indexOf(k,t.name),-1!=x&&k.splice(x,1)}}else if(null!=m.xAxis&&null!=m.yAxis){var _,L,W=p.xAxisIndex||0;(null==m.xAxis[W].type||"category"===m.xAxis[W].type)&&(_=m.xAxis[W].data,L=h.xAxis[W].data,_[c](r),L[c](r),n||(_[u](),L[u]())),W=p.yAxisIndex||0,"category"===m.yAxis[W].type&&(_=m.yAxis[W].data,L=h.yAxis[W].data,_[c](r),L[c](r),n||(_[u](),L[u]()))}}this._option.series[e].data=h.series[e].data}}this._zr.clearAnimation();for(var X=this._chartList,v=0,w=function(){v--,0===v&&s()},U=0,d=X.length;d>U;U++)h.addDataAnimation&&X[U].addDataAnimation&&(v++,X[U].addDataAnimation(l,w));return this.component.dataZoom&&this.component.dataZoom.syncOption(h),this._option=h,h.addDataAnimation||setTimeout(s,0),this},addMarkPoint:function(e,t){return this._addMark(e,t,"markPoint")},addMarkLine:function(e,t){return this._addMark(e,t,"markLine")},_addMark:function(e,t,i){var n,a=this._option.series;if(a&&(n=a[e])){var r=this._optionRestore.series,s=r[e],l=n[i],h=s[i];l=n[i]=l||{data:[]},h=s[i]=h||{data:[]};for(var m in t)"data"===m?(l.data=l.data.concat(t.data),h.data=h.data.concat(t.data)):"object"!=typeof t[m]||null==l[m]?l[m]=h[m]=t[m]:(o.merge(l[m],t[m],!0),o.merge(h[m],t[m],!0));var V=this.chart[n.type];V&&V.addMark(e,t,i)}return this},delMarkPoint:function(e,t){return this._delMark(e,t,"markPoint")},delMarkLine:function(e,t){return this._delMark(e,t,"markLine")},_delMark:function(e,t,i){var n,a,o,r=this._option.series;if(!(r&&(n=r[e])&&(a=n[i])&&(o=a.data)))return this;t=t.split(" > ");for(var s=-1,l=0,h=o.length;h>l;l++){var m=o[l];if(m instanceof Array){if(m[0].name===t[0]&&m[1].name===t[1]){s=l;break}}else if(m.name===t[0]){s=l;break}}if(s>-1){o.splice(s,1),this._optionRestore.series[e][i].data.splice(s,1);var V=this.chart[n.type];V&&V.delMark(e,t.join(" > "),i)}return this},getDom:function(){return this.dom},getZrender:function(){return this._zr},getDataURL:function(e){if(!l)return"";if(0===this._chartList.length){var t="IMG"+this.id,i=document.getElementById(t);if(i)return i.src}var n=this.component.tooltip;switch(n&&n.hideTip(),e){case"jpeg":break;default:e="png"}var a=this._option.backgroundColor;return a&&"rgba(0,0,0,0)"===a.replace(" ","")&&(a="#fff"),this._zr.toDataURL("image/"+e,a)},getImage:function(e){var t=this._optionRestore.title,i=document.createElement("img");return i.src=this.getDataURL(e),i.title=t&&t.text||"ECharts",i},getConnectedDataURL:function(t){if(!this.isConnected())return this.getDataURL(t);var i=this.dom,n={self:{img:this.getDataURL(t),left:i.offsetLeft,top:i.offsetTop,right:i.offsetLeft+i.offsetWidth,bottom:i.offsetTop+i.offsetHeight}},a=n.self.left,o=n.self.top,r=n.self.right,s=n.self.bottom;for(var l in this._connected)i=this._connected[l].getDom(),n[l]={img:this._connected[l].getDataURL(t),left:i.offsetLeft,top:i.offsetTop,right:i.offsetLeft+i.offsetWidth,bottom:i.offsetTop+i.offsetHeight},a=Math.min(a,n[l].left),o=Math.min(o,n[l].top),r=Math.max(r,n[l].right),s=Math.max(s,n[l].bottom);var h=document.createElement("div");h.style.position="absolute",h.style.left="-4000px",h.style.width=r-a+"px",h.style.height=s-o+"px",document.body.appendChild(h);var m=e("zrender").init(h),V=e("zrender/shape/Image");for(var l in n)m.addShape(new V({style:{x:n[l].left-a,y:n[l].top-o,image:n[l].img}}));m.render();var U=this._option.backgroundColor;U&&"rgba(0,0,0,0)"===U.replace(/ /g,"")&&(U="#fff");var d=m.toDataURL("image/png",U);return setTimeout(function(){m.dispose(),h.parentNode.removeChild(h),h=null},100),d},getConnectedImage:function(e){var t=this._optionRestore.title,i=document.createElement("img");return i.src=this.getConnectedDataURL(e),i.title=t&&t.text||"ECharts",i},on:function(e,t){return this._messageCenterOutSide.bind(e,t,this),this},un:function(e,t){return this._messageCenterOutSide.unbind(e,t),this},connect:function(e){if(!e)return this;if(this._connected||(this._connected={}),e instanceof Array)for(var t=0,i=e.length;i>t;t++)this._connected[e[t].id]=e[t];else this._connected[e.id]=e;return this},disConnect:function(e){if(!e||!this._connected)return this;if(e instanceof Array)for(var t=0,i=e.length;i>t;t++)delete this._connected[e[t].id];else delete this._connected[e.id];for(var n in this._connected)return this;return this._connected=!1,this},connectedEventHandler:function(e){e.__echartsId!=this.id&&this._onevent(e)},isConnected:function(){return!!this._connected},showLoading:function(t){var i={bar:e("zrender/loadingEffect/Bar"),bubble:e("zrender/loadingEffect/Bubble"),dynamicLine:e("zrender/loadingEffect/DynamicLine"),ring:e("zrender/loadingEffect/Ring"),spin:e("zrender/loadingEffect/Spin"),whirling:e("zrender/loadingEffect/Whirling")};this._toolbox.hideDataView(),t=t||{};var n=t.textStyle||{};t.textStyle=n;var r=o.merge(o.merge(o.clone(n),this._themeConfig.textStyle),a.textStyle);n.textFont=r.fontStyle+" "+r.fontWeight+" "+r.fontSize+"px "+r.fontFamily,n.text=t.text||this._option&&this._option.loadingText||this._themeConfig.loadingText||a.loadingText,null!=t.x&&(n.x=t.x),null!=t.y&&(n.y=t.y),t.effectOption=t.effectOption||{},t.effectOption.textStyle=n;var s=t.effect;return("string"==typeof s||null==s)&&(s=i[t.effect||this._option&&this._option.loadingEffect||this._themeConfig.loadingEffect||a.loadingEffect]||i.spin),this._zr.showLoading(new s(t.effectOption)),this},hideLoading:function(){return this._zr.hideLoading(),this},setTheme:function(t){if(t){if("string"==typeof t)switch(t){case"macarons":t=e("./theme/macarons");break;case"infographic":t=e("./theme/infographic");break;default:t={}}else t=t||{};this._themeConfig=t}if(!l){var i=this._themeConfig.textStyle;i&&i.fontFamily&&i.fontFamily2&&(i.fontFamily=i.fontFamily2),i=a.textStyle,i.fontFamily=i.fontFamily2}this._timeline&&this._timeline.setTheme(!0),this._optionRestore&&this.restore()},resize:function(){var e=this;return function(){if(e._clearEffect(),e._zr.resize(),e._option&&e._option.renderAsImage&&l)return e._render(e._option),e;e._zr.clearAnimation(),e._island.resize(),e._toolbox.resize(),e._timeline&&e._timeline.resize();for(var t=0,i=e._chartList.length;i>t;t++)e._chartList[t].resize&&e._chartList[t].resize();return e.component.grid&&e.component.grid.refixAxisShape(e.component),e._zr.refresh(),e._messageCenter.dispatch(a.EVENT.RESIZE,null,null,e),e}},_clearEffect:function(){this._zr.modLayer(a.EFFECT_ZLEVEL,{motionBlur:!1}),this._zr.painter.clearLayer(a.EFFECT_ZLEVEL)},clear:function(){return this._disposeChartList(),this._zr.clear(),this._option={},this._optionRestore={},this.dom.style.backgroundColor=null,this},dispose:function(){var e=this.dom.getAttribute(V);e&&delete m[e],this._island.dispose(),this._toolbox.dispose(),this._timeline&&this._timeline.dispose(),this._messageCenter.unbind(),this.clear(),this._zr.dispose(),this._zr=null}},s}),i("echarts/config",[],function(){var e={CHART_TYPE_LINE:"line",CHART_TYPE_BAR:"bar",CHART_TYPE_SCATTER:"scatter",CHART_TYPE_PIE:"pie",CHART_TYPE_RADAR:"radar",CHART_TYPE_VENN:"venn",CHART_TYPE_TREEMAP:"treemap",CHART_TYPE_TREE:"tree",CHART_TYPE_MAP:"map",CHART_TYPE_K:"k",CHART_TYPE_ISLAND:"island",CHART_TYPE_FORCE:"force",CHART_TYPE_CHORD:"chord",CHART_TYPE_GAUGE:"gauge",CHART_TYPE_FUNNEL:"funnel",CHART_TYPE_EVENTRIVER:"eventRiver",CHART_TYPE_WORDCLOUD:"wordCloud",CHART_TYPE_HEATMAP:"heatmap",COMPONENT_TYPE_TITLE:"title",COMPONENT_TYPE_LEGEND:"legend",COMPONENT_TYPE_DATARANGE:"dataRange",COMPONENT_TYPE_DATAVIEW:"dataView",COMPONENT_TYPE_DATAZOOM:"dataZoom",COMPONENT_TYPE_TOOLBOX:"toolbox",COMPONENT_TYPE_TOOLTIP:"tooltip",COMPONENT_TYPE_GRID:"grid",COMPONENT_TYPE_AXIS:"axis",COMPONENT_TYPE_POLAR:"polar",COMPONENT_TYPE_X_AXIS:"xAxis",COMPONENT_TYPE_Y_AXIS:"yAxis",COMPONENT_TYPE_AXIS_CATEGORY:"categoryAxis",COMPONENT_TYPE_AXIS_VALUE:"valueAxis",COMPONENT_TYPE_TIMELINE:"timeline",COMPONENT_TYPE_ROAMCONTROLLER:"roamController",backgroundColor:"rgba(0,0,0,0)",color:["#ff7f50","#87cefa","#da70d6","#32cd32","#6495ed","#ff69b4","#ba55d3","#cd5c5c","#ffa500","#40e0d0","#1e90ff","#ff6347","#7b68ee","#00fa9a","#ffd700","#6699FF","#ff6666","#3cb371","#b8860b","#30e0e0"],markPoint:{clickable:!0,symbol:"pin",symbolSize:10,large:!1,effect:{show:!1,loop:!0,period:15,type:"scale",scaleSize:2,bounceDistance:10},itemStyle:{normal:{borderWidth:2,label:{show:!0,position:"inside"}},emphasis:{label:{show:!0}}}},markLine:{clickable:!0,symbol:["circle","arrow"],symbolSize:[2,4],smoothness:.2,precision:2,effect:{show:!1,loop:!0,period:15,scaleSize:2},bundling:{enable:!1,maxTurningAngle:45},itemStyle:{normal:{borderWidth:1.5,label:{show:!0,position:"end"},lineStyle:{type:"dashed"}},emphasis:{label:{show:!1},lineStyle:{}}}},textStyle:{decoration:"none",fontFamily:"Arial, Verdana, sans-serif",fontFamily2:"微软雅黑",fontSize:12,fontStyle:"normal",fontWeight:"normal"},EVENT:{REFRESH:"refresh",RESTORE:"restore",RESIZE:"resize",CLICK:"click",DBLCLICK:"dblclick",HOVER:"hover",MOUSEOUT:"mouseout",DATA_CHANGED:"dataChanged",DATA_ZOOM:"dataZoom",DATA_RANGE:"dataRange",DATA_RANGE_SELECTED:"dataRangeSelected",DATA_RANGE_HOVERLINK:"dataRangeHoverLink",LEGEND_SELECTED:"legendSelected",LEGEND_HOVERLINK:"legendHoverLink",MAP_SELECTED:"mapSelected",PIE_SELECTED:"pieSelected",MAGIC_TYPE_CHANGED:"magicTypeChanged",DATA_VIEW_CHANGED:"dataViewChanged",TIMELINE_CHANGED:"timelineChanged",MAP_ROAM:"mapRoam",FORCE_LAYOUT_END:"forceLayoutEnd",TOOLTIP_HOVER:"tooltipHover",TOOLTIP_IN_GRID:"tooltipInGrid",TOOLTIP_OUT_GRID:"tooltipOutGrid",ROAMCONTROLLER:"roamController"},DRAG_ENABLE_TIME:120,EFFECT_ZLEVEL:10,effectBlendAlpha:.95,symbolList:["circle","rectangle","triangle","diamond","emptyCircle","emptyRectangle","emptyTriangle","emptyDiamond"],loadingEffect:"spin",loadingText:"数据读取中...",noDataEffect:"bubble",noDataText:"暂无数据",calculable:!1,calculableColor:"rgba(255,165,0,0.6)",calculableHolderColor:"#ccc",nameConnector:" & ",valueConnector:": ",animation:!0,addDataAnimation:!0,animationThreshold:2e3,animationDuration:2e3,animationDurationUpdate:500,animationEasing:"ExponentialOut"};return e}),i("zrender/tool/util",["require","../dep/excanvas"],function(e){function t(e){return e&&1===e.nodeType&&"string"==typeof e.nodeName}function i(e){if("object"==typeof e&&null!==e){var n=e;if(e instanceof Array){n=[];for(var a=0,o=e.length;o>a;a++)n[a]=i(e[a])}else if(!y[g.call(e)]&&!t(e)){n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=i(e[r]))}return n}return e}function n(e,i,n,o){if(i.hasOwnProperty(n)){var r=e[n];"object"!=typeof r||y[g.call(r)]||t(r)?!o&&n in e||(e[n]=i[n]):a(e[n],i[n],o)}}function a(e,t,i){for(var a in t)n(e,t,a,i);return e}function o(){if(!U)if(e("../dep/excanvas"),window.G_vmlCanvasManager){var t=document.createElement("div");t.style.position="absolute",t.style.top="-1000px",document.body.appendChild(t),U=G_vmlCanvasManager.initElement(t).getContext("2d")}else U=document.createElement("canvas").getContext("2d");return U}function r(e,t){if(e.indexOf)return e.indexOf(t);for(var i=0,n=e.length;n>i;i++)if(e[i]===t)return i;return-1}function s(e,t){function i(){}var n=e.prototype;i.prototype=t.prototype,e.prototype=new i;for(var a in n)e.prototype[a]=n[a];e.constructor=e}function l(e,t,i){if(e&&t)if(e.forEach&&e.forEach===p)e.forEach(t,i);else if(e.length===+e.length)for(var n=0,a=e.length;a>n;n++)t.call(i,e[n],n,e);else for(var o in e)e.hasOwnProperty(o)&&t.call(i,e[o],o,e)}function h(e,t,i){if(e&&t){if(e.map&&e.map===c)return e.map(t,i);for(var n=[],a=0,o=e.length;o>a;a++)n.push(t.call(i,e[a],a,e));return n}}function m(e,t,i){if(e&&t){if(e.filter&&e.filter===u)return e.filter(t,i);for(var n=[],a=0,o=e.length;o>a;a++)t.call(i,e[a],a,e)&&n.push(e[a]);return n}}function V(e,t){return function(){e.apply(t,arguments)}}var U,d=Array.prototype,p=d.forEach,c=d.map,u=d.filter,y={"[object Function]":1,"[object RegExp]":1,"[object Date]":1,"[object Error]":1,"[object CanvasGradient]":1},g=Object.prototype.toString;return{inherits:s,clone:i,merge:a,getContext:o,indexOf:r,each:l,map:h,filter:m,bind:V}}),i("zrender/tool/event",["require","../mixin/Eventful"],function(e){"use strict";function t(e){return"undefined"!=typeof e.zrenderX&&e.zrenderX||"undefined"!=typeof e.offsetX&&e.offsetX||"undefined"!=typeof e.layerX&&e.layerX||"undefined"!=typeof e.clientX&&e.clientX}function i(e){return"undefined"!=typeof e.zrenderY&&e.zrenderY||"undefined"!=typeof e.offsetY&&e.offsetY||"undefined"!=typeof e.layerY&&e.layerY||"undefined"!=typeof e.clientY&&e.clientY}function n(e){return"undefined"!=typeof e.zrenderDelta&&e.zrenderDelta||"undefined"!=typeof e.wheelDelta&&e.wheelDelta||"undefined"!=typeof e.detail&&-e.detail}var a=e("../mixin/Eventful"),o="function"==typeof window.addEventListener?function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0}:function(e){e.returnValue=!1,e.cancelBubble=!0};return{getX:t,getY:i,getDelta:n,stop:o,Dispatcher:a}}),i("zrender/tool/env",[],function(){function e(e){var t=this.os={},i=this.browser={},n=e.match(/Web[kK]it[\/]{0,1}([\d.]+)/),a=e.match(/(Android);?[\s\/]+([\d.]+)?/),o=e.match(/(iPad).*OS\s([\d_]+)/),r=e.match(/(iPod)(.*OS\s([\d_]+))?/),s=!o&&e.match(/(iPhone\sOS)\s([\d_]+)/),l=e.match(/(webOS|hpwOS)[\s\/]([\d.]+)/),h=l&&e.match(/TouchPad/),m=e.match(/Kindle\/([\d.]+)/),V=e.match(/Silk\/([\d._]+)/),U=e.match(/(BlackBerry).*Version\/([\d.]+)/),d=e.match(/(BB10).*Version\/([\d.]+)/),p=e.match(/(RIM\sTablet\sOS)\s([\d.]+)/),c=e.match(/PlayBook/),u=e.match(/Chrome\/([\d.]+)/)||e.match(/CriOS\/([\d.]+)/),y=e.match(/Firefox\/([\d.]+)/),g=e.match(/MSIE ([\d.]+)/),b=n&&e.match(/Mobile\//)&&!u,f=e.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/)&&!u,g=e.match(/MSIE\s([\d.]+)/);return(i.webkit=!!n)&&(i.version=n[1]),a&&(t.android=!0,t.version=a[2]),s&&!r&&(t.ios=t.iphone=!0,t.version=s[2].replace(/_/g,".")),o&&(t.ios=t.ipad=!0,t.version=o[2].replace(/_/g,".")),r&&(t.ios=t.ipod=!0,t.version=r[3]?r[3].replace(/_/g,"."):null),l&&(t.webos=!0,t.version=l[2]),h&&(t.touchpad=!0),U&&(t.blackberry=!0,t.version=U[2]),d&&(t.bb10=!0,t.version=d[2]),p&&(t.rimtabletos=!0,t.version=p[2]),c&&(i.playbook=!0),m&&(t.kindle=!0,t.version=m[1]),V&&(i.silk=!0,i.version=V[1]),!V&&t.android&&e.match(/Kindle Fire/)&&(i.silk=!0),u&&(i.chrome=!0,i.version=u[1]),y&&(i.firefox=!0,i.version=y[1]),g&&(i.ie=!0,i.version=g[1]),b&&(e.match(/Safari/)||t.ios)&&(i.safari=!0),f&&(i.webview=!0),g&&(i.ie=!0,i.version=g[1]),t.tablet=!!(o||c||a&&!e.match(/Mobile/)||y&&e.match(/Tablet/)||g&&!e.match(/Phone/)&&e.match(/Touch/)),t.phone=!(t.tablet||t.ipod||!(a||s||l||U||d||u&&e.match(/Android/)||u&&e.match(/CriOS\/([\d.]+)/)||y&&e.match(/Mobile/)||g&&e.match(/Touch/))),{browser:i,os:t,canvasSupported:document.createElement("canvas").getContext?!0:!1}}return e(navigator.userAgent)}),i("zrender",["zrender/zrender"],function(e){return e}),i("zrender/zrender",["require","./dep/excanvas","./tool/util","./tool/log","./tool/guid","./Handler","./Painter","./Storage","./animation/Animation","./tool/env"],function(e){function t(e){return function(){e._needsRefreshNextFrame&&e.refresh()}}e("./dep/excanvas");var i=e("./tool/util"),n=e("./tool/log"),a=e("./tool/guid"),o=e("./Handler"),r=e("./Painter"),s=e("./Storage"),l=e("./animation/Animation"),h={},m={};m.version="2.1.1",m.init=function(e){var t=new V(a(),e);return h[t.id]=t,t},m.dispose=function(e){if(e)e.dispose();else{for(var t in h)h[t].dispose();h={}}return m},m.getInstance=function(e){return h[e]},m.delInstance=function(e){return delete h[e],m};var V=function(i,n){this.id=i,this.env=e("./tool/env"),this.storage=new s,this.painter=new r(n,this.storage),this.handler=new o(n,this.storage,this.painter),this.animation=new l({stage:{update:t(this)}}),this.animation.start();var a=this;this.painter.refreshNextFrame=function(){a.refreshNextFrame()},this._needsRefreshNextFrame=!1;var a=this,h=this.storage,m=h.delFromMap;h.delFromMap=function(e){var t=h.get(e);a.stopAnimation(t),m.call(h,e)}};return V.prototype.getId=function(){return this.id},V.prototype.addShape=function(e){return this.addElement(e),this},V.prototype.addGroup=function(e){return this.addElement(e),this},V.prototype.delShape=function(e){return this.delElement(e),this},V.prototype.delGroup=function(e){return this.delElement(e),this},V.prototype.modShape=function(e,t){return this.modElement(e,t),this},V.prototype.modGroup=function(e,t){return this.modElement(e,t),this},V.prototype.addElement=function(e){return this.storage.addRoot(e),this._needsRefreshNextFrame=!0,this},V.prototype.delElement=function(e){return this.storage.delRoot(e),this._needsRefreshNextFrame=!0,this},V.prototype.modElement=function(e,t){return this.storage.mod(e,t),this._needsRefreshNextFrame=!0,this},V.prototype.modLayer=function(e,t){return this.painter.modLayer(e,t),this._needsRefreshNextFrame=!0,this},V.prototype.addHoverShape=function(e){return this.storage.addHover(e),this},V.prototype.render=function(e){return this.painter.render(e),this._needsRefreshNextFrame=!1,this},V.prototype.refresh=function(e){return this.painter.refresh(e),this._needsRefreshNextFrame=!1,this},V.prototype.refreshNextFrame=function(){return this._needsRefreshNextFrame=!0,this},V.prototype.refreshHover=function(e){return this.painter.refreshHover(e),this},V.prototype.refreshShapes=function(e,t){return this.painter.refreshShapes(e,t),this},V.prototype.resize=function(){return this.painter.resize(),this},V.prototype.animate=function(e,t,a){var o=this;if("string"==typeof e&&(e=this.storage.get(e)),e){var r;if(t){for(var s=t.split("."),l=e,h=0,m=s.length;m>h;h++)l&&(l=l[s[h]]);l&&(r=l)}else r=e;if(!r)return void n('Property "'+t+'" is not existed in element '+e.id); - -null==e.__animators&&(e.__animators=[]);var V=e.__animators,U=this.animation.animate(r,{loop:a}).during(function(){o.modShape(e)}).done(function(){var t=i.indexOf(e.__animators,U);t>=0&&V.splice(t,1)});return V.push(U),U}n("Element not existed")},V.prototype.stopAnimation=function(e){if(e.__animators){for(var t=e.__animators,i=t.length,n=0;i>n;n++)t[n].stop();t.length=0}return this},V.prototype.clearAnimation=function(){return this.animation.clear(),this},V.prototype.showLoading=function(e){return this.painter.showLoading(e),this},V.prototype.hideLoading=function(){return this.painter.hideLoading(),this},V.prototype.getWidth=function(){return this.painter.getWidth()},V.prototype.getHeight=function(){return this.painter.getHeight()},V.prototype.toDataURL=function(e,t,i){return this.painter.toDataURL(e,t,i)},V.prototype.shapeToImage=function(e,t,i){var n=a();return this.painter.shapeToImage(n,e,t,i)},V.prototype.on=function(e,t,i){return this.handler.on(e,t,i),this},V.prototype.un=function(e,t){return this.handler.un(e,t),this},V.prototype.trigger=function(e,t){return this.handler.trigger(e,t),this},V.prototype.clear=function(){return this.storage.delRoot(),this.painter.clear(),this},V.prototype.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,m.delInstance(this.id)},m}),i("zrender/config",[],function(){var e={EVENT:{RESIZE:"resize",CLICK:"click",DBLCLICK:"dblclick",MOUSEWHEEL:"mousewheel",MOUSEMOVE:"mousemove",MOUSEOVER:"mouseover",MOUSEOUT:"mouseout",MOUSEDOWN:"mousedown",MOUSEUP:"mouseup",GLOBALOUT:"globalout",DRAGSTART:"dragstart",DRAGEND:"dragend",DRAGENTER:"dragenter",DRAGOVER:"dragover",DRAGLEAVE:"dragleave",DROP:"drop",touchClickDelay:300},elementClassName:"zr-element",catchBrushException:!1,debugMode:0,devicePixelRatio:Math.max(window.devicePixelRatio||1,1)};return e}),i("echarts/chart/island",["require","./base","zrender/shape/Circle","../config","../util/ecData","zrender/tool/util","zrender/tool/event","zrender/tool/color","../util/accMath","../chart"],function(e){function t(e,t,n,a,r){i.call(this,e,t,n,a,r),this._nameConnector,this._valueConnector,this._zrHeight=this.zr.getHeight(),this._zrWidth=this.zr.getWidth();var l=this;l.shapeHandler.onmousewheel=function(e){var t=e.target,i=e.event,n=s.getDelta(i);n=n>0?-1:1,t.style.r-=n,t.style.r=t.style.r<5?5:t.style.r;var a=o.get(t,"value"),r=a*l.option.island.calculateStep;a=r>1?Math.round(a-r*n):+(a-r*n).toFixed(2);var h=o.get(t,"name");t.style.text=h+":"+a,o.set(t,"value",a),o.set(t,"name",h),l.zr.modShape(t.id),l.zr.refreshNextFrame(),s.stop(i)}}var i=e("./base"),n=e("zrender/shape/Circle"),a=e("../config");a.island={zlevel:0,z:5,r:15,calculateStep:.1};var o=e("../util/ecData"),r=e("zrender/tool/util"),s=e("zrender/tool/event");return t.prototype={type:a.CHART_TYPE_ISLAND,_combine:function(t,i){var n=e("zrender/tool/color"),a=e("../util/accMath"),r=a.accAdd(o.get(t,"value"),o.get(i,"value")),s=o.get(t,"name")+this._nameConnector+o.get(i,"name");t.style.text=s+this._valueConnector+r,o.set(t,"value",r),o.set(t,"name",s),t.style.r=this.option.island.r,t.style.color=n.mix(t.style.color,i.style.color)},refresh:function(e){e&&(e.island=this.reformOption(e.island),this.option=e,this._nameConnector=this.option.nameConnector,this._valueConnector=this.option.valueConnector)},getOption:function(){return this.option},resize:function(){var e=this.zr.getWidth(),t=this.zr.getHeight(),i=e/(this._zrWidth||e),n=t/(this._zrHeight||t);if(1!==i||1!==n){this._zrWidth=e,this._zrHeight=t;for(var a=0,o=this.shapeList.length;o>a;a++)this.zr.modShape(this.shapeList[a].id,{style:{x:Math.round(this.shapeList[a].style.x*i),y:Math.round(this.shapeList[a].style.y*n)}})}},add:function(e){var t=o.get(e,"name"),i=o.get(e,"value"),a=null!=o.get(e,"series")?o.get(e,"series").name:"",r=this.getFont(this.option.island.textStyle),s=this.option.island,l={zlevel:s.zlevel,z:s.z,style:{x:e.style.x,y:e.style.y,r:this.option.island.r,color:e.style.color||e.style.strokeColor,text:t+this._valueConnector+i,textFont:r},draggable:!0,hoverable:!0,onmousewheel:this.shapeHandler.onmousewheel,_type:"island"};"#fff"===l.style.color&&(l.style.color=e.style.strokeColor),this.setCalculable(l),l.dragEnableTime=0,o.pack(l,{name:a},-1,i,-1,t),l=new n(l),this.shapeList.push(l),this.zr.addShape(l)},del:function(e){this.zr.delShape(e.id);for(var t=[],i=0,n=this.shapeList.length;n>i;i++)this.shapeList[i].id!=e.id&&t.push(this.shapeList[i]);this.shapeList=t},ondrop:function(e,t){if(this.isDrop&&e.target){var i=e.target,n=e.dragged;this._combine(i,n),this.zr.modShape(i.id),t.dragIn=!0,this.isDrop=!1}},ondragend:function(e,t){var i=e.target;this.isDragend?t.dragIn&&(this.del(i),t.needRefresh=!0):t.dragIn||(i.style.x=s.getX(e.event),i.style.y=s.getY(e.event),this.add(i),t.needRefresh=!0),this.isDragend=!1}},r.inherits(t,i),e("../chart").define("island",t),t}),i("echarts/component/toolbox",["require","./base","zrender/shape/Line","zrender/shape/Image","zrender/shape/Rectangle","../util/shape/Icon","../config","zrender/tool/util","zrender/config","zrender/tool/event","./dataView","../component"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.dom=o.dom,this._magicType={},this._magicMap={},this._isSilence=!1,this._iconList,this._iconShapeMap={},this._featureTitle={},this._featureIcon={},this._featureColor={},this._featureOption={},this._enableColor="red",this._disableColor="#ccc",this._markShapeList=[];var r=this;r._onMark=function(e){r.__onMark(e)},r._onMarkUndo=function(e){r.__onMarkUndo(e)},r._onMarkClear=function(e){r.__onMarkClear(e)},r._onDataZoom=function(e){r.__onDataZoom(e)},r._onDataZoomReset=function(e){r.__onDataZoomReset(e)},r._onDataView=function(e){r.__onDataView(e)},r._onRestore=function(e){r.__onRestore(e)},r._onSaveAsImage=function(e){r.__onSaveAsImage(e)},r._onMagicType=function(e){r.__onMagicType(e)},r._onCustomHandler=function(e){r.__onCustomHandler(e)},r._onmousemove=function(e){return r.__onmousemove(e)},r._onmousedown=function(e){return r.__onmousedown(e)},r._onmouseup=function(e){return r.__onmouseup(e)},r._onclick=function(e){return r.__onclick(e)}}var i=e("./base"),n=e("zrender/shape/Line"),a=e("zrender/shape/Image"),o=e("zrender/shape/Rectangle"),r=e("../util/shape/Icon"),s=e("../config");s.toolbox={zlevel:0,z:6,show:!1,orient:"horizontal",x:"right",y:"top",color:["#1e90ff","#22bb22","#4b0082","#d2691e"],disableColor:"#ddd",effectiveColor:"red",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,itemSize:16,showTitle:!0,feature:{mark:{show:!1,title:{mark:"辅助线开关",markUndo:"删除辅助线",markClear:"清空辅助线"},lineStyle:{width:1,color:"#1e90ff",type:"dashed"}},dataZoom:{show:!1,title:{dataZoom:"区域缩放",dataZoomReset:"区域缩放后退"}},dataView:{show:!1,title:"数据视图",readOnly:!1,lang:["数据视图","关闭","刷新"]},magicType:{show:!1,title:{line:"折线图切换",bar:"柱形图切换",stack:"堆积",tiled:"平铺",force:"力导向布局图切换",chord:"和弦图切换",pie:"饼图切换",funnel:"漏斗图切换"},type:[]},restore:{show:!1,title:"还原"},saveAsImage:{show:!1,title:"保存为图片",type:"png",lang:["点击保存"]}}};var l=e("zrender/tool/util"),h=e("zrender/config"),m=e("zrender/tool/event"),V="stack",U="tiled";return t.prototype={type:s.COMPONENT_TYPE_TOOLBOX,_buildShape:function(){this._iconList=[];var e=this.option.toolbox;this._enableColor=e.effectiveColor,this._disableColor=e.disableColor;var t=e.feature,i=[];for(var n in t)if(t[n].show)switch(n){case"mark":i.push({key:n,name:"mark"}),i.push({key:n,name:"markUndo"}),i.push({key:n,name:"markClear"});break;case"magicType":for(var a=0,o=t[n].type.length;o>a;a++)t[n].title[t[n].type[a]+"Chart"]=t[n].title[t[n].type[a]],t[n].option&&(t[n].option[t[n].type[a]+"Chart"]=t[n].option[t[n].type[a]]),i.push({key:n,name:t[n].type[a]+"Chart"});break;case"dataZoom":i.push({key:n,name:"dataZoom"}),i.push({key:n,name:"dataZoomReset"});break;case"saveAsImage":this.canvasSupported&&i.push({key:n,name:"saveAsImage"});break;default:i.push({key:n,name:n})}if(i.length>0){for(var r,n,a=0,o=i.length;o>a;a++)r=i[a].name,n=i[a].key,this._iconList.push(r),this._featureTitle[r]=t[n].title[r]||t[n].title,t[n].icon&&(this._featureIcon[r]=t[n].icon[r]||t[n].icon),t[n].color&&(this._featureColor[r]=t[n].color[r]||t[n].color),t[n].option&&(this._featureOption[r]=t[n].option[r]||t[n].option);this._itemGroupLocation=this._getItemGroupLocation(),this._buildBackground(),this._buildItem();for(var a=0,o=this.shapeList.length;o>a;a++)this.zr.addShape(this.shapeList[a]);this._iconShapeMap.mark&&(this._iconDisable(this._iconShapeMap.markUndo),this._iconDisable(this._iconShapeMap.markClear)),this._iconShapeMap.dataZoomReset&&0===this._zoomQueue.length&&this._iconDisable(this._iconShapeMap.dataZoomReset)}},_buildItem:function(){var t,i,n,o,s=this.option.toolbox,l=this._iconList.length,h=this._itemGroupLocation.x,m=this._itemGroupLocation.y,V=s.itemSize,U=s.itemGap,d=s.color instanceof Array?s.color:[s.color],p=this.getFont(s.textStyle);"horizontal"===s.orient?(i=this._itemGroupLocation.y/this.zr.getHeight()<.5?"bottom":"top",n=this._itemGroupLocation.x/this.zr.getWidth()<.5?"left":"right",o=this._itemGroupLocation.y/this.zr.getHeight()<.5?"top":"bottom"):i=this._itemGroupLocation.x/this.zr.getWidth()<.5?"right":"left",this._iconShapeMap={};for(var c=this,u=0;l>u;u++){switch(t={type:"icon",zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:h,y:m,width:V,height:V,iconType:this._iconList[u],lineWidth:1,strokeColor:this._featureColor[this._iconList[u]]||d[u%d.length],brushType:"stroke"},highlightStyle:{lineWidth:1,text:s.showTitle?this._featureTitle[this._iconList[u]]:void 0,textFont:p,textPosition:i,strokeColor:this._featureColor[this._iconList[u]]||d[u%d.length]},hoverable:!0,clickable:!0},this._featureIcon[this._iconList[u]]&&(t.style.image=this._featureIcon[this._iconList[u]].replace(new RegExp("^image:\\/\\/"),""),t.style.opacity=.8,t.highlightStyle.opacity=1,t.type="image"),"horizontal"===s.orient&&(0===u&&"left"===n&&(t.highlightStyle.textPosition="specific",t.highlightStyle.textAlign=n,t.highlightStyle.textBaseline=o,t.highlightStyle.textX=h,t.highlightStyle.textY="top"===o?m+V+10:m-10),u===l-1&&"right"===n&&(t.highlightStyle.textPosition="specific",t.highlightStyle.textAlign=n,t.highlightStyle.textBaseline=o,t.highlightStyle.textX=h+V,t.highlightStyle.textY="top"===o?m+V+10:m-10)),this._iconList[u]){case"mark":t.onclick=c._onMark;break;case"markUndo":t.onclick=c._onMarkUndo;break;case"markClear":t.onclick=c._onMarkClear;break;case"dataZoom":t.onclick=c._onDataZoom;break;case"dataZoomReset":t.onclick=c._onDataZoomReset;break;case"dataView":if(!this._dataView){var y=e("./dataView");this._dataView=new y(this.ecTheme,this.messageCenter,this.zr,this.option,this.myChart)}t.onclick=c._onDataView;break;case"restore":t.onclick=c._onRestore;break;case"saveAsImage":t.onclick=c._onSaveAsImage;break;default:this._iconList[u].match("Chart")?(t._name=this._iconList[u].replace("Chart",""),t.onclick=c._onMagicType):t.onclick=c._onCustomHandler}"icon"===t.type?t=new r(t):"image"===t.type&&(t=new a(t)),this.shapeList.push(t),this._iconShapeMap[this._iconList[u]]=t,"horizontal"===s.orient?h+=V+U:m+=V+U}},_buildBackground:function(){var e=this.option.toolbox,t=this.reformCssArray(this.option.toolbox.padding);this.shapeList.push(new o({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._itemGroupLocation.x-t[3],y:this._itemGroupLocation.y-t[0],width:this._itemGroupLocation.width+t[3]+t[1],height:this._itemGroupLocation.height+t[0]+t[2],brushType:0===e.borderWidth?"fill":"both",color:e.backgroundColor,strokeColor:e.borderColor,lineWidth:e.borderWidth}}))},_getItemGroupLocation:function(){var e=this.option.toolbox,t=this.reformCssArray(this.option.toolbox.padding),i=this._iconList.length,n=e.itemGap,a=e.itemSize,o=0,r=0;"horizontal"===e.orient?(o=(a+n)*i-n,r=a):(r=(a+n)*i-n,o=a);var s,l=this.zr.getWidth();switch(e.x){case"center":s=Math.floor((l-o)/2);break;case"left":s=t[3]+e.borderWidth;break;case"right":s=l-o-t[1]-e.borderWidth;break;default:s=e.x-0,s=isNaN(s)?0:s}var h,m=this.zr.getHeight();switch(e.y){case"top":h=t[0]+e.borderWidth;break;case"bottom":h=m-r-t[2]-e.borderWidth;break;case"center":h=Math.floor((m-r)/2);break;default:h=e.y-0,h=isNaN(h)?0:h}return{x:s,y:h,width:o,height:r}},__onmousemove:function(e){this._marking&&(this._markShape.style.xEnd=m.getX(e.event),this._markShape.style.yEnd=m.getY(e.event),this.zr.addHoverShape(this._markShape)),this._zooming&&(this._zoomShape.style.width=m.getX(e.event)-this._zoomShape.style.x,this._zoomShape.style.height=m.getY(e.event)-this._zoomShape.style.y,this.zr.addHoverShape(this._zoomShape),this.dom.style.cursor="crosshair",m.stop(e.event)),this._zoomStart&&"pointer"!=this.dom.style.cursor&&"move"!=this.dom.style.cursor&&(this.dom.style.cursor="crosshair")},__onmousedown:function(e){if(!e.target){this._zooming=!0;var t=m.getX(e.event),i=m.getY(e.event),n=this.option.dataZoom||{};return this._zoomShape=new o({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:t,y:i,width:1,height:1,brushType:"both"},highlightStyle:{lineWidth:2,color:n.fillerColor||s.dataZoom.fillerColor,strokeColor:n.handleColor||s.dataZoom.handleColor,brushType:"both"}}),this.zr.addHoverShape(this._zoomShape),!0}},__onmouseup:function(){if(!this._zoomShape||Math.abs(this._zoomShape.style.width)<10||Math.abs(this._zoomShape.style.height)<10)return this._zooming=!1,!0;if(this._zooming&&this.component.dataZoom){this._zooming=!1;var e=this.component.dataZoom.rectZoom(this._zoomShape.style);e&&(this._zoomQueue.push({start:e.start,end:e.end,start2:e.start2,end2:e.end2}),this._iconEnable(this._iconShapeMap.dataZoomReset),this.zr.refreshNextFrame())}return!0},__onclick:function(e){if(!e.target)if(this._marking)this._marking=!1,this._markShapeList.push(this._markShape),this._iconEnable(this._iconShapeMap.markUndo),this._iconEnable(this._iconShapeMap.markClear),this.zr.addShape(this._markShape),this.zr.refreshNextFrame();else if(this._markStart){this._marking=!0;var t=m.getX(e.event),i=m.getY(e.event);this._markShape=new n({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{xStart:t,yStart:i,xEnd:t,yEnd:i,lineWidth:this.query(this.option,"toolbox.feature.mark.lineStyle.width"),strokeColor:this.query(this.option,"toolbox.feature.mark.lineStyle.color"),lineType:this.query(this.option,"toolbox.feature.mark.lineStyle.type")}}),this.zr.addHoverShape(this._markShape)}},__onMark:function(e){var t=e.target;if(this._marking||this._markStart)this._resetMark(),this.zr.refreshNextFrame();else{this._resetZoom(),this.zr.modShape(t.id,{style:{strokeColor:this._enableColor}}),this.zr.refreshNextFrame(),this._markStart=!0;var i=this;setTimeout(function(){i.zr&&i.zr.on(h.EVENT.CLICK,i._onclick)&&i.zr.on(h.EVENT.MOUSEMOVE,i._onmousemove)},10)}return!0},__onMarkUndo:function(){if(this._marking)this._marking=!1;else{var e=this._markShapeList.length;if(e>=1){var t=this._markShapeList[e-1];this.zr.delShape(t.id),this.zr.refreshNextFrame(),this._markShapeList.pop(),1===e&&(this._iconDisable(this._iconShapeMap.markUndo),this._iconDisable(this._iconShapeMap.markClear))}}return!0},__onMarkClear:function(){this._marking&&(this._marking=!1);var e=this._markShapeList.length;if(e>0){for(;e--;)this.zr.delShape(this._markShapeList.pop().id);this._iconDisable(this._iconShapeMap.markUndo),this._iconDisable(this._iconShapeMap.markClear),this.zr.refreshNextFrame()}return!0},__onDataZoom:function(e){var t=e.target;if(this._zooming||this._zoomStart)this._resetZoom(),this.zr.refreshNextFrame(),this.dom.style.cursor="default";else{this._resetMark(),this.zr.modShape(t.id,{style:{strokeColor:this._enableColor}}),this.zr.refreshNextFrame(),this._zoomStart=!0;var i=this;setTimeout(function(){i.zr&&i.zr.on(h.EVENT.MOUSEDOWN,i._onmousedown)&&i.zr.on(h.EVENT.MOUSEUP,i._onmouseup)&&i.zr.on(h.EVENT.MOUSEMOVE,i._onmousemove)},10),this.dom.style.cursor="crosshair"}return!0},__onDataZoomReset:function(){return this._zooming&&(this._zooming=!1),this._zoomQueue.pop(),this._zoomQueue.length>0?this.component.dataZoom.absoluteZoom(this._zoomQueue[this._zoomQueue.length-1]):(this.component.dataZoom.rectZoom(),this._iconDisable(this._iconShapeMap.dataZoomReset),this.zr.refreshNextFrame()),!0},_resetMark:function(){this._marking=!1,this._markStart&&(this._markStart=!1,this._iconShapeMap.mark&&this.zr.modShape(this._iconShapeMap.mark.id,{style:{strokeColor:this._iconShapeMap.mark.highlightStyle.strokeColor}}),this.zr.un(h.EVENT.CLICK,this._onclick),this.zr.un(h.EVENT.MOUSEMOVE,this._onmousemove))},_resetZoom:function(){this._zooming=!1,this._zoomStart&&(this._zoomStart=!1,this._iconShapeMap.dataZoom&&this.zr.modShape(this._iconShapeMap.dataZoom.id,{style:{strokeColor:this._iconShapeMap.dataZoom.highlightStyle.strokeColor}}),this.zr.un(h.EVENT.MOUSEDOWN,this._onmousedown),this.zr.un(h.EVENT.MOUSEUP,this._onmouseup),this.zr.un(h.EVENT.MOUSEMOVE,this._onmousemove))},_iconDisable:function(e){"image"!=e.type?this.zr.modShape(e.id,{hoverable:!1,clickable:!1,style:{strokeColor:this._disableColor}}):this.zr.modShape(e.id,{hoverable:!1,clickable:!1,style:{opacity:.3}})},_iconEnable:function(e){"image"!=e.type?this.zr.modShape(e.id,{hoverable:!0,clickable:!0,style:{strokeColor:e.highlightStyle.strokeColor}}):this.zr.modShape(e.id,{hoverable:!0,clickable:!0,style:{opacity:.8}})},__onDataView:function(){return this._dataView.show(this.option),!0},__onRestore:function(){return this._resetMark(),this._resetZoom(),this.messageCenter.dispatch(s.EVENT.RESTORE,null,null,this.myChart),!0},__onSaveAsImage:function(){var e=this.option.toolbox.feature.saveAsImage,t=e.type||"png";"png"!=t&&"jpeg"!=t&&(t="png");var i;i=this.myChart.isConnected()?this.myChart.getConnectedDataURL(t):this.zr.toDataURL("image/"+t,this.option.backgroundColor&&"rgba(0,0,0,0)"===this.option.backgroundColor.replace(" ","")?"#fff":this.option.backgroundColor);var n=document.createElement("div");n.id="__echarts_download_wrap__",n.style.cssText="position:fixed;z-index:99999;display:block;top:0;left:0;background-color:rgba(33,33,33,0.5);text-align:center;width:100%;height:100%;line-height:"+document.documentElement.clientHeight+"px;";var a=document.createElement("a");a.href=i,a.setAttribute("download",(e.name?e.name:this.option.title&&(this.option.title.text||this.option.title.subtext)?this.option.title.text||this.option.title.subtext:"ECharts")+"."+t),a.innerHTML='图片另存为":e.lang?e.lang[0]:"点击保存")+'"/>',n.appendChild(a),document.body.appendChild(n),a=null,n=null,setTimeout(function(){var e=document.getElementById("__echarts_download_wrap__");e&&(e.onclick=function(){var e=document.getElementById("__echarts_download_wrap__");e.onclick=null,e.innerHTML="",document.body.removeChild(e),e=null},e=null)},500)},__onMagicType:function(e){this._resetMark();var t=e.target._name;return this._magicType[t]||(this._magicType[t]=!0,t===s.CHART_TYPE_LINE?this._magicType[s.CHART_TYPE_BAR]=!1:t===s.CHART_TYPE_BAR&&(this._magicType[s.CHART_TYPE_LINE]=!1),t===s.CHART_TYPE_PIE?this._magicType[s.CHART_TYPE_FUNNEL]=!1:t===s.CHART_TYPE_FUNNEL&&(this._magicType[s.CHART_TYPE_PIE]=!1),t===s.CHART_TYPE_FORCE?this._magicType[s.CHART_TYPE_CHORD]=!1:t===s.CHART_TYPE_CHORD&&(this._magicType[s.CHART_TYPE_FORCE]=!1),t===V?this._magicType[U]=!1:t===U&&(this._magicType[V]=!1),this.messageCenter.dispatch(s.EVENT.MAGIC_TYPE_CHANGED,e.event,{magicType:this._magicType},this.myChart)),!0},setMagicType:function(e){this._resetMark(),this._magicType=e,!this._isSilence&&this.messageCenter.dispatch(s.EVENT.MAGIC_TYPE_CHANGED,null,{magicType:this._magicType},this.myChart)},__onCustomHandler:function(e){var t=e.target.style.iconType,i=this.option.toolbox.feature[t].onclick;"function"==typeof i&&i.call(this,this.option)},reset:function(e,t){if(t&&this.clear(),this.query(e,"toolbox.show")&&this.query(e,"toolbox.feature.magicType.show")){var i=e.toolbox.feature.magicType.type,n=i.length;for(this._magicMap={};n--;)this._magicMap[i[n]]=!0;n=e.series.length;for(var a,o;n--;)a=e.series[n].type,this._magicMap[a]&&(o=e.xAxis instanceof Array?e.xAxis[e.series[n].xAxisIndex||0]:e.xAxis,o&&"category"===(o.type||"category")&&(o.__boundaryGap=null!=o.boundaryGap?o.boundaryGap:!0),o=e.yAxis instanceof Array?e.yAxis[e.series[n].yAxisIndex||0]:e.yAxis,o&&"category"===o.type&&(o.__boundaryGap=null!=o.boundaryGap?o.boundaryGap:!0),e.series[n].__type=a,e.series[n].__itemStyle=l.clone(e.series[n].itemStyle||{})),(this._magicMap[V]||this._magicMap[U])&&(e.series[n].__stack=e.series[n].stack)}this._magicType=t?{}:this._magicType||{};for(var r in this._magicType)if(this._magicType[r]){this.option=e,this.getMagicOption();break}var s=e.dataZoom;if(s&&s.show){var h=null!=s.start&&s.start>=0&&s.start<=100?s.start:0,m=null!=s.end&&s.end>=0&&s.end<=100?s.end:100;h>m&&(h+=m,m=h-m,h-=m),this._zoomQueue=[{start:h,end:m,start2:0,end2:100}]}else this._zoomQueue=[]},getMagicOption:function(){var e,t;if(this._magicType[s.CHART_TYPE_LINE]||this._magicType[s.CHART_TYPE_BAR]){for(var i=this._magicType[s.CHART_TYPE_LINE]?!1:!0,n=0,a=this.option.series.length;a>n;n++)t=this.option.series[n].type,(t==s.CHART_TYPE_LINE||t==s.CHART_TYPE_BAR)&&(e=this.option.xAxis instanceof Array?this.option.xAxis[this.option.series[n].xAxisIndex||0]:this.option.xAxis,e&&"category"===(e.type||"category")&&(e.boundaryGap=i?!0:e.__boundaryGap),e=this.option.yAxis instanceof Array?this.option.yAxis[this.option.series[n].yAxisIndex||0]:this.option.yAxis,e&&"category"===e.type&&(e.boundaryGap=i?!0:e.__boundaryGap));this._defaultMagic(s.CHART_TYPE_LINE,s.CHART_TYPE_BAR)}if(this._defaultMagic(s.CHART_TYPE_CHORD,s.CHART_TYPE_FORCE),this._defaultMagic(s.CHART_TYPE_PIE,s.CHART_TYPE_FUNNEL),this._magicType[V]||this._magicType[U])for(var n=0,a=this.option.series.length;a>n;n++)this._magicType[V]?(this.option.series[n].stack="_ECHARTS_STACK_KENER_2014_",t=V):this._magicType[U]&&(this.option.series[n].stack=null,t=U),this._featureOption[t+"Chart"]&&l.merge(this.option.series[n],this._featureOption[t+"Chart"]||{},!0);return this.option},_defaultMagic:function(e,t){if(this._magicType[e]||this._magicType[t])for(var i=0,n=this.option.series.length;n>i;i++){var a=this.option.series[i].type;(a==e||a==t)&&(this.option.series[i].type=this._magicType[e]?e:t,this.option.series[i].itemStyle=l.clone(this.option.series[i].__itemStyle),a=this.option.series[i].type,this._featureOption[a+"Chart"]&&l.merge(this.option.series[i],this._featureOption[a+"Chart"]||{},!0))}},silence:function(e){this._isSilence=e},resize:function(){this._resetMark(),this.clear(),this.option&&this.option.toolbox&&this.option.toolbox.show&&this._buildShape(),this._dataView&&this._dataView.resize()},hideDataView:function(){this._dataView&&this._dataView.hide()},clear:function(e){this.zr&&(this.zr.delShape(this.shapeList),this.shapeList=[],e||(this.zr.delShape(this._markShapeList),this._markShapeList=[]))},onbeforDispose:function(){this._dataView&&(this._dataView.dispose(),this._dataView=null),this._markShapeList=null},refresh:function(e){e&&(this._resetMark(),this._resetZoom(),e.toolbox=this.reformOption(e.toolbox),this.option=e,this.clear(!0),e.toolbox.show&&this._buildShape(),this.hideDataView())}},l.inherits(t,i),e("../component").define("toolbox",t),t}),i("echarts/component",[],function(){var e={},t={};return e.define=function(i,n){return t[i]=n,e},e.get=function(e){return t[e]},e}),i("echarts/component/title",["require","./base","zrender/shape/Text","zrender/shape/Rectangle","../config","zrender/tool/util","zrender/tool/area","zrender/tool/color","../component"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Rectangle"),o=e("../config");o.title={zlevel:0,z:6,show:!0,text:"",subtext:"",x:"left",y:"top",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:5,textStyle:{fontSize:18,fontWeight:"bolder",color:"#333"},subtextStyle:{color:"#aaa"}};var r=e("zrender/tool/util"),s=e("zrender/tool/area"),l=e("zrender/tool/color");return t.prototype={type:o.COMPONENT_TYPE_TITLE,_buildShape:function(){if(this.titleOption.show){this._itemGroupLocation=this._getItemGroupLocation(),this._buildBackground(),this._buildItem();for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e])}},_buildItem:function(){var e=this.titleOption.text,t=this.titleOption.link,i=this.titleOption.target,a=this.titleOption.subtext,o=this.titleOption.sublink,r=this.titleOption.subtarget,s=this.getFont(this.titleOption.textStyle),h=this.getFont(this.titleOption.subtextStyle),m=this._itemGroupLocation.x,V=this._itemGroupLocation.y,U=this._itemGroupLocation.width,d=this._itemGroupLocation.height,p={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{y:V,color:this.titleOption.textStyle.color,text:e,textFont:s,textBaseline:"top"},highlightStyle:{color:l.lift(this.titleOption.textStyle.color,1),brushType:"fill"},hoverable:!1};t&&(p.hoverable=!0,p.clickable=!0,p.onclick=function(){i&&"self"==i?window.location=t:window.open(t)});var c={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{y:V+d,color:this.titleOption.subtextStyle.color,text:a,textFont:h,textBaseline:"bottom"},highlightStyle:{color:l.lift(this.titleOption.subtextStyle.color,1),brushType:"fill"},hoverable:!1};switch(o&&(c.hoverable=!0,c.clickable=!0,c.onclick=function(){r&&"self"==r?window.location=o:window.open(o)}),this.titleOption.x){case"center":p.style.x=c.style.x=m+U/2,p.style.textAlign=c.style.textAlign="center";break;case"left":p.style.x=c.style.x=m,p.style.textAlign=c.style.textAlign="left";break;case"right":p.style.x=c.style.x=m+U,p.style.textAlign=c.style.textAlign="right";break;default:m=this.titleOption.x-0,m=isNaN(m)?0:m,p.style.x=c.style.x=m}this.titleOption.textAlign&&(p.style.textAlign=c.style.textAlign=this.titleOption.textAlign),this.shapeList.push(new n(p)),""!==a&&this.shapeList.push(new n(c))},_buildBackground:function(){var e=this.reformCssArray(this.titleOption.padding);this.shapeList.push(new a({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._itemGroupLocation.x-e[3],y:this._itemGroupLocation.y-e[0],width:this._itemGroupLocation.width+e[3]+e[1],height:this._itemGroupLocation.height+e[0]+e[2],brushType:0===this.titleOption.borderWidth?"fill":"both",color:this.titleOption.backgroundColor,strokeColor:this.titleOption.borderColor,lineWidth:this.titleOption.borderWidth}}))},_getItemGroupLocation:function(){var e,t=this.reformCssArray(this.titleOption.padding),i=this.titleOption.text,n=this.titleOption.subtext,a=this.getFont(this.titleOption.textStyle),o=this.getFont(this.titleOption.subtextStyle),r=Math.max(s.getTextWidth(i,a),s.getTextWidth(n,o)),l=s.getTextHeight(i,a)+(""===n?0:this.titleOption.itemGap+s.getTextHeight(n,o)),h=this.zr.getWidth();switch(this.titleOption.x){case"center":e=Math.floor((h-r)/2);break;case"left":e=t[3]+this.titleOption.borderWidth;break;case"right":e=h-r-t[1]-this.titleOption.borderWidth;break;default:e=this.titleOption.x-0,e=isNaN(e)?0:e}var m,V=this.zr.getHeight();switch(this.titleOption.y){case"top":m=t[0]+this.titleOption.borderWidth;break;case"bottom":m=V-l-t[2]-this.titleOption.borderWidth;break;case"center":m=Math.floor((V-l)/2);break;default:m=this.titleOption.y-0,m=isNaN(m)?0:m}return{x:e,y:m,width:r,height:l}},refresh:function(e){e&&(this.option=e,this.option.title=this.reformOption(this.option.title),this.titleOption=this.option.title,this.titleOption.textStyle=this.getTextStyle(this.titleOption.textStyle),this.titleOption.subtextStyle=this.getTextStyle(this.titleOption.subtextStyle)),this.clear(),this._buildShape()}},r.inherits(t,i),e("../component").define("title",t),t}),i("echarts/component/tooltip",["require","./base","../util/shape/Cross","zrender/shape/Line","zrender/shape/Rectangle","../config","../util/ecData","zrender/config","zrender/tool/event","zrender/tool/area","zrender/tool/color","zrender/tool/util","zrender/shape/Base","../component"],function(e){function t(e,t,o,r,s){i.call(this,e,t,o,r,s),this.dom=s.dom;var l=this;l._onmousemove=function(e){return l.__onmousemove(e)},l._onglobalout=function(e){return l.__onglobalout(e)},this.zr.on(h.EVENT.MOUSEMOVE,l._onmousemove),this.zr.on(h.EVENT.GLOBALOUT,l._onglobalout),l._hide=function(e){return l.__hide(e)},l._tryShow=function(e){return l.__tryShow(e)},l._refixed=function(e){return l.__refixed(e)},l._setContent=function(e,t){return l.__setContent(e,t)},this._tDom=this._tDom||document.createElement("div"),this._tDom.onselectstart=function(){return!1},this._tDom.onmouseover=function(){l._mousein=!0},this._tDom.onmouseout=function(){l._mousein=!1},this._tDom.className="echarts-tooltip",this._tDom.style.position="absolute",this.hasAppend=!1,this._axisLineShape&&this.zr.delShape(this._axisLineShape.id),this._axisLineShape=new a({zlevel:this.getZlevelBase(),z:this.getZBase(),invisible:!0,hoverable:!1}),this.shapeList.push(this._axisLineShape),this.zr.addShape(this._axisLineShape),this._axisShadowShape&&this.zr.delShape(this._axisShadowShape.id),this._axisShadowShape=new a({zlevel:this.getZlevelBase(),z:1,invisible:!0,hoverable:!1}),this.shapeList.push(this._axisShadowShape),this.zr.addShape(this._axisShadowShape),this._axisCrossShape&&this.zr.delShape(this._axisCrossShape.id),this._axisCrossShape=new n({zlevel:this.getZlevelBase(),z:this.getZBase(),invisible:!0,hoverable:!1}),this.shapeList.push(this._axisCrossShape),this.zr.addShape(this._axisCrossShape),this.showing=!1,this.refresh(r)}var i=e("./base"),n=e("../util/shape/Cross"),a=e("zrender/shape/Line"),o=e("zrender/shape/Rectangle"),r=new o({}),s=e("../config");s.tooltip={zlevel:1,z:8,show:!0,showContent:!0,trigger:"item",islandFormatter:"{a}
{b} : {c}",showDelay:20,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"rgba(0,0,0,0.7)",borderColor:"#333",borderRadius:4,borderWidth:0,padding:5,axisPointer:{type:"line",lineStyle:{color:"#48b",width:2,type:"solid"},crossStyle:{color:"#1e90ff",width:1,type:"dashed"},shadowStyle:{color:"rgba(150,150,150,0.3)",width:"auto",type:"default"}},textStyle:{color:"#fff"}};var l=e("../util/ecData"),h=e("zrender/config"),m=e("zrender/tool/event"),V=e("zrender/tool/area"),U=e("zrender/tool/color"),d=e("zrender/tool/util"),p=e("zrender/shape/Base");return t.prototype={type:s.COMPONENT_TYPE_TOOLTIP,_gCssText:"position:absolute;display:block;border-style:solid;white-space:nowrap;",_style:function(e){if(!e)return"";var t=[];if(e.transitionDuration){var i="left "+e.transitionDuration+"s,top "+e.transitionDuration+"s";t.push("transition:"+i),t.push("-moz-transition:"+i),t.push("-webkit-transition:"+i),t.push("-o-transition:"+i)}e.backgroundColor&&(t.push("background-Color:"+U.toHex(e.backgroundColor)),t.push("filter:alpha(opacity=70)"),t.push("background-Color:"+e.backgroundColor)),null!=e.borderWidth&&t.push("border-width:"+e.borderWidth+"px"),null!=e.borderColor&&t.push("border-color:"+e.borderColor),null!=e.borderRadius&&(t.push("border-radius:"+e.borderRadius+"px"),t.push("-moz-border-radius:"+e.borderRadius+"px"),t.push("-webkit-border-radius:"+e.borderRadius+"px"),t.push("-o-border-radius:"+e.borderRadius+"px"));var n=e.textStyle;n&&(n.color&&t.push("color:"+n.color),n.decoration&&t.push("text-decoration:"+n.decoration),n.align&&t.push("text-align:"+n.align),n.fontFamily&&t.push("font-family:"+n.fontFamily),n.fontSize&&t.push("font-size:"+n.fontSize+"px"),n.fontSize&&t.push("line-height:"+Math.round(3*n.fontSize/2)+"px"),n.fontStyle&&t.push("font-style:"+n.fontStyle),n.fontWeight&&t.push("font-weight:"+n.fontWeight));var a=e.padding;return null!=a&&(a=this.reformCssArray(a),t.push("padding:"+a[0]+"px "+a[1]+"px "+a[2]+"px "+a[3]+"px")),t=t.join(";")+";"},__hide:function(){this._lastDataIndex=-1,this._lastSeriesIndex=-1,this._lastItemTriggerId=-1,this._tDom&&(this._tDom.style.display="none");var e=!1;this._axisLineShape.invisible||(this._axisLineShape.invisible=!0, -this.zr.modShape(this._axisLineShape.id),e=!0),this._axisShadowShape.invisible||(this._axisShadowShape.invisible=!0,this.zr.modShape(this._axisShadowShape.id),e=!0),this._axisCrossShape.invisible||(this._axisCrossShape.invisible=!0,this.zr.modShape(this._axisCrossShape.id),e=!0),this._lastTipShape&&this._lastTipShape.tipShape.length>0&&(this.zr.delShape(this._lastTipShape.tipShape),this._lastTipShape=!1,this.shapeList.length=2),e&&this.zr.refreshNextFrame(),this.showing=!1},_show:function(e,t,i,n){var a=this._tDom.offsetHeight,o=this._tDom.offsetWidth;e&&("function"==typeof e&&(e=e([t,i])),e instanceof Array&&(t=e[0],i=e[1])),t+o>this._zrWidth&&(t-=o+40),i+a>this._zrHeight&&(i-=a-20),20>i&&(i=0),this._tDom.style.cssText=this._gCssText+this._defaultCssText+(n?n:"")+"left:"+t+"px;top:"+i+"px;",(10>a||10>o)&&setTimeout(this._refixed,20),this.showing=!0},__refixed:function(){if(this._tDom){var e="",t=this._tDom.offsetHeight,i=this._tDom.offsetWidth;this._tDom.offsetLeft+i>this._zrWidth&&(e+="left:"+(this._zrWidth-i-20)+"px;"),this._tDom.offsetTop+t>this._zrHeight&&(e+="top:"+(this._zrHeight-t-10)+"px;"),""!==e&&(this._tDom.style.cssText+=e)}},__tryShow:function(){var e,t;if(this._curTarget){if("island"===this._curTarget._type&&this.option.tooltip.show)return void this._showItemTrigger();var i=l.get(this._curTarget,"series"),n=l.get(this._curTarget,"data");e=this.deepQuery([n,i,this.option],"tooltip.show"),null!=i&&null!=n&&e?(t=this.deepQuery([n,i,this.option],"tooltip.trigger"),"axis"===t?this._showAxisTrigger(i.xAxisIndex,i.yAxisIndex,l.get(this._curTarget,"dataIndex")):this._showItemTrigger()):(clearTimeout(this._hidingTicket),clearTimeout(this._showingTicket),this._hidingTicket=setTimeout(this._hide,this._hideDelay))}else this._findPolarTrigger()||this._findAxisTrigger()},_findAxisTrigger:function(){if(!this.component.xAxis||!this.component.yAxis)return void(this._hidingTicket=setTimeout(this._hide,this._hideDelay));for(var e,t,i=this.option.series,n=0,a=i.length;a>n;n++)if("axis"===this.deepQuery([i[n],this.option],"tooltip.trigger"))return e=i[n].xAxisIndex||0,t=i[n].yAxisIndex||0,this.component.xAxis.getAxis(e)&&this.component.xAxis.getAxis(e).type===s.COMPONENT_TYPE_AXIS_CATEGORY?void this._showAxisTrigger(e,t,this._getNearestDataIndex("x",this.component.xAxis.getAxis(e))):this.component.yAxis.getAxis(t)&&this.component.yAxis.getAxis(t).type===s.COMPONENT_TYPE_AXIS_CATEGORY?void this._showAxisTrigger(e,t,this._getNearestDataIndex("y",this.component.yAxis.getAxis(t))):void this._showAxisTrigger(e,t,-1);"cross"===this.option.tooltip.axisPointer.type&&this._showAxisTrigger(-1,-1,-1)},_findPolarTrigger:function(){if(!this.component.polar)return!1;var e,t=m.getX(this._event),i=m.getY(this._event),n=this.component.polar.getNearestIndex([t,i]);return n?(e=n.valueIndex,n=n.polarIndex):n=-1,-1!=n?this._showPolarTrigger(n,e):!1},_getNearestDataIndex:function(e,t){var i=-1,n=m.getX(this._event),a=m.getY(this._event);if("x"===e){for(var o,r,s=this.component.grid.getXend(),l=t.getCoordByIndex(i);s>l&&(r=l,n>=l);)o=l,l=t.getCoordByIndex(++i);return 0>=i?i=0:r-n>=n-o?i-=1:null==t.getNameByIndex(i)&&(i-=1),i}for(var h,V,U=this.component.grid.getY(),l=t.getCoordByIndex(i);l>U&&(h=l,l>=a);)V=l,l=t.getCoordByIndex(++i);return 0>=i?i=0:a-h>=V-a?i-=1:null==t.getNameByIndex(i)&&(i-=1),i},_showAxisTrigger:function(e,t,i){if(!this._event.connectTrigger&&this.messageCenter.dispatch(s.EVENT.TOOLTIP_IN_GRID,this._event,null,this.myChart),null==this.component.xAxis||null==this.component.yAxis||null==e||null==t)return clearTimeout(this._hidingTicket),clearTimeout(this._showingTicket),void(this._hidingTicket=setTimeout(this._hide,this._hideDelay));var n,a,o,r,l=this.option.series,h=[],V=[],U="";if("axis"===this.option.tooltip.trigger){if(!this.option.tooltip.show)return;a=this.option.tooltip.formatter,o=this.option.tooltip.position}var d,p,c=-1!=e&&this.component.xAxis.getAxis(e).type===s.COMPONENT_TYPE_AXIS_CATEGORY?"xAxis":-1!=t&&this.component.yAxis.getAxis(t).type===s.COMPONENT_TYPE_AXIS_CATEGORY?"yAxis":!1;if(c){var u="xAxis"==c?e:t;n=this.component[c].getAxis(u);for(var y=0,g=l.length;g>y;y++)this._isSelected(l[y].name)&&l[y][c+"Index"]===u&&"axis"===this.deepQuery([l[y],this.option],"tooltip.trigger")&&(r=this.query(l[y],"tooltip.showContent")||r,a=this.query(l[y],"tooltip.formatter")||a,o=this.query(l[y],"tooltip.position")||o,U+=this._style(this.query(l[y],"tooltip")),null!=l[y].stack&&"xAxis"==c?(h.unshift(l[y]),V.unshift(y)):(h.push(l[y]),V.push(y)));this.messageCenter.dispatch(s.EVENT.TOOLTIP_HOVER,this._event,{seriesIndex:V,dataIndex:i},this.myChart);var b;"xAxis"==c?(d=this.subPixelOptimize(n.getCoordByIndex(i),this._axisLineWidth),p=m.getY(this._event),b=[d,this.component.grid.getY(),d,this.component.grid.getYend()]):(d=m.getX(this._event),p=this.subPixelOptimize(n.getCoordByIndex(i),this._axisLineWidth),b=[this.component.grid.getX(),p,this.component.grid.getXend(),p]),this._styleAxisPointer(h,b[0],b[1],b[2],b[3],n.getGap(),d,p)}else d=m.getX(this._event),p=m.getY(this._event),this._styleAxisPointer(l,this.component.grid.getX(),p,this.component.grid.getXend(),p,0,d,p),i>=0?this._showItemTrigger(!0):(clearTimeout(this._hidingTicket),clearTimeout(this._showingTicket),this._tDom.style.display="none");if(h.length>0){if(this._lastItemTriggerId=-1,this._lastDataIndex!=i||this._lastSeriesIndex!=V[0]){this._lastDataIndex=i,this._lastSeriesIndex=V[0];var f,k;if("function"==typeof a){for(var x=[],y=0,g=h.length;g>y;y++)f=h[y].data[i],k=this.getDataFromOption(f,"-"),x.push({seriesIndex:V[y],seriesName:h[y].name||"",series:h[y],dataIndex:i,data:f,name:n.getNameByIndex(i),value:k,0:h[y].name||"",1:n.getNameByIndex(i),2:k,3:f});this._curTicket="axis:"+i,this._tDom.innerHTML=a.call(this.myChart,x,this._curTicket,this._setContent)}else if("string"==typeof a){this._curTicket=0/0,a=a.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}");for(var y=0,g=h.length;g>y;y++)a=a.replace("{a"+y+"}",this._encodeHTML(h[y].name||"")),a=a.replace("{b"+y+"}",this._encodeHTML(n.getNameByIndex(i))),f=h[y].data[i],f=this.getDataFromOption(f,"-"),a=a.replace("{c"+y+"}",f instanceof Array?f:this.numAddCommas(f));this._tDom.innerHTML=a}else{this._curTicket=0/0,a=this._encodeHTML(n.getNameByIndex(i));for(var y=0,g=h.length;g>y;y++)a+="
"+this._encodeHTML(h[y].name||"")+" : ",f=h[y].data[i],f=this.getDataFromOption(f,"-"),a+=f instanceof Array?f:this.numAddCommas(f);this._tDom.innerHTML=a}}if(r===!1||!this.option.tooltip.showContent)return;this.hasAppend||(this._tDom.style.left=this._zrWidth/2+"px",this._tDom.style.top=this._zrHeight/2+"px",this.dom.firstChild.appendChild(this._tDom),this.hasAppend=!0),this._show(o,d+10,p+10,U)}},_showPolarTrigger:function(e,t){if(null==this.component.polar||null==e||null==t||0>t)return!1;var i,n,a,o=this.option.series,r=[],s=[],l="";if("axis"===this.option.tooltip.trigger){if(!this.option.tooltip.show)return!1;i=this.option.tooltip.formatter,n=this.option.tooltip.position}for(var h=this.option.polar[e].indicator[t].text,V=0,U=o.length;U>V;V++)this._isSelected(o[V].name)&&o[V].polarIndex===e&&"axis"===this.deepQuery([o[V],this.option],"tooltip.trigger")&&(a=this.query(o[V],"tooltip.showContent")||a,i=this.query(o[V],"tooltip.formatter")||i,n=this.query(o[V],"tooltip.position")||n,l+=this._style(this.query(o[V],"tooltip")),r.push(o[V]),s.push(V));if(r.length>0){for(var d,p,c,u=[],V=0,U=r.length;U>V;V++){d=r[V].data;for(var y=0,g=d.length;g>y;y++)p=d[y],this._isSelected(p.name)&&(p=null!=p?p:{name:"",value:{dataIndex:"-"}},c=this.getDataFromOption(p.value[t]),u.push({seriesIndex:s[V],seriesName:r[V].name||"",series:r[V],dataIndex:t,data:p,name:p.name,indicator:h,value:c,0:r[V].name||"",1:p.name,2:c,3:h}))}if(u.length<=0)return;if(this._lastItemTriggerId=-1,this._lastDataIndex!=t||this._lastSeriesIndex!=s[0])if(this._lastDataIndex=t,this._lastSeriesIndex=s[0],"function"==typeof i)this._curTicket="axis:"+t,this._tDom.innerHTML=i.call(this.myChart,u,this._curTicket,this._setContent);else if("string"==typeof i){i=i.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}").replace("{d}","{d0}");for(var V=0,U=u.length;U>V;V++)i=i.replace("{a"+V+"}",this._encodeHTML(u[V].seriesName)),i=i.replace("{b"+V+"}",this._encodeHTML(u[V].name)),i=i.replace("{c"+V+"}",this.numAddCommas(u[V].value)),i=i.replace("{d"+V+"}",this._encodeHTML(u[V].indicator));this._tDom.innerHTML=i}else{i=this._encodeHTML(u[0].name)+"
"+this._encodeHTML(u[0].indicator)+" : "+this.numAddCommas(u[0].value);for(var V=1,U=u.length;U>V;V++)i+="
"+this._encodeHTML(u[V].name)+"
",i+=this._encodeHTML(u[V].indicator)+" : "+this.numAddCommas(u[V].value);this._tDom.innerHTML=i}if(a===!1||!this.option.tooltip.showContent)return;return this.hasAppend||(this._tDom.style.left=this._zrWidth/2+"px",this._tDom.style.top=this._zrHeight/2+"px",this.dom.firstChild.appendChild(this._tDom),this.hasAppend=!0),this._show(n,m.getX(this._event),m.getY(this._event),l),!0}},_showItemTrigger:function(e){if(this._curTarget){var t,i,n,a=l.get(this._curTarget,"series"),o=l.get(this._curTarget,"seriesIndex"),r=l.get(this._curTarget,"data"),h=l.get(this._curTarget,"dataIndex"),V=l.get(this._curTarget,"name"),U=l.get(this._curTarget,"value"),d=l.get(this._curTarget,"special"),p=l.get(this._curTarget,"special2"),c=[r,a,this.option],u="";if("island"!=this._curTarget._type){var y=e?"axis":"item";this.option.tooltip.trigger===y&&(t=this.option.tooltip.formatter,i=this.option.tooltip.position),this.query(a,"tooltip.trigger")===y&&(n=this.query(a,"tooltip.showContent")||n,t=this.query(a,"tooltip.formatter")||t,i=this.query(a,"tooltip.position")||i,u+=this._style(this.query(a,"tooltip"))),n=this.query(r,"tooltip.showContent")||n,t=this.query(r,"tooltip.formatter")||t,i=this.query(r,"tooltip.position")||i,u+=this._style(this.query(r,"tooltip"))}else this._lastItemTriggerId=0/0,n=this.deepQuery(c,"tooltip.showContent"),t=this.deepQuery(c,"tooltip.islandFormatter"),i=this.deepQuery(c,"tooltip.islandPosition");this._lastDataIndex=-1,this._lastSeriesIndex=-1,this._lastItemTriggerId!==this._curTarget.id&&(this._lastItemTriggerId=this._curTarget.id,"function"==typeof t?(this._curTicket=(a.name||"")+":"+h,this._tDom.innerHTML=t.call(this.myChart,{seriesIndex:o,seriesName:a.name||"",series:a,dataIndex:h,data:r,name:V,value:U,percent:d,indicator:d,value2:p,indicator2:p,0:a.name||"",1:V,2:U,3:d,4:p,5:r,6:o,7:h},this._curTicket,this._setContent)):"string"==typeof t?(this._curTicket=0/0,t=t.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}"),t=t.replace("{a0}",this._encodeHTML(a.name||"")).replace("{b0}",this._encodeHTML(V)).replace("{c0}",U instanceof Array?U:this.numAddCommas(U)),t=t.replace("{d}","{d0}").replace("{d0}",d||""),t=t.replace("{e}","{e0}").replace("{e0}",l.get(this._curTarget,"special2")||""),this._tDom.innerHTML=t):(this._curTicket=0/0,this._tDom.innerHTML=a.type===s.CHART_TYPE_RADAR&&d?this._itemFormatter.radar.call(this,a,V,U,d):a.type===s.CHART_TYPE_EVENTRIVER?this._itemFormatter.eventRiver.call(this,a,V,U,r):""+(null!=a.name?this._encodeHTML(a.name)+"
":"")+(""===V?"":this._encodeHTML(V)+" : ")+(U instanceof Array?U:this.numAddCommas(U))));var g=m.getX(this._event),b=m.getY(this._event);this.deepQuery(c,"tooltip.axisPointer.show")&&this.component.grid?this._styleAxisPointer([a],this.component.grid.getX(),b,this.component.grid.getXend(),b,0,g,b):this._hide(),n!==!1&&this.option.tooltip.showContent&&(this.hasAppend||(this._tDom.style.left=this._zrWidth/2+"px",this._tDom.style.top=this._zrHeight/2+"px",this.dom.firstChild.appendChild(this._tDom),this.hasAppend=!0),this._show(i,g+20,b-20,u))}},_itemFormatter:{radar:function(e,t,i,n){var a="";a+=this._encodeHTML(""===t?e.name||"":t),a+=""===a?"":"
";for(var o=0;o";return a},chord:function(e,t,i,n,a){if(null==a)return this._encodeHTML(t)+" ("+this.numAddCommas(i)+")";var o=this._encodeHTML(t),r=this._encodeHTML(n);return""+(null!=e.name?this._encodeHTML(e.name)+"
":"")+o+" -> "+r+" ("+this.numAddCommas(i)+")
"+r+" -> "+o+" ("+this.numAddCommas(a)+")"},eventRiver:function(e,t,i,n){var a="";a+=this._encodeHTML(""===e.name?"":e.name+" : "),a+=this._encodeHTML(t),a+=""===a?"":"
",n=n.evolution;for(var o=0,r=n.length;r>o;o++)a+='
',n[o].detail&&(n[o].detail.img&&(a+=''),a+='
'+n[o].time+"
",a+='',a+=n[o].detail.text+"
",a+="
");return a}},_styleAxisPointer:function(e,t,i,n,a,o,r,s){if(e.length>0){var l,h,m=this.option.tooltip.axisPointer,V=m.type,U={line:{},cross:{},shadow:{}};for(var d in U)U[d].color=m[d+"Style"].color,U[d].width=m[d+"Style"].width,U[d].type=m[d+"Style"].type;for(var p=0,c=e.length;c>p;p++)l=e[p],h=this.query(l,"tooltip.axisPointer.type"),V=h||V,h&&(U[h].color=this.query(l,"tooltip.axisPointer."+h+"Style.color")||U[h].color,U[h].width=this.query(l,"tooltip.axisPointer."+h+"Style.width")||U[h].width,U[h].type=this.query(l,"tooltip.axisPointer."+h+"Style.type")||U[h].type);if("line"===V){var u=U.line.width,y=t==n;this._axisLineShape.style={xStart:y?this.subPixelOptimize(t,u):t,yStart:y?i:this.subPixelOptimize(i,u),xEnd:y?this.subPixelOptimize(n,u):n,yEnd:y?a:this.subPixelOptimize(a,u),strokeColor:U.line.color,lineWidth:u,lineType:U.line.type},this._axisLineShape.invisible=!1,this.zr.modShape(this._axisLineShape.id)}else if("cross"===V){var g=U.cross.width;this._axisCrossShape.style={brushType:"stroke",rect:this.component.grid.getArea(),x:this.subPixelOptimize(r,g),y:this.subPixelOptimize(s,g),text:("( "+this.component.xAxis.getAxis(0).getValueFromCoord(r)+" , "+this.component.yAxis.getAxis(0).getValueFromCoord(s)+" )").replace(" , "," ").replace(" , "," "),textPosition:"specific",strokeColor:U.cross.color,lineWidth:g,lineType:U.cross.type},this.component.grid.getXend()-r>100?(this._axisCrossShape.style.textAlign="left",this._axisCrossShape.style.textX=r+10):(this._axisCrossShape.style.textAlign="right",this._axisCrossShape.style.textX=r-10),s-this.component.grid.getY()>50?(this._axisCrossShape.style.textBaseline="bottom",this._axisCrossShape.style.textY=s-10):(this._axisCrossShape.style.textBaseline="top",this._axisCrossShape.style.textY=s+10),this._axisCrossShape.invisible=!1,this.zr.modShape(this._axisCrossShape.id)}else"shadow"===V&&((null==U.shadow.width||"auto"===U.shadow.width||isNaN(U.shadow.width))&&(U.shadow.width=o),t===n?Math.abs(this.component.grid.getX()-t)<2?(U.shadow.width/=2,t=n+=U.shadow.width/2):Math.abs(this.component.grid.getXend()-t)<2&&(U.shadow.width/=2,t=n-=U.shadow.width/2):i===a&&(Math.abs(this.component.grid.getY()-i)<2?(U.shadow.width/=2,i=a+=U.shadow.width/2):Math.abs(this.component.grid.getYend()-i)<2&&(U.shadow.width/=2,i=a-=U.shadow.width/2)),this._axisShadowShape.style={xStart:t,yStart:i,xEnd:n,yEnd:a,strokeColor:U.shadow.color,lineWidth:U.shadow.width},this._axisShadowShape.invisible=!1,this.zr.modShape(this._axisShadowShape.id));this.zr.refreshNextFrame()}},__onmousemove:function(e){if(clearTimeout(this._hidingTicket),clearTimeout(this._showingTicket),!this._mousein||!this._enterable){var t=e.target,i=m.getX(e.event),n=m.getY(e.event);if(t){this._curTarget=t,this._event=e.event,this._event.zrenderX=i,this._event.zrenderY=n;var a;if(this._needAxisTrigger&&this.component.polar&&-1!=(a=this.component.polar.isInside([i,n])))for(var o=this.option.series,l=0,h=o.length;h>l;l++)if(o[l].polarIndex===a&&"axis"===this.deepQuery([o[l],this.option],"tooltip.trigger")){this._curTarget=null;break}this._showingTicket=setTimeout(this._tryShow,this._showDelay)}else this._curTarget=!1,this._event=e.event,this._event.zrenderX=i,this._event.zrenderY=n,this._needAxisTrigger&&this.component.grid&&V.isInside(r,this.component.grid.getArea(),i,n)?this._showingTicket=setTimeout(this._tryShow,this._showDelay):this._needAxisTrigger&&this.component.polar&&-1!=this.component.polar.isInside([i,n])?this._showingTicket=setTimeout(this._tryShow,this._showDelay):(!this._event.connectTrigger&&this.messageCenter.dispatch(s.EVENT.TOOLTIP_OUT_GRID,this._event,null,this.myChart),this._hidingTicket=setTimeout(this._hide,this._hideDelay))}},__onglobalout:function(){clearTimeout(this._hidingTicket),clearTimeout(this._showingTicket),this._hidingTicket=setTimeout(this._hide,this._hideDelay)},__setContent:function(e,t){this._tDom&&(e===this._curTicket&&(this._tDom.innerHTML=t),setTimeout(this._refixed,20))},ontooltipHover:function(e,t){if(!this._lastTipShape||this._lastTipShape&&this._lastTipShape.dataIndex!=e.dataIndex){this._lastTipShape&&this._lastTipShape.tipShape.length>0&&(this.zr.delShape(this._lastTipShape.tipShape),this.shapeList.length=2);for(var i=0,n=t.length;n>i;i++)t[i].zlevel=this.getZlevelBase(),t[i].z=this.getZBase(),t[i].style=p.prototype.getHighlightStyle(t[i].style,t[i].highlightStyle),t[i].draggable=!1,t[i].hoverable=!1,t[i].clickable=!1,t[i].ondragend=null,t[i].ondragover=null,t[i].ondrop=null,this.shapeList.push(t[i]),this.zr.addShape(t[i]);this._lastTipShape={dataIndex:e.dataIndex,tipShape:t}}},ondragend:function(){this._hide()},onlegendSelected:function(e){this._selectedMap=e.selected},_setSelectedMap:function(){this._selectedMap=this.component.legend?d.clone(this.component.legend.getSelectedMap()):{}},_isSelected:function(e){return null!=this._selectedMap[e]?this._selectedMap[e]:!0},showTip:function(e){if(e){var t,i=this.option.series;if(null!=e.seriesIndex)t=e.seriesIndex;else for(var n=e.seriesName,a=0,o=i.length;o>a;a++)if(i[a].name===n){t=a;break}var r=i[t];if(null!=r){var m=this.myChart.chart[r.type],V="axis"===this.deepQuery([r,this.option],"tooltip.trigger");if(m)if(V){var U=e.dataIndex;switch(m.type){case s.CHART_TYPE_LINE:case s.CHART_TYPE_BAR:case s.CHART_TYPE_K:case s.CHART_TYPE_RADAR:if(null==this.component.polar||r.data[0].value.length<=U)return;var d=r.polarIndex||0,p=this.component.polar.getVector(d,U,"max");this._event={zrenderX:p[0],zrenderY:p[1]},this._showPolarTrigger(d,U)}}else{var c,u,y=m.shapeList;switch(m.type){case s.CHART_TYPE_LINE:case s.CHART_TYPE_BAR:case s.CHART_TYPE_K:case s.CHART_TYPE_TREEMAP:case s.CHART_TYPE_SCATTER:for(var U=e.dataIndex,a=0,o=y.length;o>a;a++)if(null==y[a]._mark&&l.get(y[a],"seriesIndex")==t&&l.get(y[a],"dataIndex")==U){this._curTarget=y[a],c=y[a].style.x,u=m.type!=s.CHART_TYPE_K?y[a].style.y:y[a].style.y[0];break}break;case s.CHART_TYPE_RADAR:for(var U=e.dataIndex,a=0,o=y.length;o>a;a++)if("polygon"===y[a].type&&l.get(y[a],"seriesIndex")==t&&l.get(y[a],"dataIndex")==U){this._curTarget=y[a];var p=this.component.polar.getCenter(r.polarIndex||0);c=p[0],u=p[1];break}break;case s.CHART_TYPE_PIE:for(var g=e.name,a=0,o=y.length;o>a;a++)if("sector"===y[a].type&&l.get(y[a],"seriesIndex")==t&&l.get(y[a],"name")==g){this._curTarget=y[a];var b=this._curTarget.style,f=(b.startAngle+b.endAngle)/2*Math.PI/180;c=this._curTarget.style.x+Math.cos(f)*b.r/1.5,u=this._curTarget.style.y-Math.sin(f)*b.r/1.5;break}break;case s.CHART_TYPE_MAP:for(var g=e.name,k=r.mapType,a=0,o=y.length;o>a;a++)if("text"===y[a].type&&y[a]._mapType===k&&y[a].style._name===g){this._curTarget=y[a],c=this._curTarget.style.x+this._curTarget.position[0],u=this._curTarget.style.y+this._curTarget.position[1];break}break;case s.CHART_TYPE_CHORD:for(var g=e.name,a=0,o=y.length;o>a;a++)if("sector"===y[a].type&&l.get(y[a],"name")==g){this._curTarget=y[a];var b=this._curTarget.style,f=(b.startAngle+b.endAngle)/2*Math.PI/180;return c=this._curTarget.style.x+Math.cos(f)*(b.r-2),u=this._curTarget.style.y-Math.sin(f)*(b.r-2),void this.zr.trigger(h.EVENT.MOUSEMOVE,{zrenderX:c,zrenderY:u})}break;case s.CHART_TYPE_FORCE:for(var g=e.name,a=0,o=y.length;o>a;a++)if("circle"===y[a].type&&l.get(y[a],"name")==g){this._curTarget=y[a],c=this._curTarget.position[0],u=this._curTarget.position[1];break}}null!=c&&null!=u&&(this._event={zrenderX:c,zrenderY:u},this.zr.addHoverShape(this._curTarget),this.zr.refreshHover(),this._showItemTrigger())}}}},hideTip:function(){this._hide()},refresh:function(e){if(this._zrHeight=this.zr.getHeight(),this._zrWidth=this.zr.getWidth(),this._lastTipShape&&this._lastTipShape.tipShape.length>0&&this.zr.delShape(this._lastTipShape.tipShape),this._lastTipShape=!1,this.shapeList.length=2,this._lastDataIndex=-1,this._lastSeriesIndex=-1,this._lastItemTriggerId=-1,e){this.option=e,this.option.tooltip=this.reformOption(this.option.tooltip),this.option.tooltip.textStyle=d.merge(this.option.tooltip.textStyle,this.ecTheme.textStyle),this._needAxisTrigger=!1,"axis"===this.option.tooltip.trigger&&(this._needAxisTrigger=!0);for(var t=this.option.series,i=0,n=t.length;n>i;i++)if("axis"===this.query(t[i],"tooltip.trigger")){this._needAxisTrigger=!0;break}this._showDelay=this.option.tooltip.showDelay,this._hideDelay=this.option.tooltip.hideDelay,this._defaultCssText=this._style(this.option.tooltip),this._setSelectedMap(),this._axisLineWidth=this.option.tooltip.axisPointer.lineStyle.width,this._enterable=this.option.tooltip.enterable,!this._enterable&&this._tDom.className.indexOf(h.elementClassName)<0&&(this._tDom.className+=" "+h.elementClassName)}if(this.showing){var a=this;setTimeout(function(){a.zr.trigger(h.EVENT.MOUSEMOVE,a.zr.handler._event)},50)}},onbeforDispose:function(){this._lastTipShape&&this._lastTipShape.tipShape.length>0&&this.zr.delShape(this._lastTipShape.tipShape),clearTimeout(this._hidingTicket),clearTimeout(this._showingTicket),this.zr.un(h.EVENT.MOUSEMOVE,this._onmousemove),this.zr.un(h.EVENT.GLOBALOUT,this._onglobalout),this.hasAppend&&this.dom.firstChild&&this.dom.firstChild.removeChild(this._tDom),this._tDom=null},_encodeHTML:function(e){return String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}},d.inherits(t,i),e("../component").define("tooltip",t),t}),i("echarts/component/legend",["require","./base","zrender/shape/Text","zrender/shape/Rectangle","zrender/shape/Sector","../util/shape/Icon","../util/shape/Candle","../config","zrender/tool/util","zrender/tool/area","../component"],function(e){function t(e,t,n,a,o){if(!this.query(a,"legend.data"))return void console.error("option.legend.data has not been defined.");i.call(this,e,t,n,a,o);var r=this;r._legendSelected=function(e){r.__legendSelected(e)},r._dispatchHoverLink=function(e){return r.__dispatchHoverLink(e)},this._colorIndex=0,this._colorMap={},this._selectedMap={},this._hasDataMap={},this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Rectangle"),o=e("zrender/shape/Sector"),r=e("../util/shape/Icon"),s=e("../util/shape/Candle"),l=e("../config");l.legend={zlevel:0,z:4,show:!0,orient:"horizontal",x:"center",y:"top",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,itemWidth:20,itemHeight:14,textStyle:{color:"#333"},selectedMode:!0};var h=e("zrender/tool/util"),m=e("zrender/tool/area");t.prototype={type:l.COMPONENT_TYPE_LEGEND,_buildShape:function(){if(this.legendOption.show){this._itemGroupLocation=this._getItemGroupLocation(),this._buildBackground(),this._buildItem();for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e])}},_buildItem:function(){var e,t,i,a,o,s,l,V,U=this.legendOption.data,d=U.length,p=this.legendOption.textStyle,c=this.zr.getWidth(),u=this.zr.getHeight(),y=this._itemGroupLocation.x,g=this._itemGroupLocation.y,b=this.legendOption.itemWidth,f=this.legendOption.itemHeight,k=this.legendOption.itemGap;"vertical"===this.legendOption.orient&&"right"===this.legendOption.x&&(y=this._itemGroupLocation.x+this._itemGroupLocation.width-b);for(var x=0;d>x;x++)o=h.merge(U[x].textStyle||{},p),s=this.getFont(o),e=this._getName(U[x]),l=this._getFormatterName(e),""!==e?(t=U[x].icon||this._getSomethingByName(e).type,V=this.getColor(e),"horizontal"===this.legendOption.orient?200>c-y&&b+5+m.getTextWidth(l,s)+(x===d-1||""===U[x+1]?0:k)>=c-y&&(y=this._itemGroupLocation.x,g+=f+k):200>u-g&&f+(x===d-1||""===U[x+1]?0:k)>=u-g&&("right"===this.legendOption.x?y-=this._itemGroupLocation.maxWidth+k:y+=this._itemGroupLocation.maxWidth+k,g=this._itemGroupLocation.y),i=this._getItemShapeByType(y,g,b,f,this._selectedMap[e]&&this._hasDataMap[e]?V:"#ccc",t,V),i._name=e,i=new r(i),a={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:y+b+5,y:g+f/2,color:this._selectedMap[e]?"auto"===o.color?V:o.color:"#ccc",text:l,textFont:s,textBaseline:"middle"},highlightStyle:{color:V,brushType:"fill"},hoverable:!!this.legendOption.selectedMode,clickable:!!this.legendOption.selectedMode},"vertical"===this.legendOption.orient&&"right"===this.legendOption.x&&(a.style.x-=b+10,a.style.textAlign="right"),a._name=e,a=new n(a),this.legendOption.selectedMode&&(i.onclick=a.onclick=this._legendSelected,i.onmouseover=a.onmouseover=this._dispatchHoverLink,i.hoverConnect=a.id,a.hoverConnect=i.id),this.shapeList.push(i),this.shapeList.push(a),"horizontal"===this.legendOption.orient?y+=b+5+m.getTextWidth(l,s)+k:g+=f+k):"horizontal"===this.legendOption.orient?(y=this._itemGroupLocation.x,g+=f+k):("right"===this.legendOption.x?y-=this._itemGroupLocation.maxWidth+k:y+=this._itemGroupLocation.maxWidth+k,g=this._itemGroupLocation.y);"horizontal"===this.legendOption.orient&&"center"===this.legendOption.x&&g!=this._itemGroupLocation.y&&this._mLineOptimize()},_getName:function(e){return"undefined"!=typeof e.name?e.name:e},_getFormatterName:function(e){var t,i=this.legendOption.formatter;return t="function"==typeof i?i.call(this.myChart,e):"string"==typeof i?i.replace("{name}",e):e},_getFormatterNameFromData:function(e){var t=this._getName(e);return this._getFormatterName(t)},_mLineOptimize:function(){for(var e=[],t=this._itemGroupLocation.x,i=2,n=this.shapeList.length;n>i;i++)this.shapeList[i].style.x===t?e.push((this._itemGroupLocation.width-(this.shapeList[i-1].style.x+m.getTextWidth(this.shapeList[i-1].style.text,this.shapeList[i-1].style.textFont)-t))/2):i===n-1&&e.push((this._itemGroupLocation.width-(this.shapeList[i].style.x+m.getTextWidth(this.shapeList[i].style.text,this.shapeList[i].style.textFont)-t))/2);for(var a=-1,i=1,n=this.shapeList.length;n>i;i++)this.shapeList[i].style.x===t&&a++,0!==e[a]&&(this.shapeList[i].style.x+=e[a])},_buildBackground:function(){var e=this.reformCssArray(this.legendOption.padding);this.shapeList.push(new a({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._itemGroupLocation.x-e[3],y:this._itemGroupLocation.y-e[0],width:this._itemGroupLocation.width+e[3]+e[1],height:this._itemGroupLocation.height+e[0]+e[2],brushType:0===this.legendOption.borderWidth?"fill":"both",color:this.legendOption.backgroundColor,strokeColor:this.legendOption.borderColor,lineWidth:this.legendOption.borderWidth}}))},_getItemGroupLocation:function(){var e=this.legendOption.data,t=e.length,i=this.legendOption.itemGap,n=this.legendOption.itemWidth+5,a=this.legendOption.itemHeight,o=this.legendOption.textStyle,r=this.getFont(o),s=0,l=0,V=this.reformCssArray(this.legendOption.padding),U=this.zr.getWidth()-V[1]-V[3],d=this.zr.getHeight()-V[0]-V[2],p=0,c=0;if("horizontal"===this.legendOption.orient){l=a;for(var u=0;t>u;u++)if(""!==this._getName(e[u])){var y=m.getTextWidth(this._getFormatterNameFromData(e[u]),e[u].textStyle?this.getFont(h.merge(e[u].textStyle||{},o)):r);p+n+y+i>U?(p-=i,s=Math.max(s,p),l+=a+i,p=0):(p+=n+y+i,s=Math.max(s,p-i))}else p-=i,s=Math.max(s,p),l+=a+i,p=0}else{for(var u=0;t>u;u++)c=Math.max(c,m.getTextWidth(this._getFormatterNameFromData(e[u]),e[u].textStyle?this.getFont(h.merge(e[u].textStyle||{},o)):r));c+=n,s=c;for(var u=0;t>u;u++)""!==this._getName(e[u])?p+a+i>d?(s+=c+i,p-=i,l=Math.max(l,p),p=0):(p+=a+i,l=Math.max(l,p-i)):(s+=c+i,p-=i,l=Math.max(l,p),p=0)}U=this.zr.getWidth(),d=this.zr.getHeight();var g;switch(this.legendOption.x){case"center":g=Math.floor((U-s)/2);break;case"left":g=V[3]+this.legendOption.borderWidth;break;case"right":g=U-s-V[1]-V[3]-2*this.legendOption.borderWidth;break;default:g=this.parsePercent(this.legendOption.x,U)}var b;switch(this.legendOption.y){case"top":b=V[0]+this.legendOption.borderWidth;break;case"bottom":b=d-l-V[0]-V[2]-2*this.legendOption.borderWidth;break;case"center":b=Math.floor((d-l)/2);break;default:b=this.parsePercent(this.legendOption.y,d)}return{x:g,y:b,width:s,height:l,maxWidth:c}},_getSomethingByName:function(e){for(var t,i=this.option.series,n=0,a=i.length;a>n;n++){if(i[n].name===e)return{type:i[n].type,series:i[n],seriesIndex:n,data:null,dataIndex:-1};if(i[n].type===l.CHART_TYPE_PIE||i[n].type===l.CHART_TYPE_RADAR||i[n].type===l.CHART_TYPE_CHORD||i[n].type===l.CHART_TYPE_FORCE||i[n].type===l.CHART_TYPE_FUNNEL||i[n].type===l.CHART_TYPE_TREEMAP){t=i[n].categories||i[n].data||i[n].nodes;for(var o=0,r=t.length;r>o;o++)if(t[o].name===e)return{type:i[n].type,series:i[n],seriesIndex:n,data:t[o],dataIndex:o}}}return{type:"bar",series:null,seriesIndex:-1,data:null,dataIndex:-1}},_getItemShapeByType:function(e,t,i,n,a,o,r){var s,h="#ccc"===a?r:a,m={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{iconType:"legendicon"+o,x:e,y:t,width:i,height:n,color:a,strokeColor:a,lineWidth:2},highlightStyle:{color:h,strokeColor:h,lineWidth:1},hoverable:this.legendOption.selectedMode,clickable:this.legendOption.selectedMode};if(o.match("image")){var s=o.replace(new RegExp("^image:\\/\\/"),"");o="image"}switch(o){case"line":m.style.brushType="stroke",m.highlightStyle.lineWidth=3;break;case"radar":case"venn":case"tree":case"treemap":case"scatter":m.highlightStyle.lineWidth=3;break;case"k":m.style.brushType="both",m.highlightStyle.lineWidth=3,m.highlightStyle.color=m.style.color=this.deepQuery([this.ecTheme,l],"k.itemStyle.normal.color")||"#fff",m.style.strokeColor="#ccc"!=a?this.deepQuery([this.ecTheme,l],"k.itemStyle.normal.lineStyle.color")||"#ff3200":a;break;case"image":m.style.iconType="image",m.style.image=s,"#ccc"===a&&(m.style.opacity=.5)}return m},__legendSelected:function(e){var t=e.target._name;if("single"===this.legendOption.selectedMode)for(var i in this._selectedMap)this._selectedMap[i]=!1;this._selectedMap[t]=!this._selectedMap[t],this.messageCenter.dispatch(l.EVENT.LEGEND_SELECTED,e.event,{selected:this._selectedMap,target:t},this.myChart)},__dispatchHoverLink:function(e){this.messageCenter.dispatch(l.EVENT.LEGEND_HOVERLINK,e.event,{target:e.target._name},this.myChart)},refresh:function(e){if(e){this.option=e||this.option,this.option.legend=this.reformOption(this.option.legend),this.legendOption=this.option.legend;var t,i,n,a,o=this.legendOption.data||[];if(this.legendOption.selected)for(var r in this.legendOption.selected)this._selectedMap[r]="undefined"!=typeof this._selectedMap[r]?this._selectedMap[r]:this.legendOption.selected[r];for(var s=0,h=o.length;h>s;s++)t=this._getName(o[s]),""!==t&&(i=this._getSomethingByName(t),i.series?(this._hasDataMap[t]=!0,a=!i.data||i.type!==l.CHART_TYPE_PIE&&i.type!==l.CHART_TYPE_FORCE&&i.type!==l.CHART_TYPE_FUNNEL?[i.series]:[i.data,i.series],n=this.getItemStyleColor(this.deepQuery(a,"itemStyle.normal.color"),i.seriesIndex,i.dataIndex,i.data),n&&i.type!=l.CHART_TYPE_K&&this.setColor(t,n),this._selectedMap[t]=null!=this._selectedMap[t]?this._selectedMap[t]:!0):this._hasDataMap[t]=!1)}this.clear(),this._buildShape()},getRelatedAmount:function(e){for(var t,i=0,n=this.option.series,a=0,o=n.length;o>a;a++)if(n[a].name===e&&i++,n[a].type===l.CHART_TYPE_PIE||n[a].type===l.CHART_TYPE_RADAR||n[a].type===l.CHART_TYPE_CHORD||n[a].type===l.CHART_TYPE_FORCE||n[a].type===l.CHART_TYPE_FUNNEL){t=n[a].type!=l.CHART_TYPE_FORCE?n[a].data:n[a].categories;for(var r=0,s=t.length;s>r;r++)t[r].name===e&&"-"!=t[r].value&&i++}return i},setColor:function(e,t){this._colorMap[e]=t},getColor:function(e){return this._colorMap[e]||(this._colorMap[e]=this.zr.getColor(this._colorIndex++)),this._colorMap[e]},hasColor:function(e){return this._colorMap[e]?this._colorMap[e]:!1},add:function(e,t){ -for(var i=this.legendOption.data,n=0,a=i.length;a>n;n++)if(this._getName(i[n])===e)return;this.legendOption.data.push(e),this.setColor(e,t),this._selectedMap[e]=!0,this._hasDataMap[e]=!0},del:function(e){for(var t=this.legendOption.data,i=0,n=t.length;n>i;i++)if(this._getName(t[i])===e)return this.legendOption.data.splice(i,1)},getItemShape:function(e){if(null!=e)for(var t,i=0,n=this.shapeList.length;n>i;i++)if(t=this.shapeList[i],t._name===e&&"text"!=t.type)return t},setItemShape:function(e,t){for(var i,n=0,a=this.shapeList.length;a>n;n++)i=this.shapeList[n],i._name===e&&"text"!=i.type&&(this._selectedMap[e]||(t.style.color="#ccc",t.style.strokeColor="#ccc"),this.zr.modShape(i.id,t))},isSelected:function(e){return"undefined"!=typeof this._selectedMap[e]?this._selectedMap[e]:!0},getSelectedMap:function(){return this._selectedMap},setSelected:function(e,t){if("single"===this.legendOption.selectedMode)for(var i in this._selectedMap)this._selectedMap[i]=!1;this._selectedMap[e]=t,this.messageCenter.dispatch(l.EVENT.LEGEND_SELECTED,null,{selected:this._selectedMap,target:e},this.myChart)},onlegendSelected:function(e,t){var i=e.selected;for(var n in i)this._selectedMap[n]!=i[n]&&(t.needRefresh=!0),this._selectedMap[n]=i[n]}};var V={line:function(e,t){var i=t.height/2;e.moveTo(t.x,t.y+i),e.lineTo(t.x+t.width,t.y+i)},pie:function(e,t){var i=t.x,n=t.y,a=t.width,r=t.height;o.prototype.buildPath(e,{x:i+a/2,y:n+r+2,r:r,r0:6,startAngle:45,endAngle:135})},eventRiver:function(e,t){var i=t.x,n=t.y,a=t.width,o=t.height;e.moveTo(i,n+o),e.bezierCurveTo(i+a,n+o,i,n+4,i+a,n+4),e.lineTo(i+a,n),e.bezierCurveTo(i,n,i+a,n+o-4,i,n+o-4),e.lineTo(i,n+o)},k:function(e,t){var i=t.x,n=t.y,a=t.width,o=t.height;s.prototype.buildPath(e,{x:i+a/2,y:[n+1,n+1,n+o-6,n+o],width:a-6})},bar:function(e,t){var i=t.x,n=t.y+1,a=t.width,o=t.height-2,r=3;e.moveTo(i+r,n),e.lineTo(i+a-r,n),e.quadraticCurveTo(i+a,n,i+a,n+r),e.lineTo(i+a,n+o-r),e.quadraticCurveTo(i+a,n+o,i+a-r,n+o),e.lineTo(i+r,n+o),e.quadraticCurveTo(i,n+o,i,n+o-r),e.lineTo(i,n+r),e.quadraticCurveTo(i,n,i+r,n)},force:function(e,t){r.prototype.iconLibrary.circle(e,t)},radar:function(e,t){var i=6,n=t.x+t.width/2,a=t.y+t.height/2,o=t.height/2,r=2*Math.PI/i,s=-Math.PI/2,l=n+o*Math.cos(s),h=a+o*Math.sin(s);e.moveTo(l,h),s+=r;for(var m=0,V=i-1;V>m;m++)e.lineTo(n+o*Math.cos(s),a+o*Math.sin(s)),s+=r;e.lineTo(l,h)}};V.chord=V.pie,V.map=V.bar;for(var U in V)r.prototype.iconLibrary["legendicon"+U]=V[U];return h.inherits(t,i),e("../component").define("legend",t),t}),i("echarts/util/ecData",[],function(){function e(e,t,i,n,a,o,r,s){var l;return"undefined"!=typeof n&&(l=null==n.value?n:n.value),e._echartsData={_series:t,_seriesIndex:i,_data:n,_dataIndex:a,_name:o,_value:l,_special:r,_special2:s},e._echartsData}function t(e,t){var i=e._echartsData;if(!t)return i;switch(t){case"series":case"seriesIndex":case"data":case"dataIndex":case"name":case"value":case"special":case"special2":return i&&i["_"+t]}return null}function i(e,t,i){switch(e._echartsData=e._echartsData||{},t){case"series":case"seriesIndex":case"data":case"dataIndex":case"name":case"value":case"special":case"special2":e._echartsData["_"+t]=i}}function n(e,t){t._echartsData={_series:e._echartsData._series,_seriesIndex:e._echartsData._seriesIndex,_data:e._echartsData._data,_dataIndex:e._echartsData._dataIndex,_name:e._echartsData._name,_value:e._echartsData._value,_special:e._echartsData._special,_special2:e._echartsData._special2}}return{pack:e,set:i,get:t,clone:n}}),i("echarts/chart",[],function(){var e={},t={};return e.define=function(i,n){return t[i]=n,e},e.get=function(e){return t[e]},e}),i("zrender/tool/color",["require","../tool/util"],function(e){function t(e){D=e}function i(){D=N}function n(e,t){return e=0|e,t=t||D,t[e%t.length]}function a(e){B=e}function o(){H=B}function r(){return B}function s(e,t,i,n,a,o,r){O||(O=P.getContext());for(var s=O.createRadialGradient(e,t,i,n,a,o),l=0,h=r.length;h>l;l++)s.addColorStop(r[l][0],r[l][1]);return s.__nonRecursion=!0,s}function l(e,t,i,n,a){O||(O=P.getContext());for(var o=O.createLinearGradient(e,t,i,n),r=0,s=a.length;s>r;r++)o.addColorStop(a[r][0],a[r][1]);return o.__nonRecursion=!0,o}function h(e,t,i){e=p(e),t=p(t),e=I(e),t=I(t);for(var n=[],a=(t[0]-e[0])/i,o=(t[1]-e[1])/i,r=(t[2]-e[2])/i,s=(t[3]-e[3])/i,l=0,h=e[0],m=e[1],U=e[2],d=e[3];i>l;l++)n[l]=V([S(Math.floor(h),[0,255]),S(Math.floor(m),[0,255]),S(Math.floor(U),[0,255]),d.toFixed(4)-0],"rgba"),h+=a,m+=o,U+=r,d+=s;return h=t[0],m=t[1],U=t[2],d=t[3],n[l]=V([h,m,U,d],"rgba"),n}function m(e,t){var i=[],n=e.length;if(void 0===t&&(t=20),1===n)i=h(e[0],e[0],t);else if(n>1)for(var a=0,o=n-1;o>a;a++){var r=h(e[a],e[a+1],t);o-1>a&&r.pop(),i=i.concat(r)}return i}function V(e,t){if(t=t||"rgb",e&&(3===e.length||4===e.length)){if(e=C(e,function(e){return e>1?Math.ceil(e):e}),t.indexOf("hex")>-1)return"#"+((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1);if(t.indexOf("hs")>-1){var i=C(e.slice(1,3),function(e){return e+"%"});e[1]=i[0],e[2]=i[1]}return t.indexOf("a")>-1?(3===e.length&&e.push(1),e[3]=S(e[3],[0,1]),t+"("+e.slice(0,4).join(",")+")"):t+"("+e.slice(0,3).join(",")+")"}}function U(e){e=L(e),e.indexOf("rgba")<0&&(e=p(e));var t=[],i=0;return e.replace(/[\d.]+/g,function(e){e=3>i?0|e:+e,t[i++]=e}),t}function d(e,t){if(!E(e))return e;var i=I(e),n=i[3];return"undefined"==typeof n&&(n=1),e.indexOf("hsb")>-1?i=F(i):e.indexOf("hsl")>-1&&(i=T(i)),t.indexOf("hsb")>-1||t.indexOf("hsv")>-1?i=A(i):t.indexOf("hsl")>-1&&(i=M(i)),i[3]=n,V(i,t)}function p(e){return d(e,"rgba")}function c(e){return d(e,"rgb")}function u(e){return d(e,"hex")}function y(e){return d(e,"hsva")}function g(e){return d(e,"hsv")}function b(e){return d(e,"hsba")}function f(e){return d(e,"hsb")}function k(e){return d(e,"hsla")}function x(e){return d(e,"hsl")}function _(e){for(var t in G)if(u(G[t])===u(e))return t;return null}function L(e){return String(e).replace(/\s+/g,"")}function W(e){if(G[e]&&(e=G[e]),e=L(e),e=e.replace(/hsv/i,"hsb"),/^#[\da-f]{3}$/i.test(e)){e=parseInt(e.slice(1),16);var t=(3840&e)<<8,i=(240&e)<<4,n=15&e;e="#"+((1<<24)+(t<<4)+t+(i<<4)+i+(n<<4)+n).toString(16).slice(1)}return e}function X(e,t){if(!E(e))return e;var i=t>0?1:-1;"undefined"==typeof t&&(t=0),t=Math.abs(t)>1?1:Math.abs(t),e=c(e);for(var n=I(e),a=0;3>a;a++)n[a]=1===i?n[a]*(1-t)|0:(255-n[a])*t+n[a]|0;return"rgb("+n.join(",")+")"}function v(e){if(!E(e))return e;var t=I(p(e));return t=C(t,function(e){return 255-e}),V(t,"rgb")}function w(e,t,i){if(!E(e)||!E(t))return e;"undefined"==typeof i&&(i=.5),i=1-S(i,[0,1]);for(var n=2*i-1,a=I(p(e)),o=I(p(t)),r=a[3]-o[3],s=((n*r===-1?n:(n+r)/(1+n*r))+1)/2,l=1-s,h=[],m=0;3>m;m++)h[m]=a[m]*s+o[m]*l;var U=a[3]*i+o[3]*(1-i);return U=Math.max(0,Math.min(1,U)),1===a[3]&&1===o[3]?V(h,"rgb"):(h[3]=U,V(h,"rgba"))}function K(){return"#"+(Math.random().toString(16)+"0000").slice(2,8)}function I(e){e=W(e);var t=e.match(R);if(null===t)throw new Error("The color format error");var i,n,a,o=[];if(t[2])i=t[2].replace("#","").split(""),a=[i[0]+i[1],i[2]+i[3],i[4]+i[5]],o=C(a,function(e){return S(parseInt(e,16),[0,255])});else if(t[4]){var r=t[4].split(",");n=r[3],a=r.slice(0,3),o=C(a,function(e){return e=Math.floor(e.indexOf("%")>0?2.55*parseInt(e,0):e),S(e,[0,255])}),"undefined"!=typeof n&&o.push(S(parseFloat(n),[0,1]))}else if(t[5]||t[6]){var s=(t[5]||t[6]).split(","),l=parseInt(s[0],0)/360,h=s[1],m=s[2];n=s[3],o=C([h,m],function(e){return S(parseFloat(e)/100,[0,1])}),o.unshift(l),"undefined"!=typeof n&&o.push(S(parseFloat(n),[0,1]))}return o}function J(e,t){if(!E(e))return e;null===t&&(t=1);var i=I(p(e));return i[3]=S(Number(t).toFixed(4),[0,1]),V(i,"rgba")}function C(e,t){if("function"!=typeof t)throw new TypeError;for(var i=e?e.length:0,n=0;i>n;n++)e[n]=t(e[n]);return e}function S(e,t){return e<=t[0]?e=t[0]:e>=t[1]&&(e=t[1]),e}function E(e){return e instanceof Array||"string"==typeof e}function F(e){var t,i,n,a=e[0],o=e[1],r=e[2];if(0===o)t=255*r,i=255*r,n=255*r;else{var s=6*a;6===s&&(s=0);var l=0|s,h=r*(1-o),m=r*(1-o*(s-l)),V=r*(1-o*(1-(s-l))),U=0,d=0,p=0;0===l?(U=r,d=V,p=h):1===l?(U=m,d=r,p=h):2===l?(U=h,d=r,p=V):3===l?(U=h,d=m,p=r):4===l?(U=V,d=h,p=r):(U=r,d=h,p=m),t=255*U,i=255*d,n=255*p}return[t,i,n]}function T(e){var t,i,n,a=e[0],o=e[1],r=e[2];if(0===o)t=255*r,i=255*r,n=255*r;else{var s;s=.5>r?r*(1+o):r+o-o*r;var l=2*r-s;t=255*z(l,s,a+1/3),i=255*z(l,s,a),n=255*z(l,s,a-1/3)}return[t,i,n]}function z(e,t,i){return 0>i&&(i+=1),i>1&&(i-=1),1>6*i?e+6*(t-e)*i:1>2*i?t:2>3*i?e+(t-e)*(2/3-i)*6:e}function A(e){var t,i,n=e[0]/255,a=e[1]/255,o=e[2]/255,r=Math.min(n,a,o),s=Math.max(n,a,o),l=s-r,h=s;if(0===l)t=0,i=0;else{i=l/s;var m=((s-n)/6+l/2)/l,V=((s-a)/6+l/2)/l,U=((s-o)/6+l/2)/l;n===s?t=U-V:a===s?t=1/3+m-U:o===s&&(t=2/3+V-m),0>t&&(t+=1),t>1&&(t-=1)}return t=360*t,i=100*i,h=100*h,[t,i,h]}function M(e){var t,i,n=e[0]/255,a=e[1]/255,o=e[2]/255,r=Math.min(n,a,o),s=Math.max(n,a,o),l=s-r,h=(s+r)/2;if(0===l)t=0,i=0;else{i=.5>h?l/(s+r):l/(2-s-r);var m=((s-n)/6+l/2)/l,V=((s-a)/6+l/2)/l,U=((s-o)/6+l/2)/l;n===s?t=U-V:a===s?t=1/3+m-U:o===s&&(t=2/3+V-m),0>t&&(t+=1),t>1&&(t-=1)}return t=360*t,i=100*i,h=100*h,[t,i,h]}var O,P=e("../tool/util"),D=["#ff9277"," #dddd00"," #ffc877"," #bbe3ff"," #d5ffbb","#bbbbff"," #ddb000"," #b0dd00"," #e2bbff"," #ffbbe3","#ff7777"," #ff9900"," #83dd00"," #77e3ff"," #778fff","#c877ff"," #ff77ab"," #ff6600"," #aa8800"," #77c7ff","#ad77ff"," #ff77ff"," #dd0083"," #777700"," #00aa00","#0088aa"," #8400dd"," #aa0088"," #dd0000"," #772e00"],N=D,B="rgba(255,255,0,0.5)",H=B,R=/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i,G={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#0ff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000",blanchedalmond:"#ffebcd",blue:"#00f",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#0ff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgrey:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#f0f",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#789",lightslategrey:"#789",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#0f0",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#f0f",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#f00",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#fff",whitesmoke:"#f5f5f5",yellow:"#ff0",yellowgreen:"#9acd32"};return{customPalette:t,resetPalette:i,getColor:n,getHighlightColor:r,customHighlight:a,resetHighlight:o,getRadialGradient:s,getLinearGradient:l,getGradientColors:m,getStepColors:h,reverse:v,mix:w,lift:X,trim:L,random:K,toRGB:c,toRGBA:p,toHex:u,toHSL:x,toHSLA:k,toHSB:f,toHSBA:b,toHSV:g,toHSVA:y,toName:_,toColor:V,toArray:U,alpha:J,getData:I}}),i("echarts/component/timeline",["require","./base","zrender/shape/Rectangle","../util/shape/Icon","../util/shape/Chain","../config","zrender/tool/util","zrender/tool/area","zrender/tool/event","../component"],function(e){function t(e,t,i,a,o){n.call(this,e,t,i,a,o);var r=this;if(r._onclick=function(e){return r.__onclick(e)},r._ondrift=function(e,t){return r.__ondrift(this,e,t)},r._ondragend=function(){return r.__ondragend()},r._setCurrentOption=function(){var e=r.timelineOption;r.currentIndex%=e.data.length;var t=r.options[r.currentIndex]||{};r.myChart._setOption(t,e.notMerge,!0),r.messageCenter.dispatch(s.EVENT.TIMELINE_CHANGED,null,{currentIndex:r.currentIndex,data:null!=e.data[r.currentIndex].name?e.data[r.currentIndex].name:e.data[r.currentIndex]},r.myChart)},r._onFrame=function(){r._setCurrentOption(),r._syncHandleShape(),r.timelineOption.autoPlay&&(r.playTicket=setTimeout(function(){return r.currentIndex+=1,!r.timelineOption.loop&&r.currentIndex>=r.timelineOption.data.length?(r.currentIndex=r.timelineOption.data.length-1,void r.stop()):void r._onFrame()},r.timelineOption.playInterval))},this.setTheme(!1),this.options=this.option.options,this.currentIndex=this.timelineOption.currentIndex%this.timelineOption.data.length,this.timelineOption.notMerge||0===this.currentIndex||(this.options[this.currentIndex]=l.merge(this.options[this.currentIndex],this.options[0])),this.timelineOption.show&&(this._buildShape(),this._syncHandleShape()),this._setCurrentOption(),this.timelineOption.autoPlay){var r=this;this.playTicket=setTimeout(function(){r.play()},null!=this.ecTheme.animationDuration?this.ecTheme.animationDuration:s.animationDuration)}}function i(e,t){var i=2,n=t.x+i,a=t.y+i+2,r=t.width-i,s=t.height-i,l=t.symbol;if("last"===l)e.moveTo(n+r-2,a+s/3),e.lineTo(n+r-2,a),e.lineTo(n+2,a+s/2),e.lineTo(n+r-2,a+s),e.lineTo(n+r-2,a+s/3*2),e.moveTo(n,a),e.lineTo(n,a);else if("next"===l)e.moveTo(n+2,a+s/3),e.lineTo(n+2,a),e.lineTo(n+r-2,a+s/2),e.lineTo(n+2,a+s),e.lineTo(n+2,a+s/3*2),e.moveTo(n,a),e.lineTo(n,a);else if("play"===l)if("stop"===t.status)e.moveTo(n+2,a),e.lineTo(n+r-2,a+s/2),e.lineTo(n+2,a+s),e.lineTo(n+2,a);else{var h="both"===t.brushType?2:3;e.rect(n+2,a,h,s),e.rect(n+r-h-2,a,h,s)}else if(l.match("image")){var m="";m=l.replace(new RegExp("^image:\\/\\/"),""),l=o.prototype.iconLibrary.image,l(e,{x:n,y:a,width:r,height:s,image:m})}}var n=e("./base"),a=e("zrender/shape/Rectangle"),o=e("../util/shape/Icon"),r=e("../util/shape/Chain"),s=e("../config");s.timeline={zlevel:0,z:4,show:!0,type:"time",notMerge:!1,realtime:!0,x:80,x2:80,y2:0,height:50,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,controlPosition:"left",autoPlay:!1,loop:!0,playInterval:2e3,lineStyle:{width:1,color:"#666",type:"dashed"},label:{show:!0,interval:"auto",rotate:0,textStyle:{color:"#333"}},checkpointStyle:{symbol:"auto",symbolSize:"auto",color:"auto",borderColor:"auto",borderWidth:"auto",label:{show:!1,textStyle:{color:"auto"}}},controlStyle:{itemSize:15,itemGap:5,normal:{color:"#333"},emphasis:{color:"#1e90ff"}},symbol:"emptyDiamond",symbolSize:4,currentIndex:0};var l=e("zrender/tool/util"),h=e("zrender/tool/area"),m=e("zrender/tool/event");return t.prototype={type:s.COMPONENT_TYPE_TIMELINE,_buildShape:function(){if(this._location=this._getLocation(),this._buildBackground(),this._buildControl(),this._chainPoint=this._getChainPoint(),this.timelineOption.label.show)for(var e=this._getInterval(),t=0,i=this._chainPoint.length;i>t;t+=e)this._chainPoint[t].showLabel=!0;this._buildChain(),this._buildHandle();for(var t=0,n=this.shapeList.length;n>t;t++)this.zr.addShape(this.shapeList[t])},_getLocation:function(){var e,t=this.timelineOption,i=this.reformCssArray(this.timelineOption.padding),n=this.zr.getWidth(),a=this.parsePercent(t.x,n),o=this.parsePercent(t.x2,n);null==t.width?(e=n-a-o,o=n-o):(e=this.parsePercent(t.width,n),o=a+e);var r,s,l=this.zr.getHeight(),h=this.parsePercent(t.height,l);return null!=t.y?(r=this.parsePercent(t.y,l),s=r+h):(s=l-this.parsePercent(t.y2,l),r=s-h),{x:a+i[3],y:r+i[0],x2:o-i[1],y2:s-i[2],width:e-i[1]-i[3],height:h-i[0]-i[2]}},_getReformedLabel:function(e){var t=this.timelineOption,i=null!=t.data[e].name?t.data[e].name:t.data[e],n=t.data[e].formatter||t.label.formatter;return n&&("function"==typeof n?i=n.call(this.myChart,i):"string"==typeof n&&(i=n.replace("{value}",i))),i},_getInterval:function(){var e=this._chainPoint,t=this.timelineOption,i=t.label.interval;if("auto"===i){var n=t.label.textStyle.fontSize,a=t.data,o=t.data.length;if(o>3){var r,s,l=!1;for(i=0;!l&&o>i;){i++,l=!0;for(var m=i;o>m;m+=i){if(r=e[m].x-e[m-i].x,0!==t.label.rotate)s=n;else if(a[m].textStyle)s=h.getTextWidth(e[m].name,e[m].textFont);else{var V=e[m].name+"",U=(V.match(/\w/g)||"").length,d=V.length-U;s=U*n*2/3+d*n}if(s>r){l=!1;break}}}}else i=1}else i=i-0+1;return i},_getChainPoint:function(){function e(e){return null!=h[e].name?h[e].name:h[e]+""}var t,i=this.timelineOption,n=i.symbol.toLowerCase(),a=i.symbolSize,o=i.label.rotate,r=i.label.textStyle,s=this.getFont(r),h=i.data,m=this._location.x,V=this._location.y+this._location.height/4*3,U=this._location.x2-this._location.x,d=h.length,p=[];if(d>1){var c=U/d;if(c=c>50?50:20>c?5:c,U-=2*c,"number"===i.type)for(var u=0;d>u;u++)p.push(m+c+U/(d-1)*u);else{p[0]=new Date(e(0).replace(/-/g,"/")),p[d-1]=new Date(e(d-1).replace(/-/g,"/"))-p[0];for(var u=1;d>u;u++)p[u]=m+c+U*(new Date(e(u).replace(/-/g,"/"))-p[0])/p[d-1];p[0]=m+c}}else p.push(m+U/2);for(var y,g,b,f,k,x=[],u=0;d>u;u++)m=p[u],y=h[u].symbol&&h[u].symbol.toLowerCase()||n,y.match("empty")?(y=y.replace("empty",""),b=!0):b=!1,y.match("star")&&(g=y.replace("star","")-0||5,y="star"),t=h[u].textStyle?l.merge(h[u].textStyle||{},r):r,f=t.align||"center",o?(f=o>0?"right":"left",k=[o*Math.PI/180,m,V-5]):k=!1,x.push({x:m,n:g,isEmpty:b,symbol:y,symbolSize:h[u].symbolSize||a,color:h[u].color,borderColor:h[u].borderColor,borderWidth:h[u].borderWidth,name:this._getReformedLabel(u),textColor:t.color,textAlign:f,textBaseline:t.baseline||"middle",textX:m,textY:V-(o?5:0),textFont:h[u].textStyle?this.getFont(t):s,rotation:k,showLabel:!1});return x},_buildBackground:function(){var e=this.timelineOption,t=this.reformCssArray(this.timelineOption.padding),i=this._location.width,n=this._location.height;(0!==e.borderWidth||"rgba(0,0,0,0)"!=e.backgroundColor.replace(/\s/g,""))&&this.shapeList.push(new a({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._location.x-t[3],y:this._location.y-t[0],width:i+t[1]+t[3],height:n+t[0]+t[2],brushType:0===e.borderWidth?"fill":"both",color:e.backgroundColor,strokeColor:e.borderColor,lineWidth:e.borderWidth}}))},_buildControl:function(){var e=this,t=this.timelineOption,i=t.lineStyle,n=t.controlStyle;if("none"!==t.controlPosition){var a,r=n.itemSize,s=n.itemGap;"left"===t.controlPosition?(a=this._location.x,this._location.x+=3*(r+s)):(a=this._location.x2-(3*(r+s)-s),this._location.x2-=3*(r+s));var h=this._location.y,m={zlevel:this.getZlevelBase(),z:this.getZBase()+1,style:{iconType:"timelineControl",symbol:"last",x:a,y:h,width:r,height:r,brushType:"stroke",color:n.normal.color,strokeColor:n.normal.color,lineWidth:i.width},highlightStyle:{color:n.emphasis.color,strokeColor:n.emphasis.color,lineWidth:i.width+1},clickable:!0};this._ctrLastShape=new o(m),this._ctrLastShape.onclick=function(){e.last()},this.shapeList.push(this._ctrLastShape),a+=r+s,this._ctrPlayShape=new o(l.clone(m)),this._ctrPlayShape.style.brushType="fill",this._ctrPlayShape.style.symbol="play",this._ctrPlayShape.style.status=this.timelineOption.autoPlay?"playing":"stop",this._ctrPlayShape.style.x=a,this._ctrPlayShape.onclick=function(){"stop"===e._ctrPlayShape.style.status?e.play():e.stop()},this.shapeList.push(this._ctrPlayShape),a+=r+s,this._ctrNextShape=new o(l.clone(m)),this._ctrNextShape.style.symbol="next",this._ctrNextShape.style.x=a,this._ctrNextShape.onclick=function(){e.next()},this.shapeList.push(this._ctrNextShape)}},_buildChain:function(){var e=this.timelineOption,t=e.lineStyle;this._timelineShae={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:this._location.x,y:this.subPixelOptimize(this._location.y,t.width),width:this._location.x2-this._location.x,height:this._location.height,chainPoint:this._chainPoint,brushType:"both",strokeColor:t.color,lineWidth:t.width,lineType:t.type},hoverable:!1,clickable:!0,onclick:this._onclick},this._timelineShae=new r(this._timelineShae),this.shapeList.push(this._timelineShae)},_buildHandle:function(){var e=this._chainPoint[this.currentIndex],t=e.symbolSize+1;t=5>t?5:t,this._handleShape={zlevel:this.getZlevelBase(),z:this.getZBase()+1,hoverable:!1,draggable:!0,style:{iconType:"diamond",n:e.n,x:e.x-t,y:this._location.y+this._location.height/4-t,width:2*t,height:2*t,brushType:"both",textPosition:"specific",textX:e.x,textY:this._location.y-this._location.height/4,textAlign:"center",textBaseline:"middle"},highlightStyle:{},ondrift:this._ondrift,ondragend:this._ondragend},this._handleShape=new o(this._handleShape),this.shapeList.push(this._handleShape)},_syncHandleShape:function(){if(this.timelineOption.show){var e=this.timelineOption,t=e.checkpointStyle,i=this._chainPoint[this.currentIndex];this._handleShape.style.text=t.label.show?i.name:"",this._handleShape.style.textFont=i.textFont,this._handleShape.style.n=i.n,"auto"===t.symbol?this._handleShape.style.iconType="none"!=i.symbol?i.symbol:"diamond":(this._handleShape.style.iconType=t.symbol,t.symbol.match("star")&&(this._handleShape.style.n=t.symbol.replace("star","")-0||5,this._handleShape.style.iconType="star"));var n;"auto"===t.symbolSize?(n=i.symbolSize+2,n=5>n?5:n):n=t.symbolSize-0,this._handleShape.style.color="auto"===t.color?i.color?i.color:e.controlStyle.emphasis.color:t.color,this._handleShape.style.textColor="auto"===t.label.textStyle.color?this._handleShape.style.color:t.label.textStyle.color,this._handleShape.highlightStyle.strokeColor=this._handleShape.style.strokeColor="auto"===t.borderColor?i.borderColor?i.borderColor:"#fff":t.borderColor,this._handleShape.style.lineWidth="auto"===t.borderWidth?i.borderWidth?i.borderWidth:0:t.borderWidth-0,this._handleShape.highlightStyle.lineWidth=this._handleShape.style.lineWidth+1,this.zr.animate(this._handleShape.id,"style").when(500,{x:i.x-n,textX:i.x,y:this._location.y+this._location.height/4-n,width:2*n,height:2*n}).start("ExponentialOut")}},_findChainIndex:function(e){var t=this._chainPoint,i=t.length;if(e<=t[0].x)return 0;if(e>=t[i-1].x)return i-1;for(var n=0;i-1>n;n++)if(e>=t[n].x&&e<=t[n+1].x)return Math.abs(e-t[n].x)=n[a-1].x-n[a-1].symbolSize?(e.style.x=n[a-1].x-n[a-1].symbolSize,i=a-1):(e.style.x+=t,i=this._findChainIndex(e.style.x));var o=n[i],r=o.symbolSize+2;if(e.style.iconType=o.symbol,e.style.n=o.n,e.style.textX=e.style.x+r/2,e.style.y=this._location.y+this._location.height/4-r,e.style.width=2*r,e.style.height=2*r,e.style.text=o.name,i===this.currentIndex)return!0;if(this.currentIndex=i,this.timelineOption.realtime){clearTimeout(this.playTicket);var s=this;this.playTicket=setTimeout(function(){s._setCurrentOption()},200)}return!0},__ondragend:function(){this.isDragend=!0},ondragend:function(e,t){this.isDragend&&e.target&&(!this.timelineOption.realtime&&this._setCurrentOption(),t.dragOut=!0,t.dragIn=!0,t.needRefresh=!1,this.isDragend=!1,this._syncHandleShape())},last:function(){return this.timelineOption.autoPlay&&this.stop(),this.currentIndex-=1,this.currentIndex<0&&(this.currentIndex=this.timelineOption.data.length-1),this._onFrame(),this.currentIndex},next:function(){return this.timelineOption.autoPlay&&this.stop(),this.currentIndex+=1,this.currentIndex>=this.timelineOption.data.length&&(this.currentIndex=0),this._onFrame(),this.currentIndex},play:function(e,t){return this._ctrPlayShape&&"playing"!=this._ctrPlayShape.style.status&&(this._ctrPlayShape.style.status="playing",this.zr.modShape(this._ctrPlayShape.id),this.zr.refreshNextFrame()),this.timelineOption.autoPlay=null!=t?t:!0,this.timelineOption.autoPlay||clearTimeout(this.playTicket),this.currentIndex=null!=e?e:this.currentIndex+1,this.currentIndex>=this.timelineOption.data.length&&(this.currentIndex=0),this._onFrame(),this.currentIndex},stop:function(){return this._ctrPlayShape&&"stop"!=this._ctrPlayShape.style.status&&(this._ctrPlayShape.style.status="stop",this.zr.modShape(this._ctrPlayShape.id),this.zr.refreshNextFrame()),this.timelineOption.autoPlay=!1,clearTimeout(this.playTicket),this.currentIndex},resize:function(){this.timelineOption.show&&(this.clear(),this._buildShape(),this._syncHandleShape())},setTheme:function(e){this.timelineOption=this.reformOption(l.clone(this.option.timeline)),this.timelineOption.label.textStyle=this.getTextStyle(this.timelineOption.label.textStyle),this.timelineOption.checkpointStyle.label.textStyle=this.getTextStyle(this.timelineOption.checkpointStyle.label.textStyle),this.myChart.canvasSupported||(this.timelineOption.realtime=!1),this.timelineOption.show&&e&&(this.clear(),this._buildShape(),this._syncHandleShape())},onbeforDispose:function(){clearTimeout(this.playTicket)}},o.prototype.iconLibrary.timelineControl=i,l.inherits(t,n),e("../component").define("timeline",t),t}),i("zrender/shape/Image",["require","./Base","../tool/util"],function(e){var t=e("./Base"),i=function(e){t.call(this,e)};return i.prototype={type:"image",brush:function(e,t,i){var n=this.style||{};t&&(n=this.getHighlightStyle(n,this.highlightStyle||{}));var a=n.image,o=this;if(this._imageCache||(this._imageCache={}),"string"==typeof a){var r=a;this._imageCache[r]?a=this._imageCache[r]:(a=new Image,a.onload=function(){a.onload=null,o.modSelf(),i()},a.src=r,this._imageCache[r]=a)}if(a){if("IMG"==a.nodeName.toUpperCase())if(window.ActiveXObject){if("complete"!=a.readyState)return}else if(!a.complete)return;var s=n.width||a.width,l=n.height||a.height,h=n.x,m=n.y;if(!a.width||!a.height)return;if(e.save(),this.doClip(e),this.setContext(e,n),this.setTransform(e),n.sWidth&&n.sHeight){var V=n.sx||0,U=n.sy||0;e.drawImage(a,V,U,n.sWidth,n.sHeight,h,m,s,l)}else if(n.sx&&n.sy){var V=n.sx,U=n.sy,d=s-V,p=l-U;e.drawImage(a,V,U,d,p,h,m,s,l)}else e.drawImage(a,h,m,s,l);n.width||(n.width=s),n.height||(n.height=l),this.style.width||(this.style.width=s),this.style.height||(this.style.height=l),this.drawText(e,n,this.style),e.restore()}},getRect:function(e){return{x:e.x,y:e.y,width:e.width,height:e.height}},clearCache:function(){this._imageCache={}}},e("../tool/util").inherits(i,t),i}),i("zrender/loadingEffect/Bar",["require","./Base","../tool/util","../tool/color","../shape/Rectangle"],function(e){function t(e){i.call(this,e)}var i=e("./Base"),n=e("../tool/util"),a=e("../tool/color"),o=e("../shape/Rectangle");return n.inherits(t,i),t.prototype._start=function(e,t){var i=n.merge(this.options,{textStyle:{color:"#888"},backgroundColor:"rgba(250, 250, 250, 0.8)",effectOption:{x:0,y:this.canvasHeight/2-30,width:this.canvasWidth,height:5,brushType:"fill",timeInterval:100}}),r=this.createTextShape(i.textStyle),s=this.createBackgroundShape(i.backgroundColor),l=i.effectOption,h=new o({highlightStyle:n.clone(l)});return h.highlightStyle.color=l.color||a.getLinearGradient(l.x,l.y,l.x+l.width,l.y+l.height,[[0,"#ff6400"],[.5,"#ffe100"],[1,"#b1ff00"]]),null!=i.progress?(e(s),h.highlightStyle.width=this.adjust(i.progress,[0,1])*i.effectOption.width,e(h),e(r),void t()):(h.highlightStyle.width=0,setInterval(function(){e(s),h.highlightStyle.widthc;c++){var u="random"==l.color?a.alpha(a.random(),.3):l.color;U[c]=new o({highlightStyle:{x:Math.ceil(Math.random()*d),y:Math.ceil(Math.random()*p),r:Math.ceil(40*Math.random()),brushType:m,color:u,strokeColor:u,lineWidth:V},animationY:Math.ceil(20*Math.random())})}return setInterval(function(){e(s);for(var i=0;h>i;i++){var n=U[i].highlightStyle;n.y-U[i].animationY+n.r<=0&&(U[i].highlightStyle.y=p+n.r,U[i].highlightStyle.x=Math.ceil(Math.random()*d)),U[i].highlightStyle.y-=U[i].animationY,e(U[i])}e(r),t()},l.timeInterval)},t}),i("zrender/loadingEffect/DynamicLine",["require","./Base","../tool/util","../tool/color","../shape/Line"],function(e){function t(e){i.call(this,e)}var i=e("./Base"),n=e("../tool/util"),a=e("../tool/color"),o=e("../shape/Line");return n.inherits(t,i),t.prototype._start=function(e,t){for(var i=n.merge(this.options,{textStyle:{color:"#fff"},backgroundColor:"rgba(0, 0, 0, 0.8)",effectOption:{n:30,lineWidth:1,color:"random",timeInterval:100}}),r=this.createTextShape(i.textStyle),s=this.createBackgroundShape(i.backgroundColor),l=i.effectOption,h=l.n,m=l.lineWidth,V=[],U=this.canvasWidth,d=this.canvasHeight,p=0;h>p;p++){var c=-Math.ceil(1e3*Math.random()),u=Math.ceil(400*Math.random()),y=Math.ceil(Math.random()*d),g="random"==l.color?a.random():l.color;V[p]=new o({highlightStyle:{xStart:c,yStart:y,xEnd:c+u,yEnd:y,strokeColor:g,lineWidth:m},animationX:Math.ceil(100*Math.random()),len:u})}return setInterval(function(){e(s);for(var i=0;h>i;i++){var n=V[i].highlightStyle;n.xStart>=U&&(V[i].len=Math.ceil(400*Math.random()),n.xStart=-400,n.xEnd=-400+V[i].len,n.yStart=Math.ceil(Math.random()*d),n.yEnd=n.yStart),n.xStart+=V[i].animationX,n.xEnd+=V[i].animationX,e(V[i])}e(r),t()},l.timeInterval)},t}),i("zrender/loadingEffect/Ring",["require","./Base","../tool/util","../tool/color","../shape/Ring","../shape/Sector"],function(e){function t(e){i.call(this,e)}var i=e("./Base"),n=e("../tool/util"),a=e("../tool/color"),o=e("../shape/Ring"),r=e("../shape/Sector");return n.inherits(t,i),t.prototype._start=function(e,t){var i=n.merge(this.options,{textStyle:{color:"#07a"},backgroundColor:"rgba(250, 250, 250, 0.8)",effect:{x:this.canvasWidth/2,y:this.canvasHeight/2,r0:60,r:100,color:"#bbdcff",brushType:"fill",textPosition:"inside",textFont:"normal 30px verdana",textColor:"rgba(30, 144, 255, 0.6)",timeInterval:100}}),s=i.effect,l=i.textStyle; - -null==l.x&&(l.x=s.x),null==l.y&&(l.y=s.y+(s.r0+s.r)/2-5);for(var h=this.createTextShape(i.textStyle),m=this.createBackgroundShape(i.backgroundColor),V=s.x,U=s.y,d=s.r0+6,p=s.r-6,c=s.color,u=a.lift(c,.1),y=new o({highlightStyle:n.clone(s)}),g=[],b=a.getGradientColors(["#ff6400","#ffe100","#97ff00"],25),f=15,k=240,x=0;16>x;x++)g.push(new r({highlightStyle:{x:V,y:U,r0:d,r:p,startAngle:k-f,endAngle:k,brushType:"fill",color:u},_color:a.getLinearGradient(V+d*Math.cos(k,!0),U-d*Math.sin(k,!0),V+d*Math.cos(k-f,!0),U-d*Math.sin(k-f,!0),[[0,b[2*x]],[1,b[2*x+1]]])})),k-=f;k=360;for(var x=0;4>x;x++)g.push(new r({highlightStyle:{x:V,y:U,r0:d,r:p,startAngle:k-f,endAngle:k,brushType:"fill",color:u},_color:a.getLinearGradient(V+d*Math.cos(k,!0),U-d*Math.sin(k,!0),V+d*Math.cos(k-f,!0),U-d*Math.sin(k-f,!0),[[0,b[2*x+32]],[1,b[2*x+33]]])})),k-=f;var _=0;if(null!=i.progress){e(m),_=100*this.adjust(i.progress,[0,1]).toFixed(2)/5,y.highlightStyle.text=5*_+"%",e(y);for(var x=0;20>x;x++)g[x].highlightStyle.color=_>x?g[x]._color:u,e(g[x]);return e(h),void t()}return setInterval(function(){e(m),_+=_>=20?-20:1,e(y);for(var i=0;20>i;i++)g[i].highlightStyle.color=_>i?g[i]._color:u,e(g[i]);e(h),t()},s.timeInterval)},t}),i("zrender/loadingEffect/Spin",["require","./Base","../tool/util","../tool/color","../tool/area","../shape/Sector"],function(e){function t(e){i.call(this,e)}var i=e("./Base"),n=e("../tool/util"),a=e("../tool/color"),o=e("../tool/area"),r=e("../shape/Sector");return n.inherits(t,i),t.prototype._start=function(e,t){var i=n.merge(this.options,{textStyle:{color:"#fff",textAlign:"start"},backgroundColor:"rgba(0, 0, 0, 0.8)"}),s=this.createTextShape(i.textStyle),l=10,h=o.getTextWidth(s.highlightStyle.text,s.highlightStyle.textFont),m=o.getTextHeight(s.highlightStyle.text,s.highlightStyle.textFont),V=n.merge(this.options.effect||{},{r0:9,r:15,n:18,color:"#fff",timeInterval:100}),U=this.getLocation(this.options.textStyle,h+l+2*V.r,Math.max(2*V.r,m));V.x=U.x+V.r,V.y=s.highlightStyle.y=U.y+U.height/2,s.highlightStyle.x=V.x+V.r+l;for(var d=this.createBackgroundShape(i.backgroundColor),p=V.n,c=V.x,u=V.y,y=V.r0,g=V.r,b=V.color,f=[],k=Math.round(180/p),x=0;p>x;x++)f[x]=new r({highlightStyle:{x:c,y:u,r0:y,r:g,startAngle:k*x*2,endAngle:k*x*2+k,color:a.alpha(b,(x+1)/p),brushType:"fill"}});var _=[0,c,u];return setInterval(function(){e(d),_[0]-=.3;for(var i=0;p>i;i++)f[i].rotation=_,e(f[i]);e(s),t()},V.timeInterval)},t}),i("zrender/loadingEffect/Whirling",["require","./Base","../tool/util","../tool/area","../shape/Ring","../shape/Droplet","../shape/Circle"],function(e){function t(e){i.call(this,e)}var i=e("./Base"),n=e("../tool/util"),a=e("../tool/area"),o=e("../shape/Ring"),r=e("../shape/Droplet"),s=e("../shape/Circle");return n.inherits(t,i),t.prototype._start=function(e,t){var i=n.merge(this.options,{textStyle:{color:"#888",textAlign:"start"},backgroundColor:"rgba(250, 250, 250, 0.8)"}),l=this.createTextShape(i.textStyle),h=10,m=a.getTextWidth(l.highlightStyle.text,l.highlightStyle.textFont),V=a.getTextHeight(l.highlightStyle.text,l.highlightStyle.textFont),U=n.merge(this.options.effect||{},{r:18,colorIn:"#fff",colorOut:"#555",colorWhirl:"#6cf",timeInterval:50}),d=this.getLocation(this.options.textStyle,m+h+2*U.r,Math.max(2*U.r,V));U.x=d.x+U.r,U.y=l.highlightStyle.y=d.y+d.height/2,l.highlightStyle.x=U.x+U.r+h;var p=this.createBackgroundShape(i.backgroundColor),c=new r({highlightStyle:{a:Math.round(U.r/2),b:Math.round(U.r-U.r/6),brushType:"fill",color:U.colorWhirl}}),u=new s({highlightStyle:{r:Math.round(U.r/6),brushType:"fill",color:U.colorIn}}),y=new o({highlightStyle:{r0:Math.round(U.r-U.r/3),r:U.r,brushType:"fill",color:U.colorOut}}),g=[0,U.x,U.y];return c.highlightStyle.x=u.highlightStyle.x=y.highlightStyle.x=g[1],c.highlightStyle.y=u.highlightStyle.y=y.highlightStyle.y=g[2],setInterval(function(){e(p),e(y),g[0]-=.3,c.rotation=g,e(c),e(u),e(l),t()},U.timeInterval)},t}),i("echarts/theme/macarons",[],function(){var e={color:["#2ec7c9","#b6a2de","#5ab1ef","#ffb980","#d87a80","#8d98b3","#e5cf0d","#97b552","#95706d","#dc69aa","#07a2a4","#9a7fd1","#588dd5","#f5994e","#c05050","#59678c","#c9ab00","#7eb00a","#6f5553","#c14089"],title:{textStyle:{fontWeight:"normal",color:"#008acd"}},dataRange:{itemWidth:15,color:["#5ab1ef","#e0ffff"]},toolbox:{color:["#1e90ff","#1e90ff","#1e90ff","#1e90ff"],effectiveColor:"#ff4500"},tooltip:{backgroundColor:"rgba(50,50,50,0.5)",axisPointer:{type:"line",lineStyle:{color:"#008acd"},crossStyle:{color:"#008acd"},shadowStyle:{color:"rgba(200,200,200,0.2)"}}},dataZoom:{dataBackgroundColor:"#efefff",fillerColor:"rgba(182,162,222,0.2)",handleColor:"#008acd"},grid:{borderColor:"#eee"},categoryAxis:{axisLine:{lineStyle:{color:"#008acd"}},splitLine:{lineStyle:{color:["#eee"]}}},valueAxis:{axisLine:{lineStyle:{color:"#008acd"}},splitArea:{show:!0,areaStyle:{color:["rgba(250,250,250,0.1)","rgba(200,200,200,0.1)"]}},splitLine:{lineStyle:{color:["#eee"]}}},polar:{axisLine:{lineStyle:{color:"#ddd"}},splitArea:{show:!0,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(200,200,200,0.2)"]}},splitLine:{lineStyle:{color:"#ddd"}}},timeline:{lineStyle:{color:"#008acd"},controlStyle:{normal:{color:"#008acd"},emphasis:{color:"#008acd"}},symbol:"emptyCircle",symbolSize:3},bar:{itemStyle:{normal:{barBorderRadius:5},emphasis:{barBorderRadius:5}}},line:{smooth:!0,symbol:"emptyCircle",symbolSize:3},k:{itemStyle:{normal:{color:"#d87a80",color0:"#2ec7c9",lineStyle:{color:"#d87a80",color0:"#2ec7c9"}}}},scatter:{symbol:"circle",symbolSize:4},radar:{symbol:"emptyCircle",symbolSize:3},map:{itemStyle:{normal:{areaStyle:{color:"#ddd"},label:{textStyle:{color:"#d87a80"}}},emphasis:{areaStyle:{color:"#fe994e"}}}},force:{itemStyle:{normal:{linkStyle:{color:"#1e90ff"}}}},chord:{itemStyle:{normal:{borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)",chordStyle:{lineStyle:{color:"rgba(128, 128, 128, 0.5)"}}},emphasis:{borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)",chordStyle:{lineStyle:{color:"rgba(128, 128, 128, 0.5)"}}}}},gauge:{axisLine:{lineStyle:{color:[[.2,"#2ec7c9"],[.8,"#5ab1ef"],[1,"#d87a80"]],width:10}},axisTick:{splitNumber:10,length:15,lineStyle:{color:"auto"}},splitLine:{length:22,lineStyle:{color:"auto"}},pointer:{width:5}},textStyle:{fontFamily:"微软雅黑, Arial, Verdana, sans-serif"}};return e}),i("echarts/theme/infographic",[],function(){var e={color:["#C1232B","#B5C334","#FCCE10","#E87C25","#27727B","#FE8463","#9BCA63","#FAD860","#F3A43B","#60C0DD","#D7504B","#C6E579","#F4E001","#F0805A","#26C0C0"],title:{textStyle:{fontWeight:"normal",color:"#27727B"}},dataRange:{x:"right",y:"center",itemWidth:5,itemHeight:25,color:["#C1232B","#FCCE10"]},toolbox:{color:["#C1232B","#B5C334","#FCCE10","#E87C25","#27727B","#FE8463","#9BCA63","#FAD860","#F3A43B","#60C0DD"],effectiveColor:"#ff4500"},tooltip:{backgroundColor:"rgba(50,50,50,0.5)",axisPointer:{type:"line",lineStyle:{color:"#27727B",type:"dashed"},crossStyle:{color:"#27727B"},shadowStyle:{color:"rgba(200,200,200,0.3)"}}},dataZoom:{dataBackgroundColor:"rgba(181,195,52,0.3)",fillerColor:"rgba(181,195,52,0.2)",handleColor:"#27727B"},grid:{borderWidth:0},categoryAxis:{axisLine:{lineStyle:{color:"#27727B"}},splitLine:{show:!1}},valueAxis:{axisLine:{show:!1},splitArea:{show:!1},splitLine:{lineStyle:{color:["#ccc"],type:"dashed"}}},polar:{axisLine:{lineStyle:{color:"#ddd"}},splitArea:{show:!0,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(200,200,200,0.2)"]}},splitLine:{lineStyle:{color:"#ddd"}}},timeline:{lineStyle:{color:"#27727B"},controlStyle:{normal:{color:"#27727B"},emphasis:{color:"#27727B"}},symbol:"emptyCircle",symbolSize:3},line:{itemStyle:{normal:{borderWidth:2,borderColor:"#fff",lineStyle:{width:3}},emphasis:{borderWidth:0}},symbol:"circle",symbolSize:3.5},k:{itemStyle:{normal:{color:"#C1232B",color0:"#B5C334",lineStyle:{width:1,color:"#C1232B",color0:"#B5C334"}}}},scatter:{itemStyle:{normal:{borderWidth:1,borderColor:"rgba(200,200,200,0.5)"},emphasis:{borderWidth:0}},symbol:"star4",symbolSize:4},radar:{symbol:"emptyCircle",symbolSize:3},map:{itemStyle:{normal:{areaStyle:{color:"#ddd"},label:{textStyle:{color:"#C1232B"}}},emphasis:{areaStyle:{color:"#fe994e"},label:{textStyle:{color:"rgb(100,0,0)"}}}}},force:{itemStyle:{normal:{linkStyle:{color:"#27727B"}}}},chord:{itemStyle:{normal:{borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)",chordStyle:{lineStyle:{color:"rgba(128, 128, 128, 0.5)"}}},emphasis:{borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)",chordStyle:{lineStyle:{color:"rgba(128, 128, 128, 0.5)"}}}}},gauge:{center:["50%","80%"],radius:"100%",startAngle:180,endAngle:0,axisLine:{show:!0,lineStyle:{color:[[.2,"#B5C334"],[.8,"#27727B"],[1,"#C1232B"]],width:"40%"}},axisTick:{splitNumber:2,length:5,lineStyle:{color:"#fff"}},axisLabel:{textStyle:{color:"#fff",fontWeight:"bolder"}},splitLine:{length:"5%",lineStyle:{color:"#fff"}},pointer:{width:"40%",length:"80%",color:"#fff"},title:{offsetCenter:[0,-20],textStyle:{color:"auto",fontSize:20}},detail:{offsetCenter:[0,0],textStyle:{color:"auto",fontSize:40}}},textStyle:{fontFamily:"微软雅黑, Arial, Verdana, sans-serif"}};return e}),i("zrender/dep/excanvas",["require"],function(){return document.createElement("canvas").getContext?G_vmlCanvasManager=!1:!function(){function e(){return this.context_||(this.context_=new f(this))}function t(e,t){var i=O.call(arguments,2);return function(){return e.apply(t,i.concat(O.call(arguments)))}}function i(e){return String(e).replace(/&/g,"&").replace(/"/g,""")}function n(e,t,i){e.namespaces[t]||e.namespaces.add(t,i,"#default#VML")}function a(e){if(n(e,"g_vml_","urn:schemas-microsoft-com:vml"),n(e,"g_o_","urn:schemas-microsoft-com:office:office"),!e.styleSheets.ex_canvas_){var t=e.createStyleSheet();t.owningElement.id="ex_canvas_",t.cssText="canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}"}}function o(e){var t=e.srcElement;switch(e.propertyName){case"width":t.getContext().clearRect(),t.style.width=t.attributes.width.nodeValue+"px",t.firstChild.style.width=t.clientWidth+"px";break;case"height":t.getContext().clearRect(),t.style.height=t.attributes.height.nodeValue+"px",t.firstChild.style.height=t.clientHeight+"px"}}function r(e){var t=e.srcElement;t.firstChild&&(t.firstChild.style.width=t.clientWidth+"px",t.firstChild.style.height=t.clientHeight+"px")}function s(){return[[1,0,0],[0,1,0],[0,0,1]]}function l(e,t){for(var i=s(),n=0;3>n;n++)for(var a=0;3>a;a++){for(var o=0,r=0;3>r;r++)o+=e[n][r]*t[r][a];i[n][a]=o}return i}function h(e,t){t.fillStyle=e.fillStyle,t.lineCap=e.lineCap,t.lineJoin=e.lineJoin,t.lineWidth=e.lineWidth,t.miterLimit=e.miterLimit,t.shadowBlur=e.shadowBlur,t.shadowColor=e.shadowColor,t.shadowOffsetX=e.shadowOffsetX,t.shadowOffsetY=e.shadowOffsetY,t.strokeStyle=e.strokeStyle,t.globalAlpha=e.globalAlpha,t.font=e.font,t.textAlign=e.textAlign,t.textBaseline=e.textBaseline,t.scaleX_=e.scaleX_,t.scaleY_=e.scaleY_,t.lineScale_=e.lineScale_}function m(e){var t=e.indexOf("(",3),i=e.indexOf(")",t+1),n=e.substring(t+1,i).split(",");return(4!=n.length||"a"!=e.charAt(3))&&(n[3]=1),n}function V(e){return parseFloat(e)/100}function U(e,t,i){return Math.min(i,Math.max(t,e))}function d(e){var t,i,n,a,o,r;if(a=parseFloat(e[0])/360%360,0>a&&a++,o=U(V(e[1]),0,1),r=U(V(e[2]),0,1),0==o)t=i=n=r;else{var s=.5>r?r*(1+o):r+o-r*o,l=2*r-s;t=p(l,s,a+1/3),i=p(l,s,a),n=p(l,s,a-1/3)}return"#"+D[Math.floor(255*t)]+D[Math.floor(255*i)]+D[Math.floor(255*n)]}function p(e,t,i){return 0>i&&i++,i>1&&i--,1>6*i?e+6*(t-e)*i:1>2*i?t:2>3*i?e+(t-e)*(2/3-i)*6:e}function c(e){if(e in R)return R[e];var t,i=1;if(e=String(e),"#"==e.charAt(0))t=e;else if(/^rgb/.test(e)){for(var n,a=m(e),t="#",o=0;3>o;o++)n=-1!=a[o].indexOf("%")?Math.floor(255*V(a[o])):+a[o],t+=D[U(n,0,255)];i=+a[3]}else if(/^hsl/.test(e)){var a=m(e);t=d(a),i=a[3]}else t=H[e]||e;return R[e]={color:t,alpha:i}}function u(e){if(Y[e])return Y[e];var t,i=document.createElement("div"),n=i.style;try{n.font=e,t=n.fontFamily.split(",")[0]}catch(a){}return Y[e]={style:n.fontStyle||G.style,variant:n.fontVariant||G.variant,weight:n.fontWeight||G.weight,size:n.fontSize||G.size,family:t||G.family}}function y(e,t){var i={};for(var n in e)i[n]=e[n];var a=parseFloat(t.currentStyle.fontSize),o=parseFloat(e.size);return i.size="number"==typeof e.size?e.size:-1!=e.size.indexOf("px")?o:-1!=e.size.indexOf("em")?a*o:-1!=e.size.indexOf("%")?a/100*o:-1!=e.size.indexOf("pt")?o/.75:a,i}function g(e){return e.style+" "+e.variant+" "+e.weight+" "+e.size+"px '"+e.family+"'"}function b(e){return Q[e]||"square"}function f(e){this.m_=s(),this.mStack_=[],this.aStack_=[],this.currentPath_=[],this.strokeStyle="#000",this.fillStyle="#000",this.lineWidth=1,this.lineJoin="miter",this.lineCap="butt",this.miterLimit=1*A,this.globalAlpha=1,this.font="12px 微软雅黑",this.textAlign="left",this.textBaseline="alphabetic",this.canvas=e;var t="width:"+e.clientWidth+"px;height:"+e.clientHeight+"px;overflow:hidden;position:absolute",i=e.ownerDocument.createElement("div");i.style.cssText=t,e.appendChild(i);var n=i.cloneNode(!1);n.style.backgroundColor="#fff",n.style.filter="alpha(opacity=0)",e.appendChild(n),this.element_=i,this.scaleX_=1,this.scaleY_=1,this.lineScale_=1}function k(e,t,i,n){e.currentPath_.push({type:"bezierCurveTo",cp1x:t.x,cp1y:t.y,cp2x:i.x,cp2y:i.y,x:n.x,y:n.y}),e.currentX_=n.x,e.currentY_=n.y}function x(e,t){var i=c(e.strokeStyle),n=i.color,a=i.alpha*e.globalAlpha,o=e.lineScale_*e.lineWidth;1>o&&(a*=o),t.push("')}function _(e,t,i,n){var a=e.fillStyle,o=e.scaleX_,r=e.scaleY_,s=n.x-i.x,l=n.y-i.y;if(a instanceof v){var h=0,m={x:0,y:0},V=0,U=1;if("gradient"==a.type_){var d=a.x0_/o,p=a.y0_/r,u=a.x1_/o,y=a.y1_/r,g=L(e,d,p),b=L(e,u,y),f=b.x-g.x,k=b.y-g.y;h=180*Math.atan2(f,k)/Math.PI,0>h&&(h+=360),1e-6>h&&(h=0)}else{var g=L(e,a.x0_,a.y0_);m={x:(g.x-i.x)/s,y:(g.y-i.y)/l},s/=o*A,l/=r*A;var x=C.max(s,l);V=2*a.r0_/x,U=2*a.r1_/x-V}var _=a.colors_;_.sort(function(e,t){return e.offset-t.offset});for(var W=_.length,X=_[0].color,K=_[W-1].color,I=_[0].alpha*e.globalAlpha,J=_[W-1].alpha*e.globalAlpha,S=[],E=0;W>E;E++){var F=_[E];S.push(F.offset*U+V+" "+F.color)}t.push('')}else if(a instanceof w){if(s&&l){var T=-i.x,z=-i.y;t.push("')}}else{var M=c(e.fillStyle),O=M.color,P=M.alpha*e.globalAlpha;t.push('')}}function L(e,t,i){var n=e.m_;return{x:A*(t*n[0][0]+i*n[1][0]+n[2][0])-M,y:A*(t*n[0][1]+i*n[1][1]+n[2][1])-M}}function W(e){return isFinite(e[0][0])&&isFinite(e[0][1])&&isFinite(e[1][0])&&isFinite(e[1][1])&&isFinite(e[2][0])&&isFinite(e[2][1])}function X(e,t,i){if(W(t)&&(e.m_=t,e.scaleX_=Math.sqrt(t[0][0]*t[0][0]+t[0][1]*t[0][1]),e.scaleY_=Math.sqrt(t[1][0]*t[1][0]+t[1][1]*t[1][1]),i)){var n=t[0][0]*t[1][1]-t[0][1]*t[1][0];e.lineScale_=z(T(n))}}function v(e){this.type_=e,this.x0_=0,this.y0_=0,this.r0_=0,this.x1_=0,this.y1_=0,this.r1_=0,this.colors_=[]}function w(e,t){switch(I(e),t){case"repeat":case null:case"":this.repetition_="repeat";break;case"repeat-x":case"repeat-y":case"no-repeat":this.repetition_=t;break;default:K("SYNTAX_ERR")}this.src_=e.src,this.width_=e.width,this.height_=e.height}function K(e){throw new J(e)}function I(e){e&&1==e.nodeType&&"IMG"==e.tagName||K("TYPE_MISMATCH_ERR"),"complete"!=e.readyState&&K("INVALID_STATE_ERR")}function J(e){this.code=this[e],this.message=e+": DOM Exception "+this.code}var C=Math,S=C.round,E=C.sin,F=C.cos,T=C.abs,z=C.sqrt,A=10,M=A/2,O=(+navigator.userAgent.match(/MSIE ([\d.]+)?/)[1],Array.prototype.slice);a(document);var P={init:function(e){var i=e||document;i.createElement("canvas"),i.attachEvent("onreadystatechange",t(this.init_,this,i))},init_:function(e){for(var t=e.getElementsByTagName("canvas"),i=0;iN;N++)for(var B=0;16>B;B++)D[16*N+B]=N.toString(16)+B.toString(16);var H={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgreen:"#006400",darkgrey:"#A9A9A9",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",grey:"#808080",greenyellow:"#ADFF2F",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082",ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgreen:"#90EE90",lightgrey:"#D3D3D3",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",oldlace:"#FDF5E6",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",whitesmoke:"#F5F5F5",yellowgreen:"#9ACD32"},R={},G={style:"normal",variant:"normal",weight:"normal",size:12,family:"微软雅黑"},Y={},Q={butt:"flat",round:"round"},Z=f.prototype;Z.clearRect=function(){this.textMeasureEl_&&(this.textMeasureEl_.removeNode(!0),this.textMeasureEl_=null),this.element_.innerHTML=""},Z.beginPath=function(){this.currentPath_=[]},Z.moveTo=function(e,t){var i=L(this,e,t);this.currentPath_.push({type:"moveTo",x:i.x,y:i.y}),this.currentX_=i.x,this.currentY_=i.y},Z.lineTo=function(e,t){var i=L(this,e,t);this.currentPath_.push({type:"lineTo",x:i.x,y:i.y}),this.currentX_=i.x,this.currentY_=i.y},Z.bezierCurveTo=function(e,t,i,n,a,o){var r=L(this,a,o),s=L(this,e,t),l=L(this,i,n);k(this,s,l,r)},Z.quadraticCurveTo=function(e,t,i,n){var a=L(this,e,t),o=L(this,i,n),r={x:this.currentX_+2/3*(a.x-this.currentX_),y:this.currentY_+2/3*(a.y-this.currentY_)},s={x:r.x+(o.x-this.currentX_)/3,y:r.y+(o.y-this.currentY_)/3};k(this,r,s,o)},Z.arc=function(e,t,i,n,a,o){i*=A;var r=o?"at":"wa",s=e+F(n)*i-M,l=t+E(n)*i-M,h=e+F(a)*i-M,m=t+E(a)*i-M;s!=h||o||(s+=.125);var V=L(this,e,t),U=L(this,s,l),d=L(this,h,m);this.currentPath_.push({type:r,x:V.x,y:V.y,radius:i,xStart:U.x,yStart:U.y,xEnd:d.x,yEnd:d.y})},Z.rect=function(e,t,i,n){this.moveTo(e,t),this.lineTo(e+i,t),this.lineTo(e+i,t+n),this.lineTo(e,t+n),this.closePath()},Z.strokeRect=function(e,t,i,n){var a=this.currentPath_;this.beginPath(),this.moveTo(e,t),this.lineTo(e+i,t),this.lineTo(e+i,t+n),this.lineTo(e,t+n),this.closePath(),this.stroke(),this.currentPath_=a},Z.fillRect=function(e,t,i,n){var a=this.currentPath_;this.beginPath(),this.moveTo(e,t),this.lineTo(e+i,t),this.lineTo(e+i,t+n),this.lineTo(e,t+n),this.closePath(),this.fill(),this.currentPath_=a},Z.createLinearGradient=function(e,t,i,n){var a=new v("gradient");return a.x0_=e,a.y0_=t,a.x1_=i,a.y1_=n,a},Z.createRadialGradient=function(e,t,i,n,a,o){var r=new v("gradientradial");return r.x0_=e,r.y0_=t,r.r0_=i,r.x1_=n,r.y1_=a,r.r1_=o,r},Z.drawImage=function(e){var t,i,n,a,o,r,s,l,h=e.runtimeStyle.width,m=e.runtimeStyle.height;e.runtimeStyle.width="auto",e.runtimeStyle.height="auto";var V=e.width,U=e.height;if(e.runtimeStyle.width=h,e.runtimeStyle.height=m,3==arguments.length)t=arguments[1],i=arguments[2],o=r=0,s=n=V,l=a=U;else if(5==arguments.length)t=arguments[1],i=arguments[2],n=arguments[3],a=arguments[4],o=r=0,s=V,l=U;else{if(9!=arguments.length)throw Error("Invalid number of arguments");o=arguments[1],r=arguments[2],s=arguments[3],l=arguments[4],t=arguments[5],i=arguments[6],n=arguments[7],a=arguments[8]}var d=L(this,t,i),p=[],c=10,u=10,y=b=1;if(p.push(" '),(o||r)&&p.push('
'),p.push('
'),(o||r)&&p.push("
"),p.push("
"),this.element_.insertAdjacentHTML("BeforeEnd",p.join(""))},Z.stroke=function(e){var t=[],i=10,n=10;t.push("o.x)&&(o.x=l.x),(null==a.y||l.yo.y)&&(o.y=l.y))}t.push(' ">'),e?_(this,t,a,o):x(this,t),t.push(""),this.element_.insertAdjacentHTML("beforeEnd",t.join(""))},Z.fill=function(){this.stroke(!0)},Z.closePath=function(){this.currentPath_.push({type:"close"})},Z.save=function(){var e={};h(this,e),this.aStack_.push(e),this.mStack_.push(this.m_),this.m_=l(s(),this.m_)},Z.restore=function(){this.aStack_.length&&(h(this.aStack_.pop(),this),this.m_=this.mStack_.pop())},Z.translate=function(e,t){var i=[[1,0,0],[0,1,0],[e,t,1]];X(this,l(i,this.m_),!1)},Z.rotate=function(e){var t=F(e),i=E(e),n=[[t,i,0],[-i,t,0],[0,0,1]];X(this,l(n,this.m_),!1)},Z.scale=function(e,t){var i=[[e,0,0],[0,t,0],[0,0,1]];X(this,l(i,this.m_),!0)},Z.transform=function(e,t,i,n,a,o){var r=[[e,t,0],[i,n,0],[a,o,1]];X(this,l(r,this.m_),!0)},Z.setTransform=function(e,t,i,n,a,o){var r=[[e,t,0],[i,n,0],[a,o,1]];X(this,r,!0)},Z.drawText_=function(e,t,n,a,o){var r=this.m_,s=1e3,l=0,h=s,m={x:0,y:0},V=[],U=y(u(this.font),this.element_),d=g(U),p=this.element_.currentStyle,c=this.textAlign.toLowerCase();switch(c){case"left":case"center":case"right":break;case"end":c="ltr"==p.direction?"right":"left";break;case"start":c="rtl"==p.direction?"right":"left";break;default:c="left"}switch(this.textBaseline){case"hanging":case"top":m.y=U.size/1.75;break;case"middle":break;default:case null:case"alphabetic":case"ideographic":case"bottom":m.y=-U.size/2.25}switch(c){case"right":l=s,h=.05;break;case"center":l=h=s/2}var b=L(this,t+m.x,n+m.y);V.push(''),o?x(this,V):_(this,V,{x:-l,y:0},{x:h,y:U.size});var f=r[0][0].toFixed(3)+","+r[1][0].toFixed(3)+","+r[0][1].toFixed(3)+","+r[1][1].toFixed(3)+",0,0",k=S(b.x/A)+","+S(b.y/A);V.push('','',''),this.element_.insertAdjacentHTML("beforeEnd",V.join(""))},Z.fillText=function(e,t,i,n){this.drawText_(e,t,i,n,!1)},Z.strokeText=function(e,t,i,n){this.drawText_(e,t,i,n,!0)},Z.measureText=function(e){if(!this.textMeasureEl_){var t='';this.element_.insertAdjacentHTML("beforeEnd",t),this.textMeasureEl_=this.element_.lastChild}var i=this.element_.ownerDocument;this.textMeasureEl_.innerHTML="";try{this.textMeasureEl_.style.font=this.font}catch(n){}return this.textMeasureEl_.appendChild(i.createTextNode(e)),{width:this.textMeasureEl_.offsetWidth}},Z.clip=function(){},Z.arcTo=function(){},Z.createPattern=function(e,t){return new w(e,t)},v.prototype.addColorStop=function(e,t){t=c(t),this.colors_.push({offset:e,color:t.color,alpha:t.alpha})};var q=J.prototype=new Error;q.INDEX_SIZE_ERR=1,q.DOMSTRING_SIZE_ERR=2,q.HIERARCHY_REQUEST_ERR=3,q.WRONG_DOCUMENT_ERR=4,q.INVALID_CHARACTER_ERR=5,q.NO_DATA_ALLOWED_ERR=6,q.NO_MODIFICATION_ALLOWED_ERR=7,q.NOT_FOUND_ERR=8,q.NOT_SUPPORTED_ERR=9,q.INUSE_ATTRIBUTE_ERR=10,q.INVALID_STATE_ERR=11,q.SYNTAX_ERR=12,q.INVALID_MODIFICATION_ERR=13,q.NAMESPACE_ERR=14,q.INVALID_ACCESS_ERR=15,q.VALIDATION_ERR=16,q.TYPE_MISMATCH_ERR=17,G_vmlCanvasManager=P,CanvasRenderingContext2D=f,CanvasGradient=v,CanvasPattern=w,DOMException=J}(),G_vmlCanvasManager}),i("zrender/mixin/Eventful",["require"],function(){var e=function(){this._handlers={}};return e.prototype.one=function(e,t,i){var n=this._handlers;return t&&e?(n[e]||(n[e]=[]),n[e].push({h:t,one:!0,ctx:i||this}),this):this},e.prototype.bind=function(e,t,i){var n=this._handlers;return t&&e?(n[e]||(n[e]=[]),n[e].push({h:t,one:!1,ctx:i||this}),this):this},e.prototype.unbind=function(e,t){var i=this._handlers;if(!e)return this._handlers={},this;if(t){if(i[e]){for(var n=[],a=0,o=i[e].length;o>a;a++)i[e][a].h!=t&&n.push(i[e][a]);i[e]=n}i[e]&&0===i[e].length&&delete i[e]}else delete i[e];return this},e.prototype.dispatch=function(e){if(this._handlers[e]){var t=arguments,i=t.length;i>3&&(t=Array.prototype.slice.call(t,1));for(var n=this._handlers[e],a=n.length,o=0;a>o;){switch(i){case 1:n[o].h.call(n[o].ctx);break;case 2:n[o].h.call(n[o].ctx,t[1]);break;case 3:n[o].h.call(n[o].ctx,t[1],t[2]);break;default:n[o].h.apply(n[o].ctx,t)}n[o].one?(n.splice(o,1),a--):o++}}return this},e.prototype.dispatchWithContext=function(e){if(this._handlers[e]){var t=arguments,i=t.length;i>4&&(t=Array.prototype.slice.call(t,1,t.length-1));for(var n=t[t.length-1],a=this._handlers[e],o=a.length,r=0;o>r;){switch(i){case 1:a[r].h.call(n);break;case 2:a[r].h.call(n,t[1]);break;case 3:a[r].h.call(n,t[1],t[2]);break;default:a[r].h.apply(n,t)}a[r].one?(a.splice(r,1),o--):r++}}return this},e}),i("zrender/tool/log",["require","../config"],function(e){var t=e("../config");return function(){if(0!==t.debugMode)if(1==t.debugMode)for(var e in arguments)throw new Error(arguments[e]);else if(t.debugMode>1)for(var e in arguments)console.log(arguments[e])}}),i("zrender/tool/guid",[],function(){var e=2311;return function(){return"zrender__"+e++}}),i("zrender/Handler",["require","./config","./tool/env","./tool/event","./tool/util","./tool/vector","./tool/matrix","./mixin/Eventful"],function(e){"use strict";function t(e,t){return function(i,n){return e.call(t,i,n)}}function i(e,t){return function(i,n,a){return e.call(t,i,n,a)}}function n(e){for(var i=d.length;i--;){var n=d[i];e["_"+n+"Handler"]=t(c[n],e)}}function a(e,t,i){if(this._draggingTarget&&this._draggingTarget.id==e.id||e.isSilent())return!1;var n=this._event;if(e.isCover(t,i)){e.hoverable&&this.storage.addHover(e);for(var a=e.parent;a;){if(a.clipShape&&!a.clipShape.isCover(this._mouseX,this._mouseY))return!1;a=a.parent}return this._lastHover!=e&&(this._processOutShape(n),this._processDragLeave(n),this._lastHover=e,this._processDragEnter(n)),this._processOverShape(n),this._processDragOver(n),this._hasfound=1,!0}return!1}var o=e("./config"),r=e("./tool/env"),s=e("./tool/event"),l=e("./tool/util"),h=e("./tool/vector"),m=e("./tool/matrix"),V=o.EVENT,U=e("./mixin/Eventful"),d=["resize","click","dblclick","mousewheel","mousemove","mouseout","mouseup","mousedown","touchstart","touchend","touchmove"],p=function(e){if(window.G_vmlCanvasManager)return!0;e=e||window.event;var t=e.toElement||e.relatedTarget||e.srcElement||e.target;return t&&t.className.match(o.elementClassName)},c={resize:function(e){e=e||window.event,this._lastHover=null,this._isMouseDown=0,this.dispatch(V.RESIZE,e)},click:function(e,t){if(p(e)||t){e=this._zrenderEventFixed(e);var i=this._lastHover;(i&&i.clickable||!i)&&this._clickThreshold<5&&this._dispatchAgency(i,V.CLICK,e),this._mousemoveHandler(e)}},dblclick:function(e,t){if(p(e)||t){e=e||window.event,e=this._zrenderEventFixed(e);var i=this._lastHover;(i&&i.clickable||!i)&&this._clickThreshold<5&&this._dispatchAgency(i,V.DBLCLICK,e),this._mousemoveHandler(e)}},mousewheel:function(e,t){if(p(e)||t){e=this._zrenderEventFixed(e);var i=e.wheelDelta||-e.detail,n=i>0?1.1:1/1.1,a=!1,o=this._mouseX,r=this._mouseY;this.painter.eachBuildinLayer(function(t){var i=t.position;if(t.zoomable){t.__zoom=t.__zoom||1;var l=t.__zoom;l*=n,l=Math.max(Math.min(t.maxZoom,l),t.minZoom),n=l/t.__zoom,t.__zoom=l,i[0]-=(o-i[0])*(n-1),i[1]-=(r-i[1])*(n-1),t.scale[0]*=n,t.scale[1]*=n,t.dirty=!0,a=!0,s.stop(e)}}),a&&this.painter.refresh(),this._dispatchAgency(this._lastHover,V.MOUSEWHEEL,e),this._mousemoveHandler(e)}},mousemove:function(e,t){if((p(e)||t)&&!this.painter.isLoading()){e=this._zrenderEventFixed(e),this._lastX=this._mouseX,this._lastY=this._mouseY,this._mouseX=s.getX(e),this._mouseY=s.getY(e);var i=this._mouseX-this._lastX,n=this._mouseY-this._lastY;this._processDragStart(e),this._hasfound=0,this._event=e,this._iterateAndFindHover(),this._hasfound||((!this._draggingTarget||this._lastHover&&this._lastHover!=this._draggingTarget)&&(this._processOutShape(e), -this._processDragLeave(e)),this._lastHover=null,this.storage.delHover(),this.painter.clearHover());var a="default";if(this._draggingTarget)this.storage.drift(this._draggingTarget.id,i,n),this._draggingTarget.modSelf(),this.storage.addHover(this._draggingTarget),this._clickThreshold++;else if(this._isMouseDown){var o=!1;this.painter.eachBuildinLayer(function(e){e.panable&&(a="move",e.position[0]+=i,e.position[1]+=n,o=!0,e.dirty=!0)}),o&&this.painter.refresh()}this._draggingTarget||this._hasfound&&this._lastHover.draggable?a="move":this._hasfound&&this._lastHover.clickable&&(a="pointer"),this.root.style.cursor=a,this._dispatchAgency(this._lastHover,V.MOUSEMOVE,e),(this._draggingTarget||this._hasfound||this.storage.hasHoverShape())&&this.painter.refreshHover()}},mouseout:function(e,t){if(p(e)||t){e=this._zrenderEventFixed(e);var i=e.toElement||e.relatedTarget;if(i!=this.root)for(;i&&9!=i.nodeType;){if(i==this.root)return void this._mousemoveHandler(e);i=i.parentNode}e.zrenderX=this._lastX,e.zrenderY=this._lastY,this.root.style.cursor="default",this._isMouseDown=0,this._processOutShape(e),this._processDrop(e),this._processDragEnd(e),this.painter.isLoading()||this.painter.refreshHover(),this.dispatch(V.GLOBALOUT,e)}},mousedown:function(e,t){if(p(e)||t){if(this._clickThreshold=0,2==this._lastDownButton)return this._lastDownButton=e.button,void(this._mouseDownTarget=null);this._lastMouseDownMoment=new Date,e=this._zrenderEventFixed(e),this._isMouseDown=1,this._mouseDownTarget=this._lastHover,this._dispatchAgency(this._lastHover,V.MOUSEDOWN,e),this._lastDownButton=e.button}},mouseup:function(e,t){(p(e)||t)&&(e=this._zrenderEventFixed(e),this.root.style.cursor="default",this._isMouseDown=0,this._mouseDownTarget=null,this._dispatchAgency(this._lastHover,V.MOUSEUP,e),this._processDrop(e),this._processDragEnd(e))},touchstart:function(e,t){(p(e)||t)&&(e=this._zrenderEventFixed(e,!0),this._lastTouchMoment=new Date,this._mobileFindFixed(e),this._mousedownHandler(e))},touchmove:function(e,t){(p(e)||t)&&(e=this._zrenderEventFixed(e,!0),this._mousemoveHandler(e),this._isDragging&&s.stop(e))},touchend:function(e,t){if(p(e)||t){e=this._zrenderEventFixed(e,!0),this._mouseupHandler(e);var i=new Date;i-this._lastTouchMoment=0;o--){var r=n[o];if(t!==r.zlevel&&(i=this.painter.getLayer(r.zlevel,i),a[0]=this._mouseX,a[1]=this._mouseY,i.needTransform&&(m.invert(e,i.transform),h.applyTransform(a,a,e))),this._findHover(r,a[0],a[1]))break}}}();var y=[{x:10},{x:-20},{x:10,y:10},{y:-20}];return u.prototype._mobileFindFixed=function(e){this._lastHover=null,this._mouseX=e.zrenderX,this._mouseY=e.zrenderY,this._event=e,this._iterateAndFindHover();for(var t=0;!this._lastHover&&ts;s++){var h=e[s];if(n!==h.zlevel&&(i&&(i.needTransform&&o.restore(),o.flush&&o.flush()),n=h.zlevel,i=this.getLayer(n),i.isBuildin||r("ZLevel "+n+" has been used by unkown layer "+i.id),o=i.ctx,i.unusedCount=0,(i.dirty||t)&&i.clear(),i.needTransform&&(o.save(),i.setTransform(o))),(i.dirty||t)&&!h.invisible&&(!h.onbrush||h.onbrush&&!h.onbrush(o,!1)))if(a.catchBrushException)try{h.brush(o,!1,this.refreshNextFrame)}catch(m){r(m,"brush error of "+h.type,h)}else h.brush(o,!1,this.refreshNextFrame);h.__dirty=!1}i&&(i.needTransform&&o.restore(),o.flush&&o.flush()),this.eachBuildinLayer(this._postProcessLayer)},h.prototype.getLayer=function(e){var t=this._layers[e];return t||(t=new l(e,this),t.isBuildin=!0,this._layerConfig[e]&&o.merge(t,this._layerConfig[e],!0),t.updateTransform(),this.insertLayer(e,t),t.initContext()),t},h.prototype.insertLayer=function(e,t){if(this._layers[e])return void r("ZLevel "+e+" has been used already");if(!n(t))return void r("Layer of zlevel "+e+" is not valid");var i=this._zlevelList.length,a=null,o=-1;if(i>0&&e>this._zlevelList[0]){for(o=0;i-1>o&&!(this._zlevelList[o]e);o++);a=this._layers[this._zlevelList[o]]}this._zlevelList.splice(o+1,0,e);var s=a?a.dom:this._bgDom;s.nextSibling?s.parentNode.insertBefore(t.dom,s.nextSibling):s.parentNode.appendChild(t.dom),this._layers[e]=t},h.prototype.eachLayer=function(e,t){for(var i=0;in;n++){var o=e[n],r=o.zlevel,s=t[r];if(s){if(s.elCount++,s.dirty)continue;s.dirty=o.__dirty}}this.eachBuildinLayer(function(e,t){i[t]!==e.elCount&&(e.dirty=!0)})},h.prototype.refreshShapes=function(e,t){for(var i=0,n=e.length;n>i;i++){var a=e[i];a.modSelf()}return this.refresh(t),this},h.prototype.setLoadingEffect=function(e){return this._loadingEffect=e,this},h.prototype.clear=function(){return this.eachBuildinLayer(this._clearLayer),this},h.prototype._clearLayer=function(e){e.clear()},h.prototype.modLayer=function(e,t){if(t){this._layerConfig[e]?o.merge(this._layerConfig[e],t,!0):this._layerConfig[e]=t;var i=this._layers[e];i&&o.merge(i,this._layerConfig[e],!0)}},h.prototype.delLayer=function(e){var t=this._layers[e];t&&(this.modLayer(e,{position:t.position,rotation:t.rotation,scale:t.scale}),t.dom.parentNode.removeChild(t.dom),delete this._layers[e],this._zlevelList.splice(o.indexOf(this._zlevelList,e),1))},h.prototype.refreshHover=function(){this.clearHover();for(var e=this.storage.getHoverShapes(!0),t=0,i=e.length;i>t;t++)this._brushHover(e[t]);var n=this._layers.hover.ctx;return n.flush&&n.flush(),this.storage.delHover(),this},h.prototype.clearHover=function(){var e=this._layers.hover;return e&&e.clear(),this},h.prototype.showLoading=function(e){return this._loadingEffect&&this._loadingEffect.stop(),e&&this.setLoadingEffect(e),this._loadingEffect.start(this),this.loading=!0,this},h.prototype.hideLoading=function(){return this._loadingEffect.stop(),this.clearHover(),this.loading=!1,this},h.prototype.isLoading=function(){return this.loading},h.prototype.resize=function(){var e=this._domRoot;e.style.display="none";var t=this._getWidth(),i=this._getHeight();if(e.style.display="",this._width!=t||i!=this._height){this._width=t,this._height=i,e.style.width=t+"px",e.style.height=i+"px";for(var n in this._layers)this._layers[n].resize(t,i);this.refresh(null,!0)}return this},h.prototype.clearLayer=function(e){var t=this._layers[e];t&&t.clear()},h.prototype.dispose=function(){this.isLoading()&&this.hideLoading(),this.root.innerHTML="",this.root=this.storage=this._domRoot=this._layers=null},h.prototype.getDomHover=function(){return this._layers.hover.dom},h.prototype.toDataURL=function(e,t,i){if(window.G_vmlCanvasManager)return null;var n=new l("image",this);this._bgDom.appendChild(n.dom),n.initContext();var o=n.ctx;n.clearColor=t||"#fff",n.clear();var s=this;this.storage.iterShape(function(e){if(!e.invisible&&(!e.onbrush||e.onbrush&&!e.onbrush(o,!1)))if(a.catchBrushException)try{e.brush(o,!1,s.refreshNextFrame)}catch(t){r(t,"brush error of "+e.type,e)}else e.brush(o,!1,s.refreshNextFrame)},{normal:"up",update:!0});var h=n.dom.toDataURL(e,i);return o=null,this._bgDom.removeChild(n.dom),h},h.prototype.getWidth=function(){return this._width},h.prototype.getHeight=function(){return this._height},h.prototype._getWidth=function(){var e=this.root,t=e.currentStyle||document.defaultView.getComputedStyle(e);return((e.clientWidth||parseInt(t.width,10))-parseInt(t.paddingLeft,10)-parseInt(t.paddingRight,10)).toFixed(0)-0},h.prototype._getHeight=function(){var e=this.root,t=e.currentStyle||document.defaultView.getComputedStyle(e);return((e.clientHeight||parseInt(t.height,10))-parseInt(t.paddingTop,10)-parseInt(t.paddingBottom,10)).toFixed(0)-0},h.prototype._brushHover=function(e){var t=this._layers.hover.ctx;if(!e.onbrush||e.onbrush&&!e.onbrush(t,!0)){var i=this.getLayer(e.zlevel);if(i.needTransform&&(t.save(),i.setTransform(t)),a.catchBrushException)try{e.brush(t,!0,this.refreshNextFrame)}catch(n){r(n,"hoverBrush error of "+e.type,e)}else e.brush(t,!0,this.refreshNextFrame);i.needTransform&&t.restore()}},h.prototype._shapeToImage=function(t,i,n,a,o){var r=document.createElement("canvas"),s=r.getContext("2d");r.style.width=n+"px",r.style.height=a+"px",r.setAttribute("width",n*o),r.setAttribute("height",a*o),s.clearRect(0,0,n*o,a*o);var l={position:i.position,rotation:i.rotation,scale:i.scale};i.position=[0,0,0],i.rotation=0,i.scale=[1,1],i&&i.brush(s,!1);var h=e("./shape/Image"),m=new h({id:t,style:{x:0,y:0,image:r}});return null!=l.position&&(m.position=i.position=l.position),null!=l.rotation&&(m.rotation=i.rotation=l.rotation),null!=l.scale&&(m.scale=i.scale=l.scale),m},h.prototype._createShapeToImageProcessor=function(){if(window.G_vmlCanvasManager)return i;var e=this;return function(t,i,n,o){return e._shapeToImage(t,i,n,o,a.devicePixelRatio)}},h}),i("zrender/Storage",["require","./tool/util","./Group"],function(e){"use strict";function t(e,t){return e.zlevel==t.zlevel?e.z==t.z?e.__renderidx-t.__renderidx:e.z-t.z:e.zlevel-t.zlevel}var i=e("./tool/util"),n=e("./Group"),a={hover:!1,normal:"down",update:!1},o=function(){this._elements={},this._hoverElements=[],this._roots=[],this._shapeList=[],this._shapeListOffset=0};return o.prototype.iterShape=function(e,t){if(t||(t=a),t.hover)for(var i=0,n=this._hoverElements.length;n>i;i++){var o=this._hoverElements[i];if(o.updateTransform(),e(o))return this}switch(t.update&&this.updateShapeList(),t.normal){case"down":for(var n=this._shapeList.length;n--;)if(e(this._shapeList[n]))return this;break;default:for(var i=0,n=this._shapeList.length;n>i;i++)if(e(this._shapeList[i]))return this}return this},o.prototype.getHoverShapes=function(e){for(var i=[],n=0,a=this._hoverElements.length;a>n;n++){i.push(this._hoverElements[n]);var o=this._hoverElements[n].hoverConnect;if(o){var r;o=o instanceof Array?o:[o];for(var s=0,l=o.length;l>s;s++)r=o[s].id?o[s]:this.get(o[s]),r&&i.push(r)}}if(i.sort(t),e)for(var n=0,a=i.length;a>n;n++)i[n].updateTransform();return i},o.prototype.getShapeList=function(e){return e&&this.updateShapeList(),this._shapeList},o.prototype.updateShapeList=function(){this._shapeListOffset=0;for(var e=0,i=this._roots.length;i>e;e++){var n=this._roots[e];this._updateAndAddShape(n)}this._shapeList.length=this._shapeListOffset;for(var e=0,i=this._shapeList.length;i>e;e++)this._shapeList[e].__renderidx=e;this._shapeList.sort(t)},o.prototype._updateAndAddShape=function(e,t){if(!e.ignore)if(e.updateTransform(),e.clipShape&&(e.clipShape.parent=e,e.clipShape.updateTransform(),t?(t=t.slice(),t.push(e.clipShape)):t=[e.clipShape]),"group"==e.type){for(var i=0;i0},o.prototype.addRoot=function(e){this._elements[e.id]||(e instanceof n&&e.addChildrenToStorage(this),this.addToMap(e),this._roots.push(e))},o.prototype.delRoot=function(e){if("undefined"==typeof e){for(var t=0;tt;t++)this.delRoot(e[t]);else{var r;r="string"==typeof e?this._elements[e]:e;var s=i.indexOf(this._roots,r);s>=0&&(this.delFromMap(r.id),this._roots.splice(s,1),r instanceof n&&r.delChildrenFromStorage(this))}},o.prototype.addToMap=function(e){return e instanceof n&&(e._storage=this),e.modSelf(),this._elements[e.id]=e,this},o.prototype.get=function(e){return this._elements[e]},o.prototype.delFromMap=function(e){var t=this._elements[e];return t&&(delete this._elements[e],t instanceof n&&(t._storage=null)),this},o.prototype.dispose=function(){this._elements=this._renderList=this._roots=this._hoverElements=null},o}),i("zrender/animation/Animation",["require","./Clip","../tool/color","../tool/util","../tool/event"],function(e){"use strict";function t(e,t){return e[t]}function i(e,t,i){e[t]=i}function n(e,t,i){return(t-e)*i+e}function a(e,t,i,a,o){var r=e.length;if(1==o)for(var s=0;r>s;s++)a[s]=n(e[s],t[s],i);else for(var l=e[0].length,s=0;r>s;s++)for(var h=0;l>h;h++)a[s][h]=n(e[s][h],t[s][h],i)}function o(e){switch(typeof e){case"undefined":case"string":return!1}return"undefined"!=typeof e.length}function r(e,t,i,n,a,o,r,l,h){var m=e.length;if(1==h)for(var V=0;m>V;V++)l[V]=s(e[V],t[V],i[V],n[V],a,o,r);else for(var U=e[0].length,V=0;m>V;V++)for(var d=0;U>d;d++)l[V][d]=s(e[V][d],t[V][d],i[V][d],n[V][d],a,o,r)}function s(e,t,i,n,a,o,r){var s=.5*(i-e),l=.5*(n-t);return(2*(t-i)+s+l)*r+(-3*(t-i)-2*s-l)*o+s*a+t}function l(e){if(o(e)){var t=e.length;if(o(e[0])){for(var i=[],n=0;t>n;n++)i.push(c.call(e[n]));return i}return c.call(e)}return e}function h(e){return e[0]=Math.floor(e[0]),e[1]=Math.floor(e[1]),e[2]=Math.floor(e[2]),"rgba("+e.join(",")+")"}var m=e("./Clip"),V=e("../tool/color"),U=e("../tool/util"),d=e("../tool/event").Dispatcher,p=window.requestAnimationFrame||window.msRequestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(e){setTimeout(e,16)},c=Array.prototype.slice,u=function(e){e=e||{},this.stage=e.stage||{},this.onframe=e.onframe||function(){},this._clips=[],this._running=!1,this._time=0,d.call(this)};u.prototype={add:function(e){this._clips.push(e)},remove:function(e){if(e.__inStep)e.__needsRemove=!0;else{var t=U.indexOf(this._clips,e);t>=0&&this._clips.splice(t,1)}},_update:function(){for(var e=(new Date).getTime(),t=e-this._time,i=this._clips,n=i.length,a=[],o=[],r=0;n>r;r++){var s=i[r];s.__inStep=!0;var l=s.step(e);s.__inStep=!1,l&&(a.push(l),o.push(s))}for(var r=0;n>r;)i[r].__needsRemove?(i[r]=i[n-1],i.pop(),n--):r++;n=a.length;for(var r=0;n>r;r++)o[r].fire(a[r]);this._time=e,this.onframe(t),this.dispatch("frame",t),this.stage.update&&this.stage.update()},start:function(){function e(){t._running&&(p(e),t._update())}var t=this;this._running=!0,this._time=(new Date).getTime(),p(e)},stop:function(){this._running=!1},clear:function(){this._clips=[]},animate:function(e,t){t=t||{};var i=new y(e,t.loop,t.getter,t.setter);return i.animation=this,i},constructor:u},U.merge(u.prototype,d.prototype,!0);var y=function(e,n,a,o){this._tracks={},this._target=e,this._loop=n||!1,this._getter=a||t,this._setter=o||i,this._clipCount=0,this._delay=0,this._doneList=[],this._onframeList=[],this._clipList=[]};return y.prototype={when:function(e,t){for(var i in t)this._tracks[i]||(this._tracks[i]=[],0!==e&&this._tracks[i].push({time:0,value:l(this._getter(this._target,i))})),this._tracks[i].push({time:parseInt(e,10),value:t[i]});return this},during:function(e){return this._onframeList.push(e),this},start:function(e){var t=this,i=this._setter,l=this._getter,U="spline"===e,d=function(){if(t._clipCount--,0===t._clipCount){t._tracks={};for(var e=t._doneList.length,i=0;e>i;i++)t._doneList[i].call(t)}},p=function(p,c){var u=p.length;if(u){var y=p[0].value,g=o(y),b=!1,f=g&&o(y[0])?2:1;p.sort(function(e,t){return e.time-t.time});var k;if(u){k=p[u-1].time;for(var x=[],_=[],L=0;u>L;L++){x.push(p[L].time/k);var W=p[L].value;"string"==typeof W&&(W=V.toArray(W),0===W.length&&(W[0]=W[1]=W[2]=0,W[3]=1),b=!0),_.push(W)}var X,L,v,w,K,I,J,C=0,S=0;if(b)var E=[0,0,0,0];var F=function(e,o){if(S>o){for(X=Math.min(C+1,u-1),L=X;L>=0&&!(x[L]<=o);L--);L=Math.min(L,u-2)}else{for(L=C;u>L&&!(x[L]>o);L++);L=Math.min(L-1,u-2)}C=L,S=o;var m=x[L+1]-x[L];if(0!==m){if(v=(o-x[L])/m,U)if(K=_[L],w=_[0===L?L:L-1],I=_[L>u-2?u-1:L+1],J=_[L>u-3?u-1:L+2],g)r(w,K,I,J,v,v*v,v*v*v,l(e,c),f);else{var V;b?(V=r(w,K,I,J,v,v*v,v*v*v,E,1),V=h(E)):V=s(w,K,I,J,v,v*v,v*v*v),i(e,c,V)}else if(g)a(_[L],_[L+1],v,l(e,c),f);else{var V;b?(a(_[L],_[L+1],v,E,1),V=h(E)):V=n(_[L],_[L+1],v),i(e,c,V)}for(L=0;L=t[1]&&(e=t[1]),e},t.prototype.getLocation=function(e,t,i){var n=null!=e.x?e.x:"center";switch(n){case"center":n=Math.floor((this.canvasWidth-t)/2);break;case"left":n=0;break;case"right":n=this.canvasWidth-t}var a=null!=e.y?e.y:"center";switch(a){case"center":a=Math.floor((this.canvasHeight-i)/2);break;case"top":a=0;break;case"bottom":a=this.canvasHeight-i}return{x:n,y:a,width:t,height:i}},t}),i("zrender/Layer",["require","./mixin/Transformable","./tool/util","./config"],function(e){function t(){return!1}function i(e,t,i){var n=document.createElement(t),a=i.getWidth(),o=i.getHeight();return n.style.position="absolute",n.style.left=0,n.style.top=0,n.style.width=a+"px",n.style.height=o+"px",n.width=a*r.devicePixelRatio,n.height=o*r.devicePixelRatio,n.setAttribute("data-zr-dom-id",e),n}var n=e("./mixin/Transformable"),a=e("./tool/util"),o=window.G_vmlCanvasManager,r=e("./config"),s=function(e,a){this.id=e,this.dom=i(e,"canvas",a),this.dom.onselectstart=t,this.dom.style["-webkit-user-select"]="none",this.dom.style["user-select"]="none",this.dom.style["-webkit-touch-callout"]="none",this.dom.style["-webkit-tap-highlight-color"]="rgba(0,0,0,0)",this.dom.className=r.elementClassName,o&&o.initElement(this.dom),this.domBack=null,this.ctxBack=null,this.painter=a,this.unusedCount=0,this.config=null,this.dirty=!0,this.elCount=0,this.clearColor=0,this.motionBlur=!1,this.lastFrameAlpha=.7,this.zoomable=!1,this.panable=!1,this.maxZoom=1/0,this.minZoom=0,n.call(this)};return s.prototype.initContext=function(){this.ctx=this.dom.getContext("2d");var e=r.devicePixelRatio;1!=e&&this.ctx.scale(e,e)},s.prototype.createBackBuffer=function(){if(!o){this.domBack=i("back-"+this.id,"canvas",this.painter),this.ctxBack=this.domBack.getContext("2d");var e=r.devicePixelRatio;1!=e&&this.ctxBack.scale(e,e)}},s.prototype.resize=function(e,t){var i=r.devicePixelRatio;this.dom.style.width=e+"px",this.dom.style.height=t+"px",this.dom.setAttribute("width",e*i),this.dom.setAttribute("height",t*i),1!=i&&this.ctx.scale(i,i),this.domBack&&(this.domBack.setAttribute("width",e*i),this.domBack.setAttribute("height",t*i),1!=i&&this.ctxBack.scale(i,i))},s.prototype.clear=function(){var e=this.dom,t=this.ctx,i=e.width,n=e.height,a=this.clearColor&&!o,s=this.motionBlur&&!o,l=this.lastFrameAlpha,h=r.devicePixelRatio;if(s&&(this.domBack||this.createBackBuffer(),this.ctxBack.globalCompositeOperation="copy",this.ctxBack.drawImage(e,0,0,i/h,n/h)),t.clearRect(0,0,i/h,n/h),a&&(t.save(),t.fillStyle=this.clearColor,t.fillRect(0,0,i/h,n/h),t.restore()),s){var m=this.domBack;t.save(),t.globalAlpha=l,t.drawImage(m,0,0,i/h,n/h),t.restore()}},a.merge(s.prototype,n.prototype),s}),i("zrender/shape/Text",["require","../tool/area","./Base","../tool/util"],function(e){ -var t=e("../tool/area"),i=e("./Base"),n=function(e){i.call(this,e)};return n.prototype={type:"text",brush:function(e,i){var n=this.style;if(i&&(n=this.getHighlightStyle(n,this.highlightStyle||{})),"undefined"!=typeof n.text&&n.text!==!1){e.save(),this.doClip(e),this.setContext(e,n),this.setTransform(e),n.textFont&&(e.font=n.textFont),e.textAlign=n.textAlign||"start",e.textBaseline=n.textBaseline||"middle";var a,o=(n.text+"").split("\n"),r=t.getTextHeight("国",n.textFont),s=this.getRect(n),l=n.x;a="top"==n.textBaseline?s.y:"bottom"==n.textBaseline?s.y+r:s.y+r/2;for(var h=0,m=o.length;m>h;h++){if(n.maxWidth)switch(n.brushType){case"fill":e.fillText(o[h],l,a,n.maxWidth);break;case"stroke":e.strokeText(o[h],l,a,n.maxWidth);break;case"both":e.fillText(o[h],l,a,n.maxWidth),e.strokeText(o[h],l,a,n.maxWidth);break;default:e.fillText(o[h],l,a,n.maxWidth)}else switch(n.brushType){case"fill":e.fillText(o[h],l,a);break;case"stroke":e.strokeText(o[h],l,a);break;case"both":e.fillText(o[h],l,a),e.strokeText(o[h],l,a);break;default:e.fillText(o[h],l,a)}a+=r}e.restore()}},getRect:function(e){if(e.__rect)return e.__rect;var i=t.getTextWidth(e.text,e.textFont),n=t.getTextHeight(e.text,e.textFont),a=e.x;"end"==e.textAlign||"right"==e.textAlign?a-=i:"center"==e.textAlign&&(a-=i/2);var o;return o="top"==e.textBaseline?e.y:"bottom"==e.textBaseline?e.y-n:e.y-n/2,e.__rect={x:a,y:o,width:i,height:n},e.__rect}},e("../tool/util").inherits(n,i),n}),i("zrender/shape/Rectangle",["require","./Base","../tool/util"],function(e){var t=e("./Base"),i=function(e){t.call(this,e)};return i.prototype={type:"rectangle",_buildRadiusPath:function(e,t){var i,n,a,o,r=t.x,s=t.y,l=t.width,h=t.height,m=t.radius;"number"==typeof m?i=n=a=o=m:m instanceof Array?1===m.length?i=n=a=o=m[0]:2===m.length?(i=a=m[0],n=o=m[1]):3===m.length?(i=m[0],n=o=m[1],a=m[2]):(i=m[0],n=m[1],a=m[2],o=m[3]):i=n=a=o=0;var V;i+n>l&&(V=i+n,i*=l/V,n*=l/V),a+o>l&&(V=a+o,a*=l/V,o*=l/V),n+a>h&&(V=n+a,n*=h/V,a*=h/V),i+o>h&&(V=i+o,i*=h/V,o*=h/V),e.moveTo(r+i,s),e.lineTo(r+l-n,s),0!==n&&e.quadraticCurveTo(r+l,s,r+l,s+n),e.lineTo(r+l,s+h-a),0!==a&&e.quadraticCurveTo(r+l,s+h,r+l-a,s+h),e.lineTo(r+o,s+h),0!==o&&e.quadraticCurveTo(r,s+h,r,s+h-o),e.lineTo(r,s+i),0!==i&&e.quadraticCurveTo(r,s,r+i,s)},buildPath:function(e,t){t.radius?this._buildRadiusPath(e,t):(e.moveTo(t.x,t.y),e.lineTo(t.x+t.width,t.y),e.lineTo(t.x+t.width,t.y+t.height),e.lineTo(t.x,t.y+t.height),e.lineTo(t.x,t.y)),e.closePath()},getRect:function(e){if(e.__rect)return e.__rect;var t;return t="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0,e.__rect={x:Math.round(e.x-t/2),y:Math.round(e.y-t/2),width:e.width+t,height:e.height+t},e.__rect}},e("../tool/util").inherits(i,t),i}),i("zrender/tool/area",["require","./util","./curve"],function(e){"use strict";function t(e){return e%=C,0>e&&(e+=C),e}function i(e,t,i,o){if(!t||!e)return!1;var r=e.type;L=L||W.getContext();var s=n(e,t,i,o);if("undefined"!=typeof s)return s;if(e.buildPath&&L.isPointInPath)return a(e,L,t,i,o);switch(r){case"ellipse":return!0;case"trochoid":var l="out"==t.location?t.r1+t.r2+t.d:t.r1-t.r2+t.d;return d(t,i,o,l);case"rose":return d(t,i,o,t.maxr);default:return!1}}function n(e,t,i,n){var a=e.type;switch(a){case"bezier-curve":return"undefined"==typeof t.cpX2?l(t.xStart,t.yStart,t.cpX1,t.cpY1,t.xEnd,t.yEnd,t.lineWidth,i,n):s(t.xStart,t.yStart,t.cpX1,t.cpY1,t.cpX2,t.cpY2,t.xEnd,t.yEnd,t.lineWidth,i,n);case"line":return r(t.xStart,t.yStart,t.xEnd,t.yEnd,t.lineWidth,i,n);case"polyline":return m(t.pointList,t.lineWidth,i,n);case"ring":return V(t.x,t.y,t.r0,t.r,i,n);case"circle":return d(t.x,t.y,t.r,i,n);case"sector":var o=t.startAngle*Math.PI/180,h=t.endAngle*Math.PI/180;return t.clockWise||(o=-o,h=-h),p(t.x,t.y,t.r0,t.r,o,h,!t.clockWise,i,n);case"path":return t.pathArray&&k(t.pathArray,Math.max(t.lineWidth,5),t.brushType,i,n);case"polygon":case"star":case"isogon":return c(t.pointList,i,n);case"text":var u=t.__rect||e.getRect(t);return U(u.x,u.y,u.width,u.height,i,n);case"rectangle":case"image":return U(t.x,t.y,t.width,t.height,i,n)}}function a(e,t,i,n,a){return t.beginPath(),e.buildPath(t,i),t.closePath(),t.isPointInPath(n,a)}function o(e,t,n,a){return!i(e,t,n,a)}function r(e,t,i,n,a,o,r){if(0===a)return!1;var s=Math.max(a,5),l=0,h=e;if(r>t+s&&r>n+s||t-s>r&&n-s>r||o>e+s&&o>i+s||e-s>o&&i-s>o)return!1;if(e===i)return Math.abs(o-e)<=s/2;l=(t-n)/(e-i),h=(e*n-i*t)/(e-i);var m=l*o-r+h,V=m*m/(l*l+1);return s/2*s/2>=V}function s(e,t,i,n,a,o,r,s,l,h,m){if(0===l)return!1;var V=Math.max(l,5);if(m>t+V&&m>n+V&&m>o+V&&m>s+V||t-V>m&&n-V>m&&o-V>m&&s-V>m||h>e+V&&h>i+V&&h>a+V&&h>r+V||e-V>h&&i-V>h&&a-V>h&&r-V>h)return!1;var U=X.cubicProjectPoint(e,t,i,n,a,o,r,s,h,m,null);return V/2>=U}function l(e,t,i,n,a,o,r,s,l){if(0===r)return!1;var h=Math.max(r,5);if(l>t+h&&l>n+h&&l>o+h||t-h>l&&n-h>l&&o-h>l||s>e+h&&s>i+h&&s>a+h||e-h>s&&i-h>s&&a-h>s)return!1;var m=X.quadraticProjectPoint(e,t,i,n,a,o,s,l,null);return h/2>=m}function h(e,i,n,a,o,r,s,l,h){if(0===s)return!1;var m=Math.max(s,5);l-=e,h-=i;var V=Math.sqrt(l*l+h*h);if(V-m>n||n>V+m)return!1;if(Math.abs(a-o)>=C)return!0;if(r){var U=a;a=t(o),o=t(U)}else a=t(a),o=t(o);a>o&&(o+=C);var d=Math.atan2(h,l);return 0>d&&(d+=C),d>=a&&o>=d||d+C>=a&&o>=d+C}function m(e,t,i,n){for(var t=Math.max(t,10),a=0,o=e.length-1;o>a;a++){var s=e[a][0],l=e[a][1],h=e[a+1][0],m=e[a+1][1];if(r(s,l,h,m,t,i,n))return!0}return!1}function V(e,t,i,n,a,o){var r=(a-e)*(a-e)+(o-t)*(o-t);return n*n>r&&r>i*i}function U(e,t,i,n,a,o){return a>=e&&e+i>=a&&o>=t&&t+n>=o}function d(e,t,i,n,a){return i*i>(n-e)*(n-e)+(a-t)*(a-t)}function p(e,t,i,n,a,o,r,s,l){return h(e,t,(i+n)/2,a,o,r,n-i,s,l)}function c(e,t,i){for(var n=e.length,a=0,o=0,r=n-1;n>o;o++){var s=e[r][0],l=e[r][1],h=e[o][0],m=e[o][1];a+=u(s,l,h,m,t,i),r=o}return 0!==a}function u(e,t,i,n,a,o){if(o>t&&o>n||t>o&&n>o)return 0;if(n==t)return 0;var r=t>n?1:-1,s=(o-t)/(n-t),l=s*(i-e)+e;return l>a?r:0}function y(){var e=E[0];E[0]=E[1],E[1]=e}function g(e,t,i,n,a,o,r,s,l,h){if(h>t&&h>n&&h>o&&h>s||t>h&&n>h&&o>h&&s>h)return 0;var m=X.cubicRootAt(t,n,o,s,h,S);if(0===m)return 0;for(var V,U,d=0,p=-1,c=0;m>c;c++){var u=S[c],g=X.cubicAt(e,i,a,r,u);l>g||(0>p&&(p=X.cubicExtrema(t,n,o,s,E),E[1]1&&y(),V=X.cubicAt(t,n,o,s,E[0]),p>1&&(U=X.cubicAt(t,n,o,s,E[1]))),d+=2==p?uV?1:-1:uU?1:-1:U>s?1:-1:uV?1:-1:V>s?1:-1)}return d}function b(e,t,i,n,a,o,r,s){if(s>t&&s>n&&s>o||t>s&&n>s&&o>s)return 0;var l=X.quadraticRootAt(t,n,o,s,S);if(0===l)return 0;var h=X.quadraticExtremum(t,n,o);if(h>=0&&1>=h){for(var m=0,V=X.quadraticAt(t,n,o,h),U=0;l>U;U++){var d=X.quadraticAt(e,i,a,S[U]);r>d||(m+=S[U]V?1:-1:V>o?1:-1)}return m}var d=X.quadraticAt(e,i,a,S[0]);return r>d?0:t>o?1:-1}function f(e,i,n,a,o,r,s,l){if(l-=i,l>n||-n>l)return 0;var h=Math.sqrt(n*n-l*l);if(S[0]=-h,S[1]=h,Math.abs(a-o)>=C){a=0,o=C;var m=r?1:-1;return s>=S[0]+e&&s<=S[1]+e?m:0}if(r){var h=a;a=t(o),o=t(h)}else a=t(a),o=t(o);a>o&&(o+=C);for(var V=0,U=0;2>U;U++){var d=S[U];if(d+e>s){var p=Math.atan2(l,d),m=r?1:-1;0>p&&(p=C+p),(p>=a&&o>=p||p+C>=a&&o>=p+C)&&(p>Math.PI/2&&p<1.5*Math.PI&&(m=-m),V+=m)}}return V}function k(e,t,i,n,a){var o=0,m=0,V=0,U=0,d=0,p=!0,c=!0;i=i||"fill";for(var y="stroke"===i||"both"===i,k="fill"===i||"both"===i,x=0;x0&&(k&&(o+=u(m,V,U,d,n,a)),0!==o))return!0;U=L[L.length-2],d=L[L.length-1],p=!1,c&&"A"!==_.command&&(c=!1,m=U,V=d)}switch(_.command){case"M":m=L[0],V=L[1];break;case"L":if(y&&r(m,V,L[0],L[1],t,n,a))return!0;k&&(o+=u(m,V,L[0],L[1],n,a)),m=L[0],V=L[1];break;case"C":if(y&&s(m,V,L[0],L[1],L[2],L[3],L[4],L[5],t,n,a))return!0;k&&(o+=g(m,V,L[0],L[1],L[2],L[3],L[4],L[5],n,a)),m=L[4],V=L[5];break;case"Q":if(y&&l(m,V,L[0],L[1],L[2],L[3],t,n,a))return!0;k&&(o+=b(m,V,L[0],L[1],L[2],L[3],n,a)),m=L[2],V=L[3];break;case"A":var W=L[0],X=L[1],v=L[2],w=L[3],K=L[4],I=L[5],J=Math.cos(K)*v+W,C=Math.sin(K)*w+X;c?(c=!1,U=J,d=C):o+=u(m,V,J,C);var S=(n-W)*w/v+W;if(y&&h(W,X,w,K,K+I,1-L[7],t,S,a))return!0;k&&(o+=f(W,X,w,K,K+I,1-L[7],S,a)),m=Math.cos(K+I)*v+W,V=Math.sin(K+I)*w+X;break;case"z":if(y&&r(m,V,U,d,t,n,a))return!0;p=!0}}return k&&(o+=u(m,V,U,d,n,a)),0!==o}function x(e,t){var i=e+":"+t;if(v[i])return v[i];L=L||W.getContext(),L.save(),t&&(L.font=t),e=(e+"").split("\n");for(var n=0,a=0,o=e.length;o>a;a++)n=Math.max(L.measureText(e[a]).width,n);return L.restore(),v[i]=n,++K>J&&(K=0,v={}),n}function _(e,t){var i=e+":"+t;if(w[i])return w[i];L=L||W.getContext(),L.save(),t&&(L.font=t),e=(e+"").split("\n");var n=(L.measureText("国").width+2)*e.length;return L.restore(),w[i]=n,++I>J&&(I=0,w={}),n}var L,W=e("./util"),X=e("./curve"),v={},w={},K=0,I=0,J=5e3,C=2*Math.PI,S=[-1,-1,-1],E=[-1,-1];return{isInside:i,isOutside:o,getTextWidth:x,getTextHeight:_,isInsidePath:k,isInsidePolygon:c,isInsideSector:p,isInsideCircle:d,isInsideLine:r,isInsideRect:U,isInsidePolyline:m,isInsideCubicStroke:s,isInsideQuadraticStroke:l}}),i("zrender/shape/Base",["require","../tool/matrix","../tool/guid","../tool/util","../tool/log","../mixin/Transformable","../mixin/Eventful","../tool/area","../tool/color"],function(e){function t(t,n,a,o,r,s,l){r&&(t.font=r),t.textAlign=s,t.textBaseline=l;var h=i(n,a,o,r,s,l);n=(n+"").split("\n");var m=e("../tool/area").getTextHeight("国",r);switch(l){case"top":o=h.y;break;case"bottom":o=h.y+m;break;default:o=h.y+m/2}for(var V=0,U=n.length;U>V;V++)t.fillText(n[V],a,o),o+=m}function i(t,i,n,a,o,r){var s=e("../tool/area"),l=s.getTextWidth(t,a),h=s.getTextHeight("国",a);switch(t=(t+"").split("\n"),o){case"end":case"right":i-=l;break;case"center":i-=l/2}switch(r){case"top":break;case"bottom":n-=h*t.length;break;default:n-=h*t.length/2}return{x:i,y:n,width:l,height:h*t.length}}var n=window.G_vmlCanvasManager,a=e("../tool/matrix"),o=e("../tool/guid"),r=e("../tool/util"),s=e("../tool/log"),l=e("../mixin/Transformable"),h=e("../mixin/Eventful"),m=function(e){e=e||{},this.id=e.id||o();for(var t in e)this[t]=e[t];this.style=this.style||{},this.highlightStyle=this.highlightStyle||null,this.parent=null,this.__dirty=!0,this.__clipShapes=[],l.call(this),h.call(this)};m.prototype.invisible=!1,m.prototype.ignore=!1,m.prototype.zlevel=0,m.prototype.draggable=!1,m.prototype.clickable=!1,m.prototype.hoverable=!0,m.prototype.z=0,m.prototype.brush=function(e,t){var i=this.beforeBrush(e,t);switch(e.beginPath(),this.buildPath(e,i),i.brushType){case"both":e.fill();case"stroke":i.lineWidth>0&&e.stroke();break;default:e.fill()}this.drawText(e,i,this.style),this.afterBrush(e)},m.prototype.beforeBrush=function(e,t){var i=this.style;return this.brushTypeOnly&&(i.brushType=this.brushTypeOnly),t&&(i=this.getHighlightStyle(i,this.highlightStyle||{},this.brushTypeOnly)),"stroke"==this.brushTypeOnly&&(i.strokeColor=i.strokeColor||i.color),e.save(),this.doClip(e),this.setContext(e,i),this.setTransform(e),i},m.prototype.afterBrush=function(e){e.restore()};var V=[["color","fillStyle"],["strokeColor","strokeStyle"],["opacity","globalAlpha"],["lineCap","lineCap"],["lineJoin","lineJoin"],["miterLimit","miterLimit"],["lineWidth","lineWidth"],["shadowBlur","shadowBlur"],["shadowColor","shadowColor"],["shadowOffsetX","shadowOffsetX"],["shadowOffsetY","shadowOffsetY"]];m.prototype.setContext=function(e,t){for(var i=0,n=V.length;n>i;i++){var a=V[i][0],o=t[a],r=V[i][1];"undefined"!=typeof o&&(e[r]=o)}};var U=a.create();return m.prototype.doClip=function(e){if(this.__clipShapes&&!n)for(var t=0;t=i.x&&e<=i.x+i.width&&t>=i.y&&t<=i.y+i.height},m.prototype.drawText=function(e,i,n){if("undefined"!=typeof i.text&&i.text!==!1){var a=i.textColor||i.color||i.strokeColor;e.fillStyle=a;var o,r,s,l,h=10,m=i.textPosition||this.textPosition||"top";switch(m){case"inside":case"top":case"bottom":case"left":case"right":if(this.getRect){var V=(n||i).__rect||this.getRect(n||i);switch(m){case"inside":s=V.x+V.width/2,l=V.y+V.height/2,o="center",r="middle","stroke"!=i.brushType&&a==i.color&&(e.fillStyle="#fff");break;case"left":s=V.x-h,l=V.y+V.height/2,o="end",r="middle";break;case"right":s=V.x+V.width+h,l=V.y+V.height/2,o="start",r="middle";break;case"top":s=V.x+V.width/2,l=V.y-h,o="center",r="bottom";break;case"bottom":s=V.x+V.width/2,l=V.y+V.height+h,o="center",r="top"}}break;case"start":case"end":var U=i.pointList||[[i.xStart||0,i.yStart||0],[i.xEnd||0,i.yEnd||0]],d=U.length;if(2>d)return;var p,c,u,y;switch(m){case"start":p=U[1][0],c=U[0][0],u=U[1][1],y=U[0][1];break;case"end":p=U[d-2][0],c=U[d-1][0],u=U[d-2][1],y=U[d-1][1]}s=c,l=y;var g=Math.atan((u-y)/(c-p))/Math.PI*180;0>c-p?g+=180:0>u-y&&(g+=360),h=5,g>=30&&150>=g?(o="center",r="bottom",l-=h):g>150&&210>g?(o="right",r="middle",s-=h):g>=210&&330>=g?(o="center",r="top",l+=h):(o="left",r="middle",s+=h);break;case"specific":s=i.textX||0,l=i.textY||0,o="start",r="middle"}null!=s&&null!=l&&t(e,i.text,s,l,i.textFont,i.textAlign||o,i.textBaseline||r)}},m.prototype.modSelf=function(){this.__dirty=!0,this.style&&(this.style.__rect=null),this.highlightStyle&&(this.highlightStyle.__rect=null)},m.prototype.isSilent=function(){return!(this.hoverable||this.draggable||this.clickable||this.onmousemove||this.onmouseover||this.onmouseout||this.onmousedown||this.onmouseup||this.onclick||this.ondragenter||this.ondragover||this.ondragleave||this.ondrop)},r.merge(m.prototype,l.prototype,!0),r.merge(m.prototype,h.prototype,!0),m}),i("zrender/tool/curve",["require","./vector"],function(e){function t(e){return e>-u&&u>e}function i(e){return e>u||-u>e}function n(e,t,i,n,a){var o=1-a;return o*o*(o*e+3*a*t)+a*a*(a*n+3*o*i)}function a(e,t,i,n,a){var o=1-a;return 3*(((t-e)*o+2*(i-t)*a)*o+(n-i)*a*a)}function o(e,i,n,a,o,r){var s=a+3*(i-n)-e,l=3*(n-2*i+e),h=3*(i-e),m=e-o,V=l*l-3*s*h,U=l*h-9*s*m,d=h*h-3*l*m,p=0;if(t(V)&&t(U))if(t(l))r[0]=0;else{var c=-h/l;c>=0&&1>=c&&(r[p++]=c)}else{var u=U*U-4*V*d;if(t(u)){var b=U/V,c=-l/s+b,f=-b/2;c>=0&&1>=c&&(r[p++]=c),f>=0&&1>=f&&(r[p++]=f)}else if(u>0){var k=Math.sqrt(u),x=V*l+1.5*s*(-U+k),_=V*l+1.5*s*(-U-k);x=0>x?-Math.pow(-x,g):Math.pow(x,g),_=0>_?-Math.pow(-_,g):Math.pow(_,g);var c=(-l-(x+_))/(3*s);c>=0&&1>=c&&(r[p++]=c)}else{var L=(2*V*l-3*s*U)/(2*Math.sqrt(V*V*V)),W=Math.acos(L)/3,X=Math.sqrt(V),v=Math.cos(W),c=(-l-2*X*v)/(3*s),f=(-l+X*(v+y*Math.sin(W)))/(3*s),w=(-l+X*(v-y*Math.sin(W)))/(3*s);c>=0&&1>=c&&(r[p++]=c),f>=0&&1>=f&&(r[p++]=f),w>=0&&1>=w&&(r[p++]=w)}}return p}function r(e,n,a,o,r){var s=6*a-12*n+6*e,l=9*n+3*o-3*e-9*a,h=3*n-3*e,m=0;if(t(l)){if(i(s)){var V=-h/s;V>=0&&1>=V&&(r[m++]=V)}}else{var U=s*s-4*l*h;if(t(U))r[0]=-s/(2*l);else if(U>0){var d=Math.sqrt(U),V=(-s+d)/(2*l),p=(-s-d)/(2*l);V>=0&&1>=V&&(r[m++]=V),p>=0&&1>=p&&(r[m++]=p)}}return m}function s(e,t,i,n,a,o){var r=(t-e)*a+e,s=(i-t)*a+t,l=(n-i)*a+i,h=(s-r)*a+r,m=(l-s)*a+s,V=(m-h)*a+h;o[0]=e,o[1]=r,o[2]=h,o[3]=V,o[4]=V,o[5]=m,o[6]=l,o[7]=n}function l(e,t,i,a,o,r,s,l,h,m,V){var U,d=.005,p=1/0;b[0]=h,b[1]=m;for(var y=0;1>y;y+=.05){f[0]=n(e,i,o,s,y),f[1]=n(t,a,r,l,y);var g=c.distSquare(b,f);p>g&&(U=y,p=g)}p=1/0;for(var x=0;32>x&&!(u>d);x++){var _=U-d,L=U+d;f[0]=n(e,i,o,s,_),f[1]=n(t,a,r,l,_);var g=c.distSquare(f,b);if(_>=0&&p>g)U=_,p=g;else{k[0]=n(e,i,o,s,L),k[1]=n(t,a,r,l,L);var W=c.distSquare(k,b);1>=L&&p>W?(U=L,p=W):d*=.5}}return V&&(V[0]=n(e,i,o,s,U),V[1]=n(t,a,r,l,U)),Math.sqrt(p)}function h(e,t,i,n){var a=1-n;return a*(a*e+2*n*t)+n*n*i}function m(e,t,i,n){return 2*((1-n)*(t-e)+n*(i-t))}function V(e,n,a,o,r){var s=e-2*n+a,l=2*(n-e),h=e-o,m=0;if(t(s)){if(i(l)){var V=-h/l;V>=0&&1>=V&&(r[m++]=V)}}else{var U=l*l-4*s*h;if(t(U)){var V=-l/(2*s);V>=0&&1>=V&&(r[m++]=V)}else if(U>0){var d=Math.sqrt(U),V=(-l+d)/(2*s),p=(-l-d)/(2*s);V>=0&&1>=V&&(r[m++]=V),p>=0&&1>=p&&(r[m++]=p)}}return m}function U(e,t,i){var n=e+i-2*t;return 0===n?.5:(e-t)/n}function d(e,t,i,n,a){var o=(t-e)*n+e,r=(i-t)*n+t,s=(r-o)*n+o;a[0]=e,a[1]=o,a[2]=s,a[3]=s,a[4]=r,a[5]=i}function p(e,t,i,n,a,o,r,s,l){var m,V=.005,U=1/0;b[0]=r,b[1]=s;for(var d=0;1>d;d+=.05){f[0]=h(e,i,a,d),f[1]=h(t,n,o,d);var p=c.distSquare(b,f);U>p&&(m=d,U=p)}U=1/0;for(var y=0;32>y&&!(u>V);y++){var g=m-V,x=m+V;f[0]=h(e,i,a,g),f[1]=h(t,n,o,g);var p=c.distSquare(f,b);if(g>=0&&U>p)m=g,U=p;else{k[0]=h(e,i,a,x),k[1]=h(t,n,o,x);var _=c.distSquare(k,b);1>=x&&U>_?(m=x,U=_):V*=.5}}return l&&(l[0]=h(e,i,a,m),l[1]=h(t,n,o,m)),Math.sqrt(U)}var c=e("./vector"),u=1e-4,y=Math.sqrt(3),g=1/3,b=c.create(),f=c.create(),k=c.create();return{cubicAt:n,cubicDerivativeAt:a,cubicRootAt:o,cubicExtrema:r,cubicSubdivide:s,cubicProjectPoint:l,quadraticAt:h,quadraticDerivativeAt:m,quadraticRootAt:V,quadraticExtremum:U,quadraticSubdivide:d,quadraticProjectPoint:p}}),i("zrender/mixin/Transformable",["require","../tool/matrix","../tool/vector"],function(e){"use strict";function t(e){return e>-s&&s>e}function i(e){return e>s||-s>e}var n=e("../tool/matrix"),a=e("../tool/vector"),o=[0,0],r=n.translate,s=5e-5,l=function(){this.position||(this.position=[0,0]),"undefined"==typeof this.rotation&&(this.rotation=[0,0,0]),this.scale||(this.scale=[1,1,0,0]),this.needLocalTransform=!1,this.needTransform=!1};return l.prototype={constructor:l,updateNeedTransform:function(){this.needLocalTransform=i(this.rotation[0])||i(this.position[0])||i(this.position[1])||i(this.scale[0]-1)||i(this.scale[1]-1)},updateTransform:function(){this.updateNeedTransform();var e=this.parent&&this.parent.needTransform;if(this.needTransform=this.needLocalTransform||e,this.needTransform){var t=this.transform||n.create();if(n.identity(t),this.needLocalTransform){var a=this.scale;if(i(a[0])||i(a[1])){o[0]=-a[2]||0,o[1]=-a[3]||0;var s=i(o[0])||i(o[1]);s&&r(t,t,o),n.scale(t,t,a),s&&(o[0]=-o[0],o[1]=-o[1],r(t,t,o))}if(this.rotation instanceof Array){if(0!==this.rotation[0]){o[0]=-this.rotation[1]||0,o[1]=-this.rotation[2]||0;var s=i(o[0])||i(o[1]);s&&r(t,t,o),n.rotate(t,t,this.rotation[0]),s&&(o[0]=-o[0],o[1]=-o[1],r(t,t,o))}}else 0!==this.rotation&&n.rotate(t,t,this.rotation);(i(this.position[0])||i(this.position[1]))&&r(t,t,this.position)}e&&(this.needLocalTransform?n.mul(t,this.parent.transform,t):n.copy(t,this.parent.transform)),this.transform=t,this.invTransform=this.invTransform||n.create(),n.invert(this.invTransform,t)}},setTransform:function(e){if(this.needTransform){var t=this.transform;e.transform(t[0],t[1],t[2],t[3],t[4],t[5])}},lookAt:function(){var e=a.create();return function(i){this.transform||(this.transform=n.create());var o=this.transform;if(a.sub(e,i,this.position),!t(e[0])||!t(e[1])){a.normalize(e,e);var r=this.scale;o[2]=e[0]*r[1],o[3]=e[1]*r[1],o[0]=e[1]*r[0],o[1]=-e[0]*r[0],o[4]=this.position[0],o[5]=this.position[1],this.decomposeTransform()}}}(),decomposeTransform:function(){if(this.transform){var e=this.transform,t=e[0]*e[0]+e[1]*e[1],n=this.position,a=this.scale,o=this.rotation;i(t-1)&&(t=Math.sqrt(t));var r=e[2]*e[2]+e[3]*e[3];i(r-1)&&(r=Math.sqrt(r)),n[0]=e[4],n[1]=e[5],a[0]=t,a[1]=r,a[2]=a[3]=0,o[0]=Math.atan2(-e[1]/r,e[0]/t),o[1]=o[2]=0}},transformCoordToLocal:function(e,t){var i=[e,t];return this.needTransform&&this.invTransform&&a.applyTransform(i,i,this.invTransform),i}},l}),i("zrender/Group",["require","./tool/guid","./tool/util","./mixin/Transformable","./mixin/Eventful"],function(e){var t=e("./tool/guid"),i=e("./tool/util"),n=e("./mixin/Transformable"),a=e("./mixin/Eventful"),o=function(e){e=e||{},this.id=e.id||t();for(var i in e)this[i]=e[i];this.type="group",this.clipShape=null,this._children=[],this._storage=null,this.__dirty=!0,n.call(this),a.call(this)};return o.prototype.ignore=!1,o.prototype.children=function(){return this._children.slice()},o.prototype.childAt=function(e){return this._children[e]},o.prototype.addChild=function(e){e!=this&&e.parent!=this&&(e.parent&&e.parent.removeChild(e),this._children.push(e),e.parent=this,this._storage&&this._storage!==e._storage&&(this._storage.addToMap(e),e instanceof o&&e.addChildrenToStorage(this._storage)))},o.prototype.removeChild=function(e){var t=i.indexOf(this._children,e);t>=0&&this._children.splice(t,1),e.parent=null,this._storage&&(this._storage.delFromMap(e.id),e instanceof o&&e.delChildrenFromStorage(this._storage))},o.prototype.clearChildren=function(){for(var e=0;et)){t=Math.min(t,1);var n="string"==typeof this.easing?i[this.easing]:this.easing,a="function"==typeof n?n(t):t;return this.fire("frame",a),1==t?this.loop?(this.restart(),"restart"):(this.__needsRemove=!0,"destroy"):null}},restart:function(){var e=(new Date).getTime(),t=(e-this._startTime)%this._life;this._startTime=(new Date).getTime()-t+this.gap,this.__needsRemove=!1},fire:function(e,t){for(var i=0,n=this._targetPool.length;n>i;i++)this["on"+e]&&this["on"+e](this._targetPool[i],t)},constructor:t},t}),i("zrender/animation/easing",[],function(){var e={Linear:function(e){return e},QuadraticIn:function(e){return e*e},QuadraticOut:function(e){return e*(2-e)},QuadraticInOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)},CubicIn:function(e){return e*e*e},CubicOut:function(e){return--e*e*e+1},CubicInOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},QuarticIn:function(e){return e*e*e*e},QuarticOut:function(e){return 1- --e*e*e*e},QuarticInOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},QuinticIn:function(e){return e*e*e*e*e},QuinticOut:function(e){return--e*e*e*e*e+1},QuinticInOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},SinusoidalIn:function(e){return 1-Math.cos(e*Math.PI/2)},SinusoidalOut:function(e){return Math.sin(e*Math.PI/2)},SinusoidalInOut:function(e){return.5*(1-Math.cos(Math.PI*e))},ExponentialIn:function(e){return 0===e?0:Math.pow(1024,e-1)},ExponentialOut:function(e){return 1===e?1:1-Math.pow(2,-10*e)},ExponentialInOut:function(e){return 0===e?0:1===e?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)},CircularIn:function(e){return 1-Math.sqrt(1-e*e)},CircularOut:function(e){return Math.sqrt(1- --e*e)},CircularInOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},ElasticIn:function(e){var t,i=.1,n=.4;return 0===e?0:1===e?1:(!i||1>i?(i=1,t=n/4):t=n*Math.asin(1/i)/(2*Math.PI),-(i*Math.pow(2,10*(e-=1))*Math.sin(2*(e-t)*Math.PI/n)))},ElasticOut:function(e){var t,i=.1,n=.4;return 0===e?0:1===e?1:(!i||1>i?(i=1,t=n/4):t=n*Math.asin(1/i)/(2*Math.PI),i*Math.pow(2,-10*e)*Math.sin(2*(e-t)*Math.PI/n)+1)},ElasticInOut:function(e){var t,i=.1,n=.4;return 0===e?0:1===e?1:(!i||1>i?(i=1,t=n/4):t=n*Math.asin(1/i)/(2*Math.PI),(e*=2)<1?-.5*i*Math.pow(2,10*(e-=1))*Math.sin(2*(e-t)*Math.PI/n):i*Math.pow(2,-10*(e-=1))*Math.sin(2*(e-t)*Math.PI/n)*.5+1)},BackIn:function(e){var t=1.70158;return e*e*((t+1)*e-t)},BackOut:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},BackInOut:function(e){var t=2.5949095;return(e*=2)<1?.5*e*e*((t+1)*e-t):.5*((e-=2)*e*((t+1)*e+t)+2)},BounceIn:function(t){return 1-e.BounceOut(1-t)},BounceOut:function(e){return 1/2.75>e?7.5625*e*e:2/2.75>e?7.5625*(e-=1.5/2.75)*e+.75:2.5/2.75>e?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},BounceInOut:function(t){return.5>t?.5*e.BounceIn(2*t):.5*e.BounceOut(2*t-1)+.5}};return e}),i("echarts/chart/base",["require","zrender/shape/Image","../util/shape/Icon","../util/shape/MarkLine","../util/shape/Symbol","zrender/shape/Polyline","zrender/shape/ShapeBundle","../config","../util/ecData","../util/ecAnimation","../util/ecEffect","../util/accMath","../component/base","../layout/EdgeBundling","zrender/tool/util","zrender/tool/area"],function(e){function t(e){return null!=e.x&&null!=e.y}function i(e,t,i,n,a){p.call(this,e,t,i,n,a);var o=this;this.selectedMap={},this.lastShapeList=[],this.shapeHandler={onclick:function(){o.isClick=!0},ondragover:function(e){var t=e.target;t.highlightStyle=t.highlightStyle||{};var i=t.highlightStyle,n=i.brushTyep,a=i.strokeColor,r=i.lineWidth;i.brushType="stroke",i.strokeColor=o.ecTheme.calculableColor||h.calculableColor,i.lineWidth="icon"===t.type?30:10,o.zr.addHoverShape(t),setTimeout(function(){i&&(i.brushType=n,i.strokeColor=a,i.lineWidth=r)},20)},ondrop:function(e){null!=m.get(e.dragged,"data")&&(o.isDrop=!0)},ondragend:function(){o.isDragend=!0}}}var n=e("zrender/shape/Image"),a=e("../util/shape/Icon"),o=e("../util/shape/MarkLine"),r=e("../util/shape/Symbol"),s=e("zrender/shape/Polyline"),l=e("zrender/shape/ShapeBundle"),h=e("../config"),m=e("../util/ecData"),V=e("../util/ecAnimation"),U=e("../util/ecEffect"),d=e("../util/accMath"),p=e("../component/base"),c=e("../layout/EdgeBundling"),u=e("zrender/tool/util"),y=e("zrender/tool/area");return i.prototype={setCalculable:function(e){return e.dragEnableTime=this.ecTheme.DRAG_ENABLE_TIME||h.DRAG_ENABLE_TIME,e.ondragover=this.shapeHandler.ondragover,e.ondragend=this.shapeHandler.ondragend,e.ondrop=this.shapeHandler.ondrop,e},ondrop:function(e,t){if(this.isDrop&&e.target&&!t.dragIn){var i,n=e.target,a=e.dragged,o=m.get(n,"seriesIndex"),r=m.get(n,"dataIndex"),s=this.series,l=this.component.legend;if(-1===r){if(m.get(a,"seriesIndex")==o)return t.dragOut=t.dragIn=t.needRefresh=!0,void(this.isDrop=!1);i={value:m.get(a,"value"),name:m.get(a,"name")},this.type===h.CHART_TYPE_PIE&&i.value<0&&(i.value=0);for(var V=!1,U=s[o].data,p=0,c=U.length;c>p;p++)U[p].name===i.name&&"-"===U[p].value&&(s[o].data[p].value=i.value,V=!0);!V&&s[o].data.push(i),l&&l.add(i.name,a.style.color||a.style.strokeColor)}else i=s[o].data[r]||"-",null!=i.value?(s[o].data[r].value="-"!=i.value?d.accAdd(s[o].data[r].value,m.get(a,"value")):m.get(a,"value"),(this.type===h.CHART_TYPE_FUNNEL||this.type===h.CHART_TYPE_PIE)&&(l&&1===l.getRelatedAmount(i.name)&&this.component.legend.del(i.name),i.name+=this.option.nameConnector+m.get(a,"name"),l&&l.add(i.name,a.style.color||a.style.strokeColor))):s[o].data[r]="-"!=i?d.accAdd(s[o].data[r],m.get(a,"value")):m.get(a,"value");t.dragIn=t.dragIn||!0,this.isDrop=!1;var u=this;setTimeout(function(){u.zr.trigger("mousemove",e.event)},300)}},ondragend:function(e,t){if(this.isDragend&&e.target&&!t.dragOut){var i=e.target,n=m.get(i,"seriesIndex"),a=m.get(i,"dataIndex"),o=this.series;if(null!=o[n].data[a].value){o[n].data[a].value="-";var r=o[n].data[a].name,s=this.component.legend;s&&0===s.getRelatedAmount(r)&&s.del(r)}else o[n].data[a]="-";t.dragOut=!0,t.needRefresh=!0,this.isDragend=!1}},onlegendSelected:function(e,t){var i=e.selected;for(var n in this.selectedMap)this.selectedMap[n]!=i[n]&&(t.needRefresh=!0),this.selectedMap[n]=i[n]},_buildPosition:function(){this._symbol=this.option.symbolList,this._sIndex2ShapeMap={},this._sIndex2ColorMap={},this.selectedMap={},this.xMarkMap={};for(var e,t,i,n,a=this.series,o={top:[],bottom:[],left:[],right:[],other:[]},r=0,s=a.length;s>r;r++)a[r].type===this.type&&(a[r]=this.reformOption(a[r]),this.legendHoverLink=a[r].legendHoverLink||this.legendHoverLink,e=a[r].xAxisIndex,t=a[r].yAxisIndex,i=this.component.xAxis.getAxis(e),n=this.component.yAxis.getAxis(t),i.type===h.COMPONENT_TYPE_AXIS_CATEGORY?o[i.getPosition()].push(r):n.type===h.COMPONENT_TYPE_AXIS_CATEGORY?o[n.getPosition()].push(r):o.other.push(r));for(var l in o)o[l].length>0&&this._buildSinglePosition(l,o[l]);this.addShapeList()},_buildSinglePosition:function(e,t){var i=this._mapData(t),n=i.locationMap,a=i.maxDataLength;if(0!==a&&0!==n.length){switch(e){case"bottom":case"top":this._buildHorizontal(t,a,n,this.xMarkMap);break;case"left":case"right":this._buildVertical(t,a,n,this.xMarkMap);break;case"other":this._buildOther(t,a,n,this.xMarkMap)}for(var o=0,r=t.length;r>o;o++)this.buildMark(t[o])}},_mapData:function(e){for(var t,i,n,a,o=this.series,r=0,s={},l="__kener__stack__",m=this.component.legend,V=[],U=0,d=0,p=e.length;p>d;d++){if(t=o[e[d]],n=t.name,this._sIndex2ShapeMap[e[d]]=this._sIndex2ShapeMap[e[d]]||this.query(t,"symbol")||this._symbol[d%this._symbol.length],m){if(this.selectedMap[n]=m.isSelected(n),this._sIndex2ColorMap[e[d]]=m.getColor(n),a=m.getItemShape(n)){var c=a.style;if(this.type==h.CHART_TYPE_LINE)c.iconType="legendLineIcon",c.symbol=this._sIndex2ShapeMap[e[d]];else if(t.itemStyle.normal.barBorderWidth>0){var u=a.highlightStyle;c.brushType="both",c.x+=1,c.y+=1,c.width-=2,c.height-=2,c.strokeColor=u.strokeColor=t.itemStyle.normal.barBorderColor,u.lineWidth=3}m.setItemShape(n,a)}}else this.selectedMap[n]=!0,this._sIndex2ColorMap[e[d]]=this.zr.getColor(e[d]);this.selectedMap[n]&&(i=t.stack||l+e[d],null==s[i]?(s[i]=r,V[r]=[e[d]],r++):V[s[i]].push(e[d])),U=Math.max(U,t.data.length)}return{locationMap:V,maxDataLength:U}},_calculMarkMapXY:function(e,t,i){for(var n=this.series,a=0,o=t.length;o>a;a++)for(var r=0,s=t[a].length;s>r;r++){var l=t[a][r],h="xy"==i?0:"",m=this.component.grid,V=e[l];if("-1"!=i.indexOf("x")){V["counter"+h]>0&&(V["average"+h]=V["sum"+h]/V["counter"+h]);var U=this.component.xAxis.getAxis(n[l].xAxisIndex||0).getCoord(V["average"+h]);V["averageLine"+h]=[[U,m.getYend()],[U,m.getY()]],V["minLine"+h]=[[V["minX"+h],m.getYend()],[V["minX"+h],m.getY()]],V["maxLine"+h]=[[V["maxX"+h],m.getYend()],[V["maxX"+h],m.getY()]],V.isHorizontal=!1}if(h="xy"==i?1:"","-1"!=i.indexOf("y")){V["counter"+h]>0&&(V["average"+h]=V["sum"+h]/V["counter"+h]);var d=this.component.yAxis.getAxis(n[l].yAxisIndex||0).getCoord(V["average"+h]);V["averageLine"+h]=[[m.getX(),d],[m.getXend(),d]],V["minLine"+h]=[[m.getX(),V["minY"+h]],[m.getXend(),V["minY"+h]]],V["maxLine"+h]=[[m.getX(),V["maxY"+h]],[m.getXend(),V["maxY"+h]]],V.isHorizontal=!0}}},addLabel:function(e,t,i,n,a){var o=[i,t],r=this.deepMerge(o,"itemStyle.normal.label"),s=this.deepMerge(o,"itemStyle.emphasis.label"),l=r.textStyle||{},h=s.textStyle||{}; - -if(r.show){var m=e.style;m.text=this._getLabelText(t,i,n,"normal"),m.textPosition=null==r.position?"horizontal"===a?"right":"top":r.position,m.textColor=l.color,m.textFont=this.getFont(l),m.textAlign=l.align,m.textBaseline=l.baseline}if(s.show){var V=e.highlightStyle;V.text=this._getLabelText(t,i,n,"emphasis"),V.textPosition=r.show?e.style.textPosition:null==s.position?"horizontal"===a?"right":"top":s.position,V.textColor=h.color,V.textFont=this.getFont(h),V.textAlign=h.align,V.textBaseline=h.baseline}return e},_getLabelText:function(e,t,i,n){var a=this.deepQuery([t,e],"itemStyle."+n+".label.formatter");a||"emphasis"!==n||(a=this.deepQuery([t,e],"itemStyle.normal.label.formatter"));var o=this.getDataFromOption(t,"-");return a?"function"==typeof a?a.call(this.myChart,{seriesName:e.name,series:e,name:i,value:o,data:t,status:n}):"string"==typeof a?a=a.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}").replace("{a0}",e.name).replace("{b0}",i).replace("{c0}",this.numAddCommas(o)):void 0:o instanceof Array?null!=o[2]?this.numAddCommas(o[2]):o[0]+" , "+o[1]:this.numAddCommas(o)},buildMark:function(e){var t=this.series[e];this.selectedMap[t.name]&&(t.markLine&&this._buildMarkLine(e),t.markPoint&&this._buildMarkPoint(e))},_buildMarkPoint:function(e){for(var t,i,n=(this.markAttachStyle||{})[e],a=this.series[e],o=u.clone(a.markPoint),r=0,s=o.data.length;s>r;r++)t=o.data[r],i=this.getMarkCoord(e,t),t.x=null!=t.x?t.x:i[0],t.y=null!=t.y?t.y:i[1],!t.type||"max"!==t.type&&"min"!==t.type||(t.value=i[3],t.name=t.name||t.type,t.symbolSize=t.symbolSize||y.getTextWidth(i[3],this.getFont())/2+5);for(var l=this._markPoint(e,o),r=0,s=l.length;s>r;r++){var m=l[r];m.zlevel=a.zlevel,m.z=a.z+1;for(var V in n)m[V]=u.clone(n[V]);this.shapeList.push(m)}if(this.type===h.CHART_TYPE_FORCE||this.type===h.CHART_TYPE_CHORD)for(var r=0,s=l.length;s>r;r++)this.zr.addShape(l[r])},_buildMarkLine:function(e){for(var t,i=(this.markAttachStyle||{})[e],n=this.series[e],a=u.clone(n.markLine),o=0,r=a.data.length;r>o;o++){var s=a.data[o];!s.type||"max"!==s.type&&"min"!==s.type&&"average"!==s.type?t=[this.getMarkCoord(e,s[0]),this.getMarkCoord(e,s[1])]:(t=this.getMarkCoord(e,s),a.data[o]=[u.clone(s),{}],a.data[o][0].name=s.name||s.type,a.data[o][0].value="average"!==s.type?t[3]:+t[3].toFixed(null!=a.precision?a.precision:this.deepQuery([this.ecTheme,h],"markLine.precision")),t=t[2],s=[{},{}]),null!=t&&null!=t[0]&&null!=t[1]&&(a.data[o][0].x=null!=s[0].x?s[0].x:t[0][0],a.data[o][0].y=null!=s[0].y?s[0].y:t[0][1],a.data[o][1].x=null!=s[1].x?s[1].x:t[1][0],a.data[o][1].y=null!=s[1].y?s[1].y:t[1][1])}var m=this._markLine(e,a),V=a.large;if(V){var U=new l({style:{shapeList:m}}),d=m[0];if(d){u.merge(U.style,d.style),u.merge(U.highlightStyle={},d.highlightStyle),U.style.brushType="stroke",U.zlevel=n.zlevel,U.z=n.z+1,U.hoverable=!1;for(var p in i)U[p]=u.clone(i[p])}this.shapeList.push(U),this.zr.addShape(U),U._mark="largeLine";var c=a.effect;c.show&&(U.effect=c)}else{for(var o=0,r=m.length;r>o;o++){var y=m[o];y.zlevel=n.zlevel,y.z=n.z+1;for(var p in i)y[p]=u.clone(i[p]);this.shapeList.push(y)}if(this.type===h.CHART_TYPE_FORCE||this.type===h.CHART_TYPE_CHORD)for(var o=0,r=m.length;r>o;o++)this.zr.addShape(m[o])}},_markPoint:function(e,t){var i=this.series[e],n=this.component;u.merge(u.merge(t,u.clone(this.ecTheme.markPoint||{})),u.clone(h.markPoint)),t.name=i.name;var a,o,r,s,l,V,U,d=[],p=t.data,c=n.dataRange,y=n.legend,g=this.zr.getWidth(),b=this.zr.getHeight();if(t.large)a=this.getLargeMarkPointShape(e,t),a._mark="largePoint",a&&d.push(a);else for(var f=0,k=p.length;k>f;f++)null!=p[f].x&&null!=p[f].y&&(r=null!=p[f].value?p[f].value:"",y&&(o=y.getColor(i.name)),c&&(o=isNaN(r)?o:c.getColor(r),s=[p[f],t],l=this.deepQuery(s,"itemStyle.normal.color")||o,V=this.deepQuery(s,"itemStyle.emphasis.color")||l,null==l&&null==V)||(o=null==o?this.zr.getColor(e):o,p[f].tooltip=p[f].tooltip||t.tooltip||{trigger:"item"},p[f].name=null!=p[f].name?p[f].name:"",p[f].value=r,a=this.getSymbolShape(t,e,p[f],f,p[f].name,this.parsePercent(p[f].x,g),this.parsePercent(p[f].y,b),"pin",o,"rgba(0,0,0,0)","horizontal"),a._mark="point",U=this.deepMerge([p[f],t],"effect"),U.show&&(a.effect=U),i.type===h.CHART_TYPE_MAP&&(a._geo=this.getMarkGeo(p[f])),m.pack(a,i,e,p[f],f,p[f].name,r),d.push(a)));return d},_markLine:function(){function e(e,t){e[t]=e[t]instanceof Array?e[t].length>1?e[t]:[e[t][0],e[t][0]]:[e[t],e[t]]}return function(i,n){var a=this.series[i],o=this.component,r=o.dataRange,s=o.legend;u.merge(u.merge(n,u.clone(this.ecTheme.markLine||{})),u.clone(h.markLine));var l=s?s.getColor(a.name):this.zr.getColor(i);e(n,"symbol"),e(n,"symbolSize"),e(n,"symbolRotate");for(var V=n.data,U=[],d=this.zr.getWidth(),p=this.zr.getHeight(),y=0;yy;y++){var K=U[y],I=K.rawEdge||K,g=I.rawData,x=null!=g.value?g.value:"",J=this.getMarkLineShape(n,i,g,y,K.points,W,I.color);J._mark="line";var C=this.deepMerge([g[0],g[1],n],"effect");C.show&&(J.effect=C,J.effect.large=n.large),a.type===h.CHART_TYPE_MAP&&(J._geo=[this.getMarkGeo(g[0]),this.getMarkGeo(g[1])]),m.pack(J,a,i,g[0],y,g[0].name+(""!==g[1].name?" > "+g[1].name:""),x),v.push(J)}return v}}(),getMarkCoord:function(){return[0,0]},getSymbolShape:function(e,t,i,o,r,s,l,h,V,U,d){var p=[i,e],c=this.getDataFromOption(i,"-");h=this.deepQuery(p,"symbol")||h;var u=this.deepQuery(p,"symbolSize");u="function"==typeof u?u(c):u,"number"==typeof u&&(u=[u,u]);var y=this.deepQuery(p,"symbolRotate"),g=this.deepMerge(p,"itemStyle.normal"),b=this.deepMerge(p,"itemStyle.emphasis"),f=null!=g.borderWidth?g.borderWidth:g.lineStyle&&g.lineStyle.width;null==f&&(f=h.match("empty")?2:0);var k=null!=b.borderWidth?b.borderWidth:b.lineStyle&&b.lineStyle.width;null==k&&(k=f+2);var x=this.getItemStyleColor(g.color,t,o,i),_=this.getItemStyleColor(b.color,t,o,i),L=u[0],W=u[1],X=new a({style:{iconType:h.replace("empty","").toLowerCase(),x:s-L,y:l-W,width:2*L,height:2*W,brushType:"both",color:h.match("empty")?U:x||V,strokeColor:g.borderColor||x||V,lineWidth:f},highlightStyle:{color:h.match("empty")?U:_||x||V,strokeColor:b.borderColor||g.borderColor||_||x||V,lineWidth:k},clickable:this.deepQuery(p,"clickable")});return h.match("image")&&(X.style.image=h.replace(new RegExp("^image:\\/\\/"),""),X=new n({style:X.style,highlightStyle:X.highlightStyle,clickable:this.deepQuery(p,"clickable")})),null!=y&&(X.rotation=[y*Math.PI/180,s,l]),h.match("star")&&(X.style.iconType="star",X.style.n=h.replace("empty","").replace("star","")-0||5),"none"===h&&(X.invisible=!0,X.hoverable=!1),X=this.addLabel(X,e,i,r,d),h.match("empty")&&(null==X.style.textColor&&(X.style.textColor=X.style.strokeColor),null==X.highlightStyle.textColor&&(X.highlightStyle.textColor=X.highlightStyle.strokeColor)),m.pack(X,e,t,i,o,r),X._x=s,X._y=l,X._dataIndex=o,X._seriesIndex=t,X},getMarkLineShape:function(e,t,i,n,a,r,l){var h=null!=i[0].value?i[0].value:"-",m=null!=i[1].value?i[1].value:"-",V=[i[0].symbol||e.symbol[0],i[1].symbol||e.symbol[1]],U=[i[0].symbolSize||e.symbolSize[0],i[1].symbolSize||e.symbolSize[1]];U[0]="function"==typeof U[0]?U[0](h):U[0],U[1]="function"==typeof U[1]?U[1](m):U[1];var d=[this.query(i[0],"symbolRotate")||e.symbolRotate[0],this.query(i[1],"symbolRotate")||e.symbolRotate[1]],p=[i[0],i[1],e],c=this.deepMerge(p,"itemStyle.normal");c.color=this.getItemStyleColor(c.color,t,n,i);var u=this.deepMerge(p,"itemStyle.emphasis");u.color=this.getItemStyleColor(u.color,t,n,i);var y=c.lineStyle,g=u.lineStyle,b=y.width;null==b&&(b=c.borderWidth);var f=g.width;null==f&&(f=null!=u.borderWidth?u.borderWidth:b+2);var k=this.deepQuery(p,"smoothness");this.deepQuery(p,"smooth")||(k=0);var x=r?s:o,_=new x({style:{symbol:V,symbolSize:U,symbolRotate:d,brushType:"both",lineType:y.type,shadowColor:y.shadowColor||y.color||c.borderColor||c.color||l,shadowBlur:y.shadowBlur,shadowOffsetX:y.shadowOffsetX,shadowOffsetY:y.shadowOffsetY,color:c.color||l,strokeColor:y.color||c.borderColor||c.color||l,lineWidth:b,symbolBorderColor:c.borderColor||c.color||l,symbolBorder:c.borderWidth},highlightStyle:{shadowColor:g.shadowColor,shadowBlur:g.shadowBlur,shadowOffsetX:g.shadowOffsetX,shadowOffsetY:g.shadowOffsetY,color:u.color||c.color||l,strokeColor:g.color||y.color||u.borderColor||c.borderColor||u.color||c.color||l,lineWidth:f,symbolBorderColor:u.borderColor||c.borderColor||u.color||c.color||l,symbolBorder:null==u.borderWidth?c.borderWidth+2:u.borderWidth},clickable:this.deepQuery(p,"clickable")}),L=_.style;return r?(L.pointList=a,L.smooth=k):(L.xStart=a[0][0],L.yStart=a[0][1],L.xEnd=a[1][0],L.yEnd=a[1][1],L.curveness=k,_.updatePoints(_.style)),_=this.addLabel(_,e,i[0],i[0].name+" : "+i[1].name)},getLargeMarkPointShape:function(e,t){var i,n,a,o,s,l,h=this.series[e],m=this.component,V=t.data,U=m.dataRange,d=m.legend,p=[V[0],t];if(d&&(n=d.getColor(h.name)),!U||(a=null!=V[0].value?V[0].value:"",n=isNaN(a)?n:U.getColor(a),o=this.deepQuery(p,"itemStyle.normal.color")||n,s=this.deepQuery(p,"itemStyle.emphasis.color")||o,null!=o||null!=s)){n=this.deepMerge(p,"itemStyle.normal").color||n;var c=this.deepQuery(p,"symbol")||"circle";c=c.replace("empty","").replace(/\d/g,""),l=this.deepMerge([V[0],t],"effect");var u=window.devicePixelRatio||1;return i=new r({style:{pointList:V,color:n,strokeColor:n,shadowColor:l.shadowColor||n,shadowBlur:(null!=l.shadowBlur?l.shadowBlur:8)*u,size:this.deepQuery(p,"symbolSize"),iconType:c,brushType:"fill",lineWidth:1},draggable:!1,hoverable:!1}),l.show&&(i.effect=l),i}},backupShapeList:function(){this.shapeList&&this.shapeList.length>0?(this.lastShapeList=this.shapeList,this.shapeList=[]):this.lastShapeList=[]},addShapeList:function(){var e,t,i=this.option.animationThreshold/(this.canvasSupported?2:4),n=this.lastShapeList,a=this.shapeList,o=n.length>0,r=o?this.query(this.option,"animationDurationUpdate"):this.query(this.option,"animationDuration"),s=this.query(this.option,"animationEasing"),l={},m={};if(this.option.animation&&!this.option.renderAsImage&&a.lengthV;V++)t=this._getAnimationKey(n[V]),t.match("undefined")?this.zr.delShape(n[V].id):(t+=n[V].type,l[t]?this.zr.delShape(n[V].id):l[t]=n[V]);for(var V=0,U=a.length;U>V;V++)t=this._getAnimationKey(a[V]),t.match("undefined")?this.zr.addShape(a[V]):(t+=a[V].type,m[t]=a[V]);for(t in l)m[t]||this.zr.delShape(l[t].id);for(t in m)l[t]?(this.zr.delShape(l[t].id),this._animateMod(l[t],m[t],r,s,0,o)):(e=this.type!=h.CHART_TYPE_LINE&&this.type!=h.CHART_TYPE_RADAR||0===t.indexOf("icon")?0:r/2,this._animateMod(!1,m[t],r,s,e,o));this.zr.refresh(),this.animationEffect()}else{this.motionlessOnce=!1,this.zr.delShape(n);for(var V=0,U=a.length;U>V;V++)this.zr.addShape(a[V])}},_getAnimationKey:function(e){return this.type!=h.CHART_TYPE_MAP&&this.type!=h.CHART_TYPE_TREEMAP&&this.type!=h.CHART_TYPE_VENN&&this.type!=h.CHART_TYPE_TREE?m.get(e,"seriesIndex")+"_"+m.get(e,"dataIndex")+(e._mark?e._mark:"")+(this.type===h.CHART_TYPE_RADAR?m.get(e,"special"):""):m.get(e,"seriesIndex")+"_"+m.get(e,"dataIndex")+(e._mark?e._mark:"undefined")},_animateMod:function(e,t,i,n,a,o){switch(t.type){case"polyline":case"half-smooth-polygon":V.pointList(this.zr,e,t,i,n);break;case"rectangle":V.rectangle(this.zr,e,t,i,n);break;case"image":case"icon":V.icon(this.zr,e,t,i,n,a);break;case"candle":o?this.zr.addShape(t):V.candle(this.zr,e,t,i,n);break;case"ring":case"sector":case"circle":o?"sector"===t.type?V.sector(this.zr,e,t,i,n):this.zr.addShape(t):V.ring(this.zr,e,t,i+(m.get(t,"dataIndex")||0)%20*100,n);break;case"text":V.text(this.zr,e,t,i,n);break;case"polygon":o?V.pointList(this.zr,e,t,i,n):V.polygon(this.zr,e,t,i,n);break;case"ribbon":V.ribbon(this.zr,e,t,i,n);break;case"gauge-pointer":V.gaugePointer(this.zr,e,t,i,n);break;case"mark-line":V.markline(this.zr,e,t,i,n);break;case"bezier-curve":case"line":V.line(this.zr,e,t,i,n);break;default:this.zr.addShape(t)}},animationMark:function(e,t,i){for(var i=i||this.shapeList,n=0,a=i.length;a>n;n++)i[n]._mark&&this._animateMod(!1,i[n],e,t,0,!0);this.animationEffect(i)},animationEffect:function(e){if(!e&&this.clearEffectShape(),e=e||this.shapeList,null!=e){var t=h.EFFECT_ZLEVEL;this.canvasSupported&&this.zr.modLayer(t,{motionBlur:!0,lastFrameAlpha:this.option.effectBlendAlpha||h.effectBlendAlpha});for(var i,n=0,a=e.length;a>n;n++)i=e[n],i._mark&&i.effect&&i.effect.show&&U[i._mark]&&(U[i._mark](this.zr,this.effectList,i,t),this.effectList[this.effectList.length-1]._mark=i._mark)}},clearEffectShape:function(e){var t=this.effectList;if(this.zr&&t&&t.length>0){e&&this.zr.modLayer(h.EFFECT_ZLEVEL,{motionBlur:!1}),this.zr.delShape(t);for(var i=0;il;l++)this.zr.addShape(this.shapeList[l]);this.zr.refreshNextFrame()}n[i].data=r}},delMark:function(e,t,i){i=i.replace("mark","").replace("large","").toLowerCase();var n=this.series[e];if(this.selectedMap[n.name]){for(var a=!1,o=[this.shapeList,this.effectList],r=2;r--;)for(var s=0,l=o[r].length;l>s;s++)if(o[r][s]._mark==i&&m.get(o[r][s],"seriesIndex")==e&&m.get(o[r][s],"name")==t){this.zr.delShape(o[r][s].id),o[r].splice(s,1),a=!0;break}a&&this.zr.refreshNextFrame()}}},u.inherits(i,p),i}),i("zrender/shape/Circle",["require","./Base","../tool/util"],function(e){"use strict";var t=e("./Base"),i=function(e){t.call(this,e)};return i.prototype={type:"circle",buildPath:function(e,t){e.moveTo(t.x+t.r,t.y),e.arc(t.x,t.y,t.r,0,2*Math.PI,!0)},getRect:function(e){if(e.__rect)return e.__rect;var t;return t="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0,e.__rect={x:Math.round(e.x-e.r-t/2),y:Math.round(e.y-e.r-t/2),width:2*e.r+t,height:2*e.r+t},e.__rect}},e("../tool/util").inherits(i,t),i}),i("echarts/util/accMath",[],function(){function e(e,t){var i=e.toString(),n=t.toString(),a=0;try{a=n.split(".")[1].length}catch(o){}try{a-=i.split(".")[1].length}catch(o){}return(i.replace(".","")-0)/(n.replace(".","")-0)*Math.pow(10,a)}function t(e,t){var i=e.toString(),n=t.toString(),a=0;try{a+=i.split(".")[1].length}catch(o){}try{a+=n.split(".")[1].length}catch(o){}return(i.replace(".","")-0)*(n.replace(".","")-0)/Math.pow(10,a)}function i(e,t){var i=0,n=0;try{i=e.toString().split(".")[1].length}catch(a){}try{n=t.toString().split(".")[1].length}catch(a){}var o=Math.pow(10,Math.max(i,n));return(Math.round(e*o)+Math.round(t*o))/o}function n(e,t){return i(e,-t)}return{accDiv:e,accMul:t,accAdd:i,accSub:n}}),i("echarts/util/shape/Icon",["require","zrender/tool/util","zrender/shape/Star","zrender/shape/Heart","zrender/shape/Droplet","zrender/shape/Image","zrender/shape/Base"],function(e){function t(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i,n+t.height),e.lineTo(i+5*a,n+14*o),e.lineTo(i+t.width,n+3*o),e.lineTo(i+13*a,n),e.lineTo(i+2*a,n+11*o),e.lineTo(i,n+t.height),e.moveTo(i+6*a,n+10*o),e.lineTo(i+14*a,n+2*o),e.moveTo(i+10*a,n+13*o),e.lineTo(i+t.width,n+13*o),e.moveTo(i+13*a,n+10*o),e.lineTo(i+13*a,n+t.height)}function i(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i,n+t.height),e.lineTo(i+5*a,n+14*o),e.lineTo(i+t.width,n+3*o),e.lineTo(i+13*a,n),e.lineTo(i+2*a,n+11*o),e.lineTo(i,n+t.height),e.moveTo(i+6*a,n+10*o),e.lineTo(i+14*a,n+2*o),e.moveTo(i+10*a,n+13*o),e.lineTo(i+t.width,n+13*o)}function n(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i+4*a,n+15*o),e.lineTo(i+9*a,n+13*o),e.lineTo(i+14*a,n+8*o),e.lineTo(i+11*a,n+5*o),e.lineTo(i+6*a,n+10*o),e.lineTo(i+4*a,n+15*o),e.moveTo(i+5*a,n),e.lineTo(i+11*a,n),e.moveTo(i+5*a,n+o),e.lineTo(i+11*a,n+o),e.moveTo(i,n+2*o),e.lineTo(i+t.width,n+2*o),e.moveTo(i,n+5*o),e.lineTo(i+3*a,n+t.height),e.lineTo(i+13*a,n+t.height),e.lineTo(i+t.width,n+5*o)}function a(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i,n+3*o),e.lineTo(i+6*a,n+3*o),e.moveTo(i+3*a,n),e.lineTo(i+3*a,n+6*o),e.moveTo(i+3*a,n+8*o),e.lineTo(i+3*a,n+t.height),e.lineTo(i+t.width,n+t.height),e.lineTo(i+t.width,n+3*o),e.lineTo(i+8*a,n+3*o)}function o(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i+6*a,n),e.lineTo(i+2*a,n+3*o),e.lineTo(i+6*a,n+6*o),e.moveTo(i+2*a,n+3*o),e.lineTo(i+14*a,n+3*o),e.lineTo(i+14*a,n+11*o),e.moveTo(i+2*a,n+5*o),e.lineTo(i+2*a,n+13*o),e.lineTo(i+14*a,n+13*o),e.moveTo(i+10*a,n+10*o),e.lineTo(i+14*a,n+13*o),e.lineTo(i+10*a,n+t.height)}function r(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16,r=t.width/2;e.lineWidth=1.5,e.arc(i+r,n+r,r-a,0,2*Math.PI/3),e.moveTo(i+3*a,n+t.height),e.lineTo(i+0*a,n+12*o),e.lineTo(i+5*a,n+11*o),e.moveTo(i,n+8*o),e.arc(i+r,n+r,r-a,Math.PI,5*Math.PI/3),e.moveTo(i+13*a,n),e.lineTo(i+t.width,n+4*o),e.lineTo(i+11*a,n+5*o)}function s(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i,n),e.lineTo(i,n+t.height),e.lineTo(i+t.width,n+t.height),e.moveTo(i+2*a,n+14*o),e.lineTo(i+7*a,n+6*o),e.lineTo(i+11*a,n+11*o),e.lineTo(i+15*a,n+2*o)}function l(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i,n),e.lineTo(i,n+t.height),e.lineTo(i+t.width,n+t.height),e.moveTo(i+3*a,n+14*o),e.lineTo(i+3*a,n+6*o),e.lineTo(i+4*a,n+6*o),e.lineTo(i+4*a,n+14*o),e.moveTo(i+7*a,n+14*o),e.lineTo(i+7*a,n+2*o),e.lineTo(i+8*a,n+2*o),e.lineTo(i+8*a,n+14*o),e.moveTo(i+11*a,n+14*o),e.lineTo(i+11*a,n+9*o),e.lineTo(i+12*a,n+9*o),e.lineTo(i+12*a,n+14*o)}function h(e,t){var i=t.x,n=t.y,a=t.width-2,o=t.height-2,r=Math.min(a,o)/2;n+=2,e.moveTo(i+r+3,n+r-3),e.arc(i+r+3,n+r-3,r-1,0,-Math.PI/2,!0),e.lineTo(i+r+3,n+r-3),e.moveTo(i+r,n),e.lineTo(i+r,n+r),e.arc(i+r,n+r,r,-Math.PI/2,2*Math.PI,!0),e.lineTo(i+r,n+r),e.lineWidth=1.5}function m(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;n-=o,e.moveTo(i+1*a,n+2*o),e.lineTo(i+15*a,n+2*o),e.lineTo(i+14*a,n+3*o),e.lineTo(i+2*a,n+3*o),e.moveTo(i+3*a,n+6*o),e.lineTo(i+13*a,n+6*o),e.lineTo(i+12*a,n+7*o),e.lineTo(i+4*a,n+7*o),e.moveTo(i+5*a,n+10*o),e.lineTo(i+11*a,n+10*o),e.lineTo(i+10*a,n+11*o),e.lineTo(i+6*a,n+11*o),e.moveTo(i+7*a,n+14*o),e.lineTo(i+9*a,n+14*o),e.lineTo(i+8*a,n+15*o),e.lineTo(i+7*a,n+15*o)}function V(e,t){var i=t.x,n=t.y,a=t.width,o=t.height,r=a/16,s=o/16,l=2*Math.min(r,s);e.moveTo(i+r+l,n+s+l),e.arc(i+r,n+s,l,Math.PI/4,3*Math.PI),e.lineTo(i+7*r-l,n+6*s-l),e.arc(i+7*r,n+6*s,l,Math.PI/4*5,4*Math.PI),e.arc(i+7*r,n+6*s,l/2,Math.PI/4*5,4*Math.PI),e.moveTo(i+7*r-l/2,n+6*s+l),e.lineTo(i+r+l,n+14*s-l),e.arc(i+r,n+14*s,l,-Math.PI/4,2*Math.PI),e.moveTo(i+7*r+l/2,n+6*s),e.lineTo(i+14*r-l,n+10*s-l/2),e.moveTo(i+16*r,n+10*s),e.arc(i+14*r,n+10*s,l,0,3*Math.PI),e.lineWidth=1.5}function U(e,t){var i=t.x,n=t.y,a=t.width,o=t.height,r=Math.min(a,o)/2;e.moveTo(i+a,n+o/2),e.arc(i+r,n+r,r,0,2*Math.PI),e.arc(i+r,n,r,Math.PI/4,Math.PI/5*4),e.arc(i,n+r,r,-Math.PI/3,Math.PI/3),e.arc(i+a,n+o,r,Math.PI,Math.PI/2*3),e.lineWidth=1.5}function d(e,t){for(var i=t.x,n=t.y,a=t.width,o=t.height,r=Math.round(o/3),s=Math.round((r-2)/2),l=3;l--;)e.rect(i,n+r*l+s,a,2)}function p(e,t){for(var i=t.x,n=t.y,a=t.width,o=t.height,r=Math.round(a/3),s=Math.round((r-2)/2),l=3;l--;)e.rect(i+r*l+s,n,2,o)}function c(e,t){var i=t.x,n=t.y,a=t.width/16;e.moveTo(i+a,n),e.lineTo(i+a,n+t.height),e.lineTo(i+15*a,n+t.height),e.lineTo(i+15*a,n),e.lineTo(i+a,n),e.moveTo(i+3*a,n+3*a),e.lineTo(i+13*a,n+3*a),e.moveTo(i+3*a,n+6*a),e.lineTo(i+13*a,n+6*a),e.moveTo(i+3*a,n+9*a),e.lineTo(i+13*a,n+9*a),e.moveTo(i+3*a,n+12*a),e.lineTo(i+9*a,n+12*a)}function u(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i,n),e.lineTo(i,n+t.height),e.lineTo(i+t.width,n+t.height),e.lineTo(i+t.width,n),e.lineTo(i,n),e.moveTo(i+4*a,n),e.lineTo(i+4*a,n+8*o),e.lineTo(i+12*a,n+8*o),e.lineTo(i+12*a,n),e.moveTo(i+6*a,n+11*o),e.lineTo(i+6*a,n+13*o),e.lineTo(i+10*a,n+13*o),e.lineTo(i+10*a,n+11*o),e.lineTo(i+6*a,n+11*o)}function y(e,t){var i=t.x,n=t.y,a=t.width,o=t.height;e.moveTo(i,n+o/2),e.lineTo(i+a,n+o/2),e.moveTo(i+a/2,n),e.lineTo(i+a/2,n+o)}function g(e,t){var i=t.width/2,n=t.height/2,a=Math.min(i,n);e.moveTo(t.x+i+a,t.y+n),e.arc(t.x+i,t.y+n,a,0,2*Math.PI),e.closePath()}function b(e,t){e.rect(t.x,t.y,t.width,t.height),e.closePath()}function f(e,t){var i=t.width/2,n=t.height/2,a=t.x+i,o=t.y+n,r=Math.min(i,n);e.moveTo(a,o-r),e.lineTo(a+r,o+r),e.lineTo(a-r,o+r),e.lineTo(a,o-r),e.closePath()}function k(e,t){var i=t.width/2,n=t.height/2,a=t.x+i,o=t.y+n,r=Math.min(i,n);e.moveTo(a,o-r),e.lineTo(a+r,o),e.lineTo(a,o+r),e.lineTo(a-r,o),e.lineTo(a,o-r),e.closePath()}function x(e,t){var i=t.x,n=t.y,a=t.width/16;e.moveTo(i+8*a,n),e.lineTo(i+a,n+t.height),e.lineTo(i+8*a,n+t.height/4*3),e.lineTo(i+15*a,n+t.height),e.lineTo(i+8*a,n),e.closePath()}function _(t,i){var n=e("zrender/shape/Star"),a=i.width/2,o=i.height/2;n.prototype.buildPath(t,{x:i.x+a,y:i.y+o,r:Math.min(a,o),n:i.n||5})}function L(t,i){var n=e("zrender/shape/Heart");n.prototype.buildPath(t,{x:i.x+i.width/2,y:i.y+.2*i.height,a:i.width/2,b:.8*i.height})}function W(t,i){var n=e("zrender/shape/Droplet");n.prototype.buildPath(t,{x:i.x+.5*i.width,y:i.y+.5*i.height,a:.5*i.width,b:.8*i.height})}function X(e,t){var i=t.x,n=t.y-t.height/2*1.5,a=t.width/2,o=t.height/2,r=Math.min(a,o);e.arc(i+a,n+o,r,Math.PI/5*4,Math.PI/5),e.lineTo(i+a,n+o+1.5*r),e.closePath()}function v(t,i,n){var a=e("zrender/shape/Image");this._imageShape=this._imageShape||new a({style:{}});for(var o in i)this._imageShape.style[o]=i[o];this._imageShape.brush(t,!1,n)}function w(e){I.call(this,e)}var K=e("zrender/tool/util"),I=e("zrender/shape/Base");return w.prototype={type:"icon",iconLibrary:{mark:t,markUndo:i,markClear:n,dataZoom:a,dataZoomReset:o,restore:r,lineChart:s,barChart:l,pieChart:h,funnelChart:m,forceChart:V,chordChart:U,stackChart:d,tiledChart:p,dataView:c,saveAsImage:u,cross:y,circle:g,rectangle:b,triangle:f,diamond:k,arrow:x,star:_,heart:L,droplet:W,pin:X,image:v},brush:function(t,i,n){var a=i?this.highlightStyle:this.style;a=a||{};var o=a.iconType||this.style.iconType;if("image"===o){var r=e("zrender/shape/Image");r.prototype.brush.call(this,t,i,n)}else{var a=this.beforeBrush(t,i);switch(t.beginPath(),this.buildPath(t,a,n),a.brushType){case"both":t.fill();case"stroke":a.lineWidth>0&&t.stroke();break;default:t.fill()}this.drawText(t,a,this.style),this.afterBrush(t)}},buildPath:function(e,t,i){this.iconLibrary[t.iconType]?this.iconLibrary[t.iconType].call(this,e,t,i):(e.moveTo(t.x,t.y),e.lineTo(t.x+t.width,t.y),e.lineTo(t.x+t.width,t.y+t.height),e.lineTo(t.x,t.y+t.height),e.lineTo(t.x,t.y),e.closePath())},getRect:function(e){return e.__rect?e.__rect:(e.__rect={x:Math.round(e.x),y:Math.round(e.y-("pin"==e.iconType?e.height/2*1.5:0)),width:e.width,height:e.height*("pin"===e.iconType?1.25:1)},e.__rect)},isCover:function(e,t){var i=this.transformCoordToLocal(e,t);e=i[0],t=i[1];var n=this.style.__rect;n||(n=this.style.__rect=this.getRect(this.style));var a=n.height<8||n.width<8?4:0;return e>=n.x-a&&e<=n.x+n.width+a&&t>=n.y-a&&t<=n.y+n.height+a}},K.inherits(w,I),w}),i("echarts/util/shape/MarkLine",["require","zrender/shape/Base","./Icon","zrender/shape/Line","zrender/shape/BezierCurve","zrender/tool/area","zrender/shape/util/dashedLineTo","zrender/tool/util","zrender/tool/curve"],function(e){function t(e){i.call(this,e),this.style.curveness>0&&this.updatePoints(this.style),this.highlightStyle.curveness>0&&this.updatePoints(this.highlightStyle)}var i=e("zrender/shape/Base"),n=e("./Icon"),a=e("zrender/shape/Line"),o=new a({}),r=e("zrender/shape/BezierCurve"),s=new r({}),l=e("zrender/tool/area"),h=e("zrender/shape/util/dashedLineTo"),m=e("zrender/tool/util"),V=e("zrender/tool/curve");return t.prototype={type:"mark-line",brush:function(e,t){var i=this.style;t&&(i=this.getHighlightStyle(i,this.highlightStyle||{})),e.save(),this.setContext(e,i),this.setTransform(e),e.save(),e.beginPath(),this.buildPath(e,i),e.stroke(),e.restore(),this.brushSymbol(e,i,0),this.brushSymbol(e,i,1),this.drawText(e,i,this.style),e.restore()},buildPath:function(e,t){var i=t.lineType||"solid";if(e.moveTo(t.xStart,t.yStart),t.curveness>0){var n=null;switch(i){case"dashed":n=[5,5];break;case"dotted":n=[1,1]}n&&e.setLineDash&&e.setLineDash(n),e.quadraticCurveTo(t.cpX1,t.cpY1,t.xEnd,t.yEnd)}else if("solid"==i)e.lineTo(t.xEnd,t.yEnd);else{var a=(t.lineWidth||1)*("dashed"==t.lineType?5:1);h(e,t.xStart,t.yStart,t.xEnd,t.yEnd,a)}},updatePoints:function(e){var t=e.curveness||0,i=1,n=e.xStart,a=e.yStart,o=e.xEnd,r=e.yEnd,s=(n+o)/2-i*(a-r)*t,l=(a+r)/2-i*(o-n)*t;e.cpX1=s,e.cpY1=l},brushSymbol:function(e,t,i){if("none"!=t.symbol[i]){e.save(),e.beginPath(),e.lineWidth=t.symbolBorder,e.strokeStyle=t.symbolBorderColor;var a=t.symbol[i].replace("empty","").toLowerCase();t.symbol[i].match("empty")&&(e.fillStyle="#fff");var o=t.xStart,r=t.yStart,s=t.xEnd,l=t.yEnd,h=0===i?o:s,m=0===i?r:l,U=t.curveness||0,d=null!=t.symbolRotate[i]?t.symbolRotate[i]-0:0;if(d=d/180*Math.PI,"arrow"==a&&0===d)if(0===U){var p=0===i?-1:1;d=Math.PI/2+Math.atan2(p*(l-r),p*(s-o))}else{var c=t.cpX1,u=t.cpY1,y=V.quadraticDerivativeAt,g=y(o,c,s,i),b=y(r,u,l,i);d=Math.PI/2+Math.atan2(b,g)}e.translate(h,m),0!==d&&e.rotate(d);var f=t.symbolSize[i];n.prototype.buildPath(e,{x:-f,y:-f,width:2*f,height:2*f,iconType:a}),e.closePath(),e.fill(),e.stroke(),e.restore()}},getRect:function(e){return e.curveness>0?s.getRect(e):o.getRect(e),e.__rect},isCover:function(e,t){var i=this.transformCoordToLocal(e,t);return e=i[0],t=i[1],this.isCoverRect(e,t)?this.style.curveness>0?l.isInside(s,this.style,e,t):l.isInside(o,this.style,e,t):!1}},m.inherits(t,i),t}),i("echarts/util/shape/Symbol",["require","zrender/shape/Base","zrender/shape/Polygon","zrender/tool/util","./normalIsCover"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/shape/Polygon"),a=new n({}),o=e("zrender/tool/util");return t.prototype={type:"symbol",buildPath:function(e,t){var i=t.pointList,n=i.length;if(0!==n)for(var a,o,r,s,l,h=1e4,m=Math.ceil(n/h),V=i[0]instanceof Array,U=t.size?t.size:2,d=U,p=U/2,c=2*Math.PI,u=0;m>u;u++){e.beginPath(),a=u*h,o=a+h,o=o>n?n:o;for(var y=a;o>y;y++)if(t.random&&(r=t["randomMap"+y%20]/100,d=U*r*r,p=d/2),V?(s=i[y][0],l=i[y][1]):(s=i[y].x,l=i[y].y),3>d)e.rect(s-p,l-p,d,d);else switch(t.iconType){case"circle":e.moveTo(s,l),e.arc(s,l,p,0,c,!0);break;case"diamond":e.moveTo(s,l-p),e.lineTo(s+p/3,l-p/3),e.lineTo(s+p,l),e.lineTo(s+p/3,l+p/3),e.lineTo(s,l+p),e.lineTo(s-p/3,l+p/3),e.lineTo(s-p,l),e.lineTo(s-p/3,l-p/3),e.lineTo(s,l-p);break;default:e.rect(s-p,l-p,d,d)}if(e.closePath(),m-1>u)switch(t.brushType){case"both":e.fill(),t.lineWidth>0&&e.stroke();break;case"stroke":t.lineWidth>0&&e.stroke();break;default:e.fill()}}},getRect:function(e){return e.__rect||a.getRect(e)},isCover:e("./normalIsCover")},o.inherits(t,i),t}),i("zrender/shape/Polyline",["require","./Base","./util/smoothSpline","./util/smoothBezier","./util/dashedLineTo","./Polygon","../tool/util"],function(e){var t=e("./Base"),i=e("./util/smoothSpline"),n=e("./util/smoothBezier"),a=e("./util/dashedLineTo"),o=function(e){this.brushTypeOnly="stroke",this.textPosition="end",t.call(this,e)};return o.prototype={type:"polyline",buildPath:function(e,t){var n=t.pointList;if(!(n.length<2)){var o=Math.min(t.pointList.length,Math.round(t.pointListLength||t.pointList.length));if(t.smooth&&"spline"!==t.smooth){t.controlPointList||this.updateControlPoints(t);var r=t.controlPointList;e.moveTo(n[0][0],n[0][1]);for(var s,l,h,m=0;o-1>m;m++)s=r[2*m],l=r[2*m+1],h=n[m+1],e.bezierCurveTo(s[0],s[1],l[0],l[1],h[0],h[1])}else if("spline"===t.smooth&&(n=i(n),o=n.length),t.lineType&&"solid"!=t.lineType){if("dashed"==t.lineType||"dotted"==t.lineType){var V=(t.lineWidth||1)*("dashed"==t.lineType?5:1);e.moveTo(n[0][0],n[0][1]);for(var m=1;o>m;m++)a(e,n[m-1][0],n[m-1][1],n[m][0],n[m][1],V)}}else{e.moveTo(n[0][0],n[0][1]);for(var m=1;o>m;m++)e.lineTo(n[m][0],n[m][1])}}},updateControlPoints:function(e){e.controlPointList=n(e.pointList,e.smooth,!1,e.smoothConstraint)},getRect:function(t){return e("./Polygon").prototype.getRect(t)}},e("../tool/util").inherits(o,t),o}),i("zrender/shape/ShapeBundle",["require","./Base","../tool/util"],function(e){var t=e("./Base"),i=function(e){t.call(this,e)};return i.prototype={constructor:i,type:"shape-bundle",brush:function(e,t){var i=this.beforeBrush(e,t);e.beginPath();for(var n=0;n0&&e.stroke();break;default:e.fill()}this.drawText(e,i,this.style),this.afterBrush(e)},getRect:function(e){if(e.__rect)return e.__rect;for(var t=1/0,i=-(1/0),n=1/0,a=-(1/0),o=0;oh;h++)o[h]=[r[h][0],l];else for(var m=r[0][0],h=0;s>h;h++)o[h]=[m,r[h][1]];"half-smooth-polygon"==i.type&&(o[s-1]=p.clone(r[s-1]),o[s-2]=p.clone(r[s-2])),t={style:{pointList:o}}}o=t.style.pointList;var V=o.length;i.style.pointList=V==s?o:s>V?o.concat(r.slice(V)):o.slice(0,s),e.addShape(i),i.__animating=!0,e.animate(i.id,"style").when(n,{pointList:r}).during(function(){i.updateControlPoints&&i.updateControlPoints(i.style)}).done(function(){i.__animating=!1}).start(a)}function i(e,t){for(var i=arguments.length,n=2;i>n;n++){var a=arguments[n];e.style[a]=t.style[a]}}function n(e,t,n,a,o){var r=n.style;t||(t={position:n.position,style:{x:r.x,y:"vertical"==n._orient?r.y+r.height:r.y,width:"vertical"==n._orient?r.width:0,height:"vertical"!=n._orient?r.height:0}});var s=r.x,l=r.y,h=r.width,m=r.height,V=[n.position[0],n.position[1]];i(n,t,"x","y","width","height"),n.position=t.position,e.addShape(n),(V[0]!=t.position[0]||V[1]!=t.position[1])&&e.animate(n.id,"").when(a,{position:V}).start(o),n.__animating=!0,e.animate(n.id,"style").when(a,{x:s,y:l,width:h,height:m}).done(function(){n.__animating=!1}).start(o)}function a(e,t,i,n,a){if(!t){var o=i.style.y;t={style:{y:[o[0],o[0],o[0],o[0]]}}}var r=i.style.y;i.style.y=t.style.y,e.addShape(i),i.__animating=!0,e.animate(i.id,"style").when(n,{y:r}).done(function(){i.__animating=!1}).start(a)}function o(e,t,i,n,a){var o=i.style.x,r=i.style.y,s=i.style.r0,l=i.style.r;i.__animating=!0,"r"!=i._animationAdd?(i.style.r0=0,i.style.r=0,i.rotation=[2*Math.PI,o,r],e.addShape(i),e.animate(i.id,"style").when(n,{r0:s,r:l}).done(function(){i.__animating=!1}).start(a),e.animate(i.id,"").when(n,{rotation:[0,o,r]}).start(a)):(i.style.r0=i.style.r,e.addShape(i),e.animate(i.id,"style").when(n,{r0:s}).done(function(){i.__animating=!1}).start(a))}function r(e,t,n,a,o){t||(t="r"!=n._animationAdd?{ -style:{startAngle:n.style.startAngle,endAngle:n.style.startAngle}}:{style:{r0:n.style.r}});var r=n.style.startAngle,s=n.style.endAngle;i(n,t,"startAngle","endAngle"),e.addShape(n),n.__animating=!0,e.animate(n.id,"style").when(a,{startAngle:r,endAngle:s}).done(function(){n.__animating=!1}).start(o)}function s(e,t,n,a,o){t||(t={style:{x:"left"==n.style.textAlign?n.style.x+100:n.style.x-100,y:n.style.y}});var r=n.style.x,s=n.style.y;i(n,t,"x","y"),e.addShape(n),n.__animating=!0,e.animate(n.id,"style").when(a,{x:r,y:s}).done(function(){n.__animating=!1}).start(o)}function l(t,i,n,a,o){var r=e("zrender/shape/Polygon").prototype.getRect(n.style),s=r.x+r.width/2,l=r.y+r.height/2;n.scale=[.1,.1,s,l],t.addShape(n),n.__animating=!0,t.animate(n.id,"").when(a,{scale:[1,1,s,l]}).done(function(){n.__animating=!1}).start(o)}function h(e,t,n,a,o){t||(t={style:{source0:0,source1:n.style.source1>0?360:-360,target0:0,target1:n.style.target1>0?360:-360}});var r=n.style.source0,s=n.style.source1,l=n.style.target0,h=n.style.target1;t.style&&i(n,t,"source0","source1","target0","target1"),e.addShape(n),n.__animating=!0,e.animate(n.id,"style").when(a,{source0:r,source1:s,target0:l,target1:h}).done(function(){n.__animating=!1}).start(o)}function m(e,t,i,n,a){t||(t={style:{angle:i.style.startAngle}});var o=i.style.angle;i.style.angle=t.style.angle,e.addShape(i),i.__animating=!0,e.animate(i.id,"style").when(n,{angle:o}).done(function(){i.__animating=!1}).start(a)}function V(e,t,i,a,o,r){if(i.style._x=i.style.x,i.style._y=i.style.y,i.style._width=i.style.width,i.style._height=i.style.height,t)n(e,t,i,a,o);else{var s=i._x||0,l=i._y||0;i.scale=[.01,.01,s,l],e.addShape(i),i.__animating=!0,e.animate(i.id,"").delay(r).when(a,{scale:[1,1,s,l]}).done(function(){i.__animating=!1}).start(o||"QuinticOut")}}function U(e,t,n,a,o){t||(t={style:{xStart:n.style.xStart,yStart:n.style.yStart,xEnd:n.style.xStart,yEnd:n.style.yStart}});var r=n.style.xStart,s=n.style.xEnd,l=n.style.yStart,h=n.style.yEnd;i(n,t,"xStart","xEnd","yStart","yEnd"),e.addShape(n),n.__animating=!0,e.animate(n.id,"style").when(a,{xStart:r,xEnd:s,yStart:l,yEnd:h}).done(function(){n.__animating=!1}).start(o)}function d(e,t,i,n,a){a=a||"QuinticOut",i.__animating=!0,e.addShape(i);var o=i.style,r=function(){i.__animating=!1},s=o.xStart,l=o.yStart,h=o.xEnd,m=o.yEnd;if(o.curveness>0){i.updatePoints(o);var V={p:0},U=o.cpX1,d=o.cpY1,p=[],u=[],y=c.quadraticSubdivide;e.animation.animate(V).when(n,{p:1}).during(function(){y(s,U,h,V.p,p),y(l,d,m,V.p,u),o.cpX1=p[1],o.cpY1=u[1],o.xEnd=p[2],o.yEnd=u[2],e.modShape(i)}).done(r).start(a)}else e.animate(i.id,"style").when(0,{xEnd:s,yEnd:l}).when(n,{xEnd:h,yEnd:m}).done(r).start(a)}var p=e("zrender/tool/util"),c=e("zrender/tool/curve");return{pointList:t,rectangle:n,candle:a,ring:o,sector:r,text:s,polygon:l,ribbon:h,gaugePointer:m,icon:V,line:U,markline:d}}),i("echarts/util/ecEffect",["require","../util/ecData","zrender/shape/Circle","zrender/shape/Image","zrender/tool/curve","../util/shape/Icon","../util/shape/Symbol","zrender/shape/ShapeBundle","zrender/shape/Polyline","zrender/tool/vector","zrender/tool/env"],function(e){function t(e,t,i,n){var a,r=i.effect,l=r.color||i.style.strokeColor||i.style.color,m=r.shadowColor||l,V=r.scaleSize,U=r.bounceDistance,d="undefined"!=typeof r.shadowBlur?r.shadowBlur:V;"image"!==i.type?(a=new h({zlevel:n,style:{brushType:"stroke",iconType:"droplet"!=i.style.iconType?i.style.iconType:"circle",x:d+1,y:d+1,n:i.style.n,width:i.style._width*V,height:i.style._height*V,lineWidth:1,strokeColor:l,shadowColor:m,shadowBlur:d},draggable:!1,hoverable:!1}),"pin"==i.style.iconType&&(a.style.y+=a.style.height/2*1.5),p&&(a.style.image=e.shapeToImage(a,a.style.width+2*d+2,a.style.height+2*d+2).style.image,a=new s({zlevel:a.zlevel,style:a.style,draggable:!1,hoverable:!1}))):a=new s({zlevel:n,style:i.style,draggable:!1,hoverable:!1}),o.clone(i,a),a.position=i.position,t.push(a),e.addShape(a);var c="image"!==i.type?window.devicePixelRatio||1:1,u=(a.style.width/c-i.style._width)/2;a.style.x=i.style._x-u,a.style.y=i.style._y-u,"pin"==i.style.iconType&&(a.style.y-=i.style.height/2*1.5);var y=100*(r.period+10*Math.random());e.modShape(i.id,{invisible:!0});var g=a.style.x+a.style.width/2/c,b=a.style.y+a.style.height/2/c;"scale"===r.type?(e.modShape(a.id,{scale:[.1,.1,g,b]}),e.animate(a.id,"",r.loop).when(y,{scale:[1,1,g,b]}).done(function(){i.effect.show=!1,e.delShape(a.id)}).start()):e.animate(a.id,"style",r.loop).when(y,{y:a.style.y-U}).when(2*y,{y:a.style.y}).done(function(){i.effect.show=!1,e.delShape(a.id)}).start()}function i(e,t,i,n){var a=i.effect,o=a.color||i.style.strokeColor||i.style.color,r=a.scaleSize,s=a.shadowColor||o,l="undefined"!=typeof a.shadowBlur?a.shadowBlur:2*r,h=window.devicePixelRatio||1,V=new m({zlevel:n,position:i.position,scale:i.scale,style:{pointList:i.style.pointList,iconType:i.style.iconType,color:o,strokeColor:o,shadowColor:s,shadowBlur:l*h,random:!0,brushType:"fill",lineWidth:1,size:i.style.size},draggable:!1,hoverable:!1});t.push(V),e.addShape(V),e.modShape(i.id,{invisible:!0});for(var U=Math.round(100*a.period),d={},p={},c=0;20>c;c++)V.style["randomMap"+c]=0,d={},d["randomMap"+c]=100,p={},p["randomMap"+c]=0,V.style["randomMap"+c]=100*Math.random(),e.animate(V.id,"style",!0).when(U,d).when(2*U,p).when(3*U,d).when(4*U,d).delay(Math.random()*U*c).start()}function n(e,t,i,n,a){var s=i.effect,h=i.style,m=s.color||h.strokeColor||h.color,V=s.shadowColor||h.strokeColor||m,c=h.lineWidth*s.scaleSize,u="undefined"!=typeof s.shadowBlur?s.shadowBlur:c,y=new r({zlevel:n,style:{x:u,y:u,r:c,color:m,shadowColor:V,shadowBlur:u},hoverable:!1}),g=0;if(p&&!a){var n=y.zlevel;y=e.shapeToImage(y,2*(c+u),2*(c+u)),y.zlevel=n,y.hoverable=!1,g=u}a||(o.clone(i,y),y.position=i.position,t.push(y),e.addShape(y));var b=function(){a||(i.effect.show=!1,e.delShape(y.id)),y.effectAnimator=null};if(i instanceof U){for(var f=[0],k=0,x=h.pointList,_=h.controlPointList,L=1;L0){var F=h.cpX1-g,T=h.cpY1-g;y.effectAnimator=e.animation.animate(y,{loop:s.loop}).when(E,{p:1}).during(function(t,i){y.style.x=l.quadraticAt(K,F,J,i),y.style.y=l.quadraticAt(I,T,C,i),a||e.modShape(y)}).done(b).start()}else y.effectAnimator=e.animation.animate(y.style,{loop:s.loop}).when(E,{x:J,y:C}).during(function(){a||e.modShape(y)}).done(b).start();y.effectAnimator.duration=E}return y}function a(e,t,i,a){var o=new V({style:{shapeList:[]},zlevel:a,hoverable:!1}),r=i.style.shapeList,s=i.effect;o.position=i.position;for(var l=0,h=[],m=0;ml&&(l=d.duration),0===m&&(o.style.color=U.style.color,o.style.shadowBlur=U.style.shadowBlur,o.style.shadowColor=U.style.shadowColor),h.push(d)}t.push(o),e.addShape(o);var p=function(){for(var e=0;e=0;o--)t=s.type==i.CHART_TYPE_PIE||s.type==i.CHART_TYPE_FUNNEL?n.get(s.shapeList[o],"name"):(n.get(s.shapeList[o],"series")||{}).name,t!=a||s.shapeList[o].invisible||s.shapeList[o].__animating||s.zr.addHoverShape(s.shapeList[o])},t&&t.bind(i.EVENT.LEGEND_HOVERLINK,this._onlegendhoverlink)}var i=e("../config"),n=e("../util/ecData"),a=e("../util/ecQuery"),o=e("../util/number"),r=e("zrender/tool/util");return t.prototype={canvasSupported:e("zrender/tool/env").canvasSupported,_getZ:function(e){if(null!=this[e])return this[e];var t=this.ecTheme[this.type];return t&&null!=t[e]?t[e]:(t=i[this.type],t&&null!=t[e]?t[e]:0)},getZlevelBase:function(){return this._getZ("zlevel")},getZBase:function(){return this._getZ("z")},reformOption:function(e){return e=r.merge(r.merge(e||{},r.clone(this.ecTheme[this.type]||{})),r.clone(i[this.type]||{})),this.z=e.z,this.zlevel=e.zlevel,e},reformCssArray:function(e){if(!(e instanceof Array))return[e,e,e,e];switch(e.length+""){case"4":return e;case"3":return[e[0],e[1],e[2],e[1]];case"2":return[e[0],e[1],e[0],e[1]];case"1":return[e[0],e[0],e[0],e[0]];case"0":return[0,0,0,0]}},getShapeById:function(e){for(var t=0,i=this.shapeList.length;i>t;t++)if(this.shapeList[t].id===e)return this.shapeList[t];return null},getFont:function(e){var t=this.getTextStyle(r.clone(e));return t.fontStyle+" "+t.fontWeight+" "+t.fontSize+"px "+t.fontFamily},getTextStyle:function(e){return r.merge(r.merge(e||{},this.ecTheme.textStyle),i.textStyle)},getItemStyleColor:function(e,t,i,n){return"function"==typeof e?e.call(this.myChart,{seriesIndex:t,series:this.series[t],dataIndex:i,data:n}):e},getDataFromOption:function(e,t){return null!=e?null!=e.value?e.value:e:t},subPixelOptimize:function(e,t){return e=t%2===1?Math.floor(e)+.5:Math.round(e)},resize:function(){this.refresh&&this.refresh(),this.clearEffectShape&&this.clearEffectShape(!0);var e=this;setTimeout(function(){e.animationEffect&&e.animationEffect()},200)},clear:function(){this.clearEffectShape&&this.clearEffectShape(),this.zr&&this.zr.delShape(this.shapeList),this.shapeList=[]},dispose:function(){this.onbeforDispose&&this.onbeforDispose(),this.clear(),this.shapeList=null,this.effectList=null,this.messageCenter&&this.messageCenter.unbind(i.EVENT.LEGEND_HOVERLINK,this._onlegendhoverlink),this.onafterDispose&&this.onafterDispose()},query:a.query,deepQuery:a.deepQuery,deepMerge:a.deepMerge,parsePercent:o.parsePercent,parseCenter:o.parseCenter,parseRadius:o.parseRadius,numAddCommas:o.addCommas,getPrecision:o.getPrecision},t}),i("echarts/layout/EdgeBundling",["require","../data/KDTree","zrender/tool/vector"],function(e){function t(e,t){e=e.array,t=t.array;var i=t[0]-e[0],n=t[1]-e[1],a=t[2]-e[2],o=t[3]-e[3];return i*i+n*n+a*a+o*o}function i(e){this.points=[e.mp0,e.mp1],this.group=e}function n(e){var t=e.points;t[0][1]0&&t(e[o],n[a-1])||(n[a++]=U(e[o]));return i[0]&&!t(n[0],i[0])&&(n=n.reverse()),n}for(var a=this._iterate(e),o=0;o++f&&(f=W,k=L,V(g,c),V(y,p),b=u)}if(k){s+=f;var X;k.group||(X=new a,o.push(X),X.addEdge(k)),X=k.group,V(X.mp0,y),V(X.mp1,g),X.ink=b,k.group.addEdge(m)}else{var X=new a;o.push(X),V(X.mp0,m.getStartPoint()),V(X.mp1,m.getEndPoint()),X.ink=m.ink,X.addEdge(m)}}}return{groups:o,edges:i,savedInk:s}},_calculateEdgeEdgeInk:function(){var e=[],t=[];return function(i,n,a,o){e[0]=i.getStartPoint(),e[1]=n.getStartPoint(),t[0]=i.getEndPoint(),t[1]=n.getEndPoint(),this._calculateMeetPoints(e,t,a,o);var r=m(e[0],a)+m(a,o)+m(o,t[0])+m(e[1],a)+m(o,t[1]);return r}}(),_calculateGroupEdgeInk:function(e,t,i,n){for(var a=[],o=[],r=0;rl;l++)s.add(e,e,i[l]);s.scale(e,e,1/r),r=n.length;for(var l=0;r>l;l++)s.add(t,t,n[l]);s.scale(t,t,1/r),this._limitTurningAngle(i,e,t,a),this._limitTurningAngle(n,t,e,o)}}(),_limitTurningAngle:function(){var e=l(),t=l(),i=l(),n=l();return function(a,o,r,l){var V=Math.cos(this.maxTurningAngle),U=Math.tan(this.maxTurningAngle);s.sub(e,o,r),s.normalize(e,e),s.copy(l,o);for(var d=0,p=0;py){s.scaleAndAdd(i,o,e,u*y);var g=m(i,c),b=g/U;s.scaleAndAdd(n,i,e,-b);var f=h(n,o);f>d&&(d=f,s.copy(l,n))}}}}()},o}),i("zrender/shape/Star",["require","../tool/math","./Base","../tool/util"],function(e){var t=e("../tool/math"),i=t.sin,n=t.cos,a=Math.PI,o=e("./Base"),r=function(e){o.call(this,e)};return r.prototype={type:"star",buildPath:function(e,t){var o=t.n;if(o&&!(2>o)){var r=t.x,s=t.y,l=t.r,h=t.r0;null==h&&(h=o>4?l*n(2*a/o)/n(a/o):l/3);var m=a/o,V=-a/2,U=r+l*n(V),d=s+l*i(V);V+=m;var p=t.pointList=[];p.push([U,d]);for(var c,u=0,y=2*o-1;y>u;u++)c=u%2===0?h:l,p.push([r+c*n(V),s+c*i(V)]),V+=m;p.push([U,d]),e.moveTo(p[0][0],p[0][1]);for(var u=0;ur;r+=2)e[0]=Math.min(e[0],e[0],o[r]),e[1]=Math.min(e[1],e[1],o[r+1]),i[0]=Math.max(i[0],i[0],o[r]),i[1]=Math.max(i[1],i[1],o[r+1]);break;case"Q":for(var r=0;4>r;r+=2)e[0]=Math.min(e[0],e[0],o[r]),e[1]=Math.min(e[1],e[1],o[r+1]),i[0]=Math.max(i[0],i[0],o[r]),i[1]=Math.max(i[1],i[1],o[r+1]);break;case"A":var s=o[0],l=o[1],h=o[2],m=o[3];e[0]=Math.min(e[0],e[0],s-h),e[1]=Math.min(e[1],e[1],l-m),i[0]=Math.max(i[0],i[0],s+h),i[1]=Math.max(i[1],i[1],l+m)}}return{x:e[0],y:e[1],width:i[0]-e[0],height:i[1]-e[1]}},n.prototype.begin=function(e){return this._ctx=e||null,this.pathCommands.length=0,this},n.prototype.moveTo=function(e,t){return this.pathCommands.push(new i("M",[e,t])),this._ctx&&this._ctx.moveTo(e,t),this},n.prototype.lineTo=function(e,t){return this.pathCommands.push(new i("L",[e,t])),this._ctx&&this._ctx.lineTo(e,t),this},n.prototype.bezierCurveTo=function(e,t,n,a,o,r){return this.pathCommands.push(new i("C",[e,t,n,a,o,r])),this._ctx&&this._ctx.bezierCurveTo(e,t,n,a,o,r),this},n.prototype.quadraticCurveTo=function(e,t,n,a){return this.pathCommands.push(new i("Q",[e,t,n,a])),this._ctx&&this._ctx.quadraticCurveTo(e,t,n,a),this},n.prototype.arc=function(e,t,n,a,o,r){return this.pathCommands.push(new i("A",[e,t,n,n,a,o-a,0,r?0:1])),this._ctx&&this._ctx.arc(e,t,n,a,o,r),this},n.prototype.arcTo=function(e,t,i,n,a){return this._ctx&&this._ctx.arcTo(e,t,i,n,a),this},n.prototype.rect=function(e,t,i,n){return this._ctx&&this._ctx.rect(e,t,i,n),this},n.prototype.closePath=function(){return this.pathCommands.push(new i("z")),this._ctx&&this._ctx.closePath(),this},n.prototype.isEmpty=function(){return 0===this.pathCommands.length},n.PathSegment=i,n}),i("zrender/shape/Line",["require","./Base","./util/dashedLineTo","../tool/util"],function(e){var t=e("./Base"),i=e("./util/dashedLineTo"),n=function(e){this.brushTypeOnly="stroke",this.textPosition="end",t.call(this,e)};return n.prototype={type:"line",buildPath:function(e,t){if(t.lineType&&"solid"!=t.lineType){if("dashed"==t.lineType||"dotted"==t.lineType){var n=(t.lineWidth||1)*("dashed"==t.lineType?5:1);i(e,t.xStart,t.yStart,t.xEnd,t.yEnd,n)}}else e.moveTo(t.xStart,t.yStart),e.lineTo(t.xEnd,t.yEnd)},getRect:function(e){if(e.__rect)return e.__rect;var t=e.lineWidth||1;return e.__rect={x:Math.min(e.xStart,e.xEnd)-t,y:Math.min(e.yStart,e.yEnd)-t,width:Math.abs(e.xStart-e.xEnd)+t,height:Math.abs(e.yStart-e.yEnd)+t},e.__rect}},e("../tool/util").inherits(n,t),n}),i("zrender/shape/BezierCurve",["require","./Base","../tool/util"],function(e){"use strict";var t=e("./Base"),i=function(e){this.brushTypeOnly="stroke",this.textPosition="end",t.call(this,e)};return i.prototype={type:"bezier-curve",buildPath:function(e,t){e.moveTo(t.xStart,t.yStart),"undefined"!=typeof t.cpX2&&"undefined"!=typeof t.cpY2?e.bezierCurveTo(t.cpX1,t.cpY1,t.cpX2,t.cpY2,t.xEnd,t.yEnd):e.quadraticCurveTo(t.cpX1,t.cpY1,t.xEnd,t.yEnd)},getRect:function(e){if(e.__rect)return e.__rect;var t=Math.min(e.xStart,e.xEnd,e.cpX1),i=Math.min(e.yStart,e.yEnd,e.cpY1),n=Math.max(e.xStart,e.xEnd,e.cpX1),a=Math.max(e.yStart,e.yEnd,e.cpY1),o=e.cpX2,r=e.cpY2;"undefined"!=typeof o&&"undefined"!=typeof r&&(t=Math.min(t,o),i=Math.min(i,r),n=Math.max(n,o),a=Math.max(a,r));var s=e.lineWidth||1;return e.__rect={x:t-s,y:i-s,width:n-t+s,height:a-i+s},e.__rect}},e("../tool/util").inherits(i,t),i}),i("zrender/shape/util/dashedLineTo",[],function(){var e=[5,5];return function(t,i,n,a,o,r){if(t.setLineDash)return e[0]=e[1]=r,t.setLineDash(e),t.moveTo(i,n),void t.lineTo(a,o);r="number"!=typeof r?5:r;var s=a-i,l=o-n,h=Math.floor(Math.sqrt(s*s+l*l)/r);s/=h,l/=h;for(var m=!0,V=0;h>V;++V)m?t.moveTo(i,n):t.lineTo(i,n),m=!m,i+=s,n+=l;t.lineTo(a,o)}}),i("zrender/shape/Polygon",["require","./Base","./util/smoothSpline","./util/smoothBezier","./util/dashedLineTo","../tool/util"],function(e){var t=e("./Base"),i=e("./util/smoothSpline"),n=e("./util/smoothBezier"),a=e("./util/dashedLineTo"),o=function(e){t.call(this,e)};return o.prototype={type:"polygon",buildPath:function(e,t){var o=t.pointList;if(!(o.length<2)){if(t.smooth&&"spline"!==t.smooth){var r=n(o,t.smooth,!0,t.smoothConstraint);e.moveTo(o[0][0],o[0][1]);for(var s,l,h,m=o.length,V=0;m>V;V++)s=r[2*V],l=r[2*V+1],h=o[(V+1)%m],e.bezierCurveTo(s[0],s[1],l[0],l[1],h[0],h[1])}else if("spline"===t.smooth&&(o=i(o,!0)),t.lineType&&"solid"!=t.lineType){if("dashed"==t.lineType||"dotted"==t.lineType){var U=t._dashLength||(t.lineWidth||1)*("dashed"==t.lineType?5:1);t._dashLength=U,e.moveTo(o[0][0],o[0][1]);for(var V=1,d=o.length;d>V;V++)a(e,o[V-1][0],o[V-1][1],o[V][0],o[V][1],U);a(e,o[o.length-1][0],o[o.length-1][1],o[0][0],o[0][1],U)}}else{e.moveTo(o[0][0],o[0][1]);for(var V=1,d=o.length;d>V;V++)e.lineTo(o[V][0],o[V][1]);e.lineTo(o[0][0],o[0][1])}e.closePath()}},getRect:function(e){if(e.__rect)return e.__rect;for(var t=Number.MAX_VALUE,i=Number.MIN_VALUE,n=Number.MAX_VALUE,a=Number.MIN_VALUE,o=e.pointList,r=0,s=o.length;s>r;r++)o[r][0]i&&(i=o[r][0]),o[r][1]a&&(a=o[r][1]);var l;return l="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0,e.__rect={x:Math.round(t-l/2),y:Math.round(n-l/2),width:i-t+l,height:a-n+l},e.__rect}},e("../tool/util").inherits(o,t),o}),i("echarts/util/shape/normalIsCover",[],function(){return function(e,t){var i=this.transformCoordToLocal(e,t);return e=i[0],t=i[1],this.isCoverRect(e,t)}}),i("zrender/shape/util/smoothSpline",["require","../../tool/vector"],function(e){function t(e,t,i,n,a,o,r){var s=.5*(i-e),l=.5*(n-t);return(2*(t-i)+s+l)*r+(-3*(t-i)-2*s-l)*o+s*a+t}var i=e("../../tool/vector");return function(e,n){for(var a=e.length,o=[],r=0,s=1;a>s;s++)r+=i.distance(e[s-1],e[s]);var l=r/5;l=a>l?a:l;for(var s=0;l>s;s++){var h,m,V,U=s/(l-1)*(n?a:a-1),d=Math.floor(U),p=U-d,c=e[d%a];n?(h=e[(d-1+a)%a],m=e[(d+1)%a],V=e[(d+2)%a]):(h=e[0===d?d:d-1],m=e[d>a-2?a-1:d+1],V=e[d>a-3?a-1:d+2]);var u=p*p,y=p*u;o.push([t(h[0],c[0],m[0],V[0],p,u,y),t(h[1],c[1],m[1],V[1],p,u,y)])}return o}}),i("zrender/shape/util/smoothBezier",["require","../../tool/vector"],function(e){var t=e("../../tool/vector");return function(e,i,n,a){var o,r,s,l,h=[],m=[],V=[],U=[],d=!!a;if(d){s=[1/0,1/0],l=[-(1/0),-(1/0)];for(var p=0,c=e.length;c>p;p++)t.min(s,s,e[p]),t.max(l,l,e[p]);t.min(s,s,a[0]),t.max(l,l,a[1])}for(var p=0,c=e.length;c>p;p++){var o,r,u=e[p];if(n)o=e[p?p-1:c-1],r=e[(p+1)%c];else{if(0===p||p===c-1){h.push(t.clone(e[p]));continue}o=e[p-1],r=e[p+1]}t.sub(m,r,o),t.scale(m,m,i);var y=t.distance(u,o),g=t.distance(u,r),b=y+g;0!==b&&(y/=b,g/=b),t.scale(V,m,-y),t.scale(U,m,g);var f=t.add([],u,V),k=t.add([],u,U);d&&(t.max(f,f,s),t.min(f,f,l),t.max(k,k,s),t.min(k,k,l)),h.push(f),h.push(k)}return n&&h.push(t.clone(h.shift())),h}}),i("echarts/util/ecQuery",["require","zrender/tool/util"],function(e){function t(e,t){if("undefined"!=typeof e){if(!t)return e;t=t.split(".");for(var i=t.length,n=0;i>n;){if(e=e[t[n]],"undefined"==typeof e)return;n++}return e}}function i(e,i){for(var n,a=0,o=e.length;o>a;a++)if(n=t(e[a],i),"undefined"!=typeof n)return n}function n(e,i){for(var n,o=e.length;o--;){var r=t(e[o],i);"undefined"!=typeof r&&("undefined"==typeof n?n=a.clone(r):a.merge(n,r,!0))}return n}var a=e("zrender/tool/util");return{query:t,deepQuery:i,deepMerge:n}}),i("echarts/util/number",[],function(){function e(e){return e.replace(/^\s+/,"").replace(/\s+$/,"")}function t(t,i){return"string"==typeof t?e(t).match(/%$/)?parseFloat(t)/100*i:parseFloat(t):t}function i(e,i){return[t(i[0],e.getWidth()),t(i[1],e.getHeight())]}function n(e,i){i instanceof Array||(i=[0,i]);var n=Math.min(e.getWidth(),e.getHeight())/2;return[t(i[0],n),t(i[1],n)]}function a(e){return isNaN(e)?"-":(e=(e+"").split("."),e[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(e.length>1?"."+e[1]:""))}function o(e){for(var t=1,i=0;Math.round(e*t)/t!==e;)t*=10,i++;return i}return{parsePercent:t,parseCenter:i,parseRadius:n,addCommas:a,getPrecision:o}}),i("echarts/data/KDTree",["require","./quickSelect"],function(e){function t(e,t){this.left=null,this.right=null,this.axis=e,this.data=t}var i=e("./quickSelect"),n=function(e,t){e.length&&(t||(t=e[0].array.length),this.dimension=t,this.root=this._buildTree(e,0,e.length-1,0),this._stack=[],this._nearstNList=[])};return n.prototype._buildTree=function(e,n,a,o){if(n>a)return null;var r=Math.floor((n+a)/2);r=i(e,n,a,r,function(e,t){return e.array[o]-t.array[o]});var s=e[r],l=new t(o,s);return o=(o+1)%this.dimension,a>n&&(l.left=this._buildTree(e,n,r-1,o),l.right=this._buildTree(e,r+1,a,o)),l},n.prototype.nearest=function(e,t){var i=this.root,n=this._stack,a=0,o=1/0,r=null;for(i.data!==e&&(o=t(i.data,e),r=i),e.array[i.axis]s,h=!1;s*=s,o>s&&(s=t(i.data,e),o>s&&i.data!==e&&(o=s,r=i),h=!0),l?(h&&i.right&&(n[a++]=i.right),i.left&&(n[a++]=i.left)):(h&&i.left&&(n[a++]=i.left),i.right&&(n[a++]=i.right))}return r.data},n.prototype._addNearest=function(e,t,i){for(var n=this._nearstNList,a=e-1;a>0&&!(t>=n[a-1].dist);a--)n[a].dist=n[a-1].dist,n[a].node=n[a-1].node;n[a].dist=t,n[a].node=i},n.prototype.nearestN=function(e,t,i,n){if(0>=t)return n.length=0,n;for(var a=this.root,o=this._stack,r=0,s=this._nearstNList,l=0;t>l;l++)s[l]||(s[l]={}),s[l].dist=0,s[l].node=null;var h=i(a.data,e),m=0;for(a.data!==e&&(m++,this._addNearest(m,h,a)),e.array[a.axis]h,U=!1;h*=h,(t>m||hm||hm&&m++,this._addNearest(m,h,a)),U=!0),V?(U&&a.right&&(o[r++]=a.right),a.left&&(o[r++]=a.left)):(U&&a.left&&(o[r++]=a.left),a.right&&(o[r++]=a.right))}for(var l=0;m>l;l++)n[l]=s[l].node.data;return n.length=m,n},n}),i("echarts/data/quickSelect",["require"],function(){function e(e,t){return e-t}function t(e,t,i){var n=e[t];e[t]=e[i],e[i]=n}function i(e,i,n,a,o){for(var r=i;n>i;){var r=Math.round((n+i)/2),s=e[r];t(e,r,n),r=i;for(var l=i;n-1>=l;l++)o(s,e[l])>=0&&(t(e,l,r),r++);if(t(e,n,r),r===a)return r;a>r?i=r+1:n=r-1}return i}function n(t,n,a,o,r){return arguments.length<=3&&(o=n,r=2==arguments.length?e:a,n=0,a=t.length-1),i(t,n,a,o,r)}return n}),i("echarts/component/dataView",["require","./base","../config","zrender/tool/util","../component"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.dom=o.dom,this._tDom=document.createElement("div"),this._textArea=document.createElement("textArea"),this._buttonRefresh=document.createElement("button"),this._buttonRefresh.setAttribute("type","button"),this._buttonClose=document.createElement("button"),this._buttonClose.setAttribute("type","button"),this._hasShow=!1,this._zrHeight=n.getHeight(),this._zrWidth=n.getWidth(),this._tDom.className="echarts-dataview",this.hide(),this.dom.firstChild.appendChild(this._tDom),window.addEventListener?(this._tDom.addEventListener("click",this._stop),this._tDom.addEventListener("mousewheel",this._stop),this._tDom.addEventListener("mousemove",this._stop),this._tDom.addEventListener("mousedown",this._stop),this._tDom.addEventListener("mouseup",this._stop),this._tDom.addEventListener("touchstart",this._stop),this._tDom.addEventListener("touchmove",this._stop),this._tDom.addEventListener("touchend",this._stop)):(this._tDom.attachEvent("onclick",this._stop),this._tDom.attachEvent("onmousewheel",this._stop),this._tDom.attachEvent("onmousemove",this._stop),this._tDom.attachEvent("onmousedown",this._stop),this._tDom.attachEvent("onmouseup",this._stop))}var i=e("./base"),n=e("../config"),a=e("zrender/tool/util");return t.prototype={type:n.COMPONENT_TYPE_DATAVIEW,_lang:["Data View","close","refresh"],_gCssText:"position:absolute;display:block;overflow:hidden;transition:height 0.8s,background-color 1s;-moz-transition:height 0.8s,background-color 1s;-webkit-transition:height 0.8s,background-color 1s;-o-transition:height 0.8s,background-color 1s;z-index:1;left:0;top:0;",hide:function(){this._sizeCssText="width:"+this._zrWidth+"px;height:0px;background-color:#f0ffff;",this._tDom.style.cssText=this._gCssText+this._sizeCssText},show:function(e){this._hasShow=!0;var t=this.query(this.option,"toolbox.feature.dataView.lang")||this._lang;this.option=e,this._tDom.innerHTML='

'+(t[0]||this._lang[0])+"

";var i=this.query(this.option,"toolbox.feature.dataView.optionToContent");"function"!=typeof i?this._textArea.value=this._optionToContent():(this._textArea=document.createElement("div"),this._textArea.innerHTML=i(this.option)),this._textArea.style.cssText="display:block;margin:0 0 8px 0;padding:4px 6px;overflow:auto;width:100%;height:"+(this._zrHeight-100)+"px;",this._tDom.appendChild(this._textArea),this._buttonClose.style.cssText="float:right;padding:1px 6px;",this._buttonClose.innerHTML=t[1]||this._lang[1];var n=this;this._buttonClose.onclick=function(){n.hide()},this._tDom.appendChild(this._buttonClose),this.query(this.option,"toolbox.feature.dataView.readOnly")===!1?(this._buttonRefresh.style.cssText="float:right;margin-right:10px;padding:1px 6px;",this._buttonRefresh.innerHTML=t[2]||this._lang[2],this._buttonRefresh.onclick=function(){n._save()},this._textArea.readOnly=!1,this._textArea.style.cursor="default"):(this._buttonRefresh.style.cssText="display:none", -this._textArea.readOnly=!0,this._textArea.style.cursor="text"),this._tDom.appendChild(this._buttonRefresh),this._sizeCssText="width:"+this._zrWidth+"px;height:"+this._zrHeight+"px;background-color:#fff;",this._tDom.style.cssText=this._gCssText+this._sizeCssText},_optionToContent:function(){var e,t,i,a,o,r,s=[],l="";if(this.option.xAxis)for(s=this.option.xAxis instanceof Array?this.option.xAxis:[this.option.xAxis],e=0,a=s.length;a>e;e++)if("category"==(s[e].type||"category")){for(r=[],t=0,i=s[e].data.length;i>t;t++)r.push(this.getDataFromOption(s[e].data[t]));l+=r.join(", ")+"\n\n"}if(this.option.yAxis)for(s=this.option.yAxis instanceof Array?this.option.yAxis:[this.option.yAxis],e=0,a=s.length;a>e;e++)if("category"==s[e].type){for(r=[],t=0,i=s[e].data.length;i>t;t++)r.push(this.getDataFromOption(s[e].data[t]));l+=r.join(", ")+"\n\n"}var h,m=this.option.series;for(e=0,a=m.length;a>e;e++){for(r=[],t=0,i=m[e].data.length;i>t;t++)o=m[e].data[t],h=m[e].type==n.CHART_TYPE_PIE||m[e].type==n.CHART_TYPE_MAP?(o.name||"-")+":":"",m[e].type==n.CHART_TYPE_SCATTER&&(o=this.getDataFromOption(o).join(", ")),r.push(h+this.getDataFromOption(o));l+=(m[e].name||"-")+" : \n",l+=r.join(m[e].type==n.CHART_TYPE_SCATTER?"\n":", "),l+="\n\n"}return l},_save:function(){var e=this.query(this.option,"toolbox.feature.dataView.contentToOption");if("function"!=typeof e){for(var t=this._textArea.value.split("\n"),i=[],a=0,o=t.length;o>a;a++)t[a]=this._trim(t[a]),""!==t[a]&&i.push(t[a]);this._contentToOption(i)}else e(this._textArea,this.option);this.hide();var r=this;setTimeout(function(){r.messageCenter&&r.messageCenter.dispatch(n.EVENT.DATA_VIEW_CHANGED,null,{option:r.option},r.myChart)},r.canvasSupported?800:100)},_contentToOption:function(e){var t,i,a,o,r,s,l,h=[],m=0;if(this.option.xAxis)for(h=this.option.xAxis instanceof Array?this.option.xAxis:[this.option.xAxis],t=0,o=h.length;o>t;t++)if("category"==(h[t].type||"category")){for(s=e[m].split(","),i=0,a=h[t].data.length;a>i;i++)l=this._trim(s[i]||""),r=h[t].data[i],"undefined"!=typeof h[t].data[i].value?h[t].data[i].value=l:h[t].data[i]=l;m++}if(this.option.yAxis)for(h=this.option.yAxis instanceof Array?this.option.yAxis:[this.option.yAxis],t=0,o=h.length;o>t;t++)if("category"==h[t].type){for(s=e[m].split(","),i=0,a=h[t].data.length;a>i;i++)l=this._trim(s[i]||""),r=h[t].data[i],"undefined"!=typeof h[t].data[i].value?h[t].data[i].value=l:h[t].data[i]=l;m++}var V=this.option.series;for(t=0,o=V.length;o>t;t++)if(m++,V[t].type==n.CHART_TYPE_SCATTER)for(var i=0,a=V[t].data.length;a>i;i++)s=e[m],l=s.replace(" ","").split(","),"undefined"!=typeof V[t].data[i].value?V[t].data[i].value=l:V[t].data[i]=l,m++;else{s=e[m].split(",");for(var i=0,a=V[t].data.length;a>i;i++)l=(s[i]||"").replace(/.*:/,""),l=this._trim(l),l="-"!=l&&""!==l?l-0:"-","undefined"!=typeof V[t].data[i].value?V[t].data[i].value=l:V[t].data[i]=l;m++}},_trim:function(e){var t=new RegExp("(^[\\s\\t\\xa0\\u3000]+)|([\\u3000\\xa0\\s\\t]+$)","g");return e.replace(t,"")},_stop:function(e){e=e||window.event,e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},resize:function(){this._zrHeight=this.zr.getHeight(),this._zrWidth=this.zr.getWidth(),this._tDom.offsetHeight>10&&(this._sizeCssText="width:"+this._zrWidth+"px;height:"+this._zrHeight+"px;background-color:#fff;",this._tDom.style.cssText=this._gCssText+this._sizeCssText,this._textArea.style.cssText="display:block;margin:0 0 8px 0;padding:4px 6px;overflow:auto;width:100%;height:"+(this._zrHeight-100)+"px;")},dispose:function(){window.removeEventListener?(this._tDom.removeEventListener("click",this._stop),this._tDom.removeEventListener("mousewheel",this._stop),this._tDom.removeEventListener("mousemove",this._stop),this._tDom.removeEventListener("mousedown",this._stop),this._tDom.removeEventListener("mouseup",this._stop),this._tDom.removeEventListener("touchstart",this._stop),this._tDom.removeEventListener("touchmove",this._stop),this._tDom.removeEventListener("touchend",this._stop)):(this._tDom.detachEvent("onclick",this._stop),this._tDom.detachEvent("onmousewheel",this._stop),this._tDom.detachEvent("onmousemove",this._stop),this._tDom.detachEvent("onmousedown",this._stop),this._tDom.detachEvent("onmouseup",this._stop)),this._buttonRefresh.onclick=null,this._buttonClose.onclick=null,this._hasShow&&(this._tDom.removeChild(this._textArea),this._tDom.removeChild(this._buttonRefresh),this._tDom.removeChild(this._buttonClose)),this._textArea=null,this._buttonRefresh=null,this._buttonClose=null,this.dom.firstChild.removeChild(this._tDom),this._tDom=null}},a.inherits(t,i),e("../component").define("dataView",t),t}),i("echarts/util/shape/Cross",["require","zrender/shape/Base","zrender/shape/Line","zrender/tool/util","./normalIsCover"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/shape/Line"),a=e("zrender/tool/util");return t.prototype={type:"cross",buildPath:function(e,t){var i=t.rect;t.xStart=i.x,t.xEnd=i.x+i.width,t.yStart=t.yEnd=t.y,n.prototype.buildPath(e,t),t.xStart=t.xEnd=t.x,t.yStart=i.y,t.yEnd=i.y+i.height,n.prototype.buildPath(e,t)},getRect:function(e){return e.rect},isCover:e("./normalIsCover")},a.inherits(t,i),t}),i("zrender/shape/Sector",["require","../tool/math","../tool/computeBoundingBox","../tool/vector","./Base","../tool/util"],function(e){var t=e("../tool/math"),i=e("../tool/computeBoundingBox"),n=e("../tool/vector"),a=e("./Base"),o=n.create(),r=n.create(),s=n.create(),l=n.create(),h=function(e){a.call(this,e)};return h.prototype={type:"sector",buildPath:function(e,i){var n=i.x,a=i.y,o=i.r0||0,r=i.r,s=i.startAngle,l=i.endAngle,h=i.clockWise||!1;s=t.degreeToRadian(s),l=t.degreeToRadian(l),h||(s=-s,l=-l);var m=t.cos(s),V=t.sin(s);e.moveTo(m*o+n,V*o+a),e.lineTo(m*r+n,V*r+a),e.arc(n,a,r,s,l,!h),e.lineTo(t.cos(l)*o+n,t.sin(l)*o+a),0!==o&&e.arc(n,a,o,l,s,h),e.closePath()},getRect:function(e){if(e.__rect)return e.__rect;var a=e.x,h=e.y,m=e.r0||0,V=e.r,U=t.degreeToRadian(e.startAngle),d=t.degreeToRadian(e.endAngle),p=e.clockWise;return p||(U=-U,d=-d),m>1?i.arc(a,h,m,U,d,!p,o,s):(o[0]=s[0]=a,o[1]=s[1]=h),i.arc(a,h,V,U,d,!p,r,l),n.min(o,o,r),n.max(s,s,l),e.__rect={x:o[0],y:o[1],width:s[0]-o[0],height:s[1]-o[1]},e.__rect}},e("../tool/util").inherits(h,a),h}),i("echarts/util/shape/Candle",["require","zrender/shape/Base","zrender/tool/util","./normalIsCover"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/tool/util");return t.prototype={type:"candle",_numberOrder:function(e,t){return t-e},buildPath:function(e,t){var i=n.clone(t.y).sort(this._numberOrder);e.moveTo(t.x,i[3]),e.lineTo(t.x,i[2]),e.moveTo(t.x-t.width/2,i[2]),e.rect(t.x-t.width/2,i[2],t.width,i[1]-i[2]),e.moveTo(t.x,i[1]),e.lineTo(t.x,i[0])},getRect:function(e){if(!e.__rect){var t=0;("stroke"==e.brushType||"fill"==e.brushType)&&(t=e.lineWidth||1);var i=n.clone(e.y).sort(this._numberOrder);e.__rect={x:Math.round(e.x-e.width/2-t/2),y:Math.round(i[3]-t/2),width:e.width+t,height:i[0]-i[3]+t}}return e.__rect},isCover:e("./normalIsCover")},n.inherits(t,i),t}),i("zrender/tool/computeBoundingBox",["require","./vector","./curve"],function(e){function t(e,t,i){if(0!==e.length){for(var n=e[0][0],a=e[0][0],o=e[0][1],r=e[0][1],s=1;sa&&(a=l[0]),l[1]r&&(r=l[1])}t[0]=n,t[1]=o,i[0]=a,i[1]=r}}function i(e,t,i,n,a,r){var s=[];o.cubicExtrema(e[0],t[0],i[0],n[0],s);for(var l=0;l=2*Math.PI)return m[0]=e-i,m[1]=t-i,V[0]=e+i,void(V[1]=t+i);if(r[0]=Math.cos(n)*i+e,r[1]=Math.sin(n)*i+t,s[0]=Math.cos(o)*i+e,s[1]=Math.sin(o)*i+t,a.min(m,r,s),a.max(V,r,s),n%=2*Math.PI,0>n&&(n+=2*Math.PI),o%=2*Math.PI,0>o&&(o+=2*Math.PI),n>o&&!h?o+=2*Math.PI:o>n&&h&&(n+=2*Math.PI),h){var U=o;o=n,n=U}for(var d=0;o>d;d+=Math.PI/2)d>n&&(l[0]=Math.cos(d)*i+e,l[1]=Math.sin(d)*i+t,a.min(m,l,m),a.max(V,l,V))};return t.cubeBezier=i,t.quadraticBezier=n,t.arc=h,t}),i("echarts/util/shape/Chain",["require","zrender/shape/Base","./Icon","zrender/shape/util/dashedLineTo","zrender/tool/util","zrender/tool/matrix"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("./Icon"),a=e("zrender/shape/util/dashedLineTo"),o=e("zrender/tool/util"),r=e("zrender/tool/matrix");return t.prototype={type:"chain",brush:function(e,t){var i=this.style;t&&(i=this.getHighlightStyle(i,this.highlightStyle||{})),e.save(),this.setContext(e,i),this.setTransform(e),e.save(),e.beginPath(),this.buildLinePath(e,i),e.stroke(),e.restore(),this.brushSymbol(e,i),e.restore()},buildLinePath:function(e,t){var i=t.x,n=t.y+5,o=t.width,r=t.height/2-10;if(e.moveTo(i,n),e.lineTo(i,n+r),e.moveTo(i+o,n),e.lineTo(i+o,n+r),e.moveTo(i,n+r/2),t.lineType&&"solid"!=t.lineType){if("dashed"==t.lineType||"dotted"==t.lineType){var s=(t.lineWidth||1)*("dashed"==t.lineType?5:1);a(e,i,n+r/2,i+o,n+r/2,s)}}else e.lineTo(i+o,n+r/2)},brushSymbol:function(e,t){var i=t.y+t.height/4;e.save();for(var a,o=t.chainPoint,r=0,s=o.length;s>r;r++){if(a=o[r],"none"!=a.symbol){e.beginPath();var l=a.symbolSize;n.prototype.buildPath(e,{iconType:a.symbol,x:a.x-l,y:i-l,width:2*l,height:2*l,n:a.n}),e.fillStyle=a.isEmpty?"#fff":t.strokeColor,e.closePath(),e.fill(),e.stroke()}a.showLabel&&(e.font=a.textFont,e.fillStyle=a.textColor,e.textAlign=a.textAlign,e.textBaseline=a.textBaseline,a.rotation?(e.save(),this._updateTextTransform(e,a.rotation),e.fillText(a.name,a.textX,a.textY),e.restore()):e.fillText(a.name,a.textX,a.textY))}e.restore()},_updateTextTransform:function(e,t){var i=r.create();if(r.identity(i),0!==t[0]){var n=t[1]||0,a=t[2]||0;(n||a)&&r.translate(i,i,[-n,-a]),r.rotate(i,i,t[0]),(n||a)&&r.translate(i,i,[n,a])}e.transform.apply(e,i)},isCover:function(e,t){var i=this.style;return e>=i.x&&e<=i.x+i.width&&t>=i.y&&t<=i.y+i.height?!0:!1}},o.inherits(t,i),t}),i("zrender/shape/Ring",["require","./Base","../tool/util"],function(e){var t=e("./Base"),i=function(e){t.call(this,e)};return i.prototype={type:"ring",buildPath:function(e,t){e.arc(t.x,t.y,t.r,0,2*Math.PI,!1),e.moveTo(t.x+t.r0,t.y),e.arc(t.x,t.y,t.r0,0,2*Math.PI,!0)},getRect:function(e){if(e.__rect)return e.__rect;var t;return t="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0,e.__rect={x:Math.round(e.x-e.r-t/2),y:Math.round(e.y-e.r-t/2),width:2*e.r+t,height:2*e.r+t},e.__rect}},e("../tool/util").inherits(i,t),i}),i("echarts/component/axis",["require","./base","zrender/shape/Line","../config","../util/ecData","zrender/tool/util","zrender/tool/color","./categoryAxis","./valueAxis","../component"],function(e){function t(e,t,n,a,o,r){i.call(this,e,t,n,a,o),this.axisType=r,this._axisList=[],this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Line"),a=e("../config"),o=e("../util/ecData"),r=e("zrender/tool/util"),s=e("zrender/tool/color");return t.prototype={type:a.COMPONENT_TYPE_AXIS,axisBase:{_buildAxisLine:function(){var e=this.option.axisLine.lineStyle.width,t=e/2,i={_axisShape:"axisLine",zlevel:this.getZlevelBase(),z:this.getZBase()+3,hoverable:!1},a=this.grid;switch(this.option.position){case"left":i.style={xStart:a.getX()-t,yStart:a.getYend(),xEnd:a.getX()-t,yEnd:a.getY(),lineCap:"round"};break;case"right":i.style={xStart:a.getXend()+t,yStart:a.getYend(),xEnd:a.getXend()+t,yEnd:a.getY(),lineCap:"round"};break;case"bottom":i.style={xStart:a.getX(),yStart:a.getYend()+t,xEnd:a.getXend(),yEnd:a.getYend()+t,lineCap:"round"};break;case"top":i.style={xStart:a.getX(),yStart:a.getY()-t,xEnd:a.getXend(),yEnd:a.getY()-t,lineCap:"round"}}var o=i.style;""!==this.option.name&&(o.text=this.option.name,o.textPosition=this.option.nameLocation,o.textFont=this.getFont(this.option.nameTextStyle),this.option.nameTextStyle.align&&(o.textAlign=this.option.nameTextStyle.align),this.option.nameTextStyle.baseline&&(o.textBaseline=this.option.nameTextStyle.baseline),this.option.nameTextStyle.color&&(o.textColor=this.option.nameTextStyle.color)),o.strokeColor=this.option.axisLine.lineStyle.color,o.lineWidth=e,this.isHorizontal()?o.yStart=o.yEnd=this.subPixelOptimize(o.yEnd,e):o.xStart=o.xEnd=this.subPixelOptimize(o.xEnd,e),o.lineType=this.option.axisLine.lineStyle.type,i=new n(i),this.shapeList.push(i)},_axisLabelClickable:function(e,t){return e?(o.pack(t,void 0,-1,void 0,-1,t.style.text),t.hoverable=!0,t.clickable=!0,t.highlightStyle={color:s.lift(t.style.color,1),brushType:"fill"},t):t},refixAxisShape:function(e,t){if(this.option.axisLine.onZero){var i;if(this.isHorizontal()&&null!=t)for(var n=0,a=this.shapeList.length;a>n;n++)"axisLine"===this.shapeList[n]._axisShape?(this.shapeList[n].style.yStart=this.shapeList[n].style.yEnd=this.subPixelOptimize(t,this.shapeList[n].stylelineWidth),this.zr.modShape(this.shapeList[n].id)):"axisTick"===this.shapeList[n]._axisShape&&(i=this.shapeList[n].style.yEnd-this.shapeList[n].style.yStart,this.shapeList[n].style.yStart=t-i,this.shapeList[n].style.yEnd=t,this.zr.modShape(this.shapeList[n].id));if(!this.isHorizontal()&&null!=e)for(var n=0,a=this.shapeList.length;a>n;n++)"axisLine"===this.shapeList[n]._axisShape?(this.shapeList[n].style.xStart=this.shapeList[n].style.xEnd=this.subPixelOptimize(e,this.shapeList[n].stylelineWidth),this.zr.modShape(this.shapeList[n].id)):"axisTick"===this.shapeList[n]._axisShape&&(i=this.shapeList[n].style.xEnd-this.shapeList[n].style.xStart,this.shapeList[n].style.xStart=e,this.shapeList[n].style.xEnd=e+i,this.zr.modShape(this.shapeList[n].id))}},getPosition:function(){return this.option.position},isHorizontal:function(){return"bottom"===this.option.position||"top"===this.option.position}},reformOption:function(e){if(!e||e instanceof Array&&0===e.length?e=[{type:a.COMPONENT_TYPE_AXIS_VALUE}]:e instanceof Array||(e=[e]),e.length>2&&(e=[e[0],e[1]]),"xAxis"===this.axisType){(!e[0].position||"bottom"!=e[0].position&&"top"!=e[0].position)&&(e[0].position="bottom"),e.length>1&&(e[1].position="bottom"===e[0].position?"top":"bottom");for(var t=0,i=e.length;i>t;t++)e[t].type=e[t].type||"category",e[t].xAxisIndex=t,e[t].yAxisIndex=-1}else{(!e[0].position||"left"!=e[0].position&&"right"!=e[0].position)&&(e[0].position="left"),e.length>1&&(e[1].position="left"===e[0].position?"right":"left");for(var t=0,i=e.length;i>t;t++)e[t].type=e[t].type||"value",e[t].xAxisIndex=-1,e[t].yAxisIndex=t}return e},refresh:function(t){var i;t&&(this.option=t,"xAxis"===this.axisType?(this.option.xAxis=this.reformOption(t.xAxis),i=this.option.xAxis):(this.option.yAxis=this.reformOption(t.yAxis),i=this.option.yAxis),this.series=t.series);for(var n=e("./categoryAxis"),a=e("./valueAxis"),o=Math.max(i&&i.length||0,this._axisList.length),r=0;o>r;r++)!this._axisList[r]||!t||i[r]&&this._axisList[r].type==i[r].type||(this._axisList[r].dispose&&this._axisList[r].dispose(),this._axisList[r]=!1),this._axisList[r]?this._axisList[r].refresh&&this._axisList[r].refresh(i?i[r]:!1,this.series):i&&i[r]&&(this._axisList[r]="category"===i[r].type?new n(this.ecTheme,this.messageCenter,this.zr,i[r],this.myChart,this.axisBase):new a(this.ecTheme,this.messageCenter,this.zr,i[r],this.myChart,this.axisBase,this.series))},getAxis:function(e){return this._axisList[e]},getAxisCount:function(){return this._axisList.length},clear:function(){for(var e=0,t=this._axisList.length;t>e;e++)this._axisList[e].dispose&&this._axisList[e].dispose();this._axisList=[]}},r.inherits(t,i),e("../component").define("axis",t),t}),i("echarts/component/grid",["require","./base","zrender/shape/Rectangle","../config","zrender/tool/util","../component"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Rectangle"),a=e("../config");a.grid={zlevel:0,z:0,x:80,y:60,x2:80,y2:60,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"};var o=e("zrender/tool/util");return t.prototype={type:a.COMPONENT_TYPE_GRID,getX:function(){return this._x},getY:function(){return this._y},getWidth:function(){return this._width},getHeight:function(){return this._height},getXend:function(){return this._x+this._width},getYend:function(){return this._y+this._height},getArea:function(){return{x:this._x,y:this._y,width:this._width,height:this._height}},getBbox:function(){return[[this._x,this._y],[this.getXend(),this.getYend()]]},refixAxisShape:function(e){for(var t,i,n,o=e.xAxis._axisList.concat(e.yAxis?e.yAxis._axisList:[]),r=o.length;r--;)n=o[r],n.type==a.COMPONENT_TYPE_AXIS_VALUE&&n._min<0&&n._max>=0&&(n.isHorizontal()?t=n.getCoord(0):i=n.getCoord(0));if("undefined"!=typeof t||"undefined"!=typeof i)for(r=o.length;r--;)o[r].refixAxisShape(t,i)},refresh:function(e){if(e||this._zrWidth!=this.zr.getWidth()||this._zrHeight!=this.zr.getHeight()){this.clear(),this.option=e||this.option,this.option.grid=this.reformOption(this.option.grid);var t=this.option.grid;this._zrWidth=this.zr.getWidth(),this._zrHeight=this.zr.getHeight(),this._x=this.parsePercent(t.x,this._zrWidth),this._y=this.parsePercent(t.y,this._zrHeight);var i=this.parsePercent(t.x2,this._zrWidth),a=this.parsePercent(t.y2,this._zrHeight);this._width="undefined"==typeof t.width?this._zrWidth-this._x-i:this.parsePercent(t.width,this._zrWidth),this._width=this._width<=0?10:this._width,this._height="undefined"==typeof t.height?this._zrHeight-this._y-a:this.parsePercent(t.height,this._zrHeight),this._height=this._height<=0?10:this._height,this._x=this.subPixelOptimize(this._x,t.borderWidth),this._y=this.subPixelOptimize(this._y,t.borderWidth),this.shapeList.push(new n({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._x,y:this._y,width:this._width,height:this._height,brushType:t.borderWidth>0?"both":"fill",color:t.backgroundColor,strokeColor:t.borderColor,lineWidth:t.borderWidth}})),this.zr.addShape(this.shapeList[0])}}},o.inherits(t,i),e("../component").define("grid",t),t}),i("echarts/component/dataZoom",["require","./base","zrender/shape/Rectangle","zrender/shape/Polygon","../util/shape/Icon","../config","../util/date","zrender/tool/util","../component"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o);var r=this;r._ondrift=function(e,t){return r.__ondrift(this,e,t)},r._ondragend=function(){return r.__ondragend()},this._fillerSize=30,this._isSilence=!1,this._zoom={},this.option.dataZoom=this.reformOption(this.option.dataZoom),this.zoomOption=this.option.dataZoom,this._handleSize=this.zoomOption.handleSize,this.myChart.canvasSupported||(this.zoomOption.realtime=!1),this._location=this._getLocation(),this._zoom=this._getZoom(),this._backupData(),this.option.dataZoom.show&&this._buildShape(),this._syncData()}var i=e("./base"),n=e("zrender/shape/Rectangle"),a=e("zrender/shape/Polygon"),o=e("../util/shape/Icon"),r=e("../config");r.dataZoom={zlevel:0,z:4,show:!1,orient:"horizontal",backgroundColor:"rgba(0,0,0,0)",dataBackgroundColor:"#eee",fillerColor:"rgba(144,197,237,0.2)",handleColor:"rgba(70,130,180,0.8)",handleSize:8,showDetail:!0,realtime:!0};var s=e("../util/date"),l=e("zrender/tool/util");return t.prototype={type:r.COMPONENT_TYPE_DATAZOOM,_buildShape:function(){this._buildBackground(),this._buildFiller(),this._buildHandle(),this._buildFrame();for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e]);this._syncFrameShape()},_getLocation:function(){var e,t,i,n,a=this.component.grid;return"horizontal"==this.zoomOption.orient?(i=this.zoomOption.width||a.getWidth(),n=this.zoomOption.height||this._fillerSize,e=null!=this.zoomOption.x?this.zoomOption.x:a.getX(),t=null!=this.zoomOption.y?this.zoomOption.y:this.zr.getHeight()-n-2):(i=this.zoomOption.width||this._fillerSize,n=this.zoomOption.height||a.getHeight(),e=null!=this.zoomOption.x?this.zoomOption.x:2,t=null!=this.zoomOption.y?this.zoomOption.y:a.getY()),{x:e,y:t,width:i,height:n}},_getZoom:function(){var e=this.option.series,t=this.option.xAxis;!t||t instanceof Array||(t=[t],this.option.xAxis=t);var i=this.option.yAxis;!i||i instanceof Array||(i=[i],this.option.yAxis=i);var n,a,o=[],s=this.zoomOption.xAxisIndex;if(t&&null==s){n=[];for(var l=0,h=t.length;h>l;l++)("category"==t[l].type||null==t[l].type)&&n.push(l)}else n=s instanceof Array?s:null!=s?[s]:[];if(s=this.zoomOption.yAxisIndex,i&&null==s){a=[];for(var l=0,h=i.length;h>l;l++)"category"==i[l].type&&a.push(l)}else a=s instanceof Array?s:null!=s?[s]:[];for(var m,l=0,h=e.length;h>l;l++)if(m=e[l],m.type==r.CHART_TYPE_LINE||m.type==r.CHART_TYPE_BAR||m.type==r.CHART_TYPE_SCATTER||m.type==r.CHART_TYPE_K){for(var V=0,U=n.length;U>V;V++)if(n[V]==(m.xAxisIndex||0)){o.push(l);break}for(var V=0,U=a.length;U>V;V++)if(a[V]==(m.yAxisIndex||0)){o.push(l);break}null==this.zoomOption.xAxisIndex&&null==this.zoomOption.yAxisIndex&&m.data&&this.getDataFromOption(m.data[0])instanceof Array&&(m.type==r.CHART_TYPE_SCATTER||m.type==r.CHART_TYPE_LINE||m.type==r.CHART_TYPE_BAR)&&o.push(l)}var d=null!=this._zoom.start?this._zoom.start:null!=this.zoomOption.start?this.zoomOption.start:0,p=null!=this._zoom.end?this._zoom.end:null!=this.zoomOption.end?this.zoomOption.end:100;d>p&&(d+=p,p=d-p,d-=p);var c=Math.round((p-d)/100*("horizontal"==this.zoomOption.orient?this._location.width:this._location.height));return{start:d,end:p,start2:0,end2:100,size:c,xAxisIndex:n,yAxisIndex:a,seriesIndex:o,scatterMap:this._zoom.scatterMap||{}}},_backupData:function(){this._originalData={xAxis:{},yAxis:{},series:{}};for(var e=this.option.xAxis,t=this._zoom.xAxisIndex,i=0,n=t.length;n>i;i++)this._originalData.xAxis[t[i]]=e[t[i]].data;for(var a=this.option.yAxis,o=this._zoom.yAxisIndex,i=0,n=o.length;n>i;i++)this._originalData.yAxis[o[i]]=a[o[i]].data;for(var s,l=this.option.series,h=this._zoom.seriesIndex,i=0,n=h.length;n>i;i++)s=l[h[i]],this._originalData.series[h[i]]=s.data,s.data&&this.getDataFromOption(s.data[0])instanceof Array&&(s.type==r.CHART_TYPE_SCATTER||s.type==r.CHART_TYPE_LINE||s.type==r.CHART_TYPE_BAR)&&(this._backupScale(),this._calculScatterMap(h[i]))},_calculScatterMap:function(t){this._zoom.scatterMap=this._zoom.scatterMap||{},this._zoom.scatterMap[t]=this._zoom.scatterMap[t]||{};var i=e("../component"),n=i.get("axis"),a=l.clone(this.option.xAxis);"category"==a[0].type&&(a[0].type="value"),a[1]&&"category"==a[1].type&&(a[1].type="value");var o=new n(this.ecTheme,null,!1,{xAxis:a,series:this.option.series},this,"xAxis"),r=this.option.series[t].xAxisIndex||0;this._zoom.scatterMap[t].x=o.getAxis(r).getExtremum(),o.dispose(),a=l.clone(this.option.yAxis),"category"==a[0].type&&(a[0].type="value"),a[1]&&"category"==a[1].type&&(a[1].type="value"),o=new n(this.ecTheme,null,!1,{yAxis:a,series:this.option.series},this,"yAxis"),r=this.option.series[t].yAxisIndex||0,this._zoom.scatterMap[t].y=o.getAxis(r).getExtremum(),o.dispose()},_buildBackground:function(){var e=this._location.width,t=this._location.height;this.shapeList.push(new n({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._location.x,y:this._location.y,width:e,height:t,color:this.zoomOption.backgroundColor}}));for(var i=0,o=this._originalData.xAxis,s=this._zoom.xAxisIndex,l=0,h=s.length;h>l;l++)i=Math.max(i,o[s[l]].length);for(var m=this._originalData.yAxis,V=this._zoom.yAxisIndex,l=0,h=V.length;h>l;l++)i=Math.max(i,m[V[l]].length);for(var U,d=this._zoom.seriesIndex[0],p=this._originalData.series[d],c=Number.MIN_VALUE,u=Number.MAX_VALUE,l=0,h=p.length;h>l;l++)U=this.getDataFromOption(p[l],0),this.option.series[d].type==r.CHART_TYPE_K&&(U=U[1]),isNaN(U)&&(U=0),c=Math.max(c,U),u=Math.min(u,U);var y=c-u,g=[],b=e/(i-(i>1?1:0)),f=t/(i-(i>1?1:0)),k=1;"horizontal"==this.zoomOption.orient&&1>b?k=Math.floor(3*i/e):"vertical"==this.zoomOption.orient&&1>f&&(k=Math.floor(3*i/t));for(var l=0,h=i;h>l;l+=k)U=this.getDataFromOption(p[l],0),this.option.series[d].type==r.CHART_TYPE_K&&(U=U[1]),isNaN(U)&&(U=0),g.push("horizontal"==this.zoomOption.orient?[this._location.x+b*l,this._location.y+t-1-Math.round((U-u)/y*(t-10))]:[this._location.x+1+Math.round((U-u)/y*(e-10)),this._location.y+f*(h-l-1)]);"horizontal"==this.zoomOption.orient?(g.push([this._location.x+e,this._location.y+t]),g.push([this._location.x,this._location.y+t])):(g.push([this._location.x,this._location.y]),g.push([this._location.x,this._location.y+t])),this.shapeList.push(new a({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{pointList:g,color:this.zoomOption.dataBackgroundColor},hoverable:!1}))},_buildFiller:function(){this._fillerShae={zlevel:this.getZlevelBase(),z:this.getZBase(),draggable:!0,ondrift:this._ondrift,ondragend:this._ondragend,_type:"filler"},this._fillerShae.style="horizontal"==this.zoomOption.orient?{x:this._location.x+Math.round(this._zoom.start/100*this._location.width)+this._handleSize,y:this._location.y,width:this._zoom.size-2*this._handleSize,height:this._location.height,color:this.zoomOption.fillerColor,text:":::",textPosition:"inside"}:{x:this._location.x,y:this._location.y+Math.round(this._zoom.start/100*this._location.height)+this._handleSize,width:this._location.width,height:this._zoom.size-2*this._handleSize,color:this.zoomOption.fillerColor,text:"::",textPosition:"inside"},this._fillerShae.highlightStyle={brushType:"fill",color:"rgba(0,0,0,0)"},this._fillerShae=new n(this._fillerShae),this.shapeList.push(this._fillerShae)},_buildHandle:function(){var e=this.zoomOption.showDetail?this._getDetail():{start:"",end:""};this._startShape={zlevel:this.getZlevelBase(),z:this.getZBase(),draggable:!0,style:{iconType:"rectangle",x:this._location.x,y:this._location.y,width:this._handleSize,height:this._handleSize,color:this.zoomOption.handleColor,text:"=",textPosition:"inside"},highlightStyle:{text:e.start,brushType:"fill",textPosition:"left"},ondrift:this._ondrift,ondragend:this._ondragend},"horizontal"==this.zoomOption.orient?(this._startShape.style.height=this._location.height,this._endShape=l.clone(this._startShape),this._startShape.style.x=this._fillerShae.style.x-this._handleSize,this._endShape.style.x=this._fillerShae.style.x+this._fillerShae.style.width,this._endShape.highlightStyle.text=e.end,this._endShape.highlightStyle.textPosition="right"):(this._startShape.style.width=this._location.width,this._endShape=l.clone(this._startShape),this._startShape.style.y=this._fillerShae.style.y+this._fillerShae.style.height,this._startShape.highlightStyle.textPosition="bottom",this._endShape.style.y=this._fillerShae.style.y-this._handleSize,this._endShape.highlightStyle.text=e.end,this._endShape.highlightStyle.textPosition="top"),this._startShape=new o(this._startShape),this._endShape=new o(this._endShape),this.shapeList.push(this._startShape),this.shapeList.push(this._endShape)},_buildFrame:function(){var e=this.subPixelOptimize(this._location.x,1),t=this.subPixelOptimize(this._location.y,1);this._startFrameShape={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:e,y:t,width:this._location.width-(e>this._location.x?1:0),height:this._location.height-(t>this._location.y?1:0),lineWidth:1,brushType:"stroke",strokeColor:this.zoomOption.handleColor}},this._endFrameShape=l.clone(this._startFrameShape),this._startFrameShape=new n(this._startFrameShape),this._endFrameShape=new n(this._endFrameShape),this.shapeList.push(this._startFrameShape),this.shapeList.push(this._endFrameShape)},_syncHandleShape:function(){"horizontal"==this.zoomOption.orient?(this._startShape.style.x=this._fillerShae.style.x-this._handleSize,this._endShape.style.x=this._fillerShae.style.x+this._fillerShae.style.width,this._zoom.start=(this._startShape.style.x-this._location.x)/this._location.width*100,this._zoom.end=(this._endShape.style.x+this._handleSize-this._location.x)/this._location.width*100):(this._startShape.style.y=this._fillerShae.style.y+this._fillerShae.style.height,this._endShape.style.y=this._fillerShae.style.y-this._handleSize,this._zoom.start=(this._location.y+this._location.height-this._startShape.style.y)/this._location.height*100,this._zoom.end=(this._location.y+this._location.height-this._endShape.style.y-this._handleSize)/this._location.height*100),this.zr.modShape(this._startShape.id),this.zr.modShape(this._endShape.id),this._syncFrameShape(),this.zr.refreshNextFrame()},_syncFillerShape:function(){var e,t;"horizontal"==this.zoomOption.orient?(e=this._startShape.style.x,t=this._endShape.style.x,this._fillerShae.style.x=Math.min(e,t)+this._handleSize,this._fillerShae.style.width=Math.abs(e-t)-this._handleSize,this._zoom.start=(Math.min(e,t)-this._location.x)/this._location.width*100,this._zoom.end=(Math.max(e,t)+this._handleSize-this._location.x)/this._location.width*100):(e=this._startShape.style.y,t=this._endShape.style.y,this._fillerShae.style.y=Math.min(e,t)+this._handleSize,this._fillerShae.style.height=Math.abs(e-t)-this._handleSize,this._zoom.start=(this._location.y+this._location.height-Math.max(e,t))/this._location.height*100,this._zoom.end=(this._location.y+this._location.height-Math.min(e,t)-this._handleSize)/this._location.height*100),this.zr.modShape(this._fillerShae.id),this._syncFrameShape(),this.zr.refreshNextFrame()},_syncFrameShape:function(){"horizontal"==this.zoomOption.orient?(this._startFrameShape.style.width=this._fillerShae.style.x-this._location.x,this._endFrameShape.style.x=this._fillerShae.style.x+this._fillerShae.style.width,this._endFrameShape.style.width=this._location.x+this._location.width-this._endFrameShape.style.x):(this._startFrameShape.style.y=this._fillerShae.style.y+this._fillerShae.style.height,this._startFrameShape.style.height=this._location.y+this._location.height-this._startFrameShape.style.y,this._endFrameShape.style.height=this._fillerShae.style.y-this._location.y),this.zr.modShape(this._startFrameShape.id),this.zr.modShape(this._endFrameShape.id)},_syncShape:function(){this.zoomOption.show&&("horizontal"==this.zoomOption.orient?(this._startShape.style.x=this._location.x+this._zoom.start/100*this._location.width,this._endShape.style.x=this._location.x+this._zoom.end/100*this._location.width-this._handleSize,this._fillerShae.style.x=this._startShape.style.x+this._handleSize,this._fillerShae.style.width=this._endShape.style.x-this._startShape.style.x-this._handleSize):(this._startShape.style.y=this._location.y+this._location.height-this._zoom.start/100*this._location.height,this._endShape.style.y=this._location.y+this._location.height-this._zoom.end/100*this._location.height-this._handleSize,this._fillerShae.style.y=this._endShape.style.y+this._handleSize,this._fillerShae.style.height=this._startShape.style.y-this._endShape.style.y-this._handleSize),this.zr.modShape(this._startShape.id),this.zr.modShape(this._endShape.id),this.zr.modShape(this._fillerShae.id),this._syncFrameShape(),this.zr.refresh())},_syncData:function(e){var t,i,n,a,o;for(var s in this._originalData){t=this._originalData[s];for(var l in t)o=t[l],null!=o&&(a=o.length,i=Math.floor(this._zoom.start/100*a),n=Math.ceil(this._zoom.end/100*a),this.getDataFromOption(o[0])instanceof Array&&this.option[s][l].type!=r.CHART_TYPE_K?(this._setScale(),this.option[s][l].data=this._synScatterData(l,o)):this.option[s][l].data=o.slice(i,n))}this._isSilence||!this.zoomOption.realtime&&!e||this.messageCenter.dispatch(r.EVENT.DATA_ZOOM,null,{zoom:this._zoom},this.myChart)},_synScatterData:function(e,t){if(0===this._zoom.start&&100==this._zoom.end&&0===this._zoom.start2&&100==this._zoom.end2)return t;var i,n,a,o,r,s=[],l=this._zoom.scatterMap[e]; - -"horizontal"==this.zoomOption.orient?(i=l.x.max-l.x.min,n=this._zoom.start/100*i+l.x.min,a=this._zoom.end/100*i+l.x.min,i=l.y.max-l.y.min,o=this._zoom.start2/100*i+l.y.min,r=this._zoom.end2/100*i+l.y.min):(i=l.x.max-l.x.min,n=this._zoom.start2/100*i+l.x.min,a=this._zoom.end2/100*i+l.x.min,i=l.y.max-l.y.min,o=this._zoom.start/100*i+l.y.min,r=this._zoom.end/100*i+l.y.min);var h;(h=l.x.dataMappingMethods)&&(n=h.coord2Value(n),a=h.coord2Value(a)),(h=l.y.dataMappingMethods)&&(o=h.coord2Value(o),r=h.coord2Value(r));for(var m,V=0,U=t.length;U>V;V++)m=t[V].value||t[V],m[0]>=n&&m[0]<=a&&m[1]>=o&&m[1]<=r&&s.push(t[V]);return s},_setScale:function(){var e=0!==this._zoom.start||100!==this._zoom.end||0!==this._zoom.start2||100!==this._zoom.end2,t={xAxis:this.option.xAxis,yAxis:this.option.yAxis};for(var i in t)for(var n=0,a=t[i].length;a>n;n++)t[i][n].scale=e||t[i][n]._scale},_backupScale:function(){var e={xAxis:this.option.xAxis,yAxis:this.option.yAxis};for(var t in e)for(var i=0,n=e[t].length;n>i;i++)e[t][i]._scale=e[t][i].scale},_getDetail:function(){for(var e=["xAxis","yAxis"],t=0,i=e.length;i>t;t++){var n=this._originalData[e[t]];for(var a in n){var o=n[a];if(null!=o){var r=o.length,l=Math.floor(this._zoom.start/100*r),h=Math.ceil(this._zoom.end/100*r);return h-=h>0?1:0,{start:this.getDataFromOption(o[l]),end:this.getDataFromOption(o[h])}}}}e="horizontal"==this.zoomOption.orient?"xAxis":"yAxis";var m=this._zoom.seriesIndex[0],V=this.option.series[m][e+"Index"]||0,U=this.option[e][V].type,d=this._zoom.scatterMap[m][e.charAt(0)].min,p=this._zoom.scatterMap[m][e.charAt(0)].max,c=p-d;if("value"==U)return{start:d+c*this._zoom.start/100,end:d+c*this._zoom.end/100};if("time"==U){p=d+c*this._zoom.end/100,d+=c*this._zoom.start/100;var u=s.getAutoFormatter(d,p).formatter;return{start:s.format(u,d),end:s.format(u,p)}}return{start:"",end:""}},__ondrift:function(e,t,i){this.zoomOption.zoomLock&&(e=this._fillerShae);var n="filler"==e._type?this._handleSize:0;if("horizontal"==this.zoomOption.orient?e.style.x+t-n<=this._location.x?e.style.x=this._location.x+n:e.style.x+t+e.style.width+n>=this._location.x+this._location.width?e.style.x=this._location.x+this._location.width-e.style.width-n:e.style.x+=t:e.style.y+i-n<=this._location.y?e.style.y=this._location.y+n:e.style.y+i+e.style.height+n>=this._location.y+this._location.height?e.style.y=this._location.y+this._location.height-e.style.height-n:e.style.y+=i,"filler"==e._type?this._syncHandleShape():this._syncFillerShape(),this.zoomOption.realtime&&this._syncData(),this.zoomOption.showDetail){var a=this._getDetail();this._startShape.style.text=this._startShape.highlightStyle.text=a.start,this._endShape.style.text=this._endShape.highlightStyle.text=a.end,this._startShape.style.textPosition=this._startShape.highlightStyle.textPosition,this._endShape.style.textPosition=this._endShape.highlightStyle.textPosition}return!0},__ondragend:function(){this.zoomOption.showDetail&&(this._startShape.style.text=this._endShape.style.text="=",this._startShape.style.textPosition=this._endShape.style.textPosition="inside",this.zr.modShape(this._startShape.id),this.zr.modShape(this._endShape.id),this.zr.refreshNextFrame()),this.isDragend=!0},ondragend:function(e,t){this.isDragend&&e.target&&(!this.zoomOption.realtime&&this._syncData(),t.dragOut=!0,t.dragIn=!0,this._isSilence||this.zoomOption.realtime||this.messageCenter.dispatch(r.EVENT.DATA_ZOOM,null,{zoom:this._zoom},this.myChart),t.needRefresh=!1,this.isDragend=!1)},ondataZoom:function(e,t){t.needRefresh=!0},absoluteZoom:function(e){this._zoom.start=e.start,this._zoom.end=e.end,this._zoom.start2=e.start2,this._zoom.end2=e.end2,this._syncShape(),this._syncData(!0)},rectZoom:function(e){if(!e)return this._zoom.start=this._zoom.start2=0,this._zoom.end=this._zoom.end2=100,this._syncShape(),this._syncData(!0),this._zoom;var t=this.component.grid.getArea(),i={x:e.x,y:e.y,width:e.width,height:e.height};if(i.width<0&&(i.x+=i.width,i.width=-i.width),i.height<0&&(i.y+=i.height,i.height=-i.height),i.x>t.x+t.width||i.y>t.y+t.height)return!1;i.xt.x+t.width&&(i.width=t.x+t.width-i.x),i.y+i.height>t.y+t.height&&(i.height=t.y+t.height-i.y);var n,a=(i.x-t.x)/t.width,o=1-(i.x+i.width-t.x)/t.width,r=1-(i.y+i.height-t.y)/t.height,s=(i.y-t.y)/t.height;return"horizontal"==this.zoomOption.orient?(n=this._zoom.end-this._zoom.start,this._zoom.start+=n*a,this._zoom.end-=n*o,n=this._zoom.end2-this._zoom.start2,this._zoom.start2+=n*r,this._zoom.end2-=n*s):(n=this._zoom.end-this._zoom.start,this._zoom.start+=n*r,this._zoom.end-=n*s,n=this._zoom.end2-this._zoom.start2,this._zoom.start2+=n*a,this._zoom.end2-=n*o),this._syncShape(),this._syncData(!0),this._zoom},syncBackupData:function(e){for(var t,i,n=this._originalData.series,a=e.series,o=0,r=a.length;r>o;o++){i=a[o].data||a[o].eventList,t=n[o]?Math.floor(this._zoom.start/100*n[o].length):0;for(var s=0,l=i.length;l>s;s++)n[o]&&(n[o][s+t]=i[s])}},syncOption:function(e){this.silence(!0),this.option=e,this.option.dataZoom=this.reformOption(this.option.dataZoom),this.zoomOption=this.option.dataZoom,this.myChart.canvasSupported||(this.zoomOption.realtime=!1),this.clear(),this._location=this._getLocation(),this._zoom=this._getZoom(),this._backupData(),this.option.dataZoom&&this.option.dataZoom.show&&this._buildShape(),this._syncData(),this.silence(!1)},silence:function(e){this._isSilence=e},getRealDataIndex:function(e,t){if(!this._originalData||0===this._zoom.start&&100==this._zoom.end)return t;var i=this._originalData.series;return i[e]?Math.floor(this._zoom.start/100*i[e].length)+t:-1},resize:function(){this.clear(),this._location=this._getLocation(),this._zoom=this._getZoom(),this.option.dataZoom.show&&this._buildShape()}},l.inherits(t,i),e("../component").define("dataZoom",t),t}),i("echarts/component/categoryAxis",["require","./base","zrender/shape/Text","zrender/shape/Line","zrender/shape/Rectangle","../config","zrender/tool/util","zrender/tool/area","../component"],function(e){function t(e,t,n,a,o,r){if(a.data.length<1)return void console.error("option.data.length < 1.");i.call(this,e,t,n,a,o),this.grid=this.component.grid;for(var s in r)this[s]=r[s];this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Line"),o=e("zrender/shape/Rectangle"),r=e("../config");r.categoryAxis={zlevel:0,z:0,show:!0,position:"bottom",name:"",nameLocation:"end",nameTextStyle:{},boundaryGap:!0,axisLine:{show:!0,onZero:!0,lineStyle:{color:"#48b",width:2,type:"solid"}},axisTick:{show:!0,interval:"auto",inside:!1,length:5,lineStyle:{color:"#333",width:1}},axisLabel:{show:!0,interval:"auto",rotate:0,margin:8,textStyle:{color:"#333"}},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)"]}}};var s=e("zrender/tool/util"),l=e("zrender/tool/area");return t.prototype={type:r.COMPONENT_TYPE_AXIS_CATEGORY,_getReformedLabel:function(e){var t=this.getDataFromOption(this.option.data[e]),i=this.option.data[e].formatter||this.option.axisLabel.formatter;return i&&("function"==typeof i?t=i.call(this.myChart,t):"string"==typeof i&&(t=i.replace("{value}",t))),t},_getInterval:function(){var e=this.option.axisLabel.interval;if("auto"==e){var t=this.option.axisLabel.textStyle.fontSize,i=this.option.data,n=this.option.data.length;if(this.isHorizontal())if(n>3){var a,o,r=this.getGap(),h=!1,m=Math.floor(.5/r);for(m=1>m?1:m,e=Math.floor(15/r);!h&&n>e;){e+=m,h=!0,a=Math.floor(r*e);for(var V=Math.floor((n-1)/e)*e;V>=0;V-=e){if(0!==this.option.axisLabel.rotate)o=t;else if(i[V].textStyle)o=l.getTextWidth(this._getReformedLabel(V),this.getFont(s.merge(i[V].textStyle,this.option.axisLabel.textStyle)));else{var U=this._getReformedLabel(V)+"",d=(U.match(/\w/g)||"").length,p=U.length-d;o=d*t*2/3+p*t}if(o>a){h=!1;break}}}}else e=1;else if(n>3){var r=this.getGap();for(e=Math.floor(11/r);t>r*e-6&&n>e;)e++}else e=1}else e="function"==typeof e?1:e-0+1;return e},_buildShape:function(){if(this._interval=this._getInterval(),this.option.show){this.option.splitArea.show&&this._buildSplitArea(),this.option.splitLine.show&&this._buildSplitLine(),this.option.axisLine.show&&this._buildAxisLine(),this.option.axisTick.show&&this._buildAxisTick(),this.option.axisLabel.show&&this._buildAxisLabel();for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e])}},_buildAxisTick:function(){var e,t=this.option.data,i=this.option.data.length,n=this.option.axisTick,o=n.length,r=n.lineStyle.color,s=n.lineStyle.width,l="function"==typeof n.interval?n.interval:"auto"==n.interval&&"function"==typeof this.option.axisLabel.interval?this.option.axisLabel.interval:!1,h=l?1:"auto"==n.interval?this._interval:n.interval-0+1,m=n.onGap,V=m?this.getGap()/2:"undefined"==typeof m&&this.option.boundaryGap?this.getGap()/2:0,U=V>0?-h:0;if(this.isHorizontal())for(var d,p="bottom"==this.option.position?n.inside?this.grid.getYend()-o-1:this.grid.getYend()+1:n.inside?this.grid.getY()+1:this.grid.getY()-o-1,c=U;i>c;c+=h)(!l||l(c,t[c]))&&(d=this.subPixelOptimize(this.getCoordByIndex(c)+(c>=0?V:0),s),e={_axisShape:"axisTick",zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:d,yStart:p,xEnd:d,yEnd:p+o,strokeColor:r,lineWidth:s}},this.shapeList.push(new a(e)));else for(var u,y="left"==this.option.position?n.inside?this.grid.getX()+1:this.grid.getX()-o-1:n.inside?this.grid.getXend()-o-1:this.grid.getXend()+1,c=U;i>c;c+=h)(!l||l(c,t[c]))&&(u=this.subPixelOptimize(this.getCoordByIndex(c)-(c>=0?V:0),s),e={_axisShape:"axisTick",zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:y,yStart:u,xEnd:y+o,yEnd:u,strokeColor:r,lineWidth:s}},this.shapeList.push(new a(e)))},_buildAxisLabel:function(){var e,t,i=this.option.data,a=this.option.data.length,o=this.option.axisLabel,r=o.rotate,l=o.margin,h=o.clickable,m=o.textStyle,V="function"==typeof o.interval?o.interval:!1;if(this.isHorizontal()){var U,d;"bottom"==this.option.position?(U=this.grid.getYend()+l,d="top"):(U=this.grid.getY()-l,d="bottom");for(var p=0;a>p;p+=this._interval)V&&!V(p,i[p])||""===this._getReformedLabel(p)||(t=s.merge(i[p].textStyle||{},m),e={zlevel:this.getZlevelBase(),z:this.getZBase()+3,hoverable:!1,style:{x:this.getCoordByIndex(p),y:U,color:t.color,text:this._getReformedLabel(p),textFont:this.getFont(t),textAlign:t.align||"center",textBaseline:t.baseline||d}},r&&(e.style.textAlign=r>0?"bottom"==this.option.position?"right":"left":"bottom"==this.option.position?"left":"right",e.rotation=[r*Math.PI/180,e.style.x,e.style.y]),this.shapeList.push(new n(this._axisLabelClickable(h,e))))}else{var c,u;"left"==this.option.position?(c=this.grid.getX()-l,u="right"):(c=this.grid.getXend()+l,u="left");for(var p=0;a>p;p+=this._interval)V&&!V(p,i[p])||""===this._getReformedLabel(p)||(t=s.merge(i[p].textStyle||{},m),e={zlevel:this.getZlevelBase(),z:this.getZBase()+3,hoverable:!1,style:{x:c,y:this.getCoordByIndex(p),color:t.color,text:this._getReformedLabel(p),textFont:this.getFont(t),textAlign:t.align||u,textBaseline:t.baseline||0===p&&""!==this.option.name?"bottom":p==a-1&&""!==this.option.name?"top":"middle"}},r&&(e.rotation=[r*Math.PI/180,e.style.x,e.style.y]),this.shapeList.push(new n(this._axisLabelClickable(h,e))))}},_buildSplitLine:function(){var e,t=this.option.data,i=this.option.data.length,n=this.option.splitLine,o=n.lineStyle.type,r=n.lineStyle.width,s=n.lineStyle.color;s=s instanceof Array?s:[s];var l=s.length,h="function"==typeof this.option.axisLabel.interval?this.option.axisLabel.interval:!1,m=n.onGap,V=m?this.getGap()/2:"undefined"==typeof m&&this.option.boundaryGap?this.getGap()/2:0;if(i-=m||"undefined"==typeof m&&this.option.boundaryGap?1:0,this.isHorizontal())for(var U,d=this.grid.getY(),p=this.grid.getYend(),c=0;i>c;c+=this._interval)(!h||h(c,t[c]))&&(U=this.subPixelOptimize(this.getCoordByIndex(c)+V,r),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:U,yStart:d,xEnd:U,yEnd:p,strokeColor:s[c/this._interval%l],lineType:o,lineWidth:r}},this.shapeList.push(new a(e)));else for(var u,y=this.grid.getX(),g=this.grid.getXend(),c=0;i>c;c+=this._interval)(!h||h(c,t[c]))&&(u=this.subPixelOptimize(this.getCoordByIndex(c)-V,r),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:y,yStart:u,xEnd:g,yEnd:u,strokeColor:s[c/this._interval%l],lineType:o,lineWidth:r}},this.shapeList.push(new a(e)))},_buildSplitArea:function(){var e,t=this.option.data,i=this.option.splitArea,n=i.areaStyle.color;if(n instanceof Array){var a=n.length,r=this.option.data.length,s="function"==typeof this.option.axisLabel.interval?this.option.axisLabel.interval:!1,l=i.onGap,h=l?this.getGap()/2:"undefined"==typeof l&&this.option.boundaryGap?this.getGap()/2:0;if(this.isHorizontal())for(var m,V=this.grid.getY(),U=this.grid.getHeight(),d=this.grid.getX(),p=0;r>=p;p+=this._interval)s&&!s(p,t[p])&&r>p||(m=r>p?this.getCoordByIndex(p)+h:this.grid.getXend(),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:d,y:V,width:m-d,height:U,color:n[p/this._interval%a]}},this.shapeList.push(new o(e)),d=m);else for(var c,u=this.grid.getX(),y=this.grid.getWidth(),g=this.grid.getYend(),p=0;r>=p;p+=this._interval)s&&!s(p,t[p])&&r>p||(c=r>p?this.getCoordByIndex(p)-h:this.grid.getY(),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:u,y:c,width:y,height:g-c,color:n[p/this._interval%a]}},this.shapeList.push(new o(e)),g=c)}else e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this.grid.getX(),y:this.grid.getY(),width:this.grid.getWidth(),height:this.grid.getHeight(),color:n}},this.shapeList.push(new o(e))},refresh:function(e){e&&(this.option=this.reformOption(e),this.option.axisLabel.textStyle=this.getTextStyle(this.option.axisLabel.textStyle)),this.clear(),this._buildShape()},getGap:function(){var e=this.option.data.length,t=this.isHorizontal()?this.grid.getWidth():this.grid.getHeight();return this.option.boundaryGap?t/e:t/(e>1?e-1:1)},getCoord:function(e){for(var t=this.option.data,i=t.length,n=this.getGap(),a=this.option.boundaryGap?n/2:0,o=0;i>o;o++){if(this.getDataFromOption(t[o])==e)return a=this.isHorizontal()?this.grid.getX()+a:this.grid.getYend()-a;a+=n}},getCoordByIndex:function(e){if(0>e)return this.isHorizontal()?this.grid.getX():this.grid.getYend();if(e>this.option.data.length-1)return this.isHorizontal()?this.grid.getXend():this.grid.getY();var t=this.getGap(),i=this.option.boundaryGap?t/2:0;return i+=e*t,i=this.isHorizontal()?this.grid.getX()+i:this.grid.getYend()-i},getNameByIndex:function(e){return this.getDataFromOption(this.option.data[e])},getIndexByName:function(e){for(var t=this.option.data,i=t.length,n=0;i>n;n++)if(this.getDataFromOption(t[n])==e)return n;return-1},getValueFromCoord:function(){return""},isMainAxis:function(e){return e%this._interval===0}},s.inherits(t,i),e("../component").define("categoryAxis",t),t}),i("echarts/component/valueAxis",["require","./base","zrender/shape/Text","zrender/shape/Line","zrender/shape/Rectangle","../config","../util/date","zrender/tool/util","../util/smartSteps","../util/accMath","../util/smartLogSteps","../component"],function(e){function t(e,t,n,a,o,r,s){if(!s||0===s.length)return void console.err("option.series.length == 0.");i.call(this,e,t,n,a,o),this.series=s,this.grid=this.component.grid;for(var l in r)this[l]=r[l];this.refresh(a,s)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Line"),o=e("zrender/shape/Rectangle"),r=e("../config");r.valueAxis={zlevel:0,z:0,show:!0,position:"left",name:"",nameLocation:"end",nameTextStyle:{},boundaryGap:[0,0],axisLine:{show:!0,onZero:!0,lineStyle:{color:"#48b",width:2,type:"solid"}},axisTick:{show:!1,inside:!1,length:5,lineStyle:{color:"#333",width:1}},axisLabel:{show:!0,rotate:0,margin:8,textStyle:{color:"#333"}},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)"]}}};var s=e("../util/date"),l=e("zrender/tool/util");return t.prototype={type:r.COMPONENT_TYPE_AXIS_VALUE,_buildShape:function(){if(this._hasData=!1,this._calculateValue(),this._hasData&&this.option.show){this.option.splitArea.show&&this._buildSplitArea(),this.option.splitLine.show&&this._buildSplitLine(),this.option.axisLine.show&&this._buildAxisLine(),this.option.axisTick.show&&this._buildAxisTick(),this.option.axisLabel.show&&this._buildAxisLabel();for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e])}},_buildAxisTick:function(){var e,t=this._valueList,i=this._valueList.length,n=this.option.axisTick,o=n.length,r=n.lineStyle.color,s=n.lineStyle.width;if(this.isHorizontal())for(var l,h="bottom"===this.option.position?n.inside?this.grid.getYend()-o-1:this.grid.getYend()+1:n.inside?this.grid.getY()+1:this.grid.getY()-o-1,m=0;i>m;m++)l=this.subPixelOptimize(this.getCoord(t[m]),s),e={_axisShape:"axisTick",zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:l,yStart:h,xEnd:l,yEnd:h+o,strokeColor:r,lineWidth:s}},this.shapeList.push(new a(e));else for(var V,U="left"===this.option.position?n.inside?this.grid.getX()+1:this.grid.getX()-o-1:n.inside?this.grid.getXend()-o-1:this.grid.getXend()+1,m=0;i>m;m++)V=this.subPixelOptimize(this.getCoord(t[m]),s),e={_axisShape:"axisTick",zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:U,yStart:V,xEnd:U+o,yEnd:V,strokeColor:r,lineWidth:s}},this.shapeList.push(new a(e))},_buildAxisLabel:function(){var e,t=this._valueList,i=this._valueList.length,a=this.option.axisLabel.rotate,o=this.option.axisLabel.margin,r=this.option.axisLabel.clickable,s=this.option.axisLabel.textStyle;if(this.isHorizontal()){var l,h;"bottom"===this.option.position?(l=this.grid.getYend()+o,h="top"):(l=this.grid.getY()-o,h="bottom");for(var m=0;i>m;m++)e={zlevel:this.getZlevelBase(),z:this.getZBase()+3,hoverable:!1,style:{x:this.getCoord(t[m]),y:l,color:"function"==typeof s.color?s.color(t[m]):s.color,text:this._valueLabel[m],textFont:this.getFont(s),textAlign:s.align||"center",textBaseline:s.baseline||h}},a&&(e.style.textAlign=a>0?"bottom"===this.option.position?"right":"left":"bottom"===this.option.position?"left":"right",e.rotation=[a*Math.PI/180,e.style.x,e.style.y]),this.shapeList.push(new n(this._axisLabelClickable(r,e)))}else{var V,U;"left"===this.option.position?(V=this.grid.getX()-o,U="right"):(V=this.grid.getXend()+o,U="left");for(var m=0;i>m;m++)e={zlevel:this.getZlevelBase(),z:this.getZBase()+3,hoverable:!1,style:{x:V,y:this.getCoord(t[m]),color:"function"==typeof s.color?s.color(t[m]):s.color,text:this._valueLabel[m],textFont:this.getFont(s),textAlign:s.align||U,textBaseline:s.baseline||(0===m&&""!==this.option.name?"bottom":m===i-1&&""!==this.option.name?"top":"middle")}},a&&(e.rotation=[a*Math.PI/180,e.style.x,e.style.y]),this.shapeList.push(new n(this._axisLabelClickable(r,e)))}},_buildSplitLine:function(){var e,t=this._valueList,i=this._valueList.length,n=this.option.splitLine,o=n.lineStyle.type,r=n.lineStyle.width,s=n.lineStyle.color;s=s instanceof Array?s:[s];var l=s.length;if(this.isHorizontal())for(var h,m=this.grid.getY(),V=this.grid.getYend(),U=0;i>U;U++)h=this.subPixelOptimize(this.getCoord(t[U]),r),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:h,yStart:m,xEnd:h,yEnd:V,strokeColor:s[U%l],lineType:o,lineWidth:r}},this.shapeList.push(new a(e));else for(var d,p=this.grid.getX(),c=this.grid.getXend(),U=0;i>U;U++)d=this.subPixelOptimize(this.getCoord(t[U]),r),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:p,yStart:d,xEnd:c,yEnd:d,strokeColor:s[U%l],lineType:o,lineWidth:r}},this.shapeList.push(new a(e))},_buildSplitArea:function(){var e,t=this.option.splitArea.areaStyle.color;if(t instanceof Array){var i=t.length,n=this._valueList,a=this._valueList.length;if(this.isHorizontal())for(var r,s=this.grid.getY(),l=this.grid.getHeight(),h=this.grid.getX(),m=0;a>=m;m++)r=a>m?this.getCoord(n[m]):this.grid.getXend(),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:h,y:s,width:r-h,height:l,color:t[m%i]}},this.shapeList.push(new o(e)),h=r;else for(var V,U=this.grid.getX(),d=this.grid.getWidth(),p=this.grid.getYend(),m=0;a>=m;m++)V=a>m?this.getCoord(n[m]):this.grid.getY(),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:U,y:V,width:d,height:p-V,color:t[m%i]}},this.shapeList.push(new o(e)),p=V}else e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this.grid.getX(),y:this.grid.getY(),width:this.grid.getWidth(),height:this.grid.getHeight(),color:t}},this.shapeList.push(new o(e))},_calculateValue:function(){if(isNaN(this.option.min-0)||isNaN(this.option.max-0)){for(var e,t,i={},n=this.component.legend,a=0,o=this.series.length;o>a;a++)!(this.series[a].type!=r.CHART_TYPE_LINE&&this.series[a].type!=r.CHART_TYPE_BAR&&this.series[a].type!=r.CHART_TYPE_SCATTER&&this.series[a].type!=r.CHART_TYPE_K&&this.series[a].type!=r.CHART_TYPE_EVENTRIVER||n&&!n.isSelected(this.series[a].name)||(e=this.series[a].xAxisIndex||0,t=this.series[a].yAxisIndex||0,this.option.xAxisIndex!=e&&this.option.yAxisIndex!=t||!this._calculSum(i,a)));var s;for(var a in i){s=i[a];for(var l=0,h=s.length;h>l;l++)if(!isNaN(s[l])){this._hasData=!0,this._min=s[l],this._max=s[l];break}if(this._hasData)break}for(var a in i){s=i[a];for(var l=0,h=s.length;h>l;l++)isNaN(s[l])||(this._min=Math.min(this._min,s[l]),this._max=Math.max(this._max,s[l]))}var m="log"!==this.option.type?this.option.boundaryGap:[0,0],V=Math.abs(this._max-this._min);this._min=isNaN(this.option.min-0)?this._min-Math.abs(V*m[0]):this.option.min-0,this._max=isNaN(this.option.max-0)?this._max+Math.abs(V*m[1]):this.option.max-0,this._min===this._max&&(0===this._max?this._max=1:this._max>0?this._min=this._max/this.option.splitNumber!=null?this.option.splitNumber:5:this._max=this._max/this.option.splitNumber!=null?this.option.splitNumber:5),"time"===this.option.type?this._reformTimeValue():"log"===this.option.type?this._reformLogValue():this._reformValue(this.option.scale)}else this._hasData=!0,this._min=this.option.min-0,this._max=this.option.max-0,"time"===this.option.type?this._reformTimeValue():"log"===this.option.type?this._reformLogValue():this._customerValue()},_calculSum:function(e,t){var i,n,a=this.series[t].name||"kener";if(this.series[t].stack){var o="__Magic_Key_Positive__"+this.series[t].stack,l="__Magic_Key_Negative__"+this.series[t].stack;e[o]=e[o]||[],e[l]=e[l]||[],e[a]=e[a]||[],n=this.series[t].data;for(var h=0,m=n.length;m>h;h++)i=this.getDataFromOption(n[h]),"-"!==i&&(i-=0,i>=0?null!=e[o][h]?e[o][h]+=i:e[o][h]=i:null!=e[l][h]?e[l][h]+=i:e[l][h]=i,this.option.scale&&e[a].push(i))}else if(e[a]=e[a]||[],this.series[t].type!=r.CHART_TYPE_EVENTRIVER){n=this.series[t].data;for(var h=0,m=n.length;m>h;h++)i=this.getDataFromOption(n[h]),this.series[t].type===r.CHART_TYPE_K?(e[a].push(i[0]),e[a].push(i[1]),e[a].push(i[2]),e[a].push(i[3])):i instanceof Array?(-1!=this.option.xAxisIndex&&e[a].push("time"!=this.option.type?i[0]:s.getNewDate(i[0])),-1!=this.option.yAxisIndex&&e[a].push("time"!=this.option.type?i[1]:s.getNewDate(i[1]))):e[a].push(i)}else{n=this.series[t].data;for(var h=0,m=n.length;m>h;h++)for(var V=n[h].evolution,U=0,d=V.length;d>U;U++)e[a].push(s.getNewDate(V[U].time))}},_reformValue:function(t){var i=e("../util/smartSteps"),n=this.option.splitNumber;!t&&this._min>=0&&this._max>=0&&(this._min=0),!t&&this._min<=0&&this._max<=0&&(this._max=0);var a=i(this._min,this._max,n);n=null!=n?n:a.secs,this._min=a.min,this._max=a.max,this._valueList=a.pnts,this._reformLabelData()},_reformTimeValue:function(){var e=null!=this.option.splitNumber?this.option.splitNumber:5,t=s.getAutoFormatter(this._min,this._max,e),i=t.formatter,n=t.gapValue;this._valueList=[s.getNewDate(this._min)];var a;switch(i){case"week":a=s.nextMonday(this._min);break;case"month":a=s.nextNthOnMonth(this._min,1);break;case"quarter":a=s.nextNthOnQuarterYear(this._min,1);break;case"half-year":a=s.nextNthOnHalfYear(this._min,1);break;case"year":a=s.nextNthOnYear(this._min,1);break;default:72e5>=n?a=(Math.floor(this._min/n)+1)*n:(a=s.getNewDate(this._min- -n),a.setHours(6*Math.round(a.getHours()/6)),a.setMinutes(0),a.setSeconds(0))}for(a-this._min=0&&(("month"==i||"quarter"==i||"half-year"==i||"year"==i)&&t.setDate(1),!(this._max-t=a;a++)this._valueList.push(t.accAdd(this._min,t.accMul(n,a)));this._reformLabelData()},_reformLogValue:function(){var t=this.option,i=e("../util/smartLogSteps")({dataMin:this._min,dataMax:this._max,logPositive:t.logPositive,logLabelBase:t.logLabelBase,splitNumber:t.splitNumber});this._min=i.dataMin,this._max=i.dataMax,this._valueList=i.tickList,this._dataMappingMethods=i.dataMappingMethods,this._reformLabelData(i.labelFormatter)},_reformLabelData:function(e){this._valueLabel=[];var t=this.option.axisLabel.formatter;if(t)for(var i=0,n=this._valueList.length;n>i;i++)"function"==typeof t?this._valueLabel.push(e?t.call(this.myChart,this._valueList[i],e):t.call(this.myChart,this._valueList[i])):"string"==typeof t&&this._valueLabel.push(e?s.format(t,this._valueList[i]):t.replace("{value}",this._valueList[i]));else for(var i=0,n=this._valueList.length;n>i;i++)this._valueLabel.push(e?e(this._valueList[i]):this.numAddCommas(this._valueList[i]))},getExtremum:function(){this._calculateValue();var e=this._dataMappingMethods;return{min:this._min,max:this._max,dataMappingMethods:e?l.merge({},e):null}},refresh:function(e,t){e&&(this.option=this.reformOption(e),this.option.axisLabel.textStyle=l.merge(this.option.axisLabel.textStyle||{},this.ecTheme.textStyle),this.series=t),this.zr&&(this.clear(),this._buildShape())},getCoord:function(e){this._dataMappingMethods&&(e=this._dataMappingMethods.value2Coord(e)),e=ethis._max?this._max:e;var t;return t=this.isHorizontal()?this.grid.getX()+(e-this._min)/(this._max-this._min)*this.grid.getWidth():this.grid.getYend()-(e-this._min)/(this._max-this._min)*this.grid.getHeight()},getCoordSize:function(e){return Math.abs(this.isHorizontal()?e/(this._max-this._min)*this.grid.getWidth():e/(this._max-this._min)*this.grid.getHeight())},getValueFromCoord:function(e){var t;return this.isHorizontal()?(e=ethis.grid.getXend()?this.grid.getXend():e,t=this._min+(e-this.grid.getX())/this.grid.getWidth()*(this._max-this._min)):(e=ethis.grid.getYend()?this.grid.getYend():e,t=this._max-(e-this.grid.getY())/this.grid.getHeight()*(this._max-this._min)),this._dataMappingMethods&&(t=this._dataMappingMethods.coord2Value(t)),t.toFixed(2)-0},isMaindAxis:function(e){for(var t=0,i=this._valueList.length;i>t;t++)if(this._valueList[t]===e)return!0;return!1}},l.inherits(t,i),e("../component").define("valueAxis",t),t}),i("echarts/util/date",[],function(){function e(e,t,i){i=i>1?i:2;for(var n,a,o,r,s=0,l=m.length;l>s;s++)if(n=m[s].value,a=Math.ceil(t/n)*n-Math.floor(e/n)*n,Math.round(a/n)<=1.2*i){o=m[s].formatter,r=m[s].value;break}return null==o&&(o="year",n=317088e5,a=Math.ceil(t/n)*n-Math.floor(e/n)*n,r=Math.round(a/(i-1)/n)*n),{formatter:o,gapValue:r}}function t(e){return 10>e?"0"+e:e}function i(e,i){("week"==e||"month"==e||"quarter"==e||"half-year"==e||"year"==e)&&(e="MM - dd\nyyyy");var n=h(i),a=n.getFullYear(),o=n.getMonth()+1,r=n.getDate(),s=n.getHours(),l=n.getMinutes(),m=n.getSeconds();return e=e.replace("MM",t(o)),e=e.toLowerCase(),e=e.replace("yyyy",a),e=e.replace("yy",a%100),e=e.replace("dd",t(r)),e=e.replace("d",r),e=e.replace("hh",t(s)),e=e.replace("h",s),e=e.replace("mm",t(l)),e=e.replace("m",l),e=e.replace("ss",t(m)),e=e.replace("s",m)}function n(e){return e=h(e),e.setDate(e.getDate()+8-e.getDay()),e}function a(e,t,i){return e=h(e),e.setMonth(Math.ceil((e.getMonth()+1)/i)*i),e.setDate(t),e}function o(e,t){return a(e,t,1)}function r(e,t){return a(e,t,3)}function s(e,t){return a(e,t,6)}function l(e,t){return a(e,t,12)}function h(e){return e instanceof Date?e:new Date("string"==typeof e?e.replace(/-/g,"/"):e)}var m=[{formatter:"hh : mm : ss",value:1e3},{formatter:"hh : mm : ss",value:5e3},{formatter:"hh : mm : ss",value:1e4},{formatter:"hh : mm : ss",value:15e3},{formatter:"hh : mm : ss",value:3e4},{formatter:"hh : mm\nMM - dd",value:6e4},{formatter:"hh : mm\nMM - dd",value:3e5},{formatter:"hh : mm\nMM - dd",value:6e5},{formatter:"hh : mm\nMM - dd",value:9e5},{formatter:"hh : mm\nMM - dd",value:18e5},{formatter:"hh : mm\nMM - dd",value:36e5},{formatter:"hh : mm\nMM - dd",value:72e5},{formatter:"hh : mm\nMM - dd",value:216e5},{formatter:"hh : mm\nMM - dd",value:432e5},{formatter:"MM - dd\nyyyy",value:864e5},{formatter:"week",value:6048e5},{formatter:"month",value:26784e5},{formatter:"quarter",value:8208e6},{formatter:"half-year",value:16416e6},{formatter:"year",value:32832e6}];return{getAutoFormatter:e,getNewDate:h,format:i,nextMonday:n,nextNthPerNmonth:a,nextNthOnMonth:o,nextNthOnQuarterYear:r,nextNthOnHalfYear:s,nextNthOnYear:l}}),i("echarts/util/smartSteps",[],function(){function e(e){return X.log(I(e))/X.LN10}function t(e){return X.pow(10,e)}function i(e){return e===w(e)}function n(e,t,n,a){b=a||{},f=b.steps||L,k=b.secs||W,n=v(+n||0)%99,e=+e||0,t=+t||0,x=_=0,"min"in b&&(e=+b.min||0,x=1),"max"in b&&(t=+b.max||0,_=1),e>t&&(t=[e,e=t][0]);var o=t-e;if(x&&_)return g(e,t,n);if((n||5)>o){if(i(e)&&i(t))return d(e,t,n);if(0===o)return p(e,t,n)}return h(e,t,n)}function a(e,i,n,a){a=a||0;var s=o((i-e)/n,-1),l=o(e,-1,1),h=o(i,-1),m=X.min(s.e,l.e,h.e);0===l.c?m=X.min(s.e,h.e):0===h.c&&(m=X.min(s.e,l.e)),r(s,{c:0,e:m}),r(l,s,1),r(h,s),a+=m,e=l.c,i=h.c;for(var V=(i-e)/n,U=t(a),d=0,p=[],c=n+1;c--;)p[c]=(e+V*c)*U;if(0>a){d=u(U),V=+(V*U).toFixed(d),e=+(e*U).toFixed(d),i=+(i*U).toFixed(d);for(var c=p.length;c--;)p[c]=p[c].toFixed(d),0===+p[c]&&(p[c]="0")}else e*=U,i*=U,V*=U;return k=0,f=0,b=0,{min:e,max:i,secs:n,step:V,fix:d,exp:a,pnts:p}}function o(n,a,o){a=v(a%10)||2,0>a&&(i(n)?a=(""+I(n)).replace(/0+$/,"").length||1:(n=n.toFixed(15).replace(/0+$/,""),a=n.replace(".","").replace(/^[-0]+/,"").length,n=+n));var r=w(e(n))-a+1,s=+(n*t(-r)).toFixed(15)||0;return s=o?w(s):K(s),!s&&(r=0),(""+I(s)).length>a&&(r+=1,s/=10),{c:s,e:r}}function r(e,i,n){var a=i.e-e.e;a&&(e.e+=a,e.c*=t(-a),e.c=n?w(e.c):K(e.c))}function s(e,t,i){e.et[n];)n++;if(!t[n])for(i/=10,e.e+=1,n=0;i>t[n];)n++;return e.c=t[n],e}function h(e,t,n){var s,h=n||+k.slice(-1),p=l((t-e)/h,f),u=o(t-e),g=o(e,-1,1),b=o(t,-1);if(r(u,p),r(g,p,1),r(b,p),n?s=V(g,b,h):h=m(g,b),i(e)&&i(t)&&e*t>=0){if(h>t-e)return d(e,t,h);h=U(e,t,n,g,b,h)}var L=c(e,t,g.c,b.c);return g.c=L[0],b.c=L[1],(x||_)&&y(e,t,g,b),a(g.c,b.c,h,b.e)}function m(e,i){for(var n,a,o,r,s=[],h=k.length;h--;)n=k[h],a=l((i.c-e.c)/n,f),a=a.c*t(a.e),o=w(e.c/a)*a,r=K(i.c/a)*a,s[h]={min:o,max:r,step:a,span:r-o};return s.sort(function(e,t){var i=e.span-t.span;return 0===i&&(i=e.step-t.step),i}),s=s[0],n=s.span/s.step,e.c=s.min,i.c=s.max,3>n?2*n:n}function V(e,i,n){for(var a,o,r=i.c,s=(i.c-e.c)/n-1;r>e.c;)s=l(s+1,f),s=s.c*t(s.e),a=s*n,o=K(i.c/s)*s,r=o-a;var h=e.c-r,m=o-i.c,V=h-m;return V>1.1*s&&(V=v(V/s/2)*s,r+=V,o+=V),e.c=r,i.c=o,s}function U(e,n,a,o,r,s){var l=r.c-o.c,h=l/s*t(r.e);if(!i(h)&&(h=w(h),l=h*s,n-e>l&&(h+=1,l=h*s,!a&&h*(s-1)>=n-e&&(s-=1,l=h*s)),l>=n-e)){var m=l-(n-e);o.c=v(e-m/2),r.c=v(n+m/2),o.e=0,r.e=0}return s}function d(e,t,i){if(i=i||5,x)t=e+i;else if(_)e=t-i;else{var n=i-(t-e),o=v(e-n/2),r=v(t+n/2),s=c(e,t,o,r);e=s[0],t=s[1]}return a(e,t,i)}function p(e,t,i){i=i||5;var n=X.min(I(t/i),i)/2.1;return x?t=e+n:_?e=t-n:(e-=n,t+=n),h(e,t,i)}function c(e,t,i,n){ -return e>=0&&0>i?(n-=i,i=0):0>=t&&n>0&&(i-=n,n=0),[i,n]}function u(e){return e=(+e).toFixed(15).split("."),e.pop().replace(/0+$/,"").length}function y(e,t,i,n){if(x){var a=o(e,4,1);i.e-a.e>6&&(a={c:0,e:i.e}),s(i,a),s(n,a),n.c+=a.c-i.c,i.c=a.c}else if(_){var r=o(t,4);n.e-r.e>6&&(r={c:0,e:n.e}),s(i,r),s(n,r),i.c+=r.c-n.c,n.c=r.c}}function g(e,t,i){var n=i?[i]:k,s=t-e;if(0===s)return t=o(t,3),i=n[0],t.c=v(t.c+i/2),a(t.c-i,t.c,i,t.e);I(t/s)<1e-6&&(t=0),I(e/s)<1e-6&&(e=0);var l,h,m,V=[[5,10],[10,2],[50,10],[100,2]],U=[],d=[],p=o(t-e,3),c=o(e,-1,1),u=o(t,-1);r(c,p,1),r(u,p),s=u.c-c.c,p.c=s;for(var y=n.length;y--;){i=n[y],l=K(s/i),h=l*i-s,m=3*(h+3),m+=2*(i-n[0]+2),i%5===0&&(m-=10);for(var g=V.length;g--;)l%V[g][0]===0&&(m/=V[g][1]);d[y]=[i,l,h,m].join(),U[y]={secs:i,step:l,delta:h,score:m}}return U.sort(function(e,t){return e.score-t.score}),U=U[0],c.c=v(c.c-U.delta/2),u.c=v(u.c+U.delta/2),a(c.c,u.c,U.secs,p.e)}var b,f,k,x,_,L=[10,20,25,50],W=[4,5,6],X=Math,v=X.round,w=X.floor,K=X.ceil,I=X.abs;return n}),i("echarts/util/smartLogSteps",["require","./number"],function(e){function t(e){return i(),u=e||{},n(),a(),[o(),i()][0]}function i(){U=u=g=c=b=f=y=k=d=p=null}function n(){d=u.logLabelBase,null==d?(p="plain",d=10,c=I):(d=+d,1>d&&(d=10),p="exponent",c=L(d)),y=u.splitNumber,null==y&&(y=E);var e=parseFloat(u.dataMin),t=parseFloat(u.dataMax);isFinite(e)||isFinite(t)?isFinite(e)?isFinite(t)?e>t&&(t=[e,e=t][0]):t=e:e=t:e=t=1,U=u.logPositive,null==U&&(U=t>0||0===e),b=U?e:-t,f=U?t:-e,S>b&&(b=S),S>f&&(f=S)}function a(){function e(){y>m&&(y=m);var e=w(l(m/y)),t=v(l(m/e)),i=e*t,n=(i-U)/2,a=w(l(r-n));V(a-r)&&(a-=1),g=-a*c;for(var s=a;o>=s-e;s+=e)k.push(W(d,s))}function t(){for(var e=i(h,0),t=e+2;t>e&&a(e+1)+n(e+1)*Ct&&a(l-1)+n(l-1)*C>o;)l--;g=-(a(e)*I+n(e)*J);for(var m=e;l>=m;m++){var V=a(m),U=n(m);k.push(W(10,V)*W(2,U))}}function i(e,t){return 3*e+t}function n(e){return e-3*a(e)}function a(e){return w(l(e/3))}k=[];var o=l(L(f)/c),r=l(L(b)/c),s=v(o),h=w(r),m=s-h,U=o-r;"exponent"===p?e():F>=m&&y>F?t():e()}function o(){for(var e=[],t=0,i=k.length;i>t;t++)e[t]=(U?1:-1)*k[t];!U&&e.reverse();var n=s(),a=n.value2Coord,o=a(e[0]),l=a(e[e.length-1]);return o===l&&(o-=1,l+=1),{dataMin:o,dataMax:l,tickList:e,logPositive:U,labelFormatter:r(),dataMappingMethods:n}}function r(){if("exponent"===p){var e=d,t=c;return function(i){if(!isFinite(parseFloat(i)))return"";var n="";return 0>i&&(i=-i,n="-"),n+e+m(L(i)/t)}}return function(e){return isFinite(parseFloat(e))?x.addCommas(h(e)):""}}function s(){var e=U,t=g;return{value2Coord:function(i){return null==i||isNaN(i)||!isFinite(i)?i:(i=parseFloat(i),isFinite(i)?e&&S>i?i=S:!e&&i>-S&&(i=-S):i=S,i=X(i),(e?1:-1)*(L(i)+t))},coord2Value:function(i){return null==i||isNaN(i)||!isFinite(i)?i:(i=parseFloat(i),isFinite(i)||(i=S),e?W(K,i-t):-W(K,-i+t))}}}function l(e){return+Number(+e).toFixed(14)}function h(e){return Number(e).toFixed(15).replace(/\.?0*$/,"")}function m(e){e=h(Math.round(e));for(var t=[],i=0,n=e.length;n>i;i++){var a=e.charAt(i);t.push(T[a]||"")}return t.join("")}function V(e){return e>-S&&S>e}var U,d,p,c,u,y,g,b,f,k,x=e("./number"),_=Math,L=_.log,W=_.pow,X=_.abs,v=_.ceil,w=_.floor,K=_.E,I=_.LN10,J=_.LN2,C=J/I,S=1e-9,E=5,F=2,T={0:"⁰",1:"¹",2:"²",3:"³",4:"⁴",5:"⁵",6:"⁶",7:"⁷",8:"⁸",9:"⁹","-":"⁻"};return t}),i("echarts/chart/line",["require","./base","zrender/shape/Polyline","../util/shape/Icon","../util/shape/HalfSmoothPolygon","../component/axis","../component/grid","../component/dataZoom","../config","../util/ecData","zrender/tool/util","zrender/tool/color","../chart"],function(e){function t(e,t,i,a,o){n.call(this,e,t,i,a,o),this.refresh(a)}function i(e,t,i){var n=t.x,a=t.y,r=t.width,s=t.height,l=s/2;t.symbol.match("empty")&&(e.fillStyle="#fff"),t.brushType="both";var h=t.symbol.replace("empty","").toLowerCase();h.match("star")?(l=h.replace("star","")-0||5,a-=1,h="star"):("rectangle"===h||"arrow"===h)&&(n+=(r-s)/2,r=s);var m="";if(h.match("image")&&(m=h.replace(new RegExp("^image:\\/\\/"),""),h="image",n+=Math.round((r-s)/2)-1,r=s+=2),h=o.prototype.iconLibrary[h]){var V=t.x,U=t.y;e.moveTo(V,U+l),e.lineTo(V+5,U+l),e.moveTo(V+t.width-5,U+l),e.lineTo(V+t.width,U+l);var d=this;h(e,{x:n+4,y:a+4,width:r-8,height:s-8,n:l,image:m},function(){d.modSelf(),i()})}else e.moveTo(n,a+l),e.lineTo(n+r,a+l)}var n=e("./base"),a=e("zrender/shape/Polyline"),o=e("../util/shape/Icon"),r=e("../util/shape/HalfSmoothPolygon");e("../component/axis"),e("../component/grid"),e("../component/dataZoom");var s=e("../config");s.line={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,dataFilter:"nearest",itemStyle:{normal:{label:{show:!1},lineStyle:{width:2,type:"solid",shadowColor:"rgba(0,0,0,0)",shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0}},emphasis:{label:{show:!1}}},symbolSize:2,showAllSymbol:!1};var l=e("../util/ecData"),h=e("zrender/tool/util"),m=e("zrender/tool/color");return t.prototype={type:s.CHART_TYPE_LINE,_buildShape:function(){this.finalPLMap={},this._buildPosition()},_buildHorizontal:function(e,t,i,n){for(var a,o,r,s,l,h,m,V,U,d=this.series,p=i[0][0],c=d[p],u=this.component.xAxis.getAxis(c.xAxisIndex||0),y={},g=0,b=t;b>g&&null!=u.getNameByIndex(g);g++){o=u.getCoordByIndex(g);for(var f=0,k=i.length;k>f;f++){a=this.component.yAxis.getAxis(d[i[f][0]].yAxisIndex||0),l=s=m=h=a.getCoord(0);for(var x=0,_=i[f].length;_>x;x++)p=i[f][x],c=d[p],V=c.data[g],U=this.getDataFromOption(V,"-"),y[p]=y[p]||[],n[p]=n[p]||{min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY,sum:0,counter:0,average:0},"-"!==U?(U>=0?(s-=x>0?a.getCoordSize(U):l-a.getCoord(U),r=s):0>U&&(h+=x>0?a.getCoordSize(U):a.getCoord(U)-m,r=h),y[p].push([o,r,g,u.getNameByIndex(g),o,l]),n[p].min>U&&(n[p].min=U,n[p].minY=r,n[p].minX=o),n[p].max0&&(this.finalPLMap[p]=this.finalPLMap[p]||[],this.finalPLMap[p].push(y[p]),y[p]=[])}s=this.component.grid.getY();for(var L,f=0,k=i.length;k>f;f++)for(var x=0,_=i[f].length;_>x;x++)p=i[f][x],c=d[p],V=c.data[g],U=this.getDataFromOption(V,"-"),"-"==U&&this.deepQuery([V,c,this.option],"calculable")&&(L=this.deepQuery([V,c],"symbolSize"),s+=2*L+5,r=s,this.shapeList.push(this._getCalculableItem(p,g,u.getNameByIndex(g),o,r,"horizontal")))}for(var W in y)y[W].length>0&&(this.finalPLMap[W]=this.finalPLMap[W]||[],this.finalPLMap[W].push(y[W]),y[W]=[]);this._calculMarkMapXY(n,i,"y"),this._buildBorkenLine(e,this.finalPLMap,u,"horizontal")},_buildVertical:function(e,t,i,n){for(var a,o,r,s,l,h,m,V,U,d=this.series,p=i[0][0],c=d[p],u=this.component.yAxis.getAxis(c.yAxisIndex||0),y={},g=0,b=t;b>g&&null!=u.getNameByIndex(g);g++){r=u.getCoordByIndex(g);for(var f=0,k=i.length;k>f;f++){a=this.component.xAxis.getAxis(d[i[f][0]].xAxisIndex||0),l=s=m=h=a.getCoord(0);for(var x=0,_=i[f].length;_>x;x++)p=i[f][x],c=d[p],V=c.data[g],U=this.getDataFromOption(V,"-"),y[p]=y[p]||[],n[p]=n[p]||{min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY,sum:0,counter:0,average:0},"-"!==U?(U>=0?(s+=x>0?a.getCoordSize(U):a.getCoord(U)-l,o=s):0>U&&(h-=x>0?a.getCoordSize(U):m-a.getCoord(U),o=h),y[p].push([o,r,g,u.getNameByIndex(g),l,r]),n[p].min>U&&(n[p].min=U,n[p].minX=o,n[p].minY=r),n[p].max0&&(this.finalPLMap[p]=this.finalPLMap[p]||[],this.finalPLMap[p].push(y[p]),y[p]=[])}s=this.component.grid.getXend();for(var L,f=0,k=i.length;k>f;f++)for(var x=0,_=i[f].length;_>x;x++)p=i[f][x],c=d[p],V=c.data[g],U=this.getDataFromOption(V,"-"),"-"==U&&this.deepQuery([V,c,this.option],"calculable")&&(L=this.deepQuery([V,c],"symbolSize"),s-=2*L+5,o=s,this.shapeList.push(this._getCalculableItem(p,g,u.getNameByIndex(g),o,r,"vertical")))}for(var W in y)y[W].length>0&&(this.finalPLMap[W]=this.finalPLMap[W]||[],this.finalPLMap[W].push(y[W]),y[W]=[]);this._calculMarkMapXY(n,i,"x"),this._buildBorkenLine(e,this.finalPLMap,u,"vertical")},_buildOther:function(e,t,i,n){for(var a,o=this.series,r={},s=0,l=i.length;l>s;s++)for(var h=0,m=i[s].length;m>h;h++){var V=i[s][h],U=o[V];a=this.component.xAxis.getAxis(U.xAxisIndex||0);var d=this.component.yAxis.getAxis(U.yAxisIndex||0),p=d.getCoord(0);r[V]=r[V]||[],n[V]=n[V]||{min0:Number.POSITIVE_INFINITY,min1:Number.POSITIVE_INFINITY,max0:Number.NEGATIVE_INFINITY,max1:Number.NEGATIVE_INFINITY,sum0:0,sum1:0,counter0:0,counter1:0,average0:0,average1:0};for(var c=0,u=U.data.length;u>c;c++){var y=U.data[c],g=this.getDataFromOption(y,"-");if(g instanceof Array){var b=a.getCoord(g[0]),f=d.getCoord(g[1]);r[V].push([b,f,c,g[0],b,p]),n[V].min0>g[0]&&(n[V].min0=g[0],n[V].minY0=f,n[V].minX0=b),n[V].max0g[1]&&(n[V].min1=g[1],n[V].minY1=f,n[V].minX1=b),n[V].max10&&(this.finalPLMap[k]=this.finalPLMap[k]||[],this.finalPLMap[k].push(r[k]),r[k]=[]);this._calculMarkMapXY(n,i,"xy"),this._buildBorkenLine(e,this.finalPLMap,a,"other")},_buildBorkenLine:function(e,t,i,n){for(var o,s="other"==n?"horizontal":n,V=this.series,U=e.length-1;U>=0;U--){var d=e[U],p=V[d],c=t[d];if(p.type===this.type&&null!=c)for(var u=this._getBbox(d,s),y=this._sIndex2ColorMap[d],g=this.query(p,"itemStyle.normal.lineStyle.width"),b=this.query(p,"itemStyle.normal.lineStyle.type"),f=this.query(p,"itemStyle.normal.lineStyle.color"),k=this.getItemStyleColor(this.query(p,"itemStyle.normal.color"),d,-1),x=null!=this.query(p,"itemStyle.normal.areaStyle"),_=this.query(p,"itemStyle.normal.areaStyle.color"),L=0,W=c.length;W>L;L++){var X=c[L],v="other"!=n&&this._isLarge(s,X);if(v)X=this._getLargePointList(s,X,p.dataFilter);else for(var w=0,K=X.length;K>w;w++)o=p.data[X[w][2]],(this.deepQuery([o,p,this.option],"calculable")||this.deepQuery([o,p],"showAllSymbol")||"categoryAxis"===i.type&&i.isMainAxis(X[w][2])&&"none"!=this.deepQuery([o,p],"symbol"))&&this.shapeList.push(this._getSymbol(d,X[w][2],X[w][3],X[w][0],X[w][1],s));var I=new a({zlevel:p.zlevel,z:p.z,style:{miterLimit:g,pointList:X,strokeColor:f||k||y,lineWidth:g,lineType:b,smooth:this._getSmooth(p.smooth),smoothConstraint:u,shadowColor:this.query(p,"itemStyle.normal.lineStyle.shadowColor"),shadowBlur:this.query(p,"itemStyle.normal.lineStyle.shadowBlur"),shadowOffsetX:this.query(p,"itemStyle.normal.lineStyle.shadowOffsetX"),shadowOffsetY:this.query(p,"itemStyle.normal.lineStyle.shadowOffsetY")},hoverable:!1,_main:!0,_seriesIndex:d,_orient:s});if(l.pack(I,V[d],d,0,L,V[d].name),this.shapeList.push(I),x){var J=new r({zlevel:p.zlevel,z:p.z,style:{miterLimit:g,pointList:h.clone(X).concat([[X[X.length-1][4],X[X.length-1][5]],[X[0][4],X[0][5]]]),brushType:"fill",smooth:this._getSmooth(p.smooth),smoothConstraint:u,color:_?_:m.alpha(y,.5)},highlightStyle:{brushType:"fill"},hoverable:!1,_main:!0,_seriesIndex:d,_orient:s});l.pack(J,V[d],d,0,L,V[d].name),this.shapeList.push(J)}}}},_getBbox:function(e,t){var i=this.component.grid.getBbox(),n=this.xMarkMap[e];return null!=n.minX0?[[Math.min(n.minX0,n.maxX0,n.minX1,n.maxX1),Math.min(n.minY0,n.maxY0,n.minY1,n.maxY1)],[Math.max(n.minX0,n.maxX0,n.minX1,n.maxX1),Math.max(n.minY0,n.maxY0,n.minY1,n.maxY1)]]:("horizontal"===t?(i[0][1]=Math.min(n.minY,n.maxY),i[1][1]=Math.max(n.minY,n.maxY)):(i[0][0]=Math.min(n.minX,n.maxX),i[1][0]=Math.max(n.minX,n.maxX)),i)},_isLarge:function(e,t){return t.length<2?!1:"horizontal"===e?Math.abs(t[0][0]-t[1][0])<.5:Math.abs(t[0][1]-t[1][1])<.5},_getLargePointList:function(e,t,i){var n;n="horizontal"===e?this.component.grid.getWidth():this.component.grid.getHeight();var a=t.length,o=[];if("function"!=typeof i)switch(i){case"min":i=function(e){return Math.max.apply(null,e)};break;case"max":i=function(e){return Math.min.apply(null,e)};break;case"average":i=function(e){for(var t=0,i=0;is;s++){var l=Math.floor(a/n*s),h=Math.min(Math.floor(a/n*(s+1)),a);if(!(l>=h)){for(var m=l;h>m;m++)r[m-l]="horizontal"===e?t[m][1]:t[m][0];r.length=h-l;for(var V=i(r),U=-1,d=1/0,m=l;h>m;m++){var p="horizontal"===e?t[m][1]:t[m][0],c=Math.abs(p-V);d>c&&(U=m,d=c)}var u=t[U].slice();"horizontal"===e?u[1]=V:u[0]=V,o.push(u)}}return o},_getSmooth:function(e){return e?.3:0},_getCalculableItem:function(e,t,i,n,a,o){var r=this.series,l=r[e].calculableHolderColor||this.ecTheme.calculableHolderColor||s.calculableHolderColor,h=this._getSymbol(e,t,i,n,a,o);return h.style.color=l,h.style.strokeColor=l,h.rotation=[0,0],h.hoverable=!1,h.draggable=!1,h.style.text=void 0,h},_getSymbol:function(e,t,i,n,a,o){var r=this.series,s=r[e],l=s.data[t],h=this.getSymbolShape(s,e,l,t,i,n,a,this._sIndex2ShapeMap[e],this._sIndex2ColorMap[e],"#fff","vertical"===o?"horizontal":"vertical");return h.zlevel=s.zlevel,h.z=s.z+1,this.deepQuery([l,s,this.option],"calculable")&&(this.setCalculable(h),h.draggable=!0),h},getMarkCoord:function(e,t){var i=this.series[e],n=this.xMarkMap[e],a=this.component.xAxis.getAxis(i.xAxisIndex),o=this.component.yAxis.getAxis(i.yAxisIndex);if(t.type&&("max"===t.type||"min"===t.type||"average"===t.type)){var r=null!=t.valueIndex?t.valueIndex:null!=n.maxX0?"1":"";return[n[t.type+"X"+r],n[t.type+"Y"+r],n[t.type+"Line"+r],n[t.type+r]]}return["string"!=typeof t.xAxis&&a.getCoordByIndex?a.getCoordByIndex(t.xAxis||0):a.getCoord(t.xAxis||0),"string"!=typeof t.yAxis&&o.getCoordByIndex?o.getCoordByIndex(t.yAxis||0):o.getCoord(t.yAxis||0)]},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()},ontooltipHover:function(e,t){for(var i,n,a=e.seriesIndex,o=e.dataIndex,r=a.length;r--;)if(i=this.finalPLMap[a[r]])for(var s=0,l=i.length;l>s;s++){n=i[s];for(var h=0,m=n.length;m>h;h++)o===n[h][2]&&t.push(this._getSymbol(a[r],n[h][2],n[h][3],n[h][0],n[h][1],"horizontal"))}},addDataAnimation:function(e,t){function i(){c--,0===c&&t&&t()}function n(e){e.style.controlPointList=null}for(var a=this.series,o={},r=0,s=e.length;s>r;r++)o[e[r][0]]=e[r];for(var l,h,m,V,U,d,p,c=0,r=this.shapeList.length-1;r>=0;r--)if(U=this.shapeList[r]._seriesIndex,o[U]&&!o[U][3]){if(this.shapeList[r]._main&&this.shapeList[r].style.pointList.length>1){if(d=this.shapeList[r].style.pointList,h=Math.abs(d[0][0]-d[1][0]),V=Math.abs(d[0][1]-d[1][1]),p="horizontal"===this.shapeList[r]._orient,o[U][2]){if("half-smooth-polygon"===this.shapeList[r].type){var u=d.length;this.shapeList[r].style.pointList[u-3]=d[u-2],this.shapeList[r].style.pointList[u-3][p?0:1]=d[u-4][p?0:1],this.shapeList[r].style.pointList[u-2]=d[u-1]}this.shapeList[r].style.pointList.pop(),p?(l=h,m=0):(l=0,m=-V)}else{if(this.shapeList[r].style.pointList.shift(),"half-smooth-polygon"===this.shapeList[r].type){var y=this.shapeList[r].style.pointList.pop();p?y[0]=d[0][0]:y[1]=d[0][1],this.shapeList[r].style.pointList.push(y)}p?(l=-h,m=0):(l=0,m=V)}this.shapeList[r].style.controlPointList=null,this.zr.modShape(this.shapeList[r])}else{if(o[U][2]&&this.shapeList[r]._dataIndex===a[U].data.length-1){this.zr.delShape(this.shapeList[r].id);continue}if(!o[U][2]&&0===this.shapeList[r]._dataIndex){this.zr.delShape(this.shapeList[r].id);continue}}this.shapeList[r].position=[0,0],c++,this.zr.animate(this.shapeList[r].id,"").when(this.query(this.option,"animationDurationUpdate"),{position:[l,m]}).during(n).done(i).start()}c||t&&t()}},o.prototype.iconLibrary.legendLineIcon=i,h.inherits(t,n),e("../chart").define("line",t),t}),i("echarts/util/shape/HalfSmoothPolygon",["require","zrender/shape/Base","zrender/shape/util/smoothBezier","zrender/tool/util","zrender/shape/Polygon"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/shape/util/smoothBezier"),a=e("zrender/tool/util");return t.prototype={type:"half-smooth-polygon",buildPath:function(t,i){var a=i.pointList;if(!(a.length<2))if(i.smooth){var o=n(a.slice(0,-2),i.smooth,!1,i.smoothConstraint);t.moveTo(a[0][0],a[0][1]);for(var r,s,l,h=a.length,m=0;h-3>m;m++)r=o[2*m],s=o[2*m+1],l=a[m+1],t.bezierCurveTo(r[0],r[1],s[0],s[1],l[0],l[1]);t.lineTo(a[h-2][0],a[h-2][1]),t.lineTo(a[h-1][0],a[h-1][1]),t.lineTo(a[0][0],a[0][1])}else e("zrender/shape/Polygon").prototype.buildPath(t,i)}},a.inherits(t,i),t}),i("echarts/chart/bar",["require","./base","zrender/shape/Rectangle","../component/axis","../component/grid","../component/dataZoom","../config","../util/ecData","zrender/tool/util","zrender/tool/color","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Rectangle");e("../component/axis"),e("../component/grid"),e("../component/dataZoom");var a=e("../config");a.bar={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,barMinHeight:0,barGap:"30%",barCategoryGap:"20%",itemStyle:{normal:{barBorderColor:"#fff",barBorderRadius:0,barBorderWidth:0,label:{show:!1}},emphasis:{barBorderColor:"#fff",barBorderRadius:0,barBorderWidth:0,label:{show:!1}}}};var o=e("../util/ecData"),r=e("zrender/tool/util"),s=e("zrender/tool/color");return t.prototype={type:a.CHART_TYPE_BAR,_buildShape:function(){this._buildPosition()},_buildNormal:function(e,t,i,o,r){for(var s,l,h,m,V,U,d,p,c,u,y,g,b=this.series,f=i[0][0],k=b[f],x="horizontal"==r,_=this.component.xAxis,L=this.component.yAxis,W=x?_.getAxis(k.xAxisIndex):L.getAxis(k.yAxisIndex),X=this._mapSize(W,i),v=X.gap,w=X.barGap,K=X.barWidthMap,I=X.barMaxWidthMap,J=X.barWidth,C=X.barMinHeightMap,S=X.interval,E=this.deepQuery([this.ecTheme,a],"island.r"),F=0,T=t;T>F&&null!=W.getNameByIndex(F);F++){x?m=W.getCoordByIndex(F)-v/2:V=W.getCoordByIndex(F)+v/2;for(var z=0,A=i.length;A>z;z++){var M=b[i[z][0]].yAxisIndex||0,O=b[i[z][0]].xAxisIndex||0;s=x?L.getAxis(M):_.getAxis(O),d=U=c=p=s.getCoord(0);for(var P=0,D=i[z].length;D>P;P++)f=i[z][P],k=b[f],y=k.data[F],g=this.getDataFromOption(y,"-"),o[f]=o[f]||{min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY,sum:0,counter:0,average:0},h=Math.min(I[f]||Number.MAX_VALUE,K[f]||J),"-"!==g&&(g>0?(l=P>0?s.getCoordSize(g):x?d-s.getCoord(g):s.getCoord(g)-d,1===D&&C[f]>l&&(l=C[f]),x?(U-=l,V=U):(m=U,U+=l)):0>g?(l=P>0?s.getCoordSize(g):x?s.getCoord(g)-c:c-s.getCoord(g),1===D&&C[f]>l&&(l=C[f]),x?(V=p,p+=l):(p-=l,m=p)):(l=0,x?(U-=l,V=U):(m=U,U+=l)),o[f][F]=x?m+h/2:V-h/2,o[f].min>g&&(o[f].min=g,x?(o[f].minY=V,o[f].minX=o[f][F]):(o[f].minX=m+l,o[f].minY=o[f][F])),o[f].maxP;P++)f=i[z][P],k=b[f],y=k.data[F],g=this.getDataFromOption(y,"-"),h=Math.min(I[f]||Number.MAX_VALUE,K[f]||J),"-"==g&&this.deepQuery([y,k,this.option],"calculable")&&(x?(U-=E,V=U):(m=U,U+=E),u=this._getBarItem(f,F,W.getNameByIndex(F),m,V-(x?0:h),x?h:E,x?E:h,x?"vertical":"horizontal"),u.hoverable=!1,u.draggable=!1,u.style.lineWidth=1,u.style.brushType="stroke",u.style.strokeColor=k.calculableHolderColor||this.ecTheme.calculableHolderColor||a.calculableHolderColor,this.shapeList.push(new n(u)));x?m+=h+w:V-=h+w}}this._calculMarkMapXY(o,i,x?"y":"x")},_buildHorizontal:function(e,t,i,n){return this._buildNormal(e,t,i,n,"horizontal")},_buildVertical:function(e,t,i,n){return this._buildNormal(e,t,i,n,"vertical")},_buildOther:function(e,t,i,a){for(var o=this.series,r=0,s=i.length;s>r;r++)for(var l=0,h=i[r].length;h>l;l++){var m=i[r][l],V=o[m],U=V.xAxisIndex||0,d=this.component.xAxis.getAxis(U),p=d.getCoord(0),c=V.yAxisIndex||0,u=this.component.yAxis.getAxis(c),y=u.getCoord(0);a[m]=a[m]||{min0:Number.POSITIVE_INFINITY,min1:Number.POSITIVE_INFINITY,max0:Number.NEGATIVE_INFINITY,max1:Number.NEGATIVE_INFINITY,sum0:0,sum1:0,counter0:0,counter1:0,average0:0,average1:0};for(var g=0,b=V.data.length;b>g;g++){var f=V.data[g],k=this.getDataFromOption(f,"-");if(k instanceof Array){var x,_,L=d.getCoord(k[0]),W=u.getCoord(k[1]),X=[f,V],v=this.deepQuery(X,"barWidth")||10,w=this.deepQuery(X,"barHeight");null!=w?(x="horizontal",k[0]>0?(v=L-p,L-=v):v=k[0]<0?p-L:0,_=this._getBarItem(m,g,k[0],L,W-w/2,v,w,x)):(x="vertical",k[1]>0?w=y-W:k[1]<0?(w=W-y,W-=w):w=0,_=this._getBarItem(m,g,k[0],L-v/2,W,v,w,x)),this.shapeList.push(new n(_)),L=d.getCoord(k[0]),W=u.getCoord(k[1]),a[m].min0>k[0]&&(a[m].min0=k[0],a[m].minY0=W,a[m].minX0=L),a[m].max0k[1]&&(a[m].min1=k[1],a[m].minY1=W,a[m].minX1=L),a[m].max1=a&&(d=Math.floor(t.length/n),a=1);else if(n="string"==typeof U&&U.match(/%$/)?(e.getGap()*(100-parseFloat(U))/100).toFixed(2)-0:e.getGap()-U,"string"==typeof V&&V.match(/%$/)?(V=parseFloat(V)/100,a=+((n-m)/((t.length-1)*V+t.length-h)).toFixed(2),V=a*V):(V=parseFloat(V),a=+((n-m-V*(t.length-1))/(t.length-h)).toFixed(2)),0>=a)return this._mapSize(e,t,!0)}else if(n=h>1?"string"==typeof U&&U.match(/%$/)?+(e.getGap()*(100-parseFloat(U))/100).toFixed(2):e.getGap()-U:m,a=0,V=h>1?+((n-m)/(h-1)).toFixed(2):0,0>V)return this._mapSize(e,t,!0);return this._recheckBarMaxWidth(t,r,s,l,n,a,V,d)},_findSpecialBarSzie:function(e,t){for(var i,n,a,o,r=this.series,s={},l={},h={},m=0,V=0,U=0,d=e.length;d>U;U++)for(var p={barWidth:!1,barMaxWidth:!1},c=0,u=e[U].length;u>c;c++){var y=e[U][c],g=r[y];if(!t){if(p.barWidth)s[y]=i;else if(i=this.query(g,"barWidth"),null!=i){s[y]=i,V+=i,m++,p.barWidth=!0;for(var b=0,f=c;f>b;b++){var k=e[U][b];s[k]=i}}if(p.barMaxWidth)l[y]=n;else if(n=this.query(g,"barMaxWidth"),null!=n){l[y]=n,p.barMaxWidth=!0;for(var b=0,f=c;f>b;b++){var k=e[U][b];l[k]=n}}}h[y]=this.query(g,"barMinHeight"),a=null!=a?a:this.query(g,"barGap"),o=null!=o?o:this.query(g,"barCategoryGap")}return{barWidthMap:s,barMaxWidthMap:l,barMinHeightMap:h,sBarWidth:i,sBarMaxWidth:n,sBarWidthCounter:m,sBarWidthTotal:V,barGap:a,barCategoryGap:o}},_recheckBarMaxWidth:function(e,t,i,n,a,o,r,s){for(var l=0,h=e.length;h>l;l++){var m=e[l][0];i[m]&&i[m]0&&b.height>g&&b.width>g?(b.y+=g/2,b.height-=g,b.x+=g/2,b.width-=g):b.brushType="fill",m.highlightStyle.textColor=m.highlightStyle.color,m=this.addLabel(m,U,d,i,h);for(var f=[b,m.highlightStyle],k=0,x=f.length;x>k;k++){var _=f[k].textPosition;if("insideLeft"===_||"insideRight"===_||"insideTop"===_||"insideBottom"===_){var L=5;switch(_){case"insideLeft":f[k].textX=b.x+L,f[k].textY=b.y+b.height/2,f[k].textAlign="left",f[k].textBaseline="middle";break;case"insideRight":f[k].textX=b.x+b.width-L,f[k].textY=b.y+b.height/2,f[k].textAlign="right",f[k].textBaseline="middle";break;case"insideTop":f[k].textX=b.x+b.width/2,f[k].textY=b.y+L/2,f[k].textAlign="center",f[k].textBaseline="top";break;case"insideBottom":f[k].textX=b.x+b.width/2,f[k].textY=b.y+b.height-L/2,f[k].textAlign="center",f[k].textBaseline="bottom"}f[k].textPosition="specific",f[k].textColor=f[k].textColor||"#fff"}}return this.deepQuery([d,U,this.option],"calculable")&&(this.setCalculable(m),m.draggable=!0),o.pack(m,V[e],e,V[e].data[t],t,i),m},getMarkCoord:function(e,t){var i,n,a=this.series[e],o=this.xMarkMap[e],r=this.component.xAxis.getAxis(a.xAxisIndex),s=this.component.yAxis.getAxis(a.yAxisIndex);if(!t.type||"max"!==t.type&&"min"!==t.type&&"average"!==t.type)if(o.isHorizontal){i="string"==typeof t.xAxis&&r.getIndexByName?r.getIndexByName(t.xAxis):t.xAxis||0;var l=o[i];l=null!=l?l:"string"!=typeof t.xAxis&&r.getCoordByIndex?r.getCoordByIndex(t.xAxis||0):r.getCoord(t.xAxis||0),n=[l,s.getCoord(t.yAxis||0)]}else{i="string"==typeof t.yAxis&&s.getIndexByName?s.getIndexByName(t.yAxis):t.yAxis||0;var h=o[i];h=null!=h?h:"string"!=typeof t.yAxis&&s.getCoordByIndex?s.getCoordByIndex(t.yAxis||0):s.getCoord(t.yAxis||0),n=[r.getCoord(t.xAxis||0),h]}else{var m=null!=t.valueIndex?t.valueIndex:null!=o.maxX0?"1":"";n=[o[t.type+"X"+m],o[t.type+"Y"+m],o[t.type+"Line"+m],o[t.type+m]]}return n},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()},addDataAnimation:function(e,t){function i(){c--,0===c&&t&&t()}for(var n=this.series,a={},r=0,s=e.length;s>r;r++)a[e[r][0]]=e[r];for(var l,h,m,V,U,d,p,c=0,r=this.shapeList.length-1;r>=0;r--)if(d=o.get(this.shapeList[r],"seriesIndex"),a[d]&&!a[d][3]&&"rectangle"===this.shapeList[r].type){if(p=o.get(this.shapeList[r],"dataIndex"),U=n[d],a[d][2]&&p===U.data.length-1){this.zr.delShape(this.shapeList[r].id);continue}if(!a[d][2]&&0===p){this.zr.delShape(this.shapeList[r].id);continue}"horizontal"===this.shapeList[r]._orient?(V=this.component.yAxis.getAxis(U.yAxisIndex||0).getGap(),m=a[d][2]?-V:V,l=0):(h=this.component.xAxis.getAxis(U.xAxisIndex||0).getGap(),l=a[d][2]?h:-h,m=0),this.shapeList[r].position=[0,0],c++,this.zr.animate(this.shapeList[r].id,"").when(this.query(this.option,"animationDurationUpdate"),{position:[l,m]}).done(i).start()}c||t&&t()}},r.inherits(t,i),e("../chart").define("bar",t),t}),i("echarts/chart/scatter",["require","./base","../util/shape/Symbol","../component/axis","../component/grid","../component/dataZoom","../component/dataRange","../config","zrender/tool/util","zrender/tool/color","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("../util/shape/Symbol");e("../component/axis"),e("../component/grid"),e("../component/dataZoom"),e("../component/dataRange");var a=e("../config");a.scatter={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,symbolSize:4,large:!1,largeThreshold:2e3,itemStyle:{normal:{label:{show:!1}},emphasis:{label:{show:!1}}}};var o=e("zrender/tool/util"),r=e("zrender/tool/color");return t.prototype={type:a.CHART_TYPE_SCATTER,_buildShape:function(){var e=this.series;this._sIndex2ColorMap={},this._symbol=this.option.symbolList,this._sIndex2ShapeMap={},this.selectedMap={},this.xMarkMap={};for(var t,i,n,o,s=this.component.legend,l=[],h=0,m=e.length;m>h;h++)if(t=e[h],i=t.name,t.type===a.CHART_TYPE_SCATTER){if(e[h]=this.reformOption(e[h]),this.legendHoverLink=e[h].legendHoverLink||this.legendHoverLink,this._sIndex2ShapeMap[h]=this.query(t,"symbol")||this._symbol[h%this._symbol.length],s){if(this.selectedMap[i]=s.isSelected(i),this._sIndex2ColorMap[h]=r.alpha(s.getColor(i),.5),n=s.getItemShape(i)){var o=this._sIndex2ShapeMap[h];n.style.brushType=o.match("empty")?"stroke":"both",o=o.replace("empty","").toLowerCase(),o.match("rectangle")&&(n.style.x+=Math.round((n.style.width-n.style.height)/2),n.style.width=n.style.height),o.match("star")&&(n.style.n=o.replace("star","")-0||5,o="star"),o.match("image")&&(n.style.image=o.replace(new RegExp("^image:\\/\\/"),""),n.style.x+=Math.round((n.style.width-n.style.height)/2),n.style.width=n.style.height,o="image"),n.style.iconType=o,s.setItemShape(i,n)}}else this.selectedMap[i]=!0,this._sIndex2ColorMap[h]=r.alpha(this.zr.getColor(h),.5);this.selectedMap[i]&&l.push(h)}this._buildSeries(l),this.addShapeList()},_buildSeries:function(e){if(0!==e.length){for(var t,i,n,a,o,r,s,l,h=this.series,m={},V=0,U=e.length;U>V;V++)if(t=e[V],i=h[t],0!==i.data.length){o=this.component.xAxis.getAxis(i.xAxisIndex||0),r=this.component.yAxis.getAxis(i.yAxisIndex||0),m[t]=[];for(var d=0,p=i.data.length;p>d;d++)n=i.data[d],a=this.getDataFromOption(n,"-"),"-"===a||a.length<2||(s=o.getCoord(a[0]),l=r.getCoord(a[1]),m[t].push([s,l,d,n.name||""]));this.xMarkMap[t]=this._markMap(o,r,i.data,m[t]),this.buildMark(t)}this._buildPointList(m)}},_markMap:function(e,t,i,n){for(var a,o={min0:Number.POSITIVE_INFINITY,max0:Number.NEGATIVE_INFINITY,sum0:0,counter0:0,average0:0,min1:Number.POSITIVE_INFINITY,max1:Number.NEGATIVE_INFINITY,sum1:0,counter1:0,average1:0},r=0,s=n.length;s>r;r++)a=i[n[r][2]].value||i[n[r][2]],o.min0>a[0]&&(o.min0=a[0],o.minY0=n[r][1],o.minX0=n[r][0]),o.max0a[1]&&(o.min1=a[1],o.minY1=n[r][1],o.minX1=n[r][0]),o.max1t.largeThreshold)this.shapeList.push(this._getLargeSymbol(t,i,this.getItemStyleColor(this.query(t,"itemStyle.normal.color"),r,-1)||this._sIndex2ColorMap[r]));else for(var s=0,l=i.length;l>s;s++)n=i[s],a=this._getSymbol(r,n[2],n[3],n[0],n[1]),a&&this.shapeList.push(a)},_getSymbol:function(e,t,i,n,a){var o,r=this.series,s=r[e],l=s.data[t],h=this.component.dataRange;if(h){if(o=isNaN(l[2])?this._sIndex2ColorMap[e]:h.getColor(l[2]),!o)return null}else o=this._sIndex2ColorMap[e];var m=this.getSymbolShape(s,e,l,t,i,n,a,this._sIndex2ShapeMap[e],o,"rgba(0,0,0,0)","vertical");return m.zlevel=s.zlevel,m.z=s.z,m._main=!0,m},_getLargeSymbol:function(e,t,i){return new n({zlevel:e.zlevel,z:e.z,_main:!0,hoverable:!1,style:{pointList:t,color:i,strokeColor:i},highlightStyle:{pointList:[]}})},getMarkCoord:function(e,t){var i,n=this.series[e],a=this.xMarkMap[e],o=this.component.xAxis.getAxis(n.xAxisIndex),r=this.component.yAxis.getAxis(n.yAxisIndex);if(!t.type||"max"!==t.type&&"min"!==t.type&&"average"!==t.type)i=["string"!=typeof t.xAxis&&o.getCoordByIndex?o.getCoordByIndex(t.xAxis||0):o.getCoord(t.xAxis||0),"string"!=typeof t.yAxis&&r.getCoordByIndex?r.getCoordByIndex(t.yAxis||0):r.getCoord(t.yAxis||0)];else{var s=null!=t.valueIndex?t.valueIndex:1;i=[a[t.type+"X"+s],a[t.type+"Y"+s],a[t.type+"Line"+s],a[t.type+s]]}return i},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()},ondataRange:function(e,t){this.component.dataRange&&(this.refresh(),t.needRefresh=!0)}},o.inherits(t,i),e("../chart").define("scatter",t),t}),i("echarts/component/dataRange",["require","./base","zrender/shape/Text","zrender/shape/Rectangle","../util/shape/HandlePolygon","../config","zrender/tool/util","zrender/tool/event","zrender/tool/area","zrender/tool/color","../component"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o);var s=this;s._ondrift=function(e,t){return s.__ondrift(this,e,t)},s._ondragend=function(){return s.__ondragend()},s._dataRangeSelected=function(e){return s.__dataRangeSelected(e)},s._dispatchHoverLink=function(e){return s.__dispatchHoverLink(e)},s._onhoverlink=function(e){return s.__onhoverlink(e); - -},this._selectedMap={},this._range={},this.refresh(a),t.bind(r.EVENT.HOVER,this._onhoverlink)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Rectangle"),o=e("../util/shape/HandlePolygon"),r=e("../config");r.dataRange={zlevel:0,z:4,show:!0,orient:"vertical",x:"left",y:"bottom",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,itemWidth:20,itemHeight:14,precision:0,splitNumber:5,splitList:null,calculable:!1,selectedMode:!0,hoverLink:!0,realtime:!0,color:["#006edd","#e0ffff"],textStyle:{color:"#333"}};var s=e("zrender/tool/util"),l=e("zrender/tool/event"),h=e("zrender/tool/area"),m=e("zrender/tool/color");return t.prototype={type:r.COMPONENT_TYPE_DATARANGE,_textGap:10,_buildShape:function(){if(this._itemGroupLocation=this._getItemGroupLocation(),this._buildBackground(),this._isContinuity()?this._buildGradient():this._buildItem(),this.dataRangeOption.show)for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e]);this._syncShapeFromRange()},_buildItem:function(){var e,t,i,o,r=this._valueTextList,s=r.length,l=this.getFont(this.dataRangeOption.textStyle),m=this._itemGroupLocation.x,V=this._itemGroupLocation.y,U=this.dataRangeOption.itemWidth,d=this.dataRangeOption.itemHeight,p=this.dataRangeOption.itemGap,c=h.getTextHeight("国",l);"vertical"==this.dataRangeOption.orient&&"right"==this.dataRangeOption.x&&(m=this._itemGroupLocation.x+this._itemGroupLocation.width-U);var u=!0;this.dataRangeOption.text&&(u=!1,this.dataRangeOption.text[0]&&(i=this._getTextShape(m,V,this.dataRangeOption.text[0]),"horizontal"==this.dataRangeOption.orient?m+=h.getTextWidth(this.dataRangeOption.text[0],l)+this._textGap:(V+=c+this._textGap,i.style.y+=c/2+this._textGap,i.style.textBaseline="bottom"),this.shapeList.push(new n(i))));for(var y=0;s>y;y++)e=r[y],o=this.getColorByIndex(y),t=this._getItemShape(m,V,U,d,this._selectedMap[y]?o:"#ccc"),t._idx=y,t.onmousemove=this._dispatchHoverLink,this.dataRangeOption.selectedMode&&(t.clickable=!0,t.onclick=this._dataRangeSelected),this.shapeList.push(new a(t)),u&&(i={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:m+U+5,y:V,color:this._selectedMap[y]?this.dataRangeOption.textStyle.color:"#ccc",text:r[y],textFont:l,textBaseline:"top"},highlightStyle:{brushType:"fill"}},"vertical"==this.dataRangeOption.orient&&"right"==this.dataRangeOption.x&&(i.style.x-=U+10,i.style.textAlign="right"),i._idx=y,i.onmousemove=this._dispatchHoverLink,this.dataRangeOption.selectedMode&&(i.clickable=!0,i.onclick=this._dataRangeSelected),this.shapeList.push(new n(i))),"horizontal"==this.dataRangeOption.orient?m+=U+(u?5:0)+(u?h.getTextWidth(e,l):0)+p:V+=d+p;!u&&this.dataRangeOption.text[1]&&("horizontal"==this.dataRangeOption.orient?m=m-p+this._textGap:V=V-p+this._textGap,i=this._getTextShape(m,V,this.dataRangeOption.text[1]),"horizontal"!=this.dataRangeOption.orient&&(i.style.y-=5,i.style.textBaseline="top"),this.shapeList.push(new n(i)))},_buildGradient:function(){var t,i,o=this.getFont(this.dataRangeOption.textStyle),r=this._itemGroupLocation.x,s=this._itemGroupLocation.y,l=this.dataRangeOption.itemWidth,m=this.dataRangeOption.itemHeight,V=h.getTextHeight("国",o),U=10,d=!0;this.dataRangeOption.text&&(d=!1,this.dataRangeOption.text[0]&&(i=this._getTextShape(r,s,this.dataRangeOption.text[0]),"horizontal"==this.dataRangeOption.orient?r+=h.getTextWidth(this.dataRangeOption.text[0],o)+this._textGap:(s+=V+this._textGap,i.style.y+=V/2+this._textGap,i.style.textBaseline="bottom"),this.shapeList.push(new n(i))));for(var p=e("zrender/tool/color"),c=1/(this.dataRangeOption.color.length-1),u=[],y=0,g=this.dataRangeOption.color.length;g>y;y++)u.push([y*c,this.dataRangeOption.color[y]]);"horizontal"==this.dataRangeOption.orient?(t={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:r,y:s,width:l*U,height:m,color:p.getLinearGradient(r,s,r+l*U,s,u)},hoverable:!1},r+=l*U+this._textGap):(t={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:r,y:s,width:l,height:m*U,color:p.getLinearGradient(r,s,r,s+m*U,u)},hoverable:!1},s+=m*U+this._textGap),this.shapeList.push(new a(t)),this._calculableLocation=t.style,this.dataRangeOption.calculable&&(this._buildFiller(),this._bulidMask(),this._bulidHandle()),this._buildIndicator(),!d&&this.dataRangeOption.text[1]&&(i=this._getTextShape(r,s,this.dataRangeOption.text[1]),this.shapeList.push(new n(i)))},_buildIndicator:function(){var e,t,i=this._calculableLocation.x,n=this._calculableLocation.y,a=this._calculableLocation.width,r=this._calculableLocation.height,s=5;"horizontal"==this.dataRangeOption.orient?"bottom"!=this.dataRangeOption.y?(e=[[i,n+r],[i-s,n+r+s],[i+s,n+r+s]],t="bottom"):(e=[[i,n],[i-s,n-s],[i+s,n-s]],t="top"):"right"!=this.dataRangeOption.x?(e=[[i+a,n],[i+a+s,n-s],[i+a+s,n+s]],t="right"):(e=[[i,n],[i-s,n-s],[i-s,n+s]],t="left"),this._indicatorShape={style:{pointList:e,color:"#fff",__rect:{x:Math.min(e[0][0],e[1][0]),y:Math.min(e[0][1],e[1][1]),width:s*("horizontal"==this.dataRangeOption.orient?2:1),height:s*("horizontal"==this.dataRangeOption.orient?1:2)}},highlightStyle:{brushType:"fill",textPosition:t,textColor:this.dataRangeOption.textStyle.color},hoverable:!1},this._indicatorShape=new o(this._indicatorShape)},_buildFiller:function(){this._fillerShape={zlevel:this.getZlevelBase(),z:this.getZBase()+1,style:{x:this._calculableLocation.x,y:this._calculableLocation.y,width:this._calculableLocation.width,height:this._calculableLocation.height,color:"rgba(255,255,255,0)"},highlightStyle:{strokeColor:"rgba(255,255,255,0.5)",lineWidth:1},draggable:!0,ondrift:this._ondrift,ondragend:this._ondragend,onmousemove:this._dispatchHoverLink,_type:"filler"},this._fillerShape=new a(this._fillerShape),this.shapeList.push(this._fillerShape)},_bulidHandle:function(){var e,t,i,n,a,r,s,l,m=this._calculableLocation.x,V=this._calculableLocation.y,U=this._calculableLocation.width,d=this._calculableLocation.height,p=this.getFont(this.dataRangeOption.textStyle),c=h.getTextHeight("国",p),u=Math.max(h.getTextWidth(this._textFormat(this.dataRangeOption.max),p),h.getTextWidth(this._textFormat(this.dataRangeOption.min),p))+2;"horizontal"==this.dataRangeOption.orient?"bottom"!=this.dataRangeOption.y?(e=[[m,V],[m,V+d+c],[m-c,V+d+c],[m-1,V+d],[m-1,V]],t=m-u/2-c,i=V+d+c/2+2,n={x:m-u-c,y:V+d,width:u+c,height:c},a=[[m+U,V],[m+U,V+d+c],[m+U+c,V+d+c],[m+U+1,V+d],[m+U+1,V]],r=m+U+u/2+c,s=i,l={x:m+U,y:V+d,width:u+c,height:c}):(e=[[m,V+d],[m,V-c],[m-c,V-c],[m-1,V],[m-1,V+d]],t=m-u/2-c,i=V-c/2-2,n={x:m-u-c,y:V-c,width:u+c,height:c},a=[[m+U,V+d],[m+U,V-c],[m+U+c,V-c],[m+U+1,V],[m+U+1,V+d]],r=m+U+u/2+c,s=i,l={x:m+U,y:V-c,width:u+c,height:c}):(u+=c,"right"!=this.dataRangeOption.x?(e=[[m,V],[m+U+c,V],[m+U+c,V-c],[m+U,V-1],[m,V-1]],t=m+U+u/2+c/2,i=V-c/2,n={x:m+U,y:V-c,width:u+c,height:c},a=[[m,V+d],[m+U+c,V+d],[m+U+c,V+c+d],[m+U,V+1+d],[m,V+d+1]],r=t,s=V+d+c/2,l={x:m+U,y:V+d,width:u+c,height:c}):(e=[[m+U,V],[m-c,V],[m-c,V-c],[m,V-1],[m+U,V-1]],t=m-u/2-c/2,i=V-c/2,n={x:m-u-c,y:V-c,width:u+c,height:c},a=[[m+U,V+d],[m-c,V+d],[m-c,V+c+d],[m,V+1+d],[m+U,V+d+1]],r=t,s=V+d+c/2,l={x:m-u-c,y:V+d,width:u+c,height:c})),this._startShape={style:{pointList:e,text:this._textFormat(this.dataRangeOption.max),textX:t,textY:i,textFont:p,color:this.getColor(this.dataRangeOption.max),rect:n,x:e[0][0],y:e[0][1],_x:e[0][0],_y:e[0][1]}},this._startShape.highlightStyle={strokeColor:this._startShape.style.color,lineWidth:1},this._endShape={style:{pointList:a,text:this._textFormat(this.dataRangeOption.min),textX:r,textY:s,textFont:p,color:this.getColor(this.dataRangeOption.min),rect:l,x:a[0][0],y:a[0][1],_x:a[0][0],_y:a[0][1]}},this._endShape.highlightStyle={strokeColor:this._endShape.style.color,lineWidth:1},this._startShape.zlevel=this._endShape.zlevel=this.getZlevelBase(),this._startShape.z=this._endShape.z=this.getZBase()+1,this._startShape.draggable=this._endShape.draggable=!0,this._startShape.ondrift=this._endShape.ondrift=this._ondrift,this._startShape.ondragend=this._endShape.ondragend=this._ondragend,this._startShape.style.textColor=this._endShape.style.textColor=this.dataRangeOption.textStyle.color,this._startShape.style.textAlign=this._endShape.style.textAlign="center",this._startShape.style.textPosition=this._endShape.style.textPosition="specific",this._startShape.style.textBaseline=this._endShape.style.textBaseline="middle",this._startShape.style.width=this._endShape.style.width=0,this._startShape.style.height=this._endShape.style.height=0,this._startShape.style.textPosition=this._endShape.style.textPosition="specific",this._startShape=new o(this._startShape),this._endShape=new o(this._endShape),this.shapeList.push(this._startShape),this.shapeList.push(this._endShape)},_bulidMask:function(){var e=this._calculableLocation.x,t=this._calculableLocation.y,i=this._calculableLocation.width,n=this._calculableLocation.height;this._startMask={zlevel:this.getZlevelBase(),z:this.getZBase()+1,style:{x:e,y:t,width:"horizontal"==this.dataRangeOption.orient?0:i,height:"horizontal"==this.dataRangeOption.orient?n:0,color:"#ccc"},hoverable:!1},this._endMask={zlevel:this.getZlevelBase(),z:this.getZBase()+1,style:{x:"horizontal"==this.dataRangeOption.orient?e+i:e,y:"horizontal"==this.dataRangeOption.orient?t:t+n,width:"horizontal"==this.dataRangeOption.orient?0:i,height:"horizontal"==this.dataRangeOption.orient?n:0,color:"#ccc"},hoverable:!1},this._startMask=new a(this._startMask),this._endMask=new a(this._endMask),this.shapeList.push(this._startMask),this.shapeList.push(this._endMask)},_buildBackground:function(){var e=this.reformCssArray(this.dataRangeOption.padding);this.shapeList.push(new a({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._itemGroupLocation.x-e[3],y:this._itemGroupLocation.y-e[0],width:this._itemGroupLocation.width+e[3]+e[1],height:this._itemGroupLocation.height+e[0]+e[2],brushType:0===this.dataRangeOption.borderWidth?"fill":"both",color:this.dataRangeOption.backgroundColor,strokeColor:this.dataRangeOption.borderColor,lineWidth:this.dataRangeOption.borderWidth}}))},_getItemGroupLocation:function(){var e=this._valueTextList,t=e.length,i=this.dataRangeOption.itemGap,n=this.dataRangeOption.itemWidth,a=this.dataRangeOption.itemHeight,o=0,r=0,s=this.getFont(this.dataRangeOption.textStyle),l=h.getTextHeight("国",s),m=10;if("horizontal"==this.dataRangeOption.orient){if(this.dataRangeOption.text||this._isContinuity())o=(this._isContinuity()?n*m+i:t*(n+i))+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[0]?h.getTextWidth(this.dataRangeOption.text[0],s)+this._textGap:0)+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[1]?h.getTextWidth(this.dataRangeOption.text[1],s)+this._textGap:0);else{n+=5;for(var V=0;t>V;V++)o+=n+h.getTextWidth(e[V],s)+i}o-=i,r=Math.max(l,a)}else{var U;if(this.dataRangeOption.text||this._isContinuity())r=(this._isContinuity()?a*m+i:t*(a+i))+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[0]?this._textGap+l:0)+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[1]?this._textGap+l:0),U=Math.max(h.getTextWidth(this.dataRangeOption.text&&this.dataRangeOption.text[0]||"",s),h.getTextWidth(this.dataRangeOption.text&&this.dataRangeOption.text[1]||"",s)),o=Math.max(n,U);else{r=(a+i)*t,n+=5,U=0;for(var V=0;t>V;V++)U=Math.max(U,h.getTextWidth(e[V],s));o=n+U}r-=i}var d,p=this.reformCssArray(this.dataRangeOption.padding),c=this.zr.getWidth();switch(this.dataRangeOption.x){case"center":d=Math.floor((c-o)/2);break;case"left":d=p[3]+this.dataRangeOption.borderWidth;break;case"right":d=c-o-p[1]-this.dataRangeOption.borderWidth;break;default:d=this.parsePercent(this.dataRangeOption.x,c),d=isNaN(d)?0:d}var u,y=this.zr.getHeight();switch(this.dataRangeOption.y){case"top":u=p[0]+this.dataRangeOption.borderWidth;break;case"bottom":u=y-r-p[2]-this.dataRangeOption.borderWidth;break;case"center":u=Math.floor((y-r)/2);break;default:u=this.parsePercent(this.dataRangeOption.y,y),u=isNaN(u)?0:u}if(this.dataRangeOption.calculable){var g=Math.max(h.getTextWidth(this.dataRangeOption.max,s),h.getTextWidth(this.dataRangeOption.min,s))+l;"horizontal"==this.dataRangeOption.orient?(g>d&&(d=g),d+o+g>c&&(d-=g)):(l>u&&(u=l),u+r+l>y&&(u-=l))}return{x:d,y:u,width:o,height:r}},_getTextShape:function(e,t,i){return{zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:"horizontal"==this.dataRangeOption.orient?e:this._itemGroupLocation.x+this._itemGroupLocation.width/2,y:"horizontal"==this.dataRangeOption.orient?this._itemGroupLocation.y+this._itemGroupLocation.height/2:t,color:this.dataRangeOption.textStyle.color,text:i,textFont:this.getFont(this.dataRangeOption.textStyle),textBaseline:"horizontal"==this.dataRangeOption.orient?"middle":"top",textAlign:"horizontal"==this.dataRangeOption.orient?"left":"center"},hoverable:!1}},_getItemShape:function(e,t,i,n,a){return{zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:e,y:t+1,width:i,height:n-2,color:a},highlightStyle:{strokeColor:a,lineWidth:1}}},__ondrift:function(e,t,i){var n=this._calculableLocation.x,a=this._calculableLocation.y,o=this._calculableLocation.width,r=this._calculableLocation.height;return"horizontal"==this.dataRangeOption.orient?e.style.x+t<=n?e.style.x=n:e.style.x+t+e.style.width>=n+o?e.style.x=n+o-e.style.width:e.style.x+=t:e.style.y+i<=a?e.style.y=a:e.style.y+i+e.style.height>=a+r?e.style.y=a+r-e.style.height:e.style.y+=i,"filler"==e._type?this._syncHandleShape():this._syncFillerShape(e),this.dataRangeOption.realtime&&this._dispatchDataRange(),!0},__ondragend:function(){this.isDragend=!0},ondragend:function(e,t){this.isDragend&&e.target&&(t.dragOut=!0,t.dragIn=!0,this.dataRangeOption.realtime||this._dispatchDataRange(),t.needRefresh=!1,this.isDragend=!1)},_syncShapeFromRange:function(){var e=this.dataRangeOption.range||{},t=e.start,i=e.end;if(t>i&&(t=[i,i=t][0]),this._range.end=null!=t?t:null!=this._range.end?this._range.end:0,this._range.start=null!=i?i:null!=this._range.start?this._range.start:100,100!=this._range.start||0!==this._range.end){if("horizontal"==this.dataRangeOption.orient){var n=this._fillerShape.style.width;this._fillerShape.style.x+=n*(100-this._range.start)/100,this._fillerShape.style.width=n*(this._range.start-this._range.end)/100}else{var a=this._fillerShape.style.height;this._fillerShape.style.y+=a*(100-this._range.start)/100,this._fillerShape.style.height=a*(this._range.start-this._range.end)/100}this.zr.modShape(this._fillerShape.id),this._syncHandleShape()}},_syncHandleShape:function(){var e=this._calculableLocation.x,t=this._calculableLocation.y,i=this._calculableLocation.width,n=this._calculableLocation.height;"horizontal"==this.dataRangeOption.orient?(this._startShape.style.x=this._fillerShape.style.x,this._startMask.style.width=this._startShape.style.x-e,this._endShape.style.x=this._fillerShape.style.x+this._fillerShape.style.width,this._endMask.style.x=this._endShape.style.x,this._endMask.style.width=e+i-this._endShape.style.x,this._range.start=Math.ceil(100-(this._startShape.style.x-e)/i*100),this._range.end=Math.floor(100-(this._endShape.style.x-e)/i*100)):(this._startShape.style.y=this._fillerShape.style.y,this._startMask.style.height=this._startShape.style.y-t,this._endShape.style.y=this._fillerShape.style.y+this._fillerShape.style.height,this._endMask.style.y=this._endShape.style.y,this._endMask.style.height=t+n-this._endShape.style.y,this._range.start=Math.ceil(100-(this._startShape.style.y-t)/n*100),this._range.end=Math.floor(100-(this._endShape.style.y-t)/n*100)),this._syncShape()},_syncFillerShape:function(e){var t,i,n=this._calculableLocation.x,a=this._calculableLocation.y,o=this._calculableLocation.width,r=this._calculableLocation.height;"horizontal"==this.dataRangeOption.orient?(t=this._startShape.style.x,i=this._endShape.style.x,e.id==this._startShape.id&&t>=i?(i=t,this._endShape.style.x=t):e.id==this._endShape.id&&t>=i&&(t=i,this._startShape.style.x=t),this._fillerShape.style.x=t,this._fillerShape.style.width=i-t,this._startMask.style.width=t-n,this._endMask.style.x=i,this._endMask.style.width=n+o-i,this._range.start=Math.ceil(100-(t-n)/o*100),this._range.end=Math.floor(100-(i-n)/o*100)):(t=this._startShape.style.y,i=this._endShape.style.y,e.id==this._startShape.id&&t>=i?(i=t,this._endShape.style.y=t):e.id==this._endShape.id&&t>=i&&(t=i,this._startShape.style.y=t),this._fillerShape.style.y=t,this._fillerShape.style.height=i-t,this._startMask.style.height=t-a,this._endMask.style.y=i,this._endMask.style.height=a+r-i,this._range.start=Math.ceil(100-(t-a)/r*100),this._range.end=Math.floor(100-(i-a)/r*100)),this._syncShape()},_syncShape:function(){this._startShape.position=[this._startShape.style.x-this._startShape.style._x,this._startShape.style.y-this._startShape.style._y],this._startShape.style.text=this._textFormat(this._gap*this._range.start+this.dataRangeOption.min),this._startShape.style.color=this._startShape.highlightStyle.strokeColor=this.getColor(this._gap*this._range.start+this.dataRangeOption.min),this._endShape.position=[this._endShape.style.x-this._endShape.style._x,this._endShape.style.y-this._endShape.style._y],this._endShape.style.text=this._textFormat(this._gap*this._range.end+this.dataRangeOption.min),this._endShape.style.color=this._endShape.highlightStyle.strokeColor=this.getColor(this._gap*this._range.end+this.dataRangeOption.min),this.zr.modShape(this._startShape.id),this.zr.modShape(this._endShape.id),this.zr.modShape(this._startMask.id),this.zr.modShape(this._endMask.id),this.zr.modShape(this._fillerShape.id),this.zr.refreshNextFrame()},_dispatchDataRange:function(){this.messageCenter.dispatch(r.EVENT.DATA_RANGE,null,{range:{start:this._range.end,end:this._range.start}},this.myChart)},__dataRangeSelected:function(e){if("single"===this.dataRangeOption.selectedMode)for(var t in this._selectedMap)this._selectedMap[t]=!1;var i=e.target._idx;this._selectedMap[i]=!this._selectedMap[i];var n,a;this._useCustomizedSplit()?(n=this._splitList[i].max,a=this._splitList[i].min):(n=(this._colorList.length-i)*this._gap+this.dataRangeOption.min,a=n-this._gap),this.messageCenter.dispatch(r.EVENT.DATA_RANGE_SELECTED,e.event,{selected:this._selectedMap,target:i,valueMax:n,valueMin:a},this.myChart),this.messageCenter.dispatch(r.EVENT.REFRESH,null,null,this.myChart)},__dispatchHoverLink:function(e){var t,i;if(this.dataRangeOption.calculable){var n,a=this.dataRangeOption.max-this.dataRangeOption.min;n="horizontal"==this.dataRangeOption.orient?(1-(l.getX(e.event)-this._calculableLocation.x)/this._calculableLocation.width)*a:(1-(l.getY(e.event)-this._calculableLocation.y)/this._calculableLocation.height)*a,t=n-.05*a,i=n+.05*a}else if(this._useCustomizedSplit()){var o=e.target._idx;i=this._splitList[o].max,t=this._splitList[o].min}else{var o=e.target._idx;i=(this._colorList.length-o)*this._gap+this.dataRangeOption.min,t=i-this._gap}this.messageCenter.dispatch(r.EVENT.DATA_RANGE_HOVERLINK,e.event,{valueMin:t,valueMax:i},this.myChart)},__onhoverlink:function(e){if(this.dataRangeOption.show&&this.dataRangeOption.hoverLink&&this._indicatorShape&&e&&null!=e.seriesIndex&&null!=e.dataIndex){var t=e.value;if(""===t||isNaN(t))return;tthis.dataRangeOption.max&&(t=this.dataRangeOption.max),this._indicatorShape.position="horizontal"==this.dataRangeOption.orient?[(this.dataRangeOption.max-t)/(this.dataRangeOption.max-this.dataRangeOption.min)*this._calculableLocation.width,0]:[0,(this.dataRangeOption.max-t)/(this.dataRangeOption.max-this.dataRangeOption.min)*this._calculableLocation.height],this._indicatorShape.style.text=this._textFormat(e.value),this._indicatorShape.style.color=this.getColor(t),this.zr.addHoverShape(this._indicatorShape)}},_textFormat:function(e,t){var i=this.dataRangeOption;if(e!==-Number.MAX_VALUE&&(e=(+e).toFixed(i.precision)),null!=t&&t!==Number.MAX_VALUE&&(t=(+t).toFixed(i.precision)),i.formatter){if("string"==typeof i.formatter)return i.formatter.replace("{value}",e===-Number.MAX_VALUE?"min":e).replace("{value2}",t===Number.MAX_VALUE?"max":t);if("function"==typeof i.formatter)return i.formatter.call(this.myChart,e,t)}return null==t?e:e===-Number.MAX_VALUE?"< "+t:t===Number.MAX_VALUE?"> "+e:e+" - "+t},_isContinuity:function(){var e=this.dataRangeOption;return!(e.splitList?e.splitList.length>0:e.splitNumber>0)||e.calculable},_useCustomizedSplit:function(){var e=this.dataRangeOption;return e.splitList&&e.splitList.length>0},_buildColorList:function(e){if(this._colorList=m.getGradientColors(this.dataRangeOption.color,Math.max((e-this.dataRangeOption.color.length)/(this.dataRangeOption.color.length-1),0)+1),this._colorList.length>e){for(var t=this._colorList.length,i=[this._colorList[0]],n=t/(e-1),a=1;e-1>a;a++)i.push(this._colorList[Math.floor(a*n)]);i.push(this._colorList[t-1]),this._colorList=i}if(this._useCustomizedSplit())for(var o=this._splitList,a=0,t=o.length;t>a;a++)o[a].color&&(this._colorList[a]=o[a].color)},_buildGap:function(e){if(!this._useCustomizedSplit()){var t=this.dataRangeOption.precision;for(this._gap=(this.dataRangeOption.max-this.dataRangeOption.min)/e;this._gap.toFixed(t)-0!=this._gap&&5>t;)t++;this.dataRangeOption.precision=t,this._gap=((this.dataRangeOption.max-this.dataRangeOption.min)/e).toFixed(t)-0}},_buildDataList:function(e){for(var t=this._valueTextList=[],i=this.dataRangeOption,n=this._useCustomizedSplit(),a=0;e>a;a++){this._selectedMap[a]=!0;var o="";if(n){var r=this._splitList[e-1-a];o=null!=r.label?r.label:null!=r.single?this._textFormat(r.single):this._textFormat(r.min,r.max)}else o=this._textFormat(a*this._gap+i.min,(a+1)*this._gap+i.min);t.unshift(o)}},_buildSplitList:function(){if(this._useCustomizedSplit())for(var e=this.dataRangeOption.splitList,t=this._splitList=[],i=0,n=e.length;n>i;i++){var a=e[i];if(!a||null==a.start&&null==a.end)throw new Error("Empty item exists in splitList!");var o={label:a.label,color:a.color};o.min=a.start,o.max=a.end,o.min>o.max&&(o.min=[o.max,o.max=o.min][0]),o.min===o.max&&(o.single=o.max),null==o.min&&(o.min=-Number.MAX_VALUE),null==o.max&&(o.max=Number.MAX_VALUE),t.push(o)}},refresh:function(e){if(e){this.option=e,this.option.dataRange=this.reformOption(this.option.dataRange);var t=this.dataRangeOption=this.option.dataRange;if(!this._useCustomizedSplit()&&(null==t.min||null==t.max))throw new Error("option.dataRange.min or option.dataRange.max has not been defined.");this.myChart.canvasSupported||(t.realtime=!1);var i=this._isContinuity()?100:this._useCustomizedSplit()?t.splitList.length:t.splitNumber;this._buildSplitList(),this._buildColorList(i),this._buildGap(i),this._buildDataList(i)}this.clear(),this._buildShape()},getColor:function(e){if(isNaN(e))return null;var t;if(this._useCustomizedSplit()){for(var i=this._splitList,n=0,a=i.length;a>n;n++)if(i[n].min<=e&&i[n].max>=e){t=n;break}}else{if(this.dataRangeOption.min==this.dataRangeOption.max)return this._colorList[0];if(ethis.dataRangeOption.max&&(e=this.dataRangeOption.max),this.dataRangeOption.calculable&&(e-(this._gap*this._range.start+this.dataRangeOption.min)>5e-5||e-(this._gap*this._range.end+this.dataRangeOption.min)<-5e-5))return null;t=this._colorList.length-Math.ceil((e-this.dataRangeOption.min)/(this.dataRangeOption.max-this.dataRangeOption.min)*this._colorList.length),t==this._colorList.length&&t--}return this._selectedMap[t]?this._colorList[t]:null},getColorByIndex:function(e){return e>=this._colorList.length?e=this._colorList.length-1:0>e&&(e=0),this._colorList[e]},onbeforDispose:function(){this.messageCenter.unbind(r.EVENT.HOVER,this._onhoverlink)}},s.inherits(t,i),e("../component").define("dataRange",t),t}),i("echarts/util/shape/HandlePolygon",["require","zrender/shape/Base","zrender/shape/Polygon","zrender/tool/util"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/shape/Polygon"),a=e("zrender/tool/util");return t.prototype={type:"handle-polygon",buildPath:function(e,t){n.prototype.buildPath(e,t)},isCover:function(e,t){var i=this.transformCoordToLocal(e,t);e=i[0],t=i[1];var n=this.style.rect;return e>=n.x&&e<=n.x+n.width&&t>=n.y&&t<=n.y+n.height?!0:!1}},a.inherits(t,i),t}),i("echarts/chart/k",["require","./base","../util/shape/Candle","../component/axis","../component/grid","../component/dataZoom","../config","../util/ecData","zrender/tool/util","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("../util/shape/Candle");e("../component/axis"),e("../component/grid"),e("../component/dataZoom");var a=e("../config");a.k={zlevel:0,z:2,clickable:!0,hoverable:!0,legendHoverLink:!1,xAxisIndex:0,yAxisIndex:0,itemStyle:{normal:{color:"#fff",color0:"#00aa11",lineStyle:{width:1,color:"#ff3200",color0:"#00aa11"},label:{show:!1}},emphasis:{label:{show:!1}}}};var o=e("../util/ecData"),r=e("zrender/tool/util");return t.prototype={type:a.CHART_TYPE_K,_buildShape:function(){var e=this.series;this.selectedMap={};for(var t,i={top:[],bottom:[]},n=0,o=e.length;o>n;n++)e[n].type===a.CHART_TYPE_K&&(e[n]=this.reformOption(e[n]),this.legendHoverLink=e[n].legendHoverLink||this.legendHoverLink,t=this.component.xAxis.getAxis(e[n].xAxisIndex),t.type===a.COMPONENT_TYPE_AXIS_CATEGORY&&i[t.getPosition()].push(n));for(var r in i)i[r].length>0&&this._buildSinglePosition(r,i[r]);this.addShapeList()},_buildSinglePosition:function(e,t){var i=this._mapData(t),n=i.locationMap,a=i.maxDataLength;if(0!==a&&0!==n.length){this._buildHorizontal(t,a,n);for(var o=0,r=t.length;r>o;o++)this.buildMark(t[o])}},_mapData:function(e){for(var t,i,n=this.series,a=this.component.legend,o=[],r=0,s=0,l=e.length;l>s;s++)t=n[e[s]],i=t.name,this.selectedMap[i]=a?a.isSelected(i):!0,this.selectedMap[i]&&o.push(e[s]),r=Math.max(r,t.data.length);return{locationMap:o,maxDataLength:r}},_buildHorizontal:function(e,t,i){for(var n,a,o,r,s,l,h,m,V,U,d=this.series,p={},c=0,u=i.length;u>c;c++){n=i[c],a=d[n],o=a.xAxisIndex||0,r=this.component.xAxis.getAxis(o),h=a.barWidth||Math.floor(r.getGap()/2),U=a.barMaxWidth,U&&h>U&&(h=U),s=a.yAxisIndex||0,l=this.component.yAxis.getAxis(s),p[n]=[];for(var y=0,g=t;g>y&&null!=r.getNameByIndex(y);y++)m=a.data[y],V=this.getDataFromOption(m,"-"),"-"!==V&&4==V.length&&p[n].push([r.getCoordByIndex(y),h,l.getCoord(V[0]),l.getCoord(V[1]),l.getCoord(V[2]),l.getCoord(V[3]),y,r.getNameByIndex(y)])}this._buildKLine(e,p)},_buildKLine:function(e,t){for(var i,n,o,r,s,l,h,m,V,U,d,p,c,u,y,g,b,f=this.series,k=0,x=e.length;x>k;k++)if(b=e[k],d=f[b],u=t[b],this._isLarge(u)&&(u=this._getLargePointList(u)),d.type===a.CHART_TYPE_K&&null!=u){p=d,i=this.query(p,"itemStyle.normal.lineStyle.width"),n=this.query(p,"itemStyle.normal.lineStyle.color"),o=this.query(p,"itemStyle.normal.lineStyle.color0"),r=this.query(p,"itemStyle.normal.color"),s=this.query(p,"itemStyle.normal.color0"),l=this.query(p,"itemStyle.emphasis.lineStyle.width"),h=this.query(p,"itemStyle.emphasis.lineStyle.color"),m=this.query(p,"itemStyle.emphasis.lineStyle.color0"),V=this.query(p,"itemStyle.emphasis.color"),U=this.query(p,"itemStyle.emphasis.color0");for(var _=0,L=u.length;L>_;_++)y=u[_],c=d.data[y[6]],p=c,g=y[3]a;a++)n[a]=e[Math.floor(i/t*a)];return n},_getCandle:function(e,t,i,a,r,s,l,h,m,V,U,d,p,c,u){var y=this.series,g=y[e],b=g.data[t],f=[b,g],k={zlevel:g.zlevel,z:g.z,clickable:this.deepQuery(f,"clickable"),hoverable:this.deepQuery(f,"hoverable"),style:{x:a,y:[s,l,h,m],width:r,color:V,strokeColor:d,lineWidth:U,brushType:"both"},highlightStyle:{color:p,strokeColor:u,lineWidth:c},_seriesIndex:e};return k=this.addLabel(k,g,b,i),o.pack(k,g,e,b,t,i),k=new n(k)},getMarkCoord:function(e,t){var i=this.series[e],n=this.component.xAxis.getAxis(i.xAxisIndex),a=this.component.yAxis.getAxis(i.yAxisIndex);return["string"!=typeof t.xAxis&&n.getCoordByIndex?n.getCoordByIndex(t.xAxis||0):n.getCoord(t.xAxis||0),"string"!=typeof t.yAxis&&a.getCoordByIndex?a.getCoordByIndex(t.yAxis||0):a.getCoord(t.yAxis||0)]},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()},addDataAnimation:function(e,t){function i(){p--,0===p&&t&&t()}for(var n=this.series,a={},r=0,s=e.length;s>r;r++)a[e[r][0]]=e[r];for(var l,h,m,V,U,d,p=0,r=0,s=this.shapeList.length;s>r;r++)if(U=this.shapeList[r]._seriesIndex,a[U]&&!a[U][3]&&"candle"===this.shapeList[r].type){if(d=o.get(this.shapeList[r],"dataIndex"),V=n[U],a[U][2]&&d===V.data.length-1){this.zr.delShape(this.shapeList[r].id);continue}if(!a[U][2]&&0===d){this.zr.delShape(this.shapeList[r].id);continue}h=this.component.xAxis.getAxis(V.xAxisIndex||0).getGap(),l=a[U][2]?h:-h,m=0,p++,this.zr.animate(this.shapeList[r].id,"").when(this.query(this.option,"animationDurationUpdate"),{position:[l,m]}).done(i).start()}p||t&&t()}},r.inherits(t,i),e("../chart").define("k",t),t}),i("echarts/chart/pie",["require","./base","zrender/shape/Text","zrender/shape/Ring","zrender/shape/Circle","zrender/shape/Sector","zrender/shape/Polyline","../config","../util/ecData","zrender/tool/util","zrender/tool/math","zrender/tool/color","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o);var r=this;r.shapeHandler.onmouseover=function(e){var t=e.target,i=h.get(t,"seriesIndex"),n=h.get(t,"dataIndex"),a=h.get(t,"special"),o=[t.style.x,t.style.y],s=t.style.startAngle,l=t.style.endAngle,m=((l+s)/2+360)%360,V=t.highlightStyle.color,U=r.getLabel(i,n,a,o,m,V,!0);U&&r.zr.addHoverShape(U);var d=r.getLabelLine(i,n,o,t.style.r0,t.style.r,m,V,!0);d&&r.zr.addHoverShape(d)},this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Ring"),o=e("zrender/shape/Circle"),r=e("zrender/shape/Sector"),s=e("zrender/shape/Polyline"),l=e("../config");l.pie={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,center:["50%","50%"],radius:[0,"75%"],clockWise:!0,startAngle:90,minAngle:0,selectedOffset:10,itemStyle:{normal:{borderColor:"rgba(0,0,0,0)",borderWidth:1,label:{show:!0,position:"outer"},labelLine:{show:!0,length:20,lineStyle:{width:1,type:"solid"}}},emphasis:{borderColor:"rgba(0,0,0,0)",borderWidth:1,label:{show:!1},labelLine:{show:!1,length:20,lineStyle:{width:1,type:"solid"}}}}};var h=e("../util/ecData"),m=e("zrender/tool/util"),V=e("zrender/tool/math"),U=e("zrender/tool/color");return t.prototype={type:l.CHART_TYPE_PIE,_buildShape:function(){var e=this.series,t=this.component.legend;this.selectedMap={},this._selected={};var i,n,r;this._selectedMode=!1;for(var s,m=0,V=e.length;V>m;m++)if(e[m].type===l.CHART_TYPE_PIE){if(e[m]=this.reformOption(e[m]),this.legendHoverLink=e[m].legendHoverLink||this.legendHoverLink,s=e[m].name||"",this.selectedMap[s]=t?t.isSelected(s):!0,!this.selectedMap[s])continue;i=this.parseCenter(this.zr,e[m].center),n=this.parseRadius(this.zr,e[m].radius),this._selectedMode=this._selectedMode||e[m].selectedMode,this._selected[m]=[],this.deepQuery([e[m],this.option],"calculable")&&(r={zlevel:e[m].zlevel,z:e[m].z,hoverable:!1,style:{x:i[0],y:i[1],r0:n[0]<=10?0:n[0]-10,r:n[1]+10,brushType:"stroke",lineWidth:1,strokeColor:e[m].calculableHolderColor||this.ecTheme.calculableHolderColor||l.calculableHolderColor}},h.pack(r,e[m],m,void 0,-1),this.setCalculable(r),r=n[0]<=10?new o(r):new a(r),this.shapeList.push(r)),this._buildSinglePie(m),this.buildMark(m)}this.addShapeList()},_buildSinglePie:function(e){for(var t,i=this.series,n=i[e],a=n.data,o=this.component.legend,r=0,s=0,l=0,h=Number.NEGATIVE_INFINITY,m=[],V=0,U=a.length;U>V;V++)t=a[V].name, -this.selectedMap[t]=o?o.isSelected(t):!0,this.selectedMap[t]&&!isNaN(a[V].value)&&(0!==+a[V].value?r++:s++,l+=+a[V].value,h=Math.max(h,+a[V].value));if(0!==l){for(var d,p,c,u,y,g,b=100,f=n.clockWise,k=(n.startAngle.toFixed(2)-0+360)%360,x=n.minAngle||.01,_=360-x*r-.01*s,L=n.roseType,V=0,U=a.length;U>V;V++)if(t=a[V].name,this.selectedMap[t]&&!isNaN(a[V].value)){if(p=o?o.getColor(t):this.zr.getColor(V),b=a[V].value/l,d="area"!=L?f?k-b*_-(0!==b?x:.01):b*_+k+(0!==b?x:.01):f?k-360/U:360/U+k,d=d.toFixed(2)-0,b=(100*b).toFixed(2),c=this.parseCenter(this.zr,n.center),u=this.parseRadius(this.zr,n.radius),y=+u[0],g=+u[1],"radius"===L?g=a[V].value/h*(g-y)*.8+.2*(g-y)+y:"area"===L&&(g=Math.sqrt(a[V].value/h)*(g-y)+y),f){var W;W=k,k=d,d=W}this._buildItem(m,e,V,b,a[V].selected,c,y,g,k,d,p),f||(k=d)}this._autoLabelLayout(m,c,g);for(var V=0,U=m.length;U>V;V++)this.shapeList.push(m[V]);m=null}},_buildItem:function(e,t,i,n,a,o,r,s,l,m,V){var U=this.series,d=((m+l)/2+360)%360,p=this.getSector(t,i,n,a,o,r,s,l,m,V);h.pack(p,U[t],t,U[t].data[i],i,U[t].data[i].name,n),e.push(p);var c=this.getLabel(t,i,n,o,d,V,!1),u=this.getLabelLine(t,i,o,r,s,d,V,!1);u&&(h.pack(u,U[t],t,U[t].data[i],i,U[t].data[i].name,n),e.push(u)),c&&(h.pack(c,U[t],t,U[t].data[i],i,U[t].data[i].name,n),c._labelLine=u,e.push(c))},getSector:function(e,t,i,n,a,o,s,l,h,m){var d=this.series,p=d[e],c=p.data[t],u=[c,p],y=this.deepMerge(u,"itemStyle.normal")||{},g=this.deepMerge(u,"itemStyle.emphasis")||{},b=this.getItemStyleColor(y.color,e,t,c)||m,f=this.getItemStyleColor(g.color,e,t,c)||("string"==typeof b?U.lift(b,-.2):b),k={zlevel:p.zlevel,z:p.z,clickable:this.deepQuery(u,"clickable"),style:{x:a[0],y:a[1],r0:o,r:s,startAngle:l,endAngle:h,brushType:"both",color:b,lineWidth:y.borderWidth,strokeColor:y.borderColor,lineJoin:"round"},highlightStyle:{color:f,lineWidth:g.borderWidth,strokeColor:g.borderColor,lineJoin:"round"},_seriesIndex:e,_dataIndex:t};if(n){var x=((k.style.startAngle+k.style.endAngle)/2).toFixed(2)-0;k.style._hasSelected=!0,k.style._x=k.style.x,k.style._y=k.style.y;var _=this.query(p,"selectedOffset");k.style.x+=V.cos(x,!0)*_,k.style.y-=V.sin(x,!0)*_,this._selected[e][t]=!0}else this._selected[e][t]=!1;return this._selectedMode&&(k.onclick=this.shapeHandler.onclick),this.deepQuery([c,p,this.option],"calculable")&&(this.setCalculable(k),k.draggable=!0),(this._needLabel(p,c,!0)||this._needLabelLine(p,c,!0))&&(k.onmouseover=this.shapeHandler.onmouseover),k=new r(k)},getLabel:function(e,t,i,a,o,r,s){var l=this.series,h=l[e],U=h.data[t];if(this._needLabel(h,U,s)){var d,p,c,u=s?"emphasis":"normal",y=m.merge(m.clone(U.itemStyle)||{},h.itemStyle),g=y[u].label,b=g.textStyle||{},f=a[0],k=a[1],x=this.parseRadius(this.zr,h.radius),_="middle";g.position=g.position||y.normal.label.position,"center"===g.position?(d=f,p=k,c="center"):"inner"===g.position||"inside"===g.position?(x=(x[0]+x[1])*(g.distance||.5),d=Math.round(f+x*V.cos(o,!0)),p=Math.round(k-x*V.sin(o,!0)),r="#fff",c="center"):(x=x[1]- -y[u].labelLine.length,d=Math.round(f+x*V.cos(o,!0)),p=Math.round(k-x*V.sin(o,!0)),c=o>=90&&270>=o?"right":"left"),"center"!=g.position&&"inner"!=g.position&&"inside"!=g.position&&(d+="left"===c?20:-20),U.__labelX=d-("left"===c?5:-5),U.__labelY=p;var L=new n({zlevel:h.zlevel,z:h.z+1,hoverable:!1,style:{x:d,y:p,color:b.color||r,text:this.getLabelText(e,t,i,u),textAlign:b.align||c,textBaseline:b.baseline||_,textFont:this.getFont(b)},highlightStyle:{brushType:"fill"}});return L._radius=x,L._labelPosition=g.position||"outer",L._rect=L.getRect(L.style),L._seriesIndex=e,L._dataIndex=t,L}},getLabelText:function(e,t,i,n){var a=this.series,o=a[e],r=o.data[t],s=this.deepQuery([r,o],"itemStyle."+n+".label.formatter");return s?"function"==typeof s?s.call(this.myChart,{seriesIndex:e,seriesName:o.name||"",series:o,dataIndex:t,data:r,name:r.name,value:r.value,percent:i}):"string"==typeof s?(s=s.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}").replace("{d}","{d0}"),s=s.replace("{a0}",o.name).replace("{b0}",r.name).replace("{c0}",r.value).replace("{d0}",i)):void 0:r.name},getLabelLine:function(e,t,i,n,a,o,r,l){var h=this.series,U=h[e],d=U.data[t];if(this._needLabelLine(U,d,l)){var p=l?"emphasis":"normal",c=m.merge(m.clone(d.itemStyle)||{},U.itemStyle),u=c[p].labelLine,y=u.lineStyle||{},g=i[0],b=i[1],f=a,k=this.parseRadius(this.zr,U.radius)[1]- -u.length,x=V.cos(o,!0),_=V.sin(o,!0);return new s({zlevel:U.zlevel,z:U.z+1,hoverable:!1,style:{pointList:[[g+f*x,b-f*_],[g+k*x,b-k*_],[d.__labelX,d.__labelY]],strokeColor:y.color||r,lineType:y.type,lineWidth:y.width},_seriesIndex:e,_dataIndex:t})}},_needLabel:function(e,t,i){return this.deepQuery([t,e],"itemStyle."+(i?"emphasis":"normal")+".label.show")},_needLabelLine:function(e,t,i){return this.deepQuery([t,e],"itemStyle."+(i?"emphasis":"normal")+".labelLine.show")},_autoLabelLayout:function(e,t,i){for(var n=[],a=[],o=0,r=e.length;r>o;o++)("outer"===e[o]._labelPosition||"outside"===e[o]._labelPosition)&&(e[o]._rect._y=e[o]._rect.y,e[o]._rect.xa;a++)if(e[a]._rect.y+=n,e[a].style.y+=n,e[a]._labelLine&&(e[a]._labelLine.style.pointList[1][1]+=n,e[a]._labelLine.style.pointList[2][1]+=n),a>t&&i>a+1&&e[a+1]._rect.y>e[a]._rect.y+e[a]._rect.height)return void o(a,n/2);o(i-1,n/2)}function o(t,i){for(var n=t;n>=0&&(e[n]._rect.y-=i,e[n].style.y-=i,e[n]._labelLine&&(e[n]._labelLine.style.pointList[1][1]-=i,e[n]._labelLine.style.pointList[2][1]-=i),!(n>0&&e[n]._rect.y>e[n-1]._rect.y+e[n-1]._rect.height));n--);}function r(e,t,i,n,a){for(var o,r,s,l=i[0],h=i[1],m=a>0?t?Number.MAX_VALUE:0:t?Number.MAX_VALUE:0,V=0,U=e.length;U>V;V++)r=Math.abs(e[V]._rect.y-h),s=e[V]._radius-n,o=n+s>r?Math.sqrt((n+s+20)*(n+s+20)-Math.pow(e[V]._rect.y-h,2)):Math.abs(e[V]._rect.x+(a>0?0:e[V]._rect.width)-l),t&&o>=m&&(o=m-10),!t&&m>=o&&(o=m+10),e[V]._rect.x=e[V].style.x=l+o*a,e[V]._labelLine&&(e[V]._labelLine.style.pointList[2][0]=l+(o-5)*a,e[V]._labelLine.style.pointList[1][0]=l+(o-20)*a),m=o}e.sort(function(e,t){return e._rect.y-t._rect.y});for(var s,l=0,h=e.length,m=[],V=[],U=0;h>U;U++)s=e[U]._rect.y-l,0>s&&a(U,h,-s,n),l=e[U]._rect.y+e[U]._rect.height;this.zr.getHeight()-l<0&&o(h-1,l-this.zr.getHeight());for(var U=0;h>U;U++)e[U]._rect.y>=t[1]?V.push(e[U]):m.push(e[U]);r(V,!0,t,i,n),r(m,!1,t,i,n)},reformOption:function(e){var t=m.merge;return e=t(t(e||{},m.clone(this.ecTheme.pie||{})),m.clone(l.pie)),e.itemStyle.normal.label.textStyle=this.getTextStyle(e.itemStyle.normal.label.textStyle),e.itemStyle.emphasis.label.textStyle=this.getTextStyle(e.itemStyle.emphasis.label.textStyle),this.z=e.z,this.zlevel=e.zlevel,e},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()},addDataAnimation:function(e,t){function i(){s--,0===s&&t&&t()}for(var n=this.series,a={},o=0,r=e.length;r>o;o++)a[e[o][0]]=e[o];var s=0,h={},m={},V={},U=this.shapeList;this.shapeList=[];for(var d,p,c,u={},o=0,r=e.length;r>o;o++)d=e[o][0],p=e[o][2],c=e[o][3],n[d]&&n[d].type===l.CHART_TYPE_PIE&&(p?(c||(h[d+"_"+n[d].data.length]="delete"),u[d]=1):c?u[d]=0:(h[d+"_-1"]="delete",u[d]=-1),this._buildSinglePie(d));for(var y,g,o=0,r=this.shapeList.length;r>o;o++)switch(d=this.shapeList[o]._seriesIndex,y=this.shapeList[o]._dataIndex,g=d+"_"+y,this.shapeList[o].type){case"sector":h[g]=this.shapeList[o];break;case"text":m[g]=this.shapeList[o];break;case"polyline":V[g]=this.shapeList[o]}this.shapeList=[];for(var b,o=0,r=U.length;r>o;o++)if(d=U[o]._seriesIndex,a[d]){if(y=U[o]._dataIndex+u[d],g=d+"_"+y,b=h[g],!b)continue;if("sector"===U[o].type)"delete"!=b?(s++,this.zr.animate(U[o].id,"style").when(400,{startAngle:b.style.startAngle,endAngle:b.style.endAngle}).done(i).start()):(s++,this.zr.animate(U[o].id,"style").when(400,u[d]<0?{startAngle:U[o].style.startAngle}:{endAngle:U[o].style.endAngle}).done(i).start());else if("text"===U[o].type||"polyline"===U[o].type)if("delete"===b)this.zr.delShape(U[o].id);else switch(U[o].type){case"text":s++,b=m[g],this.zr.animate(U[o].id,"style").when(400,{x:b.style.x,y:b.style.y}).done(i).start();break;case"polyline":s++,b=V[g],this.zr.animate(U[o].id,"style").when(400,{pointList:b.style.pointList}).done(i).start()}}this.shapeList=U,s||t&&t()},onclick:function(e){var t=this.series;if(this.isClick&&e.target){this.isClick=!1;for(var i,n=e.target,a=n.style,o=h.get(n,"seriesIndex"),r=h.get(n,"dataIndex"),s=0,m=this.shapeList.length;m>s;s++)if(this.shapeList[s].id===n.id){if(o=h.get(n,"seriesIndex"),r=h.get(n,"dataIndex"),a._hasSelected)n.style.x=n.style._x,n.style.y=n.style._y,n.style._hasSelected=!1,this._selected[o][r]=!1;else{var U=((a.startAngle+a.endAngle)/2).toFixed(2)-0;n.style._hasSelected=!0,this._selected[o][r]=!0,n.style._x=n.style.x,n.style._y=n.style.y,i=this.query(t[o],"selectedOffset"),n.style.x+=V.cos(U,!0)*i,n.style.y-=V.sin(U,!0)*i}this.zr.modShape(n.id)}else this.shapeList[s].style._hasSelected&&"single"===this._selectedMode&&(o=h.get(this.shapeList[s],"seriesIndex"),r=h.get(this.shapeList[s],"dataIndex"),this.shapeList[s].style.x=this.shapeList[s].style._x,this.shapeList[s].style.y=this.shapeList[s].style._y,this.shapeList[s].style._hasSelected=!1,this._selected[o][r]=!1,this.zr.modShape(this.shapeList[s].id));this.messageCenter.dispatch(l.EVENT.PIE_SELECTED,e.event,{selected:this._selected,target:h.get(n,"name")},this.myChart),this.zr.refreshNextFrame()}}},m.inherits(t,i),e("../chart").define("pie",t),t}),i("echarts/chart/radar",["require","./base","zrender/shape/Polygon","../component/polar","../config","../util/ecData","zrender/tool/util","zrender/tool/color","../util/accMath","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Polygon");e("../component/polar");var a=e("../config");a.radar={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,polarIndex:0,itemStyle:{normal:{label:{show:!1},lineStyle:{width:2,type:"solid"}},emphasis:{label:{show:!1}}},symbolSize:2};var o=e("../util/ecData"),r=e("zrender/tool/util"),s=e("zrender/tool/color");return t.prototype={type:a.CHART_TYPE_RADAR,_buildShape:function(){this.selectedMap={},this._symbol=this.option.symbolList,this._queryTarget,this._dropBoxList=[],this._radarDataCounter=0;for(var e,t=this.series,i=this.component.legend,n=0,o=t.length;o>n;n++)t[n].type===a.CHART_TYPE_RADAR&&(this.serie=this.reformOption(t[n]),this.legendHoverLink=t[n].legendHoverLink||this.legendHoverLink,e=this.serie.name||"",this.selectedMap[e]=i?i.isSelected(e):!0,this.selectedMap[e]&&(this._queryTarget=[this.serie,this.option],this.deepQuery(this._queryTarget,"calculable")&&this._addDropBox(n),this._buildSingleRadar(n),this.buildMark(n)));this.addShapeList()},_buildSingleRadar:function(e){for(var t,i,n,a,o=this.component.legend,r=this.serie.data,s=this.deepQuery(this._queryTarget,"calculable"),l=0;lr;r++)n=this.getDataFromOption(t.value[r]),i="-"!=n?o.getVector(e,r,n):!1,i&&a.push(i);return a},_addSymbol:function(e,t,i,n,a){for(var r,s=this.series,l=this.component.polar,h=0,m=e.length;m>h;h++)r=this.getSymbolShape(this.deepMerge([s[n].data[i],s[n]]),n,s[n].data[i].value[h],h,l.getIndicatorText(a,h),e[h][0],e[h][1],this._symbol[this._radarDataCounter%this._symbol.length],t,"#fff","vertical"),r.zlevel=this.getZlevelBase(),r.z=this.getZBase()+1,o.set(r,"data",s[n].data[i]),o.set(r,"value",s[n].data[i].value),o.set(r,"dataIndex",i),o.set(r,"special",h),this.shapeList.push(r)},_addDataShape:function(e,t,i,a,r,l){var h=this.series,m=[i,this.serie],V=this.getItemStyleColor(this.deepQuery(m,"itemStyle.normal.color"),a,r,i),U=this.deepQuery(m,"itemStyle.normal.lineStyle.width"),d=this.deepQuery(m,"itemStyle.normal.lineStyle.type"),p=this.deepQuery(m,"itemStyle.normal.areaStyle.color"),c=this.deepQuery(m,"itemStyle.normal.areaStyle"),u={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{pointList:e,brushType:c?"both":"stroke",color:p||V||("string"==typeof t?s.alpha(t,.5):t),strokeColor:V||t,lineWidth:U,lineType:d},highlightStyle:{brushType:this.deepQuery(m,"itemStyle.emphasis.areaStyle")||c?"both":"stroke",color:this.deepQuery(m,"itemStyle.emphasis.areaStyle.color")||p||V||("string"==typeof t?s.alpha(t,.5):t),strokeColor:this.getItemStyleColor(this.deepQuery(m,"itemStyle.emphasis.color"),a,r,i)||V||t,lineWidth:this.deepQuery(m,"itemStyle.emphasis.lineStyle.width")||U,lineType:this.deepQuery(m,"itemStyle.emphasis.lineStyle.type")||d}};o.pack(u,h[a],a,i,r,i.name,this.component.polar.getIndicator(h[a].polarIndex)),l&&(u.draggable=!0,this.setCalculable(u)),u=new n(u),this.shapeList.push(u)},_addDropBox:function(e){var t=this.series,i=this.deepQuery(this._queryTarget,"polarIndex");if(!this._dropBoxList[i]){var n=this.component.polar.getDropBox(i);n.zlevel=this.getZlevelBase(),n.z=this.getZBase(),this.setCalculable(n),o.pack(n,t,e,void 0,-1),this.shapeList.push(n),this._dropBoxList[i]=!0}},ondragend:function(e,t){var i=this.series;if(this.isDragend&&e.target){var n=e.target,a=o.get(n,"seriesIndex"),r=o.get(n,"dataIndex");this.component.legend&&this.component.legend.del(i[a].data[r].name),i[a].data.splice(r,1),t.dragOut=!0,t.needRefresh=!0,this.isDragend=!1}},ondrop:function(t,i){var n=this.series;if(this.isDrop&&t.target){var a,r,s=t.target,l=t.dragged,h=o.get(s,"seriesIndex"),m=o.get(s,"dataIndex"),V=this.component.legend;if(-1===m)a={value:o.get(l,"value"),name:o.get(l,"name")},n[h].data.push(a),V&&V.add(a.name,l.style.color||l.style.strokeColor);else{var U=e("../util/accMath");a=n[h].data[m],V&&V.del(a.name),a.name+=this.option.nameConnector+o.get(l,"name"),r=o.get(l,"value");for(var d=0;dh;h++)t=m.polar2cartesian(s,o*Math.PI/180+r*h),l.push({vector:[t[1],-t[0]]})},_getRadius:function(){var e=this.polar[this._index];return this.parsePercent(e.radius,Math.min(this.zr.getWidth(),this.zr.getHeight())/2)},_buildSpiderWeb:function(e){var t=this.polar[e],i=t.__ecIndicator,n=t.splitArea,a=t.splitLine,o=this.getCenter(e),r=t.splitNumber,s=a.lineStyle.color,l=a.lineStyle.width,h=a.show,m=this.deepQuery(this._queryTarget,"axisLine");this._addArea(i,r,o,n,s,l,h),m.show&&this._addLine(i,o,m)},_addAxisLabel:function(t){for(var i,a,o,r,a,s,l,m,V,U,d=e("../util/accMath"),p=this.polar[t],c=this.deepQuery(this._queryTarget,"indicator"),u=p.__ecIndicator,y=this.deepQuery(this._queryTarget,"splitNumber"),g=this.getCenter(t),b=0;b=x;x+=U+1)r=h.merge({},o),l=d.accAdd(s.min,d.accMul(s.step,x)),l="function"==typeof k?k(l):"string"==typeof k?k.replace("{a}","{a0}").replace("{a0}",l):this.numAddCommas(l),r.text=l,r.x=x*a[0]/y+Math.cos(m)*V+g[0],r.y=x*a[1]/y+Math.sin(m)*V+g[1],this.shapeList.push(new n({zlevel:this.getZlevelBase(),z:this.getZBase(),style:r,draggable:!1,hoverable:!1}))}},_buildText:function(e){for(var t,i,a,o,r,s,l,h=this.polar[e],m=h.__ecIndicator,V=this.deepQuery(this._queryTarget,"indicator"),U=this.getCenter(e),d=0,p=0,c=0;c0?"left":Math.round(t[0])<0?"right":"center",null==o.margin?t=this._mapVector(t,U,1.1):(s=o.margin,d=t[0]>0?s:-s,p=t[1]>0?s:-s,d=0===t[0]?0:d,p=0===t[1]?0:p,t=this._mapVector(t,U,1)),i.textAlign=a,i.x=t[0]+d,i.y=t[1]+p,r=o.rotate?[o.rotate/180*Math.PI,t[0],t[1]]:[0,0,0],this.shapeList.push(new n({zlevel:this.getZlevelBase(),z:this.getZBase(),style:i,draggable:!1,hoverable:!1,rotation:r})))},getIndicatorText:function(e,t){return this.polar[e]&&this.polar[e].__ecIndicator[t]&&this.polar[e].__ecIndicator[t].text},getDropBox:function(e){var t,i,e=e||0,n=this.polar[e],a=this.getCenter(e),o=n.__ecIndicator,r=o.length,s=[],l=n.type;if("polygon"==l){for(var h=0;r>h;h++)t=o[h].vector,s.push(this._mapVector(t,a,1.2));i=this._getShape(s,"fill","rgba(0,0,0,0)","",1)}else"circle"==l&&(i=this._getCircle("",1,1.2,a,"fill","rgba(0,0,0,0)"));return i},_addArea:function(e,t,i,n,a,o,r){for(var s,l,h,m,V=this.deepQuery(this._queryTarget,"type"),U=0;t>U;U++)l=(t-U)/t,r&&("polygon"==V?(m=this._getPointList(e,l,i),s=this._getShape(m,"stroke","",a,o)):"circle"==V&&(s=this._getCircle(a,o,l,i,"stroke")),this.shapeList.push(s)),n.show&&(h=(t-U-1)/t,this._addSplitArea(e,n,l,h,i,U))},_getCircle:function(e,t,i,n,a,o){var s=this._getRadius();return new r({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:n[0],y:n[1],r:s*i,brushType:a,strokeColor:e,lineWidth:t,color:o},hoverable:!1,draggable:!1})},_getRing:function(e,t,i,n){var a=this._getRadius();return new s({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:n[0],y:n[1],r:t*a,r0:i*a,color:e,brushType:"fill"},hoverable:!1,draggable:!1})},_getPointList:function(e,t,i){for(var n,a=[],o=e.length,r=0;o>r;r++)n=e[r].vector,a.push(this._mapVector(n,i,t));return a},_getShape:function(e,t,i,n,a){return new o({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{pointList:e,brushType:t,color:i,strokeColor:n,lineWidth:a},hoverable:!1,draggable:!1})},_addSplitArea:function(e,t,i,n,a,o){var r,s,l,h,m,V=e.length,U=t.areaStyle.color,d=[],V=e.length,p=this.deepQuery(this._queryTarget,"type");if("string"==typeof U&&(U=[U]),s=U.length,r=U[o%s],"polygon"==p)for(var c=0;V>c;c++)d=[],l=e[c].vector,h=e[(c+1)%V].vector,d.push(this._mapVector(l,a,i)),d.push(this._mapVector(l,a,n)),d.push(this._mapVector(h,a,n)),d.push(this._mapVector(h,a,i)),m=this._getShape(d,"fill",r,"",1),this.shapeList.push(m);else"circle"==p&&(m=this._getRing(r,i,n,a),this.shapeList.push(m))},_mapVector:function(e,t,i){return[e[0]*i+t[0],e[1]*i+t[1]]},getCenter:function(e){var e=e||0;return this.parseCenter(this.zr,this.polar[e].center)},_addLine:function(e,t,i){for(var n,a,o=e.length,r=i.lineStyle,s=r.color,l=r.width,h=r.type,m=0;o>m;m++)a=e[m].vector,n=this._getLine(t[0],t[1],a[0]+t[0],a[1]+t[1],s,l,h),this.shapeList.push(n)},_getLine:function(e,t,i,n,o,r,s){return new a({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{xStart:e,yStart:t,xEnd:i,yEnd:n,strokeColor:o,lineWidth:r,lineType:s},hoverable:!1})},_adjustIndicatorValue:function(t){for(var i,n,a,o=this.polar[t],r=this.deepQuery(this._queryTarget,"indicator"),s=r.length,l=o.__ecIndicator,h=this._getSeriesData(t),m=o.boundaryGap,V=o.splitNumber,U=o.scale,d=e("../util/smartSteps"),p=0;s>p;p++){if("number"==typeof r[p].max)i=r[p].max,n=r[p].min||0,a={max:i,min:n};else{var c=this._findValue(h,p,V,m);n=c.min,i=c.max}!U&&n>=0&&i>=0&&(n=0),!U&&0>=n&&0>=i&&(i=0);var u=d(n,i,V,a);l[p].value={min:u.min,max:u.max,step:u.step}}},_getSeriesData:function(e){for(var t,i,n,a=[],o=this.component.legend,r=0;ro||void 0===o)&&(o=e),(r>e||void 0===r)&&(r=e)}var o,r,s;if(e&&0!==e.length){if(1==e.length&&(r=0),1!=e.length)for(var l=0;l0?r=o/i:o/=i),{max:o,min:r}}},getVector:function(e,t,i){e=e||0,t=t||0;var n=this.polar[e].__ecIndicator;if(!(t>=n.length)){var a,o=this.polar[e].__ecIndicator[t],r=this.getCenter(e),s=o.vector,l=o.value.max,h=o.value.min;if("undefined"==typeof i)return r;switch(i){case"min":i=h;break;case"max":i=l;break;case"center":i=(l+h)/2}return a=l!=h?(i-h)/(l-h):.5,this._mapVector(s,r,a)}},isInside:function(e){var t=this.getNearestIndex(e);return t?t.polarIndex:-1},getNearestIndex:function(e){for(var t,i,n,a,o,r,s,l,h,V=0;Va[0])return{polarIndex:V,valueIndex:Math.floor((h+l/2)/l)%s}}},getIndicator:function(e){var e=e||0;return this.polar[e].indicator},refresh:function(e){e&&(this.option=e,this.polar=this.option.polar,this.series=this.option.series),this.clear(),this._buildShape()}},h.inherits(t,i),e("../component").define("polar",t),t}),i("echarts/util/coordinates",["require","zrender/tool/math"],function(e){function t(e,t){return[e*n.sin(t),e*n.cos(t)]}function i(e,t){return[Math.sqrt(e*e+t*t),Math.atan(t/e)]}var n=e("zrender/tool/math");return{polar2cartesian:t,cartesian2polar:i}}),i("echarts/chart/chord",["require","./base","zrender/shape/Text","zrender/shape/Line","zrender/shape/Sector","../util/shape/Ribbon","../util/shape/Icon","zrender/shape/BezierCurve","../config","../util/ecData","zrender/tool/util","zrender/tool/vector","../data/Graph","../layout/Chord","../chart"],function(e){"use strict";function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.scaleLineLength=4,this.scaleUnitAngle=4,this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Line"),o=e("zrender/shape/Sector"),r=e("../util/shape/Ribbon"),s=e("../util/shape/Icon"),l=e("zrender/shape/BezierCurve"),h=e("../config");h.chord={zlevel:0,z:2,clickable:!0,radius:["65%","75%"],center:["50%","50%"],padding:2,sort:"none",sortSub:"none",startAngle:90,clockWise:!0,ribbonType:!0,minRadius:10,maxRadius:20,symbol:"circle",showScale:!1,showScaleText:!1,itemStyle:{normal:{borderWidth:0,borderColor:"#000",label:{show:!0,rotate:!1,distance:5},chordStyle:{width:1,color:"black",borderWidth:1,borderColor:"#999",opacity:.5}},emphasis:{borderWidth:0,borderColor:"#000",chordStyle:{width:1,color:"black",borderWidth:1,borderColor:"#999"}}}};var m=e("../util/ecData"),V=e("zrender/tool/util"),U=e("zrender/tool/vector"),d=e("../data/Graph"),p=e("../layout/Chord");return t.prototype={type:h.CHART_TYPE_CHORD,_init:function(){var e=this.series;this.selectedMap={};for(var t={},i={},n=0,a=e.length;a>n;n++)if(e[n].type===this.type){var o=this.isSelected(e[n].name);this.selectedMap[e[n].name]=o,o&&this.buildMark(n),this.reformOption(e[n]),t[e[n].name]=e[n]}for(var n=0,a=e.length;a>n;n++)if(e[n].type===this.type)if(e[n].insertToSerie){var r=t[e[n].insertToSerie];e[n]._referenceSerie=r}else i[e[n].name]=[e[n]];for(var n=0,a=e.length;a>n;n++)if(e[n].type===this.type&&e[n].insertToSerie){for(var s=e[n]._referenceSerie;s&&s._referenceSerie;)s=s._referenceSerie;i[s.name]&&this.selectedMap[e[n].name]&&i[s.name].push(e[n])}for(var l in i)this._buildChords(i[l]);this.addShapeList()},_getNodeCategory:function(e,t){return e.categories&&e.categories[t.category||0]},_getNodeQueryTarget:function(e,t){var i=this._getNodeCategory(e,t);return[t,i,e]},_getEdgeQueryTarget:function(e,t,i){return i=i||"normal",[t.itemStyle&&t.itemStyle[i],e.itemStyle[i].chordStyle]},_buildChords:function(e){for(var t=[],i=e[0],n=function(e){return e.layout.size>0},a=function(e){return function(t){return e.getEdge(t.node2,t.node1)}},o=0;oa;a++){var r=n[a];if(r&&!r.ignore){var s=this._getNodeCategory(t,r),l=s?s.name:r.name;if(this.selectedMap[l]=this.isSelected(l),this.selectedMap[l]){var h=i.addNode(r.name,r);h.rawIndex=a}}}for(var a=0,o=e.links.length;o>a;a++){var m=e.links[a],V=m.source,U=m.target;"number"==typeof V&&(V=n[V],V&&(V=V.name)),"number"==typeof U&&(U=n[U],U&&(U=U.name));var p=i.addEdge(V,U,m);p&&(p.rawIndex=a)}return i.eachNode(function(e){var i=e.data.value;if(null==i)if(i=0,t.ribbonType)for(var n=0;n0&&(p.style.brushType="both"),p.highlightStyle.lineWidth>0&&(p.highlightStyle.brushType="both"),m.pack(p,e,t,i.data,i.rawIndex,i.id,i.category),this.shapeList.push(p),i.shape=p},this)},_buildNodeIcons:function(e,t,i,n){var a=this.parseCenter(this.zr,n.center),o=this.parseRadius(this.zr,n.radius),r=o[1];i.eachNode(function(i){var o=i.layout.startAngle,l=i.layout.endAngle,h=(o+l)/2,V=r*Math.cos(h),U=r*Math.sin(h),d=this._getNodeQueryTarget(n,i.data),p=this._getNodeCategory(n,i.data),c=this.deepQuery(d,"itemStyle.normal.color");c||(c=this.getColor(p?p.name:i.id));var u=new s({zlevel:e.zlevel,z:e.z+1,style:{x:-i.layout.size,y:-i.layout.size,width:2*i.layout.size,height:2*i.layout.size,iconType:this.deepQuery(d,"symbol"),color:c,brushType:"both",lineWidth:this.deepQuery(d,"itemStyle.normal.borderWidth"),strokeColor:this.deepQuery(d,"itemStyle.normal.borderColor")},highlightStyle:{color:this.deepQuery(d,"itemStyle.emphasis.color"),lineWidth:this.deepQuery(d,"itemStyle.emphasis.borderWidth"),strokeColor:this.deepQuery(d,"itemStyle.emphasis.borderColor")},clickable:n.clickable,position:[V+a[0],U+a[1]]});m.pack(u,e,t,i.data,i.rawIndex,i.id,i.category),this.shapeList.push(u),i.shape=u},this)},_buildLabels:function(e,t,i,a){var o=this.query(a,"itemStyle.normal.label.rotate"),r=this.query(a,"itemStyle.normal.label.distance"),s=this.parseCenter(this.zr,a.center),l=this.parseRadius(this.zr,a.radius),h=a.clockWise,m=h?1:-1; - -i.eachNode(function(t){var i=t.layout.startAngle/Math.PI*180*m,h=t.layout.endAngle/Math.PI*180*m,V=(i*-m+h*-m)/2;V%=360,0>V&&(V+=360);var d=90>=V||V>=270;V=V*Math.PI/180;var p=[Math.cos(V),-Math.sin(V)],c=0;c=a.ribbonType?a.showScaleText?35+r:r:r+t.layout.size;var u=U.scale([],p,l[1]+c);U.add(u,u,s);var y={zlevel:e.zlevel,z:e.z+1,hoverable:!1,style:{text:null==t.data.label?t.id:t.data.label,textAlign:d?"left":"right"}};o?(y.rotation=d?V:Math.PI+V,y.style.x=d?l[1]+c:-l[1]-c,y.style.y=0,y.position=s.slice()):(y.style.x=u[0],y.style.y=u[1]),y.style.color=this.deepQuery([t.data,a],"itemStyle.normal.label.textStyle.color")||"#000000",y.style.textFont=this.getFont(this.deepQuery([t.data,a],"itemStyle.normal.label.textStyle")),y=new n(y),this.shapeList.push(y),t.labelShape=y},this)},_buildRibbons:function(e,t,i,n){var a=e[t],o=this.parseCenter(this.zr,n.center),s=this.parseRadius(this.zr,n.radius);i.eachEdge(function(l,h){var V,U=i.getEdge(l.node2,l.node1);if(U&&!l.shape){if(U.shape)return void(l.shape=U.shape);var d=l.layout.startAngle/Math.PI*180,p=l.layout.endAngle/Math.PI*180,c=U.layout.startAngle/Math.PI*180,u=U.layout.endAngle/Math.PI*180;V=this.getColor(1===e.length?l.layout.weight<=U.layout.weight?l.node1.id:l.node2.id:a.name);var y,g,b=this._getEdgeQueryTarget(a,l.data),f=this._getEdgeQueryTarget(a,l.data,"emphasis"),k=new r({zlevel:a.zlevel,z:a.z,style:{x:o[0],y:o[1],r:s[0],source0:d,source1:p,target0:c,target1:u,brushType:"both",opacity:this.deepQuery(b,"opacity"),color:V,lineWidth:this.deepQuery(b,"borderWidth"),strokeColor:this.deepQuery(b,"borderColor"),clockWise:n.clockWise},clickable:n.clickable,highlightStyle:{brushType:"both",opacity:this.deepQuery(f,"opacity"),lineWidth:this.deepQuery(f,"borderWidth"),strokeColor:this.deepQuery(f,"borderColor")}});l.layout.weight<=U.layout.weight?(y=U.node1,g=U.node2):(y=l.node1,g=l.node2),m.pack(k,a,t,l.data,null==l.rawIndex?h:l.rawIndex,l.data.name||y.id+"-"+g.id,y.id,g.id),this.shapeList.push(k),l.shape=k}},this)},_buildEdgeCurves:function(e,t,i,n,a){var o=e[t],r=this.parseCenter(this.zr,n.center);i.eachEdge(function(e,i){var n=a.getNodeById(e.node1.id),s=a.getNodeById(e.node2.id),h=n.shape,V=s.shape,U=this._getEdgeQueryTarget(o,e.data),d=this._getEdgeQueryTarget(o,e.data,"emphasis"),p=new l({zlevel:o.zlevel,z:o.z,style:{xStart:h.position[0],yStart:h.position[1],xEnd:V.position[0],yEnd:V.position[1],cpX1:r[0],cpY1:r[1],lineWidth:this.deepQuery(U,"width"),strokeColor:this.deepQuery(U,"color"),opacity:this.deepQuery(U,"opacity")},highlightStyle:{lineWidth:this.deepQuery(d,"width"),strokeColor:this.deepQuery(d,"color"),opacity:this.deepQuery(d,"opacity")}});m.pack(p,o,t,e.data,null==e.rawIndex?i:e.rawIndex,e.data.name||e.node1.id+"-"+e.node2.id,e.node1.id,e.node2.id),this.shapeList.push(p),e.shape=p},this)},_buildScales:function(e,t,i){var o,r,s=e.clockWise,l=this.parseCenter(this.zr,e.center),h=this.parseRadius(this.zr,e.radius),m=s?1:-1,V=0,d=-(1/0);e.showScaleText&&(i.eachNode(function(e){var t=e.data.value;t>d&&(d=t),V+=t}),d>1e10?(o="b",r=1e-9):d>1e7?(o="m",r=1e-6):d>1e4?(o="k",r=.001):(o="",r=1));var p=V/(360-e.padding);i.eachNode(function(t){for(var i=t.layout.startAngle/Math.PI*180,V=t.layout.endAngle/Math.PI*180,d=i;;){if(s&&d>V||!s&&V>d)break;var c=d/180*Math.PI,u=[Math.cos(c),Math.sin(c)],y=U.scale([],u,h[1]+1);U.add(y,y,l);var g=U.scale([],u,h[1]+this.scaleLineLength);U.add(g,g,l);var b=new a({zlevel:e.zlevel,z:e.z-1,hoverable:!1,style:{xStart:y[0],yStart:y[1],xEnd:g[0],yEnd:g[1],lineCap:"round",brushType:"stroke",strokeColor:"#666",lineWidth:1}});this.shapeList.push(b),d+=m*this.scaleUnitAngle}if(e.showScaleText)for(var f=i,k=5*p*this.scaleUnitAngle,x=0;;){if(s&&f>V||!s&&V>f)break;var c=f;c%=360,0>c&&(c+=360);var _=90>=c||c>=270,L=new n({zlevel:e.zlevel,z:e.z-1,hoverable:!1,style:{x:_?h[1]+this.scaleLineLength+4:-h[1]-this.scaleLineLength-4,y:0,text:Math.round(10*x)/10+o,textAlign:_?"left":"right"},position:l.slice(),rotation:_?[-c/180*Math.PI,0,0]:[-(c+180)/180*Math.PI,0,0]});this.shapeList.push(L),x+=k*r,f+=m*this.scaleUnitAngle*5}},this)},refresh:function(e){if(e&&(this.option=e,this.series=e.series),this.legend=this.component.legend,this.legend)this.getColor=function(e){return this.legend.getColor(e)},this.isSelected=function(e){return this.legend.isSelected(e)};else{var t={},i=0;this.getColor=function(e){return t[e]?t[e]:(t[e]||(t[e]=this.zr.getColor(i++)),t[e])},this.isSelected=function(){return!0}}this.backupShapeList(),this._init()},reformOption:function(e){var t=V.merge;e=t(t(e||{},this.ecTheme.chord),h.chord),e.itemStyle.normal.label.textStyle=this.getTextStyle(e.itemStyle.normal.label.textStyle),this.z=e.z,this.zlevel=e.zlevel}},V.inherits(t,i),e("../chart").define("chord",t),t}),i("echarts/util/shape/Ribbon",["require","zrender/shape/Base","zrender/shape/util/PathProxy","zrender/tool/util","zrender/tool/area"],function(e){function t(e){i.call(this,e),this._pathProxy=new n}var i=e("zrender/shape/Base"),n=e("zrender/shape/util/PathProxy"),a=e("zrender/tool/util"),o=e("zrender/tool/area");return t.prototype={type:"ribbon",buildPath:function(e,t){var i=t.clockWise||!1,n=this._pathProxy;n.begin(e);var a=t.x,o=t.y,r=t.r,s=t.source0/180*Math.PI,l=t.source1/180*Math.PI,h=t.target0/180*Math.PI,m=t.target1/180*Math.PI,V=a+Math.cos(s)*r,U=o+Math.sin(s)*r,d=a+Math.cos(l)*r,p=o+Math.sin(l)*r,c=a+Math.cos(h)*r,u=o+Math.sin(h)*r,y=a+Math.cos(m)*r,g=o+Math.sin(m)*r;n.moveTo(V,U),n.arc(a,o,t.r,s,l,!i),n.bezierCurveTo(.7*(a-d)+d,.7*(o-p)+p,.7*(a-c)+c,.7*(o-u)+u,c,u),(t.source0!==t.target0||t.source1!==t.target1)&&(n.arc(a,o,t.r,h,m,!i),n.bezierCurveTo(.7*(a-y)+y,.7*(o-g)+g,.7*(a-V)+V,.7*(o-U)+U,V,U))},getRect:function(e){return e.__rect?e.__rect:(this._pathProxy.isEmpty()||this.buildPath(null,e),this._pathProxy.fastBoundingRect())},isCover:function(e,t){var i=this.getRect(this.style);return e>=i.x&&e<=i.x+i.width&&t>=i.y&&t<=i.y+i.height?o.isInsidePath(this._pathProxy.pathCommands,0,"fill",e,t):void 0}},a.inherits(t,i),t}),i("echarts/data/Graph",["require","zrender/tool/util"],function(e){var t=e("zrender/tool/util"),i=function(e){this._directed=e||!1,this.nodes=[],this.edges=[],this._nodesMap={},this._edgesMap={}};i.prototype.isDirected=function(){return this._directed},i.prototype.addNode=function(e,t){if(this._nodesMap[e])return this._nodesMap[e];var n=new i.Node(e,t);return this.nodes.push(n),this._nodesMap[e]=n,n},i.prototype.getNodeById=function(e){return this._nodesMap[e]},i.prototype.addEdge=function(e,t,n){if("string"==typeof e&&(e=this._nodesMap[e]),"string"==typeof t&&(t=this._nodesMap[t]),e&&t){var a=e.id+"-"+t.id;if(this._edgesMap[a])return this._edgesMap[a];var o=new i.Edge(e,t,n);return this._directed&&(e.outEdges.push(o),t.inEdges.push(o)),e.edges.push(o),e!==t&&t.edges.push(o),this.edges.push(o),this._edgesMap[a]=o,o}},i.prototype.removeEdge=function(e){var i=e.node1,n=e.node2,a=i.id+"-"+n.id;this._directed&&(i.outEdges.splice(t.indexOf(i.outEdges,e),1),n.inEdges.splice(t.indexOf(n.inEdges,e),1)),i.edges.splice(t.indexOf(i.edges,e),1),i!==n&&n.edges.splice(t.indexOf(n.edges,e),1),delete this._edgesMap[a],this.edges.splice(t.indexOf(this.edges,e),1)},i.prototype.getEdge=function(e,t){return"string"!=typeof e&&(e=e.id),"string"!=typeof t&&(t=t.id),this._directed?this._edgesMap[e+"-"+t]:this._edgesMap[e+"-"+t]||this._edgesMap[t+"-"+e]},i.prototype.removeNode=function(e){if("string"!=typeof e||(e=this._nodesMap[e])){delete this._nodesMap[e.id],this.nodes.splice(t.indexOf(this.nodes,e),1);for(var i=0;in;)e.call(t,this.nodes[n],n)?n++:(this.removeNode(this.nodes[n]),i--)},i.prototype.filterEdge=function(e,t){for(var i=this.edges.length,n=0;i>n;)e.call(t,this.edges[n],n)?n++:(this.removeEdge(this.edges[n]),i--)},i.prototype.eachNode=function(e,t){for(var i=this.nodes.length,n=0;i>n;n++)this.nodes[n]&&e.call(t,this.nodes[n],n)},i.prototype.eachEdge=function(e,t){for(var i=this.edges.length,n=0;i>n;n++)this.edges[n]&&e.call(t,this.edges[n],n)},i.prototype.clear=function(){this.nodes.length=0,this.edges.length=0,this._nodesMap={},this._edgesMap={}},i.prototype.breadthFirstTraverse=function(e,t,i,n){if("string"==typeof t&&(t=this._nodesMap[t]),t){var a="edges";"out"===i?a="outEdges":"in"===i&&(a="inEdges");for(var o=0;or;r++){var s=o.addNode(e[r].id,e[r]);s.data.value=0,n&&(s.data.outValue=s.data.inValue=0)}for(var r=0;a>r;r++)for(var l=0;a>l;l++){var h=t[r][l];n&&(o.nodes[r].data.outValue+=h,o.nodes[l].data.inValue+=h),o.nodes[r].data.value+=h,o.nodes[l].data.value+=h}for(var r=0;a>r;r++)for(var l=r;a>l;l++){var h=t[r][l];if(0!==h){var m=o.nodes[r],V=o.nodes[l],U=o.addEdge(m,V,{});if(U.data.weight=h,r!==l&&n&&t[l][r]){var d=o.addEdge(V,m,{});d.data.weight=t[l][r]}}}return o}},i}),i("echarts/layout/Chord",["require"],function(){var e=function(e){e=e||{},this.sort=e.sort||null,this.sortSub=e.sortSub||null,this.padding=.05,this.startAngle=e.startAngle||0,this.clockWise=null==e.clockWise?!1:e.clockWise,this.center=e.center||[0,0],this.directed=!0};e.prototype.run=function(e){e instanceof Array||(e=[e]);var n=e.length;if(n){for(var a=e[0],o=a.nodes.length,r=[],s=0,l=0;o>l;l++){var h=a.nodes[l],m={size:0,subGroups:[],node:h};r.push(m);for(var V=0,U=0;Ul;l++){var m=r[l];m.node.layout.startAngle=f,m.node.layout.endAngle=f+k*m.size*b,m.node.layout.subGroups=[];for(var u=0;un;n++){var o=i[n];if(o.type===d.CHART_TYPE_FORCE){if(i[n]=this.reformOption(i[n]),e=i[n].name||"",this.selectedMap[e]=t?t.isSelected(e):!0,!this.selectedMap[e])continue;this.buildMark(n),this._initSerie(o,n);break}}this.animationEffect()},_getNodeCategory:function(e,t){return e.categories&&e.categories[t.category||0]},_getNodeQueryTarget:function(e,t,i){i=i||"normal";var n=this._getNodeCategory(e,t)||{};return[t.itemStyle&&t.itemStyle[i],n&&n.itemStyle&&n.itemStyle[i],e.itemStyle[i].nodeStyle]},_getEdgeQueryTarget:function(e,t,i){return i=i||"normal",[t.itemStyle&&t.itemStyle[i],e.itemStyle[i].linkStyle]},_initSerie:function(e,t){this._temperature=1,e.matrix?this._graph=this._getSerieGraphFromDataMatrix(e):e.links&&(this._graph=this._getSerieGraphFromNodeLinks(e)),this._buildLinkShapes(e,t),this._buildNodeShapes(e,t);var i=e.roam===!0||"move"===e.roam,n=e.roam===!0||"scale"===e.roam;this.zr.modLayer(this.getZlevelBase(),{panable:i,zoomable:n}),(this.query("markPoint.effect.show")||this.query("markLine.effect.show"))&&this.zr.modLayer(d.EFFECT_ZLEVEL,{panable:i,zoomable:n}),this._initLayout(e),this._step()},_getSerieGraphFromDataMatrix:function(e){for(var t=[],i=0,n=[],a=0;an;n++){var o=i[n];if(o&&!o.ignore){var r=this._getNodeCategory(e,o),l=r?r.name:o.name;if(this.selectedMap[l]=this.isSelected(l),this.selectedMap[l]){var h=t.addNode(o.name,o);h.rawIndex=n}}}for(var n=0,a=e.links.length;a>n;n++){var m=e.links[n],V=m.source,U=m.target;"number"==typeof V&&(V=i[V],V&&(V=V.name)),"number"==typeof U&&(U=i[U],U&&(U=U.name));var d=t.addEdge(V,U,m);d&&(d.rawIndex=n)}return t.eachNode(function(e){var t=e.data.value;if(null==t){t=0;for(var i=0;ih;h++){var m=t.nodes[h];l=Math.max(m.layout.size,l),s=Math.min(m.layout.size,s)}for(var V=l-s,h=0;i>h;h++){var m=t.nodes[h];V>0?(m.layout.size=(m.layout.size-s)*(a-n)/V+n,m.layout.mass=m.layout.size/a):(m.layout.size=(a-n)/2,m.layout.mass=.5)}for(var h=0;i>h;h++){var m=t.nodes[h];if("undefined"!=typeof this.__nodePositionMap[m.id])m.layout.position=y.create(),y.copy(m.layout.position,this.__nodePositionMap[m.id]);else if("undefined"!=typeof m.data.initial)m.layout.position=y.create(),y.copy(m.layout.position,m.data.initial);else{var U=this._layout.center,d=Math.min(this._layout.width,this._layout.height);m.layout.position=o(U[0],U[1],.8*d)}var p=m.shape.style,c=m.layout.size;p.width=p.width||2*c,p.height=p.height||2*c,p.x=-p.width/2,p.y=-p.height/2,y.copy(m.shape.position,m.layout.position)}i=t.edges.length,l=-(1/0);for(var h=0;i>h;h++){var u=t.edges[h];u.layout.weight>l&&(l=u.layout.weight)}for(var h=0;i>h;h++){var u=t.edges[h];u.layout.weight/=l}this._layout.init(t,e.useWorker)},_buildNodeShapes:function(e,t){var i=this._graph,n=this.query(e,"categories");i.eachNode(function(i){var a=this._getNodeCategory(e,i.data),o=[i.data,a,e],r=this._getNodeQueryTarget(e,i.data),s=this._getNodeQueryTarget(e,i.data,"emphasis"),l=new U({style:{x:0,y:0,color:this.deepQuery(r,"color"),brushType:"both",strokeColor:this.deepQuery(r,"strokeColor")||this.deepQuery(r,"borderColor"),lineWidth:this.deepQuery(r,"lineWidth")||this.deepQuery(r,"borderWidth")},highlightStyle:{color:this.deepQuery(s,"color"),strokeColor:this.deepQuery(s,"strokeColor")||this.deepQuery(s,"borderColor"),lineWidth:this.deepQuery(s,"lineWidth")||this.deepQuery(s,"borderWidth")},clickable:e.clickable,zlevel:this.getZlevelBase(),z:this.getZBase()});l.style.color||(l.style.color=this.getColor(a?a.name:i.id)),l.style.iconType=this.deepQuery(o,"symbol");var h=this.deepQuery(o,"symbolSize")||0;"number"==typeof h&&(h=[h,h]),l.style.width=2*h[0],l.style.height=2*h[1],l.style.iconType.match("image")&&(l.style.image=l.style.iconType.replace(new RegExp("^image:\\/\\/"),""),l=new V({style:l.style,highlightStyle:l.highlightStyle,clickable:l.clickable,zlevel:this.getZlevelBase(),z:this.getZBase()})),this.deepQuery(o,"itemStyle.normal.label.show")&&(l.style.text=null==i.data.label?i.id:i.data.label,l.style.textPosition=this.deepQuery(o,"itemStyle.normal.label.position"),l.style.textColor=this.deepQuery(o,"itemStyle.normal.label.textStyle.color"),l.style.textFont=this.getFont(this.deepQuery(o,"itemStyle.normal.label.textStyle")||{})),this.deepQuery(o,"itemStyle.emphasis.label.show")&&(l.highlightStyle.textPosition=this.deepQuery(o,"itemStyle.emphasis.label.position"),l.highlightStyle.textColor=this.deepQuery(o,"itemStyle.emphasis.label.textStyle.color"),l.highlightStyle.textFont=this.getFont(this.deepQuery(o,"itemStyle.emphasis.label.textStyle")||{})),this.deepQuery(o,"draggable")&&(this.setCalculable(l),l.dragEnableTime=0,l.draggable=!0,l.ondragstart=this.shapeHandler.ondragstart,l.ondragover=null);var m="";if("undefined"!=typeof i.category){var a=n[i.category];m=a&&a.name||""}p.pack(l,e,t,i.data,i.rawIndex,i.data.name||"",i.category),this.shapeList.push(l),this.zr.addShape(l),i.shape=l},this)},_buildLinkShapes:function(e,t){for(var i=this._graph,n=i.edges.length,a=0;n>a;a++){var o=i.edges[a],r=o.data,s=o.node1,l=o.node2,V=i.getEdge(l,s),d=this._getEdgeQueryTarget(e,r),u=this.deepQuery(d,"type");e.linkSymbol&&"none"!==e.linkSymbol&&(u="line");var y="line"===u?h:m,g=new y({style:{xStart:0,yStart:0,xEnd:0,yEnd:0},clickable:this.query(e,"clickable"),highlightStyle:{},zlevel:this.getZlevelBase(),z:this.getZBase()});if(V&&V.shape&&(g.style.offset=4,V.shape.style.offset=4),c.merge(g.style,this.query(e,"itemStyle.normal.linkStyle"),!0),c.merge(g.highlightStyle,this.query(e,"itemStyle.emphasis.linkStyle"),!0),"undefined"!=typeof r.itemStyle&&(r.itemStyle.normal&&c.merge(g.style,r.itemStyle.normal,!0),r.itemStyle.emphasis&&c.merge(g.highlightStyle,r.itemStyle.emphasis,!0)),g.style.lineWidth=g.style.lineWidth||g.style.width,g.style.strokeColor=g.style.strokeColor||g.style.color,g.highlightStyle.lineWidth=g.highlightStyle.lineWidth||g.highlightStyle.width,g.highlightStyle.strokeColor=g.highlightStyle.strokeColor||g.highlightStyle.color,p.pack(g,e,t,o.data,null==o.rawIndex?a:o.rawIndex,o.data.name||s.id+" - "+l.id,s.id,l.id),this.shapeList.push(g),this.zr.addShape(g),o.shape=g,e.linkSymbol&&"none"!==e.linkSymbol){var b=new U({style:{x:-5,y:0,width:e.linkSymbolSize[0],height:e.linkSymbolSize[1],iconType:e.linkSymbol,brushType:"fill",color:g.style.strokeColor},highlightStyle:{brushType:"fill"},position:[0,0],rotation:0,zlevel:this.getZlevelBase(),z:this.getZBase()});g._symbolShape=b,this.shapeList.push(b),this.zr.addShape(b)}}},_updateLinkShapes:function(){for(var e=y.create(),t=y.create(),i=y.create(),n=y.create(),a=this._graph.edges,o=0,r=a.length;r>o;o++){var s=a[o],l=s.node1.shape,h=s.node2.shape;y.copy(i,l.position),y.copy(n,h.position);var m=s.shape.style;if(y.sub(e,i,n),y.normalize(e,e),m.offset?(t[0]=e[1],t[1]=-e[0],y.scaleAndAdd(i,i,t,m.offset),y.scaleAndAdd(n,n,t,m.offset)):"bezier-curve"===s.shape.type&&(m.cpX1=(i[0]+n[0])/2-(n[1]-i[1])/4,m.cpY1=(i[1]+n[1])/2-(i[0]-n[0])/4),m.xStart=i[0],m.yStart=i[1],m.xEnd=n[0],m.yEnd=n[1],s.shape.modSelf(),s.shape._symbolShape){var V=s.shape._symbolShape;y.copy(V.position,n),y.scaleAndAdd(V.position,V.position,e,h.style.width/2+2);var U=Math.atan2(e[1],e[0]);V.rotation=Math.PI/2-U,V.modSelf()}}},_syncNodePositions:function(){for(var e=this._graph,t=0;t.01?this._layout.step(this._steps):this.messageCenter.dispatch(d.EVENT.FORCE_LAYOUT_END,{},{},this.myChart)},refresh:function(e){if(e&&(this.option=e,this.series=this.option.series),this.legend=this.component.legend,this.legend)this.getColor=function(e){return this.legend.getColor(e)},this.isSelected=function(e){return this.legend.isSelected(e)};else{var t={},i=0;this.getColor=function(e){return t[e]?t[e]:(t[e]||(t[e]=this.zr.getColor(i++)),t[e])},this.isSelected=function(){return!0}}this._init()},dispose:function(){this.clear(),this.shapeList=null,this.effectList=null,this._layout.dispose(),this._layout=null,this.__nodePositionMap={}},getPosition:function(){var e=[];return this._graph.eachNode(function(t){t.layout&&e.push({name:t.data.name,position:Array.prototype.slice.call(t.layout.position)})}),e}},c.inherits(t,r),e("../chart").define("force",t),t}),i("echarts/layout/Force",["require","./forceLayoutWorker","zrender/tool/vector"],function(e){function t(){if("undefined"!=typeof Worker&&"undefined"!=typeof Blob)try{var e=new Blob([n.getWorkerCode()]);i=window.URL.createObjectURL(e)}catch(t){i=""}return i}var i,n=e("./forceLayoutWorker"),a=e("zrender/tool/vector"),o=window.requestAnimationFrame||window.msRequestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(e){setTimeout(e,16)},r="undefined"==typeof Float32Array?Array:Float32Array,s=function(e){"undefined"==typeof i&&t(),e=e||{},this.width=e.width||500,this.height=e.height||500,this.center=e.center||[this.width/2,this.height/2],this.ratioScaling=e.ratioScaling||!1,this.scaling=e.scaling||1,this.gravity="undefined"!=typeof e.gravity?e.gravity:1,this.large=e.large||!1,this.preventNodeOverlap=e.preventNodeOverlap||!1,this.preventNodeEdgeOverlap=e.preventNodeEdgeOverlap||!1,this.maxSpeedIncrease=e.maxSpeedIncrease||1,this.onupdate=e.onupdate||function(){},this.temperature=e.temperature||1,this.coolDown=e.coolDown||.99,this._layout=null,this._layoutWorker=null;var n=this,a=this._$onupdate;this._$onupdate=function(e){a.call(n,e)}};return s.prototype.updateConfig=function(){var e=this.width,t=this.height,i=Math.min(e,t),n={center:this.center,width:this.ratioScaling?e:i,height:this.ratioScaling?t:i,scaling:this.scaling||1,gravity:this.gravity||1,barnesHutOptimize:this.large,preventNodeOverlap:this.preventNodeOverlap,preventNodeEdgeOverlap:this.preventNodeEdgeOverlap,maxSpeedIncrease:this.maxSpeedIncrease};if(this._layoutWorker)this._layoutWorker.postMessage({cmd:"updateConfig",config:n});else for(var a in n)this._layout[a]=n[a]},s.prototype.init=function(e,t){if(this._layoutWorker&&(this._layoutWorker.terminate(),this._layoutWorker=null),i&&t)try{this._layoutWorker||(this._layoutWorker=new Worker(i),this._layoutWorker.onmessage=this._$onupdate),this._layout=null}catch(a){this._layoutWorker=null,this._layout||(this._layout=new n)}else this._layout||(this._layout=new n);this.temperature=1,this.graph=e;for(var o=e.nodes.length,s=new r(2*o),l=new r(o),h=new r(o),m=0;o>m;m++){var V=e.nodes[m];s[2*m]=V.layout.position[0],s[2*m+1]=V.layout.position[1],l[m]="undefined"==typeof V.layout.mass?1:V.layout.mass,h[m]="undefined"==typeof V.layout.size?1:V.layout.size,V.layout.__index=m}o=e.edges.length;for(var U=new r(2*o),d=new r(o),m=0;o>m;m++){var p=e.edges[m];U[2*m]=p.node1.layout.__index,U[2*m+1]=p.node2.layout.__index,d[m]=p.layout.weight||1}this._layoutWorker?this._layoutWorker.postMessage({cmd:"init",nodesPosition:s,nodesMass:l,nodesSize:h,edges:U,edgesWeight:d}):(this._layout.initNodes(s,l,h),this._layout.initEdges(U,d)),this.updateConfig()},s.prototype.step=function(e){var t=this.graph.nodes;if(this._layoutWorker){for(var i=new r(2*t.length),n=0;nn;n++)this.temperature*=this.coolDown}else{o(this._$onupdate);for(var n=0;nn;n++)this._layout.temperature=this.temperature,this._layout.update(),this.temperature*=this.coolDown}},s.prototype._$onupdate=function(e){if(this._layoutWorker){for(var t=new Float32Array(e.data),i=0;i0&&(a=1/Math.sqrt(a),e[0]=t[0]*a,e[1]=t[1]*a),e},negate:function(e,t){return e[0]=-t[0],e[1]=-t[1],e},copy:function(e,t){return e[0]=t[0],e[1]=t[1],e},set:function(e,t,i){return e[0]=t,e[1]=i,e}}:e("zrender/tool/vector");var l="undefined"==typeof Float32Array?Array:Float32Array;if(t.prototype.beforeUpdate=function(){for(var e=0;e=e&&this.bbox[1]<=t&&this.bbox[3]>=t},t.prototype.setBBox=function(e,t,i,n){this.bbox[0]=e,this.bbox[1]=t,this.bbox[2]=i,this.bbox[3]=n,this.size=(i-e+n-t)/2},t.prototype._newSubRegion=function(){var e=this.subRegions[this.nSubRegions];return e||(e=new t,this.subRegions[this.nSubRegions]=e),this.nSubRegions++,e},t.prototype._addNodeToSubRegion=function(e){var t=this.findSubRegion(e.position[0],e.position[1]),i=this.bbox;if(!t){var n=(i[0]+i[2])/2,a=(i[1]+i[3])/2,o=(i[2]-i[0])/2,r=(i[3]-i[1])/2,s=e.position[0]>=n?1:0,l=e.position[1]>=a?1:0,t=this._newSubRegion();t.setBBox(s*o+i[0],l*r+i[1],(s+1)*o+i[0],(l+1)*r+i[1])}t.addNode(e)},t.prototype._updateCenterOfMass=function(e){null==this.centerOfMass&&(this.centerOfMass=r.create());var t=this.centerOfMass[0]*this.mass,i=this.centerOfMass[1]*this.mass;t+=e.position[0]*e.mass,i+=e.position[1]*e.mass,this.mass+=e.mass,this.centerOfMass[0]=t/this.mass,this.centerOfMass[1]=i/this.mass},a.prototype.nodeToNodeRepulsionFactor=function(e,t,i){return i*i*e/t},a.prototype.edgeToNodeRepulsionFactor=function(e,t,i){return i*e/t},a.prototype.attractionFactor=function(e,t,i){return e*t/i},a.prototype.initNodes=function(e,t,n){this.temperature=1;var a=e.length/2;this.nodes.length=0;for(var o="undefined"!=typeof n,r=0;a>r;r++){var s=new i;s.position[0]=e[2*r],s.position[1]=e[2*r+1],s.mass=t[r],o&&(s.size=n[r]),this.nodes.push(s)}this._massArr=t,o&&(this._sizeArr=n)},a.prototype.initEdges=function(e,t){var i=e.length/2;this.edges.length=0;for(var a="undefined"!=typeof t,o=0;i>o;o++){var r=e[2*o],s=e[2*o+1],l=this.nodes[r],h=this.nodes[s];if(l&&h){l.outDegree++,h.inDegree++;var m=new n(l,h);a&&(m.weight=t[o]),this.edges.push(m)}}},a.prototype.update=function(){var e=this.nodes.length;if(this.updateBBox(),this._k=.4*this.scaling*Math.sqrt(this.width*this.height/e),this.barnesHutOptimize){this._rootRegion.setBBox(this.bbox[0],this.bbox[1],this.bbox[2],this.bbox[3]),this._rootRegion.beforeUpdate();for(var t=0;e>t;t++)this._rootRegion.addNode(this.nodes[t]);this._rootRegion.afterUpdate()}else{var i=0,n=this._rootRegion.centerOfMass;r.set(n,0,0);for(var t=0;e>t;t++){var a=this.nodes[t];i+=a.mass,r.scaleAndAdd(n,n,a.position,a.mass); - -}i>0&&r.scale(n,n,1/i)}this.updateForce(),this.updatePosition()},a.prototype.updateForce=function(){for(var e=this.nodes.length,t=0;e>t;t++){var i=this.nodes[t];r.copy(i.forcePrev,i.force),r.copy(i.speedPrev,i.speed),r.set(i.force,0,0)}this.updateNodeNodeForce(),this.gravity>0&&this.updateGravityForce(),this.updateEdgeForce(),this.preventNodeEdgeOverlap&&this.updateNodeEdgeForce()},a.prototype.updatePosition=function(){for(var e=this.nodes.length,t=r.create(),i=0;e>i;i++){var n=this.nodes[i],a=n.speed;r.scale(n.force,n.force,1/30);var o=r.len(n.force)+.1,s=Math.min(o,500)/o;r.scale(n.force,n.force,s),r.add(a,a,n.force),r.scale(a,a,this.temperature),r.sub(t,a,n.speedPrev);var l=r.len(t);if(l>0){r.scale(t,t,1/l);var h=r.len(n.speedPrev);h>0&&(l=Math.min(l/h,this.maxSpeedIncrease)*h,r.scaleAndAdd(a,n.speedPrev,t,l))}var m=r.len(a),s=Math.min(m,100)/(m+.1);r.scale(a,a,s),r.add(n.position,n.position,a)}},a.prototype.updateNodeNodeForce=function(){for(var e=this.nodes.length,t=0;e>t;t++){var i=this.nodes[t];if(this.barnesHutOptimize)this.applyRegionToNodeRepulsion(this._rootRegion,i);else for(var n=t+1;e>n;n++){var a=this.nodes[n];this.applyNodeToNodeRepulsion(i,a,!1)}}},a.prototype.updateGravityForce=function(){for(var e=0;ethis.barnesHutTheta*t.size*t.size){var a=this._k*this._k*(i.mass+t.mass)/(n+1);r.scaleAndAdd(i.force,i.force,e,2*a)}else for(var o=0;o0?o=this.nodeToNodeRepulsionFactor(s,l,this._k):0>=l&&(o=this._k*this._k*10*s)):o=this.nodeToNodeRepulsionFactor(s,l,this._k),n||r.scaleAndAdd(t.force,t.force,e,2*o),r.scaleAndAdd(i.force,i.force,e,2*-o)}}}}(),a.prototype.applyEdgeAttraction=function(){var e=r.create();return function(t){var i=t.node1,n=t.node2;r.sub(e,i.position,n.position);var a,o=r.len(e);a=0===this.edgeWeightInfluence?1:1==this.edgeWeightInfluence?t.weight:Math.pow(t.weight,this.edgeWeightInfluence);var s;if(!(this.preventOverlap&&(o=o-i.size-n.size,0>=o))){var s=this.attractionFactor(a,o,this._k);r.scaleAndAdd(i.force,i.force,e,-s),r.scaleAndAdd(n.force,n.force,e,s)}}}(),a.prototype.applyNodeGravity=function(){var e=r.create();return function(t){r.sub(e,this.center,t.position),this.width>this.height?e[1]*=this.width/this.height:e[0]*=this.height/this.width;var i=r.len(e)/100;this.strongGravity?r.scaleAndAdd(t.force,t.force,e,i*this.gravity*t.mass):r.scaleAndAdd(t.force,t.force,e,this.gravity*t.mass/(i+1))}}(),a.prototype.applyEdgeToNodeRepulsion=function(){var e=r.create(),t=r.create(),i=r.create();return function(n,a){var o=n.node1,s=n.node2;if(o!==a&&s!==a){r.sub(e,s.position,o.position),r.sub(t,a.position,o.position);var l=r.len(e);r.scale(e,e,1/l);var h=r.dot(e,t);if(!(0>h||h>l)){r.scaleAndAdd(i,o.position,e,h);var m=r.dist(i,a.position)-a.size,V=this.edgeToNodeRepulsionFactor(a.mass,Math.max(m,.1),100);r.sub(e,a.position,i),r.normalize(e,e),r.scaleAndAdd(a.force,a.force,e,V),r.scaleAndAdd(o.force,o.force,e,-V),r.scaleAndAdd(s.force,s.force,e,-V)}}}}(),a.prototype.updateBBox=function(){for(var e=1/0,t=1/0,i=-(1/0),n=-(1/0),a=0;an;n++){var o=h.nodes[n];o.position[0]=t[2*n],o.position[1]=t[2*n+1]}}else switch(e.data.cmd){case"init":h||(h=new a),h.initNodes(e.data.nodesPosition,e.data.nodesMass,e.data.nodesSize),h.initEdges(e.data.edges,e.data.edgesWeight);break;case"updateConfig":if(h)for(var r in e.data.config)h[r]=e.data.config[r];break;case"update":var s=e.data.steps;if(h){var i=h.nodes.length,t=new Float32Array(2*i);h.temperature=e.data.temperature;for(var n=0;s>n;n++)h.update(),h.temperature*=e.data.coolDown;for(var n=0;i>n;n++){var o=h.nodes[n];t[2*n]=o.position[0],t[2*n+1]=o.position[1]}self.postMessage(t.buffer,[t.buffer])}else{var l=new Float32Array;self.postMessage(l.buffer,[l.buffer])}}}}return a}),i("echarts/chart/map",["require","./base","zrender/shape/Text","zrender/shape/Path","zrender/shape/Circle","zrender/shape/Rectangle","zrender/shape/Line","zrender/shape/Polygon","zrender/shape/Ellipse","zrender/shape/Image","../component/dataRange","../component/roamController","../layer/heatmap","../config","../util/ecData","zrender/tool/util","zrender/config","zrender/tool/event","../util/mapData/params","../util/mapData/textFixed","../util/mapData/geoCoord","../util/projection/svg","../util/projection/normal","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o);var r=this;r._onmousewheel=function(e){return r.__onmousewheel(e)},r._onmousedown=function(e){return r.__onmousedown(e)},r._onmousemove=function(e){return r.__onmousemove(e)},r._onmouseup=function(e){return r.__onmouseup(e)},r._onroamcontroller=function(e){return r.__onroamcontroller(e)},r._ondrhoverlink=function(e){return r.__ondrhoverlink(e)},this._isAlive=!0,this._selectedMode={},this._activeMapType={},this._clickable={},this._hoverable={},this._showLegendSymbol={},this._selected={},this._mapTypeMap={},this._mapDataMap={},this._nameMap={},this._specialArea={},this._refreshDelayTicket,this._mapDataRequireCounter,this._markAnimation=!1,this._hoverLinkMap={},this._roamMap={},this._scaleLimitMap={},this._mx,this._my,this._mousedown,this._justMove,this._curMapType,this.refresh(a),this.zr.on(c.EVENT.MOUSEWHEEL,this._onmousewheel),this.zr.on(c.EVENT.MOUSEDOWN,this._onmousedown),t.bind(U.EVENT.ROAMCONTROLLER,this._onroamcontroller),t.bind(U.EVENT.DATA_RANGE_HOVERLINK,this._ondrhoverlink)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Path"),o=e("zrender/shape/Circle"),r=e("zrender/shape/Rectangle"),s=e("zrender/shape/Line"),l=e("zrender/shape/Polygon"),h=e("zrender/shape/Ellipse"),m=e("zrender/shape/Image");e("../component/dataRange"),e("../component/roamController");var V=e("../layer/heatmap"),U=e("../config");U.map={zlevel:0,z:2,mapType:"china",showLegendSymbol:!0,dataRangeHoverLink:!0,hoverable:!0,clickable:!0,itemStyle:{normal:{borderColor:"rgba(0,0,0,0)",borderWidth:1,areaStyle:{color:"#ccc"},label:{show:!1,textStyle:{color:"rgb(139,69,19)"}}},emphasis:{borderColor:"rgba(0,0,0,0)",borderWidth:1,areaStyle:{color:"rgba(255,215,0,0.8)"},label:{show:!1,textStyle:{color:"rgb(100,0,0)"}}}}};var d=e("../util/ecData"),p=e("zrender/tool/util"),c=e("zrender/config"),u=e("zrender/tool/event"),y=e("../util/mapData/params").params,g=e("../util/mapData/textFixed"),b=e("../util/mapData/geoCoord");return t.prototype={type:U.CHART_TYPE_MAP,_buildShape:function(){var e=this.series;this.selectedMap={},this._activeMapType={};for(var t,i,n,a,o=this.component.legend,r={},s={},l={},h={},m=0,V=e.length;V>m;m++)if(e[m].type==U.CHART_TYPE_MAP&&(e[m]=this.reformOption(e[m]),i=e[m].mapType,s[i]=s[i]||{},s[i][m]=!0,l[i]=l[i]||e[m].mapValuePrecision,this._scaleLimitMap[i]=this._scaleLimitMap[i]||{},e[m].scaleLimit&&p.merge(this._scaleLimitMap[i],e[m].scaleLimit,!0),this._roamMap[i]=e[m].roam||this._roamMap[i],(null==this._hoverLinkMap[i]||this._hoverLinkMap[i])&&(this._hoverLinkMap[i]=e[m].dataRangeHoverLink),this._nameMap[i]=this._nameMap[i]||{},e[m].nameMap&&p.merge(this._nameMap[i],e[m].nameMap,!0),this._activeMapType[i]=!0,e[m].textFixed&&p.merge(g,e[m].textFixed,!0),e[m].geoCoord&&p.merge(b,e[m].geoCoord,!0),this._selectedMode[i]=this._selectedMode[i]||e[m].selectedMode,(null==this._hoverable[i]||this._hoverable[i])&&(this._hoverable[i]=e[m].hoverable),(null==this._clickable[i]||this._clickable[i])&&(this._clickable[i]=e[m].clickable),(null==this._showLegendSymbol[i]||this._showLegendSymbol[i])&&(this._showLegendSymbol[i]=e[m].showLegendSymbol),h[i]=h[i]||e[m].mapValueCalculation,t=e[m].name,this.selectedMap[t]=o?o.isSelected(t):!0,this.selectedMap[t])){r[i]=r[i]||{},n=e[m].data;for(var d=0,c=n.length;c>d;d++){a=this._nameChange(i,n[d].name),r[i][a]=r[i][a]||{seriesIndex:[],valueMap:{},precision:0};for(var u in n[d])"value"!=u?r[i][a][u]=n[d][u]:isNaN(n[d].value)||(null==r[i][a].value&&(r[i][a].value=0),r[i][a].precision=Math.max(this.getPrecision(+n[d].value),r[i][a].precision),r[i][a].value+=+n[d].value,r[i][a].valueMap[m]=+n[d].value);r[i][a].seriesIndex.push(m)}}this._mapDataRequireCounter=0;for(var f in r)this._mapDataRequireCounter++;this._clearSelected(),0===this._mapDataRequireCounter&&(this.clear(),this.zr&&this.zr.delShape(this.lastShapeList),this.lastShapeList=[]);for(var f in r){for(var c in r[f]){"average"==h[f]&&(r[f][c].value/=r[f][c].seriesIndex.length);var k=r[f][c].value;null!=k&&(r[f][c].value=k.toFixed(null==l[f]?r[f][c].precision:l[f])-0)}this._mapDataMap[f]=this._mapDataMap[f]||{},this._mapDataMap[f].mapData?this._mapDataCallback(f,r[f],s[f])(this._mapDataMap[f].mapData):y[f.replace(/\|.*/,"")].getGeoJson&&(this._specialArea[f]=y[f.replace(/\|.*/,"")].specialArea||this._specialArea[f],y[f.replace(/\|.*/,"")].getGeoJson(this._mapDataCallback(f,r[f],s[f])))}},_mapDataCallback:function(t,i,n){var a=this;return function(o){a._isAlive&&null!=a._activeMapType[t]&&(-1!=t.indexOf("|")&&(o=a._getSubMapData(t,o)),a._mapDataMap[t].mapData=o,o.firstChild?(a._mapDataMap[t].rate=1,a._mapDataMap[t].projection=e("../util/projection/svg")):(a._mapDataMap[t].rate=.75,a._mapDataMap[t].projection=e("../util/projection/normal")),a._buildMap(t,a._getProjectionData(t,o,n),i,n),a._buildMark(t,n),--a._mapDataRequireCounter<=0&&(a.addShapeList(),a.zr.refreshNextFrame()),a._buildHeatmap(t))}},_clearSelected:function(){for(var e in this._selected)this._activeMapType[this._mapTypeMap[e]]||(delete this._selected[e],delete this._mapTypeMap[e])},_getSubMapData:function(e,t){for(var i=e.replace(/^.*\|/,""),n=t.features,a=0,o=n.length;o>a;a++)if(n[a].properties&&n[a].properties.name==i){n=n[a],"United States of America"==i&&n.geometry.coordinates.length>1&&(n={geometry:{coordinates:n.geometry.coordinates.slice(5,6),type:n.geometry.type},id:n.id,properties:n.properties,type:n.type});break}return{type:"FeatureCollection",features:[n]}},_getProjectionData:function(e,t,i){var n,a=this._mapDataMap[e].projection,o=[],r=this._mapDataMap[e].bbox||a.getBbox(t,this._specialArea[e]);n=this._mapDataMap[e].hasRoam?this._mapDataMap[e].transform:this._getTransform(r,i,this._mapDataMap[e].rate);var s,l=this._mapDataMap[e].lastTransform||{scale:{}};n.left!=l.left||n.top!=l.top||n.scale.x!=l.scale.x||n.scale.y!=l.scale.y?(s=a.geoJson2Path(t,n,this._specialArea[e]),l=p.clone(n)):(n=this._mapDataMap[e].transform,s=this._mapDataMap[e].pathArray),this._mapDataMap[e].bbox=r,this._mapDataMap[e].transform=n,this._mapDataMap[e].lastTransform=l,this._mapDataMap[e].pathArray=s;for(var h=[n.left,n.top],m=0,V=s.length;V>m;m++)o.push(this._getSingleProvince(e,s[m],h));if(this._specialArea[e])for(var U in this._specialArea[e])o.push(this._getSpecialProjectionData(e,t,U,this._specialArea[e][U],h));if("china"==e){var d=this.geo2pos(e,b["南海诸岛"]||y["南海诸岛"].textCoord),c=n.scale.x/10.5,u=[32*c+d[0],83*c+d[1]];g["南海诸岛"]&&(u[0]+=g["南海诸岛"][0],u[1]+=g["南海诸岛"][1]),o.push({name:this._nameChange(e,"南海诸岛"),path:y["南海诸岛"].getPath(d,c),position:h,textX:u[0],textY:u[1]})}return o},_getSpecialProjectionData:function(t,i,n,a,o){i=this._getSubMapData("x|"+n,i);var r=e("../util/projection/normal"),s=r.getBbox(i),l=this.geo2pos(t,[a.left,a.top]),h=this.geo2pos(t,[a.left+a.width,a.top+a.height]),m=Math.abs(h[0]-l[0]),V=Math.abs(h[1]-l[1]),U=s.width,d=s.height,p=m/.75/U,c=V/d;p>c?(p=.75*c,m=U*p):(c=p,p=.75*c,V=d*c);var u={OffsetLeft:l[0],OffsetTop:l[1],scale:{x:p,y:c}},y=r.geoJson2Path(i,u);return this._getSingleProvince(t,y[0],o)},_getSingleProvince:function(e,t,i){var n,a=t.properties.name,o=g[a]||[0,0];if(b[a])n=this.geo2pos(e,b[a]);else if(t.cp)n=[t.cp[0]+o[0],t.cp[1]+o[1]];else{var r=this._mapDataMap[e].bbox;n=this.geo2pos(e,[r.left+r.width/2,r.top+r.height/2]),n[0]+=o[0],n[1]+=o[1]}return t.name=this._nameChange(e,a),t.position=i,t.textX=n[0],t.textY=n[1],t},_getTransform:function(e,t,i){var n,a,o,r,s,l,h,m=this.series,V=this.zr.getWidth(),U=this.zr.getHeight(),d=Math.round(.02*Math.min(V,U));for(var p in t)n=m[p].mapLocation||{},o=n.x||o,s=n.y||s,l=n.width||l,h=n.height||h;a=this.parsePercent(o,V),a=isNaN(a)?d:a,r=this.parsePercent(s,U),r=isNaN(r)?d:r,l=null==l?V-a-2*d:this.parsePercent(l,V),h=null==h?U-r-2*d:this.parsePercent(h,U);var c=e.width,u=e.height,y=l/i/c,g=h/u;if(y>g?(y=g*i,l=c*y):(g=y,y=g*i,h=u*g),isNaN(o))switch(o=o||"center",o+""){case"center":a=Math.floor((V-l)/2);break;case"right":a=V-l}if(isNaN(s))switch(s=s||"center",s+""){case"center":r=Math.floor((U-h)/2);break;case"bottom":r=U-h}return{left:a,top:r,width:l,height:h,baseScale:1,scale:{x:y,y:g}}},_buildMap:function(e,t,i,m){for(var V,c,u,y,g,b,f,k,x,_,L,W=this.series,X=this.component.legend,v=this.component.dataRange,w=0,K=t.length;K>w;w++){if(k=p.clone(t[w]),x={name:k.name,path:k.path,position:p.clone(k.position)},c=k.name,u=i[c]){g=[u],V="";for(var I=0,J=u.seriesIndex.length;J>I;I++){var C=W[u.seriesIndex[I]];g.push(C),V+=C.name+" ",X&&this._showLegendSymbol[e]&&X.hasColor(C.name)&&this.shapeList.push(new o({zlevel:C.zlevel,z:C.z+1,position:p.clone(k.position),_mapType:e,style:{x:k.textX+3+7*I,y:k.textY-10,r:3,color:X.getColor(C.name)},hoverable:!1}))}y=u.value}else{u={name:c,value:"-"},V="",g=[];for(var S in m)g.push(W[S]);y="-"}switch(this.ecTheme.map&&g.push(this.ecTheme.map),g.push(U.map),b=v&&!isNaN(y)?v.getColor(y):null,k.color=k.color||b||this.getItemStyleColor(this.deepQuery(g,"itemStyle.normal.color"),u.seriesIndex,-1,u)||this.deepQuery(g,"itemStyle.normal.areaStyle.color"),k.strokeColor=k.strokeColor||this.deepQuery(g,"itemStyle.normal.borderColor"),k.lineWidth=k.lineWidth||this.deepQuery(g,"itemStyle.normal.borderWidth"),x.color=this.getItemStyleColor(this.deepQuery(g,"itemStyle.emphasis.color"),u.seriesIndex,-1,u)||this.deepQuery(g,"itemStyle.emphasis.areaStyle.color")||k.color,x.strokeColor=this.deepQuery(g,"itemStyle.emphasis.borderColor")||k.strokeColor,x.lineWidth=this.deepQuery(g,"itemStyle.emphasis.borderWidth")||k.lineWidth,k.brushType=x.brushType=k.brushType||"both",k.lineJoin=x.lineJoin="round",k._name=x._name=c,f=this.deepQuery(g,"itemStyle.normal.label.textStyle"),L={zlevel:this.getZlevelBase(),z:this.getZBase()+1,position:p.clone(k.position),_mapType:e,_geo:this.pos2geo(e,[k.textX,k.textY]),style:{brushType:"fill",x:k.textX,y:k.textY,text:this.getLabelText(c,y,g,"normal"),_name:c,textAlign:"center",color:this.deepQuery(g,"itemStyle.normal.label.show")?this.deepQuery(g,"itemStyle.normal.label.textStyle.color"):"rgba(0,0,0,0)",textFont:this.getFont(f)}},L._style=p.clone(L.style),L.highlightStyle=p.clone(L.style),this.deepQuery(g,"itemStyle.emphasis.label.show")?(L.highlightStyle.text=this.getLabelText(c,y,g,"emphasis"),L.highlightStyle.color=this.deepQuery(g,"itemStyle.emphasis.label.textStyle.color")||L.style.color,f=this.deepQuery(g,"itemStyle.emphasis.label.textStyle")||f,L.highlightStyle.textFont=this.getFont(f)):L.highlightStyle.color="rgba(0,0,0,0)",_={zlevel:this.getZlevelBase(),z:this.getZBase(),position:p.clone(k.position),style:k,highlightStyle:x,_style:p.clone(k),_mapType:e},null!=k.scale&&(_.scale=p.clone(k.scale)),L=new n(L),_.style.shapeType){case"rectangle":_=new r(_);break;case"line":_=new s(_);break;case"circle":_=new o(_);break;case"polygon":_=new l(_);break;case"ellipse":_=new h(_);break;default:_=new a(_),_.buildPathArray&&(_.style.pathArray=_.buildPathArray(_.style.path))}(this._selectedMode[e]&&this._selected[c]&&u.selected!==!1||u.selected===!0)&&(L.style=L.highlightStyle,_.style=_.highlightStyle),L.clickable=_.clickable=this._clickable[e]&&(null==u.clickable||u.clickable),this._selectedMode[e]&&(this._selected[c]=null!=this._selected[c]?this._selected[c]:u.selected,this._mapTypeMap[c]=e,(null==u.selectable||u.selectable)&&(_.clickable=L.clickable=!0,_.onclick=L.onclick=this.shapeHandler.onclick)),this._hoverable[e]&&(null==u.hoverable||u.hoverable)?(L.hoverable=_.hoverable=!0,_.hoverConnect=L.id,L.hoverConnect=_.id):L.hoverable=_.hoverable=!1,d.pack(L,{name:V,tooltip:this.deepQuery(g,"tooltip")},0,u,0,c),this.shapeList.push(L),d.pack(_,{name:V,tooltip:this.deepQuery(g,"tooltip")},0,u,0,c),this.shapeList.push(_)}},_buildMark:function(e,t){this._seriesIndexToMapType=this._seriesIndexToMapType||{},this.markAttachStyle=this.markAttachStyle||{};var i=[this._mapDataMap[e].transform.left,this._mapDataMap[e].transform.top];"none"==e&&(i=[0,0]);for(var n in t)this._seriesIndexToMapType[n]=e,this.markAttachStyle[n]={position:i,_mapType:e},this.buildMark(n)},_buildHeatmap:function(e){for(var t=this.series,i=0,n=t.length;n>i;i++)if(t[i].heatmap){var a=t[i].heatmap.data;if(t[i].heatmap.needsTransform===!1){for(var o=[],r=0,s=a.length;s>r;++r)o.push([a[r][3],a[r][4],a[r][2]]);var l=[0,0]}else{var h=t[i].heatmap._geoData;if(void 0===h){t[i].heatmap._geoData=[];for(var r=0,s=a.length;s>r;++r)t[i].heatmap._geoData[r]=a[r];h=t[i].heatmap._geoData}for(var s=a.length,U=0;s>U;++U)a[U]=this.geo2pos(e,[h[U][0],h[U][1]]);var l=[this._mapDataMap[e].transform.left,this._mapDataMap[e].transform.top]}var d=new V(t[i].heatmap),p=d.getCanvas(a[0][3]?o:a,this.zr.getWidth(),this.zr.getHeight()),c=new m({zlevel:this.getZlevelBase(),z:this.getZBase()+1,position:l,scale:[1,1],hoverable:!1,style:{x:0,y:0,image:p,width:p.width,height:p.height}});c.type="heatmap",c._mapType=e,this.shapeList.push(c),this.zr.addShape(c)}},getMarkCoord:function(e,t){return t.geoCoord||b[t.name]?this.geo2pos(this._seriesIndexToMapType[e],t.geoCoord||b[t.name]):[0,0]},getMarkGeo:function(e){return e.geoCoord||b[e.name]},_nameChange:function(e,t){return this._nameMap[e][t]||t},getLabelText:function(e,t,i,n){var a=this.deepQuery(i,"itemStyle."+n+".label.formatter");return a?"function"==typeof a?a.call(this.myChart,e,t):"string"==typeof a?(a=a.replace("{a}","{a0}").replace("{b}","{b0}"),a=a.replace("{a0}",e).replace("{b0}",t)):void 0:e},_findMapTypeByPos:function(e,t){var i,n,a,o,r;for(var s in this._mapDataMap)if(i=this._mapDataMap[s].transform,i&&this._roamMap[s]&&this._activeMapType[s]&&(n=i.left,a=i.top,o=i.width,r=i.height,e>=n&&n+o>=e&&t>=a&&a+r>=t))return s},__onmousewheel:function(e){function t(e,t){for(var i=0;in;n++){var o=this.shapeList[n];if(o.__animating)return}var r,s,l=e.event,h=u.getX(l),m=u.getY(l),V=u.getDelta(l),d=e.mapTypeControl;d||(d={},s=this._findMapTypeByPos(h,m),s&&this._roamMap[s]&&"move"!=this._roamMap[s]&&(d[s]=!0));var p=!1;for(s in d)if(d[s]){p=!0;var c=this._mapDataMap[s].transform,y=c.left,g=c.top,b=c.width,f=c.height,k=this.pos2geo(s,[h-y,m-g]);if(V>0){if(r=1.2,null!=this._scaleLimitMap[s].max&&c.baseScale>=this._scaleLimitMap[s].max)continue}else if(r=1/1.2,null!=this._scaleLimitMap[s].min&&c.baseScale<=this._scaleLimitMap[s].min)continue;c.baseScale*=r,c.scale.x*=r,c.scale.y*=r,c.width=b*r,c.height=f*r,this._mapDataMap[s].hasRoam=!0,this._mapDataMap[s].transform=c,k=this.geo2pos(s,k),c.left-=k[0]-(h-y),c.top-=k[1]-(m-g),this._mapDataMap[s].transform=c,this.clearEffectShape(!0);for(var n=0,a=this.shapeList.length;a>n;n++){var o=this.shapeList[n];if(o._mapType==s){var x=o.type,_=o.style;switch(o.position[0]=c.left,o.position[1]=c.top,x){case"path":case"symbol":case"circle":case"rectangle":case"polygon":case"line":case"ellipse":case"heatmap":o.scale[0]*=r,o.scale[1]*=r;break;case"mark-line":i(_,r);break;case"polyline":t(_,r);break;case"shape-bundle":for(var L=0;L<_.shapeList.length;L++){var W=_.shapeList[L];"mark-line"==W.type?i(W.style,r):"polyline"==W.type&&t(W.style,r)}break;case"icon":case"image":k=this.geo2pos(s,o._geo),_.x=_._x=k[0]-_.width/2,_.y=_._y=k[1]-_.height/2;break;default:k=this.geo2pos(s,o._geo),_.x=k[0],_.y=k[1],"text"==x&&(o._style.x=o.highlightStyle.x=k[0],o._style.y=o.highlightStyle.y=k[1])}this.zr.modShape(o.id)}}}if(p){u.stop(l),this.zr.refreshNextFrame();var X=this;clearTimeout(this._refreshDelayTicket),this._refreshDelayTicket=setTimeout(function(){X&&X.shapeList&&X.animationEffect()},100),this.messageCenter.dispatch(U.EVENT.MAP_ROAM,e.event,{type:"scale"},this.myChart)}}},__onmousedown:function(e){if(!(this.shapeList.length<=0)){var t=e.target;if(!t||!t.draggable){var i=e.event,n=u.getX(i),a=u.getY(i),o=this._findMapTypeByPos(n,a);if(o&&this._roamMap[o]&&"scale"!=this._roamMap[o]){this._mousedown=!0,this._mx=n,this._my=a,this._curMapType=o,this.zr.on(c.EVENT.MOUSEUP,this._onmouseup);var r=this;setTimeout(function(){r.zr.on(c.EVENT.MOUSEMOVE,r._onmousemove)},100)}}}},__onmousemove:function(e){if(this._mousedown&&this._isAlive){var t=e.event,i=u.getX(t),n=u.getY(t),a=this._mapDataMap[this._curMapType].transform;a.hasRoam=!0,a.left-=this._mx-i,a.top-=this._my-n,this._mx=i,this._my=n,this._mapDataMap[this._curMapType].transform=a;for(var o=0,r=this.shapeList.length;r>o;o++)this.shapeList[o]._mapType==this._curMapType&&(this.shapeList[o].position[0]=a.left,this.shapeList[o].position[1]=a.top,this.zr.modShape(this.shapeList[o].id));this.messageCenter.dispatch(U.EVENT.MAP_ROAM,e.event,{type:"move"},this.myChart),this.clearEffectShape(!0),this.zr.refreshNextFrame(),this._justMove=!0,u.stop(t)}},__onmouseup:function(e){var t=e.event;this._mx=u.getX(t),this._my=u.getY(t),this._mousedown=!1;var i=this;setTimeout(function(){i._justMove&&i.animationEffect(),i._justMove=!1,i.zr.un(c.EVENT.MOUSEMOVE,i._onmousemove),i.zr.un(c.EVENT.MOUSEUP,i._onmouseup)},120)},__onroamcontroller:function(e){var t=e.event;t.zrenderX=this.zr.getWidth()/2,t.zrenderY=this.zr.getHeight()/2;var i=e.mapTypeControl,n=0,a=0,o=e.step;switch(e.roamType){case"scaleUp":return t.zrenderDelta=1,void this.__onmousewheel({event:t,mapTypeControl:i});case"scaleDown":return t.zrenderDelta=-1,void this.__onmousewheel({event:t,mapTypeControl:i});case"up":n=-o;break;case"down":n=o;break;case"left":a=-o;break;case"right":a=o}var r,s;for(s in i)this._mapDataMap[s]&&this._activeMapType[s]&&(r=this._mapDataMap[s].transform,r.hasRoam=!0,r.left-=a,r.top-=n,this._mapDataMap[s].transform=r);for(var l=0,h=this.shapeList.length;h>l;l++)s=this.shapeList[l]._mapType,i[s]&&this._activeMapType[s]&&(r=this._mapDataMap[s].transform,this.shapeList[l].position[0]=r.left,this.shapeList[l].position[1]=r.top,this.zr.modShape(this.shapeList[l].id));this.messageCenter.dispatch(U.EVENT.MAP_ROAM,e.event,{type:"move"},this.myChart),this.clearEffectShape(!0),this.zr.refreshNextFrame(),clearTimeout(this.dircetionTimer);var m=this;this.dircetionTimer=setTimeout(function(){m.animationEffect()},150)},__ondrhoverlink:function(e){for(var t,i,n=0,a=this.shapeList.length;a>n;n++)t=this.shapeList[n]._mapType,this._hoverLinkMap[t]&&this._activeMapType[t]&&(i=d.get(this.shapeList[n],"value"),null!=i&&i>=e.valueMin&&i<=e.valueMax&&this.zr.addHoverShape(this.shapeList[n]))},onclick:function(e){if(this.isClick&&e.target&&!this._justMove&&"icon"!=e.target.type){this.isClick=!1;var t=e.target,i=t.style._name,n=this.shapeList.length,a=t._mapType||"";if("single"==this._selectedMode[a])for(var o in this._selected)if(this._selected[o]&&this._mapTypeMap[o]==a){for(var r=0;n>r;r++)this.shapeList[r].style._name==o&&this.shapeList[r]._mapType==a&&(this.shapeList[r].style=this.shapeList[r]._style,this.zr.modShape(this.shapeList[r].id));o!=i&&(this._selected[o]=!1)}this._selected[i]=!this._selected[i];for(var r=0;n>r;r++)this.shapeList[r].style._name==i&&this.shapeList[r]._mapType==a&&(this.shapeList[r].style=this._selected[i]?this.shapeList[r].highlightStyle:this.shapeList[r]._style,this.zr.modShape(this.shapeList[r].id));this.messageCenter.dispatch(U.EVENT.MAP_SELECTED,e.event,{selected:this._selected,target:i},this.myChart),this.zr.refreshNextFrame();var s=this;setTimeout(function(){s.zr.trigger(c.EVENT.MOUSEMOVE,e.event)},100)}},refresh:function(e){e&&(this.option=e,this.series=e.series),this._mapDataRequireCounter>0?this.clear():this.backupShapeList(),this._buildShape(),this.zr.refreshHover()},ondataRange:function(e,t){this.component.dataRange&&(this.refresh(),t.needRefresh=!0)},pos2geo:function(e,t){return this._mapDataMap[e].transform?this._mapDataMap[e].projection.pos2geo(this._mapDataMap[e].transform,t):null},getGeoByPos:function(e,t){if(!this._mapDataMap[e].transform)return null;var i=[this._mapDataMap[e].transform.left,this._mapDataMap[e].transform.top];return t instanceof Array?(t[0]-=i[0],t[1]-=i[1]):(t.x-=i[0],t.y-=i[1]),this.pos2geo(e,t)},geo2pos:function(e,t){return this._mapDataMap[e].transform?this._mapDataMap[e].projection.geo2pos(this._mapDataMap[e].transform,t):null},getPosByGeo:function(e,t){if(!this._mapDataMap[e].transform)return null;var i=this.geo2pos(e,t);return i[0]+=this._mapDataMap[e].transform.left,i[1]+=this._mapDataMap[e].transform.top,i},getMapPosition:function(e){return this._mapDataMap[e].transform?[this._mapDataMap[e].transform.left,this._mapDataMap[e].transform.top]:null},onbeforDispose:function(){this._isAlive=!1,this.zr.un(c.EVENT.MOUSEWHEEL,this._onmousewheel),this.zr.un(c.EVENT.MOUSEDOWN,this._onmousedown),this.messageCenter.unbind(U.EVENT.ROAMCONTROLLER,this._onroamcontroller),this.messageCenter.unbind(U.EVENT.DATA_RANGE_HOVERLINK,this._ondrhoverlink)}},p.inherits(t,i),e("../chart").define("map",t),t}),i("zrender/shape/Path",["require","./Base","./util/PathProxy","../tool/util"],function(e){var t=e("./Base"),i=e("./util/PathProxy"),n=i.PathSegment,a=function(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1])},o=function(e,t){return(e[0]*t[0]+e[1]*t[1])/(a(e)*a(t))},r=function(e,t){return(e[0]*t[1]0&&""===d[0]&&d.shift();for(var p=0;p0&&!isNaN(d[0]);){var c,u,y,g,b,f,k,x,_=null,L=[],W=h,X=m;switch(U){case"l":h+=d.shift(),m+=d.shift(),_="L",L.push(h,m);break;case"L":h=d.shift(),m=d.shift(),L.push(h,m);break;case"m":h+=d.shift(),m+=d.shift(),_="M",L.push(h,m),U="l";break;case"M":h=d.shift(),m=d.shift(),_="M",L.push(h,m),U="L";break;case"h":h+=d.shift(),_="L",L.push(h,m);break;case"H":h=d.shift(),_="L",L.push(h,m);break;case"v":m+=d.shift(),_="L",L.push(h,m);break;case"V":m=d.shift(),_="L",L.push(h,m);break;case"C":L.push(d.shift(),d.shift(),d.shift(),d.shift()),h=d.shift(),m=d.shift(),L.push(h,m);break;case"c":L.push(h+d.shift(),m+d.shift(),h+d.shift(),m+d.shift()),h+=d.shift(),m+=d.shift(),_="C",L.push(h,m);break;case"S":c=h,u=m,y=l[l.length-1],"C"===y.command&&(c=h+(h-y.points[2]),u=m+(m-y.points[3])),L.push(c,u,d.shift(),d.shift()),h=d.shift(),m=d.shift(),_="C",L.push(h,m);break;case"s":c=h,u=m,y=l[l.length-1],"C"===y.command&&(c=h+(h-y.points[2]),u=m+(m-y.points[3])),L.push(c,u,h+d.shift(),m+d.shift()),h+=d.shift(),m+=d.shift(),_="C",L.push(h,m);break;case"Q":L.push(d.shift(),d.shift()),h=d.shift(),m=d.shift(),L.push(h,m);break;case"q":L.push(h+d.shift(),m+d.shift()),h+=d.shift(),m+=d.shift(),_="Q",L.push(h,m);break;case"T":c=h,u=m,y=l[l.length-1],"Q"===y.command&&(c=h+(h-y.points[0]),u=m+(m-y.points[1])),h=d.shift(),m=d.shift(),_="Q",L.push(c,u,h,m);break;case"t":c=h,u=m,y=l[l.length-1],"Q"===y.command&&(c=h+(h-y.points[0]),u=m+(m-y.points[1])),h+=d.shift(),m+=d.shift(),_="Q",L.push(c,u,h,m);break;case"A":g=d.shift(),b=d.shift(),f=d.shift(),k=d.shift(),x=d.shift(),W=h,X=m,h=d.shift(),m=d.shift(),_="A",L=this._convertPoint(W,X,h,m,k,x,g,b,f);break;case"a":g=d.shift(),b=d.shift(),f=d.shift(),k=d.shift(),x=d.shift(),W=h,X=m,h+=d.shift(),m+=d.shift(),_="A",L=this._convertPoint(W,X,h,m,k,x,g,b,f)}for(var v=0,w=L.length;w>v;v+=2)L[v]+=t,L[v+1]+=i;l.push(new n(_||U,L))}("z"===U||"Z"===U)&&l.push(new n("z",[]))}return l},_convertPoint:function(e,t,i,n,a,s,l,h,m){var V=m*(Math.PI/180),U=Math.cos(V)*(e-i)/2+Math.sin(V)*(t-n)/2,d=-1*Math.sin(V)*(e-i)/2+Math.cos(V)*(t-n)/2,p=U*U/(l*l)+d*d/(h*h);p>1&&(l*=Math.sqrt(p),h*=Math.sqrt(p));var c=Math.sqrt((l*l*h*h-l*l*d*d-h*h*U*U)/(l*l*d*d+h*h*U*U));a===s&&(c*=-1),isNaN(c)&&(c=0);var u=c*l*d/h,y=c*-h*U/l,g=(e+i)/2+Math.cos(V)*u-Math.sin(V)*y,b=(t+n)/2+Math.sin(V)*u+Math.cos(V)*y,f=r([1,0],[(U-u)/l,(d-y)/h]),k=[(U-u)/l,(d-y)/h],x=[(-1*U-u)/l,(-1*d-y)/h],_=r(k,x);return o(k,x)<=-1&&(_=Math.PI),o(k,x)>=1&&(_=0),0===s&&_>0&&(_-=2*Math.PI),1===s&&0>_&&(_+=2*Math.PI),[g,b,l,h,f,_,V,s]},buildPath:function(e,t){var i=t.path,n=t.x||0,a=t.y||0;t.pathArray=t.pathArray||this.buildPathArray(i,n,a);for(var o=t.pathArray,r=t.pointList=[],s=[],l=0,h=o.length;h>l;l++){"M"==o[l].command.toUpperCase()&&(s.length>0&&r.push(s),s=[]);for(var m=o[l].points,V=0,U=m.length;U>V;V+=2)s.push([m[V],m[V+1]])}s.length>0&&r.push(s);for(var l=0,h=o.length;h>l;l++){var d=o[l].command,m=o[l].points;switch(d){case"L":e.lineTo(m[0],m[1]);break;case"M":e.moveTo(m[0],m[1]);break;case"C":e.bezierCurveTo(m[0],m[1],m[2],m[3],m[4],m[5]);break;case"Q":e.quadraticCurveTo(m[0],m[1],m[2],m[3]);break;case"A":var p=m[0],c=m[1],u=m[2],y=m[3],g=m[4],b=m[5],f=m[6],k=m[7],x=u>y?u:y,_=u>y?1:u/y,L=u>y?y/u:1;e.translate(p,c),e.rotate(f),e.scale(_,L),e.arc(0,0,x,g,g+b,1-k),e.scale(1/_,1/L),e.rotate(-f),e.translate(-p,-c);break;case"z":e.closePath()}}},getRect:function(e){if(e.__rect)return e.__rect;var t;t="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0;for(var i=Number.MAX_VALUE,n=Number.MIN_VALUE,a=Number.MAX_VALUE,o=Number.MIN_VALUE,r=e.x||0,s=e.y||0,l=e.pathArray||this.buildPathArray(e.path),h=0;hn&&(n=m[V])):(m[V]+so&&(o=m[V]));var U;return U=i===Number.MAX_VALUE||n===Number.MIN_VALUE||a===Number.MAX_VALUE||o===Number.MIN_VALUE?{x:0,y:0,width:0,height:0}:{x:Math.round(i-t/2),y:Math.round(a-t/2),width:n-i+t,height:o-a+t},e.__rect=U,U}},e("../tool/util").inherits(s,t),s}),i("zrender/shape/Ellipse",["require","./Base","../tool/util"],function(e){var t=e("./Base"),i=function(e){t.call(this,e)};return i.prototype={type:"ellipse",buildPath:function(e,t){var i=.5522848,n=t.x,a=t.y,o=t.a,r=t.b,s=o*i,l=r*i;e.moveTo(n-o,a),e.bezierCurveTo(n-o,a-l,n-s,a-r,n,a-r),e.bezierCurveTo(n+s,a-r,n+o,a-l,n+o,a),e.bezierCurveTo(n+o,a+l,n+s,a+r,n,a+r),e.bezierCurveTo(n-s,a+r,n-o,a+l,n-o,a),e.closePath()},getRect:function(e){if(e.__rect)return e.__rect;var t;return t="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0,e.__rect={x:Math.round(e.x-e.a-t/2), -y:Math.round(e.y-e.b-t/2),width:2*e.a+t,height:2*e.b+t},e.__rect}},e("../tool/util").inherits(i,t),i}),i("echarts/component/roamController",["require","./base","zrender/shape/Rectangle","zrender/shape/Sector","zrender/shape/Circle","../config","zrender/tool/util","zrender/tool/color","zrender/tool/event","../component"],function(e){function t(e,t,n,a,o){if(this.rcOption={},a.roamController&&a.roamController.show){if(!a.roamController.mapTypeControl)return void console.error("option.roamController.mapTypeControl has not been defined.");i.call(this,e,t,n,a,o),this.rcOption=a.roamController;var r=this;this._drictionMouseDown=function(e){return r.__drictionMouseDown(e)},this._drictionMouseUp=function(e){return r.__drictionMouseUp(e)},this._drictionMouseMove=function(e){return r.__drictionMouseMove(e)},this._drictionMouseOut=function(e){return r.__drictionMouseOut(e)},this._scaleHandler=function(e){return r.__scaleHandler(e)},this.refresh(a)}}var i=e("./base"),n=e("zrender/shape/Rectangle"),a=e("zrender/shape/Sector"),o=e("zrender/shape/Circle"),r=e("../config");r.roamController={zlevel:0,z:4,show:!0,x:"left",y:"top",width:80,height:120,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,handleColor:"#6495ed",fillerColor:"#fff",step:15,mapTypeControl:null};var s=e("zrender/tool/util"),l=e("zrender/tool/color"),h=e("zrender/tool/event");return t.prototype={type:r.COMPONENT_TYPE_ROAMCONTROLLER,_buildShape:function(){if(this.rcOption.show){this._itemGroupLocation=this._getItemGroupLocation(),this._buildBackground(),this._buildItem();for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e])}},_buildItem:function(){this.shapeList.push(this._getDirectionShape("up")),this.shapeList.push(this._getDirectionShape("down")),this.shapeList.push(this._getDirectionShape("left")),this.shapeList.push(this._getDirectionShape("right")),this.shapeList.push(this._getScaleShape("scaleUp")),this.shapeList.push(this._getScaleShape("scaleDown"))},_getDirectionShape:function(e){var t=this._itemGroupLocation.r,i=this._itemGroupLocation.x+t,n=this._itemGroupLocation.y+t,o={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:i,y:n,r:t,startAngle:-45,endAngle:45,color:this.rcOption.handleColor,text:">",textX:i+t/2+4,textY:n-.5,textAlign:"center",textBaseline:"middle",textPosition:"specific",textColor:this.rcOption.fillerColor,textFont:Math.floor(t/2)+"px arial"},highlightStyle:{color:l.lift(this.rcOption.handleColor,-.2),brushType:"fill"},clickable:!0};switch(e){case"up":o.rotation=[Math.PI/2,i,n];break;case"left":o.rotation=[Math.PI,i,n];break;case"down":o.rotation=[-Math.PI/2,i,n]}return o=new a(o),o._roamType=e,o.onmousedown=this._drictionMouseDown,o.onmouseup=this._drictionMouseUp,o.onmousemove=this._drictionMouseMove,o.onmouseout=this._drictionMouseOut,o},_getScaleShape:function(e){var t=this._itemGroupLocation.width,i=this._itemGroupLocation.height-t;i=0>i?20:i;var n=Math.min(t/2-5,i)/2,a=this._itemGroupLocation.x+("scaleDown"===e?t-n:n),r=this._itemGroupLocation.y+this._itemGroupLocation.height-n,s={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:a,y:r,r:n,color:this.rcOption.handleColor,text:"scaleDown"===e?"-":"+",textX:a,textY:r-2,textAlign:"center",textBaseline:"middle",textPosition:"specific",textColor:this.rcOption.fillerColor,textFont:Math.floor(n)+"px verdana"},highlightStyle:{color:l.lift(this.rcOption.handleColor,-.2),brushType:"fill"},clickable:!0};return s=new o(s),s._roamType=e,s.onmousedown=this._scaleHandler,s},_buildBackground:function(){var e=this.reformCssArray(this.rcOption.padding);this.shapeList.push(new n({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._itemGroupLocation.x-e[3],y:this._itemGroupLocation.y-e[0],width:this._itemGroupLocation.width+e[3]+e[1],height:this._itemGroupLocation.height+e[0]+e[2],brushType:0===this.rcOption.borderWidth?"fill":"both",color:this.rcOption.backgroundColor,strokeColor:this.rcOption.borderColor,lineWidth:this.rcOption.borderWidth}}))},_getItemGroupLocation:function(){var e,t=this.reformCssArray(this.rcOption.padding),i=this.rcOption.width,n=this.rcOption.height,a=this.zr.getWidth(),o=this.zr.getHeight();switch(this.rcOption.x){case"center":e=Math.floor((a-i)/2);break;case"left":e=t[3]+this.rcOption.borderWidth;break;case"right":e=a-i-t[1]-t[3]-2*this.rcOption.borderWidth;break;default:e=this.parsePercent(this.rcOption.x,a)}var r;switch(this.rcOption.y){case"top":r=t[0]+this.rcOption.borderWidth;break;case"bottom":r=o-n-t[0]-t[2]-2*this.rcOption.borderWidth;break;case"center":r=Math.floor((o-n)/2);break;default:r=this.parsePercent(this.rcOption.y,o)}return{x:e,y:r,r:i/2,width:i,height:n}},__drictionMouseDown:function(e){this.mousedown=!0,this._drictionHandlerOn(e)},__drictionMouseUp:function(e){this.mousedown=!1,this._drictionHandlerOff(e)},__drictionMouseMove:function(e){this.mousedown&&this._drictionHandlerOn(e)},__drictionMouseOut:function(e){this._drictionHandlerOff(e)},_drictionHandlerOn:function(e){this._dispatchEvent(e.event,e.target._roamType),clearInterval(this.dircetionTimer);var t=this;this.dircetionTimer=setInterval(function(){t._dispatchEvent(e.event,e.target._roamType)},100),h.stop(e.event)},_drictionHandlerOff:function(){clearInterval(this.dircetionTimer)},__scaleHandler:function(e){this._dispatchEvent(e.event,e.target._roamType),h.stop(e.event)},_dispatchEvent:function(e,t){this.messageCenter.dispatch(r.EVENT.ROAMCONTROLLER,e,{roamType:t,mapTypeControl:this.rcOption.mapTypeControl,step:this.rcOption.step},this.myChart)},refresh:function(e){e&&(this.option=e||this.option,this.option.roamController=this.reformOption(this.option.roamController),this.rcOption=this.option.roamController),this.clear(),this._buildShape()}},s.inherits(t,i),e("../component").define("roamController",t),t}),i("echarts/layer/heatmap",["require"],function(){function e(e){if(this.option=e,e)for(var i in t)this.option[i]=void 0!==e[i]?e[i]:t[i];else this.option=t}var t={blurSize:30,gradientColors:["blue","cyan","lime","yellow","red"],minAlpha:.05,valueScale:1,opacity:1},i=20,n=256;return e.prototype={getCanvas:function(e,t,a){var o=this._getBrush(),r=this._getGradient(),s=i+this.option.blurSize,l=document.createElement("canvas");l.width=t,l.height=a;for(var h=l.getContext("2d"),m=e.length,V=0;m>V;++V){var U=e[V],d=U[0],p=U[1],c=U[2],u=Math.min(1,Math.max(c*this.option.valueScale||this.option.minAlpha,this.option.minAlpha));h.globalAlpha=u,h.drawImage(o,d-s,p-s)}for(var y=h.getImageData(0,0,l.width,l.height),g=y.data,m=g.length/4;m--;){var b=4*m+3,u=g[b]/256,f=Math.floor(u*(n-1));g[b-3]=r[4*f],g[b-2]=r[4*f+1],g[b-1]=r[4*f+2],g[b]*=this.option.opacity}return h.putImageData(y,0,0),l},_getBrush:function(){if(!this._brushCanvas){this._brushCanvas=document.createElement("canvas");var e=i+this.option.blurSize,t=2*e;this._brushCanvas.width=t,this._brushCanvas.height=t;var n=this._brushCanvas.getContext("2d");n.shadowOffsetX=t,n.shadowBlur=this.option.blurSize,n.shadowColor="black",n.beginPath(),n.arc(-e,e,i,0,2*Math.PI,!0),n.closePath(),n.fill()}return this._brushCanvas},_getGradient:function(){if(!this._gradientPixels){var e=n,t=document.createElement("canvas");t.width=1,t.height=e;for(var i=t.getContext("2d"),a=i.createLinearGradient(0,0,0,e),o=this.option.gradientColors.length,r=0;o>r;++r)"string"==typeof this.option.gradientColors[r]?a.addColorStop((r+1)/o,this.option.gradientColors[r]):a.addColorStop(this.option.gradientColors[r].offset,this.option.gradientColors[r].color);i.fillStyle=a,i.fillRect(0,0,1,e),this._gradientPixels=i.getImageData(0,0,1,e).data}return this._gradientPixels}},e}),i("echarts/util/mapData/params",["require"],function(e){function t(e){if(!e.UTF8Encoding)return e;for(var t=e.features,n=0;n>1^-(1&r),s=s>>1^-(1&s),r+=n,s+=a,n=r,a=s,i.push([r/1024,s/1024])}return i}var n={none:{getGeoJson:function(e){e({type:"FeatureCollection",features:[{type:"Feature",geometry:{coordinates:[],encodeOffsets:[],type:"Polygon"},properties:{}}]})}},world:{getGeoJson:function(i){e(["./geoJson/world_geo"],function(e){i(t(e))})}},china:{getGeoJson:function(i){e(["./geoJson/china_geo"],function(e){i(t(e))})}},"南海诸岛":{textCoord:[126,25],getPath:function(e,t){for(var i=[[[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]]],n="",a=e[0],o=e[1],r=0,s=i.length;s>r;r++){n+="M "+((i[r][0][0]*t+a).toFixed(2)-0)+" "+((i[r][0][1]*t+o).toFixed(2)-0)+" ";for(var l=1,h=i[r].length;h>l;l++)n+="L "+((i[r][l][0]*t+a).toFixed(2)-0)+" "+((i[r][l][1]*t+o).toFixed(2)-0)+" "}return n+" Z"}},"新疆":{getGeoJson:function(i){e(["./geoJson/xin_jiang_geo"],function(e){i(t(e))})}},"西藏":{getGeoJson:function(i){e(["./geoJson/xi_zang_geo"],function(e){i(t(e))})}},"内蒙古":{getGeoJson:function(i){e(["./geoJson/nei_meng_gu_geo"],function(e){i(t(e))})}},"青海":{getGeoJson:function(i){e(["./geoJson/qing_hai_geo"],function(e){i(t(e))})}},"四川":{getGeoJson:function(i){e(["./geoJson/si_chuan_geo"],function(e){i(t(e))})}},"黑龙江":{getGeoJson:function(i){e(["./geoJson/hei_long_jiang_geo"],function(e){i(t(e))})}},"甘肃":{getGeoJson:function(i){e(["./geoJson/gan_su_geo"],function(e){i(t(e))})}},"云南":{getGeoJson:function(i){e(["./geoJson/yun_nan_geo"],function(e){i(t(e))})}},"广西":{getGeoJson:function(i){e(["./geoJson/guang_xi_geo"],function(e){i(t(e))})}},"湖南":{getGeoJson:function(i){e(["./geoJson/hu_nan_geo"],function(e){i(t(e))})}},"陕西":{getGeoJson:function(i){e(["./geoJson/shan_xi_1_geo"],function(e){i(t(e))})}},"广东":{getGeoJson:function(i){e(["./geoJson/guang_dong_geo"],function(e){i(t(e))})}},"吉林":{getGeoJson:function(i){e(["./geoJson/ji_lin_geo"],function(e){i(t(e))})}},"河北":{getGeoJson:function(i){e(["./geoJson/he_bei_geo"],function(e){i(t(e))})}},"湖北":{getGeoJson:function(i){e(["./geoJson/hu_bei_geo"],function(e){i(t(e))})}},"贵州":{getGeoJson:function(i){e(["./geoJson/gui_zhou_geo"],function(e){i(t(e))})}},"山东":{getGeoJson:function(i){e(["./geoJson/shan_dong_geo"],function(e){i(t(e))})}},"江西":{getGeoJson:function(i){e(["./geoJson/jiang_xi_geo"],function(e){i(t(e))})}},"河南":{getGeoJson:function(i){e(["./geoJson/he_nan_geo"],function(e){i(t(e))})}},"辽宁":{getGeoJson:function(i){e(["./geoJson/liao_ning_geo"],function(e){i(t(e))})}},"山西":{getGeoJson:function(i){e(["./geoJson/shan_xi_2_geo"],function(e){i(t(e))})}},"安徽":{getGeoJson:function(i){e(["./geoJson/an_hui_geo"],function(e){i(t(e))})}},"福建":{getGeoJson:function(i){e(["./geoJson/fu_jian_geo"],function(e){i(t(e))})}},"浙江":{getGeoJson:function(i){e(["./geoJson/zhe_jiang_geo"],function(e){i(t(e))})}},"江苏":{getGeoJson:function(i){e(["./geoJson/jiang_su_geo"],function(e){i(t(e))})}},"重庆":{getGeoJson:function(i){e(["./geoJson/chong_qing_geo"],function(e){i(t(e))})}},"宁夏":{getGeoJson:function(i){e(["./geoJson/ning_xia_geo"],function(e){i(t(e))})}},"海南":{getGeoJson:function(i){e(["./geoJson/hai_nan_geo"],function(e){i(t(e))})}},"台湾":{getGeoJson:function(i){e(["./geoJson/tai_wan_geo"],function(e){i(t(e))})}},"北京":{getGeoJson:function(i){e(["./geoJson/bei_jing_geo"],function(e){i(t(e))})}},"天津":{getGeoJson:function(i){e(["./geoJson/tian_jin_geo"],function(e){i(t(e))})}},"上海":{getGeoJson:function(i){e(["./geoJson/shang_hai_geo"],function(e){i(t(e))})}},"香港":{getGeoJson:function(i){e(["./geoJson/xiang_gang_geo"],function(e){i(t(e))})}},"澳门":{getGeoJson:function(i){e(["./geoJson/ao_men_geo"],function(e){i(t(e))})}}};return{decode:t,params:n}}),i("echarts/util/mapData/textFixed",[],function(){return{"广东":[0,-10],"香港":[10,10],"澳门":[-10,18],"黑龙江":[0,20],"天津":[5,5],"深圳市":[-35,0],"红河哈尼族彝族自治州":[0,20],"楚雄彝族自治州":[-5,15],"石河子市":[-5,5],"五家渠市":[0,-10],"昌吉回族自治州":[10,10],"昌江黎族自治县":[0,20],"陵水黎族自治县":[0,20],"东方市":[0,20],"渭南市":[0,20]}}),i("echarts/util/mapData/geoCoord",[],function(){return{Russia:[100,60],"United States of America":[-99,38]}}),i("echarts/util/projection/svg",["require","zrender/shape/Path"],function(e){function t(e){return parseFloat(e||0)}function i(e){for(var i=e.firstChild;"svg"!=i.nodeName.toLowerCase()||1!=i.nodeType;)i=i.nextSibling;var n=t(i.getAttribute("x")),a=t(i.getAttribute("y")),o=t(i.getAttribute("width")),r=t(i.getAttribute("height"));return{left:n,top:a,width:o,height:r}}function n(e,t){function i(e){var t=e.tagName;if(m[t]){var o=m[t](e,n);o&&(o.scale=n,o.properties={name:e.getAttribute("name")||""},o.id=e.id,s(o,e),a.push(o))}for(var r=e.childNodes,l=0,h=r.length;h>l;l++)i(r[l])}var n=[t.scale.x,t.scale.y],a=[];return i(e),a}function a(e,t){var i=t instanceof Array?[1*t[0],1*t[1]]:[1*t.x,1*t.y];return[i[0]/e.scale.x,i[1]/e.scale.y]}function o(e,t){var i=t instanceof Array?[1*t[0],1*t[1]]:[1*t.x,1*t.y];return[i[0]*e.scale.x,i[1]*e.scale.y]}function r(e){return e.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}function s(e,t){var i=t.getAttribute("fill"),n=t.getAttribute("stroke"),a=t.getAttribute("stroke-width"),o=t.getAttribute("opacity");i&&"none"!=i?(e.color=i,n?(e.brushType="both",e.strokeColor=n):e.brushType="fill"):n&&"none"!=n&&(e.strokeColor=n,e.brushType="stroke"),a&&"none"!=a&&(e.lineWidth=parseFloat(a)),o&&"none"!=o&&(e.opacity=parseFloat(o))}function l(e){for(var t=r(e).replace(/,/g," ").split(/\s+/),i=[],n=0;no;o++)if(n=a[o],!n.properties.name||!t[n.properties.name])switch(n.type){case"Feature":r[n.geometry.type](n.geometry.coordinates);break;case"GeometryCollection":i=n.geometries;for(var l=0,h=i.length;h>l;l++)r[i[l].type](i[l].coordinates)}return e.srcSize={left:1*r.xmin.toFixed(4),top:1*r.ymin.toFixed(4),width:1*(r.xmax-r.xmin).toFixed(4),height:1*(r.ymax-r.ymin).toFixed(4)},e}function i(e,i,n){function a(e,t){c=e.type,u=e.coordinates,o._bbox={xmin:360,xmax:-360,ymin:180,ymax:-180},y=o[c](u),m.push({path:y,cp:o.makePoint(t.properties.cp?t.properties.cp:[(o._bbox.xmin+o._bbox.xmax)/2,(o._bbox.ymin+o._bbox.ymax)/2]),properties:t.properties,id:t.id})}n=n||{},o.scale=null,o.offset=null,e.srcSize||t(e,n),i.offset={x:e.srcSize.left,y:e.srcSize.top,left:i.OffsetLeft||0,top:i.OffsetTop||0},o.scale=i.scale,o.offset=i.offset;for(var r,s,l,h=e.features,m=[],V=0,U=h.length;U>V;V++)if(l=h[V],!l.properties.name||!n[l.properties.name])if("Feature"==l.type)a(l.geometry,l);else if("GeometryCollection"==l.type){r=l.geometries;for(var d=0,p=r.length;p>d;d++)s=r[d],a(s,s)}var c,u,y;return m}function n(e,t){var i,n;return t instanceof Array?(i=1*t[0],n=1*t[1]):(i=1*t.x,n=1*t.y),i=i/e.scale.x+e.offset.x-168.5,i=i>180?i-360:i,n=90-(n/e.scale.y+e.offset.y),[i,n]}function a(e,t){return o.offset=e.offset,o.scale=e.scale,o.makePoint(t instanceof Array?[1*t[0],1*t[1]]:[1*t.x,1*t.y])}var o={formatPoint:function(e){return[(e[0]<-168.5&&e[1]>63.8?e[0]+360:e[0])+168.5,90-e[1]]},makePoint:function(e){var t=this,i=t.formatPoint(e);t._bbox.xmin>e[0]&&(t._bbox.xmin=e[0]),t._bbox.xmaxe[1]&&(t._bbox.ymin=e[1]),t._bbox.ymaxn;n++)t=o.makePoint(e[n]),i=0===n?"M"+t.join(","):i+"L"+t.join(",");return i},Polygon:function(e){for(var t="",i=0,n=e.length;n>i;i++)t=t+o.LineString(e[i])+"z";return t},MultiPoint:function(e){for(var t=[],i=0,n=e.length;n>i;i++)t.push(o.Point(e[i]));return t},MultiLineString:function(e){for(var t="",i=0,n=e.length;n>i;i++)t+=o.LineString(e[i]);return t},MultiPolygon:function(e){for(var t="",i=0,n=e.length;n>i;i++)t+=o.Polygon(e[i]);return t}},r={formatPoint:o.formatPoint,makePoint:function(e){var t=this,i=t.formatPoint(e),n=i[0],a=i[1];t.xmin>n&&(t.xmin=n),t.xmaxa&&(t.ymin=a),t.ymaxt;t++)this.makePoint(e[t])},Polygon:function(e){for(var t=0,i=e.length;i>t;t++)this.LineString(e[t])},MultiPoint:function(e){for(var t=0,i=e.length;i>t;t++)this.Point(e[t])},MultiLineString:function(e){for(var t=0,i=e.length;i>t;t++)this.LineString(e[t])},MultiPolygon:function(e){for(var t=0,i=e.length;i>t;t++)this.Polygon(e[t])}};return{getBbox:e,geoJson2Path:i,pos2geo:n,geo2pos:a}}),i("echarts/util/mapData/geoJson/an_hui_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3415",properties:{name:"六安市",cp:[116.3123,31.8329],childNum:6},geometry:{type:"Polygon",coordinates:["@@„„nJ‚UXUVƒ°U„ÑnU@mlLVaVln@@bn@VU@xlb@lšLnKlšƒVI„JšUVxnI@lVL@b„ްVX@˜b„x„nVVUnVVnU‚›@kX@VwV@„al¥UUnUWa@ƒ@wĸU„LU¥lKUa@aUI@alLVaUƒ¯anƒWkUKm@XV@VaXlW@aU_UWVUƒI¯@ma¯W¯™™I@UU@WWU@U@@UU@VkV@@WUUm@UaU@„lK@IUK„L@KWmXUWaXI@ƒ@a@a@U@U@KV¥lw„k°b²JVIVKlV@UX„la„Ul`œUVLVVVUšJ„U@Lnm@_VK@KUIW@™J@Xk@WW@U—ƒmm™XmWk@kK@aUUƒVmmkUwUmWL™@WmU@™UJmUULkKWakLWVkIƒlƒwULƒW@X°lUJ@°ULƒWV—wmJ@bmb¯Vkm@@WkWm¯wƒL@lkXƒWmXym¯UImJUbkV™@Vn¯„@V@lUbƒ@mk@maUxmlUbULWn@J—LmKUkWKkwUKƒbm„X„WxkVUKmLkVV@JUUWL@xkJUUƒV@X@VVlUbVX@xk¤šx‚¼œxWxn„‚nn@Þ¼„JVb°aVn„@šmlnXU„JlbVlkz@‚lUŽlXJmxVxXnWxXÈWlUŽ@šUxU@VX@xUL@šUÆmLnV@lWXk@@JlbXblnlJ"],encodeOffsets:[[118710,33351]]}},{type:"Feature",id:"3408",properties:{name:"安庆市",cp:[116.7517,30.5255],childNum:9},geometry:{type:"Polygon",coordinates:["@@n°‚znW„XlW@k„K°xXn‚l@Xn@l‚°Una@anI˜xXU„ŽVK@¯VIkW¯X@‚„VK„x„klJXUlKXblLVKnVVIšŽV@Xn‚@šŽXKVnVxlŽnn„UlmV@²óUkV™lW„b„lƒšƒn@VVVIn@lw@WVIXblV„@Èx‚aUaVIVVnKVLšK„ƒln@b²K@»U£ƒÑķƒġÝÅb™K™a@Im@ۍ„@kWÓkkmKÅnóJƒUÅ£›W@w„ĕ@wĉţ¯¯ƒUkK±l¯Uƒ¥UÑkÝUķ»Ý¥¯™JƒIUŽVbUl¯ÈV¼VJU¼Vb@bkLUl@„VJ@bUXǚ@lkVmXmKkLVxš‚Ž„VƒL@VkVVVlzW˜kbmLUUUbVbUV™šlÒnJlUnLllUL@bU„Vx„l‚LXVƦÈVU¦WJ"],encodeOffsets:[[118834,31759]]}},{type:"Feature",id:"3411",properties:{name:"滁州市",cp:[118.1909,32.536],childNum:7},geometry:{type:"Polygon",coordinates:["@@š„@`nnl@„xšK@X°KXV˜IXVlbXVWnX‚lL@šÈ»‚LVan@VJ„êVVn@‚X@laÞbVaƒyn@„_‚xnWVXnWl@VnUVkI@l‚nXKVLVV@V@kW@LlVô„@J@bVnnKnkVa@»lç@ƒnwšKma™UUUVњ@n™mWXalI@alVn@VwUaVU„@„nlaôJnU„VVXlJšaXXVK@UšV@VWx@nXVWšXVšUlLUbV‚ULVVnUVbUbVbš@@a„KÆnnKVK@U@UU@@a„@Vƒ°¯ÈJVIlķ@aa˜UaVKU_@mkxUI@aƒUlyU@@™wkKWmUbUnUVWbkJW_J@bƒn@Vm@@KULk@V@@bVbÅm@LW@UVVbkK@UkKWL@VULUKWIUJUbkK@_WVXU›Jka@XƒVa@kšy@aVIUUW@@m„UlLœKWÑUKVan@UkVmmIXKƒaVaUwVU@UmykU¯@±UUL@WUIVUU@KkIWaƒaU@kUUaǃUó»mKƒk¯@y@kWK@bkI¯`mn™l¯XWlkVUzUJlbUbVJl@nnm„@VULV`XnWƗbmUUn™JmUknƒJ¯km@ƒyk@kU›xL@VUbmnn¤lX@`™z@JmaULUVl@Xn@xllkXWa—aW@UVmUbƒ@mVXšWxXbWbUŽƒÒnVVnVVUL"],encodeOffsets:[[120004,33520]]}},{type:"Feature",id:"3418",properties:{name:"宣城市",cp:[118.8062,30.6244],childNum:7},geometry:{type:"Polygon",coordinates:["@@Vb@„XL˜JXxlIXxlVlV@I²¤šnlUnVšU@VULWVUJ@Lnb@lV@UnV@@VVVlLnbnJ‚UVkUUVWn@@anUVnVJVIV‚@@nUJVbUb‚„@VUbVK@bn@VbnIlxkllXVlXKWUXUlL°¤UVVb@bš„UlkXW‚ƒxXz@‚„Ila„UlƒnUlJVInVÆJ„U„LVUnV„K°@VnlVnxV@XLlK@wVL@KnUlJXU˜bnKVLX„lUw@VWlLXKm@@a„@VLnmlIVVnKn@škVašVlwk@@a@k@ƒVIUa™@maUa@wna@kmWƒ™UUmVUIVǗ@aƒKm™aƒ™kU™J@InmUUaVa„k‚lX@Vk@m@VU@wnK@alKVUkUkKƒbmUkmƒ@U£WVk@@UÝbbƒaÇx@b@WVUa¯ƒ@wVwUUV@VwnK@KWaŁ@KšIUyUI@WmXó™UbWaKm™@km@IUyƒIUaWKƒx@zUKUL@llVUnkLVVkJWX@VUKUVƒIkVWakb@VWb@n@JkXUlmL@xkL@`VxšLUÈUJ@Vm@@bmIUlUL@VUVVbknm@mKUw™KVÈ@J@LV±kkJUIƒl"],encodeOffsets:[[120803,31247]]}},{type:"Feature",id:"3412",properties:{name:"阜阳市",cp:[115.7629,32.9919],childNum:6},geometry:{type:"Polygon",coordinates:["@@V™nƒš@ša„k°aš±@‚¥@UUI@aUmlwUUx›b@¥XU@mmI@a@Kn@@_W@@W„I@mšUVVXUl@XaV@‚K@I@a„LX@aVI°K@KVL„UUw‚yXkšK@kšKÆbXnlK@k@a„JlU@w@U@»@aXKWƒn_‚JXkVKnƒ@°LlKXƒW@¯Uƒ@aUK@kmJUw™VƒIUJ™„kŽmL™K@kka@wUVm@@am@UkUbkK@nmVƒÒ¯VU„WVVmIƒƒULk@ƒƒma@kkKƒƒ@nUbUamU™`UUVUkKVkkƒW@@bkmƒnƒmUXVKXVƒL@VƒbU„m‚™bVXJ@nmKÅI@KWKUXVJUL@VUKUX@KUKWL@LUJmaXXm@kVVV@L@VUL@VlK@L@V@LUK@VUb@UUU@°@nVxU`‚Lkn@`@XVJ@X™Vm„k@UKmV¯LVVn±Wm@Ub@JlLUl„@VLk„@lmVVn@bnV@V°IV™šaVJXI°K°V@XXVlVVU„nšKVlUš„bWXnV@bV`U„„@@m@@‚ƒ@nxmn@bXVlL@¤nb„Ul¦šVVUnJVU„Vl@@bÞL"],encodeOffsets:[[118418,34392]]}},{type:"Feature",id:"3413",properties:{name:"宿州市",cp:[117.5208,33.6841],childNum:5},geometry:{type:"Polygon",coordinates:["@@@UWU@bkW@aWU@aUIkWV™lLXb„lVIUVV@‚mn@V_n@VaUK@I‚@UašanJVU„@lV„UVnnKVVlaUa„I@wnK‚Lnll@nVlk@wVKXkl@@b„bUJ@V‚U@U„UUyVk@aVUXwlWXX‚WU¹@aU™@WUI@mlUšn„J@Il@šaXbV@VKl@XxVL@W„IšJlb„@„al@„IUUm@@aVK@¥¯—@mUķ¯bWƒk£Vm@akm@VaÅ@UVWaƒ@UJWkƒJ—UƒbWbU@UlƒXk@ƒamV@K¯nk@ƒlU@Uxmz@bU`ÇbUbÅVm£U@Ww™x@akLUK@UlakwUJWVkLmaUal@n_ƒmVUnKVUUmÅXWa™@kJmx@XUJ@bVLXxl@VVUVV„UbkLWbU@@lUVV„VVX„›K@XkJ@nU@@bV@VxUVlb„U@xXLWŽn@UxVbVĊ„V@b@XV`mnkJ@kUKmbƒaU@VbnbÆx@XU@@`k@@bl„™@@bkL@WƒakXWaU@Vmkx@XWW@@wUUUbƒJ™U¯V™@¯ÞU@WxXŽlL@bkb@ŽlVlnb™JW@kkU@mbkaWJ—IVlmz¯`UnU@mb™@@„ƒ`@bkVlœnV@b@šV@„aVxn@Vx‚KXnl@nbVK„bVK@a„_V@Vƒ„w@W„LlwnK@UmIU@VWš@šUÈ@lKnal„wš@@V°@šaUmlUUw@„ƒV@@UXK"],encodeOffsets:[[119836,35061]]}},{type:"Feature",id:"3410",properties:{name:"黄山市",cp:[118.0481,29.9542],childNum:5},geometry:{type:"Polygon",coordinates:["@@lXnlWX@VUJVnUJVzXJVx„kVJlI²l‚U@K@IUǚLVxnLn@lmUaVU@UVKVknJ@an@@UVIVǙKUw@_lK@wnKVklW@I@mXa@UlaXblU„JVUVL@UXWlIUUlKVmkU@kVKVL@y„wXLVb„JVz@Jlnš@nŽ‚LXbVaôšnW@la@UVWUa@@a@mk@WIk@VwUa¯¥m@UUVK@ImK@aX£ƒkK›ÅV™a™™ƒ_@±ƒakXWW—LƒƒƒnU@@a@¯mK@L™JUWwUV™VmbXX@lWLn`mzUJUb™Lƒ„k@makVWmkX™ambkKknƒaƒ@ƒaƒb@‚U@Unm@—ƒWVƒ@VbUbUJWIk@@lmL@°UVUVm„nš™@@kmWkb@xƒ_m@@aU@b@JlŽUz™lWxXn„@‚b²@l`„IVl„UlL@VšK„nVbUl@VlIn@@b„bVWUk‚@@bX@Valb@bnb°Vn@„xVKlbVnV@V‚x„L@ln@UXVV‚L˜"],encodeOffsets:[[120747,31095]]}},{type:"Feature",id:"3414",properties:{name:"巢湖市",cp:[117.7734,31.4978],childNum:5},geometry:{type:"Polygon",coordinates:["@@VV@blL@ŽXlWnnšnŽ˜„@VXXl@@WšIX@VJ@LšxŎxlnšŽ@bXJVblX@VVbUVn@VbUVlb@LnJVbVLV‚XLšÒVL„ÒšV„bVIVylUXk°Wšknm°_lJ@aXL@l‚z°@„lnLô¼V‚È„VUUaVKU@WW@@UUa@knmVLlaV@„a@kšak±@UmwkKmk™lj™ÝUUkL@mlIVmnÝWkkUÝ@KƑĉ™a@»ƒmma@mX™¤¯Uƒw@ƒ@UU@bU±±L@akmƒ„™LUKmLUUUJVbbÇwƒ@kUWaUJ@Xkxm@UJUUm@™„k„ƒ‚ƒakXUšVl±ôU@kn"],encodeOffsets:[[119847,32007]]}},{type:"Feature",id:"3416",properties:{name:"亳州市",cp:[116.1914,33.4698],childNum:4},geometry:{type:"Polygon",coordinates:["@@lU@Un@@anUlw@KVmUwlaX_lKna@KU@@kWKUU@ankW™XK˜@@V²VVIÈU@al@VaÈamK@wU™@klaUƒV@XƒVUU»WUUbkmUkVmk@aÈw@mWU@VkIkVWKUÑķXȭºU¯lƒ@kkLWmÅa™L@l™LWlzVxƒVUK@L¯LUJ@bWƒK@b@JLU@Wbk@WVUU™V@nƒJ@XX@@`m@@L@bnJ@nWV@¦œa‚wVVkxVn@bVJ@V¦@Ž™²¯bƒl™b™@m„UšUŽƒŽ@¼ƒ¦Xb‚UV`@nnxUxWLkUkVWKkV@XV@@VVL@VX„@lVV@L@blL@`šL@xXKVL‚@„VnUš@lwnU@ml@XnV@@UVW°LnalƒUI@aUK@a‚a@U„kXW@I@mWL@UXK@UVW@U‚@@k„Wn‚@@V„@XblaVxšL@bVKXb„IlJ"],encodeOffsets:[[119183,34594]]}},{type:"Feature",id:"3417",properties:{name:"池州市",cp:[117.3889,30.2014],childNum:4},geometry:{type:"Polygon",coordinates:["@@„V°°ĊŤ@xƒĖ@xœXƤ„VôIÆmnLllXÔ@lƒÜŽn@@JšbšLÆaĢÞĸ„°VVUUKVanK@UV@VL„VVn„ln@‚xnklxXamk@WV@Xa˜@naVk„Klk™@mkUWwkJWw—IWK@ƒUaUwWIUyVIUmVI@UXWmkkW‚—KUUVWm@@kƒKw@U‚UUmkaULƒwm@¯Uma@akaUbW@@a@VlUXƒa@am@kJ@UVkUaƒm™L@UkKƒVUkƒJk_±@aƒ@WmXwÇkkaVaUa±ƒœwV@VkƒwnyUaW@UU¯amLk@m™@kmmU™™¯K@L@lUX¯ƒWlkXƒŽVb„bƒVUL@J@LVKnlJXnlb@`nXlalV@bnL@Vnb˜¼@lXbWlkL™K@zUJmIUxUVUVmX","@@llUL@VlxšL@a@UƒwXa¯@"],encodeOffsets:[[119543,30781],[120061,31152]]}},{type:"Feature",id:"3401",properties:{name:"合肥市",cp:[117.29,32.0581],childNum:4},geometry:{type:"Polygon",coordinates:["@@„L„xV‚ĊLÞkšVlVVXaWaXwW™nU„@‚anVVUX@˜bXblWkk@wWmk@VUVKnb@Išy@_kWm£nmVa@U‚KœwlVl@„zn@°l„IlmnVšIVmnV˜aXÅWmU_VK@Unƒmmk@UIVakaƒa™UƒÑUK™ÑWKUUKUamI@KkaVUUam@VUUa@UkWUaWI@a™kmōw™wUL@`mn@KƒV™IUVUUUK›Vk_ƒVkbWƒ@VkUULUJ±I¯aƒlkxU¦@L@V@V@b@b@„WJXbWVXn@LƒKVL@JkLƒŽV@Vbn@VV@XU@UlV@@VV@V@XXV@@VšJ°š°Xnb°@„JUVVXV`@bkXWŽUbU@WŽn@VLXlm„°bV„UbkK@bVJ@bVbkLV¦ƒKķV@x@„XbmVVVk¦"],encodeOffsets:[[119678,33323]]}},{type:"Feature",id:"3403",properties:{name:"蚌埠市",cp:[117.4109,33.1073],childNum:4},geometry:{type:"Polygon",coordinates:["@@VÒXLlUlJ@UXV@nÇx@bnlUVllnVaXVV¼UVW„U@V„²wVV@Vl@„VnwlIš@XbÆWVnUVmLUV„nm`k@VbnblKXUVIlxkb@VVLlK@bšwXxV@n¤ÆUVaÈaV_@anyVwV@„kl@°m@LnU„bl@„WVkV@Xa„a˜V„IXl‚IV‚„@XbVUÆ@XKWwUkmW@_UmnIlJXkWKXmV@‚w@_XV@Kl@kU@KlX@@UUUUKWLm@klJVUUmk@mXUWmXwƒ`m@„zUbÝakbW@m@UUƒéUIm@UbKǼ@™kKWXmWUkaWU—JWU¯L@W™Lƒwk@mm@_™ƒÅl™UVkmWUnV@VWLUb™bƑĬ¯l"],encodeOffsets:[[119543,33722]]}},{type:"Feature",id:"3402",properties:{name:"芜湖市",cp:[118.3557,31.0858],childNum:4},geometry:{type:"Polygon",coordinates:["@@„bVaV@XllLXU°ŽlL@V@VUnVl¯Ikš›VUVU@@b@lUXUWmb„n@¼šbƒĊ‚LÞ@lVXlmÞUnkJ@nlKVVšÞXklWVaVI@aUKn»lL@Kn@‚XXwlm@mn°@„V@Wy„wXlWVk™ƒ@aUaVU¯£kKWVXVWLUkkWlkkwmJUam@@aULVa@UƒVaUaVI@m‚@UUJUIUmmV@bm@UXVVUlVmImakKUU@UU@VmU@@kma@KVIXUVK@U™VmUkV™m±£@JkU@nlšk‚ƒLUlmb—@WbU@@XnlWb"],encodeOffsets:[[120814,31585]]}},{type:"Feature",id:"3406",properties:{name:"淮北市",cp:[116.6968,33.6896],childNum:3},geometry:{type:"MultiPolygon",coordinates:[["@@lnnK@¦n@@V‚V„@@VV@nIV„V@VW²a@b@bVnUVVV@V™z@lš@°UšV„IVaVV@x@ŽXX@WlwUnV@XblW„b@XlK@aš@kƒ@al@@_V@@WÅwmaUaV@„bnaVL@llInmU_@W@aƒUUĉUaVwm@XWK@wƒVkaVUUwU@@aV@@mlI@WœLWƒUUUƒVU@kV@XalKVaUƒVUUUk@WwUK@aVI@WƒUk@@UUU±xkb@lVš@xnLÇbUbk@@bÇVUJ±U@U—@WLXšml@bVVXL@lV@@LmbkLW`kbVxUn@LkxmV@bm@@VkV"],["@@VVVkV@¥@UV@U@VUUJƒkWakKUšlXVJ@bXV@blX@aXV@V"]],encodeOffsets:[[[119183,34594]],[[119836,35061]]]}},{type:"Feature",id:"3404",properties:{name:"淮南市",cp:[116.7847,32.7722],childNum:2},geometry:{type:"Polygon",coordinates:["@@°kƒīšaVaXK@U‚UVmnXUlšVÆkVKUUUmmU„ÑkU™UÝlĉKUƒwƒKƒbU@UxW@@lœmVUUVmUUƒmƒw—aW„kL¯K@Žm„ULWlIm`X„WL@b@¼@V@xkVƒI@b@l@lk„V°Ȯ¹ĸW"],encodeOffsets:[[119543,33722]]}},{type:"Feature",id:"3405",properties:{name:"马鞍山市",cp:[118.6304,31.5363],childNum:2},geometry:{type:"Polygon",coordinates:["@@šNJnllLnxV@laXLVKma„aXbVI„bVKVVVIVyn@n_ƒƒW@@ƒ„UnJlUVVXlLnaUWlV@VV„IXW@_W@XK@K@UVUUwVamÑXmmwƒw™KUnUK™çU@ƒJƒU¯@mŽ@nknWxWm@@LkKm¼VL@bUJUbkXWl"],encodeOffsets:[[121219,32288]]}},{type:"Feature",id:"3407",properties:{name:"铜陵市",cp:[117.9382,30.9375],childNum:3},geometry:{type:"MultiPolygon",coordinates:[["@@„ÒV¤@¼V²@aVV@Ž@„„x°Vš£nW‚@nbnaVXVW@k@aV@VUœUl™°JUkVm@U@UkK¯WVkKWkU@Ubƒakwmlwm@ƒkUmƒUUKU@@VmLUbVLUV¯U"],["@@LllUL@VlxšL@a@UƒwXamK"]],encodeOffsets:[[[120522,31529]],[[120094,31146]]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/ao_men_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"8200",properties:{name:"澳门",cp:[113.5715,22.1583],childNum:1},geometry:{type:"Polygon",coordinates:["@@HQFMDIDGBI@E@EEKEGCEIGGEKEMGSEU@CBEDAJAP@F@LBT@JCHMPOdADCFADAB@LFLDFFP@DAB@@AF@D@B@@FBD@FADHBBHAD@FAJ@JEDCJI`gFIJW"],encodeOffsets:[[116325,22699]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/bei_jing_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"110228",properties:{name:"密云县",cp:[117.0923,40.5121],childNum:1},geometry:{type:"Polygon",coordinates:["@@vIHZDZQtDLNMXIbHRCXXITbJ@H`LGPRDDJNCLHTOCWFGvGBUJMKGFO^IHWXITQCI’Y^AXGfRˆDXF`DJOLB~G\\DZIHHpErUVMhHb]\\M†BVF@FTP`@zTbD\\@~M\\K`H^EVODWICAakAQXoIcCOCIgGYNWFWNGGKKGaJEGMEIKYJUT_J_Go@_SyQaSFMEGTcYOQLIIi@EKAUPCV[EEXQCW|aMUMAaYCYNIDGGACIMGGSKDQGaF_C[GaB@GOIiOKAYL“mI@CN]F[SWWAcKKI@HMUimEKbeYQYISNUOcBKPIFBNgvDPGZYFSf]CMSIWGEUFgDIQ[MeDMJS@RR@LphFPCHaBAJKF@J]IBJO@HlO@@RKAMPJHCNDJTHFP@ZGNANBRFH@J_fM^ONJNF\\VTDJHDON@XRND\\XRCPVETCLBVKDFJINHRGPRV@\\CLJN@VbXbLVT"],encodeOffsets:[[119561,41684]]}},{type:"Feature",id:"110116",properties:{name:"怀柔区",cp:[116.6377,40.6219],childNum:1},geometry:{type:"Polygon",coordinates:["@@JHTVHXCHPfnDJGHNDJSB[JSBGVSAOH@PMPuDEHHXZN@PHF@ZLJ@LHVYJA\\OFWP]BMtMBSRGV[JeVAPQVIFENMD¡–@^NV\\JH@NNL@NM\\kTQ\\I^FNIpBHGTBFFAZQfKDIXQTLXFXNNVMVHRGpCFLlRLEVBBH`IVO\\G`RDPAXLXBXORHZEHTDLLN@VGTMrQNFPeASKG@GMOAKBYMK@GTUHUXSHMVDNMOUEOZMJML@^KRACMZEZMRQLUHE@OFENPR@DI\\ChMHIDG\\GJMDWHCKGMDCIQCHO_K@GaIJSWWQDaGWJMNCKRsCYGYuJUSaKaW@UIMDK@[QUHOGQJMEILCAUDKFSOUQD[WMC‚Q@WPMGCCIUSE[IMPMN]`e@IEGAQBMHM@YEOSGCIDMIGNOLB@QP@GkP@AI^J@ILEBIbADGEOog@KQQWSekWQQUOFKZLF@PUNmIaHIUeBCTSHENcJa@_IWSaGu`GLSBKJQFOXGDXVQVOBIHcDSJWBEFGTMH[^mLaXcHiKElTRKtFXZ`MHMPCNRDxZˆB\\ICIHK@KŽHbIVFZ@BPnGTGbDXRDJaZKRiGEFSFEJhjFNZFjn"],encodeOffsets:[[119314,41552]]}},{type:"Feature",id:"110111",properties:{name:"房山区",cp:[115.8453,39.7163],childNum:1},geometry:{type:"Polygon",coordinates:["@@h@bl@HRJDZ``TA\\VVD^H`\\pF\\JŒ`JGv@ZO\\GPSTEjPTR`FnEbDTDHEhLFMTK@ETSPULKEI@OVISKSJACEQNQbV˜IXGDIN@dMB[IIBcN]ZHNLP@XOWCFWŠCNRHTpATD@^NVNLED@Rh@jCEF}E[OOHUEW]W@QGGDIQSH_MmFmCUT_K]i@MHCMW—FCF‹E{BMHMPOHKS]CFNGBELDH_@BcAKOACESAOBELaXAROB@FODMEDWJAG[aE@UM@DImEWJMC@OeCA{aE[@{L@MINUCQXKfUJORCHqJBF@TCXWNQX]M[EAJO@@KMBQJIC]EWMCCUBEBFHKDOTMBGNGF]MWDBRDdMDQVyE@LPVHDCP@JVVMTG~HNSH[CmRUvHPHBbA\\PTNRC\\YNJ€PRARPJDDR"],encodeOffsets:[[118343,40770]]}},{type:"Feature",id:"110229",properties:{name:"延庆县",cp:[116.1543,40.5286],childNum:1},geometry:{type:"Polygon",coordinates:["@@^AXOPEB[ZIGU@KKI@YGE@OYMGWFGvCNO@OPGTBHUTA\\ITACIGMIHmCOeDGGWSUIGimYEEMgiFITEFEjHLQbYCIWQaCSHmHAOY@UEaJG@LGLDJ[J‡AwYQCDMNONGY_EWLsSQFkMO[NWAIGaIYL@HMBOKiOQDWEUDMQSF_QIUBWdg@[NaAKQ@M]OQ@WhgLUMMFYQDIRCEUZOOCIOJ[KIUMKL@HIDKVEBM`HJAJSJUdBLGNEdMBMO[BYEWJSNKNaD]PE\\SjOT_RQVEZPpƒNQXfŠNA~lNG`@PNLp¼RFLfbdKbATUh@FSNWjGFZVLFHVA~X¨PPROfFJbNJPLFbENJPrEFNPFRHDDJdENJLVEPBJTVTHGHFRFH@PXP\\ORQHW\\BjWFDERLPPBbB\\E`B\\D\\L`@F]FCnJ^AZL"],encodeOffsets:[[119262,41751]]}},{type:"Feature",id:"110109",properties:{name:"门头沟区",cp:[115.8,39.9957],childNum:1},geometry:{type:"Polygon",coordinates:["@@V@XMnGPY²‰JQNEhH\\AZMPDVTTDZCPiJkHSHCjIdFtEHITCNITQEKUAMCEIKCECABYESKFWAKBEIIHABGDCKCAIHMHALKEI\\CFIBILIJQZS]BBEECS@E@@C]COKI@CABAAEEDMGƒCH]A[M@CJWH—JaUMRFRBDTITLUJ@PFJKLOVST@FSLENgKGFSCaCmF_ESQiOSFOT[HYPu@IH‹_[IoE_[]GUC[USB__CYQI@Gakg@qZeHQNMNV\\FVLPgJAFJPRLCH[XcPELUT[JiV_EELFTADBXRTRLJC@fHXHHbPd`fR@NfT`@TLplHMpCEJHJBVLFŽ@JT‚VnG^KXDXHNVGRLRXFJVdDHSNWLGfEzA"],encodeOffsets:[[118635,41113]]}},{type:"Feature",id:"110114",properties:{name:"昌平区",cp:[116.1777,40.2134],childNum:1},geometry:{type:"Polygon",coordinates:["@@VNLJI\\JPPDYPFVQDCJZRNEVNhKXgR@^P@NLRbB\\Mh@XcVARJE`RTCNFV€XRCjPPLNA@GZKbJJHXB\\MNPjLdGbWnK\\]NGHSFEXATIdCJGPARUWUHCPWRELITAHKv_E@iYCaW_BQ\\Y@QIO@QDCIGZCEMWGFMFAFgHEDOCSqKCCFGAMKEAC@ODGCGs@WH@KQA@EE@CE@GEA@EH@GGUEEJEAYD@JM@@DAA@FHD@FTJEHUC@JUBKCKG@G[CIIQReAYhO@OXGDO@@FF@IHJFCPEBACBIAAKDOABXARHPNEHGbQAAKQFGIAM[C@WHKaGiCEGOA‹HUKCIokSCUSOCYN[BgGMFIR±ŠOZmHWNU@ShbbXDHVXXGJ^lZ@PZ\\Nb@\\FHJAD"], -encodeOffsets:[[118750,41232]]}},{type:"Feature",id:"110115",properties:{name:"大兴区",cp:[116.4716,39.6352],childNum:1},geometry:{type:"Polygon",coordinates:["@@F\\E~DFN@BDFEpHFCHBBEGCDCJBHUDSBB@ELCPbF@B\\J@BJVAFJ\\ADKTCBGECFMT@BMN@@FH@DaNBEnvB@FPBATK@FHEFIAKFBFL@@PKBFJHC@FXBRAFCDMPDTOL@JIVFDHH@DDH@BGRFCDLD@N^@@CNA@KNOAEBCECFEGCFGMGFIPMOEJOLBADBBHGG@GCHIECY@INC@DMGS\\AIOZAAEYA@GT@KKMBEETCGMVINFxA@MJADB@FlA@HJA@NND@DFA@DVAZBBOFKH_JA@K^GBC@EFE„G@gAENMXKJigC@IbSJMqGOP£RGSMGE@kbQFDPEFiBSGGSBK]I{CDWCIDOic[C_G@SuSO@EWKCO@MNY@\\uZOPENQD[LKESSKGBKEG@EJGAGHoH¥CqhifeJkX_XFFGHFNEDFPENKHM^IFIVL^S`DVEnNnG`RTCJHH@R^XFXGVPP"],encodeOffsets:[[119042,40704]]}},{type:"Feature",id:"110113",properties:{name:"顺义区",cp:[116.7242,40.1619],childNum:1},geometry:{type:"Polygon",coordinates:["@@EhEBENXHFNYDJHCD@RJP@R[ZARX`DbjZF@bHXT`Jb@dIFMTGDSfAJVbGnJVM@OKELYPERVXRflXTT@NIfC\\NJRhCVEHFJXNT^DTeZEHYCOhuAMJELOdAVPTMOWBWNMNEJgl]@WGUFIC[T{EEDEHGCIGMI@SECUQI[D{A{GQESPUH]CsiMCmHUeoHENcAaDGCMDGMQCACCBaCGLMAHB@DIEQLOAAEEJ@CW@CDINGAAGKQOCgV@LG@BEGDKNeREFBNCFIDOPKD[@YRW@GFWDAFE@EHDDrLDTCPGF","@@KrJEH[\\B@FF@CHFBHUN‹AJKADGECBCMAG^E@EbI@BEGP"],encodeOffsets:[[119283,41084],[119377,41046]]}},{type:"Feature",id:"110117",properties:{name:"平谷区",cp:[117.1706,40.2052],childNum:1},geometry:{type:"Polygon",coordinates:["@@ZJZRafFLjn€VGNJ@LLBdXX\\T^EDMJ@”nZKLBjPPJ@HbA\\H`DbERHLCFK^BZaFWXQLAGMHa\\OLO@SBIpBdCLƒVQfElO@GSAKEDQTC@GEBKG@ORIJBDAPDFA@CaOq@GGQAAEJK@KMUGAAGEAa@MGMBGCGSIIW@WSUCMDOJeWOM@IUF{WMWaDIMgIoRoCOKeEOEAG_I[cg@wLIFENQFDVTFJ@HNDJGHCFFFS|D\\EJHV@Xk^IhMFMNAXPX"],encodeOffsets:[[119748,41190]]}},{type:"Feature",id:"110112",properties:{name:"通州区",cp:[116.7297,39.8131],childNum:1},geometry:{type:"Polygon",coordinates:["@@FDAJTGDNDCTDDEDBBE@DT@@EHCDGJ@EIZ@@FDBR@ATFBBVFFE@@HNA\\VE@CLIFNJFNJBCP]A@LJFA@HJEDD\\C@DBCHLAEPF@@DH@APHAERDF\\GIxDTM@CFLBBFJ@CNUPMHECGDBF]BMFPDLRBHHBJMDCX@@DFIBFPBRKJF@CGANBHKbDDABDRDHNNCHDbCdBFMpGHiOYMefKJMC}HWAUNW\\NNBNA„kNU|]HMTMN@MZBLFFF@RIRUT‘BMFIEGaAGGAOIIUGTSFcYKS@MSLYPKRUBU]EWDOI]CKGASgW@MTWKIMCS@uMAKKADMECGAKVUTSDy@IjWLMNBF@hƒHEF@FAD]H@LIBG`ELAPYAUB@CEB@CMC@MIB@GkB@ECAIB@NwBMEUJHNSDFFNALLS@@HZBBFYBJP[BHTCND@JMZ@FDGJHDH@GHAABCKAIPPFONEJNHEHHDEFFDADBFMP@L"],encodeOffsets:[[119329,40782]]}},{type:"Feature",id:"110105",properties:{name:"朝阳区",cp:[116.4977,39.949],childNum:2},geometry:{type:"MultiPolygon",coordinates:[["@@bFGHBHFBFIVFHHG@@FFB@HDFF@@FRB@LXGt@DHCH@PBDLFBNF@BEXCHEX@ZQ\\@LCPOJCDEAMFEfQLMHCAFH@@KhUNE^AAEHCFDNGVODMI@AEKADEN@CSJw[HCEFQGBBOG@@CE@FOKBDGCAD@C[FCGIB@IE@K^BDOIAEMMIJEDKF@[UMB@GF@EEAUEABSQ@CA@EY@FJI@CHGD@FS@@CAFCACFSCCDCMSHBIECMB@D]@@MKCDCQEAHG@CCG@CGUEIJK@SPOCCNEDQBDNDB@DJCDLFCBBALJB@BVGPBKVO@KHCCCD@FE@BNA@FNCTDDJA@FGB@NBDW@CL@hT@@ZHHQDDDAFSAANBC@HG@EFS@@DE@@PCB@Ue@CADNJB@FCBWA@LI^ix@FIHrH"],["@@HUN‹AJKADGECBCMAG^E@EbI@BEGPKrJEH[\\B@FF@CHFB"]],encodeOffsets:[[[119169,40992]],[[119398,41063]]]}},{type:"Feature",id:"110108",properties:{name:"海淀区",cp:[116.2202,40.0239],childNum:1},geometry:{type:"Polygon",coordinates:["@@plDJVLŒGPBFHjDbHGL@X\\DBNHJREBLRBHaFGŽMGOBQAWPBLCBBAJBDFADOIEJGE@@EP@HCPWP@ZgfBRQJJ\\D@HLHLDVA@IVDFGSI@EGC@EBB@CN@@IZCAGHGaEqGJG@EjwJ]@K@GSA@e_I@NE@CA@Kg@KC@ENCFƒAKQAW@WIMK@V‹@I@@F@^EDFB@HcIaDYCBRRDCHD@EFLN@FE@CJUPEJOJMTBPEDIFCMIAKNOGMRFJNDVBFLSRMJSDGJsFcEiJGDGTIlOjYD"],encodeOffsets:[[118834,41050]]}},{type:"Feature",id:"110106",properties:{name:"丰台区",cp:[116.2683,39.8309],childNum:1},geometry:{type:"Polygon",coordinates:["@@hMN@NFTQCFRCBJFA@HJ@@HJ@HJ\\FTACDŒ@@UNLXJX@@MA@@IECAQlDFEHBDI~D@GXCFMVDFCH@@NF@ANJC@FnAB@AMF@@EDCDDLGP@LUOAUH@AIABKAAEDCKID@CCACMWA@EGDEILA@OK@AELEJBFEEGL@BSOA@EuAFmMACbG@@EM@ANS@ENFDAHSDCL[BEIUBAII@A[E@OaKD@FAACTGVIACDHDAFGAEDoGEFACM@i€g@@QFCMKMU@]SCoBGSMQ‰DEXXDWPO@MKYGM^AdJJA\\cNB\\G^„DNHFCBFABDBJ@PL^D@DF@T@FDAF^A"],encodeOffsets:[[118958,40846]]}},{type:"Feature",id:"110107",properties:{name:"石景山区",cp:[116.1887,39.9346],childNum:1},geometry:{type:"Polygon",coordinates:["@@NQPHLMJBDNJEFCAONSPIFIVODIF@@EKMFEC@DGQCAQZDbCdJ@GEAFC@]@EJ@DCSB[EGII@@GI@@GEBAIQDDESRMEM@gNYTIRKJAJEJ[DFJKLGBGNBJLDCDAHGBJJAFBLEXTLZFBAFDLD"],encodeOffsets:[[118940,40953]]}},{type:"Feature",id:"110102",properties:{name:"西城区",cp:[116.3631,39.9353],childNum:1},geometry:{type:"Polygon",coordinates:["@@XBDA@EIACM@IJAD]BC@SFABISAD]H@@OAEDQEW@BLE„MD@FLDh@@LDBF@@M`J@fTB@H"],encodeOffsets:[[119175,40932]]}},{type:"Feature",id:"110101",properties:{name:"东城区",cp:[116.418,39.9367],childNum:1},geometry:{type:"Polygon",coordinates:["@@DBf@@VDA@OF@@CT@FEH@@GADBMTBBECCRCGG@YS@@gDK@A‘C@PG@C^TBAJEB@TADC^IB@J"],encodeOffsets:[[119182,40921]]}},{type:"Feature",id:"110104",properties:{name:"宣武区",cp:[116.3603,39.8852],childNum:1},geometry:{type:"Polygon",coordinates:["@@RBX@RFFCŽBFU@aK@WA}CCJGAEFkCBRFD@JB@@N"],encodeOffsets:[[119118,40855]]}},{type:"Feature",id:"110103",properties:{name:"崇文区",cp:[116.4166,39.8811],childNum:1},geometry:{type:"Polygon",coordinates:["@@XBL@@bEV’D@BX@AC@MHA@EIBCCDSEMmB@EIDBME@@MG@EDUCENWD@H"],encodeOffsets:[[119175,40829]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/china_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"xin_jiang",properties:{name:"新疆",cp:[84.9023,41.748],childNum:18},geometry:{type:"Polygon",coordinates:["@@@›ρȁôƧƦóəʵסʵóƪԫʵѵͩƧͩړ›υࡓɛʵ@ȃ@óᇑѵƨɝɚôóНѺͩɜ̏ԭʵôƧɞñ@υƩ—݇ȂóƩƧ@ѵȂυœƥŌਗ—॥ɛóʵѵƧѹ˜݇̍ࢯ˜əɞυ˜ρͩ̏óਙƨƧŋôōóš̍ͩóʵן›óŋړͪƧѶ@ɜԭ—ԫƦɛȄ̍›ɝȄöςƩȂ̏œñȀ̏œƩóóŎə˜@Ő̎@ɞȀɝŎôƨóנѵȄƧ@óŏɝœóɜôŎ̍ͨςŎ@ƨóôƨɞ݈ʶóƨφó̎Ȁƨ̍ԮòѸԮמ@ѺȀ@ƪၬֆòȂñ̐òȂɜ˜óƨ̒Ŏ̑߼@φρȀ@Ő๐ς̎Ƨφ@ɝφڔ೦Ԯǿࢰ@ƦŏԮƨƨȄƧ۬ɜʶڔŐɚɚóŐôƨ߼˜ôƧƧó̐ƥóŏѺǿƦȁφƧς˜ƨƧ̒@ɜƥƦυ̐ɛƪͩƩəƪʷ̑ə@ȃƨʵנŋྸōਚԭԪ—@ɝƨŋ̒օςʵôƧ"],encodeOffsets:[[98730,43786]]}},{type:"Feature",id:"xi_zang",properties:{name:"西藏",cp:[88.7695,31.6846],childNum:7},geometry:{type:"Polygon",coordinates:["@@ôŌנœôʶ̎ͪô™óŎƨŌਚƧ̐ôςͪφ—ɚɝࢰ—݈̎Ѻ—Ѷƨôʶ०ɜਘ˜Ʀŋφ›Ѷȁ̍—ôŏɚŋ@̑ə—@ŏò̍ɜ›óƥôʷƧ̍φѹԪ̍ע@Ѹʷɜ@ôñנ@Ѷɛɞô̐ŏѶƨѸƧƥōƦœôŏô—@ƧôƩ̒ŋƨŌƦǿô̎ɜȁ̒—óʶѶôôО̒›ςƥɜНφσɛȁ̎υƨఱƧŏ@ʵƥœ@ŌóóóͩƨƧóŋ̑õóɞóɝԩͪɝρôƧ̍ƧѹͨڑŎ̑ōóƧࢭͩ̏ѵɝóఱóóԪυô@̒ƥŌ̏Ƨ̑Ȅ݇ŎƧ›ѵӏ@ɛõŏɛȄôӒƧŌѵǿɝ˜Ƨŋԫ@̏ʴƥ@óǿ̑Ȁóǿ̍ςóóυô@ʶɛñρƦƩŐó̎óœѵó̑ͪࢯОóɜן˜Ƨ̏ƥȄ߻̎̏̐ןŎɝɜöɞƩȀôöɛȀóͪ̐ƨƪ̍̎ȂƥԪυО@φɞ˜ôƪ"],encodeOffsets:[[80911,35146]]}},{type:"Feature",id:"nei_meng_gu",properties:{name:"内蒙古",cp:[117.5977,44.3408],childNum:12},geometry:{type:"Polygon",coordinates:["@@ኊȁ૊ö߼ƩɜɛנñԮɛѶóԮô@ȁѸóמ̎ගѺၬ@߼ʶԮӒ߼̎@ŐѹӒ̒Ԫƨöග̑ѶȄ̒ς।œѶɚöɞɜʴڔôôȂ̎—ѺȀς—ƨ˜ƪóԪ—ɜôɛОਕڔԭ˜ѵ̍ѹȂԫ›ɛƥ̍Ȃóɜ̎ô@ʶ݊ੲࢮʵږͪנƨôȂƧ˜̐ͪ@ŐƦƨφԬѶɜôƦ@ŐƧôôƦəŐ̏›@ŐڒѶԬô̐ʳԩНςōôŏɞ@ƨȂѶəóƧ̒ػ̎ó̐Őנóƨô̒@ƨɚɚ@עԫɛɛ@ȁυͩƥʳòևρ—̑ࡗƧͪ༃ॣԮփ̎Ʀ@ôô@ôō@š@ȁѵóƨ̍υȃóʵɛƨƥóυȂóəƪ›̐ρƧͩɜԭڔȄ̎عƧȁ̐ŏó̍ɛ›ƥƧ̑óρŐ@Ƨ̏˜ɝəɛ˜߻ͩ̍ͩɝО̍ƪƧóóӓƨóƧʳ݇@ɝςƪœ@ʴƩ—ƧƦôƨɛȄə›Ƨŋυ›óͩѵ@ɝǿóŌן̍ɛ˜óО̍œ̑̏ôȁ̍ŏòȁñóƦͩ@ǿə@ɛƧ̑˜ρȁυô̍օѹœóȃə™@ȂσʵѷƪòƩ̍—ôó߻ۯôʳƧ™óšõʵѵóѹɜ̍ȂѹôɛŌφֈƩͨρóυӑóޟఱ̑݇ͪóƪƨŌóȄڔԬƩςםñ̑ȃѵŐԭŏƨȁɛǿρôõɚɛóƧОə@ѹ̐ѵöԪͨôͪɛ̒ןŏƧƥóôƥƧɛŌôóɝó@̒݇Ӓ̒Ō@Ŏԭࢰ"],encodeOffsets:[[99540,43830]]}},{type:"Feature",id:"qing_hai",properties:{name:"青海",cp:[96.2402,35.4199],childNum:8},geometry:{type:"Polygon",coordinates:["@@ƨ@ôƪ݈ȁƪ˜@φɝòóƨԮʶɛ̐ѹͪôОəóƧɞᇒѶ@ôږô@ǿѶ›ƪȁςœɜͩφ˜ςŋɞôѶɛƨŌɞ—@ɚςŐñԪॢͩƨȂɞóƨŐ̎ŏעӏ̎óƧƦôœ̒ȁɜ›ςͩ̒œɚɛƨôƨɝφɛóȁƨŋóóɚͩƨóóƩ@ƧəŋƦƩ̍@ƧƧôǿυ̑@ȁɞǿõŏρƥסɚƧóτԫɞœôƧƦ@ñȃòñƥóυôôѹѵ—@ŏ̏Ȅɝó@ȂəŌóəѹƦ@Ő̍Ōυ݈ԩŐƧóôƧ̑›ôʵɞƧ̑ѵôƩɞƧ̑œóНѵóôʵ̑˜ɛȂó̍ƥȀƧŋ̑Ōóƪ@ƨó˜óŐƥ›ƦŎѷƨѵƧ̏Őɝóѵɜן@óòɛ@ѷʸס@ԩ̎υѺƨ̎óʸôƦɛœñ̎@Őɚ˜@̒əŌóŐ̎˜"],encodeOffsets:[[91890,36945]]}},{type:"Feature",id:"si_chuan",properties:{name:"四川",cp:[102.9199,30.1904],childNum:21},geometry:{type:"Polygon",coordinates:["@@ô˜ôŋó̑Ԯ̒ɛОמͪƨōöͫ߼ƥôȃƨóóñôƧóƧôōڔŏƨŐ@Ŏô˜òƥѺŎ@ōɜóנ˜ôǿô›ƦôԮ̍ɜôɚ›Ƨ—ñɛɚȁ̍Ƨɛևυ@óóôŋρԭɝ@Ƨʸ̍ŏυɜƧƧóƧƨȁρ̍ƨȃɚ—ôʵφóô̑̏Ȃ̑ʵɜʵɞ@ƨʳסƩóŎə—óɜƧôƩƧρ˜óôôô@ŎƧƨƨƪѹ˜ó̍̍Ʃ@̏ѹНôޟ̍Ʃóƪυɝɛ—əƨôŎɛȀ@Ȃ@ñɝʶ@Ōρנ̏—õóɛͨƨȂѵОɛʵ@̏ƩŐó߼Ƨల̍φɜȂυτɛОρƦɝƨóƪ̒Ѷɝƨóʶ̒œóƨƨôԪŏφ݇̎ŋ@ŏѺƥôɚɚŋ@ȁɞô̐ȃ@ŐѶ˜óѺφóƦôñòòȄ"],encodeOffsets:[[104220,34336]]}},{type:"Feature",id:"hei_long_jiang",properties:{name:"黑龙江",cp:[128.1445,48.5156],childNum:13},geometry:{type:"Polygon",coordinates:["@@ᇔȂਚНƨŐѶŏöƥςŏñƧƦóƨȁ@óƨ—óȁφӑóóƨ˜óǿ̎̑ôНɞ—ó̑ɜə߼›̎ǿ̒ôڒӑφ@Ƨȁ̎̏ƥƩ̎ρశ˜ôȂςƨφ@נɞ݈˜̑ƥƧɛƨʵƧȃƥ@Ƨƥ@ŏ̑ԩôɝρρóɛƧ›ƩͩƧó߻ʸ̍ʷѹƥɞڕõ̍öɝυ—̍ȂƧ̐̑ŏóƨñŋѹóóȁ̍›̏Ԭõʸ̏ŏ@ǿ̍@ƧОυ@ñƨòȀƥŎ̑ŐѵóɛŌóȂԫōƧŎѹñ̍ʶóОן@Ƨ̎Ѷô@Ȃ@™óŎó@@ó̍ƥԭք༄।ƨͩ̒ࡘς˜ñֈƦʴφͪ@ȂɜɜסԬə@Ƨə̑@Ƨóןô̏ŏ̍ô̑ؼôƨѵɚƧȁɝ@óŐρŎԪО̏ʴ"],encodeOffsets:[[124380,54630]]}},{type:"Feature",id:"gan_su",properties:{name:"甘肃",cp:[95.7129,40.166],childNum:14},geometry:{type:"Polygon",coordinates:["@@ڔôԮࢯ@ō̑ŋ݈ӑ@̑ɞôóôɜŋƦƨôóƨƦנŐɜ̑óͩԩͧѶõѺ̏ɚ@ƨНɜôöəςóɜȀƧȂԮŐѶŏ̒ȄמòƪρړԫôȃƧŋôƩ݈ͩɚ@@ǿɜ@φͩóŏɜӑƧōôǿ̎›ôƥƪóõ›ö@ô—ƨ˜ôƧƦôó̒ɜ@ɞŌõʶ̏Ő@ȀóôƨȂ@ʶע@@ƥ୾ӑó̑óŋôʵóɛړ@@ƩöóƩóρ—ɛƨ̑@óʷƥƥ̎ɛƧ›ôōƧǿôͩѵôɝȃɞȁõƧρóó—@ōƧŏړŐóŎôƨóƨôòƧôóȄ߻ƦõͬƧŎםͩɜНԭ̑ô̒óŌó—ƥ@óƨɝ›σԬƨôעəςƦöŐɝȀ@Ȃφ̒óȀƨƨ̎@ƥƪɚŌ@ƨôƪƧôəͪôôƧŌôȂυɜƧɞƧóəɜ̑›ρͪɛœ̑Ȃó›ƨƥ̍ôסӐ̍ŐƧŏɝôƧȁॡͪòԩρŏ@əɝ˜ƧŋѵɜɝóρŌυ—ɛͪρ›ƩȂѵœ@Ȁڕó@ȄɜʶφࡔڔœƨͪѶͪԬʶôƩעʶɚʶƥôóƨςȂ"],encodeOffsets:[[98730,43740]]}},{type:"Feature",id:"yun_nan",properties:{name:"云南",cp:[101.8652,25.1807],childNum:16},geometry:{type:"Polygon",coordinates:["@@ôɞôɝ̒öôŌƧƨôͪôô@ŋƦ›@ʶƨŐô߻ƪŏ@̐ɜʶѶНƧȁɜͧöô̐˜ςן@ŋɞʵ@ò@ȁɜǿóōɚƧɜ˜φɞôƩ̎ƪóޠѺО@̐̎ƪô̎Ѻ—ƧƩƨƧ@ōóóôóς—ƪƨƨóôɛó̑ԭ—ƥŌɛǿɝƨɛͩô›@ǿƨȁѺŌɚɛ̍ןѶНɛƧôóƥȁƦͩôŎɞ—ƨ̑ɜ—òôφ@ƨʵ@ɛѹōóȃəƨυǿóʵρƧƧŌƩɛ̏ȄñƧƧȀɝ̍ԩʶƧ̑υ—óŌƥʳɚӑóНƥô̑›óӒѵʵѹœƧӐןôƪφõŌƪ̒ԫŌƧؼƨƨס›ρȁƧœƨȂóʶó@@ʴƨôôφ̎Ŏ@Ȁƨ—ƪɚƨœóƨôôôςóޤƧŌƩŋƧԪ"],encodeOffsets:[[100530,28800]]}},{type:"Feature",id:"guang_xi",properties:{name:"广西",cp:[108.2813,23.6426],childNum:14},geometry:{type:"Polygon",coordinates:["@@ƦŋѺ̎ڔʵƨŐ@ƦמȄƪôóȂɜŌɚͩɜ@öóɜôôȂƦôɜȁ@ɞφ›óȄ̎›ƨʶɞŋƨʴɚǿ̐̎Ԭ@ôñ@̏ƨ›ρ۫ô›ɚƨƨНƪŐ̎›ƥóƦʵƥŋ@ȃóƥƧ@@ŏɝǿôυƧȁѵɛ@əóŏ̑@@ə̍›óƧó—@ȁƩ˜ρóòНƥô@Ӓ̑@óŎ̍ƥσŎυ@̍ƨ@Ō̑ôóͪƨ̒óŌړœ̏Ŏ@ŌôȄѺŎ@ɜƧʶυ@ñóɛ˜Ƨ̒ɝ˜óōƥͪ"],encodeOffsets:[[107011,25335]]}},{type:"Feature",id:"hu_nan",properties:{name:"湖南",cp:[111.5332,27.3779],childNum:14},geometry:{type:"Polygon",coordinates:["@@@քɜОƨ@öŐמóƪôƩɚ̒Ő߼ȁςͩɜòƪ—ɜȀò—ñɝò—Ѻͪ@ŏƨŋóɝôǿƨ™ɚȃóəƨȃѵͩó̍@ȃƨóóƥƨƧ@ʵƦ›óͩɜ—ɛóñԭɛōυȂ̍ƧƦō@ɛƥ—ɛȀ̑œóʷóō̍œƩŏƧОəƧóœς۬Ƨœ@̐óòԫ@̏̍əȀƧʳɝŌóɞƧ˜ƨɜóŐƨò@ȄƧŌρŋóôԪОóʶ@̎óȄ"],encodeOffsets:[[111870,29161]]}},{type:"Feature",id:"shan_xi_1",properties:{name:"陕西",cp:[109.5996,35.6396],childNum:10},geometry:{type:"Polygon",coordinates:["@@ςôöƨɝȂɞȄѶóóͪƨȀóŎƨœ̍ɜƦƦôʸ̒@ɜƧς˜ƪôõô@ƪڔ@ôɜóʶôŌô̒୽Ӓ@Ʀ@Ѻ̎ɜѺɛѶôöʶô™ƨšóʴ߼۰óô̎˜ñƪѸƩτʶ@ȁòŋəѹóǿ̑ʵ@ȁ̒ʷυփô݉ôН̏ط@ȁƨóô̏ƪõ@ʳ̐ʵ@ɝɛŋƩŌɛóןôƧŋ̒ó@ŏ̐ƥ@ŏυ@ƧƧôן̏@ƥȂѹɜəœɛóԭ̎ƥóóœóȀן—ɛô@ŎѹōñƦ"],encodeOffsets:[[108001,33705]]}},{type:"Feature",id:"guang_dong",properties:{name:"广东",cp:[113.4668,22.8076],childNum:21},geometry:{type:"Polygon",coordinates:["@@@Ȃô˜ôƨ̎œ@ɚ̒@ôŐ@ɚѶɜƨȂóφɞȀ@Őƨ@ôƦ@ȄƦŌƥʶƦôôŎôʸ̒›ɜǿƦ˜@ɜƥŎ̎ƨφȁɜŎòƥԮŎƨōóŏɛƧɝəɞƧ߼ɜςȃñȄƦŎ̒ōôòƨəƨ˜ɚН@əƨ̏ƪʵυŌəɛóəԭŏəœóŏѹœρʵɝƦ̏™ƥʳѶ›öō̑óóŋρȀυƧƥɛѹōƧôן—ɛŏѵ@óŋôʵɝ›ƪԩõ@Ƨō̍@Ƨ@@ƦɝԮƪО@@","@@X¯aWĀ„@l"],encodeOffsets:[[112411,21916],[116325,22697]]}},{type:"Feature",id:"ji_lin",properties:{name:"吉林",cp:[126.4746,43.5938],childNum:9},geometry:{type:"Polygon",coordinates:["@@נ@ôН̎ʵѺòƨōԬŎôȁɜŋѶô̒ŏƦōñǿòƧφ@ƨН̎@@Ȁ̐Őöʷ̐ԫ̎œôȂѺôòŌôƧ̒Őƨ̏̎ȁφ˜@ŋƩͩםȃƨ—@ȁ̑ʶ@Ōóôɛœƥѹ̑—συ݇@ɜρƧȃࢯƨôœəȂɛōƩɛ̏υρóõœƪʴυφ@ʶôŌóœρք@ɜƧ@ɝǿƧͪρȀƩó̏ŐƨȂ̍غړȃɛԮƨͪ̏ςƩœôɚφȁƦôɜƧôʶφȄ"],encodeOffsets:[[126181,47341]]}},{type:"Feature",id:"he_bei",properties:{name:"河北",cp:[115.4004,37.9688],childNum:11},geometry:{type:"MultiPolygon",coordinates:[["@@Ʃ̒̏ŌѺ̒Ʃ˜óȄƧŌƥͪòôñȂ̎ŐóȂ̒̐̎›ôНɜ—נ̎ôŋɞȀѶ@ôͪφœƨŌɚœɜȃóƧƨƥƪ˜@ʳƩ›ɞρ݈@υНφʵɜ˜ƦρƨƧ̍ɝóɛѹ̍ρŏ̑ôóƨ@œƧƦôƨɛ@ƥƨ@ȂƦ@@ôəŐƧʶƨŌυœ̍̎ɛŋôōɝ@óƧ̍›ƦʵѵʳôʵɜŏςôƪŋƨŌɚ@ôНƥƧ@ōѸɛ̐ô̎ʵѵНԭ@̍̍Ƨò@ȁɝ@əρυͩƪ̏ƩõƧŎƧōóšॡȄɛʶɜȀ@ɞςѶƧœƥςɛŐ@ɚɜɜ@Ŏôôςœƪς"],["@@õə@Ƨɛ˜@ŐóƦφô"]],encodeOffsets:[[[117271,40455]],[[120061,41040]]]}},{type:"Feature",id:"hu_bei",properties:{name:"湖北",cp:[112.2363,31.1572],childNum:17},geometry:{type:"Polygon",coordinates:["@@ñȄυƦöŐƩ˜óנƨƨφ@@Ő̏Ʀ@Ő̑ôƨŌנóɜôƪŋɜŌѶօڔə݈òɞōɜŎôӏƦóƨô̒óôȃƨó̎ŐôƧƪ@ƨȁςƧə̑̎Н@̍Ƨŏρôԭͩԫ—̍ʵƧšóȀôɞƧŌ@Őѹͩñ˜òɞñ˜ɛǿƩ˜ɛñρͪ߻Ȃ̑ŏƪəƩóםôõŏƧ@ɛНƥȄó›̑ѺƧ›ôφóƨƨƦƪóɜŐôóòôƨóφ̐ƨóƦ̎"],encodeOffsets:[[112860,31905]]}},{type:"Feature",id:"gui_zhou",properties:{name:"贵州",cp:[106.6113,26.9385],childNum:9},geometry:{type:"Polygon",coordinates:["@@ɜȀƦŋԮ˜ô̒ɚ˜ôōעƪƧʴɝ@ɛʶ̒ʶ̐ȁƦœóȂô@ôŏ@ōô—ƨʶѸô@ʶƨ˜ɞó@ōτöòυƨ@@əƨô@ɛ̒@Ʀɜôȃ@̍ôʵԩНôóςŌƨŋ@ȃƧñôŏƧɛƨ—ôɝƧʵ̍œôȃυœ@ɝɛȂƥóóȁɛóõôɛ@əͪɛŋôȁƩóםȃ@ƥƧŏړʶѹ̍ƥŌƦȂóôɜƨѵО̎נəɜѹŋƧȂ@ȀóœɜͪɞƧ"],encodeOffsets:[[106651,27901]]}},{type:"Feature",id:"shan_dong",properties:{name:"山东",cp:[118.7402,36.4307],childNum:17},geometry:{type:"Polygon",coordinates:["@@Ʃ̐φͪɚςɞ@@Ȃƨñ̎̎Ԯ@ѶОƨƧڔ@φН̑ŋ@Ʃ̒ǿ̎@ƨɜԬςôʶ̐ʶöԫƨƧנƥɜŎôō̎@ôŏóρƧŏԫôóƧԩó@ƥɜƧԭóƨʵɛƨ߻ӑɜНԩ˜óô̑óƧʳə™óɛƧ@õȀƧœ̍ȃɛŐóŏυО̍—óɝƩ—ԩ@ƧɚԫȄɚʶƨ˜ɞʶԪ̐ړɛƪ̒"],encodeOffsets:[[118261,37036]]}},{type:"Feature",id:"jiang_xi",properties:{name:"江西",cp:[116.0156,27.29],childNum:11},geometry:{type:"Polygon",coordinates:["@@ƧȄôɚəȄ̎ʶԬ˜ԮͪςóƨŐƪ›τɞƦōƥƧ@ŏςôóŐôô̒ʷѶ—ƪƩƩǿ@ō̒ɛôυ@—Ƨȁѹɛəƨѹ̑ƨ̏óƥѵʷô̍ɛȁôŏɝǿƧԫƧ›ôʳƥōòȃρȄ߻ɛɝƨɞɚɜƨôŐƧŎԭōñƦòԮɜôɛ˜ôͪƥœ@ʶƧƨôƦƧô@Ȅô̎Ѷͪ"],encodeOffsets:[[117e3,29025]]}},{type:"Feature",id:"he_nan",properties:{name:"河南",cp:[113.4668,33.8818],childNum:17},geometry:{type:"Polygon",coordinates:["@@φ˜̎ƪ̐˜ɞȄɚ@@Ȃעó̎ŌѺ̒ôֆॢȃô™ƨŎƨōƪöƩ̑ڔɜԩ̏ɝʵƧ—əʵԬȃƨəԪ@@Ƨ̒ŏô̍υȁƧɚ̍ôóŋ@ɝƧŋõ̑σ—@ŏɜŋôɝ̒ƧɚôôطρóóɛƩ@óƨ̍ŏƧôóȄ̑ôƧóƥôóӐɛōɝŎ݇ñړɚѵֆ@ɞ̏ʶ@ʴƩöó̐"],encodeOffsets:[[113040,35416]]}},{type:"Feature",id:"liao_ning",properties:{name:"辽宁",cp:[122.3438,41.0889],childNum:14},geometry:{type:"Polygon",coordinates:["@@ƨʴƧôôӔƨô̎ƩɞН̎ͪ߼ͪɜ—ɞɚ̐—@ƨςŏ̒ôƦƨɜœô̎ƪôςǿƨͩɞȀƨ@@ɛςփô›óŋ@ʵφυƩʳö›॥փρѹס@əɛ@ͩࢯ@ѹʵρ—ƩʶφȀƧ݈̒۬óʸɝŎѵ@ԭԫןɛƧƨƥςɛ—υʶφО"],encodeOffsets:[[122131,42301]]}},{type:"Feature",id:"shan_xi_2",properties:{name:"山西",cp:[112.4121,37.6611],childNum:11},geometry:{type:"Polygon",coordinates:["@@ɚѺñŌɚšôȄѺ›̎ֆφóςȂ̒—ɜƨɚ@@Ȁƨŋôȃƪ—ѹ̑̐ŋƪ̑Ʃρρ›óó@ōɛɛ@əɜŏƦρƨ›ρѵ@ɝɛǿɜʵóօѹ̑̍ŋסô@ȁə@ɝȃ̏—̍Ʃυ—Ƨô@Ȃ̐ظóОó݊φք̑ʸ@Ȃ̒ʶôȀ"],encodeOffsets:[[113581,39645]]}},{type:"Feature",id:"an_hui",properties:{name:"安徽",cp:[117.2461,32.0361],childNum:17},geometry:{type:"Polygon",coordinates:["@@ó̎̑Ő@ƨƪ˜Ѷǿɜ̑φ—Ʀʵ̐˜Ƨѵôóƪôôυς—ƨȂɞŏ@̍ԫôò̑ƥ—óȃѶͩƧƥôŏѺœôŏƦ—@›ƥͩƧ—ôȁυó@̑ƧɛѵʵƩƪѵ˜̑ʸóóôŏρó@ŐƦƨƥŎσɝƩœ@̎̍Оɚ̒ρƨƧȂôɜςôóظəó̑ƨóɞɛŌ@Őτ˜ö̒ƨŌ@ɞôŌ̎óƨəφȂ"],encodeOffsets:[[119431,34741]]}},{type:"Feature",id:"fu_jian",properties:{name:"福建",cp:[118.3008,25.9277],childNum:9},geometry:{type:"Polygon",coordinates:["@@̎›óȁƨӑ̒—̎ɚƨͩφŐƨɝ̎ŋóŏρ—@ōƨ›òʳəóƨō̏˜õɛƧ@ƨѵƧōəŏóŋƧô̑ɝɛʳƥ@@óɛõ@Ƨ̑ƧóȁəƧ̑—Ƨ̐@ɚəОƧ—Ƨɚóñ̑ŎóʴƨœƨԬɞȀóŐɜȂó̎ѶʸôƦƧ̐Ѻ̒ɚƧѺɜƨȂ"],encodeOffsets:[[121321,28981]]}},{type:"Feature",id:"zhe_jiang",properties:{name:"浙江",cp:[120.498,29.0918],childNum:11},geometry:{type:"Polygon",coordinates:["@@Ѷʶƨɜ@̒φôóȂƨ˜Ʀͪ@œ̐˜Ѹ̍τȂ̒̑נŐמôƪƧôӑ̑›@ƥρͩƨօ̏@@υɝó@ŋɛ@ôƩəóƧѵυó@ƩɜŋƧ@̍ŌƧɞυŏƧͪ̍ə̑˜ƧӒôȂ̍œ@˜óφ̑ɜ@ŎƪȀ"],encodeOffsets:[[121051,30105]]}},{type:"Feature",id:"jiang_su",properties:{name:"江苏",cp:[120.0586,32.915],childNum:13},geometry:{type:"Polygon",coordinates:["@@ôɞ̎˜φНôŐɜŏ̎Ȅƨ›öǿƨ@ôɜɚšƨʴ̒ôôó@Ƨ̎əԮȃԪૉöͩ̐ƧòʵφƧôʵ@óړɜóŏɜǿƧ›ɝρσȁѷ̎̏—ƥ˜óŐѹ›óŐƨƦѵͪôȄƦ˜ñ̒Ԭó@̎ɝŐƧȁρ˜óφƩóóôƨѶ̏—ƥʶυ˜ɛ̒ѵȀ"],encodeOffsets:[[119161,35460]]}},{type:"Feature",id:"chong_qing",properties:{name:"重庆",cp:[107.7539,30.1904],childNum:40},geometry:{type:"Polygon",coordinates:["@@əȂòɜƨ˜ѺɛƦȁ̐@ƪ—õŏφƥòȃƥ̍Ƨôυ̏ƧôñóóôɛŏƩôƧƥôƧóυƨœ̒ѹôœƦȃ@փƥɛ̑@@ɜƧó@ɚƧ@ñφσõ@ŎɝôƧ—@ʵѷóƧʵó˜@ŎóŐó@ôȁƥ›ó̒υôóʶə˜ƧȄς̎ƧȂôƨƨƨφɛ̎Őƨʷɞ@ςԮóŌôôφ@ɜֈ̎ƨ"],encodeOffsets:[[111150,32446]]}},{type:"Feature",id:"ning_xia",properties:{name:"宁夏",cp:[105.9961,37.3096],childNum:5},geometry:{type:"Polygon",coordinates:["@@ల̒ôޠφӒςôƪͧυևɜŋѺó̎ȁ̍ɛ@ѹס@@ʵƧȁôó@ǿ̐ŏöʵɝŋɛ@ô̑ƥóóƨƧ—ó˜ôœó@ƩôóƦ̍œóȀƨŎɛӒôŐυͪɛ@@Ȁə@"],encodeOffsets:[[106831,38340]]}},{type:"Feature",id:"hai_nan",properties:{name:"海南",cp:[109.9512,19.2041],childNum:18},geometry:{type:"Polygon",coordinates:["@@φɜƦʶ̐ôφô̎@ƨŎö@τʵƦ˜ԩ۫õН̏óƥȃƧ@Ʃəםƨ̑Ʀ@ޤ"],encodeOffsets:[[111240,19846]]}},{type:"Feature",id:"tai_wan",properties:{name:"台湾",cp:[121.0254,23.5986],childNum:1},geometry:{type:"Polygon",coordinates:["@@ô—ƩɝöƧɝѵəޣ̏ρƩԭóōóͪρɞƧОôԪ݈ଦѶɜ̒ɛ"],encodeOffsets:[[124831,25650]]}},{type:"Feature",id:"bei_jing",properties:{name:"北京",cp:[116.4551,40.2539],childNum:19},geometry:{type:"Polygon",coordinates:["@@óóó›υóôƥ@ŏóóə@ƧŋƩŌρóɛŐóʶѶʴƥʶ̎œôƨɞ@óŎɜŌ̎̍φ›Ƨŋƨʵ"],encodeOffsets:[[120241,41176]]}},{type:"Feature",id:"tian_jin",properties:{name:"天津",cp:[117.4219,39.4189],childNum:18},geometry:{type:"Polygon",coordinates:["@@ôôɜ—@ƨöɚôœôôɚŏ@óƥ@@ȁƦƧɜ@óƧƨƥ@›ƧóəН̏óѷɜ@ŎƦƨóО"],encodeOffsets:[[119610,40545]]}},{type:"Feature",id:"shang_hai",properties:{name:"上海",cp:[121.4648,31.2891],childNum:19},geometry:{type:"Polygon",coordinates:["@@ɞςƨœɛȀôŐڔɛóυô̍ןŏ̑̒"],encodeOffsets:[[123840,31771]]}},{type:"Feature",id:"xiang_gang",properties:{name:"香港",cp:[114.2578,22.3242],childNum:1},geometry:{type:"Polygon",coordinates:["@@óɛƩ@ρ@óœôȀɚŎƨ@ö@@ōƨ@"],encodeOffsets:[[117361,22950]]}},{type:"Feature",id:"ao_men",properties:{name:"澳门",cp:[113.5547,22.1484],childNum:1},geometry:{type:"Polygon",coordinates:["@@X¯aWĀ„@l"],encodeOffsets:[[116325,22697]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/chong_qing_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"500242",properties:{name:"酉阳土家族苗族自治县",cp:[108.8196,28.8666],childNum:1},geometry:{type:"Polygon",coordinates:["@@XJ°œlJX@lbl@XbV@VLnJlxnbšƒUU@IVK@lVIVwnJlU@n@J@L@Jn@l_nWVLVln@@blLšmV@@xœÔ‚`nœ™xV‚ÈLlx„LVxVVšƒV_U»VWn_m¥XwVmnX°ƒlmUUVwÞaVƒk@a@mmIUa@™mwk@™ƒm@@U¯a@UV@@K™@ykkmwkV@kU@ƒÑƒVkKWLÅamaUm@kyU@WkU@Ua™IUašVaUUmUUa@aVLXKWa¯UUbmJXnWnX`l@@xkzWÆ@V„LU¦‚x@b@JkIkJ@LmbUamJwm@óxƒnk@V„@x„ŽVnUVmVUVŽUbVlUbkXWŽ"],encodeOffsets:[[110914,29695]]}},{type:"Feature",id:"500236",properties:{name:"奉节县",cp:[109.3909,30.9265],childNum:1},geometry:{type:"Polygon",coordinates:["@@WVXb‚UnK@x@b‚²kxmKkl¯_ƒVV°™VU@bnKVVV@@nkŽ@n›bn‚@š°@VLČUš@°WV@V™nU@InKVl@nU„b˜KnX„WlknLlKUwnalLša„VlUXmWk@UU@UWWIUyķ¹XaWW@X™ƒKUIVm„U@W@UVU@KV@n»VkUkÇmUmVIUmULUbm@ƒwUaƒKkkm¯ÑUL@bWVnx@VmxUI@„klmkkK@aƒK@IlJ@I¯ƒk@mak@mnkJVL@bV@Ub„„W`UUUV™I@VƒU@VVbUJVLUVVbUX„VVxk¦VJUnVxnVVUšJV@Ubl@@bXV@L"],encodeOffsets:[[111781,31658]]}},{type:"Feature",id:"500238",properties:{name:"巫溪县",cp:[109.3359,31.4813],childNum:1},geometry:{type:"Polygon",coordinates:["@@nLWbX‚VLVU„V@KšIVl@b„@lbšU„VnU@JÆU@V@n°KĢUl@VbÞKšVš@„_„V‚KXU‚U@KXƒ@wlkkU@mWKUU@UôJ@XV@œaVmÞIVaVLƒƒ@»kmƒ@ƒUkL™U@aU@WWƒLUUU™™KkbƒwWa@KU@kaƒXmW—LƒamVk@UmL@JmVUšU@¯X™@ċVUK¯@ÅnWK™LkKULWK@UXK@wW@™LkV@bVLƒlXn›`¯xU„°LnŽlV@n°Lnl"],encodeOffsets:[[111488,32361]]}},{type:"Feature",id:"500234",properties:{name:"开县",cp:[108.4131,31.2561],childNum:1},geometry:{type:"Polygon",coordinates:["@@n@na‚I„wš@@VVK„LVbVxnVÆUnanKWXamKmk¯K@mkUm¯KVƒ°w@Wm@UIUUlKUU@a¯KWanwmUXamKkUWUnU@KƒkUwWKXaWLUWkImaUUUƒƒKka±k@lƒ¯w™wmbUƒ™ƒkXm@UJkIW‚XXƒbƒmƒ„UJ™XUV@°šKlšlVXV@xmbnV@blV@VšœU`UL@V™a@bULlb°VXbܚ@V@bƒL@J„xnLVb@lVb@V@@z˜bXWšX„KVLV‚š@@bUVVL@b„„lVna@ll@„zl@@J"],encodeOffsets:[[111150,32434]]}},{type:"Feature",id:"500243",properties:{name:"彭水苗族土家族自治县",cp:[108.2043,29.3994],childNum:1},geometry:{type:"Polygon",coordinates:["@@„Jlb@nVV@bXb@ÆlL„Ul`nVKU¼VxkbW„nlUxlXX‚@°°WnnJ@VUn@J„k°L@VlV@nUJ„x@bVVVz@VnLla„KnalVlIUŽ„¼@nV@@anKUwVal@UlJœƒlI@akU@UWXKVI‚¯Uak@@KmkXWÜkXWykIWwXw@laXamkVUUym_XmlkkmmakwmIUKU@Wak@kaW@kI¯›WIk¦VŽƒUUƒmaUV@XkVUV±aUb¯b¯¥m@@ImJ—@mƒmL@kUKUkkJƒbV¦"],encodeOffsets:[[110408,29729]]}},{type:"Feature",id:"500235",properties:{name:"云阳县",cp:[108.8306,31.0089],childNum:1},geometry:{type:"Polygon",coordinates:["@@lb„LV„VVnblJVXXKWbXLVx„l@LmVXVVl‚nLWbnVmxXb°L@bVVkLVVVJn@@X‚‚œ_Wm„kUK@alUšKX@@xWL@VXLVKlLšKXLÆm@™mœa@ml@mU@UUmL@aVšUU¯„U°`lknLlw±@a@wmLVWaXU@KWU@ak@VaU@™IUVmUUwVmUIl¥UwƒUVWUaVUUKVIUa@UUUUJƒUUm™kƒ„nl@„@VWV@L¯aUb™Ulxƒ@@b@VULUx@VUxVV™U@bU@mxU„U@mUVŽklkkƒ@WxknlxK@amLƒKU„K"],encodeOffsets:[[111016,31742]]}},{type:"Feature",id:"500101",properties:{name:"万州区",cp:[108.3911,30.6958],childNum:1},geometry:{type:"Polygon",coordinates:["@@ĸĊVI„ƒ„n„aWWXlJVIn@lWš„V„našx°xk„l@²Ž‚LVƒ„LnK@b‚LkwlmXw„@lllkUnVV@VƒnwV@@ašVUUVw@UVwVK@U@a„@kwšVVa°b@KXU@U@ƒmk„ƒÇсaml™kUVmn@VULU˜m@kUVkUaƒwUWm@Uw¯„mKUUmVUUULUKU„W@XbWVkaWwkUU™ƒ™k@maUbmbVlk¦ƒxUVUIWVU„kJVVkL@UmJ™UUVU@lLUVU„lx„@@VbƒJ™U™L¯¤@Vƒ„"],encodeOffsets:[[110464,31551]]}},{type:"Feature",id:"500229",properties:{name:"城口县",cp:[108.7756,31.9098],childNum:1},geometry:{type:"Polygon",coordinates:["@@VK@w¯L@m@UÅV@ImVƒU™Vkaƒ@@aUk™J@LƒUUVUKmLmbÅVmUUwUaƒKUL@U™@ƒxJmbm@nVJ@X@VkV‚n™lƒLXx™@ƒb@bUVƒLU`UnƒbU@@ŽmVVX@JX@VLVVšklV—„‚`@bUL@V„LVKn@‚U@„UJkn@lmLmK@X@Jn@mb„nÞWVXnJ‚k„KČÑÆ@VK@knaÜmXlUČW°kôÇÆ@a@yÞ_VmƒUnU@K"],encodeOffsets:[[111893,32513]]}},{type:"Feature",id:"500116",properties:{name:"江津区",cp:[106.2158,28.9874],childNum:1},geometry:{type:"Polygon",coordinates:["@@„InWUUlU@LVašlX@°²lÒXxlK@Ul@@Un@UaVJ@I@W@UƒUUVUwVIUKUa‚UUVwn@Üx@XUlnn‚bœJ@¥VklKUUlk@ynU@kVƒUUVWnI@¥V£VWVIUKU@UVƒa@n@Vm@@nlUaVkUwƒJ@blLkLW@XWmXkmmLn™@m@U@UVm@™„UVUUlakUVa„ƒVkV@@wnaWUk@VwkƒlmVIkUUxmJ@U„™@KƒIkx±V@IUm@K@IUKkbWKUbn„m„@bmVnbmb@xkxUJ@ULW`@bX@WVXL@Vƒš¯„mk¯@UJ@VmLUaWnX@WJ@nkKkxW@UIV@@KkImmkK@UW@XaWIU@U‚ƒIkbWb„xXŽlLVbnV@bWlX@VxVLnl@nÆÞVÜ"],encodeOffsets:[[108585,30032]]}},{type:"Feature",id:"500240",properties:{name:"石柱土家族自治县",cp:[108.2813,30.1025],childNum:1},geometry:{type:"Polygon",coordinates:["@@„š@kl@š¼UbmVXJ@bV@nxVIVJULVVk@@LWbnJVU@bVbUJ@blLXnWV—@mbnV‚@V„„bn@VJVLnaVanbl@„šVšlVXxlbXUWaX@VƒUUVwUUVm@I@WmI@a„mlLœ™lK@alwnUV@kóVaƒÝk@UlbVK@™VU»VUUVWUƒ@U`ULkwm@@KmU@knKƒ»VkJkUmbƒLkbmK@UUyUU@aƒwm@@XXJ@VVLVVUbVnUJVX@K„„k`WXXJWXUbmW@bkL™Um`Xnƒb@JVL@LU@™°VVXKVnUxVLUbmJ"],encodeOffsets:[[110588,30769]]}},{type:"Feature",id:"500237",properties:{name:"巫山县",cp:[109.8853,31.1188],childNum:1},geometry:{type:"Polygon",coordinates:["@@kVƒU™bkKmbVxkLmKkllbV@@LXb„xlašLVšVV„KXXV@@bšVlK„V„@ln@¼°KXa„U@Ulw°JXalIUa„ÝWXW@kVU@ƒVUVWUUUamUw@aVamwn@VUUƒlLXWm£@wÇĉkKklmLUÒ¯ƒWn™@ğ±kwmaWm¼U@@LUV@V@XƒVUnVJ„LWš@‚XXWbĸºVzXJVXV@@VXlWn"],encodeOffsets:[[112399,31917]]}},{type:"Feature",id:"500102",properties:{name:"涪陵区",cp:[107.3364,29.6796],childNum:1},geometry:{type:"Polygon",coordinates:["@@nèVblĖVVnLšŽ„@šx‚V„n@nšJ@L„UVVX@lbUJV@@nn@VVVK@z„˜V@nzVJVUlmX@@_VVVbnaVal@@knW@wnaƒVK@aVI„J@£kUVW@‚wXUVJ„amƒ@Ikƒƒƒƒ_X¥ƒ@WwkKkwmŽ™šƒkUxƒnÅmm¥™WV@Um@UlVL@JU@@Xƒ@UVkKVk™KVk™Kkb@bmJVXU„VVUbU@@`W_UV¯b"],encodeOffsets:[[109508,30207]]}},{type:"Feature",id:"500230",properties:{name:"丰都县",cp:[107.8418,29.9048],childNum:1},geometry:{type:"Polygon",coordinates:["@@Þè@XUK@LlV@blbUJ@„„V@bnV‚@VVVXU@ƒlbXal@VXnKV@maXUރ@amk@aVKXV‚anbš£°mnIVaUKVwUmWLUUš¯V@@KUK@I„aWmn_šVlK@anXVaXWWIXWl_ƒƒ@LUWVIUmVaUUUK@UWI@Wn@VI@mkU@U¯Kƒl@ImVÅLƒwU¤óbUU@wWXkmm@LU@@VUIWVUL@JUnƒaƒx@Jn„ƒbUIWVx@ŽUXlV@¤ƒIUJ@bUL„Žmb@xmX@lk@UbmbUaUU@`W@kn"],encodeOffsets:[[110048,30713]]}},{type:"Feature",id:"500232",properties:{name:"武隆县",cp:[107.655,29.35],childNum:1},geometry:{type:"Polygon",coordinates:["@@l„„w„bVm@IVKXUVJ@UV@@KnnWlX@xVVôaV£„xÆKnUVm@UmIXm¯¯@WkWVwmkXƒlaUwV»ULmk_ƒVkK@ÅWa@aUU@mkaƒIƒb@‚n¼ƒnm‚_@mmK@UƒLUVVmI@aUJ@XWJ@U`UIkm±kk@@lULmUmKUnVšnlUVmI@VkVlx™bkIƒVmLUxkKUŽ‚Xš‚n¦Æn„mVw„lš™nlxlLXx„@W¦„`„„"],encodeOffsets:[[110262,30291]]}},{type:"Feature",id:"500119",properties:{name:"南川区",cp:[107.1716,29.1302],childNum:1},geometry:{type:"Polygon",coordinates:["@@VšUbVJVUn@VLX@WVXVVI@VUVWxU@mš@ĊX@@¼V°aVUX`@_V@VaUUVƒUWnI@alašLUlšLUllLVU„@@WV@@IUKVkn@@VlLVwnK„UlJšakwlU@UnJVUmkU™VmXa@wVK@UUw™@VƒVI@akƒ@alInwlKXUmaUW@wWLk™™KVak_ÇaUƒƒV@šXbƒLVxUlWIk@UK@V™@ƒkU@VbUVUlVnƒLUV@lVXmxkV@L@V@Vk@WbUwmL@JUI@xVxkx"],encodeOffsets:[[109463,29830]]}},{type:"Feature",id:"500241",properties:{name:"秀山土家族苗族自治县",cp:[109.0173,28.5205],childNum:1},geometry:{type:"Polygon",coordinates:["@@XlV@lzn@VŽnbÆbXKlL„U„ÒV@@llUnxll@zšŽ@LU@@V°b@Vn@š„l@VÑUƒnK@UšU@aUaƒkVm@K¯wƒklmnn„Ul`nI@almkIUwmWVkUaƒkkJmUUa@K@aU@@_m@@wUyVUUa@Umƒ@awl@Wka±„UkUykIWV™b@bUVk@›aU@UXU‚UIWakUWmUxUV@nUVWbšŽ@XXVVŽmXXŽ@VƒbVLkVWx"],encodeOffsets:[[111330,29183]]}},{type:"Feature",id:"500114",properties:{name:"黔江区",cp:[108.7207,29.4708],childNum:1},geometry:{type:"Polygon",coordinates:["@@VX@V@LV@VJUL@lVnnxlb@VXV‚XV@@W„@UIVK@kUKna@£VWUaVUUalIVJVIUW„_lm@bXKV@mn@J„UUw@KnIVll@VanLVmUkVKXLVKUIVamw@UaU_lw„KlwUWV_Ua@aUa@KUšwm›_›Ó@wU@™nkK@am@UkUKmXk`m@@I@K@I@mkVmIUxUJ@kUL@JVV™„lnklWnn`VzUVnlWbkb@WxXxlJXzWŽÛlWXnl@Ll@Vb°UJWLX@VlV@bkJ"],encodeOffsets:[[111106,30420]]}},{type:"Feature",id:"500117",properties:{name:"合川区",cp:[106.3257,30.108],childNum:1},geometry:{type:"Polygon",coordinates:["@@XKVXlK„ƒVL@UnV@aValXXK„U@WVwUaVU@IV@@aVW„L@U@anVV@@bVK@UVL@bnJWL@VnUnb˜@@JnIlVl‚@@bXIWbn@UKVLVKXLlaV@VVnK@bVL„m„IVƒ@KmknUUWVI@aVJ@_„WU_VmUwƒU@K™ƒVak@am¯mJU_UJUkU@WkIV`UI@JV@LmmU@@mƒbUzś™@„VK@nUKƒ„ƒb™akb@UWK@bkVVbV„Û@@`ƒXk@WŽ@n@lXL@bmb@VVJUn@JnUlnUlmX@`XLlbkJW@kzlb@`@b@b"],encodeOffsets:[[108529,31101]]}},{type:"Feature",id:"500222",properties:{name:"綦江县",cp:[106.6553,28.8171],childNum:1},geometry:{type:"Polygon",coordinates:["@@@¦‚@X„lVX@@UVKl„VUX@lanVlUVbXWVXVƒ„VVUnKVUlwUwU@UJ@nmVkUV™lwXam@VaUUUw@W@kk»mV@UmKkwVKVUU@@LUKVI@mV@XVWxnXVKUUUK@wWU@UUWnUlLXa‚mUI„am@wI@K@amIm‚UUkI@m‚akUkKWUUanƒ@wƒamLVxk@UVmUUL@Vm@kV@I@ak@@bWVXJlLVbVL@š@bn@@`Un„@WbUKULWVXbƒ@UVmbX„WVƒb@bVmxUKUƒV@šUn@V@V@nmšnKlnnWWXX@lKkK@a„IVxUlVb‚k@mn@@U@m„bVUV@VLUJUXU¤"],encodeOffsets:[[109137,29779]]}},{type:"Feature",id:"500233",properties:{name:"忠县",cp:[107.8967,30.3223],childNum:1},geometry:{type:"Polygon",coordinates:["@@VLÞĊ„U@Wš@¼V‚„@lk@w²mlšVUœ„llšVnI@VlKUUlIVƒXUVJVU„wl¥UkUKUIm@ƒaUƒ@mUna˜@XUWmkK@aVIUa@aUVmIXa@Kl@UUVKUIUJmwU@@aWInUVa™»k@@lƒ™¯n™¤mabWUUL@bnl@b݄WVnbU@mLUWk@Wbka@„WVUU@UmUmVkUULV„lVUx„l@L@VƒbÈÒlb"],encodeOffsets:[[110239,31146]]}},{type:"Feature",id:"500228",properties:{name:"梁平县",cp:[107.7429,30.6519],childNum:1},geometry:{type:"Polygon",coordinates:["@@XLV@VV@b°°nšƒnkb@bƒšnJWVXblIUVšxWnUJnVVLVU„JlUnLVK@UnUVJš²nKVbVKla@aXlJ„k„Klb„ƒ@U°£šKšV„IUa@ƒ@kwVƒVUkKV@VUkk›ƒUVk™±n@xklƒ@U@»™‚@XƒVÝĉUJnxWb@UX›KkVUbUKWUkVmkkLU`›b"],encodeOffsets:[[109980,31247]]}},{type:"Feature",id:"500113",properties:{name:"巴南区",cp:[106.7322,29.4214],childNum:1},geometry:{type:"Polygon",coordinates:["@@nxnVlJlUXLƒ¦@x@Vl@nKVVX@V_V@@KlVXU„@lKlxXIl@ÈĊ@Vl@n_VJlŽnVlnb„²VVVJVVmUUkĕUamçU@»W@@ĉn™V@XwVU@UUJWUXUW@UKm@UVUIVaU™UVmLUVƒUU„UWWXUakVmUkbW@UVkƒUL@VW@kUWƒ@mJUXVVU„@lmV@zklVVkLUl@¦›I"],encodeOffsets:[[108990,30061]]}},{type:"Feature",id:"500223",properties:{name:"潼南县",cp:[105.7764,30.1135],childNum:1},geometry:{type:"Polygon",coordinates:["@@@a@a@_kalyX@lIkaWK@_nWVkkmmV@IVmUI@Una@aWK@k@mkbWaknmJUk@mk@@kUal@Uaš@Wa@aXLlwUKlkkƒ@KmI@VUJ@Lk@@VUUmL@amJU£kKUaWakLmU@bVVUbnbWV@xkL@bUb‚xUxVbXJVbUVWIUVU@kLWxkKWV@n¯VUbU@@VVX@VmaUL@VUK@VVbn@lVnI‚@@lnLULm@Ub@Žl@na„@lK@XVVkJ@b@zl@@VnV@bVb@J@bnXV`lXXmVI@W@InbV@@aVKUblKVLUanLlmnLlK"],encodeOffsets:[[108529,31101]]}},{type:"Feature",id:"500118",properties:{name:"永川区",cp:[105.8643,29.2566],childNum:1},geometry:{type:"Polygon",coordinates:["@@@b܄nWVLX„lxV„VxXxlVn@@bVblK@a@UnLVJV@@UnLVU@VXaVKVXš@n`WUÿ@IUKlaUUUkWyUÛÅÝ@mmkUKUwW@Xk@amUUakKWƒwXaƒK@VVLklƒXVlkxV„UL@bm@Vxn`ƒIVxUVkLVšUšl@@lkXmmƒVUn@VV@Xb"],encodeOffsets:[[108192,30038]]}},{type:"Feature",id:"500231",properties:{name:"垫江县",cp:[107.4573,30.2454],childNum:1},geometry:{type:"Polygon",coordinates:["@@šĊ°¤nҘ¼œaV_lKnllUXVVLValUœLVW‚@XamwVIUKkaÇфa@U@KƒkVwkUUƒVKlVnU@aƒU@ƒVIka@akU@KVL@WÝçUV@Vmbů@L™KƒnnJW„ƒVkxlL@VX@VxmnXVWxUb@bkn"],encodeOffsets:[[109812,30961]]}},{type:"Feature",id:"500112",properties:{name:"渝北区",cp:[106.7212,29.8499],childNum:1},geometry:{type:"Polygon",coordinates:["@@@bVVXL‚a@lnbWn@L„@XVlK@VVLUVlbkLUKVVVL@VšnX‚VL@VV@UbVb@x@¦UxVb@bUJƒL@L„VVxlK@™nk@U@W„UVLlKXV„@VblU@UUKVU@wn@VJVanLlkX@VaVK™¯@a@U@U@ƒVaUK„kUUƒ±maUkm@UUkbm@@Vk@@JƒwU@Ub@I@JmwUL@aƒ@@KkVÇLkƒWkƒ@kUU@@xUVmKUnllUb"],encodeOffsets:[[109013,30381]]}},{type:"Feature",id:"500115",properties:{name:"长寿区",cp:[107.1606,29.9762],childNum:1},geometry:{type:"Polygon",coordinates:["@@VVšU„bX‚lX„¥l@XnVmlxUx„@@blVnnôĀlm@aVaXwWUnmUwW@@UkKlw„UXƒmI„mšL@Kưna@UUImyU@ƒ—@yULUUm@@mU@VIkaW@UUƒV@K™I@mƒmU™wƒ@™mKUnU‚UIƒlVLUb@„@V@V@bš°ULUbW@klmKUbUIm@@xUVVL"],encodeOffsets:[[109429,30747]]}},{type:"Feature",id:"500225",properties:{name:"大足县",cp:[105.7544,29.6136],childNum:1},geometry:{type:"Polygon",coordinates:["@@XUmaVaUU@anVlKXbValU@aV@@IXKš@@bV@VxVK@UXLlUšJXa@_‚@@aVK—ÅWVkwWaƒƒwUa@am@kUWLU@kWmX@ykI@W@UV@na@LlLV@UƒkwWƒUKmXX`mIVl@bXLWVkbkkƒx@`VXm@@J@U@UUKUxk@WbUIVl@VXLW„ƒJUkUlUImxXlmb@X@VUJUnVbšW@UV@@VVX@bnW@LVxUnlJUV@n„@VxVIn@l`„UVVVL"],encodeOffsets:[[108270,30578]]}},{type:"Feature",id:"500224",properties:{name:"铜梁县",cp:[106.0291,29.8059],childNum:1},geometry:{type:"Polygon",coordinates:["@@VblLV¤nI@bnKVV@Ul@@KVI@UnJ@Ll„klVLkxWK@bXb™@Vbk@Vb@ll@@nVlnIlmXblaXl@„W@_Ü@UƒUalU@aXL@Vlašb„a„ƒVL@mUL@ƒUUƒƒÇXUW›X_WaƒƒUƒ»m_™@UWULWb@UUVmK@VU@UImK@V@bkL„x‚„XblxXU˜ÆUL@b@@`Wb™IkVWK@VULUwU@@a™@WL@JU@@bkVUb"],encodeOffsets:[[108316,30527]]}},{type:"Feature",id:"500226",properties:{name:"荣昌县",cp:[105.5127,29.4708],childNum:1},geometry:{type:"Polygon",coordinates:["@@VI@U@WnaWknwVJVkVl„IXƒWK@UUkVJXal@VwVL@V@V@In@UW@_„wlllaXUWK@aUknJW_ۃ@aWaU@@UVm„UUaUImJVnÅUmVUm`kUUVWLnVU@VVmXƒK@„nxmŽULkx™ImJ@nU`@X@Vkn@`@nlV@nVJVaX„VLnK@bVV@nV@lbXWš@"],encodeOffsets:[[108012,30392]]}},{type:"Feature",id:"500227",properties:{name:"璧山县",cp:[106.2048,29.5807],childNum:1},geometry:{type:"Polygon",coordinates:["@@XzVlVVkbVL@JVĀXŽ‚¼V„„„XbW`XœWVȎ„„VVšŽVkV@@UXa@alK@IƒƒU@UKWUyUI@wVUUWVak@VUkƒW¹@WXI@yVIUK@kWwkѯ±W@™kUb@KkVVVmXƒJ"],encodeOffsets:[[108585,30032]]}},{type:"Feature",id:"500109",properties:{name:"北碚区",cp:[106.5674,29.8883],childNum:1},geometry:{type:"Polygon",coordinates:["@@X‚VLV@„„@JkL@bWb@VU@UlƜVy„a@nV@nn@KU@IVJU_lJXV@VlVIV`nIn°@b‚lUbš„„KVI@aUaVw@¥@wUaVaU@@UUKW™m@UUKUUVLlKkaVUUK@UkLWUƒ@@KXmma@kbWKUU@aUamLnÞ@VWLk@@Wm@ULU@@U™KUVWI"],encodeOffsets:[[108855,30449]]}},{type:"Feature",id:"500110",properties:{name:"万盛区",cp:[106.908,28.9325],childNum:1},geometry:{type:"Polygon",coordinates:["@@VIV@@wVJ@InKVxXal@@U@U@KlUnwUW@kVU„KUmVkUa@I@KW@@bk@@mƒU@m@k@a@aƒIUxmJk@ƒwULƒwkKmVVX@VXV@xVLVVULmWXwWUU@@nUJVL@KV@UVULlxnL@VnUl¼@l@XVxVVUbn@WbkxUšlVnU@m"],encodeOffsets:[[109452,29779]]}},{type:"Feature",id:"500107",properties:{name:"九龙坡区",cp:[106.3586,29.4049],childNum:1},geometry:{type:"Polygon",coordinates:["@@XK‚L@Vš@XbV@lW@UV@@VXIV@U™VKlL@KnnJ@VV@VU@I„@@mVUVWUUmL@V¯LUK@UV@UU@a@U@yU@WLUK@X@KUVmL@ƒ@aXI@w@ammVk@WÛwm@UxVVVbVLUJVxVU„V@V@X@JUIVbm@@Vk@@VkL@lVLUJ@zWJ@X"],encodeOffsets:[[108799,30241]]}},{type:"Feature",id:"500106",properties:{name:"沙坪坝区",cp:[106.3696,29.6191],childNum:1},geometry:{type:"Polygon",coordinates:["@@Xºl„UVl@UbVXUV@xVJVzXJVUšL@VV@VKn@@Xl@XK@UmÝnKVbVakkVm@k„ƒUK@UmIm@LkKULVšU@WJ@UU@@VkXU@Wa™@@UKWL"],encodeOffsets:[[108799,30241]]}},{type:"Feature",id:"500108",properties:{name:"南岸区",cp:[106.6663,29.5367],childNum:1},geometry:{type:"Polygon",coordinates:["@@VV„JVL@bUVVnl`XIlwXJlw°nnl‚IXW@UÇĉk@WJkwkLƒ@WVkU@LU@U`W@UXUV@n"],encodeOffsets:[[109092,30241]]}},{type:"Feature",id:"500105",properties:{name:"江北区",cp:[106.8311,29.6191],childNum:1},geometry:{type:"Polygon",coordinates:["@@nLVU@wV@lV„@Xll„ÈKlU@L„@@bVKnx@I@JVaV@„x@Il@@Un@laVVn@mkUIm`k@WXJmk¯mkxWIkxWJk_UmVUUKƒ@UU™@ƒ„@l"],encodeOffsets:[[109013,30319]]}},{type:"Feature",id:"500104",properties:{name:"大渡口区",cp:[106.4905,29.4214],childNum:1},geometry:{type:"Polygon",coordinates:["@@k@@U@w„¥WKkVkImUmwa@b@xWJ@b@„nKVU@L@WVLXKV@@z@V@bVVU@@VVL°K@U"],encodeOffsets:[[109080,30190]]}},{type:"Feature",id:"500111",properties:{name:"双桥区",cp:[105.7874,29.4928],childNum:1},geometry:{type:"Polygon",coordinates:["@@WwUwU@kK@KmbU@@V@XlJ@znWlXV@XK"],encodeOffsets:[[108372,30235]]}},{type:"Feature",id:"500103",properties:{name:"渝中区",cp:[106.5344,29.5477],childNum:1},geometry:{type:"Polygon",coordinates:["@@VLš@VV„@VL@aUKƒIUUƒ@@JUVU@"],encodeOffsets:[[109036,30257]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/fu_jian_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3507",properties:{name:"南平市",cp:[118.136,27.2845],childNum:10},geometry:{type:"Polygon",coordinates:["@@@knyƒk@ƒKU¥šwV@nkƒWƒzUmk@@lKUa@aVI@UƒKUamKUUVaUI‚@Xƒ@UV@K±IUVVlUbUbUL@KWUXmWk@KkXmmkŃKUƒ™a@amUƒbkUkKWUnwUƒÇwV™UUƒÝUKV£U™@ƒnKWwXLVKm¥@wUXkmWk@ƒ@wX@lU„@šyVImaXwVƒƒ@kŽƒnU@mbk@mlUXƒmU@mV@n@bnW@bUIWJ—ImVUKWbUK@nkKƒaU@W_VUUmWmL@UU@™bUWUL@V@bmVUz@`mUUVVbXL@V™L@lmLUxmVamXkW@xWbU„VbUxkU±@ÅUmmkLUbW@@`kLknVlV@lbXxlVUXVV™ŽU„U@UbWŽkIWVUUUJkI@llbUxVL@V™VƒUU°ULUmWXUV@VULWb@™xm@UaVLVKUa@ƒw@V›bkmVambUUm@@VkK@„@b„xlxX@‚„n¤@Xƒ@@lkLWV@Žn„V„kb@bWJXLWx@nkxmm™bXn@VWVUn@VnJ@bVXl@„™VJXnWbX`lL„UlJVI@Žœ@VXV@Vl@bn@@Æmn@VšxXU@mVIlxšVššnI„l@nVJ‚aXI@mlU@aXkVm°klmnVV_naš°@V@xܦXK„V‚nnUlVXbVK‚LXKV@naV@@VVl@@lXblXšWnLlbVK²nš@@‚VLUnlV@lƒXxô°‚V@UnaUUlKXLVUVVUbVVlUnJVX„@VW@an@lb„@nl@VU@anƒšUVW@kƒaUm@InVVKVU@kUW@Uam@km@kVa@a@™nwšU@WlI@mVI@WXaW_nƒ@™nƒlkkW@U‚¥@kV@Uw@wUƒ@@IXK‚¥VIn@nU@`@Xl@VV„LnašW‚bVaUwnU„@VIšKlV"],encodeOffsets:[[122119,28086]]}},{type:"Feature",id:"3504",properties:{name:"三明市",cp:[117.5317,26.3013],childNum:11},geometry:{type:"Polygon",coordinates:["@@lL@Un@VVna‚bnUlœa@U‚x@„VbULUKVbn@šw‚@XaVK@UVUXWVnVKV¯„VšU@UUKVwka@klJVIVVXUlJXVaV@VƒšUUVWkUWwkaU@UklmlK@_X@ValKnnÆV²@lVVwUaVƒXa@wlXnW‚bnUVwnK@kšK@UWKUaVUnV@_VynU@a@UVKVXšaV@@VnKnXVV‚UX`V@„blL@mVLXaVLnU˜JXIVJ@amX@a@mnUV@„nVWnkl@naV@„ml„@@KmKUam@UU@ƒ@UlKU™Vk™U™K@aVaUwV™U¥UIkJ@wmI@‚mbkwkVW@UXƒKULU`™IVKUa@LƒkkVmUU@WlULUWÅU@I@ƒWW™nU@@w@a@ƒUam_XyVIVWkkƒ@mwVKXUV@nw˜VXkWƒÅ™U@ƒaƒU¯KUnƒK@ƒ¯šmUƒLXŽVLnWVbVbUVm@Ub¯¼W@amƒ`kb™amLUUUƒ™aUXV`@x@XmJ@n@L@xkJUU@kU@mWm@kUUwUUVWl@VUkIƒy@kkaVUUm™IWVXbWxU@k„mVkK@nWVX¦WxU@@bkx@VU@WŽk@™kUbmJUUmkUW@_kKWKƒ@knV¤kIUKWLUbV‚@Wbk@@VWL@VkI@lUXVxUVU@@mWIƒV@a¯nUaƒaUV@„ƒJ™b@bÞ°VbUš@X™aUVmL@‚VXblŽnV„°˜n@Vnx„@VUUUlK@InJVb@„Vlnn@V™L@VWJU„x@XlJUVVVl@LUUUJ@Lƒ„@lUL°¦k˜V„VnV@„xV„„l@blLnlšLVaXll@šnVUn@‚xn@nml°‚X@lb"], -encodeOffsets:[[119858,27754]]}},{type:"Feature",id:"3508",properties:{name:"龙岩市",cp:[116.8066,25.2026],childNum:7},geometry:{type:"Polygon",coordinates:["@@ša„I@ƒVU„bVb°m@b„UXJ@nV@VUUwVW@klJ@UXK@Ul@Xa‚@UVaXKVLlJU£lm„@XLlL@`VXnlVVnIVašll@XV@@Ulw@aV@XwW¥XU@mlLnUlƒV@XwWaXUšJVnUVlb@l„zlJUVk@UXVVVxlVn@nXV@@lVVlI@w@K@mnI@W@wU_VWšbV„VVnKšbla„_n‚bX@°»Van@VUUaUamXUKW„K@a@Ukƒ@wWkXƒWW@wUU™Kw@_lyƒwUkU@@Uƒ@kamVmƒXašUVUka@Wk@»UUUVƒKkbWU™VUbk@mkƒxkƒƒKnIVUmW@kUKmXUmVaU@kU@m@KUWVkIWJ@ŽU@UI@wUUUa@KW»nU@mVkUmm@XwWU@ƒUUmL@ƒw@mnƒVUU@aWak@@amxU@UxULWVXbVLU`mbUImVU„ƒbn‚V@@bVn@bnVWxLmyUbƒIUKƒ@aƒVm™akbV‚UXW„UlKWbkV@„WLUlk@@nšbƒb@lkKmU@ƒUIWJkw¯UUVVxm@@XkbWx—›XKƒlUzWJkUUL@bmKkVƒ@@VUIUlWV@X„K@VkbWx°xUb@LUbk@@VWb@LXJ@VWXU@@bUVV„VVn@VVlLn„@l„@‚xk¦Vx@bVJXbƒn@JlnXxV@@„nJ@X@V@lmx„bUn@xVL@VVKlL@l„„nLVaVL@xkl@LƒxVl°š„X„WVX„Vl„œJWnxlJ"],encodeOffsets:[[119194,26657]]}},{type:"Feature",id:"3509",properties:{name:"宁德市",cp:[119.6521,26.9824],childNum:9},geometry:{type:"Polygon",coordinates:["@@@LVKVaVaUkVU²J@LVU„@@W‚VJUbVVnLVb„L@VUJ@bVbkL@Žl@Vn„y„XmlU@™xV¦„L@Ž„lmz@lnL@bVVšbVb@l„nšKVk„Vl¤@zXV@šl@XJVLVKnXVK‚VnU@wUm@šKUƒ@UlVlw@U@U@ƒUaUKlU@kXKlmXIWKXaVIVUVK@KU@@k„JVUnLVJUL@V‚IVa@VnLšKUnl`Vb„V„V@š‚Vbn@Vzn@lKnVlI„VVKUalkXJl@XXVWVLVUUmVU@Unm„£lK@Uk@WUXK@U@WVwVkšƒĠkĢǰaUÅUwmaţƒɱUÇa™w„±V¹XalKôx„@„UVaÜʓͿVóbÅLƒJm„¯Vk¦ƒŽk@mamXkKUƒUL›akbk@mV@LkJWb@Vk„mXk@UVmaUV@amLUKUamI@KUaU@WbU@UUUƒUIWJUkm@šƒw™Kk„VJm@kxǁVƒUK@mUVUkmlkkVm@amwƒLVWU@UbVLkšUbƒ@VƒmK@XaVWU_VJnwV@@kUmWakxƒ@kwWakIWxnbUJ™zƒ@kVW@@x@„XllnVW@xn¦ULWKXxmL@„VšU¤VL„ÞVVUšÈxV„mxXVlLlV„anV@bšbV„„LlÆnnlW@LXlWnXV"],encodeOffsets:[[121816,27816]]}},{type:"Feature",id:"3501",properties:{name:"福州市",cp:[119.4543,25.9222],childNum:9},geometry:{type:"Polygon",coordinates:["@@lxna@nJ@xlIVJV¦UšVxUb@bšLšVUlVškL@V@„VVn@Vb‚Ln‚@LU„lJXblx„@lwXbVn@lU@mxUIV`UXWb@‚nLU„„@Val™UKVaV@UX„Knx‚bn@lUkllnUVnV‚@VLU„È‚lwn@UIlƒšL„x‚™n@VlXIVJV„VVV@XaV@Vb@LnJVbVLnK@bVUnbVUl@nWlƒ@UXalI@KnUl@laœbVKV„lLnWnbl@„l¥°Unƒ„IÆKôa΀U„a@UUwÇWǓIUWUÅVkƨm@ƒ@£@KmLU¤ULˣJ™kUƒVǟUUķ@ĉVƒKUk@Ѱwôǚç@īšé@Åţ¥mīÛkm¼Å@ƒVķVó°ō¦U°ƒn@bVJXVVL@bUŽƒakLmx@xmxXzW`XbWnXV@bWLÛ@™aƒ@ƒaXbWVkaÝwU@mlWKkLWWkLUKULW@kVmVUU݁UamV—¤›n@xUVUzkJV¦lJU„"],encodeOffsets:[[121253,26511]]}},{type:"Feature",id:"3506",properties:{name:"漳州市",cp:[117.5757,24.3732],childNum:10},geometry:{type:"Polygon",coordinates:["@@@bl@Xb@bVVUŽm„@n„x‚@nKVV@„XVWxn@VnUl@nmVX¼@LVbVV@xVJV@@XIlJXU‚V@Ln‚@lVV@UbVnnWVL@lnXUVmJ„Ll„„wnll@VašUXVla„LVUVV@¼Xl@lbUV™VWbn„nUlb„@@VV@„aVUšmlUašUny@kU@Wkk@WaUVk@@ammk@@U@UlU@aUa@wl@šmXLllnL‚U@anVnU@L@VVV@KlXnWVnVanUšw@w@wm›nÅ@wƒaUam@Uk„mUl@@a„a@U@¥škôK‚wȯ°w@ŻkwǕaK›ÑÛk@ĕōřċ£ĵƒUKW»kÅŻLU@Ulġw@¤Vz™VUbkKUbmLmlULU¼UxmbXl@bWVƒb@bUnV‚UšVbULU@@VkbVL@`U@WX@ŽXV@b°„@b¯š@¤@Xm@@b@`U„VVUL"],encodeOffsets:[[119712,24953]]}},{type:"Feature",id:"3505",properties:{name:"泉州市",cp:[118.3228,25.1147],childNum:9},geometry:{type:"Polygon",coordinates:["@@Vl„xkz@`‚xšLVV@xXXW„Xl@xl„@V@bnV°™@„„LVm°L„V„bV@ƚX„Wl—UmxU@WVULnx„@llUXUJWzn`Vb@„@b@xV@šmXX@„@JÆVVXVKXkV@nVlU„l@KVbULšJV_VK„LVWX@lUVƒkIU¥lIVyVU@wœm˜£nUVWU@aƒm@UmWw@UX@@am™VUn@@aUUlUVanaWUXWmUnkšK@VšUlVVUUwš@XLWWX™ma@knm‚bVb„VXbVL‚@XJlInlšL„w˜mXóšw@çV»ÇçŋaķƧóƅóKġ°nÅUķƑUÇW@—¯xǰöÆlV„n@llšaš@„Lšbƒ`™@™„VšXVƒVx@V@bULVJUk‚Ç@ƒ¼ƒXUKk@mmULkaWbk@ƒx@UkL@a@K@U@UmKmbU@kV@UmVUbUmmXkW@LUU@U@KmVmU@bVmKkkWK™nk@@xVb@bkV@V@Vl@nn@bl@VUXbl@XlV@@lmz™VVbkŽ™nUVƒb"],encodeOffsets:[[120398,25797]]}},{type:"Feature",id:"3503",properties:{name:"莆田市",cp:[119.0918,25.3455],childNum:2},geometry:{type:"Polygon",coordinates:["@@VbނVVnUlUX@VKVLlKXXlKXL‚‚nkV@ÞxlbXUWa„b„@šbÜ@XK@aWUXmWaX_Wynw@wnwlK„bV@aUKWUUI@a„mV¯Ŏ¥ô¯ĸU„UÆ@n»¯aƿé@ţ¯nĉĬÝK™óó@™ÑU¼@è™xWô—nƒx™KmkkJWI@UKWaƒUUaamn@lnbWšXXWK™@VxUVkU™V@U™LmlnVWXXVmbUbkVVV@bm@UVnš@bW@@VXx‚n@V„n@bV‚UX"],encodeOffsets:[[121388,26264]]}},{type:"Feature",id:"3502",properties:{name:"厦门市",cp:[118.1689,24.6478],childNum:1},geometry:{type:"Polygon",coordinates:["@@@VlUV@nanL@V@V@L@blK@V„wl@XalbVKnnl@VL„W„»È@lVUIVK@a@UUw„WUU™šƒš@„_™aƒK™@™bkkm@UƒkõŁxóL™l@¦@Vƒb@bk@VŽƒnVln@Vb„b@xmÆnœ@x@x™x"],encodeOffsets:[[120747,25465]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/gan_su_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"6209",properties:{name:"酒泉市",cp:[96.2622,40.4517],childNum:8},geometry:{type:"Polygon",coordinates:["@@ÇnÅaĉ@ƒU¯¥›UŹ‚ƒ£™WUýUU±JkkUw‚yÞIČxĊĕĊ¯š¥ÆUkţ™UÅÓ±¼™IUx¯UƒÒƑ‚ݐŰƒKÝnğ°ÅU@Žƒ@Vn@þš¼¯šWnŎ°XLWlnVnbWnƒVXxmbƒa—bóUƒlǕUUa™IUmlU™ƒš¥™kƒ¥ĉwkkƒÝɛa@¯™™U¯°mVƒkVnKlƒōÑÇÑU@kl™UġŽkUŻnUW™@š¯ƒk»šmWV£UKnUƒmUw‚w@ƒUIVaX™šwm»Èmmwn¯ċ™¯LĉŽUƒJUalka±Va@U‚k@ƒÛф¯WmnUaɝ¤Ûmƒn¯m±x@wóxÛLġÒUx¯VƒÈ™JUbóz݃ÇKĉ¯ōlÝUŎWl¯nťbÝ@¯ǩLġmV@ƯĢkÆm™ĊkVťLɃmÝXó°@„ĢbVŽóVݦɱ@Ƨaġ„UV„ĠÇÈV¼UVţwmbJÇwˋa™XmǯKkkmŽƒbXšm¼V¼Ǭڲ¤ôŰÆƴô̐ŤǪnɆӨ¼ɆLÆłUĊšxŎƞȘǔˎǬǪnƨŮǬö°»šġ„„ÞÜÆĸÒĊ„ǀbƾèôÈ@¼¯þŤĸƧ°Vb@lÈĊ‚šʠń̐„ȘKǀŽֲॗţÿǕý@ʊǓƨóÆÑǖŃôw@΋ʈƆÅÈVVĊV„óĊÅ@ÞƒĬV@Þīš@°Ž„V@ĸ̃°XτƜĠ@ÈaÜ¥Őƅ‚™nğóĕVġUůƿŋ—ĕƒa±V—UťÇğÑ"],encodeOffsets:[[101892,40821]]}},{type:"Feature",id:"6207",properties:{name:"张掖市",cp:[99.7998,38.7433],childNum:9},geometry:{type:"Polygon",coordinates:["@@ÈÒŎÒk„mLUŽlŽU„¯nV°šš@°ɜb„ÞĠaÈ»ĸl‚š„LVUÈ@Ċ@ýUm„@@ÆVĠ¯Þm„LƯޏƒ„ѰVVwšJ²»ÆÔšVlŤÅV™¦ĉ°ĉĖċwÝJzVxll²IVVVþšX„¤źœV°¦„VĊ@ÆbÈmǔLĸĠ¯Ģaô¯ĸmÆÛUƒlÇĸk°XyĊUǔV„ǩnmV»ƒa@ýnK°n@l¥@»ż„Ċ¤m皃@£ČU@mƒmVkÞUƐ±²¹°‚ĠwÅƑŃU¯™›V¯aÈŁšƒÇ»™ġn_°xŎKlxœklx„@Þw‚„„@Æm²b‚DzLlkšWXať¯ĊaœÑšK±w@wƒUÅçV±Uk™@@„¯š¯xƒU™±±UU°ōxVxÅÔō°ó¯UÝ¦óbÝþƒ@ĉÈóUV‚Ux„„@VŽUVÝwÅÈǎóVkk¯JǐkmmL@„™KÇx@bkš™@U°ķ²ó`ƒš™šmn¯°ƒUwlÅkUƒ`™¦ɛô™Žķz@ŽÅnǰU¼¯KmVk²ƒJƒ¼ƏÞķôš¤ULƒ@mnğ`™šÇnUxÇ@Ûÿ™U@ƒƒkŻŽ@x@móJkŃ¥VŹĉóÒĉlċ°ķ„Uƽ܃@›x"],encodeOffsets:[[99720,40090]]}},{type:"Feature",id:"6230",properties:{name:"甘南藏族自治州",cp:[102.9199,34.6893],childNum:9},geometry:{type:"Polygon",coordinates:["@@ލš™nKlnšwX¥WÝXk˜xÞUnƒ°aĊVnUUKlÞĶWXnĠ¥ô»„™@nmVL@¤°™Vz„JšanU@aÆwna@k›ƒU¯šyX_›aĉb™ƒ„wƒéXkWwÅaš¯V¥mƒ¯UƒƒI@ƒš@„mšb°aÈçšUš¥@»‚knwɜƇ°I°ÑÈmVU™¯Xa@w‚W@wšV¯Č¥l¯Uwnm@k˜aUaóKkk@™Ça™b@ށÒWa¯IÇxÛam¼™VUƒxÒl‚@zÝÒ¯bÝaĉVĉwDށW›zJ™mJn²mܯUƒ¯ĉ@ġ¤Åb@²nšmlƒ@@Ž„„U„ƒLVxšV™„U¼Ålma™b@ƒ°™l@WIUƒ¯@mƒ™@™™ó„™„@U›zţyƒXÇU™ÇVUUVLkbWakVWmUbkkƒKUÆ»nƒ°Knk@aƒUVmšnk»l¯Ģ›lw@_kKVU@ƒnaƒ@lUk@¯¥mV@kmbW™b¯Åõa@mkU@kƒÇŽkU@›`@™óó—bl¼Uxƒn„¼šlVȄx@blVkVVnƒ`XÈġÈ@ǃK£ÝJmUUnUĖmlU„mKUn™VÅaUw›Uĉ`¯n¯wW¼nxVŽ™š@bĉnƒ‚kIċŘkXUŽ±Ò™xšÈ@ŽX°`l„œV˜IȯĊV„ƒšVVan@VašUVażVmšblkÈW„ƒWIXa„alL@wVb„„V„¦lL@lĠ™n҄U‚nk‚šL@ÆÞkšÞšK‚bñþW¦Û„ċVƒ„ULUºkÈlŎUxÆxÞUUxšÒ‚x„@XbšL@lÆ@„ÒlXVln@„bm¼ƒJ@„Ån„šƒx@bnšĠm„xVXmbÈè@ŽĊ£ČW˜w"],encodeOffsets:[[105210,36349]]}},{type:"Feature",id:"6206",properties:{name:"武威市",cp:[103.0188,38.1061],childNum:4},geometry:{type:"Polygon",coordinates:["@@±¯¥@klwU»ƒƒÞÝmwKm¯™™ç@™kVÇUL¯lVUKġ„ġm@a@U„@X£°l°LŎÇ@aōVÝw™ÔƒKUŽÅš„WJ¯lm@ÛVWa™@klĉUmaƒLUanaƒ™ƒk¯J„™™±KkXóÜÅxƒ²Ç‚@„„nUÒĊb°@™ÆkL™Ž™XÇÆ@xÝn—xWxţ„¯¤ƒI@Æn„ƒVV„VlU²Æè„V@x²x™L›ÒĉbŦ°Wb™Xklބš@l¤šXĊ`„wl@ĢÈŎm@bšnV‚Ubƒ„@șÆÛLƒèǚUÒŦlĸ™`°ĮʟÆǓbĉôϚĊƚĢnŤé΀ÑĸĀĊ¦„@@l°lœ¦Ȯ¦ɆÞĊKŤ™ĵĸů„»mفyġ™ķŭ@Çɱȭ¯mƧUĊķnŁŻ»UaU™˜ƛɞÝƨů"],encodeOffsets:[[106336,38543]]}},{type:"Feature",id:"6212",properties:{name:"陇南市",cp:[105.304,33.5632],childNum:9},geometry:{type:"Polygon",coordinates:["@@šÈÞ@l`UmVƒ¼œŽ‚@nnÆwVlnVVa„LVƒÈ_‚ÿރ@n„a„xÆ@„lš_š@VxnK@llLnxmÈŎJnbUxšI°Žl@n¦‚lÈIlmX¥„k°@šk‚J„k²é˜@klaUaVaU@@ÝnIWnmnx‚k„ºÞ„„aV™°„V@nw‚KšxôbÞ£šVšU„bšþšLn»mƒVw„IšJ°Ž@„nb@°°I„ġUkÇKVƒ™™@ů»lƒ„Lnmƒ£@anK@Ñ܍n@»mL@£™yk„UUmbUÞÝ@kyÇbó»™XUxƒWVzb±mÝbXaƒwUamL¯»@wUKVwm¯ĵJ°ÅUWVk„KVk°wÈVšVуlUšƒ¥škmVamknƒUw¯¯ƒbċ¥ÅKƒk™Kk„™VċVk£kKVw‚Ñ„a@kóyÛ¯ÇVk™ów›š—Xō¥Ç¼ów™Ž¯U±‚k„ƒ@x›IĉÒÅVmÈnšÜ@n°„bUbÝV‚ŽUnnJ¯Į@‚m¦nV܃@„„L°JXb‚Ñ@šaÈb@šllôLVb—b@lmnVxk°ċ¦U°™Ž@xX@xWbš°UVÇn¯Ò¯Jɛƈmxl@¼"],encodeOffsets:[[106527,34943]]}},{type:"Feature",id:"6210",properties:{name:"庆阳市",cp:[107.5342,36.2],childNum:8},geometry:{type:"Polygon",coordinates:["@@kw‚ĉ—»VamƒƒV¯wƒIóVkl¯™Km™Vō¯ÝWkL@bÝKō¦@Ž™„@š™Lx›@b@l™a@km@@l¯nm@UaÅ@ƒ„óWUXm¥™nƒw`@UUxķôǰğ¦@„VJš_n‚‚IVŽnalxkX„JWn¯šnVƒLšxl¤nnVbklVX@xnxmV@bUK@nm@@xƒV—°±aÅnƒŽkUWnUaƒx@m™n@ƒ¯LƒššmUĀlU@lV@blLUblxklkIÇx¯°‚UXbšaVŽUnšV@°‚LUlnbšX@`°nVmbnÆmV‚kLmK™¦UŽ@X„y@kl@U„°K@¼XbW„ƒš@b„WnLVa„VšƒVz@xlVČ¥lbUxލlV„U@nÆWôn²™VJlU„Ƨ„LnmÜLXa˜n@mœw@wlUlV²mšblwšVȃlLލ„±@lVnUlxnkma@mškšJ@kXV‚U@mn@š¼VXUƒVƒlLnmVbôaVnWV»ÈUl°È¯ÆIn›ÆU@kk»mKkÆġk¯@»mƒk—¯@óÇlÇ@—Vykkl™Uml¯Þ™@w"],encodeOffsets:[[111229,36383]]}},{type:"Feature",id:"6204",properties:{name:"白银市",cp:[104.8645,36.5076],childNum:6},geometry:{type:"Polygon",coordinates:["@@VKUȚl@šè°šnŽ‚LnxÝބ„V¼kx@l‚¦²°ĊóĠ„™Ċ»š@ÈxšaĊxlwÈVŤa@¯²aÇ£ƒJk£lƒnUÞ@°šô™@y„wl»lIX¥Ǫnw@ÑÞWla„ÅlL@ƒUwĉakƒl@ƒš¯mwna°J„V¯nUVÓÞÑm£²óWaUƒÇ@óÝUçV»ÈkkW@¯‚xV@XlK@wX@Vmm_@wÈݙKU¯ÇwVwÅK¯VƒkƒJ™™™XkWVaƒImޝUk„ÇlVšœĀV°mxóšk„@¼ó„WxĉÜU@Ub‚zÛJÇk@‚ÆnVlԙ@kŽ„x™ô@ĬWL¯ƒƒK@aÛImm™@ƒIUaƒ@™™UŽÇêU¤VÒÇx¯ÒV„šš™lk@Wbĉ¦UbkWV_‚y¯Lƒaó„kŽ@b@nmbkx„°"],encodeOffsets:[[106077,37885]]}},{type:"Feature",id:"6211",properties:{name:"定西市",cp:[104.5569,35.0848],childNum:7},geometry:{type:"Polygon",coordinates:["@@„a‚V²wVJV_@„LlanÅllŦçÜӚ_šlnƒWaôk„xUš„bmV@È°lèšnk°l¦„`@nnL‚@ÈlÜIyVaV@ĊÛXwôƒ@»lƒô™nwU¯›ÿU™Èklƒ°Vn„JUblXšWšš„I„l°U„ƒVƒš—@aVVVmnL@„lƒ„UUw‚mkƒš£„bV¥VUVwۂƒlaÇÝރmk£ƒLUy¯L@WlkKW_XaWƒ—mƒ„ġU@a™k™‚ƒakXkmVwmŹVƒU™b™WƒónmwnWW£„KÈnV¥ƒ¥„ƒÆ_k™lW„bU¯„V°aôbnaVwmaōInÇmwkK@kmLUw™@™`ƒkÅ@ƒwƒb@m݄ĀÇ`U„ƒKUbmUUkÅxmm@›„»nUVk_Ý@™Ç™¦™VÇè¯b™aƒn™@@„„JV„°Žn„U¦™°ÆbXxWl„êƒxš„ĊaœbW`™zV°œ„@lmbÅx@bmV™bƒI™`™¦@ÒUVUI@ƃL@bš¼@ššŽ@„šlmxnL„°ULƒŽƒÞğޛ°kLUŽƒL™°™xVŽ„n„KVƒl@šzX@"],encodeOffsets:[[106122,36794]]}},{type:"Feature",id:"6205",properties:{name:"天水市",cp:[105.6445,34.6289],childNum:6},geometry:{type:"Polygon",coordinates:["@@UyȍVƒVUnn@ƒVU„`UblzšJnk‚@Vb„KU„°l„wš„„W°„nkVŽ‚UÈlš£°V@n¥šV„kl™kU˜±U„ƒn™ƒlw¯UkwmKUlmkUmnkym@ō@U„mWÈU°l°anlJškUKlU„¯Èm@kmWV»kkÝLUWUx±b™@¯ma@ƒ¯™IƒJUxn„m¼™K™ýƒa™V™Uݤóa™wLmxU@¯ƒUšƒb݃ƒ¹lmwmnXŽmJ@ÞV@UbVbkblŽ—@±êƒlI™l¯@ƒlW¦knÇJkm¥k@¯™Jmbóa¯bƒUV°ƒakXlšÅ`ƒ„„¦U¦ÇmƒLX¤mXnxm‚„ôšXša„VźUnŽUxlnlW„bššl@bĢV„ƒ˜nX„WbX`lLXk@ްKVz„Kl¤„nÞ݂Èkb„‚܁"],encodeOffsets:[[108180,35984]]}},{type:"Feature",id:"6201",properties:{name:"兰州市",cp:[103.5901,36.3043],childNum:5},geometry:{type:"MultiPolygon",coordinates:[["@@lW²LššƒŽ°I„l„šmbVb„KnbĊVlkš@XbÜU@Žkn°‚XIƒÆ™V„LšÓÞxŎUlôƒ„b°KzU`lXVaĊ¥Xal@šk™™Uƒ°ÑÈwUтV£ÈéVšš„@Vb„Jš@nnÜJ@b„L°„XK@īšóƒwlš@kÓmUÅmK@mƒ_k¥l¯™mkçǯ@nUƒaV™ƒwólXbm„™k™`ÛÔťèkkmÆkbƒK@U`UI±xUƒbWlX„mbVbÅÒólkƒƒIWJkšƒ@ƒz—Kݼ™@™xUx󎃄¯LWb@ŽÅ҄„±¦U`nbťĀUšVb„LšŽ„U"],["@@ƒ¯lwna@mōȯK¯kW¤ƒ@@V@bĢñVLU‚°k"]],encodeOffsets:[[[105188,37649]],[[106077,37885]]]}},{type:"Feature",id:"6208",properties:{name:"平凉市",cp:[107.0728,35.321],childNum:7},geometry:{type:"Polygon",coordinates:["@@ÆLUxÈxV°šLÇÞ@xn`Ü@X@nĊŽÆwnJmwUx‚aUkšw@V@w„aVmlLXÝl@X‚VĢmV°@nl@UUUWK@w„ÿVI²Òlmš@nÝĊýVV@nšJ°„„šUłm@kV¼nK›ĢȤôK„blnKllVk²aĠ¥È¯ĸóVw@V‚_„xšmn¦VWôX„ƒÆ@Vbn@°m@kn@@lšb@k‚aœ@‚wšK@™šƒ@UlKVaƒWX™W²¹lӄw@_°›n@@_lKōķW™@ŽmLUWƒn™»Û@›l_Ç`ƒÛmm°ÅbWb@š—VWbƒUUKDŽÅaġlmkUġlƒ»—Lƒl™Um¦@ޝU™¤ÇkVUml¯ƒƒX™ƒƒx¯kVƒƒLUa@ml™IkyVaƒ_UV@„mmUVU„ÇŽVzUxUVU¦ƒa™¤l„nVxƒVk„@ƒmKUnUU@b™˜U„ƒ„","@@@Žż@™mlkƒġk"],encodeOffsets:[[107877,36338],[108439,36265]]}},{type:"Feature",id:"6229",properties:{name:"临夏回族自治州",cp:[103.2715,35.5737],childNum:8},geometry:{type:"Polygon",coordinates:["@@š@ż»˜L„y„@l™XI„Jl„ôkÆÑUanaWƒXkW@™yk@U„ƒLƒmUšwš¯„KVlKœ¯Ġ݄݄VKƒ¯mKnw™k@ƒ™@™™»@a„K@ÅVJVU@њ¥š_Uy¯š@£UKmn@‚ƒšó¼ğ¦WmĵXݎkŽVLmVĉU¯bm„ÝV—wWlXÞW¦™xkmmL™šÝŽœ„±U@Vގ™š@„ÅÈW°X„ܼƨyUĮnŽWŽnXÝxUx°lVXJlôV"],encodeOffsets:[[105548,37075]]}},{type:"Feature",id:"6203",properties:{name:"金昌市",cp:[102.074,38.5126],childNum:2},geometry:{type:"Polygon",coordinates:["@@šĢȼ™„Çł°bœU°šV‚ƒń‚ÆǖŰnšÆ„ōĬǔaʠůĭš_kķÆ¥VÑș„çÜKšÅ@DŽƒVaU™m@aōnġÇk@ƒxĉ_™Wk£™@݃±KÈ±aÅnƒ@ƒÝxƒ@kw›lkwōL¯wm`"],encodeOffsets:[[103849,38970]]}},{type:"Feature",id:"6202",properties:{name:"嘉峪关市",cp:[98.1738,39.8035],childNum:1},geometry:{type:"Polygon",coordinates:["@@llĊx„¦šl™¦š„kVVnšJVbǖV„kôV˜a„bnaWw„UXmmamUXkWKō¯Xm°™™»ĉÇ@UVƒK™ķkǼğb"],encodeOffsets:[[100182,40664]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/guang_dong_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"4418",properties:{name:"清远市",cp:[112.9175,24.3292],childNum:8},geometry:{type:"Polygon",coordinates:["@@lǯkÿƒaV¯™VaÈU„¥ÆÇ„Ilxšmnb‚Uœxl™„Uôl°kš„„Wl„š@ô™VwUanUl@„xVkšaX¥‚kU»„aš¯±@kka@ƒUwmUkwƒJk™˜„±k@ƒ™™L@ÝWUwV݃—xÇU¯ŽÇX@m™Åƒ@@yĉ£VmUwȗ»ÇšUn„lUnWU¯`Ukƒ@@„™x„Ž@bÇxX¼ƒVVš¯LšĀk‚ÝLƒ„¯@VŽƒĀ¯lnĊW¦kVÇôkUDŽUK@ţ™U@a™™ó܃UU»ƒ@™¦k@Vx„KVb„n‚š@„Æ™„l„@xšƒbWšnlU„lxÈlV„ȰƄ@¼™„@x„šWxœŎ‚V„šK°„š¥ššnƒÆkŎ@ÈÑm™„K@¥šk@™ô@„nôV"],encodeOffsets:[[115707,25527]]}},{type:"Feature",id:"4402",properties:{name:"韶关市",cp:[113.7964,24.7028],childNum:8},geometry:{type:"Polygon",coordinates:["@@W™Xk±Ñ@ƒUw™mUwĉwlmn@Æwn£mkIš¥ÇÅ@¥šaƒón£nWWwš£V`Þ@šnVml@xô¼„IV¥ƒkUmkamUkVWwÛ»móƒ£UVÅKmn@x™@kbmm¯a™Xka›VĉaUb݃ƒ²—‚lš„IlxnVVx@„lb@l²™°ƒbV¼lW¦™bUlƒwk@mVVbUxóš™@kƒƒX™ƒ¯lókƒVkš›wVma™nkwƒJÅȃ¦ÇVUbšŽU°„bl°ŽkÈ@x™¦ÆÜ™°@„°„¦óa™VUôlUlbXl@nÜV„„nKlŽnIVÞ°Wš„°U@bnm@¥šIVƒ²Ulƒ°VnalzXyl_Vyƒ¦lƒœLlxš„@ŽÞbšKm„knVWanwƒÑVwČº˜@n_ÞV„aVŽÜIœl@„˜KȚ„VJ@aš£È@˜™@km™„aV¯W@_ƒa¯KmbkÇkLmwƒ@Å¥"],encodeOffsets:[[117147,25549]]}},{type:"Feature",id:"4408",properties:{name:"湛江市",cp:[110.3577,20.9894],childNum:6},geometry:{type:"Polygon",coordinates:["@@@ƒkXƒ™@a„UUċlk„Jƒk„™@wVJXUWk°W@nKnwlUlš²ƒ„blU@‚lI„l@„XbW„šxnm@lW@w„wU‚JX¯VU°`ŎóˋkÝÝkÅ@ÇmğÈřmw™aĵV›xUہ»°™ĠǷnýmóX¥ɅĵҏÇ@°²ĊU˱ĮU¤Ç°™Ā¯ɐnżUĊĊĬV@脎@ԃÒU¼l¤nƒĠb„êVĠ°Èy„zVaV‚nUÆL„ašbVl„wÆ@"],encodeOffsets:[[113040,22416]]}},{type:"Feature",id:"4414",properties:{name:"梅州市",cp:[116.1255,24.1534],childNum:8},geometry:{type:"Polygon",coordinates:["@@„‚nԚlW¼x‚¦@lœVl™lLkè„a@zš¤ƒĖ„¼UxlnUKUbÝlU¼lb@„Vx„V„klJÈwV¯š@ĠlÛ˚nƒbkšÆźÞƒUÈôklmšL„¥‚LœW˜„„™nKUkVa°V„x@IVV@x°bUk„a™a@mV@„@y„w‚L„ÑUwVUšV„‚„U‚bÞVVann‚@XwÇÿš¯²aVamkXaÆ»@»nw@¥›UXaƒkbWa¯KUw@¥m@kwmLU»UU™J@kmU@UUWUƒ@ƒyƒanwmçÛl¯ƒŽ¯UƒmKUmƒwVkmÝXbW@XWÝbƒk¯@±‚w@»U@W¯Å@ƒÇ¥UƒU@ƒƒ™IU™ƒakJƒĀ„ꃰšþƒXkamŽ@Žƒ_J°m‚@X"],encodeOffsets:[[118125,24419]]}},{type:"Feature",id:"4416",properties:{name:"河源市",cp:[114.917,23.9722],childNum:6},geometry:{type:"Polygon",coordinates:["@@°VlmX¹laĢÒlm„@„„šV𣂂@¦Ģklynn¼lW°z„W„„°VbÈV@lÆbnn‚JškX„šVÆašÅ„W@™ƒUUw@ƒkaV»ÞkVaVLkmVwƒ»„ĕ™£@yƒblçkKkš›U@k¥‚wX»™kmӃ@Wn¯‚I„`@nlb„W™ý„¯ƒé„ÿlI@™XUmWUwƒ@@UJU„Ç„mKUV@x™„ţk¯¯LWƒƒnUxK@ű»Vwa¯š@¤WX@ŽÛ¦@¤ÇIȼWxXŽƒ@Wx—w›ŽUnVbÅèmVa±²UWl@Žk„lȄ¤nôܼXxlUnVlbVn„lU¦ƒJó»@wnkmU™‚Ý@U_™¤XxmXm¤„ô™b@¦Èƙ¦lJn"],encodeOffsets:[[117057,25167]]}},{type:"Feature",id:"4412",properties:{name:"肇庆市",cp:[112.1265,23.5822],childNum:7},geometry:{type:"Polygon",coordinates:["@@l@š¥„@V¼„Vôۚš@bšV@ŤVLȃlVÈólUX¥mĉ°k„ÿU°@„ƒÞKl™ÿ°KU™„UW»Èw@aƒšw@ƒ„@nm@w›£kÓVUVn„Kš™k¥™£Vamƒ@nkKkbÆǫma—kmLU¥™UmƒÛwmVU™mUƒJ—ÇaUxÇIn`mb@Þ¯b@„nJ@nl„U‚V„lVU„L›W¯—Û`Ç_¯`mš¯I™bĉWċzx±J™x𐝯Uƒƒ_k@™šƒJ@Umb„šXôlLš˜n¦@¼ĊxlUXŽ˜xUbL‚Ġ„UnVĊwlšUš„b@lW„X„‚m²˜@ÞWxXš‚Unb"],encodeOffsets:[[114627,24818]]}},{type:"Feature",id:"4413",properties:{name:"惠州市",cp:[114.6204,23.1647],childNum:4},geometry:{type:"Polygon",coordinates:["@@lbšW°bnnlaš@@wnmÆLVUkÇlƒ@Xk‚V²±‚bnUÆçUaVmœ˜xXw„@WXwÇ»ÈJ@£Ü¥@XW@£°™‚bUx²¼@ƂLVw„mX„°K°Ťlšƒ@wVUnLȃVƒVIky±wkƒKU¯ƒÅkƒ™XġÑۃlwUwlm@m„nKWašÅm›¯óÇmğb¯alĉUwķbmb@lÞÒVn—šmĀŹ@VŽƒbVŽUnmakLm`@xĉkklVÔVJVn—lV„UnmJmaLUbl‚™zmŽkL™a™‚ō@@zš‚V¦UŽV²kJ„nÜU@˜VXUށL@„lJƒL@bݤUnVŽ—b@xVnlK²„Vx°V„xlI„lkVl²k¤@n"],encodeOffsets:[[116776,24492]]}},{type:"Feature",id:"4409",properties:{name:"茂名市",cp:[111.0059,22.0221],childNum:5},geometry:{type:"Polygon",coordinates:["@@‚LnÇlk„KnkÆL„ƒUm™ÈxlUœJló°n@ššanŽš„„a@ƒ˜@X_@mÝóóU@a™aU¯mL¯ƒƒkV¯™ÇVwkw@V±Ŏ£@™™@šalw±Vk@m„Åm¯™ÿŃƧIÇ`ōô¯_UVW°IV‚ƒx@xkX@Žmn™wXƒWa@ƒƒkkJ@kVƒa±„k™kVmxmL@‚¯XXlWVUI@xƒš„lƒIklVȃV@b„šlW@„@nUxVblVxkôlx™n„‚y„šnIƻư„aXwlK„bVnƒŽXb‚L„¤„k‚L—èƒVV¼ƒŽ²IlĠVX„ynz°KVx°@VlœLlblKœš"],encodeOffsets:[[113761,23237]]}},{type:"Feature",id:"4407",properties:{name:"江门市",cp:[112.6318,22.1484],childNum:5},geometry:{type:"Polygon",coordinates:["@@lUXx°JWnnƚXVš„W„X@„šºVLV¯nU‚Vnb™ô„x‚aXmW™XIšŽUb°xlK„l¯œK˜xXÞ°ŽšXÈ¥Ü@„ĉޏU™‚çš»nóƒVma—x‚¯UÅU¥Ý¯@ƒƒç@ș@çĉÅUmU籃ĉKÝxÝ_ÅJƒk¯»ó¯nmèkǀšŽWxœ¼mnUÜġ°@¦@ƒxƒLkŽÇaVnUxV„™šVlnIlbnÆÆKX¦"],encodeOffsets:[[114852,22928]]}},{type:"Feature",id:"4417",properties:{name:"阳江市",cp:[111.8298,22.0715],childNum:4},geometry:{type:"Polygon",coordinates:["@@°„nKV°šb@bôVÞô@n„VlÒôÆUnlnn@lmkmVkƒaÈkÆÆ„™k¥‚ÅÞ»ÆKXkW¥ÅLmÅkamJUkš™UƒVwUmÈbl„K„w‚@@¥Ģ¯VÛnm›»Xw™lƿ™@kbW™—aʵ@óL›l¯ƽ@™ƒƒLn°ƒÆ@nUl‚²kx™b@‚š@šō¤U²@ŽlxUxšÈU°lŽ„"],encodeOffsets:[[114053,22782]]}},{type:"Feature",id:"4453",properties:{name:"云浮市",cp:[111.7859,22.8516],childNum:5},geometry:{type:"Polygon",coordinates:["@@@V„Iš™l@„`V„°Å™šw²I‚wČyĊXša°Jn™°_È`Ü_°˜œX‚KVƒkUUƒVkƒ@mmI@ƒ°a@Ýnam_ÈJVwlĉX@„šlUšómaUmVU°UK™¹@ƒƒWƒXU™™WmÅXm¯IWwkVWlÅLݼÆl¦ƒšÅÅÇl„bUllnknm@kmVmóÅkуUW`—@@„ƒb™ƒm™b@™¯mkô›IkVÇwnš„VƒÅKmlƒLklmȁKƒšVĊK°²„`n˜¤n„U„bWl„xVx™LUx@°nXm`VklVxmnnx"],encodeOffsets:[[114053,23873]]}},{type:"Feature",id:"4401",properties:{name:"广州市",cp:[113.5107,23.2196],childNum:13},geometry:{type:"Polygon",coordinates:["@@Ș¼VxUnĊ¤@z„@šÆ@nÈW°ÈV˜w„ŽUÞVxÞX@ŽšK„šl@ބVaĊbœU@ml£k±lUƒkkJƒw¯UUw±ƒkLUm@w˜aUVmÞ£@a„KkI@ƒ‚KVUW@—ÛVƒmlIU±VU¥™@yğzƧǃƒšƽĠřšÅnī±m@ƒ²¯lƒ°@nÝÆóUll@XnÝVU¦mVV°—„V¼™Jƒn„b@°mbn„ƒ‚@²¯‚¯wVwƒ@@nmxX¤¯L@ŽVLU„m@@l"],encodeOffsets:[[115673,24019]]}},{type:"Feature",id:"4415",properties:{name:"汕尾市",cp:[115.5762,23.0438],childNum:4},geometry:{type:"Polygon",coordinates:["@@@‚„@VxnXWV@š„bVššJ„„V@ÞÅU¥Ċxš£UWU‚wÅUU¥WVUkĊÇnkV`°LV™„wƒƒnU@™„ƒlbĊ¯„Vnalšš@@çkUÝ¥ġaó¯ÅaÅLŻÆUýmy¯ó@ĉÆó„ȯw™ÆXbmLƒ‚@nknVxkx܄ĢҚW„Æl„V°„Ll‚²xlz"],encodeOffsets:[[118193,23806]]}},{type:"Feature",id:"4452",properties:{name:"揭阳市",cp:[116.1255,23.313],childNum:5},geometry:{type:"Polygon",coordinates:["@@V„Ȧ„Æ@X°V@@¼‚x²°@„lÞaWXX@‚aÞWlnUŽ„xVnnL„‚°V„@k‚mĢl@„ak™@mlk°aXƒ±„nwm±™²¯JV²@ƒwW˜—_mƒa„V»ƒU@m¯ĉUф™šJl™„ašbVn„lĸLlƅÛDZwÝ@ĉxó@è™@k™mbƒUĉ°kaƒ„@šmV„„ƒxUš¯KU_mlĉÈVlXUV¦ÆVxVŽVX™¤ĉwV¦ÝÆ"],encodeOffsets:[[118384,24036]]}},{type:"Feature",id:"4404",properties:{name:"珠海市",cp:[113.7305,22.1155],childNum:1},geometry:{type:"Polygon",coordinates:["@@„è@„Þ°V¦VƁ°˜wnb„UÆ»nçÆ@nxܤ²llU°VnÈJސ°UôéšķUklƒô£VVˌKÞV°£n¥ƒ£ȗ™Ýy¯¯mÅkw¯bÇĔğ@Ýn¯ĊƒVğōŁŻƒķJ@Ț","@@X¯kmèVbnJ‚™"],encodeOffsets:[[115774,22602],[116325,22697]]}},{type:"Feature",id:"4406",properties:{name:"佛山市",cp:[112.8955,23.1097],childNum:1},geometry:{type:"Polygon",coordinates:["@@Èb˜Ž„InVVšnUÜxn„šVV¦nK˜lnbÅǬlalL@mn„Ubš¤l¦™šƒLUmUVlԜ¤@xmnVl°_XVVmƒkVmș@kn@VƒUK@°KW£nw@m„@Ux°x°@±„mƒna@¯ƒa„mšIU»˜ƒU¯nUV¥ÞUWmk@Vk¯™Ukn›ÑWݐƒĊÛ@Ǧ™W¯Wݗw›Lk°ƒkL¯wVa™WJXšWnbƒwkVƒ™W@kĊ"],encodeOffsets:[[115088,23316]]}},{type:"Feature",id:"4451",properties:{name:"潮州市",cp:[116.7847,23.8293],childNum:3},geometry:{type:"Polygon",coordinates:["@@°ŽÜknèmx„b„z„@V‚VX@VnV@lšIVVV¼nKlxn@@¦Vx°LXbla„ŽWbœV°£¯™W@nW@™‚aUñVœwWš»@¥ŤÅUÝǓÝóV@ńǎkUVmƒIUwÅVWÇX¹›—@W„¯bkl@nlšƒb@‚kġށn@l"],encodeOffsets:[[119161,24306]]}},{type:"Feature",id:"4405",properties:{name:"汕头市",cp:[117.1692,23.3405],childNum:2},geometry:{type:"Polygon",coordinates:["@@‚@U±°Iš±n²mx²ƒ˜@œWºXÈÆUVx„JUnlVȍ@ŃôUǔÞVçn»VyĢÛVm@»kaÝUǼóšÛÈķKċ¥X„¥Wwğk™ƒ¯@ƒwķKƒkUm™aƒbkš™IƒšVÒ°Ċ@n„VU¼ƒ‚„bn˜`X—„x"],encodeOffsets:[[119251,24059]]}},{type:"Feature",id:"4403",properties:{name:"深圳市",cp:[114.5435,22.5439],childNum:1},geometry:{type:"Polygon",coordinates:["@@ÞLš„@xšbV„šVšK°™X°Kô¥Vw@anU„胐š‚lkĊl@wn_lKnbVmU„aUź@nÿ˜™UmÝѯUƒbk„@ÆkxŻ@™aÇX—wƒJƒƒ¯LķÝUĕ™ó™ĸóêWº@b²nmĬ™Æ"],encodeOffsets:[[116404,23265]]}},{type:"Feature",id:"4419",properties:{name:"东莞市",cp:[113.8953,22.901],childNum:1},geometry:{type:"Polygon",coordinates:["@@Ŏ@ššblKnšykVa‚KnbnIVmUƒ˜kUmUIUә„ƒçmV@bUxó¦¯LW‚¯š™L™UUƒ™a@w™ƒÝKğŚ™ƾ„„ƨÈĠy"],encodeOffsets:[[116573,23670]]}},{type:"Feature",id:"4420",properties:{name:"中山市",cp:[113.4229,22.478],childNum:1},geometry:{type:"Polygon",coordinates:["@@‚XœÒlmšV°ôÞÅ@m„¯°k„±‚@@aX¹¯VݏÇIUmV¯kk‚±Û£mw@‚Őmèżmô™¼èVš"],encodeOffsets:[[115887,23209]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/guang_xi_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"4510",properties:{name:"百色市",cp:[106.6003,23.9227],childNum:12},geometry:{type:"Polygon",coordinates:["@@lklWXL@VšI‚l@XnJn@VUUalk@mK@kny@UlU@a°™„ƒUU@VmaU@Ua@UWw@ƒn@KmLm@alkšmnI‚m@an@VIUamWÅImwU@@a@K„X@JVL„UVmUaVkUa@m„@@Ulmkk°ƒUaVUlKXbVwVIkaVmUk@KVk@a„aW¯m@w„¥laœX@KmaškVmnUl@nxVKšInU@yVaVIV@na°KlxX@@_lmXšUV`VIV™V@„n@lšbn@@WUkValK@²yl@„„VUV@@K°L@KU@@UVaXIVVV@naVkVa@K@UUK@UUa™LWa—w@m@K@UVVƒ@mVUUVKnL„mVL„K‚bVK@UUIk›mI@mUIVK@IUK@VkLƒ@WU@mU@WmUk@ƒI@VƒJk@WwX_@amK@UUWkIƒ„ƒK@LVb@mVmakL@J@bU@Ux@xƒbmI@`ƒIwm@UbmKUaUWa¯UkJWV@XƒJUU¯LUmV@ma@kkamKwƒLUUmWVkkm@aVUUkVKnVVUmXK@UW@km@Ukkm@@W@U™kUy@I@aUUmbƒ¤U@kUmL@bmJU@Ua@wkLWWkL@Uƒ@VaU@ƒLUakKWbkUWVkKkLVLUV@JVbƒz@Vƒ„@ƒVmUU@kVmK¯@VƒU_™VWakVmIUKUaU@@bml@XU@@V@LmKUV„mVUKƒƒKƒbkaUXƒKUL@x@V@l@„mxU¦„V@ŽlL@V@Ln@@VV@„nlKUaV@nLUbmJnL@VWLkbmV„@@L„W‚„XLlx„VVIVV@x@V²blUVm„LVUœK@kWWXUlV@Xl`„LX„l@@VšŽƒn@VnbVš@lVUVUÈVbš@@`UXU`l@@XUVm@kš@xmVknUJVXUbmKULmbx@VlJ@LVbkKUbVLÇUUVƒUVmU@VaUkUKƒVUwmLkUUVVlƒbka™XmwƒKUšVVU@@V±Uk@VWUUm»XamU™bƒKk™`ƒ„™U@UnWW_kKmbUVUVmnUV@„nJVUlšUbU@UV@n@JmI@VmbnVUXlx¯ŽkKmnVV@L@V™bkV™Umm™@Ub¯LmlUƒL@VWLkmkLmmn£WmnKU_mW™š™bnbmxƒ@U¦UJU„@Xmlk¦@‚mnUUm@@Jn@lV„ÔVJnIVW„I@a„ƒÆK@I@aVK„IlŽÞnnl@nl`nbÆX²l@xV„@llbVn²ŽVVl@nn„V@IlW@Un@@kVa°KšnÈmVaVXUlaVƒÈU„VlwôUlynIVašan@lVXb‚Iš@n¥la@Kš_n‚@bÆx@XnJV„nKVz@`VXVšU`@bƒ¦UV@VšIlx„UnV‚K„XÈbšVllšbVbnVn@"],encodeOffsets:[[109126,25684]]}},{type:"Feature",id:"4512",properties:{name:"河池市",cp:[107.8638,24.5819],childNum:11},geometry:{type:"Polygon",coordinates:["@@lLVl„bVV@nXVlI@JVX„mšn„W°b„IVV@‚ln„@nalVUb„nW‚@kVkÒlbVKn²°bUŽlV²@˜X@`nb„aUI@ƒ°wlU@aXJVI@aVK@wUamIXm‚@XUV@@bV@Vm„ImnUUwVaVKXU‚nVK@akƒVwV@nL@UV`n@@X‚lnIUJl@X¦˜V@aUIVm@anƒV@UwnL@VlbVL@KVVXUWƒ„wUUVUka@UVJnUlbnalbVVn@°„„LV`Þ@šXVxV@@bVlUVVbXnWlXnmlš@XXWVXJmbUI@V„llUVkn@@VWV@Vnb„@VXUJVnn`lLVk„a„»lVšLnw@WV@lInw@WnU@U@m‚knUVó„K‚wUmUXUƒU@@wVJVIl@XKVVVbVI„J@Un@lŽVLnm„b@U@Ul@nUš°VUVJnnVJV@„@mVU@ƒ@wkUVwkKWk™yUUkU@alkÈ@lJ@x„Ilƒ@UUWVkUw@Kn@@kmaƒVUl™UUL™ÇƒUUKl@UUmL@aXU@mlUUwmKkUUVKVUƒaƒKUnK@U@Vl@XUWU„KlwX@šb@K‚@XkV@UwWJka@aUwmV@U™@@U@wUm@»kLWVkIWŽXnmV@VkbmKƒLUbk™Va@aƒa@@aVU@aVak£@ƒ±UkVU¯V™UUƒJVƒUIƒ@kxmUmWUbL›w@K@aU@@aVU@Kma@aka@_VWkk@UWVUKULWKULUš@KUnƒwVaUKƒxU@UmaƒL—m@kVmVa@UkƒmI@ƒ@KmIkxU@@K™U@mmakI@VƒLkmWkkJ™_U‚@V@L@n˜xXbšKVb@VVL@V@LUbUlmbU@UUWJUb@VV@@L¯K@LU@UVƒƒk@±z@‚kLUbVl@Xm@™akm@ƒU@UšUJU_™VWŽkn@`W@kw¯LmbU@UJUb@zmV™JULmwk@mVUn™lnb@L›Wkbƒ¦@x°nXŽƒb@bUl@LVlUnlbUJUxWakLUVVb¯„llkn@Vƒ@@nVbUlVbUnƒVUK@IƒW@L@bV@nxÆJnXVbUJm@@bnmJ™nkl@b‚nnK@L„m‚@Xx@VVbV@nb@UVVƒ„¯š@bkV@Vmz@lnLl@kŽVbUVm@mI@Wk™J@UWKkXkl"],encodeOffsets:[[109126,25684]]}},{type:"Feature",id:"4503",properties:{name:"桂林市",cp:[110.5554,25.318],childNum:13},geometry:{type:"Polygon",coordinates:["@@nU@J‚X@`XLm¦Vb`lšVXXWš@VblČnVšŽlanLnmVLšK@_Vaƒ¥@kUa„@VmVb„aV@XVVzlVVK@knKVmX£VKšLlbnš@b@llL@xĊôXaV@°È@¤„bn„V@@Wl_„V„U@W„nVamw„wVbn@„K‚VšLX@VmVUxlV@šnVV_nK@m‚I@Wn@@IšUĊ@@wVWX@@I°VVm@wmU@m@IUƒV™kƒlkUmmkÅV@@aV@@Wn_UKla@kšaV„šlVanb@k„@@KlVn@@aV@nIWW™UUaVU@™kKmwU@UImKk@UU@w@W@‚™k@™UkWƒ@mk_W@Ua@a™ƒƒ@—¯ƒmV£@mƒUUam@—kWakƒVama@UUm@nw@alaUmnUlVlIœV‚™šLVyk£Vm@k@UUJkƒK@kmKUw™KkWK@UXImyVwnI@m‚ƒkUlkUKkUVmƒw@kkJWUÈm@_k@@aƒaW@U„UJUwU@@IWKkƒmUUV@nVl@bVb@bU‚UXƒakw@ƒWUkbkKƒbm@™xUlkLm@@wmKUX@‚™UaVW™XVmU@@UUUƒxkmWXkKkUWaUaUb™L@`UL@LV`UXmK@VmakLVbkL‚xUJUIVbUVVb¯KƒV@Xnl@lVXbmÒnV@L@VWKkVUIWJkIƒŽUamUUbm@U„kU@JUbW@X„WxUam@kbVVUnUJmUUV@bƒU@UUV™@ƒVk@ƒbƒmULV¦U@V„U`VLUL@xVbn@UJ@nWJXXVŽVV@bkxVbUx‚Lšš@x„¦@šU‚lXUVVlULV@@šnŽU„ƒb@xl„nJVnlVknUlVUbmŽU@ƒbVš„x"],encodeOffsets:[[112399,26500]]}},{type:"Feature",id:"4501",properties:{name:"南宁市",cp:[108.479,23.1152],childNum:7},geometry:{type:"Polygon",coordinates:["@@lKnbnU‚@Ua@K„L„ƒlJVX@VnL@bW`Xxl@„I@U„Jl@nV@X‚V@nXV„@lK@UVL@JULVJ@nnJlœVJ@VULaƒLUKƒnmKULVVUŽ@nU„š`lIXlln„K@UlJnb@nšV@LV@lwnJ@L@„nJl„@VUbUn@l˜n„KnbVŽV@„wVLUb„xVm@LV™VKXLVKVLXU@VllUX@`lb@bnb‚L@ŽUV@bV@@b@Lœx‚KVanXVƒUUmVUUUaVUky‚UUa„ImK@mUUVUkKU_@W@UVVVIUW„UVaVU@UUKnƒ@k@al@ll@bnL@b„VUV˜X@Vœ@@b‚Knblmn@V_@aUalL@a@akK@kVKUKlwUUnV¥VmU_VWVIVaX@Va„alńK@LVJnalL@LnK„wlVUw‚mX@VXšƒlLUVnblaUmVUVwXU@Wm¯Va@ÞKnw@w™mšk„»‚UVW²a@_mW@U@I„y„LVUUKW@@™„LX@VUV@@yVU@UV@nwUUmJka@IU@ƒmƒVkaW@UwUX@`ƒ@kLWUk@mƒkUUm@k‚UUWkUƒkWxk@@VƒK@nV@UVaƒUUJmIkVƒ@UamLUbkVmamLka™@ƒ‚kmL¯WI@wJmwƒx@akU@aUKmbkaW_nW@_U@Wm@a@wkwUKmƒk@ƒbkb›w@mKUkkU@J@bW@kVWz@bVUa›VUx@„ULkJWbXVVXƒ`@œmJUVU@@Lk@WbU@UJlnXlm„Vx@Ln@‚b@K„LX„WJUUW@kƒaUVUbmV@nnV@n@lVLƒVmLX‚mXkV±@kxÅL›šUbJWIÅJ@I‚mXalkUamKkškL±aVwKƒUU@mÞnbWJX„m„@lbmKULWUUVkaƒbnn@Vl@VVV@VƒbVbnLWLXJWxXLV@@VV"],encodeOffsets:[[109958,23806]]}},{type:"Feature",id:"4502",properties:{name:"柳州市",cp:[109.3799,24.9774],childNum:7},geometry:{type:"Polygon",coordinates:["@@ƒwU™„aV@nVaUVklmkUUmmIkƒ@w„aVƒm@™U@VKUkVUkWV@™ƒ¥@w™™KVwUalw@aUUUWWXI@mVIm@Ua@wVKUKV_UƒV@U¥VK„n„al@„Uš@VU@V„V@aVUnVVIVmUUlan@VbXwWƒX@Va@IlVVƒn@VanVVb„lJXIVJlUXL@U@KmUnÑWakU@mkƒJUI@mk™@wUmmUV@JXaWIXWmaUIƒJƒkk@W„nJ@„ƒaUak@›kkJ@kUKU_ƒ@myUóWUkm¥kUmL@KUKm@k_UmVa@ƒk@@UmU@mm_—JWIUVUŽWLUlbVUJÇVUIVwƒKUVk@mU@n@lUL@Km@@l@L™VƒzJmUU¤m@UbV²U`U@@¼Vn@x@Vš@@VnUVx@blbXIVxU@Wl@@L™aW@kxƒLXVWVk@@U@VmLVŽ„L„bUVULVV‚lnLVxkV@nWV@bnKVVk@VL„VšÈVKšVVk„Unb@lm@@LVxUlVX@Vk„ƒJ@wkIÇ@kl@blVVVšzXllLUxlV@x@„UV@nƒ‚U@UImmUIUV™¯mVk@@V@VƒamnUKkm@@VƒIUJUaUUWLk@UJUI@xV@V„VWVnxƒLUômVV„@VkVVVUnV@UVkL@VVV@bVxla@bkXVJVn„`nU@bƒb@bVL@VnJ@„l@šV„aU@@_lW@UUU@Unƒlll@XLl@@UX@°bVWVanLlknVV@VVX@VVƒnUŽVLmbXJ@nllXX@`VXƒlmaXVWk@Wkƒw—J@„VL@J‚bnU@bn@@bVKUnVJVIVVVL²a@bV@@Vl@nUVakalmš„UL@VUL@V‚a@mXl@nK@UlK„L@Vl@@nkllb@š„Vnn@‚šnV„™V°l„šVInwlKXxlU°Žn@@ƒ‚I@UnVlakUJWkUK@anUWK@_ÞJ@U"],encodeOffsets:[[112399,26500]]}},{type:"Feature",id:"4514",properties:{name:"崇左市",cp:[107.3364,22.4725],childNum:7},geometry:{type:"Polygon",coordinates:["@@@JVzšl@V@Xn@ll@VlnX@@VWLnŽUVmUULVlUV@blnUlnXVV„K‚xnLlb@lnbU@Vn°KVV„I@WXUlI°VXb‚VVbnLVan@‚x„J@_nJ„a@wVwV@@a@IU@UU@WKXwWIXKmKUa„a@U‚UUUk@@Umm„albVUXVVKnL‚a@knƒWƒXImanÝV@„V‚LUx²blKl™nLVbklWbn@JÆIXJ‚IVaœ™ÆKlw²@lUnWWnK„UUK@k@mmU@mnUVaVU„b@lVXVXIWƒƒK@Lam@@KUwnƒWkkmVIV@Xal@@KV@VUnI@›„_UWWUkam@kkm@ka@mƒk@wkJWIUU@WXkW™XkWWLUUƒ@UakLƒW™XV±VIVWUU@anUWaUK@IU@Vak@@UUKWaƒ@m@ak@@wUkla@mUaUklakwVƒ¯¯@WWUkLkKmaƒ™kLUnV`UxWX@Jkn@bmlƒakkk@ƒb@l¯bm„ƒbJ›b@VXn„bVV@„ƒbƒJUkkKWVU@mœÛVUUW@UVUJWXkVkKmUL@WW@U„Vl@XXKW„XJ@XVlmbUxnnm@UlVnV@XVm¦VJb@šmLkKÇbXblVkn@l@bWnX`V@@IVV@ŽV„V°n@@_naÆVVbUVVbUJnzlVUl‚XkV@Vlx@X„VnxƒbƒKUK@b¯VVUV™L"],encodeOffsets:[[109227,23440]]}},{type:"Feature",id:"4513",properties:{name:"来宾市",cp:[109.7095,23.8403],childNum:6},geometry:{type:"Polygon",coordinates:["@@nVlw„@VJU„„IVVUšV°lU²V@„l¤Ub@bUV@b‚@„b@bUblšVa„KnLla@UnUWmXlJXUlKV@V_U±Van@V£nV‚I„yšU@K@kn@@LVK@k@mnVl@VU„LUxVJÈUVIU‚aVkXKVVUXJ˜In`@nnV@Vl@@„UbVnl`n@VL@LnKlVn¦VlôXV‚nz„@V`VL@llIœll@Vb„b@ƒmIXƒl@„l„IVJnbWXXJWb@IU‚nVVn@xlš@nVJ„I@W„U°LUaVUUaVJVIwlKUalKnb@UnLVWU_@KVK@_šKVa„@VKU¯VLVKn@la„aUkU@maVU„J@k™@Um@XmbkyVaUIUU@KV@laVn@KXKWUkUk@ƒaW™UUVw@aXKmƒVaUUkšmIƒlUU@wUa™xUmmU™¯™U@WƒLUmVIUym@UVmUa@wmw@çm@aWLU„™JUIUamKmL@™aƒx¯¥ƒkU¥U@±„k„UVmKU_mJUbkKm„ƒLÅǙ_@WWUXUmaVUkK™„UWW@nVxkUƒxmL@KkKmbUI@KƒLkƃbUbW@UbUJUXV`UnU¦mŽVVkxVLUL@llL@b@bkKVb@bU`m@knmaL@a›@@U—WVUƒU@amK@akkk@@b@lm„VL@VUVUbƒVVXUJUU@V@XV`lLUVVV@nnLƒJVbVlzUVVbVVnUVVU„"],encodeOffsets:[[111083,24599]]}},{type:"Feature",id:"4509",properties:{name:"玉林市",cp:[110.2148,22.3792],childNum:6},geometry:{type:"Polygon",coordinates:["@@VJUXVVXlWX@V™xVnX@@`ššULWŽUXÅbWK@mULUUmJ@n¯b@l@VULVx„x‚XU`VXXJVI„V@nm`@nUŽVXn@lWVn@b@Jn@nU@Lm`@Xn@WJƒ¦U@@VnL„lV@@Xl`nIlJnkVL„w@KVK@UšaVL@bVKX™lUUKVK@I„VšL„a@U@WšLUlVL@bU@@blb@VlbUxVbXUVJ@xVL„U„lV@VU„bVLnKl„XJ@L‚b@an@VanL@`VLšKV_UWl@U_„a@WVInlVUUUVm@I@W@wVakIWm@U@ƒXwlaVbnI@ƒm»Va@aXaVLšU„»@aVa@k™KkL@KmU@WƒzUK@wU@VWUUVUUKUa@mKmbUK@_nWVaUkVaUaVUVLXKVƒVUVmVI@UkKkLm`UkW@UwWW_„UaU@WakXmK@xUXƒJkƒUUWUk@Wl—mJ@km@@aUKzmyVk„a@kkWVUU¯lmU@@w‚kkmV@Vk@mÅIƒ‚Ukƒaƒ@Ub@m@UUU`mUbWaWmb™X™XKWIXUWm@љ@y@UkIUJUUWLUWƒL@UkVUxW@kaWbKWnXxW¦n„m`XLVlUbVbUx™I@JmLUKUb@VW@@bkL@b@VlU@xkš@L@lƒxXxWXX°V@VVVbUVV@UVVbULVnVJUb²b‚aUb@VVVVInlV@VnXaVUšlI„VUb"],encodeOffsets:[[112478,22872]]}},{type:"Feature",id:"4504",properties:{name:"梧州市",cp:[110.9949,23.5052],childNum:6},geometry:{type:"Polygon",coordinates:["@@VbXblVlLXWln„wVV@VV@UnšWUXVbš‚@VWXa@kVK„UaVaVkšUlyX@Vaƒ—VmUwUaVU@UÈymI@aU°@š™nWV@VaVaw@IV@VmnLVK@kmmna@™„™VbVI@aV@XbW`U„„LUVVx„@VbUV@bl@VLXblJn¦lL„°°@n™@K@UlLnK„a°LWbnJ„¦UÒV„UllLlVnKnbWnn„V`„w‚@@Xa±™n™l@XKV_„WVkVa@kVyUa@wU£UW@UIVW‚@@a—wWaX_WKkVmUULmak@UJUI@±m»™—k@m»VyUIm™nmmwnkUmVaVIUn_mW@»Vk„@VwkmmUXa@IƒaVm—mƒ@Wm_U@mIUWóLmUk@laXmmkUK@UmKULUUmWULƒ@VakU™@Ub@bƒ¼™VUKWb@bUbn¼@„mJUakbWx@„@VXnlJUb@x@X@JUnVVUVmkUJ@XƒbV`k@VXU`™LUK@_mKUbm@@b@„U`@nlV@b„UnbVbn@@`VbUbVV¯bm@@mJXb@bVnUllVXUlbUl@LU¦VVmŽkLVb@b™l@V@XlK@V@nUJUz„°mށwmLmlXbWVU@UUUlƒIU@VVmV@@¦‚bXbWxX„WlXVWL@LUmkbU@@LVVVJUblzna@WVnš@@lƒIUVnbV@Vlƒbkbm@ULUKV°ULƒ@"],encodeOffsets:[[112973,24863]]}},{type:"Feature",id:"4511",properties:{name:"贺州市",cp:[111.3135,24.4006],childNum:4},geometry:{type:"Polygon",coordinates:["@@nL@xn@lKVkšwn@„alLlaXV@„lx„bVWV@aUa@aUk@mVUnVl„XL@JV@VxVIVƒX@„b@bl@@`ÇnXVlI@l„xUnlVVLkllV„@nmJUxnzWJ@VXLlŽšLVxnL@l„LlŽVI@V@lUnl¤Uz™Kš@„Vl@š„L‚l„Lnš‚b@VnVVU@k„a‚Knxn@VkVJ@ńUlakmWIUaVanm@_UK@UVWUa@klXam™U@Vmƒ™VIXW„@lUVknVlKVLXŽVXšW@b@VlšnnVL@KXL‚Kn@lb@UnW°@Va„X„WVb°aVa@I¯aUkUaVKVwƒaXk@a„a‚™@wkm@alanUVw@alK@Umkw@UƒaUmU@WXUaUK@UW@UaVWI@¥Xa@w@WWšVƒXwƒU@mKUXUWVU@a¯kl@akU@UULmK¯VUVW@U_m`U@@xVbUz@lUbUlƒXU`WLk@mš²šWb@ށ@ƒxU_mƒXmmamLkUkKVkUƒVу¥mIXa¯KƒbmLkK@V@Lmš¯@ƒ¯kKm¥kIWaUKk@@aVUUaƒ@UwVUƒKVƒX_WaU@@bUJUaƒš@šmbnn@lULmKUnU@@J‚xUbUbU@mX™š¯@VŽ@bnJÇz@VUVVbVxUn„˜UbW@kz™VUlUbVbƒŽUL@lWb"],encodeOffsets:[[113220,24947]]}},{type:"Feature",id:"4507",properties:{name:"钦州市",cp:[109.0283,22.0935],childNum:3},geometry:{type:"Polygon",coordinates:["@@@IlVVlnL‚@œxla„al@n„VLlx@x@bXnV@@`mXX`lbnaVL@blV@b„wnx‚I@xXJ°nK‚l„š@lbnKnblUVanKVb„@lUnJVI„VUb@V‚U@m„L@Ul@Xw„llVVXV@lVnlVn„l@XVlK„@@_VWVxX@lb„U„nV@@JlbnIlmnVV@UwVK@U@k°a@mnIVVVK@nXLÆaVWXVK™™@_W@Umšw@UXWWkUUVWUIVaƒUkJ™UVWbUmU@mkUJUU@UVab±aVaUIUmVKUaVUU@VUUaUUU@W¯XWWw„w@k@Kl™@wkV@U@alK@aX@@UmIUWUIƒ@mmkXU`U_WJUnUJmUk@@amLU@UVW@UkU@@VƒbUWVUk@@wmKkUWLUWX@JmIƒlUkkKWKkLWU@UKWa@bU@@a@_UKWƒUUUmJmw@nV_@ġğKóLmbU¼VÆ@xUXƒ@Um@wklVnUn›lkaUV@„lV²WVklWXXbWlkVkIm`UUƒLƒUU@UWƒx@XU@@lWLU@kbUbV`UXllUV@bmb@LnKVbULm‚šnVVIV`X@"],encodeOffsets:[[110881,22742]]}},{type:"Feature",id:"4508",properties:{name:"贵港市",cp:[109.9402,23.3459],childNum:3},geometry:{type:"Polygon",coordinates:["@@n@VzUJ‚nVŽ„K@XšVš°nVVnšwVb@xVV„knJl™VVUbn„WL@bUxVVXš„bl@lVXkWƒXwWaa@¥‚@nUUUV@„JVkVVV@XUWanknK‚xnƒ¯VyVI@m@UkL@W@Ušk@aUalKnUUV¥@KVkkaWVkUVkUm@aWanI@n@°aUUVaUa@_m@UamaƒV@akU@mV_@ƒa@KWIkƒmLUKƒaUVU@ƒkƒVUK@wUIWVUaVwka@Uka@aV@@aUKVk™K@X@Vƒb™KƒU@JULVLkVWšUL@aUK™b@VUL@LƒxUKmlkImJk_@WU@ƒkmK@UV@„¥XIm@@Wn_@KmVm@@I@aUmkXm@UWV@mn_@mƒUUJWIUWV_WƒwU@mUknVVmxU@@VUV@zU@UVW@ƒK@šX@VLUVƒKƒz@J@VnX@`±bUXVƒ¼™lšn@xmxÝL@‚Ubn°@XWVUxUVVnkbWVXV@Xš`ÆÈ„KnƒlLVanIV`nLVUlƒ²ƒV@V¦„l°¦„w‚b@šnKnLVbVJšIVƒXK@b‚n@ènx@xVbUnV‚"],encodeOffsets:[[112568,24255]]}},{type:"Feature",id:"4506",properties:{name:"防城港市",cp:[108.0505,21.9287],childNum:3},geometry:{type:"Polygon",coordinates:["@@XV@X°°U„lxkbVlVb@nkbVl@xl@@b@n„‚XbVL@Vl@UbV@@JVLXbmV@bVVUXUJU²šW„XlKVb„@VVXKlXšWlXXWV@VXJlI@x„l@nlbn@lln@lbXalIVK@ƒVwœUVb‚U@aXylUX@@aW@U_UJmU™nVKUamL@Kna@aVUkkVWU_ValaV@XK@kV@@W„wVXV@„V„KVVn_lJlUXkWaXWlkXU‚±kU@ƒVUlbœkVmUmlk™¯Ý™™W@mb@¦VxULm™kJUU@ma¯wƒmkX@VóJ±bUVUXÝWk™lWXXlƒxUaƒbƒIğ™Ç@U@mVUKkkm@UJm@XnWV@x"],encodeOffsets:[[110070,22174]]}},{type:"Feature",id:"4505",properties:{name:"北海市",cp:[109.314,21.6211],childNum:2},geometry:{type:"Polygon",coordinates:["@@VaVLnK@IšJVwUaVaUkWKn_mƒX¥WwXm‚LXalbU£UyV„Å@ݙwm@™°l›LÅUƒmk™mwÛaƑLÝUUm@ȣƃV_„Ó@£UƒƒUVƒ„™¼U°W̄™ÞVbXbôx@b@bmV@ǃ™UÝ@@ĢU`m@ŽnxnIVV‚VX„VL@`@bV@@aXbVL‚@XVlKXLlLVl„knJ@I‚WVXXKlVnL@xl@UVVX„a@UV@VlX@VUV@nK@bl@nVVIVmXIV`V_lWnn„@VJVXnJ"],encodeOffsets:[[112242,22444]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/gui_zhou_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"5203",properties:{name:"遵义市",cp:[106.908,28.1744],childNum:14},geometry:{type:"MultiPolygon",coordinates:[["@@@UnUlJn„w‚JU°VL@bnVšU„wlJ@XƒŽXVlU@klVUJknl„UllL@bUJ@xULUlƒ„UblVkblbnw‚UXmla@„wV@VK@L@UXaVKVLXWƒUVa@U@Im@@W@£UKUakKWIXU@al@@llUnL@W@Un@@VlUV@VIUanKl@Xb@lmxVb@b°bb@nlJVVnnJ@b@L‚V@ln„@LmV@Vx@blnVK„nlJXIlw„J@҄b@nlK@Un@UL@VVVVUUUVK„l„@VUVL„J@UVUUw„@Wm@™„UV„ÈVlbUb@JšLlŽX@@x„„ƒLmŽk@@nlx@bUJUzVJ„@@LVxUV@bWxnLnVVK@_‚K²xVbV@n¥@aVI@b„@l@Va„Knb@n‚`n„mmý„W@ƒU_šwV@VlVV@Vn@n„˜@nI@Jn@°¦VaUU@™„mVVWVaUńU@aVKnƒVbVUmmU@a@kUw™m@aUUmUUJ¯lakU‚aXaWUUaVƒkk„amkmUnVlULƒVlJ@XU@UJWUUw„k@aU@WbkWƒL@U@WU@@XUKmV@aUVwUĕUJUamUUVUÑm™nIVJ@kl@XalJVn@KVLœ¥@UWIXWmU@mVUKnUWLUKUaWUUKVU@U@anUny@UlUkK@w@a@aVUƒ»UkVw@Wmk—JƒÅmUUVmwXalLXWWUnam@XkƒJ@UVU@U@W„@@U@I@Wl@Ènlw@KXLWb„lVUkalKUU„VVaV@@wnIlaUmkUƒKWU@KkUkLWaƒKUUWUn@VƒK@LnnWJUIƒVkUWVnV@V™@@XƒK@VUIUJ@IWJkX@VVJ™IƒVkK@I@UVaUWk@m„@wnUWKk@mxk@@„lV@b„xmb@x@VUmLkUƒJ@nVV@b@VkLVbU`¯I›l@™U_UW@UU@™™ƒK¯wm@™xƒL¯¥kIƒ™ƒ‚@bkbƒ@Ua@ƒm@kkW@XVbmV@ŽkV@bWbUbV@„¦ƒxXlmVk@ƒ¦™bkaWL@KUImK@wUK@VUI™b@bmK@LÅy@akXW@kbWlXblL@ŽULUbƒ`@U™kUymX¯@mšUJUUJƒL@Lm@@WX@lU„VlšXll„@l@Èk°V°Ž„X@VU@UVll@XUJVXUVm@@VXLWlnV@Xƒšk@mVULnxV@@bm‚kL@VWLUbU@UVm@ƒb@ķ¥UnmJ@UUVƒkkJUšlÔU`UIW@ƒ°kLUlUI@WVI™U@mWKkXk@ƒ‚WU@bXšW„@J@xX@l@LVl@xšLVxXX@x‚KnxVknb‚KVV@U„L„WlXU`@nUlšX@llVXšVU„KlkUKlI@anKVLXKVaUIVWV_VK@VnLlU„»VKVL„m"],["@@@KlKkUUVVX"]], -encodeOffsets:[[[108799,29239]],[[110532,27822]]]}},{type:"Feature",id:"5226",properties:{name:"黔东南苗族侗族自治州",cp:[108.4241,26.4166],childNum:17},geometry:{type:"MultiPolygon",coordinates:[["@@VV@XkV@bUbWJU¼Vb@Vnb@bš„@J@bƒL@LV@UVƒlUI@a™KULVb@bkJmx„šlLVxknVJk„‚xnKmnnL@bn`WIXlWLU@UxVbUVmKV„XI@JVIVJ@U„L@Wš@@UmUXUlV„UVJXImm@K„L@UVmVXV‚„LXblKlV@LXV„LlVVnkbmJ@xnXl@šbXa‚@Vana„ÒšL„m‚VnIl‚Þ¦°k@b„@@lV„nJlUnš‚VX_„@lVlK„šV„UUxVLVWVIXJšUlnnWlI@KUaUUVKn@VaVXV@na@ƒmw¯@mUkJUamI@lk@@am@@I„ƒUmVImUUw˜™@anUVaUU@LU@WaWUXWW„wV@VwnU@L@ynbl@@X@a„J@nW@@Vn@„lVLlxnI„lš@@UWKUƒnIlJXIVllIVVš¼XK@aVI„V‚@@bn@VKXLVKVVVInw„J@UWI@mX@WKnI@KmU„UVJUL@V„KW@@k„@aU@@W@InJWUXwWI@Wƒ@¯wkaVaUIl@nŽValIXWWI@UUm@anwWkXWWIUbk@UJmIUamKVUUUVVama¯VkIVVUlKnXVwX@@WVaUUVa@IlƒaVmƒkna›wk™UU@ƒU@mUVƒšUVwœl°LVbnJVU™¯la@mX@@UWKXU@aV_V@@JlkUƒ¯@V™nK@km¯k„U@ƒWUW@mmƒU@™kmlU@wkL@WƒUkL@VmLƒJ@b@V@bknUUVK@UVKUK@Uk@Wa@LUVVnUbmVk@@UU@@aƒV¯K@U@UU@WmUL@aU@WV—w@ƒ˜I„xXll@UX‚K@KXXVJna@wWaƒ£naUKV„m@UU@mUmalm@@XkVm@U@VƒLmWU@kkWxU@@bVV@VkXVlƒVƒ@UUk@@ƒmI@KUw„m@UmVƒUUwU@lwkV@IUa@mUaVIVKVa@w@U@™UJkb@n@bmJ@XmlVUxWXkJmUkUUVW™xUlU@ƒaULUšmbU@@‚WXkmƒL@xUV@nUxÇm@„XLWbnlƒnV‚nnUV˜U‚nVVz„@lbUVVlULVb@V@nUJkwm@Ux@bWbUK@UULka›JbƒU™U@U@lUK@XUJmn™J@bU@UwWa™x@zkJWnUJUUVšVV@bXn@xVb@J™L™m@X™w@`@bkb@VmXUV¯L@mW@@n@V@‚ƒL@K—IW@@aƒaUx¯@U„m@XbW@@L„V@bnVWVkKUzlV@bÆa@lnI@VV@@LnVVKUaV_VJVbnU@bn@‚‚nX@yVIVxXKVLlUVaXU°J","@@@KlKkUUVVX"],["@@UUVUkUmV@ln@VXVK@K"]],encodeOffsets:[[[110318,27214],[110532,27822]],[[112219,27394]]]}},{type:"Feature",id:"5224",properties:{name:"毕节地区",cp:[105.1611,27.0648],childNum:8},geometry:{type:"Polygon",coordinates:["@@UkVƒ@k‚W@Xn@@K„KVIVVIn™°@nWVzšl@V„_VaVK@kKWaXklaX@lW@bÆz@KnL@ašaVJ@UVL@xnLVJ@LXKlbša„¥l@nUWk„wƒ¥U@VaXa@amLkUƒKmƒ¯kƒmkIUaƒKUIWƒkKm@anw@mlwXIƒmƒUk¯@a@amUƒ`kkKWVkxmUUak_mJmw@w„mXUW¯X›_@WnI@aVwkWWýŃU@WLkU™aUbVV@lUVVnm@kUmV¯™kK™LƒwmVUUaWV™aaWw¯wƒÈ@VULUVUUƒK@nWJkI™l@Umxnbm@kbUJƒa¯bUbVxmLUV™aU@VUUWxkVVV@bUV@XWbnlUbƒbUJlbUV¯b@z„`WbXnmbƒaƒwUwVWUƒbUxmbU@Uam™@Vƒk™VaƒwVaUƒWI@mUKóz@lUlÅ@WIƒb@xXxml@XklULWKUmwUa¯KUXWJkaULmKkLWbkKUVƒImƒƒWa@kUaULƒW¯LƒK¯@kbƒL@b™x@J@bmnnlUšlzU`U@@Uƒb@„m‚n¦°bU„Vx@bkVm¼mx@mk™mVV@bkxVn„aVV@bU@mL@b²`lIVV@lXLlš„bVxn@@bl@XllIVšnbVšn°°wlbXw@mVa°lVnU@mš™VLVbn@@b„@@WVnUV@Xlxn`VznJVb@L@bV`V@šUnwšU„@WUXKV@UUlmUUlaXalLšm„bšIVbnJVIlVVaUUnWVXn‚VL‚k@ƒnWnblnlb²x„xVKVXlVXLVW„LlUVJna@wVL„¼@JVX@`@nnx@nWJU@Vx@XXKšŽUblxUš°„LVKVVlL@KnbVUnJ„IlUšƒnKl£VW„x„IlJ@nšVÞUVVnb‚VX@V_°lnK","@@@UmWUwkU@Um@@VkL@V@„„‚V„VkV@nbVa@ƒ"],encodeOffsets:[[108552,28412],[107213,27445]]}},{type:"Feature",id:"5227",properties:{name:"黔南布依族苗族自治州",cp:[107.2485,25.8398],childNum:12},geometry:{type:"Polygon",coordinates:["@@‚V@IöalK@UV@@KUaVIVVœLlaVbVWnX@‚@LnUlxl@naVLXVVaVU„J@lUUanWWI„@VlV@Xbƒb@V„n@VmVVbk@kU@V›V@X„J@zn`ULW@kK@_WVUK@LUb@Jlxn@nnWlU@@b„x@XVVU@UbVb‚@n`VI@VVLUlUIUV@KmL@VV@XIV@@lVLVmXV„@WLXLW@U`šnkb@Vl@UL@VVV„L„llX@`lIXb„J˜IXW„L‚aVL@ŽXXW‚Ģ™b@bmK@L@°@Vnxmxšn„K@xVn@VkL@V™Lƒakbl`VnnxVnUlššV@@VVXV`@šœk°JV_UalK@U@aUU@m„IlVnK‚V@U@wnaƒw@akU@ƒl@nwl@XLmV@xnƒl@VXUb@V@JlL„UšJUI@UlWUƒnLVUUaVwV@XKWkXJm_@amKnmmLwlƒUIlmUwkKƒ™nwlI@aUaVKšL@bVJ„kVUU@@K„K@a@I™ƒ@ama@UUaV»XIVa@alU@WUU¯IWVUbkVUKWLUwUJ@zmWm@@amVUaUIU`VbULmU@KU@@UmJ@kÅb@akUVylLXUmU@aƒU@KX@Wan@Vƒ°@Vw„b@bX@˜J@L„K@@U@mX@@n°KVUnW@Ula@a@_šx@WšnšK@IUa@wWm@aUUU™VVVIXmlI@yšwXbVxV@@ašInmVI@WVL@k@VšV„V‚aœIlbVK@VVLXa@aVwn@lxVI@m@UUaVKUkVUkaƒ@UymUV—VUmmU„mmkXaWK@ƒÈnVw@mVU@w„KlnXW@V@naV™VKUk@KVIUWƒ@mk@KXU@Um@@lVƒk@UVJna@UWaƒL@a@ƒXa@kmmVUUk@mkkƒamJ—ImJUUmIm±aUUkambkamVUU@VlbUbVVƒxX„WVUU@VUakU@UmUV‚U@mnUVVnUbVJ@b—UW¥kLVamVkUaWJU_UVWKk@@nl„UVVJUXm@Vm@UnVlmbnmJUbULU@@UUKWVIWxnJVb@xUL@bUJWIkxƒbkb@xVJƒbmU@kW±LkKUkVa@a¯am¥ULkalÑlKXUWƒXƒaVakImVƒ@ka@UUƒJ¯aƒX™mmb—KWU@wUUƒaUa™KmU@UXlWb—¼WLUKUb°„UlVbkbVL@VƒšƒJ@nVlUbUXmJ@VX@lbUbU@@bWb@VnLVJ@bVVUz„ŽVL@lnL@b™VVVULmKUk™Jkbm@ƒxVb@V—kƒKVnnV@b@ŽWXU‚„nV„l‚VVXVJUXlVXbWV@VU@Ubk@@KWbUUmL@JnXV°XJ@_‚`UbkXVVlÆkbƒ@VLXVV@‚V@k„KXX@`V@@n"],encodeOffsets:[[108912,26905]]}},{type:"Feature",id:"5222",properties:{name:"铜仁地区",cp:[108.6218,28.0096],childNum:10},geometry:{type:"Polygon",coordinates:["@@°a@aÈbVUlU@aVKnVV„VUlyX¹lWVa@U™VƒnUVU@m™@mUl@„mÞw„@‚xnIVbna@KVI‚J@kwV¥ƒUXÇVkVW@kkKWU@aXUWmnIVa°VXbmL@VVbnVVVUb™VbšJVbVKXkVKVanU@aWnWUWa@U™nk@mVIVK@wXxlLXbVJVlKœbl@VI@mšaXalVV„VbX@@ašalnkx@b@V‚b@Vnx@bVVUXn¤WXn@Vl@Vlzn@š`@I@KUU@ƒV£namVkXa@aVK‚nnU@anVlKƒa@UUU@amk@»kƒU¯@aš„VWnkWmkImU@akaVm@»VUV@UKnkW¯XWlkUKnIWaš@nmlIXmWUnwUwWm@wULmaUJkIUaƒaWa—klwkwmJmU@bkJ@XUJ¯W@XbWbUKUkWJUUVKnn@UmmXUWa@mU@@UI@WmXVykwm@kaULWwU@¯ƒlKUUVU@mU@UkmaUbmV@b—š‚xVnVUJVnƒ„@Jn@@bl@@knJVblInV°@nx@„mbU@UWUbm@ULVVVb@LkJmXkm™VWIUJUXUKVwƒV™UƒŽkLkUƒ@W`Um™kVmIUƒ@kƒ@@a¯lÝ¥kmJUƒn™KƒÑmbUb@Wb™ak@mWU@UbƒUVVkLlbUVƒkXaWK@LkxÇmk@@X@J@Vƒ@@X@VUV@V„IWln@mbXVWXkKWbnxVUnV„ƘInl@XUxVl„¼UV@b@b@xlLkV@VmzmV@b@VUVVLXVVbVLXKmVVLU‚@nnVWXXJ@V›¦UK@LUmkIWbk@@lUImJnšVÒVUnVVbVIVĖUxV‚@bnUVL@WV@@X@V„KlXXaV@@bƒlVxXVVIV@@WkI„UVKUkVmlnnŽƒbllU„VbXVWbblVkb°ŽVInVVV@bšnVx@l@bnVVnUŽUam„UL@bƒVVÆUbUXU‚ƒn@šVVUb"],encodeOffsets:[[110667,29785]]}},{type:"Feature",id:"5223",properties:{name:"黔西南布依族苗族自治州",cp:[105.5347,25.3949],childNum:8},geometry:{type:"Polygon",coordinates:["@@VL@Vl@@IXW@kVUVbnW@XlKVVnU„VlL@b„aVbƒb@xX‚°ÔUxV@kbm@VxkxWJœ„V¦ƒŽ@ÈnšVKšxWXJmV@n„Ò@xVbn@@blLk`VX@bššla²JVUlnn@U±lw@wnw@mlwVIX@@m@klKnk‚a„KnwmmXkƍVm„Uš¥l@nb°n@„aVwVmVIVnI@a„¯@mšU°ƒl@@VnI@JV@UV@b@IUbVJmXöºƒzllUbVa@aXUl@„U@llLnKVaUa@UmK@UšwV„bnKV@VwVK@UXƒV@Vbn@‚w@U„WnX‚@„a@m„I„™@UUKlaUaVk¯ƒVaVLXK˜»XaWk¯mƒkğwmW@mIƒVkwƒJUIšÇVwU™UkVKkƒm@UkmU@WÅwm£Vƒ„m¤¯IkJWa™_™lUbmJzÝJk„ƒUÇVU„ƒ‚@bU„Ýn™m¯LUb@`mL@VkL@VƒUmmk@UU±Umka@kUƒ@ķymUkk@mmkÝmUaUakImV@V@VÅLƒ¦ƒJUXmJXšWb@n°Æœx‚¼nV@LlbUŽUbmL¯@ÞbV¤nbVx@bUVlblIœ™@KVVUnVJUn@VlLUlmLUUUxmK@I@@VW@@bU@UJmUkLVVUl@b@V"],encodeOffsets:[[107157,25965]]}},{type:"Feature",id:"5202",properties:{name:"六盘水市",cp:[104.7546,26.0925],childNum:5},geometry:{type:"MultiPolygon",coordinates:[["@@ôyVL@nXJV„Ub„x‚bUŽlšU„@ŽšnŽVbV@naVw„a‚VUXVx„x„bnaWmXaƒ_@y°aVUkaVI„aVamkXa@WVU@aUUlUXwVV@UVšbVUnKUwVa°a„bVIlan@manw@VšklJXI@m„LVVVUVK@U„ǃk@KUa@UkaVU@UVWV_XWVXVWlLXKlLXaÆKšwVL@akKm@Uwƒ@@XUVk@VUI@wWK@aUV™I@UkK@ƒmL™Wƒ@kImJƒUÅVmkXUW@UJkx@nmx@xkxV²m@kmUV±Ikb™™@aUWl_kK@am@Ua@wƒÑ@mnUWIX™wULm™@DŽU¥›ƒXIlwUwn@laU@Vw¯ÓW@w„aUaƒb@akKƒUmVUUkL@WmXUaUV@lWX@Jk@@UUKULmLUJmzkKmVX°VšUnWKUL™ƒƒL@mU@UnVJ@b@„UV@Xƒ`m_@l@@bmbXJmnnš@°˜wnn@ŽVLX@V‚@nVl@nk@@b‚l@nn°WlXzW`XXVKnUlxVbUb@‚V„Xb@Ž‚VxÈbVlnbmn@ŽkVUL@„ƒŽmLUVVL"],["@@@ƒ@UmWUwkU@Um@@VkL@V@„„‚@„V@VkV@nbVa"]],encodeOffsets:[[[107089,27181]],[[107213,27479]]]}},{type:"Feature",id:"5204",properties:{name:"安顺市",cp:[105.9082,25.9882],childNum:6},geometry:{type:"Polygon",coordinates:["@@lL@bUK™xÅLWbkKWLkKUXUWWXU`UX@VUVlb@VVb@L„l°xXx‚bšbXUVb‚VnU„xšKlL°šnUlVn@UmVU@kUUVašblVXKV@ƄXþlXUxnU@mVK@_@ml@UU„@šblU@KnLVyUw„@@UmkšWVw@UVK@VXzVK@n„VVUUW@kVJnlaš@nKW™kaWL@U—™õb@JU@mU@@_WWƒL@lUU@WUUK„@lakÅUUlWVa_@`WIU¯mW@InKVVXa@Ll@VaV@@UXUWakUVWUIUW‚UkUƒƒmVXW@@amUUm„L˜l@UUa„wn@lašIVlnLVKUUšU@amK@kUKƒVyUU@aUImK@UXa@aV@VakaW@@UnIVWVaUkƒb@mWƒX@Vxm@UaU@W„@VULUxU@mLƒaUŽ™x@VnL@VVbUbmLkK@kƒVk@WV@bUbVakk„yõ¹nWUIVa@J@aVUU@@ImJ@Uk@¯„™V@nƒ°@bmJUUJUnUxƒbm@¯Žmak@™¦ƒVUnŎWlnnmxƒLbmlkL@l@nWVnlÆU„VnIlJ„@šXnK@„lL@VšJVU@bXL@xVJUl@VU@W„@Vxn@"],encodeOffsets:[[108237,26792]]}},{type:"Feature",id:"5201",properties:{name:"贵阳市",cp:[106.6992,26.7682],childNum:5},geometry:{type:"Polygon",coordinates:["@@nŽlLX„VJ„LVblJ„n°ln„„LlVnKlU@nUUa@WlX@l„n@‚Vb„@la@a„„šlJ°¦„Kšwn@°x„LVkUmmwUmk_la„bšK@UlK@UUm@wƒL™mnwmw@U@¯@KnL@aša‚ġXWW@UKbƒKWX—JƒIWakJ@_kWƒkƒKUU@UVKk@@Ula™mV_X@WKXKƒ@WUUnUK@kU@WJU@@UnK@LVUVJVkUK@UUJm_@UaVaV@UU@Wƒw@aV@Xkmmm@kw@IVa@KVLXU@`lLX@VKm_@yƒI@WœU@UlVl@UanU@Uƒm@U„aWaU@Ukƒ@XJmXVbkV@ŽƒIUVUbWUUKmbk@kwmV@K@mWUXUakb›KUUUJVb@LU@@VkL˜š@VXKlbXšmL™@kbm‚UI@lVXUVƒU@mULWy@UUL@VUx™Xnl@Vƒ@VxUzmK@LkV™aƒ@VVk@@n@`UL@nmV@bmJ@Xœ`WX°WVƒn@xnxnIl`VbnVlwXUlLl‚„_nV@b@bl°„V„nWJkx@nmx@b"],encodeOffsets:[[108945,27760]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/hai_nan_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"469003",properties:{name:"儋州市",cp:[109.3291,19.5653],childNum:1},geometry:{type:"Polygon",coordinates:["@@஼jpnr’``ŽpRVHʘ̤žZt^JÖA˜[†CâlTébQhRPOhMBcRSQiROE[FYdGNOEIH]MgEAMLLIAG_WMCSL@ED]PCLYC[ZIHgjSxJTMbHNEFCMEE_HSDFHSLECRNSFDRICHNADGPI\\RZGIJTIAHLDQOHG`GTNCOIC@eIGDWHIS[kiE[FMbECZS@KKS[FDWsCeRuU_DUQNOE[LKGUBM¨EDQP@HWHGDImXƒCog_~‹I_fGDG|QDUWKBC\\ore|}[KLsISBHVXHCN`lNdQLOnFJSXcUEJMCKSHOUMDIm_‹DI`kNDIGEYFM\\YPEEIPMSGLIKOVAU_EBGQ@CIk`WGGDUM_XcIOLCJphHT_NCISG_R@V]\\OjSGAQSAKF]@q^mGFKSW^cQUC[]T}SGD@^_ˆaRUTO@OHATŸ”"],encodeOffsets:[[111506,20018]]}},{type:"Feature",id:"469005",properties:{name:"文昌市",cp:[110.8905,19.7823],childNum:1},geometry:{type:"Polygon",coordinates:["@@€hIJ¤Ī¯LQDaFßL[VQìw€G‚F~Z^Ab[€¹ZYöpFº lN®D´INQQk]U‘[GSU©S_­c‹}aoSiA£cŁ¡©EiQeU­qWoESKSSOmwŸćõWkàmJMAAMMCWHGoM]gA[FGZLZCTURFNBncVOXCdGB@TSbk\\gDOKMNKWQHIvXDJ\\VDTXPERHJMFNj@OwX@LOTGzL^GHN^@RPHPE^KTDhhtBjZL[Pg@MNGLEdHV[HbRb@JHEV_NKLBRTPZhERHJcH^HDRlZJOPGdDJPOpXTETaV[GOZXTARQTRLBLWDa^QAF`ENUPBP…\\Eji`yºEvåà"],encodeOffsets:[[113115,20665]]}},{type:"Feature",id:"469033",properties:{name:"乐东黎族自治县",cp:[109.0283,18.6301],childNum:1},geometry:{type:"Polygon",coordinates:["@@ªVLP`@PEdNRAHOPEAKHEVL`GZBJfvdTAXNNTZJFPrHHNpKTD\\ILHbEVd^J‚OHLh@NNBnHP`\\xH@NBRLJTlŽNv_^CTLd@bNDVFbxdFV€UPBTKOGEOUO@OEBXQP[H_EI\\EbeYa@UO_J‹MEJ_IEDKJUGMDcNUd_FMTEJSGoZ]EIYGO[YW‘gEQ]a@WHEDQKUSDUGAbYBUpSCYNiWqOSQEoF[UcQISWWNMSDe_cLQ_UBiKQOOASQAWgS­ā]ZaŽSPÝZ]XMXSŒ[^oVËNgNKlE RôEø"],encodeOffsets:[[111263,19164]]}},{type:"Feature",id:"4602",properties:{name:"三亚市",cp:[109.3716,18.3698],childNum:1},geometry:{type:"Polygon",coordinates:["@@®ĂhTBXTRPBRPjLVAR`dKf`TC‚NXMTXRJVdE\\FpTRrPjXZMTDVoZABaVHTCLVCRGF@X^bFR’hZXP\\ZHHMA[^wBWXJlW¤EJ[bCTOF‹WWMm@ILMGWQ@DQ^QNWFSHEbF`OXNbO„VNKTEPDTLTCCVTREfvfEHNbRAENH^RJXCFHNFRpVGHWISDOTMVCZeGamaLoLÛD¹¹ėgsia{OųE—Tt‰lɂwr}jŸR±E{L}j]HąKÃT[P"],encodeOffsets:[[111547,18737]]}},{type:"Feature",id:"469036",properties:{name:"琼中黎族苗族自治县",cp:[109.8413,19.0736],childNum:1},geometry:{type:"Polygon",coordinates:["@@bRFnHNbHŒgN@NPEnbXP@bND`NT\\@\\QZb@`@J]V@XhžDpW„nCJGHGXO@CR§FANHVKLF\\MPVR`CvVfQtDPKpGHG@S`WJP~^dSTHWX\\RHTFACQTIAUPOU@MG__IaYSFQK‘NSbORHXCZeTFJg„B`YBMNMFi~IVDV[tGJWXGDQRGF]ˆJrALgESLSAYDGIaFeXQLS\\MKSLSQYJY}eKO[EHiGSaK[Yw[bmdURgEK^_kcSGEOHKIAS]aFSU@Y]IWFUTYlkP_CUOUEkmYbSQK@EMWUuAU\\M@EpK^_ZMDQ^OXwC_ZODBrERURGVVZ\\DTXcFWNIAWJWAYUUFYEWLQQaCIZeDM`cLKRGpanJZQd"],encodeOffsets:[[112153,19488]]}},{type:"Feature",id:"469007",properties:{name:"东方市",cp:[108.8498,19.0414],childNum:1},geometry:{type:"Polygon",coordinates:["@@ºŸx‹JYZQ”IŠYXLl@dR\\WZEn]bA\\S~F`KXaDeTiNO^EEKWEDQXITBXaWaDQMUJOIaTWf@NJV@dSxGZ‰Fu_@WMKAUˆ}AQ@MwG_[GOAmMMg@GKP]IUcaFKG[JSCoLGMqGEOYIMSWMSBucIeYA_HUKGFBLOFGPQBcMOF_@KO©UAtERadwZQ\\@ÊJÒgòUĪRlR°KĮVŽLJ"],encodeOffsets:[[111208,19833]]}},{type:"Feature",id:"4601",properties:{name:"海口市",cp:[110.3893,19.8516],childNum:1},geometry:{type:"Polygon",coordinates:["@@ńZƂt̬æßFuz¹j_Fi†[AOVOFME_RBb]XCAKQKRSBQWSPY\\HbUFSWSPoIOcCOHIPkYCQ]GdGGIFQYgSOAQLK`MFUIGa@aQ\\GGUFcHKNMh@\\OYKAigsCgLSF]GOQO]@GM]HyKSHKPW@Pxi@EMINYREXWRQ@MQcFGWIAwXGRH\\yDI`KJIdOCGRNPNtd\\UTMbQYi@]JeYOWaL[EcICMUJqWGDNZEXGJWFEXNbZRELFV]XQbAZFrYVUBCLNFCHmJaMIDDHXHEhQNXZ_TARFHVB@DTQIRR@YHAJVnAbKFUEMLd\\c^ÍÞ"],encodeOffsets:[[112711,20572]]}},{type:"Feature",id:"469006",properties:{name:"万宁市",cp:[110.3137,18.8388],childNum:1},geometry:{type:"Polygon",coordinates:["@@^J@ZTVbET^JBGLFPTHld]`FLQhcVanx\\\\ZbLHTGj\\FLP~fIZRZPVTQFSVAFJE^NDLEE[~LjsxVTG\\NZZNGlLRRGLJTV@hPZANN^@T\\NEPPbDZXO`d^HSvcJDIV\\XZAJUFCLNP@PQ¤@[ïKLÑIÏ]ÇE±I{uƒ­YśUćFcYUmsVeBSVgB[RO@aYYPO^]@UVaNeDShMLG\\EfFVE\\F`"],encodeOffsets:[[112657,19182]]}},{type:"Feature",id:"469027",properties:{name:"澄迈县",cp:[109.9937,19.7314],childNum:1},geometry:{type:"Polygon",coordinates:["@@T\\GJCXJH@fJDDPNCNJENN^NLHBNSx@DDYbBLLDRbjZTj@`XXTlG^Xr@PJLW\\WLTlWR@HDJTD@X_PO@STMDNTMVV@NLDM`M\\XM\\JNBH[PYZ‡úYzŸ`Ċ\\ÎÝd]c[NKVFLEBaUmBIZGQ@JQSR@CUAEGBQ`SWYRMFgWGCGJCbNnIDGMEDKVAZUEqBYRa^WEUFKYQMaFWXEHIFWMYHCrXVIIiaK@aMCUYNSIISTwXALKH@XWXIEIJQCG[IEQDE_XSBaa[AIPW@]RS[FWS[CD]PEBYNGFSaSyJG]@ugEUDQlGHiBKHUIoNSKqHFaPMICK]UUHIPDJMuCA[SCPIDIOILGAEmU[POPBVSJDREBGS[QXWSGcT}]IO_X@TGHoHOLCX\\ELT@LYTD‚aFENF\\lj"],encodeOffsets:[[112385,19987]]}},{type:"Feature",id:"469030",properties:{name:"白沙黎族自治县",cp:[109.3703,19.211],childNum:1},geometry:{type:"Polygon",coordinates:["@@D\\RV]dTXELnHr]^@LETBBRTHPi^[@U`QTHDJ`MGSogDIPKdJ`WVNHCXHl_DJR@AH`FBVPUJLHKNTJOFFZON[ZEHFCJlMJ_ŒCn`CJVNGPLTNDFIdVTWEIPmRKMc_kDMWGGUTAtJLK~\\f{pqD[LAVXRCH{HC`eŒJ`}@W^U@I@_Ya[R[@MSC_aMO@aWFmMOM@‹haGGMEmaQ[@MESHaIQJQ……MckBIw[AOSKKAMPSDSLOAV_@@`KJRbKRDfMdHZERgAWVsDMTUHqOUr@VQXTT@Tƒfg‚L^NH\\@heTCZaESNObHPƒHeZF\\X^ElM^F^"],encodeOffsets:[[111665,19890]]}},{type:"Feature",id:"469002",properties:{name:"琼海市",cp:[110.4208,19.224],childNum:1},geometry:{type:"Polygon",coordinates:["@@TP\\pATHTGlZDJGAQjE\\Rb@jVBDCN`JZ[NCNHNXbULPrP\\KNbMTLjJJRFP`“pNLZz^FLRHjVPZ@hxVKbHBHMNNJFRlLzGPnNHhIrHHADcPWdUAmEMVQDSKYHY\\EhBN^HpXGNDBNNBnIß‹Å_g{³So]ã@ORO@KMEDIVYB[WJUICudGTc]P_YWaCOOMFS[]@MMYBgOU@ISHKQQkKMHYY[MSHwUit}KF\\KFMCF]EIUBETSROUKTLT[NKTWREfJbCHBZKTFTKh"],encodeOffsets:[[112763,19595]]}},{type:"Feature",id:"469031",properties:{name:"昌江黎族自治县",cp:[109.0407,19.2137],childNum:1},geometry:{type:"Polygon",coordinates:["@@`ZĤd–`òüˆ˜ “BSPGP@VSbQ`‡@]HC~T^SE]N]FkW]E[fY„GGOPaTMbFDYfS@g[MGK]h„e@SSSRW@UVqrPVGNStCXUhBFQGYNcCeLQQaLI@_`@EUwcEaCUaMc@SK]Du`MSkKI‡~BVNL@X`‚EvYŠwHcTU@MIe@SXJbIPNVCRXbWbSAWJCRXFFL]FMPSjCfWb_L}E[TaBm^YF[XcQk@WK‰Z“JYRIZwŒ¹ "],encodeOffsets:[[111208,19833]]}},{type:"Feature",id:"469028",properties:{name:"临高县",cp:[109.6957,19.8063],childNum:1},geometry:{type:"Polygon",coordinates:["@@jD`hNd\\^dZädĒH´Op@ˆùZY\\OAGIMN[[W_NCNMKU@NUMSNCTSP@`O@WSCCI@GXQSkXKX[IK@OWqH]SkWW@_SiiYQaKCAKZaCCw@MTGAMKM]FMMIMDSM_HGHRPKCBGSJJIYH[QOJCHMBDGQJECMTDQKFGTCEGTF`NFEDMFaGSNwIiTGhYJD\\KZODC^@FTKND`XBHKJNKFBNhG^FJMPcHEZF\\QPRjQTAdgNOPgQaRSê"],encodeOffsets:[[112122,20431]]}},{type:"Feature",id:"469034",properties:{name:"陵水黎族自治县",cp:[109.9924,18.5415],childNum:1},geometry:{type:"Polygon",coordinates:["@@R]NC`YL]FoN@V[vBXVFNL@TRZalnVFVP`DlOZkVSXEE_F[EUFeH[NKTgfCbMVU^@P]ZObZP@\\QhATUfAtUasñiāEoI]eYǯ@aKmaeƒWuCºKÜKpnbHbYfUDSNCPJTRAHJTDJSfDNLHXC``VBNGTYCQDIXMDSP@xLNEFRNXBIpVNLXah@RgF@`qOML@LJNSPLbaHAh@Jdj"],encodeOffsets:[[112409,19261]]}},{type:"Feature",id:"469026",properties:{name:"屯昌县",cp:[110.0377,19.362],childNum:1},geometry:{type:"Polygon",coordinates:["@@\\OnVBFKHPJCJOJTDB\\vDINOCGJVVL^JDONEbrGTLpMVJLGjAHGRkVChF@vH^zIbTETMHAZOFC^\\DXT\\EffAP\\PdAV@UIYfS|S@YPICMeM@sC[_A]VQEwyHSMuNcAUlQJMVGMS@mVBZPFO\\CSFQK[LqDMACiUa@[QiFBRIHYCHkGSBS[oSOqB‡IE^QHCRWHIXsHU\\UC}JEjMNAN_ZƒAIhSEYfWDQGaPMTL’ERZTJb``NHV@"],encodeOffsets:[[112513,19852]]}},{type:"Feature",id:"469025",properties:{name:"定安县",cp:[110.3384,19.4698],childNum:1},geometry:{type:"Polygon",coordinates:["@@JjDNdJ\\FbKPXfZ^Ij@RZNaVSc[MsMOHQPDJcLIJ_zCG[HQxWJBHXdENRR@XQFWZQQGOFSWUCI[WCJuRGLXNMPLhCl[Ta@SqGgJMGOmyHkKEQMINMAGaGULgwY@UOGiKQ]EYyMK”oO_QEIIKiNSMa[LqOKOaVMWMGMDY\\_IKrL\\ERT[DEPYOUA@nNTUHINkRBVMdNvGTxzRF^U`BD\\@tfNDNOJ@Z{TeTJZ@VU€cB[OBOeeQT@^OXBJb\\AbWTF`RCJFH\\RDJIJFXW@WLGBKxWTSJJMTVZND@bbL"],encodeOffsets:[[112903,20139]]}},{type:"Feature",id:"469035",properties:{name:"保亭黎族苗族自治县",cp:[109.6284,18.6108],childNum:1},geometry:{type:"Polygon",coordinates:["@@FJp@fxpQ\\ApN\\GNPNBM`HLMrXLXj\\PEHnI@WUCEM\\GTc\\GZYHTPBHRCPTd€H\\K\\@HXi–BJILJJAVNTOZJNtFPC`YxDPWci@IBgbGKaTOIM@KNKrP@_hE@QbgKWUMJoWAQMFEKM@wTONCJWRCZDHSAM_UD_GWMKeCITSCGIQBGXUHQoMEEGWDQIG]FMQBMaFGueFeSQDUSDSKOCSFMLƒUaPWM_PaEGFETMX]RCRR@HXKN@JNnXXEŒSPaDI\\£FkXWIAX]xB\\GN"],encodeOffsets:[[112031,19071]]}},{type:"Feature",id:"469001",properties:{name:"五指山市",cp:[109.5282,18.8299],childNum:1},geometry:{type:"Polygon",coordinates:["@@TCNOLBTLBPx\\AJdl†NR†RIbJTGNF\\@RcIYbmHoLQdKN_fCJYbDRRXKZFVEZVXBXIJBXMdESW[CUYHUVQFQAqsEIMPYMSBUIIJKAIj•GW[@[LGScDOGQOAGSYZ[HSd[HFNVD@XmJFG[OWiWKNqGKN_MAMO[HoM[BoRewo@Y^HpITSFENc`MVCdHNIVCLJFI`NFIŒP`@VZbaf[FFJG`O\\WRFA@PVPFPPH"],encodeOffsets:[[111973,19401]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/hei_long_jiang_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"2311",properties:{name:"黑河市",cp:[127.1448,49.2957],childNum:6},geometry:{type:"Polygon",coordinates:["@@VÈÞ@Žkx˜nXްVÈa°V@kôw„b‚š„JVškXlVUx„„@ŽlL@xkVV°ƒ„VbxlVUnVxk@ƒ„ƒKkŽVb„Il„@°kVl„@„™lÆnkll@@V„VXƒŽš@V„²bUlƒVlV„U„VÇn@nkJšŽlkVbœ@›x²V@n°VUnlKU„n`@n°bWLnVUblVUVVbknV`°kkŽl@@V°@nz„J@XšxlWXb°n@bƒĠlbXb™bVbƒJ@Všb„a@„„@lbUbšVmnœ@lšVmnIW‚œ@WbÞ@„n@x°@š„ĢaƐéϚnœ„‚lȝĠŻÈwm@ôçU™mm£Xy°UV™›@wÈ£Ǫ¯kõÝçUњ™Uķ‚ƒĢkVфÆšÞU°nŎ¥ČUĊx°m°¦żVƐœx°ƒÇ£@y„UônރÆ@Èĉ°Kô¦šW„kWU—bÇ»@™ÈĕWÇÈ£ŤU@›n£ÆUUKVamanwŃmÝJ¯k@JƒIkaVaUUÇbkaÆÑkWmÝUۙ™Ý@™ƒwnU±ƒ@kkV¯KUkƒJƒ¼U¦ƒšÅ@ówķaķůV¥Uaó@Åwmƒƒ_kVƒwĉ‚ĉmmn_V»™a@U™ƒVwķóƒ‚U¦LǫéóXÇmōLǓÇķxÝkƒƒĉ™kmakbUͰ@W¼„@bƒšÈÆ@Ė™L„l@„°J¯„mkl¯L݃±L—amJ@¼ƒ„™VƧUó„™UX˜ċb¯ńVbkÆÝI@llx„k°V²šV@Uxގ˜L@b„@b™`ƒšÇzkókݤ@ğ¯Wƒ™LĉǙLmmnċVkbUaƒL@ޝ„‚bU°ğL݂Ý@"],encodeOffsets:[[127744,50102]]}},{type:"Feature",id:"2327",properties:{name:"大兴安岭地区",cp:[124.1016,52.2345],childNum:3},geometry:{type:"Polygon",coordinates:["@@k›ƒϙmƏêġb™ƒ¯@@wƒmÝ@XV@IlŽl@bUxl¯VlV™bV@ULVlUV™_kx™VVV™ÈÝJ@„¯šU„™lm¯x@xóÒĉ¼m„¯Wƒxţ@Uz¯ƒWwnUwťƒ@knƒWƒ£óVƒUUwğyó¦WI—Vmm™I@±kwÇ@@bƒ@ĉ¼ó@¯wó@¯aó¼›KՃaUwmWUwÅI@aƒKó@Ua™LƒaƒVÅwō¼UUÝl±I—¤VxÇx@zkJmnn‚mbnz™xlŽƒl¯ČkJl™°@„kb„Žmx@x™@kêmVnŽWxôXšxU°„bWLóJnÇWĵ„V¦™ŽƒUUb™b™ÆġK™šk¯™VU±aXmċÑUwĉKġ„k„™ŽVxk„ÇKkbƒIƒ‚ÛXWl¯bƒŽ™X¯K™bĊš„„ÞVƚnŽĸ²lxUްn°òÈb‚¦—xVbƒŽƒ@¯„Vx@¯VķÞČlĊ°KĸŽȘI°¤ČIôŽò»ƨnȰKǬ¦ôWŎÈƨwlƒnKVXmbX`lbšwkVW‚XXŽ„L°a„ƾaĊ£nƒ°@°¥ŎzÞ¥‚»œalwôkƒJ„a@ĶK„£„bU°ĊxźVÈUĠ¥ƨ™VI@XU°x°Ln¥šw°UmwXm݁V¥Ģް@nU@mÆ£š¯lKœšÜw@aÅU‚¥UaÝIkmV²‚nn@Ķ»@Uk¥VKÞ@ÞÛ@ƒkVmĢa@_ƒJómƒǖ¯Æw—óÇa@alƒUwšwĢřšk@wÆWXUWXƒWa™m@_ƒ»ÇéXaĸwVa@ÝKkUWkX‚kšKXxƒn@lĊV@¯m¯nřÆwš¥"],encodeOffsets:[[130084,52206]]}},{type:"Feature",id:"2301",properties:{name:"哈尔滨市",cp:[127.9688,45.368],childNum:11},geometry:{type:"Polygon",coordinates:["@@°`„_šJlUšŽ@„„@V¦°JUšŽnLôlnŤ@@šÈaUÒVbkbl¤ƒzk°ÇVÛô°IlVUVôU„xÆU„Ž@bźĀ„º@¦šb@l²‚UVlœ@°ÒĠxšnXxÆVô¼Þ@Üx²KލlƒVѰUȰôlwô@²ƒĸ°„lanV@„šVŎUll@bÈnÜm„wĢ@la@ÝÞb°UXb˜lŎ²ÆškšV‚I@ŽnJnĠްknƒÜbĢwna@a˜kÞKƒĀ„a‚™œ‚‚IVbU¥wĠwkô˜xnLƒċVçkaUƒ±IUmnġW„°WôĉšalƒÞÅĵ¯@W¹XÝaƒb¯a±X¯ºLƒaVƒmkLóƒƒbkaƒVUKVkkKV_@aÝykk±L@ƒÅU@yV_™aU¥ówÇx™@UkVƒn@lƒkÅlwšWVwUkĉmkklW@šašbVwnWWƒ—wWL™™@Ušƒ™UƒÇLšÇmƒ„@wƒJĉƒL¥@ƒÝ_@a¯y„UWw¯ƒ¯Uġx¯aÝXVmaU£ó±›¯nwƒa¯óÅVƒXman™„Uƒ›lUXkWa@mkI„›ğaƒm™IklÇU™„kĊƒƒzkKƒš„lU„ōĬlš™„@ŽnX°@llUxʲmKĉVWwk@UbUK@bmVmI—ƒVmwaWxXlWȁšmºšÞÆbUxV@ĵńWÆĉLkWUbƒaWzkbĉ`U„±LklōwUVÝ£™UW`Uwk@mk¯VkaõVX@WbL™K@XƧºWzxƒK@lmX@bkVVÆk¼Vbk@Vn"],encodeOffsets:[[128712,46604]]}},{type:"Feature",id:"2302",properties:{name:"齐齐哈尔市",cp:[124.541,47.5818],childNum:11},geometry:{type:"Polygon",coordinates:["@@Þ@ށĠKV¯a°ƒ@„KVblaČU‚mnnšKĊȚKX„°ŽĠ@Þ£ôllÈy„™š_@a‚ƒ@a—KݍVwU@±™¯Uƒlkw@kÞJlÅUa°ŃČaW—šVôƒƨVšU„ƒ@»nI˜b²Kބ°Klkn°ƒ¯I@ƒƒkšK@ĕÇń™@aƒX»¯@VĵlaÿVamI@aÅÝउýƒĊȗJƒôȁÅkmƑۃ@kxġ@@l™aVk¯»ƒīŹaƒkƒ¥Å¯™JUaWU@@w™aƒ»„KUkÆkUm„UmwÛ±±UUbUŽUXƒwWwÆÝk™lkUanaWwnKl™kal¯ka™ƽa›kÅx™a¯@™amb¯V™lÇwÛĀ™V@x™šmêVƜVV‚aôV„wÈx@šˌx„¦VÞ¯VšlmX@‚ƒL@¯Ua¯LmV@„„°X„ċK™V™ƒ@UƒÈ@‚¥@w—ƒġIU™km¥Źwƒ¦¯lmn@°kxVV@¦óam„n¦l@nx™lĉVóšmx™n™ÒĉĀĊ¼„þ„šǔêÞ°ˌĠÞÒ°ĀɲĀƨźˤȤƨĊ°w@£nymwnkUUV¥ôÑVmkÆmUUVa™mVIkmô„lxkXÞþƒbl„ƒl@kV„ƆƒV„xV@š¼VÒ@šŽUŽšnnނJ"],encodeOffsets:[[127744,50102]]}},{type:"Feature",id:"2310",properties:{name:"牡丹江市",cp:[129.7815,44.7089],childNum:7},geometry:{type:"Polygon",coordinates:["@@U`lLUlVL„Ulb„aô„lKnŽU„„b‚K°¹²W°b„aÞb˜knyUlUkamř²L@m°@lšmš²n`ôÅlK„x„ÜKnxV@„l@œƒ›ÅXyW_k@™wm™ŹĕmƒX™»‚ƒÛ™l°ƒôšÈ„»š—ô˜ô_WW@Uœal»šwU@@wšUVƒš@VƒXI@w‚Ģ͑ÞȻ›aU_@mUkly@¯óV»XmWUXUWmnm¥nUUaWLk»Æ²IÇa™wÅaݰ¯nUa±a™ƒ™@¦õÆğ„@„™@Åb›xU܁nÇłlb¯¦„ôó»mƒ—@±ƒUk@Wwƒa¯xU„V°ƒxXbǎŁUV™™ƒK@¹ƒKUaȯ@ōݙXƒal™ƒlÛkalÇUǫÇńÇakbÝƆ¯nlš¯Ž@¼™VUx@x¯W¼™Æ¯šmĖ„Ĭ¯ČƒVk‚ķÅmxœ°ô²V¤‚bUnÞW°bĢw°V°„XxƒV°z@bÞ`@„‚¦„KĊŽ„I@xƒŽn„™ÈÈK‚„šV™„@VššXK˜xX„mXUx™a™b@‚kXllĊnVlUx™XkxlÆk„m@U„Vlš@ÈwôxV¦šbU`@zÆV@„²KllÞz@b"],encodeOffsets:[[132672,46936]]}},{type:"Feature",id:"2312",properties:{name:"绥化市",cp:[126.7163,46.8018],childNum:10},geometry:{type:"Polygon",coordinates:["@@ऊþÆÞ@bnJUb‚ĀnblŽĊš„„ÞlĸwǔÈŎKÈnôWǬê‚KV¥„ĸôUxš„@VšbU¼m`nnĊŽĊ„xlUšmkaVÿšLšwš@°»UmbKmݙUšwUmVknKUUl¯ƒKU™ƒUȃ‚™nK@ĠkX±lX„°„L@¯¥@wV_m›ĵ¯Ww™L¯ƒUkōƒÇVU™l›w—V󁱃¯aƒVka°wVk°mÞ¯Ŧřƙl™²™Ŏk™U@ƒmUkb¯ƒķޱ„ó@kxȯó¯VUÒk„ÝŽ±LÛwÝ@ó»ÅUWw™mğw¯Ñ›@UkV±@k™a@¥ƒ¹Źÿ@aƒÅVƒwóVVUkU¯JÜóÈUl¯„yk£laUaVÑÇb@™ţ@kmómK™V¯IU¥ƒ@@ƒ™kV™Iƒ`@ô™¼„blU„lƒ™bÈb@xÇKkĢɳaÅɆō@ƒŽVƒK@z™@@¥ÆKnÜ@@aۏUw›wnU‚ķ@ƒ_ƒV°Ž@„klVššnULVVÞbVl@°™@nx™n°LŚÆlV„ȃmU²@VmĠLƒx„n¯xkWƒzšJ‚wnLmbXbW°šÆ‚™²™@™Žšx@JVx„L‚Ā²Æ°I¯º‚È@ÒnÈ"],encodeOffsets:[[128352,48421]]}},{type:"Feature",id:"2307",properties:{name:"伊春市",cp:[129.1992,47.9608],childNum:3},geometry:{type:"Polygon",coordinates:["@@ƒKƒ¯kWW²ğl@ŽmLšÇ„„VVš„Lk°VVmLUlVn™xšVnނLnaVޝ¼™@™x™KUĀlb™n„`n„Æxô@VbU¦ĸŰĸbôxÆ@„™V¥„»„IVl°LUŽll@²„mV„x@ššÞܚÞVnŽlXÅÒlbÈaVVUblb„J@I°lÞIn‚Æ„mxnbUbVLÅVm¤@œţVǤXÈÇĖ@šÈ¼˜aXVÜaXbWŽnzŎašř„KôbšUlw@¯naÆKnUU¯Üa@mkkVUĊm„™żÝ‚ǖŽ‚K„™°L²lÆI@ƒ¯¥ĉƛVaÞk@ÝVaĠlnUVwƒœómaƒ@™wĉ@™a™VƒxamX@aƒ@UaÅLƒaVWƒ_nWm£nWm_ÅV¯ƒm@m„󤁚ݦƒ¯ÅalmX£ƒ™VWUŚw™mÇ@@IV™„WUw@ašI@„k@wŎ»Wƒ„ƒ™ÅVaœK›Ika@¥lUkUlwÅwVyÈwWU@a¯U°m—Ç@UçƒaVa¯mV»ÅwÝUlƒUk™V@k„mUk‚X£šw°@@ǃaÝIƒƒam™Ûam„¯lğmmI@J™U™l±ÅōŽ—kWa¯VÝa@Þkbġ@ƒxÛnÇm@akkōVōl±škšÅšťŚÝ°¯nUl¯xlb„U°b²„ô‚˜Uœxšk‚VÈUŎ„Vl°„šKXxͰnœU`@x°¦@"],encodeOffsets:[[131637,48556]]}},{type:"Feature",id:"2308",properties:{name:"佳木斯市",cp:[133.0005,47.5763],childNum:7},geometry:{type:"Polygon",coordinates:["@@nš„b‚„ÞJ„b@ȯ@™xW¤Vlƒn@lšUVlk„ÞVÆxU¼°nUb„bVèÈ@˜ŽnIn‚@šĢmlUw°™żƒ‚VUn@lnL@VôbšwĊ‚lœ„JķĸĢl„wôwƨxVVUƒŦšxšLź™Èš°`nnĠwŎJސĶwôJ„@¤Xn܄ĸlšn°¼È°lŽ„„Uš‚b„xš@„l@ÞÞÈm°„lôwšL°¼ĸ‚°Þ²nĠ@ôwÞ`ŤI„V„ÒĠU„„@„VJĸbƄ²@°ŽĊKšœ„JĶa̐Ȱ@ô¥°nš¤‚bČUš@Vx„mUw@a݁ţƒÇ™ķƒ@ĕķīU¯²@ÆmVÑô¯X¥ċç@™ĉ»U¥ÝţKWVÅkUVÝŎUmǍÝx¯aķxÛUóL¯a±óōb¯™ƒÑŃVÿƒ_Åķ„a@UƒK@wm@Van@UmmLVa—@VImmXUWƒÝUřƒKUwÝUUƒkVƒk@l¯X›‚Å_ƒJ¯k™Jm„ÅLƒa@¥U@¯Vƒz¯@ƒ`@¼šmxƥšŏKÛk@±laÛ@@Xm@™ƒ@xƽ@WŎnšˣĕÅ@@aÅ@@nÝbǏ¯@ƒ_U›kUWƒkb™wÝU@ç„Wlw@anIƒ¯lyœX°m°VšašÛšm@„mVwÞK°ƒšXlaXmm_ƒ@UƒkwÝK@ƒVI™ƒXmV»ƒI@aƒ¯ğW™bġaU_¯JU¯ġŽƒ„ĉ„k„ō`±nÝÆk„™bóĊ¯Xƒ‚ĢX‚mVn²JV„lbUè„ČmK—wlóğx‚xV¦UaJ›šƒbƑÿÝL—l@bmbġx"],encodeOffsets:[[132615,47740]]}},{type:"Feature",id:"2303",properties:{name:"鸡西市",cp:[132.7917,45.7361],childNum:4},geometry:{type:"Polygon",coordinates:["@@‚LšKVVnkšbVšÈb‚²U°VnklVlaÈL@anU°ÜmXV`œnôLƒèšxlŽšLX„˜L²ašVVmÈX@ķ˜lnU„Èl`ȹš@ŤŽ°U@x„KnnV„mlnnUl‚lVnnaŎwlVÞ҄@n¦šLVްlšwVk„Lšaގl„n҄š@xmLÞ¤Wnœ¼‚WÈLVVUxlÈô„„WVaU_VKšKXUÆbn™‚nôK„bÞw°bÆWXamVwœK˜™Uw¯WUk„UlJUwVUa™@@kmyzm›ĉw@kVwškƒW¯ÅKU_Vmƒƒ™xU@aW@@kK@w„a@Kƒ@@kVUƒaky°_Vm™kna¯K@™ƒL™wġk@@IÇóX™ƒwVakmV@mwXUWanƒlĉ@ǙUw™KƒƒóšܛNJۄm°@›w—Å@ƒ±b¯Wƒ¹„WVwŹĕ¯kVmōb¯w@aƒwmV™UUb™V™IkaVwķ™xk¼›b@VXXó`󗙘ƒ¼Çó™¯„kŽÜš„š¼WŽn„źĖnššxl@X`WzœÆ"],encodeOffsets:[[133921,46716]]}},{type:"Feature",id:"2305",properties:{name:"双鸭山市",cp:[133.5938,46.7523],childNum:5},geometry:{type:"Polygon",coordinates:["@@™UƒƒUwó™mÑÞÑUÝÝUkmmŃyV¯ī„¥ƒUÿĉ¯mÇkaWbÅX¯aÝxƒaóLmmšÅaWV™LULV`UbƒXóƒkÇVwUUÇKX›»XmÝ£nK@wƒ™mÑkƒÝ™bƒKUl™x¯kU™Km¥ƒ@ÝÑkUōxmbUmkVkmmnkUƒmmƒL@w¯Vţ™@Ǻk_ƒÇmV—k@ĸVx‚VȰlLkllšUbōwƒnVW¼nlUx¯XmWUnÝ@™xÝUó¼¯J@LVbkJWnkb™W¯„ÝLUxƒn@‚™n™Ü™b¯U¯n›Wkz„°mJ@bkxƒX@èÞVšxlaX„lVVœ„`°@ȐÞa@mÆ@@bÆ@ˤĖm™Xōƾ@@wš„n@@WÜ@kb@²ÜlŐLƦ™nw™@»„_°@„y°UV@@¦„bÆKnƒšI°l„IÆ`œ°W@k„llUV„ÞVVx„LƚÞVX„WVnnUJ˜@UbnKVnm@Ubn@@x„L@VƒbÆĸ„`UĀÆ„„Ò°šŎa²ô°bôKÜVĸw°bÞwȎVnÞōVUÆlXU"],encodeOffsets:[[137577,48578]]}},{type:"Feature",id:"2306",properties:{name:"大庆市",cp:[124.7717,46.4282],childNum:5},geometry:{type:"Polygon",coordinates:["@@mÇ@сǰ¹¯J±ÅÿƒKUw‚I@™wšš@š±Å‚™X¯WanamKx™I„ylX°wƒm„wğKUn±@nVDŽUƒÅkƙ¯Kšmmwš@@¯UkÝaUUVK™mU™lk@ƒ¯„U„`ĸ@V‚mœxVxܐ@bÛ@m‚ÅL@¦š@@y„L‚U„Ŏ@ÆɅɴblġÈL@wÇaša„ƒkkVƒaš»@ó¯_ÝJ™wÇaÅXny›U¯¥Å„@w™bÝa™Lmm@@ƒVUŽlbğVmš™¯Xƒm_ƒ`¯_Ux™m™L™a¯b@mƒaó¦Çk™¤V„@bóJknVx™VXx±aƒLUbVxkLVlLWlƒ@nX@VÅbWlÈnƒx„bWšÅbmŽ@xœbml°b™„XbW„XVmnn`ƒLmšnbmb@šk@mwU@@š¯Jlbk°lbkšmLXxmbVbkllšÅނxX„xVWVVa²VܲnxƒVVnÅlVlƒL„¼šb@xV@XŽVbšIư„¦„lźb„Ĭ°¼Ulšb@kĢ@lw„@ƒÜlnȂƄóȘI„ĉ"],encodeOffsets:[[128352,48421]]}},{type:"Feature",id:"2304",properties:{name:"鹤岗市",cp:[130.4407,47.7081],childNum:3},geometry:{type:"Polygon",coordinates:["@@Þ¥‚™ô£nƒn@°„ÆUn`mXn¤mX„`UX„bÆKVb„@@bnW‚b„wšUšbĊ@šx„@nbšWVmƒ_mm@ó»Um„ŘWXkĠ»²¯‚¯nķšwŎ@ĊšŎK°bĸUnјKȦĠÈbÆknJššÆUĢV°IšŽšVƾƒwaV™ƒƒkÇ¯¯»™mķkۃWm@£ƒóIĵxݏōIğxmm¯_Ç™Źš™K™wťŽ„UVUŽƧwóxƒxġkĸķƒIk›ĉ™xóa@UmK@kVmUŻ„¯šVxkŽġn™‚@mmJ¯n°V@bXVÇxUzÆxkxlVkV@¦lbœJ›LUbšÆƒ„X„ō¼@xƒl@™J@bVxƒXUš@JÈ@šn™xVÆUXš‚„W¤knÆb„°"],encodeOffsets:[[132998,49478]]}},{type:"Feature",id:"2309",properties:{name:"七台河市",cp:[131.2756,45.9558],childNum:2},geometry:{type:"Polygon",coordinates:["@@²mŎ_lƒĊƒ„ƒĢV°°IV`ĢbšaĠX„°@b„JU¼Wnš„UJ@„ÞLlxV„„@n`lIUa@K°Iô»ÞVšwÞ@VmnX°WVwmkX»‚U„mŎxVak™lkkKǯUUwÇWUn™U±b—KWƒ™Kk™w„çóK›mU_nW¯ÛmV@bÇKkbkUml¯U±VÇaU™™amlUU™LK›„k@ƒU@mwÛLƒŽƒwkLóÆm_™±™nkޝ@@n±KnŚlbkVV‚mz—lWXº@Ķ°"],encodeOffsets:[[133369,47228]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/he_bei_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"1308",properties:{name:"承德市",cp:[117.5757,41.4075],childNum:11},geometry:{type:"Polygon",coordinates:["@@lLnlmxn„„IVVlUnb@VVxXJWL@LގVnnV„J˜_@wkmšK„b‚x„wXk˜WXXšKlb²K@nVVVb„L@WlU²„lKVnUJVz@VVb@lżmVUVnbôaVX@°Ub@lWbXš@b@bVb°x„@VxÈLVlšaÆ@Þb²k°@lVUŽ@Xn@VW‚LXb@¤VXšKVVVLnm°_ƨ¤@aUIVa„alkX›°k„™V@„alwUVy„U@k󙰃na°UVUUmUÆw@mkLVUƒWVI„WšLnn@xlVnK„myU@ƒU°UXaV@U¥ƒU@Uƙ@aVUkWU¯ƒaU@WLUV@bkbmKULmKkUVUkmVIUwlWV²™Uml°U@W„LUwVm@UUK@_ƒKUUÜaXw@ƒVKUU@mVIUUlmnIVVVbÈVlKnbVKš@nI˜@nVnwVLVK„K„„˜Vnb@aUIVW@In™°@lVnIš@lWĢ@°UVL@b„@VyUUƒa@w@WUnU@Wǯ™K@UkkJWaÛbmk@mVaÞU@amkWƒ@mXUKkÿƒ£@a„kl@Um°UXwla„al@nmlXnW°znW@aƒwV™@ƒakbĉ¥VmU@ƒIƒVƒUƒJkUmWU™KbmkUaƒKkUVU@KV@@klw—™WaU@kmƒXVènbmlUUƒKƒX¯JkbƒI@JmIUWU@ƒLml@XkJ@U™kƒK@aVKwWa—IWwƒmUƒ@mU@J@UaċU™aUUƒVkI±ƒk@UUƒ@UbVVm@UVKƒLƒlkIWaULUWƒXUJU„ƒ@WbUb@lkXUxm@@JVn@J@b„nƒb@Vkx@bšLU‚Æn„JšaVXnKVVmzX‚°V@_lJXxWXƒK¯bÅamUƒ@lUI›bñJ@LÇKkIÇ`kxWL@„ƒ@@bUVUb¯xWKk„Å„VlULW@ƒŽn¦Ul@I™lmUUUVm@kWƒnkKma¯XUKWmnwVwÝL„mŽ™VUbUVWb@Lnxm„xVŽmbXx›¦@„nb@`™„ƒVƒ@kbƒLU„mVUlkbVXkºmnm@@xk¦šbĢÜlš"],encodeOffsets:[[118868,42784]]}},{type:"Feature",id:"1307",properties:{name:"张家口市",cp:[115.1477,40.8527],childNum:15},geometry:{type:"Polygon",coordinates:["@@k™ġۙal¥@wn@nml¹UWlaVknUVƒ„Kla„@„Ušƒ@_ma@ƒœ¥WwnaU‚wnƒmw@KXaVUVašUnmWUk°™lƒnUVUXWVw™IWVóKUI@WXƒxUU@mma@kUKWLkw@yk@ƒaVkUUċaUU@Wk@Unm@UVmLm±IUƒkJ™kWƒ@a„I@m@U„ƒVƒ„Ula„@VXVƒXmVwnkWKƒKU_k@m¥ƒmX_™JmnU@km@U@KmU™VƒU@U™@Umk@@LƒmW@Û£Wƒka@wk™@aƒI@mmk@mUa@UmUƒIƒwW@aWUƒbU@kbÇ@kwƒ@makVUk™U@aƒm@aU@mxkUƒbƒKUXUƒ±KXVWLUK@wkU@V™@WXUa@WbUxƒJIƒŽ@¦VèVVX@±ê¯KUIƒ`¯UULVx@Vƒ@UKƒIƒVkLmVkKmš@nUJÝbkIUJVXšVVxVbU„VJ„Un™°bV„mlU°„XnK@Ul@lVÈVUXšx@W„@VXšV‚KÞb„n@VnbV„m`ƒUx™kW@UVkL™Km¼@lUnUJVnV„XV@Vm@@LV„klƒIkl@VƒWlŽULWKUL@mJ„@blbUVUlmzUJUxm@UUbċÜk@Ub@VšLVV„¦ôbVŽmšUKUkU@m„„@VlVn¼WbUJ¯@@„°šnIllÈl˜@nXšWlLœk‚J@bkxlxkxlXUlklJƒšXL@bW„n`@nƎXxlL@xl@Xb‚LœKlVlIXblVUbUJW@lX@VL@VVŽšXšJšw„n@WnL°K„bVbl@VI@K„@U@nmVmV@XUWI@aXm@™VUUkWmn@lmUUk@mUmK@UnwVĉ@ƒƒmU_V@XJôVVUšLVUn@šllUnJl_n@šml@XŽlLlw²LVJUL@VmbVblVXmVnlš@Ť¦„nn@܎@bšl„@@XV`„Unb@VlLVb²J‚Xn¥ÆÑ@¥Þ@"],encodeOffsets:[[118868,42784]]}},{type:"Feature",id:"1306",properties:{name:"保定市",cp:[115.0488,39.0948],childNum:23},geometry:{type:"Polygon",coordinates:["@@VbXWš@@UlV@xVLXKWU²LV„VW„L„alVnwV@@b„n@bšVVllUnb„@lxÈ@laV@„aXV@b‚X„x„J‚nV@VVb@nnl@n„J@blšl@„ašƒU_VWUwVUškUm™Ukb±mVwœU@VIUW@UWk„@VU@ynL„m@IV@‚bnK„LVaVmnIlaXwV@@WVL°@@xnX„@V`V@VbUVVLVKnwnL@ll@@_V@VVnaÆ@œKVXÆ@nƒ@wƒKmU—™Wm@km@kÜKXU@ÑW±nIUwVƒ„Kla@I°wU±kškmm¯mƒ_ƒJnƒaƒwW@IVaUama@wƒUƒmU@mVw@aXk@mWa@£km@aƒ_kVmUnWW@¯bƒkUmk@ƒVÇm@@kUU™KUU™@UVUamVUaWIkb@xU@@amUkKƒVkam@@kVUkUWmKmUkLUb@xmJƒ™U@UImVÛVmnUwƒJƒU@VƒX@UWm@Ub°¦UšmxklmX@`ULU@@UW@@xkn¯@makV™UmxUb™°ƒlUšƒbUbƒnUJƒUUVƒa™LkbUU›JUU@mUUUƒJkaƒ@™xUIWJƒUnƒJ@V™zƒ@kb@`@bln@l™bƒŽ@X@š@š„@Xl‚bnbVb„@„„VJlInlšbVw@U„K„l@lbnan@Vb‚JôLn‚UzlV@lÈLVbVK@LVx—VWXX`WxXz‚bV`UXV¤nx@„bVlVnVlUL"],encodeOffsets:[[117304,40512]]}},{type:"Feature",id:"1302",properties:{name:"唐山市",cp:[118.4766,39.6826],childNum:11},geometry:{type:"Polygon",coordinates:["@@„@VVl@²„lJ„UVVšbČVVb‚@@InV„@‚V„nXx˜JXb‚xUL@b„Lšl@VlI@Wnk„KV@VXnJ@I„Jla°I„W„LVVnkmaUç„WVkôaܯ„@nV°wnJlaV@VUnUUaW¯wXWWwna@£UaWKU¯ƒ¯@aVUkKUamUUƒn»‚an™„IVwUWlkš@„LlWVakU@K„_lƒšbÞU°@šy°n„@„KÈkWW™ţ¥ĉōƒkġWUw¯£¯ƒÇwţwƒ@kK@kƒ¥ÝwÅbǤېťV™lW°@ĸ™x@VVVULVLkl@V@Xƒ`Ub@Xm@UWbƒk@ÆVbnLWV@lnXUbl‚@X¯lmU™VkKWLkK@_UK@U@UmmUxmVXLWVULkU@`W@ULUK@XlJXzV@@xml@VU@UX@Kk@WbUK@Xn`ƒXmJnšmškxUVbUVlVVxUbV@nKlL„kVKÞbVKXI°KVšmVUIUKULVxVJVLkV@Vƒ@UbU@WUU@UbUK@b@nƒV@VkLmb@b"],encodeOffsets:[[120398,41159]]}},{type:"Feature",id:"1309",properties:{name:"沧州市",cp:[116.8286,38.2104],childNum:15},geometry:{type:"Polygon",coordinates:["@@@ln@UȄŽl@Vn„l°aX@mXnVlU„`@bln@¤Xb@nWl@bUx@nnV‚„„V@xnbVbUb@J‚X„x„b‚mXa@k„UVwlW„k„KôVm@w™kkK@kl»Èƒm™VKXkla°@XVV@VI@ml@@Vn@VX@V@J„@VxUzVVšš²blVk¦@šĠ@@»š@VK@VÈLlK@XnJ@alIUl„a„VVbš@„n@a„U@WUIV@mUn@mKXml@lL@LnWšb@XV@@a„VVb„V„@VV„IVWÈb˜IÈ»ƒǟlWšaVUÅUƒƒ™Um@kVU™WVkaUwmaóUƒJUU¯ÑU¥mk™¯UaƒKÅnÇyóXmWÛX¯aċbÛa›J—W™ÝU¯»ƒaóóUm@IƒšVVl@bƒLUJWLX@@xšXUxl¤V@V„nVUV„XVbVš@Ž„@@VVn„°VŽ@ţU¯VƒUmƒUWV@mUXƒaƒbUKUwUaÇKn„ƒVk¦Wb@VnLmV@bkV@n„xW`Å_UVƒV@bƒUklVX@VmlUƒx@VVL@x—VWVL@VW@UUm@"],encodeOffsets:[[118485,39280]]}},{type:"Feature",id:"1301",properties:{name:"石家庄市",cp:[114.4995,38.1006],childNum:19},geometry:{type:"Polygon",coordinates:["@@la„@šy@U„I‚m„VXIVJšw„@lb„IVVnV‚@VVœIVVlašK„bVU„VVI„mVa„aV™„kš¯VanwšVlUnb°@lm@wX@@VV@VK@_nWlknwV™¯¥Van@VX‚@„W@U„V„IVxnmÜUnUVJV@„šnI@wValKnV@k‚mU£na@mVk°K„LVa@UU@UƒmknWWkXU@aWW@@km@UaU@@klK@UkaWaUnamm@U„a¯wWU@UkƒL@ŽUn@x™V™lUXVJUb™LmU@aUWUkmKkLUUm@mW—XƒaƒmmkkWUm@@U¯JUUm™kU¯@mKĉxÝwÝ¥LƒUóŽmwkUUUWVkKm™kKmLX„lxVLVxXJ@nVJnz@VWL@`nX@šƒxƒ@kVUUmJmIXx„JV„ƒnUVƒ@UVV„@LUšƒ`UXVVƒ„ƒlXL@l@b@VmX@b™xn°™UƒbkKWLXlW@@bƒK„mKULmakLUlmb@šXb@xmXU`V„b@`lLx@nWVXL@‚°WlXnlb„KVK„XVb@˜X@l_lJ@V@XnŽ„I"],encodeOffsets:[[116562,39691]]}},{type:"Feature",id:"1305",properties:{name:"邢台市",cp:[114.8071,37.2821],childNum:18},geometry:{type:"Polygon",coordinates:["@@nKlLnšlLXUVVlVnxô„V‚KÞ¦ÞxĊwnL°@lVnšVV°I@Vn@V‚lXnl„n„b˜WnXn@VVlKnLVlVX@bnVšKVaUIVWškšU@wVm@¯@U¥VmU_°lšK„k‚w@LX‚Va„U@wšUƒUUKlUóW@UVUœUlƒ°K„wlKU_na„KVnlKkkšWWa@IœJVa@IlJnU@„KVUUmVlaXUl@lm@kXWÝÑnkƒ™±™k@wğ›@@U@mKĉLmVJ@zmlnŽWLUÝJU_ƒ@@šmJkXUVlbklÝ@Ýa™b¯@¯±JÅwġaUU@ƒkU™@mVI±bUKƒL™WUXƒJkaƒLóKULWbUVkKmnk@@bmLUŽƒl@b@mnmJkUULƒaƒbnŽmn@lVV@¦n@„l@b‚znx@`Vz@b„xnV@xl„lbnKVx"],encodeOffsets:[[116764,38346]]}},{type:"Feature",id:"1304",properties:{name:"邯郸市",cp:[114.4775,36.535],childNum:18},geometry:{type:"Polygon",coordinates:["@@„bVKlVnInm‚@@a„kVnK@al@nmlLVUXaVKôL„Klb„IVWšX„KVL²a‚JnUš@lV@„VVĢbÆx²I°Ž°@šaÞbÞ@lkkaVUlWnI@™„@V`ÞI‚VXKmnk@y‚InUĊKƒÇkUUamUUkƒƒ@aU@U™ƒk@WUwVkVJVkkw°a@„mK@UX@VV„LVW@wšwVa@¯Xm@@lUIWaU@UWkXWmU@UwmUkKmn@lkVƒ²™VƒaULUVmJUUUwƒLma@™UmkIUm›L—mVšmx@b™LUamKÅL@VmbkU¯KÝamzkJUb±Vkb™L@lU@WIkJƒzkKmKƒnUalWkkKW@@nkbk@WW¯XUVUJ@XlJ@Xƒ@XlWLkUƒ`VUnaWa„UV@UVIƒaUxUUmVƒK@I@W@DŽU@@U@bƒ‚@nmKXmx™@UxkVWUX„@`VLlL@`™zX‚Ýb@b‚„@VUVkIUJVz°KVlnLlKnL„xlLVVUVlXUJ@nn‚„I@mVUlbn@@Žm„@bV„nV"],encodeOffsets:[[116528,37885]]}},{type:"Feature",id:"1303",properties:{name:"秦皇岛市",cp:[119.2126,40.0232],childNum:5},geometry:{type:"Polygon",coordinates:["@@lnV@Xb˜škx@lU@@LUVlV„LVbnl‚ašLXVVn‚l„I„V„U„JV@UnĊ¦la„bš@nJ°UmƒV@„wn@VU„JVI°bnWlXnWVLVK²b‚akk„lI@aUaVƒUwVUUalaVwnUVak¥šX@W‚kœLVÓm„mUK@_lWš@n_UK@alÅ@ğÅƑŃݍmƒ@їţÇlƒLƒ@¯m™z¯@ÝV™ak„ƒ`@LlVUbkXƒK™@klVXUxƒJmšbm¼V„nVVblLUV@b„°V°XLVb@¤mbXxWX°xXŽVbmVUVU@kbmI¯xmUƒ@Û°óbUl"],encodeOffsets:[[121411,41254]]}},{type:"Feature",id:"1311",properties:{name:"衡水市",cp:[115.8838,37.7161],childNum:11},geometry:{type:"Polygon",coordinates:["@@„KVlV@X°xƒb@VnnmbVŽXblb@VkL@lV@Vbn@@l‚@XX@bWVXlmXnlV„V@@VUbƒK¯LUl@nmbV¤n@l‚LXnlVUV@ln@lb„UlLnV@bV@@wlaXJVbnUVbVUš@VVšLVVn@VVX@@U‚KXU˜U@wUK@U„wVnk@UUWlk„V@a„UVUÆ`X_ƒw@mlU@anUmK@UXal¥„UmƒÈLVbVxVL„a„bVW@nXU‚Vn„„V°UŤV@Uƒ¯Um@Uƒ@@U™UaƒWVUmUUƒU@k£Vw™W@wW@XKƒIUa@wU@@al@UK@_mKXKƒbUU@aVKmš@Xmƒƒ±@kbÇakLğVaUw@a@ƒmkUJƒk@ykw@£ƒWX@lknk@WVkbUŽVnUVƒL@‚mVkI@JUb›I@JXb™XllkLUmƒLmbV`kLƒx¯Lk„›VUV@VôXkVVL„V™V@xƒVUbW@Kxƒl™L¯kV`UnV¦°@"],encodeOffsets:[[118024,38549]]}},{type:"Feature",id:"1310",properties:{name:"廊坊市",cp:[116.521,39.0509],childNum:9},geometry:{type:"MultiPolygon",coordinates:[["@@la„Ušš@šUnL@VWbklWxnIVV„V@X„JlbUlšXVbn@@K„mV@@X°WVInJmn²@lmVbnL@amKV_kwlmX@@LVamaXaƒaVU@UnJVanLlUkaW@UaVakK@IlKUU@an@ln@alKUƒkIVa@a@klaUKUV@UkUV¯šKVƒV@kUmƒU@@a¯ImJUU@VV@UL@Uƒ@@WXUWa@Ukwm™@ƒX@@w@al@@aVIUmVUUUVWUknK@I@™l¥kU±a™™UUVyUwƒ@@I@UUWm@@Uk@@nUJU@WU¯@kbWlULnšÇ„k¼@llLšl@xUnóŽƒLƒlkXUxƒV@lWb„I„`°nnn™llŽV²¯x@JkbƒLU„VxmJX²@ÒWVÛL@lln@‚Xn˜šnV„L"],["@@@kX@Valaa@KWI@UXW@WanaUIW@UaUKķŽk_W@UVUKUš@bƒ@UamxVXnJUbWVXLVbn@W°kb@U@Wó¼mIU¼k`V„@bVbl@„lX@lUôVlUœIV`lX„Vn@lUlVn@„l@UVaƒIUWl£Um™VWU@@UUKlUUUnƒVL@KšUnLVWUa›@™U"]],encodeOffsets:[[[119037,40467]],[[119970,40776]]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/he_nan_geo",[],function(){ -return{type:"FeatureCollection",features:[{type:"Feature",id:"4113",properties:{name:"南阳市",cp:[112.4011,33.0359],childNum:12},geometry:{type:"Polygon",coordinates:["@@lKl@nVV@„bn„@VVnm‚nL‚LXx@š„‚VLlKVU„IXWÜ@șlbl@XUĊUlwnW„LÞw‚m@ÞUVmnVl@nX‚JXLm@VnnJla„I@VkxVb„@VŽln„J@knKVn„@°aVanal@XK°b„‚@š¯VJXIš„VK@al@nV„k‚@nK„a‚b„@XL@blVVKVLXK„@VaVI°mVaX@V_@a@yUkVw„VšIVašJ°™@anIlaV@nKnXÆm@wUUV±UUWUKnaWwXUWmٝVƒam@kakImƒUKƒ»lan@VXXa˜W@@UlUUa@a@UlwUƒV@Xal@@anIVaUK@V™XmwVmUmV„LXl‚@nalLnal@„šnKlkV@@UnJ‚UXnl@nVl¦V@@VnJ@nUVVVVIn@Va„JƗn@@K@m„kƒa@kmWVaUI@a@™k@@aUL@mmaVIUKUVƒ@@IU@mƒUmmL@K@UUUU@mW@@nU@ğ»mVmbk@klW@UXnV@LƒJm„™lUnUJ™UUUWƒƒ@UnkKƒxmLa@ƒ@@lUU™bmUVWk@@nkUmam@UakJU_ƒVm@ÅlÇLUVmVUwULƒKU@ƒk@UƒVUlU@@Uƒ@UaUUWaŎƒzJƒaWLkl™b@bmL@„kKƒabWŽUVƒ_@mV@b¯JmXUbUK™¤ÇLUU@b@JkLWmkUWIkJ@VmX@JUbVXU`¯VV¯blK@LXKl„UV@Um@@Uk@kxWŽkbƒL@KkbmL@‚UXmaU@@l@x@blX@xUJ@bULUlULÇ@@VšnU`W@@nÛ¼U@@VmKUkm@VVX@@xǚ@bUbVb@VX@@x‚LUb@lƒ¼XLlbUlVVU„Ub@n"],encodeOffsets:[[113671,34364]]}},{type:"Feature",id:"4115",properties:{name:"信阳市",cp:[114.8291,32.0197],childNum:9},geometry:{type:"Polygon",coordinates:["@@VllInJlknJVkVU@mXlUÞ`VnV™VU@U@y„@nXlKV„nJVkXKWaXI‚b@yVk„VUkVwn@‚K@nW@k„KlUXVVUlbnUV`n@V_V@llX@@V„b@bV@@nlVUb¯‚WLnbmb@ŽnLnK˜b„U„bVWnLlaX@VVUX@Vln@`kL@ll@VXVJÈIVl@XÞJ°Una„LlylU@UXKlnn@lanLWWnbVI@KXKVL@LVWVL@UVKUIVWX@@XÆJ@In`@lJVI@a„WšÛnK@UlK@UU@VK„nlm„nXal„UllLUbVVšknJ@nV@Vm@a„l@@xnV„„lJVUU@™w@aƒk„@XW@_mWnUlŁUmVKV@VXwW»XƒWaUwnkWUkVUƒU@@@WlaUkkaƒIWVkm¯xmIUmƒLUVƒaUIó»m@mmwXk@a›mk¯¯l™@wƒmkLmmU@UbkUWJ@XUbƒJ@b@l@znÆmK@Xk@Ub@lm@ƒI@akmVKUUVUkU@U±JUbkƒ@IWmkxƒa@UUV™UWVkIUaW@UlLWn@VkJƒI@VkK@L@bmKƒkJmUUaUKWXk¼VxnJ@„V@@VULV¼ƒ@@UkaUlWL@U@W@IkKmL@KULUWULWKUXUJmIƒb—KƒŽƒ²UW™nWKUUkLUƒmUUam@UU™@ƒmUL@xkV@„VV@bmV@Vk@mwkUƒVUx@mbX‚ÇnVb„‚UL¯šWŽnUVLVb@xnlWnU@UVUVVUbVVlVkn@llVUXUWUXVbUJ@bmLUJnb@nVK@bl@@š@bVJUbnX@l„b"],encodeOffsets:[[116551,33385]]}},{type:"Feature",id:"4103",properties:{name:"洛阳市",cp:[112.0605,34.3158],childNum:11},geometry:{type:"Polygon",coordinates:["@@VVUllLXl@LWn@J„@bƒKUVmnL@`VblLnbV@„b@JmL@LnV@VV@¯„VJVnXL˜@nm@aÞ@‚a„k@m„IšmVbXL‚ynLšk°@°aVJnUV@UVVXk@WJ@VXLlUnJVnnƒ°U@»°U„wl@šb„WmUXƒÆ@VLXU@m@U„a@I›mkb™a@naWW@_@WXUV@@U‚ƒ²@„K@I±U@¥kKWLóLlƒa@£Um@kWKXU@mlLXUVKUU±J¯_@`UL¯Wmk@Wa„kkƒlUnƒVUVaU@KUU@mmK@_ƒa@KX@VaUIm±™k„aVKVUkw™@kaƒƒW@kbkL±UUaƒK@UUKVak£ƒ@UmmL@lƒIkmUƒ@Ualw@UƒJkbmIUmn@WKImWk@mUUnÝV@ށnÝxƒKmXkxĉVWVk@kaċšÛ@WXƒJUV@zŽm„VWnbUbVbšLlUnŽ‚lUÒnWV—VWnk@@Vm@kxm@Un™l@Ll@@V@šXnƒškJV„šV@nlVXx˜U@l„n@aš@VLnWĊ¦nxš@lbVKXLl@ރVLƒ„XJl@XXl`lIXVl@Xl‚XUVšK„wV@lanx„zUbVJ@VVX@b"],encodeOffsets:[[114683,35551]]}},{type:"Feature",id:"4117",properties:{name:"驻马店市",cp:[114.1589,32.9041],childNum:10},geometry:{type:"Polygon",coordinates:["@@n@„b°UƂXnVlnLÜ@VLœm@n˜@na@J„„m@k„@lVšVxXX@„V`lLV„XVV@VVÞLVV°„²@lašbnxV@@b„Lšmlm„_VWnIWUna@lšLšbnV°ƒVL@KšV„LVUVaVLXK@mÆXna@wVm„a‚@Xw@KlL@a„@Va@wUkaWnIVƒla@Kn@Vn@VUl@nKVn„J@LnK@aVkVUUWƒ@VakUVanI‚²X‚W@UUU°KnUVLl@XaVK@ašU@KUI@W@_lm@KkLUKV_Uƒ@»@UVJ@XV@@mVL@K@U@Kk@VwUUm@kmWL@VkVkzƒKmb¯VÝI@WUkÇJUIUWk@@klK@_km@UVWUUW@kbmKUXƒaƒV—amLmK@namaXK°VakU@mU@@aƒa@UW@kkU@U`m@U_mVkaUVWUkVƒL@lmX@ށLm@UxVlƒUUl@zaWJXbWLUlmIUƒkLmWƒ@@z@VUVUšUmÝ_kVWŽ@nUVUlmIklmIkJUkƒl@n@Lm@؃IUbm@UJUUVU@mmI@UU@k¥mUk@WmVmI@VU@klmLƒ™k@mbkKmb@WkƒKUŽVnUnnxšW@UVLUbmJ@bk@WbU@V„kx@V@bVbkV@V‚@‚—XWbUWm@kb„¼VLn„lJlb"],encodeOffsets:[[115920,33863]]}},{type:"Feature",id:"4116",properties:{name:"周口市",cp:[114.873,33.6951],childNum:10},geometry:{type:"Polygon",coordinates:["@@lšnb@xlJ@UnLlKXUlJl_„KnV@xVL@bkbVVUè@šWb@„Ubmš„ŽkšVšmbX„VJnUl@„a°@@b„LVbƒlXx˜InmnLVw‚anJÆw²IlmnXVl°VVbÈaVb„@lkn@VWnLlUVmÞUUklƒkƒVkUaVaVaUw™K@kkaVWmw„_„‚l@nU„VVb@b„aV@VV@zXJl@@kl@šlœk°WVnÆbnbUšVJ„Iš@VKVm@k™K@_kK@a@aU@@wW@@k@aUW@IUWVUnLlUlVXKVwmk@W@—VWa„¥@k@lnƒUIÇKUaU@ƒUUVmIUV™Uk¥ƒVma@¯k@Wanwmƒ„@@n@@m@UIVƒkUVamUXWƒaV™U_™@ƒmUVUImW@aUIĉK@VmI™b@lU@@n™JƒkU™@KƒIUmmLk@UVm@UŽm@@LkbU„mJXlbV‚@xUbƒ@@bkK@LWx@ƒbUn@xmbÅW@nWLUKUbUVƒK™U@LUK¯„mU@šVV@xULUŽVL@bU`WšUz¯aUamKUaƒ@@xkX@x"],encodeOffsets:[[116832,34527]]}},{type:"Feature",id:"4114",properties:{name:"商丘市",cp:[115.741,34.2828],childNum:8},geometry:{type:"Polygon",coordinates:["@@XVl@lLȃ„@VkV@V»UanƒWX@VaÆÇô@ÈaVX@xVJXUÞU‚aVLĸbXKl„V@šm°Vn_ny˜XX»mUk¥lK@a„_@yšInaVKVa°_@WXI@ƒ@K‚VnIlbnaV@„l„@‚a@_w@ƒlwUKm™Xa@UV@š»Vƒšw@kUKVUUm@w±VUXUKUwmJUUƒ@km@@±mXkmUI™@mm™KUwkbWakLWaUIkJmŽƒX@l@@VUX@JWbX@VbULWbƒlUVULknlV@bVJk„mb¯KknWmk@@nmVkx™@ƒVmU¯KUnUL™@ƒJUIV™maÅaUm¯X›l™kk@@lk@WI@yUUU@ƒb@aUaƒUmVk@ƒƒ`nxUXlb@lšLVxUbUbVbUll„k„VlÝVUnkVmKUXm@klƒ@ƒnUx@xnxƒn@`VX@V²x@V@b@„Wl@zU`VUVVb„L@Vƒb™W@bkXllkLWV@V„@VVÈwlVœ@@X˜K²Llb„WnnÆL@VnJWn"],encodeOffsets:[[118024,35680]]}},{type:"Feature",id:"4112",properties:{name:"三门峡市",cp:[110.8301,34.3158],childNum:6},geometry:{type:"Polygon",coordinates:["@@WKUmUI°ƒU@@UmU@KnK@IƒaU@makKUa@_‚KnmVU„L@a‚ƒ@IXm@KWkkKVkUU@aUW@UUIVaƒymwkbU@ƒx™LVUWWkk@WUkJk_WWk@WI„ƒUK݄k@WKULka™@mwĉ¥mXUK™@@bƒm@k—VWwkU@m™UUƒlI„™Wm@™@Uk@@KškVmn@lwn@@Ul@Xm˜UXUmVсkmkV™KUaVamaUXnƒ‚@ykLUKƒ@™WwKmKnUm@UmƒƒaU@mUk@kL@lƒxċxUnkVmnXxWb@`kzWJ@V—LmVUn™lmUL@lW@Ub@VšXUbš`VLUbUJ@nmnUlUUm@@bUJlnU„š‚U@lxkbƒ@@XƒJUnƒ@kb¯VVVmlXXlJlzn@VlkVW@bkK™bmškŽUbVb„lƒXVxšKÈnšwÞlĊKlšVnKlwX@lL@xlUnVn„@šl@lmX@ƄÈb°¼ÈwVJlx„_°xšašlšUÈxlUnbVxnL@lllšbm„n@nb‚@@V„L@V„@@„VLšJnIVVlKnV„_"],encodeOffsets:[[114661,35911]]}},{type:"Feature",id:"4107",properties:{name:"新乡市",cp:[114.2029,35.3595],childNum:9},geometry:{type:"Polygon",coordinates:["@@XVlL„K°bUblbUbšl@nX@W„XVVKVkš@@Žmb@„Ubn„W`kL„LƒV@VVLnKlVXIlVš@@a„@l£nWlƒkVa„@°bnUlLVlna‚bnUVUXKlU@ƒ@lk@a„I°y„@ôkUU@wšmôšnkWakml™UkVmkUlmUUm@nkUKWanamU„LXW@U‚VnUln„`l„œblL°KXV@ĠJ@L°„šJšUVw„anK@UUImmƒkK@¯±Um@IVmUmmÅnWaUK¯aUk„w@W±kVƒx™U™VƒwƒnÅJUIWaÝJóI—bm`ÝbÅImJUI¯¥¯@mU¯UƒJmnUVóUkl±V@zXl„bWVXL@bm„mº@@XmJUXU°llk„@nWJk@U„@¦U`m¯ŽWx"],encodeOffsets:[[116100,36349]]}},{type:"Feature",id:"4104",properties:{name:"平顶山市",cp:[112.9724,33.739],childNum:8},geometry:{type:"Polygon",coordinates:["@@l¤UbVL@V„LVb²VlKlaX@„„lbš@lxUVULƒbšln²VJUbW@@L„b@`nL@nVV@LVŽUbUVm„kVl„ƒlXbl@Xn°ŽVK@_°`²IVVV@VUVJnInaWK@Uš@„K„LÆ@nmlXXWVUUw@klKVa@knyVkVanI‚JXUl@XbVUl@@aša@mXk‚bnK@UlK@UUUVaXaWmkUm¥n—WmXaWaœkl@VmÞb„KVL@aVI@mUwVm„@KōméUL™KVaUk@kUK@U˜WXI@VlKXU‚@VVnInVV@VLlK@UUƒkKU_@ƒWWUwU™@klƒn@ƒƒ@Imb—@@m›nUKÛ@mKUkWVXxmbVLXŽVVU²VV@xÅnmWmLU@kbmJ@b¯š™IUb™JƒUUxVl@z@bU`W@Ub¯nUJUbƒ@WLUKULkU@aWKƒ@aƒbmL@ƒlmUk@@bUL™ƒWJUI™°@ƒŽ¯aWLk@mbUb¯b"],encodeOffsets:[[114942,34527]]}},{type:"Feature",id:"4101",properties:{name:"郑州市",cp:[113.4668,34.6234],childNum:8},geometry:{type:"Polygon",coordinates:["@@@nWVUKÅ@W„nVnI‚ŽV@œkƂšwV@šnn@lxÞlnôJ˜zXJl@nalUČVlƒl@²UlkôVVUnm„I°VnV°@°¦VJnIÆJÞan_VmU@ama™@kU˜¥kaUklw@UIV¥kVUI@ƒmmUÅmUlƒwVU@amU—JWbUakVƒ—Vé¯Im`ƒk—@ƒwVWmLkU¯ŽƒXkWmLmx@UUƒbm@@x™J@LbW@UUVWUkVKƒ@ka™IUamKUkkmmLƒUkJUVWXkWmnÅ@ƒKƒL™@@VXLmbmJUIUVU@ULWVkK@nWVXL@lVn@¤„b‚kôKXKlL@¦²V@JƒL±@„@VU@WV@X@`XXmb@Žšblaœn@Jƒb@V"],encodeOffsets:[[115617,35584]]}},{type:"Feature",id:"4105",properties:{name:"安阳市",cp:[114.5325,36.0022],childNum:6},geometry:{type:"Polygon",coordinates:["@@°kVaV¥kVmUkWkWVkVKUwkkmKUU@a„wWWXWakKWkXmlašIVmX¥ƒU@a„@WnK@kƒƒ™V™I¯ƒ@KğI@WU¯LkK›akƒƒ_kmmVU@VWXƒKnVmbXbVLmln@VVknlVUnVlkšlnXbmlmlXblnÈlWbn@@nšK@V„L„bVV°VVzšlnš@V™xƒI™b™ŽU@WLUa¯V™UkWõ@¯kkmxk¼l‚„XUlVbVLnlULmU@lƒLkVUlƒX@xW@¯mUƒ@UmIUW™L@aXa˜kU™¯anƒWk°@k™kKmmUIWaambUkkKmV¯aƒ@UblŽk„mXk¤ƒ@@b™@UbULWVnb@lUVVnmšnVVU„J@bWXX@WJkL@blVU°UV@XlWnXUbW@UVkVšVWbnLUJWLUK@Lnn@blVU‚„nUblxVUVJXU„a˜@Ub„LnUVV@mVIVVn@UbV@‚XbmbUV„_lVXUWanJVI@WkI@WVIVU°WXXl@la@mX@lLXl‚kVbœm‚X„ylIXJV@@kšKla²UVa„IVyÞb°LlVna@UÆKnLVbšK@anwU™"],encodeOffsets:[[117676,36917]]}},{type:"Feature",id:"4102",properties:{name:"开封市",cp:[114.5764,34.6124],childNum:6},geometry:{type:"Polygon",coordinates:["@@lUVbXa˜InV@bUV„x‚knVVÆnn@„VJlUU¦VJ@kxVllb—¦lVš@nb@bVŽUn˜aôJÞIXbVJÆI„m„xšUšV„w‚U²l@XƒxVl°bVLXb‚`XklUnmVblLœ@lmšx°LVK@UXIVašWlL@Ukƒ°KkVaVUXmmI@UÅKmmƒXka±K—L@W›@kUÇxUUƒ@@UXUlKkklW@ašX„a@UƒKUaVUUV_@yXk@ƒ@a@U±w@UUW@_„mmw@wVw„mUaÇbUa¯UUkmWkn±JÅxmIbUxmKmn—JWw„kUaƒK@a¯@ƒbk@mVUIWƒ—Lmwm@Ua@WJUb@LUl™@UUmLUbWJ@VL@VmXWWzUJUꄘ"],encodeOffsets:[[116641,35280]]}},{type:"Feature",id:"4108",properties:{name:"焦作市",cp:[112.8406,35.1508],childNum:8},geometry:{type:"Polygon",coordinates:["@@V@VL@x@bXŽWV@XkššlUŽWX@J„@nI@KlL„KšUVaV@œJlL@KUk@KÞL‚l²_‚@nWlL„UVVš@nLWVUJVn@anV@a„wÞUVLVx„b„@lW„@lbXn‚Vn@@¼šL°mšKVn@bnl@nVK@blb„L„W„U@VWLXV@nlKn@lVVbXw°nV_@¥Vƒl@XI@mlƒkkV¯VWnI@W‚@n¹nƒ@aWKXUƒaWk@yk@k„ċUkVmbk@WI—yóImÝkkwm@™mU@™xŁ›lU@mJƒX™ak@ƒx¯V@¼¯Vm„UmmIkVWK@UXIl@UWVUU@mVUI¯b¯@™lmKzWKUa™nƒJ@nƒlbÝ@@b"],encodeOffsets:[[114728,35888]]}},{type:"Feature",id:"4110",properties:{name:"许昌市",cp:[113.6975,34.0466],childNum:6},geometry:{type:"Polygon",coordinates:["@@lI„VnKlnVlnLVbšJlb„@ULVlUXVVX@‚a@KšI@wn@„aVV‚@nwnKlX„W°lVnKUX„x˜@„ln_°JVIXy‚XnW@U‚K@UXIVanKVVš@Vk@KVaXI‚@Vbn@nx˜KnaU™l™ƒn™Va@ƒXa@™VçUUla@aUK@wmUƒLk`kIWVkLmK@V@XUlƒn@JXV@nm„™bU‚óIƒmUa±@@ÑóVUUk@UlKVU@akWVUUlUUaUK@UUKWbUkÅJ@XWaƒ@XbmJ@nUJ@bUKƒLÝaUnk@›lXbWbXnm˜n¦lVXnWbUbVV@VkL@VmLaWl@n™b@bk@UVWak@WVImJUbUlmz@lUbkL@lVx"],encodeOffsets:[[115797,35089]]}},{type:"Feature",id:"4109",properties:{name:"濮阳市",cp:[115.1917,35.799],childNum:6},geometry:{type:"Polygon",coordinates:["@@lLXbW‚XXƒx@bVVnLllVxULUl‚XXlVlUnlŽU¦Ub¯l˜nœK@V‚bVb@šXbVL„KVxVVnIlašb„a„¥lU@wnalLnVVlVLXnlWVXn@@lVI@WnU@mƒÅW¥—aW_k@WwXy@kmƒ@wU„mš„š¦šlUxVLV@UwšJ°xš@VX„@Vb„@š`VX@VX@llšIVbnJlI„bšV„l„˜J@ƒmѯLóa@ƒƒKUa„k™ƒ™Xƒ@UK@wU@ƒlWUUݯImW¯aƒLUKU@ƒkƒ»k@mƒwƒa@UnKWI@ƒUU@akVWK—k@a±ƒbóUWKXUmk™KUmLƒbUx„„@lmLXŽƒ@@b„VW¦Un™JkbWnXl"],encodeOffsets:[[117642,36501]]}},{type:"Feature",id:"4111",properties:{name:"漯河市",cp:[113.8733,33.6951],childNum:3},geometry:{type:"Polygon",coordinates:["@@@Lƒ‚UnVxnIWa„@Xb@WÆIVlXaVL@VVLVbkVVŽUVlX@bUVkLV‚l@VVôU@Ò²@Vb„nôJVšanƒ@mWU@I„mVk@WkI@wmak™@wlW@w„@VbnLVb°bVyX™V_@aUKVVK@wUU@™™a™K@kmbXVmJUXƒ`kn™nƒK@aU@mw™akb±@¯ƒUUÝKUUU@WU@VkLUKU@mUmJUU@WVkL@UWJ—X@VVL@lVlUbšLVKnêÆŽ"],encodeOffsets:[[116348,34431]]}},{type:"Feature",id:"4106",properties:{name:"鹤壁市",cp:[114.3787,35.744],childNum:3},geometry:{type:"Polygon",coordinates:["@@ó™™n@xVVólƒ@¯zƒJ@bkl@@„kVWLUVmVXbVJnnlLlš¯@Xlm„°bVš—lWb@bšKVXnJ@VV„°nX@@w„WVklU„K@knVVKmkUKUaVkƒWkl»nwlްlö@lXšV°UVbXKV@šša„Jšw@Um™™kUy¯UUUƒaƒK@U™L@mm@XaÇkkmWank"],encodeOffsets:[[117158,36338]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/hu_bei_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"4228",properties:{name:"恩施土家族苗族自治州",cp:[109.5007,30.2563],childNum:8},geometry:{type:"Polygon",coordinates:["@@VK‚bX@lbUVnL°„@VlVnUl@VUX@„aVƒmaXƒlašUUU@wmaVUn@Vƒnmmk@m™U@kna™aU¥Vam™X_@WƒU™mW@_kƒVaVKnL‚lœ@VVal@k¥@kUW@kUKVUlUVсW@kÇaU»ValmkUVUVak™@aƒV¯_@W‚UkmVUlU@aœƒƒalI@akkVWUaWXUWwœWVbÆ@„„l„alIVK@U™m@UU„W@al²a‚¯UağÇm@ƒbkk@wƒ@@W™aULmxƒIU‚™ƒb¯@U`UX™JmL¯aƒKX›WUL@aknmK™@aWUXaWm@I@UÅmVU@™™aUV@b™VƒI@WkU›bXkm@VakwUKULWKXmJ@XUK@ƒmL@KUwVaUI@KU@mmn™mXka@»V@@UUaƒw¯yVk@ƒUUVmmkÛÈU@mWUnmx„šmlUbV¦UlbWVUL@UUƒ™IUmÇKV„VbUVVxkn™LUxV`VX@š„„kJVVUXWaUVVlUnmKUbkI@WULmK@L@LVlƒLnmUIWV@aknƒ`VXUJIVlUVVbUX@¤mbnLm‚m@UXk@mm@Ukaƒ¥@kV@@KkU@aUKWbkLWVkIVŽk@UbVlmX@bU@@mmL@bn`@Ln@llVLVk„@XVVU@`VXUš‚¼k`VULka@VllVIn¤VU@@bl܃bkx@bkL›škKƒn@bn@@b@JUnV`UnVbVKlVXUlbn@°ƒVx„@@b„nVbUllVn@V—VK@UnW@UVUšlnk‚VÈޚxVb„VVI„xVaÆ@@aka@UVaU@@a„k@Wl@nbVIƎ@Jk@„L@VlXnlla@VJnw@UmwXU@aVK°ÒnllnLlb„xnKVaV@l¦²nVl@llL„x@XVVœ‚͐š@našx@U@al™XUVa‚LÈþV°XxWXkK@šmLnlUb@b‚xnLVlVVkb@UJ@xWXXš"],encodeOffsets:[[112816,32052]]}},{type:"Feature",id:"4203",properties:{name:"十堰市",cp:[110.5115,32.3877],childNum:9},geometry:{type:"MultiPolygon",coordinates:[["@@@a@w@kV@nbVK@ƒnUla„@la„Ål@nlVakwWX@WkLšaVmšwV@anK@UlIXmWkk@@mmLkWlwk@U_mKXwWK@U¯K@UU@ƒVUa™kmƒkI™yUUVUmanU@mlwkƒ@_mWXaƒUWU@ǃ@U@aUaVwUKUIƒVkK@UWIXƒmaV@k@Vm@UnwlƒUamk@V@„ULUamxUJkU@Iƒ`WkkK¯XWak@@W@IUV™LWJkXkaÇVUKƒ@kUmbmUUƒUKƒbkKWUkI@ƒkKÝ@@aƒUm»nI@mƒU@UnWV_@aUmWbkLUl¯b@a›kkk@WkkJm_k@UV±@J@b›nU@@WÝIUJVbXL@nlJkx@„Wn@VkJmb—LmUƒ`VbUL@xVn„@XVƒŽ@„mVVnnJVbU„ƒx@„V„nVUbVVƒx@šn„™bUK@bƒ„@bƒJ„šm²„VU‚lbXzVJV„„JVbn@@Xmb@V@bVJÈ@‚Vnkn@°aVVV@šX„KnalLVmšUnnVKVlnLWlXX„Klk°š™šXŽWškLUVVV@nU@ml¯nmbk@W`Å@mb—LWm¯UƒxnêVèk@mbƒVƒnUK™@kKmXk@@JUI›lÛLllnbVnlJ@LULnlÆaVLnŽV@nkVJ„@lkô@²bÆm°w„L„WV@VXšKšVXI@W°ÆVšK„b°U„JVIVV„¦XKVL@l‚InaVÝnUl@@bX@‚™nmVL@lVL„lVLVUnbVW@xXn˜bœU°¤V@š™„a@kWKUUn@VlnL@UV@Ü»@mX@V_ƒakaÞ@VK‚¯@kkW"],["@@mUkUUm@nllVKXXVK"]],encodeOffsets:[[[113918,33739]],[[113817,32811]]]}},{type:"Feature",id:"4205",properties:{name:"宜昌市",cp:[111.1707,30.7617],childNum:9},geometry:{type:"Polygon",coordinates:["@@°`„U@blšUbUVlVkn‚ŽUbV¼Èb@l‚XUÒkVUVVL@lVX@ll¦k@UbU‚›@kmKULUbl„@`nXšŽ„V@XW`nšUbV¦šbmb@lšV@nnlmnU„m@UVnb@xVV™VkbW„nb‚VnVa@an@UaVU‚JXnWlXX@l„¦@ŽlKÆX„bX‚V@VV„@°¯°xXx‚XV@nV°UVWU_VWXkmaVnWVkn@lln@lb@UVLXWlnX@˜aXUmaVK@UXU„U@WVI‚W„XXV‚U@¥VKœ@‚Uގ„„‚a²LlV@kV@UanKma@UVUnK@UVLXyVL‚knJ@UV@@UXKWUXaV@Vb@mVLnKW„m@aUUm@@UkK@Ula„LXKWaXI@alKlmUk@wVKXL@m@WWn@UVa@K@wna@aW_XWWkXbVW@k@U¯WWwka@UUaVIVƒkU@m±@U@@wVKkaš_@VV@XUVwU¥‚šyUkm@V±ÈUKk»ÇL„m˜mLk@ó£kmWwƒm@U„IkWKXwWU@ƒkLƒwkbmaƒbkK@VƒLkmWIUKkUUƒÇIǫJ™XÅJULVŽÇLUVƒ@UK™@kI@WVI@UaƒWmXVVUL`±kÅLmKkƒƒkƒÅ@Ua›XXxWVXŽVbUXll@bkJ„b›„@bkVUVlnV@X"],encodeOffsets:[[112906,30961]]}},{type:"Feature",id:"4206",properties:{name:"襄樊市",cp:[111.9397,31.9263],childNum:7},geometry:{type:"Polygon",coordinates:["@@@Xl@Xb°WlLXl„_@JlVVInwVbVK@ƒ@UnlVbk„mx@VUnl@U@nbW„XJ@VlL„UVJVLUxVb@b@VȄ‚@XV„VWbnX@`l„kx@nmVnbUVVVšzlJn„šlVb„UV@@V°L@VXLWxnLV`l@kxlXnK@nl@XlWn„`Xnl@@UVa@VÈKš£VLVanW°U@UVU„@„`VIn‚mV@„nV@Xa@aVW@UšalkXKšblI„yƍXnlJXbl@@VV@nklU@`„nVK„LVKVb@V„U@UÈK„UVKšIlUX@V`lIVbn@nblVVmV@@XXJšUVV@knKVn@`@X‚VnK„wlLVmUUU@ƒU@aXL@WlU@UUW@UmU@KkLWaXkWmXUWm@U@ƒnk@UmK@U@UaUVUUKV_@al@namWUI@KUƒK@aV@WUIƒbƒ¥ULUJkIm™ƒK@U@K™V@U@a@UkU@K@wVaUwlU@mUƒULmKUkV@@anIWmUK@I¯„mKkl@LUb±lUakLmk@WwUKÝVUIm`¯n@Uk@makJU_@ƒƒJma¯ImwUVkKƒb™aUÅ@wWaU@VU@mXIVmmUkJkwm@mIlUKWzUK@VmLUV@VnbmLVbU@@lkU±KbƒƒÝV›@UL@¦VWUƒWXUJ@XƒVWV@VULnbWV—bW@kmWXUK@Vkam@kkm@UlmXUŽnbWlUXV`UX¯VmUU@Ul@Lll@nnJ@LƒnWmbmš@b™`ƒš","@@kUUm@nllVKXXVKmU"],encodeOffsets:[[113423,32597],[113794,32800]]}},{type:"Feature",id:"4211",properties:{name:"黄冈市",cp:[115.2686,30.6628],childNum:10},geometry:{type:"Polygon",coordinates:["@@VVUnWVXnVJ@„‚U@V@VXŽV@@IVJUnŽ@V@L@KlIVlVanLVbnVlI„ƒn@@a@Kl@@I„JlI@aXU@KlK„kVblJXU„VlU@V„bVkVKXn@VlxVa²I@VlVUxln@bšJXklaVWnLmÅ@y@k@ašI@W@aXIlVVaV@nnlKnLVW@IUa@a@K„UVVlI@wXKVV@IUƒla„@lUXwWƒnƒnalLlxXLll°@XwVKVaXIl™nb˜@nln@Va@U@k°ƒUmÆUVaXI„JV¯ÇUmmkU@WaKmakVm@U@aVKkkmKkVmIkǰ£@aUUVaVVnKlkX‚mkƒ@ƒlUVaX@@Um@‚™UmlUXV„UVU@w‚K²¥Ua@I@UV™l@U™V±UIUǰ»VkUmVI@a@U™m™ĉ™¯V±bŹĖğaÇL¯lmŽkX@‚óĀ@ŽmšÝêb±WkLƒn@xXx@Ž@b@V@LW@UbƒlţXƒ`kxWnXô¯¦ÆV@L@JVLƒxkK@V@bkz°l‚lXz@J„UlVla@XUV„bVKXnW`XXV@laVV@V„X@V¯xƒx@xULVbUJ@n@LU@VmmakbUK@b™IWWUUVkUmkLm@VJkb@nUJƒ@`V@kX™aUaVmmLkUmJ@Uk@U„±lkzmJUb@b„VUxVXU¤ƒL@JƒX@VlL@JkLUVU@mnUl„¦@V"],encodeOffsets:[[117181,32063]]}},{type:"Feature",id:"4210",properties:{name:"荆州市",cp:[113.291,30.0092],childNum:7},geometry:{type:"Polygon",coordinates:["@@ÈJV„lVVLXJln„K@UlL„anbla„xlK@„XVWxXLlƒJ@V„nXxlnô¤l@nKn—‚ƒÈKl¼VL²Ç‚Un@Vl™zŽV¦UxWVU@@U™`lbUL@xV@²@@nlVU„UJVb@VlbXx°XVWX_VKUwVKVa@UVKUUVk@KnblaUU@wnWl@UX@lÆ@@a„IVmUk„™šxVJ„U„bܙ@Uk@WWnk@Vƒ„™Vm@I@m@Un@m™XUlVlUnJ@knJVU°@@aÆLX@ƒllL@¦nJV@XblLVa²U@UlWš@VX@`@LV@@bXJlIXml_lJœU°b„KÆLnVVl‚@ö—Vƒ‚mXaVIĢllUlVnLVlX@@b‚ašnnxšV„L‚bn@°ÆXmmkĉƒ¯w±™™™Uċ@KÝÅƧŃÝ癙Uw¯ƒm™¯k@W‚kV@¯UIUJW¼kb™Uƒwk@W`@¦Uônb@VƚlÈ@VU@ƒƒ£UWWnUÆUnmJkUÇ£VWUI@aUU@WkI@Uƒa@JW@k£kaWVUKmnkKƒb™kkVWb—VmUUmwU@kk›@UakUUa@V@nlx@lUb±lUbnnWLUyk@UamœUK™@mlk@Wb@VXL@x@xWI@a¯Ž¯V@bVn@LkKmL@`XmKmVU@@bkL@V±bk@Uaƒa™L™KUVƒIƒ„™W™XamVVbUK@b@Lm@UWkxULWVUnm@UlUX"],encodeOffsets:[[113918,30764]]}},{type:"Feature",id:"4208",properties:{name:"荆门市",cp:[112.6758,30.9979],childNum:4},geometry:{type:"Polygon",coordinates:["@@n@lxlInVUnWJ@nUVV@Xb@xVƚb„alLVUnx°Jnb„I@„V`lInbl@@V°mn_VJÞUVLXx‚@nllKVb²kVa@KlknL°ƒ@JVLXnmJ@bU@VlnLVKV„@nX@lUšKVaXal@VKn@¥°L@Unw˜bnašV@KV@VUX@lVXI@KW@@IXWV@laVL„„KlaXUVVnkVWV@lwXblIXWVkVmšaU£VaUmVIkU@y@WakKUamU@UUK@kmK@w@@mK@LƒV¯™U@WwkmULƒamVVUU@ƒƒIƒbUKUa™kmƒm@UakLmxU@UÒWlULţÿmwkIUm@a‚kÈblW@UVƒUUk@JW@XkWWUkUKUIlw@aUWknWUUmnIWƒ™aUwVaۚƒaƒVUI™wƒšVlUnƒJ@bÅ@@kVWk@mX@xVVkbma@LUlVVUL@VUbULVxULW`UX@V@lUXWaXlWXX`@bmb@x@LUb@VmŽXX@‚@nWKUL@xVlknkL@bWJXbWLƒKkb@VlL@Vn@VV@bƒnX‚mLUK@nUaU@WbXVWL@VU@@V"],encodeOffsets:[[114548,31984]]}},{type:"Feature",id:"4212",properties:{name:"咸宁市",cp:[114.2578,29.6631],childNum:6},geometry:{type:"Polygon",coordinates:["@@ÞÆ‚LČ@šV‚š²š°xĊ„nlWnŎ¯m@aƒK@„„°‚n„Jšwn™VIUaÆJšÅ@wšwV™XW@aV_l@²V°lĊwlaXLšwlUkalVVaX@lVXI@a˜UXJ@U°UU¥VIVKVklanLVa@VÈIVV@nk@aVa@mV_@a„K@klKUa@UnKWk@@lU@@UW@@nUWUwmaVIXƒ„lV@mLXblJ@kV@kk@KU@WƒkUWVÅwkLmW@UmL@lUL™KULƒak@maUUÝwUJƒIb›KUUƒ@š™aWK@kUWVkUwVw@™mÝ@™I@wkW@a›ww@LU¥™kƒJ@nVJƒIkVVnkV›UkyUIUl@xWUkaW@@°kz„ŽWxkLUWmzk@@bVVVš„b@‚@XlVœ@Vl@bVbUn™`Wn—@Wb„VVI@`„LVbXLV`mnU@@lƒL@LUŽƒak@ƒLk@WbUJn¦@lVb@xVb@n"],encodeOffsets:[[116303,30567]]}},{type:"Feature",id:"4213",properties:{name:"随州市",cp:[113.4338,31.8768],childNum:2},geometry:{type:"Polygon",coordinates:["@@„@nš`lw„k„ƒ„UmUVWX@lk„@VanUĠ¼V@@mX@@nVV‚VXLmJVLnK@b„V@@J„@VUn@VaVUUUVWVLV@@Kk_@almaVkUU@WVƒVUVLXmmk@wUaUKUV@°™@kmaUaÈmW„mUƒVklaX@lVnxl@@UnaUk@ƒVUVwVK„nš@VVn@VbVJUknUmmVmk_Vw„KUUm™Vak¥@UVKVIkW@UmIVWkIVƒkmmLkwmVUƒ@LƒUU@VVXL@JmLUbmK@UUKmkKUUmVUaUnÇlk¯™mJUnmLUaUJUaWL@UkJ™ƒUƒ@ƒaklkU@¯@KWLUmUUWVkbƒLƒŽUKkbU@WX@JX@@LWJkUW@UVU@@L™Umb—amx@V¯K@¦mŽULk@WbUb™LkVW@kVVxUb@x@LlV@V@b@VšU@L@V„LnšlJVIVK„¦„aVJ@XUŽ@b„LV‚@LVJnXmbk@@bU`VLUVV‚b@V@VnL@Vml@„@VXnWVXnWlXblK@LnV@VVX@VkV@XWK@b„VV@VV"],encodeOffsets:[[115830,33154]]}},{type:"Feature",id:"4209",properties:{name:"孝感市",cp:[113.9502,31.1188],childNum:7},geometry:{type:"Polygon",coordinates:["@@VnXK@L@°lVlk„b„@„VšlI@VXKVbVIVbnKVmnI°šlŽÈkVmVbnUVVlLnVL@VnLVanK@IWKUUV@„V@KV„nUlxnKlnU„lJUXnJ@VlXUJUL@Vl¦UbnšVVƒLUxl`UnnnmVVlnVK„bšmVX@a°Ý°LšaXJV@VUnKVXVK@LnKlLUbVVX@VwVJVn„@@UU¥V@@UUK@ƒmaUVUkkJ@L@K@UmVUI@JU@W@U@UV@ƒUIWmXUVmUUÇ@UVmIlmnmakK@akaW@UwVUkKVnUlKVwk™ƒVU_WKUkVW@UXaWkUa@w@VU@XaW±@IkbƒKƒb¯L@WƒXkWƒ@UakL@UV@UmVUmL@UXWVL@ašUƒVUUUVU@yUUƒIUa@wUKWVU@kƒ™™Wk¯UkwVKƒLUx™K@nVxUlUUWVUmw@wƒUUyXWlX¦WbUV@„U‚@blbUVVbXXƒl@lVL@bk@lxkVVnVx™¦ƒ`UnkL@V@L@Ž‚@@xnL@lVL@VnVVblLXb@‚@zlVUJVnUbV¤™bUnUlWXkJWakxU@UXml"],encodeOffsets:[[116033,32091]]}},{type:"Feature",id:"4201",properties:{name:"武汉市",cp:[114.3896,30.6628],childNum:1},geometry:{type:"Polygon",coordinates:["@@nbnm‚knJVUÈ@@Uƒ¥VknmV@VUlK@IkK@U„W@I„KV£UWVwƒU@aVanIly²kVƒl@@VnIlVnKUnVbšblWU@@_„‚VI@mlaUIn@lKVnUlVVXXšJ@aVLlanbUnV@@K@mVIUaVK@w„w°w@UƒW@UUUkbU@WWX_WmULƒaVU@WkbkUƒV@IWyk¯kly@a@UlL„wUK@I@KÅUW@ѱUm@wl¥kaƒ@@_Vw@ķƒa@akw@ƒkKW£XVUVwVwUaU@VUU™™xWKkbĉx¯k±Uk@U`@bWXUš™x@x™ÆÅIVbUJmš™xƒImƒ¯@ƒ™Umx™nUVVbnJV„@Lƒ@@ŽkV@bVnƒ@UVULlx°VXlššl„V@XUVL@xVb„JVV@zUVVVUV„™V@bUKWX@VnKUVVnU@@VlKVb„@lX„W@X°K„a„Lla@JX²Wb@ŽUV@@xVbXlWb@VUXVlXLV`Uš„lŽUxkLmVUŽlLUVVxX@lb@blL"],encodeOffsets:[[117e3,32097]]}},{type:"Feature",id:"4202",properties:{name:"黄石市",cp:[115.0159,29.9213],childNum:3},geometry:{type:"Polygon",coordinates:["@@VšUVV@VbUx„aWUœblUVmnKlX@bXJVIlVUxVVVIU‚zlx¯š@‚VbnL@x‚x@UVaXK„b˜@Xk‚WU_Vm²klW„XVK„Žl@nXV@@w„mlK²X‚aÞén™@ôÿ@lWn°kUKmmUљUmm@ƒwkImWU@UakL@bVLUVċ@™bUK@alIXKWK@™nXnKmkUVwƒ@¯b@L„lUL±W™n@KULUaW@kL@lƒL@bU`@nUb@bmlU@UÇJ@UUbmKkblŽUULUJV¦¯V@VWI—V@bWJkUW@UbkUlbkV"],encodeOffsets:[[117282,30685]]}},{type:"Feature",id:"429021",properties:{name:"神农架林区",cp:[110.4565,31.5802],childNum:1},geometry:{type:"Polygon",coordinates:["@@n`lIXll@lœl@b°aVklKXaVn@bU`mX@V„V@nmJn¼„V@bÞ@lL@„lJXVlL„aVLV„nVnalV„@VLÈUlblWXIšKVU@J„™š_‚@an™na‚X„m@KmI@mkk@KVkWWw¯w¯°ƒ@UUU@WƒaÅWkL@ƒ¥@kWWXkWmIUVVbm@@bUbmUU„ƒbW@UVk@mVkU@U¯ƒmKVUkaW@aULƒÆVbƒb@VÅ@Un@VƒLWl¯Lš„"],encodeOffsets:[[112624,32266]]}},{type:"Feature",id:"429006",properties:{name:"天门市",cp:[113.0273,30.6409],childNum:1},geometry:{type:"Polygon",coordinates:["@@@K@UlKVm„_š¥UwUmlUkwl@@aUK@k„kWWUaVUka@aV@ƒVUXaW¥Xk@WWIklm@ÅxmI™VÝUkxkaƒ„@bWJaUL@„W@™l¯UULU‚ƒbƒkV™Ua¯bm¤UnÇUkmUšUx˜b@VkXÇal@bVnlJnxŤĀVKXkVÑV@nwlKVbn@n„šlVbVL„a„J@„VV‚UnU„bVKlnXxV@°š„U@KnL"],encodeOffsets:[[116056,31636]]}},{type:"Feature",id:"429004",properties:{name:"仙桃市",cp:[113.3789,30.3003],childNum:1},geometry:{type:"Polygon",coordinates:["@@VK°VškX@@ƒVK‚bXI@a„ƒlblwÞVšUnJÆwn@lkXJ@X‚WVz„V@xnx‚VXUVVVkUw@mšLVw„KVU„@Um@alU@„@@KUƒmIUaVUšmnwmw™mb@aW@UkmKkUkVġkUJWbnU„õ˜@UkmUÅKƒL¯a›VkIk`WnkJƒ@xVLUVVbUbk@WlXbm„VxnxUblbUV™@@VUV@nVL"],encodeOffsets:[[115662,31259]]}},{type:"Feature",id:"429005",properties:{name:"潜江市",cp:[112.7637,30.3607],childNum:1},geometry:{type:"Polygon",coordinates:["@@UbVxšbX„mJVnXVlmVX@bkxVJVLVlXXWlX@@IVl„V‚U—aVwV™lnÈVVmn£°aVbUš„l„aVUK@mVU@Uš@VUkaVamwUwnƒWaXkl@VaUaVUUK@w„WI@aU@@K@_UW™@kX@V±VUbkKWaU@mI@¥kK„kW@ÅK@b¯@UVmI@lmIkVkUWVnšm@@V@n@JUnƒšU„@ŽmlXXl@@V"],encodeOffsets:[[115234,31118]]}},{type:"Feature",id:"4207",properties:{name:"鄂州市",cp:[114.7302,30.4102],childNum:1},geometry:{type:"Polygon",coordinates:["@@°¥WóXmlw„_ŤW„kVaX@@K@U@a@WwU@mWk@ƒULƒWkX±lUnV`XWl—@ƒaWLUb@Vw@wmKUa@°™kw‚yVUJUUVwkUUJWI@akWmLUnkV›aXVƒbUxUVWX¤lL@„lx@b„b@ĸUx@`„@lbk¦@x‚n²VƄX@"],encodeOffsets:[[117541,31349]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/hu_nan_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"4312",properties:{name:"怀化市",cp:[109.9512,27.4438],childNum:12},geometry:{type:"Polygon",coordinates:["@@@n„‚@b@XnJ@k°x@aVUnl‚UXnV@@VnJWUJV„nIVV°ŽUbVVVL@޲LUVa°V@aV@nm‚UXblLXWVXVmVLVK@an_„`@X@l°„VlXXW`nX@Jmn@b„@nV@Lm`„bUb‚n@VUVl@nIVbUlƒV@LkJUnVV@xVblVUbU@ƒzUKU@mx@xUnn@@WV@lbUb@šnVWXX‚V@VIV@VUnJ@VUz@JWbXllI@VXVVL@ŽVn@„„Wlb@„Žl„XVlL„aV@VJ@XX`„kVwVl@bk„‚bUŽlVXIlƒnLVa„mVwV@@nV@XaVJVbX@lwV@n„@nV@VWnIVVUŽÆ@Xx‚a@I„UUKmk@mVƒ„IXmWUš™VJnUVU@anaVwk™›U@UXa@W™@m_@a¯@@K@UVƒ„bnK@blIlbXa@WW_n@VƒU@¯bmyƒUkUJÇÅ@WU@kWKÅwƒnm°KVkmankVWnXVWV@UƒƒwXkV@mƒ„UlLnaƒVaX@VUn@VnVK@xlnXWšU@a™@@klak™Vw™mUaV@™wmIÛ`m—@mVUXmlIXƒV‚I@K@aU@UaV_UK@wkUmmUKWXŽmVkUƒL@mƒƒU_nK‚™@aVU@Ukak»@U™™@ymUƒ„¯™ƒUUƒVKkam@™nka@ƒmwkLWb¯mkaƒ_VaVKUƒ™IUw@kKmU@WK@UnƒmaULkU@wUalWV¹U@@WUI@WU@‚_@W@U@mƒU@WbbUK@Um@@UmbUwWWkk@WU„a@anUUwlWUwUU@wlJVUnnV@@mnI@m‚K@U@w„a@wUm@_mƒVUUaVUkƒƒƒ_kċUk™VWLƒ@mlU@kn¥W@UwUWV@VÝU@lXLWVUbVLXlVIl‚knmU@VUJk@@„ƒ@™kVmwmVkxU@@XmVUb@xnKVLl@VxUxkIU`@bWVXX@JWL@bkb„¤@bmUUU¯Kƒkmb@V™VU„VVn@@„Vb@`lnœxmb„lUn‚bk„@xU„mV@bmWbUV@VJ„Il@nVUb‚K@nn@VbnJVIlJVkXJ@X@lmx@bnnWVXJWXU@UlU@mk@@llb°x„IUbnJ@VWbXVmI@JVX@bk‚@bWL@JUXUK@U@Uƒ`n@@Xm@XVW@@nX@@`ƒImxU@@JUI@KƒLmK@UÅUUV@VW@™¯kUU@UamVUUmJ@n„xmLKƒkmJkwkKm_mKXU@aƒU@b@Wk@ma@zUJVUmbUlU@™xnXlWlXXblK„¤V@@nUVVLkVš„l@Xb@VVK‚nXKVx@znW@X‚@@lVK@X@JXbWbnn@JUamLVVXIVxnK@aWUX@˜x@VnI@WlI@anV„IVxk‚l@lbXXšxVVVJVInbV@@ln¦ml@XXVWbkJWb","@@XLVKVXVKUa@UUUmV@l"],encodeOffsets:[[112050,28384],[112174,27394]]}},{type:"Feature",id:"4311",properties:{name:"永州市",cp:[111.709,25.752],childNum:10},geometry:{type:"Polygon",coordinates:["@@lxUXV‚lXUVnlVĢ„JVbUXVJV@XUW¯„VIUK@klW@Un@„nl@V`XUVL@l@šVx@„XXW`UnUbšxUlVnUšV„lb@VnJšUVVVInJlUšVnwVklKnw„LVJVšV@nIV@nbVa@KVVVUUa„KV_nVVJ@_VW„nV@n¥lI@anƒl¥X_VKlwVlULUVVVš@šU@VXL˜ƒ@IUmn@VU@wmKXUWU@m²šl@VIXWWkWUkWlkIVamUXamUnmWUU@@Un™lK@XJl@kVUk@mWKXkl@@aVU@UVWUUVa„In`VUVLnw@U@K@Uƒƒ@w@UVmUUƒ™°K@UnV@bV@Xk@KVm@amk„aU£VWUUmUUwm`UbULka›KXU@kVmU™@aV_UWVIn@˜y„XXK@klmV„V_kWVUn@WUU@UƒmaU@™wnwWanUmmXkƒam@UakLmK@b™xUUUU@Km¥Vaƒ¯@ƒkUaVUlm„UU@mUUÇmUk™Uyƒb™bUa™XUWWbÅLmL@V™aL@WWXUKmmk@a@UUK™XW¥kU@VƒUkxmVkUWbUJnVJ@nVJXzWxkŽ@lVbUX@VVL@`mbUnšŽUn™VV¼k@Ulm@mwLƒb@lmLUK@UamƒWkƒK@£Ua@ƒ›UkJkUmbVlkX@bWbUŽVŽnnUVl„@bšbVK@VX@lb„V@nU¤šx‚²„Knblb@x„V„ô@šlŽ@b@l@XWxnVl@„VV@XLVl‚LUŽUXV`šbXXmJU@@bm@UUkLW@UlUKWUUb™wUm™L@nklVVmVXXm@@bUKlÆn„‚XkllVUVVL@nUbV‚@V@nnV@xUn¯U@JW@UX@xĉ@™`m@@LV@b"],encodeOffsets:[[113671,26989]]}},{type:"Feature",id:"4305",properties:{name:"邵阳市",cp:[110.9619,26.8121],childNum:10},geometry:{type:"Polygon",coordinates:["@@XIlJšI„VVK@n@VVVKnLVwVmnLVK@U„@šw„J@wVIƚ°X@ÜȄUÈxll@kn@VwVaXJWXn@@WVL@UUKVKV_U@@aVK„x@U„aV@lk„@XylbUaV_šVnal@W„U@a„I@aV@@aVUl@Xm‚UXWaXml@@kk@ma@V_UnUV™UUWJUa@kkaWLUmk@@LUVWUkJWkK@¼UnWJƒIkV@b@JUIm@Ul™V™m@Uw@a@kWƒXWKUknW@ƒWUU@k™mx™UkVmIUJUU™VmI@UkaUƒV™UmVk™wVaVmX_WW@ƒUw@™@kUKWVU_k@ƒmm@@VkX@lVLUJƒX°WVU@UIVWUaƒIUġmkVUkWUVWkwWXk`mI@¥kUVƒUƒUn±@m›XkWknV„UVmmU@@XƒVƒUk`@Xƒƒƒk@¥¯»mbĉó@mkU@kU™ƒƒ™KmX@˜UnmL@lULkKUƒWUU@ƒbUaUnƒ@Vb@l„¦Ub@l™@UKmnƒKUnl„UVVbUVn„@`Vn@xƒb@x@VL@nmJ@nU@mmUVkI@xVVVxkXVxmV@bƒbXVl@Xl‚XVxna@Vn@@VVL‚aXaV@n„‚@@V@X`V@@XVJ@XV@UºkXVb@xlVVKnbm„@VXLV@n‚lL@VxšJV„ULUb„`lb°nXalKnx@„lbšmn@lbULV„„V°š„ƒnV@zšš@Vl¼lb@VUV@bšmLV`„„@n„KlVnU‚XWVLnnlV@xVLU`VbV@"],encodeOffsets:[[113535,28322]]}},{type:"Feature",id:"4310",properties:{name:"郴州市",cp:[113.2361,25.8673],childNum:10},geometry:{type:"Polygon",coordinates:["@@²zVaVlnVl@nšVk„Jl_XJlIVmnL@mV@VXn@lV@‚XzV@lyV¯²U@UlJ@XVKnVVIXl@UVLV`@n@J„I@mlI„KVLnUlVUVVLXašKVLl@nb@ŽW„XV°KUnVV„L@xVJ„L@b@LUVVVU„˜VXbmbVbn@@lUbm@x@XVVVŽ@@˜@bkImx@Vm@Xbƒb@l°XU¤„a‚L„mnL@bl@@™VUX@VxnV˜anLnƒWƒ¥XKVwnUWXmVIUWÆLVx„L„w@wVmlU@¥XƒWUkwlÇn_Uw„WV@VU°wnU—ƒy@aVškVlnL@lVn„w@VlJ@b„X„x@bVKnb@U@WVUl@@Vnbl@XLlK@aVLVKnxÞn@a„LlmUaVU™ƒm@ÅknUmaUKmVk@m™kk@UlWUkVm@w@kUU@W™U¯™¥@w„Ç@aVIlUV@kUWU@UUm»@k@mKVkUKUwƒaUaUa›@k„kUWJkImaU@UK™@maUzk`@zƒy@XmJkL@UUJmUkV@z›@kŽkVmK@¦UbWL@a@UbmKmwUK™Xk›VUUkmVkw@UUKmL@WUIWa—JW_k@@WmI@mk@WkWULUUVKUUVm@šU„bš@‚nUǃ@U@w„™V@Ua@aƒL@ak„›l@k™UƒJƒwó@@L@V@„™`@œƒJ@xnn™šmV@bkJmUó@ƒn—JW„UUmƒU@UV@Lk„WlnnmVXbmxšxV@nbV„V@XVm@UVlXU`ƒUŽkn@lWLƒW—zm@UJVXU`@bVšUn@lWVœLlbVKVan_VxnVVVUXV¤ƒbnl@bUn@LWlU@@amU@V¯L„šVVUn@V@x„„@V@L@VmxUKUVm_ƒJUbVV"],encodeOffsets:[[114930,26747]]}},{type:"Feature",id:"4307",properties:{name:"常德市",cp:[111.4014,29.2676],childNum:8},geometry:{type:"Polygon",coordinates:["@@l™U™mkUwUyV™@VW@¯Va—VmUU@KVUVUVLnaWƒnkUÓV_@mVU@݄w@ƒka@kVmƒUmK@IkaUamKkXWaUW@WUk„™@@KVU@aU@™L@J@XÇVUKVak_mWkLWakVUbmLUUmlUVKUU@kUWW@UImJ@xkLkKm@@Xƒ@ó݃@UUk@UKƒV™ƒULƒKƒXkWWbkaƒIUƒWU@mUk@WLaUJġ™ƒ@@XÈÆVIl‚„Vnz°aV@U„m@X`@XWbkakJ@amLƒaU„@V@L°@@bn`š@@XWb@VœVlšUxmb@bUVmVUI™šXVWnƒJU„@nnlVLƒV@JbWzk`m@UVK²V‚x„k„LVl„@Vn@V„„°xVKVkœVVlUblx@bU„‚Æœ@@nVnUll„kx@VW@@VkLWxUL@bÝ@kKkVõV@bkXVVUVƒ@ƒVkUkV›LkV™a™@@™ƒ¯xUxmX@JVb°WXkK@Vm@k„Vb™bn¤‚xUXkJƒblxnXÆK²l‚_@Wnašn@ŽUL@b‚JnIlV„@lUœ@@¯ô@lWȂIVKVm„U@aXaV@lwVXn@@K@UVKUUnU‚bn@lWšX„ƒlJnUšLšKV@„„l@²a@UlK@aV@naVX„WV_nKlL@KUm@a°U°@VXL@a@wWmXal@„k„@VLn›V@@bl@VnX@mwVa²aVU@mk@"],encodeOffsets:[[114976,30201]]}},{type:"Feature",id:"4331",properties:{name:"湘西土家族苗族自治州",cp:[109.7864,28.6743],childNum:8},geometry:{type:"Polygon",coordinates:["@@@KšL@wnK±nƒnm‚—@WUk„ƒÜÈn@n»@mVamk„mšU„„l@V™nmmU@wUan¯VKšLn„VWlInyWUœI@WWk@KXU˜n@mnUmU@WœƒmkV@ƒkXašaVaUm‚Ikƒƒ@kaƒX@ƒUm@UKWU@UkJWkXa@IVy@UmIUVU@UJU@WXWmU@™VakaU@@Xm@Vm@wnwV@VL„yV@VakUUa@wUUVmlI@K„UVkUamJk@VU@UmVaƒan_@KmUƒ@@anm@ImWX_WWUk¯ƒ@k@Wƒ_m`@bULUKUnUWWXkKWaVmnU@@b¯UUbVޱK@UKUUVa¯UUmJUƒVIXmI@UU@WmVmkUV@b¯w@lmI@W@aƒ@m¯LXbmJVLklWL@V@XXŽmbVVU@@VU²Ul@VlX@bš`Xx›zUmkUVÒlŽ@bXLWxXVlš@V„bkLma@nmVmULVbmVUb@lnzmbUÒVl@°nLV„lJkn@bmJk_ƒVmmkblxÈx@LUb„xVb@V™n@JmLVŽUš@„nV@¦VbnJ@lVVbkx™bm@UxVLV@n`UnVVV„kl°z„xVb@VU@@ÆlXnWm¦nbVK@XVVUVVl@X„KUV@nVL@WnIWŽXLVKVLlxUbVKXVWbn@@UnKVLVb„JšU@aVU°b"],encodeOffsets:[[112354,30325]]}},{type:"Feature",id:"4304",properties:{name:"衡阳市",cp:[112.4121,26.7902],childNum:9},geometry:{type:"Polygon",coordinates:["@@lšV@XV@„mXVlXL„W‚X@l@bVxn@šŽšUVkn@VJ@I@alU„JXIVm@»‚LXllIXVVU@Kl@VnXKlb@lVbXIVVUšmVVU`@nbl@@lXLVVVKVbnXWJ@VXbWxXb„Ul™VK„¦nLVVUVVbšb„K@U˜LnK@Un@VxlUV`UnnL@VVL@JV@VUnxnKVbV@@VšIVUnJUVUl@nW„XllIUa„KVbÞLV¼²`V@VIUwlaVmXa@IWanK@U@m„kVƒVUVaX@lšnaVLÈ@‚¥@kkJUWJUaƒXkaUm‚wVXJ@_lWUU@¥n_‚KkamUK„™@amKƒnKƒbV£¯W@k„aWan@@UnwlJ@a@—@UUU@W‚wn@Va@km@UanaWa—UVƒUUVU@K@aƒKUI@wƒKUUVm¯LWUXƒ@mak@UK™LWbUKVUkUmVUKƒLkJ@nƒJ@I@mU_UK@VWkUJmUUL@WkI@V±VU°kzU@Wy@kUm@UWU@@nmKUnkJWIk`ƒIUlm™k@mUUkUb±yUX@VUV@bk@WlXL@nVlUl‚k@WI@ŽkLmš@VV@XVmnnVWbnVUblJXkVl‚XXlWXUJk@±™@nXVWVnL@xUVm@Vn@J—„WK@U™V™@UUVUVKUkkxULW`k¦m„@bkJm¦U@ƒmUX@`UImUU`ƒLVbUVUU@LUbmaU@mJU@U™UIƒKmxkLUl"],encodeOffsets:[[114222,27484]]}},{type:"Feature",id:"4306",properties:{name:"岳阳市",cp:[113.2361,29.1357],childNum:7},geometry:{type:"Polygon",coordinates:["@@@wUklmUUmU@@UVm@wUaV_mmUKmwkIkJmUUnm@™™@UUƒbUKUƒmÛamm¯xVLkbÇÆƒUƒVUzkVUlƒUUKWLX¦W@ƒVUUUaƒKUbmLKm„@akU@aƒmVaUUVIVWkk@wkƒƒ@@xmLlmÅwmbVlXlÝIWVkK@kkVƒL@VWKU@Ublnaƒƒm@b@bšnW`@XUJk@UUWKƒk@UKƒnn‚@xmLUVm@kbVbV„nV@V„b‚@KnV„LWšXŽÆV̦VblŽš„n„UJWz@ƙVóUVbkV™aÅx@¦lVUbVVknWKƒ„k@ƒwƒK™VU„Å„ƒl@zkb@`m_mJ@xX„mbVbœ@llV@n„@llbXL˜UXalUšl„alVnwnLVKlšVbX@@I„V@blJ@bVL@VVVUXȤ‚VnkVÑXmlbnš‚„VKkÑř@UmaVç@±XUlI„xlV„@VaX¯lUVVUšVJn—V@°°nް„Vxĸł°¦šb²¦lJ@U@aUK@kUm@_m±VIXal@„Kl@„bV@K„K@k„m@UmUUaƒK@_UJƒaXU˜@Xmš_VmUk@WUk›@kU@a@m@UƒaUUU@al@ny‚XXWWwkly@¯n@@bnV@k@mVI‚„œVlUUmlU„JUw„I‚bXƒVaUal@K„b@ƒVKVkXVl@VkUU@ylUœVVaVL"],encodeOffsets:[[116888,29526]]}},{type:"Feature",id:"4309",properties:{name:"益阳市",cp:[111.731,28.3832],childNum:5},geometry:{type:"Polygon",coordinates:["@@„ŽÆxXL@l‚V„@̚VI‚bXKl@nVV@„XVŽ„JlbXalX„W„LVKš„„UVLl@VV„@ôބ@@Wn@lLlK@wnIVJX@VX@lVVUL‚VnkVVnKValUXblKnXl`UbVLÈU@W@IšKV@@bUV@Lš@lƒXV‚@VXXblWnLVblb@JnL„VUn@llb@„ƒx@ÞUV@nU`VÔmlX„mbUKUVUV@LVVUn˜ŽUb@°UXš@U‚VzVxnlVškšVnlVnaWƒ@wnIn`@_la@y„kƃVƒšU„L„xl@„ƒXLlmUUVakU@¥ÆwšblUUaôVšU@ÅXyVImƒ™ƒkUaġ¥ÅUWX™ƒKmU@Lƒa@UmUUƒUalan@VUnK@wm„m‚L@V„lXLVVl@VI@WX_™m@a™¯mKUkwW¥UK@_UWWLUVkUWL@WUIkVƒU@JƒwkLUUmJVI@WkXm@VmkKUIU@mmm_@VUV™@™„kJċwUU@KUWkkW@IWW@km@klwkWVkkU™V¯m@kWLU`mIkmkXm@@`@L@xUKWkU@VL@JUU@mbUKVa¯WVnL@`lXUVkU@xW@UbUWVU@UJ@„lnU@m‚nÈmVƒa@bUL™wUb™@@VkxmUUƒ™UV›K@IƒUƒmk@akm@wmIƒŽkK@b™VWXkm@wULUmm@UVW@Ub„mbkKƒVn„U@Wl„xV„U@UXmWUXmlnbUl¯Lmn"],encodeOffsets:[[113378,28981]]}},{type:"Feature",id:"4301",properties:{name:"长沙市",cp:[113.0823,28.2568],childNum:5},geometry:{type:"Polygon",coordinates:["@@lVUllXkx@lln@‚XX@JlXXl‚V@LVVČxlIšƒš@VU@Un`nnV@VJlLUnn@lW@XUJnIVVlK„x@I„VlUVJ@XXKlVVUXKVX@`VLX¦lxVŽnLš°‚an@„„‚bkmVaV@XL@U„KlU@llLXUÞJWkUknaÆxnŽ‚knK@w„@l„@xllUXUJVVUb„n@blV@bnƒ‚LnKVa„LVbVV„UX@W¥XKVL„VVklUVy„U„VÈÅlaUK°wnnÜbn‚V„VL„aVVš@šn@VmnVlIlJna„@Valkn@na@amwm@„UXw˜K@aUUVUUaVa—wWK@kU@UaW@kKUUƒƒ@k™W¯XWan@k„™mmÅ@@I@U@KmLkaVUƒKkLWVUƒk@UVmU@am@kkk¥ƒUƒVUK™„maUb@ŽUb™I@aƒKkkWm@W¯K¯b@VmaULVxUXlVk@UxVJVbUb@xULƒ@ULWW—LƒĕmxVVL@šVb™KUwƒaŲWwX@@WƒUWLU@VbkV@aU@@VUnmJ@VUn@VƒLUK@U‚mUIk@UÇmU@@UW@J@LƒbUmVI@aUmW@@bkXUx@lmLUbm@UbkJ@V@XmlUbkKm@ma@kUaVU@aUK@mImJUIkVƒUƒVUakbWwka@UWKkLUamKUXm`Å_U˜ƒULmaU@@lUV@X"],encodeOffsets:[[114582,28694]]}},{type:"Feature",id:"4302",properties:{name:"株洲市",cp:[113.5327,27.0319],childNum:6},geometry:{type:"Polygon",coordinates:["@@X‚‚Unw„Ė˜KXXVK„@VK@wVaUaUIVwl@kUVWUwVKnb@U°a°LXŽ‚@Xnll„L@bšJVa@VanbšƒVL„U„V@al@@UV¯ÅÇ@Ummk™w@¯ƒyVwnUVVVUkmWV—nKVUƒa@WXkVKn@lUVU„VVVXIlV°VnI@VlKnV@mwVm@LXKWkU¥wWwƒƒ@k@m„X@KX¯V@VUVa@VnKWkœƒV@VUkm@aWa@wkUWwkmV£VÿXUVL@mVIXaò@nW@ašUš@@am™@aUU„UmXmWUk@ƒƒnUW@_maVm™wUkamaUL@aƒwƒW@akI@UƒxUm@kmKUk™lUŽ@b„zV˜m¯xUVU@ƒXVxm`kÈlxXVW„@¦kVUn@xƒxƒKUwÅKVXUJWnXŽmVUxWL„¦XŽm„mK—bmUUwW@UV@šk@ƒšVLnŽlbLm`@¦VVkX@`WIUށxVnlb„WVbXIV‚lI@l¦Ç@UKmbk™W@UbUVU„ƒl@n@VmLXb@JWbUnkbVxUJUxWXXlWL@V@V@XXJWx„zUVVVVKnXW`@bkIUl‚„nLVJUbUIWVXlWV@XklVbnn@xlš"],encodeOffsets:[[115774,28587]]}},{type:"Feature",id:"4308",properties:{name:"张家界市",cp:[110.5115,29.328],childNum:3},geometry:{type:"Polygon",coordinates:["@@@InWVw°wš„@š@šblUœKlUlV„U„@VUUUlW@aöUlUlLÞ@@aVKXwlK@UX@@UlwkƒVkUm@m›@ÅVƒ@akwVaUk›UUlUL¯wƒƒ@UUmƒ@UkƒKƒlw±UULVn@l_XyWwÅ@VUUmJUXU@@mmƒU@kxW@UaUIWbU@@mU@UxƒnUbmKk„WJkUValƒ@aUkUxƒlW_@WUIU@ƒbkKWUJVnUb™bWb„lU@nl›„@XnVmV@n—mWV@LXl@X›JXVmzkJUXmƒ™KULm°Vb@xnVmnUšk@ƒƒ™VƒnnlUb@nm¼m@Ûǃ„Vl@X˜mnm„²ŽmL@x™K@LUl@nULÆx@V@VXVWbXX˜l„@nLlm@bVKœX‚W„L°bnUš@VaVUš@šmšVw„JnwVK°zn@V‚Vb„a„@Ċ¼"],encodeOffsets:[[113288,30471]]}},{type:"Feature",id:"4313",properties:{name:"娄底市",cp:[111.6431,27.7185],childNum:5},geometry:{type:"Polygon",coordinates:["@@lL„nJ@xln@bnlV„‚„@JœLVUšŽV„nVlw@Uš@VašxVK@a„bnUmÇnV@km@ƒ‚I@VUVVXVaX@@wlVVUkW@_mKXU°‚UbVLnaV@‚V@IUKV@XlVL@w@K@_n@lWlnnJV_XK@l°nšU@WVU@kV@nbVK„V—lƒ@nLlƒ„LXU@ƒlmkw@nW@UKVa¯IVn@@aVUUKl@nXVKVn²a˜ŽXblKnLlmVI@KUU@akLUaVa‚UXm@aƒ@wVUVKnLnWlXl‚n@@U@anUVm@U‚Inm@IUK@UmKVmU_kVUwm@@VmL—K@VƒL™aUaVUUUmKƒ¥ULkšƒVWaXwWa@UXImWUaULUUWKk@WnXbWށVWnk@UV@bU@@bƒJ@bƒV@XkŽmb™UU`VbkaWzƒ@klU@ƒb@VƒwUL@bV@U`ULVL@VUK@Xm@XWWIUbUxm@@lkkÇwƒVÛÇW@¯Å™UJ@xƒI™xƒ@@VULmKUnUxmKULUUm@@‚ULƒU™JkIWJ@b@LJUW„kJWnUV@nn˜Ü_nJšxU@VbšnUxlškb@lš@"],encodeOffsets:[[113682,28699]]}},{type:"Feature",id:"4303",properties:{name:"湘潭市",cp:[112.5439,27.7075],childNum:4},geometry:{type:"Polygon",coordinates:["@@Æ`n_VWnLVblKXL@VlbXxlaVb„U„VlUVJnInJ‚@VL@bUVVb@lnbn@lLVank@W@UlIVan@VanK@kVwlW@aX@Vn@bUJVn„a@K‚IX@@VV@nŽVÈl@VJn@VVL„K@UVm@UnIVm@UV@@blUUaV@XK„V@XW@XxƱ„bVxšLUa@™UKWk™@wmmUalk@WXUWkXUVJVaUImKƒVklJ@aX_mWULUUVUƒyXwWI@W@U@UXKWkXWVwU@±_U»ÝKUaƒLVbkJkƒWmXk@UVVŽmIUV™J@UU@UamLmwUVU@mnJ@VUnmV@b@Vm@kkWmXmKULUV@x„Ž@bWnVUbVblK@bVV@LUJknmKkLWa—±bUmULmWk@VLUV@bm@U°JUbVLX@@mlxkn@„WVƒKk„mK@k„"],encodeOffsets:[[114683,28576]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/jiang_su_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3209",properties:{name:"盐城市",cp:[120.2234,33.5577],childNum:8},geometry:{type:"Polygon",coordinates:["@@„n@‚°ĀÞ°@¦ULWKkx@bkLWb@lUlVXXJVbƒnUKmxXV@bm@@Xš‚„LޚܦXlVnš‚mzVJ@n@‚²ÞôkƃÞaȰĉ‚wnljÜó„éVÛnĊīČlj‚ĉ@ō@KÞUlU@ƒkklÇÈњÑlġXɛ@UġƒƒaU@U_ƒW@n™@kaUL@VW@kKmkUV@bkbWW@bkzma@ƒJWI@KUKULƒ@U¦™`@XUJ™U@KmXƒw¯KXkmy@aUIWJXXmV@K¯UU@@bVL@¤VLXbV@@JVXVK@„„JVn@bkKmakVVXUVVVlI@`U@nzVVƒb@¤n@@UlKXLVVšI@V@nV@V‚@ÈUx@šóVōšƒkÅWó@mU@bk@Ýwk@WbXxm@@J@zV@kVƒbV‚nLWVUX™WUXUŽWLUށ@Wl°z@VkxU@UVWIxWJkbƒĬ„nW@@bUl"], -encodeOffsets:[[122344,34504]]}},{type:"Feature",id:"3203",properties:{name:"徐州市",cp:[117.5208,34.3268],childNum:7},geometry:{type:"Polygon",coordinates:["@@XKVX@WnIVx@K°Lnll@@I°K„nVašU°x²mlxš@VanU@aƒk@akmV@@w™@Ua@aUwVwUw@w›@UK@£kaĉlóIÇVkޱ@@kUKmVkIkxW@Ua¯UUm@UVI@WVI„JV@ƒ@Um@Uana„U@m‚I@J@XV@XaVlkXƒVaUUWLUyVIXmWak@ƒXkJókƒJUL@KWkk@ULU@Wa™lUIkJmI™mk„VbVš@lV°kXUKWKULU„mb@VUlVnƒb@VV@IVKUUmU@ak@@bmV@xklƒUƒU@UKmV@nƒJVbkXƒKUamLUJ¯UUVmI™bVV—Ll`@LƒLU`m@kXUVU@V„lxUK@xkIWbUKƒx@V‚kVVn™b¯@@U™@ƒxk‚mbkLÇK™b™@@XnJ@LmVklƒ@@XƒlUƒVkxƒakVVb@bVnUbU@@x˜VUšVb@š„ŽnIĊ`šXVVôJš_„K@xlU²Klk„U„@VaVVÈm@kVUVmnamUUaVƒXIVJ„@‚ç@¥nkVLn›„@@XVK@VUX@JVUV@UnVJVLUJVLUVlšnI„b‚KnU@m°™VanI@anV‚KVL„an„lK„blš„KÞk@¦@¤@„VKnLVK„L„KVzlWšLX@VmV@VbnU°@Ualk™˜WXLVU„KWkUUWšƒ@£Wa"],encodeOffsets:[[121005,35213]]}},{type:"Feature",id:"3206",properties:{name:"南通市",cp:[121.1023,32.1625],childNum:7},geometry:{type:"Polygon",coordinates:["@@VJ@bnzWl°L„xnW@LšVVI@Wš_V¥„@VKVL@LXJ„I‚@nbly@aXXla@aVUnllLX@@UVKlbš@@m„XV`V@„bĢ„lkČÇÆƒȘ¯šwnĕVĉVÿšUƒUĠƒŦğlXÑVǵ@±ōLʵ˝lÇbÝÞ¯xk@Çkķé™n¯@ğŽġƴǫ@kVVlUbƒL@xULǂóLUl¤@nkVV°VLkxVb@l™aUXUKWĖklVX@¤UšƒUkb"],encodeOffsets:[[123087,33385]]}},{type:"Feature",id:"3208",properties:{name:"淮安市",cp:[118.927,33.4039],childNum:5},geometry:{type:"Polygon",coordinates:["@@šnźUôÒɴ胚l¦nĖV‚kbmš„X@xVlVL@xUb@bUJVnUx‚šœ„lKVLÈx‚m„zXV@lW@XV‚b@bȚVxnb‚ƒVIXa°L„aÆVVaXUlK@aXIƄVlXKVUlIXalK@alwXLVK@¥Ý¯¯ÿ@ƒmVk@aX@ƒm„īlaXI‚wXJVUV@lw@U¯yb›UaƒUġUÅaUKVknaġm@kUm@wÆIV±nLÆw„ÇnUUkƒ@ƅÝU¯JÝI¯¦Ul@bƒ@@VVL@l@LƒLÅmƒL@b™@UaVaUWmLUKV¹KƒLWKX¥WI@mXk@UmaUVUU@VmL@W™bkIUWƒUmVóIkbmm™@UbVLUxmJkU@bkJWbnXU`Wz™KUÞÈlVb™Lmx@„kè@Æ"],encodeOffsets:[[121062,33975]]}},{type:"Feature",id:"3205",properties:{name:"苏州市",cp:[120.6519,31.3989],childNum:6},geometry:{type:"Polygon",coordinates:["@@ôèĊVnX°¤²„lxƒÈÜ@²x@J@b@X‚`nIUƙUUV@bl@VVnL@L@xƒJ@X@blJXnW@@`XbW„kVƒ@UbVxƒXUxkV@LóxVbUVWš²šVJĸklUǬ@ĢƳĠ°@šmƒī°»ÈÇ¥ULUU±a@bU@¯ƒU@KnImUVWUk™mXUVU@lIVaUUVWKUbUkWKU¥n£WakJUkUL›K¯L™KkƒVIn@VaUƒVUUƒ›UkVk@ƒU@amUkJƒ@UUlwX¥W@@UkVmk@JUakL›@kk¯ÝmJUn@nmVXlmbVVkn@„UJ@±WUxV¯a¯KōbżÇxUxƒšUUlWL"],encodeOffsets:[[122794,31917]]}},{type:"Feature",id:"3213",properties:{name:"宿迁市",cp:[118.5535,33.7775],childNum:4},geometry:{type:"Polygon",coordinates:["@@XbWnUJVzXKVVUbW„klUWbU@@W@IJ@nƒVmbVbn@@V@„UŽƒIUJ@XUJ@VVn°VVbX@lwlJnUVL@l²@lÈUôJĊklb@¤VLœ@@xVxUxVx@bVbš@@xU@ln„mnX˜mXLVmV@X@lxVnVJôL„LXa‚x@b„@@KVL@bn@@m@™@alLUUVaU¥nIV±‚I@mXI@aWWXU@LlUXWW_XWmaUwǙ@aaWUX@@kWUƒynÇwUKkL›ƒ™VwUmVI@aVa@wUKUk@wƒWn™laUmĕk¥„™ɳçóÑŹV™mmzkVmm@a@Ióƒk@@LWU@`—„WbXLWlkImJVn@`nXVbXŽmL@Vn@‚l@nUVl°Xx°U@LVĠ@z°˜@¦UV@Xn@VJmV"],encodeOffsets:[[121005,34560]]}},{type:"Feature",id:"3207",properties:{name:"连云港市",cp:[119.1248,34.552],childNum:5},geometry:{type:"Polygon",coordinates:["@@@‚lzXxmÆV„„@@¦„@l`XnlKšXXm‚KnLla„b„@„xmbm@kL@V@Vl@@VUXšJX„mbš@@„°Æ@èÈzlW°XĢJlÈ`lInbšWV_@mš™@UUķnƒôw°ÆmnaVƒVÛVmĸ»Ģw±Ý@@mUIny™UmWkۥݙƒK™@Wn@@aWUnwVL„mUaWIUWVk@kkJUVWLUkŃWJ@bkLWVUbÅUƒb¯KWbUJ„WXX`WXkV@KWVXX@bWJ@nJU²mJV¦UbVVkK@b@š@nm@@aUK@Lƒ@@awWbƒKóKUIUmkwW@U@UnWK—nmWƒn@b„l@bmVUb™@kw±n¯w™VUb"],encodeOffsets:[[121253,35264]]}},{type:"Feature",id:"3210",properties:{name:"扬州市",cp:[119.4653,32.8162],childNum:5},geometry:{type:"Polygon",coordinates:["@@VUXblVVV„b@xV@kz„V@l‚wVLUbVV@VU@VbUbl‚b@nkͰIÞV@Ɔ„VlmVƒÈÅxmKU²ÅJ@xVn@lĢnmbUlVLÆbĢV„V‚bœV‚aXk‚@VXKVVWšXVWXUmKU„aWaU@™¥@£XW‚UUV@@ynam_VWkUVUna@ÆV@mnkWmXkWU„W@k„@@akklƒlWUI@UnKl¥™I@VVma@a@I@U@a@anK@UmK@ÅVUnJl™kI@aVwka@mVIUW@UWL@WÅbmIƒƒULka™UWƒUxkLUKWlXL@VƒImƒÅVƒU™mĉL™Uól¯I±l@ÒUbVbUVVXUJUnVV@lnbl@"],encodeOffsets:[[121928,33244]]}},{type:"Feature",id:"3201",properties:{name:"南京市",cp:[118.8062,31.9208],childNum:3},geometry:{type:"Polygon",coordinates:["@@k@ma@kUUVmVIUWVUUaVa@Ѳk°Jôk@Wmk¯KmX¯aUakKƒƒWU„@XU‚LXaV@@mUaVUUl@VmkaUXm@ƒWUUna°IlmV™m™IUW‚@Uk@@aV@VVX@„V‚I°»nm„U@VKVan@m»UaU@U_@WlIUa™aVaUala@¯n@‚ƒkaUkUUWKU@mwkUUmmL@K@ƒLmUUVƒKƒVÅImU—JƒƒVkVVLšèVLVU@W„L„V„š@nVÜULVŽUL@bW@XbWbkJƒUUVUxVXmVk@WUUkVmIƒV@„nbnVWbƒJU„kUULƒa@Jma@XkK@VVL@L@JƒLUVU@V¼ƒnXlƒbm@kbUKmn@lVb@VXXV‚UV@b@LVbÆxXbl@@lV@U„VV@XVK²VlIš`„UbVbUlVVn@WXn@@VUV@„@KmbVLXқLkKƒV@nX@VVUV@b™nVllbšmnb„IWVXU@`lLlknVnmlLlbUmVInK°nUƒU@l@VU@Vn@„ƒ@alI„`VIXaVaVa"],encodeOffsets:[[121928,33244]]}},{type:"Feature",id:"3212",properties:{name:"泰州市",cp:[120.0586,32.5525],childNum:5},geometry:{type:"Polygon",coordinates:["@@lUU@@y@In@WwXal@Þxl@@anVô@ÆX„lŎ™ôU@™Vw@ÇUU@@m@U™JUUWKkL@Vm@@£„aUUmyV@@_kJUUVUUWlUnblL@aUmƒI@ƒULUW@IU@WaUK@£UK@aV@°V@LnUWWXIla„VV™@£UWlkXĕVLVWšb@kUalwUKU¯lU@mk£VôKȁVK@w„KVaUkķlUI±™ğ¥ÝUʚ™Ž¯ôm¦ƒĸ™‚@XXK@VVXUJ@nlbUx@blJkšmIUV@ÆnL@VmL@b@b@V@J@bnb‚U@UšJk¦mL@VVJkXk„ll@bƒ@@lƒXXVWlXnml@nÅU@ŽmbUVlVUXn`mb@zU@V‚VWX@¤š¦V@Xb"],encodeOffsets:[[122592,34015]]}},{type:"Feature",id:"3202",properties:{name:"无锡市",cp:[120.3442,31.5527],childNum:3},geometry:{type:"Polygon",coordinates:["@@nLƒÒlxUVkL™am@™ƒkVWUULUxVVVbUV@bVLU‚nnź™ÞVĠ¦X™VUUaôw@KlUVw„WUwVa„@lUXƒWa@_X@WmkI@a@W„I@w@KmKUUk@@aVUšVVÅmJ_@W@a@I±wÛ@ƑÇkw±ƒ¯£mWĉUóçƒK¯VkUWK@XkV¯UWabƒmUa™UUb™lln@b@xƒbXŽWX`@„VxUblL@bn@Vb@`m@XbWnn@l¤„n@xnVlU„™VLÆWœkV@VbÞJ‚_nƒl@nKVU@aU™U@mVk°WVLUV¯bVXŽ˜bXlVn@VmL@x—V@bl„š‚@œnW@X@VVJ@²VJVU"],encodeOffsets:[[123064,32513]]}},{type:"Feature",id:"3204",properties:{name:"常州市",cp:[119.4543,31.5582],childNum:3},geometry:{type:"Polygon",coordinates:["@@„L˜ŽnxUbVVƒL@xnnW‚nn@VVXn@‚yœImx„„°ƒšL„a‚¥n@VkšKVw„W@nX„VJ@b‚@UVn„ƒ@UnUV@L‚b@`VLklVÞn„Æ@VaXLl™ÈJšmmVUK@aVUUaUUVwVKXVlUš„n@šblKVUkw„ÑmKUVUI@±UI@U@WmX@›™kƒ@a˜U@wnK@UUmWk—aWU°aVUUK¯XUl@nVŽVš@bUVmLk@m„`ÝIUaU@›lÅXUKƒškVmU@wƒmk£m@XmWan@@_Uam@@akKVaUw@ƒW_XW„a@w@akmm@mL@UJmnUKƒ@@XnJWLkKUb@„Vxk„WƒL—aWVUImVULUK@L@lkLVVVllb„m@@°kbVbUbšbVbkJ@XV`V@Vbn¼"],encodeOffsets:[[122097,32389]]}},{type:"Feature",id:"3211",properties:{name:"镇江市",cp:[119.4763,31.9702],childNum:4},geometry:{type:"Polygon",coordinates:["@@šVĊKšn„VÆUn„„J@UWKXkVLlKVwX„šVlbVK„„nJÆaš„ķn¥°óÇIkšWKUbÅ@mƒUÝlkUK@_a@KVUVm„@mƒVU@@aUIWƒ@mƒXUx™LUlm@¦ƒb™K¯„ƒƒnw›Jzm@UW@UmmXmm@w„KUUVamw—ƒKm@UbUL@ŽƒVmn¯¼JƒUW@UUU@@bl@@VŽVXšJšnnU‚‚k¯JmbVV„Xn@VWlbUnk@VVUŽVb@nU@WbKWVƒ@XV„„lLVb°bnW°Lnl@X"],encodeOffsets:[[122097,32997]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/jiang_xi_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3607",properties:{name:"赣州市",cp:[115.2795,25.8124],childNum:18},geometry:{type:"Polygon",coordinates:["@@„`l@Èbln„@„KVLl@„V@bȎlnšKXkVlVL@„lJnb„¦VKVVnX„W@w°@VU„mln„UV`šU„bVUV@„xnKVI°KXKVkVL@al@Xa„LVlULWV™VVL@b„x@VXVmb@x@V™VV@nn¤„šlb°b°KXXWbX`lbXx‚z@x„`VIVUnK„L‚x„WXLVKVbVLVU@wnW°b„@nalX„‚mXVJn@U²mKkVl„U@@xlnœaVmlKnœ@JVLlŽnVššl@XXÆèVlUX@xVLXVšb°W@wnUWmXk@K‚LVwUmUkUKUw@wVaVK@kƒ@WnkUKWkwlmXL@KVUlLVKXmWU„L@ašL@malaVk@aa‚ašƒnXš@VVUblb„Jn˜ƒXa„V‚wn£„K@UWmUk@ƒUaWIV@b™JW@KmmU@aUUUkmKkVKlUU™nKVU„lVaV£Å¥WUUK@UkUUw@m@mIkƒƒUUWƒLƒK¯Uw°¯@wUKUbƒKmƒ@kkKUL@UUKV¥U@manw@k@U@Wm@@U@Wwkm„wWaUU@UUmV¯kwƒ@@kmƒkKkUW@UK@ÅV@XWWkXa@Ul@Va@KVaUUU@ƒaXwla@UkVWaXk@K@lmkUmV@Vmbk@ƒ»XIƒ¥VUkƒVUVU@anKVUƒKUalU@wX@˜™@a@K—@ÝwƒL@ŽUnÇlUIkJmn@ŽƒbVVb@VmnkLƒV¯U@ƒ±l—IWmƒ@kaUI@aÇU@K@KUIkbWbƒJUIUyƒX¯ƒUbU@méUUmUk„WK—xWIkJm@V¥U_UJUwmVkšƒUU@ƒƒƒ@knƒwm@UmkWJkL@n@VW@@‚U@knm@kUml@xÅxƒ@@XUJlb„@VX„JVxn@lbV„@lULnV@VlnV@bWV@bXL@lVLVb„V@blLn@Vl„K@xln@bX@lašLVbnKUVVb„KlXVVkxƒV@nnVUb‚lV@@z—°WWkbƒIk‚WL@LUJ@bUI@b™`@UmI@mkK¯XW™™mUV¯@UUVUUam@@VULWUJƒIm`IUJ›KUkW@Uxn‚WbnnmlXbmIUVmV@Vnb@V™LUKWLnÒVVV@V„UL@„kJUV@bƒÈ@ŽšV°šŽ@XVV@l@xUz"],encodeOffsets:[[116753,26596]]}},{type:"Feature",id:"3608",properties:{name:"吉安市",cp:[114.884,26.9659],childNum:12},geometry:{type:"Polygon",coordinates:["@@lxnb@V@bV@ln@‚n„‚lInš@blVXK‚nk¼@VUKWL@b™L@`UXU`ƒ@V¦XLĠ@lJ„¦@„nV@l°nn@‚mVXnaš@nb‚K„n@l„IVƒš@VanJ@_lKVVnš„L@L‚K@Vn@VbšUVanKlLnbnJVbšnWVnVVanI@‚Vb@L„bVKVanXVbVJVU@aXLll„bôlƼXxVLVK@Xn@ƒxnVVVmb@LnVVKVXV@@mnaVXUVnV˜K@_UaUmšwnKV_‚anKVLš»„K@¯ÝU@›™U@kWlUn™lknK‚VnaUkma@ƒUIUwl»Åw@ƒVwV@n™‚n@ÈXlKVmna@kVw@anm‚@n_WWk@™™mUkUK@Im›kLUn›bkm@wV@kƒlUnLV±m@UInWƒkWmbƒ@¯amX@xUVUKUaULWKƒXwƒKmLUVUJƒ_@wyWwkaW_XaWW¯L¯akaƒ™m£@mUUš@U@wnaWU@Uƒw@aUKšUXUVKUkƒKWbk@@bUKUlWL¯LUJmLƒwU@UVƒa™VU_ƒVkmƒnUV¯@@xƒXmWUUULƒ¥makI@ƒUKUkWl™LkmǍ@aƒUk@UKƒLƒ@kmÇak@ƒ_VlkL@`lbnšlLVanLnbmVÆln@škJlbknmKUbÝmmwULUK@bkLWKULUUma@Kk@UV@L@llbVzšxUxnl@bVLmŽšŽ@IVJXœVlƒLV`@bn²@J™@™V@Xmbñ@WbUJ@bm@@LUĬU‚„¦lV@xXb@blnUV"],encodeOffsets:[[116652,27608]]}},{type:"Feature",id:"3611",properties:{name:"上饶市",cp:[117.8613,28.7292],childNum:12},geometry:{type:"Polygon",coordinates:["@@„„@„V‚š„„I°`nm¤²@bVJUVVXUl@Vmb@xV@XbmVVœ@lkLmbn`VbnU‚@Va„UnbVllUXV„a@w°VW@_VWšLššnVlbšLVbnl„KšnVK@IUW@_@am@™‚ÑUólK@U@WU@VwU@UI@aUU‚aXƒƒ@kwmJV@yX@k‚anƒƒ@mkwVmmI@aUU@aUUW@kVkV@@anKš»„XVWnIVUl`@_„W@wlUœV@UWKnU‚bnްInJl„UV@VnI‚b„Wn@VklL@l@Vn²m@U`kI@bWJƒnV@°VXnJm„XVmx@VVL@bkLmWULUmU@ƒbWXb@llnX@‚xkxVV„nVV@¤nL‚nVxnJVXX@˜ššbn`VI„b„@„blmlLnaV@„blWXnlUnbl@„ƒšKVanUVmm_XK@kWWnašU@UnaWUXa›ƒXamUkKmXUWƒLX¯WakKm™nUWwXa@KW_„aXWW_@WnIVl@XU‚LnWVknK@ImyUUÆbXK„Û@W@IÆUnƒVÝlkVK@mUIVwkUVaUm@aVIVyXIƒaÈwmmk@UnanVUmÅaó»lwšW@kkUVmUK@WKLƒUmWULkamK™Lk@Wa@wk@UU@U@mbUIWVKUXWmkUmVm›U@LkakKƒw@w@U™¯ƒ‚ƒUUn¯l@bmn@xkJWxkL@VkI@mƒkmJUI@V@b@VVxnbWlkÈkVƒLƒbkKmVƒL@V@²nxW‚kLUL@xlKVx„bXmVnšWJ@ޙ°@n™xUKUw±`UImVmnU@kalm@akwƒU@UUJmxU@@Uƒ@kU@Um@@Kn™ƒVm@k™KmkU@@WUnkLWxkVUwmKmLkU™bmKUbVŽ@xUnkJ@n±ŽšUxVXUšWJ@LUb™lUnm@ƒW@nknUJUVm@kXllknVbÆK„VVbš¼V„@šUl"],encodeOffsets:[[119194,29751]]}},{type:"Feature",id:"3604",properties:{name:"九江市",cp:[115.4224,29.3774],childNum:12},geometry:{type:"Polygon",coordinates:["@@WUkVUkmaƒVUb@mVUam_nalK@kU›nUWaU@@wna@UVkUWVUUI@a‚±n£m¯_ƒJ™ƒU@ƒƒƒĉ¦Ul@UV™Km™mLlm@ğ¹m`Uk¯@@UVK¯™@UUK@amkmKkVVUa@UkUƒKƒŽUa™L@VVXUJ™@ƒnƒ@™š™WUbƒnVb¯V@LÅlÝIƒJÅkݙm@Ua™WUU@UmUXmmwVUUKWUX±mUam@kWƒzUaVmÇw@aÅLmKXƒ‚UWKkL@W¯IƒwVw™lkUƒJ@Um@ÛÈWށKUxWkƒaUU@KkLVl@„UKUX±KUb@nVVUbUVmaUlUL@„ƒaUL@‚@nUlWzX`@„V@lx²„@Vlb@bšVÞ@°nl@UxVL@lUbVV@n²xVUVmnUÞb‚a„J@IšV°xnbl@nbÆ@VwnK@VnXlK°xnUlVX„V@Vl@L@lk@W_XK@KƒkWxUL@J„nVx@aX@VVUa˜IXlmL@bVVX@VbnK‚a²XVWƒk°a„@UnV¤nbmLmW@XbmJUbVL„aÞK„L@K@U@aVKlbV@nXlJœxV@VnšŽVȚ„ÞKôbźĕČmV@ĊšŽ²xÆIšV@Þ¦ĸ¼ÞVlŽVÞnxln°Jœk‚LXWVUVUVwnJVI@yn@lXlaXmWI@w—»ma@UmK@akKkXmW@_kaWakKWk@@K@IšWƒkUa„ƒ"],encodeOffsets:[[119487,30319]]}},{type:"Feature",id:"3610",properties:{name:"抚州市",cp:[116.4441,27.4933],childNum:11},geometry:{type:"Polygon",coordinates:["@@°V°UnÜ@n@lnLlV@bšV°L„lnLllVzVVXlV„V@@L@xX@WlX„m@UVƒL@V@n„°škVmVUnKlaXxVbšnlU@lVVnaVI@aX@V„šJš@V„@b„b@šVbš‚@X@lUL@Ž@VlIVm@wUVanLšalVnKnLVxlUXwlKVm@k@Una@mWIXKWUÛVƒk@a@UVWn@@kl@@W„XlW@_Um@UVK@a„LnalInWV@@xnI@¥‚K„—šm@kKmƒnk@mlI„¤laXbVblknV@U‚KXVlUXa‚@@Unw@±mU@ak_±a@ƒUJUIƒVKW_Xa@aWU™šK@mmUVa@IXa@UWmšannlmX¯WKXwVUVwƒ@XUlK@klJXa@kƒkmm@Uwƒw@¯ƒW¯kw@WmbULƒaUUU@mVUU™WmkUb™KmkkK@aƒkUƒ¯¥Uƒl—ƒm@akU@mš@KVIVV@KUkUVUkaƒUWb—„mƒIkaVaUU™@mW™„b‚b@bUlkb‚b@n™K@bƒKXVWnULkKUV@LWKknlxXŽVLml@X„Ž@lULUb@xVxVLVlVnUxK@LWlXnmV@x¯X™aWUUK@wVWUkÅçm`@mn@bUx@lmbUnkLÇWm@mšU@Ux@„Æxk¼VxVJ@„nbVlmbUmLklmškVlX@‚VœšV@°Þ"],encodeOffsets:[[118508,28396]]}},{type:"Feature",id:"3609",properties:{name:"宜春市",cp:[115.0159,28.3228],childNum:10},geometry:{type:"Polygon",coordinates:["@@@VlbnK@b@JšLlUnx±ĀXxÆW„X@lš@V„@@blJ@nX@˜xUbVVUbVV@b—VmnmJœ„@bmbm@klUbƒLmbœš@lVb@xUX@bVVVbV¤@LVV„bXlVw‚LXÜÇn@@V„IlVškUx„x°J@XlKXLV„‚WnLÆK@bÈxUnVb„ylXn@Vbn‚W²XV‚LVVUŽnxWnnV@VVVšXVbn@ޚÆl„IÞJÆk@K°UUa„mVa@UUUš»@wV@VƒkkUKUVW£U@UmW@@aXkVUnVlKVV„UUkVmU™@kWaUanU„VVamIX¥W@@aUaUVW@_mW@UnIVVn@VbVm@bVL@anKVUkƒWK„UXV‚Ikx‚@na„bVK„b@nVJ„_V›@Vw„‚VUVVXUlUUaV@X@VblašbnKlkVaXaƒ¯@m@U„KVUn@WƒXkW@@w@KU@UƒWkUUUykkmKƒk¯K™U@akUmK@k@mmÛ¯V¯U@‚ƒL™¼UKmLbU`mL™xVnVb@`—LmUVUUWmb@nU@UWULmU@KnaUUmU„wmJ¯IUJWIkVkaWVUIUlWaUIUVkKmbUIƒÒlVUnnŽ@VlLUJ@bUX¯@ƒaWVUKUXƒKUbm@UwKWa@a@VkUWn™@Uak@mbX„WJXbm@mL—aWVk@™wƒL@WmanU@knwWmkaWL—KWUXaƒU@¥l„UVVVbnwƒ¥nKV™»@aUk@a@UƒJ@kƒmLma™@mbUWnm@ULǺ@LXnmxUŽm@UbkbW@@akLmWk@UXmJmUkV@VUXVlULmKUxkL@lmXnJ@X‚l°Vnb@bU@WbKUX@VmKUX"],encodeOffsets:[[116652,28666]]}},{type:"Feature",id:"3601",properties:{name:"南昌市",cp:[116.0046,28.6633],childNum:6},geometry:{type:"Polygon",coordinates:["@@šXš™„@„mš@VIUW@UšKVb„„LlV@VVbUŽlUnLnl@bVL@V°šUL@V°@Vln_Ġºn@‚knKnššLVU@VkĊ¥Vk@™Uƒ™»UaƒUÅLUalmkklWn@VUVIlm@m„Xn@VmškVa@KXIV™UWVw‚™²@m@U@VK@k@W™Ua@™ƒa@aUƒ™@™IUƒW@@bUJmbUU@kkV™mUaWwkbmLUVUn™lWbUbklmL™akbUaW@U@VbkVWVUUUVƒUx@‚Uœƒ`UI@mƒaULƒamb@lwJWUƒVXLl„UVmL@bUK@aUnUam@UUmJ@VnX@`UXVŽVb@bX@W¦nJUbƒUmVVbXb@lVšUnVlƒVUUkLmUUVWl@bX@VnV@X¤VUVLllU„U@@x™¼VV@V"],encodeOffsets:[[118249,29700]]}},{type:"Feature",id:"3602",properties:{name:"景德镇市",cp:[117.334,29.3225],childNum:3},geometry:{type:"Polygon",coordinates:["@@VVX@Vbmz„xUlU@mbmL@V²xVbUVVblbX@šVškVykValKVI@bn@n`lVWnX@l„L@™WKnƒVIVa@¯nK@alIXJVIVWUw‚ƒn@nU˜„nK@alI@a@anKm_™a—™W@UWmIUwmmK@£UUƒmUUlwwW@km@kWaX„aV@VnVKnXlK@aUK@UnwWUnƒmIUW@¯mU„XI@alJV_n@m±@U@kkKUlm@ƒXamJ@UVUkƒmI¯JmamVXL@V›UkV@xƒX@`k_UVmJUXƒW™¼mL@bU@UllX@VV@bVV@bnJUnlx@n„Žm„b@lWŽ@zU‚nIlx„@W„bVV@bVJV@UxV@@X@VkLVôÒ‚šn@@b@`VX@J"],encodeOffsets:[[119903,30409]]}},{type:"Feature",id:"3603",properties:{name:"萍乡市",cp:[113.9282,27.4823],childNum:4},geometry:{type:"Polygon",coordinates:["@@VWnL@UVW‚LXaV@@ama¯Uk@WmInW@klKVwnLVKUkVW@UlUnVnIVWl@nXlK@bX@laVan@VnwWm@KȹVK¯m@kmU@ƒƒ¥kIğ@WKU¥„@V_VW@_šK@aXKVL@Ul»mWLkU@am™kJƒm@kmU@@a@UmakwU@›„Xlƒ@VXk`UIW¼kWWX@‚œ@l‚xV¦XlW@Ubn„@ŽmUkL@UmJ¯UkUWVUaƒUlm@UXWl„nUJ@LmLU˜nXll@bUVUUmVUn„Ž@¦šxlŽnn@VÆÈU°kbV„VxllnL@VnVVUl@V„„anL"],encodeOffsets:[[116652,28666]]}},{type:"Feature",id:"3606",properties:{name:"鹰潭市",cp:[117.0813,28.2349],childNum:3},geometry:{type:"Polygon",coordinates:["@@@XV@nlšL@lUnš„mŽ@Ln@@VlV„@@VV@nwVI@V„Vlx@bknlbV@nmnUVJ‚_²‚VxVLšw@mš¯@ÝXIm™nUWƒaUwkL@wVKlKXmw@±@U„KnUlL„a„KlUlÇXkmaUw@U@a@Uƒ™UkwUJ@zWJ™w@WbkVWUL@VmUklUaWakbƒ£kJ@nmln„lL@Ž™nƒ˜L@¦mJ@wU@mXkJmbƒK@bUL@VVn@`kXƒW@Xk@@lm@UX@V@b„lÜUXVWLXJ@nmb@V@l"],encodeOffsets:[[119599,29025]]}},{type:"Feature",id:"3605",properties:{name:"新余市",cp:[114.95,27.8174],childNum:2},geometry:{type:"Polygon",coordinates:["@@m@@WULUKWwÅ»ókƒakkWK@bUVUIUamWUbULƒa@KUa@mJUbmUXU™mUamImakKmLUb™VUam@@UL@KƒKm™UUkL@`mIUb™@U„@V@bVl@bš¼UŽmL„¦mxUaUUƒVkŽ@¦„VWbXV˜LXKlbXnmx@lmVnb@X„Kšxl@XU˜bnKn@WaXIWƒnal@Vbš@XmlV@U@bXb‚LVxn@Va„LVWVLXU„b°@VW@aVIkK@UmVmkU„ÑVJnalLVUVJXbVkVJXUlblUXJVI°JnI"],encodeOffsets:[[118182,28542]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/ji_lin_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"2224",properties:{name:"延边朝鲜族自治州",cp:[129.397,43.2587],childNum:8},geometry:{type:"Polygon",coordinates:["@@Wxĵ„mš@„ó¤VX@@xܼƨš²xWxƒV„V@„XVƒ„„„ƒbWšXllaÞU°Ċ„@ô¼„LôÝWanV¥ƒÑnĉ°¥šÅX¥°¯@w°w@»°k£°mÈŹ‚mÈbƃŎ¦„K°z@Žkxl¦UbU¤šššklV„KŤÞȰ@@bšV@nVVUlÞ¦lUllœVlU°ÑU¯Vƒ°w„bXxl@V޲„˜@n„ô¼ƒó°™kmVk²ĕ‚w@wV™ÞÞ@@Ġƒö»˜¯œ@‚„šbnb°mÞ¯°V°„ÈJmX¥mam™UřƒUƒlaU¯™ƒ@w™Kk—l±n@@wƒkÝVUUl±¯I¯b™a™lƒ@™kLmakbƒ@ġƒŹé°™Þb°šékƒƒLm™„wX™‚aÅb@bVlƒbVb—ÒVbUb›UUanwƒakbVŽUV›ak„¯„UŽƒLmxV°UxnôŻX@J„Xkl‚bkbĉaƒbƒWU„ƒ@ƒk„WUU¯@@klmƒ@@™Å@aƒwWXlKkI@WbUaVIUanUƒƒ@ĕƒ¯K™„mUnWUwm@£ċèkUmbUmm@@nkJUalwk@@nmWUan_óaWmnw±KœIƒwl@UmƒI@an@@mlUÅmV_™KUkƒ@U`@_ƒKUmU™@U¯™mmb¯@kb™ImV¯ƒƒLkbƒKƒƒÛ@ÇnɱJóaÝĢkb@„›x—ÒÇllœ@‚޲V‚„ÆUVV„UÇ°X„óxlV¯„lV@bƒV@n—x›@—¤@„șŎnxV¼knšJ‚nšKX°˜¦UlnVbUbÆVnÞWVX¦llšb@l°œVJôÒnLVbšbXŽ"],encodeOffsets:[[131086,44798]]}},{type:"Feature",id:"2202",properties:{name:"吉林市",cp:[126.8372,43.6047],childNum:6},geometry:{type:"Polygon",coordinates:["@@ôl‚zšaÈV°„šK@„mŽ—LWl™nšVxUV‚È@ŽÝĬUÈn‚ôLša‚„²VmĀkV@„ĠĊnU@b„V@b˜@nl°UVnÞaôJ@bš™V„¦mlkššbmVXx¯@Vxm„nbƒ„šbÈK‚V@bÈL„wĠyônšmnbÜ@nn„V˜x@n²K‚„„J@k„al@nxÞU„Lź±Vwkw¯LWWUš™kŎīVwƒw„°y„Vĕ°wÈVlkÛ»@wW@Uô£@ƒn™ĶƒXwW™aUamKóÑUI¯›@k™akkW¥XUmÝÅUVaUa‚mVk—¥W¯™Lm™IlmU»mwȚō@ƒ˜£kJUÇk@am¯y¯UVwƒa@wġx¦ƒKƒƒ¯X°Ċ¯¦U°ċWULÅa±b¯@UkÅWmVƒ™ƒkIUlóŽċ¹™`óIƒlX„WŽXxmbUƒLݏƒbƧ@ƒx¯bƒÈ—l@xƒš¯zƒaݤ@nšm„VWb²bmn¯J¯Ò@n„š"],encodeOffsets:[[128701,44303]]}},{type:"Feature",id:"2208",properties:{name:"白城市",cp:[123.0029,45.2637],childNum:5},geometry:{type:"Polygon",coordinates:["@@ó™ǩŁ@WlwUaƑwÛÅÇéĉamKƒōÇ@Iƒ™ôġVƒȁÑŹçƒ™ÝUƧċĉwóóÝ@Ƒ»ğL¯ll²@ƆÅV@¦m‚Åb@nmlU²VxšlUn™@VbnW„bÇbk҃š„n@èlnlšU҄ްLšx@¼ĉb@҄šUŽċxՃènLVxƒÒƒbÅJ±a@_ÅJÅnƒŽVb„Kl„nUÜĊ@„Uš™xXVÆn„mšVššJÞ¯V™ĠwšƒXw°xWL„x„KV¦ôU„wVÝǬóÞޙ¼‚‚„ÞkŽVôȘxބU„lVn¦ÞšĊa°w„b°@šbÆw„lŤL²`„z°@V@@™nJVnl@@¥nUmmn„@mwnmmUnk@mlwUaƒLnƒ›wn¯°anƒWakI„ƒÇmXwÆamUXUlJXa‚UUklKUknmÞV@‚K@VWÞ@VkUwVƒ"],encodeOffsets:[[127350,46553]]}},{type:"Feature",id:"2207",properties:{name:"松原市",cp:[124.0906,44.7198],childNum:5},geometry:{type:"Polygon",coordinates:["@@„šźèȂÒU„óĢ„š@JŎȄ‚‚LnŽĊbÈêÜÆƒxVbkx@XǪłôš„kÞ`„šW„b@n°ašbšKšnVw°`š_X`W„š¦„ĊIkmVšakw‚K„x°UÞb„U@lšƒl@°¦œVW„šaÞbšxÞI@mVI@ƒVkŚUWK„¥nL‚a@ƒ„@ȍ„@°ƒÆ@nU@KÞalkUwVékUWw„™kU›VkkƒJk¯@»ókƒV¯ÆÇI@bĉô¯@™ķw¯nmmÅL¯wƒVƒUÞy@UówÇLkmm@@UóxkkĉmL¯wVwkWWX™mLõm@kűV_ƒƒô»ÛƒÆ¯@™Va™VšaĠVlmğwķUóÝƽ£ÇJkbǫaƽLW@nxݤkzƒy¯XɅm@VšôÇX¯Ė¯ºÝnUŽnLVlUÔmV"],encodeOffsets:[[126068,45580]]}},{type:"Feature",id:"2201",properties:{name:"长春市",cp:[125.8154,44.2584],childNum:5},geometry:{type:"Polygon",coordinates:["@@„U°xÆKnn°mĸxš°@Ċó@aÈJ°Å„Uôl@¼l°„IllœUlVƒšXxlVUêVxkllnÈUVll@Vx²IÞ¤VUlVnIôlރlwô_„›„bVaĶLXÅÞÇ@K˜¯@wÛaƒçn¥š¯WXyW¯XwƒUmmÛ@ma™nómğzƒxÇK@aUÇL™a„ƒmanƒUw°@WwnU™al™nkƒ¥šU™@aóIÝbUm¯Vmk—@@aƒU@amVğĉ@ƒlUnÿ±Uƒ™bóKmVÇÞī@ÇVUUw‚™šmXk˜Kn@ƒ™L¯ƒÇU™byókōè@b‚n@lÝX@x¯ô@ƙUV_maXm@aóƒJWxnX@ŽVVnĖVnUJ@nōÆÇ¼V¼kxƒLklÝw@xƒx@zV`ÅbmxU±xU„nnm‚kn‚ŽğU™bUŽ‚šUb@šÅ°Ü„󼄄U`Ʋ@lön‚KšnXWlXUx°xnKĊllôw@Vn@lnÈKôx@VÝz„V"],encodeOffsets:[[128262,45940]]}},{type:"Feature",id:"2206",properties:{name:"白山市",cp:[127.2217,42.0941],childNum:5},geometry:{type:"Polygon",coordinates:["@@Ušl¦kÒÆ°„IlÒU¤ôz„¼lJš„U„n‚ÆXVl°@²aÆbVKČXV¯°¥¯ĉ°W„„„L‚¥Ģw@x„bUx°V°zn‚‚b@ÈlVŽlIœ@˜w@m„U@akU°ƒkUôwWƒÈ¯VUƒVUƒÅ±U›@kÈk˜Ñœw@ƒlaÞġƒUÞ£@ƅ‚KnÑ̝@W‚aUaVUVkkw@a¯@¯™Ý™ƒVXnW@@WkXmK@xkKUb@bW@Uw¯„mmb@WKUbmUbUaWbƒJĉIVW@I—l±LkšmU™bUm™@ƒnkKWa¯n™@„`Ubma™„ĉL@bƚ—@W`ƒL@n¯‚Xb‚@kb@x™Lƒ„™@V‚kL±™™mlUIU¥mL@lÅx@_laƒƒ@U—aƒV@kmmƒK„£ƒƒLƒƒmKUnÅKVbmXVlèĉUUbml„ĢŤƒIlޝbǦœl‚@ô¼Ģ„@x°„l¤„n„a„l@x™b"],encodeOffsets:[[129567,43262]]}},{type:"Feature",id:"2205",properties:{name:"通化市",cp:[125.9583,41.8579],childNum:7},geometry:{type:"Polygon",coordinates:["@@ÆlXnĠx̰lȰš„K„°kXm‚@¦Vbk„ŤJšnݤk„VÞVVkȄb°y„™@w˜k„ǰa„wƨ@„aސ„K‚VnaWwXWƒ„kôJš_ČºôVkƒ»óyV£kуJůlÑk¥V™ša@wƒkƒbƒmk£¯ƒ@wġƒó»@›kÈ¥°ak„JÆ£ƒġnkVaĊVkçWUnUaÆLVmnL„„‚KU™±@—„m@a¯U„bmV¯m@_ƒK™™U™ƒaƒÅ™Wó¹ƒ@UanmWak@@wmI@y™@mk„JVa™@UaƒIkJ@n™@Um±kkxƒm™Ik„ƒbÇm@ްbXn„V@ްÈmlÞ¼¯XVº¯Lm„kWWXLmVVlknƒ@@lnWƙ„Vxbmšnšm„¯lÝaVȁè@¼V„„b™„ÆŽ°ÞUVšJ„„kx›I—xƒƒƒIV¤™ÒXxmn"],encodeOffsets:[[128273,43330]]}},{type:"Feature",id:"2203",properties:{name:"四平市",cp:[124.541,43.4894],childNum:5},geometry:{type:"Polygon",coordinates:["@@Ɇn°W„zlyÞ£mwX@ƾKǬblaÈIƾ¤ôÞĸVĠxnmmVƒ²w‚VnwÆaU_@y„w@wÞxlk„KlwU»È»ŎÅ@mVIUmmĕUU@mWXw„Iô‚@bWnnbU`‚šV@Űó@wÞW@km@aŎ烙@m°Ñ°Inm±aXaƒU™n@mƑšU¦@šÇޝaU£šaU™ġ¦ÅҙJōUŻókUÇ@™¥¯ak¯mUVak@@aċçÅaUƒm¦Ý`XbƄ@n`ƒI™xĊÞōÞml@šUb@Wl™_¯JkšÇUÝÆÅb@n™„llUb¯„±a@ƒ—ƒWĉJġ™Unóšm¤œxôaVnƒxôI@x„V@bmƙ„@lnLmޯޙxVb¯þ"],encodeOffsets:[[126293,45124]]}},{type:"Feature",id:"2204",properties:{name:"辽源市",cp:[125.343,42.7643],childNum:3},geometry:{type:"Polygon",coordinates:["@@żôŎVšIÆÑĢ¥Vš™bV¤°bȍ@™V¥ƒ™Þ£lÇUUUÝlƒÞ£™mţIlƒUa@¥nlWƒ¯ƒL¯™kÇġ¯ğwWmÅk¯UƒVU„„bWlXlmnƒbUx¯xVVknlŽUbV„ÇKUb@„™VnbmlnzUº±bmJUbWÈnèm҄š@X`WL"],encodeOffsets:[[127879,44168]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/liao_ning_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"2102",properties:{name:"大连市",cp:[122.2229,39.4409],childNum:5},geometry:{type:"Polygon",coordinates:["@@‚IÞmVk@wXWÜbnwlLnU„@‚nLlbXW@a‚wnbl@XL‚aš@Ċ¥@LULnJ@xVnmV@VXXV@VJkn@VÜKXXôJlb„xl@„IVbnJVLUbn‚lnVw„JVU@ƒXU‚aUUlwn@°ƒn„VKnV°_VJšwl@nwlV„IXWlIVVnK@IWmkIVaVU@WÈUlmU@U„WUalkXġŻ@kIƒ»mm™akUm›ĉUŁV»²ġVĕ@aUU؍IɃ`ȃ@kƒw@ƒUƒmwĉ™@ƒWķсIĉÇbÝLkymbIƒwÇmÛbmbU„¯ÜõÈkÆVbŎxnXVÆnšǪ¦„bš¤Uš™xÝnĉÒmĊVȄ¤Èš„bƼ„Ā„„ÆÆÞ„źb„VVbX„‚°²¤"],encodeOffsets:[[124786,41102]]}},{type:"Feature",id:"2113",properties:{name:"朝阳市",cp:[120.0696,41.4899],childNum:6},geometry:{type:"Polygon",coordinates:["@@na@UVI@m„ÑW™kaV¥UI@wl@„aÈbšm@wVašk„@@K@kƒ™@a@UUmƒUUalmU@KÇUű¯@±kUKVkUaƒaU@¥m@@¯k@WLUmkn@mmIkm@amU@wVmkU@Klk@U—m˜aXIWWUL™aULVbƒmk@UUmUk±™_Uym@mbkImaX¯WW™xWKzU@WƒkJWwkV™@Um@UbVVVVXb@VWX—@WŽ@Vkb@V™nUK±aUUlwX™ÇWKknU@mmUkƒLUVƒVUUVƒUaƒw™bkKmwnIƒ™kJ@nmbƒ`kmVkLWwUm@UUU™K@UmaUa@UUaWK@mUƒ¯Wkk¯VmUUŽ„xVXUVmL¯ymXkWUbmXUKƒVknWx¯JVnkLƒl@VVxnxlĀVL²WlX„l@bÝVUn@bnlÜaXblIVl@šš@Ȧ@VmbXV‚@@x„VVnUn@`°@VnXU@K@„VV@VmbnVn@ln@b„xƒ°Ub@bšLV`Ånƒ„W@@lUšnnWVU@Vbkl@Xl`XxV„UblŽkX@ް¦V„UVVbUlkV›@UbVbkLUxmJkXšš@b‚bœxVKÆlXX˜bnŽnala@ƒUk@U„VVklKVUXKVU°KVan@VUnLšKVL„WVaU_@mmUXa@m˜wXwVkVWXk‚k@›„k@klm@wXKl@U@KVUUUVaUƒV@„alL„xUx@b°°VnnVšxlIXJmx„LUVlV@bnX@Všb„aVx‚@XJ@b‚n@VŽVXȄl@llX@lU„Vô°°@ބVbn@‚V„k„@VW"],encodeOffsets:[[123919,43262]]}},{type:"Feature",id:"2106",properties:{name:"丹东市",cp:[124.541,40.4242],childNum:4},geometry:{type:"Polygon",coordinates:["@@lzXJ‚U@š²x‚@@Vš„@bUVmKUn„°n@lnVK„„nV@n@VlV„°WbXn@‚VzƒJ@¦@bkb‚bUl@bkbƒJ¯zƒWULWbklV„nb™¦VJ@„„K°U„kl@@W„bVn°@„Všm²U˜nX`„UÜLXmVXlKVbUVVnUbn˜ƒX@VUL@lUbWxš@²kl`n@Vlb„@nUVWVLVU@aV@²bl@ÈmšxWX„VÈU„JV„l@„„la„WnX‚KÈkÈ@Va°bÆm„@XV°IVV°UnalƒVUn@UwVU„@@VVJ„I@bl@XK@wWmXU‚UVbkJVXnJVI@mƒknwlKXL@`l@VI@UUaVKÞn„aVm@aÇ£XW„U@aÇUU@mbkKm£™@WW™ƒL@@Kk@kl›U—bWKUkUU¯UõÛƒmUUaVU„U@WU_W@kVkJƒ_WKkV@bUL™¯¯ƒ±mk¯ġƒğÑ@UmwƒKUakƒ™ƒa@a„m¥ÝƒIUWmk@w™mţ—L›KʝbȗKWĢklVbƒX@VV‚knÇV@XUVUblJXn@J"],encodeOffsets:[[126372,40967]]}},{type:"Feature",id:"2112",properties:{name:"铁岭市",cp:[124.2773,42.7423],childNum:7},geometry:{type:"Polygon",coordinates:["@@XJm@¯šmXUlnVbUJƒU@bV@UJWL@VXLmJVbkXlJXxVL@b@V@n@b@`Vbk@lxknV@VV™V@bUL@bV@@bVK@VXLWLXJ@LV@nbWJ@IUV„x@LVJUXVxVx@VV@@LXJWL@VU@@L@VnL@bVVmVX@@VVInJmbnLWVnVULVVU@VVmX@@JVz‚l@„nVVKVXރ@mk_lm„UUWV_nJlUÞÑÞVVUVƒVL„UVJ@I„Vna‚@@KV@XwWknwnKlalU„w„aĉݚwšJl_@aUaƒKUUU@WU@WXUÆ@@UVK@n@UnVVšblK@bœllb@b„bW@Xbl@UlnLl°°bš¦nKlVnI„V@UWU@WXkƒw@am@nm@aVw@I@KUaVIm±XÑlknJVnVJšaX_VaUaVKmwnkmmn@lU@U@mnašXlKUmUIVmklaUK@UlUVUW@U™kVm™a@UUU@JmUU@@bmb—KWV¯XUKm@ka@UVKVk@aUKmLkKUUÝUmbXbÇJ@k@WU_@m™™@klm@UXKVaUI@KWUXaƒÇWk™aWUkWUL±U@lUU@ƒUJƒI@V¯JmIm@@aU@Uwƒa™@UV@VkI›V¯aUkƒWkb@bVL„@@VVVUXW@Uaƒ@@b—‚ÝbUV݄@ŽƒLmUkVUbVllLUV@LššXŽWbUXm@U`@„kxlnnJlbnIllšLX„lVlUXmVK„n‚V@L"],encodeOffsets:[[126720,43572]]}},{type:"Feature",id:"2101",properties:{name:"沈阳市",cp:[123.1238,42.1216],childNum:5},geometry:{type:"Polygon",coordinates:["@@ȚĊܰ„b„L‚lÞxUbUn±‚@ÈnVÆL@xnLšlUVƒbƒxkImJkn@V±LUxkV@bšbšKVKnzVl@L°@Va„xÞUlbôxVVœ@@V±bnŽ@llXL˜ŽöXĶŽnal@nkVJVI@aU@@aVK@ašUUUU@lmkwl@Ua@_@a@m@U@aUKWwkIlWUanIWK@UXKVIU@@a„VVIUa‚mVknW°™n@WI@KUƒmULWnkVkUWƒ™KkkmJkamIkmlw@ƒV_n@VWXaW™™@KVUkKUkValUnV„K@ÞƒVUÞa˜@a„@VbX@VWUU@Uƒ@UK@ala@IkKmUUa@U@ƒVƒkk™WVwU_@KÜUXbl@V¥XUVmƒƒƒXa‚kŃlUUkIm`UIUJW@UIKmkm@UUJƒImmU@ƒVUXU`mIUbUK@LƒJUU™l@Xƒ@UbƒJ™kU@ƒŽn„m@Uam@@ƒ™aUmLKƒwƒ™mWXUK@kUaÇa@JUIUa@aƒKVUƒUXmƒUy™_@lmbkLUKWLX`‚n@bVL@JXL„‚WX@Vnb@Vm@UbnVmL@V@x@LUbVV@V@LƒUVl@mb¯U@xU@UVVV@X@VVblJ@bn„VKUn„x@llnL±¤™b@k`VXÆK@„kV@¼kl@bWIUl@VmLnbm@@JXXmb"],encodeOffsets:[[125359,43139]]}},{type:"Feature",id:"2104",properties:{name:"抚顺市",cp:[124.585,41.8579],childNum:4},geometry:{type:"Polygon",coordinates:["@@„XVl°bœUlJ@UVUš@„bVxV@@bn@nJ°I@U„J‚I„VV@V@k²VVKlXXVšb‚lÈX„ŽWbXV@LVJUbWL@Vkn@lšš@nV`@X@lÈIWanaÞVVVlLnKVL@bUlUL@Vlbn@VL°WXU˜Lna@aV@nV@IVV@VšbUnšl@V‚XnKVa@U„UnyWkXaƒaVk@ašašbnm@_WKXmWanU@alaU—l@XJVLVxX@˜wnKnVlwƒƒ™@V_@a¯¥@UkKWUaUU‚anK@IƒaU@WUaVw@klUVyUUVUUÇ@Iôbša@mnUma@kXa@UWak@Wa—l@a›@WUƒLmU@U`mIUU™`mUk@@UUK±nkJƒbUam@kwm@@a@UU@Ua@@K@ƒVK@kmKU_UKƒUUaĉWmkkL@`™LƒnmlkLkbmK@k™@Ulmb@b™„@Ž„xUVƒIUlmVXXƒxm@™JUUk@WUk@ƒakx±@¯x¯Umb™KUUVmUU¯UmVVn™WkÆ„lWb„„„ŽUnWVU¦k@WaÛV@LV`UxšXllU„@„@VVbnVlL@J"],encodeOffsets:[[126754,42992]]}},{type:"Feature",id:"2114",properties:{name:"葫芦岛市",cp:[120.1575,40.578],childNum:4},geometry:{type:"Polygon",coordinates:["@@ll°X„ŽnV‚@XLVb@VVbnb@VšLVV@VVnXxlKnU‚l„_na@mlI„šmJnxlLša„xVbU„VV„UVU„KVlnnV@lmXLšÈWŽkxVV²bVLšm@Ula@UX˜@XW@UWaUUUUVan@V‚š@lUXxlIX„V@‚yXLšw‚ŽXXW°nblJnan@Vzš`l²nVVVl@„nUaVKšbVKnXVaUaVUšyšnXK@kVK‚@X@m@m‚LXa„LWƒU¯„w@™ƒa@UVw„¥°™ó¯¯y¯ƒUǯ»›w¯Iƒm—¯Ç™UUl™¯»ţKċÑţķm¯w@mU_ómk¼VnU`±IkbVlƒnnŽU¼±Lk`@X™Wl¦UbmVUxkXVlkbllU„Vb@bkVmx@XVV@Jb±aULkKWXkWmX¯aUJmIkVm@ƒxU@n„"],encodeOffsets:[[122097,41575]]}},{type:"Feature",id:"2109",properties:{name:"阜新市",cp:[122.0032,42.2699],childNum:4},geometry:{type:"Polygon",coordinates:["@@šXnb°lš„VlnXVJ„LlVnl@zÆxnK@b„blKVLn@@V„aVLVK@L@Vl@XVVInVVKVwlUXwlKšL„ššVVb@aV@X„lUXbVW@n„lWnXKV@@V@XUVVLUVV@@bVVV@@ln@VbVUXV‚I„xVanJ@UšIVWšL@UV@@¤V@nInw˜W„k„lnIVx‚lnzUVÇJ¦VVÜLĸUnW@aV_šWĊXXa‚Knkl@nm™L™a@alUVw²K@UlmnIlJ„w„aVU™kmK@wÅKmU@DzVmVaÝwkƒKƒaÛ¯șĉķ¥ğ¥ƒ@kUWkƏī݃ƒ@@akU„K@KWIUm¯nƒU¯JmwUVmIkJÇLm@™UImJUU@aW@U@@nUb™JƒaƒbXVWn@UVmX@V@b„š@l@Lƒ@™lUb@x™nÇaƒbk@@xVJU¦lbXšƒÒ@nUJ@Vmb"],encodeOffsets:[[123919,43262]]}},{type:"Feature",id:"2107",properties:{name:"锦州市",cp:[121.6626,41.4294],childNum:5},geometry:{type:"Polygon",coordinates:["@@nJ@nlmVnXKl@@°n@@¦‚V„bVbUlVL²l°@ƲÈV@LV‚knVb„VVnnWVU‚@XmWU„a„bšIVa@mV@X@@bVVnIVJ@š‚nÈKlInJVUnx°I„V°mVnXJ@LƒLlV@b„@ބƐĬXllV„@Ġ¦ĸ¦naWW@In@manK@UVkXJ@alk@»lU@ƒÅLUWl_@ša²£‚Kkm@kƒwVmULmƒ@akIUa@U@WUUVU™aÝ@ğ›wkƒƒmĉ£UWƒ@@bÇL@m—a@_mKƒlƒXUwKƒLţÓ@UWw@K@U„I@m™U@UV¥„@°UnJ°@@_™KUwƒW@UnaWUmmI@m™ķwUaÇLóVĵwݙUUW™¯šƒ¦Ux@V„b@šƒxV°X„ƒKWbK@n@nW‚@UL@lWL™m™zUVVbUbmWXXWJ—b˜n@Vkl@LlVUn@xnV@bln"],encodeOffsets:[[123694,42391]]}},{type:"Feature",id:"2103",properties:{name:"鞍山市",cp:[123.0798,40.6055],childNum:4},geometry:{type:"Polygon",coordinates:["@@l„œxĠŽÞ@šbV@@w°Vna‚@Uk„V@K@UUUVa@K@w@UnKmUVan@@Uma@UXWƒWK@IUK@amW_XKVLlKna@kmKVak@VU„@VmšU@anIÆan@‚a„šUVnb@blLV`ÞLlU„bna‚Kn@naVU@¥°IVK@anUUKVaƒUVak™@mJƒkXƒ™UVwkƒVUUa°U@Wƒ@WlkXWlIXUlJlaœx‚IVVXLšll@nLV@lLXl„KĊzš¥maUƒlkXaVK„X°y„Ila@aVkala@a@¥„IUy@WmXaƒ¯kU@U@mmUƒƒULkmm@ƒ¯VmnLVU@a™ƒ@U@±w@™VWIkymLUUkJWXƒJkUmxk@™xUI¯`mUULmƒ¯„m@kxVVbWV@„UVƒIUx@bkšVšVVšxUbVV@V@zšJVXU‚lnk@@lkLƒlƒLUU±Jkšm@UIUVƒLUVU@™K@UƒnnV@l@Ll„ƒaUJ@zn`@nWlƒIUVUUUV±Ln‚@nmL@VUVkLVlUxVLVlÅXma™@@akLmWUX@JUnVJVkXJ@X@`WX„VUVUIlb„W@bVUVL@`Un@¦U`@bUV@z@Jm@@XV`„LUL¯J@IVKmKÅI@J™nWVnLnšVxV¤™z@bmV@VUV@bUL"],encodeOffsets:[[125123,42447]]}},{type:"Feature",id:"2105",properties:{name:"本溪市",cp:[124.1455,41.1987],childNum:3},geometry:{type:"Polygon",coordinates:["@@lb@Vn„lnVVUb@šVJ@nnJ@bmXUx@xVbkbkŽWLUxnl@Ul@„xWx@nUV@¼Ull„knkK@bmbnl‚LVJX@VIVJn_lJVVšXUmnU°VVVUnVVšLna°V°w²@lw„bl@XVl@VVšIn@„wWWnUVk„JVUƒw@šƒ@anaVkš@@lnLlalKnk„mšK@_lKnlĊXVb„VVLV`nL@lUL@„@L@‚VbV@@V@bn@lxn@Vb„alI²mVL@Vl@nVš_VVnJV_‚@nV„K‚V@Xœ‚@b˜kXbl@XblylUUkš™@Xa@UVIlK@UUWVU„Llm@UUUnKWU@K@UXm„XVa@U°KVUUWUk@ašUVKkaWkƒKUknaWa@U—@m@mk@ƒaUJk@@_WKkLmx„l@nUJmIUWlIUaVWVXn@xWLk@@aƒJUI@Uƒ@UVVxm@UVk„mb¯VUU¯JWUƒ@Ån¯aUbÇ@ÇlLmWƒXkbƒƒk@UƒƒIÇVƒUXW™wÇnk@±aU@@bUVUKUXmVƒ@kaUm@k_±l™@XwVa@kVK@U„Wm—VaUmVUUakLUWWnÛKƒVW_—m±V™nƒU¯@Umƒa@Xk@ƒl¯V"],encodeOffsets:[[126552,41839]]}},{type:"Feature",id:"2108",properties:{name:"营口市",cp:[122.4316,40.4297],childNum:4},geometry:{type:"Polygon",coordinates:["@@ĊĖÆn¤„„°Ċ¯ŎWšô„@xXb‚wnKl@nX@VUVƒKmL@VU@Ux݄@Vlb„x„U@VUb@b‚kœ`‚IUlVUn„V@@UV@@JnXlK@bš@nbÆWUkUKVwUklKVU@UnK@mm²KVUVVVU„JXk@mm_@yVI„bkƒ@K@kmU„m@VšLV@VU„KVUVJn@l™²IVV„K„klK@kl@kmVUW™I@y@UUUVa™wUUU™l™@akmmVaUKmIUaƒJk@ƒwkaóIWWÛL@UlmUIU@WW@UnUUm@wmIVK@Kĉ¦™@bWKk@max@bWXkamKƒ@mVkKmxÛaWX@xUlÝnJ"],encodeOffsets:[[124786,41102]]}},{type:"Feature",id:"2110",properties:{name:"辽阳市",cp:[123.4094,41.1383],childNum:5},geometry:{type:"Polygon",coordinates:["@@š`Vz„‚Wn„VUV„L@bVbVJ@IÈbVb@lVLXW‚n„š„x‚LnKVŽšb@„n@Vbn@mƒ„V@šl„IVa„@@WškVV„I@KVLVanJV_VW„UV@nn„JVI‚Vn@na@alLlmkƒVk@»VU@mXwƒwk@@VmkVwXKllaUa@wVwnW@amI@mUI@™VaUUkmmƒ@UkaƒL@ƒUIĉyƒLWkkKU@mKk@™kWKUUJ›wkbkIWVkJWXkl@X„‚@X¯VVbUVl„UxšVW„„lnIš@l‚Ub„VUbVLmV@bUL¯J@¦UVmbm@LmbƒakVÝKU_kK@amaVUƒ™bm@ÅbmJ@b™VUnƒ@UVl@UbnL"],encodeOffsets:[[125562,42194]]}},{type:"Feature",id:"2111",properties:{name:"盘锦市",cp:[121.9482,41.0449],childNum:3},geometry:{type:"Polygon",coordinates:["@@Vbĸx‚š@nnJVnXŽmb@V„XVxšL@`¯@mI¯Vƒ@U¦@VšV@nƒJ@V@LXx@VŤÔ„K‚LVx„W„knL@`˜b@nÈK@a„@VXĊ¤„nVK@aVU@UnU@ašyU£Uwm™mKXUšm@IÆJnLUL@J°IVKƒKU_@Wn@@I@yVU@aV_@¥Vm@_UKUV@aƒXkaVJVUƒUXW@_@WWIUlUIVm@IVW@IU@@VU@mƒUVVkJ›_l@aVa@UƒVƒwka@UރVwV@@UnK„LVU@UmWk@mLxWa@wóƒUVUIÇÆĉ¦¯¦¯xʟJ"],encodeOffsets:[[124392,41822]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/nei_meng_gu_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"1507",properties:{name:"呼伦贝尔市",cp:[120.8057,50.2185],childNum:13},geometry:{type:"Polygon",coordinates:["@@„m@Łkƒ™Žƒklƒôƒ@£kJ°ý™ɅķÑó¤ğLĉÅlÇğŁW¯¯›™ƥóÿlwkţÈéÝƛó™°ÞÅxV¤ĉĖWƒ¯lȭţυ̃ɱÿķƅˋğɱřÝţϙȍƧĊţ@¯kWKUKm¹Å@ķJU@ƧÑƧ„ō¥˹Ɔ@L@„Þ‚VLnš@VōČWJX¦@JŻbU@ţÞmVU@ȁýóbkWWLƒƒÅ™¯UWġkmóƒ±UŹôV¼ƽ¼ƒł̥ĖƽǬʉxĉŽŻȗKΕ̛ʵƨʟÞ˹»Ƨţ»Ǖō˷Ȍ±ȚʊĠUɾɜɨmÜ֞߼˸ƅȂ¯ǖKˢğÈÒǔnƾŎՂ@šĊbôô̐¼ƒ@ĊôĊŽÞĀ™xšĖƧL±ŽœŽ‚Uš°U„°ĬƒČ°ÜƒêɴȂVł°@ƒ„nxŎèƒbȄÞȌ΀Ǹl޲IlxĊl²ÒmšôĖ™Èl„ĵºm„ÈêVþ„xɛČʉÇĵVmš„ÒƒÈɆôƐŰǀĊ°ÆǬĮƾb„yĊ@ĠšƒXǀċm»ôw°Ûk¥Çm¯ç™kkÇǫţǕéX_ĶWǖīŎaÆĵĸĊ@ȚȘ‚™ĊLĢĉ„VÆĉʊÇĕóaU¥šĉ°mkŰġUĠřk°mƒÑČÿ˜ÛƒWĸ£ʠšÆxÈÞŎÞ»ʈ²ĊÇČalÒ°Ť±ĸz„ŽĊKȲm¤Ŏ@Ò°¼nyȂUźīǖƳÈē°@šÝ̓@ƒÈkl¥Ççkxk™›JXÇƒUÅ@˜£k»„óƿīÛ@lÅJl¥óý@¯ƽġƍÅan™ċ™°é¯¹"],encodeOffsets:[[128194,51014]]}},{type:"Feature",id:"1529",properties:{name:"阿拉善盟",cp:[102.019,40.1001],childNum:3},geometry:{type:"Polygon",coordinates:["@@™ƏnǟƨʫšŹɆÿ°¯ÆV²ˢ™żÿ@ÝÆŁȰ¯ȀƳĉó™™@ğkyš¹@īš›ƒwl£Źƒƒ¯Ŧé@™ÇÇxŋĉƩUUŃōL™Ç™ĵóÝnƒóç@™™ó@ġƒƱ„¥ƒç™WUçÆōƒ@é—çťK™çȭVһƽ̻aW¥ȁ£ʵNJǓƲɳޗǔlżÞmĠóĬȂɲȮ@ÈĢŮźÔnĶŻǠšŎȭœгŃċóȭţΗÆƑÞƧÅΫóȘǫɱȁġlÛkǰȁÈnšõl¯ô„ÞɛÝkĢóWĊ„zÇɼʝ@ÇÈķlUČÅÜķnέƒǓKȮŎŎb°ĢǀŌ@ȼôĬmĠğŰōĖƧbЇƧōx@ķó£Ål±ĀƧīXÝġƃêĉK°Ýʇƅ@ΌʉżÅÒϱʈ@˺ƾ֛।࡬ţશóЈèʞUš¤Ґ_޸Ƒʠɽ̦ÝɜL׈ɛϜóȂJϚÈ@ǟͪaÞ»Ȯź"],encodeOffsets:[[107764,42750]]}},{type:"Feature",id:"1525",properties:{name:"锡林郭勒盟",cp:[115.6421,44.176],childNum:12},geometry:{type:"Polygon",coordinates:["@@ʶĬĊIȘƨƨŽ@ĬÛĢșŤĉĬƒĀóšU‚ÈŚÜènŦƐȤȄłϰUƨťƾÑ܆ğɲƜǔÈèʈƲĊƞƒšɆ¯̼V˺Ò˺ȂŤVĢêU܃x„Āˌ˘ƨ„ưѢmÞżU¼ÆlŎ@ĊçŎnÈÒͪŎźƒĸU°lżwUb°°°Vš£ÞlĠĉĊLޏɆnźÞ„n¦ĊaȂīġѝIĉůl»kƒ„™Çý„¥Ŏ¯ƒén£ġљÝȭxƒÇ™@Åçķ»óƱŎ¥™çWÿmlóa£Çb™yVÅČÇV»ÝU¯™KĉýǕċţnġ¯»ÇōUm»ğƒÑ™wƏbċÇŎċwˋÈÛÿʉѰŁkw@óÇ»ĉw™¥VÑŹU™mW»ğğljVÿŤÅźī@ř¯ğnõƐ@ÞÅnŁVljóJƒwĊÑkĕÝw¯nk¥ŏaó¦ĉƒV¦Å`ğуÑÝ@mwn¯m±@óƒÛKˍƏǓ±UšÝ™a¯lƒōšșk„èƒĬގn@ŤġŰk°ċx@œĉ`Ƨĕ°@ţÒĉwmĉ@ƒƒnƒƒa„™¥ķnƒÞĉVóÆókĉŽķ@ÝkƧƧÛaƒ°Ç@ÝÈU˜óbݼ@„ÛÒV°™@V¼ˋL™ÞɅŤŹǠVÞȗŤÇĖŚōbȁƜ"],encodeOffsets:[[113817,44421]]}},{type:"Feature",id:"1506",properties:{name:"鄂尔多斯市",cp:[108.9734,39.2487],childNum:8},geometry:{type:"Polygon",coordinates:["@@ĶL²ĬVłƑkkl@Ȏ™ŘWńÈĬȗ¯™ºlz@ĠššĊôŦô„ÒĠ°kÞܚ™n@¤„UĸèĸbŌÈXŽĸLlÒĢxɲÆ¤ÈÛƾJÈݰUšÅĶ»²VW¯ĸJôšbk‚V@ôlbnĊyÈzVôašb@ĸ‚ÞUl°yǬ²Ǭm°ššk„±lbn°@È»˜JX„VŎÑÆJ@k„LšƒÆl²™Ġ²ʊůĊġ‚řóƛÞÅ@m„ƒmLUÿóĉƧ@™»L@„›`ČĸmšȗÑţů±ĉğl¯Ā™wǎƒçƧŤÛI@±ÜĉǓçō°Uwô™ǫůķƳř±bÅ£™ÓÇwnÑó@ȁƽ@™ƒÇƧĢón»ŏĕóĊ¯b„Å™™VȯÅImƒōKU„™LǓ±Ýxċ—ŋ˜V±Āȗ°™„Źl±šÛ@WÒȁŚŹНŚÅèŌô„¼°ȰɞȂVĊ"],encodeOffsets:[[109542,39983]]}},{type:"Feature",id:"1504",properties:{name:"赤峰市",cp:[118.6743,43.2642],childNum:10},geometry:{type:"Polygon",coordinates:["@@ɲŁĢljĊwƾōÞĭ°_ŎŃźȹƒUČÿl»¯ôķVÿǬƽ™ɅġÅÑǫ»̐ʟȣU™¯wVWݍÈġW»Þ¹m݃ɛŎÿŎōͩůV¹›ō™éċ™óŹÅVVĢǩʈ@Ėċ@ķšÛšV°¯xÇÅţ¥™»°Ûô™ĉʟ„¥WýČ¥™w‚灻±mnÅķ¥ˋVƒbUÒġ»ÅxğLƧ™ƒbWĖÅxš¦U°ÝVóŰlô²@š¥ÜÞÛô„V@²±`𦙄™¯Ý@„ŽÅ„VÒō¼ôš™¤V²ŹĬÇĊƑƒţxƒç¯Lk»ʟlƽýmłÝÆƏ@mö°Ġ@ŚŹĬţÆUĀĠNJĠŽX¼šnźVUҚ¦Ċxȼ@ôlx¯łʊÒÜĀˌÇČxƍČÈƐašx„ÒĠŽn¼ŎVȐ‚¼Ģ°ŤmǖČĊþšLV°ÞŽU¼ċÈUƚzÈa‚¤ôbkŽ‚nXšè"],encodeOffsets:[[122232,46328]]}},{type:"Feature",id:"1508",properties:{name:"巴彦淖尔市",cp:[107.5562,41.3196],childNum:7},geometry:{type:"Polygon",coordinates:["@@²@Ζǀݴʶհĸ„˜ƒ¦Ķ™̒Uˌ¼ӾÇƾ¼̨UÞĉ˜Ƨ—éÝ»ƒĕĉ—ƐȍœōǪakó‚ó¯a@™ôţ™aV¯Þ¯°@²él¥ĵğťwōxó¯k±š—Vó@™aóbUÇyĉzmŽkaóŽU@l™aó‚ķIX°±Uĵ¼™Æ¯VÇÞƽIÇÜÅ£ɱŽġwkÑķKWŋÇķaķçƒV@£šmۙlÝğ¯ƒÑťóǿƴȯ°Åł@ÞŻĀˡš±ŽÅU¯°ɅĀ™źƧʬmǠšƐ"],encodeOffsets:[[107764,42750]]}},{type:"Feature",id:"1505",properties:{name:"通辽市",cp:[121.4758,43.9673],childNum:8},geometry:{type:"Polygon",coordinates:["@@ôƲĸ¼Æèš@„ÈȮwƾ»ʠĢ¥VÆ@²¥@»Ŏњ¯ĊJŤ£k»ÆÇX¯̼ōšī°aX£ôƒƾȁꥄƒ™aôŤ™ĢL°ƒĸ@Ȯ¼ÈÒʈŚôVXůÆaĠƛÈKƒķšĉôÿ@ğÈĉ™»ÇVn™ĉV›wXĠݰšČÿĸwVƒ™¯¯ǵ±™ĉ‚ǫ™ÅÅm»²Ż±ƽIm¥ţÈķ@¯šƧJV»ÞUÝç¯UġºU£ţŽóaÅÅlƒƒ™Ƨī¯K¯Þ݃ğL̑ȍƽ@ōŎōĀƑɜnÞݺX¼ÇĢގUX°xVšʠȤ̏Ǭ¼ÆÒɆ̚ŽǫƾUĀóĸ°‚k¼ċĀƑVŹȺōń¯`ÝĮƽŎĉxġNJɱłō¦"],encodeOffsets:[[122097,46379]]}},{type:"Feature",id:"1509",properties:{name:"乌兰察布市",cp:[112.5769,41.77],childNum:11},geometry:{type:"Polygon",coordinates:["@@ʠǠÞĸɲȺƒÒȂƛŎaƙÈĕȘţUÝźǟɆţšÝˌKU»š@U¯ÜÑ@ƒÞ»ôaV—ÞÇÈ@„¯ÜbƨƨÞlĸ@ĊôlôÅĊU„Ýĸmš¦ƒŽ„bm„„„Ċ@n‚ĊxŤÑ@¯‚ƨĖĊ_@›Čwl¯™ƒȭL›Ý„»ƽ¯ķů„Ǔ@ÇǓbċ™ÅÅÆwÿĠÇU£óaƒ¥¯aŎğĠţkw°»¯ůlÝĵkǻݰɱƧǫaóôɱ»Çk¯ŃóƒʇŐŻ›ĉNJŻĢ„ޝÒÈUl°ƒx°n„Ò™Ĭón™Ċğ°ÇŚĉ¦ʵVƒ°°ĬÛżÇJȁńʇʹó˂ƽŎ›Æţ¦"],encodeOffsets:[[112984,43763]]}},{type:"Feature",id:"1522",properties:{name:"兴安盟",cp:[121.3879,46.1426],childNum:6},geometry:{type:"Polygon",coordinates:["@@ÆXnlŎ°@LVLĠþœxĊUȮĊnU„ĠV@żaW¯XIŎġƒ¥Ý@K@w@K@I˺ŻŎ¦ƨƒƨÒŎIÆ@X@VºnX°lŎ@ƾĉˤƒȘǷȘÑÝݚÞbVţĸÿŤxÈĖƐށêÇKnĸ¥ô@›ķÞUnÒl@UŚaƒīˋƒ¯ÑƧx@±kXřƐƏÛéV™ˋ»lō¯ĉ„ÅÇÓǫޗĖġV@ğ»›°ĵ„ÇÞǓ¼¯m˜ÛÅŃĉĠÇƾb²çƒ™šéż¯VƒƒğÞml»ōÑV痻V¯™¯šĕÆU¯y°k¯¯V»ôDŽѰa@Źk™ġKţšóŽšbƒ„ʦƽȂó„W¤¯b™Ĭ̻ŎW°ÅÈl¼ţ¤ĉI™°ōÒ@¼±¦Å@UŽġ¦ʟŽƽ¼šÞĢÒm¤„êō°ƒ¦Èþƒšl„k¼Ċ۰JĢńȁĬ„°ƒżn‚ÇbV„ݼ@¼óĸţ¤@°Ånšl"],encodeOffsets:[[122412,48482]]}},{type:"Feature",id:"1502",properties:{name:"包头市",cp:[110.3467,41.4899],childNum:5},geometry:{type:"Polygon",coordinates:["@@źxżĀǔÆǬVȘĀŤ¥œÅƾōôˁʈͳȂŃÈIÜŻ¯ī„¯ōm™¯ɱ˝ƒķÒÝIÝ»ÅV™ƒlÅôфġ™ğVmÞnnƒWçkW܁XƝÆwU»Șĕš£ĉÑ𱱚Åk™„ƒK@lÅIō҃UW‚—IǼ¯@m‚kaƒ²™l¯™ǫnǫ±¯zkŽÝVķUô™˜l²ô°ŎwŦxĶĠk¦±ê¯@ݰU°šbóŤ@š°bôlôǩb›ŎƏȎĊ˜„ĖÞ¼˜ê—ƨÝĊ"],encodeOffsets:[[112017,43465]]}},{type:"Feature",id:"1501", -properties:{name:"呼和浩特市",cp:[111.4124,40.4901],childNum:6},geometry:{type:"Polygon",coordinates:["@@ʶUĊ¥ÈřĠ¯šĉômšīƒÑ¯m„wk¯ÇV°ÑƒżġĊljǓɱţǓ›ƝóX¯ƒɛÒóa@nÝÆôƜŚĉĢʉŰĊҙ¤ȗĖV¼ÅxWƞۂlXXèm„ÝmUnšĠƒĢóÒkƚ„ÆUÞ¼ÞJĸѰ„ɲĕš°Ŏn"],encodeOffsets:[[114098,42312]]}},{type:"Feature",id:"1503",properties:{name:"乌海市",cp:[106.886,39.4739],childNum:1},geometry:{type:"Polygon",coordinates:["@@Ș°ÇīXњŗ@ȍlkƒlUٱīĵKō¼VŽÇôXĸ¯Ž@šťê„°ź„k¤„x™œ@Ĭ"],encodeOffsets:[[109317,40799]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/ning_xia_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"6403",properties:{name:"吴忠市",cp:[106.853,37.3755],childNum:4},geometry:{type:"Polygon",coordinates:["@@nLV‚@šVLšaÞbn@@l˜š@bUVlUV„zVx™¤kÞVèšXnš‚@nm°a@UƒÑ„@VŽXnV@Va„UšŽVKUUU@@U‚@@KVa@U²@‚wXkWnk„±lLnU@UmmVKnIVWnI@UK›@UK@@UVKXkmWLWUXmlkVwUyVa@w„w@aVI„K@aVÈw„KlLVV@LnV„VVnU‚ܲ°WÈIUÆ@nÞ¼‚‚@¦™@UÞUVW@UxUxVn„b„K‚b¯ÞU`VbǬ™V@XXÆVVl°InmnUôƒ°¯‚anam£œWVX‚KXmškôaVU@ƒVak@@wmaƒn@K@UÛUWKXUƒÇƒ@UI™b@alW@akLUKV@@Ukw±Iš›nL@kmwkWmk@JUIƒůVmnnU@m@UƒK„VKlkUwkƒƒnVUKmbkI±š—KƒkmVkKƒb@U@aƒVkUmn™`kIlaUK@UUKmbUIݚUa@mUa@aƒ„m@UUULUK@bmKkbWI@WXwlkXƒWa@k@kKƒLVkkK@L@JUVmzUKlwUUnW˜£XVlKUwVU@aXI@aWaUw@W@_nam@¯‚UkWVkUWaU@nwmJkUVkWVUmUkJ@ImbUaƒ@@WÅ_mJknmak@@mƒXƒaUV@„ƒxUšƒ„@‚ƒ„@VUnkVƒ@Vn@`ULUbWLXVW@kbUJ@XW`@ƒnÅĖWJƒ@—m°@xƒxšbnUa‚w²lƒÞ°xŤIVVULۂWbšbkVVXÆ`UbVL„@kx°LlV@Vœ„WbƒJn@bl¤ULV„°@lmL@ƒƒ£U@@aUwmKULVxUVVx@„™@kU™@mK¯LÇa¯@"],encodeOffsets:[[108124,38605]]}},{type:"Feature",id:"6405",properties:{name:"中卫市",cp:[105.4028,36.9525],childNum:3},geometry:{type:"Polygon",coordinates:["@@°@Èb°KnLš@lVš@@ƒUwVUUwVKnLVx@bV@„¤@„nK@k‚¯UƒVKk£@a‚m„IXa›ƒ@UkU¯Klwƒ@UKVaÅ_UWlU™aXa܁VKUUţJ¯w„ݱkxVbmŽ™a„w@wn¯˜„@XIÆĕ„m‚@X_@WVIlaX@WUXKVaVK@_Um„@lUVm@U„ƒ@„ƒV™„w@ƒVUÛwm@@W@ImKUkU@Ua‚aXƒ@wWaUKkw@UVaUamLU™nk@»±`¯@k—W@Ua™ykbƒI„„@VWJkLWUkJƒwU@ƒn¤mL¯wm@Umƒ²XVWbnV@bmxƒVkxUblLUV@kVWKU¼ƒŽkUƒ@mn@JnV@bUnmJUn@„k‚@XlxšLVVnKlLVV@š@LkKULVbk`WL@lkXW@kVƒ@UÞUlÇX™lkaUbmV¯@@L@šƒV@bkb@xƒlW„—bƒbW@—±@UJ@IU@mVk„VxV@@l„Illœn@Vm@ƒVUbl„@JLmKÛXmVkU›KULU`@LĉwƒKUX„lVUl@Vb„JX¦̼bÞxŎxɜĖĠ„Ŏaô@"],encodeOffsets:[[108124,38605]]}},{type:"Feature",id:"6404",properties:{name:"固原市",cp:[106.1389,35.9363],childNum:6},geometry:{type:"MultiPolygon",coordinates:[["@@Vnn@°xnK‚£„mV@„xlIXVlKXI@Uƒƒ„JlašzVbX@l˜°@²_@¼mlVšnKVbUb@VlxVLXb@xW„bVbV@VlnL@J@Xn@Üx„b„W@nl@nblmnIÆ`@X„@Vbna@aVUUWVkƒ@kbWakbU@VwšW@_l@nmn@@alVlk@UkmVak@@a‚UXaƒL@¯@KVa@axWI@KnkVaVJn_lJ@„X@‚m@nVanUVb@mXLlJ„VWnLla„VVaVX@KXVVkVKlknKVa@aVU@KXb@klJUknUmƒ@K@_UW@alIUamaU¯kJma@IUK@U„@@UW@@aXLVƒVJVaXIƒKlaUkUV@ambUUJkIWJ@wUI™V@JU@UwV@@Um@™nU`@UkUmVUxWUUV@aÅb@aWXkKUUƒUUaWK@wnm@IVU@aXwm@UmVaUalk@anKUwlƒUwlkK@wmaƒUkmmIk@VmkUUbW@UVUnW@kV@xkVmbVnU‚™@UbUV@a›k@kkW@„kLW¤@„nV@VU@W_UV™UU`VLUV@IUVõVULU@UUUJ@wmkUJ@šWI@l@bkKkbVVƒbVbUL@UUJ@Vm@@L@xbVVVLVlVwX@Vb@bmUkbk@@JWIUVÅw@Km@UkWKXxWLÅ@UVUnWK@xkVW„@KULwWVXVWzXVVKVXkV›V@VUbV@U„VV@š@LXxVL@V„b‚Ž„LnKVLVxXVmb@l"],["@@@J@aƒU@LWK¯UUxVVn@Ġ„„LUW@UbUUUa@KUX"]],encodeOffsets:[[[108023,37052]],[[108541,36299]]]}},{type:"Feature",id:"6401",properties:{name:"银川市",cp:[106.3586,38.1775],childNum:4},geometry:{type:"Polygon",coordinates:["@@šUšwVK@UVWÞUšbšw„V@knV˜@@KU_VK@K„ƒn@W_XWlL@Vn@Ċw@Ulaœ@Wanamī@aƒ»ŋó@aÆÅɲÿUaV_°ÝaƒLƒaUmVwVwX@VUVݚ@@¥Ý»@mVÅÇJ¯XÛ±VUmƒUmU@KUUkKƒLÇxUŽ@bƒLUJ@bƒx@xUbVzUxklWnXV‚KnXWlUL@V@ŽVLœ@VL@ŽmJUXmJULnn@VmVkKƒ²mlXWlx±@@VUb@L@@VV@VVUL™ƒVUbU@WmUƒ@„Ò@V¯bmn@VŽƒ„@lVnUšnVWŽXVl@¦VVUn@x‚š@‚XL@¦‚lXxš„Vb"],encodeOffsets:[[108563,39803]]}},{type:"Feature",id:"6402",properties:{name:"石嘴山市",cp:[106.4795,39.0015],childNum:2},geometry:{type:"Polygon",coordinates:["@@U¯ķó±ÇÛ¯™ķmbXb›@kb@Vĉxm@@UkKWXX`m@ƒ„@LULV`@L—@mU@lƒU™x™aÝVUX@VUL™x™VkLWVšš@J„nVLXVlŽUV@zl‚VL@V@b„„n@lU²WVLlLVbUŽVxUx@xǀL˜xôҜk‚K²ŽVa‚U@wXa@W™ÈĉUa@‚bÈk„m@¯"],encodeOffsets:[[109542,39938]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/qing_hai_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"6328",properties:{name:"海西蒙古族藏族自治州",cp:[94.9768,37.1118],childNum:7},geometry:{type:"MultiPolygon",coordinates:[["@@„V£°š@laœXô±źwš™ô@„Ulƒża܍n™Kƒw@U„aƒ™ša²L‚mÈLƚÈxlaUa„wÞmÜbÞUšnJ°a„kôƒ‚ÑkwÝVğwÇ@ÝkkV¯¥@ò„»„nŤ¥XImw@mVwša@Åw™mLkaW—wƒ¥l»kçƒó„»@ƒWÑĉŽğ@ĉ„™‚Ń„UwóřVómĵ»™™Ý@VǕ¯kšÝĊÅk™°ÓUklkU±šI„ÇÞkƒ±@šƽJƒ™@UġIk@W¦™VÑșÓÅnťKULnޝX›ƒ@¯mUÛ@WřmóKknōbƒxÝ@ƒŽU@kw@ÿÇLţšÝUkšmwƒŽk™lċVŚU¦™ŽƒLkUWlÅÑ@aƒ@ÅѱUóġʼƒÈĉmŻ@@wkw™Kl¯U™ġ@—„lÇU™Ó¯_ƒ‚Waĉ²Åló¼VbknƒKǎÅ@ƧĢō°Ý@ğ„W™ÅxUUm@™‚ÝXۂW„ULUè¯@mbUaƒLƒbUWġxIUJWz™a¯b™y™@ōÈóLU`ÇXUl™UĉV¯n›mÛbǕLklƒUĉVƒšóaġ„ƏbġKţnkbÝmmnÝWȭȃŽÝXţWókUÇl¯U¯‚ġUɅĀ@°¯„„š¯„VÆnmJ@ĊķnóJUbÝXUlVškL@lVxnnmb@¤Vzš`ÞÞŤ@„VnÆJV„°b„UôJkzlŽkl@²óš@ÆÇ°k˃šÇbÛU@lmb™XV˜kzƒV™ŽɅĀXˢlń„ĬŹ@›éÅ@ĉńưğbUšlŽɜ_°‚@xŦ˜škbVbƒKĢ„ŤVŎް@żÈźlĊ„ôKôb@nôxŦ„Æ@ôŽŎL@þÆb@šnnšWˌbÈx‚InaŎxlU@Ѳ±ƒğVŨƨbɲ@Þ¥ôUUķWVô¯ĊWʶnôaŤˁ@£nmnIôŽǪK°xUXô@Ŧa°m‚kXÆÞVŎkĊ°ÞLȄôyVašIlwX°UVwĢÑÜKôw@nV@œm°nmŽn„Ü‚ɞ£VbmŽXnƒ°ÜÒ@xx@V‚b²UlbkxVnšJUnVVĊ°KȚm°nxÇnn¤±¦@ŽUXVV@„lV„„bmVVȁŽVxšÒ™°šIšbźaȃšbVwš@šƒVL„™ƾÑ@ƒŦô¯ĊkôÑ"],["@@„@šƒ„@n„òVœa‚w²bVxšxÜaČVô_ĊJšIVmšL„a°@Ŏ¥XlK@ƒšk„l„KVbUb˜@nUĢn‚aÈ@lmǬ»Ġ¯œn‚mnƒƨVy™Ñǖ™Ġ»ɲInŽ‚@@ÅĢƳ@¯°™ôV„KÈbVIÇ¥¯@Ýó„™@ÑnīWKšƒk™‚k@¥š™¯™Åa™Xƒ±VÅw@±Ġ¯@»™š™n™Wmw@ƒ™@¯ƒVƒUUWçƒKĉ„a±VkkƒV¯w™x@šUJ‚x@bknÇb™mÅ@Uw±U¯¦UŽ™Kmš¯I¯Žť¼ğĊ™@ǃŹÈ¯@Ý»ÇnˡJƒbÛèÇnƒ„ÅK¯„ġĠʐW¼Ålm„@¤n²ƒŽÝb@b„š¯lƒ¯@ƒšÅ¤W„™¼nV@x„„°@Vx„@lbUblbX¼W‚œšÇ²lšUŽ@¼ŽV¦@bÇlVxUbVxÞbVšœbm¦ƒVV„"]],encodeOffsets:[[[100452,39719]],[[91980,35742]]]}},{type:"Feature",id:"6327",properties:{name:"玉树藏族自治州",cp:[93.5925,33.9368],childNum:6},geometry:{type:"Polygon",coordinates:["@@ɆÿĢV°°VÈklVôŤXÞW„ȮÇÞXnmÞnlaŤmĢLƐãôb„™ĊU„VlkǖKÜaœn°mĊUšVVkÈWV_ôKŎǚ@šz°ašbXyVI‚JĢwVX„a„KVbna°@VçVKXƒÜÞWšn@VVÆwXšĠƒÞ@Ŏ¯ƨġÆ@ȍ„LlmUaô»ÆkĊ±Xb„°`šÔV‚kȘƒĢ@Všk°šLlx@xż@Ċn„Çź»ô̲VÆÒ„@@bÆÒXklV„KšV¥Æ™ČUšk‚l„nxl™çƒ¥ċç@±m¥ƒwÅJƒ@™™™Vƒ„mÈIléÈa°U¥™™@kÞV‚K²ÑWƒ°w²Ñ‚K²ñšyƐ„ÝšVmw„»kkWĉ—JWUƒVÅwƒL™mÅ@@ƒmw„kn¥Vу»°™°@@»„¯„Lla„JônV‚UůƒU@W¯Umѯ¯k@WykU@¯„wV¥ƒkVwţƒk»šwWǜĉĶçšK„ƒÞ™ÇaĉbƒI™lUƒ@kwƒWƒXUƒ°w™±@UšKn£Wĉ—KWxƒkĕVƒšamwXw™@™„Wmnk@aƒVkƒ™bĉLƒl™Imm„wUÇ‚Wx™nÝJn@¥Æ™kwƒaXƒÜĉ™¯ÅV¯¤mkƒx¯kķܙ²VWôŹVUƒƒ@V£™¥@ƒ°wn@™m@¯@UbUôķŽmn@ÆÛ@ÇýVaUÇĊVƒ@Çlğ—¯xÝŤ™lVÈÈVƒx„ƒ¤Vx™„kK@™@ƒx@„kVƒĖġ¥kIWbXŽŎx@nƒxÅUW`ƒ_—@±ŽUa™LUxƒK¯„WbkVlb—bmŽƒLÛÆWIUwƒWkwÝV@kI›ŽéUb›UUk™V¯Km¯k@Umݐ¯m¯›m—L›Þĉ‚ÛUm™ġ£UxkKm°™Lw›šk@kšƒVm„ƒKVUk›@¯a¯Ģ™móKUU™x™ImlÅn™™ÇbXèVVU„°„@ŽšŽ@„‚xXnmš™ššŽ@¼ğ°@²ÆxU‚„²šWÆb°š™š@¦llš™„XLmĬ@҃šÞô°@ȦUJÇaƒLóU¯š@°ġƴ@Ɓ@mɱJğ¼ǕššÒUzƧ‚m„n›mğ°ǫ¼knÇ@bġmmV—@VaUaƒLƒk™l@„kLW‚ō¦¯@ƒb™KUn™JĉIó`ċUÛb™wUw±ax›bñUmƒƒ@™„ƒ@—bƒaƒbǏÅXm˜„ƒÝ„ÅôVbގ™bl„UšÞVޚ„U‚°„VUxƒ@U„V„@l`™¼nL@Ċ„LW„„¤kXķWġXUVVVķ„UbVb@°kVVxÈa‚@ȦĊbšaźJ„U@Ț„„˜Vœƒlš@XkôaWƒĢ™Þ@laĸUÆb²mÞLĠ™ÞÑôbšÒĊa„JVbm¦"],encodeOffsets:[[93285,37030]]}},{type:"Feature",id:"6326",properties:{name:"果洛藏族自治州",cp:[99.3823,34.0466],childNum:6},geometry:{type:"Polygon",coordinates:["@@ÞVŤ™ÈK@ĀlxV@„Þ@„wŎalmôLšnXÆÜ@nV‚°@œ„°WmVKŦLÆmȚԂҚUX¥l@ĢJVš@„ŽƾI@w™W°™™Ån¥›kÅÝVwôƒÈç„@lÑĊĕša„JnaÆLVw°kny°UnkÆVȍĊll¦„Vƾ@@™nUźƒÈǂIn°X„wÞKô¦VWV£„@£°ókċ±I™™am¯Va™»ČĉV¥°™@m„k„¥l@„Ċm@ašU™mwXƒ@wÆxšmĢ_„`VnÆbšKVw„@@ƒnUVğVmVVöIlŽl@@çÛmƒ£UDŽw°@VUƒ¯»m¯ƒJōĖÅLƒa@»ĉ̱`U_k`ÇçšóƒkX™lK@ƒakÝރš£WċkÝ™kxƒJݯÅw™xķxmIÅx„@k±J@ýŋš›¤UœkŽmV™°ÅÝxkwmġƒnÝVU„š¦ƒŤlmšóXk¤™UKƒç™@mVkK@klīƒ£mš¯VUbƒW¯¼ċb¯ĵam¼mVX„m@k¤ÇX‚ÇbƒUƒ„¯J¯„¯È@˜™bVXVҙ¤V¼kxݚV„@l‚V—„WxÛ¦Wš¯šmKnlŽkŽ‚šU‚@nƑUĉ„Ý@ǺۄċUĉ¥™UƒÞŏ™z±òL±Ò¯xX„±ÒLÝU@lššV¦¯‚ÇbkêÇJƒnU„šš@š„‚ÆI„xn¦‚‚@²Č脦‚è"],encodeOffsets:[[99709,36130]]}},{type:"Feature",id:"6325",properties:{name:"海南藏族自治州",cp:[100.3711,35.9418],childNum:5},geometry:{type:"Polygon",coordinates:["@@VxƒŽńƒš@ĊĠŽĊXÒ°UƾĕÞm°£nb@‚@LUUW„Ûº@nlÆǬšĠ£ÞV°UXb‚VȂǵ„éƒ@kWanm°@™x„z„K°¯ĠVšƒVƒkw™Lnm°kÞxÆa„¥@‚wnĉƏ@™œ_l›š_VwšmĸèŤÅČU@™˜Wn@ÑmKU™nğƒK@ƒ°¯UÿV£nmšLl™„UƒUÛé±óókkmƒnƒakV@ǰóÝXƒWəÞťIţxmm™VÛUVȂÓnWyȁĉkƒVš°WnkĊa„¥‚_œK°ÿWna@ƒmU¯wƒlÝIU¤UXó¥ÝLƒx¯WmJÇÈŹ„mV@šƽ@ƒUk¥ĉkċŽÅUml¯Vmz¯lUxÅKmbƒI™bĉĖk҃@Çèó„UxÆÞœlm¦šÆ¯ššX@x™Ž@Ž„²ÝlƒÈ™JV²klVl¯ÔlšĉƙްlUǖÞ@ššĶ¼nŽUôôŚ"],encodeOffsets:[[101712,37632]]}},{type:"Feature",id:"6322",properties:{name:"海北藏族自治州",cp:[100.3711,37.9138],childNum:4},geometry:{type:"Polygon",coordinates:["@@ōmġxƽUm±Lǿþġԙ@kxmWƒb¯I¯‚mIUx@bƒbŹVǎƒkĵbƒlĉI¯¥ƒUšm@ƒÆ¯È@šašóšUlƒČ»@w›œ»›wXaƒƒó°ţç݄kUƒaV¥ÅbÝw¯lmnšKlxU„™„ğU¯°ƒLƒyšw¯@mnXb‚l„@ƒêȁǶUWa¯VÝUğ¤ǫ™kÅ@mܹXƒVV@K@ma¯¤Ýnƽ˝V@„ƒ¼„ôlèk¼„¦˜xXŽlbnKšÆx@Ž™bUx@nnxWJţ¦ƒmƒ¼ñ@ް¦lUÞlÈ@ĠxÞUlxÒó„ƒl¯bmI™ŽÝVÛaÝnƒxVbkbÇwřÇKn±K™b„šƒb@V„xšLmŽÛŽŻbk„ƒVó@™šŹxó²›Wkb™@¯U¤ƒźĊ@lUX„°lÆôU„ƒlLX‚aœV°wšxUb°xÜôÈKVkÈmlwškÈKšwšK™™VUŤĉŎ»„»„Il¥na°LV»²¯Üy@w̃°ĸwlwĢw°±„_lVkš@°ƒbƒÆ¯zƒ‚„š„@l_„@̱lŚVlUaރ„LVƒnKlnȏ°IllČa˜wÞѰx„UU™@wƒVkmĠLô»„KÞýôaÞ¥ôĀÞmƁ„™‚mUƒŎV¥Èl°²°a²¥V„@@w„amm@Ñn@Æ£żƒVƒĠ£@W„¯Þƒšl@š»@Uk@"],encodeOffsets:[[105087,37992]]}},{type:"Feature",id:"6323",properties:{name:"黄南藏族自治州",cp:[101.5686,35.1178],childNum:4},geometry:{type:"Polygon",coordinates:["@@ôl²ôÜê„VƒVkš™KmnU¤V°@„„LmĠVšnLÈL@alb@al@n°Vš_XmWUÈamaVIn@n‚aV£œóVWƒ™U£°ašxÈ¥@™‚aĊwȹ@óša™ƒğbm@k„w@mƒaÆw@ƒ„In¯mmƒ@UkkWƒÑÅ@@kċÅçVkÝJÅkVykŹl¥@¯š™ĢU܃X¥òý—mmX™ÝÅlmU@£™Wly™XW»Åbƒl@aI›»k@klm@UxUUƒVƒ¼¯Xƒl™aUnķ‚ƒI@x™@¯„ƒK™„ĉUU`óšlȝô@¤ƒÞJ„k°xVŽ„n@ŽmbXޝ›L`ƒ¦ĉbml¯X™ŽUŽl„ȂĊXzm‚ȁÔU‚ÜVšUnnŤwŦJɚ݄XÞW¯ô@ÈlU„b„mln"],encodeOffsets:[[103984,36344]]}},{type:"Feature",id:"6321",properties:{name:"海东地区",cp:[102.3706,36.2988],childNum:6},geometry:{type:"Polygon",coordinates:["@@@҄bš¤ÆI°ôU¼š°UŽnnWx™š@b¯L@lUUWbXxWl„ƨnxVUllš„XVŽUŽnL@lȀý²KVnƾ‚ĢwV»ƒ@mÞ£nÆƒÞÑmL™ƒKUaVżĕƒWVk²ƒƒÆÝ@ƒXw°@„ô™@a°wóUUmIk™™aVmÞwmknyƒ¹VÿƧnŏm£X»˜™naV±„Ýw@ašb@aƒm¯„ĉVó¦kÝWKUU@WanU™b@ôǺĉxb@šÇ¦™w¯bV¤„šUX›ôU¤bmm@UJnbÇbXVWn™`¯Umk@@bka@bÇK"],encodeOffsets:[[104108,37030]]}},{type:"Feature",id:"6301",properties:{name:"西宁市",cp:[101.4038,36.8207],childNum:4},geometry:{type:"Polygon",coordinates:["@@@kmKVUƒWk™VkUmwƒƧXkWwXaVV@k°K@aš™XwmmV™¯V»¯óÅJ™£ƒamŽ—X@šċVţÆķç™nUx™`kœ›`@šÅmĊx@Žƒ¦U¦„blVރŤèô¯„„Wbœx›¼œŽ@xċ¼k„™V™ô™bÇ@Ű@„™n„V°¦ĊJ„kĶa„lȍźU„a@aVwnJ°°J„anXlwš@ĢÓ"],encodeOffsets:[[104356,38042]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/shang_hai_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"310230",properties:{name:"崇明县",cp:[121.5637,31.5383],childNum:1},geometry:{type:"Polygon",coordinates:["@@uŏu»GPIV±ÐɃŜ{\\qJmC[W\\t„¾ÕjÕp‡nα|ěÔe`²„ †nZzZ~V|B^IpUbU†{bs\\a\\OvQ’Kªs†Mň£RAhQĤ‹lA`GĂA@ĥWĝO“"],encodeOffsets:[[124908,32105]]}},{type:"Feature",id:"310119",properties:{name:"南汇区",cp:[121.8755,30.954],childNum:1},geometry:{type:"Polygon",coordinates:["@@`y”ĉNǕDwǏ»ƒÖLxCdJ`HB@LBTD@CPFXANC@@PGBKNECCBB@EBFHEDDDSNKAUNBDMNqf[HcDCCcF…@EFGLEBa@ACoCCDDD@LGHD@DJFBBJED@BGAEGGFKIGDBDLBAD@FHBEF@RFDMLE@SGANFFJBANPH@@E@FJjRIACDMDOEKLFD@DbDAJI@AP@BGHFBCBGDCC@DCA@CECGH@FKCEHFJGBFDIHACEDNJDCVFBDCRKRLDLITB@CjNJI^DBCfNVDHDFKHAFGDIICDWBIF@@CFAjFJNJBBHD@CJ@AEFJ@@DH@BFBCPDBMFEQGDIFCNDHIP@HDABFACBJFHEBSZC@DP@@JDBƤ~"],encodeOffsets:[[124854,31907]]}},{type:"Feature",id:"310120",properties:{name:"奉贤区",cp:[121.5747,30.8475],childNum:1},geometry:{type:"Polygon",coordinates:["@@~T~JjZdDbLXDLCB_J@@FHFZJJIAGH@HGR@BENBLID@@LFCDF\\FpDBDb@FAHKFE†@dEDDdC\\GreNMACVMLBTMCCFCEGFAA@DAFDLMHA@OD@BMEWDOC@AS@KGAI_DcKw„ÕísƝ‘åĆctKbMBQ@EGEBEJ@@MBKL@BJB@FIBGKE@ABG@@FMFCPL@AjCD@ZOFCJIDICIlKJHNGJALH@@FPDCTJDGDBNCn"],encodeOffsets:[[124274,31722]]}},{type:"Feature",id:"310115",properties:{name:"浦东新区",cp:[121.6928,31.2561],childNum:1},geometry:{type:"Polygon",coordinates:["@@EN@JJLNHjLJNR^GRYVBNZJRBV@PDvbLNDN@LGNER@nCNQNuT_TIVFV\\Z\\XnDrI|[Ʉś²ÏJUHOƣ}CA@IO@@CYDATGFIEDAEBBAGCO@GJMCEDCJRHEFANOCADAEG@@CI@FE@BDIC@AGIAIMiEEB@DE@AJCXJDCJEHGBELGCUCeMAD]CIJiM@DSAKJKCLQDQACUECDMIFCBDJGECHAEIWCK@GLMCCGEACNKCEJG@MMBMC@@CIJUINT@JAJSTEPZZCP"],encodeOffsets:[[124383,31915]]}},{type:"Feature",id:"310116",properties:{name:"金山区",cp:[121.2657,30.8112],childNum:1},geometry:{type:"Polygon",coordinates:["@@L@BIHFN@@EE@@EFBDGDAADVDD@@EF@CA@IIsRE@GDAF@BF@CV@|FBCHBLCNHAFCADBMDCFZXHILBVEEQA@MWFARJJ@DCX@@TEFBLHAAERE@AJABRPBNK\\BrJ\\VHGND@CNADKDADQjGAGNC@GJ@FCFFHC@JF@@dLBDSFADHVG\\DTEPDDHJALIJkJDJCDIPE@YDCBiK@DONE@EH@BAF@HLJA@EIA@ALKNA@@FIFAFHR@NALadsæąyQY@ƒA±DʼnXUVI^BF@FFF@HBJEDFFGFEBSRkVEXGHFBMFIVW@GAEEFOIAIPKABGWEKFSCQLQBSEIBC\\FdBLRR@JGACFDDEF@AWB@LJJYNABBA@CUEGPaO_AIE@MYMFIGAEFECHSAAKAO\\[JEDB@E@MMA@@AGBKMGDFFCDDFEDFJF@NPBAFLHFH@EDDHBADDC@DDCDHHCDDFDABDAD@FEFOBCJ[D@HEDDNJBDDHABJIBBvGLBJAH"],encodeOffsets:[[123901,31695]]}},{type:"Feature",id:"310118",properties:{name:"青浦区",cp:[121.1751,31.1909],childNum:1},geometry:{type:"Polygon",coordinates:["@@RUNKdOFDJCbRFMLAHPLDN@JGL@@APBWYCKN@TU@SHGCEJIDIJKVIZVNM`iNY@CIE@CA@KBOEGEUFCCSADEIEFCDDDIDDHC@CKIeDCG@IG@DHWFEEGCH@@GO@@O]CNpeEQDBFME[JC]DGF@CKOA@QSB@GB@@GW@@ED@AQIJIAAFE@@DO@CFI@KNG@CDACAFEGKGBEGBDCCAIFCCLIECFI@MBCLDHGNAHSF@DMB@EEKBA@@C]DEICFG@ADBHGFKCDAKKHKD@@FHGAANGEEFCHKCECBCKG@ADKCNE\\[A[I@@mGBDQQEO@BCE@AI[AML@JGACLOAFKEMM@EQKC@CUCBCCBCHEA@FF@@FM@GEAJK@GNF@EXPH@FD@M^@HIADJCFDBER@DK@@DE@CAKFOCCBDHIBCNSB@GFC@GQEEOWFICGDUAEJIDBTAHJHEB@DIF@NE@H|HBDBEH@DKBAHEF@HEEUB@FGFGCCCE@AHOB@NH@PRLVNNFBX@RC€PbAvMtBfH@DJF@ELBFA@EH@HNED@FFB@HLC@CJ@@DJ@PIRf@HE@CFF@GPHD@DKE@FFBEFFD@DEFCA@DD@IjCRFBAHFDKD@HF@@PM@H@BlbDJDBFEF@DLXB@HCD@@IFCBIFEJD@FDC@FBALLF@PAACJERACAJCBD@EL@JD"],encodeOffsets:[[124061,32028]]}},{type:"Feature",id:"310117",properties:{name:"松江区",cp:[121.1984,31.0268],childNum:1},geometry:{type:"Polygon",coordinates:["@@@DLDFRN@FNELPBDKHB@INK\\BBJF@ADP@RFCRHA@nJ@B\\[\\MFLDBCH@DLDADFGLEDFFMHBBGH@EC@GLLLCBLDHEAGBCH@DEFJ^C@DB@LAFFA@CNE@GTMBGHKCAD@NEJFDKJDDJEDBCDHAAFLHFHBEBDDCH@LMJ@DEP@@CF@BEJBJIBRC@@FX@@HA@@HTA@RPBDLE@CHD^\\INFAERCfFMo^D@PP@@HG@HDFFXECGH@@JDHfCLJ@DGDCCCJCCEDJFCFTBDDVEHFPFLAB@NBFCFKFC@CHIACNOHWHCAAFIDD@CDAGEI@ACFMF@R@R_@GQED@EGFEQEDE_IAHKAEXCQUOQCUDEN@ZI\\DDmAMHCICDSOC@EG@BKHIGMIBCGOCSF[CUHCGEBCTKA@cE@@IGDEEEDI@@HMDBHiHCRCBCLMB@DMCGH[UqI[AMLOAAQIB@BQFBFGBAKFE@SW@CDI@QIEBNXB@FRUFKAGJYWDENCCADBBEMGKDGAAD{EU@@DAEE@CB@HQFJt@JDBE@@FC@"],encodeOffsets:[[123933,31687]]}},{type:"Feature",id:"310114",properties:{name:"嘉定区",cp:[121.2437,31.3625],childNum:1},geometry:{type:"Polygon",coordinates:["@@F@LI@IDKJADKIEJICADGACFECCJ@HKCAFOHAJI@aCBEE@ICAEB[GFGCKL@FGEIFADMLCAEJM@ELQECEIG@BE^QKKLQCA@EHBIGQ[GEHOMGGDHKH@JOECFCjCBEFDNCACMBCILGTABDLEEOEIG@GFIMM@CGKFBFCDE@@GEAGEEACIcGaHMFITIHDN[AKF@FS@OA@BK@IHM@KCGOKBENaQIDECcPMLQVFHFB@BFBKLGD@FAJOVGIACQ@A`LPCB@JEF@RU@ANS@@RCL\\HIFpRBFRBBDKLLDADJDGBFDABHBEDNF@DGBBBADKDAHC@\\JJFBDEH[DEFDH\\LX@XLBLbT@DNJLDCEL@VJABJNDHB@HBHYFBAA@GNFB@@AFB@AFABFLFBHFCL@HJBAFBLC@DN@HN"],encodeOffsets:[[124213,32254]]}},{type:"Feature",id:"310113",properties:{name:"宝山区",cp:[121.4346,31.4051],childNum:1},geometry:{type:"Polygon",coordinates:["@@ˆmÖoÖiƒ½[s[YEUJU`SCIEBCCWJY_LIICDWU@@FaBCJIB[ICH[@@CDKEE@MK@@IMCAEBCH@AMFI@SMGEFGB@FK@BHCAIFJNQD@FEBDFMBKGACG@ECWH@@CDDTOEEBGEK@GC@EE@GPHFR\\JHGA@FDBKRLL]RAFH@FJFDKR@FINBFKDCNEBFJEHK@DLEH\\HFADB@JFFDA@bIJGBEPDBGLI@DDEFBDCHDBIJJFCLIBCL@JKJE@ADHDBHJ@HIBBDFHBBAEIJ@BJFAVL¢ˆ"],encodeOffsets:[[124300,32302]]}},{type:"Feature",id:"310112",properties:{name:"闵行区",cp:[121.4992,31.0838],childNum:1},geometry:{type:"Polygon",coordinates:["@@T@@ELE\\BCMJGJSNEbGdHDJFBJAFIEIFCEWG@@gMENSFCVJFAxR~B@IH@AIiI@GE@FGEAFQPDRiV[\\DFSGMHAXHDOMCJCDETBBNVJJI@DD@ANNNH@FILDDMFBDHNDHKL@XDFGLD@EHGFD@DDB@CDDHCDAEAHG@ABOJ@BIaC@CECLKPFNCDCJBiQEIF@@@OGBMIAEEBMTHF@NKEC@QFEGA@EBCKAACHCLJHEFHHB@AFCAIEACIC@HG@KCCDC[ECEED@KC@KJMAAFQ@GHG@BHIJYIGE@EI@A`KDWCaKcCiY}I}S[CYJM@CFDVPRRVWDFžLBBG`JCFRFEFFHC@RF@HQ`Q@E@ENBDJ@HFCB@DCCEJBBGDGXMPBDGJ@DEDELEDMA@DJF@DMZ_jMNYUUJILCJIJDFGH@TSVM@DLXZ"],encodeOffsets:[[124165,32010]]}},{type:"Feature",id:"310110",properties:{name:"杨浦区",cp:[121.528,31.2966],childNum:1},geometry:{type:"Polygon",coordinates:["@@V@CXJDKJZ`XIDDFADJvSRMDM@mFQHM@KCMKMuaOCU@BDAJSX@HKJGD@PNJCJWAGT@R"],encodeOffsets:[[124402,32064]]}},{type:"Feature",id:"310107",properties:{name:"普陀区",cp:[121.3879,31.2602],childNum:1},geometry:{type:"Polygon",coordinates:["@@F@@FHDL@HFFAPFCSDC@@XGFDH@BDLHNACEFA@ERCIMJEDBAGL@@EHAFENHHJ\\ONQBQCIBC[MKACKI@GGGH@I_G@CW@[DMHCDIBMTDHN@JNHEH@FJFPKFACSBKHDJNABDMDECAFiDEDFDIPG@GLHCNH"],encodeOffsets:[[124248,32045]]}},{type:"Feature",id:"310104",properties:{name:"徐汇区",cp:[121.4333,31.1607],childNum:1},geometry:{type:"Polygon",coordinates:["@@RADL\\NCPHFfLJaJ@FWLGMGIK@IFMDOYYFOTSBI@IMSAMSACFIDNDCPWGGBHNET[CU\\QjOCERFBEHF@@HjJBJG@@J"],encodeOffsets:[[124327,31941]]}},{type:"Feature",id:"310105",properties:{name:"长宁区",cp:[121.3852,31.2115],childNum:1},geometry:{type:"Polygon",coordinates:["@@HFFB@HF@DCAELENSJADCNG\\CX@@D`H@JHGHHJ@BINBFUGEDO[MCKQB}AwQEBUIEDMTNF@hH@FXEDFJEJIB"],encodeOffsets:[[124250,31987]]}},{type:"Feature",id:"310108",properties:{name:"闸北区",cp:[121.4511,31.2794],childNum:1},geometry:{type:"Polygon",coordinates:["@@CSG@BQGODUPWTOBQAAFMECKBGEMFKEOHADDJARMR[PGI@TEJBNG@ADBFND@JL@@NFFCL@D\\@DG\\JJADI"],encodeOffsets:[[124385,32068]]}},{type:"Feature",id:"310109",properties:{name:"虹口区",cp:[121.4882,31.2788],childNum:1},geometry:{type:"Polygon",coordinates:["@@bA@E@QHSXBDIMI@OHCLI@GTWBIACQAYIOFGCENBBARSPOXCVHPARH@DT"],encodeOffsets:[[124385,32068]]}},{type:"Feature",id:"310101",properties:{name:"黄浦区",cp:[121.4868,31.219],childNum:1},geometry:{type:"Polygon",coordinates:["@@NEHFLAFDHDPEAMZUHQQ]IMKJG@EPERABHBGRUCCNGV"],encodeOffsets:[[124379,31992]]}},{type:"Feature",id:"310103",properties:{name:"卢湾区",cp:[121.4758,31.2074],childNum:1},geometry:{type:"Polygon",coordinates:["@@VDHQGABAFQFOH@LIiKKHEXI@IbAFZB"],encodeOffsets:[[124385,31974]]}},{type:"Feature",id:"310106",properties:{name:"静安区",cp:[121.4484,31.2286],childNum:1},geometry:{type:"Polygon",coordinates:["@@DLLB\\NPGLFHUDMYABEeKEVMAAJ"],encodeOffsets:[[124343,31979]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/shan_dong_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3706",properties:{name:"烟台市",cp:[120.7397,37.5128],childNum:9},geometry:{type:"Polygon",coordinates:["@@ŤLšLllVń²è°xżĢĠÆl҄šŤbœ„V¤ĊXnŽlĢVĊ„Òš„ȰĊŰÞè˜L„±@џn»VUźċ²»ÆkôVɆkĊѲkŤVVwUUVmUaƒ@KkU@ƒmUmmk@UwUkmW@UVIXa@ƒmw@a™KULƒaƒx@Uk@UbWU@yULmK¯@kXƒVUwm@@JUUknWKUVƒLUbU@™wWykIƒa@w@mUI@ašUVynIWa„k„@@W„bl@@knmƒK@wnIl™°Kna@V¥ğ@ġUķ»™¥@UōJƒX¯¤k@™wmI¯‚k@mwƒak@@šlX@bUJ@VƒbknWxkLkxlŽšLVlkLmŽšb@bU@ƒbU@VbU`Vb@n„L@Žmb—U@˜VnUVmnU@mm™@kIUWVIUK›VkkUJUnmL@VmLUaVWaXamU@™™U@KUUmVƒU—JƒU™VÇwğn™mƒ@mXĉV@l¯xnô"],encodeOffsets:[[122446,38042]]}},{type:"Feature",id:"3713",properties:{name:"临沂市",cp:[118.3118,35.2936],childNum:10},geometry:{type:"Polygon",coordinates:["@@˜bXlƒl@zlV@lXXmŽkbVVlš„U@Vn@@Vmb@XšKšVX„WJ@XXl@„‚ŽÈbVLšUl`„@XXV@VVUxVbUxVbš¦„@‚WnXVJ@bnVUzl@„°Æx„U„KlU@mUUnUlUVWVUnVV@XX°V@Všll@Vk„aXVl@Ux@bmbXLlKlb@b@bUJn@@„„b@n°x°K@an@@UlLVKVbXb@bVVnK°LVa@UVa@™Xw‚KVxnLšU°@naV@UWUkWƒULmV—wÝKUUla@aó_@mƒK@aUU@ƒWUkwVm@aVI°W„@@IUw@a±¯@¥kUVUm@a‚wkw™@ƒK@kVKk@maXalI@alL„WXblaVLVU„V@LnKš@„l@w˜aXašLlnUl„LšmV@n°J@_VmnIVym£UKmI@WnIVm@anUVmÇ_kġIÅWUXÇm@U@ݯÅ@ƒ™@naWƒ™IVW@IkK@klKn@naWIƒmk@ƒaƒbkKkLWn™WkLWmk_ƒ@UaVƒUKmLUw@mn£WwUmU™ƒaóV@UkUm@UKULUwmJUX@WW@XҙzVblJXŽWXk@UVWK—X‚¤UL@xU@ƒ@ƒVUaU@@XmVkLmWkXUyÝLmKXnVŽ@n@l™x@bWLnVVn™`knULmxUl„„WLXŽVb@VƒK@z¯x¯¼Wx™KUn@bk@ƒlƒVVVz"],encodeOffsets:[[120241,36119]]}},{type:"Feature",id:"3707",properties:{name:"潍坊市",cp:[119.0918,36.524],childNum:9},geometry:{type:"Polygon",coordinates:["@@l@@UšK@Ž@L@bX@@VlL@JƒLUVnX@`ÜXn`V²mJ@bU@@n„b@l°xnnĸVƚ°@„ƒĊ£Þ@lWnÑnkʶJmó°w@kk»V@»ƒ¥k@V@kw@wVm„a˜Å„mšaô£ŎƒXI@mln„Kla@mV_UKƒ@kUkw@alW™IU»™mƒ—@WUIl±UUÅU›bkJƒ@a@wUKUaVIÆmXIWaka@m@Ul£XKVw@ƒUIƒJUkmJ™ƒVkU@a„ƒWK—ImVƒ@UxmL@bX`WXU@U`ÇkUak@@°UblXk‚mLUKmL@VULóƒƒVk@@Vlbn@Ub@ċaUJUbƒIUlVLUVVbVKX„VlVXU@mb¯@™VmKUwLWx@šUb@VUb¯KmLUU@aWaUaULkK@Vm@@b¯L¯w@mƒa@ƒm@UUU@U¦lJUXƒVƒmkb@nm„XVWŽkb™IVxUV@VUbWLXVƒLW`Ux@nk@Vn@x@VkJ@œV`mXkŽ@V„xV@lVššI@VULš˜VU„IV`°bVXXx„V@VWVnL@xV„Ub"],encodeOffsets:[[121332,37840]]}},{type:"Feature",id:"3702",properties:{name:"青岛市",cp:[120.4651,36.3373],childNum:6},geometry:{type:"Polygon",coordinates:["@@„@nU˜JXLƒ„@blVU‚š„nIVl„IVJ@„UxWLk¤@V@nlbXbWJÅnUJVbVL@x@b„ŽlIœaÆVVVk²VJ@X„˜šnV¼šJkX@blxlV„@VLU`@nkbƒLkm@nWJō„ó¤™bƒn—ƃbUn@xlxU@l@„¦@¼UŽl¼ĊUnW„@šnĠmÈxšU„V˜I„VnUVV@LšV@šnVWbXb‚UVbnK@UnKVmVIllœUVLUJVXlJš@nnV@nmVUUm@—˜Vna@ƒK@mUaV_UaV@„aV@@a™anlKUk™KklwlKXwlm„a@UVI@akW@™l@„bnxl@°nJšxl@°£„WŎIUÑn»lašmô¹Ŏ¥VaUUkƒmkġWɱIUUŹ`›@kk@ĉƨřV¥_Ç@™Ĭƒ¤ÝL¯m¯£ƽóķwUW±ī¯kōaĉĕ™kğmó°ƒbW@UKkLUaƒVmz@V@ŽUxVn"],encodeOffsets:[[122389,36580]]}},{type:"Feature",id:"3717",properties:{name:"菏泽市",cp:[115.6201,35.2057],childNum:9},geometry:{type:"Polygon",coordinates:["@@@¥šIVUÈmÞ»@UlU@Un@VW@UVmkk@aVUUKVÝ@UVknK@UV@VVnIVƒ@wnƒmwmKXaWaXI@UV@Vy²blkVKkam™U@kb@Um@VmUkmƒKmkXKWwkU@Ulƒ@UnK@UVUUm‚KXwšUVL„w‚K„U„@@Wl@@wUkV¥—@@I@W@_V@VWUw@UUa@aƒaWa—@@_mKUw™l¯amzmV—@WK™nU@kƒWLķaUKbÝVmV@UWÇbÛ@ƒX™°UbW@XŽm„Vlk²UJUbmLÇxÅWUzl‚¯Ll„@VkK™XUbWJ@bU@¯@™ƒkbƒLmKka™„@l™_WšXºVbUz@J‚n²V@¤lX„Ž„nV°šLn`WbXLôVlKVUšxXn˜lXLlU@bVV@„XJWLUVnVV@„„@n‚l„°nn‚V„KÈbVXÆJU°VnXV„kV@@xVL„@šWlb"],encodeOffsets:[[118654,36726]]}},{type:"Feature",id:"3708",properties:{name:"济宁市",cp:[116.8286,35.3375],childNum:11},geometry:{type:"Polygon",coordinates:["@@nam_nKlVLXa„Il`š_@KVVXI@m@w‚ƒ„@@k@Kšnô@n`VbV@@L„L@KVVn@VX@‚VL„Jl„š@VUUƒU@Uam@Uk„wšKWaXamkJmIUVUÈblašUnV@kVKl@@lXL°kVJ@VÈnVJUX@V‚LXl@xVLnU‚@VK„V@a„IUaV@„bĊU„x„K‚kVJXUlV„ƒ„UVašI@WUI@KlUnw„mWk@WXIWƒ™U™L@Wna@Um@@UƒVk™UUlanWW@kkU@y„kWk—aWVUlÝbUU@kƒJUIU@@ƒ™JmaókƒLKǃUUkKWLk@WbkUUaƒbmKn¯°¥V@XwV@VanaVaU_@Wlk@WÈ@VUÈVVۂm„aklKȯlLVUX@lK@aX@@kV@VmV@VwnJV_UWUwƒX™am@kW@wVUkKVIUUVmU@UV@IVK@aUL@aƒV@Lm„UKmx@ށômLkUWJ@šnXmlUxUL@Vkn›VUšU„@V™L™`Ub±LkV@kUKÇbÛ@ƒU™Wó_mJƒ@Wk@@Xƒ@ƒVLƒxUK™VWxLVnUV@VmL@Vk„@VlVXxWLnl‚Ln„VlUnn@@VlaV@nšlbULkl±aUzU@@VWJXbWbnLnxm„@xU„mJUUU@@VmLUl@VUÞVLUV@bllUn@VUXm@@VkV@VݼÇnUV™J@¦nnƒlnVlL@„Þb°KVV"],encodeOffsets:[[118834,36844]]}},{type:"Feature",id:"3714",properties:{name:"德州市",cp:[116.6858,37.2107],childNum:11},geometry:{type:"Polygon",coordinates:["@@„¤@VmbVXnVVbVJššX@Žll@z„lVInl@„@bVxUbĠ‚l@Èbla„IšxXVWb@L™@n‚ULWVXXšWWLnL@`@LUVVL@lVn„JšU@UUk‚a„™nš‚Vôô„b°¼V‚ސXš˜‚œIÜbČa˜bôW„XÞWÈzÆmnLVJ°ÈnlV²lbnW@™@UƒUV™šmnwmkkKWƒkla@mVIUKUa™aUwmn™JU@@amIk@@bVlkX@mmUklUUƒƒa@_UaUUƒV@wƒw™WkXmW@I@WUaÝU@UXaWUU@UUVW@UUUWUn¥nUVa@m@k@alU@wk™LWa@UUm@@wnmU™wla@anKn_@alK@ݙ_ƒ@@WUUUmlkaƒIƒyU@UwU_Wa¯yU_mWUwkImm@InWWUk@@UVWV—kW¯U@VƒL@b¯b@l±¦@šVV@lUbV„@škxVnUšl¼XV@b@lV@nIWxnbƒ‚™@UU™LƒxÅxm¯ƒaUƒ™wU@mUÅVÝKULm@bmKUXó@"],encodeOffsets:[[118542,37801]]}},{type:"Feature",id:"3716",properties:{name:"滨州市",cp:[117.8174,37.4963],childNum:7},geometry:{type:"Polygon",coordinates:["@@Vb@`„bV„kVlnV@nlWUk@al@nJ@bV@šInmVxšbVbVLUJ@nkb‚lX„lLnlmx™nUš„V@V@šmXn˜lbĸ@nnVx‚b@lnXV@UJ@nVxšxnxVbÆVn¯ƒĕ‚@@wÈçUÇlķVIœb‚@„Çmk@¥k@UkUK@aWakUóJW_UW@wkkWK@U@Kš@XUƒƒUkmUUalKXala@U@kkWlkÈl@kšV„mVIVmU_‚a„ƒƒwnwVW@wƒwUƒ@wU£ƒwkJWIyUI±bk‚VUJ@nmV™Ukl„Xmx@lnbW„kVƒUkLWŽƒxkKUUmUkb™J±—LÇxUKmkUmkkW™™a„mUaVkšJÆ_²KĠ@U„W@w„U‚¥nUWwK@aÝUkÅVaVK@akLWƒƒƒ¯I@bnbVx¯JW„ñšWbUL@šƒŽnV@VmbkUUV@IÇak@@bWak@WJUœJWL@bXV@„‚@„V„Jlb@zUlUŽUImšnbV‚mz@°UV@V™bV@@V@L@xLmKUnmJVX„J@VkLW@UVUL@b"],encodeOffsets:[[120083,38442]]}},{type:"Feature",id:"3715",properties:{name:"聊城市",cp:[115.9167,36.4032],childNum:8},geometry:{type:"Polygon",coordinates:["@@ô@VWnL‚an@VKÞLÆUnVV@šxV„„bn°Æw„wšKVVš@„maXwmJU@@k@aWUk»V™Umlw@™UƒVa@kUU@™²¥@k°a@a„K@U›ƒU@mmm@ów—ѱ¥¯@@w™Kmw—I›¥kU¯UmakJmIUaƒVkKUkm@VUUa™Uƒ@UaƒKUK¯@™w™UVŽUIUKVw™k™¥™wƒbVŽ@xn„@lWnXxlL@`„XlJX¦l°XxW¦@¦Ul™n@Ž™@@Um@@VXVmx@¯bllUnUJ@VULVn@b„xV‚VL@b„„VlnVVblV„ÈnVlIVJœLô„lJ@xl²„"],encodeOffsets:[[118542,37801]]}},{type:"Feature",id:"3705",properties:{name:"东营市",cp:[118.7073,37.5513],childNum:5},geometry:{type:"Polygon",coordinates:["@@ͬUǪlô@°Uœw°ōĠ¯š»Ģ炻XÇ@w™wƑa™ÇƒkwVƑ¯@řķUmm¯w@kƒa@mV@@anIU±m_ÛW@_mWVU„K@IkK@UW@@a@K@™L@Vk@±U@UV@lm@mUU@kLm„„xV¤@xV„„x@xUXmx„xƒ„bV`UnUJƒn™U@lÇkkllX@l@VkbWbkLVbnVVl„„WV™@@L@VXLll@xVXX`ôIlVXb@bVLVll@@¦nlƒÈ@›aUJkĸVÈÇè@x"],encodeOffsets:[[121005,39066]]}},{type:"Feature",id:"3701",properties:{name:"济南市",cp:[117.1582,36.8701],childNum:5},geometry:{type:"Polygon",coordinates:["@@²¦˜Òôxn@nn‚@V‚œ„°VlXU˜UX@Vl@XVmX@JnnlJVxnXV`°zXbV`VxV@„z„JlbkŽVnVV@X„@š`@ÞkL@bm`mL@bkbšxnVm@xn@VV‚@XbšKl@xkV@b@l@nUbmVm¦XVVV@VUXVVV@XVWb@VÞVVb@X@JnXlWšX„x@x„UVV@aVKVUX@lK@UƒIUWnIVmnL‚K@w@K@UU@ša@UVU@¯nyUman™VJVVk@ykaƒIƒU@@ƒWU@aXK‚IV›XIl@Xb@al@Èb@JVUlVna@UmU„@™VKXaò™Xƒ°IUwma@aU@UU@wVW@фw@a™I±`kbƒUkw™UmJ@UkmÇUUkmKknUVƒ@mJUkaWkƒa@KmKkUƒLmyXa¯_@WmImmbƒLmUkVUbUVƒJ™bƒUkkWJkUƒl™IUm™k™Lƒ›„lK@knaVmkI@mWaƒLUK™UU@@VmLUVLWK@UUUƒWUkkVmx@„Vl™¦"],encodeOffsets:[[119014,37041]]}},{type:"Feature",id:"3709",properties:{name:"泰安市",cp:[117.0264,36.0516],childNum:5},geometry:{type:"Polygon",coordinates:["@@n¼šŽW„nxšL@x°@š¥Uk@ƒnwlUVl„XVV@VXL‚KVUnK@UV@šVVL„KXb@nlJUnmb@lkLƒ‚„œšKšlVnšJ„klVXIll„Vša„IVUValUnV„K‚annnJ@X°`Wbnz„KlVnL‚Ž@L„bXl‚bVlnI„@VUU@UmVƒ@U@Uš¥@VmV@@_Ua@m°@@ƒ„kmUUm@UVmn@nX‚@@a„anJVUVL„mlIVJn@nkVLVa@KVmVLXVVLš@@U°bn@VaV@@K@aVkœbWaXUVymU@aUImWXƒ@™¥UaVwUaVwUUU@WWƒ@k_™VUKÇa@ƒƒnmxkV@LVJ@X™JUbƒVƒ„kUWVUIlƒLƒwĉVƒaU@VbƒJ@bƒUUL@mVUK@wWkK@UVWUIÇm@UUI¯lWK@kk@UL@lmU™VkbÇaUVVnJlIn‚WbXb™LƒxVln@VbV@V„UV™@kƒƒIUK@UWm@UU@LƒK@KU@Uam_ó@™m@L@lƒ@„@x@nWJUU@L™`k_ƒJWbUKkmLn`mb"],encodeOffsets:[[118834,36844]]}},{type:"Feature",id:"3710",properties:{name:"威海市",cp:[121.9482,37.1393],childNum:4},geometry:{type:"Polygon",coordinates:["@@VbUnVVUxĊ¼š¼ô@Þф¯‚WǬLŎUÆW„¹Uǃō¯ÑƒÝkţ™™ţóġ™óL™ł̥U™wm¥kÝmkkKóbÝ@U¦@‚mb¯LkšmJ@x„Lmn@lk@ƒa@Xƒ@ƒlXbmJUz™V@bVJ@n@x„blJXzšxV@Va„KVUXLlmVV@In@Vx„UlW°@nLVK@zXVVal@@V„w„bVKšL@bnx@„WbUJ@VnXVlVxl@nnnV@„lV@L„‚"],encodeOffsets:[[124842,38312]]}},{type:"Feature",id:"3711",properties:{name:"日照市",cp:[119.2786,35.5023],childNum:3},geometry:{type:"Polygon",coordinates:["@@UaVUUKVk„JVaVIČb@Vam@ka@Ul@„Uô„VK@UnKVLnKlkWVa@¯l@VbÈlV_V@XWW_@anKVwUmVw@@Uny„UVblKVLX@„aô¯ó¥mÛĊÿÈ¥š™Þ¹lUīƒ¯Kĉ¼ʟbÇV™U™ŽUŽ™XmakJUnmV@bUnmJ@XnJVLn¤UzmJUn@`¯ImŽU@™nƒKVkkm™KWb—b@xƒk™@mL@KƒUUVUKkbWaƒXkK@bkJWbnbl@UL@l„Lš@lxx@b‚nUVlV@¦²°@bVx@Jƒ@¯XUJ@bUnlxVŽ„X@‚VV@b„L@nô`@bkbVVÞL˜xnU"],encodeOffsets:[[121883,36895]]}},{type:"Feature",id:"3703",properties:{name:"淄博市",cp:[118.0371,36.6064],childNum:4},geometry:{type:"Polygon",coordinates:["@@nƒlKV@nVn@@kVU‚@²VVaUƒ@wmKXU@UƒUWwUW¯aU_ƒJUV™—VK@U™JU™@kUƒw@UlnWU_@›lI@U@wUml@@mVwX_„KWUXKVa@UVUUwšJlaXWUnƒ@mla„n„UVWkIV¥V@VVVI@a@akakLWKna@aVwk@WUƒbUlk@™k@U¯UWWU@mUUVUXkVmVVV@nkVƒLƒVÅwƒ¯k@WVXb›aUl@bV@@b@xkVVXVxkJ@nk@@ŽVLUlVb‚VXUVVUzV‚™LVbUbV„VWVkLmškJ@n±@UxU„VVkV@bƒx@ÒUX@xVVV@°J„„X„lK@bULUblÆÞV@b‚LXxmV¦ƒV@xƒXVŽğ@±LÅ`™IUlVbƒnšbXšllVnnlVLÈw˜K²ŽšIlanVVVlL„wXlK„VlUXƒma@knwƒWlkšVnU@mVIUl²aVJ‚zXJlI"],encodeOffsets:[[121129,37891]]}},{type:"Feature",id:"3704",properties:{name:"枣庄市",cp:[117.323,34.8926],childNum:2},geometry:{type:"Polygon",coordinates:["@@‚yUU„U„kl@@aVmšLXw°»°w@y„L@UUaWXKƒƒVknwVKlmš_UmmUXK@ašw@k@mUWmUL@ƒ@™@£@KƒbÝV@akw™aULmƒƒbUK™LUU@lm@—°mL@nUJVxVXU`mIUxU@UnU@@lW@@bkLW@UVkKǰkLlŽƒbnUÜÇUUVÇ@@Xkl@XV`UbmbUbU@WxU@¯¦m°nL„aVblVXal@XKlLVVȄ‚L„KôlnbšI@„V@VJ„I@lVVÞaVkXU"],encodeOffsets:[[120241,36119]]}},{type:"Feature",id:"3712",properties:{name:"莱芜市",cp:[117.6526,36.2714],childNum:1},geometry:{type:"Polygon",coordinates:["@@lmnLVlÈVln@VnIšVlx„Vla²_šJlUUUVƒVw²@@mlIn™lKXU‚UUƒVaUašKUVyUUWVUUaVkUK@l@@mlIUwUWlU@w@aU@@LU@Ubm@¯a@V™@UKWUUKUn@LUbUKmlm@UIkJƒnUKUVmIƒb@b@mWm@Un@VVnnVƒl@„¯@@nVb@`U@Un@Ž™¦@V@VU„VnV@"],encodeOffsets:[[120173,37334]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/shan_xi_1_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"6108",properties:{name:"榆林市",cp:[109.8743,38.205],childNum:12},geometry:{type:"Polygon",coordinates:["@@™ýVƒnIW»ƒW@»kUÇL—݃U¯¥ÇIUWWїUWwX¯mƒ@»n@ÜÈķô™@a±kȱƒw„ÑmwçċmU»ÆkkVyIm™ĉÿ@ƒÝ¹ƒWnwÇVš™Åaƒzmmĉ¦ó™kVmx™xU¼VškVm_UlVlk„°IV‚kmJa›¦k™™LmmV@XmKnšlUô›VXbƒbƒ@UaÇLğܙ™Åwƒ£mKnmċwÅ@UkƒbmaVƒƒƒn@m¯aU™Jm_k˜@kWXyl@@kÅamw™LU™Þ™ƒ™mWÅzUKƒš™Uk±@™b@nnK‚bX¤mzVšŽVxÇn„‚¯„@ÒknWƒƒVUbkķÈÑWkk@Va™™U@„mUkbƒÝÅ@Ý¥ÇbkĬ™XV`kLǍVmalUUa™nV±nwmkƒJ@Inƒ°KVw¯UnÅ@¥™ƒ™U±bUU˜±œmWbÛKWnUm`UƒVK@bmnœm‚Èż@V„L@xƒxmš„Ť°nŽ@VmK™²VlšlKk„ô@„êÜV@VXLlmš¦UššV°Ș¯²ÿ@¥š@ƁĊ˜²IšmĶnnb°b„KVƒĸLl„Þ@UȮš™Ü°IVƒÞÝސlŽœx@ŽķĀWŽ„Ux„èƐ@š°ŽXnšlĊ˰m„nƒšV„²V°ÒƦ„aބ„˜@zll@bÞšlš¼nKĊ¼óȂb²±šIǪÒ¯ĖV@„lxnVlk„JlaXwŌĉ„„@VnŽššlÆĕ„UÆLœèŌŤôxȚlUœ@šxlaUċĕXm„IWmnkšVVƒ„VW_@aÈWUUmk@ƒ¯çVm»™±W¯n¥V™mkXw±ÇVwƒ"],encodeOffsets:[[113592,39645]]}},{type:"Feature",id:"6106",properties:{name:"延安市",cp:[109.1052,36.4252],childNum:13},geometry:{type:"Polygon",coordinates:["@@@kkÇmIšmUwVkUƒƒU²WmšVkm@m`mIĢĕUƒVa@™mXƒƒÿVVkyUýšĕ@l_UmnƒW„KVkţ™™¥™aƒwğ@™@aôƒ„ƒWa„kUmƒa¯¯™a±£kx™mmxUwÝ@xmU™b¯K™wó„Ý@kmm¹Ub@lklVbmnnVUV@x›UknƧJUX@ŽƒLÇWkw™LķƧÅwWJk„ƒLkþĉxWz™JUnǚkš@Ɛk¼ÜÔÈKšè@°lșÆk¦l„n@l¼@l¯L™°UU™Vǰƒ¹—`m¼mXk‚™bUaƒV@U¯x@¦™Ç™„UUmlmUVm„nnmlkw™@@šƒ¦Å‚ÇLmx¯Iklš„@¦mưVUx¯Lm„@J„InlmxU²šmVbkV‚bUnȎlKU_šWlīÈaÞ¦Æ@„ÞlanV@ƒšVšUbl@XlÇÒĸlŽVa„UX„lm@ѰƒƒÈmUw‚U™nyW£amL@mša²@lšV„™VLÆynX„šÝšVššKnxÆb@lk@WzXŽ@ll—n`šIV‚°b@n„m„„‚Unb„aVlÆ@ČxmnnL„¤ÆxššĠÛÈKVb„@„aWaœU‚ókVm™nL@W‚UnnšKlšœ¥‚bnIlU¯JlƒUkVkn`lUU™V»šwnwlUôšĊ¥nn„yÆb"],encodeOffsets:[[113074,37862]]}},{type:"Feature",id:"6107",properties:{name:"汉中市",cp:[106.886,33.0139],childNum:11},geometry:{type:"Polygon",coordinates:["@@lKnb@n„lWb°bkxĸwVb@ł„nlŽ„ƒĊ¥šL@XŽl™ÈƒVblÈK‚b„akVwôml²`‚nœ@‚nVKœl˜k²xŎƒ°¦VU„JĊw@çnWçރVkUóÛ@¥kwš™šUmƒX¯WšÑkƒ@UymIUwlUn¥‚mUk²a°¯V»@™ÝVș„ÝċÅÅVl»@l@a°±@_kammÅb™a@ƒƒm@ż™KknõĠ—@mšƒ„¯LÅw›‚—LVxmb@¼kV™@mw¯wVakKW»X±¼¯Vkxƒb„¼WŽ@nx@x±bóakbƒ@ÝmU™@ķÓÛL™kƒVUm™k¯¤ÝLUlÝ@Ýz™š„x@x™°™™™bƒmƒX¯aUJW¯—k@bÇWƒwÛwWxƒ@XWlb@Žƒ„VŽÈUlwšLnl°VlUô¦œU°¤VšUxVXUxlbkVVlƒI„°„ÅVlU°m@k„ÇU¯xUlƒLUlVL@b™°ĠInĠ°ÈnK‚„@xÞa²n‚aUyšXUKVkšWô¼Èa‚z°JXUVÇV_„JVƒšz@Žnb"],encodeOffsets:[[109137,34392]]}},{type:"Feature",id:"6109",properties:{name:"安康市",cp:[109.1162,32.7722],childNum:10},geometry:{type:"Polygon",coordinates:["@@„bĊaƨèšwôô„¼šb°ašXVƒÞVUÞ@‚aXƒm¥kImx¯¯ƒV@anU@UÇéğL@ƒ¯¥V£mƒ@ÝÈb„K‚™„X°wČÿ˜ƒ„b@xÈblxȯĊ„„mÆUVƒ„nÈ@ƨÜLĢ¥ƒŹnƒ°Vnn˜K„aô_ȃšwU‚aXmnW‚¯kl›LXƒÇ™ō¦ÝaÅVmbğUn¥±wÅéVƒan¥ƒ„U„»°am¥„£ƒÝ@ƒ„wVw™¥nU„уUmmVwmķIÅaóVWxkblb@ból@œğÒĉ¤ċXƒ˜¯X™xk„Ç@óÆÅx@š™xķ_kmݎǣkblb@`¯²@bk‚‚@k¼ÆUČÆƒÞǚÞU@šU¼¯°±bVlnm¦kVVxnJVz@‚l„™ÒXW°n„™V™šlx@¦ôÜVUl݄Xèm@è"],encodeOffsets:[[110644,34521]]}},{type:"Feature",id:"6110",properties:{name:"商洛市",cp:[109.8083,33.761],childNum:7},geometry:{type:"Polygon",coordinates:["@@²nl‚ôbš„°aVwnKÞIš`°wšXôw°VĊ°@ŽÅš„ÞÆV„zÞK@xšŽ@a‚LŚ@b@ŽnLlƒ@šln„mnLVw„a„bVƒ‚VnbU¼„Vƒ°„bl„šbÈ@ĶŦb˜@nÇ@amIyUI@ĠVmôƒU™ƒVwkwlanJ„¯lwó¥@an°Jš_„‚@š™nóƒó@£l¥UwmašÑ@ƒUm±V_ƒJ—£›J—UW¥¯@ƒ_k¯¼mUƒVUè¯b@wmL™»ğVmağI¯¤ċIUW™XƒKĵ¦ķaƒJUb™IƒlUóVmk@WÅÅÇ@ƒmU„ÅVƒnĉƒÇ°kwÇa@wƒa—„ċxƒWšƒLÇa@Þn„U¤°¦@„ĠKÈê@VmV@b„U°°nwlJn¦W„bÝ@VŽ"],encodeOffsets:[[111454,34628]]}},{type:"Feature",id:"6103",properties:{name:"宝鸡市",cp:[107.1826,34.3433],childNum:10},geometry:{type:"Polygon",coordinates:["@@@ƒ„£@›°Išb@¯°ynʃaUƒlƒU£„Umšĵĉ@@ylUÞ@@£kWU¯WaU£¯ÇV¥ƒ@kb¯wƒn™¥ÇkUÇnUƒ@¯±›kULm›@m±_kŽónUxlŽƒbaÇLkŽUaDŽkšW@™Kĉ¦ƒ„kƒm@ŁUaķxlw¯aXaƒk@mmakL@šmšÛŽ@¼m„@l„XV`ƒn™KUš°°@²š¤UÈ@VxmôƒxKl„VV²aVw„Xla„Vlx@UVnŽÇnk°ƒVVL™lkI™šƒJÇk¯V@šknƘn@lznmlVkzVŽ„VVxš@Ux„z@x±¼VxxU„l‚kb˜@„¼Čk˜VXlĠkôV²w‚LUKlwœJ@a‚IV¥Þƒn¯Ün„‚„@nk˜l²kÆ@š°„aVbnI@™š‚Ťn"],encodeOffsets:[[110408,35815]]}},{type:"Feature",id:"6105",properties:{name:"渭南市",cp:[109.7864,35.0299],childNum:11},geometry:{type:"Polygon",coordinates:["@@@ÈôL„xUް„Þ@mŽÈnl¤nUôL‚wX`@ÞÝL™ŽUšmLô„„ŽôbVbnºlnÞ@ôƒšx°LšanV‚wÞ@Vxnwšnlw²¤šb°°„bVnƒlXbƒ„ó„@bš‚Ġ@„xšbš¦ŤšV™Xġ„£W¥ƽɽƒó@ýóƝÝ»„£X™mƅšĊkUƒ„@™™šó„kťaĵŽÇ@™akƒƒa„¯ƒUV»maUU„ƒaƒbUxmKƒnkm@™k„mK@ƒxó@¯n¯KǦ@ôÅèlxkx°nƒƾ¯KU¯WķL@VÝIUb™yWbX¼Ç°"],encodeOffsets:[[111589,35657]]}},{type:"Feature",id:"6104",properties:{name:"咸阳市",cp:[108.4131,34.8706],childNum:14},geometry:{type:"Polygon",coordinates:["@@šIXyĊwlý„KlƒXIVaķƒ™»a›£„¯aVU@a™‚wÈō‚ašL²»‚VœUln°WȯW»XašzVaÞJ@Uƒ»@¯Ýbğwly@£kÑţ±Wу@ka™IUƒƒnƒ@¯ƒómţU™b™U¯lÇIÝb@¤Ý@kV@zĊ@™ĶnƒVV¤k„V„„bmź¯z@°™a¯J@œƒ¤@„„bUx™bƒ„@`™xUÔ±ºVXœW‚„UnUJ‚L̝ÈKlblmÈXŎ°šU„°LšŽlkÞKš@Èxl_°ĶUÒkblš"],encodeOffsets:[[111229,36394]]}},{type:"Feature",id:"6101",properties:{name:"西安市",cp:[109.1162,34.2004],childNum:5},geometry:{type:"Polygon",coordinates:["@@°²@‚„mVVÈÈlš¦„m°xla„@U¦°ÈV¤XbV°lXÞaÈJ°kšVšaŤVôn°„„@„mV„šJlb„@XÒŤ²lÒ@¤kzĠxÞa@°„¼ĸK°XV‚°L„ƽ¯mlwkwÆç@óÈ¥°L°mô@„w@aƙK@b™@wÝLƒyÅUƒÝƙ@ĉ¯¯Uóx™W¯x™_ÝJmLUx¯b™ƒóak±mÝUU„™W¯b™aƒ»óó™xƧçĉbƒaĉxƒIUV¯¥ō„±w—l"],encodeOffsets:[[110206,34532]]}},{type:"Feature",id:"6102",properties:{name:"铜川市",cp:[109.0393,35.1947],childNum:2},geometry:{type:"Polygon",coordinates:["@@ÆxĸƨšKlxÈX„K@VWƨIlmœV@wVUmUnmUalk@kVaUaóaƒóƒnKV™šÞK@ÝW_xóKmVk£ÇmnÝ@¯ƒVƒwóK@ǯXkm›VU±¼™KbÇŎx‚š@bUV°bƒœ¤‚bš¼ĸ„Ub"],encodeOffsets:[[111477,36192]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/shan_xi_2_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"1409",properties:{name:"忻州市",cp:[112.4561,38.8971],childNum:14},geometry:{type:"Polygon",coordinates:["@@Vx@lnbn¦WlnnUšmš°š²VšV‚VVVnUn„ºlz@l„„@Jƒ@kXWVXl@Lƒa@„ƒKUL„ŽlbnKlLnK‚LnKÆXn°šbVV@bUVl°Un@LnaVJUbW@UX²l‚@ČwlVVIšWnkÆa°„„anV‚Kn°™UW¯@™aVUVk@Un@„aV@ValwUanmWU„k@WVUUanaVwnLVl°@nk@mVU@UVK@w„LVKVU@ƒ„K@UUKVUV@@bnL„a‚V„aôšlIXmlKX_°KVV@bVV„@šzV`kblI„V„Ul‚šL@bnV@V„Ċll„„VlIXW@k„a‚U²blKšVnIlJ„albXXlWVn°JnšnL@l@XlJlaX@„X˜W²@l_VmnKšU„blU@mnkVK„¯@U@ƒma@kX¥VƒmakkƒLƒa@aƒ@WIUUVXWWnk@a°a@kkm@kUUmJm@WUUUIk`m@V—kaWWkX™KmƒXk¯ƒ@WKƒLkak@±bƒw@ƒaƒa@akaƒ@ma¯@ƒL—KÇÅkKWbkmġ™±ÅUƒLUK™VVkƒm¯LUVVbƒ„UwUW¯bm„ƒULƒxWJ—@ƒklmkUm@@KnwVkVK@akwƒ@@a¯bƒKkn›VUI™b¯mmbk@UbmKUL@xUUƒ@klmLUŽlVXI‚VVVUVUœU`mLXVWbXnW`Ų°xmށxU@mĉƒƒwU@mbU@UƒmbkVW¦kJ™@ƒX@`¯Im@UlUVVnb@bWJXnmbƒJUU™UUaƒ@UamIkaƒxƒ@@x@b"], -encodeOffsets:[[113614,39657]]}},{type:"Feature",id:"1411",properties:{name:"吕梁市",cp:[111.3574,37.7325],childNum:13},geometry:{type:"Polygon",coordinates:["@@@a@w„@„wlbnJVb„@VbšVVV„InaWmXI@a‚aUmVUVkn@°J@_„Wš@lIX¥lUnaV„V@naV@„xĊ„n‚V@‚wn¯wƱX_WmXaWUnKV_V›VUUUUWJkUVnKlk¯™@@kmKUaٱKkU@WmI@WUIlUUmVwXƒ‚w@ƒUlUVwœV‚@„Lnb‚W@anU@UšaVkô@l»n@na˜JnUÈLVaƃUUVm„VKVƒ²L@mU_lK@UVWkU‚a@a@U¯aUaƒÑóÑUb™„ƒKk@@aƒk¯mVaUwVƒÑkWUmK@UUKmXUWÝwUa™LUU@aWJUUU@Ua݄U@WL@VKVaVI@WnU@alIVKƒƒ@kIƒmIkJ@™m@ƒ™@@_™K@xƒ@kaW@U„@Vmn@ŽUK@mIƒJUXV¤XXWlkKƒkkK@XmJVakImJU@ó™¯LWKUV@nUVƒLkxmKkLma@kXKmmƒLƒab™LmK@V@mXVÆUxƒX@`nL„aV@@VmLUVnLlLš˜„b@„šŽ°²nx@b‚VUxlb@V¯bUV@zV‚XVĊXVx@lVn@VnnmŽUš@LlJXVƒz¯VWVXbšV@bmn™VUVk„Çþń@XVxmbUlV„Uln„W„@„Xl‚@VLXÒ@bÞJ°¦„L˜ò„@nU‚b@°„X@ŽXbmVU„V„nb@x‚x"],encodeOffsets:[[113614,39657]]}},{type:"Feature",id:"1410",properties:{name:"临汾市",cp:[111.4783,36.1615],childNum:17},geometry:{type:"Polygon",coordinates:["@@nW‚@@UnLšK‚a„b„KnnWL@lnblKnLlw„KVU@mVUXL°KôšV@nIlJUbnI@WlL„llLXkWWU£VW„InJ‚@VL@nm@UVƒX@lb„@@wšL@`‚@„šn@V@lw„@n„VmVX„WmwnUlƒœa@_lK„wVlUn°xVKVXXWlUšVVI@K@K„n°KœwlVlU@kna@V_„Wn‚m„UVm@kXml_@m„LlKXw°m@_ôJVUV@X™l@UaV@Va°I„lk»VwUkVmwUmmVn@V¯@KƒU—wmK@U¯wUVÝ@mJƒU—nWK™@@UnKVa„_lykUmKÛnm@™x@ƒUUlwVk™ƒXW@ƒa@Uƒ@@K@ƒkIV™nammVakUlƒ@wX@@kƒ™¯@ƒVVbml@„„°UbULmlVbnbÅK±VƒKVXUJWa@ULWaUU@@U@aWK@UkxUKƒLUUUJ±UkL@V±kk@kam@UV@l@LWl@n@VVUx„LlUUx@VUV™U@aƒIUl™L@°mLU‚ƒbkUUaWUUaUU@aWK—LWJ@bUL@VUVVbU@m@a@kmKmnĉlUK™XƒWUblb—xmIkƒƒU@xWb@lkšVx™LXŽmzVV@bklVVUzm˜@bk„@Vx@xlŽU„@lUbVnl@„Wxnl@n@ŽUbV„mL‚mƒb@`X@lUX@@xlnkLWaUJnnWV™Vn@l„@bULVV@l™V@XnJVX"],encodeOffsets:[[113063,37784]]}},{type:"Feature",id:"1407",properties:{name:"晋中市",cp:[112.7747,37.37],childNum:11},geometry:{type:"Polygon",coordinates:["@@@šlInJ„lJ„@‚„ULkJ@bmV@XUJUb‚L@UXKV@ރVbV@VVXI@bVVšKVbÞxVXnWVL@VnLV‚lX„ÒUŽVxUb°n„l@bl@„LšƒVaô҄ÒVb°b@VnLnnV@lmn@lb„U„V@„‚JœUVV‚Xkl@lUzmJ@xšXkl‚bUn„JVšUb„nU‚lb„V@nlLX@lakšV`Ub°š@XVJnU‚L²KlxnI@KV@lbUbVV„KnVl@„zlm@Uš@nŽšI@WUaVl@@mVU„@XkW@ƒnkVKVƒ„_Vw„y@knwVa‚@XalU„@šVnml@„X@V„L‚KVaÞbnnlJšI„mVKn„VVVInVlU„@„m@™mXK@UmyUI@mWUUakamw@wUwmLkakwVƒmK™w@wUam£y@am_ƒW@™UU@knmm„amU@WUa@knw@ƒUUUUV@nƒJm@mVUkKVUUUkKmwƒKULƒKUImV@lUn™nŽm@mbUK@°™bUnmbUmkkƒWUb@am@UXkK@a±@™V™@ĉř„V‚UXVxUVkLWl¯@@bULUlm@@nm`—XƒlWakIkm›VUbUL@Vm@kIƒ@@Kšm@—VaX‚I@W@aU@kUƒVU_™KƒbƒJkkǎ™b@nkKmL™wÅW@kVUUƒVU@WUIƒJmIXmma@_kyVaUUlkUm@ƒkU›x¯Lƒm@L@LUJ™UkVWXUWUL¯wVmUkƒxkL@`›bk„mVnxƒXUWUnmƒƒ@kxU@"],encodeOffsets:[[114087,37682]]}},{type:"Feature",id:"1408",properties:{name:"运城市",cp:[111.1487,35.2002],childNum:13},geometry:{type:"Polygon",coordinates:["@@„Vl„nJ˜wkaVa„XšWVLĊknmnL‚l@@bn‚V@UaVU@UVK@aXI˜KXL@bVVVbXVVblV„aVnK@¯šKVk„J@bšVVU@UVwkVƒKVwUUm@@Xk@K@kVUn@lbl@²l@UlK²VVIVV„KVLlw@VXL@b@VV@VŽXbVK‚@XbVIUW„L‚U²ÆLmaUankVKVaƒ¯@ƒnkUa„U°@„š‚n@@kWa„UVaXUW@IXKVw@U™ƒ„™WU@W@@UUƒU@mn@ƒ`m@UUULkUmJ™IUƒ@@UƒK@U@›anƒ™ak_@wmKUwmakV™kmK™V™k¯b™wƒ`kwUIÇx¯»ÇaŃmn@@™mƒmUkV@wkKW@kxmL™UkĉLÝk™xÝw¯lóVU„mV@ĀVVX¦W¤kz@`Vx°„²ĸ‚š@„Ul@x„êĸNJ°¤V„VlXLWnXxmV@nUl@„"],encodeOffsets:[[113232,36597]]}},{type:"Feature",id:"1402",properties:{name:"大同市",cp:[113.7854,39.8035],childNum:8},geometry:{type:"Polygon",coordinates:["@@²£šyl@Ȑ˜Ė@bĸŽĢbĸ„˜X„a‚KŤnn@ŎôllÈx„nVnÞDŽV@b‚nXllL°KšbVb@J@b—„‚„@ŽU„„xlKXLlKlXk„@Ulk„JlkUƒVKXUƒÇVIVm@_nǚLšašl‚w„VnU@UUwma@aƒaÝaLmUk@@Wƒ@U@@X™wVWÝUUUk@@VmLƒKV»nwUw™aUL@`mzƒJUIVƒUaUw™KUaVIlJôanÑlLVUn@ša„@VV„@@UUwVK°Vn_lJÆLœéW@UUUÅ@»lm@aÞIVwXW˜UUkkm@U@aƒU@mwU£VWU_kWmƒXwW_°yUkkK@UÇK@kkUVymóK—U@KWIƒbUak@mJ@bkbmLkŽ™UmƒkVU„W¦@lnb@„@Vƒ°ULml@nkVƒa™VmLUnk`±@—XƒWW@kbǦXޝ„WxI@xmbmxXlWV„„@bŎUz@J‚b@bÞb™ŽU@Wbk@ƒxk@WX¯VۙƒWÝbÝUkVUU@alI@a@akLWa™m@U¯UUmÇL@K@aU@¯VUkƒKmX@`@œkJ@nV‚Ub@lbVÆXVW„ULU`VbkLUV@XWl@bXJ˜@VbV@Vl"],encodeOffsets:[[115335,41209]]}},{type:"Feature",id:"1404",properties:{name:"长治市",cp:[112.8625,36.4746],childNum:12},geometry:{type:"Polygon",coordinates:["@@Uk™Lky@I‚JVa@mÞaWšy@_W@_WƒXVlUVwš@nw°K@m„UƒVaƒmVkU@mmmnLVUmKXa™U@IlKVUnK@UmWkX@WV_Vƒ@akU@a„KWIXyƒIUVmUn™Ua@WaXUVKVmkUWVkUƒLU@@VƒbƒKbƒIUmƒ@mbVL—x›WUUkn±V¯wƒbÅJUbmLkbmKÅKƒbVnUbƒV™KUb™KUbmLKmƒb™aƒKkUm@UŽnn‚VnxUVlUxl¼ƒk¯JUbU@Vbk@WšU@UVóI@`¯nWxkLƒK@nk`Wn@lUnƒVnm‚ƒXU`@mb@lkV@„VnklVVUblz@`nbWnnJ„IVJ@XUVV„UV@lÆXšxnKlL@mšaȍll„I„ašLV`„UlVV@@b@XJWUb@˜™n@L„@lJn@@UVKVaœUlnlJXb„k˜Wn_@mn@VkVK@a°@XklKVUUwVWUšƒĊƚ@šU²@@blLVWn@@bVa„XllVnnaVmša@¯VLnan@‚šmVm@knUVJ"],encodeOffsets:[[116269,37637]]}},{type:"Feature",id:"1406",properties:{name:"朔州市",cp:[113.0713,39.6991],childNum:5},geometry:{type:"Polygon",coordinates:["@@XXWVXVWnnlnn@èÆ¼@„„xlš„ŽV„nblšššVŽÈUVl‚š@„blnœL܃ĊmUkU@Ua‚—@WI@aXk@WVUlKUaV_VKXƒWUUÅka@VaU@mlI@›@_nW„LVl°UV@@b@LÈKVn°V@VšnXblK@b@bkJ@bVVlUÞVÞa„Xܚ°UXWl@„wl@XaV@šÝa@aa@IVyƍ@aƒƒXUWknwna@w‚JXw°ƒWÈ¥kI@W@kmKm™¯IUmkXWWkaƒbkImJ™UkL±aVƒb@lWXkJƒUkƒĉkƒ@UmU@a™KkƒVƒUkJlaU_™yƒ@UU@aUU¯LW`kLWnkJó™ƒbUƒbmK@aU@UVVL@VƒL@„UVULƒK@xUL@VUV@nml¯@UkmKUxmbVbUV@XƒlXVmnVbkxUbU@ƒbm@@VUlUVšb°@VX¯šm‚"],encodeOffsets:[[114615,40562]]}},{type:"Feature",id:"1405",properties:{name:"晋城市",cp:[112.7856,35.6342],childNum:6},geometry:{type:"Polygon",coordinates:["@@lV„Lšb„an‚LnKVašLVašL„UVaUm„aÆLnLlanKVaÆI„a°x²UlmVVœX˜wUKna„@Vn„J‚a„L„a@UV@@alUkKVKnkmmVwUk„w@ƒ™@kxWUXƒW@@mƒk@aUa@a¯aƒLkKmwkUm@kL@K@aWIXmƒVƒXƒWkUVakL@UVKƒw@aUK@UUKmLU@¯n™KUwVƒUIWJUWmka™@UXƒJƒk@UkmW@kLWKVƒx@bmI@VUaVU@a¯@UUmVKmX@±`kÝKVxUL±akL@V™bƒLkKmVƒ@XWVUbƒVXb@lm@@lW@@xk„lVUbnnmbUšlJ@„@L„@@V„b@‚WXš„UlkxVV@„šwn@ÜmnLlVkzƒ`UbmL@Vš@XL˜m„VnIÞ@VU°x@VnL˜x„V@LU°"],encodeOffsets:[[115223,36895]]}},{type:"Feature",id:"1401",properties:{name:"太原市",cp:[112.3352,37.9413],childNum:5},geometry:{type:"Polygon",coordinates:["@@„@VV@wVKnLVal@na°nšaVJœUlm„L°a@b„@lx@bULUlmx@Ln@lVkn„l˜@XI„w‚K„Vnƒ°aVXVx„ƒUaVU°K„nUlšUVL„KÆVš²Ģ‚lnXalLÈÆ˜L„KUaVkUanmWU™a@WwkUWU¯y¯Ñ@anIl@@aVU„m„I„ymUƒLUUVakaU@@LmJkw±LKmVUI@W¯™VaU_l™kbW@kK@mƒUkaVƒmVaU™ƒIVmalk™W@wnIVy@klkWUU›VI@ƒƒUƒVkam@knU@mmmK@bblVUX@VkLV`@n±KU„ULƒ‚UnVVńUbÇKmV—Imbm@k¼ó@Ul™b@VmV@bXmaƒK@›UUxkV‚V@„xW„UxVnkVVJ@XnJ@XlV²LƂVbnL@lš@°"],encodeOffsets:[[114503,39134]]}},{type:"Feature",id:"1403",properties:{name:"阳泉市",cp:[113.4778,38.0951],childNum:3},geometry:{type:"Polygon",coordinates:["@@°@nb„@lb@b„b„b‚@„x²al@lb„KXU@m‚kUWkkmUUƒVwV@XUW@™naVklKXblKnL‚ƒnLVanImaXKlL„ašV@U@KUKW„alƒXK@£WKXUV@VU„ƒUUVW„_V™@W@@K„@šƒUƒƒIWmXUmƒULƒn™JkImmÝaUbLƒK@UƒWk@mn™Uƒ@kVWb@Ubmx@lƒzUxƒ`U„ULml@„XWlƒ@UV@nk@U‚Vb@X™Jm™@@Vknƒyk@ƒzƒJƒnUV@bk@mJ@b°Ò°zXVlVXx‚@šbXVmnVbUlVb"],encodeOffsets:[[115864,39336]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/si_chuan_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"5133",properties:{name:"甘孜藏族自治州",cp:[99.9207,31.0803],childNum:18},geometry:{type:"Polygon",coordinates:["@@ƒaXamƒ¯wm@±°wUwV@UaVw²Kš™„U@UƒU„¥‚a„ƒ@£Þ™ôx‚Knkm™X¥™IUƒÝUwlk°V„@ƒÈ™‚KUwlkUyV¹„mšx²Xll„ÑW»š„l„w°UŎ„nƒ„„˜Jœƒl¯°V@wôIVÇn™nUllšLšVǚLô¼XW£@±„@¥k_ÇJƒkUéƒkšƒƒwXa@ƒšLlw²™Vx„b‚mš¼ÈxlLȃ„VWÞn¯mǙÑUÝlÛkwlĉmƒULmwUJ™ç@wkm@ÑlUX™ƒÑôġƒVa™ƒUф¯@wķÓkbV„mnU@@y¯IķKƒV@¹šaƒé@k„mÞU°¥@a¯@anKlblU„¥@óğç@Çw@wkla„çݱk¯±@ğÝUÛmݯwƒ@kb±¯akXWÜkXUÆÇUš¤X_Ɛw„V@¤ƒXU‚ƒbUƒŽƒIUlÇUkŽġ@™aXČmlUlèUV@„mVk¦Vxš@¦±š¯ƒƒ¯¯anlWš¯nƒƒÅw@w°KVak£m@klƒKknÇU™»óKšīlaUaV£@™™¯@ƙU™VƒÛÝÇXƒÇl—ÓlŹ„»WUğJ¯£mx™Lĵô›ºX„VlUll²bl„„lŽƒxónn°ÝšU¼mJUš¯nƒƒƒV@êĉ°Uĸ™w™@mƒ@¯kmXamѯaUwÝKU¥„mÅn¥Wmn™ƒ¹n±ƑƆÇôXê±NJnšƒ‚UôlĖkȂVÒ¯¼VnƒȮ¯ĀnƆ˜Ģ@Žk°V°¯ĢVlkšVxm¼X²™Ŏ@ŽVxknWܰU‚¯n™ÆÝœ@`„ôݲÒƒ‚Çzn‚mX@x„è°K°Å„UČĬóĖ݄ƒ˜ó¼ÅêƒÒƒbmšk@V„Ž˜„@ҁl@nĉܛê—x@Ėml՛J¯¦óxȭ°ÝmޝLĵè›Ā@Ɓ„l°żƒ‚šX@xmŽkV@z@‚„°blŽnÞ°J@bn@ƼUVƒUóŽóLƒ°X°ÝLƒxUn„°ƒĬƒn@lnL@ŽÆ@šn„KÆxnUnV˜InĬmÆnxŎ¼ĊIĢóÞ@ĊƒƨbUƒ‚mV¥lkƒ‚wnL„mšÅÆ¥Xƒ˜wU@w‚wUÞ™@alUUŚU™Vkkm°aU—°Ó°w°U„ƒ„b°aš²K˜¯œĕ˜@ÈbޏĊaš»„XVm°In„‚Ĭk¼Vb„ašJšôš£VĊan™‚k„ů™™nƒÜU@anKnĮ‚bÈmƎš»nI‚霣Ġ™"],encodeOffsets:[[103073,33295]]}},{type:"Feature",id:"5132",properties:{name:"阿坝藏族羌族自治州",cp:[102.4805,32.4536],childNum:13},geometry:{type:"Polygon",coordinates:["@@l@@þ²I@lƒ„VL°wnJ°Uĸ™Ŏè„Ilw„V°¤nĮ™¤Ý„lè„L@„ƒ„@x„l™è²ôĊ_ĊġVÈôJżīlbXšÆÈVŽkxÇVƒ„n°„¦Üb@è@nn@@°šUÈ¥WDŽ_Uala¯¯UǙkƒ»„mVwk»˜k²°VxlL@¤œ_@x‚`ȍ‚Ėöb˜š@l²alX„a@bnK°¦VK@nnWmx@nUnl@@lƒlĉk°l°UXkmW@Unš`k„ÇL„ŽW„ÛÈVxšVVlVk@l„IXb@ylXÈW˜Į„WŤzœy@šmIƒŽ²šJ‚š@nް@V„„J°a„Å@ƒŎkVǚk™aUw„KVw™™Vƒ„@nkm™@±ôkô™ĊJš¼šInÑm±nIššÞ‚XȃĊxĊUÈbÜyÈ£Vkw@kVUV™„m@ša„»ÜbÈmƒUXwÝxƒUn¥@°ġ™Å‚aœJVk™aW¯Û@W¥—UŏĶ™@¯kUƒŃ@ašI@mmanwސ‚W@œ™mw°»Uřk¹±W„xVx¯¦U°ƒzţW™w@°ÇVÑk¯@„y°aš£š@šmšnl¼„ašÝÝakwUƒ±aĉImlĵn@ƒm@kkVƒ¯Ñm™ĸ™°x„l™œ@˜ƒXVÞmlÛݙĉUÅ¥mwÅ¥VaUw›™XġċaVůÛŹlwU¯U™ó±™xÛV±¯¯n¯mċƒLmnĊm‚™@™_kJWaXmwUƒĉK™»™@mwX݃UDŽkKÇw™»nƒaUw±škx™K@„Wb„x™„„lVê„lÈIl`@¦ƒŽ@²X¤Wó»™KUșŽ™KkkmVmšUÈóJ@x¯Uk°›„—Iƒƒm„ōƒ¯Vƒxƒk™ŽX¼ƒÒkk±W™wƒnUºVzklVxLǚ@„ƒŽ¯UklVxސV„šJW¦nšmlLówݚ@¤ƒ„bƒ¦„V@VƒV™š±LUxVbU@Vx¯x@²n‚°xn„Wb„b"],encodeOffsets:[[103073,33295]]}},{type:"Feature",id:"5134",properties:{name:"凉山彝族自治州",cp:[101.9641,27.6746],childNum:17},geometry:{type:"Polygon",coordinates:["@@ĶóšKnw°¤ĠIXVƒ¼kź˜Ôk‚„ÈWŽÞȄÜUVšÅš°@šš‚@U¤Vbkb™ĬôLš¼ÈVlm„Llkn@l¤Ub¯L@xÆx„„°mX™mk°b„°°„²™@¥‚™Uwl¥nU@ƒVUkçVnkWċšbĢ@lÈVVk„J„‚V„aV„W@£ƒUƏxW`™£ÈVVÅlWXÛlW°b²la„@°xnÞVÜĠÞ²@l°Þ²ƒèkblŽ@xÈx@Ġènal£nU‚Dz@‚ÞK„nn¤@¼˜°U¼„nV‚šXU‚šbn™ĠUVbUlVš°LX„@lV„èÜUnK@_ƒyXVyUwmIU»Vƒ„kÇ¥šÿkkV¯m±n@ƒn¯ÜanVVƄz@Ž‚bœwÜb„m@wša@kƒmk»@™a@VUUó„w˜@nb°mš„XŽmnVbގVôanwšJ‚ak£lw„˜šLšÅnÝ@wl¥IÇӃ@U™™Lƒ¼kVǃÅó¯kVmmw@ƒn_‚Vn»°LÅ»@éÇçŹīVÇÝ@ÝğU™ƒaVݙ™š¯ķlŭġlƒ@óÞۂċ@¯nkUӄ—m±™IVġUwóKUn±¯—K›w»ƒKݐV„nl@„óxUwţ›£ĉƒUmŗÇ݃K™„ÝUlmKƒ£UVŽ@ÞȎW¦„Ò@Ĭšnny‚@nÒmœVŽ—¼@°Vbl@VlnUUwl™°a@„œ„@llnk°lbnKWĀnŽU„VxUŽ‚²Å‚m¦Û›ÇڃaU„Vbš@¦m`móX™Umm™xÅ@±Þn虲™U¯»m™ƒV—m@wƒU@wݚÝmLƒa@„™VÇUk„l°¯„VlkVƒ¦UšmxƒaULUèVx@„kIUxmWV¼¯VmȯšU„nl›È—@m»Å™ƒVWxÅbÅğW@kƒm@kVV¦mlnn@‚ō„l¦Åƙxkœ"],encodeOffsets:[[102466,28756]]}},{type:"Feature",id:"5107",properties:{name:"绵阳市",cp:[104.7327,31.8713],childNum:8},geometry:{type:"Polygon",coordinates:["@@„ńlV°š@Őĵ˜VX»ÆUĊќJ‚w„@È»m»š£°Kšk@ÇnÑÆš@„w°JUwnw@wšbVbš@VlźLUw„aƒ»„aUklyUUVakwWXwWƒUxkLƒmn¥mšwk™˜UX™lJ„w@aƒIk°X„¥Wƒ²l¥šaU™„IlmkklƒÈL@m°nlWU™aW—š@Vƒ„@UaV¥@ašk@Çk¹ƒK@a™K@kƒKkšÇX@VU@kx±V™èkIWwUVUkkKÇ@ƒa@wkml¯@kUWn£Wa„aVwnaV݃w¯@UaWx—n›JńUxUšma@L@„mbUށU±VVnkxUƙ„VŽm@kkKW°„X@¤ÇUkÆÇnU¦¯ŽkƒmLVwÅK@UóbÇÆVƒ¦™L@‚±êX¦mVޚkÜÝnWU—„›@kšƒŽ¯wķšnš°ÒU„lln@@„ĶmnkĊJ²bV„lxÞb™Þƒbk»™m™n™@™¤¯bƒz@Žl°UÒ¯È@ŽšxŤX„yV¯°¥Uwƒw²XlºVڝ¼nx›š@ށXݏmxnb@n™J@b"],encodeOffsets:[[106448,33694]]}},{type:"Feature",id:"5117",properties:{name:"达州市",cp:[107.6111,31.333],childNum:7},geometry:{type:"Polygon",coordinates:["@@Uxn°‚bnŽlUnÒÆƒnn@n‚¤„LnxlU„ššV@„Æl„x°XXxl`XœƒVW‚œL˜è—„±nÈbƒŽ°b@š²x°Kܼ°ĉ„V¦lJnU@¦šÞ‚JÞğ„mšLÞ»šxU„lb„VÆann„alŽ„VƍX@lnŎV„mU™maÅXƒa@aWmœ@‚£@wĉJVƒkk‚kkmƒnk@ƒmna@šal„Kš™‚J@Þwm‚ÅŃ@ambkUƒƒ@™™KUġKU@m‚ak¯±ƒ„a@aĉÑÅaVwšXlwƒ±—V¥l@@a™kƒ›@@£šmƒĉÝónWV@ށnÝÇÇx—UmbƒaVkkk@m„@m°ƒÝýXm›akÅīƒ@@ƒmb@@xmšnbƒ@mxšŽkWL@ƒ¯b@WUXmWœWKkbm@kx™Xmm@LUl„xlêóK™nUš„all™LƒlLó°m¯JVšU„K„„@x˜K²Āô¦l°"],encodeOffsets:[[109519,31917]]}},{type:"Feature",id:"5108",properties:{name:"广元市",cp:[105.6885,32.2284],childNum:5},geometry:{type:"Polygon",coordinates:["@@ÆL„Ċx°»Ŧ¦˜W„™šLȄ@xÞKܰÞnVxÅĀlÒnJ°a@w„V¯l@XWknKnw˜VȚ°XXa˜lX°VI°b„W„nšaššš¥@ƒw°™n@šyÆ@nkÞ@°¯lJn„°IÈl‚UšlXÅ@ķlUV¥VUUÝޙUUƒ@UwƒJUkĉm@ýƒƒlk™WUwVwWJk@VUK™lUkaVƒUƒmLk„m@ƒƒ@Uƒ›Ik`@„™UmlUkV¯ÇXKÝ_mm¯@Uƒ`kwmƒl¼±KV¯—¯Vk±Vk±kzma™KUnDZ™bk¦±ŽX„ƒ¦¯Wl„J@bƒxkIWš—Vlš™xnŽm¦„nlKVwX„WxXŽlxUbVVkzVlƒb„¼ƒbVxŹKUk™@Ua™a@xmxVx¯Iƒx™@ŎmÒ@șl¯L™¤n¼"],encodeOffsets:[[107146,33452]]}},{type:"Feature",id:"5118",properties:{name:"雅安市",cp:[102.6672,29.8938],childNum:8},geometry:{type:"Polygon",coordinates:["@@ln@xšèVInxVKn„‚ĊklxkÜVޚÒnÈm°nxš@š¼ĊLV„nx‚WXblIš`š@nmĉn‚KȄôÅlUÑmU„K²¹@ÇÅVÓůVýÞW„‚UVmX„ÆbnwšKUÿ‚™@UmmIUb¯¥Uwƒ™¯™Çmš™„çmanUm»UUƒl—kƒ¤ƒa¯bV™U_WĕmÇŚ±ĢUlƒUl™ÛVƒçkUƒ@WޝKU™VkUağVmš™aV™WUƒmV»—¯@»m£ƒmÝLŽ±@ÈmVk¤mb@ôƒ¦kVkamL@b°‚@b¯¦ÝVƒn@l„ê™b@º„UĸL°J@zV@nmUƒlaĸÔ@xƒ°VҚ„Ub„‚óĢ„ÒWškV@Ò"],encodeOffsets:[[104727,30797]]}},{type:"Feature",id:"5115",properties:{name:"宜宾市",cp:[104.6558,28.548],childNum:10},geometry:{type:"Polygon",coordinates:["@@VlÈnl‚XnWLX`m„²nV‚@b°xĢçlnšVm‚nn„@@„°‚UzšlV°nޘÒkxl„w„`UnVb„mšL@albÞKÈۚmܼ°@Xǚ@wmW@ńKĊL„lV„šLVŎçÞL²±‚ğkw@Uƒy@¹lKX™lKVa@w™™Č@‚w@a˜ÇU¯n™@@wġak—™aō‚ƒƒK@Å»VakUWmķwkbğ¥mL™akš™@ġރ°¯xVVÞ@VšxVš—VWx„XlxU‚™@k²WVŃULmèULVĊklĠ„VœJVx±nѝ¦mwğ@mƒƒlğkkl±@kšUk@¯±Ç™Kƒ—kxl¤b™Imx"],encodeOffsets:[[106099,29279]]}},{type:"Feature",id:"5111",properties:{name:"乐山市",cp:[103.5791,29.1742],childNum:9},geometry:{type:"Polygon",coordinates:["@@kšVŽk„ššÆkšV²UlºÈIlxƒLXèÜlU„„XU‚mkƒbVè„x°@„@¼°Knnn@m˜ÆIUbnJ@bVI°b°±@nK@mVakkƒKl¯nbšmĸ„èl@VnÈl‚UUw„wmwnm°¥„L„™lLnU@Va™ImbkƒmK„ƒƒnk@mƒb™ƒƒLV„JVUUƒ„VnkVmb@a¯JUaÆkk¥„IW¥„Klw—ÑmÝU¯™kVy¯@ƒƒ@mmn™Ukmġè¯w@aU±mnƒW_XKWmkÇmUkóbUÝUanmW™ƒ¯nma—@ƒxVôUV@šb@‚l¼„n@l™b@xƒnÛa›xa@ƒyUÅmUÛbm°@„m‚n²U°ll™ĀȦƒlU„V¼nJVxUz‚W„z@`mL"],encodeOffsets:[[105480,29993]]}},{type:"Feature",id:"5113",properties:{name:"南充市",cp:[106.2048,31.1517],childNum:7},geometry:{type:"Polygon",coordinates:["@@ȲVmšLnblyl²²UUl˜°U°²L‚»„knlx„_Vް@nnÞ`WL°ÈUŽVlnkšV@ƒl_œJV„‚@„„n@lƒnKV£™Çšƒ„UV¯šm„@laX˜U„‚UbVx„@VkôJU°Jn™@™‚wUk°wnUƒV_nJmknmm¯Vwk¯ó¥±ÿ—L@wƒƒƒLVU™kU›bX¯mykI@a±Kk¦ULmaXƒƒVm¯ƒK—z±ƒklUIVbÇJšƒkL¯™l™ƒU™ÿ™UƒlUkJƒUmŽUUkVVklKk@@a™U@„™J„²ƒxƒ¦kĬ@¼±ºXnWb—xƒU@xƒx@lšL@b„Llº@șl@bU¦Vbƒ@U„™@X˜‚bVškX¯m@nÇKk„llknƒJVš"],encodeOffsets:[[107989,32282]]}},{type:"Feature",id:"5119",properties:{name:"巴中市",cp:[107.0618,31.9977],childNum:4},geometry:{type:"Polygon",coordinates:["@@V„U„lbkVšŽVLUŽl@XI‚ŽUxVxšXkl„„@þĊnVl„IVx„@VVݚVÞUVU¦kV@ĸWÆô²š@VÞnš@Vaôb²W@‚K@XUmÑUW°¯°Ina@y„_lWn¼lLUbô¼„Kla@™nkUyô—Æx°@šn£™Ý@¥mVkIU¥Ċƒ‚¯Û»¯L±w@™¯a„Ça²m˜ƒ—ç›KX„UW›k_Ww¯WƒwÅk@ƒ™Uƒ™kVmwƒK£@mmmńmÑkVmamnnlmIU`V„m¯xVlx@šmš¯IV‚óIUlƒ@UwVaƒ—VW‚kbƒ@™nU°ƒV™„šÈU¤"],encodeOffsets:[[108957,32569]]}},{type:"Feature",id:"5105",properties:{name:"泸州市",cp:[105.4578,28.493],childNum:5},geometry:{type:"Polygon",coordinates:["@@VVXwVKn„˜wnVƒn„l@b¯xmKUbVn°°X°@blLšènV„@Vn‚l@U„LnmmUna„VV_ĶV@wnJ„„l@@kkKVólaUwnJm„wUlm@ašUaôKVnJWbޚ@VšwVLX¥VVš_Þ`šw„WƒÞŹmmnIn¥Wƒ@k„WV¯@ƒ°kI™ŽƒLk¼Ç@k¤±Xk˜™nmݯUlÅÛKWV¯kƒlUwkLƒÓ™@U—@ƒ‚w@ġXV„˜WX„š@UbVbšV›š_kÇV™lU°lnwŎ¦ÞaƯnmm¯šU„™m¥nkVmkƒl_ó¥¯UÇl¯@™ƒ™L™kƒ`¯ķLUy¯@mw—¼ķ°ġ_řU°mlšnÇVUޚ„@‚ƒš_ƒJUnV‚UXšbl˜Ģb@x@mšV°—È‚b@‚xċ@šš@xUbkLWškL@º„zV‚@lxĠ±²"],encodeOffsets:[[107674,29639]]}},{type:"Feature",id:"5101",properties:{name:"成都市",cp:[103.9526,30.7617],childNum:11},geometry:{type:"Polygon",coordinates:["@@°n°m²°ÜUšw²ŽôVš°ŽVkxÜźUŰČb‚ŽĢlaÈL„»ƒ@k„wVǂ@„ƒnÛÆ»È™UݰKl_„V°Uš`Vbn@VbÈLšaVU@ƨ»V™nIl™šUUa„±lIk±š@VnKmÅ@WaƒK¦™lVōškK™Ý@maXÇmw¯IU‚@kƒVƒwUmVIƒƒƒç—ÿƒU±ŽÅ@¯È@xƒK@wƒLUbÇKō@mÝ£@yóUóóUxkI@WlIUaƒbƒaŽVĀ™LmxÅaWƒUnVƒÝXUþưUÔÈÆ@±ºƒLnVVÒkóÆ"],encodeOffsets:[[105492,31534]]}},{type:"Feature",id:"5120",properties:{name:"资阳市",cp:[104.9744,30.1575],childNum:4},geometry:{type:"Polygon",coordinates:["@@„è„„UJVn„x„U@lV°JnxWÈnbÞ@šŽlLŎ™Ušk‚¥„LXbÆ@nŽmLU‚@zlbXmlnVynL„çšJVb‚UnómUnamU„an¥lKV_²aValWô„n@nƒ‚bVœK°¯VblW@kkƒlUnlV£°W@w„UXk°KVwƒmVkwVyVI@wkmƒVÅ_Umm@Uÿmbk£™xUaVw±V¼V¤kLWxU@Uk™bƒyƒXšómƒ°V@@zÝÒkKƒn™±U@@_VVkƒÇaVwnLWalm@@kkVVl™¦kIV`±n@w„Kƒƒk²™aƒVUUV¤™nkxmUkVWVnLUbVbƒ`kUU„mLU‚mX@`ÅbǚXbWLXŽ›n"],encodeOffsets:[[106695,31062]]}},{type:"Feature",id:"5104",properties:{name:"攀枝花市",cp:[101.6895,26.7133],childNum:3},geometry:{type:"Polygon",coordinates:["@@„b‚KÞnޙ@x„V@x˜n„Unš°¼šVš±mç²ÝÆ@šwnnšVWŽnôn_@¥‚™UaVƒ„bƙœÈ܎n¥Æ±VUwVƒmXÿmLkal¯km@k›ƒ@ƒ¯bkšVxmVUkk@Ua@¯˜»Un›mс@mz™m@īƒÑX¥Ç@ݙxU¦ƒšÅŽÇUkx@šlb„UWVX„mV@xĵ˱@@ޝxUšÆLnÆm„šx@nXL±lUUVwKWak@WxkbšÞƒŽĉbUn@‚ƒ@@xó¦„Ŏ"],encodeOffsets:[[103602,27816]]}},{type:"Feature",id:"5114",properties:{name:"眉山市",cp:[103.8098,30.0146],childNum:6},geometry:{type:"Polygon",coordinates:["@@„šVx°¦VanJVnš@„b„aVbkJ@XlJVwôôôV@zÞ¤@nƎÈLVa„K@x„L@w°ÇÆ@²„V˜ĀœmWXKWașÆa@_nWVnKVƒlV„_UaVamKXUWwnmmwœÑm£@ynUƒkWƒĉUkWVkkV±çkJmkKƒšƒK¯¦mnnxƒxVxVÇkUmk@ƒçķ™nmak°„LllUb@nmL@‚¯²¯aUJ@amIVaÅJn—m@mm¯L@»ƒŽ¯@ƒwUç„anlVƒWVƒÛkWç„KkwÇJk¹±V™UÅl™™ġV™²ÈƂnXĖV`Uš°a„b„£˜l„kVVn¼mVnbƒè™šÈn°š"],encodeOffsets:[[105683,30685]]}},{type:"Feature",id:"5116",properties:{name:"广安市",cp:[106.6333,30.4376],childNum:5},geometry:{type:"Polygon",coordinates:["@@„VlIV‚„kšVšĀ„Vkš°šlK™„ÈIUaVJlk²„˜y„Ln°„UW„nbVKl¥²L@blJnzW°œalV°Inô¯‚K„kšKkkƒbV™šmôLkéƒwVk@KnnšWlwn@laXL›ŽnXVW@X°a@„XKl™nw„@man™@w‚@na@„„@ƒw™ĕġġ™wUkUWb@mk@™¦ƒ¥mUÛb±yÅn@bml@kV@„ƒlknVbmVnlmš—bÇk¯bWyk@V_UamJ@I—@WaƒVXamIVWkUkbVaƒUUxƒ@VnkVU¼›bkKUxmK™„@WšƒxnV@n"],encodeOffsets:[[108518,31208]]}},{type:"Feature",id:"5106",properties:{name:"德阳市",cp:[104.48,31.1133],childNum:6},geometry:{type:"Polygon",coordinates:["@@nUW¥²é@šK„¥‚UÈÅôa@VÆLUxnKl„°V¥ÈmlÅÈV@£ƒWX¯lLln@UšƒVÅlwUm²U‚VVna@ƒ@KnbV™VwƃœI˜mXwWƒkIVwÝĕVUa™IƒèmKUzkmWnka@y™@l²kJƒ²Vb™VkšmJUšƧ¼@UV™bÇKUam@Ua™_¯VƒUk`¯LVÞǚżm܃„@Uȃx@l„ƒ¼ÇKkbWŽœšVxUbƦnxƦĊV"],encodeOffsets:[[106594,32457]]}},{type:"Feature",id:"5110",properties:{name:"内江市",cp:[104.8535,29.6136],childNum:4},geometry:{type:"Polygon",coordinates:["@@²èlUUllXĊVX„„lmV@zn¤›ÒnxmnXxlUnVlwšmU£VV„Ušbl±„„ƒL@x²mU_lJš¥UklU@ln@‚kXbmKUxÈbl„UU@`V@š²„mlLÞÑ@yU@„¯ôn‚™„W„zšaVlV@XwlKU£‚»—aVaUwm@mwUVUwkƒlVDzLlƒ„KV™m_@ykUmƒ@mU™çkKmxkIU‚Ý„@LUJ@n±„kº‚LXb™¼@mmIXa™@mamnkW™ƒKUƒƒxƒ_U`UklwUw™mUbƒV™²ƒakbƒmkn@`„UmҙšVxUb™I™`UƒaÝÈ"],encodeOffsets:[[106774,30342]]}},{type:"Feature",id:"5109",properties:{name:"遂宁市",cp:[105.5347,30.6683],childNum:4},geometry:{type:"Polygon",coordinates:["@@ÞĖUxlJX„Vb°@„xUÞmbUxƒbXbm¤VX@lk°ln@x„bÈ@lLVlVUXxlJšç²UlwV@@UÈWl™„L„w@w„V˜wXaWm²¹@»lī„¥„wƒ±šI@ƒšV@bl@kLUllUVVn@mmU„wX™ċbVb@VUkbmamšW@kƒa@™™k@ƒlaUa™@¯b@šmmwó@@lkXUa¯°›LU‚am„m@óƒkXUb±bU`kLm¦ƒbnVmbnVmô"],encodeOffsets:[[107595,31270]]}},{type:"Feature",id:"5103",properties:{name:"自贡市",cp:[104.6667,29.2786],childNum:3},geometry:{type:"Polygon",coordinates:["@@lIÞDŽbVŽš_šJVaUwš™nуV@_lm„nla„bš±„UVašnVxkxVlV_„`„wV„„LšlXnmnbš@WbnJ@nš»WaKl¹²ƒ@mVI@KރVlJnw@aW¯¯¯UmVanL°w@aƒk„mmU—xmƒULWxUUÝKōèU™KUƒƒkĉKƒL@ÆnX@x™‚Wȯ@Û»™nÇÜÝLka@b™KƒnUaVmƒ_ƒxkƒLX¦ƒJl¦ÅlVb°I@bnaUŽmlƒUV„UVƒIUŽ„Kš„„a@nml„„ƒŽnLl„našJUbV@"],encodeOffsets:[[106752,30347]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/tai_wan_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"7100",properties:{name:"台湾",cp:[121.0295,23.6082],childNum:1},geometry:{type:"Polygon",coordinates:["@@\\sŽ@pS}aekgKSu™SsMß`¡CqZ·be@Q^o@‹gieMp‹‰]}•}Ľc_Kk…{™ù“A¡r‰[uom@эĥJiq©mʼnq¯Bq]ÙYgSåk_gwU­isTE…“‘ĕiqiUEkue_‰OSsZ‹aWKo¡­q“ycY£w}‹ĩ™ĕS§Z©S™N¥SyLÑ¡±Ks^IY‰PdƒY[Uo†Fp}´\\¬\\j]ˆe܍ò‹¤¡–ā a\\bn™U㺹Ìs¼j®[cíȈEŽĝĆ`ļf¶Š®K|VØDdKGpVnU‚FjpH—F`†B’[pMºxÖjbpÎxp€¬‚|ΟÜÒCв®‚ÜAp„ZG~€Šd˜ÞàV¨|¸€`|Œ²tx~\\~|dFf^zG€ĄŚhœdL\\hĸž¼†ŠOªP®lV`p\\]Xpll˜æ¤œCpQ|oF}fMRi†NSon_²qämœM„NM‹\\•"],encodeOffsets:[[124853,25650]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/tian_jin_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"120225",properties:{name:"蓟县",cp:[117.4672,40.004],childNum:1},geometry:{type:"Polygon",coordinates:["@@EUDAEI@WNMNCBFAHFFNACDJDPBD@@GD@DIFFHEFGDBDEQOFG@EI_KG@OcJQM]RMEKBGPG@[LaCIICBWKCEEG@WBQHCDFD@HSLEJI@IHWECFGAAEKCGDBFCBSBIDCKKHEADMJMFABKOKEQAA@IEEG@GIQAEK@OZEESMOL“lu@SLUTYFQCMG@@SQUAYKAACA@IB@BDB@B@DC@@BGAEFAA@BEGKJCC@AGAIHA@@JC@QEIP@@A@EGIDC@O@C@@@@CJCWKABFLBBEBSQGBAAMIEM@AKBcJEN@BEBCFMAEFEF@J@BG@BFABECKFG@AFQ@@F@BEB@@A@@AAAKAE@GFGDECEFEECBKIKDELDFEDYH@EIACDCHKBEB@BAAC@ADBHABKJIAIJICEDGDCD@@A@A@DHCHJHDFEFGBKRKBGIK@GIMHSBCH_BOJECCJCFKKMD@DNJEDEGC@OJCJHRUL@HRJ@H[DCNKDZHCTFDHCFFKR`TANVDFZRDLFARB@HPAPG`ILAR@TERNDFNHDLCLDDCXDYbHF@FEB@LDDVE@JPNfXPINCVDJJD@NJPAJHLXHDNANHhB@DPNLRMTBFRBHHr@`NBFEBOCCBIAQJDHCHLHFA@HSDCRLFTB@HEFLNF@PELBDJALFLTC@EPFLLP@tUHQJDfIHGTB^JTCPDLKAIBATFPADIEGECEMJ@JIAIHGECFEAGDI\\SPOXAFCL@BQTQBBTMZECYGAHA@GJAE@HCAEME@IECFKJADDBABLTHHG@ILEAMNDJCDHEBF@@JNFJELDFKTOT@JETBFFHBHEHKI@@IJEJ@XKEOUMS@AF@CEB"],encodeOffsets:[[120575,41009]]}},{type:"Feature",id:"120114",properties:{name:"武清区",cp:[117.0621,39.4121],childNum:1},geometry:{type:"Polygon",coordinates:["@@FWôµ@IFCLIB@EHNBp]AGEAKAEDMGZKFGBGME@ILGP@HEFB@BXMEAHUGC@IHCLOD@X[NWHWPKAEF[@EKIOL@EKGBNMJ@EIEHKBIC@BAKMIACCFQZCF]DB@ERAKADIHGEIBCGIIECFaGLZO@EFCNGAGDGAKL@BMG@IE@ADSDEH[JGC@CGA@BMDeK@EIACFE@@GG@FIAMM@CCGC@EM@ADE@CFMAAGHBDKIEAJG@DOGCDEKAGIS@KFCHKAEHIE]BeKNO[IFIOELC@A]GMBKVYCDDgGAICARc@MW@AQE@DGI@@AQ@@BKBAIQQYEFW@CEADIGGBCEIiMEMF_LGEKMBBDWEBGRC@E_CHYGCH_IAED@FFBQh@FGJaJ}AHRAREF@bE\\C@CT`FHC@\\BBF@BID@HGDDJ@@FAHKBARECKDAZBJIVNHCTA@EREAMLHDAFFBVFFC@RNRETHD@FOJMACH@CAB@P@DF@@FGDWE@FFSIEMKQDYCCHKb^JADOCIDGNDBdBCFJB@EC\\A@BJEA@JAAAD@HHD@LFBCFF@BERDHNhZQHMBGHOACCEBWEGD@PSJKCGEUD@CINLFGHE@AJK@HDABBHTB@F`DBFLBBHEDARCFG@ABJBAPVFE^FBGLGCFG_BMLEXGAAFE@@JNRVJHFALFBEHQJCTbNDHCF@PlFLJSXCHFHfVBTNJ\\BPJXC^FAVNFCHFB@FFH@JF@\\ABCFD\\BDMCAAJKQBGAILOEGHILECQLWFENJHADC@QxNHFJNLDFA@CBA@D˜UÂmR@FBL@BD"],encodeOffsets:[[119959,40574]]}},{type:"Feature",id:"120115",properties:{name:"宝坻区",cp:[117.4274,39.5913],childNum:1},geometry:{type:"Polygon",coordinates:["@@TZbB@JHD@DODCLM@AP@LL@BNH@ETFN@`E@DNG@CHLBCJA@AICFKDDBKA@\\N@AFNAGRBFjFFFL@DHLBLFQPcXAZMJ]GAVHAIZJFNE@JpDRRDCLFDGXA@EFF@CFFPDfEBDB@DCHCFCJDJIJBLI@I@CB@@ADBB@FALADGDC@@H@BB@FZGFCCE@@FMLALJDAFFFEFDFCB@@AHCF@L@@BBB@BB@FC@E@@R@BEL@HEFD@G@AH@AIB@@@FEFEBALDDEFAFO^IF@JCBBFPNJJ@D@PRDCEKBAXL@BIFD@T@JE@BHHJORFDI@@B@JGH@@B@BDDLIFFHCD@D@DEE@BAAAB@DAF@B@H@NGLJLMRDNMfGIEPMI@GDAKK@KIDIJ@GE@CFDN@FE@GFEPGV@TCDFKHBBF@RW@DD@@ID@TJFKIKLI@EP@IGBCLAEKLEN@KSHIGYACSD@SEAMBBMGEBMQBCMIGKFB[D@HDLPHDBC@IFITDLG@IIIFGVBNJDLN@VIRI@YIAIHIC@CLKZCBEE@JECEIHEAKGDGECBGEEM@@DA@CCCBBEGA[GEDBBoNAAH]MKiIAWKQoIIPMFQAEEDMH@FMSUYIeF@EK@BIOEKJEBICFKaKPFAFSE@LWCCFMHDDEKESBOGBKIEIODLG@CCDEQCEDWEMDIEIB@EHGEEDAEAa@@HqDEJGF[AECCFa@WCEIKAAEQB@FCAE^YDERDDJBLNABD@AJGLJF@FNIAMLH@FPKLJ@FE\\BFOLGXMXW\\C@KPGD@JHDGVFBWN@AEAGFO@KH@JNFAHEHYLNHFCLBFBBHo^MAFGA@KJED@Jó¶EX"],encodeOffsets:[[119959,40574]]}},{type:"Feature",id:"120223",properties:{name:"静海县",cp:[116.9824,38.8312],childNum:1},geometry:{type:"Polygon",coordinates:["@@NGFMDATCNDR@CCbINEHNJA@C\\EEGVE@IhE–[˜w”epc¢·²›^QEKIEKIgiQDkehY£uSDBMkUDOJDHC@GF@CAFBFEN@C‹Q@BeP@@G@HD@@MHQKi@[IGCOCESE@GMA_OcCGDu`aˆ@VZzKDkJBLNXGDqKEWE@cFEFA@ƒISIi@@KMABJGBcMuFEzGVH\\ATSEUBeALCEMG@CEBUHUCGXaBPtUBBFIBFTDFF@DDKBFNGBJPHXDDMDCLJ^mBIHIL@LR\\@LCR[@@z@NFD@LLBNb@RHDBNTPT\\F@BJF@BXCFBHHBDLFB@HODADE@@JHVXCPDHCFTLBBFNCDCCCU@@GAABEHHZHBCAEdEjFDD@GfD@DXFCHF@ERFDLBH@"],encodeOffsets:[[119688,40010]]}},{type:"Feature",id:"120221",properties:{name:"宁河县",cp:[117.6801,39.3853],childNum:1},geometry:{type:"Polygon",coordinates:["@@BFLBFJXDb@DEFD\\BHEFIrC@Gb@FBCBFFGH@FJAJFNCXFFCRDCFDDH@CKJPJFALPHTALFCFGCENDDKXF@ETEBO‚bLELJDFALIPFAJL@@FfEZJTVENG@CNFFRBNEJOpJLRBXjJNLG^BBpMAAFC\\HHBAFDADDB@@CN@FFAHFDCHLHFBJGFCFUNKJJTD\\XUXF\\^F@DDDQXXBRLRCBDFEVCDLVDpUl@LEDJHAPRFGL@CETGPBTCDDVI@CFF@GFDCCVGLKEK[Y@MECISG@BKNSCGCKWEAaEBEKNGFSECO@GGM@GYI@DÅCMLHPTF@DJHAVVNKEGDETJ^[TJNNd@NOAMFYJ@@GFANDPEJB^aOadSTQSI@MHBDIEOKCG@EEFCKCqXO@@DMFENCDDHCCGJ]AKFoDaGGHYFDHKJiCMFGC@EQ@AEHGAC@IEAATKOHGIC@IXIFEoƒGE[JCFCDHNmRADFZMF[EEBMO{GU@AOW@@]ZeHBDEHBKEfQkuIWBs‡@EC@d[@[^EDMTKCEEcI@cDAB@FCBCACmOCG{PYHeBgPwPFDDALFFFCHQGSD@BHFAR[TaFYXMASUiGFL@DQNCJI@@D@PLDN`ETEFIGMCGBCE‘~CAIFDPEHGEQPHJADFJGHCJLB"],encodeOffsets:[[120145,40295]]}},{type:"Feature",id:"120109",properties:{name:"大港区",cp:[117.3875,38.757],childNum:1},geometry:{type:"Polygon",coordinates:["@@JFFL°_`ONJKDDFIFZN xlb~yFVNRŒrdJGzDPVFBCTNND\\UR@E`F@@Ip@IWGUoawOEE@ÏDgK{İEEMFëC—b…™@—KwOCDHHKBDJCDEEEAGHOABFABMCgDLSQ@CFEB‰MgYIDQINE@AUSwSAdYEHQMEyK[KI@GRMLE@@OqOoBOnpJ@BmEAFHL^FDB[C@BBDVFAHFJENB@sNEjQAMYsUgCSBGDJH@\\LjGR@NC@@G@HO@AfR@DŒM@EFEADBE@@HGDICCPlVANTC¤vgZlfRChjLJ"],encodeOffsets:[[120065,39771]]}},{type:"Feature",id:"120107",properties:{name:"塘沽区",cp:[117.6801,38.9987],childNum:1},geometry:{type:"Polygon",coordinates:["@@|ODHnPBDADEDA@CB@ddJFFLDNSFC\\]\\@@cFDˆ@nACOMW@M@ITURBRZNHNWRQšoO•j½f‡cqŸAqeiDÿÍyÓįFL|Ch@ÐFFxPpbHVJXo@@JCTR^BPABQA]^MB@bE@@FQBFVJRH@FXtPNZSBAja@@NƒDTŽLJrQTHFXZFB`"],encodeOffsets:[[120391,40118]]}},{type:"Feature",id:"120111",properties:{name:"西青区",cp:[117.1829,39.0022],childNum:1},geometry:{type:"Polygon",coordinates:["@@@LHAHRHATh`LHNHDG`HDGZ`D@FQDAHXFACNAFLVRTBFOfHDCVBFQH@HSXHEPFB@LDBF[bDbLFKJBFLADBDjLvCPEI]FGEIGCBEUSjcFiBIVWfaHCjN^HtwBBFGPBJGjFBEGECGDONMFAP]TDHQOWCMGAMHKIJEIGQ]aDlUG]VGEGDC„{PEbBZmE@@GH@BCA@FMQCFMYMJECELCMI_P¯`]R±œ¡¸od“f—x•\\gF@JUFFH[F@DIBGMMFaJDDQ@MCSDCBENMH"],encodeOffsets:[[119688,40010]]}},{type:"Feature",id:"120113",properties:{name:"北辰区",cp:[117.1761,39.2548],childNum:1},geometry:{type:"Polygon",coordinates:["@@ROHFFGCOJEDB’}DFHANDJHFEFSM_KC@O@CJ@DIRM@CEKKA…L…FKACHoLSJSIBETDJaEIIE]E]K[MYUYQILC@GF[MGNKEK@A@BCWECAIFEFYAGFOMI[OFuDiKACBCEKIAELaKaCE\\CA@KEAFOWGGTG@ERUACDeGEPSAUQKHE`FNjNFJADHHCJFB@DEXZFRRBJLA@AR@@BJ@CHF@BRX@@NQdDBBJhHCCZDLUNA^H@BKDPFEJ\\JMPfL^AJFFGLBDGLET@HJLBCFHDCPH@BIJFCLGABHNBDEF@BCN@@FHDDDN@BNEJH@@HF@DEJB@FfLNC@AHB@DHD\\IFGTCBCF@@JNH@ALKHBHCHBDMFEP@KYbHDEJF"],encodeOffsets:[[120139,40273]]}},{type:"Feature",id:"120110",properties:{name:"东丽区",cp:[117.4013,39.1223],childNum:1},geometry:{type:"Polygon",coordinates:["@@ZV\\N^L^FJFFJIbSCAFTJTIpKDGLB†E†KLBjHTVNBZWbE\\SBQGE@ATCRHDGEEKECBECxOhOfAZGA_YEEWSGqRKIS„C@Mb@BiTAMYsOEWG@IQEURA@EF@@acUOXQRYCUDCHDTEF[SUEgAYDcVGJM`iAWDWLQRMHUHgDsDBLHJFCFDFGHBFFVEAGHCJN@RJF‡PIhBD\\FENCPWA@LFBAFHBEJUEARCDIAEDQBRNa^"],encodeOffsets:[[120048,40134]]}},{type:"Feature",id:"120108",properties:{name:"汉沽区",cp:[117.8888,39.2191],childNum:1},geometry:{type:"Polygon",coordinates:["@@LMEI\\MTABKN@FCDMH@COAcH[AoēA™M¡Wa[Meq™pQRMXMGQYQASV@J@NNXDPmBAtJXlveRLFGACFGAYf@^X@BPV@|HNPFA\\FNEEYBCnQGMDCDE\\IHFp„EFWJ@JJDGHLPBSFB@JBDGHBFR@@FHDNEjDLICGZEHGbHpCLE^BHIDDCGDCFMNE@CP@rWLDEDFFH@"],encodeOffsets:[[120859,40235]]}},{type:"Feature",id:"120112",properties:{name:"津南区",cp:[117.3958,38.9603],childNum:1},geometry:{type:"Polygon",coordinates:["@@TLv@CNHFFBHGZFETNPhCVGNGRQXKXCjBN_HIdUZChBVF\\TFECSDGVCZDRQPWdVNA^]RBBAAOQ]DSE@F_Q@[VMCSMADUECOHycI‹qMQEU}zkaŸwENRDENB@ADG@@HF@YnaAOFƒ|CDFHUHH^kVbCR^JHIFLJNGHBDNPXGRSCO^EBMNCPDHHFAFiEIHOAEH"],encodeOffsets:[[120045,39982]]}},{type:"Feature",id:"120103",properties:{name:"河西区",cp:[117.2365,39.0804],childNum:1},geometry:{type:"Polygon",coordinates:["@@d@hZNFdcLYXKRCtCMOFSYEGHEAGEDMu@SKAAsx]GMTGt"],encodeOffsets:[[119992,40041]]}},{type:"Feature",id:"120102",properties:{name:"河东区",cp:[117.2571,39.1209],childNum:1},geometry:{type:"Polygon",coordinates:["@@ZBVFFIGABEEA@KXBDOFM[EACJgˆOIE@QIMGDBHUFEEGAEHECEDGIAKQDWLKZcdQPEP@FOFBJTJ@HNORJf@DBCN"],encodeOffsets:[[120063,40098]]}},{type:"Feature",id:"120104",properties:{name:"南开区",cp:[117.1527,39.1065],childNum:1},geometry:{type:"Polygon",coordinates:["@@NMVDCG\\E^B@HlB@YEDS@C…HsNSiMGDebUXAJEjidVTAFHDFJ"],encodeOffsets:[[119940,40093]]}},{type:"Feature",id:"120105",properties:{name:"河北区",cp:[117.2145,39.1615],childNum:1},geometry:{type:"Polygon",coordinates:["@@DBXFADB@L@LFHM\\NHED@JKZRb]QMRAFCJBDCBQYADMCAe@QIMP@GSIAIPE@E[EGH@ZEF]^HJAXK@KF"],encodeOffsets:[[119980,40125]]}},{type:"Feature",id:"120106",properties:{name:"红桥区",cp:[117.1596,39.1663],childNum:1},geometry:{type:"Polygon",coordinates:["@@J\\PNHEZBFEJELEL@BWGI^]FEkA@G]A[FDHUCMNEHJ^"],encodeOffsets:[[119942,40112]]}},{type:"Feature",id:"120101",properties:{name:"和平区",cp:[117.2008,39.1189],childNum:1},geometry:{type:"Polygon",coordinates:["@@D†T@FCHG\\FFOROMEgYc@"],encodeOffsets:[[119992,40041]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/world_geo",[],function(){return{type:"FeatureCollection",offset:{x:170,y:90},features:[{type:"Feature",id:"AFG",properties:{name:"Afghanistan"},geometry:{type:"Polygon",coordinates:["@@ࡪ͇وŐǬϠڐŶӂʮǚڦ۾njƀ̚ІɣʪҴMوǯʲĹ،˒˰Nj˖ϪԈiżŬĘͺβ̈Ҕȏĝʱʪ¡ý۷ͪ˟̊ǰώĊԼϖׂ×ࢀAƬʋӧĥяƹ७ĭࣗǭӫλȤΣĪллΛ–͑ɳ̡ߛ€ͦ։՗ɅΥԕ²ԋ͡ɿ̳þٝŋğɻسDҵӇ‡܍થΓבôǝȁԇņ࠿űටіހހåզُƚßՔ˟ڢάҢιŮɲؒ΂ਸ"],encodeOffsets:[[62680,36506]]}},{type:"Feature",id:"AGO",properties:{name:"Angola"},geometry:{type:"MultiPolygon",coordinates:[["@@ȸصʌԋȘ˕͐ѯ֊æˤŠҬşŲɀɂӨԶ®ƤіHñ̡৴RfՉǞ͕ūԑÖԫ˪̷­ৃȼüκsԴŴϦ¹ĘʹĩСƨϿů̿î́ყZᦵ֤ۋպԽ໳΁᎝Š׋Ж₭—ŵÏԃϞկ~ԉƝЙDžÿՈŜ݊̂ޒªΰ˚ݶȨΆӘռːϐĘج«ӊʣ̜ɡԚȵԎ®Ǩʶͬʭ߼ǣ֚сՐĄǎΌŔʒg̎ĸៜ["],["@@ɉėɣلͼδʪƘ̀˽̩ǯƍɍλ"]],encodeOffsets:[[[16719,-6018]],[[12736,-5820]]]}},{type:"Feature",id:"ALB",properties:{name:"Albania"},geometry:{type:"Polygon",coordinates:["@@Ń˷ŢέΒȳiə˗ŧ»˙ϷСƛÐgȂү˰ñАîֶŖʼƗƂÉˌθаÂƿɨôǴɥȪďȨ̂"],encodeOffsets:[[21085,42860]]}},{type:"Feature",id:"ARE",properties:{name:"United Arab Emirates"},geometry:{type:"Polygon",coordinates:["@@Ƭ¤ŒɱڂƂ۞uԖ{ֺ֪ظՠՎԮdž˹ŖڑѕGçճƪŝϝǑE΅ʓΏuͷǝDZᡋъ͏࡚Ț"],encodeOffsets:[[52818,24828]]}},{type:"Feature",id:"ARG",properties:{name:"Argentina"},geometry:{type:"MultiPolygon",coordinates:[["@@ߗ§ѓ̔ԑx࣑@Aሞ͒ϵрؿનԋ୲ȿϙп"],["@@Ӵ؇͠ڰॠ“ƊǷ໶ോۊŷਆاࡾ͡Ŧχࠡ౧ࡒɭ़ŷڔƈނ٢ƎݐжLjфӝiڣۻҩ֟΁ॅࠃ૭ଧȽڥɣࡹT࠷ǽȇÝիËѫ੨ܙŗ׃Հν§Ч߯ઁఛ҉။ǩउĎǰԅǣػƺщԋ̏ࡱř̪͕߱ɗŜ࠳֨ʧҠˆʢѧޛʻڭԹūࡋȣ҇ߏEڃљʋؿؙࠞߦǝ˿ݭ঳Ӄձটލͧ΅Ͽ˔ࢍ֔ӡΟ¨ީƀ᎓ŒΑӪhؾ֓Ą̃̏óࢺ٤φˈՒĭьѾܔ̬૘ěӲξDŽę̈́ϵǚˢΜϛ͈ȝॺ͸Ǣƙ਀ȠࡲɤݢԊ̨ʭࠐEޚَոo۰ӒࠎDޜɓƶϭฐԬࡺÿࠀ̜ބռ߂צԺʥ͢Ǭ˔ඔࣶд̀ࢎĹɂ۬ݺશȱ"]],encodeOffsets:[[[-67072,-56524]],[[-66524,-22605]]]}},{type:"Feature",id:"ARM",properties:{name:"Armenia"},geometry:{type:"Polygon",coordinates:["@@୞ƀǨə͌ƣǛɁ҄˽ʁˋΦɫϘƏl׋̣}΃ӢHżχCʝɤǩuͧʖرȼĄФƛ̒"],encodeOffsets:[[44629,42079]]}},{type:"Feature",id:"ATF",properties:{name:"French Southern and Antarctic Lands"},geometry:{type:"Polygon",coordinates:["@@ը˃ߐĿˆDžɽϣಇÃq҂ŮΎÊǢ"],encodeOffsets:[[70590,-49792]]}},{type:"Feature",id:"AUS",properties:{name:"Australia"},geometry:{type:"MultiPolygon",coordinates:[["@@ߺ́ҜŘپNJԎÉÐঽ˽́ēگ̉ɰ׍בǧ®ԫ€ԭܘŗֈӝܸtϬռõ"],["@@̢ڇբ̈́˦ΡЖ͟đϋǴܛŸнɄĹɬܕąѥ˖֭࣬ѭצЋ֞λŋȯӔՃࣧ͜ͲȂ;ηȴźƢࢹ׬ԩϸ͋ڀڹʀڭtӏËԳА܋µݓơϵɩݡjӕǕ׻χއثЭ̫ٱ˫гʝܧ͕нɅػʼnׁªˇӕ̇व‰ޡ·ϫ͙ԕέ۟ψԥƪżѬҝǃ݁؉ܩɪӉƄӑÔ߿ʐիԮƻْțьЭ;߱ĸˢРȯزЧ׉ݝƷѮҬŶӞ͘ЬãجہܑԿ˽͏ڛٽΊ~ҀԿ،ѹ̀ǂȘઃԚןz߯Цຓāછ̝ख़˫ߡÈࢻљܯȗljѱ̳Ϳ܉qՅõݑƶ׿ğֽԁ҃ʕœуʁЗˋؕ֛Bࢽ՜ҋDŽlӖкŘƚȒ‡̠ĺאģӼѻࡖƏӒ˜ӎͭնsʚϋͰĽڄӓڔřΪτε˳ެиʑʞ͗aјеڎă˄țʦĠӠǢȸŘрęӮΎ؀Úٕ΢׀ۀˬЦΪٜ̰ϤàɴĻڎ̺ԚĤŶȀɞüҬoࢨʖҚώɊ҆ӲѐœͲvҘט܎ΠܩΦǚ̗Ј˂ТψǻĸٖҠаȮͨцƜ`ɼτĭdɂτŦОŔبϫҲӽՂMՖÿDZҦДڪϜɘſȾκӒԘ̒јıۺǂeі؛ˢ҂Ū֎ȻҀ·ۼɋʈĐԶʵӬʊ͂ñȠNJϬеɡ͉҇ͻ˿ƒĮͱʙп̗ЭÔʁڜҫ٨ˏѠ́؈ӻʂBѰɍŶʷߤ˵ֈ˼ǐҊǠόľҤʰڞŝОÔʔīӔŌنLjǠŽˬȮѾdžҦtʈ̸̾ʂЩÎՃȾķ˜Λ̨ёÚӇ‡̥"]],encodeOffsets:[[[148888,-41771]],[[147008,-14093]]]}},{type:"Feature",id:"AUT",properties:{name:"Austria"},geometry:{type:"Polygon",coordinates:["@@Û΃ӁCǎǻ˧էLJƗܽsщȏۛÞயɐȉ̊ࠧƣĭDžԗŢѕxϝƶźȴƬʪ²ьɹŤɜݎ•׸ƮЖ}ˀǣþƜšո̠ń̒ϰز˓ӀΆ̐ÚٶʱЂªϰǁãŃČ̅"],encodeOffsets:[[17388,49279]]}},{type:"Feature",id:"AZE",properties:{name:"Azerbaijan"},geometry:{type:"MultiPolygon",coordinates:[["@@ʞɣψDGŻ΄ӡֽŒщϰƃ͆Ǫv"],["@@ϊËƞɈԈͺѴѵђ׭ϺŸʸɧۗãƣٵƟ̭̍ȝvзȽ¥ԻѲ̂дʝʚ̿×যإk׌ϗƐΥɬʂˌ҃˾ǜɂ͋ƤǧɚȶƎضʍҐ¹ŘIJбҔɔŚʀ…׀ԙ"]],encodeOffsets:[[[46083,40694]],[[48511,42210]]]}},{type:"Feature",id:"BDI",properties:{name:"Burundi"},geometry:{type:"Polygon",coordinates:["@@Á০ɃϢԜßʲӎҀŸͧǸȏT˗ȹǭ͛ѫ̧̥΍Ÿ"],encodeOffsets:[[30045,-4607]]}},{type:"Feature",id:"BEL",properties:{name:"Belgium"},geometry:{type:"Polygon",coordinates:["@@؜áުǪՐοҦȝħ֧ɕĝһܿϦћßדІϷͶϷ`ũ̒ڪǔ"],encodeOffsets:[[3395,52579]]}},{type:"Feature",id:"BEN",properties:{name:"Benin"},geometry:{type:"Polygon",coordinates:["@@ۛįȹ׆žኞǛǦЮ̇̌ʱʞņѶ̀ĨǠξЪĀȀʤˮʘ̠F٘ә˩ȎӽǓͷĘɧСԳʵʳǁՉt՗µണ"],encodeOffsets:[[2757,6410]]}},{type:"Feature",id:"BFA",properties:{name:"Burkina Faso"},geometry:{type:"Polygon",coordinates:["@@ֹɐϽ‹̍Ƀϗǰƥ˦ϙǾÅӦɮΤo˴ښۢŬּɲȴОœΚǢŘɎٴϖdžˀ޼ΒҦŢɀLJՠJáСŔϣӀչ€НॺȏmֻǿʣЩÿǟν˿ħ݁lϳâ˓ƉωÖร¡qӉŘم"],encodeOffsets:[[-2895,9874]]}},{type:"Feature",id:"BGD",properties:{name:"Bangladesh"},geometry:{type:"Polygon",coordinates:["@@i׽̉ŶÆگʉѬµєDžКΕӨޟ’ü΋˃ҳΧǠũƵʃĠ͗øŽۖ̅لƜԒԫɤȆ̪Հ̼؅Ѽ֮̔ږεВ£ô׏ߞřު^Ӟƛϯ܅ϕµʷӍҢѥƎ՞ɶFѶ೯"],encodeOffsets:[[94897,22571]]}},{type:"Feature",id:"BGR",properties:{name:"Bulgaria"},geometry:{type:"Polygon",coordinates:["@@ʎΉ͚Ö٦ſ௾«иɌবȜ̩ؒӴĕѥΏ̫׹˔ӏܣŒࡥ˃Uлޅÿס̊ڧɱة|Ñ֊сːƒŢĝĴƘˌ͌ˀСδ÷̬ȸȐ"],encodeOffsets:[[23201,45297]]}},{type:"Feature",id:"BHS",properties:{name:"The Bahamas"},geometry:{type:"MultiPolygon",coordinates:[["@@ȵ£ɇӜ̿ʐǾՔʨ‘ۣ̎Jӥ"],["@@ࣷƅÏ̴Ђäֈ{~ɕ"],["@@ƟׯƷņ`ѮϓͪCĪڐϗ"]],encodeOffsets:[[[-79395,24330]],[[-79687,27218]],[[-78848,27229]]]}},{type:"Feature",id:"BIH",properties:{name:"Bosnia and Herzegovina"},geometry:{type:"Polygon",coordinates:["@@̦FȿσМ͓ūЃȡ™ƽû˙țūҥݓ͈ͅΘ͋Ȅϭ̾ǻʺЩϾǬΒ̞ȕǼǨϾnܠƓ׈\\Ϟȅ"],encodeOffsets:[[19462,45937]]}},{type:"Feature",id:"BLR",properties:{name:"Belarus"},geometry:{type:"Polygon",coordinates:["@@߼Mࣰ̈́ȚӄېːÿϔԜƚ͖ࣘࢮɁŢȻѲĴࠒȧĊЁǷɧՄս΂Ƴ»Ʊ֦Ʃʎɡ͝ǿڳˆljÿȠ˧ȸ՝ܝ¹ʵȁÃхͭĆݷ¡əȞ̿ƥ́ŨڍjफȬࡕàٱmҡɩГeϐʷϴԌǢLͰɷ͌™ϊ"],encodeOffsets:[[24048,55207]]}},{type:"Feature",id:"BLZ",properties:{name:"Belize"},geometry:{type:"Polygon",coordinates:["@@OŮĸžƴı̞ԔDŽZHūDŽGaɭƋεôŻĕ̝ÀăīщǓɟƱǓ̅ʣ@àॆPژ"],encodeOffsets:[[-91282,18236]]}},{type:"Feature",id:"BMU",properties:{name:"Bermuda"},geometry:{type:"Polygon",coordinates:["@@OEMA]NOGNG\\Q^McMOI_OK@CQSGa@WNLVWHFLJXVFGJ`ZRTDLeeWKIHGIK@@[MQNi`]VDTBHCJAPBJLVFjT^LV\\RJZRn^RH`TfJjZHHOTTFJP_NOX[EYQQKMEJOLANJH@HQHAARF@ZEPS[U_IcRQXE@EEKKOCGGCQCOGISKYGUC"],encodeOffsets:[[-66334,33083]]}},{type:"Feature",id:"BOL",properties:{name:"Bolivia"},geometry:{type:"Polygon",coordinates:["@@य़”͟گӳ؈વȲ۫ݹ؅ŗ͡୆ҋऺˆ߾ѳ΢ŏ؆ЫֲՌ࣢αۺȖ˰ƭ̶͠рh܎¤נǸ˶ܩഠزíѠnȈʪ݀;Ѷ͂સƚęؽļ͓ãࣰ֛ݫऴƑ̻ͦ֨ǕΐʑՈTӦʟšӟǐʕZγʓa͒এྖ“ūӟĜͧҞɽȤԹƫڋɯρĄӏʿǥaʶ޳јޭ^ัʓЕ݋sҋͥ৕ƉǸ"],encodeOffsets:[[-64354,-22563]]}},{type:"Feature",id:"BRA",properties:{name:"Brazil"},geometry:{type:"Polygon",coordinates:["@@૮ନॆࠄ֠΂ۼҪjڤуӞеLJǒӜŖӼBҦ̡ƴ̿Ƌ̻œį͔ýޔƿʤ֥ɪ΃ǏࢱLjÈଜʝҴˀǦăӐɰςƬڌȣԺҝɾěͨŬӠྕ”͑ঐʔbYδǏʖ™ӠӥʠՇSΏʒ֧ǖ̼ͥळƒ࣯ݬä֜Ļ͔Ěؾષƙѵ́ܿͽȇʩџmرîӃƟϡĪÈ౨ۏӷݏv҄ͅ֏¶DzΰұԞΓݴɜƶA΢ԖʎċҔɊ̈Ôϼ०ֲێNJŔŴݴŸϚᘰpθſӔύ̬LؐӀƒǚē†͐ӯĔYՀ࿖k˦̂ɸˉǐӷǂļҨѻٸÆnjʲشȞΊƐĮΤ׸ʆ¯Ǯ܅ðśՊ’֞ϓɒǀþجŅڜȿʐȤ؀žल̮͎̾ŏʂѪšȜȗʼnσ̀ŵȖϷɷ̏ƅ܏ɌыÔϳԬϿЮ¥Ģǒˆ˜ϠƦ˚ɢҬíȲŠҚçøǢƗǘĎʐͺõЈĒӔDZξǥʺɪȊ•ŘɿДÒ͒͊ʴؤӼޒ˺¢ȺҫҼ฽҈Ƒxׅمەʾʩ๤ƁŠࡃٔր੐̟ඊԡШӱƏҫ঎ʶ࿐ѹఴŽఔ۝੸व٪ʏܖ‘̦˅˸੭Ɣԗͯ൹ёշஅୡՙोثܯȿgɻءÒ༽ɹಓęօˇͧƫ૱࡛઱ƛࢁڹηȟԋ࣯Fೕ͓סύवʗ঩ڝ܅࠯ũطƔҫƽࡓȏЧחҥट๕݉ڗ֯Ͻϥߛ։ӑɷӈψЊӟֲڇҬࡹՠ̹{ࡅٰձę"], -encodeOffsets:[[-59008,-30941]]}},{type:"Feature",id:"BRN",properties:{name:"Brunei"},geometry:{type:"Polygon",coordinates:["@@ͬ̾܎Ң›Я·՛Б€ǭ˹ϥѦ"],encodeOffsets:[[116945,4635]]}},{type:"Feature",id:"BTN",properties:{name:"Bhutan"},geometry:{type:"Polygon",coordinates:["@@΂ˍÏԩۇ{ۿÈՇſޅ͊kǚ֌زҒɈ׸șѺqπɥ"],encodeOffsets:[[93898,28439]]}},{type:"Feature",id:"BWA",properties:{name:"Botswana"},geometry:{type:"Polygon",coordinates:["@@ǜƭ˄ӡॎइήĝD̑ʚՑٰŹ՚ϝ஑أݭع˩֓ʧ́ҙãƧГďʽ՝țہ¤БɾΟĸХșȵГЉʧпϑ׻đȇ̐üԠӽߚɧŲAរࠤˆ|Ჾش„ಖ͎̎΍՜ͤʮDӂȎưÙ͔ڣ"],encodeOffsets:[[26265,-18980]]}},{type:"Feature",id:"CAF",properties:{name:"Central African Republic"},geometry:{type:"Polygon",coordinates:["@@ۜÚƺɎƔgȾȏ੔͐Τ͠Ѭ̌ĉ̐ʂüߺ½߆ϴ؊ࣺю;ՐƜĪΫӜԿF΃ƋΓÄʻ̆ʍٖοҢͻT˗֠ѫΖεɆԋغͩƊˉˣęաpكĘ̹ïųȱ˕}ͧDzधнϥĎŗÝʥԕطǐؙĊ՗̴ۓ˸҉˓͛яùדգ²֩Ƙԅѻѯޱėʐ›Ϧϧ˔̳Ѡï̠ЇѮæʢċΞÞٴȬƴц࡜"],encodeOffsets:[[15647,7601]]}},{type:"Feature",id:"CAN",properties:{name:"Canada"},geometry:{type:"MultiPolygon",coordinates:[["@@؎œުxЯ΅̵Å੥Φȿˬ͆ʸ̎С"],["@@Хcઝ˂ޯІ̄î૆Ɂ࡮Η|Ʒ"],["@@хŝൡϢʥ̘ݩ̌Ưʈࡻư͕ҜðȚࢨǿԨŵ߄ė˺̃дЋ࠼΍Όҩ"],["@@։ܿո˴֠ǵ̏̉ݚɱϰȴ࠼ʵʹ؛טƞņѿʼԷΝ݉ϝ‹փǂǾیɻńইܯԅ†צЂ߫Ȳࣙ¹࿅~ŹʠԼ̐λɬ۸Ԓࢄ೾Զӎܲ̂϶™Njɫ҅Չ"],["@@@@@@@@߰äʥ॓ܶگͯDԑϪ̵ϮчʾƻτºˎЂŋ"],["@@͡ѳχîəʢ Î͖ʦΆkɈǣ"],["@@ঝҧץnǿɪزϲ଼SiǍ"],["@@ƼυјżӨɗं˽४ʽöЍؤÞ׶˥ݙ˃ಳȬҽϚ࠭ҁ஡ѣ˿Ӯଗăܴдņڌ˺ޔ؈å"],["@@ष¥ȿЪΦҼޖŜپɷXέħřձʛ"],["@@Է̍ଉʬۃğଫϘ݊ʼטζࢼʃԎƯʦDžԠ͍"],["@@G࡭૰ڄ৐եʡح߾֥࢚؈ؖܨ°ईஞÝఔūૼй¼зس҃פ҇ŃУ࿩חୡŻࢃʨʣуߵ۽ʓοই֩ளÇڏΡÇձ঍Ŀਉڻ࣭ु͙ڏ±উంƕϜ޻ϼّ୲ǔ༞εࡀ͋׺Ѕ੆ɳࢸΟ൶µࣴąƍܫʼࡋ،ळనߗ٨˚ҔࡺѭೢףѶഎЀ॒לҮהç֭֘܌৷لলࢤνݾ˫ಾגȘ෸ɫࡸć۠ɚ޴˵ਚӣʮ͙ຄÛ}۷˪ਜ਼ގſ،ӵ௖Ұߦऔ֌ϸٺݣબੳघ৙͵Յ૤Ӂݰӓംɏբˍͬ܃ټŏͶͅÖऻ؍́׽̏൯̗੏ۑ෇ƋᅛǮుPࢇÍ۱׽ੳω௉૗ॵޡ܌Ɛഘૄᄈ۪సČݔЫߍ֟ˊࣟ˜هતп൸ŨࡆीÎ؍ժ̥ਣսᇷԁ࠯ͽय؁ٓ֍܆ฤ۞഍ƒणĹջӆBନύʐ֛ƛ˧ɚٙىʱٹ̕ϡΥŽˏ¥čȹ໽A౥MϛƷࢵ؃Ŀßˍ͝ޗBࠛGϛƅƊǑøʯeďષлࡽſউ҅Ɂ@˷ƂĥŦnĔȂ̎ЂҦʘӺǙܴǵނ࢕ЂľƬūĺɳ@ǛƆ¥ȤǍēɥ€¾ĊȡĊćɚٵːڹ˪ࠑ͘߁̨ݧʃ˝Sਕɔڻʼnࠁʺ࡫Ɔו¾ʻƜƫҤ˳IE͓჏BᮝA᭯@ᡃ@ᠿ@៙@ᢡ@ࠛ@᠁@ᛷ@őF྽ࠜ׵δຽΐҳݖŤԨ੻ΨƧڴ৭؎iѠҲКwՌෙ՘࡭ॠՁ׾ޑϚ֣ΈѿѢࡇ˕ࠇҹݛւדπࠋɸࠟ|JⷎNᷲ༬ȭ೘Й࢘û݆ΖৰˀఢĹ఼τ൘Ⱦ־ΑظȠȊЄ׈ęෆݫ૦֬ŖّਔƐ͆ʖৰ·౼Λዸ̭ୄƛࠖÄଊэ஁зຶǷᗘIJܒƦࣆԋࣴьࡩΦժ˼৾žڦĎڴȩࡊҗरä๢ϛಬƄ௬oĭԺݞƦದ˵KߑՖڠڰuϞࡊ࣑԰কͺäघশ؎ૌƇࡘχଞॅݗЭ༠ǝ"],["@@нϿሎʬୠщॊіސ˟یࠛфΒ׭ࡰ݊Ŭ࠲Ƈश͹ՆࠉʼץථеະЉĝσൡã՚͓˱ູ̯Ƃฃɪঋ»ཅ˷ᒃű๻āҕІଫɮݙģਛږ֔ĚಘƜஈ›રƦྷȞᅗã஗jѷ̴ዎͲಗ[ืɚ۶ـגͮᖬԠ࡬Nj"],["@@݉ևಹך˸Ş૸’ٔȁ"],["@@öɵࢿ|ࣟjࣿőʑ¼ऍѾ˜̠ИÈነěชң"],["@@ڎԽޤڴᒆΈ෺ࢅůջဒʒߒͮሀыୄЏŊν༚Ȑ࢘՗᎐ܸͩ͹ߐ޻໯ϹጘչೲȁீޙೖÇʽכ้ঋਗά೓߲ઙĿŁӕࢪӥଜϯΌɟմࠩ́׿੕ɪᑏڨஎܣ࢔ԕƎ̉ᗱͲᅩӤ৳Ц̌ʂయќ௥Т`ʑᝡƅ܃˾ֆؤ཈dႸņ˫̜̊оચࠊɳϊ͕˾౿Рၳ˺՞ɆࢷԺ݋´ڏ˸҇ʛ຿ŅᵝȈᄫʚഹŴۥ̐࢞Ϧ஝Hˉ࡚٦ݨࡺ΄ᓪɢأի"],["@@৊ǯຄńɖʑ޷Е౜αƱݳ൝͗߳ê׉͎ᐡٮjˎ႖ĽएռসР"],["@@࣓عय़ŒԽ݆`кѮΨ࠰ɮც‡ྈȱళݟ৉Ǎ"],["@@ᕍЙѷςኹѺήΤ׌ؘܰւࠑԦᭊƀ஬ǧᒰ±ࠄʑࣖΝ੍ɃᏝןਫי@ν"],["@@ҙ͙௝Øৱɖ҂Ϛீɨܼ̬̍ˇ"],["@@ٞϵ€љϣس൱đࣗƈjӬ൝ÝÁٮࣜౌ˺ஂµÜŎ"],["@@̙͢ݠƘࢢ™ƪЩԝЋ᭗Žᑯη౩mŅ˜პϊ④ij୯Ʈପࠐ߈ɾᛄ˳๶ӻฺÛறߨޔ̪ࢄĭ˲Џ"],["@@ढ˓ကFܨˡȑ́८ȍՔȧଊ™௬ë೸ǼႊðീÏ࣒ͅȊ΍ԽɟభǷ੽ĸᜱŻႫcഫļᖁ˔̃ҦĹжࡇξ჋ĺঅʼ͂ΈႾÁ"],["@@ŗ٣٩̇޹£༝Ϋ഍ŹଗǼ@@ුؼႮծಆ[ସŬ"],["@@ϣy༽Âɡɼၜ]מƻĵĩ"],["@@༩ʋఝ˔ڼˎ௮Đஈſ˩ʥ"],["@@৽ǏඉBbŤࡴʦҌદǝ"],["@@కǥۃȚέ͂áΎજ‘ӪÅ৐̇ɫ̣"],["@@͜Ε൏Ĥ൩˘ሏŒߺʠ৫ȮÕ͐࿶ŕᗢ̫ٞЍ"],["@@০˕ଽʟ༇ك๥Óდņࣗ΄^̦ڔɢ໡Oए˨ՑϠ׌ώ׊ʲࡴÎοȖዜ¨੶҅මǵ൞ǃڒև"],["@@ᖢßᅮŅ໤ɫ™ɡᏅη᎙ǟݻȉᆬJጡԙേʃ෯ۇႿƓՙǡᡷěୈĿׇƭ۞бߙ˽ಛʃЋ͡୫ʣŞȏ෬lȳᖟԋᔧɴឿŻధĸཟªĿЖ༊Ȑб؆ԢÐᖤγ଩բഹLjڼ͘๰Ȩʄ̊஋͠ΥѠᘞ—ڒĝ಼̪ቃĬ᰽Á๣˸۩ͼগʘȁ˺దLjঘ‚࿲ƌం̺ਬ©ࣤɽٔҒૐƈບĢᢲ–Ҁĝ᝚ƚᆔÁᆒÁ"]],encodeOffsets:[[[-65192,47668]],[[-63289,50284]],[[-126474,49675]],[[-57481,51904]],[[-135895,55337]],[[-81168,63651]],[[-83863,64216]],[[-87205,67234]],[[-77686,68761]],[[-97943,70767]],[[-92720,71166]],[[-116907,74877]],[[-107008,75183]],[[-78172,74858]],[[-88639,74914]],[[-102764,75617]],[[-95433,74519]],[[-123351,73097]],[[-95859,76780]],[[-100864,78562]],[[-110808,78031]],[[-96956,78949]],[[-118987,79509]],[[-96092,79381]],[[-112831,79562]],[[-112295,80489]],[[-98130,79931]],[[-102461,80205]],[[-89108,81572]],[[-70144,85101]]]}},{type:"Feature",id:"CHE",properties:{name:"Switzerland"},geometry:{type:"Polygon",coordinates:["@@ƫŹȳϞƵіwá΅χƙةŀǻ͹ЏơƄһ˵Л¡αǶ˽ςБſ^ϠؚҾɈϤûɲƞ܎MǦǼ࣒ʱ"],encodeOffsets:[[9825,48666]]}},{type:"Feature",id:"CHL",properties:{name:"Chile"},geometry:{type:"MultiPolygon",coordinates:[["@@Bም࣒@Ԓw˧ͻܛʻЭ‚ӻä؏ʨ࢟ŨੑҸ࡫Ҏୃशۘǭ୼֗૜̟ѢϬ˘ֺޠΎװı"],["@@͢୅؆ŘĺɁ˿ࢍࣵг€ඓǫ˓ʦ͡ץԹջ߁̛ރĀ߿ԫࡹϮฏɔƵCޛӑࠍpۯٍշFޙʮࠏԉ̧ɣݡȟࡱƚ৿ͷǡȞॹϜ͇ˡΛ϶ǙĚ̓νǃĜӱ̫૗ѽܓĮыˇՑ٣υôࢹ̧̐֔ÄgؽΒө᎔őުſݝPЙȷݷ̣Ɖ޹Σoॅ˚१ג@@ਲ਼ӔˁՒʄӰх֒Ņ෤Φ߰ࢴٰౣʔߞݒ˸ඊत̏Ѯგ֝ɠʿ਻ՉŠ˂ல˺༒ϮָʍࠎéूΠ„Ԩപ׈എΤబȗ఼ʤۚĵਞӮਆưྺ˒ნˀሤÕ൘ǩ஄ќɌɦњЬֱŐ؅ѴΡ˅߽Ҍह"]],encodeOffsets:[[[-70281,-53899]],[[-69857,-22010]]]}},{type:"Feature",id:"CHN",properties:{name:"China"},geometry:{type:"MultiPolygon",coordinates:[["@@ԑഓΫۏѷ܂ĩخӶࠜڦَϨʡƣԓ","@@ܩЗۏʺyܢаϠࣾɾӚoȊ͍σσșӟ"],["@@ฬˍ঺ׯͼ߃౨Cܰͨ൸ʜѳݱ͙̭˽ः֡ࠇ৵ƪܝ̑ɜܙť঳ѕwLяթӺͯһಙαƀѹܩŒЍ˂ֽ׭ऑҋۃա୭ʑأϽࣝɭ҂ϴǭ͞ږ֠ѹѲܷ̓ॉ׏ԫթ࠙¡ѓϻѸ֩یƏ„ϕڔʕस׶ݚ͝լuƌѱஓɻϻҏࠇућיࣜҥͦࠝԞޓ֮٥_دՅɯȪ҃ӶʻŻۃɇڗҷ÷ؗࣧڹિޭোିޡୟۻृĩԣύ̃˘Ӈй୭сࢵŹ˻ࢱҭ·ə؎Ȧ͘ૻːЇƍࡍɔЏ΀ƄӜޏƶЙܑ̀҃ࠇīڡJ҉ȳѥūŶ॥҃x÷Ȣ}Ύ؝ʓεƸر͂ʔۤՏǎȧޜࢱƓĴাߔۮ”ۚ{٠νȨ˭ӶӭÙࣟŲ˴ΜϿԺ׳Ν۵ȸॷ՗އسڳĿοɦѹr׷Țґɇ֋رëڌԟǭওĈोȖڿτٵǔ˯ЖҽŦࡓոکʴΑȩଢ଼טࠛՒɽऐ׾ő‚іͭјĐۆࣙঠ൧ͼʝ٦ةϼƫʌųӎˆ͜ԛȔ˟ďɇިʈȔśȠߤЈ׈ǐࢸő͆՜ંIJͮ̚೜ҔŠȐãӐּɔݱฦဘͲјȈ؆ຒဠˡҲϞ¢ࡆۦĀٖ֔͢èɚו۸ѽப̿׆ڱ͕ঙ̢ηূƝଆŝ৪ԻԲġϤޟӲӿऒnჄȉ૤Ŝࠦůఔԛ৮BόʽঐҌബ̈ాŒঘ̒׾҈ך˰Ƌˤˍ͔ѴըӀùࡺǝ࠸Ѿ౲͚؞֊נʆ௠ŐڐĥĠ̘ݿזګː٥̳ࠣžӇŃɏΆר࠾Цو৚̓ஆՎQτݸࢾҲːWҪңȦۜмਰƲ૜vసʡ݈̱԰ࡏ̀α̊ԩ̶ࠕ"]],encodeOffsets:[[[124701,24980],[112988,19127]],[[130722,50955]]]}},{type:"Feature",id:"CIV",properties:{name:"Ivory Coast"},geometry:{type:"Polygon",coordinates:["@@ϣUוǒ՟Wহƥ׍ʍ̯ࠫNjvÞۖĄŀ}ͨΣΚˉÈʕɲǾώčО ʔƄB¸ξÝnjĄŜ̸ĶȹڨȗΎæ˸ǘÞŊúɸųٮOƸʖƢgʎĦžΫȞłΌŰϚǽƦ˥Ϙǯ̎ɄϾŒֺɏɠ஡Ο۷ɕेθܣ›ͧ"],encodeOffsets:[[-2924,5115]]}},{type:"Feature",id:"CMR",properties:{name:"Cameroon"},geometry:{type:"Polygon",coordinates:["@@Ľ°ӻŇԝŒЋÅ൅nŬڒ͟֊ϧƚǟϖɋŦXɶɎתЎ߸ʒRԄӮ͈bҾΉ־˲ĀΔȌͺžь҆ΊǞךDzȊŢѨɜ՚۾ٲ¬˨ĠƲͫͰ‚ˌʂ¶ͮ՟Ê֏‹֏ҜޅҷTʁÏϥČǻЅӸөμƛŠΏˆ׃ſɩх࡛ȫƳÝٳČΝåʡЈѭð̴̟џϨ˓œϥĘʏÓґڛȤڷɜ੗"],encodeOffsets:[[13390,2322]]}},{type:"Feature",id:"COD",properties:{name:"Democratic Republic of the Congo"},geometry:{type:"Polygon",coordinates:["@@»ঙͶŕˑ̗͓ɟ͍ѫǯϷ±ګț͍Oهʍɹ‹ԃŗÝýҟɄϡÂ৥ưޝċѧǘӣӤҹҒ੕ͥĒ૿ƙɣĵʇՙȊχƫষĻࡇɨƫט͝ɲƴìٟࣟR·Ҧ̳ΨٟŠȋѰԣ˅ڧŞ˫ϢՕüϽqµʾ́rϥºԳųιtȻû®ৄ˩̸ÕԬŬԒǝ͖eՊ৳Qò̢ѕG­ƣԵɁӧűȿҫŠˣş։å͏Ѱȗ˖ʋԌȷض៛\\̍ķʑh΋œşʼɊʀμƎɎ̪ǰɚđ˼͐ҜSÄʃ̼ƩӶՄӨШɆːƒ۔θࠆϬўքМĪˌt̰Ǝ̆«ӊŀݖǐԾʦ҈¸Ԕúה͜ѐҊ˔۔˷՘ؚ̳ĉظǏʦԖŘÞϦčनоͨDZ˖~ŴȲ̺ðلėբoˤĚԘۙϘķɤƖϲÅҶDzȦΫ݊֏"],encodeOffsets:[[31574,3594]]}},{type:"Feature",id:"COG",properties:{name:"Republic of the Congo"},geometry:{type:"Polygon",coordinates:["@@̿˾ʩƗͻγۏࢸٖҪ̓֌˾ɂ֦ĺäό҆Зݐ•ʴЈł֒ĝڀЉӺζ঄ȽǘسçɻѢÔξ੘ڸɛڜȣÔҒѰ޲ԆѼ֪Ɨդ±·ԓʥ҇ǏԽĿݕ¬Ӊƍ̅s̯ĩˋփЛϫѝηࠅ„ۓɅˏӧЧӵՃ̻ƪÃʄқT˻͏əĒ"],encodeOffsets:[[13308,-4895]]}},{type:"Feature",id:"COL",properties:{name:"Colombia"},geometry:{type:"Polygon",coordinates:["@@ΫȤЭ˨ʅƅ܉Ŝȱΰƽ_࠿Ӓŕʺ̼ڛтȢ̦иÊΞՆ͐Ѵ̳ȦDŽӦȏސǸɚƃ܄ͻ҄ņТ˔ÑǂʠțӶĺŬѢـהΌĚT˦ƺ܂ӖϸՊfäǪڂéڌъ͞ȊОК̖»ɚɛǍ˱գƕɇп͗ʋʓ̷Ĺ׵ɷӭѢÇņϭȄȁâ͹ij̵ˆǫȸéȨ̉ઊĄӦŃעܡͼĚ؂­ӐĪ̔ƟƱҍȇ˯ß׻ǜ֑ʆʟ†ȉэл̨ȃɠ̋ʰ࠹ǁĻǏӸɷˊ˥́࿕lZԿӰē…͏ǙĔҿƑK؏ώ̫ƀӓoηϙᘯп҂ʣpժࡤٟϾԍị̈ƤҧɝصŀӵࢤϳɐˍІ֑Њɡā"],encodeOffsets:[[-77182,-155]]}},{type:"Feature",id:"CRI",properties:{name:"Costa Rica"},geometry:{type:"Polygon",coordinates:["@@җȆǟǮĬƤ‰ȄɷȪͥǔ́ņÅʖəƮÄʑǗȩȓɸˑĊŗǞLʮŎˆʁŠȖnjŴňֆɝȖŊˊéƔǥʜÇȪDzɈҙ͖ͷЂΩ͗õLͷǪűűıƱëǟ©Ǖ"],encodeOffsets:[[-84956,8423]]}},{type:"Feature",id:"CUB",properties:{name:"Cuba"},geometry:{type:"Polygon",coordinates:["@@ܨÑڊW߄˹̭ͮ޺Ĩ̔ȡ܈ԳԺϛˢ\\ԆǟÕʁئ“ٌ΅ıȟ֑Ń֡¥׃âளą֜Ҷ΁ɔէÈ̃ʐȥӎӃ޵ɦʥǬભž̋ǐ̀ɀࠗ¨׿ѧΏ[ťȳеğΫĂѺʸǼ̤ϞȈіǎَĄȰĢ"],encodeOffsets:[[-84242,23746]]}},{type:"Feature",id:"-99",properties:{name:"Northern Cyprus"},geometry:{type:"Polygon",coordinates:["@@ÐJŨȮ؄Yކʢ֧ΧÔƿęˆLJÙűj¥iĎѾNjVɫïƿ¬"],encodeOffsets:[[33518,35984]]}},{type:"Feature",id:"CYP",properties:{name:"Cyprus"},geometry:{type:"Polygon",coordinates:["@@€ãࡱͿЩŊȟͶЎŒǀ«ɬðnjUÒ½j覎ŲiLjÚ̇"],encodeOffsets:[[34789,35900]]}},{type:"Feature",id:"CZE",properties:{name:"Czech Republic"},geometry:{type:"Polygon",coordinates:["@@ϯǂЁ©ٵʲ̏Ùҿ΅ر˔ӃΰѕȬėΠƧʠؒǾ̸Ⱦ׾ǎɂdžɜīϒĖЊ˓ؼñ¿ɳҘǧŲɒּĥĄʿز»ϮЯʡCŽƯȕ—ÅȑLJ¡wý˹ēϋbšȁ"],encodeOffsets:[[17368,49764]]}},{type:"Feature",id:"DEU",properties:{name:"Germany"},geometry:{type:"Polygon",coordinates:["@@d͗ࡔțS̗ࡢǂҾɰॊͧІˋȞёɹɣ̨̙Ⱥ҅ß́Έ՛ϑĕɛĬɁDž׽Ǎ̷ȽؑǽƨʟĘΟіȫӄί̑ϯ̟ŃŢշýƛʿǤЕ~׷ƭݍ–ţɛыɺʩ±࣑ʲǥǻ܍Nń״ьֺ௅ƸЇɘ´ςǗȐĨ֨ƗࢢԎ@Ɉ͂Ⱦޔƿ˴ǐDz۰°Ƽȃ֮вȓ̀ӈٌōՠŸ"],encodeOffsets:[[10161,56303]]}},{type:"Feature",id:"DJI",properties:{name:"Djibouti"},geometry:{type:"Polygon",coordinates:["@@ȤʹΑӏȩήɯ̱҇ȅƬȭÏҷb_ʮßɶ˴Ѐ̐ϊήñʪȴ"],encodeOffsets:[[44116,13005]]}},{type:"Feature",id:"DNK",properties:{name:"Denmark"},geometry:{type:"MultiPolygon",coordinates:[["@@ԋڹ࢟ӄŝΒ௼˨ˎу"],["@@ȵ̓ʡĞ؁؁ɮХ՟ŷًŎͽҲ}࡬Ɣɪʌʦ݌À̐ɴڮʂƒѝʟ˙ĶɽҘŵ"]],encodeOffsets:[[[12995,56945]],[[11175,57814]]]}},{type:"Feature",id:"DOM",properties:{name:"Dominican Republic"},geometry:{type:"Polygon",coordinates:["@@ŀƞپIӾɏɜtƴ̕Ҡhʡϐ‰Ю̷̯ͿЍǼϫ•ˡ¢ƱƵ͑½ŷȲˣťͳֻɏƆ§ʎjɬɍʦȲƚÞ͒óҜ"],encodeOffsets:[[-73433,20188]]}},{type:"Feature",id:"DZA",properties:{name:"Algeria"},geometry:{type:"Polygon",coordinates:["@@ᮩཽᝩ࿷இϑटćU՘ϵƌԹʊȧЀᬻᆴᬻᆴṕᎠfnj@ÊQ঺ബب࠼Ÿێɦ͎тচͪ˜جӢòϞ̶સƚƸ͜ɛDz̃ࢲ¹Ԟ́ՠ߰ҠࣦƢՌΎ߶ʰ෎Ƭർæшůߊͨ࣌P΀ȝֺ¾ǟћƄߟȡۙԭҵôمۊԃRȯԮ͹Ϊຝ˖ݏ°ϵƧۇÔϥŃҟòՇͫΗӺؓŽέ̘ҵϼƸڒϷςՃ"],encodeOffsets:[[12288,24035]]}},{type:"Feature",id:"ECU",properties:{name:"Ecuador"},geometry:{type:"Polygon",coordinates:["@@҂غǻξ͍ϵԉςǞʀƙބ̎ŴƺԼ͆զÍ΄ҢǸ׀Ͱࡀӑƾ`Ȳί܊śʆƆЮ˧άȣŞٓʽճࣷ࢟য়ͧԥܵǃ֣Ӆ΋ΙъͻĞ΍áw̮ʈȨıΔ"],encodeOffsets:[[-82229,-3486]]}},{type:"Feature",id:"EGY",properties:{name:"Egypt"},geometry:{type:"Polygon",coordinates:["@@ɽͷǹىɫѩȝƥ˩˔ϛϒ׵ஸđùΐࢯԪࡋٌವ̴ҙ˒ӃݮछǗƣ‚ճ঒ݭƨǣΏ@Ὁ@⁩@@ᶶ@Ჴʥڲɐ԰Żά̤Ж૦b߲ɝ࠲ʛϴſ٨ˊΌʊݎêװŃɮеȜ˜ڨȣټ³аɄւ෽"],encodeOffsets:[[35761,30210]]}},{type:"Feature",id:"ERI",properties:{name:"Eritrea"},geometry:{type:"Polygon",coordinates:["@@˻˖ΉӰϋ˒ɏܷ̄ͶֻXȭǬӯȡԛϢʽط঑ǬęʹβఀĊ֒ˆʴؤƐьӒӦঃɴޗҢУବߏҲӍҖӝˀ˿аʧʩȳέò"],encodeOffsets:[[43368,12844]]}},{type:"Feature",id:"ESP",properties:{name:"Spain"},geometry:{type:"Polygon",coordinates:["@@¦״΃θஒ؆ਊƱ૾NࣂƝۦªമƒͰ͛໺ϡ̨ǺीϝআŊ®ӥߓ֓ઁǯõ˱ԩү͕ہ͞ӑӟϑǹճىǗש٥੧_ߟhՃ͍̓ͅЩê̵˴ʃӚ޷žé˦̶̀Śɬ̃ʢɶրͳԌδè’ЈƎŬZپϲɪɻфөˆƝŁӹCɁЬ΃ū̥ɇ"],encodeOffsets:[[-9251,42886]]}},{type:"Feature",id:"EST",properties:{name:"Estonia"},geometry:{type:"Polygon",coordinates:["@@ĮӸ̱ŁՓ̘ñӘਫ਼ɼ੔Ũ࣮Ƒࢂ|Ŵƣׯӝʞ޵ΫˉۙDܡ̸ρļ܏Ʃ"],encodeOffsets:[[24897,59181]]}},{type:"Feature",id:"ETH",properties:{name:"Ethiopia"},geometry:{type:"Polygon",coordinates:["@@ԜϡӰȢȮǫּWܸ͵ɐ̃όˑΊӯ˼˕̏ω˳Ͽàɵ`ʭҸaȮÐȆƫǽ̴̕ҧ̴Й̛͎ᩨঽۺNᛛᡃફ™ݟףաeɯ˅ַB͹˴ލΙʝΓ֕àȃĬȟwˇT੟܌ב@˹ˢ@ҾѧƘӻࣴϥȚƧʹэЦԧÒ˸ӐҀrŲʰ[ݲʞࢠЊɾĎ΄ήٜԔи΀ࠠƆܠ঒ǫʾظ"],encodeOffsets:[[38816,15319]]}},{type:"Feature",id:"FIN",properties:{name:"Finland"},geometry:{type:"Polygon",coordinates:["@@ūיಀ֓ޡى঎ख़֡ܛݴس΅յఘֻ́ѓޭӟᅡੵໃá๑̯ൃǯӡҞ߿ˠȈࠢСݶАӪނՆ኎࣮֖Ǭē΢ୟЈ˳͜uಒ಻ֲ૩ЪԊɞतѻલ¦ࣘȭߠϊЬ؞ಬ˶઄ͯΡכ"],encodeOffsets:[[29279,70723]]}},{type:"Feature",id:"FJI",properties:{name:"Fiji"},geometry:{type:"MultiPolygon",coordinates:[["@@̂ʍƓѭԳŗҩļąτ͖̀ϤĻȼƐ"],["@@՛ǯŅ̼оǤˊ°Ӱˀ@ЧՕȷ"],["@@é­@ШǨžĽЗ"]],encodeOffsets:[[[182655,-17756]],[[183669,-17204]],[[-184235,-16897]]]}},{type:"Feature",id:"FLK",properties:{name:"Falkland Islands"},geometry:{type:"Polygon",coordinates:["@@৘Ԍ܎ȿԌʹڦϙʥ̋ଋʥϙ̌܋ϙпϚ"],encodeOffsets:[[-62668,-53094]]}},{type:"Feature",id:"FRA",properties:{name:"France"},geometry:{type:"MultiPolygon",coordinates:[["@@ˣ٭ϡǠș֢ǜ̺ը͎Ɯܛ"],["@@הЅќà݀ϥȊñʎjЈɗெƷыֹŃ׳ɱƝϣü‚ɇؙҽ]ϟВƀ˾ρ“ʁʚ̿̅ʯɐٱҖŃĩηݿӅစɬ௧˗ĩԑঅʼnिϞ̧ǹ໹Ϣͯ͜ѢԎdžူࢁࢤإю౹͒čؖઠǾථɏˇॎߌέዠپʨێܾǞŪ̑ϸ_ϸ͵"]],encodeOffsets:[[[9790,43165]],[[3675,51589]]]}},{type:"Feature",id:"GAB",properties:{name:"Gabon"},geometry:{type:"Polygon",coordinates:["@@ࡹࡔ։ۚԙࢄ‚˨ǾˎȲؔǜخ˴¶௢SOৠЌÆԞőӼňľ¯ÓνɼѡشèȾǗεঃЊӹĞٿŁ֑ʳЇݏ–҅Иãϋ֥Ĺ˽Ɂ̈́֋ٕҩ"],encodeOffsets:[[11361,-4074]]}},{type:"Feature",id:"GBR",properties:{name:"United Kingdom"},geometry:{type:"MultiPolygon",coordinates:[["@@҉ֽًǦԱ[ǦҊǥ҈۴–ࣔԳ"],["@@࣋ࣧࡦŘऄIɕۅݯݩࢄÃäĕݠ঱ֺƇԬढ़ʈͧৰDžķ՝ѓʗͲѣݱѯ૳Rෝɱϻǒ։ϿޥĪם͍ҁǘ௼ࢨݪǺOBಽƔʃͰ࢜ʺҡҐdžռఢ÷D@ŮӤ֛Ԯ_\\৵ƨȧɬ̨ϒˡɴҍЇ·߶щє̨ࢆٶھڤá০ì"]],encodeOffsets:[[[-5797,55864]],[[-3077,60043]]]}},{type:"Feature",id:"GEO",properties:{name:"Georgia"},geometry:{type:"Polygon",coordinates:["@@Ųάȿִӟ̲ҭĬ̯ʴĺIJ܄ƝఆƋଦЕƦƻԚƂ޶ǭʴ·Նșɓřвғŗıҏºصʎȵƍଢ଼ſ߳Юࣅ¡"],encodeOffsets:[[42552,42533]]}},{type:"Feature",id:"GHA",properties:{name:"Ghana"},geometry:{type:"Polygon",coordinates:["@@೉ӯҳ˽ݳʑݡʆœͨηܤɖैΠ۸ɟ஢ŗنrӊฤ¢ϊÕ˔ƊϴáÕʿΖџC؍Ąڍɂ̫ȅݳäйɢՓȈ̍"],encodeOffsets:[[1086,6072]]}},{type:"Feature",id:"GIN",properties:{name:"Guinea"},geometry:{type:"Polygon",coordinates:["@@ʃtǡͷʁJǏǴÈͶΗԨɕħǵmɳ³V̮Ƈɘ‚ʔǻΜɹ̜ڥDțǁɵoƝǷīɹ҅σρӼ͛͢ɋŊȿǖħϊūȂʓƐώЦʮeɖƘȄDƄŎï˨ĢĖd˶МU؀ȱȄlÚĤҜáŨ´¶̭ƆBɖŒƔƒɸɇάãɲǺ˖ŒȬŠǚuȈȁĴɳΆΙǣɏ˙ǴĊŀį«ʡʲʍǗÝå˷Ș΍Ⱥڧ̷ĵăśÞNj·νƃA"],encodeOffsets:[[-8641,7871]]}},{type:"Feature",id:"GMB",properties:{name:"Gambia"},geometry:{type:"Polygon",coordinates:["@@ņόࣶzȎȦˊ`ͨȷʼIˢƚǞʏεȋιdέǰ̷ȗƭQȫŝއl"],encodeOffsets:[[-17245,13468]]}},{type:"Feature",id:"GNB",properties:{name:"Guinea Bissau"},geometry:{type:"Polygon",coordinates:["@@҅ΘΝÈȕʀLŸʯǴÁǶѼƌ˦ɦĨ༈•c˵ġĕð˧ƃōȃCɕƗʭfύХ"],encodeOffsets:[[-15493,11306]]}},{type:"Feature",id:"GNQ",properties:{name:"Equatorial Guinea"},geometry:{type:"Polygon",coordinates:["@@ƿŴ़̀െmPয়௡T˳µ"],encodeOffsets:[[9721,1035]]}},{type:"Feature",id:"GRC",properties:{name:"Greece"},geometry:{type:"MultiPolygon",coordinates:[["@@Ҡ˱ٺ¶شÑqƣҜĶĿʛ௃íTƒਁǎƺΦ"],["@@ʹՁȥĥԟ|ѫĀৱɓ׌ҿяƋҳAѻўƿȁȊԅрЁ̓ǿҴϯжʑ^ӅޥɠʜѕՓĕ͈ݏ֏Yۍμ̿ڦƧ֒͝ϮљӐÉʆϸТ¼˚˘Ũjɚռö͌ȀҖgƒƦdž„ت{ڨɲע̉ކĀVмЦɝ"]],encodeOffsets:[[[24269,36562]],[[27243,42560]]]}},{type:"Feature",id:"GRL",properties:{name:"Greenland"},geometry:{type:"Polygon",coordinates:["@@ᬜԆ᱒›ੴ̴ᲈĄ䀦Ŀ㉊ڗ༅͕ộ™⭏ćшƫᲐĠᡚ́࿈ʴۦ̝इӧᒞ̺✘͚ᠼNjҾΫ⃝ױӃȕ᧑ơወ¡ছؕگկ€ध৚շಽ“൧ˇ༂ѽȢ܋࣍ýઞܡህÑঈ΁˟̑இŽ୥E੆֩\\Ϗပΐћɣଌȿ઼ԣ͈ڱກlj٫͖ਣӘ˼֭উѵᕖ•୆¯ᖯܵᗿڏឧ́ओIࢅ͓ୟࢱᅵכׅ“૧ȷ஽ȝܛԱ[כыտോڧͺٿϗ۝љࠍஅ½఍ۈဿLࠁҢ֕ࠐฝਲэոŗݮ୓ޢ̢ئ֗̒ࠪচొ̺ͨΘǬڀॡ̕қůݯţਏ˜Éְ͢҂ެ\\႔ɟ෿Քݩ˾࠷ş۫ȼम޴ԝ̺ڗ׈ৡࢼ੯͚XΚᖷӮᄻÖᖟ‘Ꮕ×ইˌวՈᕂ˄ၚ¬≹ɖ቉΄Ś͜ẊИᶎИ̪͘ᗗ̠ܺͰ᯲ז௢ĚΓϘጲɜᣚƂᣖRࣺʽᕺҨፘ̽୺áპ˙ፅҐŘή"],encodeOffsets:[[-47886,84612]]}},{type:"Feature",id:"GTM",properties:{name:"Guatemala"},geometry:{type:"Polygon",coordinates:["@@ћƦԻfϩǖҍΌrʖĮȠšƾКۆ઄Ft˸Ƌ¾ġǺ̵Ț̹ˬϜDBӂ޸BަUOڗßॅʤ@˚ƱòŰʘŃϥ͍ЉɻÏljâǑǧɇȟ½¬ıƿġ˽Ƀ}ŭ"],encodeOffsets:[[-92257,14065]]}},{type:"Feature",id:"GUF",properties:{name:"French Guiana"},geometry:{type:"Polygon",coordinates:["@@͉͑ГÑŗʀȉ–ʹɩνǦɈΪòϤƢή͛ӸáֺѪܠ˸ğؤȥࢸۿƔ·ӻޑʳأ"],encodeOffsets:[[-53817,2565]]}},{type:"Feature",id:"GUY",properties:{name:"Guyana"},geometry:{type:"Polygon",coordinates:["@@ր̯Դյzџ̈́o҈Чͪ̇Ƈݱԛɕ°ȣƹџϊ؏ːAŎӃԢܳȱ‰ҫî˙ɡϟƥ˅—ġǑЭ¦ԫЀÓϴɋьƆܐɸ̐ȕϸ˿ŶŊτțȘѩ™ْ֩ɬɲiϲԬƊȾƾ˽̸ô̬ږӲ"],encodeOffsets:[[-61192,8568]]}},{type:"Feature",id:"HND",properties:{name:"Honduras"},geometry:{type:"Polygon",coordinates:["@@ơˀʭòÐʹŗĞǣÒσij‹ŔʩƈǷǚʛìǨɈáǒÐNJЊɼϦ͎ĔȂƨʊ\\þ垦ϸùϲv˒ĢİĦˎ©ȪÉɘnǖòϨśƄkʲƿʐį̏Źɜɳ˽jśŕ̇ŋɃAȅŃǙœƛźĕ{ŇȩăRaǥ̉ɳƹıđĽʛǞǹɣǫPȟqlЭūQĿȓʽ“"],encodeOffsets:[[-89412,13297]]}},{type:"Feature",id:"HRV",properties:{name:"Croatia"},geometry:{type:"Polygon",coordinates:["@@Ȳ͗ˊʇ͓̓ϝȆׇ[ܟƔϽmǻǧ̝ȖǫΑЪϽǼʹϮ̽͌ȃ͆Ηݔ͇ġƛ߃̶ӣ̢ޑʠ۹ؤǞØϥΞe˲եƄʱγʝˮn̆Šbג…Ƹƚ˸ƍͤgGɼ̈ĒĈͺڞɠˊĻؼέۜlj̼Ų"],encodeOffsets:[[19282,47011]]}},{type:"Feature",id:"HTI",properties:{name:"Haiti"},geometry:{type:"Polygon",coordinates:["@@Ԣ™ܰƁôқÝ͑ȱƙɎʥiɫ֏ƜЅÍԡÔϽƿ҉ʾö˔ޜśيã̢ȈϧθP͎ՋžȌɶ"],encodeOffsets:[[-74946,20394]]}},{type:"Feature",id:"HUN",properties:{name:"Hungary"},geometry:{type:"Polygon",coordinates:["@@˨ըǍǼӂDÜ΄ђɋ̲ğ۸ļäǚͮ~ЦžĜÃЂŀȠȢˠ¼࣒ʭǴĒҲɭÎɣԡǭЉ֫ԕ֭کǁԽš١ə̻űۛNJػήˉļǍ˴ƗV"],encodeOffsets:[[16592,47977]]}},{type:"Feature",id:"IDN",properties:{name:"Indonesia"},geometry:{type:"MultiPolygon",coordinates:[["@@Λe૝ך޴ǒѴʭ̎ʭ»ɩ"],["@@ܙȁijĶø˸ΰԢࠨͬĐǓfʫշع"],["@@̢ɣԲèȼΥॿǛ׉őҍP̀ӚҤPɤ̖"],["@@ūұ౅ʅૣľE̬ښǪՂʥ֔Üݬ̮"],["@@ྔċȂΌ༘З̪կీƵਐӿय़͋ऍ͸ݻwࢍØ޻ưঅ͎؝ČΓŁ໕ΌƣΰޑØּߤ৶·ڴ͡ΒÛŘ̗"],["@@ѝֱćنƬ̠Ǭ˴ȒʗCЏ"],["@@̿˥ׅƸǏΰࡘ¢Ⱦˣ"],["@@̨ٝۿΌۯìӃÅׇˆȦҦਠ”ऎʕ"],["@@ɼയ࢈ԉ۰ࢼ८ԔݜBܘ̉خ̛ࣘLJbᩑbᩑݟې࡟ǜȷʇ੡}ΦۂՈɺɕࣲЕ۸࿃܆ۗêృަʛУ͑óȏ̮GκٛЮ̢ࣞ״gëɠ௵DͩԄݥƺΡдଈȰњ˜ഘ·Ƃ̹"],["@@ڭ࠭كlj߱ǐඓ¥ܽŧţٍݪݛҒϠ༪˸çϯλŪιӯ͙݉ߒ੿Ƶ˿ݲॻQտ҅ʙ̐͡Мی࠙͗ȻɶŊ͖؅ӲØࠌ֕ʭîও”றՓũίʚʌޜŽ߸ΛPʻֺΎվŤښф౎ǮΎ܎ذپʛ੖śॴ–ࠨ؎Ʀȉ"],["@@©ܽџĈŷԝΌѷɽĵ͹Ւʟ੺ǚڤ˨̨ÔҝӸóĀ΃"],["@@सާহį˫ֵšݿַ߱u࠷͕౻ŭ̚ॕϙͫԤ׳´лːৃ̟̩Оս¯ۗĬŹૺнɺЕܘŝ݀ĮުԂ֐Ɩָ֗ӅըǠ՜ÑӪъЖôߒɽۆǶњୠ͔̈̆क़ॲ@ܰƙӍݷآߓơϭ"],["@@छkۻ۰અۊέԚٍۄзؾٕ୴۪݅ʙܠ̳ڀݵՊѭܘمҺࢗऒóђզ‘ಢNjݔࠓٮ֫ҪΓߔࣙࡢ_ۺֹӠ۳٘ϥͳۉӖ̞̅sƜו̊ҵؠõФՏɁ਱‘ಟ"]],encodeOffsets:[[[123613,-10485]],[[127423,-10383]],[[120730,-8289]],[[125854,-8288]],[[111231,-6940]],[[137959,-6363]],[[130304,-3542]],[[133603,-3168]],[[137363,-1179]],[[128247,1454]],[[131777,1160]],[[120705,1872]],[[108358,-5992]]]}},{type:"Feature",id:"IND",properties:{name:"India"},geometry:{type:"Polygon",coordinates:["@@ࣚটďۅͮїѕ׽ŒɾएࠜՑ୞חՑϟ͛޻ࠀͅߊЭરһସʼnӜёٮāৠȝ۪bĪͪŋՖÞβԠǮìڋlǙކ͉Ոƀ܀Çۈ|ÐԪ΁ˎڴŀވشॸ՘۶ȷ״ΞЀԹ˳Λ࣠űÜ͇̍Ʒèԫ׷Ʋછׅ~ӓҩ۵§ХϏۗځȒࢇȏ˹ĚΣгȥѵ೰ɵEƍ՝ҡѦʸӎϖ¶ϰ܆ӝƜީ]ߝŚóאБ¤ڕζ֭̓؆ѻԿ̻ȅ̩Ԭɣƛԑ̆كžەţֱ̫Zਛǩ´ك҃ӻ௃֡ळ঩كՋ࠷ջCϭлȹݳ̝Ͻ«ʥٙǪધ®ۡΣߙI෗ѣ¡ϣٙʰˣދʃ˱֯͵ʍߑ޸ϳ୴͑ࡒ̍Јѿ߰ȻੂơՀޅ଼Α࿀ʣ੾HৰǍ޾௣ԉףĶ઱৲И̤ʝͤড܊֖֔ᇜCǗܞҽюĩ٨ջϘऒࢢঊÙ࢞ࢢՄ࡞ࠄࡈ_״ܒӠڳд֪݂̇̕Ьβ౤ȱपŰߺ۸"],encodeOffsets:[[79706,36346]]}},{type:"Feature",id:"IRL",properties:{name:"Ireland"},geometry:{type:"Polygon",coordinates:["@@ƒ׷ًݣ๯ӹ஑Ŷڼ࢚ѭࡢତڄٌϼǦ҇ǥ҉Բ\\ٌǥ"],encodeOffsets:[[-6346,55161]]}},{type:"Feature",id:"IRN",properties:{name:"Iran"},geometry:{type:"Polygon",coordinates:["@@݈njװӔ֚{τƾװýघэڤğ।ݓظ‰òۻ΁਷ɱؑκŭΫҡˠڡàՓِƙæեݿݿжѵ͸ԓߦυx݉ДƋêϯ௉ѡ̓উཌྷʪࣷȖेŊΧਐЕƪ٣ƭࡑНਇ˦ࡑ٦߳ʈ֗ߘا૪ҍƋՕ˦̻͝ҭѴS҂ˍ@Ɛ،ѝٔ਍Ң׉ߜȜپц̂ÙӬտʨխ৊ҟڨǐʼʿ६ּʈƄͅъϯ־ő̤~রئ̀Øʞʙ́гԼѱȾ¦ˈإߖǩ׎у஠ƟಾɞĄȞ"],encodeOffsets:[[55216,38092]]}},{type:"Feature",id:"IRQ",properties:{name:"Iraq"},geometry:{type:"Polygon",coordinates:["@@րʧÚӫх́țٽ׊ߛ਎ҡўٓƏ؋ˎ@TҁҮѳӿ¤֟ê؝߭༟äᛍၖఫךৡɪ͹৾ᇶ࢔͆৬āؘҢȺјԾΰž঎Ň̐ɉЖƚծ৉"],encodeOffsets:[[46511,36842]]}},{type:"Feature",id:"ISL",properties:{name:"Iceland"},geometry:{type:"Polygon",coordinates:["@@șիॊֵથٙᝓֹܣƵૉŮᚑˈࠠψᆧЪ๪ǎ—ʘᄋȜ֨նౠŰಸ֭౨Ҝ੒ʃൌ҄ආÑ"],encodeOffsets:[[-14856,68051]]}},{type:"Feature",id:"ISR",properties:{name:"Israel"},geometry:{type:"Polygon",coordinates:["@@ƥ˅̣Ŝǫ֓ɂĥɋř—ɛЄŖp͛нഉց෾ʔˢ˶ɞϼǠيŤɆzVˬCþƦɤ\\`·ŕŵhM"],encodeOffsets:[[36578,33495]]}},{type:"Feature",id:"ITA",properties:{name:"Italy"},geometry:{type:"MultiPolygon",coordinates:[["@@̟ڋŲʹǭѝٝ̈́ёĞ୩ѐŞќজûࡪĠْò"],["@@Ԍ׭ş૕ϣÂ΁˫͇ɞ‘২ȓӒҨ¥рʼ"],["@@ரɏĝЯȬΧڝŪہ̗²зĻʇˠё߀чцۛदڱچLȲȃɽǗݪ̥ؠʩܜѫĔƿƽ̛үϼܳƐΝի؈̷ıѫΗ¹҅ܛΕÝHʲǢҊǼǶ͝ӤʱшΑŀʛδգƴεͶثÆٿϜޑմ֯ӜʿࠪйĮہˤϯŕӝϵΓÕĪθҕńɏٲ̆ʰʙ̀”ʂβǵМ¢Ҽ˶ƢƃА€ǼͺتĿψƚâΆԘšĮdžࠨƤȊ̉"]],encodeOffsets:[[[15893,39149]],[[9432,42200]],[[12674,47890]]]}},{type:"Feature",id:"JAM",properties:{name:"Jamaica"},geometry:{type:"Polygon",coordinates:["@@֢÷ҀȫƔɯןeʭƗҹƊӑ̪ĶȔΜÎȒƒ"],encodeOffsets:[[-79431,18935]]}},{type:"Feature",id:"JOR",properties:{name:"Jordan"},geometry:{type:"Polygon",coordinates:["@@Ʀˆपͫ࿪ࣆͺ৽Džų၅у࠸࠿ˣƛƑ˭ٙřȩ̡εʵधƆƒŨоഊo͜Ůʚ@Ԥ"],encodeOffsets:[[36399,33172]]}},{type:"Feature",id:"JPN",properties:{name:"Japan"},geometry:{type:"MultiPolygon",coordinates:[["@@ņ˽ҿԕΉːљțɝӭշʈRЊҬԆӌīΊΜؠǹ"],["@@́ڡƤсѩף੹Ѓ๏½ணॡ͔֡“غษȃষЃঝe࡞أ֗෗իΝН͜ȶݶՏʒͿ־ߐʶѲՈࡌѢ؞ָာʤ࣎ǣࢠ๺֔Б௾ࡀӌ͜ՈਈƟा΢ՎࣀƸҞୗ}ڻޥࡍbࢁ"],["@@נǵרΤȈहఝɯ݁࠱೓ָқँण]ř࠴д٨࣌²ʖ୐ʜټন࢓٤˯"]],encodeOffsets:[[[137870,34969]],[[144360,38034]],[[147365,45235]]]}},{type:"Feature",id:"KAZ",properties:{name:"Kazakhstan"},geometry:{type:"Polygon",coordinates:["@@ӕƹ્דο׹̹KɱЊ੫‚ǡێХNÚࡆ৓ؘ෷ßডũߣݶۋ͆ಥ׼ƽðᓗӹᶽљ£יچ֧ɼॕǩχ˧±ȲȶΖDž̊অ˺ϛݮҩɆ…˜ࠊāŽؘ܎ƎܼűƲࠎƭԲ࠿£܍ȴঃσ޵ǭяƌĐўՙ֘دw܉֬ӞِʕǢڢऊࡺӣŀؘჄࣴಾtᇢ׉঺ͻࢼΠ೰j੺ѥʔʠ୼—ɂЊഷ׀߮Цƿɮ߮ɔ؅ֺϬ˼Ḯ̈ШȺᑆ̴ݰΒຢǹ˄ࢉ࢚Ȳઆ˹éҝ߮´ᑌߎ̭ˁ੶٭ሠᒑ҄ѰୄӛீɎҪƯКӟטNjΨΥ઎ŒѾԣٕ֓ۥÿ¡ࡅұϝဟˢ؅ຑїȇဗͱݲลֻɓäӏԭŬу̠ఝĖඃx̧ġ஥ΞӉǧŽӹ൩̂փşȉρ"],encodeOffsets:[[72666,43281]]}},{type:"Feature",id:"KEN",properties:{name:"Kenya"},geometry:{type:"Polygon",coordinates:["@@ӾۙיͱȹΕ̿Õšףˑ͹Ǐ֑ͷ˥஻ࡀËӤᵁႌƙĢSࢺʊ;а֌̨ؔσ॰įтЉ׎ԬԈ֬ֆѨƗ@ҽ˺ˡג@੠܋ˈSȠxȄī֖ßʞΔގΚͺ˳ָAܽ॑Xᵣ"],encodeOffsets:[[41977,-878]]}},{type:"Feature",id:"KGZ",properties:{name:"Kyrgyzstan"},geometry:{type:"Polygon",coordinates:["@@ȊςքŠ൪́žӺӊǨ஦Ν̨Ģ඄wఞĕф̟Ԯūşȏ೛ғ̙ͭઁıͅ՛ࢷŒׇǏߣЇŜȟʇȓཟŵਡ˘࣫ÝĂӜࣴƕ̮ʸٖĉ੾؂঻ѸױȽإ͂۶ծʟĊ"],encodeOffsets:[[72666,43281]]}},{type:"Feature",id:"KHM",properties:{name:"Cambodia"},geometry:{type:"Polygon",coordinates:["@@΁Ѭыࢄȣ২ՠۨઘdž߀ťۚ͡Ϟׄݖ̱Ȝ֕Ļ৕ඳ٧τԙࢥÓܫͷ۱Ū"],encodeOffsets:[[105982,10888]]}},{type:"Feature",id:"KOR",properties:{name:"South Korea"},geometry:{type:"Polygon",coordinates:["@@ܨযȺխPॷ̓ҥݽljڥΏݳïĥҚƼـχ࢔ذƚֻܘÂúϒ‡͞Ϝצ¢ΨÈŨȮ"],encodeOffsets:[[131431,39539]]}},{type:"Feature",id:"CS-KM",properties:{name:"Kosovo"},geometry:{type:"Polygon",coordinates:["@@›ǣŃPĘ́ȩĐdzɦƾȌȪÒŜ˨ư²Ţşƾ¿ŌƅƒŸǎƻŢLĥȳijij„×ȉӹŻ"],encodeOffsets:[[21261,43062]]}},{type:"Feature",id:"KWT",properties:{name:"Kuwait"},geometry:{type:"Polygon",coordinates:["@@Ǭχõȓ˔هשuȽАݟĆ؞߮֠é"],encodeOffsets:[[49126,30696]]}},{type:"Feature",id:"LAO",properties:{name:"Laos"},geometry:{type:"Polygon",coordinates:["@@˚Ϝœ܆ڹܸ¿ٕࠦھٍÎǛ̉ӯyʣƨࢯԅoݬȸࢮ֧ž³ԎηʸǴ̲ܐնøȡ҄wŵ०ѦŬӮڏϖޅਚO͚ܹ՝ɗʉ̟৔ԉۦ঳Ռ݋َ׏ɄץƵ࠿ݕ̲ϝ׃ۙ͢"],encodeOffsets:[[107745,14616]]}},{type:"Feature",id:"LBN",properties:{name:"Lebanon"},geometry:{type:"Polygon",coordinates:["@@ɣ[ýƥ˫D̘ۄмעfˆϘ§Ɛͣқ̓ȷҟ"],encodeOffsets:[[36681,34077]]}},{type:"Feature",id:"LBR",properties:{name:"Liberia"},geometry:{type:"Polygon",coordinates:["@@ɗQࡽАޅٖ܏Ң֣ըȪː¬ʔϜҘϺϺǶnɖĨΘԧÇ͵ǐdzʂIǢ͸ʄsŸʓĎНǽύʖɱˊÇΤΙ~ͧăĿÝە"],encodeOffsets:[[-7897,4470]]}},{type:"Feature",id:"LBY",properties:{name:"Libya"},geometry:{type:"Polygon",coordinates:["@@ק̷ҿҤ೧βρՄڑϸϻƷ̗ҶήӹؔͬΘñՈńҠÓϦƨۈ¯϶˕ݐШȜðΠėΒ־͔ʶːЦʌ´٦দ́ΜðۮƓ૞ϓЀݛݮǍஆΙࣆйЦɔЖϮț٠˂Ф؄ЀׂŘ଒ǣ˺ϑ̺Iˌƛ࠴ıȲˣ̣ЕżΫɏԯʦڱ@Ჳ@ᶵ@့ॱGYΙ‧ྐ‧ྒࡓҟ"],encodeOffsets:[[15208,23412]]}},{type:"Feature",id:"LKA",properties:{name:"Sri Lanka"},geometry:{type:"Polygon",coordinates:["@@ų࢓ΙʇܵȓЍڜƫீϠ഼׆ұϺסО࢓"],encodeOffsets:[[83751,7704]]}},{type:"Feature",id:"LSO",properties:{name:"Lesotho"},geometry:{type:"Polygon",coordinates:["@@̆ʩʳУƛ˛ҳſƹˍ̛ċؿ٨҄ՐҖ͢ϼǠξʵ"],encodeOffsets:[[29674,-29650]]}},{type:"Feature",id:"LTU",properties:{name:"Lithuania"},geometry:{type:"Polygon",coordinates:["@@ãɊĚɲχƄࢡƨDZ۸२ʴඬÁࠜĊŞǩ҂Ã߲СĀϓۏˏșӃ࣯̓߻NȫʶљĜ"],encodeOffsets:[[23277,55632]]}},{type:"Feature",id:"LUX",properties:{name:"Luxembourg"},geometry:{type:"Polygon",coordinates:["@@ǘȏ³ρʍiȉòĞҼɖŽ"],encodeOffsets:[[6189,51332]]}},{type:"Feature",id:"LVA",properties:{name:"Latvia"},geometry:{type:"Polygon",coordinates:["@@†نЮՆߊ˼ڜعڪhNJ٤ܐƪςĻܢ̷ۚCКȕîС˒ӷ͕ࣗԛƙ߱ТҁÄŝǪࠛĉණÂ१ʳ"],encodeOffsets:[[21562,57376]]}},{type:"Feature",id:"MAR",properties:{name:"Morocco"},geometry:{type:"Polygon",coordinates:["@@ԒΥߜÎࢊȃκU͂՟ºԝ̄ࢱɜDZƷ͛ષƙϝ̵ӡñ—ثঙ͍ͩсۍɥ࠻ŷഫاRহŷ@@@p҉Ա˓ȑϡ@̥Ŋ۹ě˛ٻʿÕЁ੕ୟ࣡ˣୋ΅ϗĵ̡ቅãaD ϶͒ɮ˞ѪÃ˶̀פҴՖ˲ƊɞӬp҂̤Բ̪֔Ւ࡬f\\ц͔ްĢڎָтɠۮۮȿਸ਼͊ܢŔѶդ֨ࡈϦخΐ֘࢈˄ԪؤI"],encodeOffsets:[[-5318,36614]]}},{type:"Feature",id:"MDA",properties:{name:"Moldova"},geometry:{type:"Polygon",coordinates:["@@ȨŮ֒ĊؤʽΊϞɥÑ˵̪ƏŨΗ̊ɇÏűƾčɝ×ӷ|ĉŜǫãÒƭɱˍƥ˽ɁĝƯϦĘΪςӝԂˉΠʹʠʯĈ"],encodeOffsets:[[27259,49379]]}},{type:"Feature",id:"MDG",properties:{name:"Madagascar"},geometry:{type:"Polygon",coordinates:["@@ɠΥȺ։Ɗঢ়ɒϽĉЗƩʙ˷ӰǁʝLjثõΥɵȗ¿܅ͧওб୅ԯཧ͑ୟϛইہȣܻΡӛɊڙ̜ɳѺÇݘ̑ڠù؂Ʈ؄ϰƢD˪Дِø՚șЈǃՌãޠ̊ҺŔՒмŒҶǤ̶Ʋτ\\ӐӎۖԮʦцŗάΦĵҪ׎fԐ˦ϔ̊ί"],encodeOffsets:[[50733,-12769]]}},{type:"Feature",id:"MEX",properties:{name:"Mexico"},geometry:{type:"Polygon",coordinates:["@@͙݅ƥ؁Õ૷ąЧƤқʺЧǚٳ֎سȞӏ͢бࢾɝΐΙ݄ɾٚĎؼưՊƠՖ΂ȨӬè۸Ƣʖ֬ɚࢶȚݔ‡ԚîȬDZ…ЙҋԁȥԝƸƥűγɁٽɅɎǭcǃY̝ԓƳIJķPŭޥV޷AAӁϛC̺˫̶șĢǹƌ½s˷ઃEЙۅŢƽĭȟqʕ्ࣞџ˘ۇɖҷÓګ́чĉץɜؿDŽ޹ϬؿŠ्ϸ۱ВɃɤҹº࡯ˈΓϦࣗӊсՌȧЦ˪ĈđʈȖɔJ̄˱Ϙùͮ˭ъ݋࠴ࡋڀУԼܝ΄ƷȴŸԲѓȞӹФȽהҍæӣѸϿФ™ˀҍو̓٠^͔؇ͬ˫™ӑɴƇͿƔЕĆف̀΋خׁƒȡŸÓŎ˽Ƭ\\ǜթʮɇǴ̕Նё˨ޯʠρɸϿ²ѷКƒͶϡ̨ϑqƭΝ̱ƫJɛԞջӎ؃РїɈ„ؚŵҖЏʺֿϒŏŇɃɖԭȰӷӦÖÚΊ³̸̼ŽϜ٩׶ӱɶ̱Հ̷վϳڦͿݲॖÞ੪ĞÿǑ౔СኀףဪPژ@DΌผ@̪̕јˇԀσ˨ѭȾҥѢʩۤʥՊڒۊhפͱфֹ̄ӯӸӏȂחɾЃپʹ׮ȁ͞|"],encodeOffsets:[[-99471,26491]]}},{type:"Feature",id:"MKD",properties:{name:"Macedonia"},geometry:{type:"Polygon",coordinates:["@@ńOœǤӺżȊ˺¶ϴbтˏÒ։DžƒƑƥҕh͋ǿջõΑȴšήń˸"],encodeOffsets:[[21085,42860]]}},{type:"Feature",id:"MLI",properties:{name:"Mali"},geometry:{type:"Polygon",coordinates:["@@˰ƶƘӶˊpזɻӄǖ͖ÇŴȈ⁚^ȈךƣļЛ⋈Л⋆౾dᬼᆳᬼᆳȨϿԺʉ϶ƋV՗ठĈFካҟ֗íԭݛƃ଩ï̳̗ա՟IȿLjҥš޻ΑDžʿٳϕŗɍΙǡНŔɱȳūֻڙۡp˳ɭΣÆӥ΋ůȝŁŽάʍĥơhƷʕ٭PɷŴʼnùʱʎ¬ʢĿİdzĉ˚Ǥɐ΅ΚijɴȇȂǙvȫş˕őɱǹΫäɷɈƓ„ɕőƅAµ̮žʾí̽͘ʀǓӔԺ"],encodeOffsets:[[-12462,14968]]}},{type:"Feature",id:"MMR",properties:{name:"Myanmar"},geometry:{type:"Polygon",coordinates:["@@ӫηץ›ϥࣥΟƳО݅ՔؗΈօ̭ܵ̃ƹȪу֖ڙĪҷ_ϵ͠ދң޵Сࡷăذʴ٠˯ӼæࣸͽѤ˛৔Ʊਗ਼εۢօуॕ׳ҽöԳȠ̂ਪǫ޾څॺļ̢ӭņ׭ۆÅڰ̊ŵj׾дȦęΤȐ˺Ž࢈ڂȑϐۘ¨ЦҪ۶}Ӕજ׆׸ƱçԬ̎ƸÛ͈ӮÚˮӵξȧ|ٟ“ۙߓۭijঽࢲƔȨޛՐǍʓۣز́ζƷ؞ʔ~΍܏յdẕӓȗ"],encodeOffsets:[[101933,20672]]}},{type:"Feature",id:"MNE",properties:{name:"Montenegro"},geometry:{type:"Polygon",coordinates:["@@ÁǀηЯÊˋǫÞɽ˞εǖĢƜŬҦ˚ȜƾüɠƟŬśˠě͌ǧçïƽȋɧó"],encodeOffsets:[[20277,43521]]}},{type:"Feature",id:"MNG",properties:{name:"Mongolia"},geometry:{type:"Polygon",coordinates:["@@ࢮƢ྄ܤ౬Єܴʳ࢚]֘Ͻ࠼‰ௐɁࠈגͿӶࢊࢊश΍ނįনɍLjؿஜΛߐƺਫ਼ŌࡆōࠖЗԚѕެT੒Ƌޜȼૈƒ௸פԌĝѰ˭ৌêХهק࠽ɐ΅ӈńࠤŽ٦̴ڬˏހוğ̗ڏĦ௟ŏןʅ؝։౱͙࠷ѽࡹǞҿúѳէˎ͓ƌˣי˯׽҇গ̑ఽ‹ഫ̇এҋϋʾ৭AఓԜࠥŰૣśჃȊऑmӱԀϣޠԱĢ৩ԼଅŞুƞ̡θ͖চׅڲன̀۷Ѿəז"],encodeOffsets:[[89858,50481]]}},{type:"Feature",id:"MOZ",properties:{name:"Mozambique"},geometry:{type:"Polygon",coordinates:["@@لæ৞ʁɖńגt̚ʦԌaऀ͜ڞӤƊϕ“࠷ľ݅ಿƨЫʣ׷͙׍՗Եޏ͉ृСॉ͓ࣕƵוׯ΋ȗí׳ЌُǔӱZʣƪ¦{ࠗƋϷȤƝűΓΗ̗ۗ˳য়ҕρ̳ðΟɊÉíѵّRïϊůϖí̠ƬपɓװГஂࢬ॔ɜ؆ŶúĨӶƉʞ˜غǐ׌E੠ѥ˒ЏÔǹȼϳǰ۫gÅ̼āװᢈۘӚЕɴüͨɅ¸͵ǯϷØסոԱʲ׌ζǰíઊΙ؈̣˖̅]ɽદɾٔ"],encodeOffsets:[[35390,-11796]]}},{type:"Feature",id:"MRT",properties:{name:"Mauritania"},geometry:{type:"Polygon",coordinates:["@@և־ԗؤ֍ɞГʚҵUЧǽйð˽ˏïҐɺаŀߊģࠨĵкČмɑЎѵδǾˬᾔMǃ௎ȴќ߀øᒸ᪂©F౞Ṗ᎟౽cМ⋅М⋇ƤĻȇי⁙]ųȇ͕ÈӃǕוɼˉoƗӵ˯Ƶ"],encodeOffsets:[[-12462,14968]]}},{type:"Feature",id:"MWI",properties:{name:"Malawi"},geometry:{type:"Polygon",coordinates:["@@ɽٓɾથ̆^̤˕Κ؇îઉεǯʱ׋շԲ×עǰϸ·ͶͧɆɳûәЖѵɔʮޮ˄̈LJۢǚڼƞɪɉ܌Ѕϐ࠘ƽǜɵ˶Ϲɾଡ"],encodeOffsets:[[35390,-11796]]}},{type:"Feature",id:"MYS",properties:{name:"Malaysia"},geometry:{type:"MultiPolygon",coordinates:[["@@àћֈĶ˞ΈȘýӸԓΜ֛¶֣ęϡĆ˿Öӻ̒ɵͤݑe˳׫Éߑخ঵ښįђӟ֚ś̡۠ҜĠؔȃΤƤƮۈρ"],["@@أ˹ܯƚॱ@̅ॗ͓̇љୟۅǵߑɾЕóөщ՛Òէǟַӆƕ֘؜˽ٮǀǜ܆άǂ৖Ǻ׾ڔЬՐϦѥǮ˺В¸՜œа٪אшڀͼHќыžιֆɻ۬ʧÑ֝͡¥ƮЧ"]],encodeOffsets:[[[103502,6354]],[[121466,4586]]]}},{type:"Feature",id:"NAM",properties:{name:"Namibia"},geometry:{type:"Polygon",coordinates:["@@رٌؖ͡ȃࠊȷ،˯ಒm৒ŅҞ͛Όѡۜѳ৘ǽՆۃࠐ»٢КdžԊƞհ}ԄϝŶÐ₮˜׌Е᎞ş໴΂یȒհµͨȍPéӁȍʭC՛͍ͣΎಕ̍سƒ{Ჽࠣ‡BយA᷋ݣѕҋÕՇDŽϗÔƗάͩɰГг"],encodeOffsets:[[16738,-29262]]}},{type:"Feature",id:"NCL",properties:{name:"New Caledonia"},geometry:{type:"Polygon",coordinates:["@@ېԵѨϭ͉ȫҥɪ׹ϚէѼ։פś˶β[Һ˹φ˷ˎɻ"],encodeOffsets:[[169759,-21585]]}},{type:"Feature",id:"NER",properties:{name:"Niger"},geometry:{type:"Polygon",coordinates:["@@nּॹȐОҿպœϤâТբ̴̘ପðݜƄîԮҠ֘Eኬஈϒᝪ࿸᮪ཾ೨αӀңר̸ȸಯ̾ɓ`ˋΔ˽ǻί͕ၻ«ધੳߋγૉΔ̵CեբmčЃʁµˋƻm֩ंȟ’ځҷٱʔҍ¸ʏşӯ~ӷΧѓq৯ѢЉȵѓb̿͆ࡅ̼ࣗıɕǻşӗʋ͹ÍݣٗӚ̟E˭ʗ"],encodeOffsets:[[2207,12227]]}},{type:"Feature",id:"NGA",properties:{name:"Nigeria"},geometry:{type:"Polygon",coordinates:["@@ࢍ̡͉¬͓ȉڥl҇Ղˡ؊שֆكYݍB¶തs՘ǂՊʶʴТԴėɨǔ͸ȍӾ˪ÎݤʌͺŠӘɖǼࣘIJࡆ̻̀ͅєaЊȶৰѡєrӸΨӰ}ʐŠҎ·ٲʓڂҸȠ‘֪ँƼnͬͯğƱ«˧۽ٱɛՙšѧDZȉǝי҅ΉŽыȋ͹ÿΓֽ˱ҽΊ͇aԃӭʑQЍ߷ɍש"],encodeOffsets:[[8705,4887]]}},{type:"Feature",id:"NIC",properties:{name:"Nicaragua"},geometry:{type:"Polygon",coordinates:["@@̃ˆϽͺȁ˲Ο˄сϜĤžƒŵÚÒʾ”ŀȔŬRkЮȠrǬOǺɤʜǝĒľƺIJ̊ɴbǦĄQňȪĖ|ƜŹǚ›ȆńɄB̈ŌŜŖ˾iïă§ȉĐ̫ȗ˹ěͷυ®ɏtϙŹĉýΫÌɛǣɋ ɩźƏȩDZʛÈƓǦˉêȕʼnօɞųŇ"],encodeOffsets:[[-87769,11355]]}},{type:"Feature",id:"NLD",properties:{name:"Netherlands"},geometry:{type:"Polygon",coordinates:["@@ۦyǀ˳Ƚޓɇ́ԍ@ƘࢡҥȞՏπީǩ؛âѠɲ݀ఆଲΘ"],encodeOffsets:[[6220,54795]]}},{type:"Feature",id:"NOR",properties:{name:"Norway"},geometry:{type:"MultiPolygon",coordinates:[["@@᥆ؙઍɣऄՅෛ͵ڵû΢לઃͰಫ˵Ы؝ߟωࣗȮ઱¥णѼԉɝԷ“ūփནƊɝҵ߭Hևױ࠿झಫ஁̨˹̇ͫ࠯bձ޿¾૟՞э˥ধֻۧυӛ֝Ԫဋঁ૫ȟ୏є̛ࣚˇ኶ޞզᕠ۶ဌࢂ໤୦፺ྴඦلᘼ੊ᇎπ൪­౮ۢ໖›ພǘ"],["@@ም΅๝Ȝ׆ɐԕˎეǚͮ̿ொȍ"],["@@᪖صᑟͥұأ݅ǁЍۡৣᅵԢނ̘ఽʐ࿕܂ٷڄᘎ̜Ң̋஦\\͊˼௾ˆ੖̋"],["@@࿮̏ఝҍ᝱ı៙ƖƫɴஹdँϬᣴɼ௞ȫࡘʤᑺȽ"]],encodeOffsets:[[[28842,72894]],[[25318,79723]],[[18690,81615]],[[26059,82338]]]}},{type:"Feature",id:"NPL",properties:{name:"Nepal"},geometry:{type:"Polygon",coordinates:["@@ÝαŌՕĩͩ۩aয়Ȟ٭ĂӛђଷŊયҼ߉Ю߿͆͜޼ՒϠΒȪڪʳࡔշҾť˰ЕٶǓۀσौȕঔć"],encodeOffsets:[[90236,28546]]}},{type:"Feature",id:"NZL",properties:{name:"New Zealand"},geometry:{type:"MultiPolygon",coordinates:[["@@Ȓ΋װ;ʐΡBΝ̹ϳչإїͷ̴З٭Yܗ̓ɣջӋࡗڇϓнʇޝlխˢࣱÐƗ̰Ҍذ੐ࠦժǀ׾͌ܜѰԎѦώظ͈ɆŰҶלϴȆΧ"],["@@،ࢫlָϜɯŲًڰ˛֨ãӒ͎юĭȯݗʯӫٛjɡʭþαūƻͅҏзֹ٭ͯƟɘΕŨӞ۔˟ҨࣛͲz̦؈̌ƚ٨Ÿլͻ֜vƪБΎڋݔΗת̸àҚұٺɑʂݡ"]],encodeOffsets:[[[177173,-41901]],[[178803,-37024]]]}},{type:"Feature",id:"OMN",properties:{name:"Oman"},geometry:{type:"MultiPolygon",coordinates:[["@@ֹ̻ϟªǩȧƉэļ֗ÿĻϯFԽ̻ćХȓǯԹP͡ɃJͻПɷҩĂ֗˳ϱ³˝טٿ൴ᠾ࠾֖၂ϩתv͸ʔΐFΆϞǒƩŞèմіHϖֵҸ̧؞ŋӼƳϜӕɨ˧̞ŃCȉ̩ԃƅɽΟˏ"],["@@ʼnƳDž˺ʔ˺ľñā΍"]],encodeOffsets:[[[60274,21621]],[[57745,26518]]]}},{type:"Feature",id:"PAK",properties:{name:"Pakistan"},geometry:{type:"Polygon",coordinates:["@@تϻʞ٥൨ͻ߹۷ऩůౣȲЫα̖݁̈֩ڴгܑӟ`׳ࠃࡇՃ࡝࢝ࢡউÚऑࢡռϗĪ٧ҾэǘܝᇛD֓֕؛Ɇʣ؀٭٘໻ǁിeஃŝ̈́ঊொѢéϰГƌw݊ߥφͷԔеѶඨѕࡀŲԈŅǞȂגóદĈ܎ҶӈشCĠɼٞŌ̴ý͢ʀ±ԌΦԖ՘Ɇͥ֊ߜɴ̢•͒мΜĩмȣΤӬμࣘǮ८ĮѐƺӨĦ"],encodeOffsets:[[76962,38025]]}},{type:"Feature",id:"PAN",properties:{name:"Panama"},geometry:{type:"Polygon",coordinates:["@@˫ʎǵҒȺɢɅÎƿˤлɸοÁǝ̇ͻɁǽ‡ĉǩВҗɯŅŧŭϷ©ơԈŋƛˡ¸ǝ͸·ÈɓİέCǻĩŶªǖìǠƲŲIJǩŲK͸͘ö̠̝iDZͲ›ĀæɴȵЮÔΨɄԜǞ˺ʤҬ·‹ĉҶ…ώơ˜ʧ̈́ɵĹūȜӵǁʟ˓ÒŅС"],encodeOffsets:[[-79750,7398]]}},{type:"Feature",id:"PER",properties:{name:"Peru"},geometry:{type:"Polygon",coordinates:["@@ɥљћɋࡅӘñΈရࡊທࣾ٫԰ΏۜƐʎ܅ાࠣ༄ߍီ΅Ϥ˃ؤٷպױͼ˖ϒПߢʼךڢՎIJΓʇȧx̭ΎâͼĝΚщӆΌDŽ֤ԦܶৠͨࣸࢠʾմŝٔɢĂ֒ЉˎЅϴɏӶࢣضĿҨɞ̤ƣԎð٠Ͻթࡣʤoрҁݳ œųۍlj॥ֱÓϻɉ̇ČғԕʍBΡɛƵΔݳҲԝDZί֐µ͆҃ݐuېӸÇ౧ϢĩӄƠܪടǷ˵£ןg܍͟пƮ̵ȕ˯β۹Ջ࣡"],encodeOffsets:[[-71260,-18001]]}},{type:"Feature",id:"PHL",properties:{name:"Philippines"},geometry:{type:"MultiPolygon",coordinates:[["@@Đ֏ºҽ˹ޑ̫ࡨϽэˎإʉϿ঩Ӧɿ؊ʰЎՑЈˁΑЃثҵƑʖ͢۾ՌʀҜ̈́̔ϝٔɰƎϒרv·ٰڼЋêхÐ̱"],["@@̟ˡˁՍ˃ʝԫ׈ǦɤɂɾĢԸҨ¸Ɖ֣جߺāߡ"],["@@ૣߕЬט؈԰Ԏ׊Ѱ࠲Ʈۅևҧѳֿ"],["@@Ԏʹ՘BgΗϳΣՕʧ‡ϸÒєŽА"],["@@ʀभ٫ɞj˭ȶԯЍȋ•עʧªƁԘӶãY͈ԣٜ߮mɴ̻"],["@@ɟܩέоѓ٘ܚ‰̡̈"],["@@ԮʉʶɖüɇƍΑ˼׻ɛۥӷ˥ƁڳȊڝѾġϊIJਾүăҙ˜ȫēϯٻЮ̵Ѵɍ̯՗ԊރůлȆ¨ΎˀɊʣȘŇ̡бӚűμߨͺˡĔೄ˜ހԘA"]],encodeOffsets:[[[129410,8617]],[[126959,10526]],[[121349,9540]],[[124809,12178]],[[128515,12455]],[[124445,13384]],[[124234,18949]]]}},{type:"Feature",id:"PNG",properties:{name:"Papua New Guinea"},geometry:{type:"MultiPolygon",coordinates:[["@@ɽčε͔ρՔǷ٘ŜĆĜʡʬȏРՑЈ˵ŝɽ"],["@@ѯçƃɽҟȱћȟѽBۏʔӑɺêʺݬũҠàŶЖŦrĆѽӐÜʂ˼Ҹ̚ġӸԌfǜƏgү˯ԡ"],["@@ݤտղࢻӖ„‘ω٬ƛʥǁࣀΝġʏ֋ÏȷɔܟĦࡕŴٷ՚ӉҦѧ݀ભπ܇ʇԡˣńإڇ˿һƖࢅ–aᩒaᩒภ׃༊ӓׄїҴхŸӵඔԱȲѽޛěȄ֕"],["@@ʿɡǁӸȝ͘ϝ˞ӍΪ؇ʚɺȮҒɻ˸ȁΜȫʹΛ͊ˏĶѧ"]],encodeOffsets:[[[159622,-6983]],[[155631,-5609]],[[150725,-7565]],[[156816,-4607]]]}},{type:"Feature",id:"POL",properties:{name:"Poland"},geometry:{type:"Polygon",coordinates:["@@·՜à̂ȹ̧҆̚ɺɤȝђָʘ಼ϴ੒˴࠼ƙÚȱ߸Yਚħ໶^њěȬʵšωɸ͋KͯԋǡʸϳfϏцܻěɽзįރۥɒϗǿ¶ߙ͔؁šЇĒӹǵч̖Ήŕ³¼ϭаر¼ăˀֻĦűɑҗǨÀɴػòЉ˔"],encodeOffsets:[[15378,52334]]}},{type:"Feature",id:"PRI",properties:{name:"Puerto Rico"},geometry:{type:"Polygon",coordinates:["@@јõưǕɋɃمLӫ‡·άŢŬیK"],encodeOffsets:[[-67873,18960]]}},{type:"Feature",id:"PRK",properties:{name:"North Korea"},geometry:{type:"Polygon",coordinates:["@@Şƥ͉ºη˵ʣ˷Ž׽ѣȅƫƧ̓ʝ֓ƏηɥηįġͰƋӈσŧȭΧÇץ¡͝ϛϑˆÁùСdžĵƿʙé‡ǀɑüɥƆɰφȤİõƶɆҒÅƎөĠЇɤۄբऒҌ־׮Ўˁܪ‹ſѺಚβͰҼժӹ"],encodeOffsets:[[133776,43413]]}},{type:"Feature",id:"PRT",properties:{name:"Portugal"},geometry:{type:"Polygon",coordinates:["@@̦Ɉ΄ŬɂЫӺDƞłӪ‡ɼуϱɩYٽƍū‘Їγçʹԋɵտ̄ʡřɫ̵̿ê˥ͷɓѷŠџġŸڂÿԬϓþȩ͈äռͰ̨ÒͼǪԎkΤǙ̠™˲"],encodeOffsets:[[-9251,42886]]}},{type:"Feature",id:"PRY",properties:{name:"Paraguay"},geometry:{type:"Polygon",coordinates:["@@ͦ৖tҌЖ݌าʔޮ]޴їbʵʞҳÇଛࢲLJ΄ǐ֦ɩǀʣþޓİ͓̼›̀ƌ̢ƳAҥŕӻǑӛƍݏށ١ړƇऻŸࡑɮࠢ౨ťψࡽ͢ਅبۉŸ໵ൌ"],encodeOffsets:[[-64189,-22783]]}},{type:"Feature",id:"QAT",properties:{name:"Qatar"},geometry:{type:"Polygon",coordinates:["@@ÇؔɨѲɰĜʬˁdӯǽӳɵÑʫǖ"],encodeOffsets:[[52030,25349]]}},{type:"Feature",id:"ROU",properties:{name:"Romania"},geometry:{type:"Polygon",coordinates:["@@δǶԴġՠGϸȳ˺źبĄɄȠΠ@ʰćʺʟˊΟӞԁ€ρėΩưϥϒƹЂƊϠƟpɏПǹʯĀɻ৥ӳĖ̪ؑফțзɋ௽¬٥ƀ͙ÕʍΊƵƦȚƘȷŀ˃ȋөʔßΌԟȢĥˌҕͤڪǂԖ֮Њ֬ԢǮ"],encodeOffsets:[[23256,49032]]}},{type:"Feature",id:"RUS",properties:{name:"Russia"},geometry:{type:"MultiPolygon",coordinates:[["@@ࡌ๫కˤԫ்ࠌࡳyוُԒսٱƻ۸Ĥࠊħ࣢Țٌš૴ӯࠜôରަϮͭϴϐŠɔ։̆ߵuࠟΎࡑ"],["@@໵]ਙĨȒτ୊˚ࢢƧψƃęɱäɉ"],["@@֦Ƚțؐᗸű࿨޻࠭λ൛ēsࠑͳǩ޽~ٗ̊ૣʖȉθ࡟Ǝॗʼnҗ̎Ǽ̸৓ȥϚЃӉΣ@„Ꮪٛᔺ࠳ïԷ"],["@@ः©ƭˌੲΖ@ַ"],["@@ળ»@ָň–܈E௒ʉïŗࡽȩ"],["@@ౡMႣĤƧ¬ߘͪੀþஞ͏ĸə"],["@@ॿͩഉø༛ͨȪ˖༨ųᑔɗ"],["@@ډرᶽzඃȣမղҎ׀૎ǂᕞ™ᴬѽ"],["@@ӹóᩣŊɟώູɦūҒ࡮Ƕ…Ҟသܒޙĺ፨݆ɩϢሤѺ᪪բ᫠ǀ෴̸࿐Ŋאͩ֟ʻᲗз᢭Џᤙߝఫࠍ೉߱Ǡۥྎۏ"],["@@ɨгސȲឤYቈЧڬ̿ȽѧङʝᕅүفʟਬşఖɃݴDŽєաτɔഊƂ᧪ƑȴϽ↲ů´ٜᄼƥഄLബѷϮ՝ӹΙੌڋ೔Ϳ߸ࢦഖϙ෢ɦྼʵؤʀൖş؅ޮૐζ䢀ձܐӿᔲٛ₎DŽာƑ۪΍Ĺؙਜʇ૴Ǥ๰vཚǑཪĢะݛਪˎڷ՞ϐώᧆɻფºᝂБ୲ν@”MKઇσઝÖݶҁԄەϲɧĮΏɑɝ༧Ǿ᚝مݛĭ౽ן௛ԧ̱ϣய׊ᔗڇϣ̸ߵΫ૱Ř˓ց৙߽Šͻड़ȋő௣ޭ‹Ϋ۱Δα฽ѕ̅ॡభȳʥ࡟ே޳ׂ̳έ௬ҵለИ୘܀ԆªϾರȊຊ੒คࡺຢڢڮஆ৷ëԍۗᒉइۍਖᓧ˷ᑃටۚԧሙɕಝēÔ؊ಯŶ਩ЭᢵƠ᪏ʟᨩ࿛ủጝ೚ŁаՃࠄȅ՞оईÃௌऍ†܍ځ࠽ë্ϛഉ్௓˯ׇଙ঑ଇॻթӹ૩ӱՉYՇФૻؙſ˩ŝƦKѐіxŦ঴ɛܚܞ̒৶Ʃ֢ࠈ˾ऄ͚̮Ѵݲ൷ʛܯͧ౧Dͻ߄হװหˎ̵ࠖ̉Ԫ̿βԯࡐ̲݇షʢ૛uਯƱۛлҤȥXҩұˑݷࢻRσஅՍ৙̈́োéѯˮԋĞ௷ףેƑޛȻੑƌޫSԙіࠕИࡅŎ੝ŋߏƹ஛ΜLJـধɎށİवΎࢉࢉ΀ӵࠇב௏ɂ࠻Š֗Ͼ࢙^ܳʴ౫Ѓྃܣࢭơ͡çѽԤઍőΧΦחnjЙӠҩưிɍୃӜ҃ѯሟᒒੵٮ̮˂ᑋߍ߭³êҞઅ˺࢙ȱ˃ࢊມǺݯΑᑅ̳Чȹḭ̇ϫ˻؆ֹ߭ɓǀɭ߭ХസֿɁЉ୻˜ʓʟ੹Ѧ೯iࢻΟহͼᇡ׊ಽsჃࣳĿؗࡹӤڡउʖǡӝُ܊֫ذx՚֗ďѝѐƋϥӽ߿Ƒ࠳ࢁކߕĉ֣ࣼফԇ͹ƝɇωÌֿԚɿ†ՅȚʳΈ޵ǮԙƁƥƼଥЖఅƌ܃ƞĹıੱ܂य़̈́ܩӴؒƈۤ۰ҹͪఌ΄uȀݯƉ‚ώѠɼ߼ÖƄ˪ȅҪ΀ѰWʚఉ˚ӭUԯЀ١ƃ੩̐lǒ̗θڟ¤éʼɀǞ՝ӈࢋąʭ¦Ƀȑ̽”ȷ՞ȟ˨NJĀڴ‡͞Ȁʍɢ֥ƪ¼Ʋ΁ƴՃվǸɨĉЂࠑȨѱijšȼࢭɂˑӸíТЙȖάˊʝ޶װӞųƤक़ҬࢡЎᅢ੶ޮӠ͂єగּΆնݳش֢ܜ঍ग़ޢي౿֔ŬךڶüොͶࢀ̈൦ԕᘨȧṺो٤ЋÆ֓टѳ൏ɡ⏷ٔ؟Ńൌ؛ÂϵÆ࡫ઌʯڂɓňРԑΰ՘͈᎖Թ۾Ȳ֣؜ዦࠖޢµ޸̋Ӫ׀۫ԄЪԊءԶᚠˑӔҹ੡ĻNҳڌ˽ಜǼȶ՚ჶАᰪܞي£ࠣԙਬĕ׼˼༾xఢΐफ़ԏॖ֌ࢡӢѪˤ២ʫ୒ʿᴾॣ֚ѰࡡѺ{ǴৣĈˢЌ҅ټ}ː༄ݾրކزǒᕮɛǬұߕڽԺˋ˒חȏଵऒԧέ֕࿫஝०ŭ̢ͮऎɎɞжܮЎөӌϼֈࣿêȫҲڢࡈણۆຒ֦șװмnѴүͧ߷࣐Ƶϥ؄ඤͦლ¬༈ӏݛ۪ċࣆศǞ፾™ᆘŌہѮংւॲx࿎иᕠŐ˪ɲᕂþیȋሴҀ໲aɶδߤΨጤΈ෸˗ଥȷበŹ"],["@@ⵙ͕ໞીےĦقÃᒈӋʟͿ"],["@@૽ōݱÛśƏঙƑ࣫ȦӐʾል~࿞ƶ౨XǢɧӘȬߊƐఞǿ͗ŷ"],["@@ᆳĿᚉʎඅ͎٣׾଩ǔᔆָᆎȎ࿌чኬ߻ȹݯ"]],encodeOffsets:[[[147096,51966]],[[23277,55632]],[[-179214,68183]],[[184320,72533]],[[-182982,72595]],[[147051,74970]],[[154350,76887]],[[148569,77377]],[[58917,72418]],[[109538,78822]],[[107598,80187]],[[52364,82481]],[[102339,80775]]]}},{type:"Feature",id:"RWA",properties:{name:"Rwanda"},geometry:{type:"Polygon",coordinates:["@@ͬӃµӵʏŁѿÆʱӍԛàþҠŘތԄʎɺȰďԈʸ"],encodeOffsets:[[31150,-1161]]}},{type:"Feature",id:"ESH",properties:{name:"Western Sahara"},geometry:{type:"Polygon",coordinates:["@@oҊŸ@@ÉeNjEౝ᪁ª‚ᒷ޿÷ȳћDŽ்ᾓNǽ˫˜΢bCቆäĶ̢ΆϘˤୌୠ࣢Ђ੖ˀÖ˜ټۺĜ̦ʼnϢ@˔ȒԲ‚"],encodeOffsets:[[-9005,27772]]}},{type:"Feature",id:"SAU",properties:{name:"Saudi Arabia"},geometry:{type:"Polygon",coordinates:["@@ʼnΪʩʨÝͲѡ̞҃۴ʁۆׇ׀ϑƐ֋ߠīא–ӾӕञϿ͠ґǨˡӖ°ȎɹѦʕȊ͝زԟڴѓ־лIžҦœ̌ļͲनƅζʶȪ̢ٚŚƒˮˤƜ࠷ࡀ၆фdžŴৢɩబיᛎၕ༠ãݠąȾЏתv͠ܥаȓƠִ̏Λ¼΍ċ˩ł˯ʎɽŐ˟ŲȵʬǕɶÒdž͍Žș࡙͐ᡌщǞDzϪש֕၁ᠽ࠽ᝑ͑޷ϙ׻ࢥϹƕɁˬ͏§߻ĎƷČॹmɫùΉɔɝЭĒΟρˋ"],encodeOffsets:[[43807,16741]]}},{type:"Feature",id:"SDN",properties:{name:"Sudan"},geometry:{type:"Polygon",coordinates:["@@śhdмĵ̀џͨĵ؄ĶبϳÌÍȇԍ©Ȭʕðԍңңл؅џđ۹Ӫͅǥđʓџǃ…ǥ࠵@řǦ؃†̡ƝɳîѝӬƟɲ؃ŗɱϵɏݣ˿ǁʳğå ̅ʎÃʼƌΔE΄ӛՀĩάZȰ̱ʜUӦǭ͖̍µĎ̰ɒΖħΐˢʴǫȞɞ԰ϨئܦÏ¥ ZΚॲH@း@Ὂ@ῼ@˔ࠗȁƳŪࡻ্̰͌ȷҠ̳ыӑأƏ˅ʳĉ֑α௿ĚͳƅܟͿࠟԓзέٛč΃Љɽʝ࢟Dij"],encodeOffsets:[[34779,9692]]}},{type:"Feature",id:"SDS",properties:{name:"South Sudan"},geometry:{type:"Polygon",coordinates:["@@Xٽűʯѿq˷ӏԨÑюХƨͳϦșӼࣳ֫օԫԇԫϭסFگȟՕȊ΋ɭ݉֐ȥάҵDZϱÆɣƕϗĸԗۚƉˊعͪɅԌΕζ֟ѬS˘ҡͼ֯͠ʴĠ̀ǂɐݤɲ϶؄ŘƠɱўӫɴí̢ƞ؄…Śǥ࠶@†ǦѠDŽĒʔ͆ǦۺөѠĒм؆ҤҤïԎȫʖԎªÎȈϴËĵاĶ؃ѠͧĶ˿cлŜg"],encodeOffsets:[[34779,9692]]}},{type:"Feature",id:"SEN",properties:{name:"Senegal"},geometry:{type:"Polygon",coordinates:["@@΍ٺн̚φDŽРמȦќ˾ːкïШǾҶVДʙ֎ɝԘأֈֽžԹǔӓ̾ɿî͗ʽŧ³қâÙģȃk׿ȲЛV༇–ɥħ˥‚ѻƋƏ٢ވkȬŞƮR̸ȘήǯκcζȌǝʐˡƙʻJͧȸˉ_ȍȥࣵy"],encodeOffsets:[[-17114,13922]]}},{type:"Feature",id:"SLB",properties:{name:"Solomon Islands"},geometry:{type:"MultiPolygon",coordinates:[["@@ɾ˿חN͉ԬԈȯǜ‰"],["@@͝mԧĎǫżÀͮֈƁ˜ǭƎə"],["@@ųƹحܰǫԈ˺@̠ڥʹЗ"],["@@–ǛڅΦҟ̠̿˪ŰĐϮȫېϭȢˉ"],["@@Ǘ³οȒ·Ί¨ƖԈΡͰ˛"]],encodeOffsets:[[[166010,-10734]],[[164713,-10109]],[[165561,-9830]],[[163713,-8537]],[[161320,-7524]]]}},{type:"Feature",id:"SLE",properties:{name:"Sierra Leone"},geometry:{type:"Polygon",coordinates:["@@ɧØ؁ͺѩ҈Ƨ̬Ĺت҆τĬɺƞǸɶpȜǂڦCɺ̛ǼˁʓƈɗṶɴ´ϹϹϛҗ«ʓȩˏ"],encodeOffsets:[[-11713,6949]]}},{type:"Feature",id:"SLV",properties:{name:"El Salvador"},geometry:{type:"Polygon",coordinates:["@@ġȡӡ^̡Ą΍ǘұÀʃǶ~Ů˾ɄǀĢ«IJȠ¾ʜëǸǙʪƇŒœτĴǤÑŘĝÏͳ"],encodeOffsets:[[-89900,13706]]}},{type:"Feature",id:"-99",properties:{name:"Somaliland"},geometry:{type:"Polygon",coordinates:["@@ϛԩד۫۹Mᩧা͍̜̳К̳ҨǾ̖̲҈˚ƹǒΏϜΗкGߊɌࣴĴ݌ʼиÆ̚ƶӎˆKaE΋Aࡑ@ѫ"], -encodeOffsets:[[50113,9679]]}},{type:"Feature",id:"SOM",properties:{name:"Somalia"},geometry:{type:"Polygon",coordinates:["@@ѼĎЊ˾͈FpɵýӧHѳǯ̣ʁࣥЙयԱ੷ܝ௷ܓवধ଩ࡁڹష࠯޳ٕँৱȗѷȍȣӽۚWᵤܾ॒ɰˆբfݠפબšᛜᡄה۬ϜԪ@ѬBࡒFΌLbːhϰŰ"],encodeOffsets:[[50923,11857]]}},{type:"Feature",id:"SRB",properties:{name:"Republic of Serbia"},geometry:{type:"Polygon",coordinates:["@@Ԡȡà΋Ӫʓ˄ȌȸĿșƗƶƥȷȏø̫Тγ͋ʿƗˋĞijƑšϳa˹µƒØĴĴĦȴšKǍƼƑ ŋƆƽÀšŠƯ±ś˧ȩÑèð͋Ǩ˟ĜūŜɟƠȢšŬЄЛ͔ɀτ̥Ë͔́ˉʈȱ͘٢ɚԾ™ҖͣĦˋ"],encodeOffsets:[[21376,46507]]}},{type:"Feature",id:"SUR",properties:{name:"Suriname"},geometry:{type:"Polygon",coordinates:["@@৔ǙĞưڶÔࣚɥѩܟâֹͤӽƥίóϩɉΛӓDzЇđ͹öčʏƘǗ÷ǡҙèԡܴōӄˏBωؐƺѠ¯ȤԜɖƈݲ"],encodeOffsets:[[-58518,6117]]}},{type:"Feature",id:"SVK",properties:{name:"Slovakia"},geometry:{type:"Polygon",coordinates:["@@´»ΊŖш̕ӺǶЈđ؂Ţߚ͓ɷɓǏ͹dzđ࣑ʮ˟»ȟȡЁĿěÄХŽͭ}ãǙ۷Ļ̱ĠёɌċ̆äńŢȂόa˺ĔxþLj¢ÆȒȖ˜žưʢD"],encodeOffsets:[[19306,50685]]}},{type:"Feature",id:"SVN",properties:{name:"Slovenia"},geometry:{type:"Polygon",coordinates:["@@ۜÝъȐܾtLjƘƘUǎ˳ڝɟć͹̇đHɻͣh˷ƎƷƙב†ȈúȫΨĞа"],encodeOffsets:[[14138,47626]]}},{type:"Feature",id:"SWE",properties:{name:"Sweden"},geometry:{type:"Polygon",coordinates:["@@ࠁוƀԥ೹ڭྱܡؓஃײףߦүޗॅ࢑ȝ͍තӋ޿৳ĆӅڗঃˉߐ۳॔ٓஐφӜּۨ˦ন՝ю½ૠղ߀࠰ä̧ͬ˺ಬஂࡀञֈײ߮GɞҶཔƉŬքԸ”૪Щ಼ֱv಑˴͛ฃʃ"],encodeOffsets:[[22716,67302]]}},{type:"Feature",id:"SWZ",properties:{name:"Swaziland"},geometry:{type:"Polygon",coordinates:["@@ǡύӭěԅҖS̄ɰ̀ĂʔʐÒшƵŰϕðω"],encodeOffsets:[[32842,-27375]]}},{type:"Feature",id:"SYR",properties:{name:"Syria"},geometry:{type:"Polygon",coordinates:["@@࿩ࣅऩͬgNŖŶ_ΈȸҠҜ̈́Əͤϗ¨ÿٞȶΌɤȀɤȀ°Ҹ˞Ǐऎɺ҂ƿۖFॴ̀Ґaक़žїԽҡȹĂؗͅ৫ᇵ࢓"],encodeOffsets:[[39724,34180]]}},{type:"Feature",id:"TCD",properties:{name:"Chad"},geometry:{type:"Polygon",coordinates:["@@ĎЄաnDզΓ̶δ૊ੴߌ¬ન͖ၼǼΰΓ˾_ˌ̽ɔȷರࡔҠ…ྑ…ྏ¦ ܥÐϧإɝԯǬȝˡʳĨΏɑΕč̯̎¶Ǯ͕Vӥ̲ʛYȯՏƛэͽ؉ࣹ߅ϳ߹¾ʁûĊ̏ѫ̋Σ͟੓͏ȽȐƓhƹɍۛÙƀɪ˅ׄşΐλƜӷӪǼІϦċʂÐҸSқކŒ֐É֐ͭՠ"],encodeOffsets:[[14844,13169]]}},{type:"Feature",id:"TGO",properties:{name:"Togo"},geometry:{type:"Polygon",coordinates:["@@ڱdzȇ̎ɡՔãкȆݴɁ̬ăڎD؎ΕѠÖˀ݂kŅѵʲʝ̈̋ŽЭǜǥኝȺׅ"],encodeOffsets:[[1911,6290]]}},{type:"Feature",id:"THA",properties:{name:"Thailand"},geometry:{type:"Polygon",coordinates:["@@ݭϬܗeŬڈ݉Káऋґ௯˙ݏÌ؋ն΀ދưܭҶӓԚĭѤѧ˝·ևĵßќۇςƣƭͧ͒ƝжҁӄПЌƏӳǃҲĠԾʚ߬ТࡸҤ޶͟ތ`϶ĩҸ֕ښȩф̄ƺ̮ܶ·ֆՓؘН݆ΠƴϦࣦצœӬθӔȘθʷ´ԍ֨ȷࢭpݫࢰԆʤƧӰzǜَ̊ÍٖڽÀࠥںܷ›܅˙ϛ޿ŦગDž՟ۧȤ১"],encodeOffsets:[[105047,12480]]}},{type:"Feature",id:"TJK",properties:{name:"Tajikistan"},geometry:{type:"Polygon",coordinates:["@@̭ʷࣳƖāӛ࣬Þਢ˗འŶɈާˠĐԜȓ‡͛ŴӍࡿBׁØԻϕύĉ̉ǯͩˠþ۸ʩ¢ĞʲғȐα̇ė͹Żūԇj˕ϩ˯nj؋ˑʱĺӀࡘǹض؟ȨɔφۮŸЌҬˌբ૲ȜǩϵŤɹΎv"],encodeOffsets:[[72719,41211]]}},{type:"Feature",id:"TKM",properties:{name:"Turkmenistan"},geometry:{type:"Polygon",coordinates:["@@ñۼطŠॣݔڣĠगюׯþσƽ֙|ׯӓ݇NjƻרŪ࢞ٽ˶Ɏֺ֏¸Ȇ۾ߊȵ݈ˎؓԎʉӔڱɋď؛ʿհψ˨ॖǪ֨ɻךڅњ¤ॆ\\Əцܖ̂۾ӦଆѹĜڡ͐ǣࣦžˮƳаࡽ०ׇոЃ࢞Щ૤Ϋwԥʩ€Ѕɤſ̙۽NjǙڥӁʭڏŵǫϟهŏࡩ͈"],encodeOffsets:[[62680,36506]]}},{type:"Feature",id:"TLS",properties:{name:"East Timor"},geometry:{type:"Polygon",coordinates:["@@IJȤܢȌז†ˀŀ͆Ľ̯ɫ࢕ο۳ʋeʬďǔ"],encodeOffsets:[[127968,-9106]]}},{type:"Feature",id:"TTO",properties:{name:"Trinidad and Tobago"},geometry:{type:"Polygon",coordinates:["@@ӚŊǮ‡‘صۭġƯúʒɲiͪ"],encodeOffsets:[[-63160,11019]]}},{type:"Feature",id:"TUN",properties:{name:"Tunisia"},geometry:{type:"Polygon",coordinates:["@@ΩພԭͺQȰۉԄóنԮҶȢۚƃߠǠќࣶͺךĵ}ы܊̲ÒljпЫMϱ̆ȽōܫփхDŽқѤaɄЍ͊ſ³٥Хʋʵˏֽ͓ĘΑïΟЧț"],encodeOffsets:[[9710,31035]]}},{type:"Feature",id:"TUR",properties:{name:"Turkey"},geometry:{type:"MultiPolygon",coordinates:[["@@஺͗ঐżܤõলѬࣆ¢ߴЭƜ̑ăУزȻͨʕֻʇˀ५ǏʻҠڧЕƙ̏Ɋ঍ňίŽॗŽҏbॳ̿ەEҁǀऍɹ˝ǐ¯ҷɣǿɣǿ̱Ϡ͈͂ԟí۱ȖֿәౣĥڹҊࣟ†ȗΑׇij߻҄ࣻeӽ࠶ؗҰЦٸՓВठߨಒ’Μྀٔŏ৞հ঒ʄർlุף"],["@@۫ҏ˃Ϻ\\ǦȦĦʺՂХɞࡦ˄ܤőĴ͓ܼ˓Ƶȵি±Ωʷ"]],encodeOffsets:[[[37800,42328]],[[27845,41668]]]}},{type:"Feature",id:"TZA",properties:{name:"United Republic of Tanzania"},geometry:{type:"Polygon",coordinates:["@@ƚġᵂႋÌӣ஼࠿ϱਙ¸Ӊՠ̩~ɓɳԓ¶ʭÇГ̌Ճΐ̰ࠡǿڝӣࣿ͛ԋb̙ʥבsɕŃঢ়ʂكåɽଢ˵ϺǛɶࠗƾӉʨՕƘͯƘΗɈґ੖ӣҺǗӤČѨƯޞΎ ̨̦͜ѬȺǮS˘ǷȐ·ͨʐł¶Ӷͫӄ̎Ķऄ[ႎà"],encodeOffsets:[[34718,-972]]}},{type:"Feature",id:"UGA",properties:{name:"Uganda"},geometry:{type:"Polygon",coordinates:["@@ः\\̍ĵԇʷȯĐPوȜ͎²ڬǰϸ͎Ѭ͔ɠ˒̘͵Ŗ¼চΌɮՖȉڰȠעEԬϮЊ׍İсτ९̧ؓЯ֋ʉͽTࢹႍß"],encodeOffsets:[[32631,-1052]]}},{type:"Feature",id:"UKR",properties:{name:"Ukraine"},geometry:{type:"Polygon",coordinates:["@@̾“ɄȒʮ¥ࢌĆ՞Ӈȿǝêʻڠ£̘ηkǑ੪̏٢Ƅ԰ϿӮVఊ˙XʙͿѯȆҩƃ˩߻Õџɻύڡã֑˕޽«ܣ̻¸ԹЪȭࡨ¼Ǐ̛ँơଛӟұǠȄЂࣽʘƨLjߪ˪ʑȔಯɆË̼ީĻ̷ҧٱةϟƠЁƉϑƺɂĞƦ˾ɲˎÑƮǬäĊśӸ{ɞØƽĎÐŲ̉ɈŧΘ̩ƐÒ˶ϝɦΉŽأʾ֑ĉȧŭΟ@Ƀȟاă˹ŹϷȴ՟HԳĢγǵÍɤұɮǐͺɸɔȀµɑϘބۦиİĜɾхܼДҢɪٲnࡖßबȫڎi͂ŧ̀Ʀɚȝݸ¢ͮąÄцʶȂܞº"],encodeOffsets:[[32549,53353]]}},{type:"Feature",id:"URY",properties:{name:"Uruguay"},geometry:{type:"Polygon",coordinates:["@@ղĚࡆٯ̺|ࡺ՟ڈҫӠֱχЉɸӇεՇॉұاǚғěޥΰ֫ԟҬÞլǾȈS࠸ɤࡺȾڦ"],encodeOffsets:[[-59008,-30941]]}},{type:"Feature",id:"USA",properties:{name:"United States of America"},geometry:{type:"MultiPolygon",coordinates:[["@@ũƕȽŤ|ɾƓ̨¦ĤƤƎÍǔ¸þÜe͐ƙƬñƌőɊ̍q¯͟ǵˏſ"],["@@˭ÑƟǮīèQÀĈî̘āɘŹëĵ"],["@@ĝ҉|Úĸа•"],["@@­µÓŻˆŃȒ’ɤŚêÃʐ˥"],["@@ıĉ˱ƴªÖŸĈȘijȝ"],["@@Ƭңʼƛז½࡬ƅࠂʹڼŊਖɓ˞Tݨʄ߂̧ࠒ͗ں˩ٶˏĈəȢĉ½ĉɦǎĔ¦ȣǜƅɴ@ŬĹĽƫ࢖ЁǶށǚܳʗӹЁҥȁ̍mēĦť˸Ɓɂ@ঊ҆ࡾƀસмfĐ÷ʰƉǒϜƆࠜHޘAˎ͞ŀàࢶ؄ϜƸ౦N໾BĎȺː¦Φž̖Ϣʲٺٚي˨ə֜ƜώʏAଧռӅƢ˝࣋Пࡷ̃ࢱʝѻӿƛȋSѽˤѽΒsė̬ʦȇãʇ֥ƋЗhةƥλ¥ӥ¥۫ʏఀǂʠǃ୳ʥ՗C|ĺʭɷʚǹ׽ؑ٧×Ɏȁª˟ɀǪҍȼƭ^ͅˏ͛ҿڡûʺֲѕ͎įۦljεǴՑևƀׂ˓˜ߛʊÍĖ̃ŠࡁՕدࢇʝցӱнÁэ̱ţ˭इձӁЍЅӽŻׯƪ׍ˬܗώשLεЊঅ֥—͛ȿԡʣŃЯĺƁς͋ȖѻܢϹٞű͢Ǥ֐ɽҦٻ۲͟źࡑϡƭ¦СϼՃȺोŁݗĤٙÍΏſƲɟaͽǴǓLJō̵Ů́ǃ؍€طѺܻĿ؏ȚԹÏۻȝއح࠳γҝБȕϗUׅ¨ЕDŽ˹͝{׭ȂٽʺɽЄȁטӷӐ̃ӰуֺףͲۉgՉڑۣʦѡʪȽҦ˧Ѯӿτїˈ̩̖ป@C΋ڗ@ဩOቿפ౓ТĀǒ੩ĝॕÝƙіխӚϻĴğʌһ¦̝ɪޭĊɉƌĹҢࠁࡊ۩ୠˆȚχˤٯ۴řۆ҃ҞȀۢ…ܜˍ٢͠ߊĸނĺނƱૼˇܘʓ϶ĸǐ௒˷҂ߋȺɜƇې˷ێᛸ@᠂@ࠜ@ᢢ@៚@ᡀ@ᡄ@᭰@ᮞBაAF͔˴J"],["@@࠽͋ѕɐŽЀބ̘҆Ÿ֐ÉΤʻܫЍ"],["@@ԧŽսƾԛɮࠦƞښùĂ͑"],["@@԰DžԾĒڸɛ࠲őéĝُDZٕǾ͋Ʋݍµȧôº̈́"],["@@؊ϛώnjහ»¹ȕ౾ƛࡨČᄚ˅ྤā٨ʼn૦Ǝౢʧࣲŝ@@MᷱIⷍࠠ{ࠌɵהρݜցࠈҺࡈ˖Ҁѡ֤·ޒϙՂ׽࡮य़ේ՗xՋұЙҥ͂ݍˌʃܺએںҍߎ߯Ä೷rটʌ჉ࢎߩDŽ฽̜୑í࿻ϬৃΨटǯǦ׏ҫÁঁǫ݉˱झdzťӶϚࠚࣀʶɱɂੱҵֵ֑௅ױؚСߏ׿ࣗΗࡁʱȻωಽѡ˅ϿছΫֽÞ޷ɻ࡝˹ۧ˫෹ʉſƘऀϾࠔʸࣆҠਬĨвΈ୘ԊȈǚب̒ƢْђӸॹʫ˓Ơҕ̧շюɧ̝̽м࠿ͳԩBïԄƲ̮ե̚થLJ܁ЀַȬIӈ٩Ϊ͘ӘۆҸ̚њںÖ־ƇڴМ؎ï٘ʼƻϨҹưج͖ԩWࢻǽʯȃڏȄஏĥ௷ȬΛ͸੟Ӧ୾ΘመШ۔@ŕнᄢŽڽԶਕ͌ױр߫ΨଽˈҺѲ๰‚ਗ਼ϦȨФ࡬ЎࠊĪཪώޜÉಐ҄ౚǭ"]],encodeOffsets:[[[-159275,19542]],[[-159825,21140]],[[-160520,21686]],[[-161436,21834]],[[-163169,22510]],[[-97093,50575]],[[-156678,58487]],[[-169553,61348]],[[-175853,65314]],[[-158789,72856]]]}},{type:"Feature",id:"UZB",properties:{name:"Uzbekistan"},geometry:{type:"Polygon",coordinates:["@@xԦૣά࢝ЪշЄ॥׈Яࡾ˭ƴࣥ͏ǤěڢଅѺ۽ӥܕ́Ɛхॅ[ᶾᓘӺƾïದ׻یͅߤݵঢŪ෸à৔ؗÙࡅЦMǢۍ੬ɲЉ̺Lπ׺૎הӖƺʠĉ۵խئ́ײȾ়ѷ੽؁ٕĊ΍uţɺǪ϶૱țˋաЋҫۭ ɓυؠȧǺصҿࡗهǰҳN"],encodeOffsets:[[68116,38260]]}},{type:"Feature",id:"VEN",properties:{name:"Venezuela"},geometry:{type:"Polygon",coordinates:["@@yȣӱĭ˜ϡYѭυӥ͆ڙδÆȌ؈ʻ̒§َਸ਼΀řІ̎ˆ̞ןל_մҵ˧ݮQ࣌ĔӖϕٞĻҼʾXɄਨ¼৖\\܉ʛ˼Їڦ×ِЯƆڧѬn͢ȣڕӱó̫˾̷ȽƽԫƉjϱɫɱّ֪Őʁ̭͍ऱ̽׿Žʏȣڛɀثņƿýϔɑ‘֝ŜՉ܆ï°ǭ׷ʅĭΣΉƏسȝNjʱٷÅҧѼʯ࠺ɟ̧̌Ȅюм…ȊʅʠǛ֒à׼Ȉ˰ƲҎ̓Ơӏĩ؁®ͻęסܢӥńઉăȧ̊ȷê‡ǬĴ̶áͺȃȂŅϮѡÈɸӮĺ׶ʔ̸͘ʌɈрդƖ"],encodeOffsets:[[-73043,12059]]}},{type:"Feature",id:"VNM",properties:{name:"Vietnam"},geometry:{type:"Polygon",coordinates:["@@૭ܗ۫ߍȁ׍٠ࢭ޺ળނԱԞګϪ།ŕ๓۫փ१եۇ۫਷ޱ̧ՠʀ֬دӌܬ͸ࢦÔσԚප٨ļ৖ț֖ƶࡀɃצٍאՋ݌ۥ঴৓Ԋʊ̠՞ɘ͙ܺਙPϕކӭڐҊȴڢIࠈĬܒ҄К̿ސƵƃӛАͿࡎɓ"],encodeOffsets:[[110644,22070]]}},{type:"Feature",id:"VUT",properties:{name:"Vanuatu"},geometry:{type:"MultiPolygon",coordinates:[["@@ˣō˭ςŒɤՆӗ"],["@@ƌڱɥŀǩ­ťɴi٢Дʵ"]],encodeOffsets:[[[171874,-16861]],[[171119,-15292]]]}},{type:"Feature",id:"PSE",properties:{name:"West Bank"},geometry:{type:"Polygon",coordinates:["@@@ԣŭʙЃŕ˜ɜɌŚɁĦǬ̤֔ś"],encodeOffsets:[[36399,33172]]}},{type:"Feature",id:"YEM",properties:{name:"Yemen"},geometry:{type:"Polygon",coordinates:["@@؉ɥNjύo˹࠷Οഇϻݩףυ±ʥºӭΑ՗lj۷©ɃµǿɛəÕŻɇеlˍœ׉¨ɓӬzҠƍʜǑتʋΊǚ¤đϨĸNJ™ξςˌđΠɞЮΊɓɬúॺnƸċ߼č͐¨ɂ˫ϺƖ׼ࢦ޸Ϛᝒ͒ڀ൳˞ח"],encodeOffsets:[[54384,17051]]}},{type:"Feature",id:"ZAF",properties:{name:"South Africa"},geometry:{type:"Polygon",coordinates:["@@ǏŧΣяɻћӇ׻ोࢁףԋًϣ࢛͙ѓ«ŇɷԛŰеDž࣫NJԙĹΏ¬ࡿͩܓƃԱͅϡoΣ̚˳fαϒŸśŏɦLӰ˙֞˔ƴs٤ս޼х܈AF׽તДдͪɯƘΫϘÓՈǃҌÖݤіB᷌ɨűӾߙûԟȈ̏׼ĒрϒЊʨȶДЦȚΠķВɽۂ£՞ȜĐʾƨДҚäʨ͂˪֔ݮغஒؤ΂UОƛ˲Ķ҂ċД஁ɔׯƫऩî̟чƶʏÑāʓɯ̿T̃ԆҕӮĜǢώْQȿؑıۥɑϛֵщ","@@νʶϻǟҕ҃͡Տـ٧̜ČƺˎҴƀƜ˜ʴФ̅ʪ"],encodeOffsets:[[32278,-29959],[29674,-29650]]}},{type:"Feature",id:"ZMB",properties:{name:"Zambia"},geometry:{type:"Polygon",coordinates:["@@ІϏɊ܋ƝɩǙڻLjۡ˃̇ʭޭѶɓᢇۗĂׯٍřӍͯĹ̛̅ßܵۓҭխ˳o˗ĬऱĠƯÚOêͧȎկ¶ۋȑչԾ֣یžᦶშYí̂Ű̀ƧЀĪТėʺ̂q¶ʽϾrՖûˬϡڨŝԤˆȌѯ٠ş̴ΧΈҥ٠Që࣠ɱƳח͞ɧƬļࡈƬসȉψʈ՚ɤĶ଀ƚͦđΘɇͰƗՖƗӊʧ"],encodeOffsets:[[33546,-9452]]}},{type:"Feature",id:"ZWE",properties:{name:"Zimbabwe"},geometry:{type:"Polygon",coordinates:["@@ҁČ˱ĵНƜ΁VՙϞٯźʙՒC̒έĞ्ई˃ӢǛƮ͓ڤलğ˘ī˴pҮծܶ۔̜àĺ̆ӎͰَŚÆ̻۬hϴǯǺȻАÓѦˑF੟Ǐ׋—عƊʝħӵŵùɛ؅ࢫ॓"],encodeOffsets:[[31941,-22785]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/xiang_gang_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"8100",properties:{name:"香港",cp:[114.2784,22.3057],childNum:1},geometry:{type:"Polygon",coordinates:["@@™@}ScTʟ@cWuJÁ–]„l¦RLj¼BĄà˜ ŽH@TOHCTDDDHDNAT@PEHDDNJLX@BABALHFF@DKHADBBLDHHFBLEJB@GDBBFBADDB@@KFAFBBJJA@BB@@FFDDADFF@FADDDBJC@AFBD@@DDD@DAA@D@DB@DHHBFJBBFEHDFAN@DGDC@DLCBDDCFDlAFBFCBEF@BC@GDAB@FD@DZJ‚X´HĐMja@Ý`p_PCZ@lLnRGSDMFK|a\\Y}­ƒ§™Mën"],encodeOffsets:[[117078,22678]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/xin_jiang_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"6528",properties:{name:"巴音郭楞蒙古自治州",cp:[88.1653,39.6002],childNum:9},geometry:{type:"Polygon",coordinates:["@@˜@ÈÒĊanwŎV„™Ȯ¦ͪŃĢ„ÜōȂçČéƐżLɆóĊ‚Ċaʊٱ¯²Um»ˌmÈ»V™ʠţWÑůǓ郙ôƑƒğÆīŎī@Ƿ™wô™˺LÞ¯ƨVǪуšĢ™ȘV°wĢŽôk°¯ƒ»΀@Ȃ»ĸŽǔ@΀ƒ͔ôôLɆó̐ÝɜLɲōͪƒƨóŤK@ī@IU܃ÛmȻţǩÝ˹ÛljťǓǫō@Ɲ²¯VçōKͿŁΗÇţ»ƽ™ɅƑLÓŏÅÅɱV@ÝĊU¯ÑĊĭÞLšÞŎJ±̃XȣˌōlƒUÈ¯ŎKÆƅ°™XÑܱnŗġV¯™óaUƒƧUōŁ„Ñ™±„çɲ¥lĉkğ°ƒk¥˜ƒnğţL¯ÝÝUƽĬ΁lķ°@„ō„XÿݯV»ŹLʉÞɱŤĉó°ÝJ™¦ÝKÝ£ţܙÈĉ@ƒxǩUċƑ@ky͓¹™`U²ĉVġ»ğa¯¥ť@ĉ™‚ó@ŻÛÛJƒw¯nó¯ġWƽʩķÝɛwĉĕݼȭÞķō@ó£Å΀ƑޝôȯÞ¯Ȱ™ÆōèĉXǼó@ݚnºƒĸ„ÞVƜĸȚUʶõˀĵĖɱŎÝĖVࢰӒѢ°˘nϚVˌ™ÈmɼĵŦW¤öʊõʔ@°ÈXVŽ™ènŎȁb¯ǫĉ„±Èğ`ġwōÔğ»mVVށ„Ý¥ó@™ĸķô@ššbX„ĶmV²²`Þ_˜˜ɴbͪȰ„ÞWĸÈŌmބškɲŽÈUÆ»n¼ǬVķĸźô¯°n¦ɄǜÈ"],encodeOffsets:[[86986,44534]]}},{type:"Feature",id:"6532",properties:{name:"和田地区",cp:[81.167,36.9855],childNum:8},geometry:{type:"Polygon",coordinates:["@@ƨ¥šèź٨ΘƑᩄbUࢯÞĕɲōĶĕöʿVʵķșUƛƒÝ„ķm¹Þ™ô@È»ĊWŎçšÅ°ȯȰÝ°óƒÆͿĉ»̽çnƒmɱĵƧºóU™™ƽ@±wóL¯°̻L±Æ¯Vƴķb¯VÇ¥ğ²Ǖbk¥ÇKlÅɱġ@у™óK@™ÇaÝXğţxĉČǫķê¯K@уaŹ„ƑKƒ¼¯Vóaónġw™óÞéU™ġbóĉğÇl¹™aUóğKW„Vůn›ÇŋƑ›ķnʇ»óxĉw™çǰÅw™°ċ„XŽ™„ób±ƒkÈÇJ—ƒm²ţx@ÒݎšŦǺn„ó¼n°ÇbUÒ±¼XĸĠłƽXmwĉºƒzÈÜmnxmx²ĖmҚbnŽƧêUºĊêÆVóĖóUĉ¼ÅĬƑ°ɆƆŻŚlłÞLš¼nĠƒ¼@ޙšÞź@ŎÞ°VšɄɴжϼِ͈Ŏ„"],encodeOffsets:[[81293,39764]]}},{type:"Feature",id:"6522",properties:{name:"哈密地区",cp:[93.7793,42.9236],childNum:3},geometry:{type:"Polygon",coordinates:["@@WnŐÆĶL̦ţºź„lxÅĸƽŚ‚Ʉ—Į˜è@ô²ÞUĔƐńV°¯ĸX¦Ɛm̐bƒ»Ɇa΀šĢ™ƐLˤ™ȘÑnƒІljĸÿn¯ĶaŎ¯ĢĕȘ¯°΂œla¯¥™ǕǔwˤӱlťО̻nŻmɃĕċţUw°WUóƨÅţķ°ýV±óÅǓéʉ¯ƽكéōǖȁÝƏůǕw˹ǫȗǓƧǕVý™é@ĬţLƧôͩ„ɱŎɛK̏ÞɅôóK@²@°ōؚ¼lŦ¯ŰóƜÛlV¼ķ¼ƒ°kȰ™Ű„ĠƒǬ™ŚÝŎmˁ`@ÇÜn„"],encodeOffsets:[[93387,44539]]}},{type:"Feature",id:"6529",properties:{name:"阿克苏地区",cp:[82.9797,41.0229],childNum:10},geometry:{type:"Polygon",coordinates:["@@VƚxˌŎÞŎƒ°n„ȂÒ°²VĊ¯VğƾˍǬƨÞÞKÈÞĊVźôɆÞĢèԐôWȲŤVÞĸʶbl‚¯ôn_VÆĸlmÞnVź_ĸ¼Ȯmǖ„šéĸW°°„ĸJ„kʠ¼Æw°¤ÈƒlxɆzČºĶI²ÆǔUš°ô@Þ¦‚ƒUnUĠ¼ŎÓĢxĠ_²ÇĊƒǬ°ŽȂamōšçUÇW@¯öʓõʉX£ĶťnɻšÇUˋmϙ¯˗ӑѡᩃaΗƒœɜ°xWƴUxɃÒˣ¤Ʌwğ„ʉōóÝŹ±°ȗ@¯„ƃ²¼","@@ō™гwȁ¥Ƨ°ŹÑķV™¼ÞêĊ»‚lĵšm¦ÅW@ĀôÈźaɜxÈbÞÆĶIОŘnIÇŃÛÝĊÑĠƏ"],encodeOffsets:[[80022,41294],[83914,41474]]}},{type:"Feature",id:"6543",properties:{name:"阿勒泰地区",cp:[88.2971,47.0929],childNum:7},geometry:{type:"Polygon",coordinates:["@@ɲˣĊIÈ¥‚ÅU±Ċýkō°ƒĉƽó»ĶƽXóʵʵ™ȯƑÅȁɅ¯ĉ@ÇሗK֛@@ˤV֜ʵрƒǬVĸƑŎ@ƆϯÑóŽķ@ʇ»ķ¦έmlÈĸĊX¼WźÛÞÝѸ‚ĢČþ„ĀĊôάVö¼ĊUƨ°°èŎČUÜÆóôVôô޲êȘlˌç°`n²ǬŽĊaš™ƒÛ°±kğmm»š@°ÝɆÛÅÇVaݍVm͔ğôÝÈb‚„@„ƒ™n¯š™ÜUĢÑĊ@źīżWŤÈǖWôŁÆI²ÓƨL@ŽĊX„mmÑÆ»ȰÑkƒĶō@ý°m—¯"],encodeOffsets:[[92656,48460]]}},{type:"Feature",id:"6531",properties:{name:"喀什地区",cp:[77.168,37.8534],childNum:13},geometry:{type:"Polygon",coordinates:["@@Č@°ƒĠ„ôÓô@Ŏĉ@Ƴĸ@Ť£ĢlVôWVóřXĉŤêÞ@ƐÒĢÑlèÈV@šĠIk°ÆŘ@ÈÈĀ@ǶťÒğ@š„@ÒĉlŻ_@šƧĖÅĬōÆ@bźÞnƒƒlVœÝĬšWƼʇ„ƒÝÅ@ÇÅÈwWóĉ±ğz‚ĬČƨƂÝIĉݯbÇÑĉƒ¯ʈV°xUŰĊ¤ƪ_ôÓɚI@lȚXȮ™ŎlɴȘ՘š„¦ɲÆʈ_ɴŽźŽôÞʊŎĠƒɆxˤ£ɄÑVwXƳ¯w›ɛŹ٧™çƧ¦ōƒُ͇еϻɃɳU™Ý¯@ōÝŹš™@݄»mğ™»ÝKkŁżřɅƅƒ¯ÆīĊ»ôVôĕÅUĉéV¹ƨém™anѱĕnwmwnÇۄyĉ¹ŹlŏkĵèķmōÞġKñÔċKÅèĉzƒŽ„ômxȗÿƿI@þÅČÝKݰ@¼ÈVºš@Å̚ÆUċłn„ÝÆǕČĵJm£ÝJ¦@ĊƒxV°ƏLċ¼ǩ™@™m@ÅĢómÇÆğ¹Çš™ÆšĖÞKšx„wô¦ÆÑÆL²ÆƾŽU„ޱŚÅŻĖ@ĬŤÈñ„@ǔÇx„Èǃ","@@VÇ™ţ°ğUĠ¯mk¯ó¥ķIġÿƏbƒ„ĉa±ÒĸĀlKU„_m»nwšŽ„m@ÈŤ¦ĉbÞ°±Þżł̦°ĢŁVé"],encodeOffsets:[[76624,39196],[81507,40877]]}},{type:"Feature",id:"6542",properties:{name:"塔城地区",cp:[86.6272,45.8514],childNum:7},geometry:{type:"Polygon",coordinates:["@@ήnĸ¥ʈ¼ĸ@ôϰÒ@ƅƒōUķƑǫʶпU֛܃LګK@΋ĸ@Æ£ÞġÅĠċšLV݄»™@Å»Ýnm¯š»nŻĊ@nķŃ@¯ómóÛÝǟ¯aÝóȭ¥ƒšōUmxĉbÇї@›bUº¯X¯ÆƧbVÒĉnǕw¯°ƑŽV„—ŽÇ@kx±Uƒšɱn™ŽÅKƒ„¯ƒĠǠU°ɜL@°ƒxnĬ‚ĀŋŎÇLƒŽğšϱÞέƜkôÅĀǕłƒĸĊŤUṴ̋„¦ȂϰÜɨ°x@°żǠÆƈČVĠ»ČL°ÇšbĊÑ̐óÞlĶwބɆVÞwǬxǪţȼÜLŐĶˢ@","@@óKĵĀV͈ĉłƾNJÆŤƒzXl°ƒÆL²¼źŽôÈĢǔ™¦l„ô°ɜÞʊĠğŃm»ʵƳƑʝȗīV¥¯ĉ°Ñ@ŃÅI™»ĉmğn™ƒašƒċƨbš™Vğ—w›ġ¯@Uōa™ĉÝJğÑÆŎkŎÞĀlꃦ"],encodeOffsets:[[87593,48184],[86884,45760]]}},{type:"Feature",id:"6523",properties:{name:"昌吉回族自治州",cp:[89.6814,44.4507],childNum:7},geometry:{type:"MultiPolygon",coordinates:[["@@መL@ȰĊȂɆƒÆĊ£„ťôWÓɆbĢÅŎƒÆ¦ČÑW¥°ķU¯ƏŃVē±Ý@ó—ç˜ĭɃƾřÆķkwʃŤ¹ġ¥ĵKŏÅXmˍщwǓ¤Ƒ@wóōVķ£ɱšġôÛa±Òȁ„óèţIVŽƽ¼k¤ó¹ġJmx—»ÝUƒ²™@ÅÆƒĸǫŎ„ĊmŎǬ՘"],["@@Þô°bÞǠôÜôn@°ĸń˜Ƕkłƒ¼UޙKğȂÆÝĢŤķ@@ΌڬL܄K@ˣȂ˭lĉńW¥ĵVÆý@ŃÞēUŃȗƅ@ŹƩǕĉ»k»Ç™VğóřX™ŻKƏŽċêȁèÛŎġƒͩń"]],encodeOffsets:[[[90113,46080]],[[87638,44579]]]}},{type:"Feature",id:"6530",properties:{name:"克孜勒苏柯尔克孜自治州",cp:[74.6301,39.5233],childNum:4},geometry:{type:"Polygon",coordinates:["@@ˎǫĠƽ°UUĉ¯±ȁÑmƒ„¯Ýōˋō™wUű»ÅƑ°ƒȘ@²¯ɳʇ`ɱŃ¥՗™ɳȗōkȭšșW@kəJóÔƩ`ĉ£Vů¯wU°ʇĊ„ÈÒ°aĊÞÞJŁċƧīĠyĊ²XôÇxÈÆÆ@„ÞʈƒÅ»™XÞīU›Ƒkm„ŹÝ@aŎÅÆīƨĕ@™ż`Ċk@љƒĠ@ŦÑ@ǵÇÿ@ÇÅŗl¯ğJ@™ÇUkçġÒƏÑÝ@ţéWĊôŚUŽóXUġkţ¤ķ@@ƴōĊó@óÔğƒ¯„ċ@@Қ¤kôˣŰ͓„k»ƒKX¯ċwƧôğɐšÒôIVƙš¯UķǬķšnŽ™¼ôb°ÒȰVVÈÞ°ƒĸó¤V¼°„V°²êƒlĢ҂Uƨ¦ôȰƴĊVV¼ǖIċĊ„ÞɜéšnČW˸Ǹša„řÈw±īšçĸ¤ĊšôšwšŽĸU̦˜éǖĬ„Āô¼lÞkÒ°x°ƆÞx„šÆV²ǔ»„b°wގȘ¥°n„šŎV@°„„ʠè‚ŰȂb"],encodeOffsets:[[80269,42396]]}},{type:"Feature",id:"6521",properties:{name:"吐鲁番地区",cp:[89.6375,42.4127],childNum:3},geometry:{type:"Polygon",coordinates:["@@ôK„ĉǪa²¼lÜô@ʠê°Ĭ™ôȂƒ²ÑÜbĢóɲ™ĸ¤ŎUô@xƒŽǔ£ъxˎmƒÈÛ@‚_nĕÞōšř„ǫƒğšůlȯ„¯ĸ»U»Ükôƛ°ůkť™»Ŏŗ@¯@±͓óͿ„Ǔ@ķȁ¼Ϳ@Ƒ¼¯°ólġ¯xȗUġšƑ™ǩÒƧUݰ˹Kóššx@ǸōĬÅĬƑĠ󃄚ǔêÆ°XÒʟŤUšÇ¼ˋnn¼±V²°ȂUŌݜbʟǔɅô@żǬaҎÈ"],encodeOffsets:[[90248,44371]]}},{type:"Feature",id:"6540",properties:{name:"伊犁哈萨克自治州",cp:[82.5513,43.5498],childNum:10},geometry:{type:"MultiPolygon",coordinates:[["@@ĉ„ÆŘȁ̐mÞ¯ĀX°±¼@ƾ¯ƴ°ŎÝþŋ¦WÜÞbȂĉźUœÇmwVUȂóô@ȰÝ΀nÆJn™ƾ™ʠ™ŌLČóǪ¯œ¥ǔaǖšŌaôÝĢLšx„ƒÆLšɲm„™²VlwÈ@˜Uƒƒ°¯ǖxĊmUÑƨa°Å°WV¹œa›ÇɃÈm¥°¯ŹóĸķǫUm»Å¼ÇVɱ™l݃ŋnķÇÝX¯ƒͩÇɳa——Ý`±_U±ĵnWƒ™a@™ĸóšķ™¯ǓV±ÅĵJċ¹ɅykwDޝ£Åxʟ»ƒlķI¯ƒX¯ķ‚™êǕƒȭnķ»Ź`±„kÞ@Žš„Ýô@Þ°xšŤŎIƨÆUxōš¯²ǔĬǬlUŚ"],["@@ÞĀlꃦ¯ĸŤKޙšƒċƨbš™Vğ—w›ġ¯@ţƽJ"]],encodeOffsets:[[[82722,44337]],[[86817,45456]]]}},{type:"Feature",id:"6527",properties:{name:"博尔塔拉蒙古自治州",cp:[81.8481,44.6979],childNum:3},geometry:{type:"Polygon",coordinates:["@@ήƛϲÝĠ™„ÈKŌōÿmī„w@¯ɛKV¯ğǟ°Ƒ™wġKóÞŋbǕ™Ǔb›¦ǩ°ċôŋKʟšƽšmšÅImŽͿŽȯÞó@ȁôUVnx›ÈŹVȁĊÝabŻ£¯°l„óxȂŤĸkĊšÞyĊêĊmĢxV„ƨÈŽĠX„ŽΘÆĠÔź‚Ɇţ°LXƾŤŤb"],encodeOffsets:[[84555,46311]]}},{type:"Feature",id:"6501",properties:{name:"乌鲁木齐市",cp:[87.9236,43.5883],childNum:4},geometry:{type:"Polygon",coordinates:["@@šŽWŽôŚUĠȚl¼Ċ¼ƪǖ@źȘƆ@ýlܚXVŘޙš¦V¼kĖó҃èkĊȁˮ֜@ǫ՗nōƒĉǬō„ķÆÅš@„±ÞV˜¼nwĢIôºl£ƾ»UŤJôçšó¯īʟéó@kÛ±»ǩbƒĊóLҍÇǫb@ŻɆóʠǓ›aŋÞȁVʉłĉbĉɅô"],encodeOffsets:[[88887,44146]]}},{type:"Feature",id:"6502",properties:{name:"克拉玛依市",cp:[85.2869,45.5054],childNum:2},geometry:{type:"MultiPolygon",coordinates:[["@@ɜÞʊĊýVaŃm»ʵƳƑʝȗīV¥¯ĉ°Ñ@ŃÅI™»ĉmğn™ƒaݚţL°ķóKĵĀV͈ĉłƾNJÆŤƒzXl°ƒÆL²¼źŽôÈĢǔ™¦l„ô°"],["@@ƾIŤ@UUwōa™ĉÝJğÑÆŎkŎ"]],encodeOffsets:[[[87424,47245]],[[86817,45456]]]}},{type:"Feature",id:"659002",properties:{name:"阿拉尔市",cp:[81.2769,40.6549],childNum:1},geometry:{type:"Polygon",coordinates:["@@nIÇŃÛÝĊÑĠƏō™гwȁ¥Ƨ°ŹÑķV™¼ÞêĊ»‚lĵšm¦ÅW@ĀôÈźaɜxÈbÞÆĶIОŘ"],encodeOffsets:[[83824,41929]]}},{type:"Feature",id:"659003",properties:{name:"图木舒克市",cp:[79.1345,39.8749],childNum:1},geometry:{type:"Polygon",coordinates:["@@VéVÇ™ţ°ğUĠ¯mk¯ó¥ķIġÿƏbƒ„ĉa±ÒĸĀlKU„_m»nwšŽ„m@ÈŤ¦ĉbÞ°±Þżł̦°ĢŁ"],encodeOffsets:[[81496,40962]]}},{type:"Feature",id:"659004",properties:{name:"五家渠市",cp:[87.5391,44.3024],childNum:1},geometry:{type:"Polygon",coordinates:["@@„çôÑlĕU»™¥ÝšUŗ™WkÛ@þVńÝĔ@ńÅþĶUX¦Æƒ"],encodeOffsets:[[89674,45636]]}},{type:"Feature",id:"659001",properties:{name:"石河子市",cp:[86.0229,44.2914],childNum:1},geometry:{type:"Polygon",coordinates:["@@lŁ—ǵm‚ĉ@mż™¼n°ÞmƼš@"],encodeOffsets:[[88178,45529]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/xi_zang_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"5424",properties:{name:"那曲地区",cp:[88.1982,33.3215],childNum:10},geometry:{type:"Polygon",coordinates:["@@ƨʔĸbܺÞwnxźbÞ°ô@„ĶŽĸIȼĊJŎÈôUšÝƒ¤ǔLސŎ@ĢŽȘblƒôL„ÇźçȤôLš¥ÞIÞ¯Ķxʊťƨ™ƿÑĉXVķŦ¯ȂKÇǕšÑ¯IUš£¯Óƿ£VĕōÞÿÆwƒƑ„£ǖxÞĕ±ÇÝaUÑȃU¯‚UōÈ݃wWŁĵ™±Ý„óĢÿ°IÞ±mÅ̝mÿ„¥°UnÑŤĢĕĶwǬŻͪwŎ¼źÇĢ„Ġĕˎٰóƨ¼Èa‚m@¥°wǔ„ǖ°ŽƨÇŤœšġƨ„ŎŃôbÈÛŎĊ°@Ġw²ÑÞJƃÆb²ƒ°êĊUނlȲƒV„ÈKĊÒĸĉ›»ÅôťUÅǃk¯@ǂÑklǁÅl™Ģ™VÑóƒ@°@„ÛĸƒV¯ƒÇĊ™n¯Uĕšƽ¯m›¯b™È@Ò°Ĭƒbĵ›¼„‚kxķýÇJk£ÝaUÑÅóĶǟkÓʉnĉƒÝ¼Ƒ„ó»Þmn£m™Č¯@ƒȮÿV¯ĸƒ™k@Ýówƒ»ğ„ġ±ǓLō„ƒšV¼Əèķĉ™è±b@Òţ„UÑóakƒl£™Ó@¯L@™ÇlUóȁš¯aġÈÅĕÝLķ¯Ė¯@WĬ—x‚ÒÈnW°ţôU²ǓÓġ²V°¯ôƒǔÝL—ċšk™š»Ý»Ýš¯ÞƒVƒwۄÝÇōͩÈĉċ»ĉm¯£W¥ţKkóġƏW@¯±kōŽÈ›b@җšÇaƒÆ¯a™„ƒkóŽÛƒÇ¦Ýa¯šÝ™ĉ@ǻۄmƒǓxķƛ¯lVĀÅÞġb™™ÇJUÅV™ĖƑW™zō»ōšƒW™n@è¯ÞóVkwƩnkźÇބҙޯƒƒýğÇUxÆÈnè±bĉÝ»ÈуwšwÞ@m»ÈV@ýÇ°ķ™xƒa„ݯXċ¥ƒÈóW@ôkxlnxVÈóĊkŤġ¼@°¯ŰƑL̻۱ŎÝV—Þ›VƒÇÞŎÇakƞ‚š@èğŎĸżšƾ°ÒšLÞôĠKȰĖźVÈÒĠ„¤™VôšŽU„ÈþťL@ôǬÞlÜÈnÇÒUŚ™@šĊƨW°™°Xƒ‚@ČÇþ„ƴĉÒķ¦@ŽĢôWĀôłUÞĢǬ™ź°¼š@ƒôV°„bUÆnzm¤ƽĸƒÈ"],encodeOffsets:[[88133,36721]]}},{type:"Feature",id:"5425",properties:{name:"阿里地区",cp:[82.3645,32.7667],childNum:7},geometry:{type:"Polygon",coordinates:["@@„Çƾķn£myVŃaU¯„ó™@¯»šŹġǫVÝóŁXÿġó@ĸ¥ĊуƳÈý@ċ„Wš¯X¯ĉƧ‚™š@VřÈÑÇmkÛǫÝ@óŦKÇýVƒ™U󚏃£ğÇÑŹUȯĕğLÝó™K¯Ñ™ƽķŻĠō@灙lƝÈbƍÈ݂„œU˜ÝÞU²ō̼ůƒK°ů@¯UK±—ĊƧbōÇmçÈġƒóšÅób™™źóš¥kól™ç™KôĵUƒÅ„VŃķ¥nÅŏm¯¹Å‚™»@ÑǍóxÝkʇȤU¤ķb@ƒ¯ĊÇx¯ĸĉKm°šĀk¦l„„KnĬȀƾÛ¦WÆÅmNJĉ°ōUţ¤UšŎ°šŎKÞłÆ„Ǔ¦ƒÞ™‚™„ř¯bmUÝl¯Um™ğl¯£șwŎǫaÝnĉ̓k@¯™K™šō»ĉn™aÞ»ťnkml™ĸ¥UŚŻkÑťƒĉV™ôó°LôīĠU„ÿĉǕÅz±Kƒ¤„²ō¤¯Ė¯UÝ¥Vĵ™óÈťÝwķșÑk¤ó„™ƒWýĵĕ™„VĠƒV󍃎Ǔ„ķ°k±VU±ţ¦UǟÝřJVљ¥XUċUŎlÛƆǕÆȗƆ¯wŏÞÅ@™šĉl݁óŽƒÒ™nUôńlxólÝôێ±™™LÛôÝL@‚ġ¯X¯ÇUżóa󤛼XÒġŎóLk¦‚ôżĸĠ™¼™KġƆô¦„ÆƑÔĉ͝ImÒ°¦n°¯Þl˜ÝČn„ƒÒšKĠޚĕkƒlýƾťœšôI‚ĖŤÒnƜm¼¯lnżóÞ@Ůó¦™ôƽĖċŚn°Ý°ôÈUƜƒblÞóŽ@Žǖô°UÈƆ°X„þôŽô‚lѢšŽ²Ėm¦°š@¤™XŽĊblܚzkºƒĖmX„šŎWVšóÞn°lĠxȚa°»żLźƒ„b@ưXĠÝȚxĊĕŤaȚ‚°È@„„@èŤ¦Ü¼œW˜ÞkŽÈ@V°lŤkŎ±²¦ƐUšlj°aÈÑŎb̃ŎbÆ¥ÞIȘlššôVÈU‚™šb„kɲĶn„mnXb̼òƾĖŎ@̐ȂÑôÓĠĖʊšĊÔ"],encodeOffsets:[[88133,36721]]}},{type:"Feature",id:"5423",properties:{name:"日喀则地区",cp:[86.2427,29.5093],childNum:18},geometry:{type:"Polygon",coordinates:["@@ĶĖXþš„ôƒl£šÒĸÇÞxÇŦšôUĶÞ¦°V°ĕŎ£ƒ±„£²LÆyĊǖƒĀğVóĬ¯KóôUš‚ĊŦ„lҙżVÆķ¦kšlnŦmݼšbĊmŎ¼š™šL@°„lĊĵÞmǬbƍȚx°¤Ġknš°VÞkVn°aƒŚš‚š„Ýǔ¥ÅƒÝŁōL¯™ōV™Ť£ŎVĊ¯nljƏXÅÜ¥ǿƽmīƒLkƒl¥™ÿn¯ĊL°ķÈw°ĉ@ƑĸaV£ʈȣÞlôwȎ@Қ¼Æ°ºŐnmÆĸ¦UńƃV„ó͚LšèôkŰlĬ™¦Źôššôa™Æ„ôÇĢnèŎÈƨa˜ĉ²‚VLĢ»lţôĉUǂwkmlw@óôX„ÇȦ°WƒÞ„b‚wĸšÈ¯@þÇUn¼Ý@™x„xÇńÞ¼Ċ޲amçÅÇVwĠȄþ°„šÝƒÑÈÝlŹƪmlxôU°Ý@çšm„XŎ™Ŏ¼šyƒXšĕÆUVÈIššĢaÆÝUÿ°kĸƜǔwn„܃ȼĊ@ޚ°™Þbȥ܄ô„lšƒ°b„ÅÈb˜™@ќa‚ǯUU¯Vġš»ƒ™¯aV¯Ç°Å™mnÑŤçǬVǬ™±ĉ¯¥Vĕ¯Ýk£˜ō—w@±ġÛ°ÇVїƒ@ۘa@ČL™Ƴ™„ƒÇa¯¤ÝIĵ¼U¥ƿōķÅţŻókÝóĕ‚¥¯™U»Æ£X¯ġŃÛkݰV°ó¼¯èWôÞĖ„ȎƒŽkĀƧĀówm¥¯JŹÝJݙōVVŁaݐƑ@ƒ˜ğŭǂ¯_ƒ˜ĵ—›VnxŃón›ƒĵxÇĖĉVÝÈğV™Ò󃯐±Żĉ£ķÆÅL™Ljĉý˜ţۃ¯VƒnV¤ÝÈ@°ÅÞݤ™ŰğŁm¦ÝxóKƒ¥ɱÈUĠôêVôÛ¼ÇWÝçĵaō¦óĖƧlÇĢƑŽnŎDŽV¼¼‚ºÛ@m¦ƽ„ĉmm¯ÝKÛç¯bŏłĬ™bƒ¼ÅLmŽ„xť°ÅU™šÝXkŽÝmĉ¦W„¯K„ÒknÝaV„Ýè¯KɅńÝKnÞ¯¼"],encodeOffsets:[[84117,30927]]}},{type:"Feature",id:"5426",properties:{name:"林芝地区",cp:[95.4602,29.1138],childNum:7},geometry:{type:"Polygon",coordinates:["@@‚VÈłVôÈk@š°K@ŽšÔk¤l„ôbVÒŤƒ@ѲašçĸĊƐçU»„™ŎƒǔK̲Ġƒ„¼ôx@ޚlƨĬ„Ul¯ÈLV‚šÞJ„°Ünʊ„wÜbXê‚VÞ¯°ššanaU°wƼɴÑWѰmÈýÈam¥Þ£Ť@„¥ôblÞĢ„ź¥ôxÈÅmݚ™ƒĕŃV»ĉōŤōnóƒ»ÈīķIUƒĠѰġĸLÞ¯VÒÆ‚@bš¼WôÈ@V¼ôóŤKÈÑU»šwVǫżnWÒÈx™¼‚lŦ£ĊōŤx²¯@ƒÆƒU¯šçÆ@„¤°£„é°k°lšůÈó@¯ŤÇÈĉƒkkÿó¥ÝXķљÜ@ÒóŚÝ¯°ĉówÇ±¦ÅJUÒĉĀķw¯°m˝„±akxÝÅnƒ™»lуK@¯lU™¯UVѯóĊ¯mōğVǓƅƒÞƒWÝÈÛ@ƿô¯ÜġzÅþ¯ólmôʇġĊÅUͿřŏȁˋŁóÇˡōƧƒÇb™w°Ķôk¦šÒƒnUþġҙÔkǔķèó@ƒ²@ŘōńĵyƒzġaݤÅIƒ¤Ƀť¦ğѯ¤ķbóš¯ó±ŽU²°¤ČÜVnÈÆ‚„ŚŎ°ôĢ„þÆzèVĀǎĀǘƒXŹÑ¯¤ówċķk¦šłUÒġzÇ@ƒ™ÆÝx@²Þ@Ƥ„Uô¦Uš°x„U"],encodeOffsets:[[94737,30809]]}},{type:"Feature",id:"5421",properties:{name:"昌都地区",cp:[97.0203,30.7068],childNum:11},geometry:{type:"Polygon",coordinates:["@@™ŽVĖm°ĉš„ÈU°ķ„ƒÜ¯@@ô„UÒġškš‚ÆkÈlށÒ@Èl°È„VÆóŦƂœ¼‚a„ÅĢ™Ʉwnōw@¥Ŏ¦°ŹÞmVš°wnÿƒw„wÝw@¯šmÞŗ°wĠ˜ĸkÞğlĔ²¦°@„ĕĸwVóšal@nĢÇĊn°@¦šŽźUXçǔůĸVš™ÆK„ÈÝĠš²ÅĔô@lšŽÈ_m˜„zǖl„šaU¼ôwV°¯¦‚ĬÈa„l@Čǎ„¼™„nŽ˜I„xô»ɜ@ƨ¥ɆŁ„ŃǪȁkƛƨȍʊȡóĭ›@—ÈÇVƒůރĸƅmēƨť™ÅÈʉVǵ°ġVŭÅɧ°ÿnɛš£mƒķ²ŃóÑUĉ°mÇ»¯@mxUèţ°ȁÝç„ġU¯ÆÇţÈ@°Çô™Ű¯k¯lƒê¯¤ƒ£Å@™èV°Å„@„±°ţwĉŎť¤kš»ÇwXÑŻmUǬ™xV¼ÇÒţLóôU»Ç@X󙻂a@ÿŁUÑݰķK¯ĢğÒV„ĸJÇĬ„¼môţŎĊŎU¼Æ„„Ė™šnÞÇÆówʦġƒkÝóaƒ¦ţ@ݤn¦ÇbÇþ¯nXÒɳÒÅ»¯xVmb™b¯™Ý°UWéÛaƒxʉÛmƒ¯ÝI™‚UÇKk°ƒVƧīķ„U°ȭĀ@„ċ°nšm¤Ýnô¼ƒƒÞ»Ċ„ʊmlÔĵǠÆôVÒÞbl¤ÈIĸþlwƒœ»ĶŽ„a¯ī@њǰanœƾ°"],encodeOffsets:[[97302,31917]]}},{type:"Feature",id:"5422",properties:{name:"山南地区",cp:[92.2083,28.3392],childNum:12},geometry:{type:"Polygon",coordinates:["@@°ÞU˰¦²ĊôÇÜLǖĀɜŽȘŰÞLĸźêÞ@UÜUŤ°ɞ¯Ü„°WŦĀmŎ„¦ĢyVљŁl¥Čĸôx°£źÒ„Wȗ‚ÿȍUÿ‚çÅyƒýóġō¯ƒřŁmÇÛUċޝ£V±²°ôô™ĸa°£ĠÒŦ¥ɄŽ„£ÆJÞ£Ģb„yĶzŎŃ@ŗ„±ô@ĸçlǓšÓĢÑVý„m™Ñl¥ĵó‚¯̻̥™ƛǫÝһÇƧĉyţ¼ҍēVĶĉŎ°ĸmšÞVÝĸ™ÒÛaċ„ó™ŹĖƒèÈÈl¼k¤ÝX@`ސŏ¼Æō¼ÇçĉKUÝÝ£ğ¤@¦ġl¯Òġĉ¯óš™móxÝÞğVšƴċK@—b@ܘ„UÒ¯ÈĢÜ@²˜x—Ŏl¤"],encodeOffsets:[[92363,29672]]}},{type:"Feature",id:"5401",properties:{name:"拉萨市",cp:[91.1865,30.1465],childNum:8},geometry:{type:"Polygon",coordinates:["@@Ŏ²l@°‚XĢƐlôŤLX¦°¤ĊnȼÇĊŎͪÞÈ܃„x„U°Ýޙ޼™¼lšČ™˜ŽÞK„Ǔ°óU¯Ģ±ǔÔV±ŤóX¯ÇmÑ˜wXī°@°ĕĸÞKÆĖĢǰbȂ™ÇفUƒV¯wV™ó¥ƒVÅ£Ý@@±ÞwšÅ‚„È@ƒ¥nōťÿ¯Xۃɝ°ţ¯ÛVVÝ@ŹéķÝKȗůɛǕÿÛKóÈǫšǫUţèmҚn¯Æ°ÈU‚°b„š™¼UĢV°°V"],encodeOffsets:[[92059,30696]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/yun_nan_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"5308",properties:{name:"普洱市",cp:[100.7446,23.4229],childNum:10},geometry:{type:"Polygon",coordinates:["@@U‚ô²‚a@޲²Ķ¥œV°šĶ²bl¤kVxl‚@œ°‚ڲ@˜„„y„@ô¦¯„@xƒxVxU„VššbVšÜm¼Ŏ„„ĢmºXXWÆ@œšmŽmXU°ÅÒm¼Þx°w„@°‚XêĠ°»nV°U„l@k„@V±ôī@£‚ƒČŃÆ£„KÞý@¥‚k@y„a@—nWV„UVƒšwƒmƒ£Jƒknm@wmkn‚X„˜šX„¥mUUlUnbš¯°ŽnkƒVInlIUw°n™mk@@mlanXlanmšk@wVWUw™_@éĠašnmUaÜ£ƒmXƒ¥¯@@„óUmݯ¯ÞÝlKnxô£š»„»Ġ„J°aV„UÝÿV¥ÛbƒI@wmŽón¯yÛL@ƒWkŎmș`IWa¯K@¯mUnmaXm™bmak„¯ŽƒĢ™ÒÝm¯mV¯KÇb¯KۜWW™X@a™V™knċLUWV™kXóW@k™a@ƒób¯Uƒwmb¥UUlaU¥U£ma횃KXkƒmÝ@kwmѯk±ċbUUVakaġ¦ƒƒkL@`ƒœ™a¯xƒm™Åƒ™LUWƒ@ċnŎUV°LkL@b°°@¤š²ƒ‚šnôôk„l°kè›ÒÈzV¤È„WôôƒnV@„ƒ¦@¼Ux"],encodeOffsets:[[101903,23637]]}},{type:"Feature",id:"5325",properties:{name:"红河哈尼族彝族自治州",cp:[103.0408,23.6041],childNum:13},geometry:{type:"Polygon",coordinates:["@@°°nÞôV@ƒ°@„¦WŽ„nÛ¤Vbmn™ğb@êš`VxUX@xš„ÆÞUnn˜WÞĸ̃šÈ@ŽÇè@zÛÜWšÅêlš²„˜KnV¯ĖĊx@bk@@„°JÆ£Èbl„nnm°nlUkVUUwVm„Kn„‚nVŽÞxVLX¥laX@@xl@VzȎVmšk@b°šÈĸmŽV¦`W„XšƒbUb‚bX¼°x@ašVVkn@lþnXUlVxŤÅ„y‚IUƒka‚IŎĊ@lXx@b„z@‚ô„ƒ¥„_V@l‚n@„ôy@al_l`nmƒÈ»@kƒmXwWK™U¯»™a™Å@wƒmUÝKUa™UUƒ™wWƒ@w²»@kƃV£—mm£VKkÑV@@»nwƒ¥™ƒ@kƙnllIVlnLVakalknJšWmnaUaVÑVVލn¥m@ƒ„¯Uÿl™@™™™VçƒaXaV¯UyVLVkš@nJlšXLlŽkxlbla²Òl@nVJVkšx„KlkUaVķÝÑU@Åm¯@±™Uó°ğńķĠmU™Ñ@ǯ¯Å¼@nml@°¯¯`@w™£@¯Çƒk@ƒ»nmċ¯U»™I™Ž¯LÇĶÛn@bó°™U›šwmޝ„™Umǯa„™ƒ™ƒI@ykIƒVUޝbƒIğŽƒ¼™¼ó¤mwkLÝÞ"],encodeOffsets:[[104243,23429]]}},{type:"Feature",id:"5326",properties:{name:"文山壮族苗族自治州",cp:[104.8865,23.5712],childNum:8},geometry:{type:"Polygon",coordinates:["@@šwô„š@²¯maUmôUÆxš@Xš˜bÞInlVUVw„JVaU„K°¥„xmÞXnlKlnna°@ĊČ„ÆwUmnkl@°ƒƒ£nyn@VV@Vak™ƒ@@kÞ݄bmx°Vnw°klÞInĖÞVlKl™@Xa°„„KlV„U@šJnx‚U@ÈĢbUKlm@ak_‚wšanWUk°ƒl»„k@Wk@lwU_ƒ@UalóU¥ƒÇnƒ™kJWƒ@mVXx±bƒK@nV±a@™Åa™£ÝK²ƒWknamKknǏk¯ƒaV™™V¯ĀƒU™„™Ò¥ƒI@mm¯¯xōW@@`k@ó»ƒUU¯lm£ÅWlĵ„w@mmwÅmWU@y±U—xmwU„¯Uƒ¥Ý¥¯£m@kŽÇVUV°VbklƒL™wUlUIm‚k@±ÑkbkalwkWKk™mI™@UlUKVzU°Wb„bU蚚@škšVƒ°@„n‚m¦ÝŽUUUÒVbmbXn™‚mIkllbUbmKUkkJmkŚ@lš„„¦mx@¼U@lÒULn¤˜nU¤Å„@l±¼@xX„šxV„šVVbÞLVŽ„n@xšÆšb°¼šV"],encodeOffsets:[[106504,25037]]}},{type:"Feature",id:"5303",properties:{name:"曲靖市",cp:[103.9417,25.7025],childNum:9},geometry:{type:"Polygon",coordinates:["@@ȦlKÞĕUV¯Um¯„ÇVUnVVUƒĉn™ĊÇƾLn°°È„JÆw„@lbÞa„¦V„XJ°¯W¯„aÞJVkUša„ƒ@lKnÅmWUk¯a¯»@m±@уkkbWWX_WÓU»_l™kÑm@U»m@l@IWċn¯l@VanV„UV™UVwVx„KȄVmUē‚@„ƒn@VÝÆL„w„VVwnVlmkUVÑǰka@k™ÿÝaÞUl£™›—ċĕX±±ĉƒa@UnVnalónk@wl™UVmkÝJ—aW™™@ÅwóVVnnb±°™@óƒ™xXLWx„n@lǼn„m‚k_k`@bózƒ‚m@kU@ƒ`„¦óƒ@nWš@ÜÅXWw@ƒyƒb¦@ÒlnUb@x™lܐk‚@²Ç@Uƒ¯bmy@kV@bƒb„¦U`lLVx@b—Ll¼Þ¤@„°VVބU@WސUb›J@nnš@lnnm„šxUŽƒUUbƒK@šÇwklkUƒVWakn@ŽlbU@@„ULVxkKUn‚°¯Ò@¼™„kmƒ¦m@kl™Ȱ@lU„l¦„@Vl°wšnnþĊUÆbUx™b„ŽV„šĖU°„a‚nnašV„al@@b"],encodeOffsets:[[106099,27653]]}},{type:"Feature",id:"5323",properties:{name:"楚雄彝族自治州",cp:[101.6016,25.3619],childNum:10},geometry:{type:"Polygon",coordinates:["@@mҁXU`Wnšš™@Xl±¦š„Uxnbl°knmKUx„„ƒxVôUx°¼ôÒȄ°JlnÞKĠœW°¦ƒ„Vx²JVwš_°¥@UV@@wnymknK¯I@‚™²b°ƒš£V¥šwU‚V„¤nLškÆJÈwôô°„l»Č¯ƒġVƒUU@@ƒ°ƒƒÝXl@U»°Å„@U„¯@w±¯VmUUlm@m™„ÑnIVyUwmak£Vwm±—@Çw@nƒ@UxkwlÇnL‚mkř@±Žk™ka@kóJV¯Ç»U£lw¯™Xalbl¥¯UXƒ@a˜™UaÈL@ÇVIVƒkaU¯mm™akLWkUJ¯Umxnšƒ@ƒkUx¯xƒ„mWÅīÝkkbƒŤƒbkxWmXwWk¯wƒKkƒƒLŤċń„@¤óĬU²ƒ@@lƒk¯VmU¯¼@xV@k°l°kbUš°nm‚VnUš@°„š„UVèރÆbUÒÞnU¦›V—¼lô„@Vl"],encodeOffsets:[[103433,26196]]}},{type:"Feature",id:"5329",properties:{name:"大理白族自治州",cp:[99.9536,25.6805],childNum:12},geometry:{type:"Polygon",coordinates:["@@lbœKVIUa˜@²m@b™xôÒÜxXLmbnšl@š„„K°šš¼k„Uô‚xôlV¦nJ„Uš™Ænšm„@šx„ÆwšbXšÆôô„LUVwôK@wlmšaVwœ@WknmƒIUmlnJla@_™@kÝmKUašÑm¯Xw°aUaVl»²JV„bÆJkôͲVVk„mšbVwUó„wƒƒVwnLlmk¯maVw™ƒ²¥Wkš@™™XmV_‚WnÑUkƒ@k󘻜UV¥ÝmVÑÅa݄UçƒVƒ™@¯V™Umn¯mV™lak¯l¯U@@wğŽW鯁ƒ@¯xÝw¯š¯Jċa¯U¥mLU¤„bÞȤƒbÇLWUwmIUVW¼kbš`U„Vb¯L±ĊÛkƒÿÝKkwƒKţê™UĉþƒÈƒV¯ÞVbUްKVšk²Ý‚mI—ƒmV@kƒm™UkšVxm„¯KXÈķJU¦V°ULWxšL@môƒšb@bkx±LnVUŽVLnkÜWnwlLŃmW@kkJU_ƒV„šWĊ„Þ"],encodeOffsets:[[101408,26770]]}},{type:"Feature",id:"5309",properties:{name:"临沧市",cp:[99.613,24.0546],childNum:8},geometry:{type:"Polygon",coordinates:["@@‚xĢ„l`²X°ŽV„šx@x°Þ°KXašğUњW‚bnIl`X²°b„xl°„„šV@xVxk¦mb„l@xšXV‚ÆzX¤™Æ˜k°„kx@lźêlaX»VUnJVx‚XÈK„aÝȣƒaV£nKV¦°‚Čb°I°™n»ÆÑV¯nWn›™@ÿXÅWWn¹ƒġōƒn»‚ÛU™™aU™VƒUw„w@w°ƒó¥ƒ@ƒz—ƒ±@ř›¯@kUwlk£±aĵޝ™›Uĵ¦±±@bó±VÝ@ó¤ƒw¯I@mńóm±XޝIólƒK@š°Ullb™zkKlln@@ԙºƒUmVk²ôҙx™ŎUVóLƒb„ŽmÈnŽmbnl‚a„x@z„@Ǝ„¦kš"],encodeOffsets:[[101251,24734]]}},{type:"Feature",id:"5334",properties:{name:"迪庆藏族自治州",cp:[99.4592,27.9327],childNum:3},geometry:{type:"Polygon",coordinates:["@@W™Xwƒ™@akk@y›—k°īX¥›Uóķ¯w@n»UaVaUۃ¯ƒmV¼k‚™Þċô@n¯xÛÒm„V‚¯Ô@xƒ‚@šk™wm™Åa@ƒUa‚݁¯VŃyV„a@ÿšn»ÝVmank™mmÞÅôƒ@n£±›ğzÇmU¦™Vm„nÜmbn@°nV@xmzÅ@mºV¦k°ln¤š¼õô„n@xkƃIUxUš@Ťƒ¦VšmVkmkXW¤XzVx@ƚx™¼ƒÞ¯b@lVš™ĸގV„m¼XŽm¦V„ŽÞ@Ǝš¹Vón¥ÆKn„‚KX¯x@èĊȱłXšaÆxnlV@UÛlȻkğV¥„m²ljmÅÞĕƒƛm°„ÆmX¤mznƃŽV¦ÞVVb°bnÞWbnްl@V„È@„‚VĵĊ±@ó„InxÆw„¥@£Þ›W¯ĸ£UƒUK‚ƒk±akkkbmWmÈķ„aÆÇU—ȃÆW@wmknmU¯"],encodeOffsets:[[102702,28401]]}},{type:"Feature",id:"5306",properties:{name:"昭通市",cp:[104.0955,27.6031],childNum:11},geometry:{type:"Polygon",coordinates:["@@mƒnK@wmƒUř¥mšóXǓŏmX@Ž—VƒmL@xţ™nk@mlUšŻÒğŋ@ƒL@mmLkm™š@b™XŎW¼ka¯lÇŹ¯aÇ»™ÝÝ_@m„@@a™@UklwUm@ak@ƒb™UmbmƒbV¯™ĕUƒƒšaVwÅaĉVmý™m¯xUkƒ@k¥VƒUXƒ¤VÈm`@„—ńÇÜ@Ākn‚ĔkƞÆĠ„™Þš‚U„VôƆÞI@ŽUxƦn„l@ĊĊnxUÒ°¦Vb¯WUnWށIml@xn„Ubô¤‚¼ÈxlI„»šKVš„@ÈԂJkšU˱ÆVb@nœ„VÜVUVƒšL„wĠl„kn„Ġ@nx°¥Æ„²mUwƒ@m™mÅUl¯UњÑUm„Lll„Il±š@VkwƒW@w°@U»™kUóI°ƒ„»ĢтL„™š`nUĠ²lm„bôV@n„JUxƦX¦l@š‚ŎUƒV„@lV„KVřV£UaÞU™ƒnW@¯VU@ó™"],encodeOffsets:[[107787,28244]]}},{type:"Feature",id:"5301",properties:{name:"昆明市",cp:[102.9199,25.4663],childNum:11},geometry:{type:"Polygon",coordinates:["@@n@Vk‚VUn²°@xƒ°Vƒ@¯ÆV¼k@WŽ„Þ¯„@„@‚VVU„„Ģċ°k¼V„Ċxœ¤Ōœx°mVkƒÑȏšL‚°„x°Xœ°VmĊLVxU˰bX¦VW@kšȯlkn@„¥lnšƒ@»°Ñ¯VmlLUwVK@ƒV@ka@lmXb„UlVlkÈx@™„LVa„VV™wnƒmm@km™@mœIVaݏ@XƒVUݯU@ƒÝ£k»˜K@aUwkKV_ƒ¥„a@alU@nz°aV„È@@±lÛšk@wVakm@т¥„a„z‚@XxÆW@ÛX™@m@ƒy@aWw@kōĉJlbV„JƒzţÆUwVkmWkým@Ul™U@b¯wVºƒU™VUêšĠƒXUaUbVĊUŽWXUmkK™™WnUUU™V™ƒƒVV™Ý@kk±‚™¯ƒƒLkƒš±WkXlVklƒ@ƒwXbmLƒ›VUIVmk@Ubma@kkaVKUƒ™kmlXLWn™J¯ÒĊ°@zkºlLUŤn@@n›ô@lƁnmKkÈlxVw„@@mÈx˜@n²Uxl¤nbVxUzmJƒÒnš"],encodeOffsets:[[104828,25999]]}},{type:"Feature",id:"5307",properties:{name:"丽江市",cp:[100.448,26.955],childNum:5},geometry:{type:"Polygon",coordinates:["@@l@™„@w°ÓUnƒÜѰw@mČóšÝlU»n°„„VÜUbVbm¼@ްxôĸœVW¦¯Ĭlœ˜@zll@b„šWxXš‚a„X@ÆĠÆaXwl@XaƦn¼˜Jn@mnKW¯È»V¯°ak™VanXVwl@VyUĕVU„bÈīlaUk°ƒk¯lƒ²V˜Ukƛô@ƒ„I@mVwĊa„™ƒVaka„™ÆbUŽVLšaXIWKUw™ƒ„aWÑÅKUaVk°ƒ@Uw„ƒ¯¥›XğÝLkm¯Iǃóѯ»™aƒnUl±UĵÿlóÅIƒaU‚±Ik¼UŽVb¯bWxn°™ÒVbnLlޚ@@`kbmIkŽVn„JmnXl›@Ux™bkn@xóLUxVŽƒKóóŐW™™aÅxƒŽ™wƒ@™nÅm™šƒV™„ƒôX„ƒLlVU¤ƒb¦m¼™Ž@ƒbU‚„zUƂ°ÞVb@„Æbnššx"],encodeOffsets:[[101937,28227]]}},{type:"Feature",id:"5328",properties:{name:"西双版纳傣族自治州",cp:[100.8984,21.8628],childNum:3},geometry:{type:"Polygon",coordinates:["@@l²°ŽnÒlxÞ@„nWl„Lĸ™nbV¤V¦kbVV‚¦na„x°Vôa@„šb@lôXlWUšVXČKlmššU@bšWXXܛ°LÈa°LnU°‚ÞnšÑ„ġ°lƒnbšaƒ¯¯KWƒœó@kmK@UšĉV@k°„VV¹„a@y‚_ċl_nÓlL@anI@ƒóWl£VU—ƒl™kĕl™šKVw„U@™kVƒam¯ÅL@bƒ‚Ýk@Vn„UbÇbÝwÅ@ċ¥¯lk‚¼ÅŽ™Ò°b@¦nlUn@ŽÇV„mƁbWôU@ÝÅōm™¯ƒaU™™mk™WWw—@±ƒ™n¯U™è™a™Lƒ¯mƒL™škwƒl@°mnÈÒ¯šów@V™xƒĀU¤°Įƒ°Xl"],encodeOffsets:[[102376,22579]]}},{type:"Feature",id:"5305",properties:{name:"保山市",cp:[99.0637,24.9884],childNum:5},geometry:{type:"Polygon",coordinates:["@@X°„Il‚@¦ƒŽÈ¼m¼ÞaÞÅl„ÈxV¼šlVôÈÆlLޣȺlkUƒ‚ƒUw„¯UĕVwĊ@n¦mlnVĸIWǰLnƒUwl™šV„n@lnU˜„nJށl±U™¯LVUa°Ý„U„ÇĊýšVŤé„LlxÞL„ĀÜl²ĉ°KUaVƒ™_Źé@klw¯ƒlÅ—šW£ÅyU™W@wƒknal¥Uw@w™Uƒƒk¯ƒw¯aW±k_mJa™XVҙĠWb¯L¯Ý@w™wUƒ¯±Wk_ġƒwƒwōKmb@¤„bk°l˃ô„UJƒšVnÅlťUš¯°VbnbWxX„m„ÞššWUĀ™L™yWzÛKmbUxVKkn݃kŽVšĀċ¤Ux„@ޝŽm@ƒ¦"],encodeOffsets:[[100440,25943]]}},{type:"Feature",id:"5304",properties:{name:"玉溪市",cp:[101.9312,23.8898],childNum:9},geometry:{type:"Polygon",coordinates:["@@l„„L°xXlWxXnlw„a„ţlaÞlÆĬnX„ƒ°wVw„l„@m™nw°VVIXllKšbnnV°lbU„UJ@ÈÇKVb—š@bW„°Vk¦kaWb°škxV¤È¼U°ôI@llblš²š@‚@œó@mm@VţkKl¹@yĉ¯°ÑšIXmWKnkšlV„ULlb@lnbVal@UnVJœU‚„nKWa„x„@lkkUlW²X„™‚l„K°„šl²@lšÞUŽ„U‚„UšVšVVXmššlLVnXWVUĉVaVb„W™ğVéšU„VU¹W»aVa„aW™Xƒ‚_U¥nÇ흙@a™lUnǍUyk@@wW@kbW¦UKÝwUmmƒƒLUnVxUVVlk¯mmnƒmkÇaŤ¯I@ƒl@@aĉw°ĕmU—L±ƒk™ÆéX™ÜÛ@yÈç@™Çġ„Ýķ—XmmÝVՙƒ™lmnkbmWkb@nl@nŽmš¯VxkJmUJ„ml¯™°makVVnVƒ¦™Wƒ—Wmnl@xmn„l‚I„¤„n™xU„ƒVUŽmX@˜ƒb@zl@¦Ýþ"],encodeOffsets:[[103703,24874]]}},{type:"Feature",id:"5333",properties:{name:"怒江傈僳族自治州",cp:[99.1516,26.5594],childNum:4},geometry:{type:"Polygon",coordinates:["@@WyX£lWlnnUU™„¥@ţV™Vw„JlÅ@wƒmö󙻂£kml¯U¥n¹Æ@ny@wmU@¯mnamÛnƒšUV¥ÈnĠy²œm¤„@ÆónݚnmlnbÞU‚¥„aV£kU„KWƒ„óšƒmIU¥ókwVólƒ™»¯™ƒL™ƒk@m™naWKÛwóњw@a±n—@VbUJ›LkaƒÝXĉƒ™„UV`lI@lnXÆƑkKmxÛXmlUKVmU²Klw@a™aó„@n™KXwVKU¯V¥mUnkm¥ĉ@UxV˃°Vx„V„klmޙkKWĀkVWšnl°Lnm@°ŽUxlV@nk¦™JVȰŽVÒ@nX°@ÆlUômlnôƒ²nxmłnVV„¯x@Èm°XblVUšl°@xkXU¤WXX‚W„Xƃ„mkÅJmށw±bƒxUīkKmÅVUĖÝèV„kx@š›lX„lnk¤ƒLkŽ‚Ėk¦‚xUššL°‚¯Ė@LnK@b°xVI„¥Ua°Ñ@»nm@¹‚KŎÞÈWln²n"],encodeOffsets:[[101071,28891]]}},{type:"Feature",id:"5331",properties:{name:"德宏傣族景颇族自治州",cp:[98.1299,24.5874],childNum:5},geometry:{type:"Polygon",coordinates:["@@„¥n@°@ƒVwČ£™ÿUlÞ„lmULVwnaÜLXyšzšKVÿ™XݙnƒWƒXwmaUa°¯V™ŦŽÆkUm„™VIƒ„ókĕl¯ƒa@£nama™@¯m¯œó@óyţbġkÅm±ÛammVkƒLwU`Wk@VƒkUmŃlUUKmbkkUVUwƒ¦óް¼šbn°ô¦lºƒz@xšŽ¯„™@UްnƒšU¤ţU„°VƆ@ÈmlnzÞl°¦Æa„xUxƒLkxWƒn@‚š²ŰšW„™‚@°ÈXl°Llx"],encodeOffsets:[[100440,25943]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/zhe_jiang_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3311",properties:{name:"丽水市",cp:[119.5642,28.1854],childNum:9},geometry:{type:"Polygon",coordinates:["@@@V‚bVl@Xn‚UXƒKVŽ@¦nxlUXV‚n„KVmnL‚UV@bn¤lLXK˜²„`nnlJXIVJ‚I„Vnn°KnnVll@VLXWV@UkVaVK„zV@„ƒšVVaUK@U»VUl@@WnUUƒ@wVLn@Vwl@XW°LVbn@VU‚@X„l`@XnKVbkl@XVJlUnlV„„xlL@lnXl„@VšUnV°°„@a„UVLXblWVXn@VVUV@Lš¤VLV„U‚VbnalLUUVX_laVa„WVzXKV@@a@KUmImmXama@kU@yVIUK‚aVa@kXK@aWU@VIUmW@kkVm„Uš@VwUa@K@k@Uƒ`@kUKVk@UV@VaUm²Vy@klUUWUkVmUa@_ƒKVaXa›XmƒU@mUlWkaUXƒ@mmkL@w™JƒnVVÅbWKXa™@@I@aƒJUUÇ@V„UL™W@akLmb@K@a™XXw@mƒVmUVkUy@£@aU@@VkUWm@kUKƒXUWU_mW@wkkmJUUkLWWUXƒW@IkJ@k@mW_kӃ_Ul™Lƒm@I@aUa¯m@kƒa¯LUJƒ@mVVxUb™a@LUKkXƒbm@Uak@@a@Um`ƒIUbUJ@nUVW@@LnVV@lšUbVlUX@`š@blXklW„Ušm„Xlm¦U@@V¯bml@š@nUb@llnn@VbX@lV@ŽUVULmU@JVn„bVbkb™VWxU@@nUVk@"],encodeOffsets:[[121546,28992]]}},{type:"Feature",id:"3301",properties:{name:"杭州市",cp:[119.5313,29.8773],childNum:6},geometry:{type:"Polygon",coordinates:["@@X@l„°KXXlW„b@²„`šššb‚I„šX`l@„@bWl@n@VnLUV@V„@°¦@šl@XVlU@š@xVbUb@Vkb@‚@XVJVz™J@Lޚ@VmLUxUJ@LU„Vx‚b„xXUl@VaÈw„b‚aÞa@Vl@XUVx@V@V„LlbnV„al@lb„Vnn‚LnKnL@VlbVJXalIšb@KUU@mVInJ˜„U„Vl@xUšVLnUš@UÞaV@lkV@UanK„L@UlKVUnbÆmn@@nUlVnVJl@@UXU„L@WVIVJVxVLXV@IÜKnbn@V¥V@@I@ƒƒ„y°b@UUwnk°ÆƨVlUšçXm›£aƒÇ™IkVƒ@WV@@aWIUWUIkb@WW@UnƒK@UU@kaWVkƒVIVVnU@UWVUV@VmVkKkWIkVWaULU`UImJUImm—U@ƒƒwmwUV™IUWVkUamaU@mV—kƒb@KVU@aVU@anKULVJ‚U@kÛU™JUV›kkƒVakU@ƒaVwkW@UWkXmWaULUaUK@XƒJUUmƒVU@UVƒUkJ@ImwmKU@k„@lU„W@@akKm„kamIkWl_UwVm@UkaVUUaƒ@UamakbWlkL@aUalU@mkL@U@U™lmK@XkKm@Ýakb@xƒnXbƒ`ƒnUUU@›™U@™wU@@ƒmKkkƒV¯U@lULUbVbUb@V‚a@L™ºÝb@bLmK™x@VUL@bk@mxULWl"],encodeOffsets:[[121185,30184]]}},{type:"Feature",id:"3303",properties:{name:"温州市",cp:[120.498,27.8119],childNum:9},geometry:{type:"Polygon",coordinates:["@@ll@xnXV`VX„WVL@lXnlV@UV@@b@¤VzUlnV„U@nWxšW@b@LnalK@bšXVKUƒÈ@VV„I@b@Jš@WbXLÆaUU„mšI@xlKnn„@VWlbkXV‚@n„VWnœ‚WbUb„L@`VbUnVlVXkV@lUz±‚VnUbU@@VUlVL@l„_@V@l@LVbV@XLV`VÈlxn@lU@aœaVV‚k„@XJ@nl@@LU`°LVb„L°a@a„UVy@anI@a„a‚nV@²wÜJX@VšVV°k„na@WVk„aWwU@m@™ƒkƒaUĕ™ÝšÝŤnÈa„aóI›»@±X™WkUķ@kV±kw™ƒUkWw„™UƒÝ»ÛkɳlImaUaWóXÿǬk‚UnWVmmk™KţnŏÞğl™„UlUx@XWb„V@JkXƒ°mb@VULVxUVk@@LWWk@WIkšƒUkJmUkVmI@yƒ@Ua™kLm‚U@mUUUkaVk™@mK@UlUU@UmKmbUUUJ@n@KVLUL@VkJWXX`mnULWlkL@JVLVb@°kxkU@LVŽ™V@„VLV`UL@VUX"],encodeOffsets:[[122502,28334]]}},{type:"Feature",id:"3302",properties:{name:"宁波市",cp:[121.5967,29.6466],childNum:6},geometry:{type:"Polygon",coordinates:["@@Ċ¦ĸ°‚nXÞVšKškƨƑźÿ°»n„@wô¥ÜbœU°ÆXÞWóçĉݱIUƒÈ¥@U°wÆ»²mm_@aXƒVKÞVlk@akk›̅@£X»VwƏXWa¯aȗb™KƽۃĊ™xƒLóŽk@ƒƒƒ@¯nƒKUL@xkL›ÑkWULUUmJUXVŽU@mŽUX¯@V`mbXbV@@nn¤WXšx@škJ@nVVUVl²UbÝVUVk@Wx@V@„ƒVXzmlaƒL@VlLU`„XUVVVUnl@VbnJlnUVVnƒlUKkbmnn„VxlJnxmbU@UL@KUV™X@xmb@lk@mnVVUš™è"],encodeOffsets:[[123784,30977]]}},{type:"Feature",id:"3309",properties:{name:"舟山市",cp:[122.2559,30.2234],childNum:3},geometry:{type:"Polygon",coordinates:["@@l΢ƒʠþÆVĢLĊƒǬXĊ܄XôV„ÑÆw„ƒlšƏÈóVĭVǓ@ƒĉwɛkmK@ĉXīWaĉUĵÝmƒ¯ĉƒwĉ±±nż¯x@VǦV„²JĊÞôèÝXÅW¯›VÛaó¦@xƒŽmޝ¼ŹĀ"], -encodeOffsets:[[124437,30983]]}},{type:"Feature",id:"3310",properties:{name:"台州市",cp:[121.1353,28.6688],childNum:7},geometry:{type:"Polygon",coordinates:["@@lV„IVWVz@bXJl@Xal@°„nLll@nVxnV„K@UJVbƒ¦°„k`UIWJXnƚ@bUJ„Xl@lb„Wn@UzVV@bVVšmVnnJVXna‚bšKUKnUVVUnVLlKVLXa„Jm£@mU@WanaU_°@VWnV@UVWnIVVVKlXœÒlK@wVK„L°m„@„„l@ô„Kšw„ĉƾůUƒl£@»UƒVk„m@ƅUƒƒaÛIŏmUk@m„w@a™£ƒWk@ţšƒIm±@ankôUlaU™Uw¯ƒōaƒbÇbţm™ÞšÞVĖ„b„l@š@n‚VXxƒbUl@XmbƒŽ¯lUUU™W@ÛI±xU@mƒb@bmJ@bUzƒV@b¯bƒKUa¯KV_@Kk@@mWIƒ@lUU›b@bkVm@kwUÇU_WKU@Ux™@ƒVUnllX@Vn‚J@UXV@bWL@lUbbVLUJ@z‚V@lnbWbnnnJVŽ@L"],encodeOffsets:[[123312,29526]]}},{type:"Feature",id:"3307",properties:{name:"金华市",cp:[120.0037,29.1028],childNum:8},geometry:{type:"Polygon",coordinates:["@@nbVb„@VbUVlb@VUnVxk`lXnJlbnƒlL@bX@Vƒ@klƒV@nLnx@JlI„V‚U@VUVn„VV„I@WVLVbVKXbWnXl@VlXUx„b@ŽlVUbl„œlVUšIÜVnalKX@@bV@@aUUlUƒwUw„@naWW„UVaUUšaVb„LlxXJVk°ƒUƒlkU¥@k„a@LVlXLVlšVWznVn@lxšJl_@WX_@mVa„a@alU@kVVna„KVLlK„b@UUaVašbnUWmXU@k@yVI@ařWmXIVJl_¯ƒ„¥UaVI@ƒLmUUw@mkkmK¯ƒk@Wbk@WI@aUyUXƒJkU@bU@WLUyƒXUbkbW`UVVkKmbUaVUƒUK™£@KVUUUm@UWkXWaUKƒV@b¯ƒ¯mU™V@UkƒmW@kkKƒwUƒmkkVUI@WlkUamL@Wk_Wƒ@UVm@Ua¯KWXk@Uxm@UK@xV„mV@Xk@UVV¼@‚VLUb™Uƒ„U@ƒyULUbVlU@@XlVUVVbƒU@lXXVW@XUVl@@VUVƒÈn@VVU„@lVa@„U„mL@`X@`WL@VUX@lUL@xlx"],encodeOffsets:[[122119,29948]]}},{type:"Feature",id:"3308",properties:{name:"衢州市",cp:[118.6853,28.8666],childNum:5},geometry:{type:"Polygon",coordinates:["@@XkVKnwl@@aVK@UšwnL‚K@aÞaš¹@Kb@UVaUaVaVK@k°V„UllnL@„V@šxV@œšV@VV„m„_Wa„m@wlaÞbn@lL@WnLšk@V@VlK@nkVVb@blKXklakw@wVK@kVW@UXK@_‚W@_nKVƒ@ƒUb@kVƒUUm@„ÇVU@Uk@VU@WUXWW@k„VUaVUkU@WWXUKk@Ukmm¯LmmƒUJUIWJkImmƒ_—±WLkKm£@aVUmKUnƒLmWUkVmw@¥U„LVWm@WUka@UmmLmm@@bUX™@@WUIm@UVUK@UVUUU™VVJmb@b„Xn‚mVƒ¼nnn¦mJUVƒL„V@VW@UzUlVnUbl`UnVl@XU@kl@bmÈUx™Vk@@J@„ƒ¼W@ÅaVVnzmVƒ„@WJk@kWJ@ƒlXbWbXxmVnšlLXb@°lKVXnWšbWV„„X„mbV@Xl‚bšI@Kn@@x@šVLlm"],encodeOffsets:[[121185,30184]]}},{type:"Feature",id:"3306",properties:{name:"绍兴市",cp:[120.564,29.7565],childNum:6},geometry:{type:"Polygon",coordinates:["@@„x@„˜VnnVJnIVJV_VKXblUXJlŽlLUŽUnU@UVVX@ŽmVUUUJl„XUlbV@@V„LVmX@@XlaVJVXXJ@b‚@XU„@lUšJ„È‚bœ¤Ō„JšçV™UUnml@@kna@wšWVU@LVKV@namwkIUwmƒnmlaVL„kUmVUkmmIUak@VmUUVUƒWV_kK@U„K‚bnkWy„U@ƒ@UXwl@VUÞUVak±VUUU@mlI@™™wXWƒIWbUKkLUKVmUUmVVL™LambUWmIUm™nUU@aUUVym@ƒXkak@ƒW@z@lWVXnmV™aUbVb@VƒakLUKƒLmbUU@lkV@bƒbUb@nW`@Xk`™Ikwm@mUXy™UUkWKUk@Kƒb@lV¦klV„¯„UlWIkwƒKUa™bVVUbƒVXXmbƒ@Vx„xkVVV@bU@@aW@kLmb@lVUIVKmL@bUV@bUV@L„a˜lnUV@nbVbUlVXšJVUnx"],encodeOffsets:[[122997,30561]]}},{type:"Feature",id:"3304",properties:{name:"嘉兴市",cp:[120.9155,30.6354],childNum:6},geometry:{type:"Polygon",coordinates:["@@@blIX@@VÜVUnn@l‚k„lKnI°Þl`²LVKVbnbVaVLUVn@W¦@VkVVb„@VI„`@blLnL‚aX@„VVb@U‚@XlVa„@@kVaUKV»U_lWXUƒƒ@alb„k@VllnLVKn@@UVIUw@y°IVVXU@VV@lw„m@wVkƾaœJ‚LkΡƧƒ™l™LÝUmW¯ķÿĉ¥ƒIŋŽWn™èkVƧU¯ÅmlVx@V¯aƒz„Ž@„@JU@U¦m@@šnVmn@V„LV‚"],encodeOffsets:[[123233,31382]]}},{type:"Feature",id:"3305",properties:{name:"湖州市",cp:[119.8608,30.7782],childNum:4},geometry:{type:"Polygon",coordinates:["@@kLlƒkm@VmÛU@UW@kJ@aUƒK@UnmmU@™maÛL@JWUUKUwUIUJ@XƒKWV@Vk@UIUmVk@mm@ÅnmaUVkL@VƒKmLVbU@klU@ÝbV™@mVUKV™@wUkVƒ—ƒmIUJ@nVV@L™akJWbUIka@UmKmLKmmƒUUVk@@nmLX`WXUV@Ž@nUl™kmlU@Ub„„ƒxVVšIlV„Žšnn„@@n˜„UҚ@„°n@@xmb@„VbnV@šš„@b@`@L@L@x@blVklVbnnV@‚aXb°VlU@W„b°U„LXWVUV™„™VwÈwÜ»ĸaĠnUVw²X@V@lVU@wlaUUVm@knUV›"],encodeOffsets:[[123379,31500]]}}],UTF8Encoding:!0}}),i("echarts/chart/gauge",["require","./base","../util/shape/GaugePointer","zrender/shape/Text","zrender/shape/Line","zrender/shape/Rectangle","zrender/shape/Circle","zrender/shape/Sector","../config","../util/ecData","../util/accMath","zrender/tool/util","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("../util/shape/GaugePointer"),a=e("zrender/shape/Text"),o=e("zrender/shape/Line"),r=e("zrender/shape/Rectangle"),s=e("zrender/shape/Circle"),l=e("zrender/shape/Sector"),h=e("../config");h.gauge={zlevel:0,z:2,center:["50%","50%"],clickable:!0,legendHoverLink:!0,radius:"75%",startAngle:225,endAngle:-45,min:0,max:100,splitNumber:10,axisLine:{show:!0,lineStyle:{color:[[.2,"#228b22"],[.8,"#48b"],[1,"#ff4500"]],width:30}},axisTick:{show:!0,splitNumber:5,length:8,lineStyle:{color:"#eee",width:1,type:"solid"}},axisLabel:{show:!0,textStyle:{color:"auto"}},splitLine:{show:!0,length:30,lineStyle:{color:"#eee",width:2,type:"solid"}},pointer:{show:!0,length:"80%",width:8,color:"auto"},title:{show:!0,offsetCenter:[0,"-40%"],textStyle:{color:"#333",fontSize:15}},detail:{show:!0,backgroundColor:"rgba(0,0,0,0)",borderWidth:0,borderColor:"#ccc",width:100,height:40,offsetCenter:[0,"40%"],textStyle:{color:"auto",fontSize:30}}};var m=e("../util/ecData"),V=e("../util/accMath"),U=e("zrender/tool/util");return t.prototype={type:h.CHART_TYPE_GAUGE,_buildShape:function(){var e=this.series;this._paramsMap={},this.selectedMap={};for(var t=0,i=e.length;i>t;t++)e[t].type===h.CHART_TYPE_GAUGE&&(this.selectedMap[e[t].name]=!0,e[t]=this.reformOption(e[t]),this.legendHoverLink=e[t].legendHoverLink||this.legendHoverLink,this._buildSingleGauge(t),this.buildMark(t));this.addShapeList()},_buildSingleGauge:function(e){var t=this.series[e];this._paramsMap[e]={center:this.parseCenter(this.zr,t.center),radius:this.parseRadius(this.zr,t.radius),startAngle:t.startAngle.toFixed(2)-0,endAngle:t.endAngle.toFixed(2)-0},this._paramsMap[e].totalAngle=this._paramsMap[e].startAngle-this._paramsMap[e].endAngle,this._colorMap(e),this._buildAxisLine(e),this._buildSplitLine(e),this._buildAxisTick(e),this._buildAxisLabel(e),this._buildPointer(e),this._buildTitle(e),this._buildDetail(e)},_buildAxisLine:function(e){var t=this.series[e];if(t.axisLine.show)for(var i,n,a=t.min,o=t.max-a,r=this._paramsMap[e],s=r.center,l=r.startAngle,h=r.totalAngle,V=r.colorArray,U=t.axisLine.lineStyle,d=this.parsePercent(U.width,r.radius[1]),p=r.radius[1],c=p-d,u=l,y=0,g=V.length;g>y;y++)n=l-h*(V[y][0]-a)/o,i=this._getSector(s,c,p,n,u,V[y][1],U,t.zlevel,t.z),u=n,i._animationAdd="r",m.set(i,"seriesIndex",e),m.set(i,"dataIndex",y),this.shapeList.push(i)},_buildSplitLine:function(e){var t=this.series[e];if(t.splitLine.show)for(var i,n,a,r=this._paramsMap[e],s=t.splitNumber,l=t.min,h=t.max-l,m=t.splitLine,V=this.parsePercent(m.length,r.radius[1]),U=m.lineStyle,d=U.color,p=r.center,c=r.startAngle*Math.PI/180,u=r.totalAngle*Math.PI/180,y=r.radius[1],g=y-V,b=0;s>=b;b++)i=c-u/s*b,n=Math.sin(i),a=Math.cos(i),this.shapeList.push(new o({zlevel:t.zlevel,z:t.z+1,hoverable:!1,style:{xStart:p[0]+a*y,yStart:p[1]-n*y,xEnd:p[0]+a*g,yEnd:p[1]-n*g,strokeColor:"auto"===d?this._getColor(e,l+h/s*b):d,lineType:U.type,lineWidth:U.width,shadowColor:U.shadowColor,shadowBlur:U.shadowBlur,shadowOffsetX:U.shadowOffsetX,shadowOffsetY:U.shadowOffsetY}}))},_buildAxisTick:function(e){var t=this.series[e];if(t.axisTick.show)for(var i,n,a,r=this._paramsMap[e],s=t.splitNumber,l=t.min,h=t.max-l,m=t.axisTick,V=m.splitNumber,U=this.parsePercent(m.length,r.radius[1]),d=m.lineStyle,p=d.color,c=r.center,u=r.startAngle*Math.PI/180,y=r.totalAngle*Math.PI/180,g=r.radius[1],b=g-U,f=0,k=s*V;k>=f;f++)f%V!==0&&(i=u-y/k*f,n=Math.sin(i),a=Math.cos(i),this.shapeList.push(new o({zlevel:t.zlevel,z:t.z+1,hoverable:!1,style:{xStart:c[0]+a*g,yStart:c[1]-n*g,xEnd:c[0]+a*b,yEnd:c[1]-n*b,strokeColor:"auto"===p?this._getColor(e,l+h/k*f):p,lineType:d.type,lineWidth:d.width,shadowColor:d.shadowColor,shadowBlur:d.shadowBlur,shadowOffsetX:d.shadowOffsetX,shadowOffsetY:d.shadowOffsetY}})))},_buildAxisLabel:function(e){var t=this.series[e];if(t.axisLabel.show)for(var i,n,o,r,s=t.splitNumber,l=t.min,h=t.max-l,m=t.axisLabel.textStyle,U=this.getFont(m),d=m.color,p=this._paramsMap[e],c=p.center,u=p.startAngle,y=p.totalAngle,g=p.radius[1]-this.parsePercent(t.splitLine.length,p.radius[1])-5,b=0;s>=b;b++)r=V.accAdd(l,V.accMul(V.accDiv(h,s),b)),i=u-y/s*b,n=Math.sin(i*Math.PI/180),o=Math.cos(i*Math.PI/180),i=(i+360)%360,this.shapeList.push(new a({zlevel:t.zlevel,z:t.z+1,hoverable:!1,style:{x:c[0]+o*g,y:c[1]-n*g,color:"auto"===d?this._getColor(e,r):d,text:this._getLabelText(t.axisLabel.formatter,r),textAlign:i>=110&&250>=i?"left":70>=i||i>=290?"right":"center",textBaseline:i>=10&&170>=i?"top":i>=190&&350>=i?"bottom":"middle",textFont:U,shadowColor:m.shadowColor,shadowBlur:m.shadowBlur,shadowOffsetX:m.shadowOffsetX,shadowOffsetY:m.shadowOffsetY}}))},_buildPointer:function(e){var t=this.series[e];if(t.pointer.show){var i=t.max-t.min,a=t.pointer,o=this._paramsMap[e],r=this.parsePercent(a.length,o.radius[1]),l=this.parsePercent(a.width,o.radius[1]),h=o.center,V=this._getValue(e);V=V2?2:l/2,color:"#fff"}});m.pack(p,this.series[e],e,this.series[e].data[0],0,this.series[e].data[0].name,V),this.shapeList.push(p),this.shapeList.push(new s({zlevel:t.zlevel,z:t.z+2,hoverable:!1,style:{x:h[0],y:h[1],r:a.width/2.5,color:"#fff"}}))}},_buildTitle:function(e){var t=this.series[e];if(t.title.show){var i=t.data[0],n=null!=i.name?i.name:"";if(""!==n){var o=t.title,r=o.offsetCenter,s=o.textStyle,l=s.color,h=this._paramsMap[e],m=h.center[0]+this.parsePercent(r[0],h.radius[1]),V=h.center[1]+this.parsePercent(r[1],h.radius[1]);this.shapeList.push(new a({zlevel:t.zlevel,z:t.z+(Math.abs(m-h.center[0])+Math.abs(V-h.center[1])<2*s.fontSize?2:1),hoverable:!1,style:{x:m,y:V,color:"auto"===l?this._getColor(e):l,text:n,textAlign:"center",textFont:this.getFont(s),shadowColor:s.shadowColor,shadowBlur:s.shadowBlur,shadowOffsetX:s.shadowOffsetX,shadowOffsetY:s.shadowOffsetY}}))}}},_buildDetail:function(e){var t=this.series[e];if(t.detail.show){var i=t.detail,n=i.offsetCenter,a=i.backgroundColor,o=i.textStyle,s=o.color,l=this._paramsMap[e],h=this._getValue(e),m=l.center[0]-i.width/2+this.parsePercent(n[0],l.radius[1]),V=l.center[1]+this.parsePercent(n[1],l.radius[1]);this.shapeList.push(new r({zlevel:t.zlevel,z:t.z+(Math.abs(m+i.width/2-l.center[0])+Math.abs(V+i.height/2-l.center[1])r;r++)o.push([a[r][0]*n+i,a[r][1]]);this._paramsMap[e].colorArray=o},_getColor:function(e,t){null==t&&(t=this._getValue(e));for(var i=this._paramsMap[e].colorArray,n=0,a=i.length;a>n;n++)if(i[n][0]>=t)return i[n][1];return i[i.length-1][1]},_getSector:function(e,t,i,n,a,o,r,s,h){return new l({zlevel:s,z:h,hoverable:!1,style:{x:e[0],y:e[1],r0:t,r:i,startAngle:n,endAngle:a,brushType:"fill",color:o,shadowColor:r.shadowColor,shadowBlur:r.shadowBlur,shadowOffsetX:r.shadowOffsetX,shadowOffsetY:r.shadowOffsetY}})},_getLabelText:function(e,t){if(e){if("function"==typeof e)return e.call(this.myChart,t);if("string"==typeof e)return e.replace("{value}",t)}return t},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()}},U.inherits(t,i),e("../chart").define("gauge",t),t}),i("echarts/util/shape/GaugePointer",["require","zrender/shape/Base","zrender/tool/util","./normalIsCover"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/tool/util");return t.prototype={type:"gauge-pointer",buildPath:function(e,t){var i=t.r,n=t.width,a=t.angle,o=t.x-Math.cos(a)*n*(n>=i/3?1:2),r=t.y+Math.sin(a)*n*(n>=i/3?1:2);a=t.angle-Math.PI/2,e.moveTo(o,r),e.lineTo(t.x+Math.cos(a)*n,t.y-Math.sin(a)*n),e.lineTo(t.x+Math.cos(t.angle)*i,t.y-Math.sin(t.angle)*i),e.lineTo(t.x-Math.cos(a)*n,t.y+Math.sin(a)*n),e.lineTo(o,r)},getRect:function(e){if(e.__rect)return e.__rect;var t=2*e.width,i=e.x,n=e.y,a=i+Math.cos(e.angle)*e.r,o=n-Math.sin(e.angle)*e.r;return e.__rect={x:Math.min(i,a)-t,y:Math.min(n,o)-t,width:Math.abs(i-a)+t,height:Math.abs(n-o)+t},e.__rect},isCover:e("./normalIsCover")},n.inherits(t,i),t}),i("echarts/chart/funnel",["require","./base","zrender/shape/Text","zrender/shape/Line","zrender/shape/Polygon","../config","../util/ecData","../util/number","zrender/tool/util","zrender/tool/color","zrender/tool/area","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Line"),o=e("zrender/shape/Polygon"),r=e("../config");r.funnel={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,x:80,y:60,x2:80,y2:60,min:0,max:100,minSize:"0%",maxSize:"100%",sort:"descending",gap:0,funnelAlign:"center",itemStyle:{normal:{borderColor:"#fff",borderWidth:1,label:{show:!0,position:"outer"},labelLine:{show:!0,length:10,lineStyle:{width:1,type:"solid"}}},emphasis:{borderColor:"rgba(0,0,0,0)",borderWidth:1,label:{show:!0},labelLine:{show:!0}}}};var s=e("../util/ecData"),l=e("../util/number"),h=e("zrender/tool/util"),m=e("zrender/tool/color"),V=e("zrender/tool/area");return t.prototype={type:r.CHART_TYPE_FUNNEL,_buildShape:function(){var e=this.series,t=this.component.legend;this._paramsMap={},this._selected={},this.selectedMap={};for(var i,n=0,a=e.length;a>n;n++)if(e[n].type===r.CHART_TYPE_FUNNEL){if(e[n]=this.reformOption(e[n]),this.legendHoverLink=e[n].legendHoverLink||this.legendHoverLink,i=e[n].name||"",this.selectedMap[i]=t?t.isSelected(i):!0,!this.selectedMap[i])continue;this._buildSingleFunnel(n),this.buildMark(n)}this.addShapeList()},_buildSingleFunnel:function(e){var t=this.component.legend,i=this.series[e],n=this._mapData(e),a=this._getLocation(e);this._paramsMap[e]={location:a,data:n};for(var o,r=0,s=[],h=0,m=n.length;m>h;h++)o=n[h].name,this.selectedMap[o]=t?t.isSelected(o):!0,this.selectedMap[o]&&!isNaN(n[h].value)&&(s.push(n[h]),r++);if(0!==r){for(var V,U,d,p,c=this._buildFunnelCase(e),u=i.funnelAlign,y=i.gap,g=r>1?(a.height-(r-1)*y)/r:a.height,b=a.y,f="descending"===i.sort?this._getItemWidth(e,s[0].value):l.parsePercent(i.minSize,a.width),k="descending"===i.sort?1:0,x=a.centerX,_=[],h=0,m=s.length;m>h;h++)if(o=s[h].name,this.selectedMap[o]&&!isNaN(s[h].value)){switch(V=m-2>=h?this._getItemWidth(e,s[h+k].value):"descending"===i.sort?l.parsePercent(i.minSize,a.width):l.parsePercent(i.maxSize,a.width),u){case"left":U=a.x;break;case"right":U=a.x+a.width-f;break;default:U=x-f/2}d=this._buildItem(e,s[h]._index,t?t.getColor(o):this.zr.getColor(s[h]._index),U,b,f,V,g,u),b+=g+y,p=d.style.pointList,_.unshift([p[0][0]-10,p[0][1]]),_.push([p[1][0]+10,p[1][1]]),0===h&&(0===f?(p=_.pop(),"center"==u&&(_[0][0]+=10),"right"==u&&(_[0][0]=p[0]),_[0][1]-="center"==u?10:15,1==m&&(p=d.style.pointList)):(_[_.length-1][1]-=5,_[0][1]-=5)),f=V}c&&(_.unshift([p[3][0]-10,p[3][1]]),_.push([p[2][0]+10,p[2][1]]),0===f?(p=_.pop(),"center"==u&&(_[0][0]+=10),"right"==u&&(_[0][0]=p[0]),_[0][1]+="center"==u?10:15):(_[_.length-1][1]+=5,_[0][1]+=5),c.style.pointList=_)}},_buildFunnelCase:function(e){var t=this.series[e];if(this.deepQuery([t,this.option],"calculable")){var i=this._paramsMap[e].location,n=10,a={hoverable:!1,style:{pointListd:[[i.x-n,i.y-n],[i.x+i.width+n,i.y-n],[i.x+i.width+n,i.y+i.height+n],[i.x-n,i.y+i.height+n]],brushType:"stroke",lineWidth:1,strokeColor:t.calculableHolderColor||this.ecTheme.calculableHolderColor||r.calculableHolderColor}};return s.pack(a,t,e,void 0,-1),this.setCalculable(a),a=new o(a),this.shapeList.push(a),a}},_getLocation:function(e){var t=this.series[e],i=this.zr.getWidth(),n=this.zr.getHeight(),a=this.parsePercent(t.x,i),o=this.parsePercent(t.y,n),r=null==t.width?i-a-this.parsePercent(t.x2,i):this.parsePercent(t.width,i);return{x:a,y:o,width:r,height:null==t.height?n-o-this.parsePercent(t.y2,n):this.parsePercent(t.height,n),centerX:a+r/2}},_mapData:function(e){function t(e,t){return"-"===e.value?1:"-"===t.value?-1:t.value-e.value}function i(e,i){return-t(e,i)}for(var n=this.series[e],a=h.clone(n.data),o=0,r=a.length;r>o;o++)a[o]._index=o;return"none"!=n.sort&&a.sort("descending"===n.sort?t:i),a},_buildItem:function(e,t,i,n,a,o,r,l,h){var m=this.series,V=m[e],U=V.data[t],d=this.getPolygon(e,t,i,n,a,o,r,l,h);s.pack(d,m[e],e,m[e].data[t],t,m[e].data[t].name),this.shapeList.push(d);var p=this.getLabel(e,t,i,n,a,o,r,l,h);s.pack(p,m[e],e,m[e].data[t],t,m[e].data[t].name),this.shapeList.push(p),this._needLabel(V,U,!1)||(p.invisible=!0);var c=this.getLabelLine(e,t,i,n,a,o,r,l,h);this.shapeList.push(c),this._needLabelLine(V,U,!1)||(c.invisible=!0);var u=[],y=[];return this._needLabelLine(V,U,!0)&&(u.push(c.id),y.push(c.id)),this._needLabel(V,U,!0)&&(u.push(p.id),y.push(d.id)),d.hoverConnect=u,p.hoverConnect=y,d},_getItemWidth:function(e,t){var i=this.series[e],n=this._paramsMap[e].location,a=i.min,o=i.max,r=l.parsePercent(i.minSize,n.width),s=l.parsePercent(i.maxSize,n.width);return(t-a)*(s-r)/(o-a)+r},getPolygon:function(e,t,i,n,a,r,s,l,h){var V,U=this.series[e],d=U.data[t],p=[d,U],c=this.deepMerge(p,"itemStyle.normal")||{},u=this.deepMerge(p,"itemStyle.emphasis")||{},y=this.getItemStyleColor(c.color,e,t,d)||i,g=this.getItemStyleColor(u.color,e,t,d)||("string"==typeof y?m.lift(y,-.2):y);switch(h){case"left":V=n;break;case"right":V=n+(r-s);break;default:V=n+(r-s)/2}var b={zlevel:U.zlevel,z:U.z,clickable:this.deepQuery(p,"clickable"),style:{pointList:[[n,a],[n+r,a],[V+s,a+l],[V,a+l]],brushType:"both",color:y,lineWidth:c.borderWidth,strokeColor:c.borderColor},highlightStyle:{color:g,lineWidth:u.borderWidth,strokeColor:u.borderColor}};return this.deepQuery([d,U,this.option],"calculable")&&(this.setCalculable(b),b.draggable=!0),new o(b)},getLabel:function(e,t,i,a,o,r,s,l,U){var d,p=this.series[e],c=p.data[t],u=this._paramsMap[e].location,y=h.merge(h.clone(c.itemStyle)||{},p.itemStyle),g="normal",b=y[g].label,f=b.textStyle||{},k=y[g].labelLine.length,x=this.getLabelText(e,t,g),_=this.getFont(f),L=i;b.position=b.position||y.normal.label.position,"inner"===b.position||"inside"===b.position||"center"===b.position?(d=U,L=Math.max(r,s)/2>V.getTextWidth(x,_)?"#fff":m.reverse(i)):d="left"===b.position?"right":"left";var W={zlevel:p.zlevel,z:p.z+1,style:{x:this._getLabelPoint(b.position,a,u,r,s,k,U),y:o+l/2,color:f.color||L,text:x,textAlign:f.align||d,textBaseline:f.baseline||"middle",textFont:_}};return g="emphasis",b=y[g].label||b,f=b.textStyle||f,k=y[g].labelLine.length||k,b.position=b.position||y.normal.label.position,x=this.getLabelText(e,t,g),_=this.getFont(f),L=i,"inner"===b.position||"inside"===b.position||"center"===b.position?(d=U,L=Math.max(r,s)/2>V.getTextWidth(x,_)?"#fff":m.reverse(i)):d="left"===b.position?"right":"left",W.highlightStyle={x:this._getLabelPoint(b.position,a,u,r,s,k,U),color:f.color||L,text:x,textAlign:f.align||d,textFont:_,brushType:"fill"},new n(W)},getLabelText:function(e,t,i){var n=this.series,a=n[e],o=a.data[t],r=this.deepQuery([o,a],"itemStyle."+i+".label.formatter");return r?"function"==typeof r?r.call(this.myChart,{seriesIndex:e,seriesName:a.name||"",series:a,dataIndex:t,data:o,name:o.name,value:o.value}):"string"==typeof r?r=r.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}").replace("{a0}",a.name).replace("{b0}",o.name).replace("{c0}",o.value):void 0:o.name},getLabelLine:function(e,t,i,n,o,r,s,l,m){var V=this.series[e],U=V.data[t],d=this._paramsMap[e].location,p=h.merge(h.clone(U.itemStyle)||{},V.itemStyle),c="normal",u=p[c].labelLine,y=p[c].labelLine.length,g=u.lineStyle||{},b=p[c].label;b.position=b.position||p.normal.label.position;var f={zlevel:V.zlevel,z:V.z+1,hoverable:!1,style:{xStart:this._getLabelLineStartPoint(n,d,r,s,m),yStart:o+l/2,xEnd:this._getLabelPoint(b.position,n,d,r,s,y,m),yEnd:o+l/2,strokeColor:g.color||i,lineType:g.type,lineWidth:g.width}};return c="emphasis",u=p[c].labelLine||u,y=p[c].labelLine.length||y,g=u.lineStyle||g,b=p[c].label||b,b.position=b.position,f.highlightStyle={xEnd:this._getLabelPoint(b.position,n,d,r,s,y,m),strokeColor:g.color||i,lineType:g.type,lineWidth:g.width},new a(f)},_getLabelPoint:function(e,t,i,n,a,o,r){switch(e="inner"===e||"inside"===e?"center":e){case"center":return"center"==r?t+n/2:"left"==r?t+10:t+n-10;case"left":return"auto"===o?i.x-10:"center"==r?i.centerX-Math.max(n,a)/2-o:"right"==r?t-(a>n?a-n:0)-o:i.x-o;default:return"auto"===o?i.x+i.width+10:"center"==r?i.centerX+Math.max(n,a)/2+o:"right"==r?i.x+i.width+o:t+Math.max(n,a)+o}},_getLabelLineStartPoint:function(e,t,i,n,a){return"center"==a?t.centerX:n>i?e+Math.min(i,n)/2:e+Math.max(i,n)/2},_needLabel:function(e,t,i){return this.deepQuery([t,e],"itemStyle."+(i?"emphasis":"normal")+".label.show")},_needLabelLine:function(e,t,i){return this.deepQuery([t,e],"itemStyle."+(i?"emphasis":"normal")+".labelLine.show")},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()}},h.inherits(t,i),e("../chart").define("funnel",t),t}),i("echarts/chart/eventRiver",["require","./base","../layout/eventRiver","zrender/shape/Polygon","../component/axis","../component/grid","../component/dataZoom","../config","../util/ecData","../util/date","zrender/tool/util","zrender/tool/color","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o);var r=this;r._ondragend=function(){r.isDragend=!0},this.refresh(a)}var i=e("./base"),n=e("../layout/eventRiver"),a=e("zrender/shape/Polygon");e("../component/axis"),e("../component/grid"),e("../component/dataZoom");var o=e("../config");o.eventRiver={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,itemStyle:{normal:{borderColor:"rgba(0,0,0,0)",borderWidth:1,label:{show:!0,position:"inside",formatter:"{b}"}},emphasis:{borderColor:"rgba(0,0,0,0)",borderWidth:1,label:{show:!0}}}};var r=e("../util/ecData"),s=e("../util/date"),l=e("zrender/tool/util"),h=e("zrender/tool/color");return t.prototype={type:o.CHART_TYPE_EVENTRIVER,_buildShape:function(){var e=this.series;this.selectedMap={},this._dataPreprocessing();for(var t=this.component.legend,i=[],a=0;an;n++)if(i[n].type===this.type){e=this.component.xAxis.getAxis(i[n].xAxisIndex||0);for(var o=0,r=i[n].data.length;r>o;o++){t=i[n].data[o].evolution;for(var l=0,h=t.length;h>l;l++)t[l].timeScale=e.getCoord(s.getNewDate(t[l].time)-0),t[l].valueScale=Math.pow(t[l].value,.8)}}this._intervalX=Math.round(this.component.grid.getWidth()/40)},_drawEventRiver:function(){for(var e=this.series,t=0;ta)){for(var o=[],r=[],s=0;a>s;s++)o.push(n[s].timeScale),r.push(n[s].valueScale);var l=[];l.push([o[0],i]);var s=0;for(s=0;a-1>s;s++)l.push([(o[s]+o[s+1])/2,r[s]/-2+i]);for(l.push([(o[s]+(o[s]+t))/2,r[s]/-2+i]),l.push([o[s]+t,i]),l.push([(o[s]+(o[s]+t))/2,r[s]/2+i]),s=a-1;s>0;s--)l.push([(o[s]+o[s-1])/2,r[s-1]/2+i]);return l}},ondragend:function(e,t){this.isDragend&&e.target&&(t.dragOut=!0,t.dragIn=!0,t.needRefresh=!1,this.isDragend=!1)},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()}},l.inherits(t,i),e("../chart").define("eventRiver",t),t}),i("echarts/layout/eventRiver",["require"],function(){function e(e,i,o){function r(e,t){var i=e.importance,n=t.importance;return i>n?-1:n>i?1:0}for(var s=4,l=0;l=e)return[0];for(var t=[];e--;)t.push(0);return t}(),u=c.slice(0),y=[],g=0,b=0,l=0;l.5?.5:1,r=t.y,s=(t.height-n)/i,l=0,h=e.length;h>l;l++){var m=e[l];m.y=r+s*m.y+m._offset*o,delete m.time,delete m.value,delete m.xpx,delete m.ypx,delete m._offset;for(var V=m.evolution,U=0,d=V.length;d>U;U++)V[U].valueScale*=s}}function i(e,t,i,n){if(e===i)throw new Error("x0 is equal with x1!!!");if(t===n)return function(){return t};var a=(t-n)/(e-i),o=(n*e-t*i)/(e-i);return function(e){return a*e+o}}function n(e,t,n){var a=~~t,o=e.time.length;e.xpx=[],e.ypx=[];for(var r,s=0,l=0,h=0,m=0,V=0;o>s;s++){l=~~e.time[s],m=e.value[s]/2,s===o-1?(h=l+a,V=0):(h=~~e.time[s+1],V=e.value[s+1]/2),r=i(l,m,h,V);for(var U=l;h>U;U++)e.xpx.push(U-n),e.ypx.push(r(U))}e.xpx.push(h-n),e.ypx.push(V)}function a(e,t,i){for(var n,a=0,o=t.xpx.length,r=0;o>r;r++)n=i(t,r),a=Math.max(a,n+e[t.xpx[r]]);for(r=0;o>r;r++)n=i(t,r),e[t.xpx[r]]=a+n;return a}return e}),i("echarts/chart/venn",["require","./base","zrender/shape/Text","zrender/shape/Circle","zrender/shape/Path","../config","../util/ecData","zrender/tool/util","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Circle"),o=e("zrender/shape/Path"),r=e("../config");r.venn={zlevel:0,z:1,calculable:!1};var s=e("../util/ecData"),l=e("zrender/tool/util");return t.prototype={type:r.CHART_TYPE_VENN,_buildShape:function(){this.selectedMap={},this._symbol=this.option.symbolList,this._queryTarget,this._dropBoxList=[],this._vennDataCounter=0;for(var e=this.series,t=this.component.legend,i=0;ia[1].value?(t=this.zr.getHeight()/3,i=t*Math.sqrt(a[1].value)/Math.sqrt(a[0].value)):(i=this.zr.getHeight()/3,t=i*Math.sqrt(a[0].value)/Math.sqrt(a[1].value));var o=this.zr.getWidth()/2-t,r=(t+i)/2*Math.sqrt(a[2].value)/Math.sqrt((a[0].value+a[1].value)/2),s=t+i;0!==a[2].value&&(s=this._getCoincideLength(a[0].value,a[1].value,a[2].value,t,i,r,Math.abs(t-i),t+i));var l=o+s,h=this.zr.getHeight()/2;if(this._buildItem(e,0,a[0],o,h,t),this._buildItem(e,1,a[1],l,h,i),0!==a[2].value&&a[2].value!==a[0].value&&a[2].value!==a[1].value){var m=(t*t-i*i)/(2*s)+s/2,V=s/2-(t*t-i*i)/(2*s),U=Math.sqrt(t*t-m*m),d=0,p=0;a[0].value>a[1].value&&o+m>l&&(p=1),a[0].valuel&&(d=1),this._buildCoincideItem(e,2,a[2],o+m,h-U,h+U,t,i,d,p)}},_getCoincideLength:function(e,t,i,n,a,o,r,s){var l=(n*n-a*a)/(2*o)+o/2,h=o/2-(n*n-a*a)/(2*o),m=Math.acos(l/n),V=Math.acos(h/a),U=n*n*Math.PI,d=m*n*n-l*n*Math.sin(m)+V*a*a-h*a*Math.sin(V),p=d/U,c=i/e,u=Math.abs(p/c);return u>.999&&1.001>u?o:.999>=u?(s=o,o=(o+r)/2,this._getCoincideLength(e,t,i,n,a,o,r,s)):(r=o,o=(o+s)/2,this._getCoincideLength(e,t,i,n,a,o,r,s))},_buildItem:function(e,t,i,n,a,o){var r=this.series,l=r[e],h=this.getCircle(e,t,i,n,a,o);if(s.pack(h,l,e,i,t,i.name),this.shapeList.push(h),l.itemStyle.normal.label.show){var m=this.getLabel(e,t,i,n,a,o);s.pack(m,l,e,l.data[t],t,l.data[t].name),this.shapeList.push(m)}},_buildCoincideItem:function(e,t,i,n,a,r,l,h,m,V){var U=this.series,d=U[e],p=[i,d],c=this.deepMerge(p,"itemStyle.normal")||{},u=this.deepMerge(p,"itemStyle.emphasis")||{},y=c.color||this.zr.getColor(t),g=u.color||this.zr.getColor(t),b="M"+n+","+a+"A"+l+","+l+",0,"+m+",1,"+n+","+r+"A"+h+","+h+",0,"+V+",1,"+n+","+a,f={color:y,path:b},k={zlevel:d.zlevel,z:d.z,style:f,highlightStyle:{color:g,lineWidth:u.borderWidth,strokeColor:u.borderColor}};k=new o(k),k.buildPathArray&&(k.style.pathArray=k.buildPathArray(f.path)),s.pack(k,U[e],0,i,t,i.name),this.shapeList.push(k)},getCircle:function(e,t,i,n,o,r){var s=this.series[e],l=[i,s],h=this.deepMerge(l,"itemStyle.normal")||{},m=this.deepMerge(l,"itemStyle.emphasis")||{},V=h.color||this.zr.getColor(t),U=m.color||this.zr.getColor(t),d={zlevel:s.zlevel,z:s.z,clickable:!0,style:{x:n,y:o,r:r,brushType:"fill",opacity:1,color:V},highlightStyle:{color:U,lineWidth:m.borderWidth,strokeColor:m.borderColor}};return this.deepQuery([i,s,this.option],"calculable")&&(this.setCalculable(d),d.draggable=!0),new a(d)},getLabel:function(e,t,i,a,o,r){var s=this.series[e],l=s.itemStyle,h=[i,s],m=this.deepMerge(h,"itemStyle.normal")||{},V="normal",U=l[V].label,d=U.textStyle||{},p=this.getLabelText(t,i,V),c=this.getFont(d),u=m.color||this.zr.getColor(t),y=d.fontSize||12,g={zlevel:s.zlevel,z:s.z,style:{x:a,y:o-r-y,color:d.color||u,text:p,textFont:c,textAlign:"center"}};return new n(g)},getLabelText:function(e,t,i){var n=this.series,a=n[0],o=this.deepQuery([t,a],"itemStyle."+i+".label.formatter");return o?"function"==typeof o?o(a.name,t.name,t.value):"string"==typeof o?(o=o.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}"),o=o.replace("{a0}",a.name).replace("{b0}",t.name).replace("{c0}",t.value)):void 0:t.name},refresh:function(e){e&&(this.option=e,this.series=e.series),this._buildShape()}},l.inherits(t,i),e("../chart").define("venn",t),t}),i("echarts/chart/treemap",["require","./base","zrender/tool/area","zrender/shape/Rectangle","zrender/shape/Text","zrender/shape/Line","../layout/TreeMap","../data/Tree","../config","../util/ecData","zrender/config","zrender/tool/event","zrender/tool/util","zrender/tool/color","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a);var r=this;r._onclick=function(e){return r.__onclick(e)},r.zr.on(V.EVENT.CLICK,r._onclick)}var i=e("./base"),n=e("zrender/tool/area"),a=e("zrender/shape/Rectangle"),o=e("zrender/shape/Text"),r=e("zrender/shape/Line"),s=e("../layout/TreeMap"),l=e("../data/Tree"),h=e("../config");h.treemap={zlevel:0,z:1,calculable:!1,clickable:!0,center:["50%","50%"],size:["80%","80%"],root:"",itemStyle:{normal:{label:{ -show:!0,x:5,y:12,textStyle:{align:"left",color:"#000",fontFamily:"Arial",fontSize:13,fontStyle:"normal",fontWeight:"normal"}},breadcrumb:{show:!0,textStyle:{}},borderWidth:1,borderColor:"#ccc",childBorderWidth:1,childBorderColor:"#ccc"},emphasis:{}}};var m=e("../util/ecData"),V=e("zrender/config"),U=(e("zrender/tool/event"),e("zrender/tool/util")),d=e("zrender/tool/color");return t.prototype={type:h.CHART_TYPE_TREEMAP,refresh:function(e){this.clear(),e&&(this.option=e,this.series=this.option.series),this._treesMap={};for(var t=this.series,i=this.component.legend,n=0;nt.width||e.normal.label.y+U>t.height)&&(h=""):h="",e.emphasis.label.show?(s.x+u>t.width||s.y+y>t.height)&&(p=""):p="";var g={style:{textX:t.x+e.normal.label.x,textY:t.y+e.normal.label.y,text:h,textPosition:"specific",textColor:o.color,textFont:m},highlightStyle:{textX:t.x+e.emphasis.label.x,textY:t.y+e.emphasis.label.y,text:p,textColor:s.color,textPosition:"specific"}};return g},getLabelText:function(e,t,i){return i?"function"==typeof i?i.call(this.myChart,e,t):"string"==typeof i?(i=i.replace("{b}","{b0}").replace("{c}","{c0}"),i=i.replace("{b0}",e).replace("{c0}",t)):void 0:e},_buildChildrenTreemap:function(e,t,i,n){for(var a=i.width*i.height,o=0,r=[],l=0;l ":"")},V),clickable:!0,highlightStyle:p});m.set(u,"seriesIndex",t),m.set(u,"name",a[c]),i+=u.getRect(u.style).width,this.shapeList.push(u)}},__onclick:function(e){var t=e.target;if(t){var i=m.get(t,"seriesIndex"),n=m.get(t,"name"),a=this._treesMap[i],o=a.getNodeById(n);o&&o.children.length&&this._buildTreemap(o,i)}}},U.inherits(t,i),e("../chart").define("treemap",t),t}),i("echarts/layout/TreeMap",["require"],function(){function e(e){({x:e.x,y:e.y,width:e.width,height:e.height});this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height}return e.prototype.run=function(e){var t=[];return this._squarify(e,{x:this.x,y:this.y,width:this.width,height:this.height},t),t},e.prototype._squarify=function(e,t,i){var n="VERTICAL",a=t.width,o=t.height;t.widthl;l++)r[s].y+=r[l].height}var h={};if("VERTICAL"==n){for(var m=0;ml;l++){var h=i*e[l]/o;a.push({width:s,height:h})}return a},e.prototype._isFirstBetter=function(e,t){var i=e[0].height/e[0].width;i=i>1?1/i:i;var n=t[0].height/t[0].width;return n=n>1?1/n:n,Math.abs(i-1)<=Math.abs(n-1)?!0:!1},e}),i("echarts/data/Tree",["require","zrender/tool/util"],function(e){function t(e,t){this.id=e,this.depth=0,this.height=0,this.children=[],this.parent=null,this.data=t||null}function i(e){this.root=new t(e)}var n=e("zrender/tool/util");return t.prototype.add=function(e){var t=this.children;e.parent!==this&&(t.push(e),e.parent=this)},t.prototype.remove=function(e){var t=this.children,i=n.indexOf(t,e);i>=0&&(t.splice(i,1),e.parent=null)},t.prototype.traverse=function(e,t){e.call(t,this);for(var i=0;it&&(t=n.height)}this.height=t+1},t.prototype.getNodeById=function(e){if(this.id===e)return this;for(var t=0;t0&&this._buildLink(i,e)},this);var n=e.roam===!0||"move"===e.roam,a=e.roam===!0||"scale"===e.roam;this.zr.modLayer(this.getZlevelBase(),{panable:n,zoomable:a}),(this.query("markPoint.effect.show")||this.query("markLine.effect.show"))&&this.zr.modLayer(m.EFFECT_ZLEVEL,{panable:n,zoomable:a}),this.addShapeList()},_buildItem:function(e,t,i){var n=[e.data,t],r=this.deepQuery(n,"symbol"),s=this.deepMerge(n,"itemStyle.normal")||{},l=this.deepMerge(n,"itemStyle.emphasis")||{},h=s.color||this.zr.getColor(),m=l.color||this.zr.getColor(),U=-e.layout.angle||0;e.id===this.tree.root.id&&(U=0);var d="right";Math.abs(U)>=Math.PI/2&&Math.abs(U)<3*Math.PI/2&&(U+=Math.PI,d="left");var p=[U,e.layout.position[0],e.layout.position[1]],c=new a({zlevel:this.getZlevelBase(),z:this.getZBase()+1,rotation:p,clickable:this.deepQuery(n,"clickable"),style:{x:e.layout.position[0]-.5*e.layout.width,y:e.layout.position[1]-.5*e.layout.height,width:e.layout.width,height:e.layout.height,iconType:r,color:h,brushType:"both",lineWidth:s.borderWidth,strokeColor:s.borderColor},highlightStyle:{color:m,lineWidth:l.borderWidth,strokeColor:l.borderColor}});c.style.iconType.match("image")&&(c.style.image=c.style.iconType.replace(new RegExp("^image:\\/\\/"),""),c=new o({rotation:p,style:c.style,highlightStyle:c.highlightStyle,clickable:c.clickable,zlevel:this.getZlevelBase(),z:this.getZBase()})),this.deepQuery(n,"itemStyle.normal.label.show")&&(c.style.text=null==e.data.label?e.id:e.data.label,c.style.textPosition=this.deepQuery(n,"itemStyle.normal.label.position"),"radial"===t.orient&&"inside"!==c.style.textPosition&&(c.style.textPosition=d),c.style.textColor=this.deepQuery(n,"itemStyle.normal.label.textStyle.color"),c.style.textFont=this.getFont(this.deepQuery(n,"itemStyle.normal.label.textStyle")||{})),this.deepQuery(n,"itemStyle.emphasis.label.show")&&(c.highlightStyle.textPosition=this.deepQuery(n,"itemStyle.emphasis.label.position"),c.highlightStyle.textColor=this.deepQuery(n,"itemStyle.emphasis.label.textStyle.color"),c.highlightStyle.textFont=this.getFont(this.deepQuery(n,"itemStyle.emphasis.label.textStyle")||{})),V.pack(c,t,i,e.data,0,e.id),this.shapeList.push(c)},_buildLink:function(e,t){var i=t.itemStyle.normal.lineStyle;if("broken"===i.type)return void this._buildBrokenLine(e,i,t);for(var n=0;nr&&(t=r),r>n&&(n=r)}e.layout.position[0]=e.children.length>0?(t+n)/2:0;var s=this._layerOffsets[e.depth]||0;if(s>e.layout.position[0]){var l=s-e.layout.position[0];this._shiftSubtree(e,l);for(var a=e.depth+1;ai;i++)this._buildTextShape(e[i],0,i);this.addShapeList()},_buildTextShape:function(e,t,i){var a=this.series,o=a[t],s=o.name||"",h=o.data[i],m=[h,o],V=this.component.legend,U=V?V.getColor(s):this.zr.getColor(t),d=this.deepMerge(m,"itemStyle.normal")||{},p=this.deepMerge(m,"itemStyle.emphasis")||{},c=this.getItemStyleColor(d.color,t,i,h)||U,u=this.getItemStyleColor(p.color,t,i,h)||("string"==typeof c?l.lift(c,-.2):c),y=new n({zlevel:o.zlevel,z:o.z,hoverable:!0,clickable:this.deepQuery(m,"clickable"),style:{x:0,y:0,text:e.text,color:c,textFont:[e.style,e.weight,e.size+"px",e.font].join(" "),textBaseline:"alphabetic",textAlign:"center"},highlightStyle:{brushType:p.borderWidth?"both":"fill",color:u,lineWidth:p.borderWidth||0,strokeColor:p.borderColor},position:[e.x,e.y],rotation:[-e.rotate/180*Math.PI,0,0]});r.pack(y,o,t,h,i,h.name),this.shapeList.push(y)}},s.inherits(t,i),e("../chart").define("wordCloud",t),t}),i("echarts/layout/WordCloud",["require","../layout/WordCloudRectZero","zrender/tool/util"],function(e){function t(e){this._init(e)}var i=e("../layout/WordCloudRectZero"),n=e("zrender/tool/util");return t.prototype={start:function(){function e(){p.totalArea=r,U.autoSizeCal.enable&&p._autoCalTextSize(m,r,a,o,U.autoSizeCal.minSize),V.timer&&clearInterval(V.timer),V.timer=setInterval(t,0),t()}function t(){for(var e,t=+new Date,i=m.length;+new Date-t>1,e.y=d[1]>>1,p._cloudSprite(e,m,s),e.hasText&&p._place(n,e,h)&&(l.push(e),e.x-=d[0]>>1,e.y-=d[1]>>1);s>=i&&(p.stop(),p._fixTagPosition(l),V.endcallback(l))}var n=null,a=0,o=0,r=0,s=-1,l=[],h=null,m=this.wordsdata,V=this.defaultOption,U=V.wordletype,d=V.size,p=this,c=new i({type:U.type,width:d[0],height:d[1]});return c.calculate(function(t){n=t.initarr,a=t.maxWit,o=t.maxHit,r=t.area,h=t.imgboard,e()},this),this},_fixTagPosition:function(e){for(var t=this.defaultOption.center,i=0,n=e.length;n>i;i++)e[i].x+=t[0],e[i].y+=t[1]},stop:function(){return this.defaultOption.timer&&(clearInterval(this.defaultOption.timer),this.defaultOption.timer=null),this},end:function(e){return e&&(this.defaultOption.endcallback=e),this},_init:function(e){this.defaultOption={},this._initProperty(e),this._initMethod(e),this._initCanvas(),this._initData(e.data)},_initData:function(e){var t=this,i=t.defaultOption;this.wordsdata=e.map(function(e,n){return e.text=i.text.call(t,e,n),e.font=i.font.call(t,e,n),e.style=i.fontStyle.call(t,e,n),e.weight=i.fontWeight.call(t,e,n),e.rotate=i.rotate.call(t,e,n),e.size=~~i.fontSize.call(t,e,n),e.padding=i.padding.call(t,e,n),e}).sort(function(e,t){return t.value-e.value})},_initMethod:function(e){function t(e){return e.name}function i(){return"sans-serif"}function n(){return"normal"}function a(e){return e.value}function o(){return 0}function r(e){return function(){return e[Math.round(Math.random()*(e.length-1))]}}function s(){return 0}function l(e){var t=e[0]/e[1];return function(e){return[t*(e*=.1)*Math.cos(e),e*Math.sin(e)]}}function h(e){var t=4,i=t*e[0]/e[1],n=0,a=0;return function(e){var o=0>e?-1:1;switch(Math.sqrt(1+4*o*e)-o&3){case 0:n+=i;break;case 1:a+=t;break;case 2:n-=i;break;default:a-=t}return[n,a]}}function m(e){return"function"==typeof e?e:function(){return e}}var V=this.defaultOption;V.text=e.text?m(e.text):t,V.font=e.font?m(e.font):i,V.fontSize=e.fontSize?m(e.fontSize):a,V.fontStyle=e.fontStyle?m(e.fontStyle):n,V.fontWeight=e.fontWeight?m(e.fontWeight):n,V.rotate=e.rotate?r(e.rotate):o,V.padding=e.padding?m(e.padding):s,V.center=e.center,V.spiral=l,V.endcallback=function(){},V.rectangularSpiral=h,V.archimedeanSpiral=l},_initProperty:function(e){var t=this.defaultOption;t.size=e.size||[256,256],t.wordletype=e.wordletype,t.words=e.words||[],t.timeInterval=1/0,t.timer=null,t.spirals={archimedean:t.archimedeanSpiral,rectangular:t.rectangularSpiral},n.merge(t,{size:[256,256],wordletype:{type:"RECT",areaPresent:.058,autoSizeCal:{enable:!0,minSize:12}}})},_initCanvas:function(){var e,t=Math.PI/180,i=64,n=2048,a=1;"undefined"!=typeof document?(e=document.createElement("canvas"),e.width=1,e.height=1,a=Math.sqrt(e.getContext("2d").getImageData(0,0,1,1).data.length>>2),e.width=(i<<5)/a,e.height=n/a):e=new Canvas(i<<5,n);var o=e.getContext("2d");o.fillStyle=o.strokeStyle="red",o.textAlign="center",this.defaultOption.c=o,this.defaultOption.cw=i,this.defaultOption.ch=n,this.defaultOption.ratio=a,this.defaultOption.cloudRadians=t},_cloudSprite:function(e,t,i){if(!e.sprite){var n=this.defaultOption.cw,a=this.defaultOption.ch,o=this.defaultOption.c,r=this.defaultOption.ratio,s=this.defaultOption.cloudRadians;o.clearRect(0,0,(n<<5)/r,a/r);var l=0,h=0,m=0,V=t.length;for(--i;++i>5<<5,d=~~Math.max(Math.abs(y+g),Math.abs(y-g))}else U=U+31>>5<<5;if(d>m&&(m=d),l+U>=n<<5&&(l=0,h+=m,m=0),h+d>=a)break;o.translate((l+(U>>1))/r,(h+(d>>1))/r),e.rotate&&o.rotate(e.rotate*s),o.fillText(e.text,0,0),e.padding&&(o.lineWidth=2*e.padding,o.strokeText(e.text,0,0)),o.restore(),e.width=U,e.height=d,e.xoff=l,e.yoff=h,e.x1=U>>1,e.y1=d>>1,e.x0=-e.x1,e.y0=-e.y1,e.hasText=!0,l+=U}for(var f=o.getImageData(0,0,(n<<5)/r,a/r).data,k=[];--i>=0;)if(e=t[i],e.hasText){for(var U=e.width,x=U>>5,d=e.y1-e.y0,_=0;d*x>_;_++)k[_]=0;if(l=e.xoff,null==l)return;h=e.yoff;for(var L=0,W=-1,X=0;d>X;X++){for(var _=0;U>_;_++){var v=x*X+(_>>5),w=f[(h+X)*(n<<5)+(l+_)<<2]?1<<31-_%32:0;k[v]|=w,L|=w}L?W=X:(e.y0++,d--,X--,h++)}e.y1=e.y0+W,e.sprite=k.slice(0,(e.y1-e.y0)*x)}}},_place:function(e,t,i){function n(e,t,i){i>>=5;for(var n,a=e.sprite,o=e.width>>5,r=e.x-(o<<4),s=127&r,l=32-s,h=e.y1-e.y0,m=(e.y+e.y0)*i+(r>>5),V=0;h>V;V++){n=0;for(var U=0;o>=U;U++)if((n<U?(n=a[V*o+U])>>>s:0))&t[m+U])return!0;m+=i}return!1}function a(e,t){return t.row[e.y]&&t.cloumn[e.x]&&e.x>=t.row[e.y].start&&e.x<=t.row[e.y].end&&e.y>=t.cloumn[e.x].start&&e.y<=t.cloumn[e.x].end}for(var o,r,s,l=this.defaultOption.size,h=([{x:0,y:0},{x:l[0],y:l[1]}],t.x),m=t.y,V=Math.sqrt(l[0]*l[0]+l[1]*l[1]),U=this.defaultOption.spiral(l),d=Math.random()<.5?1:-1,p=-d;(o=U(p+=d))&&(r=~~o[0],s=~~o[1],!(Math.min(r,s)>V));)if(t.x=h+r,t.y=m+s,!(t.x+t.x0<0||t.y+t.y0<0||t.x+t.x1>l[0]||t.y+t.y1>l[1])&&!n(t,e,l[0])&&a(t,i)){for(var c,u=t.sprite,y=t.width>>5,g=l[0]>>5,b=t.x-(y<<4),f=127&b,k=32-f,x=t.y1-t.y0,_=(t.y+t.y0)*g+(b>>5),L=0;x>L;L++){c=0;for(var W=0;y>=W;W++)e[_+W]|=c<W?(c=u[L*y+W])>>>f:0);_+=g}return delete t.sprite,!0}return!1},_autoCalTextSize:function(e,t,i,n,a){function o(e){c.clearRect(0,0,(d<<5)/u,p/u),c.save(),c.font=e.style+" "+e.weight+" "+~~((e.size+1)/u)+"px "+e.font;var t=c.measureText(e.text+"m").width*u,r=e.size<<1;t=t+31>>5<<5,c.restore(),e.aw=t,e.ah=r;var s,l,h;if(e.rotate){var m=Math.sin(e.rotate*y),V=Math.cos(e.rotate*y),g=t*V,b=t*m,f=r*V,k=r*m;l=Math.max(Math.abs(g+k),Math.abs(g-k))+31>>5<<5,h=~~Math.max(Math.abs(b+f),Math.abs(b-f))}return e.size<=U||e.rotate&&t*r<=e.area&&i>=l&&n>=h||t*r<=e.area&&i>=t&&n>=r?void(e.area=t*r):(s=e.rotate&&l>i&&h>n?Math.min(i/l,n/h):t>i||r>n?Math.min(i/t,n/r):Math.sqrt(e.area/(e.aw*e.ah)),e.size=~~(s*e.size),e.sizel?l:V:l,s.area=t*s.areapre,s.totalarea=t,o(s)}},t}),i("echarts/layout/WordCloudRectZero",["require"],function(){function e(e){this.defaultOption={type:"RECT"},this._init(e)}return e.prototype={RECT:"_calculateRect",_init:function(e){this._initOption(e),this._initCanvas()},_initOption:function(e){for(k in e)this.defaultOption[k]=e[k]},_initCanvas:function(){var e=document.createElement("canvas");e.width=1,e.height=1;var t=Math.sqrt(e.getContext("2d").getImageData(0,0,1,1).data.length>>2);if(e.width=this.defaultOption.width,e.height=this.defaultOption.height,e.getContext)var i=e.getContext("2d");this.canvas=e,this.ctx=i,this.ratio=t},calculate:function(e,t){var i=this.defaultOption.type,n=this[i];this[n].call(this,e,t)},_calculateReturn:function(e,t,i){t.call(i,e)},_calculateRect:function(e,t){var i={},n=this.defaultOption.width>>5<<5,a=this.defaultOption.height;i.initarr=this._rectZeroArray(n*a),i.area=n*a,i.maxHit=a,i.maxWit=n,i.imgboard=this._rectBoard(n,a),this._calculateReturn(i,e,t)},_rectBoard:function(e,t){for(var i=[],n=0;t>n;n++)i.push({y:n,start:0,end:e});for(var a=[],n=0;e>n;n++)a.push({x:n,start:0,end:t});return{row:i,cloumn:a}},_rectZeroArray:function(e){for(var t=[],i=e,n=-1;++ni;++i)if(e[i].type===a.CHART_TYPE_HEATMAP){e[i]=this.reformOption(e[i]);var o=new n(e[i]),s=o.getCanvas(e[i].data,this.zr.getWidth(),this.zr.getHeight()),l=new r({position:[0,0],scale:[1,1],hoverable:this.option.hoverable,style:{x:0,y:0,image:s,width:s.width,height:s.height}});this.shapeList.push(l)}this.addShapeList()}},o.inherits(t,i),e("../chart").define("heatmap",t),t});var n=t("zrender");n.tool={color:t("zrender/tool/color"),math:t("zrender/tool/math"),util:t("zrender/tool/util"),vector:t("zrender/tool/vector"),area:t("zrender/tool/area"),event:t("zrender/tool/event")},n.animation={Animation:t("zrender/animation/Animation"),Cip:t("zrender/animation/Clip"),easing:t("zrender/animation/easing")};var a=t("echarts");a.config=t("echarts/config"),a.util={mapData:{params:t("echarts/util/mapData/params")}},t("echarts/chart/line"),t("echarts/chart/bar"),t("echarts/chart/scatter"),t("echarts/chart/k"),t("echarts/chart/pie"),t("echarts/chart/radar"),t("echarts/chart/chord"),t("echarts/chart/force"),t("echarts/chart/map"),t("echarts/chart/gauge"),t("echarts/chart/funnel"),t("echarts/chart/eventRiver"),t("echarts/chart/venn"),t("echarts/chart/treemap"),t("echarts/chart/tree"),t("echarts/chart/wordCloud"),t("echarts/chart/heatmap"),e.echarts=a,e.zrender=n}(window); - -layui.define('echartsTheme', function(exports){ - exports('echarts', echarts); -}); \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/module/echartsTheme.js b/zlt-web/back-web/src/main/resources/static/module/echartsTheme.js deleted file mode 100644 index ff8ccc45..00000000 --- a/zlt-web/back-web/src/main/resources/static/module/echartsTheme.js +++ /dev/null @@ -1,82 +0,0 @@ -/** layuiAdmin.std-v2020.1.24 LPPL License By https://www.layui.com/admin/ */ -;layui.define(function (e) { - e("echartsTheme", { - color: ["#009688", "#1E9FFF", "#5FB878", "#FFB980", "#D87A80", "#8d98b3", "#e5cf0d", "#97b552", "#95706d", "#dc69aa", "#07a2a4", "#9a7fd1", "#588dd5", "#f5994e", "#c05050", "#59678c", "#c9ab00", "#7eb00a", "#6f5553", "#c14089"], - title: {textStyle: {fontWeight: "normal", color: "#666"}}, - dataRange: {itemWidth: 15, color: ["#009688", "#e0ffff"]}, - toolbox: {color: ["#1e90ff", "#1e90ff", "#1e90ff", "#1e90ff"], effectiveColor: "#ff4500"}, - tooltip: { - backgroundColor: "rgba(50,50,50,0.5)", - axisPointer: { - type: "line", - lineStyle: {color: "#009688"}, - crossStyle: {color: "#008acd"}, - shadowStyle: {color: "rgba(200,200,200,0.2)"} - } - }, - dataZoom: {dataBackgroundColor: "#efefff", fillerColor: "rgba(182,162,222,0.2)", handleColor: "#008acd"}, - grid: {borderColor: "#eee"}, - categoryAxis: { - axisLine: {lineStyle: {color: "#009688"}}, - axisTick: {show: !1}, - splitLine: {lineStyle: {color: ["#eee"]}} - }, - valueAxis: { - axisLine: {lineStyle: {color: "#009688"}}, - splitArea: {show: !0, areaStyle: {color: ["rgba(250,250,250,0.1)", "rgba(200,200,200,0.1)"]}}, - splitLine: {lineStyle: {color: ["#eee"]}} - }, - polar: { - axisLine: {lineStyle: {color: "#ddd"}}, - splitArea: {show: !0, areaStyle: {color: ["rgba(250,250,250,0.2)", "rgba(200,200,200,0.2)"]}}, - splitLine: {lineStyle: {color: "#ddd"}} - }, - timeline: { - lineStyle: {color: "#009688"}, - controlStyle: {normal: {color: "#009688"}, emphasis: {color: "#009688"}}, - symbol: "emptyCircle", - symbolSize: 3 - }, - bar: {itemStyle: {normal: {barBorderRadius: 2}, emphasis: {barBorderRadius: 2}}}, - line: {smooth: !0, symbol: "emptyCircle", symbolSize: 3}, - k: { - itemStyle: { - normal: { - color: "#d87a80", - color0: "#2ec7c9", - lineStyle: {color: "#d87a80", color0: "#2ec7c9"} - } - } - }, - scatter: {symbol: "circle", symbolSize: 4}, - radar: {symbol: "emptyCircle", symbolSize: 3}, - map: { - itemStyle: { - normal: {areaStyle: {color: "#ddd"}, label: {textStyle: {color: "#d87a80"}}}, - emphasis: {areaStyle: {color: "#fe994e"}} - } - }, - force: {itemStyle: {normal: {linkStyle: {color: "#1e90ff"}}}}, - chord: { - itemStyle: { - normal: { - borderWidth: 1, - borderColor: "rgba(128, 128, 128, 0.5)", - chordStyle: {lineStyle: {color: "rgba(128, 128, 128, 0.5)"}} - }, - emphasis: { - borderWidth: 1, - borderColor: "rgba(128, 128, 128, 0.5)", - chordStyle: {lineStyle: {color: "rgba(128, 128, 128, 0.5)"}} - } - } - }, - gauge: { - axisLine: {lineStyle: {color: [[.2, "#2ec7c9"], [.8, "#5ab1ef"], [1, "#d87a80"]], width: 10}}, - axisTick: {splitNumber: 10, length: 15, lineStyle: {color: "auto"}}, - splitLine: {length: 22, lineStyle: {color: "auto"}}, - pointer: {width: 5} - }, - textStyle: {fontFamily: "微软雅黑, Arial, Verdana, sans-serif"} - }) -}); \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/module/formSelects/formSelects-v4.all.js b/zlt-web/back-web/src/main/resources/static/module/formSelects/formSelects-v4.all.js deleted file mode 100644 index f0c341c3..00000000 --- a/zlt-web/back-web/src/main/resources/static/module/formSelects/formSelects-v4.all.js +++ /dev/null @@ -1,1415 +0,0 @@ -'use strict'; - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -/** - * name: formSelects - * 基于Layui Select多选 - * version: 4.0.0.formSelects - * http://sun.faysunshine.com/layui/formSelects-v4/dist/formSelects-v4.js - */ -(function (layui, window, factory) { - if ((typeof exports === 'undefined' ? 'undefined' : _typeof(exports)) === 'object') { - // 支持 CommonJS - module.exports = factory(); - } else if (typeof define === 'function' && define.amd) { - // 支持 AMD - define(factory); - } else if (window.layui && layui.define) { - //layui加载 - layui.define(['jquery'], function (exports) { - exports('formSelects', factory()); - }); - } else { - window.formSelects = factory(); - } -})(typeof layui == 'undefined' ? null : layui, window, function () { - var v = '4.0.0.formSelects', - NAME = 'xm-select', - PNAME = 'xm-select-parent', - INPUT = 'xm-select-input', - TDIV = 'xm-select--suffix', - THIS = 'xm-select-this', - LABEL = 'xm-select-label', - SEARCH = 'xm-select-search', - CREATE = 'xm-select-create', - CREATE_LONG = 'xm-select-create-long', - MAX = 'xm-select-max', - SKIN = 'xm-select-skin', - DIRECTION = "xm-select-direction", - HEIGHT = 'xm-select-height', - DISABLED = 'xm-dis-disabled', - DIS = 'xm-select-dis', - TEMP = 'xm-select-temp', - RADIO = 'xm-select-radio', - LINKAGE = 'xm-select-linkage', - DL = 'xm-select-dl', - HIDE_INPUT = 'xm-hide-input', - SANJIAO = 'xm-select-sj', - ICON_CLOSE = 'xm-icon-close', - FORM_TITLE = 'xm-select-title', - FORM_SELECT = 'xm-form-select', - FORM_SELECTED = 'xm-form-selected', - FORM_NONE = 'xm-select-none', - FORM_EMPTY = 'xm-select-empty', - FORM_INPUT = 'xm-input', - FORM_SELECT_TIPS = 'xm-select-tips', - CHECKBOX_YES = 'xm-icon-yes', - CZ = 'xm-cz', - CZ_GROUP = 'xm-cz-group', - TIPS = '请选择', - data = {}, - events = { - on: {}, - filter: {}, - maxTips: {} - }, - ajax = { - type: 'get', - header: {}, - first: true, - data: {}, - searchUrl: '', - searchName: 'keyword', - searchVal: null, - keyName: 'name', - keyVal: 'value', - keySel: 'selected', - keyDis: 'disabled', - keyChildren: 'children', - dataType: '', - delay: 500, - beforeSuccess: null, - success: null, - error: null, - beforeSearch: null, - clearInput: false - }, - quickBtns = [{ icon: 'iconfont icon-quanxuan', name: '全选', click: function click(id, cm) { - cm.selectAll(id, true, true); - } }, { icon: 'iconfont icon-qingkong', name: '清空', click: function click(id, cm) { - cm.removeAll(id, true, true); - } }, { icon: 'iconfont icon-fanxuan', name: '反选', click: function click(id, cm) { - cm.reverse(id, true, true); - } }, { icon: 'iconfont icon-pifu', name: '换肤', click: function click(id, cm) { - cm.skin(id); - } }], - $ = window.$ || window.layui && window.layui.jquery, - $win = $(window), - ajaxs = {}, - FormSelects = function FormSelects(options) { - var _this = this; - - this.config = { - name: null, //xm-select="xxx" - max: null, - maxTips: function maxTips(vals, val, max) { - var ipt = $('[xid="' + _this.config.name + '"]').prev().find('.' + NAME); - if (ipt.parents('.layui-form-item[pane]').length) { - ipt = ipt.parents('.layui-form-item[pane]'); - } - ipt.attr('style', 'border-color: red !important'); - setTimeout(function () { - ipt.removeAttr('style'); - }, 300); - }, - init: null, //初始化的选择值, - on: null, //select值发生变化 - filter: function filter(id, inputVal, val, isDisabled) { - return val.name.indexOf(inputVal) == -1; - }, - clearid: -1, - direction: 'auto', - height: null, - isEmpty: false, - btns: [quickBtns[0], quickBtns[1], quickBtns[2]] - }; - this.select = null; - this.values = []; - $.extend(true, this.config, options); - }; - - //一些简单的处理方法 - var Common = function Common() { - this.loadingCss(); - this.appender(); - this.init(); - this.on(); - this.initVal(); - this.onreset(); - this.listening(); - }; - - Common.prototype.appender = function () { - //针对IE做的一些拓展 - if (!Array.prototype.map) { - Array.prototype.map = function (callback, thisArg) { - var T, - A, - k, - O = Object(this), - len = O.length >>> 0; - if (thisArg) { - T = thisArg; - } - A = new Array(len); - k = 0; - while (k < len) { - var kValue, mappedValue; - if (k in O) { - kValue = O[k]; - mappedValue = callback.call(T, kValue, k, O); - A[k] = mappedValue; - } - k++; - } - return A; - }; - } - if (!Array.prototype.forEach) { - Array.prototype.forEach = function forEach(callback, thisArg) { - var T, k; - if (this == null) { - throw new TypeError("this is null or not defined"); - } - var O = Object(this); - var len = O.length >>> 0; - if (typeof callback !== "function") { - throw new TypeError(callback + " is not a function"); - } - if (arguments.length > 1) { - T = thisArg; - } - k = 0; - while (k < len) { - var kValue; - if (k in O) { - - kValue = O[k]; - callback.call(T, kValue, k, O); - } - k++; - } - }; - } - }; - - Common.prototype.init = function (target) { - var _this2 = this; - - //初始化页面上已有的select - $(target ? target : 'select[' + NAME + ']').each(function (index, select) { - var othis = $(select), - id = othis.attr(NAME), - hasRender = othis.next('.layui-form-select'), - disabled = select.disabled, - max = othis.attr(MAX) - 0, - isSearch = othis.attr(SEARCH) != undefined, - searchUrl = isSearch ? othis.attr(SEARCH) : null, - isCreate = othis.attr(CREATE) != undefined, - isRadio = othis.attr(RADIO) != undefined, - skin = othis.attr(SKIN), - direction = othis.attr(DIRECTION), - optionsFirst = select.options[0], - height = othis.attr(HEIGHT), - formname = othis.attr('name'), - layverify = othis.attr('lay-verify'), - placeholder = optionsFirst ? optionsFirst.value ? TIPS : optionsFirst.innerHTML || TIPS : TIPS, - value = othis.find('option[selected]').toArray().map(function (option) { - //获取已选中的数据 - return { - name: option.innerHTML, - val: option.value - }; - }), - fs = new FormSelects(); - data[id] = fs; - //先取消layui对select的渲染 - hasRender[0] && hasRender.remove(); - - //包裹一个div - othis.wrap('
'); - - //构造渲染div - var dinfo = _this2.renderSelect(id, placeholder, select); - var heightStyle = height ? 'style="height: ' + height + ';"' : ''; - var inputHtml = height ? ['
', ''] : ['
', '', '
']; - var reElem = $('
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t' + inputHtml.join('') + '\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
' + dinfo + '
\n\t\t\t\t
'); - othis.after(reElem); - fs.select = othis.remove(); //去掉layui.form.render - fs.values = value; - fs.config.name = id; - fs.config.init = value.concat([]); - fs.config.direction = direction; - fs.config.height = height; - fs.config.radio = isRadio; - - if (max) { - //有最大值 - fs.config.max = max; - } - - //如果可搜索, 加上事件 - if (isSearch) { - reElem.find('.' + INPUT).on('input propertychange', function (e) { - var input = e.target, - inputValue = $.trim(input.value), - keyCode = e.keyCode; - if (keyCode === 9 || keyCode === 13 || keyCode === 37 || keyCode === 38 || keyCode === 39 || keyCode === 40) { - return false; - } - - //过滤一下tips - _this2.changePlaceHolder($(input)); - - var ajaxConfig = ajaxs[id] ? ajaxs[id] : ajax; - searchUrl = ajaxConfig.searchUrl || searchUrl; - //如果开启了远程搜索 - if (searchUrl) { - if (ajaxConfig.searchVal) { - inputValue = ajaxConfig.searchVal; - ajaxConfig.searchVal = ''; - } - if (!ajaxConfig.beforeSearch || ajaxConfig.beforeSearch && ajaxConfig.beforeSearch instanceof Function && ajaxConfig.beforeSearch(id, searchUrl, inputValue)) { - var delay = ajaxConfig.delay; - if (ajaxConfig.first) { - ajaxConfig.first = false; - delay = 10; - } - clearTimeout(fs.clearid); - fs.clearid = setTimeout(function () { - reElem.find('dl > *:not(.' + FORM_SELECT_TIPS + ')').remove(); - reElem.find('dd.' + FORM_NONE).addClass(FORM_EMPTY).text('请求中'); - _this2.ajax(id, searchUrl, inputValue, false, null, true); - }, delay); - } - } else { - reElem.find('dl .layui-hide').removeClass('layui-hide'); - //遍历选项, 选择可以显示的值 - reElem.find('dl dd:not(.' + FORM_SELECT_TIPS + ')').each(function (idx, item) { - var _item = $(item); - var searchFun = data[id].config.filter || events.filter[id]; - if (searchFun && searchFun(id, inputValue, { - name: _item.find('span').text(), - val: _item.attr('lay-value') - }, _item.hasClass(DISABLED)) == true) { - _item.addClass('layui-hide'); - } - }); - //控制分组名称 - reElem.find('dl dt').each(function (index, item) { - if (!$(item).nextUntil('dt', ':not(.layui-hide)').length) { - $(item).addClass('layui-hide'); - } - }); - //动态创建 - _this2.create(id, isCreate, inputValue); - var shows = reElem.find('dl dd:not(.' + FORM_SELECT_TIPS + '):not(.layui-hide)'); - if (!shows.length) { - reElem.find('dd.' + FORM_NONE).addClass(FORM_EMPTY).text('无匹配项'); - } else { - reElem.find('dd.' + FORM_NONE).removeClass(FORM_EMPTY); - } - } - }); - if (searchUrl) { - //触发第一次请求事件 - _this2.triggerSearch(reElem, true); - } - } - }); - }; - - Common.prototype.isArray = function (obj) { - return Object.prototype.toString.call(obj) == "[object Array]"; - }; - - Common.prototype.triggerSearch = function (div, isCall) { - (div ? [div] : $('.' + FORM_SELECT).toArray()).forEach(function (reElem, index) { - reElem = $(reElem); - var id = reElem.find('dl').attr('xid'); - if (id && data[id] && data[id].config.isEmpty || isCall) { - var obj_caller = reElem.find('.' + INPUT)[0]; - if (document.createEventObject) { - obj_caller.fireEvent("onchange"); - } else { - var evt = document.createEvent("HTMLEvents"); - evt.initEvent("input", false, true); - obj_caller.dispatchEvent(evt); - } - } - }); - }; - - Common.prototype.ajax = function (id, searchUrl, inputValue, isLinkage, linkageWidth, isSearch) { - var _this3 = this; - - var reElem = $('.' + PNAME + ' dl[xid="' + id + '"]').parents('.' + FORM_SELECT); - if (!reElem[0] || !searchUrl) { - return; - } - - var ajaxConfig = ajaxs[id] ? ajaxs[id] : ajax; - var ajaxData = $.extend(true, {}, ajaxConfig.data); - ajaxData[ajaxConfig.searchName] = inputValue; - ajaxData['_'] = Date.now(); - $.ajax({ - type: ajaxConfig.type, - headers: ajaxConfig.header, - url: searchUrl, - data: ajaxConfig.dataType == 'json' ? JSON.stringify(ajaxData) : ajaxData, - success: function success(res) { - if (typeof res == 'string') { - res = JSON.parse(res); - } - ajaxConfig.beforeSuccess && ajaxConfig.beforeSuccess instanceof Function && (res = ajaxConfig.beforeSuccess(id, searchUrl, inputValue, res)); - if (_this3.isArray(res)) { - res = { - code: 0, - msg: "", - data: res - }; - } - if (res.code != 0) { - reElem.find('dd.' + FORM_NONE).addClass(FORM_EMPTY).text(res.msg); - } else { - reElem.find('dd.' + FORM_NONE).removeClass(FORM_EMPTY); - //获得已选择的values - _this3.renderData(id, res.data, isLinkage, linkageWidth, isSearch); - data[id].config.isEmpty = res.data.length == 0; - } - ajaxConfig.success && ajaxConfig.success instanceof Function && ajaxConfig.success(id, searchUrl, inputValue, res); - }, - error: function error(err) { - reElem.find('dd[lay-value]:not(.' + FORM_SELECT_TIPS + ')').remove(); - reElem.find('dd.' + FORM_NONE).addClass(FORM_EMPTY).text('服务异常'); - ajaxConfig.error && ajaxConfig.error instanceof Function && ajaxConfig.error(id, searchUrl, inputValue, err); - } - }); - }; - - Common.prototype.renderData = function (id, dataArr, linkage, linkageWidth, isSearch) { - var _this4 = this; - - if (linkage) { - var _ret = function () { - //渲染多级联动 - var result = [], - index = 0, - temp = { "0": dataArr }, - ajaxConfig = ajaxs[id] ? ajaxs[id] : ajax; - - var _loop = function _loop() { - var group = result[index++] = [], - _temp = temp; - temp = {}; - $.each(_temp, function (pid, arr) { - $.each(arr, function (idx, item) { - var val = { - pid: pid, - name: item[ajaxConfig.keyName], - val: item[ajaxConfig.keyVal] - }; - group.push(val); - var children = item[ajaxConfig.keyChildren]; - if (children && children.length) { - temp[val.val] = children; - } - }); - }); - }; - - do { - _loop(); - } while (Object.getOwnPropertyNames(temp).length); - - var reElem = $('.' + PNAME + ' dl[xid="' + id + '"]').parents('.' + FORM_SELECT); - var html = ['
']; - - $.each(result, function (idx, arr) { - var groupDiv = ['
']; - $.each(arr, function (idx2, item) { - var span = '
  • ' + item.name + '
  • '; - groupDiv.push(span); - }); - groupDiv.push('
    '); - html = html.concat(groupDiv); - }); - //
  • 123
  • - html.push('
    '); - html.push('
    '); - reElem.find('dl').html(html.join('')); - reElem.find('.' + INPUT).css('display', 'none'); //联动暂时不支持搜索 - return { - v: void 0 - }; - }(); - - if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === "object") return _ret.v; - } - - var reElem = $('.' + PNAME + ' dl[xid="' + id + '"]').parents('.' + FORM_SELECT); - var ajaxConfig = ajaxs[id] ? ajaxs[id] : ajax; - var pcInput = reElem.find('.' + TDIV + ' input'); - - var values = []; - reElem.find('dl').html(this.renderSelect(id, pcInput.attr('placeholder') || pcInput.attr('back'), dataArr.map(function (item) { - if (item[ajaxConfig.keySel]) { - values.push({ - name: item[ajaxConfig.keyName], - val: item[ajaxConfig.keyVal] - }); - } - return { - innerHTML: item[ajaxConfig.keyName], - value: item[ajaxConfig.keyVal], - sel: item[ajaxConfig.keySel], - disabled: item[ajaxConfig.keyDis], - type: item.type, - name: item.name - }; - }))); - - var label = reElem.find('.' + LABEL); - var dl = reElem.find('dl[xid]'); - if (isSearch) { - //如果是远程搜索, 这里需要判重 - var oldVal = data[id].values; - oldVal.forEach(function (item, index) { - dl.find('dd[lay-value="' + item.val + '"]').addClass(THIS); - }); - values.forEach(function (item, index) { - if (_this4.indexOf(oldVal, item) == -1) { - _this4.addLabel(id, label, item); - dl.find('dd[lay-value="' + item.val + '"]').addClass(THIS); - oldVal.push(item); - } - }); - } else { - values.forEach(function (item, index) { - _this4.addLabel(id, label, item); - dl.find('dd[lay-value="' + item.val + '"]').addClass(THIS); - }); - data[id].values = values; - } - this.commonHanler(id, label); - }; - - Common.prototype.create = function (id, isCreate, inputValue) { - if (isCreate && inputValue) { - var fs = data[id], - dl = $('[xid="' + id + '"]'), - tips = dl.find('dd.' + FORM_SELECT_TIPS + ':first'), - tdd = null, - temp = dl.find('dd.' + TEMP); - dl.find('dd:not(.' + FORM_SELECT_TIPS + '):not(.' + TEMP + ')').each(function (index, item) { - if (inputValue == $(item).find('span').text()) { - tdd = item; - } - }); - if (!tdd) { - //如果不存在, 则创建 - if (temp[0]) { - temp.attr('lay-value', inputValue); - temp.find('span').text(inputValue); - temp.removeClass('layui-hide'); - } else { - tips.after($(this.createDD({ - innerHTML: inputValue, - value: Date.now() - }, TEMP + ' ' + CREATE_LONG))); - } - } - } else { - $('[xid=' + id + '] dd.' + TEMP).remove(); - } - }; - - Common.prototype.createDD = function (item, clz) { - return '
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t' + $.trim(item.innerHTML) + '\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    '; - }; - - Common.prototype.createQuickBtn = function (obj, right) { - return '
    ' + obj.name + '
    '; - }; - - Common.prototype.renderBtns = function (id, show, right) { - var _this5 = this; - - var quickBtn = []; - var dl = $('dl[xid="' + id + '"]'); - quickBtn.push('
    '); - $.each(data[id].config.btns, function (index, item) { - quickBtn.push(_this5.createQuickBtn(item, right)); - }); - quickBtn.push('
    '); - quickBtn.push(this.createQuickBtn({ icon: 'iconfont icon-caidan', name: '' })); - return quickBtn.join(''); - }; - - Common.prototype.renderSelect = function (id, tips, select) { - var _this6 = this; - - var arr = []; - if (data[id].config.btns.length) { - setTimeout(function () { - var dl = $('dl[xid="' + id + '"]'); - dl.find('.' + CZ_GROUP).css('max-width', dl.prev().width() - 54 + 'px'); - }, 10); - arr.push(['
    ', this.renderBtns(id, null, '30px'), '
    '].join('')); - } else { - arr.push('
    ' + tips + '
    '); - } - if (this.isArray(select)) { - $(select).each(function (index, item) { - if (item.type === 'optgroup') { - arr.push('
    ' + item.name + '
    '); - } else { - arr.push(_this6.createDD(item)); - } - }); - } else { - $(select).find('*').each(function (index, item) { - if (item.tagName.toLowerCase() == 'option' && index == 0 && !item.value) { - return; - } - if (item.tagName.toLowerCase() === 'optgroup') { - arr.push('
    ' + item.label + '
    '); - } else { - arr.push(_this6.createDD(item)); - } - }); - } - arr.push('
    '); - arr.push('
    \u6CA1\u6709\u9009\u9879
    '); - return arr.join(''); - }; - - Common.prototype.on = function () { - var _this7 = this; - - //事件绑定 - this.one(); - - $(document).on('click', function (e) { - if (!$(e.target).parents('.' + FORM_TITLE)[0]) { - //清空input中的值 - $('.' + INPUT).val(''); - $('.' + PNAME + ' dl .layui-hide').removeClass('layui-hide'); - $('.' + PNAME + ' dl dd.' + TEMP).remove(); - _this7.triggerSearch(); - } - $('.' + PNAME + ' .' + FORM_SELECTED).removeClass(FORM_SELECTED); - }); - }; - - Common.prototype.one = function (target) { - var _this8 = this; - - //一次性事件绑定 - $(target ? target : document).find('.' + FORM_TITLE).off('click').on('click', function (e) { - var othis = $(e.target), - title = othis.is(FORM_TITLE) ? othis : othis.parents('.' + FORM_TITLE), - dl = title.next(), - id = dl.attr('xid'); - - //清空非本select的input val - $('dl[xid]').not(dl).prev().find('.' + INPUT).val(''); - $('dl[xid]').not(dl).find('dd.layui-hide').removeClass('layui-hide'); - - //如果是disabled select - if (title.hasClass(DIS)) { - return false; - } - //如果点击的是右边的三角或者只读的input - if (othis.is('.' + SANJIAO) || othis.is('.' + INPUT + '[readonly]')) { - _this8.changeShow(title, !title.parents('.' + FORM_SELECT).hasClass(FORM_SELECTED)); - return false; - } - //如果点击的是input的右边, focus一下 - if (title.find('.' + INPUT + ':not(readonly)')[0]) { - var input = title.find('.' + INPUT), - epos = { x: e.pageX, y: e.pageY }, - pos = _this8.getPosition(title[0]), - width = title.width(); - while (epos.x > pos.x) { - if ($(document.elementFromPoint(epos.x, epos.y)).is(input)) { - input.focus(); - _this8.changeShow(title, true); - return false; - } - epos.x -= 50; - } - } - - //如果点击的是可搜索的input - if (othis.is('.' + INPUT)) { - _this8.changeShow(title, true); - return false; - } - //如果点击的是x按钮 - if (othis.is('i[fsw="' + NAME + '"]')) { - var val = { - name: othis.prev().text(), - val: othis.parent().attr("value") - }, - dd = dl.find('dd[lay-value=\'' + val.val + '\']'); - if (dd.hasClass(DISABLED)) { - //如果是disabled状态, 不可选, 不可删 - return false; - } - _this8.handlerLabel(id, dd, false, val); - return false; - } - - _this8.changeShow(title, !title.parents('.' + FORM_SELECT).hasClass(FORM_SELECTED)); - return false; - }); - $(target ? target : document).find('dl.' + DL).off('click').on('click', function (e) { - var othis = $(e.target); - if (othis.is('.' + LINKAGE) || othis.parents('.' + LINKAGE)[0]) { - //linkage的处理 - othis = othis.is('li') ? othis : othis.parents('li'); - var _group = othis.parents('.xm-select-linkage-group'), - _id = othis.parents('dl').attr('xid'); - //激活li - _group.find('.xm-select-active').removeClass('xm-select-active'); - othis.addClass('xm-select-active'); - //激活下一个group, 激活前显示对应数据 - _group.nextAll('.xm-select-linkage-group').addClass('xm-select-linkage-hide'); - var nextGroup = _group.next('.xm-select-linkage-group'); - nextGroup.find('li').addClass('xm-select-linkage-hide'); - nextGroup.find('li[pid="' + othis.attr('value') + '"]').removeClass('xm-select-linkage-hide'); - //如果没有下一个group, 或没有对应的值 - if (!nextGroup[0] || nextGroup.find('li:not(.xm-select-linkage-hide)').length == 0) { - var vals = [], - index = 0, - _isAdd = !othis.hasClass('xm-select-this'); - if (data[_id].config.radio) { - othis.parents('.xm-select-linkage').find('.xm-select-this').removeClass('xm-select-this'); - } - do { - vals[index++] = { - name: othis.find('span').text(), - val: othis.attr('value') - /*isAdd ? ( - othis.addClass('xm-select-this') - ) : ( - !othis.parent('.xm-select-linkage-group').next().find(`li[pid="${othis.attr('value')}"].xm-select-this`).length && othis.removeClass('xm-select-this') - );*/ - };othis = othis.parents('.xm-select-linkage-group').prev().find('li[value="' + othis.attr('pid') + '"]'); - } while (othis.length); - vals.reverse(); - var val = { - name: vals.map(function (item) { - return item.name; - }).join('/'), - val: vals.map(function (item) { - return item.val; - }).join('/') - }; - _this8.handlerLabel(_id, null, _isAdd, val); - } else { - nextGroup.removeClass('xm-select-linkage-hide'); - } - return false; - } //xm-select-this xm-select-active - - if (othis.is('dt') || othis.is('dl')) { - return false; - } - var dd = othis.is('dd') ? othis : othis.parents('dd'); - var id = dd.parent('dl').attr('xid'); - if (dd.hasClass(DISABLED)) { - //被禁用选项的处理 - return false; - } - if (dd.hasClass(FORM_SELECT_TIPS)) { - //tips的处理 - var btn = othis.is('.' + CZ) ? othis : othis.parents('.' + CZ); - if (!btn[0]) { - return false; - } - //TODO 快捷操作 - var method = btn.attr('method'); - var obj = data[id].config.btns.filter(function (bean) { - return bean.name == method; - })[0]; - obj && obj.click && obj.click instanceof Function && obj.click(id, _this8); - return false; - } - var isAdd = !dd.hasClass(THIS); - _this8.handlerLabel(id, dd, isAdd); - return false; - }); - }; - - Common.prototype.linkageAdd = function (id, val) { - var dl = $('dl[xid="' + id + '"]'); - dl.find('.xm-select-active').removeClass('xm-select-active'); - var vs = val.val.split('/'); - var pid = void 0, - li = void 0, - index = 0; - var lis = []; - do { - pid = vs[index]; - li = dl.find('.xm-select-linkage-group' + (index + 1) + ' li[value="' + pid + '"]'); - li[0] && lis.push(li); - index++; - } while (li.length && pid != undefined); - if (lis.length == vs.length) { - $.each(lis, function (idx, item) { - item.addClass('xm-select-this'); - }); - } - }; - - Common.prototype.linkageDel = function (id, val) { - var dl = $('dl[xid="' + id + '"]'); - var vs = val.val.split('/'); - var pid = void 0, - li = void 0, - index = vs.length - 1; - do { - pid = vs[index]; - li = dl.find('.xm-select-linkage-group' + (index + 1) + ' li[value="' + pid + '"]'); - if (!li.parent().next().find('li[pid=' + pid + '].xm-select-this').length) { - li.removeClass('xm-select-this'); - } - index--; - } while (li.length && pid != undefined); - }; - - Common.prototype.valToName = function (id, val) { - var dl = $('dl[xid="' + id + '"]'); - var vs = (val + "").split('/'); - var names = []; - $.each(vs, function (idx, item) { - var name = dl.find('.xm-select-linkage-group' + (idx + 1) + ' li[value="' + item + '"] span').text(); - names.push(name); - }); - return names.length == vs.length ? names.join('/') : null; - }; - - Common.prototype.commonHanler = function (key, label) { - //计算input的提示语 - this.changePlaceHolder(label); - //计算高度 - this.retop(label.parents('.' + FORM_SELECT)); - this.checkHideSpan(label); - this.calcLeft(key, label); - //表单默认值 - label.parents('.' + PNAME).find('.' + HIDE_INPUT).val(data[key].values.map(function (val) { - return val.val; - }).join(',')); - //title值 - label.parents('.' + FORM_TITLE + ' .' + NAME).attr('title', data[key].values.map(function (val) { - return val.name; - }).join(',')); - }; - - Common.prototype.initVal = function (id) { - var _this9 = this; - - var target = {}; - if (id) { - target[id] = data[id]; - } else { - target = data; - } - $.each(target, function (key, val) { - var values = val.values, - div = $('dl[xid="' + key + '"]').parent(), - label = div.find('.' + LABEL), - dl = div.find('dl'); - dl.find('dd.' + THIS).removeClass(THIS); - - var _vals = values.concat([]); - _vals.concat([]).forEach(function (item, index) { - _this9.addLabel(key, label, item); - dl.find('dd[lay-value="' + item.val + '"]').addClass(THIS); - }); - if (val.config.radio) { - _vals.length && values.push(_vals[_vals.length - 1]); - } - _this9.commonHanler(key, label); - }); - }; - - Common.prototype.handlerLabel = function (id, dd, isAdd, oval, notOn) { - var div = $('[xid="' + id + '"]').prev().find('.' + LABEL), - val = dd && { - name: dd.find('span').text(), - val: dd.attr('lay-value') - }, - vals = data[id].values, - on = data[id].config.on || events.on[id]; - if (oval) { - val = oval; - } - var fs = data[id]; - if (isAdd && fs.config.max && fs.values.length >= fs.config.max) { - var maxTipsFun = data[id].config.maxTips || events.maxTips[id]; - maxTipsFun && maxTipsFun(id, vals.concat([]), val, fs.max); - return; - } - if (!notOn) { - if (on && on instanceof Function && on(id, vals.concat([]), val, isAdd, dd && dd.hasClass(DISABLED) == false)) { - return; - } - } - var dl = $('dl[xid="' + id + '"]'); - isAdd ? (dd && dd[0] ? (dd.addClass(THIS), dd.removeClass(TEMP)) : dl.find('.xm-select-linkage')[0] && this.linkageAdd(id, val), this.addLabel(id, div, val), vals.push(val)) : (dd && dd[0] ? dd.removeClass(THIS) : dl.find('.xm-select-linkage')[0] && this.linkageDel(id, val), this.delLabel(id, div, val), this.remove(vals, val)); - if (!div[0]) return; - //单选选完后直接关闭选择域 - if (fs.config.radio) { - this.changeShow(div, false); - } - //移除表单验证的红色边框 - div.parents('.' + FORM_TITLE).prev().removeClass('layui-form-danger'); - - //清空搜索值 - fs.config.clearInput && div.parents('.' + PNAME).find('.' + INPUT).val(''); - - this.commonHanler(id, div); - }; - - Common.prototype.addLabel = function (id, div, val) { - if (!val) return; - var tips = 'fsw="' + NAME + '"'; - var _ref = [$('' + val.name + ''), $('\xD7')], - $label = _ref[0], - $close = _ref[1]; - - $label.append($close); - //如果是radio模式 - var fs = data[id]; - if (fs.config.radio) { - fs.values.length = 0; - $('dl[xid="' + id + '"]').find('dd.' + THIS + ':not([lay-value="' + val.val + '"])').removeClass(THIS); - div.find('span').remove(); - } - //如果是固定高度 - if (fs.config.height) { - div.append($label); - } else { - div.find('input').css('width', '50px'); - div.find('input').before($label); - } - }; - - Common.prototype.delLabel = function (id, div, val) { - if (!val) return; - div.find('span[value="' + val.val + '"]:first').remove(); - }; - - Common.prototype.calcLeft = function (id, div) { - if (data[id].config.height) { - var showLastSpan = div.find('span:not(.xm-span-hide):last')[0]; - div.next().css('left', (showLastSpan ? this.getPosition(showLastSpan).x - this.getPosition(div[0]).x + showLastSpan.offsetWidth + 20 : 10) + 'px'); - } - }; - - Common.prototype.checkHideSpan = function (div) { - var _this10 = this; - - var parentHeight = div.parents('.' + NAME)[0].offsetHeight + 5; - div.find('span.xm-span-hide').removeClass('xm-span-hide'); - div.find('span').each(function (index, item) { - if (item.offsetHeight + item.offsetTop > parentHeight || _this10.getPosition(item).y + item.offsetHeight > _this10.getPosition(div[0]).y + div[0].offsetHeight + 5) { - $(item).addClass('xm-span-hide'); - } - }); - }; - - Common.prototype.retop = function (div) { - //计算dl显示的位置 - var dl = div.find('dl'), - top = div.offset().top + div.outerHeight() + 5 - $win.scrollTop(), - dlHeight = dl.outerHeight(); - var up = div.hasClass('layui-form-selectup') || dl.css('top').indexOf('-') != -1 || top + dlHeight > $win.height() && top >= dlHeight; - div = div.find('.' + NAME); - - var fs = data[dl.attr('xid')]; - var base = dl.parents('.layui-form-pane')[0] && dl.prev()[0].clientHeight > 38 ? 14 : 10; - if (fs) { - if (fs.config.direction == 'up') { - dl.css({ - top: 'auto', - bottom: '42px' - }); - return; - } - if (fs.direction == 'down') { - dl.css({ - top: div[0].offsetTop + div.height() + base + 'px', - bottom: 'auto' - }); - return; - } - } - - if (up) { - dl.css({ - top: 'auto', - bottom: '42px' - }); - } else { - dl.css({ - top: div[0].offsetTop + div.height() + base + 'px', - bottom: 'auto' - }); - } - }; - - Common.prototype.changeShow = function (children, isShow) { - //显示于隐藏 - var top = children.parents('.' + FORM_SELECT); - $('.' + PNAME + ' .' + FORM_SELECT).not(top).removeClass(FORM_SELECTED); - if (isShow) { - this.retop(top); - top.addClass(FORM_SELECTED); - top.find('.' + INPUT).focus(); - } else { - top.removeClass(FORM_SELECTED); - top.find('.' + INPUT).val(''); - top.find('dl .layui-hide').removeClass('layui-hide'); - top.find('dl dd.' + TEMP).remove(); - //计算ajax数据是否为空, 然后重新请求数据 - var id = top.find('dl').attr('xid'); - if (id && data[id] && data[id].config.isEmpty) { - this.triggerSearch(top); - } - } - }; - - Common.prototype.changePlaceHolder = function (div) { - //显示于隐藏提示语 - //调整pane模式下的高度 - var title = div.parents('.' + FORM_TITLE); - - var id = div.parents('.' + PNAME).find('dl[xid]').attr('xid'); - if (data[id] && data[id].config.height) {//既然固定高度了, 那就看着办吧 - - } else { - var height = title.find('.' + NAME)[0].clientHeight; - title.css('height', (height > 34 ? height + 4 : height) + 'px'); - //如果是layui pane模式, 处理label的高度 - var label = title.parents('.' + PNAME).parent().prev(); - if (label.is('.layui-form-label') && title.parents('.layui-form-pane')[0]) { - height = height > 36 ? height + 4 : height; - title.css('height', height + 'px'); - label.css({ - height: height + 2 + 'px', - lineHeight: height - 18 + 'px' - }); - } - } - - var input = title.find('.' + TDIV + ' input'), - isShow = !div.find('span:last')[0] && !title.find('.' + INPUT).val(); - if (isShow) { - var ph = input.attr('back'); - input.removeAttr('back'); - input.attr('placeholder', ph); - } else { - var _ph = input.attr('placeholder'); - input.removeAttr('placeholder'); - input.attr('back', _ph); - } - }; - - Common.prototype.indexOf = function (arr, val) { - for (var i = 0; i < arr.length; i++) { - if (arr[i].val == val || arr[i].val == (val ? val.val : val) || arr[i] == val || JSON.stringify(arr[i]) == JSON.stringify(val)) { - return i; - } - } - return -1; - }; - - Common.prototype.remove = function (arr, val) { - var idx = this.indexOf(arr, val ? val.val : val); - if (idx > -1) { - arr.splice(idx, 1); - return true; - } - return false; - }; - - Common.prototype.selectAll = function (id, isOn, skipDis) { - var _this11 = this; - - var dl = $('[xid="' + id + '"]'); - if (dl.find('.xm-select-linkage')[0]) { - return; - } - dl.find('dd[lay-value]:not(.' + FORM_SELECT_TIPS + '):not(.' + THIS + ')' + (skipDis ? ':not(.' + DISABLED + ')' : '')).each(function (index, item) { - item = $(item); - var val = { - name: item.find('span').text(), - val: item.attr('lay-value') - }; - _this11.handlerLabel(id, dl.find('dd[lay-value="' + val.val + '"]'), true, val, !isOn); - }); - }; - - Common.prototype.removeAll = function (id, isOn, skipDis) { - var _this12 = this; - - var dl = $('[xid="' + id + '"]'); - if (dl.find('.xm-select-linkage')[0]) { - //针对多级联动的处理 - data[id].values.concat([]).forEach(function (item, idx) { - var vs = item.val.split('/'); - var pid = void 0, - li = void 0, - index = 0; - do { - pid = vs[index++]; - li = dl.find('.xm-select-linkage-group' + index + ':not(.xm-select-linkage-hide) li[value="' + pid + '"]'); - li.click(); - } while (li.length && pid != undefined); - }); - return; - } - data[id].values.concat([]).forEach(function (item, index) { - if (skipDis && dl.find('dd[lay-value="' + item.val + '"]').hasClass(DISABLED)) {} else { - _this12.handlerLabel(id, dl.find('dd[lay-value="' + item.val + '"]'), false, item, !isOn); - } - }); - }; - - Common.prototype.reverse = function (id, isOn, skipDis) { - var _this13 = this; - - var dl = $('[xid="' + id + '"]'); - if (dl.find('.xm-select-linkage')[0]) { - return; - } - dl.find('dd[lay-value]:not(.' + FORM_SELECT_TIPS + ')' + (skipDis ? ':not(.' + DISABLED + ')' : '')).each(function (index, item) { - item = $(item); - var val = { - name: item.find('span').text(), - val: item.attr('lay-value') - }; - _this13.handlerLabel(id, dl.find('dd[lay-value="' + val.val + '"]'), !item.hasClass(THIS), val, !isOn); - }); - }; - - Common.prototype.skin = function (id) { - var skins = ['default', 'primary', 'normal', 'warm', 'danger']; - var skin = skins[Math.floor(Math.random() * skins.length)]; - $('dl[xid="' + id + '"]').parents('.' + PNAME).find('.' + FORM_SELECT).attr('xm-select-skin', skin); - this.commonHanler(id, $('dl[xid="' + id + '"]').parents('.' + PNAME).find('.' + LABEL)); - }; - - Common.prototype.getPosition = function (e) { - var x = 0, - y = 0; - while (e != null) { - x += e.offsetLeft; - y += e.offsetTop; - e = e.offsetParent; - } - return { x: x, y: y }; - }; - - Common.prototype.onreset = function () { - //监听reset按钮, 然后重置多选 - $(document).on('click', '[type=reset]', function (e) { - $(e.target).parents('form').find('.' + PNAME + ' dl[xid]').each(function (index, item) { - var id = item.getAttribute('xid'), - dl = $(item), - dd = void 0, - temp = {}; - common.removeAll(id); - data[id].config.init.forEach(function (val, idx) { - if (val && (!temp[val] || data[id].config.repeat) && (dd = dl.find('dd[lay-value="' + val.val + '"]'))[0]) { - common.handlerLabel(id, dd, true); - temp[val] = 1; - } - }); - }); - }); - }; - - Common.prototype.loadingCss = function () { - var cssStyle = $('' + ''); - $('head link:last')[0] && $('head link:last').after(cssStyle) || $('head').append(cssStyle); - }; - - Common.prototype.listening = function () { - //TODO 用于监听dom结构变化, 如果出现新的为渲染select, 则自动进行渲染 - var flag = false; - var index = 0; - $(document).on('DOMNodeInserted', function (e) { - if (flag) { - //避免递归渲染 - return; - } - flag = true; - //渲染select - $('select[' + NAME + ']').each(function (index, select) { - var sid = select.getAttribute(NAME); - common.init(select); - common.one($('dl[xid="' + sid + '"]').parents('.' + PNAME)); - common.initVal(sid); - }); - - flag = false; - }); - }; - - var Select4 = function Select4() { - this.v = v; - }; - var common = new Common(); - - Select4.prototype.value = function (id, type, isAppend) { - if (typeof id != 'string') { - return []; - } - var fs = data[id]; - if (!fs) { - return []; - } - if (typeof type == 'string' || type == undefined) { - var arr = fs.values.concat([]) || []; - if (type == 'val') { - return arr.map(function (val) { - return val.val; - }); - } - if (type == 'valStr') { - return arr.map(function (val) { - return val.val; - }).join(','); - } - if (type == 'name') { - return arr.map(function (val) { - return val.name; - }); - } - if (type == 'nameStr') { - return arr.map(function (val) { - return val.name; - }).join(','); - } - return arr; - } - if (common.isArray(type)) { - var dl = $('[xid="' + id + '"]'), - temp = {}, - dd = void 0, - isAdd = true; - if (isAppend == false) { - //删除传入的数组 - isAdd = false; - } else if (isAppend == true) { - //追加模式 - isAdd = true; - } else { - //删除原有的数据 - common.removeAll(id); - } - if (isAdd) { - fs.values.forEach(function (val, index) { - temp[val.val] = 1; - }); - } - type.forEach(function (val, index) { - if (val && (!temp[val] || fs.config.repeat)) { - if ((dd = dl.find('dd[lay-value="' + val + '"]'))[0]) { - common.handlerLabel(id, dd, isAdd, null, true); - temp[val] = 1; - } else { - var name = common.valToName(id, val); - if (name) { - common.handlerLabel(id, dd, isAdd, { - name: name, - val: val - }, true); - temp[val] = 1; - } - } - } - }); - } - }; - - Common.prototype.bindEvent = function (name, id, fun) { - if (id && id instanceof Function) { - fun = id; - id = null; - } - if (fun && fun instanceof Function) { - if (!id) { - $.each(data, function (id, val) { - data[id] ? data[id].config[name] = fun : events[name][id] = fun; - }); - } else { - data[id] ? data[id].config[name] = fun : events[name][id] = fun; - } - } - }; - - Select4.prototype.on = function (id, fun) { - common.bindEvent('on', id, fun); - return this; - }; - - Select4.prototype.filter = function (id, fun) { - common.bindEvent('filter', id, fun); - return this; - }; - - Select4.prototype.maxTips = function (id, fun) { - common.bindEvent('maxTips', id, fun); - return this; - }; - - Select4.prototype.config = function (id, config, isJson) { - if (id && (typeof id === 'undefined' ? 'undefined' : _typeof(id)) == 'object') { - isJson = config == true; - config = id; - id = null; - } - if (config && (typeof config === 'undefined' ? 'undefined' : _typeof(config)) == 'object') { - if (isJson) { - config.header || (config.header = {}); - config.header['Content-Type'] = 'application/json; charset=UTF-8'; - config.dataType = 'json'; - } - id ? (ajaxs[id] = $.extend(true, {}, ajax, config), data[id] && (data[id].config.direction = config.direction), config.searchUrl && data[id] && common.triggerSearch($('.' + PNAME + ' dl[xid="' + id + '"]').parents('.' + FORM_SELECT), true)) : $.extend(true, ajax, config); - } - return this; - }; - - Select4.prototype.render = function (id) { - var _this14 = this; - - var target = {}; - id ? data[id] && (target[id] = data[id]) : data; - - if (Object.getOwnPropertyNames(target).length) { - $.each(target, function (key, val) { - //恢复初始值 - var dl = $('dl[xid="' + key + '"]'), - vals = []; - val.select.find('option[selected]').each(function (index, item) { - vals.push(item.value); - }); - //移除创建元素 - dl.find('.' + CREATE_LONG).remove(); - //清空INPUT - dl.prev().find('.' + INPUT).val(''); - //触发search - common.triggerSearch(dl.parents('.' + FORM_SELECT), true); - //移除hidn - dl.find('.layui-hide').removeClass('layui-hide'); - //重新赋值 - _this14.value(key, vals); - }); - } - ($('select[' + NAME + '="' + id + '"]')[0] ? $('select[' + NAME + '="' + id + '"]') : $('select[' + NAME + ']')).each(function (index, select) { - var sid = select.getAttribute(NAME); - common.init(select); - common.one($('dl[xid="' + sid + '"]').parents('.' + PNAME)); - common.initVal(sid); - }); - return this; - }; - - Select4.prototype.disabled = function (id) { - var target = {}; - id ? data[id] && (target[id] = data[id]) : target = data; - - $.each(target, function (key, val) { - $('dl[xid="' + key + '"]').prev().addClass(DIS); - }); - return this; - }; - - Select4.prototype.undisabled = function (id) { - var target = {}; - id ? data[id] && (target[id] = data[id]) : target = data; - - $.each(target, function (key, val) { - $('dl[xid="' + key + '"]').prev().removeClass(DIS); - }); - return this; - }; - - Select4.prototype.data = function (id, type, config) { - if (!id || !type || !config) { - return this; - } - //检测该id是否尚未渲染 - !data[id] && this.render(id).value(id, []); - this.config(id, config); - if (type == 'local') { - common.renderData(id, config.arr, config.linkage == true, config.linkageWidth ? config.linkageWidth : '100'); - } else if (type == 'server') { - common.ajax(id, config.url, config.keyword, config.linkage == true, config.linkageWidth ? config.linkageWidth : '100'); - } - return this; - }; - - Select4.prototype.btns = function (id, btns, config) { - if (!btns || !common.isArray(btns)) { - return this; - }; - var target = {}; - id ? data[id] && (target[id] = data[id]) : target = data; - - btns = btns.map(function (obj) { - if (typeof obj == 'string') { - if (obj == 'select') { - return quickBtns[0]; - } - if (obj == 'remove') { - return quickBtns[1]; - } - if (obj == 'reverse') { - return quickBtns[2]; - } - if (obj == 'skin') { - return quickBtns[3]; - } - } - return obj; - }); - - $.each(target, function (key, val) { - val.config.btns = btns; - var dd = $('dl[xid="' + key + '"]').find('.' + FORM_SELECT_TIPS + ':first'); - if (btns.length) { - var show = config && config.show && (config.show == 'name' || config.show == 'icon') ? config.show : ''; - var html = common.renderBtns(key, show, config && config.space ? config.space : '30px'); - dd.html(html); - } else { - var pcInput = dd.parents('.' + FORM_SELECT).find('.' + TDIV + ' input'); - var _html = pcInput.attr('placeholder') || pcInput.attr('back'); - dd.html(_html); - dd.removeAttr('style'); - } - }); - - return this; - }; - - Select4.prototype.search = function (id, val) { - if (id && data[id]) { - ajaxs[id] = $.extend(true, {}, ajax, { - first: true, - searchVal: val - }); - common.triggerSearch($('dl[xid="' + id + '"]').parents('.' + FORM_SELECT), true); - } - return this; - }; - - return new Select4(); -}); \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/module/formSelects/formSelects-v4.css b/zlt-web/back-web/src/main/resources/static/module/formSelects/formSelects-v4.css deleted file mode 100644 index 5049b634..00000000 --- a/zlt-web/back-web/src/main/resources/static/module/formSelects/formSelects-v4.css +++ /dev/null @@ -1,156 +0,0 @@ -/* formSelects多选css */ -.xm-select-parent * {margin: 0;padding: 0;font-family: "Helvetica Neue", Helvetica, "PingFang SC", 微软雅黑, Tahoma, Arial, sans-serif;} -.xm-select-parent {text-align: left;} -.xm-select-parent select {display: none;} -.xm-select-parent .xm-select-title {position: relative;min-height: 36px;} -.xm-select-parent .xm-input {cursor: pointer;border-radius: 2px;border-width: 1px;border-style: solid;border-color: #E6E6E6;display: block;width: 100%;box-sizing: border-box;background-color: #FFF;height: 36px;line-height: 1.3;padding-left: 10px;outline: 0} -.xm-select-parent .xm-select-sj {display: inline-block;width: 0;height: 0;border-style: dashed;border-color: transparent;overflow: hidden;position: absolute;right: 10px;top: 50%;margin-top: -3px;cursor: pointer;border-width: 6px;border-top-color: #C2C2C2;border-top-style: solid;transition: all .3s;-webkit-transition: all .3s} -.xm-select-parent .xm-form-selected .xm-select-sj {margin-top: -9px;transform: rotate(180deg)} -.xm-select-parent .xm-form-select dl {display: none;position: absolute;left: 0;top: 42px;padding: 5px 0;z-index: 999;min-width: 100%;border: 1px solid #d2d2d2;max-height: 300px;overflow-y: auto;background-color: #fff;border-radius: 2px;box-shadow: 0 2px 4px rgba(0, 0, 0, .12);box-sizing: border-box;animation-fill-mode: both;-webkit-animation-name: layui-upbit;animation-name: layui-upbit;-webkit-animation-duration: .3s;animation-duration: .3s;-webkit-animation-fill-mode: both;animation-fill-mode: both} -@-webkit-keyframes layui-upbit { - from {-webkit-transform: translate3d(0, 30px, 0);opacity: .3} - to {-webkit-transform: translate3d(0, 0, 0);opacity: 1} -} -@keyframes layui-upbit { - from {transform: translate3d(0, 30px, 0);opacity: .3} - to {transform: translate3d(0, 0, 0);opacity: 1} -} -.xm-select-parent .xm-form-selected dl {display: block} -.xm-select-parent .xm-form-select dl dd,.xm-select-parent .xm-form-select dl dt {padding: 0 10px;line-height: 36px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis} -.xm-select-parent .xm-form-select dl dd {cursor: pointer;height: 36px;} -.xm-select-parent .xm-form-select dl dd:hover {background-color: #f2f2f2} -.xm-select-parent .xm-form-select dl dt {font-size: 12px;color: #999} -.layui-select-disabled .xm-dis-disabled {border-color: #eee!important} -.xm-select-parent .xm-form-select dl .xm-select-tips {padding-left: 10px!important;color: #999;font-size: 14px} -.xm-unselect {-moz-user-select: none;-webkit-user-select: none;-ms-user-select: none} -.xm-form-checkbox {position: relative;display: inline-block;vertical-align: middle;height: 30px;line-height: 30px;margin-right: 10px;padding-right: 30px;background-color: #fff;cursor: pointer;font-size: 0;-webkit-transition: .1s linear;transition: .1s linear;box-sizing: border-box} -.xm-form-checkbox * {display: inline-block;vertical-align: middle} -.xm-form-checkbox span {padding: 0 10px;height: 100%;font-size: 14px;border-radius: 2px 0 0 2px;background-color: #d2d2d2;color: #fff;overflow: hidden;white-space: nowrap;text-overflow: ellipsis} -.xm-form-checkbox:hover span {background-color: #c2c2c2} -.xm-form-checkbox i {position: absolute;right: 0;top: 0;width: 30px;height: 28px;border: 1px solid #d2d2d2;border-left: none;border-radius: 0 2px 2px 0;color: #fff;font-size: 20px;text-align: center} -.xm-form-checkbox:hover i {border-color: #c2c2c2;color: #c2c2c2} -.xm-form-checkbox[lay-skin=primary] {height: auto!important;line-height: normal!important;border: none!important;margin-right: 0;padding-right: 0;background: 0 0} -.xm-form-checkbox[lay-skin=primary] span {float: right;padding-right: 15px;line-height: 18px;background: 0 0;color: #666} -.xm-form-checkbox[lay-skin=primary] i {position: relative;top: 0;width: 16px;height: 16px;line-height: 16px;border: 1px solid #d2d2d2;font-size: 12px;border-radius: 2px;background-color: #fff;-webkit-transition: .1s linear;transition: .1s linear} -.xm-form-checkbox[lay-skin=primary]:hover i {border-color: #5FB878;color: #fff} -.xm-icon-yes {width: 30px;height: 30px;border-radius: 4px;background-color: #009688;position: relative} -.xm-icon-yes:after {content: '';display: inline-block;border: 2px solid #fff;border-top-width: 0;border-right-width: 0;width: 9px;height: 5px;-webkit-transform: rotate(-50deg);transform: rotate(-50deg);position: absolute;top: 2px;left: 3px} -.xm-dis-disabled,.xm-dis-disabled:hover {color: #d2d2d2!important;cursor: not-allowed!important} -.xm-form-select dl dd.xm-dis-disabled {background-color: #fff!important} -.xm-form-select dl dd.xm-dis-disabled span {color: #C2C2C2} -.xm-form-select dl dd.xm-dis-disabled .xm-icon-yes {border-color: #C2C2C2} -.xm-select-parent {position: relative;-moz-user-select: none;-ms-user-select: none;-webkit-user-select: none} -.xm-select-parent .xm-select {line-height: normal;height: auto;padding: 4px 10px 1px 10px;overflow: hidden;min-height: 36px;left: 0;z-index: 99;position: absolute;background: 0 0;padding-right: 20px} -.xm-select-parent .xm-select:hover {border-color: #C0C4CC} -.xm-select-parent .xm-select .xm-select-label {display: inline-block;margin: 0;vertical-align: middle} -.xm-select-parent .xm-select-title div.xm-select-label>span {position: relative;padding: 2px 5px;background-color: #009688;border-radius: 2px;color: #FFF;display: inline-block;line-height: 18px;height: 18px;margin: 2px 5px 2px 0;cursor: initial;user-select: none;font-size: 14px;padding-right: 25px;} -.xm-select-parent .xm-select-title div.xm-select-label>span i {position: absolute;right: 5px;top: 2px;margin-left: 8px;border-radius: 20px;font-size: 18px;cursor: pointer;display: inline-block;height: 14px;line-height: 15px;width: 12px;vertical-align: top;margin-top: 2px;} -.xm-select-parent .xm-select .xm-select-input {border: none;height: 28px;background-color: transparent;padding: 0;vertical-align: middle;display: inline-block;width: 50px} -.xm-select-parent .xm-select--suffix input {border: none} -.xm-select-parent dl dd.xm-dis-disabled.xm-select-this i {border-color: #C2C2C2;background-color: #C2C2C2;color: #FFF} -.xm-select-parent dl dd.xm-select-this i {background-color: #009688;border-color: #009688} -.xm-form-selected .xm-select,.xm-form-selected .xm-select:hover {border-color: #009688!important} -.xm-select--suffix+div {position: absolute;top: 0;left: 0;bottom: 0;right: 0} -.xm-select-dis .xm-select--suffix+div {z-index: 100;cursor: no-drop!important;opacity: .2;background-color: #FFF;} -.xm-select-disabled,.xm-select-disabled:hover {color: #d2d2d2!important;cursor: not-allowed!important;background-color: #fff} -.xm-select-none {display: none;margin: 5px 0;text-align: center;} -.xm-select-none:hover {background-color: #FFF!important} -.xm-select-empty {display: block} -.xm-span-hide {display: none!important;} -.xm-select-radio .xm-icon-yes {border-radius: 20px!important;} -.xm-select-radio .xm-icon-yes:after {border-radius: 20px;background-color: #fff;width: 6px;height: 6px;border: none;top: 5px;left: 5px;} -.layui-form-pane .xm-select,.layui-form-pane .xm-select:hover {border: none!important;top: 0px} -.layui-form-pane .xm-select-title {border: 1px solid #e6e6e6!important} - - -/* 颜色相关 */ -div[xm-select-skin] .xm-select-title div.xm-select-label>span {border: 1px solid #009688} -div[xm-select-skin] .xm-select-title div.xm-select-label>span i:hover {opacity: .8;filter: alpha(opacity=80);cursor: pointer} -div[xm-select-skin=default] .xm-select-title div.xm-select-label>span {background-color: #F0F2F5;color: #909399;border: 1px solid #F0F2F5} -div[xm-select-skin=default] .xm-select-title div.xm-select-label>span i {background-color: #C0C4CC;color: #FFF} -div[xm-select-skin=default] dl dd.xm-select-this:not(.xm-dis-disabled) i {background-color: #5FB878;border-color: #5FB878;color: #FFF} -div[xm-select-skin=default].xm-form-selected .xm-select,div[xm-select-skin=default].xm-form-selected .xm-select:hover {border-color: #C0C4CC!important} -div[xm-select-skin=primary] .xm-select-title div.xm-select-label>span {background-color: #009688;color: #FFF;border: 1px solid #009688} -div[xm-select-skin=primary] .xm-select-title div.xm-select-label>span i {background-color: #009688;color: #FFF} -div[xm-select-skin=primary] dl dd.xm-select-this:not(.xm-dis-disabled) i {background-color: #009688;border-color: #009688;color: #FFF} -div[xm-select-skin=primary].xm-form-selected .xm-select,div[xm-select-skin=primary].xm-form-selected .xm-select:hover {border-color: #009688!important} -div[xm-select-skin=normal] .xm-select-title div.xm-select-label>span {background-color: #1E9FFF;color: #FFF;border: 1px solid #1E9FFF} -div[xm-select-skin=normal] .xm-select-title div.xm-select-label>span i {background-color: #1E9FFF;color: #FFF} -div[xm-select-skin=normal] dl dd.xm-select-this:not(.xm-dis-disabled) i {background-color: #1E9FFF;border-color: #1E9FFF;color: #FFF} -div[xm-select-skin=normal].xm-form-selected .xm-select,div[xm-select-skin=normal].xm-form-selected .xm-select:hover {border-color: #1E9FFF!important} -div[xm-select-skin=warm] .xm-select-title div.xm-select-label>span {background-color: #FFB800;color: #FFF;border: 1px solid #FFB800} -div[xm-select-skin=warm] .xm-select-title div.xm-select-label>span i {background-color: #FFB800;color: #FFF} -div[xm-select-skin=warm] dl dd.xm-select-this:not(.xm-dis-disabled) i {background-color: #FFB800;border-color: #FFB800;color: #FFF} -div[xm-select-skin=warm].xm-form-selected .xm-select,div[xm-select-skin=warm].xm-form-selected .xm-select:hover {border-color: #FFB800!important} -div[xm-select-skin=danger] .xm-select-title div.xm-select-label>span {background-color: #FF5722;color: #FFF;border: 1px solid #FF5722} -div[xm-select-skin=danger] .xm-select-title div.xm-select-label>span i {background-color: #FF5722;color: #FFF} -div[xm-select-skin=danger] dl dd.xm-select-this:not(.xm-dis-disabled) i {background-color: #FF5722;border-color: #FF5722;color: #FFF} -div[xm-select-skin=danger].xm-form-selected .xm-select,div[xm-select-skin=danger].xm-form-selected .xm-select:hover {border-color: #FF5722!important} - - -/* 多选联动 */ -.xm-select-parent .layui-form-danger+.xm-select-title .xm-select {border-color: #FF5722 !important;} -.xm-select-linkage li {padding: 10px 0px;cursor: pointer;} -.xm-select-linkage li span {padding-left: 20px;padding-right: 30px;display: inline-block;height: 20px;overflow: hidden;text-overflow: ellipsis;} -.xm-select-linkage li.xm-select-this span {border-left: 5px solid #009688;color: #009688;padding-left: 15px;} -.xm-select-linkage-group {position: absolute;left: 0;top: 0;right: 0;bottom: 0;overflow-x: hidden;overflow-y: auto;} -.xm-select-linkage-group li:hover {border-left: 1px solid #009688;} -.xm-select-linkage-group li:hover span {padding-left: 19px;} -.xm-select-linkage-group li.xm-select-this:hover span {padding-left: 15px;border-left-width: 4px;} -.xm-select-linkage-group:nth-child(4n+1){background-color: #EFEFEF; left: 0;} -.xm-select-linkage-group:nth-child(4n+1) li.xm-select-active{background-color: #F5F5F5;} -.xm-select-linkage-group:nth-child(4n+2){background-color: #F5F5F5; left: 100px;} -.xm-select-linkage-group:nth-child(4n+3) li.xm-select-active{background-color: #FAFAFA;} -.xm-select-linkage-group:nth-child(4n+3){background-color: #FAFAFA; left: 200px;} -.xm-select-linkage-group:nth-child(4n+3) li.xm-select-active{background-color: #FFFFFF;} -.xm-select-linkage-group:nth-child(4n+4){background-color: #FFFFFF; left: 300px;} -.xm-select-linkage-group:nth-child(4n+4) li.xm-select-active{background-color: #EFEFEF;} -.xm-select-linkage li{list-style: none;} -.xm-select-linkage-hide {display: none;} -.xm-select-linkage-show {display: block;} - -div[xm-select-skin='default'] .xm-select-linkage li.xm-select-this span {border-left-color: #5FB878;color: #5FB878;} -div[xm-select-skin='default'] .xm-select-linkage-group li:hover {border-left-color: #5FB878;} -div[xm-select-skin='primary'] .xm-select-linkage li.xm-select-this span {border-left-color: #1E9FFF;color: #1E9FFF;} -div[xm-select-skin='primary'] .xm-select-linkage-group li:hover {border-left-color: #1E9FFF;} -div[xm-select-skin='normal'] .xm-select-linkage li.xm-select-this span {border-left-color: #1E9FFF;color: #1E9FFF;} -div[xm-select-skin='normal'] .xm-select-linkage-group li:hover {border-left-color: #1E9FFF;} -div[xm-select-skin='warm'] .xm-select-linkage li.xm-select-this span {border-left-color: #FFB800;color: #FFB800;} -div[xm-select-skin='warm'] .xm-select-linkage-group li:hover {border-left-color: #FFB800;} -div[xm-select-skin='danger'] .xm-select-linkage li.xm-select-this span {border-left-color: #FF5722;color: #FF5722;} -div[xm-select-skin='danger'] .xm-select-linkage-group li:hover {border-left-color: #FF5722;} -.xm-form-checkbox[lay-skin=primary] i {top: 9px} -.xm-form-checkbox[lay-skin=primary] span {line-height: 36px;} - - -/* 快捷操作 */ -.xm-select-tips[style]:hover{background-color: #FFF!important;} -.xm-select-parent dd > .xm-cz{position: absolute; top: 5px; right: 10px;} -.xm-select-parent dd > .xm-cz-group{margin-right: 30px; border-right: 2px solid #ddd; height: 16px; margin-top: 10px; line-height: 16px; overflow: hidden;} -.xm-select-parent dd > .xm-cz-group .xm-cz{display: inline-block; margin-right: 30px;} -.xm-select-parent dd > .xm-cz-group .xm-cz i{margin-right: 10px;} -.xm-select-parent dd > .xm-cz-group[show='name'] .xm-cz i{display: none;} -.xm-select-parent dd > .xm-cz-group[show='icon'] .xm-cz span{display: none;} -.xm-select-parent dd .xm-cz:hover{color: #009688;} -div[xm-select-skin='default'] dd .xm-cz:hover{color: #C0C4CC;} -div[xm-select-skin='primary'] dd .xm-cz:hover{color: #009688;} -div[xm-select-skin='normal'] dd .xm-cz:hover{color: #1E9FFF;} -div[xm-select-skin='warm'] dd .xm-cz:hover{color: #FFB800;} -div[xm-select-skin='danger'] dd .xm-cz:hover{color: #FF5722;} - - - -/* 阿里巴巴矢量图标库 */ -@font-face { - font-family: "iconfont"; - src: url('data:application/x-font-woff;charset=utf-8;base64,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') format('woff'); -} -.iconfont {font-family:"iconfont" !important; font-size:16px; font-style:normal; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;} -.icon-quanxuan:before { content: "\e62c"; } -.icon-caidan:before { content: "\e610"; } -.icon-fanxuan:before { content: "\e837"; } -.icon-pifu:before { content: "\e668"; } -.icon-qingkong:before { content: "\e63e"; } - - - diff --git a/zlt-web/back-web/src/main/resources/static/module/formSelects/formSelects-v4.js b/zlt-web/back-web/src/main/resources/static/module/formSelects/formSelects-v4.js deleted file mode 100644 index d55ed6c9..00000000 --- a/zlt-web/back-web/src/main/resources/static/module/formSelects/formSelects-v4.js +++ /dev/null @@ -1,1412 +0,0 @@ -'use strict'; - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -/** - * name: formSelects - * 基于Layui Select多选 - * version: 4.0.0.formSelects - * http://sun.faysunshine.com/layui/formSelects-v4/dist/formSelects-v4.js - */ -(function (layui, window, factory) { - if ((typeof exports === 'undefined' ? 'undefined' : _typeof(exports)) === 'object') { - // 支持 CommonJS - module.exports = factory(); - } else if (typeof define === 'function' && define.amd) { - // 支持 AMD - define(factory); - } else if (window.layui && layui.define) { - //layui加载 - layui.define(['jquery'], function (exports) { - exports('formSelects', factory()); - }); - } else { - window.formSelects = factory(); - } -})(typeof layui == 'undefined' ? null : layui, window, function () { - var v = '4.0.0.formSelects', - NAME = 'xm-select', - PNAME = 'xm-select-parent', - INPUT = 'xm-select-input', - TDIV = 'xm-select--suffix', - THIS = 'xm-select-this', - LABEL = 'xm-select-label', - SEARCH = 'xm-select-search', - CREATE = 'xm-select-create', - CREATE_LONG = 'xm-select-create-long', - MAX = 'xm-select-max', - SKIN = 'xm-select-skin', - DIRECTION = "xm-select-direction", - HEIGHT = 'xm-select-height', - DISABLED = 'xm-dis-disabled', - DIS = 'xm-select-dis', - TEMP = 'xm-select-temp', - RADIO = 'xm-select-radio', - LINKAGE = 'xm-select-linkage', - DL = 'xm-select-dl', - HIDE_INPUT = 'xm-hide-input', - SANJIAO = 'xm-select-sj', - ICON_CLOSE = 'xm-icon-close', - FORM_TITLE = 'xm-select-title', - FORM_SELECT = 'xm-form-select', - FORM_SELECTED = 'xm-form-selected', - FORM_NONE = 'xm-select-none', - FORM_EMPTY = 'xm-select-empty', - FORM_INPUT = 'xm-input', - FORM_SELECT_TIPS = 'xm-select-tips', - CHECKBOX_YES = 'xm-icon-yes', - CZ = 'xm-cz', - CZ_GROUP = 'xm-cz-group', - TIPS = '请选择', - data = {}, - events = { - on: {}, - filter: {}, - maxTips: {} - }, - ajax = { - type: 'get', - header: {}, - first: true, - data: {}, - searchUrl: '', - searchName: 'keyword', - searchVal: null, - keyName: 'name', - keyVal: 'value', - keySel: 'selected', - keyDis: 'disabled', - keyChildren: 'children', - dataType: '', - delay: 500, - beforeSuccess: null, - success: null, - error: null, - beforeSearch: null, - clearInput: false - }, - quickBtns = [{ icon: 'iconfont icon-quanxuan', name: '全选', click: function click(id, cm) { - cm.selectAll(id, true, true); - } }, { icon: 'iconfont icon-qingkong', name: '清空', click: function click(id, cm) { - cm.removeAll(id, true, true); - } }, { icon: 'iconfont icon-fanxuan', name: '反选', click: function click(id, cm) { - cm.reverse(id, true, true); - } }, { icon: 'iconfont icon-pifu', name: '换肤', click: function click(id, cm) { - cm.skin(id); - } }], - $ = window.$ || window.layui && window.layui.jquery, - $win = $(window), - ajaxs = {}, - FormSelects = function FormSelects(options) { - var _this = this; - - this.config = { - name: null, //xm-select="xxx" - max: null, - maxTips: function maxTips(vals, val, max) { - var ipt = $('[xid="' + _this.config.name + '"]').prev().find('.' + NAME); - if (ipt.parents('.layui-form-item[pane]').length) { - ipt = ipt.parents('.layui-form-item[pane]'); - } - ipt.attr('style', 'border-color: red !important'); - setTimeout(function () { - ipt.removeAttr('style'); - }, 300); - }, - init: null, //初始化的选择值, - on: null, //select值发生变化 - filter: function filter(id, inputVal, val, isDisabled) { - return val.name.indexOf(inputVal) == -1; - }, - clearid: -1, - direction: 'auto', - height: null, - isEmpty: false, - btns: [quickBtns[0], quickBtns[1], quickBtns[2]] - }; - this.select = null; - this.values = []; - $.extend(true, this.config, options); - }; - - //一些简单的处理方法 - var Common = function Common() { - this.loadingCss(); - this.appender(); - this.init(); - this.on(); - this.initVal(); - this.onreset(); - this.listening(); - }; - - Common.prototype.appender = function () { - //针对IE做的一些拓展 - if (!Array.prototype.map) { - Array.prototype.map = function (callback, thisArg) { - var T, - A, - k, - O = Object(this), - len = O.length >>> 0; - if (thisArg) { - T = thisArg; - } - A = new Array(len); - k = 0; - while (k < len) { - var kValue, mappedValue; - if (k in O) { - kValue = O[k]; - mappedValue = callback.call(T, kValue, k, O); - A[k] = mappedValue; - } - k++; - } - return A; - }; - } - if (!Array.prototype.forEach) { - Array.prototype.forEach = function forEach(callback, thisArg) { - var T, k; - if (this == null) { - throw new TypeError("this is null or not defined"); - } - var O = Object(this); - var len = O.length >>> 0; - if (typeof callback !== "function") { - throw new TypeError(callback + " is not a function"); - } - if (arguments.length > 1) { - T = thisArg; - } - k = 0; - while (k < len) { - var kValue; - if (k in O) { - - kValue = O[k]; - callback.call(T, kValue, k, O); - } - k++; - } - }; - } - }; - - Common.prototype.init = function (target) { - var _this2 = this; - - //初始化页面上已有的select - $(target ? target : 'select[' + NAME + ']').each(function (index, select) { - var othis = $(select), - id = othis.attr(NAME), - hasRender = othis.next('.layui-form-select'), - disabled = select.disabled, - max = othis.attr(MAX) - 0, - isSearch = othis.attr(SEARCH) != undefined, - searchUrl = isSearch ? othis.attr(SEARCH) : null, - isCreate = othis.attr(CREATE) != undefined, - isRadio = othis.attr(RADIO) != undefined, - skin = othis.attr(SKIN), - direction = othis.attr(DIRECTION), - optionsFirst = select.options[0], - height = othis.attr(HEIGHT), - formname = othis.attr('name'), - layverify = othis.attr('lay-verify'), - placeholder = optionsFirst ? optionsFirst.value ? TIPS : optionsFirst.innerHTML || TIPS : TIPS, - value = othis.find('option[selected]').toArray().map(function (option) { - //获取已选中的数据 - return { - name: option.innerHTML, - val: option.value - }; - }), - fs = new FormSelects(); - data[id] = fs; - //先取消layui对select的渲染 - hasRender[0] && hasRender.remove(); - - //包裹一个div - othis.wrap('
    '); - - //构造渲染div - var dinfo = _this2.renderSelect(id, placeholder, select); - var heightStyle = height ? 'style="height: ' + height + ';"' : ''; - var inputHtml = height ? ['
    ', ''] : ['
    ', '', '
    ']; - var reElem = $('
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t' + inputHtml.join('') + '\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    ' + dinfo + '
    \n\t\t\t\t
    '); - othis.after(reElem); - fs.select = othis.remove(); //去掉layui.form.render - fs.values = value; - fs.config.name = id; - fs.config.init = value.concat([]); - fs.config.direction = direction; - fs.config.height = height; - fs.config.radio = isRadio; - - if (max) { - //有最大值 - fs.config.max = max; - } - - //如果可搜索, 加上事件 - if (isSearch) { - reElem.find('.' + INPUT).on('input propertychange', function (e) { - var input = e.target, - inputValue = $.trim(input.value), - keyCode = e.keyCode; - if (keyCode === 9 || keyCode === 13 || keyCode === 37 || keyCode === 38 || keyCode === 39 || keyCode === 40) { - return false; - } - - //过滤一下tips - _this2.changePlaceHolder($(input)); - - var ajaxConfig = ajaxs[id] ? ajaxs[id] : ajax; - searchUrl = ajaxConfig.searchUrl || searchUrl; - //如果开启了远程搜索 - if (searchUrl) { - if (ajaxConfig.searchVal) { - inputValue = ajaxConfig.searchVal; - ajaxConfig.searchVal = ''; - } - if (!ajaxConfig.beforeSearch || ajaxConfig.beforeSearch && ajaxConfig.beforeSearch instanceof Function && ajaxConfig.beforeSearch(id, searchUrl, inputValue)) { - var delay = ajaxConfig.delay; - if (ajaxConfig.first) { - ajaxConfig.first = false; - delay = 10; - } - clearTimeout(fs.clearid); - fs.clearid = setTimeout(function () { - reElem.find('dl > *:not(.' + FORM_SELECT_TIPS + ')').remove(); - reElem.find('dd.' + FORM_NONE).addClass(FORM_EMPTY).text('请求中'); - _this2.ajax(id, searchUrl, inputValue, false, null, true); - }, delay); - } - } else { - reElem.find('dl .layui-hide').removeClass('layui-hide'); - //遍历选项, 选择可以显示的值 - reElem.find('dl dd:not(.' + FORM_SELECT_TIPS + ')').each(function (idx, item) { - var _item = $(item); - var searchFun = data[id].config.filter || events.filter[id]; - if (searchFun && searchFun(id, inputValue, { - name: _item.find('span').text(), - val: _item.attr('lay-value') - }, _item.hasClass(DISABLED)) == true) { - _item.addClass('layui-hide'); - } - }); - //控制分组名称 - reElem.find('dl dt').each(function (index, item) { - if (!$(item).nextUntil('dt', ':not(.layui-hide)').length) { - $(item).addClass('layui-hide'); - } - }); - //动态创建 - _this2.create(id, isCreate, inputValue); - var shows = reElem.find('dl dd:not(.' + FORM_SELECT_TIPS + '):not(.layui-hide)'); - if (!shows.length) { - reElem.find('dd.' + FORM_NONE).addClass(FORM_EMPTY).text('无匹配项'); - } else { - reElem.find('dd.' + FORM_NONE).removeClass(FORM_EMPTY); - } - } - }); - if (searchUrl) { - //触发第一次请求事件 - _this2.triggerSearch(reElem, true); - } - } - }); - }; - - Common.prototype.isArray = function (obj) { - return Object.prototype.toString.call(obj) == "[object Array]"; - }; - - Common.prototype.triggerSearch = function (div, isCall) { - (div ? [div] : $('.' + FORM_SELECT).toArray()).forEach(function (reElem, index) { - reElem = $(reElem); - var id = reElem.find('dl').attr('xid'); - if (id && data[id] && data[id].config.isEmpty || isCall) { - var obj_caller = reElem.find('.' + INPUT)[0]; - if (document.createEventObject) { - obj_caller.fireEvent("onchange"); - } else { - var evt = document.createEvent("HTMLEvents"); - evt.initEvent("input", false, true); - obj_caller.dispatchEvent(evt); - } - } - }); - }; - - Common.prototype.ajax = function (id, searchUrl, inputValue, isLinkage, linkageWidth, isSearch) { - var _this3 = this; - - var reElem = $('.' + PNAME + ' dl[xid="' + id + '"]').parents('.' + FORM_SELECT); - if (!reElem[0] || !searchUrl) { - return; - } - - var ajaxConfig = ajaxs[id] ? ajaxs[id] : ajax; - var ajaxData = $.extend(true, {}, ajaxConfig.data); - ajaxData[ajaxConfig.searchName] = inputValue; - ajaxData['_'] = Date.now(); - $.ajax({ - type: ajaxConfig.type, - headers: ajaxConfig.header, - url: searchUrl, - data: ajaxConfig.dataType == 'json' ? JSON.stringify(ajaxData) : ajaxData, - success: function success(res) { - if (typeof res == 'string') { - res = JSON.parse(res); - } - ajaxConfig.beforeSuccess && ajaxConfig.beforeSuccess instanceof Function && (res = ajaxConfig.beforeSuccess(id, searchUrl, inputValue, res)); - if (_this3.isArray(res)) { - res = { - code: 0, - msg: "", - data: res - }; - } - if (res.code != 0) { - reElem.find('dd.' + FORM_NONE).addClass(FORM_EMPTY).text(res.msg); - } else { - reElem.find('dd.' + FORM_NONE).removeClass(FORM_EMPTY); - //获得已选择的values - _this3.renderData(id, res.data, isLinkage, linkageWidth, isSearch); - data[id].config.isEmpty = res.data.length == 0; - } - ajaxConfig.success && ajaxConfig.success instanceof Function && ajaxConfig.success(id, searchUrl, inputValue, res); - }, - error: function error(err) { - reElem.find('dd[lay-value]:not(.' + FORM_SELECT_TIPS + ')').remove(); - reElem.find('dd.' + FORM_NONE).addClass(FORM_EMPTY).text('服务异常'); - ajaxConfig.error && ajaxConfig.error instanceof Function && ajaxConfig.error(id, searchUrl, inputValue, err); - } - }); - }; - - Common.prototype.renderData = function (id, dataArr, linkage, linkageWidth, isSearch) { - var _this4 = this; - - if (linkage) { - var _ret = function () { - //渲染多级联动 - var result = [], - index = 0, - temp = { "0": dataArr }, - ajaxConfig = ajaxs[id] ? ajaxs[id] : ajax; - - var _loop = function _loop() { - var group = result[index++] = [], - _temp = temp; - temp = {}; - $.each(_temp, function (pid, arr) { - $.each(arr, function (idx, item) { - var val = { - pid: pid, - name: item[ajaxConfig.keyName], - val: item[ajaxConfig.keyVal] - }; - group.push(val); - var children = item[ajaxConfig.keyChildren]; - if (children && children.length) { - temp[val.val] = children; - } - }); - }); - }; - - do { - _loop(); - } while (Object.getOwnPropertyNames(temp).length); - - var reElem = $('.' + PNAME + ' dl[xid="' + id + '"]').parents('.' + FORM_SELECT); - var html = ['
    ']; - - $.each(result, function (idx, arr) { - var groupDiv = ['
    ']; - $.each(arr, function (idx2, item) { - var span = '
  • ' + item.name + '
  • '; - groupDiv.push(span); - }); - groupDiv.push('
    '); - html = html.concat(groupDiv); - }); - //
  • 123
  • - html.push('
    '); - html.push('
    '); - reElem.find('dl').html(html.join('')); - reElem.find('.' + INPUT).css('display', 'none'); //联动暂时不支持搜索 - return { - v: void 0 - }; - }(); - - if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === "object") return _ret.v; - } - - var reElem = $('.' + PNAME + ' dl[xid="' + id + '"]').parents('.' + FORM_SELECT); - var ajaxConfig = ajaxs[id] ? ajaxs[id] : ajax; - var pcInput = reElem.find('.' + TDIV + ' input'); - - var values = []; - reElem.find('dl').html(this.renderSelect(id, pcInput.attr('placeholder') || pcInput.attr('back'), dataArr.map(function (item) { - if (item[ajaxConfig.keySel]) { - values.push({ - name: item[ajaxConfig.keyName], - val: item[ajaxConfig.keyVal] - }); - } - return { - innerHTML: item[ajaxConfig.keyName], - value: item[ajaxConfig.keyVal], - sel: item[ajaxConfig.keySel], - disabled: item[ajaxConfig.keyDis], - type: item.type, - name: item.name - }; - }))); - - var label = reElem.find('.' + LABEL); - var dl = reElem.find('dl[xid]'); - if (isSearch) { - //如果是远程搜索, 这里需要判重 - var oldVal = data[id].values; - oldVal.forEach(function (item, index) { - dl.find('dd[lay-value="' + item.val + '"]').addClass(THIS); - }); - values.forEach(function (item, index) { - if (_this4.indexOf(oldVal, item) == -1) { - _this4.addLabel(id, label, item); - dl.find('dd[lay-value="' + item.val + '"]').addClass(THIS); - oldVal.push(item); - } - }); - } else { - values.forEach(function (item, index) { - _this4.addLabel(id, label, item); - dl.find('dd[lay-value="' + item.val + '"]').addClass(THIS); - }); - data[id].values = values; - } - this.commonHanler(id, label); - }; - - Common.prototype.create = function (id, isCreate, inputValue) { - if (isCreate && inputValue) { - var fs = data[id], - dl = $('[xid="' + id + '"]'), - tips = dl.find('dd.' + FORM_SELECT_TIPS + ':first'), - tdd = null, - temp = dl.find('dd.' + TEMP); - dl.find('dd:not(.' + FORM_SELECT_TIPS + '):not(.' + TEMP + ')').each(function (index, item) { - if (inputValue == $(item).find('span').text()) { - tdd = item; - } - }); - if (!tdd) { - //如果不存在, 则创建 - if (temp[0]) { - temp.attr('lay-value', inputValue); - temp.find('span').text(inputValue); - temp.removeClass('layui-hide'); - } else { - tips.after($(this.createDD({ - innerHTML: inputValue, - value: Date.now() - }, TEMP + ' ' + CREATE_LONG))); - } - } - } else { - $('[xid=' + id + '] dd.' + TEMP).remove(); - } - }; - - Common.prototype.createDD = function (item, clz) { - return '
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t' + $.trim(item.innerHTML) + '\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    '; - }; - - Common.prototype.createQuickBtn = function (obj, right) { - return '
    ' + obj.name + '
    '; - }; - - Common.prototype.renderBtns = function (id, show, right) { - var _this5 = this; - - var quickBtn = []; - var dl = $('dl[xid="' + id + '"]'); - quickBtn.push('
    '); - $.each(data[id].config.btns, function (index, item) { - quickBtn.push(_this5.createQuickBtn(item, right)); - }); - quickBtn.push('
    '); - quickBtn.push(this.createQuickBtn({ icon: 'iconfont icon-caidan', name: '' })); - return quickBtn.join(''); - }; - - Common.prototype.renderSelect = function (id, tips, select) { - var _this6 = this; - - var arr = []; - if (data[id].config.btns.length) { - setTimeout(function () { - var dl = $('dl[xid="' + id + '"]'); - dl.find('.' + CZ_GROUP).css('max-width', dl.prev().width() - 54 + 'px'); - }, 10); - arr.push(['
    ', this.renderBtns(id, null, '30px'), '
    '].join('')); - } else { - arr.push('
    ' + tips + '
    '); - } - if (this.isArray(select)) { - $(select).each(function (index, item) { - if (item.type === 'optgroup') { - arr.push('
    ' + item.name + '
    '); - } else { - arr.push(_this6.createDD(item)); - } - }); - } else { - $(select).find('*').each(function (index, item) { - if (item.tagName.toLowerCase() == 'option' && index == 0 && !item.value) { - return; - } - if (item.tagName.toLowerCase() === 'optgroup') { - arr.push('
    ' + item.label + '
    '); - } else { - arr.push(_this6.createDD(item)); - } - }); - } - arr.push('
    '); - arr.push('
    \u6CA1\u6709\u9009\u9879
    '); - return arr.join(''); - }; - - Common.prototype.on = function () { - var _this7 = this; - - //事件绑定 - this.one(); - - $(document).on('click', function (e) { - if (!$(e.target).parents('.' + FORM_TITLE)[0]) { - //清空input中的值 - $('.' + INPUT).val(''); - $('.' + PNAME + ' dl .layui-hide').removeClass('layui-hide'); - $('.' + PNAME + ' dl dd.' + TEMP).remove(); - _this7.triggerSearch(); - } - $('.' + PNAME + ' .' + FORM_SELECTED).removeClass(FORM_SELECTED); - }); - }; - - Common.prototype.one = function (target) { - var _this8 = this; - - //一次性事件绑定 - $(target ? target : document).find('.' + FORM_TITLE).off('click').on('click', function (e) { - var othis = $(e.target), - title = othis.is(FORM_TITLE) ? othis : othis.parents('.' + FORM_TITLE), - dl = title.next(), - id = dl.attr('xid'); - - //清空非本select的input val - $('dl[xid]').not(dl).prev().find('.' + INPUT).val(''); - $('dl[xid]').not(dl).find('dd.layui-hide').removeClass('layui-hide'); - - //如果是disabled select - if (title.hasClass(DIS)) { - return false; - } - //如果点击的是右边的三角或者只读的input - if (othis.is('.' + SANJIAO) || othis.is('.' + INPUT + '[readonly]')) { - _this8.changeShow(title, !title.parents('.' + FORM_SELECT).hasClass(FORM_SELECTED)); - return false; - } - //如果点击的是input的右边, focus一下 - if (title.find('.' + INPUT + ':not(readonly)')[0]) { - var input = title.find('.' + INPUT), - epos = { x: e.pageX, y: e.pageY }, - pos = _this8.getPosition(title[0]), - width = title.width(); - while (epos.x > pos.x) { - if ($(document.elementFromPoint(epos.x, epos.y)).is(input)) { - input.focus(); - _this8.changeShow(title, true); - return false; - } - epos.x -= 50; - } - } - - //如果点击的是可搜索的input - if (othis.is('.' + INPUT)) { - _this8.changeShow(title, true); - return false; - } - //如果点击的是x按钮 - if (othis.is('i[fsw="' + NAME + '"]')) { - var val = { - name: othis.prev().text(), - val: othis.parent().attr("value") - }, - dd = dl.find('dd[lay-value=\'' + val.val + '\']'); - if (dd.hasClass(DISABLED)) { - //如果是disabled状态, 不可选, 不可删 - return false; - } - _this8.handlerLabel(id, dd, false, val); - return false; - } - - _this8.changeShow(title, !title.parents('.' + FORM_SELECT).hasClass(FORM_SELECTED)); - return false; - }); - $(target ? target : document).find('dl.' + DL).off('click').on('click', function (e) { - var othis = $(e.target); - if (othis.is('.' + LINKAGE) || othis.parents('.' + LINKAGE)[0]) { - //linkage的处理 - othis = othis.is('li') ? othis : othis.parents('li'); - var _group = othis.parents('.xm-select-linkage-group'), - _id = othis.parents('dl').attr('xid'); - //激活li - _group.find('.xm-select-active').removeClass('xm-select-active'); - othis.addClass('xm-select-active'); - //激活下一个group, 激活前显示对应数据 - _group.nextAll('.xm-select-linkage-group').addClass('xm-select-linkage-hide'); - var nextGroup = _group.next('.xm-select-linkage-group'); - nextGroup.find('li').addClass('xm-select-linkage-hide'); - nextGroup.find('li[pid="' + othis.attr('value') + '"]').removeClass('xm-select-linkage-hide'); - //如果没有下一个group, 或没有对应的值 - if (!nextGroup[0] || nextGroup.find('li:not(.xm-select-linkage-hide)').length == 0) { - var vals = [], - index = 0, - _isAdd = !othis.hasClass('xm-select-this'); - if (data[_id].config.radio) { - othis.parents('.xm-select-linkage').find('.xm-select-this').removeClass('xm-select-this'); - } - do { - vals[index++] = { - name: othis.find('span').text(), - val: othis.attr('value') - /*isAdd ? ( - othis.addClass('xm-select-this') - ) : ( - !othis.parent('.xm-select-linkage-group').next().find(`li[pid="${othis.attr('value')}"].xm-select-this`).length && othis.removeClass('xm-select-this') - );*/ - };othis = othis.parents('.xm-select-linkage-group').prev().find('li[value="' + othis.attr('pid') + '"]'); - } while (othis.length); - vals.reverse(); - var val = { - name: vals.map(function (item) { - return item.name; - }).join('/'), - val: vals.map(function (item) { - return item.val; - }).join('/') - }; - _this8.handlerLabel(_id, null, _isAdd, val); - } else { - nextGroup.removeClass('xm-select-linkage-hide'); - } - return false; - } //xm-select-this xm-select-active - - if (othis.is('dt') || othis.is('dl')) { - return false; - } - var dd = othis.is('dd') ? othis : othis.parents('dd'); - var id = dd.parent('dl').attr('xid'); - if (dd.hasClass(DISABLED)) { - //被禁用选项的处理 - return false; - } - if (dd.hasClass(FORM_SELECT_TIPS)) { - //tips的处理 - var btn = othis.is('.' + CZ) ? othis : othis.parents('.' + CZ); - if (!btn[0]) { - return false; - } - //TODO 快捷操作 - var method = btn.attr('method'); - var obj = data[id].config.btns.filter(function (bean) { - return bean.name == method; - })[0]; - obj && obj.click && obj.click instanceof Function && obj.click(id, _this8); - return false; - } - var isAdd = !dd.hasClass(THIS); - _this8.handlerLabel(id, dd, isAdd); - return false; - }); - }; - - Common.prototype.linkageAdd = function (id, val) { - var dl = $('dl[xid="' + id + '"]'); - dl.find('.xm-select-active').removeClass('xm-select-active'); - var vs = val.val.split('/'); - var pid = void 0, - li = void 0, - index = 0; - var lis = []; - do { - pid = vs[index]; - li = dl.find('.xm-select-linkage-group' + (index + 1) + ' li[value="' + pid + '"]'); - li[0] && lis.push(li); - index++; - } while (li.length && pid != undefined); - if (lis.length == vs.length) { - $.each(lis, function (idx, item) { - item.addClass('xm-select-this'); - }); - } - }; - - Common.prototype.linkageDel = function (id, val) { - var dl = $('dl[xid="' + id + '"]'); - var vs = val.val.split('/'); - var pid = void 0, - li = void 0, - index = vs.length - 1; - do { - pid = vs[index]; - li = dl.find('.xm-select-linkage-group' + (index + 1) + ' li[value="' + pid + '"]'); - if (!li.parent().next().find('li[pid=' + pid + '].xm-select-this').length) { - li.removeClass('xm-select-this'); - } - index--; - } while (li.length && pid != undefined); - }; - - Common.prototype.valToName = function (id, val) { - var dl = $('dl[xid="' + id + '"]'); - var vs = (val + "").split('/'); - var names = []; - $.each(vs, function (idx, item) { - var name = dl.find('.xm-select-linkage-group' + (idx + 1) + ' li[value="' + item + '"] span').text(); - names.push(name); - }); - return names.length == vs.length ? names.join('/') : null; - }; - - Common.prototype.commonHanler = function (key, label) { - //计算input的提示语 - this.changePlaceHolder(label); - //计算高度 - this.retop(label.parents('.' + FORM_SELECT)); - this.checkHideSpan(label); - this.calcLeft(key, label); - //表单默认值 - label.parents('.' + PNAME).find('.' + HIDE_INPUT).val(data[key].values.map(function (val) { - return val.val; - }).join(',')); - //title值 - label.parents('.' + FORM_TITLE + ' .' + NAME).attr('title', data[key].values.map(function (val) { - return val.name; - }).join(',')); - }; - - Common.prototype.initVal = function (id) { - var _this9 = this; - - var target = {}; - if (id) { - target[id] = data[id]; - } else { - target = data; - } - $.each(target, function (key, val) { - var values = val.values, - div = $('dl[xid="' + key + '"]').parent(), - label = div.find('.' + LABEL), - dl = div.find('dl'); - dl.find('dd.' + THIS).removeClass(THIS); - - var _vals = values.concat([]); - _vals.concat([]).forEach(function (item, index) { - _this9.addLabel(key, label, item); - dl.find('dd[lay-value="' + item.val + '"]').addClass(THIS); - }); - if (val.config.radio) { - _vals.length && values.push(_vals[_vals.length - 1]); - } - _this9.commonHanler(key, label); - }); - }; - - Common.prototype.handlerLabel = function (id, dd, isAdd, oval, notOn) { - var div = $('[xid="' + id + '"]').prev().find('.' + LABEL), - val = dd && { - name: dd.find('span').text(), - val: dd.attr('lay-value') - }, - vals = data[id].values, - on = data[id].config.on || events.on[id]; - if (oval) { - val = oval; - } - var fs = data[id]; - if (isAdd && fs.config.max && fs.values.length >= fs.config.max) { - var maxTipsFun = data[id].config.maxTips || events.maxTips[id]; - maxTipsFun && maxTipsFun(id, vals.concat([]), val, fs.max); - return; - } - if (!notOn) { - if (on && on instanceof Function && on(id, vals.concat([]), val, isAdd, dd && dd.hasClass(DISABLED) == false)) { - return; - } - } - var dl = $('dl[xid="' + id + '"]'); - isAdd ? (dd && dd[0] ? (dd.addClass(THIS), dd.removeClass(TEMP)) : dl.find('.xm-select-linkage')[0] && this.linkageAdd(id, val), this.addLabel(id, div, val), vals.push(val)) : (dd && dd[0] ? dd.removeClass(THIS) : dl.find('.xm-select-linkage')[0] && this.linkageDel(id, val), this.delLabel(id, div, val), this.remove(vals, val)); - if (!div[0]) return; - //单选选完后直接关闭选择域 - if (fs.config.radio) { - this.changeShow(div, false); - } - //移除表单验证的红色边框 - div.parents('.' + FORM_TITLE).prev().removeClass('layui-form-danger'); - - //清空搜索值 - fs.config.clearInput && div.parents('.' + PNAME).find('.' + INPUT).val(''); - - this.commonHanler(id, div); - }; - - Common.prototype.addLabel = function (id, div, val) { - if (!val) return; - var tips = 'fsw="' + NAME + '"'; - var _ref = [$('' + val.name + ''), $('\xD7')], - $label = _ref[0], - $close = _ref[1]; - - $label.append($close); - //如果是radio模式 - var fs = data[id]; - if (fs.config.radio) { - fs.values.length = 0; - $('dl[xid="' + id + '"]').find('dd.' + THIS + ':not([lay-value="' + val.val + '"])').removeClass(THIS); - div.find('span').remove(); - } - //如果是固定高度 - if (fs.config.height) { - div.append($label); - } else { - div.find('input').css('width', '50px'); - div.find('input').before($label); - } - }; - - Common.prototype.delLabel = function (id, div, val) { - if (!val) return; - div.find('span[value="' + val.val + '"]:first').remove(); - }; - - Common.prototype.calcLeft = function (id, div) { - if (data[id].config.height) { - var showLastSpan = div.find('span:not(.xm-span-hide):last')[0]; - div.next().css('left', (showLastSpan ? this.getPosition(showLastSpan).x - this.getPosition(div[0]).x + showLastSpan.offsetWidth + 20 : 10) + 'px'); - } - }; - - Common.prototype.checkHideSpan = function (div) { - var _this10 = this; - - var parentHeight = div.parents('.' + NAME)[0].offsetHeight + 5; - div.find('span.xm-span-hide').removeClass('xm-span-hide'); - div.find('span').each(function (index, item) { - if (item.offsetHeight + item.offsetTop > parentHeight || _this10.getPosition(item).y + item.offsetHeight > _this10.getPosition(div[0]).y + div[0].offsetHeight + 5) { - $(item).addClass('xm-span-hide'); - } - }); - }; - - Common.prototype.retop = function (div) { - //计算dl显示的位置 - var dl = div.find('dl'), - top = div.offset().top + div.outerHeight() + 5 - $win.scrollTop(), - dlHeight = dl.outerHeight(); - var up = div.hasClass('layui-form-selectup') || dl.css('top').indexOf('-') != -1 || top + dlHeight > $win.height() && top >= dlHeight; - div = div.find('.' + NAME); - - var fs = data[dl.attr('xid')]; - var base = dl.parents('.layui-form-pane')[0] && dl.prev()[0].clientHeight > 38 ? 14 : 10; - if (fs) { - if (fs.config.direction == 'up') { - dl.css({ - top: 'auto', - bottom: '42px' - }); - return; - } - if (fs.direction == 'down') { - dl.css({ - top: div[0].offsetTop + div.height() + base + 'px', - bottom: 'auto' - }); - return; - } - } - - if (up) { - dl.css({ - top: 'auto', - bottom: '42px' - }); - } else { - dl.css({ - top: div[0].offsetTop + div.height() + base + 'px', - bottom: 'auto' - }); - } - }; - - Common.prototype.changeShow = function (children, isShow) { - //显示于隐藏 - var top = children.parents('.' + FORM_SELECT); - $('.' + PNAME + ' .' + FORM_SELECT).not(top).removeClass(FORM_SELECTED); - if (isShow) { - this.retop(top); - top.addClass(FORM_SELECTED); - top.find('.' + INPUT).focus(); - } else { - top.removeClass(FORM_SELECTED); - top.find('.' + INPUT).val(''); - top.find('dl .layui-hide').removeClass('layui-hide'); - top.find('dl dd.' + TEMP).remove(); - //计算ajax数据是否为空, 然后重新请求数据 - var id = top.find('dl').attr('xid'); - if (id && data[id] && data[id].config.isEmpty) { - this.triggerSearch(top); - } - } - }; - - Common.prototype.changePlaceHolder = function (div) { - //显示于隐藏提示语 - //调整pane模式下的高度 - var title = div.parents('.' + FORM_TITLE); - - var id = div.parents('.' + PNAME).find('dl[xid]').attr('xid'); - if (data[id] && data[id].config.height) {//既然固定高度了, 那就看着办吧 - - } else { - var height = title.find('.' + NAME)[0].clientHeight; - title.css('height', (height > 34 ? height + 4 : height) + 'px'); - //如果是layui pane模式, 处理label的高度 - var label = title.parents('.' + PNAME).parent().prev(); - if (label.is('.layui-form-label') && title.parents('.layui-form-pane')[0]) { - height = height > 36 ? height + 4 : height; - title.css('height', height + 'px'); - label.css({ - height: height + 2 + 'px', - lineHeight: height - 18 + 'px' - }); - } - } - - var input = title.find('.' + TDIV + ' input'), - isShow = !div.find('span:last')[0] && !title.find('.' + INPUT).val(); - if (isShow) { - var ph = input.attr('back'); - input.removeAttr('back'); - input.attr('placeholder', ph); - } else { - var _ph = input.attr('placeholder'); - input.removeAttr('placeholder'); - input.attr('back', _ph); - } - }; - - Common.prototype.indexOf = function (arr, val) { - for (var i = 0; i < arr.length; i++) { - if (arr[i].val == val || arr[i].val == (val ? val.val : val) || arr[i] == val || JSON.stringify(arr[i]) == JSON.stringify(val)) { - return i; - } - } - return -1; - }; - - Common.prototype.remove = function (arr, val) { - var idx = this.indexOf(arr, val ? val.val : val); - if (idx > -1) { - arr.splice(idx, 1); - return true; - } - return false; - }; - - Common.prototype.selectAll = function (id, isOn, skipDis) { - var _this11 = this; - - var dl = $('[xid="' + id + '"]'); - if (dl.find('.xm-select-linkage')[0]) { - return; - } - dl.find('dd[lay-value]:not(.' + FORM_SELECT_TIPS + '):not(.' + THIS + ')' + (skipDis ? ':not(.' + DISABLED + ')' : '')).each(function (index, item) { - item = $(item); - var val = { - name: item.find('span').text(), - val: item.attr('lay-value') - }; - _this11.handlerLabel(id, dl.find('dd[lay-value="' + val.val + '"]'), true, val, !isOn); - }); - }; - - Common.prototype.removeAll = function (id, isOn, skipDis) { - var _this12 = this; - - var dl = $('[xid="' + id + '"]'); - if (dl.find('.xm-select-linkage')[0]) { - //针对多级联动的处理 - data[id].values.concat([]).forEach(function (item, idx) { - var vs = item.val.split('/'); - var pid = void 0, - li = void 0, - index = 0; - do { - pid = vs[index++]; - li = dl.find('.xm-select-linkage-group' + index + ':not(.xm-select-linkage-hide) li[value="' + pid + '"]'); - li.click(); - } while (li.length && pid != undefined); - }); - return; - } - data[id].values.concat([]).forEach(function (item, index) { - if (skipDis && dl.find('dd[lay-value="' + item.val + '"]').hasClass(DISABLED)) {} else { - _this12.handlerLabel(id, dl.find('dd[lay-value="' + item.val + '"]'), false, item, !isOn); - } - }); - }; - - Common.prototype.reverse = function (id, isOn, skipDis) { - var _this13 = this; - - var dl = $('[xid="' + id + '"]'); - if (dl.find('.xm-select-linkage')[0]) { - return; - } - dl.find('dd[lay-value]:not(.' + FORM_SELECT_TIPS + ')' + (skipDis ? ':not(.' + DISABLED + ')' : '')).each(function (index, item) { - item = $(item); - var val = { - name: item.find('span').text(), - val: item.attr('lay-value') - }; - _this13.handlerLabel(id, dl.find('dd[lay-value="' + val.val + '"]'), !item.hasClass(THIS), val, !isOn); - }); - }; - - Common.prototype.skin = function (id) { - var skins = ['default', 'primary', 'normal', 'warm', 'danger']; - var skin = skins[Math.floor(Math.random() * skins.length)]; - $('dl[xid="' + id + '"]').parents('.' + PNAME).find('.' + FORM_SELECT).attr('xm-select-skin', skin); - this.commonHanler(id, $('dl[xid="' + id + '"]').parents('.' + PNAME).find('.' + LABEL)); - }; - - Common.prototype.getPosition = function (e) { - var x = 0, - y = 0; - while (e != null) { - x += e.offsetLeft; - y += e.offsetTop; - e = e.offsetParent; - } - return { x: x, y: y }; - }; - - Common.prototype.onreset = function () { - //监听reset按钮, 然后重置多选 - $(document).on('click', '[type=reset]', function (e) { - $(e.target).parents('form').find('.' + PNAME + ' dl[xid]').each(function (index, item) { - var id = item.getAttribute('xid'), - dl = $(item), - dd = void 0, - temp = {}; - common.removeAll(id); - data[id].config.init.forEach(function (val, idx) { - if (val && (!temp[val] || data[id].config.repeat) && (dd = dl.find('dd[lay-value="' + val.val + '"]'))[0]) { - common.handlerLabel(id, dd, true); - temp[val] = 1; - } - }); - }); - }); - }; - - Common.prototype.loadingCss = function () {}; - - Common.prototype.listening = function () { - //TODO 用于监听dom结构变化, 如果出现新的为渲染select, 则自动进行渲染 - var flag = false; - var index = 0; - $(document).on('DOMNodeInserted', function (e) { - if (flag) { - //避免递归渲染 - return; - } - flag = true; - //渲染select - $('select[' + NAME + ']').each(function (index, select) { - var sid = select.getAttribute(NAME); - common.init(select); - common.one($('dl[xid="' + sid + '"]').parents('.' + PNAME)); - common.initVal(sid); - }); - - flag = false; - }); - }; - - var Select4 = function Select4() { - this.v = v; - }; - var common = new Common(); - - Select4.prototype.value = function (id, type, isAppend) { - if (typeof id != 'string') { - return []; - } - var fs = data[id]; - if (!fs) { - return []; - } - if (typeof type == 'string' || type == undefined) { - var arr = fs.values.concat([]) || []; - if (type == 'val') { - return arr.map(function (val) { - return val.val; - }); - } - if (type == 'valStr') { - return arr.map(function (val) { - return val.val; - }).join(','); - } - if (type == 'name') { - return arr.map(function (val) { - return val.name; - }); - } - if (type == 'nameStr') { - return arr.map(function (val) { - return val.name; - }).join(','); - } - return arr; - } - if (common.isArray(type)) { - var dl = $('[xid="' + id + '"]'), - temp = {}, - dd = void 0, - isAdd = true; - if (isAppend == false) { - //删除传入的数组 - isAdd = false; - } else if (isAppend == true) { - //追加模式 - isAdd = true; - } else { - //删除原有的数据 - common.removeAll(id); - } - if (isAdd) { - fs.values.forEach(function (val, index) { - temp[val.val] = 1; - }); - } - type.forEach(function (val, index) { - if (val && (!temp[val] || fs.config.repeat)) { - if ((dd = dl.find('dd[lay-value="' + val + '"]'))[0]) { - common.handlerLabel(id, dd, isAdd, null, true); - temp[val] = 1; - } else { - var name = common.valToName(id, val); - if (name) { - common.handlerLabel(id, dd, isAdd, { - name: name, - val: val - }, true); - temp[val] = 1; - } - } - } - }); - } - }; - - Common.prototype.bindEvent = function (name, id, fun) { - if (id && id instanceof Function) { - fun = id; - id = null; - } - if (fun && fun instanceof Function) { - if (!id) { - $.each(data, function (id, val) { - data[id] ? data[id].config[name] = fun : events[name][id] = fun; - }); - } else { - data[id] ? data[id].config[name] = fun : events[name][id] = fun; - } - } - }; - - Select4.prototype.on = function (id, fun) { - common.bindEvent('on', id, fun); - return this; - }; - - Select4.prototype.filter = function (id, fun) { - common.bindEvent('filter', id, fun); - return this; - }; - - Select4.prototype.maxTips = function (id, fun) { - common.bindEvent('maxTips', id, fun); - return this; - }; - - Select4.prototype.config = function (id, config, isJson) { - if (id && (typeof id === 'undefined' ? 'undefined' : _typeof(id)) == 'object') { - isJson = config == true; - config = id; - id = null; - } - if (config && (typeof config === 'undefined' ? 'undefined' : _typeof(config)) == 'object') { - if (isJson) { - config.header || (config.header = {}); - config.header['Content-Type'] = 'application/json; charset=UTF-8'; - config.dataType = 'json'; - } - id ? (ajaxs[id] = $.extend(true, {}, ajax, config), data[id] && (data[id].config.direction = config.direction), config.searchUrl && data[id] && common.triggerSearch($('.' + PNAME + ' dl[xid="' + id + '"]').parents('.' + FORM_SELECT), true)) : $.extend(true, ajax, config); - } - return this; - }; - - Select4.prototype.render = function (id) { - var _this14 = this; - - var target = {}; - id ? data[id] && (target[id] = data[id]) : data; - - if (Object.getOwnPropertyNames(target).length) { - $.each(target, function (key, val) { - //恢复初始值 - var dl = $('dl[xid="' + key + '"]'), - vals = []; - val.select.find('option[selected]').each(function (index, item) { - vals.push(item.value); - }); - //移除创建元素 - dl.find('.' + CREATE_LONG).remove(); - //清空INPUT - dl.prev().find('.' + INPUT).val(''); - //触发search - common.triggerSearch(dl.parents('.' + FORM_SELECT), true); - //移除hidn - dl.find('.layui-hide').removeClass('layui-hide'); - //重新赋值 - _this14.value(key, vals); - }); - } - ($('select[' + NAME + '="' + id + '"]')[0] ? $('select[' + NAME + '="' + id + '"]') : $('select[' + NAME + ']')).each(function (index, select) { - var sid = select.getAttribute(NAME); - common.init(select); - common.one($('dl[xid="' + sid + '"]').parents('.' + PNAME)); - common.initVal(sid); - }); - return this; - }; - - Select4.prototype.disabled = function (id) { - var target = {}; - id ? data[id] && (target[id] = data[id]) : target = data; - - $.each(target, function (key, val) { - $('dl[xid="' + key + '"]').prev().addClass(DIS); - }); - return this; - }; - - Select4.prototype.undisabled = function (id) { - var target = {}; - id ? data[id] && (target[id] = data[id]) : target = data; - - $.each(target, function (key, val) { - $('dl[xid="' + key + '"]').prev().removeClass(DIS); - }); - return this; - }; - - Select4.prototype.data = function (id, type, config) { - if (!id || !type || !config) { - return this; - } - //检测该id是否尚未渲染 - !data[id] && this.render(id).value(id, []); - this.config(id, config); - if (type == 'local') { - common.renderData(id, config.arr, config.linkage == true, config.linkageWidth ? config.linkageWidth : '100'); - } else if (type == 'server') { - common.ajax(id, config.url, config.keyword, config.linkage == true, config.linkageWidth ? config.linkageWidth : '100'); - } - return this; - }; - - Select4.prototype.btns = function (id, btns, config) { - if (!btns || !common.isArray(btns)) { - return this; - }; - var target = {}; - id ? data[id] && (target[id] = data[id]) : target = data; - - btns = btns.map(function (obj) { - if (typeof obj == 'string') { - if (obj == 'select') { - return quickBtns[0]; - } - if (obj == 'remove') { - return quickBtns[1]; - } - if (obj == 'reverse') { - return quickBtns[2]; - } - if (obj == 'skin') { - return quickBtns[3]; - } - } - return obj; - }); - - $.each(target, function (key, val) { - val.config.btns = btns; - var dd = $('dl[xid="' + key + '"]').find('.' + FORM_SELECT_TIPS + ':first'); - if (btns.length) { - var show = config && config.show && (config.show == 'name' || config.show == 'icon') ? config.show : ''; - var html = common.renderBtns(key, show, config && config.space ? config.space : '30px'); - dd.html(html); - } else { - var pcInput = dd.parents('.' + FORM_SELECT).find('.' + TDIV + ' input'); - var _html = pcInput.attr('placeholder') || pcInput.attr('back'); - dd.html(_html); - dd.removeAttr('style'); - } - }); - - return this; - }; - - Select4.prototype.search = function (id, val) { - if (id && data[id]) { - ajaxs[id] = $.extend(true, {}, ajax, { - first: true, - searchVal: val - }); - common.triggerSearch($('dl[xid="' + id + '"]').parents('.' + FORM_SELECT), true); - } - return this; - }; - - return new Select4(); -}); \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/module/index.js b/zlt-web/back-web/src/main/resources/static/module/index.js deleted file mode 100644 index 183a5f3c..00000000 --- a/zlt-web/back-web/src/main/resources/static/module/index.js +++ /dev/null @@ -1,291 +0,0 @@ -//add by owen 修复 path 无法引用http://页面的问题 begin -String.prototype.startWith = function(str) { - if (str == null || str == "" || this.length == 0 - || str.length > this.length) - return false; - if (this.substr(0, str.length) == str) - return true; - else - return false; - return true; -} - - -function initIFrame() { - var $parent = $(".admin-iframe").parent(); - if ($parent.hasClass('layui-body')) { - $parent.addClass('admin-iframe-body'); - return; - } - if ($parent.hasClass('layui-tab-item')) { - $parent.css({'padding': '0', 'overflow-y': 'hidden'}); - } else { - $parent.css({'width': '100%', 'height': '100%'}); - } -} -//add by owen 修复 path 无法引用http://页面的问题 end - -layui.define(['config', 'admin', 'layer', 'laytpl', 'element', 'form'], function (exports) { - var $ = layui.$; - var config = layui.config; - var admin = layui.admin; - var layer = layui.layer; - var laytpl = layui.laytpl; - var element = layui.element; - var form = layui.form; - - var index = { - // 渲染左侧菜单栏 - initLeftNav: function () { - admin.req('api-user/menus/current', {}, function (data) { - //data = data[1]; - admin.putTempData("menus",data); - var menus = data; - // 判断权限 - for (var i = menus.length - 1; i >= 0; i--) { - var tempMenu = menus[i]; - if (tempMenu.auth && !admin.hasPerm(tempMenu.auth)) { - menus.splice(i, 1); - continue; - } - if (!tempMenu.subMenus) { - continue; - } - for (var j = tempMenu.subMenus.length - 1; j >= 0; j--) { - var jMenus = tempMenu.subMenus[j]; - if (jMenus.auth && !admin.hasPerm(jMenus.auth)) { - tempMenu.subMenus.splice(j, 1); - continue; - } - if (!jMenus.subMenus) { - continue; - } - for (var k = jMenus.subMenus.length - 1; k >= 0; k--) { - if (jMenus.subMenus[k].auth && !admin.hasPerm(jMenus.subMenus[k].auth)) { - jMenus.subMenus.splice(k, 1); - continue; - } - } - } - } - // 去除空的目录 - for (var i = menus.length - 1; i >= 0; i--) { - var tempMenu = menus[i]; - if (tempMenu.subMenus && tempMenu.subMenus.length <= 0) { - menus.splice(i, 1); - continue; - } - if (!tempMenu.subMenus) { - continue; - } - for (var j = tempMenu.subMenus.length - 1; j >= 0; j--) { - var jMenus = tempMenu.subMenus[j]; - if (jMenus.subMenus && jMenus.subMenus.length <= 0) { - tempMenu.splice(j, 1); - continue; - } - } - } - // 渲染 - $('.layui-layout-admin .layui-side').load('pages/side.html', function () { - laytpl(sideNav.innerHTML).render(menus, function (html) { - $('#sideNav').after(html); - }); - element.render('nav'); - admin.activeNav(Q.lash); - }); - - - }, 'GET'); - }, - // 路由注册 - initRouter: function () { - - index.regRouter(admin.getTempData("menus")); - // index.regRouter(config.menus); - Q.reg('console', function () { - var menuPath = 'pages/console.html' - index.loadView('console', menuPath, '主页'); - }); - - Q.init({ - index: 'console' - }); - }, - // 使用递归循环注册 - regRouter: function (menus) { - $.each(menus, function (i, data) { - if (data.url && data.url.indexOf('#!') == 0) { - Q.reg(data.url.substring(2), function () { - if (data.path.startWith("http://")) { - window.open(data.path); - } else { - //临时保存url - data.path.startWith("http://") ? admin.putTempData("params",data.path) : null ; - - var menuId = data.url.substring(2); - //add by owen 修复 path 无法引用http://页面的问题 - var menuPath = data.path.startWith("http://") ? 'pages/tpl/iframe.html' : 'pages/' + data.path - index.loadView(menuId, menuPath, data.name); - } - }); - } - if (data.subMenus) { - index.regRouter(data.subMenus); - } - }); - }, - // 路由加载组件 - loadView: function (menuId, menuPath, menuName) { - var contentDom = '.layui-layout-admin .layui-body'; - admin.showLoading('.layui-layout-admin .layui-body'); - var flag; // 选项卡是否添加 - flag = menuPath.startWith("http://") ? false : flag ; - // 判断是否开启了选项卡功能 - if (config.pageTabs) { - $('.layui-layout-admin .layui-body .layui-tab .layui-tab-title>li').each(function (index) { - if ($(this).attr('lay-id') === menuId) { - flag = true; - } - }); - if (!flag) { - element.tabAdd('admin-pagetabs', { - title: menuName, - //add by owen 修复 path 无法引用http://页面的问题 - content: menuPath.startWith("http://") ? '
    ' : '' , - id: menuId - }); - } - contentDom = '#' + menuId; - element.tabChange('admin-pagetabs', menuId); - admin.rollPage('auto'); - // 切换tab关闭表格内浮窗 - $('.layui-table-tips-c').trigger('click'); - // 解决切换tab滚动条时而消失的问题 - var $iframe = $('.layui-layout-admin .layui-body .layui-tab-content .layui-tab-item.layui-show .admin-iframe')[0]; - if ($iframe) { - $iframe.style.height = "99%"; - $iframe.scrollWidth; - $iframe.style.height = "100%"; - } - } - if (!flag || admin.isRefresh) { - $(contentDom).load(menuPath, function () { - admin.isRefresh = false; - element.render('breadcrumb'); - form.render('select'); - admin.removeLoading('.layui-layout-admin .layui-body'); - }); - } else { - admin.removeLoading('.layui-layout-admin .layui-body'); - } - admin.activeNav(Q.lash); - // 移动设备切换页面隐藏侧导航 - if (document.body.clientWidth <= 750) { - admin.flexible(true); - } - }, - // 从服务器获取登录用户的信息 - getUser: function (success) { - layer.load(2); - admin.req('api-user/users/current', {}, function (data) { - layer.closeAll('loading'); - if (data && data.resp_code === 0) { - let user = data.datas; - config.putUser(user); - admin.putTempData("permissions",user.permissions); - success(user); - } else { - layer.msg('获取用户失败', {icon: 2}); - config.removeToken(); - location.replace('login.html'); - } - }, 'GET'); - }, - //获取菜单 - getMenus: function () { - admin.req('api-user/menus/current', {}, function (data) { - admin.putTempData("menus",data); - }, 'GET'); - }, - // 页面元素绑定事件监听 - bindEvent: function () { - // 退出登录 - $('#btnLogout').click(function () { - layer.confirm('确定退出登录?', function () { - let token = config.getToken(); - let isExistsToken = false; - if (token) { - let accessToken = token.access_token; - config.removeToken(); - - if (accessToken) { - isExistsToken = true; - admin.req('api-uaa/oauth/check_token?token='+accessToken, {}, function (data) { - if (data.active) { - let loginPageUrl = window.location.protocol + '//' + window.location.host + '/login.html'; - window.location = config.base_server + 'api-uaa/oauth/remove/token?redirect_uri='+loginPageUrl+'&access_token='+accessToken; - } else { - location.replace('login.html'); - } - }, 'POST'); - } - } - if (!isExistsToken) { - location.replace('login.html'); - } - }); - }); - // 修改密码 - $('#setPsw').click(function () { - admin.popupRight('pages/tpl/password.html'); - }); - // 个人信息 - $('#setInfo').click(function () { - Q.go('myInfo'); - }); - // 消息 - $('#btnMessage').click(function () { - admin.popupRight('pages/tpl/message.html'); - }); - }, - // 检查多标签功能是否开启 - checkPageTabs: function () { - // 加载主页 - if (config.pageTabs) { - $('.layui-layout-admin').addClass('open-tab'); - element.tabAdd('admin-pagetabs', { - title: '', - content: '
    ', - id: 'console' - }); - $('#console').load('pages/console.html', function () { - }); - } else { - $('.layui-layout-admin').removeClass('open-tab'); - } - }, - // 打开新页面 - openNewTab: function (param) { - var url = param.url; - var title = param.title; - var menuId = param.menuId; - if (!menuId) { - menuId = url.replace(/[?:=&/]/g, '_'); - } - index.loadView(menuId, url, title); - }, - // 关闭选项卡 - closeTab: function (menuId) { - element.tabDelete('admin-pagetabs', menuId); - } - }; - - // tab选项卡切换监听 - element.on('tab(admin-pagetabs)', function (data) { - var layId = $(this).attr('lay-id'); - Q.go(layId); - }); - - exports('index', index); -}); diff --git a/zlt-web/back-web/src/main/resources/static/module/treetable-lay/treetable.css b/zlt-web/back-web/src/main/resources/static/module/treetable-lay/treetable.css deleted file mode 100644 index a5eb1dd7..00000000 --- a/zlt-web/back-web/src/main/resources/static/module/treetable-lay/treetable.css +++ /dev/null @@ -1,18 +0,0 @@ -.treeTable-empty { - width: 20px; - display: inline-block; -} - -.treeTable-icon { - cursor: pointer; -} - -.treeTable-icon .layui-icon-triangle-d:before { - content: "\e623"; -} - -.treeTable-icon.open .layui-icon-triangle-d:before { - content: "\e625"; - background-color: transparent; -} - diff --git a/zlt-web/back-web/src/main/resources/static/module/treetable-lay/treetable.js b/zlt-web/back-web/src/main/resources/static/module/treetable-lay/treetable.js deleted file mode 100644 index efb897af..00000000 --- a/zlt-web/back-web/src/main/resources/static/module/treetable-lay/treetable.js +++ /dev/null @@ -1,198 +0,0 @@ -layui.define(['layer', 'table'], function (exports) { - var $ = layui.jquery; - var layer = layui.layer; - var table = layui.table; - - var treetable = { - // 渲染树形表格 - render: function (param) { - // 检查参数 - if (!treetable.checkParam(param)) { - return; - } - var doneCallback = param.done; - // 获取数据 - var mData = []; - $.getJSON(param.url, param.where, function (res) { - var tNodes = res.data; - // 补上id和pid字段 - for (var i = 0; i < tNodes.length; i++) { - var tt = tNodes[i]; - if (!tt.id) { - if (!param.treeIdName) { - layer.msg('参数treeIdName不能为空', {icon: 5}); - return; - } - tt.id = tt[param.treeIdName]; - } - if (!tt.pid) { - if (!param.treePidName) { - layer.msg('参数treePidName不能为空', {icon: 5}); - return; - } - tt.pid = tt[param.treePidName]; - } - } - - // 对数据进行排序 - var sort = function (s_pid, data) { - for (var i = 0; i < data.length; i++) { - if (data[i].pid == s_pid) { - var len = mData.length; - if (len > 0 && mData[len - 1].id == s_pid) { - mData[len - 1].isParent = true; - } - mData.push(data[i]); - sort(data[i].id, data); - } - } - }; - sort(param.treeSpid, tNodes); - - // 重写参数 - param.url = undefined; - param.data = mData; - param.page = { - count: param.data.length, - limit: param.data.length - }; - param.cols[0][param.treeColIndex].templet = function (d) { - var mId = d.id; - var mPid = d.pid; - var isDir = d.isParent; - var emptyNum = treetable.getEmptyNum(mPid, mData); - var iconHtml = ''; - for (var i = 0; i < emptyNum; i++) { - iconHtml += ''; - } - if (isDir) { - iconHtml += ' '; - } else { - iconHtml += ''; - } - iconHtml += '  '; - var ttype = isDir ? 'dir' : 'file'; - var vg = ''; - return vg + iconHtml + d[param.cols[0][param.treeColIndex].field] + '' - }; - - param.done = function (res, curr, count) { - $(param.elem).next().addClass('treeTable'); - $('.treeTable .layui-table-page').css('display', 'none'); - $(param.elem).next().attr('treeLinkage', param.treeLinkage); - // 绑定事件换成对body绑定 - /*$('.treeTable .treeTable-icon').click(function () { - treetable.toggleRows($(this), param.treeLinkage); - });*/ - if (param.treeDefaultClose) { - treetable.foldAll(param.elem); - } - if (doneCallback) { - doneCallback(res, curr, count); - } - }; - - // 渲染表格 - table.render(param); - }); - }, - // 计算缩进的数量 - getEmptyNum: function (pid, data) { - var num = 0; - if (!pid) { - return num; - } - var tPid; - for (var i = 0; i < data.length; i++) { - if (pid == data[i].id) { - num += 1; - tPid = data[i].pid; - break; - } - } - return num + treetable.getEmptyNum(tPid, data); - }, - // 展开/折叠行 - toggleRows: function ($dom, linkage) { - var type = $dom.attr('lay-ttype'); - if ('file' == type) { - return; - } - var mId = $dom.attr('lay-tid'); - var isOpen = $dom.hasClass('open'); - if (isOpen) { - $dom.removeClass('open'); - } else { - $dom.addClass('open'); - } - $dom.closest('tbody').find('tr').each(function () { - var $ti = $(this).find('.treeTable-icon'); - var pid = $ti.attr('lay-tpid'); - var ttype = $ti.attr('lay-ttype'); - var tOpen = $ti.hasClass('open'); - if (mId == pid) { - if (isOpen) { - $(this).hide(); - if ('dir' == ttype && tOpen == isOpen) { - $ti.trigger('click'); - } - } else { - $(this).show(); - if (linkage && 'dir' == ttype && tOpen == isOpen) { - $ti.trigger('click'); - } - } - } - }); - }, - // 检查参数 - checkParam: function (param) { - if (!param.treeSpid && param.treeSpid != 0) { - layer.msg('参数treeSpid不能为空', {icon: 5}); - return false; - } - - if (!param.treeColIndex && param.treeColIndex != 0) { - layer.msg('参数treeColIndex不能为空', {icon: 5}); - return false; - } - return true; - }, - // 展开所有 - expandAll: function (dom) { - $(dom).next('.treeTable').find('.layui-table-body tbody tr').each(function () { - var $ti = $(this).find('.treeTable-icon'); - var ttype = $ti.attr('lay-ttype'); - var tOpen = $ti.hasClass('open'); - if ('dir' == ttype && !tOpen) { - $ti.trigger('click'); - } - }); - }, - // 折叠所有 - foldAll: function (dom) { - $(dom).next('.treeTable').find('.layui-table-body tbody tr').each(function () { - var $ti = $(this).find('.treeTable-icon'); - var ttype = $ti.attr('lay-ttype'); - var tOpen = $ti.hasClass('open'); - if ('dir' == ttype && tOpen) { - $ti.trigger('click'); - } - }); - } - }; - - layui.link(layui.cache.base + 'treetable-lay/treetable.css'); - - // 给图标列绑定事件 - $('body').on('click', '.treeTable .treeTable-icon', function () { - var treeLinkage = $(this).parents('.treeTable').attr('treeLinkage'); - if ('true' == treeLinkage) { - treetable.toggleRows($(this), true); - } else { - treetable.toggleRows($(this), false); - } - }); - - exports('treetable', treetable); -}); diff --git a/zlt-web/back-web/src/main/resources/static/pages/attestation/app.html b/zlt-web/back-web/src/main/resources/static/pages/attestation/app.html deleted file mode 100644 index b87fd0d8..00000000 --- a/zlt-web/back-web/src/main/resources/static/pages/attestation/app.html +++ /dev/null @@ -1,237 +0,0 @@ -
    -
    -

    应用管理

    - - 首页 - 应用管理 - -
    -
    -
    - 搜索:  - - -
    - - -
    -
    -
    - - - - - - - - - \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/pages/console.html b/zlt-web/back-web/src/main/resources/static/pages/console.html deleted file mode 100644 index 6a676246..00000000 --- a/zlt-web/back-web/src/main/resources/static/pages/console.html +++ /dev/null @@ -1,308 +0,0 @@ - - - - - 首页 - - - - - - - -
    -
    -
    -
    -
    在线人数 - -
    -
    -

    -
    -
    -
    -
    -
    -
    PV - -
    -
    -

    -
    -
    -
    -
    -
    -
    UV - -
    -
    -

    -
    -
    -
    -
    -
    -
    周访问量 - -
    -
    -

    -
    -
    -
    -
    -
    -
    月访问量 - -
    -
    -

    -
    -
    -
    -
    -
    -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/pages/console_old.html b/zlt-web/back-web/src/main/resources/static/pages/console_old.html deleted file mode 100644 index 989317e4..00000000 --- a/zlt-web/back-web/src/main/resources/static/pages/console_old.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - 首页 - - - - - - -
    - -
    - - \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/pages/files/files.html b/zlt-web/back-web/src/main/resources/static/pages/files/files.html deleted file mode 100644 index 756ae6bd..00000000 --- a/zlt-web/back-web/src/main/resources/static/pages/files/files.html +++ /dev/null @@ -1,108 +0,0 @@ -
    -
    -

    文件中心

    - - 首页 - 文件中心 - -
    -
    -
    - 搜索:  - -
    - - -
    -
    -
    - - - - - - - diff --git a/zlt-web/back-web/src/main/resources/static/pages/generator/list.html b/zlt-web/back-web/src/main/resources/static/pages/generator/list.html deleted file mode 100644 index 2bb5e915..00000000 --- a/zlt-web/back-web/src/main/resources/static/pages/generator/list.html +++ /dev/null @@ -1,78 +0,0 @@ -
    -
    -

    代码生成器

    - - 首页 - 代码生成器 - -
    -
    - -
    - 搜索:  - -
    - -
    - -
    -
    - - - - - \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/pages/header.html b/zlt-web/back-web/src/main/resources/static/pages/header.html deleted file mode 100644 index 54d9e588..00000000 --- a/zlt-web/back-web/src/main/resources/static/pages/header.html +++ /dev/null @@ -1,45 +0,0 @@ - -
      -
    • - -
    • -
    • - -
    • -
    - \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/pages/log/auditLog.html b/zlt-web/back-web/src/main/resources/static/pages/log/auditLog.html deleted file mode 100644 index 401e1844..00000000 --- a/zlt-web/back-web/src/main/resources/static/pages/log/auditLog.html +++ /dev/null @@ -1,70 +0,0 @@ -
    -
    -

    审计日志

    - - 首页 - 审计日志 - -
    -
    -
    - 搜索: -   -   - -
    - -
    -
    -
    - - \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/pages/log/slowQueryLog.html b/zlt-web/back-web/src/main/resources/static/pages/log/slowQueryLog.html deleted file mode 100644 index f319fdda..00000000 --- a/zlt-web/back-web/src/main/resources/static/pages/log/slowQueryLog.html +++ /dev/null @@ -1,61 +0,0 @@ -
    -
    -

    慢查询日志

    - - 首页 - 慢查询日志 - -
    -
    -
    - 搜索: -   -   - -
    - -
    -
    -
    - \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/pages/log/sysLog.html b/zlt-web/back-web/src/main/resources/static/pages/log/sysLog.html deleted file mode 100644 index b57b6d58..00000000 --- a/zlt-web/back-web/src/main/resources/static/pages/log/sysLog.html +++ /dev/null @@ -1,69 +0,0 @@ -
    -
    -

    系统日志

    - - 首页 - 系统日志 - -
    -
    -
    - 搜索: -   -   - -
    - -
    -
    -
    - - \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/pages/search/index_manager.html b/zlt-web/back-web/src/main/resources/static/pages/search/index_manager.html deleted file mode 100644 index 570df184..00000000 --- a/zlt-web/back-web/src/main/resources/static/pages/search/index_manager.html +++ /dev/null @@ -1,107 +0,0 @@ -
    -
    -

    索引管理

    - - 首页 - 索引管理 - -
    -
    -
    - 索引名: -   - - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/pages/search/index_manager_form.html b/zlt-web/back-web/src/main/resources/static/pages/search/index_manager_form.html deleted file mode 100644 index b7fed557..00000000 --- a/zlt-web/back-web/src/main/resources/static/pages/search/index_manager_form.html +++ /dev/null @@ -1,54 +0,0 @@ - -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    - -
    - - \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/pages/search/index_manager_view.html b/zlt-web/back-web/src/main/resources/static/pages/search/index_manager_view.html deleted file mode 100644 index aff0216c..00000000 --- a/zlt-web/back-web/src/main/resources/static/pages/search/index_manager_view.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -
    -
    -
    
    -    
    -
    - - \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/pages/search/user_search.html b/zlt-web/back-web/src/main/resources/static/pages/search/user_search.html deleted file mode 100644 index a1412b87..00000000 --- a/zlt-web/back-web/src/main/resources/static/pages/search/user_search.html +++ /dev/null @@ -1,67 +0,0 @@ -
    -
    -

    用户搜索

    - - 首页 - 用户搜索 - -
    -
    -
    - 搜索: -   -   - -
    -
    -
    -
    - - \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/pages/side.html b/zlt-web/back-web/src/main/resources/static/pages/side.html deleted file mode 100644 index c538a139..00000000 --- a/zlt-web/back-web/src/main/resources/static/pages/side.html +++ /dev/null @@ -1,38 +0,0 @@ -
    -
      - - - -
    -
    diff --git a/zlt-web/back-web/src/main/resources/static/pages/system/menus.html b/zlt-web/back-web/src/main/resources/static/pages/system/menus.html deleted file mode 100644 index d678b13f..00000000 --- a/zlt-web/back-web/src/main/resources/static/pages/system/menus.html +++ /dev/null @@ -1,192 +0,0 @@ -
    -
    -

    菜单管理

    - - 首页 - 菜单管理 - -
    -
    -
    - 所属应用: -  搜索:  - - - - -
    - - - -
    -
    - - - - - - \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/pages/system/menus_form.html b/zlt-web/back-web/src/main/resources/static/pages/system/menus_form.html deleted file mode 100644 index 7b8431c2..00000000 --- a/zlt-web/back-web/src/main/resources/static/pages/system/menus_form.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/pages/system/myInfo.html b/zlt-web/back-web/src/main/resources/static/pages/system/myInfo.html deleted file mode 100644 index 94e4ec49..00000000 --- a/zlt-web/back-web/src/main/resources/static/pages/system/myInfo.html +++ /dev/null @@ -1,112 +0,0 @@ -
    - -
    - -
    - -
    -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    -
    - -
    - - -
    -
    - -
    - -
    - - -
    -
    - 预览图: -
    -
    -
    - - -
    - - \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/pages/system/role.html b/zlt-web/back-web/src/main/resources/static/pages/system/role.html deleted file mode 100644 index 80f2d681..00000000 --- a/zlt-web/back-web/src/main/resources/static/pages/system/role.html +++ /dev/null @@ -1,253 +0,0 @@ - - -
    -
    -

    角色管理

    - - 首页 - 角色管理 - -
    -
    -
    - 所属应用: -  搜索: -   -   - - -
    - - -
    -
    -
    - - - - - - - - \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/pages/system/tokens.html b/zlt-web/back-web/src/main/resources/static/pages/system/tokens.html deleted file mode 100644 index e0352e1b..00000000 --- a/zlt-web/back-web/src/main/resources/static/pages/system/tokens.html +++ /dev/null @@ -1,110 +0,0 @@ -
    -
    -

    token管理

    - - 首页 - token管理 - -
    -
    -
    - 所属应用: -  搜索:  - -
    - - -
    -
    -
    - - - - - \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/pages/system/user.html b/zlt-web/back-web/src/main/resources/static/pages/system/user.html deleted file mode 100644 index 644db720..00000000 --- a/zlt-web/back-web/src/main/resources/static/pages/system/user.html +++ /dev/null @@ -1,221 +0,0 @@ -
    -
    -

    用户管理

    - - 首页 - 用户管理 - -
    -
    -
    - 搜索: -   -   - - - - -
    - -
    -
    -
    - - - - - - - - - \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/pages/system/user_form.html b/zlt-web/back-web/src/main/resources/static/pages/system/user_form.html deleted file mode 100644 index 4b2efb15..00000000 --- a/zlt-web/back-web/src/main/resources/static/pages/system/user_form.html +++ /dev/null @@ -1,99 +0,0 @@ - -
    - -
    - -
    - -
    -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    -
    - -
    - - -
    -
    -
    - -
    - -
    -
    - -
    - - \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/pages/tpl/iframe.html b/zlt-web/back-web/src/main/resources/static/pages/tpl/iframe.html deleted file mode 100644 index a03de8c0..00000000 --- a/zlt-web/back-web/src/main/resources/static/pages/tpl/iframe.html +++ /dev/null @@ -1,32 +0,0 @@ - - - \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/pages/tpl/message.html b/zlt-web/back-web/src/main/resources/static/pages/tpl/message.html deleted file mode 100644 index 230b0c72..00000000 --- a/zlt-web/back-web/src/main/resources/static/pages/tpl/message.html +++ /dev/null @@ -1,78 +0,0 @@ -
    -
      -
    • 通知({{notices.length}})
    • -
    • 私信({{messages.length}})
    • -
    • 待办({{schedules.length}})
    • -
    - -
    - - \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/pages/tpl/password.html b/zlt-web/back-web/src/main/resources/static/pages/tpl/password.html deleted file mode 100644 index 5fac9aa1..00000000 --- a/zlt-web/back-web/src/main/resources/static/pages/tpl/password.html +++ /dev/null @@ -1,63 +0,0 @@ -
    -

    修改密码

    -
    -
    -
    - -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    - - \ No newline at end of file diff --git a/zlt-web/back-web/src/main/resources/static/pages/tpl/theme.html b/zlt-web/back-web/src/main/resources/static/pages/tpl/theme.html deleted file mode 100644 index 8a7b324b..00000000 --- a/zlt-web/back-web/src/main/resources/static/pages/tpl/theme.html +++ /dev/null @@ -1,55 +0,0 @@ -
    -

    更多设置

    -
    -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    -
    - - \ No newline at end of file diff --git a/zlt-web/pom.xml b/zlt-web/pom.xml deleted file mode 100644 index b716d848..00000000 --- a/zlt-web/pom.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - 4.0.0 - - - com.zlt - central-platform - 4.5.0 - - zlt-web - 前端 - pom - - back-web - - -- Gitee From d9127c055b856bd8cfed2de272254538ad87e5ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=BD=AC=E9=91=AB?= <18235529318@163.com> Date: Mon, 2 Aug 2021 07:59:17 +0800 Subject: [PATCH 03/34] =?UTF-8?q?=E5=88=A0=E9=99=A4web?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/zlt-business/user-center/src/main/resources/application.yml b/zlt-business/user-center/src/main/resources/application.yml index f9a8c71b..3af29e86 100644 --- a/zlt-business/user-center/src/main/resources/application.yml +++ b/zlt-business/user-center/src/main/resources/application.yml @@ -39,11 +39,11 @@ zlt: # 用户列表显示用户所关联的所有角色 - com.central.user.mapper.SysUserRoleMapper.findRolesByUserIds #审计日志 -# audit-log: -# enabled: true -# log-type: db -# datasource: -# driver-class-name: com.mysql.cj.jdbc.Driver -# jdbc-url: jdbc:mysql://${zlt.datasource.ip}:3306/logger-center?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai -# username: ${zlt.datasource.username} -# password: ${zlt.datasource.password} \ No newline at end of file + audit-log: + enabled: true + log-type: db + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + jdbc-url: jdbc:mysql://${zlt.datasource.ip}:3306/logger-center?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai + username: ${zlt.datasource.username} + password: ${zlt.datasource.password} \ No newline at end of file -- Gitee From 1aa3f74f85dcb0a5fa684514d67bb40736b7c051 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=BD=AC=E9=91=AB?= <18235529318@163.com> Date: Mon, 2 Aug 2021 08:06:27 +0800 Subject: [PATCH 04/34] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=A1=86=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-dev.bat | 2 +- package-prod.bat | 2 +- zlt-business/code-generator/pom.xml | 105 -------- .../central/generator/CodeGeneratorApp.java | 16 -- .../controller/SysGeneratorController.java | 47 ---- .../generator/mapper/SysGeneratorMapper.java | 25 -- .../central/generator/model/ColumnEntity.java | 91 ------- .../central/generator/model/TableEntity.java | 81 ------ .../service/SysGeneratorService.java | 22 -- .../service/impl/SysGeneratorServiceImpl.java | 66 ----- .../com/central/generator/utils/GenUtils.java | 231 ------------------ .../src/main/resources/application.yml | 11 - .../src/main/resources/bootstrap.yml | 6 - .../src/main/resources/generator.properties | 33 --- .../resources/mapper/SysGeneratorMapper.xml | 31 --- .../resources/template/Controller.java.vm | 74 ------ .../main/resources/template/Mapper.java.vm | 27 -- .../src/main/resources/template/Mapper.xml.vm | 8 - .../src/main/resources/template/Model.java.vm | 31 --- .../main/resources/template/Service.java.vm | 23 -- .../resources/template/ServiceImpl.java.vm | 37 --- .../src/main/resources/template/index.html.vm | 52 ---- .../central/generator/utils/GenUtilsTest.java | 20 -- 23 files changed, 2 insertions(+), 1039 deletions(-) delete mode 100644 zlt-business/code-generator/pom.xml delete mode 100644 zlt-business/code-generator/src/main/java/com/central/generator/CodeGeneratorApp.java delete mode 100644 zlt-business/code-generator/src/main/java/com/central/generator/controller/SysGeneratorController.java delete mode 100644 zlt-business/code-generator/src/main/java/com/central/generator/mapper/SysGeneratorMapper.java delete mode 100644 zlt-business/code-generator/src/main/java/com/central/generator/model/ColumnEntity.java delete mode 100644 zlt-business/code-generator/src/main/java/com/central/generator/model/TableEntity.java delete mode 100644 zlt-business/code-generator/src/main/java/com/central/generator/service/SysGeneratorService.java delete mode 100644 zlt-business/code-generator/src/main/java/com/central/generator/service/impl/SysGeneratorServiceImpl.java delete mode 100644 zlt-business/code-generator/src/main/java/com/central/generator/utils/GenUtils.java delete mode 100644 zlt-business/code-generator/src/main/resources/application.yml delete mode 100644 zlt-business/code-generator/src/main/resources/bootstrap.yml delete mode 100644 zlt-business/code-generator/src/main/resources/generator.properties delete mode 100644 zlt-business/code-generator/src/main/resources/mapper/SysGeneratorMapper.xml delete mode 100644 zlt-business/code-generator/src/main/resources/template/Controller.java.vm delete mode 100644 zlt-business/code-generator/src/main/resources/template/Mapper.java.vm delete mode 100644 zlt-business/code-generator/src/main/resources/template/Mapper.xml.vm delete mode 100644 zlt-business/code-generator/src/main/resources/template/Model.java.vm delete mode 100644 zlt-business/code-generator/src/main/resources/template/Service.java.vm delete mode 100644 zlt-business/code-generator/src/main/resources/template/ServiceImpl.java.vm delete mode 100644 zlt-business/code-generator/src/main/resources/template/index.html.vm delete mode 100644 zlt-business/code-generator/src/main/test/java/com/central/generator/utils/GenUtilsTest.java diff --git a/package-dev.bat b/package-dev.bat index 30eac903..c564d39e 100644 --- a/package-dev.bat +++ b/package-dev.bat @@ -1,7 +1,7 @@ @echo on @echo ============================================================= @echo $ $ -@echo $ 和谐医疗 Microservices-Platform $ +@echo $ 鱼缘 Microservices-Platform $ @echo $ $ @echo $ $ @echo $ $ diff --git a/package-prod.bat b/package-prod.bat index 177089c0..f5ce97e2 100644 --- a/package-prod.bat +++ b/package-prod.bat @@ -1,7 +1,7 @@ @echo on @echo ============================================================= @echo $ $ -@echo $ 和谐医疗 Microservices-Platform $ +@echo $ 鱼缘 Microservices-Platform $ @echo $ $ @echo $ $ @echo $ $ diff --git a/zlt-business/code-generator/pom.xml b/zlt-business/code-generator/pom.xml deleted file mode 100644 index 9ab38a9a..00000000 --- a/zlt-business/code-generator/pom.xml +++ /dev/null @@ -1,105 +0,0 @@ - - 4.0.0 - - com.zlt - zlt-business - 4.5.0 - - code-generator - - - - com.zlt - zlt-config - - - com.zlt - zlt-common-spring-boot-starter - - - com.zlt - zlt-db-spring-boot-starter - - - com.zlt - zlt-swagger2-spring-boot-starter - - - com.alibaba.cloud - spring-cloud-starter-alibaba-nacos-discovery - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - commons-io - commons-io - - - mysql - mysql-connector-java - - - - org.apache.velocity - velocity - - - org.apache.commons - commons-configuration2 - - - - io.micrometer - micrometer-registry-prometheus - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - repackage - - - - - - com.spotify - docker-maven-plugin - - ${docker.image.prefix}/${project.artifactId} - - ${project.version} - latest - - true - ${docker.baseImage} - ${docker.volumes} - - ${docker.java.opts} - - ["sh","-c","java $JAVA_OPTS ${docker.java.security.egd} -jar /${project.build.finalName}.jar"] - - - / - ${project.build.directory} - ${project.build.finalName}.jar - - - - - - ${project.artifactId} - - \ No newline at end of file diff --git a/zlt-business/code-generator/src/main/java/com/central/generator/CodeGeneratorApp.java b/zlt-business/code-generator/src/main/java/com/central/generator/CodeGeneratorApp.java deleted file mode 100644 index 30f32889..00000000 --- a/zlt-business/code-generator/src/main/java/com/central/generator/CodeGeneratorApp.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.central.generator; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.client.discovery.EnableDiscoveryClient; - -/** - * @author zlt - */ -@EnableDiscoveryClient -@SpringBootApplication -public class CodeGeneratorApp { - public static void main(String[] args) { - SpringApplication.run(CodeGeneratorApp.class, args); - } -} diff --git a/zlt-business/code-generator/src/main/java/com/central/generator/controller/SysGeneratorController.java b/zlt-business/code-generator/src/main/java/com/central/generator/controller/SysGeneratorController.java deleted file mode 100644 index 4f53ce01..00000000 --- a/zlt-business/code-generator/src/main/java/com/central/generator/controller/SysGeneratorController.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.central.generator.controller; - -import java.io.IOException; -import java.util.Map; - -import javax.servlet.http.HttpServletResponse; - -import com.central.common.model.PageResult; -import com.central.generator.service.SysGeneratorService; -import org.apache.commons.io.IOUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import io.swagger.annotations.Api; - -/** - * @Author: zlt - */ -@RestController -@Api(tags = "代码生成器") -@RequestMapping("/generator") -public class SysGeneratorController { - @Autowired - private SysGeneratorService sysGeneratorService; - - /** - * 列表 - */ - @ResponseBody - @GetMapping("/list") - public PageResult getTableList(@RequestParam Map params) { - return sysGeneratorService.queryList(params); - } - - /** - * 生成代码FileUtil - */ - @GetMapping("/code") - public void makeCode(String tables, HttpServletResponse response) throws IOException { - byte[] data = sysGeneratorService.generatorCode(tables.split(",")); - response.reset(); - response.setHeader("Content-Disposition", "attachment; filename=\"generator.zip\""); - response.addHeader("Content-Length", "" + data.length); - response.setContentType("application/octet-stream; charset=UTF-8"); - IOUtils.write(data, response.getOutputStream()); - } -} diff --git a/zlt-business/code-generator/src/main/java/com/central/generator/mapper/SysGeneratorMapper.java b/zlt-business/code-generator/src/main/java/com/central/generator/mapper/SysGeneratorMapper.java deleted file mode 100644 index 3eae9d96..00000000 --- a/zlt-business/code-generator/src/main/java/com/central/generator/mapper/SysGeneratorMapper.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.central.generator.mapper; - -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.central.db.mapper.SuperMapper; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; -import org.springframework.stereotype.Component; - -import java.util.List; -import java.util.Map; - -/** - * @Author zlt - */ -@Component -@Mapper -public interface SysGeneratorMapper extends SuperMapper { - List> queryList(Page> page, @Param("p") Map map); - - int queryTotal(Map map); - - Map queryTable(String tableName); - - List> queryColumns(String tableName); -} diff --git a/zlt-business/code-generator/src/main/java/com/central/generator/model/ColumnEntity.java b/zlt-business/code-generator/src/main/java/com/central/generator/model/ColumnEntity.java deleted file mode 100644 index 0220a20f..00000000 --- a/zlt-business/code-generator/src/main/java/com/central/generator/model/ColumnEntity.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.central.generator.model; - -/** - * @Author: zlt - */ -public class ColumnEntity { - /** - * 列名 - */ - private String columnName; - /** - * 列名类型 - */ - private String dataType; - /** - * 列名备注 - */ - private String comments; - /** - * 属性名称(第一个字母大写),如:user_name => UserName - */ - private String attrName; - /** - * 属性名称(第一个字母小写),如:user_name => userName - */ - private String attrname; - /** - * 属性类型 - */ - private String attrType; - /** - * auto_increment - */ - private String extra; - - public String getColumnName() { - return columnName; - } - - public void setColumnName(String columnName) { - this.columnName = columnName; - } - - public String getDataType() { - return dataType; - } - - public void setDataType(String dataType) { - this.dataType = dataType; - } - - public String getComments() { - return comments; - } - - public void setComments(String comments) { - this.comments = comments; - } - - public String getAttrName() { - return attrName; - } - - public void setAttrName(String attrName) { - this.attrName = attrName; - } - - public String getAttrname() { - return attrname; - } - - public void setAttrname(String attrname) { - this.attrname = attrname; - } - - public String getAttrType() { - return attrType; - } - - public void setAttrType(String attrType) { - this.attrType = attrType; - } - - public String getExtra() { - return extra; - } - - public void setExtra(String extra) { - this.extra = extra; - } -} diff --git a/zlt-business/code-generator/src/main/java/com/central/generator/model/TableEntity.java b/zlt-business/code-generator/src/main/java/com/central/generator/model/TableEntity.java deleted file mode 100644 index d94898dc..00000000 --- a/zlt-business/code-generator/src/main/java/com/central/generator/model/TableEntity.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.central.generator.model; - -import java.util.List; - -/** - * @Author: zlt - */ -public class TableEntity { - /** - * 表的名称 - */ - private String tableName; - /** - * 表的备注 - */ - private String comments; - /** - * 表的主键 - */ - private ColumnEntity pk; - /** - * 表的列名(不包含主键) - */ - private List columns; - /** - * 类名(第一个字母大写),如:sys_user => SysUser - */ - private String className; - /** - * 类名(第一个字母小写),如:sys_user => sysUser - */ - private String classname; - - public String getTableName() { - return tableName; - } - - public void setTableName(String tableName) { - this.tableName = tableName; - } - - public String getComments() { - return comments; - } - - public void setComments(String comments) { - this.comments = comments; - } - - public ColumnEntity getPk() { - return pk; - } - - public void setPk(ColumnEntity pk) { - this.pk = pk; - } - - public List getColumns() { - return columns; - } - - public void setColumns(List columns) { - this.columns = columns; - } - - public String getClassName() { - return className; - } - - public void setClassName(String className) { - this.className = className; - } - - public String getClassname() { - return classname; - } - - public void setClassname(String classname) { - this.classname = classname; - } -} diff --git a/zlt-business/code-generator/src/main/java/com/central/generator/service/SysGeneratorService.java b/zlt-business/code-generator/src/main/java/com/central/generator/service/SysGeneratorService.java deleted file mode 100644 index ad7a7391..00000000 --- a/zlt-business/code-generator/src/main/java/com/central/generator/service/SysGeneratorService.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.central.generator.service; - -import java.util.List; -import java.util.Map; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.central.common.model.PageResult; -import org.springframework.stereotype.Service; - -/** - * @Author zlt - */ -@Service -public interface SysGeneratorService extends IService { - PageResult queryList(Map map); - - Map queryTable(String tableName); - - List> queryColumns(String tableName); - - byte[] generatorCode(String[] tableNames); -} diff --git a/zlt-business/code-generator/src/main/java/com/central/generator/service/impl/SysGeneratorServiceImpl.java b/zlt-business/code-generator/src/main/java/com/central/generator/service/impl/SysGeneratorServiceImpl.java deleted file mode 100644 index c194703d..00000000 --- a/zlt-business/code-generator/src/main/java/com/central/generator/service/impl/SysGeneratorServiceImpl.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.central.generator.service.impl; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.util.List; -import java.util.Map; -import java.util.zip.ZipOutputStream; - -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.central.common.model.PageResult; -import com.central.generator.mapper.SysGeneratorMapper; -import com.central.generator.service.SysGeneratorService; -import com.central.generator.utils.GenUtils; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections4.MapUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -/** - * @Author zlt - */ -@Slf4j -@Service -public class SysGeneratorServiceImpl extends ServiceImpl implements SysGeneratorService { - @Autowired - private SysGeneratorMapper sysGeneratorMapper; - - @Override - public PageResult> queryList(Map map) { - Page> page = new Page<>(MapUtils.getInteger(map, "page"), MapUtils.getInteger(map, "limit")); - - List> list = sysGeneratorMapper.queryList(page, map); - return PageResult.>builder().data(list).code(0).count(page.getTotal()).build(); - } - - @Override - public Map queryTable(String tableName) { - return sysGeneratorMapper.queryTable(tableName); - } - - @Override - public List> queryColumns(String tableName) { - return sysGeneratorMapper.queryColumns(tableName); - } - - @Override - public byte[] generatorCode(String[] tableNames) { - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - try ( - ZipOutputStream zip = new ZipOutputStream(outputStream) - ) { - for (String tableName : tableNames) { - //查询表信息 - Map table = queryTable(tableName); - //查询列信息 - List> columns = queryColumns(tableName); - //生成代码 - GenUtils.generatorCode(table, columns, zip); - } - } catch (IOException e) { - log.error("generatorCode-error: ", e); - } - return outputStream.toByteArray(); - } -} diff --git a/zlt-business/code-generator/src/main/java/com/central/generator/utils/GenUtils.java b/zlt-business/code-generator/src/main/java/com/central/generator/utils/GenUtils.java deleted file mode 100644 index a0468409..00000000 --- a/zlt-business/code-generator/src/main/java/com/central/generator/utils/GenUtils.java +++ /dev/null @@ -1,231 +0,0 @@ -package com.central.generator.utils; - -import java.io.File; -import java.io.IOException; -import java.io.StringWriter; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.zip.ZipEntry; -import java.util.zip.ZipOutputStream; - -import cn.hutool.core.date.DateUtil; -import com.central.common.constant.CommonConstant; -import com.central.generator.model.ColumnEntity; -import com.central.generator.model.TableEntity; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.configuration.Configuration; -import org.apache.commons.configuration.ConfigurationException; -import org.apache.commons.configuration.PropertiesConfiguration; -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.WordUtils; -import org.apache.commons.io.IOUtils; -import org.apache.velocity.Template; -import org.apache.velocity.VelocityContext; -import org.apache.velocity.app.Velocity; - -/** - * 代码生成器工具类 - * - * @author zlt - */ -@Slf4j -public class GenUtils { - private GenUtils() { - throw new IllegalStateException("Utility class"); - } - - private final static String FILE_NAME_MODEL = "Model.java.vm"; - private final static String FILE_NAME_MAPPER = "Mapper.java.vm"; - private final static String FILE_NAME_MAPPERXML = "Mapper.xml.vm"; - private final static String FILE_NAME_SERVICE = "Service.java.vm"; - private final static String FILE_NAME_SERVICEIMPL = "ServiceImpl.java.vm"; - private final static String FILE_NAME_CONTROLLER = "Controller.java.vm"; - private final static String FILE_NAME_PAGE = "index.html.vm"; - private final static String TEMPLATE_PATH = "template/"; - private final static String PACKAGE = "package"; - private final static String MODULE_NAME = "moduleName"; - - public static List getTemplates() { - List templates = new ArrayList<>(); - templates.add(TEMPLATE_PATH+FILE_NAME_MODEL); - templates.add(TEMPLATE_PATH+FILE_NAME_MAPPER); - templates.add(TEMPLATE_PATH+FILE_NAME_MAPPERXML); - templates.add(TEMPLATE_PATH+FILE_NAME_SERVICE); - templates.add(TEMPLATE_PATH+FILE_NAME_SERVICEIMPL); - templates.add(TEMPLATE_PATH+FILE_NAME_CONTROLLER); - - templates.add(TEMPLATE_PATH+FILE_NAME_PAGE); - - return templates; - } - - /** - * 生成代码 - */ - public static void generatorCode(Map table, - List> columns, ZipOutputStream zip) { - //配置信息 - Configuration config = getConfig(); - boolean hasBigDecimal = false; - //表信息 - TableEntity tableEntity = new TableEntity(); - tableEntity.setTableName(table.get("tableName")); - tableEntity.setComments(table.get("tableComment")); - //表名转换成Java类名 - String className = tableToJava(tableEntity.getTableName(), config.getString("tablePrefix")); - tableEntity.setClassName(className); - tableEntity.setClassname(StringUtils.uncapitalize(className)); - - //列信息 - List columsList = new ArrayList<>(); - for (Map column : columns) { - ColumnEntity columnEntity = new ColumnEntity(); - columnEntity.setColumnName(column.get("columnName")); - columnEntity.setDataType(column.get("dataType")); - columnEntity.setComments(column.get("columnComment")); - columnEntity.setExtra(column.get("extra")); - - //列名转换成Java属性名 - String attrName = columnToJava(columnEntity.getColumnName()); - columnEntity.setAttrName(attrName); - columnEntity.setAttrname(StringUtils.uncapitalize(attrName)); - - //列的数据类型,转换成Java类型 - String attrType = config.getString(columnEntity.getDataType(), "unknowType"); - columnEntity.setAttrType(attrType); - if (!hasBigDecimal && "BigDecimal".equals(attrType)) { - hasBigDecimal = true; - } - //是否主键 - if ("PRI".equalsIgnoreCase(column.get("columnKey")) && tableEntity.getPk() == null) { - tableEntity.setPk(columnEntity); - } - - columsList.add(columnEntity); - } - tableEntity.setColumns(columsList); - - //没主键,则第一个字段为主键 - if (tableEntity.getPk() == null) { - tableEntity.setPk(tableEntity.getColumns().get(0)); - } - - //设置velocity资源加载器 - Properties prop = new Properties(); - prop.put("file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); - Velocity.init(prop); - String mainPath = config.getString("mainPath"); - mainPath = StringUtils.isBlank(mainPath) ? "io.renren" : mainPath; - //封装模板数据 - Map map = new HashMap<>(); - map.put("tableName", tableEntity.getTableName()); - map.put("comments", tableEntity.getComments()); - map.put("pk", tableEntity.getPk()); - map.put("className", tableEntity.getClassName()); - map.put("classname", tableEntity.getClassname()); - map.put("pathName", tableEntity.getClassname().toLowerCase()); - map.put("columns", tableEntity.getColumns()); - map.put("hasBigDecimal", hasBigDecimal); - map.put("mainPath", mainPath); - map.put(PACKAGE, config.getString(PACKAGE)); - map.put(MODULE_NAME, config.getString(MODULE_NAME)); - map.put("author", config.getString("author")); - map.put("email", config.getString("email")); - map.put("datetime", DateUtil.format(new Date(), CommonConstant.DATETIME_FORMAT)); - VelocityContext context = new VelocityContext(map); - - //获取模板列表 - List templates = getTemplates(); - for (String template : templates) { - //渲染模板 - try ( - StringWriter sw = new StringWriter() - ) { - Template tpl = Velocity.getTemplate(template, "UTF-8"); - tpl.merge(context, sw); - - //添加到zip - zip.putNextEntry(new ZipEntry(getFileName(template, tableEntity.getClassName(), config.getString(PACKAGE), config.getString(MODULE_NAME)))); - IOUtils.write(sw.toString(), zip, StandardCharsets.UTF_8); - zip.closeEntry(); - } catch (IOException e) { - log.error("generatorCode-error", e); - } - } - } - - - /** - * 列名转换成Java属性名 - */ - public static String columnToJava(String columnName) { - return WordUtils.capitalizeFully(columnName, new char[]{'_'}).replace("_", ""); - } - - /** - * 表名转换成Java类名 - */ - public static String tableToJava(String tableName, String tablePrefix) { - if (StringUtils.isNotBlank(tablePrefix)) { - tableName = tableName.substring(tablePrefix.length()); - } - return columnToJava(tableName); - } - - /** - * 获取配置信息 - */ - public static Configuration getConfig() { - try { - return new PropertiesConfiguration("generator.properties"); - } catch (ConfigurationException e) { - throw new RuntimeException("获取配置文件失败,", e); - } - } - - /** - * 获取文件名 - */ - public static String getFileName(String template, String className, String packageName, String moduleName) { - String packagePath = "main" + File.separator + "java" + File.separator; - if (StringUtils.isNotBlank(packageName)) { - packagePath += packageName.replace(".", File.separator) + File.separator + moduleName + File.separator; - } - - if (template.contains(FILE_NAME_MODEL)) { - return packagePath + "model" + File.separator + className + ".java"; - } - - if (template.contains(FILE_NAME_MAPPER)) { - return packagePath + "mapper" + File.separator + className + "Mapper.java"; - } - - if (template.contains(FILE_NAME_SERVICE)) { - return packagePath + "service" + File.separator + "I" + className + "Service.java"; - } - - if (template.contains(FILE_NAME_SERVICEIMPL)) { - return packagePath + "service" + File.separator + "impl" + File.separator + className + "ServiceImpl.java"; - } - - if (template.contains(FILE_NAME_CONTROLLER)) { - return packagePath + "controller" + File.separator + className + "Controller.java"; - } - - if (template.contains(FILE_NAME_MAPPERXML)) { - return "main" + File.separator + "resources" + File.separator + "mapper" + File.separator + className + "Mapper.xml"; - } - - if (template.contains(FILE_NAME_PAGE)) { - return "main" + File.separator + "view" + File.separator + "pages" + - File.separator + moduleName + File.separator + "index.html"; - } - - return null; - } -} diff --git a/zlt-business/code-generator/src/main/resources/application.yml b/zlt-business/code-generator/src/main/resources/application.yml deleted file mode 100644 index 167e7a65..00000000 --- a/zlt-business/code-generator/src/main/resources/application.yml +++ /dev/null @@ -1,11 +0,0 @@ -spring: - datasource: - url: jdbc:mysql://${zlt.datasource.ip}:3306/user-center?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai - username: ${zlt.datasource.username} - password: ${zlt.datasource.password} - driver-class-name: com.mysql.cj.jdbc.Driver - -mybatis-plus: - mapper-locations: classpath:/mapper/*Mapper.xml - #实体扫描,多个package用逗号或者分号分隔 - typeAliasesPackage: com.central.generator.model \ No newline at end of file diff --git a/zlt-business/code-generator/src/main/resources/bootstrap.yml b/zlt-business/code-generator/src/main/resources/bootstrap.yml deleted file mode 100644 index bffb899c..00000000 --- a/zlt-business/code-generator/src/main/resources/bootstrap.yml +++ /dev/null @@ -1,6 +0,0 @@ -server: - port: 7300 - -spring: - application: - name: code-generator \ No newline at end of file diff --git a/zlt-business/code-generator/src/main/resources/generator.properties b/zlt-business/code-generator/src/main/resources/generator.properties deleted file mode 100644 index 2bf5e525..00000000 --- a/zlt-business/code-generator/src/main/resources/generator.properties +++ /dev/null @@ -1,33 +0,0 @@ -#包前缀 -package=com.central -#模块名,生成的类的package为:com.central.generator -moduleName=generator -#作者名 -author=zlt -#Email -email= -#表前缀,如表tb_sys_user 生成类 sys_user -tablePrefix=tb_ - -#数据转换类型 -tinyint=Integer -smallint=Integer -mediumint=Integer -int=Integer -integer=Integer -bigint=Long -float=Float -double=Double -decimal=BigDecimal -bit=Boolean - -char=String -varchar=String -tinytext=String -text=String -mediumtext=String -longtext=String - -date=Date -datetime=Date -timestamp=Date \ No newline at end of file diff --git a/zlt-business/code-generator/src/main/resources/mapper/SysGeneratorMapper.xml b/zlt-business/code-generator/src/main/resources/mapper/SysGeneratorMapper.xml deleted file mode 100644 index 30d36489..00000000 --- a/zlt-business/code-generator/src/main/resources/mapper/SysGeneratorMapper.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/zlt-business/code-generator/src/main/resources/template/Controller.java.vm b/zlt-business/code-generator/src/main/resources/template/Controller.java.vm deleted file mode 100644 index dad9d717..00000000 --- a/zlt-business/code-generator/src/main/resources/template/Controller.java.vm +++ /dev/null @@ -1,74 +0,0 @@ -package ${package}.${moduleName}.controller; - -import java.util.Map; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; -import lombok.extern.slf4j.Slf4j; - -import ${package}.${moduleName}.model.${className}; -import ${package}.${moduleName}.service.I${className}Service; -import com.central.common.model.PageResult; -import com.central.common.model.Result; - -/** - * ${comments} - * - * @author ${author} - * @date ${datetime} - */ -@Slf4j -@RestController -@RequestMapping("/${pathName}") -@Api(tags = "${comments}") -public class ${className}Controller { - @Autowired - private I${className}Service ${classname}Service; - - /** - * 列表 - */ - @ApiOperation(value = "查询列表") - @ApiImplicitParams({ - @ApiImplicitParam(name = "page", value = "分页起始位置", required = true, dataType = "Integer"), - @ApiImplicitParam(name = "limit", value = "分页结束位置", required = true, dataType = "Integer") - }) - @GetMapping - public PageResult list(@RequestParam Map params) { - return ${classname}Service.findList(params); - } - - /** - * 查询 - */ - @ApiOperation(value = "查询") - @GetMapping("/{${pk.attrname}}") - public Result findUserById(@PathVariable Long ${pk.attrname}) { - ${className} model = ${classname}Service.getById(${pk.attrname}); - return Result.succeed(model, "查询成功"); - } - - /** - * 新增or更新 - */ - @ApiOperation(value = "保存") - @PostMapping - public Result save(@RequestBody ${className} ${classname}) { - ${classname}Service.saveOrUpdate(${classname}); - return Result.succeed("保存成功"); - } - - /** - * 删除 - */ - @ApiOperation(value = "删除") - @DeleteMapping("/{id}") - public Result delete(@PathVariable Long ${pk.attrname}) { - ${classname}Service.removeById(${pk.attrname}); - return Result.succeed("删除成功"); - } -} diff --git a/zlt-business/code-generator/src/main/resources/template/Mapper.java.vm b/zlt-business/code-generator/src/main/resources/template/Mapper.java.vm deleted file mode 100644 index 23b7c320..00000000 --- a/zlt-business/code-generator/src/main/resources/template/Mapper.java.vm +++ /dev/null @@ -1,27 +0,0 @@ -package ${package}.${moduleName}.mapper; - -import ${package}.${moduleName}.model.${className}; -import com.central.db.mapper.SuperMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import org.apache.ibatis.annotations.Param; -import org.apache.ibatis.annotations.Mapper; - -import java.util.List; -import java.util.Map; - -/** - * ${comments} - * - * @author ${author} - * @date ${datetime} - */ -@Mapper -public interface ${className}Mapper extends SuperMapper<${className}> { - /** - * 分页查询用户列表 - * @param page - * @param params - * @return - */ - List<${className}> findList(Page<${className}> page, @Param("p") Map params); -} diff --git a/zlt-business/code-generator/src/main/resources/template/Mapper.xml.vm b/zlt-business/code-generator/src/main/resources/template/Mapper.xml.vm deleted file mode 100644 index bc5b620b..00000000 --- a/zlt-business/code-generator/src/main/resources/template/Mapper.xml.vm +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/zlt-business/code-generator/src/main/resources/template/Model.java.vm b/zlt-business/code-generator/src/main/resources/template/Model.java.vm deleted file mode 100644 index cb57c394..00000000 --- a/zlt-business/code-generator/src/main/resources/template/Model.java.vm +++ /dev/null @@ -1,31 +0,0 @@ -package ${package}.${moduleName}.model; - -import ${package}.common.model.SuperEntity; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Getter; -import lombok.Setter; -import lombok.EqualsAndHashCode; -#if(${hasBigDecimal}) -import java.math.BigDecimal; -#end -import java.util.Date; - -/** - * ${comments} - * - * @author ${author} - * @date ${datetime} - */ -@Getter -@Setter -@EqualsAndHashCode(callSuper = false) -@TableName("${tableName}") -public class ${className} extends SuperEntity { - private static final long serialVersionUID=1L; - -#foreach ($column in $columns) - #if($column.columnName != $pk.columnName && $column.columnName != "createTime" && $column.columnName != "updateTime") -private $column.attrType $column.attrname; - #end -#end -} diff --git a/zlt-business/code-generator/src/main/resources/template/Service.java.vm b/zlt-business/code-generator/src/main/resources/template/Service.java.vm deleted file mode 100644 index 40d7011b..00000000 --- a/zlt-business/code-generator/src/main/resources/template/Service.java.vm +++ /dev/null @@ -1,23 +0,0 @@ -package ${package}.${moduleName}.service; - -import ${package}.${moduleName}.model.${className}; -import com.central.common.model.PageResult; -import ${package}.common.service.ISuperService; - -import java.util.Map; - -/** - * ${comments} - * - * @author ${author} - * @date ${datetime} - */ -public interface I${className}Service extends ISuperService<${className}> { - /** - * 列表 - * @param params - * @return - */ - PageResult<${className}> findList(Map params); -} - diff --git a/zlt-business/code-generator/src/main/resources/template/ServiceImpl.java.vm b/zlt-business/code-generator/src/main/resources/template/ServiceImpl.java.vm deleted file mode 100644 index 58bf2f6d..00000000 --- a/zlt-business/code-generator/src/main/resources/template/ServiceImpl.java.vm +++ /dev/null @@ -1,37 +0,0 @@ -package ${package}.${moduleName}.service.impl; - -import org.springframework.stereotype.Service; -import com.central.common.model.PageResult; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import ${package}.common.service.impl.SuperServiceImpl; - -import java.util.List; -import java.util.Map; -import org.apache.commons.collections4.MapUtils; -import lombok.extern.slf4j.Slf4j; - -import ${package}.${moduleName}.model.${className}; -import ${package}.${moduleName}.mapper.${className}Mapper; -import ${package}.${moduleName}.service.I${className}Service; - -/** - * ${comments} - * - * @author ${author} - * @date ${datetime} - */ -@Slf4j -@Service -public class ${className}ServiceImpl extends SuperServiceImpl<${className}Mapper, ${className}> implements I${className}Service { - /** - * 列表 - * @param params - * @return - */ - @Override - public PageResult<${className}> findList(Map params){ - Page<${className}> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit")); - List<${className}> list = baseMapper.findList(page, params); - return PageResult.<${className}>builder().data(list).code(0).count(page.getTotal()).build(); - } -} diff --git a/zlt-business/code-generator/src/main/resources/template/index.html.vm b/zlt-business/code-generator/src/main/resources/template/index.html.vm deleted file mode 100644 index 8792acdd..00000000 --- a/zlt-business/code-generator/src/main/resources/template/index.html.vm +++ /dev/null @@ -1,52 +0,0 @@ -
    -
    -

    ${comments}

    - - 首页 - ${comments} - -
    - - -
    -
    - 搜索: -   - - -
    - - -
    -
    -
    - - - \ No newline at end of file diff --git a/zlt-business/code-generator/src/main/test/java/com/central/generator/utils/GenUtilsTest.java b/zlt-business/code-generator/src/main/test/java/com/central/generator/utils/GenUtilsTest.java deleted file mode 100644 index b3c7adf0..00000000 --- a/zlt-business/code-generator/src/main/test/java/com/central/generator/utils/GenUtilsTest.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.central.generator.utils; - -import org.assertj.core.api.Assertions; -import org.junit.Test; -import org.springframework.boot.test.context.SpringBootTest; - -/** - * GenUtils测试用例 - * - * @author zlt - * @date 2019/5/10 - */ -@SpringBootTest -public class GenUtilsTest { - @Test - public void testTableToJava() { - String javaName = GenUtils.tableToJava("t_event_message", "t_"); - Assertions.assertThat(javaName).isEqualTo("EventMessage"); - } -} -- Gitee From df448d80cdf2e0ae71caa368cf39f5f7d9654fbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=BD=AC=E9=91=AB?= <18235529318@163.com> Date: Tue, 3 Aug 2021 17:49:56 +0800 Subject: [PATCH 05/34] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E6=88=90=E5=8A=9F?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user/controller/SysMenuController.java | 10 +-- .../user/controller/SysUserController.java | 67 +++++++++++++++---- .../main/resources/mapper/SysUserMapper.xml | 3 + .../impl/DefaultPermissionServiceImpl.java | 2 +- .../common/constant/CommonConstant.java | 4 +- .../com/central/common/model/SuperEntity.java | 3 + .../com/central/common/model/SysMenu.java | 8 +-- 7 files changed, 72 insertions(+), 25 deletions(-) diff --git a/zlt-business/user-center/src/main/java/com/central/user/controller/SysMenuController.java b/zlt-business/user-center/src/main/java/com/central/user/controller/SysMenuController.java index 531844f5..11681737 100644 --- a/zlt-business/user-center/src/main/java/com/central/user/controller/SysMenuController.java +++ b/zlt-business/user-center/src/main/java/com/central/user/controller/SysMenuController.java @@ -40,15 +40,15 @@ public class SysMenuController { public static List treeBuilder(List sysMenus) { List menus = new ArrayList<>(); for (SysMenu sysMenu : sysMenus) { - if (ObjectUtils.equals(-1L, sysMenu.getParentId())) { + if (ObjectUtils.equals(0L, sysMenu.getParentId())) { menus.add(sysMenu); } for (SysMenu menu : sysMenus) { if (menu.getParentId().equals(sysMenu.getId())) { - if (sysMenu.getSubMenus() == null) { - sysMenu.setSubMenus(new ArrayList<>()); + if (sysMenu.getChildren() == null) { + sysMenu.setChildren(new ArrayList<>()); } - sysMenu.getSubMenus().add(menu); + sysMenu.getChildren().add(menu); } } } @@ -88,7 +88,7 @@ public class SysMenuController { for (SysMenu sysMenu : allMenus) { Map authTree = new HashMap<>(); authTree.put("id", sysMenu.getId()); - authTree.put("name", sysMenu.getName()); + authTree.put("name", sysMenu.getTitle()); authTree.put("pId", sysMenu.getParentId()); authTree.put("open", true); authTree.put("checked", false); diff --git a/zlt-business/user-center/src/main/java/com/central/user/controller/SysUserController.java b/zlt-business/user-center/src/main/java/com/central/user/controller/SysUserController.java index 01d84597..af990f10 100644 --- a/zlt-business/user-center/src/main/java/com/central/user/controller/SysUserController.java +++ b/zlt-business/user-center/src/main/java/com/central/user/controller/SysUserController.java @@ -1,12 +1,10 @@ package com.central.user.controller; import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.central.common.annotation.LoginUser; import com.central.common.constant.CommonConstant; import com.central.common.model.*; @@ -16,21 +14,22 @@ import com.central.log.annotation.AuditLog; import com.central.search.client.service.IQueryService; import com.central.search.model.LogicDelDto; import com.central.search.model.SearchDto; +import com.central.user.model.SysRoleMenu; +import com.central.user.model.SysRoleUser; import com.central.user.model.SysUserExcel; +import com.central.user.service.ISysRoleUserService; import com.fasterxml.jackson.databind.JsonNode; +import io.swagger.annotations.*; import org.apache.commons.collections4.MapUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.CachePut; import org.springframework.cache.annotation.Cacheable; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import com.central.user.service.ISysUserService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.multipart.MultipartFile; @@ -54,6 +53,9 @@ public class SysUserController { @Autowired private ISysUserService appUserService; + @Autowired + private ISysRoleUserService roleUserService; + @Autowired private IQueryService queryService; @@ -75,7 +77,19 @@ public class SysUserController { @ApiOperation(value = "根据用户名查询用户实体") @Cacheable(value = "user", key = "#username") public SysUser selectByUsername(@PathVariable String username) { - return appUserService.selectByUsername(username); + SysUser sysUser = appUserService.selectByUsername(username); + return sysUser; + } + + /** + * 查询用户实体对象SysUser + */ + @GetMapping(value = "/users/queryByUserName/{username}") + @ApiOperation(value = "根据用户名查询用户实体") + public Result queryByUserName(@PathVariable String username) { + SysUser sysUser = appUserService.getOne(new LambdaQueryWrapper() + .eq(SysUser::getUsername, username)); + return sysUser == null ? Result.failed("不存在") : Result.succeed(sysUser); } /** @@ -120,7 +134,7 @@ public class SysUserController { * @param sysUser */ @PutMapping("/users") - @CachePut(value = "user", key = "#sysUser.username", unless="#result == null") + @CachePut(value = "user", key = "#sysUser.username", unless = "#result == null") //@AuditLog(operation = "'更新用户:' + #sysUser") public void updateSysUser(@RequestBody SysUser sysUser) { appUserService.updateById(sysUser); @@ -217,7 +231,7 @@ public class SysUserController { * @param id */ @DeleteMapping(value = "/users/{id}") - //@AuditLog(operation = "'删除用户:' + #id") + @AuditLog(operation = "'删除用户:' + #id") public Result delete(@PathVariable Long id) { if (checkAdmin(id)) { return Result.failed(ADMIN_CHANGE_MSG); @@ -226,6 +240,33 @@ public class SysUserController { return Result.succeed("删除成功"); } + /** + * 批量删除用户 + * + * @param map + */ + @DeleteMapping(value = "/users/batch") + @AuditLog(operation = "'删除用户:' + #id") + public Result bathDelete(@RequestBody Map map) { + if (map == null) { + return Result.of(null, 2, "参数不能为空"); + } + String ids = map.get("ids"); + if (StringUtils.isEmpty(ids)) { + return Result.of(null, 2, "参数不能为空"); + } + String[] idsArray = ids.split(","); + // 检测非超级管理员 + for (String id : idsArray) { + if (checkAdmin(Long.parseLong(id))) { + return Result.failed(ADMIN_CHANGE_MSG); + } + } + roleUserService.remove(new LambdaQueryWrapper() + .in(SysRoleUser::getUserId, Arrays.asList(idsArray))); + appUserService.removeByIds(Arrays.asList(idsArray)); + return Result.succeed("删除成功"); + } /** * 新增or更新 @@ -255,7 +296,7 @@ public class SysUserController { @PostMapping(value = "/users/import") public Result importExcl(@RequestParam("file") MultipartFile excl) throws Exception { int rowNum = 0; - if(!excl.isEmpty()) { + if (!excl.isEmpty()) { List list = ExcelUtil.importExcel(excl, 0, 1, SysUserExcel.class); rowNum = list.size(); if (rowNum > 0) { @@ -270,7 +311,7 @@ public class SysUserController { appUserService.saveBatch(users); } } - return Result.succeed("导入数据成功,一共【"+rowNum+"】行"); + return Result.succeed("导入数据成功,一共【" + rowNum + "】行"); } @ApiOperation(value = "用户全文搜索列表") diff --git a/zlt-business/user-center/src/main/resources/mapper/SysUserMapper.xml b/zlt-business/user-center/src/main/resources/mapper/SysUserMapper.xml index 5d3b9aca..e00ec093 100644 --- a/zlt-business/user-center/src/main/resources/mapper/SysUserMapper.xml +++ b/zlt-business/user-center/src/main/resources/mapper/SysUserMapper.xml @@ -20,6 +20,9 @@ and t.type = #{u.type} + + and t.sex = #{u.sex} + and t.id like concat('%', #{u.searchValue}, '%') diff --git a/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/service/impl/DefaultPermissionServiceImpl.java b/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/service/impl/DefaultPermissionServiceImpl.java index 954cf054..496f783a 100644 --- a/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/service/impl/DefaultPermissionServiceImpl.java +++ b/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/service/impl/DefaultPermissionServiceImpl.java @@ -83,7 +83,7 @@ public abstract class DefaultPermissionServiceImpl { String roleCodes = grantedAuthorityList.stream().map(SimpleGrantedAuthority::getAuthority).collect(Collectors.joining(", ")); List menuList = findMenuByRoleCodes(roleCodes); for (SysMenu menu : menuList) { - if (StringUtils.isNotEmpty(menu.getUrl()) && antPathMatcher.match(menu.getUrl(), requestURI)) { + if (StringUtils.isNotEmpty(menu.getPath()) && antPathMatcher.match(menu.getPath(), requestURI)) { if (StrUtil.isNotEmpty(menu.getPathMethod())) { return requestMethod.equalsIgnoreCase(menu.getPathMethod()); } else { diff --git a/zlt-commons/zlt-common-core/src/main/java/com/central/common/constant/CommonConstant.java b/zlt-commons/zlt-common-core/src/main/java/com/central/common/constant/CommonConstant.java index 2150a4a1..dbd5beee 100644 --- a/zlt-commons/zlt-common-core/src/main/java/com/central/common/constant/CommonConstant.java +++ b/zlt-commons/zlt-common-core/src/main/java/com/central/common/constant/CommonConstant.java @@ -72,12 +72,12 @@ public interface CommonConstant { /** * 菜单 */ - Integer MENU = 1; + Integer MENU = 0; /** * 权限 */ - Integer PERMISSION = 2; + Integer PERMISSION = 1; /** * 删除标记 diff --git a/zlt-commons/zlt-common-core/src/main/java/com/central/common/model/SuperEntity.java b/zlt-commons/zlt-common-core/src/main/java/com/central/common/model/SuperEntity.java index f7778346..34b0a324 100644 --- a/zlt-commons/zlt-common-core/src/main/java/com/central/common/model/SuperEntity.java +++ b/zlt-commons/zlt-common-core/src/main/java/com/central/common/model/SuperEntity.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Getter; import lombok.Setter; @@ -24,8 +25,10 @@ public class SuperEntity> extends Model { @TableId private Long id; @TableField(fill = FieldFill.INSERT) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; @TableField(fill = FieldFill.INSERT_UPDATE) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; @Override diff --git a/zlt-commons/zlt-common-core/src/main/java/com/central/common/model/SysMenu.java b/zlt-commons/zlt-common-core/src/main/java/com/central/common/model/SysMenu.java index bd3de705..e026ced6 100644 --- a/zlt-commons/zlt-common-core/src/main/java/com/central/common/model/SysMenu.java +++ b/zlt-commons/zlt-common-core/src/main/java/com/central/common/model/SysMenu.java @@ -18,10 +18,10 @@ public class SysMenu extends SuperEntity { private static final long serialVersionUID = 749360940290141180L; private Long parentId; - private String name; - private String css; - private String url; + private String title; + private String icon; private String path; + private String component; private Integer sort; private Integer type; private Boolean hidden; @@ -31,7 +31,7 @@ public class SysMenu extends SuperEntity { private String pathMethod; @TableField(exist = false) - private List subMenus; + private List children; @TableField(exist = false) private Long roleId; @TableField(exist = false) -- Gitee From 13cd0bc38d00470920bc139b6ea7974fafaa6c9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=BD=AC=E9=91=AB?= <18235529318@163.com> Date: Fri, 6 Aug 2021 08:26:26 +0800 Subject: [PATCH 06/34] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 43 ++++ zlt-business/pom.xml | 3 +- zlt-business/user-center/pom.xml | 4 +- .../user/controller/SysRoleController.java | 30 +++ .../src/main/resources/bootstrap.yml | 6 +- .../main/resources/mapper/SysRoleMapper.xml | 8 +- zlt-business/warehouse-center/pom.xml | 185 ++++++++++++++++++ .../main/java/com/central/CodeGenerator.java | 160 +++++++++++++++ .../main/java/com/central/WarehouseApp.java | 29 +++ .../src/main/resources/application.yml | 45 +++++ .../src/main/resources/bootstrap.yml | 11 ++ .../java/com/central/common/model/Result.java | 17 ++ .../com/central/common/model/SysRole.java | 4 + .../src/main/resources/application.yml | 6 + .../src/main/resources/bootstrap.yml | 7 +- .../oauth/controller/ClientController.java | 21 ++ zlt-uaa/src/main/resources/bootstrap.yml | 5 + 17 files changed, 573 insertions(+), 11 deletions(-) create mode 100644 zlt-business/warehouse-center/pom.xml create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/CodeGenerator.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/WarehouseApp.java create mode 100644 zlt-business/warehouse-center/src/main/resources/application.yml create mode 100644 zlt-business/warehouse-center/src/main/resources/bootstrap.yml diff --git a/pom.xml b/pom.xml index 7813afd6..1ecb754d 100644 --- a/pom.xml +++ b/pom.xml @@ -31,6 +31,10 @@ 1.6.2 5.1.4 3.4.0 + 3.4.0 + 3.2.0 + 2.3.29 + 3.9 3.8.1 7.2.28 4.1.3 @@ -60,6 +64,9 @@ hub.zlt.com:8080/microservices-platform -Djava.security.egd=file:/dev/./urandom -Xms128m -Xmx128m + + + 1.2.5 @@ -169,6 +176,26 @@ mybatis-plus-extension ${mybatis-plus-boot-starter.version} + + com.baomidou + mybatis-plus-generator + ${mybatis-plus-generator.version} + + + com.baomidou + dynamic-datasource-spring-boot-starter + ${dynamic-datasource-spring-boot-starter.version} + + + org.freemarker + freemarker + ${freemarker.version} + + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + com.baomidou mybatis-plus @@ -346,6 +373,22 @@ hibernate-validator ${hibernate-validator.version} + + + com.github.pagehelper + pagehelper-spring-boot-starter + ${pagehelper-spring-boot-starter.version} + + + org.mybatis + mybatis + + + org.mybatis + mybatis-spring + + + org.apache.dubbo dubbo diff --git a/zlt-business/pom.xml b/zlt-business/pom.xml index c5db34f7..e86e362b 100644 --- a/zlt-business/pom.xml +++ b/zlt-business/pom.xml @@ -14,9 +14,8 @@ user-center file-center - - code-generator search-center + warehouse-center \ No newline at end of file diff --git a/zlt-business/user-center/pom.xml b/zlt-business/user-center/pom.xml index e5f37632..0eb84699 100644 --- a/zlt-business/user-center/pom.xml +++ b/zlt-business/user-center/pom.xml @@ -111,7 +111,9 @@ ${docker.java.opts} - ["sh","-c","java $JAVA_OPTS ${docker.java.security.egd} -jar /${project.build.finalName}.jar"] + ["sh","-c","java $JAVA_OPTS ${docker.java.security.egd} -jar + /${project.build.finalName}.jar"] + / diff --git a/zlt-business/user-center/src/main/java/com/central/user/controller/SysRoleController.java b/zlt-business/user-center/src/main/java/com/central/user/controller/SysRoleController.java index 80de7d23..a6ac95fc 100644 --- a/zlt-business/user-center/src/main/java/com/central/user/controller/SysRoleController.java +++ b/zlt-business/user-center/src/main/java/com/central/user/controller/SysRoleController.java @@ -1,10 +1,15 @@ package com.central.user.controller; +import java.util.Arrays; import java.util.List; import java.util.Map; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.central.log.annotation.AuditLog; +import com.central.user.model.SysRoleUser; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -85,4 +90,29 @@ public class SysRoleController { return Result.failed("操作失败"); } } + + /** + * 批量删除角色 + * + * @param map + */ + @ApiOperation(value = "批量删除角色") + @DeleteMapping(value = "/roles/batch") + public Result bathDelete(@RequestBody Map map) { + if (map == null) { + return Result.of(null, 2, "参数不能为空"); + } + String ids = map.get("ids"); + if (StringUtils.isEmpty(ids)) { + return Result.of(null, 2, "参数不能为空"); + } + String[] idsArray = ids.split(","); + // 检测非超级管理员 + for (String id : idsArray) { + if (Long.parseLong(id) == 1L) { + return Result.failed("管理员不可以删除"); + } + } + return Result.ToResult(sysRoleService.removeByIds(Arrays.asList(idsArray))); + } } diff --git a/zlt-business/user-center/src/main/resources/bootstrap.yml b/zlt-business/user-center/src/main/resources/bootstrap.yml index a8723864..b9398c32 100644 --- a/zlt-business/user-center/src/main/resources/bootstrap.yml +++ b/zlt-business/user-center/src/main/resources/bootstrap.yml @@ -6,6 +6,6 @@ spring: name: user-center cloud: nacos: -# discovery: -# ip: 39.106.15.230 -# port: 7000 \ No newline at end of file + discovery: + ip: 39.106.15.230 + port: 7000 \ No newline at end of file diff --git a/zlt-business/user-center/src/main/resources/mapper/SysRoleMapper.xml b/zlt-business/user-center/src/main/resources/mapper/SysRoleMapper.xml index 409a1b38..50c3e86b 100644 --- a/zlt-business/user-center/src/main/resources/mapper/SysRoleMapper.xml +++ b/zlt-business/user-center/src/main/resources/mapper/SysRoleMapper.xml @@ -8,7 +8,8 @@ name, create_time, update_time, - tenant_id + tenant_id, + comments @@ -16,9 +17,8 @@ and t.name like concat('%', #{r.name}, '%') - - - and t.name like concat('%', #{r.searchValue}, '%') + + and t.code like concat('%', #{r.code}, '%') diff --git a/zlt-business/warehouse-center/pom.xml b/zlt-business/warehouse-center/pom.xml new file mode 100644 index 00000000..ce879470 --- /dev/null +++ b/zlt-business/warehouse-center/pom.xml @@ -0,0 +1,185 @@ + + + + zlt-business + com.zlt + 4.5.0 + + 4.0.0 + warehouse-center + 资产中心 + + + + + com.zlt + zlt-config + + + + + com.zlt + zlt-common-spring-boot-starter + + + + com.zlt + zlt-db-spring-boot-starter + + + + + com.zlt + zlt-redis-spring-boot-starter + + + + + com.zlt + zlt-ribbon-spring-boot-starter + + + + + com.zlt + zlt-sentinel-spring-boot-starter + + + + + com.zlt + zlt-swagger2-spring-boot-starter + + + + + com.zlt + search-client + + + + org.springframework.boot + spring-boot-starter-web + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + org.springframework + spring-context-support + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + mysql + mysql-connector-java + + + + + io.micrometer + micrometer-registry-prometheus + + + + + org.springframework.social + spring-social-security + + + + + com.baomidou + mybatis-plus-generator + + + + + com.baomidou + dynamic-datasource-spring-boot-starter + + + + + org.freemarker + freemarker + + + + + com.github.pagehelper + pagehelper-spring-boot-starter + + + org.mybatis + mybatis + + + org.mybatis + mybatis-spring + + + + + org.hibernate + hibernate-validator + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + com.spotify + docker-maven-plugin + + ${docker.image.prefix}/${project.artifactId} + + ${project.version} + latest + + true + ${docker.baseImage} + ${docker.volumes} + + ${docker.java.opts} + + ["sh","-c","java $JAVA_OPTS ${docker.java.security.egd} -jar + /${project.build.finalName}.jar"] + + + + / + ${project.build.directory} + ${project.build.finalName}.jar + + + + + + ${project.artifactId} + + \ No newline at end of file diff --git a/zlt-business/warehouse-center/src/main/java/com/central/CodeGenerator.java b/zlt-business/warehouse-center/src/main/java/com/central/CodeGenerator.java new file mode 100644 index 00000000..924cde51 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/CodeGenerator.java @@ -0,0 +1,160 @@ +package com.central; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException; +import com.baomidou.mybatisplus.core.toolkit.StringPool; +import com.baomidou.mybatisplus.generator.AutoGenerator; +import com.baomidou.mybatisplus.generator.InjectionConfig; +import com.baomidou.mybatisplus.generator.config.*; +import com.baomidou.mybatisplus.generator.config.po.TableInfo; +import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; +import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; + +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +/** + * @author 杨彬鑫 + */ +public class CodeGenerator { + + ////////////////////////////////////////////////////////////////////配置项//////////////////////////////////////////////////////////////////// + /** + * 作者 + */ + private static final String AUTHOR = "杨彬鑫"; + /** + * 子项目路径 + */ + private static final String SON_PATH = "/zlt-business/warehouse-center"; + /** + * 父包名 + */ + private static final String PARENT_PACK = "com.central"; + + ////////////////////////////////////////////////////////////////////配置项//////////////////////////////////////////////////////////////////// + + /** + *

    + * 读取控制台内容 + *

    + */ + public static String scanner(String tip) { + Scanner scanner = new Scanner(System.in); + StringBuilder help = new StringBuilder(); + help.append("请输入" + tip + ":"); + System.out.println(help.toString()); + if (scanner.hasNext()) { + String ipt = scanner.next(); + if (!StrUtil.hasEmpty(ipt)) { + return ipt; + } + } + throw new MybatisPlusException("请输入正确的" + tip + "!"); + } + + public static void main(String[] args) { + // 代码生成器 + AutoGenerator mpg = new AutoGenerator(); + + // 全局配置 + GlobalConfig gc = new GlobalConfig(); + //项目根路径 + String projectPath = System.getProperty("user.dir"); + + gc.setOutputDir(projectPath + SON_PATH + "/src/main/java"); + gc.setAuthor(AUTHOR); + gc.setOpen(false); + //实体属性 Swagger2 注解 + gc.setSwagger2(true); + mpg.setGlobalConfig(gc); + + ////////////////////////////////////////////////////////////////////配置项//////////////////////////////////////////////////////////////////// + // 数据源配置 + DataSourceConfig dsc = new DataSourceConfig(); + + + dsc.setUrl("jdbc:mysql://39.106.15.230:3306/warehouse-center?useUnicode=true&characterEncoding=utf8&useSSL=false"); + dsc.setSchemaName("public"); + dsc.setDriverName("com.mysql.jdbc.Driver"); + dsc.setUsername("root"); + dsc.setPassword("root"); + mpg.setDataSource(dsc); + + // 包配置 + PackageConfig pc = new PackageConfig(); + pc.setModuleName(scanner("模块名")); + pc.setParent(PARENT_PACK); + mpg.setPackageInfo(pc); + + // 自定义配置 + InjectionConfig cfg = new InjectionConfig() { + @Override + public void initMap() { + // to do nothing + } + }; + + // 如果模板引擎是 freemarker + String templatePath = "/templates/mapper.xml.ftl"; + // 如果模板引擎是 velocity + // String templatePath = "/templates/mapper.xml.vm"; + + // 自定义输出配置 + List focList = new ArrayList<>(); + // 自定义配置会被优先输出 + focList.add(new FileOutConfig(templatePath) { + @Override + public String outputFile(TableInfo tableInfo) { + // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!! + return projectPath + SON_PATH + "/src/main/resources/mapper/" + pc.getModuleName() + + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML; + } + }); + /* + cfg.setFileCreate(new IFileCreate() { + @Override + public boolean isCreate(ConfigBuilder configBuilder, FileType fileType, String filePath) { + // 判断自定义文件夹是否需要创建 + checkDir("调用默认方法创建的目录"); + return false; + } + }); + */ + cfg.setFileOutConfigList(focList); + mpg.setCfg(cfg); + + // 配置模板 + TemplateConfig templateConfig = new TemplateConfig(); + + // 配置自定义输出模板 + //指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别 + // templateConfig.setEntity("templates/entity2.java"); + // templateConfig.setService(); + // templateConfig.setController(); + + templateConfig.setXml(null); + mpg.setTemplate(templateConfig); + + // 策略配置 + StrategyConfig strategy = new StrategyConfig(); + strategy.setNaming(NamingStrategy.underline_to_camel); + strategy.setColumnNaming(NamingStrategy.underline_to_camel); + //strategy.setSuperEntityClass("com.baomidou.ant.common.BaseEntity"); + strategy.setEntityLombokModel(true); + strategy.setRestControllerStyle(true); + + + // 公共父类 + //strategy.setSuperControllerClass("com.baomidou.ant.common.BaseController"); + // 写于父类中的公共字段 + //strategy.setSuperEntityColumns("id"); + strategy.setInclude(scanner("表名,多个英文逗号分割").split(",")); + strategy.setControllerMappingHyphenStyle(true); + strategy.setTablePrefix(pc.getModuleName() + "_"); + mpg.setStrategy(strategy); + mpg.setTemplateEngine(new FreemarkerTemplateEngine()); + mpg.execute(); + } +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/WarehouseApp.java b/zlt-business/warehouse-center/src/main/java/com/central/WarehouseApp.java new file mode 100644 index 00000000..59884ba1 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/WarehouseApp.java @@ -0,0 +1,29 @@ +package com.central; + +import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; +import com.central.common.ribbon.annotation.EnableBaseFeignInterceptor; +import com.central.search.annotation.EnableSearchClient; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * @author 作者 owen E-mail: 624191343@qq.com + */ +@EnableCaching +@EnableDiscoveryClient +@EnableTransactionManagement +@EnableFeignClients +@EnableBaseFeignInterceptor +//禁用数据源自动配置 +@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class) +@MapperScan(basePackages = {"com.central.*.mapper"}, sqlSessionFactoryRef = "sqlSessionFactory" ) +public class WarehouseApp { + public static void main(String[] args) { + SpringApplication.run(WarehouseApp.class, args); + } +} diff --git a/zlt-business/warehouse-center/src/main/resources/application.yml b/zlt-business/warehouse-center/src/main/resources/application.yml new file mode 100644 index 00000000..467a8984 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/resources/application.yml @@ -0,0 +1,45 @@ +spring: + datasource: + dynamic: + primary: mysql + datasource: + mysql: + url: jdbc:mysql://${zlt.datasource.ip}:3306/warehouse-center?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai + username: ${zlt.datasource.username} + password: ${zlt.datasource.password} + driver-class-name: com.mysql.cj.jdbc.Driver + +mybatis-plus: + mapper-locations: classpath:/mapper/*/*Mapper.xml + global-config: + db-config: + id-type: auto + +zlt: + swagger: + enabled: true + title: 资产中心 + description: 资产中心接口文档 + version: 1.0 + base-package: com.central.warehouse.controller + cache-manager: + configs: + - key: menu + second: 300 + - key: user + second: 1800 + #多租户配置 + tenant: + enable: true + ignoreTables: + ignoreSqls: + + #审计日志 + audit-log: + enabled: true + log-type: db + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + jdbc-url: jdbc:mysql://${zlt.datasource.ip}:3306/logger-center?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai + username: ${zlt.datasource.username} + password: ${zlt.datasource.password} \ No newline at end of file diff --git a/zlt-business/warehouse-center/src/main/resources/bootstrap.yml b/zlt-business/warehouse-center/src/main/resources/bootstrap.yml new file mode 100644 index 00000000..bca68c4e --- /dev/null +++ b/zlt-business/warehouse-center/src/main/resources/bootstrap.yml @@ -0,0 +1,11 @@ +server: + port: 7001 + +spring: + application: + name: warehouse-center + cloud: + nacos: +# discovery: +# ip: 39.106.15.230 +# port: 7001 \ No newline at end of file diff --git a/zlt-commons/zlt-common-core/src/main/java/com/central/common/model/Result.java b/zlt-commons/zlt-common-core/src/main/java/com/central/common/model/Result.java index 13682bda..52095148 100644 --- a/zlt-commons/zlt-common-core/src/main/java/com/central/common/model/Result.java +++ b/zlt-commons/zlt-common-core/src/main/java/com/central/common/model/Result.java @@ -41,4 +41,21 @@ public class Result implements Serializable { public static Result failed(T model, String msg) { return of(model, CodeEnum.ERROR.getCode(), msg); } + + + public static Result ToResult(Boolean flag) { + if (flag) { + return Result.succeed("操作成功"); + } else { + return Result.failed("操作失败"); + } + } + + public static Result ToResult(Integer rows) { + if (rows > 0) { + return Result.succeed("操作成功"); + } else { + return Result.failed("操作失败"); + } + } } diff --git a/zlt-commons/zlt-common-core/src/main/java/com/central/common/model/SysRole.java b/zlt-commons/zlt-common-core/src/main/java/com/central/common/model/SysRole.java index 45f050bb..95c7936c 100644 --- a/zlt-commons/zlt-common-core/src/main/java/com/central/common/model/SysRole.java +++ b/zlt-commons/zlt-common-core/src/main/java/com/central/common/model/SysRole.java @@ -18,4 +18,8 @@ public class SysRole extends SuperEntity { private String name; @TableField(exist = false) private Long userId; + /** + * 备注 + */ + private String comments; } diff --git a/zlt-gateway/sc-gateway/src/main/resources/application.yml b/zlt-gateway/sc-gateway/src/main/resources/application.yml index f7f69bf3..6a94d922 100644 --- a/zlt-gateway/sc-gateway/src/main/resources/application.yml +++ b/zlt-gateway/sc-gateway/src/main/resources/application.yml @@ -73,6 +73,12 @@ spring: - Path=/api-search/** filters: - StripPrefix=1 + - id: warehouse + uri: lb://warehouse-center + predicates: + - Path=/api-warehouse/** + filters: + - StripPrefix=1 # sentinel: # datasource.ds1.nacos: # server-addr: ${spring.cloud.nacos.server-addr} diff --git a/zlt-gateway/sc-gateway/src/main/resources/bootstrap.yml b/zlt-gateway/sc-gateway/src/main/resources/bootstrap.yml index a41f0b3d..353d6773 100644 --- a/zlt-gateway/sc-gateway/src/main/resources/bootstrap.yml +++ b/zlt-gateway/sc-gateway/src/main/resources/bootstrap.yml @@ -3,4 +3,9 @@ server: spring: application: - name: sc-gateway \ No newline at end of file + name: sc-gateway + cloud: + nacos: + discovery: + ip: 39.106.15.230 + port: 9900 \ No newline at end of file diff --git a/zlt-uaa/src/main/java/com/central/oauth/controller/ClientController.java b/zlt-uaa/src/main/java/com/central/oauth/controller/ClientController.java index 4dd8097a..8da143e7 100644 --- a/zlt-uaa/src/main/java/com/central/oauth/controller/ClientController.java +++ b/zlt-uaa/src/main/java/com/central/oauth/controller/ClientController.java @@ -9,8 +9,10 @@ import com.google.common.collect.Maps; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; +import java.util.Arrays; import java.util.List; import java.util.Map; @@ -54,6 +56,25 @@ public class ClientController { clientService.delClient(id); } + /** + * 批量删除应用 + * + * @param map + */ + @ApiOperation(value = "批量删除应用") + @DeleteMapping(value = "/batch") + public Result bathDelete(@RequestBody Map map) { + if (map == null) { + return Result.of(null, 2, "参数不能为空"); + } + String ids = map.get("ids"); + if (StringUtils.isEmpty(ids)) { + return Result.of(null, 2, "参数不能为空"); + } + String[] idsArray = ids.split(","); + return Result.ToResult(clientService.removeByIds(Arrays.asList(idsArray))); + } + @PostMapping("/saveOrUpdate") @ApiOperation(value = "保存或者修改应用") public Result saveOrUpdate(@RequestBody ClientDto clientDto) throws Exception { diff --git a/zlt-uaa/src/main/resources/bootstrap.yml b/zlt-uaa/src/main/resources/bootstrap.yml index a21c53e0..77820f6c 100644 --- a/zlt-uaa/src/main/resources/bootstrap.yml +++ b/zlt-uaa/src/main/resources/bootstrap.yml @@ -8,6 +8,11 @@ server: spring: application: name: uaa-server + cloud: + nacos: + discovery: + ip: 39.106.15.230 + port: 8000 encrypt: key-store: -- Gitee From eda7d4b1beb74bf300e60d3f261846a1bde8a2b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=BD=AC=E9=91=AB?= <18235529318@163.com> Date: Fri, 6 Aug 2021 08:44:09 +0800 Subject: [PATCH 07/34] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DailyFeedController.java | 37 ++++++ .../controller/DailyFishChangeController.java | 20 +++ .../controller/DailyFishController.java | 29 +++++ .../DailyFishEquipmentController.java | 26 ++++ .../controller/DailyFishShelfController.java | 26 ++++ .../controller/DailyFishTankController.java | 26 ++++ .../controller/DailyPillController.java | 26 ++++ .../controller/DailyTreatmentController.java | 26 ++++ .../DailyWaterChangeController.java | 26 ++++ .../warehouse/entity/po/DailyFeed.java | 78 ++++++++++++ .../warehouse/entity/po/DailyFeedPlan.java | 71 +++++++++++ .../warehouse/entity/po/DailyFish.java | 78 ++++++++++++ .../warehouse/entity/po/DailyFishChange.java | 59 +++++++++ .../entity/po/DailyFishEquipment.java | 75 +++++++++++ .../warehouse/entity/po/DailyFishShelf.java | 56 +++++++++ .../warehouse/entity/po/DailyFishTank.java | 72 +++++++++++ .../warehouse/entity/po/DailyFishType.java | 62 ++++++++++ .../warehouse/entity/po/DailyPill.java | 68 ++++++++++ .../warehouse/entity/po/DailyTreatment.java | 68 ++++++++++ .../warehouse/entity/po/DailyWaterChange.java | 56 +++++++++ .../warehouse/mapper/DailyFeedMapper.java | 16 +++ .../warehouse/mapper/DailyFeedPlanMapper.java | 16 +++ .../mapper/DailyFishChangeMapper.java | 16 +++ .../mapper/DailyFishEquipmentMapper.java | 16 +++ .../warehouse/mapper/DailyFishMapper.java | 16 +++ .../mapper/DailyFishShelfMapper.java | 16 +++ .../warehouse/mapper/DailyFishTankMapper.java | 16 +++ .../warehouse/mapper/DailyFishTypeMapper.java | 16 +++ .../warehouse/mapper/DailyPillMapper.java | 16 +++ .../mapper/DailyTreatmentMapper.java | 16 +++ .../mapper/DailyWaterChangeMapper.java | 16 +++ .../service/IDailyFeedPlanService.java | 16 +++ .../warehouse/service/IDailyFeedService.java | 16 +++ .../service/IDailyFishChangeService.java | 16 +++ .../service/IDailyFishEquipmentService.java | 16 +++ .../warehouse/service/IDailyFishService.java | 16 +++ .../service/IDailyFishShelfService.java | 16 +++ .../service/IDailyFishTankService.java | 16 +++ .../service/IDailyFishTypeService.java | 16 +++ .../warehouse/service/IDailyPillService.java | 16 +++ .../service/IDailyTreatmentService.java | 16 +++ .../service/IDailyWaterChangeService.java | 16 +++ .../impl/DailyFeedPlanServiceImpl.java | 20 +++ .../service/impl/DailyFeedServiceImpl.java | 20 +++ .../impl/DailyFishChangeServiceImpl.java | 20 +++ .../impl/DailyFishEquipmentServiceImpl.java | 20 +++ .../service/impl/DailyFishServiceImpl.java | 20 +++ .../impl/DailyFishShelfServiceImpl.java | 20 +++ .../impl/DailyFishTankServiceImpl.java | 20 +++ .../impl/DailyFishTypeServiceImpl.java | 20 +++ .../service/impl/DailyPillServiceImpl.java | 20 +++ .../impl/DailyTreatmentServiceImpl.java | 20 +++ .../impl/DailyWaterChangeServiceImpl.java | 20 +++ .../mapper/warehouse/DailyFeedMapper.xml | 5 + .../mapper/warehouse/DailyFeedPlanMapper.xml | 5 + .../warehouse/DailyFishChangeMapper.xml | 5 + .../warehouse/DailyFishEquipmentMapper.xml | 5 + .../mapper/warehouse/DailyFishMapper.xml | 5 + .../mapper/warehouse/DailyFishShelfMapper.xml | 5 + .../mapper/warehouse/DailyFishTankMapper.xml | 5 + .../mapper/warehouse/DailyFishTypeMapper.xml | 5 + .../mapper/warehouse/DailyPillMapper.xml | 5 + .../mapper/warehouse/DailyTreatmentMapper.xml | 5 + .../warehouse/DailyWaterChangeMapper.xml | 5 + zlt-gateway/sc-gateway/deploy-dev.sh | 115 +++++++++++++++++ zlt-gateway/sc-gateway/deploy-prod.sh | 116 ++++++++++++++++++ 66 files changed, 1843 insertions(+) create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyFeedController.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyFishChangeController.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyFishController.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyFishEquipmentController.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyFishShelfController.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyFishTankController.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyPillController.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyTreatmentController.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyWaterChangeController.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFeed.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFeedPlan.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFish.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFishChange.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFishEquipment.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFishShelf.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFishTank.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFishType.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyPill.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyTreatment.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyWaterChange.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFeedMapper.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFeedPlanMapper.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFishChangeMapper.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFishEquipmentMapper.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFishMapper.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFishShelfMapper.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFishTankMapper.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFishTypeMapper.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyPillMapper.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyTreatmentMapper.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyWaterChangeMapper.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFeedPlanService.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFeedService.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFishChangeService.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFishEquipmentService.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFishService.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFishShelfService.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFishTankService.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFishTypeService.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyPillService.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyTreatmentService.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyWaterChangeService.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFeedPlanServiceImpl.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFeedServiceImpl.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFishChangeServiceImpl.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFishEquipmentServiceImpl.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFishServiceImpl.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFishShelfServiceImpl.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFishTankServiceImpl.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFishTypeServiceImpl.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyPillServiceImpl.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyTreatmentServiceImpl.java create mode 100644 zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyWaterChangeServiceImpl.java create mode 100644 zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFeedMapper.xml create mode 100644 zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFeedPlanMapper.xml create mode 100644 zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFishChangeMapper.xml create mode 100644 zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFishEquipmentMapper.xml create mode 100644 zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFishMapper.xml create mode 100644 zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFishShelfMapper.xml create mode 100644 zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFishTankMapper.xml create mode 100644 zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFishTypeMapper.xml create mode 100644 zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyPillMapper.xml create mode 100644 zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyTreatmentMapper.xml create mode 100644 zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyWaterChangeMapper.xml create mode 100644 zlt-gateway/sc-gateway/deploy-dev.sh create mode 100644 zlt-gateway/sc-gateway/deploy-prod.sh diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyFeedController.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyFeedController.java new file mode 100644 index 00000000..9e31dca5 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyFeedController.java @@ -0,0 +1,37 @@ +package com.central.warehouse.controller; + + +import com.central.common.model.Result; +import com.central.warehouse.service.IDailyFeedPlanService; +import com.central.warehouse.service.IDailyFeedService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

    + * 鱼食 前端控制器 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@RestController +@RequestMapping("/feed") +@RequiredArgsConstructor(onConstructor_ = @Autowired) +@Api(value = "鱼食控制器", tags = {"鱼食管理"}) +public class DailyFeedController { + + private IDailyFeedService feedService; + + private IDailyFeedPlanService feedPlanService; + + @GetMapping("/") + public Result list(){ + return Result.succeed(feedService.getById("111")); + } +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyFishChangeController.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyFishChangeController.java new file mode 100644 index 00000000..00959ff4 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyFishChangeController.java @@ -0,0 +1,20 @@ +package com.central.warehouse.controller; + + +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

    + * 增减量 前端控制器 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@RestController +@RequestMapping("/fish-change") +public class DailyFishChangeController { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyFishController.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyFishController.java new file mode 100644 index 00000000..cf58075d --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyFishController.java @@ -0,0 +1,29 @@ +package com.central.warehouse.controller; + + +import com.central.warehouse.service.IDailyFishService; +import com.central.warehouse.service.IDailyFishTypeService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

    + * 观赏鱼 前端控制器 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@RestController +@RequestMapping("/fish") +//@RequiredArgsConstructor(onConstructor_ = @Autowired) +@Api(value = "观赏鱼控制器", tags = {"观赏鱼管理"}) +public class DailyFishController { + private IDailyFishService fishService; + + private IDailyFishTypeService fishTypeService; +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyFishEquipmentController.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyFishEquipmentController.java new file mode 100644 index 00000000..529ca44d --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyFishEquipmentController.java @@ -0,0 +1,26 @@ +package com.central.warehouse.controller; + + +import com.central.warehouse.service.IDailyFishEquipmentService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

    + * 器材 前端控制器 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@RestController +@RequestMapping("/fish-equipment") +//@RequiredArgsConstructor(onConstructor_ = @Autowired) +@Api(value = "器材控制器", tags = {"器材管理"}) +public class DailyFishEquipmentController { + private IDailyFishEquipmentService equipmentService; +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyFishShelfController.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyFishShelfController.java new file mode 100644 index 00000000..6caccfa0 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyFishShelfController.java @@ -0,0 +1,26 @@ +package com.central.warehouse.controller; + + +import com.central.warehouse.service.IDailyFishShelfService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

    + * 鱼缸架子 前端控制器 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@RestController +@RequestMapping("/fish-shelf") +//@RequiredArgsConstructor(onConstructor_ = @Autowired) +@Api(value = "鱼缸架子控制器", tags = {"鱼缸架子管理"}) +public class DailyFishShelfController { + private IDailyFishShelfService fishShelfService; +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyFishTankController.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyFishTankController.java new file mode 100644 index 00000000..a2d4f7e0 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyFishTankController.java @@ -0,0 +1,26 @@ +package com.central.warehouse.controller; + + +import com.central.warehouse.service.IDailyFishTankService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

    + * 鱼缸 前端控制器 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@RestController +@RequestMapping("/fish-tank") +//@RequiredArgsConstructor(onConstructor_ = @Autowired) +@Api(value = "鱼缸控制器", tags = {"鱼缸管理"}) +public class DailyFishTankController { +private IDailyFishTankService tankService; +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyPillController.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyPillController.java new file mode 100644 index 00000000..081296d0 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyPillController.java @@ -0,0 +1,26 @@ +package com.central.warehouse.controller; + + +import com.central.warehouse.service.IDailyPillService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

    + * 药物 前端控制器 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@RestController +@RequestMapping("/pill") +//@RequiredArgsConstructor(onConstructor_ = @Autowired) +@Api(value = "药物控制器", tags = {"药物管理"}) +public class DailyPillController { + private IDailyPillService pillService; +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyTreatmentController.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyTreatmentController.java new file mode 100644 index 00000000..c21325d9 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyTreatmentController.java @@ -0,0 +1,26 @@ +package com.central.warehouse.controller; + + +import com.central.warehouse.service.IDailyTreatmentService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

    + * 治疗记录 前端控制器 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@RestController +@RequestMapping("/treatment") +//@RequiredArgsConstructor(onConstructor_ = @Autowired) +@Api(value = "治疗记录控制器", tags = {"治疗记录管理"}) +public class DailyTreatmentController { + private IDailyTreatmentService treatmentService; +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyWaterChangeController.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyWaterChangeController.java new file mode 100644 index 00000000..0728b81a --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/controller/DailyWaterChangeController.java @@ -0,0 +1,26 @@ +package com.central.warehouse.controller; + + +import com.central.warehouse.service.IDailyWaterChangeService; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

    + * 换水记录 前端控制器 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@RestController +@RequestMapping("/water/change") +//@RequiredArgsConstructor(onConstructor_ = @Autowired) +@Api(value = "换水记录控制器", tags = {"换水记录管理"}) +public class DailyWaterChangeController { + private IDailyWaterChangeService waterChangeService; +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFeed.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFeed.java new file mode 100644 index 00000000..42dd45e1 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFeed.java @@ -0,0 +1,78 @@ +package com.central.warehouse.entity.po; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

    + * 鱼食 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="DailyFeed对象", description="鱼食") +public class DailyFeed implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + @TableId + private String guidObj; + + @ApiModelProperty(value = "鱼食名称") + private String feedName; + + @ApiModelProperty(value = "蛋白含量") + private String proteinContent; + + @ApiModelProperty(value = "生产日期") + private LocalDateTime prodDate; + + @ApiModelProperty(value = "有效天数") + private Integer termOfValidity; + + @ApiModelProperty(value = "生产厂家") + private String prodFactory; + + @ApiModelProperty(value = "购买日期") + private LocalDateTime buyDate; + + @ApiModelProperty(value = "购买方式") + private String buyMethod; + + @ApiModelProperty(value = "花费金额") + private BigDecimal castMoney; + + @ApiModelProperty(value = "买家联系方式") + private String buyPhone; + + @ApiModelProperty(value = "总质量") + private String totalMass; + + @ApiModelProperty(value = "创建者") + private String createBy; + + @ApiModelProperty(value = "创建时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "更新者") + private String updateBy; + + @ApiModelProperty(value = "更新时间") + private LocalDateTime updateTime; + + @ApiModelProperty(value = "备注") + private String remark; + + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFeedPlan.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFeedPlan.java new file mode 100644 index 00000000..75206684 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFeedPlan.java @@ -0,0 +1,71 @@ +package com.central.warehouse.entity.po; + +import java.time.LocalDateTime; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

    + * 喂食计划 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="DailyFeedPlan对象", description="喂食计划") +public class DailyFeedPlan implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + private String guidObj; + + @ApiModelProperty(value = "投喂日期") + private LocalDateTime feedDate; + + @ApiModelProperty(value = "投喂时间") + private String feedTime; + + @ApiModelProperty(value = "投喂方式") + private String feedMethod; + + @ApiModelProperty(value = "投喂饲料") + private String feedType; + + @ApiModelProperty(value = "架子编号") + private String shelfNumber; + + @ApiModelProperty(value = "鱼缸编号") + private String tankNumber; + + @ApiModelProperty(value = "标记异常") + private Integer signUnusual; + + @ApiModelProperty(value = "是否打氧") + private Integer isOxygen; + + @ApiModelProperty(value = "是否打卡") + private Integer isClock; + + @ApiModelProperty(value = "创建者") + private String createBy; + + @ApiModelProperty(value = "创建时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "更新者") + private String updateBy; + + @ApiModelProperty(value = "更新时间") + private LocalDateTime updateTime; + + @ApiModelProperty(value = "备注") + private String remark; + + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFish.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFish.java new file mode 100644 index 00000000..7a898c3a --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFish.java @@ -0,0 +1,78 @@ +package com.central.warehouse.entity.po; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

    + * 观赏鱼 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="DailyFish对象", description="观赏鱼") +public class DailyFish implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + private String guidObj; + + @ApiModelProperty(value = "观赏鱼名称") + private String fishName; + + @ApiModelProperty(value = "观赏鱼类型") + private String fishType; + + @ApiModelProperty(value = "观赏鱼尺寸") + private String fishSize; + + @ApiModelProperty(value = "饲养天数") + private Integer fishDays; + + @ApiModelProperty(value = "观赏鱼条数") + private Integer fishCount; + + @ApiModelProperty(value = "购买日期") + private LocalDateTime buyDate; + + @ApiModelProperty(value = "购买方式") + private String buyMethod; + + @ApiModelProperty(value = "花费金额") + private BigDecimal castMoney; + + @ApiModelProperty(value = "买家联系方式") + private String buyPhone; + + @ApiModelProperty(value = "架子编号") + private String shelfNumber; + + @ApiModelProperty(value = "鱼缸编号") + private String tankNumber; + + @ApiModelProperty(value = "创建者") + private String createBy; + + @ApiModelProperty(value = "创建时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "更新者") + private String updateBy; + + @ApiModelProperty(value = "更新时间") + private LocalDateTime updateTime; + + @ApiModelProperty(value = "备注") + private String remark; + + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFishChange.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFishChange.java new file mode 100644 index 00000000..c79812cd --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFishChange.java @@ -0,0 +1,59 @@ +package com.central.warehouse.entity.po; + +import java.time.LocalDateTime; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

    + * 增减量 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="DailyFishChange对象", description="增减量") +public class DailyFishChange implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + private String guidObj; + + @ApiModelProperty(value = "架子编号") + private String shelfNumber; + + @ApiModelProperty(value = "鱼缸编号") + private String tankNumber; + + @ApiModelProperty(value = "观赏鱼编号") + private String fishId; + + @ApiModelProperty(value = "增加减少") + private Integer changeType; + + @ApiModelProperty(value = "对应数量") + private Integer changeCount; + + @ApiModelProperty(value = "创建者") + private String createBy; + + @ApiModelProperty(value = "创建时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "更新者") + private String updateBy; + + @ApiModelProperty(value = "更新时间") + private LocalDateTime updateTime; + + @ApiModelProperty(value = "备注") + private String remark; + + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFishEquipment.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFishEquipment.java new file mode 100644 index 00000000..646f74f3 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFishEquipment.java @@ -0,0 +1,75 @@ +package com.central.warehouse.entity.po; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

    + * 器材 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="DailyFishEquipment对象", description="器材") +public class DailyFishEquipment implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + private String guidObj; + + @ApiModelProperty(value = "器材名称") + private String equipName; + + @ApiModelProperty(value = "器材类型") + private String equipType; + + @ApiModelProperty(value = "购买日期") + private LocalDateTime buyDate; + + @ApiModelProperty(value = "购买方式") + private String buyMethod; + + @ApiModelProperty(value = "花费金额") + private BigDecimal castMoney; + + @ApiModelProperty(value = "买家联系方式") + private String buyPhone; + + @ApiModelProperty(value = "架子编号") + private String shelfNumber; + + @ApiModelProperty(value = "鱼缸编号") + private String tankNumber; + + @ApiModelProperty(value = "功率") + private String equipPower; + + @ApiModelProperty(value = "用途") + private String equipUse; + + @ApiModelProperty(value = "创建者") + private String createBy; + + @ApiModelProperty(value = "创建时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "更新者") + private String updateBy; + + @ApiModelProperty(value = "更新时间") + private LocalDateTime updateTime; + + @ApiModelProperty(value = "备注") + private String remark; + + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFishShelf.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFishShelf.java new file mode 100644 index 00000000..4ba2f44a --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFishShelf.java @@ -0,0 +1,56 @@ +package com.central.warehouse.entity.po; + +import java.time.LocalDateTime; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

    + * 鱼缸架子 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="DailyFishShelf对象", description="鱼缸架子") +public class DailyFishShelf implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + private String guidObj; + + @ApiModelProperty(value = "架子编号") + private String shelfNumber; + + @ApiModelProperty(value = "架子层数") + private Integer shelfLayers; + + @ApiModelProperty(value = "架子材质") + private String shelfMaterial; + + @ApiModelProperty(value = "架子尺寸") + private String shelfSize; + + @ApiModelProperty(value = "创建者") + private String createBy; + + @ApiModelProperty(value = "创建时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "更新者") + private String updateBy; + + @ApiModelProperty(value = "更新时间") + private LocalDateTime updateTime; + + @ApiModelProperty(value = "备注") + private String remark; + + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFishTank.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFishTank.java new file mode 100644 index 00000000..7570f6d3 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFishTank.java @@ -0,0 +1,72 @@ +package com.central.warehouse.entity.po; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

    + * 鱼缸 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="DailyFishTank对象", description="鱼缸") +public class DailyFishTank implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + private String guidObj; + + @ApiModelProperty(value = "鱼缸编号") + private String tankNumber; + + @ApiModelProperty(value = "架子编号") + private String shelfNumber; + + @ApiModelProperty(value = "所在位置") + private String shelfLocation; + + @ApiModelProperty(value = "鱼缸尺寸") + private String tankSize; + + @ApiModelProperty(value = "鱼缸厚度") + private String tankLand; + + @ApiModelProperty(value = "购买日期") + private LocalDateTime buyDate; + + @ApiModelProperty(value = "购买方式") + private String buyMethod; + + @ApiModelProperty(value = "花费金额") + private BigDecimal castMoney; + + @ApiModelProperty(value = "买家联系方式") + private String buyPhone; + + @ApiModelProperty(value = "创建者") + private String createBy; + + @ApiModelProperty(value = "创建时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "更新者") + private String updateBy; + + @ApiModelProperty(value = "更新时间") + private LocalDateTime updateTime; + + @ApiModelProperty(value = "备注") + private String remark; + + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFishType.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFishType.java new file mode 100644 index 00000000..d27b59a9 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyFishType.java @@ -0,0 +1,62 @@ +package com.central.warehouse.entity.po; + +import java.time.LocalDateTime; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

    + * 观赏鱼类型 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="DailyFishType对象", description="观赏鱼类型") +public class DailyFishType implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + private String guidObj; + + @ApiModelProperty(value = "类型") + private String fishType; + + @ApiModelProperty(value = "类型名称") + private String fishTypeName; + + @ApiModelProperty(value = "繁殖方式") + private String reproduceType; + + @ApiModelProperty(value = "繁殖周期") + private String reproduceCycle; + + @ApiModelProperty(value = "水温") + private String waterTemperature; + + @ApiModelProperty(value = "易发疾病") + private String easyHappenDisease; + + @ApiModelProperty(value = "创建者") + private String createBy; + + @ApiModelProperty(value = "创建时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "更新者") + private String updateBy; + + @ApiModelProperty(value = "更新时间") + private LocalDateTime updateTime; + + @ApiModelProperty(value = "备注") + private String remark; + + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyPill.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyPill.java new file mode 100644 index 00000000..5a236504 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyPill.java @@ -0,0 +1,68 @@ +package com.central.warehouse.entity.po; + +import java.time.LocalDateTime; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

    + * 药物 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="DailyPill对象", description="药物") +public class DailyPill implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + private String guidObj; + + @ApiModelProperty(value = "药物名称") + private String pillName; + + @ApiModelProperty(value = "使用剂量") + private String pillDosage; + + @ApiModelProperty(value = "总含量") + private String totalContent; + + @ApiModelProperty(value = "药物数量") + private Integer pillCount; + + @ApiModelProperty(value = "数量单位") + private String pillCountUnit; + + @ApiModelProperty(value = "生产日期") + private LocalDateTime prodDate; + + @ApiModelProperty(value = "有效天数") + private Integer termOfValidity; + + @ApiModelProperty(value = "生产厂家") + private String prodFactory; + + @ApiModelProperty(value = "创建者") + private String createBy; + + @ApiModelProperty(value = "创建时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "更新者") + private String updateBy; + + @ApiModelProperty(value = "更新时间") + private LocalDateTime updateTime; + + @ApiModelProperty(value = "备注") + private String remark; + + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyTreatment.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyTreatment.java new file mode 100644 index 00000000..43ab78c3 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyTreatment.java @@ -0,0 +1,68 @@ +package com.central.warehouse.entity.po; + +import java.time.LocalDateTime; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

    + * 治疗记录 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="DailyTreatment对象", description="治疗记录") +public class DailyTreatment implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + private String guidObj; + + @ApiModelProperty(value = "架子编号") + private String shelfNumber; + + @ApiModelProperty(value = "鱼缸编号") + private String tankNumber; + + @ApiModelProperty(value = "治疗方案") + private String treatmentPlan; + + @ApiModelProperty(value = "开始时间") + private LocalDateTime startTime; + + @ApiModelProperty(value = "治疗时长") + private String treatmentDuration; + + @ApiModelProperty(value = "时长单位") + private String durationUnit; + + @ApiModelProperty(value = "紧急联系方式") + private String urgentPhone; + + @ApiModelProperty(value = "治疗结束") + private Integer isTreatmentEnd; + + @ApiModelProperty(value = "创建者") + private String createBy; + + @ApiModelProperty(value = "创建时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "更新者") + private String updateBy; + + @ApiModelProperty(value = "更新时间") + private LocalDateTime updateTime; + + @ApiModelProperty(value = "备注") + private String remark; + + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyWaterChange.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyWaterChange.java new file mode 100644 index 00000000..e42ff7f8 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/entity/po/DailyWaterChange.java @@ -0,0 +1,56 @@ +package com.central.warehouse.entity.po; + +import java.time.LocalDateTime; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

    + * 换水记录 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="DailyWaterChange对象", description="换水记录") +public class DailyWaterChange implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + private String guidObj; + + @ApiModelProperty(value = "换水日期") + private LocalDateTime waterChangeDate; + + @ApiModelProperty(value = "换水量") + private String waterChangeRate; + + @ApiModelProperty(value = "架子编号") + private String shelfNumber; + + @ApiModelProperty(value = "鱼缸编号") + private String tankNumber; + + @ApiModelProperty(value = "创建者") + private String createBy; + + @ApiModelProperty(value = "创建时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "更新者") + private String updateBy; + + @ApiModelProperty(value = "更新时间") + private LocalDateTime updateTime; + + @ApiModelProperty(value = "备注") + private String remark; + + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFeedMapper.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFeedMapper.java new file mode 100644 index 00000000..49580ec2 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFeedMapper.java @@ -0,0 +1,16 @@ +package com.central.warehouse.mapper; + +import com.central.warehouse.entity.po.DailyFeed; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

    + * 鱼食 Mapper 接口 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +public interface DailyFeedMapper extends BaseMapper { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFeedPlanMapper.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFeedPlanMapper.java new file mode 100644 index 00000000..e5551aa4 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFeedPlanMapper.java @@ -0,0 +1,16 @@ +package com.central.warehouse.mapper; + +import com.central.warehouse.entity.po.DailyFeedPlan; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

    + * 喂食计划 Mapper 接口 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +public interface DailyFeedPlanMapper extends BaseMapper { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFishChangeMapper.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFishChangeMapper.java new file mode 100644 index 00000000..e0a69a5e --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFishChangeMapper.java @@ -0,0 +1,16 @@ +package com.central.warehouse.mapper; + +import com.central.warehouse.entity.po.DailyFishChange; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

    + * 增减量 Mapper 接口 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +public interface DailyFishChangeMapper extends BaseMapper { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFishEquipmentMapper.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFishEquipmentMapper.java new file mode 100644 index 00000000..f76d9821 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFishEquipmentMapper.java @@ -0,0 +1,16 @@ +package com.central.warehouse.mapper; + +import com.central.warehouse.entity.po.DailyFishEquipment; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

    + * 器材 Mapper 接口 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +public interface DailyFishEquipmentMapper extends BaseMapper { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFishMapper.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFishMapper.java new file mode 100644 index 00000000..70f9bf7b --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFishMapper.java @@ -0,0 +1,16 @@ +package com.central.warehouse.mapper; + +import com.central.warehouse.entity.po.DailyFish; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

    + * 观赏鱼 Mapper 接口 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +public interface DailyFishMapper extends BaseMapper { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFishShelfMapper.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFishShelfMapper.java new file mode 100644 index 00000000..eeb3bec3 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFishShelfMapper.java @@ -0,0 +1,16 @@ +package com.central.warehouse.mapper; + +import com.central.warehouse.entity.po.DailyFishShelf; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

    + * 鱼缸架子 Mapper 接口 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +public interface DailyFishShelfMapper extends BaseMapper { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFishTankMapper.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFishTankMapper.java new file mode 100644 index 00000000..4ea0968f --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFishTankMapper.java @@ -0,0 +1,16 @@ +package com.central.warehouse.mapper; + +import com.central.warehouse.entity.po.DailyFishTank; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

    + * 鱼缸 Mapper 接口 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +public interface DailyFishTankMapper extends BaseMapper { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFishTypeMapper.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFishTypeMapper.java new file mode 100644 index 00000000..db2265f5 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyFishTypeMapper.java @@ -0,0 +1,16 @@ +package com.central.warehouse.mapper; + +import com.central.warehouse.entity.po.DailyFishType; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

    + * 观赏鱼类型 Mapper 接口 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +public interface DailyFishTypeMapper extends BaseMapper { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyPillMapper.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyPillMapper.java new file mode 100644 index 00000000..32b41eaa --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyPillMapper.java @@ -0,0 +1,16 @@ +package com.central.warehouse.mapper; + +import com.central.warehouse.entity.po.DailyPill; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

    + * 药物 Mapper 接口 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +public interface DailyPillMapper extends BaseMapper { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyTreatmentMapper.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyTreatmentMapper.java new file mode 100644 index 00000000..bdcccd3e --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyTreatmentMapper.java @@ -0,0 +1,16 @@ +package com.central.warehouse.mapper; + +import com.central.warehouse.entity.po.DailyTreatment; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

    + * 治疗记录 Mapper 接口 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +public interface DailyTreatmentMapper extends BaseMapper { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyWaterChangeMapper.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyWaterChangeMapper.java new file mode 100644 index 00000000..47d7f012 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/mapper/DailyWaterChangeMapper.java @@ -0,0 +1,16 @@ +package com.central.warehouse.mapper; + +import com.central.warehouse.entity.po.DailyWaterChange; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

    + * 换水记录 Mapper 接口 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +public interface DailyWaterChangeMapper extends BaseMapper { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFeedPlanService.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFeedPlanService.java new file mode 100644 index 00000000..79727d58 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFeedPlanService.java @@ -0,0 +1,16 @@ +package com.central.warehouse.service; + +import com.central.warehouse.entity.po.DailyFeedPlan; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

    + * 喂食计划 服务类 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +public interface IDailyFeedPlanService extends IService { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFeedService.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFeedService.java new file mode 100644 index 00000000..ae4c5acc --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFeedService.java @@ -0,0 +1,16 @@ +package com.central.warehouse.service; + +import com.central.warehouse.entity.po.DailyFeed; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

    + * 鱼食 服务类 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +public interface IDailyFeedService extends IService { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFishChangeService.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFishChangeService.java new file mode 100644 index 00000000..cc5ba77a --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFishChangeService.java @@ -0,0 +1,16 @@ +package com.central.warehouse.service; + +import com.central.warehouse.entity.po.DailyFishChange; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

    + * 增减量 服务类 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +public interface IDailyFishChangeService extends IService { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFishEquipmentService.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFishEquipmentService.java new file mode 100644 index 00000000..b3294946 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFishEquipmentService.java @@ -0,0 +1,16 @@ +package com.central.warehouse.service; + +import com.central.warehouse.entity.po.DailyFishEquipment; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

    + * 器材 服务类 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +public interface IDailyFishEquipmentService extends IService { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFishService.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFishService.java new file mode 100644 index 00000000..7e97e140 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFishService.java @@ -0,0 +1,16 @@ +package com.central.warehouse.service; + +import com.central.warehouse.entity.po.DailyFish; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

    + * 观赏鱼 服务类 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +public interface IDailyFishService extends IService { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFishShelfService.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFishShelfService.java new file mode 100644 index 00000000..68a6cc47 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFishShelfService.java @@ -0,0 +1,16 @@ +package com.central.warehouse.service; + +import com.central.warehouse.entity.po.DailyFishShelf; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

    + * 鱼缸架子 服务类 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +public interface IDailyFishShelfService extends IService { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFishTankService.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFishTankService.java new file mode 100644 index 00000000..09e5066f --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFishTankService.java @@ -0,0 +1,16 @@ +package com.central.warehouse.service; + +import com.central.warehouse.entity.po.DailyFishTank; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

    + * 鱼缸 服务类 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +public interface IDailyFishTankService extends IService { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFishTypeService.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFishTypeService.java new file mode 100644 index 00000000..8cc263d8 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyFishTypeService.java @@ -0,0 +1,16 @@ +package com.central.warehouse.service; + +import com.central.warehouse.entity.po.DailyFishType; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

    + * 观赏鱼类型 服务类 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +public interface IDailyFishTypeService extends IService { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyPillService.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyPillService.java new file mode 100644 index 00000000..a58903b8 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyPillService.java @@ -0,0 +1,16 @@ +package com.central.warehouse.service; + +import com.central.warehouse.entity.po.DailyPill; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

    + * 药物 服务类 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +public interface IDailyPillService extends IService { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyTreatmentService.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyTreatmentService.java new file mode 100644 index 00000000..b2b8e390 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyTreatmentService.java @@ -0,0 +1,16 @@ +package com.central.warehouse.service; + +import com.central.warehouse.entity.po.DailyTreatment; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

    + * 治疗记录 服务类 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +public interface IDailyTreatmentService extends IService { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyWaterChangeService.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyWaterChangeService.java new file mode 100644 index 00000000..489d6a8f --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/IDailyWaterChangeService.java @@ -0,0 +1,16 @@ +package com.central.warehouse.service; + +import com.central.warehouse.entity.po.DailyWaterChange; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

    + * 换水记录 服务类 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +public interface IDailyWaterChangeService extends IService { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFeedPlanServiceImpl.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFeedPlanServiceImpl.java new file mode 100644 index 00000000..614e03f3 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFeedPlanServiceImpl.java @@ -0,0 +1,20 @@ +package com.central.warehouse.service.impl; + +import com.central.warehouse.entity.po.DailyFeedPlan; +import com.central.warehouse.mapper.DailyFeedPlanMapper; +import com.central.warehouse.service.IDailyFeedPlanService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

    + * 喂食计划 服务实现类 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@Service +public class DailyFeedPlanServiceImpl extends ServiceImpl implements IDailyFeedPlanService { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFeedServiceImpl.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFeedServiceImpl.java new file mode 100644 index 00000000..87eaa596 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFeedServiceImpl.java @@ -0,0 +1,20 @@ +package com.central.warehouse.service.impl; + +import com.central.warehouse.entity.po.DailyFeed; +import com.central.warehouse.mapper.DailyFeedMapper; +import com.central.warehouse.service.IDailyFeedService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

    + * 鱼食 服务实现类 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@Service +public class DailyFeedServiceImpl extends ServiceImpl implements IDailyFeedService { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFishChangeServiceImpl.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFishChangeServiceImpl.java new file mode 100644 index 00000000..11109e8b --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFishChangeServiceImpl.java @@ -0,0 +1,20 @@ +package com.central.warehouse.service.impl; + +import com.central.warehouse.entity.po.DailyFishChange; +import com.central.warehouse.mapper.DailyFishChangeMapper; +import com.central.warehouse.service.IDailyFishChangeService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

    + * 增减量 服务实现类 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@Service +public class DailyFishChangeServiceImpl extends ServiceImpl implements IDailyFishChangeService { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFishEquipmentServiceImpl.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFishEquipmentServiceImpl.java new file mode 100644 index 00000000..fd574aa1 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFishEquipmentServiceImpl.java @@ -0,0 +1,20 @@ +package com.central.warehouse.service.impl; + +import com.central.warehouse.entity.po.DailyFishEquipment; +import com.central.warehouse.mapper.DailyFishEquipmentMapper; +import com.central.warehouse.service.IDailyFishEquipmentService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

    + * 器材 服务实现类 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@Service +public class DailyFishEquipmentServiceImpl extends ServiceImpl implements IDailyFishEquipmentService { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFishServiceImpl.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFishServiceImpl.java new file mode 100644 index 00000000..37cbe867 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFishServiceImpl.java @@ -0,0 +1,20 @@ +package com.central.warehouse.service.impl; + +import com.central.warehouse.entity.po.DailyFish; +import com.central.warehouse.mapper.DailyFishMapper; +import com.central.warehouse.service.IDailyFishService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

    + * 观赏鱼 服务实现类 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@Service +public class DailyFishServiceImpl extends ServiceImpl implements IDailyFishService { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFishShelfServiceImpl.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFishShelfServiceImpl.java new file mode 100644 index 00000000..25ccfba5 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFishShelfServiceImpl.java @@ -0,0 +1,20 @@ +package com.central.warehouse.service.impl; + +import com.central.warehouse.entity.po.DailyFishShelf; +import com.central.warehouse.mapper.DailyFishShelfMapper; +import com.central.warehouse.service.IDailyFishShelfService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

    + * 鱼缸架子 服务实现类 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@Service +public class DailyFishShelfServiceImpl extends ServiceImpl implements IDailyFishShelfService { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFishTankServiceImpl.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFishTankServiceImpl.java new file mode 100644 index 00000000..42699b1a --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFishTankServiceImpl.java @@ -0,0 +1,20 @@ +package com.central.warehouse.service.impl; + +import com.central.warehouse.entity.po.DailyFishTank; +import com.central.warehouse.mapper.DailyFishTankMapper; +import com.central.warehouse.service.IDailyFishTankService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

    + * 鱼缸 服务实现类 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@Service +public class DailyFishTankServiceImpl extends ServiceImpl implements IDailyFishTankService { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFishTypeServiceImpl.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFishTypeServiceImpl.java new file mode 100644 index 00000000..f0e61ae8 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyFishTypeServiceImpl.java @@ -0,0 +1,20 @@ +package com.central.warehouse.service.impl; + +import com.central.warehouse.entity.po.DailyFishType; +import com.central.warehouse.mapper.DailyFishTypeMapper; +import com.central.warehouse.service.IDailyFishTypeService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

    + * 观赏鱼类型 服务实现类 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@Service +public class DailyFishTypeServiceImpl extends ServiceImpl implements IDailyFishTypeService { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyPillServiceImpl.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyPillServiceImpl.java new file mode 100644 index 00000000..d83e9c0f --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyPillServiceImpl.java @@ -0,0 +1,20 @@ +package com.central.warehouse.service.impl; + +import com.central.warehouse.entity.po.DailyPill; +import com.central.warehouse.mapper.DailyPillMapper; +import com.central.warehouse.service.IDailyPillService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

    + * 药物 服务实现类 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@Service +public class DailyPillServiceImpl extends ServiceImpl implements IDailyPillService { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyTreatmentServiceImpl.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyTreatmentServiceImpl.java new file mode 100644 index 00000000..2c1730b6 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyTreatmentServiceImpl.java @@ -0,0 +1,20 @@ +package com.central.warehouse.service.impl; + +import com.central.warehouse.entity.po.DailyTreatment; +import com.central.warehouse.mapper.DailyTreatmentMapper; +import com.central.warehouse.service.IDailyTreatmentService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

    + * 治疗记录 服务实现类 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@Service +public class DailyTreatmentServiceImpl extends ServiceImpl implements IDailyTreatmentService { + +} diff --git a/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyWaterChangeServiceImpl.java b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyWaterChangeServiceImpl.java new file mode 100644 index 00000000..c59229d9 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/java/com/central/warehouse/service/impl/DailyWaterChangeServiceImpl.java @@ -0,0 +1,20 @@ +package com.central.warehouse.service.impl; + +import com.central.warehouse.entity.po.DailyWaterChange; +import com.central.warehouse.mapper.DailyWaterChangeMapper; +import com.central.warehouse.service.IDailyWaterChangeService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

    + * 换水记录 服务实现类 + *

    + * + * @author 杨彬鑫 + * @since 2021-08-05 + */ +@Service +public class DailyWaterChangeServiceImpl extends ServiceImpl implements IDailyWaterChangeService { + +} diff --git a/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFeedMapper.xml b/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFeedMapper.xml new file mode 100644 index 00000000..af14e702 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFeedMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFeedPlanMapper.xml b/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFeedPlanMapper.xml new file mode 100644 index 00000000..03deabe7 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFeedPlanMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFishChangeMapper.xml b/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFishChangeMapper.xml new file mode 100644 index 00000000..31835523 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFishChangeMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFishEquipmentMapper.xml b/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFishEquipmentMapper.xml new file mode 100644 index 00000000..ca9aa32b --- /dev/null +++ b/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFishEquipmentMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFishMapper.xml b/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFishMapper.xml new file mode 100644 index 00000000..0f8be786 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFishMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFishShelfMapper.xml b/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFishShelfMapper.xml new file mode 100644 index 00000000..f0d61278 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFishShelfMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFishTankMapper.xml b/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFishTankMapper.xml new file mode 100644 index 00000000..13ce1019 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFishTankMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFishTypeMapper.xml b/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFishTypeMapper.xml new file mode 100644 index 00000000..989269d2 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyFishTypeMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyPillMapper.xml b/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyPillMapper.xml new file mode 100644 index 00000000..22696e53 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyPillMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyTreatmentMapper.xml b/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyTreatmentMapper.xml new file mode 100644 index 00000000..6fe84a5d --- /dev/null +++ b/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyTreatmentMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyWaterChangeMapper.xml b/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyWaterChangeMapper.xml new file mode 100644 index 00000000..3afb2413 --- /dev/null +++ b/zlt-business/warehouse-center/src/main/resources/mapper/warehouse/DailyWaterChangeMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/zlt-gateway/sc-gateway/deploy-dev.sh b/zlt-gateway/sc-gateway/deploy-dev.sh new file mode 100644 index 00000000..70136531 --- /dev/null +++ b/zlt-gateway/sc-gateway/deploy-dev.sh @@ -0,0 +1,115 @@ +#!/bin/bash + +# 修改APP_NAME为云效上的应用名 +APP_NAME=sc-gateway + + +PROG_NAME=$0 +ACTION=$1 + +# 等待应用启动的时间 +APP_START_TIMEOUT=20 + + # 应用端口 +APP_PORT=7000 + + # 应用健康检查URL +HEALTH_CHECK_URL=http://127.0.0.1:${APP_PORT} + +# 从package.tgz中解压出来的jar包放到这个目录下 +APP_HOME=/usr/local/app/zlt-gateway/${APP_NAME} + +# jar包的名字 +JAR_NAME=${APP_HOME}/target/${APP_NAME}.jar + + #应用的启动日志 +JAVA_OUT=${APP_HOME}/logs/start.log + +# 创建出相关目录 +mkdir -p ${APP_HOME} +mkdir -p ${APP_HOME}/logs +usage() { + echo "Usage: $PROG_NAME {start|stop|restart}" + exit 2 +} + +health_check() { + exptime=0 + echo "checking ${HEALTH_CHECK_URL}" + while true + do + status_code=`/usr/bin/curl -L -o /dev/null --connect-timeout 5 -s -w %{http_code} ${HEALTH_CHECK_URL}` + if [ "$?" != "0" ]; then + echo -n -e "\rapplication not started" + else + echo "code is $status_code" + if [ "$status_code" == "200" ];then + break + fi + fi + sleep 1 + ((exptime++)) + + echo -e "\rWait app to pass health check: $exptime..." + + if [ $exptime -gt ${APP_START_TIMEOUT} ]; then + echo 'app start failed' + exit 1 + fi + done + echo "check ${HEALTH_CHECK_URL} success" +} +start_application() { + echo "开始启动jar包" + nohup java -Xms256m -Xmx256m -jar ${JAR_NAME} & + echo "jar执行路径:"${JAR_NAME} + echo "jar包已启动" +} + +stop_application() { + checkjavapid=`ps -ef | grep java | grep ${APP_NAME} | grep -v grep |grep -v 'deploy.sh'| awk '{print$2}'` + + if [[ ! $checkjavapid ]];then + echo -e "\rno java process" + return + fi + + echo "stop java process" + times=60 + for e in $(seq 60) + do + sleep 1 + COSTTIME=$(($times - $e )) + checkjavapid=`ps -ef | grep java | grep ${APP_NAME} | grep -v grep |grep -v 'deploy.sh'| awk '{print$2}'` + if [[ $checkjavapid ]];then + kill -9 $checkjavapid + echo -e "\r -- stopping java lasts `expr $COSTTIME` seconds." + else + echo -e "\rjava process has exited" + break; + fi + done + echo "" +} +start() { + start_application + health_check +} +stop() { + stop_application +} +case "$ACTION" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + *) + usage + ;; +esac \ No newline at end of file diff --git a/zlt-gateway/sc-gateway/deploy-prod.sh b/zlt-gateway/sc-gateway/deploy-prod.sh new file mode 100644 index 00000000..73e0bc63 --- /dev/null +++ b/zlt-gateway/sc-gateway/deploy-prod.sh @@ -0,0 +1,116 @@ +#!/bin/bash + +# 修改APP_NAME为云效上的应用名 +APP_NAME=sc-gateway + + +PROG_NAME=$0 +ACTION=$1 + +# 等待应用启动的时间 +APP_START_TIMEOUT=20 + + # 应用端口 +APP_PORT=7000 + + # 应用健康检查URL +HEALTH_CHECK_URL=http://127.0.0.1:${APP_PORT} + +# 从package.tgz中解压出来的jar包放到这个目录下 +APP_HOME=/usr/local/app/zlt-gateway/${APP_NAME} + +# jar包的名字 +JAR_NAME=${APP_HOME}/target/${APP_NAME}.jar + + #应用的启动日志 +JAVA_OUT=${APP_HOME}/logs/start.log + +# 创建出相关目录 +mkdir -p ${APP_HOME} +mkdir -p ${APP_HOME}/logs +usage() { + echo "Usage: $PROG_NAME {start|stop|restart}" + exit 2 +} + +health_check() { + exptime=0 + echo "checking ${HEALTH_CHECK_URL}" + while true + do + status_code=`/usr/bin/curl -L -o /dev/null --connect-timeout 5 -s -w %{http_code} ${HEALTH_CHECK_URL}` + if [ "$?" != "0" ]; then + echo -n -e "\rapplication not started" + else + echo "code is $status_code" + if [ "$status_code" == "200" ];then + break + fi + fi + sleep 1 + ((exptime++)) + + echo -e "\rWait app to pass health check: $exptime..." + + if [ $exptime -gt ${APP_START_TIMEOUT} ]; then + echo 'app start failed' + exit 1 + fi + done + echo "check ${HEALTH_CHECK_URL} success" +} +start_application() { + echo "开始启动jar包" + nohup java -Xms1024m -Xmx1024m -javaagent:/usr/local/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar -Dskywalking.trace.ignore_path=/actuator/** -Dskywalking.agent.service_name=网关微服务 -Dskywalking.collector.backend_service=192.168.109.131:11800 -jar ${JAR_NAME} & + #nohup java -Xms1024m -Xmx1024m -jar ${JAR_NAME} & + echo "jar执行路径:"${JAR_NAME} + echo "jar包已启动" +} + +stop_application() { + checkjavapid=`ps -ef | grep java | grep ${APP_NAME} | grep -v grep |grep -v 'deploy.sh'| awk '{print$2}'` + + if [[ ! $checkjavapid ]];then + echo -e "\rno java process" + return + fi + + echo "stop java process" + times=60 + for e in $(seq 60) + do + sleep 1 + COSTTIME=$(($times - $e )) + checkjavapid=`ps -ef | grep java | grep ${APP_NAME} | grep -v grep |grep -v 'deploy.sh'| awk '{print$2}'` + if [[ $checkjavapid ]];then + kill -9 $checkjavapid + echo -e "\r -- stopping java lasts `expr $COSTTIME` seconds." + else + echo -e "\rjava process has exited" + break; + fi + done + echo "" +} +start() { + start_application + health_check +} +stop() { + stop_application +} +case "$ACTION" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + *) + usage + ;; +esac \ No newline at end of file -- Gitee From c5a08c48748eda7cc4e0d554d5a6bae0e37e93f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=BD=AC=E9=91=AB?= <18235529318@163.com> Date: Fri, 6 Aug 2021 08:44:29 +0800 Subject: [PATCH 08/34] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 -- 1 file changed, 2 deletions(-) diff --git a/pom.xml b/pom.xml index 1ecb754d..af5017cf 100644 --- a/pom.xml +++ b/pom.xml @@ -488,8 +488,6 @@ zlt-gateway zlt-business - - zlt-web zlt-job -- Gitee From faf12350a45e422413cd21eb5cd8f9a4e0966ec6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=BD=AC=E9=91=AB?= <18235529318@163.com> Date: Fri, 6 Aug 2021 09:06:42 +0800 Subject: [PATCH 09/34] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zlt-gateway/sc-gateway/deploy-dev.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zlt-gateway/sc-gateway/deploy-dev.sh b/zlt-gateway/sc-gateway/deploy-dev.sh index 70136531..1bc4ad60 100644 --- a/zlt-gateway/sc-gateway/deploy-dev.sh +++ b/zlt-gateway/sc-gateway/deploy-dev.sh @@ -17,7 +17,7 @@ APP_PORT=7000 HEALTH_CHECK_URL=http://127.0.0.1:${APP_PORT} # 从package.tgz中解压出来的jar包放到这个目录下 -APP_HOME=/usr/local/app/zlt-gateway/${APP_NAME} +APP_HOME=/java/project/sc-gateway/zlt-gateway/${APP_NAME} # jar包的名字 JAR_NAME=${APP_HOME}/target/${APP_NAME}.jar -- Gitee From 83bf5aa3edfc6f37bc259cb6fe9e6a5ef6932ab0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=BD=AC=E9=91=AB?= <18235529318@163.com> Date: Fri, 6 Aug 2021 09:58:06 +0800 Subject: [PATCH 10/34] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zlt-gateway/sc-gateway/deploy-dev.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/zlt-gateway/sc-gateway/deploy-dev.sh b/zlt-gateway/sc-gateway/deploy-dev.sh index 1bc4ad60..9d5f79f2 100644 --- a/zlt-gateway/sc-gateway/deploy-dev.sh +++ b/zlt-gateway/sc-gateway/deploy-dev.sh @@ -17,10 +17,10 @@ APP_PORT=7000 HEALTH_CHECK_URL=http://127.0.0.1:${APP_PORT} # 从package.tgz中解压出来的jar包放到这个目录下 -APP_HOME=/java/project/sc-gateway/zlt-gateway/${APP_NAME} +APP_HOME=/java/project/sc-gateway # jar包的名字 -JAR_NAME=${APP_HOME}/target/${APP_NAME}.jar +JAR_NAME=${APP_HOME}/${APP_NAME}.jar #应用的启动日志 JAVA_OUT=${APP_HOME}/logs/start.log @@ -61,7 +61,7 @@ health_check() { } start_application() { echo "开始启动jar包" - nohup java -Xms256m -Xmx256m -jar ${JAR_NAME} & + nohup java -Xms128m -Xmx128m -jar ${JAR_NAME} > ${JAVA_OUT} 2>&1 & echo "jar执行路径:"${JAR_NAME} echo "jar包已启动" } @@ -93,7 +93,7 @@ stop_application() { } start() { start_application - health_check + #health_check } stop() { stop_application -- Gitee From 159e0ce270e06151300a1e49f8e0692d77ba76d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=BD=AC=E9=91=AB?= <18235529318@163.com> Date: Fri, 6 Aug 2021 10:22:09 +0800 Subject: [PATCH 11/34] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zlt-uaa/deploy-dev.sh | 115 ++++++++++++++++++++++++++++++++++++++++ zlt-uaa/deploy-prod.sh | 116 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 231 insertions(+) create mode 100644 zlt-uaa/deploy-dev.sh create mode 100644 zlt-uaa/deploy-prod.sh diff --git a/zlt-uaa/deploy-dev.sh b/zlt-uaa/deploy-dev.sh new file mode 100644 index 00000000..69d1e3b7 --- /dev/null +++ b/zlt-uaa/deploy-dev.sh @@ -0,0 +1,115 @@ +#!/bin/bash + +# 修改APP_NAME为云效上的应用名 +APP_NAME=zlt-uaa + + +PROG_NAME=$0 +ACTION=$1 + +# 等待应用启动的时间 +APP_START_TIMEOUT=20 + + # 应用端口 +APP_PORT=7000 + + # 应用健康检查URL +HEALTH_CHECK_URL=http://127.0.0.1:${APP_PORT} + +# 从package.tgz中解压出来的jar包放到这个目录下 +APP_HOME=/java/project/${APP_NAME} + +# jar包的名字 +JAR_NAME=${APP_HOME}/${APP_NAME}.jar + + #应用的启动日志 +JAVA_OUT=${APP_HOME}/logs/start.log + +# 创建出相关目录 +mkdir -p ${APP_HOME} +mkdir -p ${APP_HOME}/logs +usage() { + echo "Usage: $PROG_NAME {start|stop|restart}" + exit 2 +} + +health_check() { + exptime=0 + echo "checking ${HEALTH_CHECK_URL}" + while true + do + status_code=`/usr/bin/curl -L -o /dev/null --connect-timeout 5 -s -w %{http_code} ${HEALTH_CHECK_URL}` + if [ "$?" != "0" ]; then + echo -n -e "\rapplication not started" + else + echo "code is $status_code" + if [ "$status_code" == "200" ];then + break + fi + fi + sleep 1 + ((exptime++)) + + echo -e "\rWait app to pass health check: $exptime..." + + if [ $exptime -gt ${APP_START_TIMEOUT} ]; then + echo 'app start failed' + exit 1 + fi + done + echo "check ${HEALTH_CHECK_URL} success" +} +start_application() { + echo "开始启动jar包" + nohup java -Xms128m -Xmx128m -jar ${JAR_NAME} > ${JAVA_OUT} 2>&1 & + echo "jar执行路径:"${JAR_NAME} + echo "jar包已启动" +} + +stop_application() { + checkjavapid=`ps -ef | grep java | grep ${APP_NAME} | grep -v grep |grep -v 'deploy.sh'| awk '{print$2}'` + + if [[ ! $checkjavapid ]];then + echo -e "\rno java process" + return + fi + + echo "stop java process" + times=60 + for e in $(seq 60) + do + sleep 1 + COSTTIME=$(($times - $e )) + checkjavapid=`ps -ef | grep java | grep ${APP_NAME} | grep -v grep |grep -v 'deploy.sh'| awk '{print$2}'` + if [[ $checkjavapid ]];then + kill -9 $checkjavapid + echo -e "\r -- stopping java lasts `expr $COSTTIME` seconds." + else + echo -e "\rjava process has exited" + break; + fi + done + echo "" +} +start() { + start_application + #health_check +} +stop() { + stop_application +} +case "$ACTION" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + *) + usage + ;; +esac \ No newline at end of file diff --git a/zlt-uaa/deploy-prod.sh b/zlt-uaa/deploy-prod.sh new file mode 100644 index 00000000..73e0bc63 --- /dev/null +++ b/zlt-uaa/deploy-prod.sh @@ -0,0 +1,116 @@ +#!/bin/bash + +# 修改APP_NAME为云效上的应用名 +APP_NAME=sc-gateway + + +PROG_NAME=$0 +ACTION=$1 + +# 等待应用启动的时间 +APP_START_TIMEOUT=20 + + # 应用端口 +APP_PORT=7000 + + # 应用健康检查URL +HEALTH_CHECK_URL=http://127.0.0.1:${APP_PORT} + +# 从package.tgz中解压出来的jar包放到这个目录下 +APP_HOME=/usr/local/app/zlt-gateway/${APP_NAME} + +# jar包的名字 +JAR_NAME=${APP_HOME}/target/${APP_NAME}.jar + + #应用的启动日志 +JAVA_OUT=${APP_HOME}/logs/start.log + +# 创建出相关目录 +mkdir -p ${APP_HOME} +mkdir -p ${APP_HOME}/logs +usage() { + echo "Usage: $PROG_NAME {start|stop|restart}" + exit 2 +} + +health_check() { + exptime=0 + echo "checking ${HEALTH_CHECK_URL}" + while true + do + status_code=`/usr/bin/curl -L -o /dev/null --connect-timeout 5 -s -w %{http_code} ${HEALTH_CHECK_URL}` + if [ "$?" != "0" ]; then + echo -n -e "\rapplication not started" + else + echo "code is $status_code" + if [ "$status_code" == "200" ];then + break + fi + fi + sleep 1 + ((exptime++)) + + echo -e "\rWait app to pass health check: $exptime..." + + if [ $exptime -gt ${APP_START_TIMEOUT} ]; then + echo 'app start failed' + exit 1 + fi + done + echo "check ${HEALTH_CHECK_URL} success" +} +start_application() { + echo "开始启动jar包" + nohup java -Xms1024m -Xmx1024m -javaagent:/usr/local/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar -Dskywalking.trace.ignore_path=/actuator/** -Dskywalking.agent.service_name=网关微服务 -Dskywalking.collector.backend_service=192.168.109.131:11800 -jar ${JAR_NAME} & + #nohup java -Xms1024m -Xmx1024m -jar ${JAR_NAME} & + echo "jar执行路径:"${JAR_NAME} + echo "jar包已启动" +} + +stop_application() { + checkjavapid=`ps -ef | grep java | grep ${APP_NAME} | grep -v grep |grep -v 'deploy.sh'| awk '{print$2}'` + + if [[ ! $checkjavapid ]];then + echo -e "\rno java process" + return + fi + + echo "stop java process" + times=60 + for e in $(seq 60) + do + sleep 1 + COSTTIME=$(($times - $e )) + checkjavapid=`ps -ef | grep java | grep ${APP_NAME} | grep -v grep |grep -v 'deploy.sh'| awk '{print$2}'` + if [[ $checkjavapid ]];then + kill -9 $checkjavapid + echo -e "\r -- stopping java lasts `expr $COSTTIME` seconds." + else + echo -e "\rjava process has exited" + break; + fi + done + echo "" +} +start() { + start_application + health_check +} +stop() { + stop_application +} +case "$ACTION" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + *) + usage + ;; +esac \ No newline at end of file -- Gitee From c1f9e742c83dcdbb455ab8ccb9965fd9ca486e97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=BD=AC=E9=91=AB?= <18235529318@163.com> Date: Fri, 6 Aug 2021 11:30:43 +0800 Subject: [PATCH 12/34] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zlt-business/user-center/deploy-dev.sh | 115 +++++++++++++++++++++++ zlt-business/user-center/deploy-prod.sh | 116 ++++++++++++++++++++++++ 2 files changed, 231 insertions(+) create mode 100644 zlt-business/user-center/deploy-dev.sh create mode 100644 zlt-business/user-center/deploy-prod.sh diff --git a/zlt-business/user-center/deploy-dev.sh b/zlt-business/user-center/deploy-dev.sh new file mode 100644 index 00000000..29b9f8c2 --- /dev/null +++ b/zlt-business/user-center/deploy-dev.sh @@ -0,0 +1,115 @@ +#!/bin/bash + +# 修改APP_NAME为云效上的应用名 +APP_NAME=user-center + + +PROG_NAME=$0 +ACTION=$1 + +# 等待应用启动的时间 +APP_START_TIMEOUT=20 + + # 应用端口 +APP_PORT=7000 + + # 应用健康检查URL +HEALTH_CHECK_URL=http://127.0.0.1:${APP_PORT} + +# 从package.tgz中解压出来的jar包放到这个目录下 +APP_HOME=/java/project/${APP_NAME} + +# jar包的名字 +JAR_NAME=${APP_HOME}/${APP_NAME}.jar + + #应用的启动日志 +JAVA_OUT=${APP_HOME}/logs/start.log + +# 创建出相关目录 +mkdir -p ${APP_HOME} +mkdir -p ${APP_HOME}/logs +usage() { + echo "Usage: $PROG_NAME {start|stop|restart}" + exit 2 +} + +health_check() { + exptime=0 + echo "checking ${HEALTH_CHECK_URL}" + while true + do + status_code=`/usr/bin/curl -L -o /dev/null --connect-timeout 5 -s -w %{http_code} ${HEALTH_CHECK_URL}` + if [ "$?" != "0" ]; then + echo -n -e "\rapplication not started" + else + echo "code is $status_code" + if [ "$status_code" == "200" ];then + break + fi + fi + sleep 1 + ((exptime++)) + + echo -e "\rWait app to pass health check: $exptime..." + + if [ $exptime -gt ${APP_START_TIMEOUT} ]; then + echo 'app start failed' + exit 1 + fi + done + echo "check ${HEALTH_CHECK_URL} success" +} +start_application() { + echo "开始启动jar包" + nohup java -Xms128m -Xmx128m -jar ${JAR_NAME} > ${JAVA_OUT} 2>&1 & + echo "jar执行路径:"${JAR_NAME} + echo "jar包已启动" +} + +stop_application() { + checkjavapid=`ps -ef | grep java | grep ${APP_NAME} | grep -v grep |grep -v 'deploy.sh'| awk '{print$2}'` + + if [[ ! $checkjavapid ]];then + echo -e "\rno java process" + return + fi + + echo "stop java process" + times=60 + for e in $(seq 60) + do + sleep 1 + COSTTIME=$(($times - $e )) + checkjavapid=`ps -ef | grep java | grep ${APP_NAME} | grep -v grep |grep -v 'deploy.sh'| awk '{print$2}'` + if [[ $checkjavapid ]];then + kill -9 $checkjavapid + echo -e "\r -- stopping java lasts `expr $COSTTIME` seconds." + else + echo -e "\rjava process has exited" + break; + fi + done + echo "" +} +start() { + start_application + #health_check +} +stop() { + stop_application +} +case "$ACTION" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + *) + usage + ;; +esac \ No newline at end of file diff --git a/zlt-business/user-center/deploy-prod.sh b/zlt-business/user-center/deploy-prod.sh new file mode 100644 index 00000000..73e0bc63 --- /dev/null +++ b/zlt-business/user-center/deploy-prod.sh @@ -0,0 +1,116 @@ +#!/bin/bash + +# 修改APP_NAME为云效上的应用名 +APP_NAME=sc-gateway + + +PROG_NAME=$0 +ACTION=$1 + +# 等待应用启动的时间 +APP_START_TIMEOUT=20 + + # 应用端口 +APP_PORT=7000 + + # 应用健康检查URL +HEALTH_CHECK_URL=http://127.0.0.1:${APP_PORT} + +# 从package.tgz中解压出来的jar包放到这个目录下 +APP_HOME=/usr/local/app/zlt-gateway/${APP_NAME} + +# jar包的名字 +JAR_NAME=${APP_HOME}/target/${APP_NAME}.jar + + #应用的启动日志 +JAVA_OUT=${APP_HOME}/logs/start.log + +# 创建出相关目录 +mkdir -p ${APP_HOME} +mkdir -p ${APP_HOME}/logs +usage() { + echo "Usage: $PROG_NAME {start|stop|restart}" + exit 2 +} + +health_check() { + exptime=0 + echo "checking ${HEALTH_CHECK_URL}" + while true + do + status_code=`/usr/bin/curl -L -o /dev/null --connect-timeout 5 -s -w %{http_code} ${HEALTH_CHECK_URL}` + if [ "$?" != "0" ]; then + echo -n -e "\rapplication not started" + else + echo "code is $status_code" + if [ "$status_code" == "200" ];then + break + fi + fi + sleep 1 + ((exptime++)) + + echo -e "\rWait app to pass health check: $exptime..." + + if [ $exptime -gt ${APP_START_TIMEOUT} ]; then + echo 'app start failed' + exit 1 + fi + done + echo "check ${HEALTH_CHECK_URL} success" +} +start_application() { + echo "开始启动jar包" + nohup java -Xms1024m -Xmx1024m -javaagent:/usr/local/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar -Dskywalking.trace.ignore_path=/actuator/** -Dskywalking.agent.service_name=网关微服务 -Dskywalking.collector.backend_service=192.168.109.131:11800 -jar ${JAR_NAME} & + #nohup java -Xms1024m -Xmx1024m -jar ${JAR_NAME} & + echo "jar执行路径:"${JAR_NAME} + echo "jar包已启动" +} + +stop_application() { + checkjavapid=`ps -ef | grep java | grep ${APP_NAME} | grep -v grep |grep -v 'deploy.sh'| awk '{print$2}'` + + if [[ ! $checkjavapid ]];then + echo -e "\rno java process" + return + fi + + echo "stop java process" + times=60 + for e in $(seq 60) + do + sleep 1 + COSTTIME=$(($times - $e )) + checkjavapid=`ps -ef | grep java | grep ${APP_NAME} | grep -v grep |grep -v 'deploy.sh'| awk '{print$2}'` + if [[ $checkjavapid ]];then + kill -9 $checkjavapid + echo -e "\r -- stopping java lasts `expr $COSTTIME` seconds." + else + echo -e "\rjava process has exited" + break; + fi + done + echo "" +} +start() { + start_application + health_check +} +stop() { + stop_application +} +case "$ACTION" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + *) + usage + ;; +esac \ No newline at end of file -- Gitee From d1fb8719a7ed38867f5883f4f211075d13eddf24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=BD=AC=E9=91=AB?= <18235529318@163.com> Date: Fri, 6 Aug 2021 11:48:23 +0800 Subject: [PATCH 13/34] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zlt-business/user-center/src/main/resources/bootstrap.yml | 6 +++--- zlt-uaa/src/main/resources/bootstrap.yml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/zlt-business/user-center/src/main/resources/bootstrap.yml b/zlt-business/user-center/src/main/resources/bootstrap.yml index b9398c32..a8723864 100644 --- a/zlt-business/user-center/src/main/resources/bootstrap.yml +++ b/zlt-business/user-center/src/main/resources/bootstrap.yml @@ -6,6 +6,6 @@ spring: name: user-center cloud: nacos: - discovery: - ip: 39.106.15.230 - port: 7000 \ No newline at end of file +# discovery: +# ip: 39.106.15.230 +# port: 7000 \ No newline at end of file diff --git a/zlt-uaa/src/main/resources/bootstrap.yml b/zlt-uaa/src/main/resources/bootstrap.yml index 77820f6c..408615f7 100644 --- a/zlt-uaa/src/main/resources/bootstrap.yml +++ b/zlt-uaa/src/main/resources/bootstrap.yml @@ -10,9 +10,9 @@ spring: name: uaa-server cloud: nacos: - discovery: - ip: 39.106.15.230 - port: 8000 +# discovery: +# ip: 39.106.15.230 +# port: 8000 encrypt: key-store: -- Gitee From b68e0287acbecc7e39570bd5702114af2db168ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=BD=AC=E9=91=AB?= <18235529318@163.com> Date: Fri, 6 Aug 2021 13:56:11 +0800 Subject: [PATCH 14/34] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zlt-config/src/main/resources/application-dev.properties | 3 ++- zlt-config/src/main/resources/application-prod.properties | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/zlt-config/src/main/resources/application-dev.properties b/zlt-config/src/main/resources/application-dev.properties index 2b1e2ed8..389b0408 100644 --- a/zlt-config/src/main/resources/application-dev.properties +++ b/zlt-config/src/main/resources/application-dev.properties @@ -5,8 +5,9 @@ zlt.datasource.username=root zlt.datasource.password=root ##### redis配置 -spring.redis.host=127.0.0.1 +spring.redis.host=39.106.15.230 spring.redis.port=6379 +spring.redis.password=123456 spring.redis.timeout=5000 ##### elasticsearch配置 diff --git a/zlt-config/src/main/resources/application-prod.properties b/zlt-config/src/main/resources/application-prod.properties index 632d05d9..282caf4d 100644 --- a/zlt-config/src/main/resources/application-prod.properties +++ b/zlt-config/src/main/resources/application-prod.properties @@ -5,8 +5,9 @@ zlt.datasource.username=root zlt.datasource.password=root ##### redis配置 -spring.redis.host=127.0.0.1 +spring.redis.host=39.106.15.230 spring.redis.port=6379 +spring.redis.password=123456 spring.redis.timeout=5000 #spring.redis.sentinel.master=mymaster #spring.redis.sentinel.nodes=192.168.28.130:26380,192.168.28.131:26381 -- Gitee From d502460108d43a7a0715d186ebf248bc3f2e5870 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=BD=AC=E9=91=AB?= <18235529318@163.com> Date: Fri, 6 Aug 2021 14:11:29 +0800 Subject: [PATCH 15/34] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zlt-business/user-center/src/main/resources/bootstrap.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/zlt-business/user-center/src/main/resources/bootstrap.yml b/zlt-business/user-center/src/main/resources/bootstrap.yml index a8723864..ddd71b6f 100644 --- a/zlt-business/user-center/src/main/resources/bootstrap.yml +++ b/zlt-business/user-center/src/main/resources/bootstrap.yml @@ -6,6 +6,6 @@ spring: name: user-center cloud: nacos: -# discovery: -# ip: 39.106.15.230 -# port: 7000 \ No newline at end of file + discovery: + ip: 42.193.96.221 + port: 7000 \ No newline at end of file -- Gitee From 90ae2c150ef4692374b3dc911fbeb4274923c51e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=BD=AC=E9=91=AB?= <18235529318@163.com> Date: Sat, 7 Aug 2021 09:03:20 +0800 Subject: [PATCH 16/34] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zlt-business/user-center/src/main/resources/bootstrap.yml | 6 +++--- zlt-config/pom.xml | 2 +- zlt-gateway/sc-gateway/src/main/resources/bootstrap.yml | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/zlt-business/user-center/src/main/resources/bootstrap.yml b/zlt-business/user-center/src/main/resources/bootstrap.yml index ddd71b6f..aa4f16c4 100644 --- a/zlt-business/user-center/src/main/resources/bootstrap.yml +++ b/zlt-business/user-center/src/main/resources/bootstrap.yml @@ -6,6 +6,6 @@ spring: name: user-center cloud: nacos: - discovery: - ip: 42.193.96.221 - port: 7000 \ No newline at end of file +# discovery: +# ip: 120.208.101.77 +# port: 7000 \ No newline at end of file diff --git a/zlt-config/pom.xml b/zlt-config/pom.xml index f0781215..c7edd961 100644 --- a/zlt-config/pom.xml +++ b/zlt-config/pom.xml @@ -36,7 +36,7 @@ prod prod - 39.106.15.230:8848 + 82.156.193.250:8848 nacos nacos diff --git a/zlt-gateway/sc-gateway/src/main/resources/bootstrap.yml b/zlt-gateway/sc-gateway/src/main/resources/bootstrap.yml index 353d6773..f6857638 100644 --- a/zlt-gateway/sc-gateway/src/main/resources/bootstrap.yml +++ b/zlt-gateway/sc-gateway/src/main/resources/bootstrap.yml @@ -6,6 +6,6 @@ spring: name: sc-gateway cloud: nacos: - discovery: - ip: 39.106.15.230 - port: 9900 \ No newline at end of file +# discovery: +# ip: 39.106.15.230 +# port: 9900 \ No newline at end of file -- Gitee From a4123468b6972ffd0cb57253c7fc9fed283c289e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=BD=AC=E9=91=AB?= <18235529318@163.com> Date: Sat, 7 Aug 2021 09:16:18 +0800 Subject: [PATCH 17/34] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zlt-config/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zlt-config/pom.xml b/zlt-config/pom.xml index c7edd961..5c833a94 100644 --- a/zlt-config/pom.xml +++ b/zlt-config/pom.xml @@ -23,7 +23,7 @@ dev dev - 39.106.15.230:8848 + 82.156.193.250:8848 nacos nacos -- Gitee From 0b732124408df53a91b5c0c5861e66219d235ef5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=BD=AC=E9=91=AB?= <18235529318@163.com> Date: Sat, 7 Aug 2021 13:37:18 +0800 Subject: [PATCH 18/34] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zlt-uaa/src/main/resources/bootstrap.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/zlt-uaa/src/main/resources/bootstrap.yml b/zlt-uaa/src/main/resources/bootstrap.yml index 408615f7..f32c2ea1 100644 --- a/zlt-uaa/src/main/resources/bootstrap.yml +++ b/zlt-uaa/src/main/resources/bootstrap.yml @@ -10,9 +10,9 @@ spring: name: uaa-server cloud: nacos: -# discovery: -# ip: 39.106.15.230 -# port: 8000 + discovery: + ip: 82.156.193.250 + port: 8000 encrypt: key-store: -- Gitee From d0d0fabbcc50c179423c5a4fa037f234be28eeed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=BD=AC=E9=91=AB?= <18235529318@163.com> Date: Sat, 7 Aug 2021 13:38:59 +0800 Subject: [PATCH 19/34] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zlt-gateway/sc-gateway/src/main/resources/bootstrap.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/zlt-gateway/sc-gateway/src/main/resources/bootstrap.yml b/zlt-gateway/sc-gateway/src/main/resources/bootstrap.yml index f6857638..b37775a7 100644 --- a/zlt-gateway/sc-gateway/src/main/resources/bootstrap.yml +++ b/zlt-gateway/sc-gateway/src/main/resources/bootstrap.yml @@ -6,6 +6,6 @@ spring: name: sc-gateway cloud: nacos: -# discovery: -# ip: 39.106.15.230 -# port: 9900 \ No newline at end of file + discovery: + ip: 82.156.193.250 + port: 9900 \ No newline at end of file -- Gitee From e3302a8ed265c6ea08d3fa769f582b6adc793072 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=BD=AC=E9=91=AB?= <18235529318@163.com> Date: Sat, 7 Aug 2021 13:58:54 +0800 Subject: [PATCH 20/34] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zlt-business/user-center/src/main/resources/bootstrap.yml | 4 ++-- zlt-config/src/main/resources/application-dev.properties | 5 ++++- zlt-config/src/main/resources/application-prod.properties | 5 ++++- zlt-gateway/sc-gateway/src/main/resources/bootstrap.yml | 4 ++-- zlt-uaa/src/main/resources/bootstrap.yml | 4 ++-- 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/zlt-business/user-center/src/main/resources/bootstrap.yml b/zlt-business/user-center/src/main/resources/bootstrap.yml index aa4f16c4..0616ac6b 100644 --- a/zlt-business/user-center/src/main/resources/bootstrap.yml +++ b/zlt-business/user-center/src/main/resources/bootstrap.yml @@ -6,6 +6,6 @@ spring: name: user-center cloud: nacos: -# discovery: -# ip: 120.208.101.77 + discovery: + ip: ${zlt.nacos.discover.ip} # port: 7000 \ No newline at end of file diff --git a/zlt-config/src/main/resources/application-dev.properties b/zlt-config/src/main/resources/application-dev.properties index 389b0408..cd39e32f 100644 --- a/zlt-config/src/main/resources/application-dev.properties +++ b/zlt-config/src/main/resources/application-dev.properties @@ -41,4 +41,7 @@ mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl logging.level.com.alibaba.nacos.client.naming=error ##### SpringBoot日志级别 -logging.level.root=INFO \ No newline at end of file +logging.level.root=INFO + +##### nacos注册地址 +zlt.nacos.discover.ip=82.156.193.250 \ No newline at end of file diff --git a/zlt-config/src/main/resources/application-prod.properties b/zlt-config/src/main/resources/application-prod.properties index 282caf4d..7f66f457 100644 --- a/zlt-config/src/main/resources/application-prod.properties +++ b/zlt-config/src/main/resources/application-prod.properties @@ -32,4 +32,7 @@ zlt.s3.endpoint=http://192.168.28.130:9000 zlt.s3.bucketName=test ##### 日志链路追踪 -zlt.trace.enable=true \ No newline at end of file +zlt.trace.enable=true + +##### nacos注册地址 +zlt.nacos.discover.ip=10.0.8.4 \ No newline at end of file diff --git a/zlt-gateway/sc-gateway/src/main/resources/bootstrap.yml b/zlt-gateway/sc-gateway/src/main/resources/bootstrap.yml index b37775a7..47561029 100644 --- a/zlt-gateway/sc-gateway/src/main/resources/bootstrap.yml +++ b/zlt-gateway/sc-gateway/src/main/resources/bootstrap.yml @@ -7,5 +7,5 @@ spring: cloud: nacos: discovery: - ip: 82.156.193.250 - port: 9900 \ No newline at end of file + ip: ${zlt.nacos.discover.ip} +# port: 9900 \ No newline at end of file diff --git a/zlt-uaa/src/main/resources/bootstrap.yml b/zlt-uaa/src/main/resources/bootstrap.yml index f32c2ea1..03650676 100644 --- a/zlt-uaa/src/main/resources/bootstrap.yml +++ b/zlt-uaa/src/main/resources/bootstrap.yml @@ -11,8 +11,8 @@ spring: cloud: nacos: discovery: - ip: 82.156.193.250 - port: 8000 + ip: ${zlt.nacos.discover.ip} +# port: 8000 encrypt: key-store: -- Gitee From 1a52a3386b043ce0611fecbd71792b150ea9d7ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=BD=AC=E9=91=AB?= <18235529318@163.com> Date: Sat, 7 Aug 2021 14:08:11 +0800 Subject: [PATCH 21/34] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zlt-business/user-center/src/main/resources/bootstrap.yml | 4 ++-- zlt-config/src/main/resources/application-dev.properties | 5 +---- zlt-config/src/main/resources/application-prod.properties | 5 +---- zlt-gateway/sc-gateway/src/main/resources/bootstrap.yml | 2 +- zlt-uaa/src/main/resources/bootstrap.yml | 2 +- 5 files changed, 6 insertions(+), 12 deletions(-) diff --git a/zlt-business/user-center/src/main/resources/bootstrap.yml b/zlt-business/user-center/src/main/resources/bootstrap.yml index 0616ac6b..175e4d4d 100644 --- a/zlt-business/user-center/src/main/resources/bootstrap.yml +++ b/zlt-business/user-center/src/main/resources/bootstrap.yml @@ -6,6 +6,6 @@ spring: name: user-center cloud: nacos: - discovery: - ip: ${zlt.nacos.discover.ip} +# discovery: +# ip: 42.193.96.221 # port: 7000 \ No newline at end of file diff --git a/zlt-config/src/main/resources/application-dev.properties b/zlt-config/src/main/resources/application-dev.properties index cd39e32f..389b0408 100644 --- a/zlt-config/src/main/resources/application-dev.properties +++ b/zlt-config/src/main/resources/application-dev.properties @@ -41,7 +41,4 @@ mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl logging.level.com.alibaba.nacos.client.naming=error ##### SpringBoot日志级别 -logging.level.root=INFO - -##### nacos注册地址 -zlt.nacos.discover.ip=82.156.193.250 \ No newline at end of file +logging.level.root=INFO \ No newline at end of file diff --git a/zlt-config/src/main/resources/application-prod.properties b/zlt-config/src/main/resources/application-prod.properties index 7f66f457..282caf4d 100644 --- a/zlt-config/src/main/resources/application-prod.properties +++ b/zlt-config/src/main/resources/application-prod.properties @@ -32,7 +32,4 @@ zlt.s3.endpoint=http://192.168.28.130:9000 zlt.s3.bucketName=test ##### 日志链路追踪 -zlt.trace.enable=true - -##### nacos注册地址 -zlt.nacos.discover.ip=10.0.8.4 \ No newline at end of file +zlt.trace.enable=true \ No newline at end of file diff --git a/zlt-gateway/sc-gateway/src/main/resources/bootstrap.yml b/zlt-gateway/sc-gateway/src/main/resources/bootstrap.yml index 47561029..2b7c79f9 100644 --- a/zlt-gateway/sc-gateway/src/main/resources/bootstrap.yml +++ b/zlt-gateway/sc-gateway/src/main/resources/bootstrap.yml @@ -7,5 +7,5 @@ spring: cloud: nacos: discovery: - ip: ${zlt.nacos.discover.ip} +# ip: 82.156.193.250 # port: 9900 \ No newline at end of file diff --git a/zlt-uaa/src/main/resources/bootstrap.yml b/zlt-uaa/src/main/resources/bootstrap.yml index 03650676..64a61f56 100644 --- a/zlt-uaa/src/main/resources/bootstrap.yml +++ b/zlt-uaa/src/main/resources/bootstrap.yml @@ -11,7 +11,7 @@ spring: cloud: nacos: discovery: - ip: ${zlt.nacos.discover.ip} +# ip: 82.156.193.250 # port: 8000 encrypt: -- Gitee From 7231aeb1c7611539a3b43116abd601af3f27af1e Mon Sep 17 00:00:00 2001 From: Andy Date: Wed, 30 Jun 2021 12:40:59 +0800 Subject: [PATCH 22/34] Update Dockerfile --- zlt-doc/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zlt-doc/Dockerfile b/zlt-doc/Dockerfile index 04d160f0..c04c805e 100644 --- a/zlt-doc/Dockerfile +++ b/zlt-doc/Dockerfile @@ -1,4 +1,4 @@ -FROM mysql:8.0.25 +FROM mysql:5.7 LABEL MAINTAINER=Andy -- Gitee From 12124b1802dc7c5103540905f21dd70c9216bd9a Mon Sep 17 00:00:00 2001 From: zlt2000 Date: Thu, 22 Jul 2021 20:29:07 +0800 Subject: [PATCH 23/34] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BE=A4=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/README.md b/README.md index b4ebb826..2d3c2dc5 100644 --- a/README.md +++ b/README.md @@ -27,21 +27,11 @@ ## 3. 项目介绍 * **技术交流群** - - - - - - - - - -
    交流一群(已满)
    交流二群
    交流一群(已满)交流二群
    交流三群
    交流三群
    @@ -129,7 +119,7 @@ central-platform -- 父项目,公共依赖 * 欢迎提交`ISSUS`,请写清楚问题的具体原因,重现步骤和环境(上下文) * 项目/微服务交流请进群: * 一群:[250883130(已满)](https://shang.qq.com/wpa/qunwpa?idkey=17544199255998bda0d938fb72b08d076c40c52c9904520b76eb5eb0585da71e) - * 二群:[1041797659](https://shang.qq.com/wpa/qunwpa?idkey=41988facbc02f678942a7ee7ae03122f2ef0a10c948b3d07319f070bfb0d3a98) + * 二群:[1041797659(已满)](https://shang.qq.com/wpa/qunwpa?idkey=41988facbc02f678942a7ee7ae03122f2ef0a10c948b3d07319f070bfb0d3a98) * 三群:[512637767](https://qm.qq.com/cgi-bin/qm/qr?k=HntAHTirZwCEjF8PQpjDYkw37Zx5rJg8&jump_from=webapi) * 个人博客:[https://zlt2000.gitee.io](https://zlt2000.gitee.io) * 个人邮箱:zltdiablo@163.com -- Gitee From 8ee57d93bc411af20c6ca1588e77bc7dad92b4ea Mon Sep 17 00:00:00 2001 From: zlt2000 Date: Sun, 25 Jul 2021 21:24:20 +0800 Subject: [PATCH 24/34] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=A4=9A=E7=94=A8=E6=88=B7=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E6=89=A9=E5=B1=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ....java => AuthClientAutoConfiguration.java} | 11 +- .../oauth2/common/store/AuthDbTokenStore.java | 2 + .../common/store/AuthJwtTokenStore.java | 2 + .../common/store/AuthRedisTokenStore.java | 2 + .../oauth2/common/store/ResJwtTokenStore.java | 2 + .../token/CustomWebAuthenticationDetails.java | 37 +++++ .../central/oauth2/common/util/AuthUtils.java | 22 ++- .../main/resources/META-INF/spring.factories | 6 +- .../common/constant/SecurityConstants.java | 18 +++ .../resolver/TokenArgumentResolver.java | 5 + .../auth/Oauth2AuthSuccessHandler.java | 7 +- .../filter/pre/UserInfoHeaderFilter.java | 6 + .../config/AuthorizationServerConfig.java | 14 +- .../oauth/config/TokenGranterConfig.java | 17 +- .../oauth/filter/OauthTokenAspect.java | 5 +- .../mobile/MobileAuthenticationProvider.java | 14 +- .../MobileAuthenticationSecurityConfig.java | 13 +- .../CustomAuthenticationDetailsSource.java | 31 ++++ .../java/com/central/oauth/model/TokenVo.java | 7 + .../openid/OpenIdAuthenticationProvider.java | 22 ++- .../OpenIdAuthenticationSecurityConfig.java | 9 +- .../PasswordAuthenticationProvider.java | 148 ++++++++++++++++++ .../oauth/service/ZltUserDetailsService.java | 54 ++++--- .../service/impl/CustomTokenServices.java | 113 +++++++++++++ .../service/impl/RedisTokensServiceImpl.java | 4 + .../impl/UserDetailServiceFactory.java | 53 +++++++ .../service/impl/UserDetailServiceImpl.java | 118 +++++++------- ...serDetailsByNameServiceFactoryWrapper.java | 59 +++++++ .../oauth/tenant/OauthAuthorizeAspect.java | 15 +- .../tenant/TenantAuthenticationProvider.java | 4 +- .../TenantAuthenticationSecurityConfig.java | 12 +- 31 files changed, 696 insertions(+), 136 deletions(-) rename zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/{config/SecurityPropertiesConfig.java => AuthClientAutoConfiguration.java} (65%) create mode 100644 zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/token/CustomWebAuthenticationDetails.java create mode 100644 zlt-uaa/src/main/java/com/central/oauth/model/CustomAuthenticationDetailsSource.java create mode 100644 zlt-uaa/src/main/java/com/central/oauth/password/PasswordAuthenticationProvider.java create mode 100644 zlt-uaa/src/main/java/com/central/oauth/service/impl/UserDetailServiceFactory.java create mode 100644 zlt-uaa/src/main/java/com/central/oauth/service/impl/UserDetailsByNameServiceFactoryWrapper.java diff --git a/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/config/SecurityPropertiesConfig.java b/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/AuthClientAutoConfiguration.java similarity index 65% rename from zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/config/SecurityPropertiesConfig.java rename to zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/AuthClientAutoConfiguration.java index e579e444..17ede133 100644 --- a/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/config/SecurityPropertiesConfig.java +++ b/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/AuthClientAutoConfiguration.java @@ -1,16 +1,21 @@ -package com.central.oauth2.common.config; +package com.central.oauth2.common; import com.central.oauth2.common.properties.SecurityProperties; import com.central.oauth2.common.properties.TokenStoreProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.ComponentScan; /** + * 鉴权自动配置 + * * @author zlt - * @date 2019/10/7 + * @version 1.0 + * @date 2021/7/24 *

    * Blog: https://zlt2000.gitee.io * Github: https://github.com/zlt2000 */ @EnableConfigurationProperties({SecurityProperties.class, TokenStoreProperties.class}) -public class SecurityPropertiesConfig { +@ComponentScan +public class AuthClientAutoConfiguration { } diff --git a/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/store/AuthDbTokenStore.java b/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/store/AuthDbTokenStore.java index d084e549..1d0b1ec9 100644 --- a/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/store/AuthDbTokenStore.java +++ b/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/store/AuthDbTokenStore.java @@ -3,6 +3,7 @@ package com.central.oauth2.common.store; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import org.springframework.security.oauth2.provider.token.TokenStore; import org.springframework.security.oauth2.provider.token.store.JdbcTokenStore; @@ -14,6 +15,7 @@ import javax.sql.DataSource; * @author zlt * @date 2018/7/24 16:23 */ +@Configuration @ConditionalOnProperty(prefix = "zlt.oauth2.token.store", name = "type", havingValue = "db") public class AuthDbTokenStore { @Autowired diff --git a/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/store/AuthJwtTokenStore.java b/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/store/AuthJwtTokenStore.java index e23b3d41..2d261222 100644 --- a/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/store/AuthJwtTokenStore.java +++ b/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/store/AuthJwtTokenStore.java @@ -5,6 +5,7 @@ import com.central.oauth2.common.converter.CustomUserAuthenticationConverter; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.cloud.bootstrap.encrypt.KeyProperties; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import org.springframework.core.annotation.Order; import org.springframework.security.oauth2.common.DefaultOAuth2AccessToken; import org.springframework.security.oauth2.provider.token.DefaultAccessTokenConverter; @@ -28,6 +29,7 @@ import java.util.Map; * Blog: https://zlt2000.gitee.io * Github: https://github.com/zlt2000 */ +@Configuration @ConditionalOnProperty(prefix = "zlt.oauth2.token.store", name = "type", havingValue = "authJwt") public class AuthJwtTokenStore { @Resource diff --git a/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/store/AuthRedisTokenStore.java b/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/store/AuthRedisTokenStore.java index 8d5094c3..239dc420 100644 --- a/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/store/AuthRedisTokenStore.java +++ b/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/store/AuthRedisTokenStore.java @@ -4,6 +4,7 @@ import com.central.oauth2.common.properties.SecurityProperties; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.security.oauth2.provider.token.TokenStore; @@ -18,6 +19,7 @@ import org.springframework.security.oauth2.provider.token.TokenStore; * Blog: https://zlt2000.gitee.io * Github: https://github.com/zlt2000 */ +@Configuration @ConditionalOnProperty(prefix = "zlt.oauth2.token.store", name = "type", havingValue = "redis", matchIfMissing = true) public class AuthRedisTokenStore { @Bean diff --git a/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/store/ResJwtTokenStore.java b/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/store/ResJwtTokenStore.java index 606fbb68..c7655696 100644 --- a/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/store/ResJwtTokenStore.java +++ b/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/store/ResJwtTokenStore.java @@ -7,6 +7,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.security.oauth2.resource.ResourceServerProperties; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import org.springframework.http.HttpEntity; @@ -31,6 +32,7 @@ import java.util.stream.Collectors; * @author zlt * @date 2018/8/20 9:25 */ +@Configuration @ConditionalOnProperty(prefix = "zlt.oauth2.token.store", name = "type", havingValue = "resJwt") public class ResJwtTokenStore { @Autowired diff --git a/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/token/CustomWebAuthenticationDetails.java b/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/token/CustomWebAuthenticationDetails.java new file mode 100644 index 00000000..95dd1c18 --- /dev/null +++ b/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/token/CustomWebAuthenticationDetails.java @@ -0,0 +1,37 @@ +package com.central.oauth2.common.token; + +import lombok.Getter; + +import java.io.Serializable; + +/** + * 表单登录的认证信息对象 + * + * @author zlt + * @version 1.0 + * @date 2021/7/24 + *

    + * Blog: https://zlt2000.gitee.io + * Github: https://github.com/zlt2000 + */ +@Getter +public class CustomWebAuthenticationDetails implements Serializable { + private static final long serialVersionUID = - 1; + + private final String accountType; + private final String remoteAddress; + private final String sessionId; + + public CustomWebAuthenticationDetails(String remoteAddress, String sessionId, String accountType) { + this.remoteAddress = remoteAddress; + this.sessionId = sessionId; + this.accountType = accountType; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(super.toString()).append("; accountType: ").append(this.getAccountType()); + return sb.toString(); + } +} diff --git a/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/util/AuthUtils.java b/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/util/AuthUtils.java index bad4669f..4b717617 100644 --- a/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/util/AuthUtils.java +++ b/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/util/AuthUtils.java @@ -1,17 +1,19 @@ package com.central.oauth2.common.util; import com.central.common.constant.CommonConstant; +import com.central.common.constant.SecurityConstants; import com.central.common.model.SysUser; +import com.central.oauth2.common.token.CustomWebAuthenticationDetails; import lombok.extern.slf4j.Slf4j; import org.springframework.security.core.Authentication; import org.springframework.security.oauth2.common.OAuth2AccessToken; import org.springframework.security.oauth2.common.exceptions.UnapprovedClientAuthenticationException; import javax.servlet.http.HttpServletRequest; -import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.Base64; import java.util.Enumeration; +import java.util.Map; /** * 认证授权相关工具类 @@ -104,4 +106,22 @@ public class AuthUtils { } return username; } + + /** + * 获取登陆的帐户类型 + */ + public static String getAccountType(Authentication authentication) { + Object details = authentication.getDetails(); + String accountType = null; + if (details instanceof CustomWebAuthenticationDetails) { + CustomWebAuthenticationDetails detailsObj = (CustomWebAuthenticationDetails) details; + accountType = detailsObj.getAccountType(); + } else { + Map detailsMap = (Map) details; + if (detailsMap != null) { + accountType = detailsMap.get(SecurityConstants.ACCOUNT_TYPE_PARAM_NAME); + } + } + return accountType; + } } diff --git a/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/resources/META-INF/spring.factories b/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/resources/META-INF/spring.factories index f45f3e08..9862b1d3 100644 --- a/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/resources/META-INF/spring.factories +++ b/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/resources/META-INF/spring.factories @@ -1,6 +1,2 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ -com.central.oauth2.common.config.SecurityPropertiesConfig,\ -com.central.oauth2.common.store.AuthDbTokenStore,\ -com.central.oauth2.common.store.AuthRedisTokenStore,\ -com.central.oauth2.common.store.AuthJwtTokenStore,\ -com.central.oauth2.common.store.ResJwtTokenStore \ No newline at end of file +com.central.oauth2.common.AuthClientAutoConfiguration \ No newline at end of file diff --git a/zlt-commons/zlt-common-core/src/main/java/com/central/common/constant/SecurityConstants.java b/zlt-commons/zlt-common-core/src/main/java/com/central/common/constant/SecurityConstants.java index 01526326..45f0c129 100644 --- a/zlt-commons/zlt-common-core/src/main/java/com/central/common/constant/SecurityConstants.java +++ b/zlt-commons/zlt-common-core/src/main/java/com/central/common/constant/SecurityConstants.java @@ -4,6 +4,9 @@ package com.central.common.constant; * Security 权限常量 * * @author zlt + *

    + * Blog: https://zlt2000.gitee.io + * Github: https://github.com/zlt2000 */ public interface SecurityConstants { /** @@ -31,6 +34,11 @@ public interface SecurityConstants { */ String TENANT_HEADER = "x-tenant-header"; + /** + * 账号类型信息头 + */ + String ACCOUNT_TYPE_HEADER = "x-account-type-header"; + /** * 基础角色 */ @@ -167,4 +175,14 @@ public interface SecurityConstants { * 令牌颁发者 */ String ISS = "http://zlt2000.cn"; + + /** + * 默认账号类型 + */ + String DEF_ACCOUNT_TYPE = "admin"; + + /** + * 账号类型参数名 + */ + String ACCOUNT_TYPE_PARAM_NAME = "account_type"; } diff --git a/zlt-commons/zlt-common-core/src/main/java/com/central/common/resolver/TokenArgumentResolver.java b/zlt-commons/zlt-common-core/src/main/java/com/central/common/resolver/TokenArgumentResolver.java index 19a1183f..32e5ef37 100644 --- a/zlt-commons/zlt-common-core/src/main/java/com/central/common/resolver/TokenArgumentResolver.java +++ b/zlt-commons/zlt-common-core/src/main/java/com/central/common/resolver/TokenArgumentResolver.java @@ -23,6 +23,9 @@ import java.util.List; * * @author zlt * @date 2018/12/21 + *

    + * Blog: https://zlt2000.gitee.io + * Github: https://github.com/zlt2000 */ @Slf4j public class TokenArgumentResolver implements HandlerMethodArgumentResolver { @@ -61,6 +64,8 @@ public class TokenArgumentResolver implements HandlerMethodArgumentResolver { String userId = request.getHeader(SecurityConstants.USER_ID_HEADER); String username = request.getHeader(SecurityConstants.USER_HEADER); String roles = request.getHeader(SecurityConstants.ROLE_HEADER); + //账号类型 + String accountType = request.getHeader(SecurityConstants.ACCOUNT_TYPE_HEADER); if (StrUtil.isBlank(username)) { log.warn("resolveArgument error username is empty"); return null; diff --git a/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/auth/Oauth2AuthSuccessHandler.java b/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/auth/Oauth2AuthSuccessHandler.java index dd637076..8a02c897 100644 --- a/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/auth/Oauth2AuthSuccessHandler.java +++ b/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/auth/Oauth2AuthSuccessHandler.java @@ -3,6 +3,7 @@ package com.central.gateway.auth; import cn.hutool.core.collection.CollectionUtil; import com.central.common.constant.SecurityConstants; import com.central.common.model.SysUser; +import com.central.oauth2.common.util.AuthUtils; import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.security.core.Authentication; import org.springframework.security.oauth2.provider.OAuth2Authentication; @@ -37,12 +38,12 @@ public class Oauth2AuthSuccessHandler implements ServerAuthenticationSuccessHand String clientId = oauth2Authentication.getOAuth2Request().getClientId(); headerValues.add(SecurityConstants.TENANT_HEADER, clientId); headerValues.add(SecurityConstants.ROLE_HEADER, CollectionUtil.join(authentication.getAuthorities(), ",")); + String accountType = AuthUtils.getAccountType(oauth2Authentication.getUserAuthentication()); + headerValues.add(SecurityConstants.ACCOUNT_TYPE_HEADER, accountType); ServerWebExchange exchange = webFilterExchange.getExchange(); ServerHttpRequest serverHttpRequest = exchange.getRequest().mutate() - .headers(h -> { - h.addAll(headerValues); - }) + .headers(h -> h.addAll(headerValues)) .build(); ServerWebExchange build = exchange.mutate().request(serverHttpRequest).build(); diff --git a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/filter/pre/UserInfoHeaderFilter.java b/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/filter/pre/UserInfoHeaderFilter.java index ae832a0d..bee07e26 100644 --- a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/filter/pre/UserInfoHeaderFilter.java +++ b/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/filter/pre/UserInfoHeaderFilter.java @@ -3,6 +3,7 @@ package com.central.gateway.filter.pre; import cn.hutool.core.collection.CollectionUtil; import com.central.common.constant.SecurityConstants; import com.central.common.model.SysUser; +import com.central.oauth2.common.util.AuthUtils; import com.netflix.zuul.ZuulFilter; import com.netflix.zuul.context.RequestContext; import org.springframework.cloud.netflix.zuul.filters.support.FilterConstants; @@ -19,6 +20,9 @@ import static org.springframework.cloud.netflix.zuul.filters.support.FilterConst * * @author zlt * @date 2018/11/20 + *

    + * Blog: https://zlt2000.gitee.io + * Github: https://github.com/zlt2000 */ @Component public class UserInfoHeaderFilter extends ZuulFilter { @@ -53,6 +57,8 @@ public class UserInfoHeaderFilter extends ZuulFilter { String clientId = oauth2Authentication.getOAuth2Request().getClientId(); ctx.addZuulRequestHeader(SecurityConstants.TENANT_HEADER, clientId); ctx.addZuulRequestHeader(SecurityConstants.ROLE_HEADER, CollectionUtil.join(authentication.getAuthorities(), ",")); + String accountType = AuthUtils.getAccountType(oauth2Authentication.getUserAuthentication()); + ctx.addZuulRequestHeader(SecurityConstants.ACCOUNT_TYPE_HEADER, accountType); } return null; } diff --git a/zlt-uaa/src/main/java/com/central/oauth/config/AuthorizationServerConfig.java b/zlt-uaa/src/main/java/com/central/oauth/config/AuthorizationServerConfig.java index d9f8c2a6..85dd7950 100644 --- a/zlt-uaa/src/main/java/com/central/oauth/config/AuthorizationServerConfig.java +++ b/zlt-uaa/src/main/java/com/central/oauth/config/AuthorizationServerConfig.java @@ -5,9 +5,11 @@ import com.central.common.model.SysUser; import com.central.oauth.model.Client; import com.central.oauth.service.IClientService; import com.central.oauth.service.impl.RedisClientDetailsService; +import com.central.oauth.service.impl.UserDetailServiceFactory; import com.central.oauth.utils.OidcIdTokenBuilder; import com.central.oauth2.common.constants.IdTokenClaimNames; import com.central.oauth2.common.properties.TokenStoreProperties; +import com.central.oauth2.common.util.AuthUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.cloud.bootstrap.encrypt.KeyProperties; @@ -15,7 +17,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.annotation.Order; import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.oauth2.common.DefaultOAuth2AccessToken; import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer; import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerConfigurerAdapter; @@ -54,7 +55,7 @@ public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdap private AuthenticationManager authenticationManager; @Resource - private UserDetailsService userDetailsService; + private UserDetailServiceFactory userDetailsServiceFactory; @Autowired private TokenStore tokenStore; @@ -79,7 +80,7 @@ public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdap public void configure(AuthorizationServerEndpointsConfigurer endpoints) { endpoints.tokenStore(tokenStore) .authenticationManager(authenticationManager) - .userDetailsService(userDetailsService) + //.userDetailsService(userDetailsServiceFactory.getService(SecurityConstants.DEF_ACCOUNT_TYPE)) .authorizationCodeServices(authorizationCodeServices) .exceptionTranslator(webResponseExceptionTranslator) .tokenGranter(tokenGranter); @@ -117,9 +118,12 @@ public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdap , TokenStoreProperties tokenStoreProperties) { return (accessToken, authentication) -> { Set responseTypes = authentication.getOAuth2Request().getResponseTypes(); + Map additionalInfo = new HashMap<>(3); + String accountType = AuthUtils.getAccountType(authentication.getUserAuthentication()); + additionalInfo.put(SecurityConstants.ACCOUNT_TYPE_PARAM_NAME, accountType); + if (responseTypes.contains(SecurityConstants.ID_TOKEN) || "authJwt".equals(tokenStoreProperties.getType())) { - Map additionalInfo = new HashMap<>(2); Object principal = authentication.getPrincipal(); //增加id参数 if (principal instanceof SysUser) { @@ -132,8 +136,8 @@ public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdap additionalInfo.put("id", user.getId()); } } - ((DefaultOAuth2AccessToken) accessToken).setAdditionalInformation(additionalInfo); } + ((DefaultOAuth2AccessToken) accessToken).setAdditionalInformation(additionalInfo); return accessToken; }; } diff --git a/zlt-uaa/src/main/java/com/central/oauth/config/TokenGranterConfig.java b/zlt-uaa/src/main/java/com/central/oauth/config/TokenGranterConfig.java index bef0667a..d69e98e4 100644 --- a/zlt-uaa/src/main/java/com/central/oauth/config/TokenGranterConfig.java +++ b/zlt-uaa/src/main/java/com/central/oauth/config/TokenGranterConfig.java @@ -6,14 +6,14 @@ import com.central.oauth.granter.OpenIdGranter; import com.central.oauth.granter.PwdImgCodeGranter; import com.central.oauth.service.IValidateCodeService; import com.central.oauth.service.impl.CustomTokenServices; +import com.central.oauth.service.impl.UserDetailServiceFactory; +import com.central.oauth.service.impl.UserDetailsByNameServiceFactoryWrapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.ProviderManager; -import org.springframework.security.core.userdetails.UserDetailsByNameServiceWrapper; -import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.oauth2.common.OAuth2AccessToken; import org.springframework.security.oauth2.provider.*; import org.springframework.security.oauth2.provider.client.ClientCredentialsTokenGranter; @@ -28,6 +28,7 @@ import org.springframework.security.oauth2.provider.request.DefaultOAuth2Request import org.springframework.security.oauth2.provider.token.*; import org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationProvider; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -46,8 +47,8 @@ public class TokenGranterConfig { @Autowired private ClientDetailsService clientDetailsService; - @Autowired - private UserDetailsService userDetailsService; + @Resource + private UserDetailServiceFactory userDetailsServiceFactory; @Autowired private AuthenticationManager authenticationManager; @@ -166,7 +167,7 @@ public class TokenGranterConfig { tokenServices.setReuseRefreshToken(reuseRefreshToken); tokenServices.setClientDetailsService(clientDetailsService); tokenServices.setTokenEnhancer(tokenEnhancer()); - addUserDetailsService(tokenServices, this.userDetailsService); + addUserDetailsService(tokenServices); return tokenServices; } @@ -179,10 +180,10 @@ public class TokenGranterConfig { return null; } - private void addUserDetailsService(DefaultTokenServices tokenServices, UserDetailsService userDetailsService) { - if (userDetailsService != null) { + private void addUserDetailsService(DefaultTokenServices tokenServices) { + if (this.userDetailsServiceFactory != null) { PreAuthenticatedAuthenticationProvider provider = new PreAuthenticatedAuthenticationProvider(); - provider.setPreAuthenticatedUserDetailsService(new UserDetailsByNameServiceWrapper<>(userDetailsService)); + provider.setPreAuthenticatedUserDetailsService(new UserDetailsByNameServiceFactoryWrapper<>(this.userDetailsServiceFactory)); tokenServices.setAuthenticationManager(new ProviderManager(Collections.singletonList(provider))); } } diff --git a/zlt-uaa/src/main/java/com/central/oauth/filter/OauthTokenAspect.java b/zlt-uaa/src/main/java/com/central/oauth/filter/OauthTokenAspect.java index 2468b66b..7e101e6f 100644 --- a/zlt-uaa/src/main/java/com/central/oauth/filter/OauthTokenAspect.java +++ b/zlt-uaa/src/main/java/com/central/oauth/filter/OauthTokenAspect.java @@ -46,10 +46,13 @@ public class OauthTokenAspect { String clientId = getClientId(principal); Map parameters = (Map) args[1]; String grantType = parameters.get(OAuth2Utils.GRANT_TYPE); + if (!parameters.containsKey(SecurityConstants.ACCOUNT_TYPE_PARAM_NAME)) { + parameters.put(SecurityConstants.ACCOUNT_TYPE_PARAM_NAME, SecurityConstants.DEF_ACCOUNT_TYPE); + } //保存租户id TenantContextHolder.setTenant(clientId); - Object proceed = joinPoint.proceed(); + Object proceed = joinPoint.proceed(args); if (SecurityConstants.AUTHORIZATION_CODE.equals(grantType)) { /* 如果使用 @EnableOAuth2Sso 注解不能修改返回格式,否则授权码模式可以统一改 diff --git a/zlt-uaa/src/main/java/com/central/oauth/mobile/MobileAuthenticationProvider.java b/zlt-uaa/src/main/java/com/central/oauth/mobile/MobileAuthenticationProvider.java index 0d2fc1f3..99e5fcde 100644 --- a/zlt-uaa/src/main/java/com/central/oauth/mobile/MobileAuthenticationProvider.java +++ b/zlt-uaa/src/main/java/com/central/oauth/mobile/MobileAuthenticationProvider.java @@ -1,10 +1,10 @@ package com.central.oauth.mobile; -import com.central.oauth.service.ZltUserDetailsService; +import com.central.oauth.service.impl.UserDetailServiceFactory; import com.central.oauth2.common.token.MobileAuthenticationToken; +import lombok.Getter; import lombok.Setter; import org.springframework.security.authentication.AuthenticationProvider; -import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.InternalAuthenticationServiceException; import org.springframework.security.core.Authentication; import org.springframework.security.core.userdetails.UserDetails; @@ -12,10 +12,14 @@ import org.springframework.security.crypto.password.PasswordEncoder; /** * @author zlt + *

    + * Blog: https://zlt2000.gitee.io + * Github: https://github.com/zlt2000 */ @Setter +@Getter public class MobileAuthenticationProvider implements AuthenticationProvider { - private ZltUserDetailsService userDetailsService; + private UserDetailServiceFactory userDetailsServiceFactory; private PasswordEncoder passwordEncoder; @Override @@ -23,12 +27,12 @@ public class MobileAuthenticationProvider implements AuthenticationProvider { MobileAuthenticationToken authenticationToken = (MobileAuthenticationToken) authentication; String mobile = (String) authenticationToken.getPrincipal(); String password = (String) authenticationToken.getCredentials(); - UserDetails user = userDetailsService.loadUserByMobile(mobile); + UserDetails user = userDetailsServiceFactory.getService(authenticationToken).loadUserByMobile(mobile); if (user == null) { throw new InternalAuthenticationServiceException("手机号或密码错误"); } if (!passwordEncoder.matches(password, user.getPassword())) { - throw new BadCredentialsException("手机号或密码错误"); + throw new InternalAuthenticationServiceException("手机号或密码错误"); } MobileAuthenticationToken authenticationResult = new MobileAuthenticationToken(user, password, user.getAuthorities()); authenticationResult.setDetails(authenticationToken.getDetails()); diff --git a/zlt-uaa/src/main/java/com/central/oauth/mobile/MobileAuthenticationSecurityConfig.java b/zlt-uaa/src/main/java/com/central/oauth/mobile/MobileAuthenticationSecurityConfig.java index 12d09abc..4aaa7a9a 100644 --- a/zlt-uaa/src/main/java/com/central/oauth/mobile/MobileAuthenticationSecurityConfig.java +++ b/zlt-uaa/src/main/java/com/central/oauth/mobile/MobileAuthenticationSecurityConfig.java @@ -1,6 +1,6 @@ package com.central.oauth.mobile; -import com.central.oauth.service.ZltUserDetailsService; +import com.central.oauth.service.impl.UserDetailServiceFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.config.annotation.SecurityConfigurerAdapter; import org.springframework.security.config.annotation.web.builders.HttpSecurity; @@ -8,15 +8,20 @@ import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.web.DefaultSecurityFilterChain; import org.springframework.stereotype.Component; +import javax.annotation.Resource; + /** * mobile的相关处理配置 * * @author zlt + *

    + * Blog: https://zlt2000.gitee.io + * Github: https://github.com/zlt2000 */ @Component public class MobileAuthenticationSecurityConfig extends SecurityConfigurerAdapter { - @Autowired - private ZltUserDetailsService userDetailsService; + @Resource + private UserDetailServiceFactory userDetailsServiceFactory; @Autowired private PasswordEncoder passwordEncoder; @@ -25,7 +30,7 @@ public class MobileAuthenticationSecurityConfig extends SecurityConfigurerAdapte public void configure(HttpSecurity http) { //mobile provider MobileAuthenticationProvider provider = new MobileAuthenticationProvider(); - provider.setUserDetailsService(userDetailsService); + provider.setUserDetailsServiceFactory(userDetailsServiceFactory); provider.setPasswordEncoder(passwordEncoder); http.authenticationProvider(provider); } diff --git a/zlt-uaa/src/main/java/com/central/oauth/model/CustomAuthenticationDetailsSource.java b/zlt-uaa/src/main/java/com/central/oauth/model/CustomAuthenticationDetailsSource.java new file mode 100644 index 00000000..77e36ea4 --- /dev/null +++ b/zlt-uaa/src/main/java/com/central/oauth/model/CustomAuthenticationDetailsSource.java @@ -0,0 +1,31 @@ +package com.central.oauth.model; + +import com.central.common.constant.SecurityConstants; +import com.central.oauth2.common.token.CustomWebAuthenticationDetails; +import org.springframework.security.authentication.AuthenticationDetailsSource; +import org.springframework.stereotype.Component; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +/** + * 表单登录的认证信息对象 + * + * @author zlt + * @version 1.0 + * @date 2021/7/21 + *

    + * Blog: https://zlt2000.gitee.io + * Github: https://github.com/zlt2000 + */ +@Component +public class CustomAuthenticationDetailsSource implements AuthenticationDetailsSource { + @Override + public CustomWebAuthenticationDetails buildDetails(HttpServletRequest context) { + String remoteAddress = context.getRemoteAddr(); + HttpSession session = context.getSession(false); + String sessionId = session != null ? session.getId() : null; + String accountType = context.getParameter(SecurityConstants.ACCOUNT_TYPE_PARAM_NAME); + return new CustomWebAuthenticationDetails(remoteAddress, sessionId, accountType); + } +} diff --git a/zlt-uaa/src/main/java/com/central/oauth/model/TokenVo.java b/zlt-uaa/src/main/java/com/central/oauth/model/TokenVo.java index 3b0ccdd3..2b107138 100644 --- a/zlt-uaa/src/main/java/com/central/oauth/model/TokenVo.java +++ b/zlt-uaa/src/main/java/com/central/oauth/model/TokenVo.java @@ -8,6 +8,9 @@ import java.util.Date; /** * @author zlt + *

    + * Blog: https://zlt2000.gitee.io + * Github: https://github.com/zlt2000 */ @Setter @Getter @@ -33,4 +36,8 @@ public class TokenVo implements Serializable { * 授权类型 */ private String grantType; + /** + * 账号类型 + */ + private String accountType; } diff --git a/zlt-uaa/src/main/java/com/central/oauth/openid/OpenIdAuthenticationProvider.java b/zlt-uaa/src/main/java/com/central/oauth/openid/OpenIdAuthenticationProvider.java index 759124ba..4a4623d8 100644 --- a/zlt-uaa/src/main/java/com/central/oauth/openid/OpenIdAuthenticationProvider.java +++ b/zlt-uaa/src/main/java/com/central/oauth/openid/OpenIdAuthenticationProvider.java @@ -1,24 +1,30 @@ package com.central.oauth.openid; +import com.central.oauth.service.impl.UserDetailServiceFactory; import com.central.oauth2.common.token.OpenIdAuthenticationToken; +import lombok.Getter; +import lombok.Setter; import org.springframework.security.authentication.AuthenticationProvider; import org.springframework.security.authentication.InternalAuthenticationServiceException; import org.springframework.security.core.Authentication; import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.social.security.SocialUserDetailsService; /** * @author zlt + *

    + * Blog: https://zlt2000.gitee.io + * Github: https://github.com/zlt2000 */ +@Setter +@Getter public class OpenIdAuthenticationProvider implements AuthenticationProvider { - - private SocialUserDetailsService userDetailsService; + private UserDetailServiceFactory userDetailsServiceFactory; @Override public Authentication authenticate(Authentication authentication) { OpenIdAuthenticationToken authenticationToken = (OpenIdAuthenticationToken) authentication; String openId = (String) authenticationToken.getPrincipal(); - UserDetails user = userDetailsService.loadUserByUserId(openId); + UserDetails user = userDetailsServiceFactory.getService(authenticationToken).loadUserByUserId(openId); if (user == null) { throw new InternalAuthenticationServiceException("openId错误"); } @@ -31,12 +37,4 @@ public class OpenIdAuthenticationProvider implements AuthenticationProvider { public boolean supports(Class authentication) { return OpenIdAuthenticationToken.class.isAssignableFrom(authentication); } - - public SocialUserDetailsService getUserDetailsService() { - return userDetailsService; - } - - public void setUserDetailsService(SocialUserDetailsService userDetailsService) { - this.userDetailsService = userDetailsService; - } } diff --git a/zlt-uaa/src/main/java/com/central/oauth/openid/OpenIdAuthenticationSecurityConfig.java b/zlt-uaa/src/main/java/com/central/oauth/openid/OpenIdAuthenticationSecurityConfig.java index 2a63c0b2..f5ef56cb 100644 --- a/zlt-uaa/src/main/java/com/central/oauth/openid/OpenIdAuthenticationSecurityConfig.java +++ b/zlt-uaa/src/main/java/com/central/oauth/openid/OpenIdAuthenticationSecurityConfig.java @@ -1,27 +1,30 @@ package com.central.oauth.openid; +import com.central.oauth.service.impl.UserDetailServiceFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.config.annotation.SecurityConfigurerAdapter; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.web.DefaultSecurityFilterChain; -import org.springframework.social.security.SocialUserDetailsService; import org.springframework.stereotype.Component; /** * openId的相关处理配置 * * @author zlt + *

    + * Blog: https://zlt2000.gitee.io + * Github: https://github.com/zlt2000 */ @Component public class OpenIdAuthenticationSecurityConfig extends SecurityConfigurerAdapter { @Autowired - private SocialUserDetailsService userDetailsService; + private UserDetailServiceFactory userDetailsServiceFactory; @Override public void configure(HttpSecurity http) { //openId provider OpenIdAuthenticationProvider provider = new OpenIdAuthenticationProvider(); - provider.setUserDetailsService(userDetailsService); + provider.setUserDetailsServiceFactory(userDetailsServiceFactory); http.authenticationProvider(provider); } } diff --git a/zlt-uaa/src/main/java/com/central/oauth/password/PasswordAuthenticationProvider.java b/zlt-uaa/src/main/java/com/central/oauth/password/PasswordAuthenticationProvider.java new file mode 100644 index 00000000..7fbdd579 --- /dev/null +++ b/zlt-uaa/src/main/java/com/central/oauth/password/PasswordAuthenticationProvider.java @@ -0,0 +1,148 @@ +package com.central.oauth.password; + +import com.central.oauth.service.impl.UserDetailServiceFactory; +import lombok.Getter; +import lombok.Setter; +import org.springframework.security.authentication.BadCredentialsException; +import org.springframework.security.authentication.InternalAuthenticationServiceException; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsPasswordService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.security.crypto.factory.PasswordEncoderFactories; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.util.Assert; + +/** + * 扩展用户名密码provider + * + * @author zlt + * @version 1.0 + * @date 2021/7/24 + *

    + * Blog: https://zlt2000.gitee.io + * Github: https://github.com/zlt2000 + */ +@Setter +@Getter +public class PasswordAuthenticationProvider extends AbstractUserDetailsAuthenticationProvider { + private UserDetailServiceFactory userDetailsServiceFactory; + + private static final String USER_NOT_FOUND_PASSWORD = "userNotFoundPassword"; + + private PasswordEncoder passwordEncoder; + + /** + * The password used to perform + * {@link PasswordEncoder#matches(CharSequence, String)} on when the user is + * not found to avoid SEC-2056. This is necessary, because some + * {@link PasswordEncoder} implementations will short circuit if the password is not + * in a valid format. + */ + private volatile String userNotFoundEncodedPassword; + + private UserDetailsPasswordService userDetailsPasswordService; + + public PasswordAuthenticationProvider() { + setPasswordEncoder(PasswordEncoderFactories.createDelegatingPasswordEncoder()); + } + + // ~ Methods + // ======================================================================================================== + + @Override + @SuppressWarnings("deprecation") + protected void additionalAuthenticationChecks(UserDetails userDetails, + UsernamePasswordAuthenticationToken authentication) + throws AuthenticationException { + if (authentication.getCredentials() == null) { + logger.debug("Authentication failed: no credentials provided"); + + throw new BadCredentialsException(messages.getMessage( + "AbstractUserDetailsAuthenticationProvider.badCredentials", + "Bad credentials")); + } + + String presentedPassword = authentication.getCredentials().toString(); + + if (!passwordEncoder.matches(presentedPassword, userDetails.getPassword())) { + logger.debug("Authentication failed: password does not match stored value"); + + throw new BadCredentialsException(messages.getMessage( + "AbstractUserDetailsAuthenticationProvider.badCredentials", + "Bad credentials")); + } + } + + @Override + protected void doAfterPropertiesSet() { + Assert.notNull(this.userDetailsServiceFactory, "A UserDetailsService must be set"); + } + + @Override + protected final UserDetails retrieveUser(String username, + UsernamePasswordAuthenticationToken authentication) + throws AuthenticationException { + prepareTimingAttackProtection(); + try { + UserDetails loadedUser = userDetailsServiceFactory.getService(authentication).loadUserByUsername(username); + if (loadedUser == null) { + throw new InternalAuthenticationServiceException( + "UserDetailsService returned null, which is an interface contract violation"); + } + return loadedUser; + } + catch (UsernameNotFoundException ex) { + mitigateAgainstTimingAttack(authentication); + throw ex; + } + catch (InternalAuthenticationServiceException ex) { + throw ex; + } + catch (Exception ex) { + throw new InternalAuthenticationServiceException(ex.getMessage(), ex); + } + } + + @Override + protected Authentication createSuccessAuthentication(Object principal, + Authentication authentication, UserDetails user) { + boolean upgradeEncoding = this.userDetailsPasswordService != null + && this.passwordEncoder.upgradeEncoding(user.getPassword()); + if (upgradeEncoding) { + String presentedPassword = authentication.getCredentials().toString(); + String newPassword = this.passwordEncoder.encode(presentedPassword); + user = this.userDetailsPasswordService.updatePassword(user, newPassword); + } + return super.createSuccessAuthentication(principal, authentication, user); + } + + private void prepareTimingAttackProtection() { + if (this.userNotFoundEncodedPassword == null) { + this.userNotFoundEncodedPassword = this.passwordEncoder.encode(USER_NOT_FOUND_PASSWORD); + } + } + + private void mitigateAgainstTimingAttack(UsernamePasswordAuthenticationToken authentication) { + if (authentication.getCredentials() != null) { + String presentedPassword = authentication.getCredentials().toString(); + this.passwordEncoder.matches(presentedPassword, this.userNotFoundEncodedPassword); + } + } + + /** + * Sets the PasswordEncoder instance to be used to encode and validate passwords. If + * not set, the password will be compared using {@link PasswordEncoderFactories#createDelegatingPasswordEncoder()} + * + * @param passwordEncoder must be an instance of one of the {@code PasswordEncoder} + * types. + */ + public void setPasswordEncoder(PasswordEncoder passwordEncoder) { + Assert.notNull(passwordEncoder, "passwordEncoder cannot be null"); + this.passwordEncoder = passwordEncoder; + this.userNotFoundEncodedPassword = null; + } +} diff --git a/zlt-uaa/src/main/java/com/central/oauth/service/ZltUserDetailsService.java b/zlt-uaa/src/main/java/com/central/oauth/service/ZltUserDetailsService.java index 5fbb2942..c02809d1 100644 --- a/zlt-uaa/src/main/java/com/central/oauth/service/ZltUserDetailsService.java +++ b/zlt-uaa/src/main/java/com/central/oauth/service/ZltUserDetailsService.java @@ -1,19 +1,35 @@ -package com.central.oauth.service; - -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.core.userdetails.UsernameNotFoundException; - -/** - * @author zlt - * @date 2018/12/28 - */ -public interface ZltUserDetailsService extends UserDetailsService { - /** - * 根据电话号码查询用户 - * - * @param mobile - * @return - */ - UserDetails loadUserByMobile(String mobile); -} +package com.central.oauth.service; + +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.social.security.SocialUserDetails; + +/** + * @author zlt + * @date 2018/12/28 + *

    + * Blog: https://zlt2000.gitee.io + * Github: https://github.com/zlt2000 + */ +public interface ZltUserDetailsService extends UserDetailsService { + /** + * 判断实现类是否属于该类型 + * @param accountType 账号类型 + */ + boolean supports(String accountType); + + /** + * 根据电话号码查询用户 + * + * @param mobile + * @return + */ + UserDetails loadUserByMobile(String mobile); + + /** + * 根据用户id/openId查询用户 + * @param userId 用户id/openId + */ + SocialUserDetails loadUserByUserId(String userId) throws UsernameNotFoundException; +} diff --git a/zlt-uaa/src/main/java/com/central/oauth/service/impl/CustomTokenServices.java b/zlt-uaa/src/main/java/com/central/oauth/service/impl/CustomTokenServices.java index 4f9f46ee..66e1c624 100644 --- a/zlt-uaa/src/main/java/com/central/oauth/service/impl/CustomTokenServices.java +++ b/zlt-uaa/src/main/java/com/central/oauth/service/impl/CustomTokenServices.java @@ -1,12 +1,21 @@ package com.central.oauth.service.impl; import com.central.common.constant.SecurityConstants; +import org.springframework.security.authentication.AbstractAuthenticationToken; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.core.Authentication; import org.springframework.security.core.AuthenticationException; import org.springframework.security.oauth2.common.*; +import org.springframework.security.oauth2.common.exceptions.InvalidGrantException; +import org.springframework.security.oauth2.common.exceptions.InvalidScopeException; +import org.springframework.security.oauth2.common.exceptions.InvalidTokenException; import org.springframework.security.oauth2.provider.OAuth2Authentication; +import org.springframework.security.oauth2.provider.OAuth2Request; +import org.springframework.security.oauth2.provider.TokenRequest; import org.springframework.security.oauth2.provider.token.DefaultTokenServices; import org.springframework.security.oauth2.provider.token.TokenEnhancer; import org.springframework.security.oauth2.provider.token.TokenStore; +import org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationToken; import org.springframework.transaction.annotation.Transactional; import java.util.Date; @@ -25,6 +34,9 @@ import java.util.UUID; public class CustomTokenServices extends DefaultTokenServices { private TokenStore tokenStore; private TokenEnhancer accessTokenEnhancer; + private AuthenticationManager authenticationManager; + private boolean supportRefreshToken = false; + private boolean reuseRefreshToken = true; /** * 是否登录同应用同账号互踢 @@ -131,6 +143,79 @@ public class CustomTokenServices extends DefaultTokenServices { return accessTokenEnhancer != null ? accessTokenEnhancer.enhance(token, authentication) : token; } + @Override + @Transactional(noRollbackFor={InvalidTokenException.class, InvalidGrantException.class}) + public OAuth2AccessToken refreshAccessToken(String refreshTokenValue, TokenRequest tokenRequest) + throws AuthenticationException { + if (!supportRefreshToken) { + throw new InvalidGrantException("Invalid refresh token: " + refreshTokenValue); + } + + OAuth2RefreshToken refreshToken = tokenStore.readRefreshToken(refreshTokenValue); + if (refreshToken == null) { + throw new InvalidGrantException("Invalid refresh token: " + refreshTokenValue); + } + + OAuth2Authentication authentication = tokenStore.readAuthenticationForRefreshToken(refreshToken); + if (this.authenticationManager != null && !authentication.isClientOnly()) { + AbstractAuthenticationToken userAuthentication = (AbstractAuthenticationToken)authentication.getUserAuthentication(); + Object usesrDetails = userAuthentication.getDetails(); + // The client has already been authenticated, but the user authentication might be old now, so give it a + // chance to re-authenticate. + Authentication user = new PreAuthenticatedAuthenticationToken(userAuthentication, "", authentication.getAuthorities()); + user = authenticationManager.authenticate(user); + //保存账号类型 + ((PreAuthenticatedAuthenticationToken)user).setDetails(usesrDetails); + Object details = authentication.getDetails(); + authentication = new OAuth2Authentication(authentication.getOAuth2Request(), user); + authentication.setDetails(details); + } + String clientId = authentication.getOAuth2Request().getClientId(); + if (clientId == null || !clientId.equals(tokenRequest.getClientId())) { + throw new InvalidGrantException("Wrong client for this refresh token: " + refreshTokenValue); + } + + // clear out any access tokens already associated with the refresh + // token. + tokenStore.removeAccessTokenUsingRefreshToken(refreshToken); + + if (isExpired(refreshToken)) { + tokenStore.removeRefreshToken(refreshToken); + throw new InvalidTokenException("Invalid refresh token (expired): " + refreshToken); + } + + authentication = createRefreshedAuthentication(authentication, tokenRequest); + if (!reuseRefreshToken) { + tokenStore.removeRefreshToken(refreshToken); + refreshToken = createRefreshToken(authentication); + } + + OAuth2AccessToken accessToken = createAccessToken(authentication, refreshToken); + tokenStore.storeAccessToken(accessToken, authentication); + if (!reuseRefreshToken) { + tokenStore.storeRefreshToken(accessToken.getRefreshToken(), authentication); + } + return accessToken; + } + + private OAuth2Authentication createRefreshedAuthentication(OAuth2Authentication authentication, TokenRequest request) { + OAuth2Authentication narrowed; + Set scope = request.getScope(); + OAuth2Request clientAuth = authentication.getOAuth2Request().refresh(request); + if (scope != null && !scope.isEmpty()) { + Set originalScope = clientAuth.getScope(); + if (originalScope == null || !originalScope.containsAll(scope)) { + throw new InvalidScopeException("Unable to narrow the scope of the client authentication to " + scope + + ".", originalScope); + } + else { + clientAuth = clientAuth.narrowScope(scope); + } + } + narrowed = new OAuth2Authentication(clientAuth, authentication.getUserAuthentication()); + return narrowed; + } + @Override public void setTokenStore(TokenStore tokenStore) { this.tokenStore = tokenStore; @@ -142,4 +227,32 @@ public class CustomTokenServices extends DefaultTokenServices { this.accessTokenEnhancer = accessTokenEnhancer; super.setTokenEnhancer(accessTokenEnhancer); } + + @Override + public void setAuthenticationManager(AuthenticationManager authenticationManager) { + this.authenticationManager = authenticationManager; + super.setAuthenticationManager(authenticationManager); + } + + /** + * Whether to support the refresh token. + * + * @param supportRefreshToken Whether to support the refresh token. + */ + @Override + public void setSupportRefreshToken(boolean supportRefreshToken) { + this.supportRefreshToken = supportRefreshToken; + super.setSupportRefreshToken(supportRefreshToken); + } + + /** + * Whether to reuse refresh tokens (until expired). + * + * @param reuseRefreshToken Whether to reuse refresh tokens (until expired). + */ + @Override + public void setReuseRefreshToken(boolean reuseRefreshToken) { + this.reuseRefreshToken = reuseRefreshToken; + super.setReuseRefreshToken(reuseRefreshToken); + } } diff --git a/zlt-uaa/src/main/java/com/central/oauth/service/impl/RedisTokensServiceImpl.java b/zlt-uaa/src/main/java/com/central/oauth/service/impl/RedisTokensServiceImpl.java index 3f65b800..70189dab 100644 --- a/zlt-uaa/src/main/java/com/central/oauth/service/impl/RedisTokensServiceImpl.java +++ b/zlt-uaa/src/main/java/com/central/oauth/service/impl/RedisTokensServiceImpl.java @@ -65,6 +65,10 @@ public class RedisTokensServiceImpl implements ITokensService { tokenVo.setGrantType(request.getGrantType()); } + Map additionalInformation = accessToken.getAdditionalInformation(); + String accountType = (String)additionalInformation.get(SecurityConstants.ACCOUNT_TYPE_PARAM_NAME); + tokenVo.setAccountType(accountType); + result.add(tokenVo); } } diff --git a/zlt-uaa/src/main/java/com/central/oauth/service/impl/UserDetailServiceFactory.java b/zlt-uaa/src/main/java/com/central/oauth/service/impl/UserDetailServiceFactory.java new file mode 100644 index 00000000..c8d61c3f --- /dev/null +++ b/zlt-uaa/src/main/java/com/central/oauth/service/impl/UserDetailServiceFactory.java @@ -0,0 +1,53 @@ +package com.central.oauth.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.central.common.constant.SecurityConstants; +import com.central.oauth.service.ZltUserDetailsService; +import com.central.oauth2.common.util.AuthUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.authentication.InternalAuthenticationServiceException; +import org.springframework.security.core.Authentication; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 用户service工厂 + * + * @author zlt + * @version 1.0 + * @date 2021/7/24 + *

    + * Blog: https://zlt2000.gitee.io + * Github: https://github.com/zlt2000 + */ +@Slf4j +@Service +public class UserDetailServiceFactory { + private static final String ERROR_MSG = "找不到账号类型为 {} 的实现类"; + + @Resource + private List userDetailsServices; + + public ZltUserDetailsService getService(Authentication authentication) { + String accountType = AuthUtils.getAccountType(authentication); + return this.getService(accountType); + } + + public ZltUserDetailsService getService(String accountType) { + if (StrUtil.isEmpty(accountType)) { + accountType = SecurityConstants.DEF_ACCOUNT_TYPE; + } + log.info("UserDetailServiceFactory.getService:{}", accountType); + if (CollUtil.isNotEmpty(userDetailsServices)) { + for (ZltUserDetailsService userService : userDetailsServices) { + if (userService.supports(accountType)) { + return userService; + } + } + } + throw new InternalAuthenticationServiceException(StrUtil.format(ERROR_MSG, accountType)); + } +} diff --git a/zlt-uaa/src/main/java/com/central/oauth/service/impl/UserDetailServiceImpl.java b/zlt-uaa/src/main/java/com/central/oauth/service/impl/UserDetailServiceImpl.java index 4e18ed7b..b240fd4f 100644 --- a/zlt-uaa/src/main/java/com/central/oauth/service/impl/UserDetailServiceImpl.java +++ b/zlt-uaa/src/main/java/com/central/oauth/service/impl/UserDetailServiceImpl.java @@ -1,54 +1,64 @@ -package com.central.oauth.service.impl; - -import com.central.common.feign.UserService; -import com.central.oauth.service.ZltUserDetailsService; -import org.springframework.security.authentication.DisabledException; -import org.springframework.security.authentication.InternalAuthenticationServiceException; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.social.security.SocialUserDetails; -import org.springframework.social.security.SocialUserDetailsService; -import org.springframework.stereotype.Service; - -import com.central.common.model.LoginAppUser; - -import lombok.extern.slf4j.Slf4j; - -import javax.annotation.Resource; - -/** - * @author zlt - */ -@Slf4j -@Service -public class UserDetailServiceImpl implements ZltUserDetailsService, SocialUserDetailsService { - @Resource - private UserService userService; - - @Override - public UserDetails loadUserByUsername(String username) { - LoginAppUser loginAppUser = userService.findByUsername(username); - if (loginAppUser == null) { - throw new InternalAuthenticationServiceException("用户名或密码错误"); - } - return checkUser(loginAppUser); - } - - @Override - public SocialUserDetails loadUserByUserId(String openId) { - LoginAppUser loginAppUser = userService.findByOpenId(openId); - return checkUser(loginAppUser); - } - - @Override - public UserDetails loadUserByMobile(String mobile) { - LoginAppUser loginAppUser = userService.findByMobile(mobile); - return checkUser(loginAppUser); - } - - private LoginAppUser checkUser(LoginAppUser loginAppUser) { - if (loginAppUser != null && !loginAppUser.isEnabled()) { - throw new DisabledException("用户已作废"); - } - return loginAppUser; - } -} +package com.central.oauth.service.impl; + +import com.central.common.constant.SecurityConstants; +import com.central.common.feign.UserService; +import com.central.oauth.service.ZltUserDetailsService; +import org.springframework.security.authentication.DisabledException; +import org.springframework.security.authentication.InternalAuthenticationServiceException; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.social.security.SocialUserDetails; +import org.springframework.stereotype.Service; + +import com.central.common.model.LoginAppUser; + +import lombok.extern.slf4j.Slf4j; + +import javax.annotation.Resource; + +/** + * @author zlt + *

    + * Blog: https://zlt2000.gitee.io + * Github: https://github.com/zlt2000 + */ +@Slf4j +@Service +public class UserDetailServiceImpl implements ZltUserDetailsService { + private static final String ACCOUNT_TYPE = SecurityConstants.DEF_ACCOUNT_TYPE; + + @Resource + private UserService userService; + + @Override + public boolean supports(String accountType) { + return ACCOUNT_TYPE.equals(accountType); + } + + @Override + public UserDetails loadUserByUsername(String username) { + LoginAppUser loginAppUser = userService.findByUsername(username); + if (loginAppUser == null) { + throw new InternalAuthenticationServiceException("用户名或密码错误"); + } + return checkUser(loginAppUser); + } + + @Override + public SocialUserDetails loadUserByUserId(String openId) { + LoginAppUser loginAppUser = userService.findByOpenId(openId); + return checkUser(loginAppUser); + } + + @Override + public UserDetails loadUserByMobile(String mobile) { + LoginAppUser loginAppUser = userService.findByMobile(mobile); + return checkUser(loginAppUser); + } + + private LoginAppUser checkUser(LoginAppUser loginAppUser) { + if (loginAppUser != null && !loginAppUser.isEnabled()) { + throw new DisabledException("用户已作废"); + } + return loginAppUser; + } +} diff --git a/zlt-uaa/src/main/java/com/central/oauth/service/impl/UserDetailsByNameServiceFactoryWrapper.java b/zlt-uaa/src/main/java/com/central/oauth/service/impl/UserDetailsByNameServiceFactoryWrapper.java new file mode 100644 index 00000000..39f02f2b --- /dev/null +++ b/zlt-uaa/src/main/java/com/central/oauth/service/impl/UserDetailsByNameServiceFactoryWrapper.java @@ -0,0 +1,59 @@ +package com.central.oauth.service.impl; + +import com.central.oauth.service.ZltUserDetailsService; +import lombok.Setter; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.userdetails.*; +import org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationToken; +import org.springframework.util.Assert; + +/** + * 重写 UserDetailsByNameServiceWrapper 支持多帐户类型 + * + * @author zlt + * @version 1.0 + * @date 2021/7/24 + * @see UserDetailsByNameServiceWrapper + *

    + * Blog: https://zlt2000.gitee.io + * Github: https://github.com/zlt2000 + */ +public class UserDetailsByNameServiceFactoryWrapper implements + AuthenticationUserDetailsService, InitializingBean { + @Setter + private UserDetailServiceFactory userDetailServiceFactory; + + public UserDetailsByNameServiceFactoryWrapper() { + + } + + public UserDetailsByNameServiceFactoryWrapper(final UserDetailServiceFactory userDetailServiceFactory) { + Assert.notNull(userDetailServiceFactory, "userDetailServiceFactory cannot be null."); + this.userDetailServiceFactory = userDetailServiceFactory; + } + + /** + * Check whether all required properties have been set. + * + * @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet() + */ + @Override + public void afterPropertiesSet() { + Assert.notNull(this.userDetailServiceFactory, "UserDetailServiceFactory must be set"); + } + + /** + * Get the UserDetails object from the wrapped UserDetailsService implementation + */ + @Override + public UserDetails loadUserDetails(T authentication) throws UsernameNotFoundException { + ZltUserDetailsService userDetailsService; + if (authentication instanceof PreAuthenticatedAuthenticationToken) { + userDetailsService = this.userDetailServiceFactory.getService((Authentication)authentication.getPrincipal()); + } else { + userDetailsService = this.userDetailServiceFactory.getService(authentication); + } + return userDetailsService.loadUserByUsername(authentication.getName()); + } +} diff --git a/zlt-uaa/src/main/java/com/central/oauth/tenant/OauthAuthorizeAspect.java b/zlt-uaa/src/main/java/com/central/oauth/tenant/OauthAuthorizeAspect.java index 3bc7bd93..8dec5042 100644 --- a/zlt-uaa/src/main/java/com/central/oauth/tenant/OauthAuthorizeAspect.java +++ b/zlt-uaa/src/main/java/com/central/oauth/tenant/OauthAuthorizeAspect.java @@ -1,14 +1,13 @@ package com.central.oauth.tenant; import com.central.common.context.TenantContextHolder; -import com.central.common.feign.UserService; import com.central.common.model.LoginAppUser; +import com.central.oauth.service.impl.UserDetailServiceFactory; import com.central.oauth2.common.token.TenantUsernamePasswordAuthenticationToken; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.oauth2.common.util.OAuth2Utils; import org.springframework.stereotype.Component; @@ -29,8 +28,11 @@ import java.util.Map; @Component @Aspect public class OauthAuthorizeAspect { - @Autowired - private UserService userService; + private final UserDetailServiceFactory userDetailsServiceFactory; + + public OauthAuthorizeAspect(UserDetailServiceFactory userDetailsServiceFactory) { + this.userDetailsServiceFactory = userDetailsServiceFactory; + } @Around("execution(* org.springframework.security.oauth2.provider.endpoint.AuthorizationEndpoint.authorize(..))") public Object doAroundMethod(ProceedingJoinPoint joinPoint) throws Throwable { @@ -43,11 +45,14 @@ public class OauthAuthorizeAspect { String requestClientId = parameters.get(OAuth2Utils.CLIENT_ID); //判断是否不同租户单点登录 if (!requestClientId.equals(clientId)) { + Object details = tenantToken.getDetails(); try { TenantContextHolder.setTenant(requestClientId); //重新查询对应该租户的角色等信息 - LoginAppUser user = userService.findByUsername(tenantToken.getName()); + LoginAppUser user = (LoginAppUser)userDetailsServiceFactory.getService(tenantToken) + .loadUserByUsername(tenantToken.getName()); tenantToken = new TenantUsernamePasswordAuthenticationToken(user, tenantToken.getCredentials(), user.getAuthorities(), requestClientId); + tenantToken.setDetails(details); args[3] = tenantToken; } finally { TenantContextHolder.clear(); diff --git a/zlt-uaa/src/main/java/com/central/oauth/tenant/TenantAuthenticationProvider.java b/zlt-uaa/src/main/java/com/central/oauth/tenant/TenantAuthenticationProvider.java index 8dc7e4bd..c76d0ddc 100644 --- a/zlt-uaa/src/main/java/com/central/oauth/tenant/TenantAuthenticationProvider.java +++ b/zlt-uaa/src/main/java/com/central/oauth/tenant/TenantAuthenticationProvider.java @@ -1,7 +1,7 @@ package com.central.oauth.tenant; +import com.central.oauth.password.PasswordAuthenticationProvider; import com.central.oauth2.common.token.TenantUsernamePasswordAuthenticationToken; -import org.springframework.security.authentication.dao.DaoAuthenticationProvider; import org.springframework.security.core.Authentication; import org.springframework.security.core.userdetails.UserDetails; @@ -14,7 +14,7 @@ import org.springframework.security.core.userdetails.UserDetails; * Blog: https://zlt2000.gitee.io * Github: https://github.com/zlt2000 */ -public class TenantAuthenticationProvider extends DaoAuthenticationProvider { +public class TenantAuthenticationProvider extends PasswordAuthenticationProvider { @Override protected Authentication createSuccessAuthentication(Object principal, Authentication authentication, UserDetails user) { diff --git a/zlt-uaa/src/main/java/com/central/oauth/tenant/TenantAuthenticationSecurityConfig.java b/zlt-uaa/src/main/java/com/central/oauth/tenant/TenantAuthenticationSecurityConfig.java index 88b75d71..1d00c9a9 100644 --- a/zlt-uaa/src/main/java/com/central/oauth/tenant/TenantAuthenticationSecurityConfig.java +++ b/zlt-uaa/src/main/java/com/central/oauth/tenant/TenantAuthenticationSecurityConfig.java @@ -1,6 +1,6 @@ package com.central.oauth.tenant; -import com.central.oauth.service.ZltUserDetailsService; +import com.central.oauth.service.impl.UserDetailServiceFactory; import org.springframework.security.config.annotation.SecurityConfigurerAdapter; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.crypto.password.PasswordEncoder; @@ -16,19 +16,19 @@ import org.springframework.stereotype.Component; */ @Component public class TenantAuthenticationSecurityConfig extends SecurityConfigurerAdapter { - private ZltUserDetailsService userDetailsService; + private final UserDetailServiceFactory userDetailsServiceFactory; - private PasswordEncoder passwordEncoder; + private final PasswordEncoder passwordEncoder; - public TenantAuthenticationSecurityConfig(ZltUserDetailsService userDetailsService, PasswordEncoder passwordEncoder) { - this.userDetailsService = userDetailsService; + public TenantAuthenticationSecurityConfig(UserDetailServiceFactory userDetailsServiceFactory, PasswordEncoder passwordEncoder) { + this.userDetailsServiceFactory = userDetailsServiceFactory; this.passwordEncoder = passwordEncoder; } @Override public void configure(HttpSecurity http) { TenantAuthenticationProvider provider = new TenantAuthenticationProvider(); - provider.setUserDetailsService(userDetailsService); + provider.setUserDetailsServiceFactory(userDetailsServiceFactory); provider.setPasswordEncoder(passwordEncoder); http.authenticationProvider(provider); } -- Gitee From efa0dc21e410451d673d830ab42ed62a1610132c Mon Sep 17 00:00:00 2001 From: zlt2000 Date: Mon, 26 Jul 2021 22:45:53 +0800 Subject: [PATCH 25/34] =?UTF-8?q?=E5=8D=87=E7=BA=A7=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 7 ++++--- pom.xml | 12 ++++++------ .../gateway/auth/Oauth2AuthSuccessHandler.java | 8 +++++--- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 2d3c2dc5..721e8d5e 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # zlt-microservices-platform

    - Downloads - Downloads - Downloads + Downloads + Downloads + Downloads Downloads star @@ -14,6 +14,7 @@

    + ## 如果您觉得有帮助,请点右上角 "Star" 支持一下谢谢   ## 1. 总体架构图 diff --git a/pom.xml b/pom.xml index af5017cf..02fa8b7e 100644 --- a/pom.xml +++ b/pom.xml @@ -13,9 +13,9 @@ 1.8 UTF-8 8 - 2.2.5.RELEASE - 2.3.11.RELEASE - Hoxton.SR9 + 2.2.6.RELEASE + 2.3.12.RELEASE + Hoxton.SR12 4.4 2.9.2 1.8.7 @@ -27,7 +27,7 @@ 3.1.0 2.3.8.RELEASE 1.1.0.RELEASE - 3.14.1 + 3.16.0 1.6.2 5.1.4 3.4.0 @@ -45,13 +45,13 @@ 5.0.2.RELEASE 1.27.2 1.21 - 2.12.0 + 2.12.1 1.0.2 1.9.4 1.1.6.RELEASE 2.7 4.0.1 - 4.1.3 + 4.2.3 7.11.2 2.0.5 6.2.0.Final diff --git a/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/auth/Oauth2AuthSuccessHandler.java b/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/auth/Oauth2AuthSuccessHandler.java index 8a02c897..ea1b1e8f 100644 --- a/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/auth/Oauth2AuthSuccessHandler.java +++ b/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/auth/Oauth2AuthSuccessHandler.java @@ -1,6 +1,7 @@ package com.central.gateway.auth; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; import com.central.common.constant.SecurityConstants; import com.central.common.model.SysUser; import com.central.oauth2.common.util.AuthUtils; @@ -26,7 +27,7 @@ import reactor.core.publisher.Mono; public class Oauth2AuthSuccessHandler implements ServerAuthenticationSuccessHandler { @Override public Mono onAuthenticationSuccess(WebFilterExchange webFilterExchange, Authentication authentication) { - MultiValueMap headerValues = new LinkedMultiValueMap(4); + MultiValueMap headerValues = new LinkedMultiValueMap<>(4); Object principal = authentication.getPrincipal(); //客户端模式只返回一个clientId if (principal instanceof SysUser) { @@ -39,8 +40,9 @@ public class Oauth2AuthSuccessHandler implements ServerAuthenticationSuccessHand headerValues.add(SecurityConstants.TENANT_HEADER, clientId); headerValues.add(SecurityConstants.ROLE_HEADER, CollectionUtil.join(authentication.getAuthorities(), ",")); String accountType = AuthUtils.getAccountType(oauth2Authentication.getUserAuthentication()); - headerValues.add(SecurityConstants.ACCOUNT_TYPE_HEADER, accountType); - + if (StrUtil.isNotEmpty(accountType)) { + headerValues.add(SecurityConstants.ACCOUNT_TYPE_HEADER, accountType); + } ServerWebExchange exchange = webFilterExchange.getExchange(); ServerHttpRequest serverHttpRequest = exchange.getRequest().mutate() .headers(h -> h.addAll(headerValues)) -- Gitee From 4679e706b92865db44d96f2e482e329ae6329069 Mon Sep 17 00:00:00 2001 From: zlt2000 Date: Tue, 27 Jul 2021 22:37:40 +0800 Subject: [PATCH 26/34] update to v4.6.0 --- pom.xml | 2 +- zlt-business/file-center/pom.xml | 2 +- zlt-business/pom.xml | 2 +- zlt-business/search-center/pom.xml | 2 +- zlt-business/search-center/search-client/pom.xml | 2 +- zlt-business/search-center/search-server/pom.xml | 2 +- zlt-business/user-center/pom.xml | 2 +- zlt-commons/pom.xml | 2 +- zlt-commons/zlt-auth-client-spring-boot-starter/pom.xml | 2 +- zlt-commons/zlt-common-core/pom.xml | 2 +- .../main/java/com/central/common/constant/CommonConstant.java | 2 +- zlt-commons/zlt-common-spring-boot-starter/pom.xml | 2 +- zlt-commons/zlt-db-spring-boot-starter/pom.xml | 2 +- zlt-commons/zlt-elasticsearch-spring-boot-starter/pom.xml | 2 +- zlt-commons/zlt-log-spring-boot-starter/pom.xml | 2 +- zlt-commons/zlt-oss-spring-boot-starter/pom.xml | 2 +- zlt-commons/zlt-redis-spring-boot-starter/pom.xml | 2 +- zlt-commons/zlt-ribbon-spring-boot-starter/pom.xml | 2 +- zlt-commons/zlt-sentinel-spring-boot-starter/pom.xml | 2 +- zlt-commons/zlt-swagger2-spring-boot-starter/pom.xml | 2 +- zlt-commons/zlt-zookeeper-spring-boot-starter/pom.xml | 2 +- zlt-config/pom.xml | 2 +- zlt-demo/dubbo-demo/pom.xml | 2 +- zlt-demo/pom.xml | 2 +- zlt-demo/rocketmq-demo/pom.xml | 2 +- zlt-demo/rocketmq-demo/rocketmq-consume/pom.xml | 2 +- zlt-demo/rocketmq-demo/rocketmq-produce/pom.xml | 2 +- zlt-demo/rocketmq-demo/rocketmq-transactional/pom.xml | 2 +- zlt-demo/seata-demo/account-service/pom.xml | 2 +- zlt-demo/seata-demo/business-service/pom.xml | 2 +- zlt-demo/seata-demo/order-service/pom.xml | 2 +- zlt-demo/seata-demo/pom.xml | 2 +- zlt-demo/seata-demo/seata-common-starter/pom.xml | 2 +- zlt-demo/seata-demo/storage-service/pom.xml | 2 +- zlt-demo/sharding-jdbc-demo/pom.xml | 2 +- zlt-demo/sso-demo/oidc-sso/pom.xml | 2 +- zlt-demo/sso-demo/pom.xml | 2 +- zlt-demo/sso-demo/ss-sso/pom.xml | 2 +- zlt-demo/sso-demo/web-sso/pom.xml | 2 +- zlt-demo/txlcn-demo/pom.xml | 2 +- zlt-demo/txlcn-demo/txlcn-demo-common/pom.xml | 2 +- zlt-demo/txlcn-demo/txlcn-demo-spring-service-a/pom.xml | 2 +- zlt-demo/txlcn-demo/txlcn-demo-spring-service-b/pom.xml | 2 +- zlt-demo/txlcn-demo/txlcn-demo-spring-service-c/pom.xml | 2 +- zlt-gateway/pom.xml | 2 +- zlt-gateway/sc-gateway/pom.xml | 2 +- zlt-gateway/zuul-gateway/pom.xml | 2 +- zlt-job/job-admin/pom.xml | 2 +- zlt-job/job-core/pom.xml | 2 +- zlt-job/job-executor-samples/pom.xml | 2 +- zlt-job/pom.xml | 2 +- zlt-monitor/log-center/pom.xml | 2 +- zlt-monitor/pom.xml | 2 +- zlt-monitor/sc-admin/pom.xml | 2 +- zlt-transaction/pom.xml | 2 +- zlt-transaction/txlcn-tm/pom.xml | 2 +- zlt-uaa/pom.xml | 2 +- 57 files changed, 57 insertions(+), 57 deletions(-) diff --git a/pom.xml b/pom.xml index 02fa8b7e..ef939f69 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ 4.0.0 com.zlt central-platform - 4.5.0 + 4.6.0 pom diff --git a/zlt-business/file-center/pom.xml b/zlt-business/file-center/pom.xml index b5570e95..d0cd74b5 100644 --- a/zlt-business/file-center/pom.xml +++ b/zlt-business/file-center/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-business - 4.5.0 + 4.6.0 file-center 文件中心 diff --git a/zlt-business/pom.xml b/zlt-business/pom.xml index e86e362b..fd423e61 100644 --- a/zlt-business/pom.xml +++ b/zlt-business/pom.xml @@ -4,7 +4,7 @@ com.zlt central-platform - 4.5.0 + 4.6.0 zlt-business 业务中心 diff --git a/zlt-business/search-center/pom.xml b/zlt-business/search-center/pom.xml index cf999827..e5ebf12c 100644 --- a/zlt-business/search-center/pom.xml +++ b/zlt-business/search-center/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-business - 4.5.0 + 4.6.0 search-center 搜索中心 diff --git a/zlt-business/search-center/search-client/pom.xml b/zlt-business/search-center/search-client/pom.xml index 9b073a66..c6e8caeb 100644 --- a/zlt-business/search-center/search-client/pom.xml +++ b/zlt-business/search-center/search-client/pom.xml @@ -4,7 +4,7 @@ com.zlt search-center - 4.5.0 + 4.6.0 search-client 搜索中心客户端 diff --git a/zlt-business/search-center/search-server/pom.xml b/zlt-business/search-center/search-server/pom.xml index b41f7f72..3b398718 100644 --- a/zlt-business/search-center/search-server/pom.xml +++ b/zlt-business/search-center/search-server/pom.xml @@ -4,7 +4,7 @@ com.zlt search-center - 4.5.0 + 4.6.0 search-server 搜索中心服务端 diff --git a/zlt-business/user-center/pom.xml b/zlt-business/user-center/pom.xml index 0eb84699..85216bea 100644 --- a/zlt-business/user-center/pom.xml +++ b/zlt-business/user-center/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-business - 4.5.0 + 4.6.0 user-center 用户中心 diff --git a/zlt-commons/pom.xml b/zlt-commons/pom.xml index 02bf37d5..c8fa009c 100644 --- a/zlt-commons/pom.xml +++ b/zlt-commons/pom.xml @@ -4,7 +4,7 @@ com.zlt central-platform - 4.5.0 + 4.6.0 zlt-commons 通用组件 diff --git a/zlt-commons/zlt-auth-client-spring-boot-starter/pom.xml b/zlt-commons/zlt-auth-client-spring-boot-starter/pom.xml index 2ba654c6..818cc096 100644 --- a/zlt-commons/zlt-auth-client-spring-boot-starter/pom.xml +++ b/zlt-commons/zlt-auth-client-spring-boot-starter/pom.xml @@ -5,7 +5,7 @@ com.zlt zlt-commons - 4.5.0 + 4.6.0 4.0.0 jar diff --git a/zlt-commons/zlt-common-core/pom.xml b/zlt-commons/zlt-common-core/pom.xml index 327e01f9..3e1d4c53 100644 --- a/zlt-commons/zlt-common-core/pom.xml +++ b/zlt-commons/zlt-common-core/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-commons - 4.5.0 + 4.6.0 zlt-common-core 公共通用组件 diff --git a/zlt-commons/zlt-common-core/src/main/java/com/central/common/constant/CommonConstant.java b/zlt-commons/zlt-common-core/src/main/java/com/central/common/constant/CommonConstant.java index dbd5beee..a112aac9 100644 --- a/zlt-commons/zlt-common-core/src/main/java/com/central/common/constant/CommonConstant.java +++ b/zlt-commons/zlt-common-core/src/main/java/com/central/common/constant/CommonConstant.java @@ -10,7 +10,7 @@ public interface CommonConstant { /** * 项目版本号(banner使用) */ - String PROJECT_VERSION = "4.5.0"; + String PROJECT_VERSION = "4.6.0"; /** * token请求头名称 diff --git a/zlt-commons/zlt-common-spring-boot-starter/pom.xml b/zlt-commons/zlt-common-spring-boot-starter/pom.xml index 2930b149..fca45b6e 100644 --- a/zlt-commons/zlt-common-spring-boot-starter/pom.xml +++ b/zlt-commons/zlt-common-spring-boot-starter/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-commons - 4.5.0 + 4.6.0 zlt-common-spring-boot-starter 公共通用组件 diff --git a/zlt-commons/zlt-db-spring-boot-starter/pom.xml b/zlt-commons/zlt-db-spring-boot-starter/pom.xml index 113b053e..d5229e84 100644 --- a/zlt-commons/zlt-db-spring-boot-starter/pom.xml +++ b/zlt-commons/zlt-db-spring-boot-starter/pom.xml @@ -5,7 +5,7 @@ com.zlt zlt-commons - 4.5.0 + 4.6.0 4.0.0 jar diff --git a/zlt-commons/zlt-elasticsearch-spring-boot-starter/pom.xml b/zlt-commons/zlt-elasticsearch-spring-boot-starter/pom.xml index 64bbda40..5cd39dae 100644 --- a/zlt-commons/zlt-elasticsearch-spring-boot-starter/pom.xml +++ b/zlt-commons/zlt-elasticsearch-spring-boot-starter/pom.xml @@ -5,7 +5,7 @@ com.zlt zlt-commons - 4.5.0 + 4.6.0 4.0.0 jar diff --git a/zlt-commons/zlt-log-spring-boot-starter/pom.xml b/zlt-commons/zlt-log-spring-boot-starter/pom.xml index 514046da..4394bdf5 100644 --- a/zlt-commons/zlt-log-spring-boot-starter/pom.xml +++ b/zlt-commons/zlt-log-spring-boot-starter/pom.xml @@ -5,7 +5,7 @@ com.zlt zlt-commons - 4.5.0 + 4.6.0 4.0.0 jar diff --git a/zlt-commons/zlt-oss-spring-boot-starter/pom.xml b/zlt-commons/zlt-oss-spring-boot-starter/pom.xml index 4731a7ee..c58f4890 100644 --- a/zlt-commons/zlt-oss-spring-boot-starter/pom.xml +++ b/zlt-commons/zlt-oss-spring-boot-starter/pom.xml @@ -5,7 +5,7 @@ com.zlt zlt-commons - 4.5.0 + 4.6.0 4.0.0 jar diff --git a/zlt-commons/zlt-redis-spring-boot-starter/pom.xml b/zlt-commons/zlt-redis-spring-boot-starter/pom.xml index 6a21599f..b985002d 100644 --- a/zlt-commons/zlt-redis-spring-boot-starter/pom.xml +++ b/zlt-commons/zlt-redis-spring-boot-starter/pom.xml @@ -5,7 +5,7 @@ com.zlt zlt-commons - 4.5.0 + 4.6.0 4.0.0 jar diff --git a/zlt-commons/zlt-ribbon-spring-boot-starter/pom.xml b/zlt-commons/zlt-ribbon-spring-boot-starter/pom.xml index 306ca51a..1c212de0 100644 --- a/zlt-commons/zlt-ribbon-spring-boot-starter/pom.xml +++ b/zlt-commons/zlt-ribbon-spring-boot-starter/pom.xml @@ -5,7 +5,7 @@ com.zlt zlt-commons - 4.5.0 + 4.6.0 4.0.0 jar diff --git a/zlt-commons/zlt-sentinel-spring-boot-starter/pom.xml b/zlt-commons/zlt-sentinel-spring-boot-starter/pom.xml index 59e60454..9b03466e 100644 --- a/zlt-commons/zlt-sentinel-spring-boot-starter/pom.xml +++ b/zlt-commons/zlt-sentinel-spring-boot-starter/pom.xml @@ -5,7 +5,7 @@ com.zlt zlt-commons - 4.5.0 + 4.6.0 4.0.0 jar diff --git a/zlt-commons/zlt-swagger2-spring-boot-starter/pom.xml b/zlt-commons/zlt-swagger2-spring-boot-starter/pom.xml index 5a23b12b..8cf6eb3d 100644 --- a/zlt-commons/zlt-swagger2-spring-boot-starter/pom.xml +++ b/zlt-commons/zlt-swagger2-spring-boot-starter/pom.xml @@ -5,7 +5,7 @@ com.zlt zlt-commons - 4.5.0 + 4.6.0 4.0.0 jar diff --git a/zlt-commons/zlt-zookeeper-spring-boot-starter/pom.xml b/zlt-commons/zlt-zookeeper-spring-boot-starter/pom.xml index c43d0958..e3e4d617 100644 --- a/zlt-commons/zlt-zookeeper-spring-boot-starter/pom.xml +++ b/zlt-commons/zlt-zookeeper-spring-boot-starter/pom.xml @@ -5,7 +5,7 @@ com.zlt zlt-commons - 4.5.0 + 4.6.0 4.0.0 jar diff --git a/zlt-config/pom.xml b/zlt-config/pom.xml index 5c833a94..9e5bb2b1 100644 --- a/zlt-config/pom.xml +++ b/zlt-config/pom.xml @@ -5,7 +5,7 @@ com.zlt central-platform - 4.5.0 + 4.6.0 4.0.0 jar diff --git a/zlt-demo/dubbo-demo/pom.xml b/zlt-demo/dubbo-demo/pom.xml index c4109041..9be3db24 100644 --- a/zlt-demo/dubbo-demo/pom.xml +++ b/zlt-demo/dubbo-demo/pom.xml @@ -6,7 +6,7 @@ com.zlt zlt-demo - 4.5.0 + 4.6.0 dubbo-demo diff --git a/zlt-demo/pom.xml b/zlt-demo/pom.xml index e87d30fd..e98c6aea 100644 --- a/zlt-demo/pom.xml +++ b/zlt-demo/pom.xml @@ -4,7 +4,7 @@ com.zlt central-platform - 4.5.0 + 4.6.0 zlt-demo pom diff --git a/zlt-demo/rocketmq-demo/pom.xml b/zlt-demo/rocketmq-demo/pom.xml index 99f79451..057dd160 100644 --- a/zlt-demo/rocketmq-demo/pom.xml +++ b/zlt-demo/rocketmq-demo/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-demo - 4.5.0 + 4.6.0 rocketmq-demo pom diff --git a/zlt-demo/rocketmq-demo/rocketmq-consume/pom.xml b/zlt-demo/rocketmq-demo/rocketmq-consume/pom.xml index 8c2bb68e..d4695b33 100644 --- a/zlt-demo/rocketmq-demo/rocketmq-consume/pom.xml +++ b/zlt-demo/rocketmq-demo/rocketmq-consume/pom.xml @@ -4,7 +4,7 @@ com.zlt rocketmq-demo - 4.5.0 + 4.6.0 rocketmq-consume rocketMQ消费者demo diff --git a/zlt-demo/rocketmq-demo/rocketmq-produce/pom.xml b/zlt-demo/rocketmq-demo/rocketmq-produce/pom.xml index a785b0ea..68dc8cba 100644 --- a/zlt-demo/rocketmq-demo/rocketmq-produce/pom.xml +++ b/zlt-demo/rocketmq-demo/rocketmq-produce/pom.xml @@ -4,7 +4,7 @@ com.zlt rocketmq-demo - 4.5.0 + 4.6.0 rocketmq-produce rocketMQ生产者demo diff --git a/zlt-demo/rocketmq-demo/rocketmq-transactional/pom.xml b/zlt-demo/rocketmq-demo/rocketmq-transactional/pom.xml index d7f8208b..52ef30fc 100644 --- a/zlt-demo/rocketmq-demo/rocketmq-transactional/pom.xml +++ b/zlt-demo/rocketmq-demo/rocketmq-transactional/pom.xml @@ -4,7 +4,7 @@ com.zlt rocketmq-demo - 4.5.0 + 4.6.0 rocketmq-transactional rocketMQ事务消息demo diff --git a/zlt-demo/seata-demo/account-service/pom.xml b/zlt-demo/seata-demo/account-service/pom.xml index 50654258..e7ee500a 100644 --- a/zlt-demo/seata-demo/account-service/pom.xml +++ b/zlt-demo/seata-demo/account-service/pom.xml @@ -5,7 +5,7 @@ com.zlt seata-demo - 4.5.0 + 4.6.0 account-service diff --git a/zlt-demo/seata-demo/business-service/pom.xml b/zlt-demo/seata-demo/business-service/pom.xml index 6d8a1db4..1c56e802 100644 --- a/zlt-demo/seata-demo/business-service/pom.xml +++ b/zlt-demo/seata-demo/business-service/pom.xml @@ -5,7 +5,7 @@ com.zlt seata-demo - 4.5.0 + 4.6.0 business-service diff --git a/zlt-demo/seata-demo/order-service/pom.xml b/zlt-demo/seata-demo/order-service/pom.xml index 6775d29b..b5697844 100644 --- a/zlt-demo/seata-demo/order-service/pom.xml +++ b/zlt-demo/seata-demo/order-service/pom.xml @@ -5,7 +5,7 @@ com.zlt seata-demo - 4.5.0 + 4.6.0 order-service diff --git a/zlt-demo/seata-demo/pom.xml b/zlt-demo/seata-demo/pom.xml index 7a230264..8772b764 100644 --- a/zlt-demo/seata-demo/pom.xml +++ b/zlt-demo/seata-demo/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-demo - 4.5.0 + 4.6.0 seata-demo seata分布式事务demo diff --git a/zlt-demo/seata-demo/seata-common-starter/pom.xml b/zlt-demo/seata-demo/seata-common-starter/pom.xml index d8dbbd61..358b81e3 100644 --- a/zlt-demo/seata-demo/seata-common-starter/pom.xml +++ b/zlt-demo/seata-demo/seata-common-starter/pom.xml @@ -5,7 +5,7 @@ com.zlt seata-demo - 4.5.0 + 4.6.0 seata-common-starter diff --git a/zlt-demo/seata-demo/storage-service/pom.xml b/zlt-demo/seata-demo/storage-service/pom.xml index b81cebe1..c4e7b453 100644 --- a/zlt-demo/seata-demo/storage-service/pom.xml +++ b/zlt-demo/seata-demo/storage-service/pom.xml @@ -5,7 +5,7 @@ com.zlt seata-demo - 4.5.0 + 4.6.0 storage-service diff --git a/zlt-demo/sharding-jdbc-demo/pom.xml b/zlt-demo/sharding-jdbc-demo/pom.xml index 7bfb5212..1d9f7db0 100644 --- a/zlt-demo/sharding-jdbc-demo/pom.xml +++ b/zlt-demo/sharding-jdbc-demo/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-demo - 4.5.0 + 4.6.0 sharding-jdbc-demo sharding-jdbc分库分表demo diff --git a/zlt-demo/sso-demo/oidc-sso/pom.xml b/zlt-demo/sso-demo/oidc-sso/pom.xml index 0410f65d..9ecff3cb 100644 --- a/zlt-demo/sso-demo/oidc-sso/pom.xml +++ b/zlt-demo/sso-demo/oidc-sso/pom.xml @@ -4,7 +4,7 @@ com.zlt sso-demo - 4.5.0 + 4.6.0 oidc-sso OIDC协议单点登录demo diff --git a/zlt-demo/sso-demo/pom.xml b/zlt-demo/sso-demo/pom.xml index 62d2136b..2efe1f3b 100644 --- a/zlt-demo/sso-demo/pom.xml +++ b/zlt-demo/sso-demo/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-demo - 4.5.0 + 4.6.0 sso-demo pom diff --git a/zlt-demo/sso-demo/ss-sso/pom.xml b/zlt-demo/sso-demo/ss-sso/pom.xml index 7e4deb3b..dd59d801 100644 --- a/zlt-demo/sso-demo/ss-sso/pom.xml +++ b/zlt-demo/sso-demo/ss-sso/pom.xml @@ -4,7 +4,7 @@ com.zlt sso-demo - 4.5.0 + 4.6.0 ss-sso springSecurity单点登录demo diff --git a/zlt-demo/sso-demo/web-sso/pom.xml b/zlt-demo/sso-demo/web-sso/pom.xml index dc369f23..d0826233 100644 --- a/zlt-demo/sso-demo/web-sso/pom.xml +++ b/zlt-demo/sso-demo/web-sso/pom.xml @@ -4,7 +4,7 @@ com.zlt sso-demo - 4.5.0 + 4.6.0 web-sso 前后端分离单点登录demo diff --git a/zlt-demo/txlcn-demo/pom.xml b/zlt-demo/txlcn-demo/pom.xml index 601c5329..78a6f287 100644 --- a/zlt-demo/txlcn-demo/pom.xml +++ b/zlt-demo/txlcn-demo/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-demo - 4.5.0 + 4.6.0 txlcn-demo txlcn分布式事务demo diff --git a/zlt-demo/txlcn-demo/txlcn-demo-common/pom.xml b/zlt-demo/txlcn-demo/txlcn-demo-common/pom.xml index 635e5103..b31e18ac 100644 --- a/zlt-demo/txlcn-demo/txlcn-demo-common/pom.xml +++ b/zlt-demo/txlcn-demo/txlcn-demo-common/pom.xml @@ -4,7 +4,7 @@ com.zlt txlcn-demo - 4.5.0 + 4.6.0 txlcn-demo-common demo-common diff --git a/zlt-demo/txlcn-demo/txlcn-demo-spring-service-a/pom.xml b/zlt-demo/txlcn-demo/txlcn-demo-spring-service-a/pom.xml index d8951f9a..2004e59c 100644 --- a/zlt-demo/txlcn-demo/txlcn-demo-spring-service-a/pom.xml +++ b/zlt-demo/txlcn-demo/txlcn-demo-spring-service-a/pom.xml @@ -3,7 +3,7 @@ com.zlt txlcn-demo - 4.5.0 + 4.6.0 4.0.0 diff --git a/zlt-demo/txlcn-demo/txlcn-demo-spring-service-b/pom.xml b/zlt-demo/txlcn-demo/txlcn-demo-spring-service-b/pom.xml index f1e119c6..697415af 100644 --- a/zlt-demo/txlcn-demo/txlcn-demo-spring-service-b/pom.xml +++ b/zlt-demo/txlcn-demo/txlcn-demo-spring-service-b/pom.xml @@ -3,7 +3,7 @@ com.zlt txlcn-demo - 4.5.0 + 4.6.0 4.0.0 txlcn-demo-spring-service-b diff --git a/zlt-demo/txlcn-demo/txlcn-demo-spring-service-c/pom.xml b/zlt-demo/txlcn-demo/txlcn-demo-spring-service-c/pom.xml index 7371f771..493a52e5 100644 --- a/zlt-demo/txlcn-demo/txlcn-demo-spring-service-c/pom.xml +++ b/zlt-demo/txlcn-demo/txlcn-demo-spring-service-c/pom.xml @@ -3,7 +3,7 @@ com.zlt txlcn-demo - 4.5.0 + 4.6.0 4.0.0 txlcn-demo-spring-service-c diff --git a/zlt-gateway/pom.xml b/zlt-gateway/pom.xml index 607244ec..f292251b 100644 --- a/zlt-gateway/pom.xml +++ b/zlt-gateway/pom.xml @@ -4,7 +4,7 @@ com.zlt central-platform - 4.5.0 + 4.6.0 zlt-gateway pom diff --git a/zlt-gateway/sc-gateway/pom.xml b/zlt-gateway/sc-gateway/pom.xml index 4e77259f..78712a8c 100644 --- a/zlt-gateway/sc-gateway/pom.xml +++ b/zlt-gateway/sc-gateway/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-gateway - 4.5.0 + 4.6.0 sc-gateway spring cloud gateway网关 diff --git a/zlt-gateway/zuul-gateway/pom.xml b/zlt-gateway/zuul-gateway/pom.xml index f0c64d58..35ee5697 100644 --- a/zlt-gateway/zuul-gateway/pom.xml +++ b/zlt-gateway/zuul-gateway/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-gateway - 4.5.0 + 4.6.0 zuul-gateway zuul网关 diff --git a/zlt-job/job-admin/pom.xml b/zlt-job/job-admin/pom.xml index 329fbd12..8d8d8462 100644 --- a/zlt-job/job-admin/pom.xml +++ b/zlt-job/job-admin/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-job - 4.5.0 + 4.6.0 job-admin jar diff --git a/zlt-job/job-core/pom.xml b/zlt-job/job-core/pom.xml index f09708ae..4a476ac5 100644 --- a/zlt-job/job-core/pom.xml +++ b/zlt-job/job-core/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-job - 4.5.0 + 4.6.0 job-core jar diff --git a/zlt-job/job-executor-samples/pom.xml b/zlt-job/job-executor-samples/pom.xml index 38cf9002..b0f206ae 100644 --- a/zlt-job/job-executor-samples/pom.xml +++ b/zlt-job/job-executor-samples/pom.xml @@ -6,7 +6,7 @@ com.zlt zlt-job - 4.5.0 + 4.6.0 job-executor-samples jar diff --git a/zlt-job/pom.xml b/zlt-job/pom.xml index 84206580..95777d38 100644 --- a/zlt-job/pom.xml +++ b/zlt-job/pom.xml @@ -4,7 +4,7 @@ com.zlt central-platform - 4.5.0 + 4.6.0 zlt-job pom diff --git a/zlt-monitor/log-center/pom.xml b/zlt-monitor/log-center/pom.xml index 68e0624a..4f011845 100644 --- a/zlt-monitor/log-center/pom.xml +++ b/zlt-monitor/log-center/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-monitor - 4.5.0 + 4.6.0 log-center diff --git a/zlt-monitor/pom.xml b/zlt-monitor/pom.xml index 2ca56104..1737222d 100644 --- a/zlt-monitor/pom.xml +++ b/zlt-monitor/pom.xml @@ -3,7 +3,7 @@ com.zlt central-platform - 4.5.0 + 4.6.0 zlt-monitor pom diff --git a/zlt-monitor/sc-admin/pom.xml b/zlt-monitor/sc-admin/pom.xml index a06451f3..fb5a6c2b 100644 --- a/zlt-monitor/sc-admin/pom.xml +++ b/zlt-monitor/sc-admin/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-monitor - 4.5.0 + 4.6.0 sc-admin diff --git a/zlt-transaction/pom.xml b/zlt-transaction/pom.xml index 8009677d..d87be893 100644 --- a/zlt-transaction/pom.xml +++ b/zlt-transaction/pom.xml @@ -4,7 +4,7 @@ com.zlt central-platform - 4.5.0 + 4.6.0 zlt-transaction 事务 diff --git a/zlt-transaction/txlcn-tm/pom.xml b/zlt-transaction/txlcn-tm/pom.xml index d85358f4..c8e3c390 100644 --- a/zlt-transaction/txlcn-tm/pom.xml +++ b/zlt-transaction/txlcn-tm/pom.xml @@ -3,7 +3,7 @@ com.zlt zlt-transaction - 4.5.0 + 4.6.0 4.0.0 txlcn-tm diff --git a/zlt-uaa/pom.xml b/zlt-uaa/pom.xml index d3133a9a..1681f82a 100644 --- a/zlt-uaa/pom.xml +++ b/zlt-uaa/pom.xml @@ -4,7 +4,7 @@ com.zlt central-platform - 4.5.0 + 4.6.0 zlt-uaa 认证中心 -- Gitee From e957150b12ed046d1aa5b1d2fb1998afcc35d19b Mon Sep 17 00:00:00 2001 From: zlt2000 Date: Sun, 8 Aug 2021 22:13:11 +0800 Subject: [PATCH 27/34] =?UTF-8?q?=E5=8D=87=E7=BA=A7Spring=20Boot=E5=88=B02?= =?UTF-8?q?.5.x=EF=BC=8C=E5=8D=87=E7=BA=A7Spring=20Cloud=E5=88=B02020.x?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 9 +- pom.xml | 47 ++++- zlt-business/file-center/pom.xml | 2 +- .../main/java/com/central/FileCenterApp.java | 2 +- .../search-center/search-client/pom.xml | 2 +- .../AggregationServiceFallbackFactory.java | 2 +- .../SearchServiceFallbackFactory.java | 2 +- zlt-business/user-center/pom.xml | 7 +- .../main/java/com/central/UserCenterApp.java | 2 +- zlt-commons/pom.xml | 2 +- .../impl/DefaultPermissionServiceImpl.java | 5 +- .../fallback/UserServiceFallbackFactory.java | 2 +- .../pom.xml | 96 +++++----- .../common/lb}/RestTemplateAutoConfigure.java | 157 ++++++++-------- .../EnableBaseFeignInterceptor.java | 6 +- .../annotation/EnableFeignInterceptor.java | 8 +- .../config/FeignHttpInterceptorConfig.java | 2 +- .../lb}/config/FeignInterceptorConfig.java | 5 +- .../lb}/config/RestTemplateProperties.java | 69 +++---- .../main/resources/META-INF/spring.factories | 2 + .../common/ribbon/FeignAutoConfigure.java | 21 --- .../ribbon/LbIsolationAutoConfigure.java | 21 --- .../common/ribbon/RibbonAutoConfigure.java | 20 --- .../common/ribbon/config/RuleConfigure.java | 24 --- .../ribbon/filter/LbIsolationFilter.java | 50 ------ .../ribbon/rule/VersionIsolationRule.java | 80 --------- .../ribbon/DefaultPropertiesFactory.java | 50 ------ .../main/resources/META-INF/spring.factories | 6 - .../src/main/resources/application.properties | 17 +- zlt-demo/seata-demo/business-service/pom.xml | 2 +- zlt-demo/seata-demo/order-service/pom.xml | 2 +- zlt-demo/seata-demo/storage-service/pom.xml | 2 +- zlt-demo/txlcn-demo/txlcn-demo-common/pom.xml | 2 +- zlt-gateway/pom.xml | 2 - zlt-gateway/sc-gateway/pom.xml | 6 +- .../main/java/com/central/SCGatewayApp.java | 2 +- .../gateway/auth/PermissionAuthManager.java | 16 +- .../config/AsycTaskExecutorConfig.java | 33 ++-- .../central/gateway/config/CorsConfig.java | 2 +- .../gateway/feign/AsynMenuService.java | 35 ++++ .../fallback/MenuServiceFallbackFactory.java | 2 +- .../gateway/filter/LbIsolationFilter.java | 6 +- zlt-gateway/zuul-gateway/Dockerfile | 13 -- zlt-gateway/zuul-gateway/pom.xml | 150 ---------------- .../src/main/java/com/central/GatewayApp.java | 23 --- .../gateway/config/CorsConfigration.java | 48 ----- .../config/DynamicZuulRouteConfig.java | 45 ----- .../config/ResourceServerConfiguration.java | 22 --- .../central/gateway/config/SwaggerConfig.java | 16 -- .../gateway/config/ZuulRouteEntity.java | 49 ----- .../central/gateway/feign/MenuService.java | 23 --- .../fallback/MenuServiceFallbackFactory.java | 25 --- .../filter/pre/RequestStatisticsFilter.java | 79 -------- .../gateway/filter/pre/TraceFilter.java | 51 ------ .../filter/pre/UserInfoHeaderFilter.java | 65 ------- .../route/AbstractDynRouteLocator.java | 64 ------- .../route/nacos/NacosDynRouteLocator.java | 113 ------------ .../service/impl/PermissionServiceImpl.java | 33 ---- ...itional-spring-configuration-metadata.json | 16 -- .../src/main/resources/application.yml | 169 ------------------ .../src/main/resources/bootstrap.yml | 9 - .../src/main/resources/pubkey.txt | 9 - zlt-monitor/log-center/pom.xml | 2 +- zlt-uaa/pom.xml | 9 +- .../main/java/com/central/UaaServerApp.java | 9 +- .../service/impl/ValidateCodeServiceImpl.java | 8 +- 66 files changed, 344 insertions(+), 1536 deletions(-) rename zlt-commons/{zlt-ribbon-spring-boot-starter => zlt-loadbalancer-spring-boot-starter}/pom.xml (87%) rename zlt-commons/{zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon => zlt-loadbalancer-spring-boot-starter/src/main/java/com/central/common/lb}/RestTemplateAutoConfigure.java (88%) rename zlt-commons/{zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon => zlt-loadbalancer-spring-boot-starter/src/main/java/com/central/common/lb}/annotation/EnableBaseFeignInterceptor.java (83%) rename zlt-commons/{zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon => zlt-loadbalancer-spring-boot-starter/src/main/java/com/central/common/lb}/annotation/EnableFeignInterceptor.java (74%) rename zlt-commons/{zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon => zlt-loadbalancer-spring-boot-starter/src/main/java/com/central/common/lb}/config/FeignHttpInterceptorConfig.java (98%) rename zlt-commons/{zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon => zlt-loadbalancer-spring-boot-starter/src/main/java/com/central/common/lb}/config/FeignInterceptorConfig.java (87%) rename zlt-commons/{zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon => zlt-loadbalancer-spring-boot-starter/src/main/java/com/central/common/lb}/config/RestTemplateProperties.java (84%) create mode 100644 zlt-commons/zlt-loadbalancer-spring-boot-starter/src/main/resources/META-INF/spring.factories delete mode 100644 zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/FeignAutoConfigure.java delete mode 100644 zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/LbIsolationAutoConfigure.java delete mode 100644 zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/RibbonAutoConfigure.java delete mode 100644 zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/config/RuleConfigure.java delete mode 100644 zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/filter/LbIsolationFilter.java delete mode 100644 zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/rule/VersionIsolationRule.java delete mode 100644 zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/org/springframework/cloud/netflix/ribbon/DefaultPropertiesFactory.java delete mode 100644 zlt-commons/zlt-ribbon-spring-boot-starter/src/main/resources/META-INF/spring.factories rename zlt-gateway/{zuul-gateway => sc-gateway}/src/main/java/com/central/gateway/config/AsycTaskExecutorConfig.java (71%) create mode 100644 zlt-gateway/sc-gateway/src/main/java/com/central/gateway/feign/AsynMenuService.java delete mode 100644 zlt-gateway/zuul-gateway/Dockerfile delete mode 100644 zlt-gateway/zuul-gateway/pom.xml delete mode 100644 zlt-gateway/zuul-gateway/src/main/java/com/central/GatewayApp.java delete mode 100644 zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/config/CorsConfigration.java delete mode 100644 zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/config/DynamicZuulRouteConfig.java delete mode 100644 zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/config/ResourceServerConfiguration.java delete mode 100644 zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/config/SwaggerConfig.java delete mode 100644 zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/config/ZuulRouteEntity.java delete mode 100644 zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/feign/MenuService.java delete mode 100644 zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/feign/fallback/MenuServiceFallbackFactory.java delete mode 100644 zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/filter/pre/RequestStatisticsFilter.java delete mode 100644 zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/filter/pre/TraceFilter.java delete mode 100644 zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/filter/pre/UserInfoHeaderFilter.java delete mode 100644 zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/route/AbstractDynRouteLocator.java delete mode 100644 zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/route/nacos/NacosDynRouteLocator.java delete mode 100644 zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/service/impl/PermissionServiceImpl.java delete mode 100644 zlt-gateway/zuul-gateway/src/main/resources/META-INF/additional-spring-configuration-metadata.json delete mode 100644 zlt-gateway/zuul-gateway/src/main/resources/application.yml delete mode 100644 zlt-gateway/zuul-gateway/src/main/resources/bootstrap.yml delete mode 100644 zlt-gateway/zuul-gateway/src/main/resources/pubkey.txt diff --git a/README.md b/README.md index 721e8d5e..d794470d 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # zlt-microservices-platform

    - Downloads - Downloads - Downloads + Downloads + Downloads + Downloads Downloads star @@ -75,7 +75,7 @@ central-platform -- 父项目,公共依赖 │ │ ├─zlt-db-spring-boot-starter -- 封装数据库通用操作逻辑 │ │ ├─zlt-log-spring-boot-starter -- 封装log通用操作逻辑 │ │ ├─zlt-redis-spring-boot-starter -- 封装Redis通用操作逻辑 -│ │ ├─zlt-ribbon-spring-boot-starter -- 封装Ribbon和Feign的通用操作逻辑 +│ │ ├─zlt-loadbalancer-spring-boot-starter -- 封装Loadbalancer和Feign的通用操作逻辑 │ │ ├─zlt-sentinel-spring-boot-starter -- 封装Sentinel的通用操作逻辑 │ │ ├─zlt-swagger2-spring-boot-starter -- 封装Swagger通用操作逻辑 │ │ ├─zlt-elasticsearch-spring-boot-starter -- 封装Elasticsearch通用操作逻辑 @@ -85,7 +85,6 @@ central-platform -- 父项目,公共依赖 │ ├─zlt-doc -- 项目文档 │ ├─zlt-gateway -- api网关一级工程 │ │ ├─sc-gateway -- spring-cloud-gateway[9900] -│ │ ├─zuul-gateway -- netflix-zuul[9900] │ ├─zlt-job -- 分布式任务调度一级工程 │ │ ├─job-admin -- 任务管理器[8081] │ │ ├─job-core -- 任务调度核心代码 diff --git a/pom.xml b/pom.xml index ef939f69..d7ba35ca 100644 --- a/pom.xml +++ b/pom.xml @@ -13,21 +13,21 @@ 1.8 UTF-8 8 - 2.2.6.RELEASE - 2.3.12.RELEASE - Hoxton.SR12 + 2021.1 + 2.5.3 + 2020.0.3 4.4 2.9.2 1.8.7 1.0.6 2.0.1 0.9.1 - 1.1.22 + 1.2.6 1.14 3.1.0 2.3.8.RELEASE 1.1.0.RELEASE - 3.16.0 + 3.16.1 1.6.2 5.1.4 3.4.0 @@ -57,6 +57,11 @@ 6.2.0.Final 2.7.8 5.1.0 + 2.12.4 + 1.10 + 2.2.9.RELEASE + 1.12.40 + 2.2.5.RELEASE 1.2.2 zlt-job/**/*, zlt-register/**/*, zlt-web/**/* openjdk:8-jre-alpine @@ -94,6 +99,11 @@ spring-boot-starter-test test + + + org.springframework.cloud + spring-cloud-starter-bootstrap + @@ -126,7 +136,7 @@ com.zlt - zlt-ribbon-spring-boot-starter + zlt-loadbalancer-spring-boot-starter ${project.version} @@ -414,6 +424,31 @@ curator-framework ${curator.version} + + com.fasterxml.jackson.core + jackson-databind + ${jackson-databind.version} + + + org.springframework.cloud + spring-cloud-starter-oauth2 + ${spring-cloud-starter-oauth2.version} + + + com.amazonaws + aws-java-sdk-s3 + ${aws-java-sdk-s3.version} + + + org.springframework.cloud + spring-cloud-starter-netflix-zuul + ${zuul.version} + + + commons-configuration + commons-configuration + ${commons-configuration.version} + org.springframework.boot diff --git a/zlt-business/file-center/pom.xml b/zlt-business/file-center/pom.xml index d0cd74b5..491a19e2 100644 --- a/zlt-business/file-center/pom.xml +++ b/zlt-business/file-center/pom.xml @@ -24,7 +24,7 @@ com.zlt - zlt-ribbon-spring-boot-starter + zlt-loadbalancer-spring-boot-starter com.zlt diff --git a/zlt-business/file-center/src/main/java/com/central/FileCenterApp.java b/zlt-business/file-center/src/main/java/com/central/FileCenterApp.java index 1b83196d..a0a9a6cf 100644 --- a/zlt-business/file-center/src/main/java/com/central/FileCenterApp.java +++ b/zlt-business/file-center/src/main/java/com/central/FileCenterApp.java @@ -1,6 +1,6 @@ package com.central; -import com.central.common.ribbon.annotation.EnableFeignInterceptor; +import com.central.common.lb.annotation.EnableFeignInterceptor; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; diff --git a/zlt-business/search-center/search-client/pom.xml b/zlt-business/search-center/search-client/pom.xml index c6e8caeb..2b9213ec 100644 --- a/zlt-business/search-center/search-client/pom.xml +++ b/zlt-business/search-center/search-client/pom.xml @@ -13,7 +13,7 @@ com.zlt - zlt-ribbon-spring-boot-starter + zlt-loadbalancer-spring-boot-starter com.zlt diff --git a/zlt-business/search-center/search-client/src/main/java/com/central/search/client/feign/fallback/AggregationServiceFallbackFactory.java b/zlt-business/search-center/search-client/src/main/java/com/central/search/client/feign/fallback/AggregationServiceFallbackFactory.java index 86c2534e..bc3b9ff7 100644 --- a/zlt-business/search-center/search-client/src/main/java/com/central/search/client/feign/fallback/AggregationServiceFallbackFactory.java +++ b/zlt-business/search-center/search-client/src/main/java/com/central/search/client/feign/fallback/AggregationServiceFallbackFactory.java @@ -2,7 +2,7 @@ package com.central.search.client.feign.fallback; import cn.hutool.core.map.MapUtil; import com.central.search.client.feign.AggregationService; -import feign.hystrix.FallbackFactory; +import org.springframework.cloud.openfeign.FallbackFactory; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; diff --git a/zlt-business/search-center/search-client/src/main/java/com/central/search/client/feign/fallback/SearchServiceFallbackFactory.java b/zlt-business/search-center/search-client/src/main/java/com/central/search/client/feign/fallback/SearchServiceFallbackFactory.java index ac81ee77..ad2cb5b3 100644 --- a/zlt-business/search-center/search-client/src/main/java/com/central/search/client/feign/fallback/SearchServiceFallbackFactory.java +++ b/zlt-business/search-center/search-client/src/main/java/com/central/search/client/feign/fallback/SearchServiceFallbackFactory.java @@ -3,7 +3,7 @@ package com.central.search.client.feign.fallback; import com.central.common.model.PageResult; import com.central.search.client.feign.SearchService; import com.fasterxml.jackson.databind.JsonNode; -import feign.hystrix.FallbackFactory; +import org.springframework.cloud.openfeign.FallbackFactory; import lombok.extern.slf4j.Slf4j; /** diff --git a/zlt-business/user-center/pom.xml b/zlt-business/user-center/pom.xml index 85216bea..857c7701 100644 --- a/zlt-business/user-center/pom.xml +++ b/zlt-business/user-center/pom.xml @@ -28,7 +28,7 @@ com.zlt - zlt-ribbon-spring-boot-starter + zlt-loadbalancer-spring-boot-starter com.zlt @@ -81,6 +81,11 @@ org.hibernate hibernate-validator + + junit + junit + test + diff --git a/zlt-business/user-center/src/main/java/com/central/UserCenterApp.java b/zlt-business/user-center/src/main/java/com/central/UserCenterApp.java index 4ba97bcd..5da788be 100644 --- a/zlt-business/user-center/src/main/java/com/central/UserCenterApp.java +++ b/zlt-business/user-center/src/main/java/com/central/UserCenterApp.java @@ -1,6 +1,6 @@ package com.central; -import com.central.common.ribbon.annotation.EnableFeignInterceptor; +import com.central.common.lb.annotation.EnableFeignInterceptor; import com.central.search.annotation.EnableSearchClient; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; diff --git a/zlt-commons/pom.xml b/zlt-commons/pom.xml index c8fa009c..0f78ccaf 100644 --- a/zlt-commons/pom.xml +++ b/zlt-commons/pom.xml @@ -16,7 +16,7 @@ zlt-db-spring-boot-starter zlt-swagger2-spring-boot-starter zlt-log-spring-boot-starter - zlt-ribbon-spring-boot-starter + zlt-loadbalancer-spring-boot-starter zlt-auth-client-spring-boot-starter zlt-sentinel-spring-boot-starter zlt-common-core diff --git a/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/service/impl/DefaultPermissionServiceImpl.java b/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/service/impl/DefaultPermissionServiceImpl.java index 496f783a..ec35fb3b 100644 --- a/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/service/impl/DefaultPermissionServiceImpl.java +++ b/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/service/impl/DefaultPermissionServiceImpl.java @@ -25,6 +25,9 @@ import java.util.stream.Collectors; * * @author zlt * @date 2018/10/28 + *

    + * Blog: https://zlt2000.gitee.io + * Github: https://github.com/zlt2000 */ @Slf4j public abstract class DefaultPermissionServiceImpl { @@ -32,7 +35,7 @@ public abstract class DefaultPermissionServiceImpl { @Autowired private SecurityProperties securityProperties; - private AntPathMatcher antPathMatcher = new AntPathMatcher(); + private final AntPathMatcher antPathMatcher = new AntPathMatcher(); /** * 查询当前用户拥有的资源权限 diff --git a/zlt-commons/zlt-common-core/src/main/java/com/central/common/feign/fallback/UserServiceFallbackFactory.java b/zlt-commons/zlt-common-core/src/main/java/com/central/common/feign/fallback/UserServiceFallbackFactory.java index cde1ff9a..1b7bbec8 100644 --- a/zlt-commons/zlt-common-core/src/main/java/com/central/common/feign/fallback/UserServiceFallbackFactory.java +++ b/zlt-commons/zlt-common-core/src/main/java/com/central/common/feign/fallback/UserServiceFallbackFactory.java @@ -3,7 +3,7 @@ package com.central.common.feign.fallback; import com.central.common.feign.UserService; import com.central.common.model.LoginAppUser; import com.central.common.model.SysUser; -import feign.hystrix.FallbackFactory; +import org.springframework.cloud.openfeign.FallbackFactory; import lombok.extern.slf4j.Slf4j; /** diff --git a/zlt-commons/zlt-ribbon-spring-boot-starter/pom.xml b/zlt-commons/zlt-loadbalancer-spring-boot-starter/pom.xml similarity index 87% rename from zlt-commons/zlt-ribbon-spring-boot-starter/pom.xml rename to zlt-commons/zlt-loadbalancer-spring-boot-starter/pom.xml index 1c212de0..09797311 100644 --- a/zlt-commons/zlt-ribbon-spring-boot-starter/pom.xml +++ b/zlt-commons/zlt-loadbalancer-spring-boot-starter/pom.xml @@ -1,48 +1,48 @@ - - - - com.zlt - zlt-commons - 4.6.0 - - 4.0.0 - jar - zlt-ribbon-spring-boot-starter - 远程通信通用组件 - - - com.zlt - zlt-common-core - - - org.springframework.cloud - spring-cloud-starter-openfeign - - - org.springframework.cloud - spring-cloud-starter-netflix-ribbon - - - com.alibaba.cloud - spring-cloud-starter-alibaba-nacos-discovery - true - - - org.apache.httpcomponents - httpclient - - - javax.servlet - javax.servlet-api - true - - - - org.springframework.boot - spring-boot-configuration-processor - true - - - + + + + com.zlt + zlt-commons + 4.6.0 + + 4.0.0 + jar + zlt-loadbalancer-spring-boot-starter + 负载均衡通用组件 + + + com.zlt + zlt-common-core + + + org.springframework.cloud + spring-cloud-starter-openfeign + + + org.springframework.cloud + spring-cloud-starter-loadbalancer + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + true + + + org.apache.httpcomponents + httpclient + + + javax.servlet + javax.servlet-api + true + + + + org.springframework.boot + spring-boot-configuration-processor + true + + + diff --git a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/RestTemplateAutoConfigure.java b/zlt-commons/zlt-loadbalancer-spring-boot-starter/src/main/java/com/central/common/lb/RestTemplateAutoConfigure.java similarity index 88% rename from zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/RestTemplateAutoConfigure.java rename to zlt-commons/zlt-loadbalancer-spring-boot-starter/src/main/java/com/central/common/lb/RestTemplateAutoConfigure.java index c96fb859..090a1d3f 100644 --- a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/RestTemplateAutoConfigure.java +++ b/zlt-commons/zlt-loadbalancer-spring-boot-starter/src/main/java/com/central/common/lb/RestTemplateAutoConfigure.java @@ -1,77 +1,80 @@ -package com.central.common.ribbon; - -import com.central.common.ribbon.config.RestTemplateProperties; -import org.apache.http.client.HttpClient; -import org.apache.http.client.config.RequestConfig; -import org.apache.http.config.Registry; -import org.apache.http.config.RegistryBuilder; -import org.apache.http.conn.socket.ConnectionSocketFactory; -import org.apache.http.conn.socket.PlainConnectionSocketFactory; -import org.apache.http.conn.ssl.SSLConnectionSocketFactory; -import org.apache.http.impl.client.DefaultHttpRequestRetryHandler; -import org.apache.http.impl.client.HttpClientBuilder; -import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.client.loadbalancer.LoadBalanced; -import org.springframework.context.annotation.Bean; -import org.springframework.http.client.ClientHttpRequestFactory; -import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; -import org.springframework.web.client.RestTemplate; - -/** - * @author zlt - * @date 2018/11/17 - */ -@EnableConfigurationProperties(RestTemplateProperties.class) -public class RestTemplateAutoConfigure { - @Autowired - private RestTemplateProperties restTemplateProperties; - - @LoadBalanced - @Bean - public RestTemplate restTemplate() { - RestTemplate restTemplate = new RestTemplate(); - restTemplate.setRequestFactory(httpRequestFactory()); - return restTemplate; - } - - /** - * httpclient 实现的ClientHttpRequestFactory - */ - @Bean - public ClientHttpRequestFactory httpRequestFactory() { - return new HttpComponentsClientHttpRequestFactory(httpClient()); - } - - /** - * 使用连接池的 httpclient - */ - @Bean - public HttpClient httpClient() { - Registry registry = RegistryBuilder.create() - .register("http", PlainConnectionSocketFactory.getSocketFactory()) - .register("https", SSLConnectionSocketFactory.getSocketFactory()) - .build(); - PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(registry); - // 最大链接数 - connectionManager.setMaxTotal(restTemplateProperties.getMaxTotal()); - // 同路由并发数20 - connectionManager.setDefaultMaxPerRoute(restTemplateProperties.getMaxPerRoute()); - - RequestConfig requestConfig = RequestConfig.custom() - // 读超时 - .setSocketTimeout(restTemplateProperties.getReadTimeout()) - // 链接超时 - .setConnectTimeout(restTemplateProperties.getConnectTimeout()) - // 链接不够用的等待时间 - .setConnectionRequestTimeout(restTemplateProperties.getReadTimeout()) - .build(); - - return HttpClientBuilder.create() - .setDefaultRequestConfig(requestConfig) - .setConnectionManager(connectionManager) - .setRetryHandler(new DefaultHttpRequestRetryHandler(3, true)) - .build(); - } -} +package com.central.common.lb; + +import com.central.common.lb.config.RestTemplateProperties; +import org.apache.http.client.HttpClient; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.config.Registry; +import org.apache.http.config.RegistryBuilder; +import org.apache.http.conn.socket.ConnectionSocketFactory; +import org.apache.http.conn.socket.PlainConnectionSocketFactory; +import org.apache.http.conn.ssl.SSLConnectionSocketFactory; +import org.apache.http.impl.client.DefaultHttpRequestRetryHandler; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.cloud.client.loadbalancer.LoadBalanced; +import org.springframework.context.annotation.Bean; +import org.springframework.http.client.ClientHttpRequestFactory; +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; +import org.springframework.web.client.RestTemplate; + +/** + * @author zlt + * @date 2018/11/17 + *

    + * Blog: https://zlt2000.gitee.io + * Github: https://github.com/zlt2000 + */ +@EnableConfigurationProperties(RestTemplateProperties.class) +public class RestTemplateAutoConfigure { + @Autowired + private RestTemplateProperties restTemplateProperties; + + @LoadBalanced + @Bean + public RestTemplate restTemplate(ClientHttpRequestFactory httpRequestFactory) { + RestTemplate restTemplate = new RestTemplate(); + restTemplate.setRequestFactory(httpRequestFactory); + return restTemplate; + } + + /** + * httpclient 实现的ClientHttpRequestFactory + */ + @Bean + public ClientHttpRequestFactory httpRequestFactory(HttpClient httpClient) { + return new HttpComponentsClientHttpRequestFactory(httpClient); + } + + /** + * 使用连接池的 httpclient + */ + @Bean + public HttpClient httpClient() { + Registry registry = RegistryBuilder.create() + .register("http", PlainConnectionSocketFactory.getSocketFactory()) + .register("https", SSLConnectionSocketFactory.getSocketFactory()) + .build(); + PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(registry); + // 最大链接数 + connectionManager.setMaxTotal(restTemplateProperties.getMaxTotal()); + // 同路由并发数20 + connectionManager.setDefaultMaxPerRoute(restTemplateProperties.getMaxPerRoute()); + + RequestConfig requestConfig = RequestConfig.custom() + // 读超时 + .setSocketTimeout(restTemplateProperties.getReadTimeout()) + // 链接超时 + .setConnectTimeout(restTemplateProperties.getConnectTimeout()) + // 链接不够用的等待时间 + .setConnectionRequestTimeout(restTemplateProperties.getReadTimeout()) + .build(); + + return HttpClientBuilder.create() + .setDefaultRequestConfig(requestConfig) + .setConnectionManager(connectionManager) + .setRetryHandler(new DefaultHttpRequestRetryHandler(3, true)) + .build(); + } +} diff --git a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/annotation/EnableBaseFeignInterceptor.java b/zlt-commons/zlt-loadbalancer-spring-boot-starter/src/main/java/com/central/common/lb/annotation/EnableBaseFeignInterceptor.java similarity index 83% rename from zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/annotation/EnableBaseFeignInterceptor.java rename to zlt-commons/zlt-loadbalancer-spring-boot-starter/src/main/java/com/central/common/lb/annotation/EnableBaseFeignInterceptor.java index ea58d081..a0a9a817 100644 --- a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/annotation/EnableBaseFeignInterceptor.java +++ b/zlt-commons/zlt-loadbalancer-spring-boot-starter/src/main/java/com/central/common/lb/annotation/EnableBaseFeignInterceptor.java @@ -1,6 +1,6 @@ -package com.central.common.ribbon.annotation; +package com.central.common.lb.annotation; -import com.central.common.ribbon.config.FeignInterceptorConfig; +import com.central.common.lb.config.FeignInterceptorConfig; import org.springframework.context.annotation.Import; import java.lang.annotation.ElementType; @@ -22,4 +22,4 @@ import java.lang.annotation.Target; @Import(FeignInterceptorConfig.class) public @interface EnableBaseFeignInterceptor { -} +} \ No newline at end of file diff --git a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/annotation/EnableFeignInterceptor.java b/zlt-commons/zlt-loadbalancer-spring-boot-starter/src/main/java/com/central/common/lb/annotation/EnableFeignInterceptor.java similarity index 74% rename from zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/annotation/EnableFeignInterceptor.java rename to zlt-commons/zlt-loadbalancer-spring-boot-starter/src/main/java/com/central/common/lb/annotation/EnableFeignInterceptor.java index 5f97ac6b..9bd4c02e 100644 --- a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/annotation/EnableFeignInterceptor.java +++ b/zlt-commons/zlt-loadbalancer-spring-boot-starter/src/main/java/com/central/common/lb/annotation/EnableFeignInterceptor.java @@ -1,7 +1,7 @@ -package com.central.common.ribbon.annotation; +package com.central.common.lb.annotation; -import com.central.common.ribbon.config.FeignHttpInterceptorConfig; -import com.central.common.ribbon.config.FeignInterceptorConfig; +import com.central.common.lb.config.FeignHttpInterceptorConfig; +import com.central.common.lb.config.FeignInterceptorConfig; import org.springframework.context.annotation.Import; import java.lang.annotation.ElementType; @@ -14,9 +14,11 @@ import java.lang.annotation.Target; * * @author zlt */ + @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Import({FeignInterceptorConfig.class, FeignHttpInterceptorConfig.class}) public @interface EnableFeignInterceptor { } + diff --git a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/config/FeignHttpInterceptorConfig.java b/zlt-commons/zlt-loadbalancer-spring-boot-starter/src/main/java/com/central/common/lb/config/FeignHttpInterceptorConfig.java similarity index 98% rename from zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/config/FeignHttpInterceptorConfig.java rename to zlt-commons/zlt-loadbalancer-spring-boot-starter/src/main/java/com/central/common/lb/config/FeignHttpInterceptorConfig.java index e6b7a996..7140c7ba 100644 --- a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/config/FeignHttpInterceptorConfig.java +++ b/zlt-commons/zlt-loadbalancer-spring-boot-starter/src/main/java/com/central/common/lb/config/FeignHttpInterceptorConfig.java @@ -1,4 +1,4 @@ -package com.central.common.ribbon.config; +package com.central.common.lb.config; import com.central.common.constant.CommonConstant; import com.central.common.constant.SecurityConstants; diff --git a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/config/FeignInterceptorConfig.java b/zlt-commons/zlt-loadbalancer-spring-boot-starter/src/main/java/com/central/common/lb/config/FeignInterceptorConfig.java similarity index 87% rename from zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/config/FeignInterceptorConfig.java rename to zlt-commons/zlt-loadbalancer-spring-boot-starter/src/main/java/com/central/common/lb/config/FeignInterceptorConfig.java index b1a463cf..59da835e 100644 --- a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/config/FeignInterceptorConfig.java +++ b/zlt-commons/zlt-loadbalancer-spring-boot-starter/src/main/java/com/central/common/lb/config/FeignInterceptorConfig.java @@ -1,4 +1,4 @@ -package com.central.common.ribbon.config; +package com.central.common.lb.config; import cn.hutool.core.util.StrUtil; import com.central.common.constant.SecurityConstants; @@ -10,6 +10,9 @@ import org.springframework.context.annotation.Bean; * feign拦截器,只包含基础数据 * * @author zlt + *

    + * Blog: https://zlt2000.gitee.io + * Github: https://github.com/zlt2000 */ public class FeignInterceptorConfig { /** diff --git a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/config/RestTemplateProperties.java b/zlt-commons/zlt-loadbalancer-spring-boot-starter/src/main/java/com/central/common/lb/config/RestTemplateProperties.java similarity index 84% rename from zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/config/RestTemplateProperties.java rename to zlt-commons/zlt-loadbalancer-spring-boot-starter/src/main/java/com/central/common/lb/config/RestTemplateProperties.java index bbd13882..b0dd15cb 100644 --- a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/config/RestTemplateProperties.java +++ b/zlt-commons/zlt-loadbalancer-spring-boot-starter/src/main/java/com/central/common/lb/config/RestTemplateProperties.java @@ -1,33 +1,36 @@ -package com.central.common.ribbon.config; - -import lombok.Getter; -import lombok.Setter; -import org.springframework.boot.context.properties.ConfigurationProperties; - -/** - * RestTemplate 配置 - * - * @author zlt - * @date 2017/11/17 - */ -@Setter -@Getter -@ConfigurationProperties(prefix = "zlt.rest-template") -public class RestTemplateProperties { - /** - * 最大链接数 - */ - private int maxTotal = 200; - /** - * 同路由最大并发数 - */ - private int maxPerRoute = 50; - /** - * 读取超时时间 ms - */ - private int readTimeout = 35000; - /** - * 链接超时时间 ms - */ - private int connectTimeout = 10000; -} +package com.central.common.lb.config; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; + +/** + * RestTemplate 配置 + * + * @author zlt + * @date 2017/11/17 + *

    + * Blog: https://zlt2000.gitee.io + * Github: https://github.com/zlt2000 + */ +@Setter +@Getter +@ConfigurationProperties(prefix = "zlt.rest-template") +public class RestTemplateProperties { + /** + * 最大链接数 + */ + private int maxTotal = 200; + /** + * 同路由最大并发数 + */ + private int maxPerRoute = 50; + /** + * 读取超时时间 ms + */ + private int readTimeout = 35000; + /** + * 链接超时时间 ms + */ + private int connectTimeout = 10000; +} diff --git a/zlt-commons/zlt-loadbalancer-spring-boot-starter/src/main/resources/META-INF/spring.factories b/zlt-commons/zlt-loadbalancer-spring-boot-starter/src/main/resources/META-INF/spring.factories new file mode 100644 index 00000000..bd79ca62 --- /dev/null +++ b/zlt-commons/zlt-loadbalancer-spring-boot-starter/src/main/resources/META-INF/spring.factories @@ -0,0 +1,2 @@ +org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ +com.central.common.lb.RestTemplateAutoConfigure \ No newline at end of file diff --git a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/FeignAutoConfigure.java b/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/FeignAutoConfigure.java deleted file mode 100644 index afa6bbbd..00000000 --- a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/FeignAutoConfigure.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.central.common.ribbon; - -import feign.Logger; -import org.springframework.context.annotation.Bean; - -/** - * Feign统一配置 - * - * @author zlt - * @date 2018/9/18 14:04 - */ -public class FeignAutoConfigure { - - /** - * Feign 日志级别 - */ - @Bean - Logger.Level feignLoggerLevel() { - return Logger.Level.FULL; - } -} diff --git a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/LbIsolationAutoConfigure.java b/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/LbIsolationAutoConfigure.java deleted file mode 100644 index 6dbb941a..00000000 --- a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/LbIsolationAutoConfigure.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.central.common.ribbon; - -import com.central.common.constant.ConfigConstants; -import com.central.common.ribbon.config.RuleConfigure; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.cloud.netflix.ribbon.RibbonClients; - -/** - * 自定义负载均衡配置 - * - * @author zlt - * @date 2019/9/3 - *

    - * Blog: https://zlt2000.gitee.io - * Github: https://github.com/zlt2000 - */ -@ConditionalOnProperty(value = ConfigConstants.CONFIG_RIBBON_ISOLATION_ENABLED, havingValue = "true") -@RibbonClients(defaultConfiguration = {RuleConfigure.class}) -public class LbIsolationAutoConfigure { - -} diff --git a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/RibbonAutoConfigure.java b/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/RibbonAutoConfigure.java deleted file mode 100644 index df4983c8..00000000 --- a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/RibbonAutoConfigure.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.central.common.ribbon; - -import com.central.common.ribbon.config.RestTemplateProperties; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.netflix.ribbon.DefaultPropertiesFactory; -import org.springframework.context.annotation.Bean; - -/** - * Ribbon扩展配置类 - * - * @author zlt - * @date 2018/11/17 9:24 - */ -@EnableConfigurationProperties(RestTemplateProperties.class) -public class RibbonAutoConfigure { - @Bean - public DefaultPropertiesFactory defaultPropertiesFactory() { - return new DefaultPropertiesFactory(); - } -} diff --git a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/config/RuleConfigure.java b/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/config/RuleConfigure.java deleted file mode 100644 index 75d61d4f..00000000 --- a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/config/RuleConfigure.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.central.common.ribbon.config; - -import com.alibaba.cloud.nacos.ribbon.NacosServer; -import com.central.common.ribbon.rule.VersionIsolationRule; -import com.netflix.loadbalancer.IRule; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.context.annotation.Bean; - -/** - * @author zlt - * @date 2020/4/24 - *

    - * Blog: https://zlt2000.gitee.io - * Github: https://github.com/zlt2000 - */ -public class RuleConfigure { - @Bean - @ConditionalOnClass(NacosServer.class) - @ConditionalOnMissingBean - public IRule versionIsolationRule() { - return new VersionIsolationRule(); - } -} diff --git a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/filter/LbIsolationFilter.java b/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/filter/LbIsolationFilter.java deleted file mode 100644 index 22c5e4ff..00000000 --- a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/filter/LbIsolationFilter.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.central.common.ribbon.filter; - -import cn.hutool.core.util.StrUtil; -import com.central.common.constant.CommonConstant; -import com.central.common.constant.ConfigConstants; -import com.central.common.context.LbIsolationContextHolder; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass; -import org.springframework.web.filter.OncePerRequestFilter; - -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * 负载均衡隔离规则过滤器 - * - * @author zlt - * @date 2019/9/15 - */ -@ConditionalOnClass(Filter.class) -public class LbIsolationFilter extends OncePerRequestFilter { - @Value("${" + ConfigConstants.CONFIG_RIBBON_ISOLATION_ENABLED + ":false}") - private boolean enableIsolation; - - @Override - protected boolean shouldNotFilter(HttpServletRequest request) { - return !enableIsolation; - } - - @Override - protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, - FilterChain filterChain) throws IOException, ServletException { - try { - String version = request.getHeader(CommonConstant.Z_L_T_VERSION); - if(StrUtil.isNotEmpty(version)){ - LbIsolationContextHolder.setVersion(version); - } - - filterChain.doFilter(request, response); - } finally { - LbIsolationContextHolder.clear(); - } - } -} diff --git a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/rule/VersionIsolationRule.java b/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/rule/VersionIsolationRule.java deleted file mode 100644 index de3222c0..00000000 --- a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/com/central/common/ribbon/rule/VersionIsolationRule.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.central.common.ribbon.rule; - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.RandomUtil; -import cn.hutool.core.util.StrUtil; -import com.alibaba.cloud.nacos.ribbon.NacosServer; -import com.central.common.constant.CommonConstant; -import com.central.common.context.LbIsolationContextHolder; -import com.netflix.loadbalancer.*; - -import java.util.List; -import java.util.stream.Collectors; - -/** - * 根据实例版本号隔离规则 - * 详细用法:https://mp.weixin.qq.com/s/9XQ-SIbYsov3KBx9TGFN0g - * - * 实例获取规则顺序如下(不满足则走下一个规则): - * 1. 相同版本号的实例 - * 2. 无版本号的实例 - * 3. 所有实例中轮询 - * - * @author zlt - * @date 2019/9/3 - *

    - * Blog: https://zlt2000.gitee.io - * Github: https://github.com/zlt2000 - */ -public class VersionIsolationRule extends RoundRobinRule { - private final static String KEY_DEFAULT = "default"; - /** - * 优先根据版本号取实例 - */ - @Override - public Server choose(ILoadBalancer lb, Object key) { - if (lb == null) { - return null; - } - String version; - if (key != null && !KEY_DEFAULT.equals(key)) { - version = key.toString(); - } else { - version = LbIsolationContextHolder.getVersion(); - } - - List targetList = null; - List upList = lb.getReachableServers(); - if (StrUtil.isNotEmpty(version)) { - //取指定版本号的实例 - targetList = upList.stream().filter( - server -> version.equals( - ((NacosServer) server).getMetadata().get(CommonConstant.METADATA_VERSION) - ) - ).collect(Collectors.toList()); - } - - if (CollUtil.isEmpty(targetList)) { - //只取无版本号的实例 - targetList = upList.stream().filter( - server -> { - String metadataVersion = ((NacosServer) server).getMetadata().get(CommonConstant.METADATA_VERSION); - return StrUtil.isEmpty(metadataVersion); - } - ).collect(Collectors.toList()); - } - - if (CollUtil.isNotEmpty(targetList)) { - return getServer(targetList); - } - return super.choose(lb, key); - } - - /** - * 随机取一个实例 - */ - private Server getServer(List upList) { - int nextInt = RandomUtil.randomInt(upList.size()); - return upList.get(nextInt); - } -} diff --git a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/org/springframework/cloud/netflix/ribbon/DefaultPropertiesFactory.java b/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/org/springframework/cloud/netflix/ribbon/DefaultPropertiesFactory.java deleted file mode 100644 index 8dd490a1..00000000 --- a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/java/org/springframework/cloud/netflix/ribbon/DefaultPropertiesFactory.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.springframework.cloud.netflix.ribbon; - -import com.netflix.loadbalancer.*; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.core.env.Environment; -import org.springframework.util.StringUtils; - -import java.util.HashMap; -import java.util.Map; - -import static org.springframework.cloud.netflix.ribbon.SpringClientFactory.NAMESPACE; - -/** - * 扩展 spring cloud ribbon的PropertiesFactory - * 使其能够支持 配置全局的ribbon.NFLoadBalancerRuleClassName=package.YourRule - * 然后各个微服务还可以根据自身情况做个性化定制。如:SERVICE_ID.ribbon.NFLoadBalancerRuleClassName=package.YourRule - * - * @author zlt - * @date 2018/11/17 9:29 - */ -public class DefaultPropertiesFactory extends PropertiesFactory { - - @Autowired - private Environment environment; - - private Map classToProperty = new HashMap<>(5); - - public DefaultPropertiesFactory() { - super(); - classToProperty.put(ILoadBalancer.class, "NFLoadBalancerClassName"); - classToProperty.put(IPing.class, "NFLoadBalancerPingClassName"); - classToProperty.put(IRule.class, "NFLoadBalancerRuleClassName"); - classToProperty.put(ServerList.class, "NIWSServerListClassName"); - classToProperty.put(ServerListFilter.class, "NIWSServerListFilterClassName"); - } - - /** - * 重写 支持 ribbon.NFLoadBalancerRuleClassName=package.YourRule 全局配置的方式 - */ - @Override - public String getClassName(Class clazz, String name) { - String className = super.getClassName(clazz, name); - // 读取全局配置 - if(!StringUtils.hasText(className) && this.classToProperty.containsKey(clazz)){ - String classNameProperty = this.classToProperty.get(clazz); - className = environment.getProperty(NAMESPACE + "." + classNameProperty); - } - return className; - } -} diff --git a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/resources/META-INF/spring.factories b/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/resources/META-INF/spring.factories deleted file mode 100644 index 16f3fb91..00000000 --- a/zlt-commons/zlt-ribbon-spring-boot-starter/src/main/resources/META-INF/spring.factories +++ /dev/null @@ -1,6 +0,0 @@ -org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ -com.central.common.ribbon.RibbonAutoConfigure,\ -com.central.common.ribbon.FeignAutoConfigure,\ -com.central.common.ribbon.RestTemplateAutoConfigure,\ -com.central.common.ribbon.filter.LbIsolationFilter,\ -com.central.common.ribbon.LbIsolationAutoConfigure diff --git a/zlt-config/src/main/resources/application.properties b/zlt-config/src/main/resources/application.properties index 87d5e328..7050b047 100644 --- a/zlt-config/src/main/resources/application.properties +++ b/zlt-config/src/main/resources/application.properties @@ -1,18 +1,7 @@ ########################## application级别通用配置 ########################## -##### ribbon配置 -## 从注册中心刷新servelist的时间 默认30秒,单位ms -ribbon.ServerListRefreshInterval=15000 -## 请求连接的超时时间 默认1秒,单位ms -ribbon.ConnectTimeout=30000 -## 请求处理的超时时间 默认1秒,单位ms -ribbon.ReadTimeout=30000 -## 对所有操作请求都进行重试,不配置这个MaxAutoRetries不起作用 默认false -#ribbon.OkToRetryOnAllOperations=true -## 对当前实例的重试次数 默认0 -#ribbon.MaxAutoRetries=1 -## 切换实例的重试次数 默认1 -ribbon.MaxAutoRetriesNextServer=0 - +##### loadbalancer配置 +## 切换实例的重试 +spring.cloud.loadbalancer.retry.enabled=false ##### feign配置 feign.sentinel.enabled=true diff --git a/zlt-demo/seata-demo/business-service/pom.xml b/zlt-demo/seata-demo/business-service/pom.xml index 1c56e802..b73229c3 100644 --- a/zlt-demo/seata-demo/business-service/pom.xml +++ b/zlt-demo/seata-demo/business-service/pom.xml @@ -12,7 +12,7 @@ com.zlt - zlt-ribbon-spring-boot-starter + zlt-loadbalancer-spring-boot-starter org.springframework.boot diff --git a/zlt-demo/seata-demo/order-service/pom.xml b/zlt-demo/seata-demo/order-service/pom.xml index b5697844..2d8bcad5 100644 --- a/zlt-demo/seata-demo/order-service/pom.xml +++ b/zlt-demo/seata-demo/order-service/pom.xml @@ -17,7 +17,7 @@ com.zlt - zlt-ribbon-spring-boot-starter + zlt-loadbalancer-spring-boot-starter org.springframework.boot diff --git a/zlt-demo/seata-demo/storage-service/pom.xml b/zlt-demo/seata-demo/storage-service/pom.xml index c4e7b453..edd6d5a1 100644 --- a/zlt-demo/seata-demo/storage-service/pom.xml +++ b/zlt-demo/seata-demo/storage-service/pom.xml @@ -17,7 +17,7 @@ com.zlt - zlt-ribbon-spring-boot-starter + zlt-loadbalancer-spring-boot-starter org.springframework.boot diff --git a/zlt-demo/txlcn-demo/txlcn-demo-common/pom.xml b/zlt-demo/txlcn-demo/txlcn-demo-common/pom.xml index b31e18ac..07ee9498 100644 --- a/zlt-demo/txlcn-demo/txlcn-demo-common/pom.xml +++ b/zlt-demo/txlcn-demo/txlcn-demo-common/pom.xml @@ -40,7 +40,7 @@ com.zlt - zlt-ribbon-spring-boot-starter + zlt-loadbalancer-spring-boot-starter com.zlt diff --git a/zlt-gateway/pom.xml b/zlt-gateway/pom.xml index f292251b..08d238c1 100644 --- a/zlt-gateway/pom.xml +++ b/zlt-gateway/pom.xml @@ -9,8 +9,6 @@ zlt-gateway pom - - zuul-gateway sc-gateway diff --git a/zlt-gateway/sc-gateway/pom.xml b/zlt-gateway/sc-gateway/pom.xml index 78712a8c..4ee10cc2 100644 --- a/zlt-gateway/sc-gateway/pom.xml +++ b/zlt-gateway/sc-gateway/pom.xml @@ -16,7 +16,7 @@ com.zlt - zlt-ribbon-spring-boot-starter + zlt-loadbalancer-spring-boot-starter com.zlt @@ -89,6 +89,10 @@ eu.bitwalker UserAgentUtils + + org.springframework.security.oauth + spring-security-oauth2 + diff --git a/zlt-gateway/sc-gateway/src/main/java/com/central/SCGatewayApp.java b/zlt-gateway/sc-gateway/src/main/java/com/central/SCGatewayApp.java index 7724217c..c2ecc2bd 100644 --- a/zlt-gateway/sc-gateway/src/main/java/com/central/SCGatewayApp.java +++ b/zlt-gateway/sc-gateway/src/main/java/com/central/SCGatewayApp.java @@ -1,6 +1,6 @@ package com.central; -import com.central.common.ribbon.annotation.EnableBaseFeignInterceptor; +import com.central.common.lb.annotation.EnableBaseFeignInterceptor; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; diff --git a/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/auth/PermissionAuthManager.java b/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/auth/PermissionAuthManager.java index aa21abc4..1afb01b4 100644 --- a/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/auth/PermissionAuthManager.java +++ b/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/auth/PermissionAuthManager.java @@ -1,7 +1,7 @@ package com.central.gateway.auth; import com.central.common.model.SysMenu; -import com.central.gateway.feign.MenuService; +import com.central.gateway.feign.AsynMenuService; import com.central.oauth2.common.service.impl.DefaultPermissionServiceImpl; import lombok.extern.slf4j.Slf4j; import org.springframework.http.server.reactive.ServerHttpRequest; @@ -14,7 +14,9 @@ import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono; import javax.annotation.Resource; +import java.util.Collections; import java.util.List; +import java.util.concurrent.Future; /** * url权限认证 @@ -29,7 +31,7 @@ import java.util.List; @Component public class PermissionAuthManager extends DefaultPermissionServiceImpl implements ReactiveAuthorizationManager { @Resource - private MenuService menuService; + private AsynMenuService asynMenuService; @Override public Mono check(Mono authentication, AuthorizationContext authorizationContext) { @@ -43,6 +45,12 @@ public class PermissionAuthManager extends DefaultPermissionServiceImpl implemen @Override public List findMenuByRoleCodes(String roleCodes) { - return menuService.findByRoleCodes(roleCodes); + Future> futureResult = asynMenuService.findByRoleCodes(roleCodes); + try { + return futureResult.get(); + } catch (Exception e) { + log.error("asynMenuService.findMenuByRoleCodes-error", e); + } + return Collections.emptyList(); } -} +} \ No newline at end of file diff --git a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/config/AsycTaskExecutorConfig.java b/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/config/AsycTaskExecutorConfig.java similarity index 71% rename from zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/config/AsycTaskExecutorConfig.java rename to zlt-gateway/sc-gateway/src/main/java/com/central/gateway/config/AsycTaskExecutorConfig.java index 3a7c9253..49ab7e6d 100644 --- a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/config/AsycTaskExecutorConfig.java +++ b/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/config/AsycTaskExecutorConfig.java @@ -1,14 +1,19 @@ -package com.central.gateway.config; - -import com.central.common.config.DefaultAsycTaskConfig; -import org.springframework.context.annotation.Configuration; - -/** - * @author zlt - * 线程池配置、启用异步 - * @Async quartz 需要使用 - */ -@Configuration -public class AsycTaskExecutorConfig extends DefaultAsycTaskConfig { - -} +package com.central.gateway.config; + +import com.central.common.config.DefaultAsycTaskConfig; +import org.springframework.context.annotation.Configuration; + +/** + * 线程池配置、启用异步 + * + * @author zlt + * @version 1.0 + * @date 2021/8/8 + *

    + * Blog: https://zlt2000.gitee.io + * Github: https://github.com/zlt2000 + */ +@Configuration +public class AsycTaskExecutorConfig extends DefaultAsycTaskConfig { + +} diff --git a/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/config/CorsConfig.java b/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/config/CorsConfig.java index 3ff21580..7e2ea488 100644 --- a/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/config/CorsConfig.java +++ b/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/config/CorsConfig.java @@ -29,7 +29,7 @@ public class CorsConfig { // cookie跨域 config.setAllowCredentials(Boolean.TRUE); config.addAllowedMethod(ALL); - config.addAllowedOrigin(ALL); + config.addAllowedOriginPattern(ALL); config.addAllowedHeader(ALL); // 配置前端js允许访问的自定义响应头 config.addExposedHeader("setToken"); diff --git a/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/feign/AsynMenuService.java b/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/feign/AsynMenuService.java new file mode 100644 index 00000000..b6577abd --- /dev/null +++ b/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/feign/AsynMenuService.java @@ -0,0 +1,35 @@ +package com.central.gateway.feign; + +import com.central.common.model.SysMenu; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.annotation.AsyncResult; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.List; +import java.util.concurrent.Future; + +/** + * 异步Menu服务 + * + * @author zlt + * @version 1.0 + * @date 2021/8/8 + *

    + * Blog: https://zlt2000.gitee.io + * Github: https://github.com/zlt2000 + */ +@Component +public class AsynMenuService { + @Lazy + @Resource + private MenuService menuService; + + @Async + public Future> findByRoleCodes(String roleCodes) { + List result = menuService.findByRoleCodes(roleCodes); + return new AsyncResult<>(result); + } +} diff --git a/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/feign/fallback/MenuServiceFallbackFactory.java b/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/feign/fallback/MenuServiceFallbackFactory.java index 90aaa50d..840ae68a 100644 --- a/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/feign/fallback/MenuServiceFallbackFactory.java +++ b/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/feign/fallback/MenuServiceFallbackFactory.java @@ -2,7 +2,7 @@ package com.central.gateway.feign.fallback; import cn.hutool.core.collection.CollectionUtil; import com.central.gateway.feign.MenuService; -import feign.hystrix.FallbackFactory; +import org.springframework.cloud.openfeign.FallbackFactory; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; diff --git a/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/filter/LbIsolationFilter.java b/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/filter/LbIsolationFilter.java index bb127a15..74f964d3 100644 --- a/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/filter/LbIsolationFilter.java +++ b/zlt-gateway/sc-gateway/src/main/java/com/central/gateway/filter/LbIsolationFilter.java @@ -6,9 +6,9 @@ import com.central.common.constant.ConfigConstants; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.loadbalancer.LoadBalancerClient; -import org.springframework.cloud.gateway.config.LoadBalancerProperties; +/*import org.springframework.cloud.gateway.config.LoadBalancerProperties; import org.springframework.cloud.gateway.filter.LoadBalancerClientFilter; -import org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient; +import org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient;*/ import org.springframework.stereotype.Component; import org.springframework.web.server.ServerWebExchange; @@ -25,6 +25,7 @@ import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.G * Blog: https://zlt2000.gitee.io * Github: https://github.com/zlt2000 */ +/* @Component @ConditionalOnProperty(name = ConfigConstants.CONFIG_RIBBON_ISOLATION_ENABLED, havingValue = "true") public class LbIsolationFilter extends LoadBalancerClientFilter { @@ -45,3 +46,4 @@ public class LbIsolationFilter extends LoadBalancerClientFilter { return super.choose(exchange); } } +*/ diff --git a/zlt-gateway/zuul-gateway/Dockerfile b/zlt-gateway/zuul-gateway/Dockerfile deleted file mode 100644 index 9890bf2f..00000000 --- a/zlt-gateway/zuul-gateway/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -FROM openjdk:8u292 - -LABEL MAINTAINER=Andy -WORKDIR /apps -ADD target/zuul-gateway.jar /apps/ -CMD ["java","-jar","zuul-gateway.jar"] -# docker run --name zuul-gateway \ -# -e spring_cloud_nacos_server_addr=10.0.0.12:8848 \ -# -e zlt_datasource_ip=10.0.0.12 \ -# -e zlt_datasource_username=root \ -# -e zlt_datasource_password=redhat \ -# -e spring_redis_host=10.0.0.12 \ -# -d zuul-gateway:4.5 \ No newline at end of file diff --git a/zlt-gateway/zuul-gateway/pom.xml b/zlt-gateway/zuul-gateway/pom.xml deleted file mode 100644 index 35ee5697..00000000 --- a/zlt-gateway/zuul-gateway/pom.xml +++ /dev/null @@ -1,150 +0,0 @@ - - 4.0.0 - - com.zlt - zlt-gateway - 4.6.0 - - zuul-gateway - zuul网关 - - - - - com.zlt - zlt-config - - - com.zlt - zlt-auth-client-spring-boot-starter - - - com.zlt - zlt-ribbon-spring-boot-starter - - - com.zlt - zlt-sentinel-spring-boot-starter - - - com.zlt - zlt-redis-spring-boot-starter - - - - com.alibaba.cloud - spring-cloud-starter-alibaba-nacos-discovery - - - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-tomcat - - - - - - org.springframework.boot - spring-boot-starter-undertow - - - - org.springframework - spring-context-support - - - org.springframework.boot - spring-boot-starter-actuator - - - - com.github.zlt2000 - swagger-butler-core - - - - org.springframework.cloud - spring-cloud-starter-netflix-zuul - - - com.baomidou - mybatis-plus-extension - - - - com.squareup.okhttp3 - okhttp - - - - io.micrometer - micrometer-registry-prometheus - - - eu.bitwalker - UserAgentUtils - - - org.springframework.boot - spring-boot-configuration-processor - true - - - - org.hibernate - hibernate-validator - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - repackage - - - - - - com.spotify - docker-maven-plugin - - ${docker.image.prefix}/${project.artifactId} - - ${project.version} - latest - - true - ${docker.baseImage} - ${docker.volumes} - - ${docker.java.opts} - - ["sh","-c","java $JAVA_OPTS ${docker.java.security.egd} -jar /${project.build.finalName}.jar"] - - - / - ${project.build.directory} - ${project.build.finalName}.jar - - - - - - ${project.artifactId} - - \ No newline at end of file diff --git a/zlt-gateway/zuul-gateway/src/main/java/com/central/GatewayApp.java b/zlt-gateway/zuul-gateway/src/main/java/com/central/GatewayApp.java deleted file mode 100644 index 7fe04b5f..00000000 --- a/zlt-gateway/zuul-gateway/src/main/java/com/central/GatewayApp.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.central; - -import com.central.common.ribbon.annotation.EnableBaseFeignInterceptor; -import com.central.common.ribbon.annotation.EnableFeignInterceptor; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.client.discovery.EnableDiscoveryClient; -import org.springframework.cloud.netflix.zuul.EnableZuulProxy; -import org.springframework.cloud.openfeign.EnableFeignClients; - -/** - * @author zlt - */ -@EnableZuulProxy -@EnableFeignClients -@EnableBaseFeignInterceptor -@EnableDiscoveryClient -@SpringBootApplication -public class GatewayApp { - public static void main(String[] args) { - SpringApplication.run(GatewayApp.class, args); - } -} diff --git a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/config/CorsConfigration.java b/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/config/CorsConfigration.java deleted file mode 100644 index 2f2c0829..00000000 --- a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/config/CorsConfigration.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.central.gateway.config; - -import org.springframework.boot.web.servlet.FilterRegistrationBean; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.core.Ordered; -import org.springframework.web.cors.CorsConfiguration; -import org.springframework.web.cors.UrlBasedCorsConfigurationSource; -import org.springframework.web.filter.CorsFilter; - -/** - * 跨域配置 - * - * @author zlt - * @date 2018/8/9 15:59 - */ -@Configuration -public class CorsConfigration { - - @Bean - public CorsFilter corsFilter() { - UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); - CorsConfiguration config = new CorsConfiguration(); - // #允许向该服务器提交请求的URI,*表示全部允许 - config.addAllowedOrigin(CorsConfiguration.ALL); - // 允许cookies跨域 - config.setAllowCredentials(true); - // #允许访问的头信息,*表示全部 - config.addAllowedHeader(CorsConfiguration.ALL); - // 允许提交请求的方法,*表示全部允许 - config.addAllowedMethod(CorsConfiguration.ALL); - source.registerCorsConfiguration("/**", config); - return new CorsFilter(source); - } - - /** - * 配置过滤器 - */ - @Bean - public FilterRegistrationBean someFilterRegistration() { - FilterRegistrationBean registration = new FilterRegistrationBean<>(); - registration.setFilter(corsFilter()); - registration.addUrlPatterns("/*"); - registration.setName("corsFilter"); - registration.setOrder(Ordered.HIGHEST_PRECEDENCE); - return registration; - } -} diff --git a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/config/DynamicZuulRouteConfig.java b/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/config/DynamicZuulRouteConfig.java deleted file mode 100644 index 42c76e42..00000000 --- a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/config/DynamicZuulRouteConfig.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.central.gateway.config; - -import com.alibaba.cloud.nacos.NacosConfigProperties; -import com.central.gateway.route.nacos.NacosDynRouteLocator; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.autoconfigure.web.servlet.DispatcherServletPath; -import org.springframework.cloud.netflix.zuul.filters.ZuulProperties; -import org.springframework.context.ApplicationEventPublisher; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * 动态路由配置 - * - * @author zlt - * @date 2019/8/21 - */ -@Configuration -@ConditionalOnProperty(prefix = "zlt.gateway.dynamicRoute", name = "enabled", havingValue = "true") -public class DynamicZuulRouteConfig { - @Autowired - private ZuulProperties zuulProperties; - - @Autowired - private DispatcherServletPath dispatcherServletPath; - - /** - * Nacos实现方式 - */ - @Configuration - @ConditionalOnProperty(prefix = "zlt.gateway.dynamicRoute", name = "dataType", havingValue = "nacos", matchIfMissing = true) - public class NacosZuulRoute { - @Autowired - private NacosConfigProperties nacosConfigProperties; - - @Autowired - private ApplicationEventPublisher publisher; - - @Bean - public NacosDynRouteLocator nacosDynRouteLocator() { - return new NacosDynRouteLocator(nacosConfigProperties, publisher, dispatcherServletPath.getPrefix(), zuulProperties); - } - } -} diff --git a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/config/ResourceServerConfiguration.java b/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/config/ResourceServerConfiguration.java deleted file mode 100644 index 58e217f6..00000000 --- a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/config/ResourceServerConfiguration.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.central.gateway.config; - -import com.central.common.config.DefaultPasswordConfig; -import com.central.oauth2.common.config.DefaultResourceServerConf; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer; -import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer; - -/** - * @author zlt - */ -@Configuration -@EnableResourceServer -@Import({DefaultPasswordConfig.class}) -public class ResourceServerConfiguration extends DefaultResourceServerConf { - @Override - public HttpSecurity setAuthenticate(ExpressionUrlAuthorizationConfigurer.AuthorizedUrl authorizedUrl) { - return authorizedUrl.access("@permissionService.hasPermission(request, authentication)").and(); - } -} \ No newline at end of file diff --git a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/config/SwaggerConfig.java b/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/config/SwaggerConfig.java deleted file mode 100644 index d28318b5..00000000 --- a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/config/SwaggerConfig.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.central.gateway.config; - -import com.didispace.swagger.butler.EnableSwaggerButler; -import org.springframework.context.annotation.Configuration; - -/** - * swagger 聚合文档配置 - * zuul routers 映射具体服务的/v2/api-docs swagger - * - * @author 作者 owen E-mail: 624191343@qq.com - */ -@Configuration -@EnableSwaggerButler -public class SwaggerConfig { - -} \ No newline at end of file diff --git a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/config/ZuulRouteEntity.java b/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/config/ZuulRouteEntity.java deleted file mode 100644 index a4d9b32d..00000000 --- a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/config/ZuulRouteEntity.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.central.gateway.config; - -import lombok.Getter; -import lombok.Setter; - -/** - * zuul路由实体 - * - * @author zlt - * @date 2019/8/21 - */ -@Setter -@Getter -public class ZuulRouteEntity { - /** - * The ID of the route (the same as its map key by default). - */ - private String id; - /** - * The path (pattern) for the route, e.g. /foo/**. - */ - private String path; - /** - * The service ID (if any) to map to this route. You can specify a - * physical URL or a service, but not both. - */ - private String serviceId; - /** - * A full physical URL to map to the route. An alternative is to use a - * service ID and service discovery to find the physical address. - */ - private String url; - /** - * Flag to determine whether the prefix for this route (the path, minus - * pattern patcher) should be stripped before forwarding. - */ - private boolean stripPrefix = true; - /** - * Flag to indicate that this route should be retryable (if supported). - * Generally retry requires a service ID and ribbon. - */ - private Boolean retryable; - - private String apiName; - - private boolean enabled = true; - - private boolean customSensitiveHeaders = true; -} diff --git a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/feign/MenuService.java b/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/feign/MenuService.java deleted file mode 100644 index 032ed131..00000000 --- a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/feign/MenuService.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.central.gateway.feign; - -import com.central.common.constant.ServiceNameConstants; -import com.central.common.model.SysMenu; -import com.central.gateway.feign.fallback.MenuServiceFallbackFactory; -import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; - -import java.util.List; - -/** - * @author zlt - */ -@FeignClient(name = ServiceNameConstants.USER_SERVICE, fallbackFactory = MenuServiceFallbackFactory.class, decode404 = true) -public interface MenuService { - /** - * 角色菜单列表 - * @param roleCodes - */ - @GetMapping(value = "/menus/{roleCodes}") - List findByRoleCodes(@PathVariable("roleCodes") String roleCodes); -} diff --git a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/feign/fallback/MenuServiceFallbackFactory.java b/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/feign/fallback/MenuServiceFallbackFactory.java deleted file mode 100644 index 7cba08ab..00000000 --- a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/feign/fallback/MenuServiceFallbackFactory.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.central.gateway.feign.fallback; - -import cn.hutool.core.collection.CollectionUtil; -import com.central.gateway.feign.MenuService; -import feign.hystrix.FallbackFactory; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -/** - * menuService降级工场 - * - * @author zlt - * @date 2019/1/18 - */ -@Slf4j -@Component -public class MenuServiceFallbackFactory implements FallbackFactory { - @Override - public MenuService create(Throwable throwable) { - return roleIds -> { - log.error("调用findByRoleCodes异常:{}", roleIds, throwable); - return CollectionUtil.newArrayList(); - }; - } -} diff --git a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/filter/pre/RequestStatisticsFilter.java b/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/filter/pre/RequestStatisticsFilter.java deleted file mode 100644 index 72c60b45..00000000 --- a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/filter/pre/RequestStatisticsFilter.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.central.gateway.filter.pre; - -import cn.hutool.core.util.StrUtil; -import com.central.common.utils.AddrUtil; -import com.central.log.monitor.PointUtil; -import com.netflix.zuul.ZuulFilter; -import com.netflix.zuul.context.RequestContext; -import eu.bitwalker.useragentutils.UserAgent; -import lombok.extern.slf4j.Slf4j; -import org.springframework.cloud.netflix.zuul.filters.support.FilterConstants; -import org.springframework.stereotype.Component; - -import javax.servlet.http.HttpServletRequest; - -/** - * 请求统计分析埋点过滤器 - * - * @author zlt - * @date 2019/5/6 - */ -@Slf4j -@Component -public class RequestStatisticsFilter extends ZuulFilter { - @Override - public String filterType() { - return FilterConstants.PRE_TYPE; - } - - @Override - public int filterOrder() { - return 0; - } - - @Override - public boolean shouldFilter() { - return true; - } - - @Override - public Object run() { - RequestContext ctx = RequestContext.getCurrentContext(); - HttpServletRequest req = ctx.getRequest(); - UserAgent userAgent = UserAgent.parseUserAgentString(req.getHeader("User-Agent")); - - //埋点 - PointUtil.debug("0", "request-statistics", - "ip=" + AddrUtil.getRemoteAddr(req) - + "&browser=" + getBrowser(userAgent.getBrowser().getName()) - + "&operatingSystem=" + getOperatingSystem(userAgent.getOperatingSystem().getName())); - - return null; - } - - private String getBrowser(String browser) { - if (StrUtil.isNotEmpty(browser)) { - if (browser.contains("CHROME")) { - return "CHROME"; - } else if (browser.contains("FIREFOX")) { - return "FIREFOX"; - } else if (browser.contains("SAFARI")) { - return "SAFARI"; - } else if (browser.contains("EDGE")) { - return "EDGE"; - } - } - return browser; - } - - private String getOperatingSystem(String operatingSystem) { - if (StrUtil.isNotEmpty(operatingSystem)) { - if (operatingSystem.contains("MAC_OS_X")) { - return "MAC_OS_X"; - } else if (operatingSystem.contains("ANDROID")) { - return "ANDROID"; - } - } - return operatingSystem; - } -} diff --git a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/filter/pre/TraceFilter.java b/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/filter/pre/TraceFilter.java deleted file mode 100644 index 2739492e..00000000 --- a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/filter/pre/TraceFilter.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.central.gateway.filter.pre; - -import cn.hutool.core.util.IdUtil; -import com.central.common.constant.CommonConstant; -import com.central.log.properties.TraceProperties; -import com.netflix.zuul.ZuulFilter; -import com.netflix.zuul.context.RequestContext; -import org.slf4j.MDC; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cloud.netflix.zuul.filters.support.FilterConstants; -import org.springframework.stereotype.Component; - -import static org.springframework.cloud.netflix.zuul.filters.support.FilterConstants.FORM_BODY_WRAPPER_FILTER_ORDER; - -/** - * 生成日志链路追踪id,并传入header中 - * - * @author zlt - * @date 2019/8/13 - */ -@Component -public class TraceFilter extends ZuulFilter { - @Autowired - private TraceProperties traceProperties; - - @Override - public String filterType() { - return FilterConstants.PRE_TYPE; - } - - @Override - public int filterOrder() { - return FORM_BODY_WRAPPER_FILTER_ORDER - 1; - } - - @Override - public boolean shouldFilter() { - //根据配置控制是否开启过滤器 - return traceProperties.getEnable(); - } - - @Override - public Object run() { - //链路追踪id - String traceId = IdUtil.fastSimpleUUID(); - MDC.put(CommonConstant.LOG_TRACE_ID, traceId); - RequestContext ctx = RequestContext.getCurrentContext(); - ctx.addZuulRequestHeader(CommonConstant.TRACE_ID_HEADER, traceId); - return null; - } -} diff --git a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/filter/pre/UserInfoHeaderFilter.java b/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/filter/pre/UserInfoHeaderFilter.java deleted file mode 100644 index bee07e26..00000000 --- a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/filter/pre/UserInfoHeaderFilter.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.central.gateway.filter.pre; - -import cn.hutool.core.collection.CollectionUtil; -import com.central.common.constant.SecurityConstants; -import com.central.common.model.SysUser; -import com.central.oauth2.common.util.AuthUtils; -import com.netflix.zuul.ZuulFilter; -import com.netflix.zuul.context.RequestContext; -import org.springframework.cloud.netflix.zuul.filters.support.FilterConstants; -import org.springframework.security.authentication.AnonymousAuthenticationToken; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.oauth2.provider.OAuth2Authentication; -import org.springframework.stereotype.Component; - -import static org.springframework.cloud.netflix.zuul.filters.support.FilterConstants.FORM_BODY_WRAPPER_FILTER_ORDER; - -/** - * 将认证用户的相关信息放入header中, 后端服务可以直接读取使用 - * - * @author zlt - * @date 2018/11/20 - *

    - * Blog: https://zlt2000.gitee.io - * Github: https://github.com/zlt2000 - */ -@Component -public class UserInfoHeaderFilter extends ZuulFilter { - @Override - public String filterType() { - return FilterConstants.PRE_TYPE; - } - - @Override - public int filterOrder() { - return FORM_BODY_WRAPPER_FILTER_ORDER - 1; - } - - @Override - public boolean shouldFilter() { - return true; - } - - @Override - public Object run() { - Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); - if (authentication != null && !(authentication instanceof AnonymousAuthenticationToken)) { - Object principal = authentication.getPrincipal(); - RequestContext ctx = RequestContext.getCurrentContext(); - //客户端模式只返回一个clientId - if (principal instanceof SysUser) { - SysUser user = (SysUser)principal; - ctx.addZuulRequestHeader(SecurityConstants.USER_ID_HEADER, String.valueOf(user.getId())); - ctx.addZuulRequestHeader(SecurityConstants.USER_HEADER, user.getUsername()); - } - OAuth2Authentication oauth2Authentication = (OAuth2Authentication)authentication; - String clientId = oauth2Authentication.getOAuth2Request().getClientId(); - ctx.addZuulRequestHeader(SecurityConstants.TENANT_HEADER, clientId); - ctx.addZuulRequestHeader(SecurityConstants.ROLE_HEADER, CollectionUtil.join(authentication.getAuthorities(), ",")); - String accountType = AuthUtils.getAccountType(oauth2Authentication.getUserAuthentication()); - ctx.addZuulRequestHeader(SecurityConstants.ACCOUNT_TYPE_HEADER, accountType); - } - return null; - } -} diff --git a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/route/AbstractDynRouteLocator.java b/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/route/AbstractDynRouteLocator.java deleted file mode 100644 index c1dbcee7..00000000 --- a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/route/AbstractDynRouteLocator.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.central.gateway.route; - -import org.springframework.cloud.netflix.zuul.filters.RefreshableRouteLocator; -import org.springframework.cloud.netflix.zuul.filters.SimpleRouteLocator; -import org.springframework.cloud.netflix.zuul.filters.ZuulProperties; -import org.springframework.cloud.netflix.zuul.filters.ZuulProperties.ZuulRoute; -import org.springframework.util.StringUtils; - -import java.util.LinkedHashMap; -import java.util.Map; - -/** - * 扩展 {@link SimpleRouteLocator} 实现动态路由 - * - * @author zlt - * @date 2019/8/21 - */ -public abstract class AbstractDynRouteLocator extends SimpleRouteLocator implements RefreshableRouteLocator { - private ZuulProperties properties; - - public AbstractDynRouteLocator(String servletPath, ZuulProperties properties) { - super(servletPath, properties); - this.properties = properties; - } - - /** - * 刷新路由 - */ - @Override - public void refresh() { - doRefresh(); - } - - @Override - protected Map locateRoutes() { - LinkedHashMap routesMap = new LinkedHashMap<>(); - // 从application.properties中加载静态路由信息 - routesMap.putAll(super.locateRoutes()); - // 从数据源中加载动态路由信息 - routesMap.putAll(loadDynamicRoute()); - // 优化一下配置 - LinkedHashMap values = new LinkedHashMap<>(); - for (Map.Entry entry : routesMap.entrySet()) { - String path = entry.getKey(); - // Prepend with slash if not already present. - if (!path.startsWith("/")) { - path = "/" + path; - } - if (StringUtils.hasText(this.properties.getPrefix())) { - path = this.properties.getPrefix() + path; - if (!path.startsWith("/")) { - path = "/" + path; - } - } - values.put(path, entry.getValue()); - } - return values; - } - - /** - * 加载路由配置,由子类去实现 - */ - public abstract Map loadDynamicRoute(); -} diff --git a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/route/nacos/NacosDynRouteLocator.java b/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/route/nacos/NacosDynRouteLocator.java deleted file mode 100644 index 335c9b3d..00000000 --- a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/route/nacos/NacosDynRouteLocator.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.central.gateway.route.nacos; - -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.util.StrUtil; -import com.alibaba.cloud.nacos.NacosConfigProperties; -import com.alibaba.nacos.api.config.listener.Listener; -import com.alibaba.nacos.api.exception.NacosException; -import com.central.common.utils.JsonUtil; -import com.central.gateway.config.ZuulRouteEntity; -import com.central.gateway.route.AbstractDynRouteLocator; -import lombok.Setter; -import lombok.extern.slf4j.Slf4j; -import org.springframework.cloud.netflix.zuul.RoutesRefreshedEvent; -import org.springframework.cloud.netflix.zuul.filters.ZuulProperties; -import org.springframework.cloud.netflix.zuul.filters.ZuulProperties.ZuulRoute; -import org.springframework.context.ApplicationEventPublisher; - -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.Executor; - -/** - * Nacos动态路由实现类 - * - * @author zlt - * @date 2019/8/22 - */ -@Slf4j -public class NacosDynRouteLocator extends AbstractDynRouteLocator { - private static final String ZUUL_DATA_ID = "zuul-routes"; - private static final String ZUUL_GROUP_ID = "ZUUL_GATEWAY"; - - private NacosConfigProperties nacosConfigProperties; - - private ApplicationEventPublisher publisher; - - private NacosDynRouteLocator locator; - - @Setter - private List zuulRouteEntities; - - public NacosDynRouteLocator(NacosConfigProperties nacosConfigProperties, ApplicationEventPublisher publisher, - String servletPath, ZuulProperties properties) { - super(servletPath, properties); - this.nacosConfigProperties = nacosConfigProperties; - this.publisher = publisher; - this.locator = this; - addListener(); - } - - /** - * 添加Nacos监听 - */ - private void addListener() { - try { - nacosConfigProperties.configServiceInstance().addListener(ZUUL_DATA_ID, ZUUL_GROUP_ID, new Listener() { - @Override - public Executor getExecutor() { - return null; - } - - @Override - public void receiveConfigInfo(String configInfo) { - //赋值路由信息 - locator.setZuulRouteEntities(getListByStr(configInfo)); - RoutesRefreshedEvent routesRefreshedEvent = new RoutesRefreshedEvent(locator); - publisher.publishEvent(routesRefreshedEvent); - } - }); - } catch (NacosException e) { - log.error("nacos-addListener-error", e); - } - } - - @Override - public Map loadDynamicRoute() { - Map routes = new LinkedHashMap<>(); - if (zuulRouteEntities == null) { - zuulRouteEntities = getNacosConfig(); - } - for (ZuulRouteEntity result : zuulRouteEntities) { - if (StrUtil.isBlank(result.getPath()) || !result.isEnabled()) { - continue; - } - ZuulRoute zuulRoute = new ZuulRoute(); - BeanUtil.copyProperties(result, zuulRoute); - routes.put(zuulRoute.getPath(), zuulRoute); - } - return routes; - } - - /** - * 查询zuul的路由配置 - */ - private List getNacosConfig() { - try { - String content = nacosConfigProperties.configServiceInstance().getConfig(ZUUL_DATA_ID, ZUUL_GROUP_ID,5000); - return getListByStr(content); - } catch (NacosException e) { - log.error("listenerNacos-error", e); - } - return new ArrayList<>(0); - } - - public List getListByStr(String content) { - if (StrUtil.isNotEmpty(content)) { - return JsonUtil.toList(content, ZuulRouteEntity.class); - } - return new ArrayList<>(0); - } -} diff --git a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/service/impl/PermissionServiceImpl.java b/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/service/impl/PermissionServiceImpl.java deleted file mode 100644 index 422e6e1f..00000000 --- a/zlt-gateway/zuul-gateway/src/main/java/com/central/gateway/service/impl/PermissionServiceImpl.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.central.gateway.service.impl; - -import com.central.common.model.SysMenu; -import com.central.gateway.feign.MenuService; -import com.central.oauth2.common.service.impl.DefaultPermissionServiceImpl; -import lombok.extern.slf4j.Slf4j; -import org.springframework.security.core.Authentication; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; -import java.util.List; - -/** - * 请求权限判断service - * - * @author zlt - * @date 2018/10/28 - */ -@Slf4j -@Service("permissionService") -public class PermissionServiceImpl extends DefaultPermissionServiceImpl { - @Resource - private MenuService menuService; - - @Override - public List findMenuByRoleCodes(String roleCodes) { - return menuService.findByRoleCodes(roleCodes); - } - - public boolean hasPermission(HttpServletRequest request, Authentication authentication) { - return hasPermission(authentication, request.getMethod(), request.getRequestURI()); - } -} diff --git a/zlt-gateway/zuul-gateway/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/zlt-gateway/zuul-gateway/src/main/resources/META-INF/additional-spring-configuration-metadata.json deleted file mode 100644 index efd00b85..00000000 --- a/zlt-gateway/zuul-gateway/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "properties": [ - { - "name": "zlt.gateway.dynamicRoute.enabled", - "description": "是否开启动态路由.", - "type": "java.lang.Boolean", - "defaultValue": false - }, - { - "name": "zlt.gateway.dynamicRoute.dataType", - "description": "动态路由的数据类型.", - "type": "java.lang.String", - "defaultValue": "nacos" - } - ] -} \ No newline at end of file diff --git a/zlt-gateway/zuul-gateway/src/main/resources/application.yml b/zlt-gateway/zuul-gateway/src/main/resources/application.yml deleted file mode 100644 index 9f0c4be4..00000000 --- a/zlt-gateway/zuul-gateway/src/main/resources/application.yml +++ /dev/null @@ -1,169 +0,0 @@ -#spring: - # sentinel动态配置规则 -# cloud: -# sentinel: -# zuul: -# enabled: true -# order: -# pre: 2000 -# post: 500 -# error: -100 -# filter: -# enabled: false -# datasource: - # 限流 -# ds1: -# nacos: -# server-addr: ${spring.cloud.nacos.server-addr} -# dataId: ${spring.application.name}-sentinel-gw-flow -# groupId: DEFAULT_GROUP -# rule-type: gw-flow - # api分组 -# ds2: -# nacos: -# server-addr: ${spring.cloud.nacos.server-addr} -# dataId: ${spring.application.name}-sentinel-gw-api-group -# groupId: DEFAULT_GROUP -# rule-type: gw-api-group - -zlt: - oauth2: - token: - store: - type: redis - security: - ignore: - # 忽略认证的地址 - httpUrls: > - /api-uaa/oauth/**, - /api-uaa/validata/**, - /api-uaa/css/**, - /api-uaa/images/**, - /api-uaa/js/**, - /api-user/users-anon/**, - /login.html, - /user/login - auth: - urlPermission: - #是否开启url级别权限 - enable: false - #配置只进行登录认证,不进行url权限认证的api - ignoreUrls: > - /api-user/menus/current, - /api-user/users/current, - /api-log/requestStat - #白名单 - includeClientIds: - - webApp - renew: - #是否开启token自动续签(目前只有redis实现) - enable: true - #白名单 - includeClientIds: - - webApp - gateway: - #网关动态路由 - dynamicRoute: - enabled: true - - -zuul: - ribbon-isolation-strategy: thread - ribbon: - eager-load: - enabled: true - threadPool: - useSeparateThreadPools: true - threadPoolKeyPrefix: api-gateway - #关闭重试 - retryable: false - ignored-headers: Access-Control-Allow-Credentials,Access-Control-Allow-Origin,Access-Control-Allow-Methods - add-host-header: true - routes: - auth: - path: /api-uaa/** - service-id: uaa-server - strip-prefix: true - sensitive-headers: '*' - custom-sensitive-headers: true - auth-login-page: - path: /login.html - service-id: uaa-server - strip-prefix: true - sensitive-headers: '*' - custom-sensitive-headers: true - auth-login-process: - path: /user/login - service-id: uaa-server - strip-prefix: true - sensitive-headers: '*' - custom-sensitive-headers: true - auth-login-token: - path: /oauth/token - service-id: uaa-server - strip-prefix: true - sensitive-headers: '*' - custom-sensitive-headers: true - auth-login-authorize: - path: /oauth/authorize - service-id: uaa-server - strip-prefix: true - sensitive-headers: '*' - custom-sensitive-headers: true - auth-check-process: - path: /oauth/check_token - service-id: uaa-server - strip-prefix: true - sensitive-headers: '*' - custom-sensitive-headers: true - user: - path: /api-user/** - service-id: user-center - strip-prefix: true - sensitive-headers: '*' - custom-sensitive-headers: true - file: - path: /api-file/** - service-id: file-center - strip-prefix: true - sensitive-headers: '*' - custom-sensitive-headers: true - log: - path: /api-log/** - service-id: log-center - strip-prefix: true - sensitive-headers: '*' - custom-sensitive-headers: true - generator: - path: /api-generator/** - service-id: code-generator - strip-prefix: true - sensitive-headers: '*' - custom-sensitive-headers: true - search: - path: /api-search/** - service-id: search-center - strip-prefix: true - sensitive-headers: '*' - custom-sensitive-headers: true - ssl-hostname-validation-enabled: false - -hystrix: - threadpool: - default: - coreSize: 100 - maximumSize: 2000 - allowMaximumSizeToDivergeFromCoreSize: true - maxQueueSize: -1 - command: - default: - execution: - isolation: - thread: - timeoutInMilliseconds: 60000 - -swagger: - butler: - auto-generate-from-zuul-routes: true - generate-routes: user,file - apiDocsPath: v2/api-docs \ No newline at end of file diff --git a/zlt-gateway/zuul-gateway/src/main/resources/bootstrap.yml b/zlt-gateway/zuul-gateway/src/main/resources/bootstrap.yml deleted file mode 100644 index b64a9d42..00000000 --- a/zlt-gateway/zuul-gateway/src/main/resources/bootstrap.yml +++ /dev/null @@ -1,9 +0,0 @@ -server: - port: 9900 - undertow: - buffer-size: 1024 - direct-buffers: true - -spring: - application: - name: api-gateway \ No newline at end of file diff --git a/zlt-gateway/zuul-gateway/src/main/resources/pubkey.txt b/zlt-gateway/zuul-gateway/src/main/resources/pubkey.txt deleted file mode 100644 index 0c1d7c8d..00000000 --- a/zlt-gateway/zuul-gateway/src/main/resources/pubkey.txt +++ /dev/null @@ -1,9 +0,0 @@ ------BEGIN PUBLIC KEY----- -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjmgfejBXsPYynAIPczHA -eEvTDfAVaNKQudyI7VszdezbHDM1CStCIgwiMmLd7QYf1SrrmQoqxhcSRbhjE3ej -RF5qzhtx3kmepdpMrQptcsLjRkixaxCc4E2k6Us5707gGwbhoaTrRit5F2MnAdLY -C1TS3WwnO/hQfqUcAglbK8yrJ4AwAv0DAoIUSWnWqzuniV1SYbdV57uswxUssoWy -sEfPz+nv1ZLRs6Wz4eQ5Myqx2+CjWc9F8iXa2PV8Rmjms3dVbWcLUpCP18Dfzp8l -n8vF9LfYB7UaLSpfJe6FFF6+vCg4JHfo12djTUgwGjauMF3e9mmjU83KIoQS66lp -AQIDAQAB ------END PUBLIC KEY----- \ No newline at end of file diff --git a/zlt-monitor/log-center/pom.xml b/zlt-monitor/log-center/pom.xml index 4f011845..edfff63d 100644 --- a/zlt-monitor/log-center/pom.xml +++ b/zlt-monitor/log-center/pom.xml @@ -19,7 +19,7 @@ com.zlt - zlt-ribbon-spring-boot-starter + zlt-loadbalancer-spring-boot-starter diff --git a/zlt-uaa/pom.xml b/zlt-uaa/pom.xml index 1681f82a..b5c8d877 100644 --- a/zlt-uaa/pom.xml +++ b/zlt-uaa/pom.xml @@ -27,7 +27,7 @@ com.zlt - zlt-ribbon-spring-boot-starter + zlt-loadbalancer-spring-boot-starter com.zlt @@ -93,7 +93,12 @@ org.hibernate hibernate-validator - + + junit + junit + test + + diff --git a/zlt-uaa/src/main/java/com/central/UaaServerApp.java b/zlt-uaa/src/main/java/com/central/UaaServerApp.java index e58bbca1..b3ac5a29 100644 --- a/zlt-uaa/src/main/java/com/central/UaaServerApp.java +++ b/zlt-uaa/src/main/java/com/central/UaaServerApp.java @@ -1,11 +1,10 @@ package com.central; -import com.central.common.ribbon.annotation.EnableFeignInterceptor; +import com.central.common.lb.annotation.EnableFeignInterceptor; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; -import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession; /** * @author zlt @@ -13,10 +12,12 @@ import org.springframework.session.data.redis.config.annotation.web.http.EnableR @EnableFeignClients @EnableFeignInterceptor @EnableDiscoveryClient -@EnableRedisHttpSession +//@EnableRedisHttpSession @SpringBootApplication public class UaaServerApp { public static void main(String[] args) { - SpringApplication.run(UaaServerApp.class, args); + SpringApplication application = new SpringApplication(UaaServerApp.class); + application.setEnvironmentPrefix("zlt-uaa"); + application.run(args); } } diff --git a/zlt-uaa/src/main/java/com/central/oauth/service/impl/ValidateCodeServiceImpl.java b/zlt-uaa/src/main/java/com/central/oauth/service/impl/ValidateCodeServiceImpl.java index f06072eb..e217587c 100644 --- a/zlt-uaa/src/main/java/com/central/oauth/service/impl/ValidateCodeServiceImpl.java +++ b/zlt-uaa/src/main/java/com/central/oauth/service/impl/ValidateCodeServiceImpl.java @@ -1,6 +1,7 @@ package com.central.oauth.service.impl; import cn.hutool.core.util.RandomUtil; +import cn.hutool.core.util.StrUtil; import com.central.common.feign.UserService; import com.central.common.redis.template.RedisRepository; import com.central.common.constant.SecurityConstants; @@ -9,7 +10,6 @@ import com.central.common.model.SysUser; import com.central.oauth.exception.ValidateCodeException; import com.central.oauth.service.IValidateCodeService; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -96,11 +96,11 @@ public class ValidateCodeServiceImpl implements IValidateCodeService { */ @Override public void validate(String deviceId, String validCode) { - if (StringUtils.isBlank(deviceId)) { + if (StrUtil.isBlank(deviceId)) { throw new ValidateCodeException("请在请求参数中携带deviceId参数"); } String code = this.getCode(deviceId); - if (StringUtils.isBlank(validCode)) { + if (StrUtil.isBlank(validCode)) { throw new ValidateCodeException("请填写验证码"); } @@ -108,7 +108,7 @@ public class ValidateCodeServiceImpl implements IValidateCodeService { throw new ValidateCodeException("验证码不存在或已过期"); } - if (!StringUtils.equals(code, validCode.toLowerCase())) { + if (!StrUtil.equals(code, validCode.toLowerCase())) { throw new ValidateCodeException("验证码不正确"); } -- Gitee From 4a3506d46116172f9881e1f8c3ab51c6809dcd4f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Aug 2021 20:45:02 +0000 Subject: [PATCH 28/34] Bump elasticsearch from 7.11.2 to 7.13.3 Bumps [elasticsearch](https://github.com/elastic/elasticsearch) from 7.11.2 to 7.13.3. - [Release notes](https://github.com/elastic/elasticsearch/releases) - [Commits](https://github.com/elastic/elasticsearch/compare/v7.11.2...v7.13.3) --- updated-dependencies: - dependency-name: org.elasticsearch:elasticsearch dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d7ba35ca..df21ae9b 100644 --- a/pom.xml +++ b/pom.xml @@ -52,7 +52,7 @@ 2.7 4.0.1 4.2.3 - 7.11.2 + 7.13.3 2.0.5 6.2.0.Final 2.7.8 -- Gitee From cc20fed466818e0d594c4957e20acff37b82ae67 Mon Sep 17 00:00:00 2001 From: zlt2000 Date: Tue, 31 Aug 2021 22:20:25 +0800 Subject: [PATCH 29/34] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../central/oauth2/common/util/AuthUtils.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/util/AuthUtils.java b/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/util/AuthUtils.java index 4b717617..386bcbbc 100644 --- a/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/util/AuthUtils.java +++ b/zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/util/AuthUtils.java @@ -113,13 +113,15 @@ public class AuthUtils { public static String getAccountType(Authentication authentication) { Object details = authentication.getDetails(); String accountType = null; - if (details instanceof CustomWebAuthenticationDetails) { - CustomWebAuthenticationDetails detailsObj = (CustomWebAuthenticationDetails) details; - accountType = detailsObj.getAccountType(); - } else { - Map detailsMap = (Map) details; - if (detailsMap != null) { - accountType = detailsMap.get(SecurityConstants.ACCOUNT_TYPE_PARAM_NAME); + if (details != null) { + if (details instanceof CustomWebAuthenticationDetails) { + CustomWebAuthenticationDetails detailsObj = (CustomWebAuthenticationDetails) details; + accountType = detailsObj.getAccountType(); + } else { + Map detailsMap = (Map) details; + if (detailsMap != null) { + accountType = detailsMap.get(SecurityConstants.ACCOUNT_TYPE_PARAM_NAME); + } } } return accountType; -- Gitee From 034d5bd1054e0f84eb85849051d24d53db2a0a37 Mon Sep 17 00:00:00 2001 From: zlt2000 Date: Sun, 5 Sep 2021 22:07:49 +0800 Subject: [PATCH 30/34] update to 5.0.0 --- README.md | 2 +- pom.xml | 8 ++++---- zlt-business/file-center/pom.xml | 2 +- zlt-business/pom.xml | 2 +- zlt-business/search-center/pom.xml | 2 +- zlt-business/search-center/search-client/pom.xml | 2 +- zlt-business/search-center/search-server/pom.xml | 2 +- zlt-business/user-center/pom.xml | 2 +- zlt-commons/pom.xml | 2 +- zlt-commons/zlt-auth-client-spring-boot-starter/pom.xml | 2 +- zlt-commons/zlt-common-core/pom.xml | 2 +- .../java/com/central/common/constant/CommonConstant.java | 2 +- zlt-commons/zlt-common-spring-boot-starter/pom.xml | 2 +- zlt-commons/zlt-db-spring-boot-starter/pom.xml | 2 +- zlt-commons/zlt-elasticsearch-spring-boot-starter/pom.xml | 2 +- zlt-commons/zlt-loadbalancer-spring-boot-starter/pom.xml | 2 +- zlt-commons/zlt-log-spring-boot-starter/pom.xml | 2 +- zlt-commons/zlt-oss-spring-boot-starter/pom.xml | 2 +- zlt-commons/zlt-redis-spring-boot-starter/pom.xml | 2 +- zlt-commons/zlt-sentinel-spring-boot-starter/pom.xml | 2 +- zlt-commons/zlt-swagger2-spring-boot-starter/pom.xml | 2 +- zlt-commons/zlt-zookeeper-spring-boot-starter/pom.xml | 2 +- zlt-config/pom.xml | 2 +- zlt-demo/dubbo-demo/pom.xml | 2 +- zlt-demo/pom.xml | 2 +- zlt-demo/rocketmq-demo/pom.xml | 2 +- zlt-demo/rocketmq-demo/rocketmq-consume/pom.xml | 2 +- zlt-demo/rocketmq-demo/rocketmq-produce/pom.xml | 2 +- zlt-demo/rocketmq-demo/rocketmq-transactional/pom.xml | 2 +- zlt-demo/seata-demo/account-service/pom.xml | 2 +- zlt-demo/seata-demo/business-service/pom.xml | 2 +- zlt-demo/seata-demo/order-service/pom.xml | 2 +- zlt-demo/seata-demo/pom.xml | 2 +- zlt-demo/seata-demo/seata-common-starter/pom.xml | 2 +- zlt-demo/seata-demo/storage-service/pom.xml | 2 +- zlt-demo/sharding-jdbc-demo/pom.xml | 2 +- zlt-demo/sso-demo/oidc-sso/pom.xml | 2 +- zlt-demo/sso-demo/pom.xml | 2 +- zlt-demo/sso-demo/ss-sso/pom.xml | 2 +- zlt-demo/sso-demo/web-sso/pom.xml | 2 +- zlt-demo/txlcn-demo/pom.xml | 2 +- zlt-demo/txlcn-demo/txlcn-demo-common/pom.xml | 2 +- zlt-demo/txlcn-demo/txlcn-demo-spring-service-a/pom.xml | 2 +- zlt-demo/txlcn-demo/txlcn-demo-spring-service-b/pom.xml | 2 +- zlt-demo/txlcn-demo/txlcn-demo-spring-service-c/pom.xml | 2 +- zlt-gateway/pom.xml | 2 +- zlt-gateway/sc-gateway/pom.xml | 2 +- zlt-job/job-admin/pom.xml | 2 +- zlt-job/job-core/pom.xml | 2 +- zlt-job/job-executor-samples/pom.xml | 2 +- zlt-job/pom.xml | 2 +- zlt-monitor/log-center/pom.xml | 2 +- zlt-monitor/pom.xml | 2 +- zlt-monitor/sc-admin/pom.xml | 2 +- zlt-transaction/pom.xml | 2 +- zlt-transaction/txlcn-tm/pom.xml | 2 +- zlt-uaa/pom.xml | 2 +- 57 files changed, 60 insertions(+), 60 deletions(-) diff --git a/README.md b/README.md index d794470d..1a3c82ac 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # zlt-microservices-platform

    - Downloads + Downloads Downloads Downloads Downloads diff --git a/pom.xml b/pom.xml index df21ae9b..82aaadb5 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ 4.0.0 com.zlt central-platform - 4.6.0 + 5.0.0 pom @@ -14,7 +14,7 @@ UTF-8 8 2021.1 - 2.5.3 + 2.5.4 2020.0.3 4.4 2.9.2 @@ -39,7 +39,7 @@ 7.2.28 4.1.3 4.1.1 - 2.3.1 + 2.5.1 1.7 2.7 5.0.2.RELEASE @@ -52,7 +52,7 @@ 2.7 4.0.1 4.2.3 - 7.13.3 + 7.14.0 2.0.5 6.2.0.Final 2.7.8 diff --git a/zlt-business/file-center/pom.xml b/zlt-business/file-center/pom.xml index 491a19e2..3642142d 100644 --- a/zlt-business/file-center/pom.xml +++ b/zlt-business/file-center/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-business - 4.6.0 + 5.0.0 file-center 文件中心 diff --git a/zlt-business/pom.xml b/zlt-business/pom.xml index fd423e61..c4536585 100644 --- a/zlt-business/pom.xml +++ b/zlt-business/pom.xml @@ -4,7 +4,7 @@ com.zlt central-platform - 4.6.0 + 5.0.0 zlt-business 业务中心 diff --git a/zlt-business/search-center/pom.xml b/zlt-business/search-center/pom.xml index e5ebf12c..73a33a8a 100644 --- a/zlt-business/search-center/pom.xml +++ b/zlt-business/search-center/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-business - 4.6.0 + 5.0.0 search-center 搜索中心 diff --git a/zlt-business/search-center/search-client/pom.xml b/zlt-business/search-center/search-client/pom.xml index 2b9213ec..5dc15dc9 100644 --- a/zlt-business/search-center/search-client/pom.xml +++ b/zlt-business/search-center/search-client/pom.xml @@ -4,7 +4,7 @@ com.zlt search-center - 4.6.0 + 5.0.0 search-client 搜索中心客户端 diff --git a/zlt-business/search-center/search-server/pom.xml b/zlt-business/search-center/search-server/pom.xml index 3b398718..93bdf520 100644 --- a/zlt-business/search-center/search-server/pom.xml +++ b/zlt-business/search-center/search-server/pom.xml @@ -4,7 +4,7 @@ com.zlt search-center - 4.6.0 + 5.0.0 search-server 搜索中心服务端 diff --git a/zlt-business/user-center/pom.xml b/zlt-business/user-center/pom.xml index 857c7701..6a6a94a5 100644 --- a/zlt-business/user-center/pom.xml +++ b/zlt-business/user-center/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-business - 4.6.0 + 5.0.0 user-center 用户中心 diff --git a/zlt-commons/pom.xml b/zlt-commons/pom.xml index 0f78ccaf..c6f25c1d 100644 --- a/zlt-commons/pom.xml +++ b/zlt-commons/pom.xml @@ -4,7 +4,7 @@ com.zlt central-platform - 4.6.0 + 5.0.0 zlt-commons 通用组件 diff --git a/zlt-commons/zlt-auth-client-spring-boot-starter/pom.xml b/zlt-commons/zlt-auth-client-spring-boot-starter/pom.xml index 818cc096..07e59446 100644 --- a/zlt-commons/zlt-auth-client-spring-boot-starter/pom.xml +++ b/zlt-commons/zlt-auth-client-spring-boot-starter/pom.xml @@ -5,7 +5,7 @@ com.zlt zlt-commons - 4.6.0 + 5.0.0 4.0.0 jar diff --git a/zlt-commons/zlt-common-core/pom.xml b/zlt-commons/zlt-common-core/pom.xml index 3e1d4c53..a23f104c 100644 --- a/zlt-commons/zlt-common-core/pom.xml +++ b/zlt-commons/zlt-common-core/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-commons - 4.6.0 + 5.0.0 zlt-common-core 公共通用组件 diff --git a/zlt-commons/zlt-common-core/src/main/java/com/central/common/constant/CommonConstant.java b/zlt-commons/zlt-common-core/src/main/java/com/central/common/constant/CommonConstant.java index a112aac9..48cd3525 100644 --- a/zlt-commons/zlt-common-core/src/main/java/com/central/common/constant/CommonConstant.java +++ b/zlt-commons/zlt-common-core/src/main/java/com/central/common/constant/CommonConstant.java @@ -10,7 +10,7 @@ public interface CommonConstant { /** * 项目版本号(banner使用) */ - String PROJECT_VERSION = "4.6.0"; + String PROJECT_VERSION = "5.0.0"; /** * token请求头名称 diff --git a/zlt-commons/zlt-common-spring-boot-starter/pom.xml b/zlt-commons/zlt-common-spring-boot-starter/pom.xml index fca45b6e..729bd718 100644 --- a/zlt-commons/zlt-common-spring-boot-starter/pom.xml +++ b/zlt-commons/zlt-common-spring-boot-starter/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-commons - 4.6.0 + 5.0.0 zlt-common-spring-boot-starter 公共通用组件 diff --git a/zlt-commons/zlt-db-spring-boot-starter/pom.xml b/zlt-commons/zlt-db-spring-boot-starter/pom.xml index d5229e84..6f3db401 100644 --- a/zlt-commons/zlt-db-spring-boot-starter/pom.xml +++ b/zlt-commons/zlt-db-spring-boot-starter/pom.xml @@ -5,7 +5,7 @@ com.zlt zlt-commons - 4.6.0 + 5.0.0 4.0.0 jar diff --git a/zlt-commons/zlt-elasticsearch-spring-boot-starter/pom.xml b/zlt-commons/zlt-elasticsearch-spring-boot-starter/pom.xml index 5cd39dae..72016e3f 100644 --- a/zlt-commons/zlt-elasticsearch-spring-boot-starter/pom.xml +++ b/zlt-commons/zlt-elasticsearch-spring-boot-starter/pom.xml @@ -5,7 +5,7 @@ com.zlt zlt-commons - 4.6.0 + 5.0.0 4.0.0 jar diff --git a/zlt-commons/zlt-loadbalancer-spring-boot-starter/pom.xml b/zlt-commons/zlt-loadbalancer-spring-boot-starter/pom.xml index 09797311..444253f1 100644 --- a/zlt-commons/zlt-loadbalancer-spring-boot-starter/pom.xml +++ b/zlt-commons/zlt-loadbalancer-spring-boot-starter/pom.xml @@ -5,7 +5,7 @@ com.zlt zlt-commons - 4.6.0 + 5.0.0 4.0.0 jar diff --git a/zlt-commons/zlt-log-spring-boot-starter/pom.xml b/zlt-commons/zlt-log-spring-boot-starter/pom.xml index 4394bdf5..cbe7f408 100644 --- a/zlt-commons/zlt-log-spring-boot-starter/pom.xml +++ b/zlt-commons/zlt-log-spring-boot-starter/pom.xml @@ -5,7 +5,7 @@ com.zlt zlt-commons - 4.6.0 + 5.0.0 4.0.0 jar diff --git a/zlt-commons/zlt-oss-spring-boot-starter/pom.xml b/zlt-commons/zlt-oss-spring-boot-starter/pom.xml index c58f4890..2c7e2f3d 100644 --- a/zlt-commons/zlt-oss-spring-boot-starter/pom.xml +++ b/zlt-commons/zlt-oss-spring-boot-starter/pom.xml @@ -5,7 +5,7 @@ com.zlt zlt-commons - 4.6.0 + 5.0.0 4.0.0 jar diff --git a/zlt-commons/zlt-redis-spring-boot-starter/pom.xml b/zlt-commons/zlt-redis-spring-boot-starter/pom.xml index b985002d..1442ba69 100644 --- a/zlt-commons/zlt-redis-spring-boot-starter/pom.xml +++ b/zlt-commons/zlt-redis-spring-boot-starter/pom.xml @@ -5,7 +5,7 @@ com.zlt zlt-commons - 4.6.0 + 5.0.0 4.0.0 jar diff --git a/zlt-commons/zlt-sentinel-spring-boot-starter/pom.xml b/zlt-commons/zlt-sentinel-spring-boot-starter/pom.xml index 9b03466e..0a336c99 100644 --- a/zlt-commons/zlt-sentinel-spring-boot-starter/pom.xml +++ b/zlt-commons/zlt-sentinel-spring-boot-starter/pom.xml @@ -5,7 +5,7 @@ com.zlt zlt-commons - 4.6.0 + 5.0.0 4.0.0 jar diff --git a/zlt-commons/zlt-swagger2-spring-boot-starter/pom.xml b/zlt-commons/zlt-swagger2-spring-boot-starter/pom.xml index 8cf6eb3d..f66da34e 100644 --- a/zlt-commons/zlt-swagger2-spring-boot-starter/pom.xml +++ b/zlt-commons/zlt-swagger2-spring-boot-starter/pom.xml @@ -5,7 +5,7 @@ com.zlt zlt-commons - 4.6.0 + 5.0.0 4.0.0 jar diff --git a/zlt-commons/zlt-zookeeper-spring-boot-starter/pom.xml b/zlt-commons/zlt-zookeeper-spring-boot-starter/pom.xml index e3e4d617..59b806af 100644 --- a/zlt-commons/zlt-zookeeper-spring-boot-starter/pom.xml +++ b/zlt-commons/zlt-zookeeper-spring-boot-starter/pom.xml @@ -5,7 +5,7 @@ com.zlt zlt-commons - 4.6.0 + 5.0.0 4.0.0 jar diff --git a/zlt-config/pom.xml b/zlt-config/pom.xml index 9e5bb2b1..fcc4308d 100644 --- a/zlt-config/pom.xml +++ b/zlt-config/pom.xml @@ -5,7 +5,7 @@ com.zlt central-platform - 4.6.0 + 5.0.0 4.0.0 jar diff --git a/zlt-demo/dubbo-demo/pom.xml b/zlt-demo/dubbo-demo/pom.xml index 9be3db24..c14a6421 100644 --- a/zlt-demo/dubbo-demo/pom.xml +++ b/zlt-demo/dubbo-demo/pom.xml @@ -6,7 +6,7 @@ com.zlt zlt-demo - 4.6.0 + 5.0.0 dubbo-demo diff --git a/zlt-demo/pom.xml b/zlt-demo/pom.xml index e98c6aea..f8022a17 100644 --- a/zlt-demo/pom.xml +++ b/zlt-demo/pom.xml @@ -4,7 +4,7 @@ com.zlt central-platform - 4.6.0 + 5.0.0 zlt-demo pom diff --git a/zlt-demo/rocketmq-demo/pom.xml b/zlt-demo/rocketmq-demo/pom.xml index 057dd160..a0a7b88f 100644 --- a/zlt-demo/rocketmq-demo/pom.xml +++ b/zlt-demo/rocketmq-demo/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-demo - 4.6.0 + 5.0.0 rocketmq-demo pom diff --git a/zlt-demo/rocketmq-demo/rocketmq-consume/pom.xml b/zlt-demo/rocketmq-demo/rocketmq-consume/pom.xml index d4695b33..2c91690a 100644 --- a/zlt-demo/rocketmq-demo/rocketmq-consume/pom.xml +++ b/zlt-demo/rocketmq-demo/rocketmq-consume/pom.xml @@ -4,7 +4,7 @@ com.zlt rocketmq-demo - 4.6.0 + 5.0.0 rocketmq-consume rocketMQ消费者demo diff --git a/zlt-demo/rocketmq-demo/rocketmq-produce/pom.xml b/zlt-demo/rocketmq-demo/rocketmq-produce/pom.xml index 68dc8cba..52d8b3f9 100644 --- a/zlt-demo/rocketmq-demo/rocketmq-produce/pom.xml +++ b/zlt-demo/rocketmq-demo/rocketmq-produce/pom.xml @@ -4,7 +4,7 @@ com.zlt rocketmq-demo - 4.6.0 + 5.0.0 rocketmq-produce rocketMQ生产者demo diff --git a/zlt-demo/rocketmq-demo/rocketmq-transactional/pom.xml b/zlt-demo/rocketmq-demo/rocketmq-transactional/pom.xml index 52ef30fc..744cd5fe 100644 --- a/zlt-demo/rocketmq-demo/rocketmq-transactional/pom.xml +++ b/zlt-demo/rocketmq-demo/rocketmq-transactional/pom.xml @@ -4,7 +4,7 @@ com.zlt rocketmq-demo - 4.6.0 + 5.0.0 rocketmq-transactional rocketMQ事务消息demo diff --git a/zlt-demo/seata-demo/account-service/pom.xml b/zlt-demo/seata-demo/account-service/pom.xml index e7ee500a..c52197a0 100644 --- a/zlt-demo/seata-demo/account-service/pom.xml +++ b/zlt-demo/seata-demo/account-service/pom.xml @@ -5,7 +5,7 @@ com.zlt seata-demo - 4.6.0 + 5.0.0 account-service diff --git a/zlt-demo/seata-demo/business-service/pom.xml b/zlt-demo/seata-demo/business-service/pom.xml index b73229c3..4b8b2234 100644 --- a/zlt-demo/seata-demo/business-service/pom.xml +++ b/zlt-demo/seata-demo/business-service/pom.xml @@ -5,7 +5,7 @@ com.zlt seata-demo - 4.6.0 + 5.0.0 business-service diff --git a/zlt-demo/seata-demo/order-service/pom.xml b/zlt-demo/seata-demo/order-service/pom.xml index 2d8bcad5..49eb51a3 100644 --- a/zlt-demo/seata-demo/order-service/pom.xml +++ b/zlt-demo/seata-demo/order-service/pom.xml @@ -5,7 +5,7 @@ com.zlt seata-demo - 4.6.0 + 5.0.0 order-service diff --git a/zlt-demo/seata-demo/pom.xml b/zlt-demo/seata-demo/pom.xml index 8772b764..8e089101 100644 --- a/zlt-demo/seata-demo/pom.xml +++ b/zlt-demo/seata-demo/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-demo - 4.6.0 + 5.0.0 seata-demo seata分布式事务demo diff --git a/zlt-demo/seata-demo/seata-common-starter/pom.xml b/zlt-demo/seata-demo/seata-common-starter/pom.xml index 358b81e3..f43bc358 100644 --- a/zlt-demo/seata-demo/seata-common-starter/pom.xml +++ b/zlt-demo/seata-demo/seata-common-starter/pom.xml @@ -5,7 +5,7 @@ com.zlt seata-demo - 4.6.0 + 5.0.0 seata-common-starter diff --git a/zlt-demo/seata-demo/storage-service/pom.xml b/zlt-demo/seata-demo/storage-service/pom.xml index edd6d5a1..7517b1a3 100644 --- a/zlt-demo/seata-demo/storage-service/pom.xml +++ b/zlt-demo/seata-demo/storage-service/pom.xml @@ -5,7 +5,7 @@ com.zlt seata-demo - 4.6.0 + 5.0.0 storage-service diff --git a/zlt-demo/sharding-jdbc-demo/pom.xml b/zlt-demo/sharding-jdbc-demo/pom.xml index 1d9f7db0..4047e01c 100644 --- a/zlt-demo/sharding-jdbc-demo/pom.xml +++ b/zlt-demo/sharding-jdbc-demo/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-demo - 4.6.0 + 5.0.0 sharding-jdbc-demo sharding-jdbc分库分表demo diff --git a/zlt-demo/sso-demo/oidc-sso/pom.xml b/zlt-demo/sso-demo/oidc-sso/pom.xml index 9ecff3cb..e46fc617 100644 --- a/zlt-demo/sso-demo/oidc-sso/pom.xml +++ b/zlt-demo/sso-demo/oidc-sso/pom.xml @@ -4,7 +4,7 @@ com.zlt sso-demo - 4.6.0 + 5.0.0 oidc-sso OIDC协议单点登录demo diff --git a/zlt-demo/sso-demo/pom.xml b/zlt-demo/sso-demo/pom.xml index 2efe1f3b..c96d0608 100644 --- a/zlt-demo/sso-demo/pom.xml +++ b/zlt-demo/sso-demo/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-demo - 4.6.0 + 5.0.0 sso-demo pom diff --git a/zlt-demo/sso-demo/ss-sso/pom.xml b/zlt-demo/sso-demo/ss-sso/pom.xml index dd59d801..5de8d740 100644 --- a/zlt-demo/sso-demo/ss-sso/pom.xml +++ b/zlt-demo/sso-demo/ss-sso/pom.xml @@ -4,7 +4,7 @@ com.zlt sso-demo - 4.6.0 + 5.0.0 ss-sso springSecurity单点登录demo diff --git a/zlt-demo/sso-demo/web-sso/pom.xml b/zlt-demo/sso-demo/web-sso/pom.xml index d0826233..cfe27252 100644 --- a/zlt-demo/sso-demo/web-sso/pom.xml +++ b/zlt-demo/sso-demo/web-sso/pom.xml @@ -4,7 +4,7 @@ com.zlt sso-demo - 4.6.0 + 5.0.0 web-sso 前后端分离单点登录demo diff --git a/zlt-demo/txlcn-demo/pom.xml b/zlt-demo/txlcn-demo/pom.xml index 78a6f287..b9910a16 100644 --- a/zlt-demo/txlcn-demo/pom.xml +++ b/zlt-demo/txlcn-demo/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-demo - 4.6.0 + 5.0.0 txlcn-demo txlcn分布式事务demo diff --git a/zlt-demo/txlcn-demo/txlcn-demo-common/pom.xml b/zlt-demo/txlcn-demo/txlcn-demo-common/pom.xml index 07ee9498..8a6cafa8 100644 --- a/zlt-demo/txlcn-demo/txlcn-demo-common/pom.xml +++ b/zlt-demo/txlcn-demo/txlcn-demo-common/pom.xml @@ -4,7 +4,7 @@ com.zlt txlcn-demo - 4.6.0 + 5.0.0 txlcn-demo-common demo-common diff --git a/zlt-demo/txlcn-demo/txlcn-demo-spring-service-a/pom.xml b/zlt-demo/txlcn-demo/txlcn-demo-spring-service-a/pom.xml index 2004e59c..3c64f958 100644 --- a/zlt-demo/txlcn-demo/txlcn-demo-spring-service-a/pom.xml +++ b/zlt-demo/txlcn-demo/txlcn-demo-spring-service-a/pom.xml @@ -3,7 +3,7 @@ com.zlt txlcn-demo - 4.6.0 + 5.0.0 4.0.0 diff --git a/zlt-demo/txlcn-demo/txlcn-demo-spring-service-b/pom.xml b/zlt-demo/txlcn-demo/txlcn-demo-spring-service-b/pom.xml index 697415af..e147cab5 100644 --- a/zlt-demo/txlcn-demo/txlcn-demo-spring-service-b/pom.xml +++ b/zlt-demo/txlcn-demo/txlcn-demo-spring-service-b/pom.xml @@ -3,7 +3,7 @@ com.zlt txlcn-demo - 4.6.0 + 5.0.0 4.0.0 txlcn-demo-spring-service-b diff --git a/zlt-demo/txlcn-demo/txlcn-demo-spring-service-c/pom.xml b/zlt-demo/txlcn-demo/txlcn-demo-spring-service-c/pom.xml index 493a52e5..96a4643f 100644 --- a/zlt-demo/txlcn-demo/txlcn-demo-spring-service-c/pom.xml +++ b/zlt-demo/txlcn-demo/txlcn-demo-spring-service-c/pom.xml @@ -3,7 +3,7 @@ com.zlt txlcn-demo - 4.6.0 + 5.0.0 4.0.0 txlcn-demo-spring-service-c diff --git a/zlt-gateway/pom.xml b/zlt-gateway/pom.xml index 08d238c1..43c2c09e 100644 --- a/zlt-gateway/pom.xml +++ b/zlt-gateway/pom.xml @@ -4,7 +4,7 @@ com.zlt central-platform - 4.6.0 + 5.0.0 zlt-gateway pom diff --git a/zlt-gateway/sc-gateway/pom.xml b/zlt-gateway/sc-gateway/pom.xml index 4ee10cc2..b31ff724 100644 --- a/zlt-gateway/sc-gateway/pom.xml +++ b/zlt-gateway/sc-gateway/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-gateway - 4.6.0 + 5.0.0 sc-gateway spring cloud gateway网关 diff --git a/zlt-job/job-admin/pom.xml b/zlt-job/job-admin/pom.xml index 8d8d8462..f5b627e7 100644 --- a/zlt-job/job-admin/pom.xml +++ b/zlt-job/job-admin/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-job - 4.6.0 + 5.0.0 job-admin jar diff --git a/zlt-job/job-core/pom.xml b/zlt-job/job-core/pom.xml index 4a476ac5..8671a65b 100644 --- a/zlt-job/job-core/pom.xml +++ b/zlt-job/job-core/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-job - 4.6.0 + 5.0.0 job-core jar diff --git a/zlt-job/job-executor-samples/pom.xml b/zlt-job/job-executor-samples/pom.xml index b0f206ae..1961bbbb 100644 --- a/zlt-job/job-executor-samples/pom.xml +++ b/zlt-job/job-executor-samples/pom.xml @@ -6,7 +6,7 @@ com.zlt zlt-job - 4.6.0 + 5.0.0 job-executor-samples jar diff --git a/zlt-job/pom.xml b/zlt-job/pom.xml index 95777d38..721a1266 100644 --- a/zlt-job/pom.xml +++ b/zlt-job/pom.xml @@ -4,7 +4,7 @@ com.zlt central-platform - 4.6.0 + 5.0.0 zlt-job pom diff --git a/zlt-monitor/log-center/pom.xml b/zlt-monitor/log-center/pom.xml index edfff63d..b27abbc6 100644 --- a/zlt-monitor/log-center/pom.xml +++ b/zlt-monitor/log-center/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-monitor - 4.6.0 + 5.0.0 log-center diff --git a/zlt-monitor/pom.xml b/zlt-monitor/pom.xml index 1737222d..0478a4bd 100644 --- a/zlt-monitor/pom.xml +++ b/zlt-monitor/pom.xml @@ -3,7 +3,7 @@ com.zlt central-platform - 4.6.0 + 5.0.0 zlt-monitor pom diff --git a/zlt-monitor/sc-admin/pom.xml b/zlt-monitor/sc-admin/pom.xml index fb5a6c2b..2cf1df56 100644 --- a/zlt-monitor/sc-admin/pom.xml +++ b/zlt-monitor/sc-admin/pom.xml @@ -4,7 +4,7 @@ com.zlt zlt-monitor - 4.6.0 + 5.0.0 sc-admin diff --git a/zlt-transaction/pom.xml b/zlt-transaction/pom.xml index d87be893..72254dfa 100644 --- a/zlt-transaction/pom.xml +++ b/zlt-transaction/pom.xml @@ -4,7 +4,7 @@ com.zlt central-platform - 4.6.0 + 5.0.0 zlt-transaction 事务 diff --git a/zlt-transaction/txlcn-tm/pom.xml b/zlt-transaction/txlcn-tm/pom.xml index c8e3c390..802c72da 100644 --- a/zlt-transaction/txlcn-tm/pom.xml +++ b/zlt-transaction/txlcn-tm/pom.xml @@ -3,7 +3,7 @@ com.zlt zlt-transaction - 4.6.0 + 5.0.0 4.0.0 txlcn-tm diff --git a/zlt-uaa/pom.xml b/zlt-uaa/pom.xml index b5c8d877..0f0f9867 100644 --- a/zlt-uaa/pom.xml +++ b/zlt-uaa/pom.xml @@ -4,7 +4,7 @@ com.zlt central-platform - 4.6.0 + 5.0.0 zlt-uaa 认证中心 -- Gitee From 1e21bbdba7fb793bffaea117471ef898fc752dbb Mon Sep 17 00:00:00 2001 From: zlt2000 Date: Fri, 10 Sep 2021 12:49:03 +0800 Subject: [PATCH 31/34] fix #I49D75 --- pom.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 82aaadb5..7f1aa62e 100644 --- a/pom.xml +++ b/pom.xml @@ -52,7 +52,7 @@ 2.7 4.0.1 4.2.3 - 7.14.0 + 7.13.4 2.0.5 6.2.0.Final 2.7.8 @@ -358,6 +358,11 @@ elasticsearch-rest-high-level-client ${elasticsearch.version} + + org.elasticsearch + elasticsearch-x-content + ${elasticsearch.version} + org.elasticsearch.client elasticsearch-rest-client -- Gitee From 0f01c262b8eb2f46d26e8e716b893cf1344091f6 Mon Sep 17 00:00:00 2001 From: zlt2000 Date: Fri, 10 Sep 2021 12:49:32 +0800 Subject: [PATCH 32/34] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zlt-business/user-center/pom.xml | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/zlt-business/user-center/pom.xml b/zlt-business/user-center/pom.xml index 6a6a94a5..00b4f1d6 100644 --- a/zlt-business/user-center/pom.xml +++ b/zlt-business/user-center/pom.xml @@ -52,11 +52,6 @@ com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery - - org.springframework - spring-context-support - - org.springframework.boot spring-boot-starter-actuator @@ -71,16 +66,6 @@ io.micrometer micrometer-registry-prometheus - - - org.springframework.social - spring-social-security - - - - org.hibernate - hibernate-validator - junit junit -- Gitee From eb7985fac03a9635bc0eccfac8dcda8817cd5f67 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Sep 2021 20:31:34 +0000 Subject: [PATCH 33/34] Bump dubbo from 2.7.8 to 2.7.13 Bumps [dubbo](https://github.com/apache/dubbo) from 2.7.8 to 2.7.13. - [Release notes](https://github.com/apache/dubbo/releases) - [Changelog](https://github.com/apache/dubbo/blob/3.0/CHANGES.md) - [Commits](https://github.com/apache/dubbo/compare/dubbo-2.7.8...dubbo-2.7.13) --- updated-dependencies: - dependency-name: org.apache.dubbo:dubbo dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7f1aa62e..7fbacaa0 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ 7.13.4 2.0.5 6.2.0.Final - 2.7.8 + 2.7.13 5.1.0 2.12.4 1.10 -- Gitee From 20a6bf3814205fb0dbbad4cc27ec8a3d6944b277 Mon Sep 17 00:00:00 2001 From: zlt2000 Date: Fri, 24 Sep 2021 07:00:17 +0800 Subject: [PATCH 34/34] =?UTF-8?q?=E8=A7=A3=E5=86=B3=20dubbo-demo=20?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=86=B2=E7=AA=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7fbacaa0..7f1aa62e 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ 7.13.4 2.0.5 6.2.0.Final - 2.7.13 + 2.7.8 5.1.0 2.12.4 1.10 -- Gitee

    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 diff --git a/zlt-web/back-web/src/main/resources/static/assets/images/head.png b/zlt-web/back-web/src/main/resources/static/assets/images/head.png deleted file mode 100644 index e298c8aa1ecc67f30cf542b4a21c2bb6486fb8c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53185 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 z 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 O0000KmG59{twCv{ftOs zW4N;Q)!OTY3>;>=*3S97Q-7&|V4&B^*_(MTPLEp{EO2-FMERq>C$<(UCH;z0ntPpj zuhw;+PCLge`!D{>6<6ENoV!-|k>yvlBgwa_tr*1kXQoW_{Rng%1B0ilpUXO@geCxM C4sr(o diff --git a/zlt-web/back-web/src/main/resources/static/assets/images/img_theme_1.png b/zlt-web/back-web/src/main/resources/static/assets/images/img_theme_1.png deleted file mode 100644 index 58800065f7273e8e59bd514e971eb0df7c9143d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^0YGfT!3HEx>&E;6QWrg4978gk-(KIyd&q#n)v;RK zWwu-=W5f)`2@(prr}PYt?BuxQ{eR7iKho!K|NSV-z5n~`ogcP*mN#YI;>~s8k6Q!d zB8F$W1`Z+z_OP;bFwNNRz`7@9`%?Xhk2m}OS-$^NdP7+})gZqS-8hmIJFxs=j14)#?XWE;80a|$Pgg&ebxsLQ00MYk A0ssI2 diff --git a/zlt-web/back-web/src/main/resources/static/assets/images/img_theme_10.png b/zlt-web/back-web/src/main/resources/static/assets/images/img_theme_10.png deleted file mode 100644 index a6e70f8d8446d61e4214a04466f990c1a4042e99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^0YGfT!3HEx>&E;6QYSrK978gk-(Eh*+ibwV;uzz; zqVeDD2B{a#A``@;>}4`5ip8Y#AKUe%&;C(!uJ}>rYk5&t;ucLK6VAuv$(4 diff --git a/zlt-web/back-web/src/main/resources/static/assets/images/img_theme_11.png b/zlt-web/back-web/src/main/resources/static/assets/images/img_theme_11.png deleted file mode 100644 index b6f500c0552d5db3c61c33dff9b382fa25f93893..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^0YGfT!3HEx>&E;6QinZV978gk-(KIy*bSY> z@RHK}_KhX1tnMFfa-{!v(3|gYY-jHEN7cFp4EwfKJ2jl;Px!*jv4QKzJy{L|t|NDt z7~L9Y^e3P5k5_uVum6Yt{!@&{9y1}Nq7@Ek2o!U(NU$d5H8L!AIHN0&Akwjum8plx laJxf8pu#gTN)&&VUUhya<3<~0d7yU~JYD@<);T3K0RT%mR&D?Q diff --git a/zlt-web/back-web/src/main/resources/static/assets/images/img_theme_12.png b/zlt-web/back-web/src/main/resources/static/assets/images/img_theme_12.png deleted file mode 100644 index a5dad6a0baccb5e033f23aa63741601974d361a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^0YGfT!3HEx>&E;6QfE9}978gk-(KIyd&q#n)v>xK z$HD*o-O2OjaYi)r6zVxty__#PxBl_Z$k*0pb;m37Y~FtFpT&4fl{KSI`2a&8!)GxG z1+Ij9Ow2BfXQCG{+0CntS9*Wl^yB=0TJsri)nZka(4f&!$;~6cYLMT^xQOAIu7QKd ofjz8j9ZWN}W0*;-V!;n=&kvs9ekI2E8R#ztPgg&ebxsLQ0RC=SDF6Tf diff --git a/zlt-web/back-web/src/main/resources/static/assets/images/img_theme_2.png b/zlt-web/back-web/src/main/resources/static/assets/images/img_theme_2.png deleted file mode 100644 index eb30af3cf3185fa81274624783908bc641e02363..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^0YGfT!3HEx>&E;6QpY`A978gk-(EN5YIYEDz4&Ku z%a)g|ItQLE7yT}DP_-hL>G;2vUnI--*Fs)(QSkBJW z!(_PKp&?M=+2@+Q`L&&IZkIo@{~O9@ASVtM72`1AI&z1J(XDYtw88-mfnshJ3D%^% qMux=>XLJP;L^^h|B8(tcvAk{X#+4BhTseSVV(@hJb6Mw<&;$T>QCXz` diff --git a/zlt-web/back-web/src/main/resources/static/assets/images/img_theme_3.png b/zlt-web/back-web/src/main/resources/static/assets/images/img_theme_3.png deleted file mode 100644 index 8e5a5a37f3c08b39d5ba1a68b5a99aafb9135dca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^0YGfT!3HEx>&E;6QWrd3978gk-(GhVY&KwUJ$Qse zOCUh9v{5ugVKGzIBCi!4XIp0;|C>7F?EaLz=e7N<_uofU++gmT#du4XHKR`X07D?d zXE6x{u7rC`%r1;)q8Bi|TmSvi^b_BUeg7&E;6Ql~s!978gk-(Gj*JnSIida+J9 zG>~y(VB|zWNl^j+;1w-*@|e_rb3Z(jobYVt`mY~i#UvW0zpYa|@QmHy7b8mqYtnl@ z775m*yhet_4riWk-TVKSkfr_cBlWvN`3&U59U1}^o{4c7a2>hB#OT&IBU<5rhCnel qLWizEf=I_sR;C^%!|fC)u4k;P+4WkmJ}3|9D+W(jKbLh*2~7YrXIA0> diff --git a/zlt-web/back-web/src/main/resources/static/assets/images/img_theme_5.png b/zlt-web/back-web/src/main/resources/static/assets/images/img_theme_5.png deleted file mode 100644 index e204eba3ee62ef5bc4f93ad5d669830491e88278..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^0YGfT!3HEx>&E;6QYSrK978gk-(ES$+ibwV;<)?p z6o#owTP`S?9AIB7?;>??PU|u4XFqDrZ~S0cfBVqod-YdXZs>6)e3oWlbZfK-S2&;{ z@SKZ9g7r~MV?MLYal6Onf3Mb5HZr{at8Ku=#PY-Cfc=NgYiD<3DrZ>iFh^S;L8POY xm8plRaGgU#pu#y(4g;j!yC2*-1m}`B7mM^@O1TaS?83{1OR*aS{wiX diff --git a/zlt-web/back-web/src/main/resources/static/assets/images/img_theme_6.png b/zlt-web/back-web/src/main/resources/static/assets/images/img_theme_6.png deleted file mode 100644 index 36492d873ebd9e158f425afe8c640ded73a0d3b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 239 zcmeAS@N?(olHy`uVBq!ia0vp^0YGfT!3HEx>&E;6QrkRT978gk-(GR#I-nrHa`4T6 z`Mr%c2fqnvyyp$#JNNG0V;OFq1IfGfS#JDcaI#`c60Avi2o*b7nR=KEw>vZhDm)Y8FyK0Jhl$axaYi&nisLWn Wo#3{8U;h*60|rl5KbLh*2~7a|Xi%2` diff --git a/zlt-web/back-web/src/main/resources/static/assets/images/img_theme_7.png b/zlt-web/back-web/src/main/resources/static/assets/images/img_theme_7.png deleted file mode 100644 index f0bf4373562fda39158717c4753ae729765ac538..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^0YGfT!3HEx>&E;6Ql~s!978gk-(ES$+ibwV;<&p* z#PR>$335(?7Z~KX)Cpu(6pKl%pYeF}+~kMF|Gu>@-}`?B=Z09J1JBGEn0lBB*Euu< zDx4GLFyK0}lj%O2Mc@0L`(MI8KV@ZF^L_mR4Gw_^!i@h9s7INjgenz)Oi*SVl8UoL`NLKuZN%q15?pzt6KA^7{JYD@<);T3K0RVexS(yL; diff --git a/zlt-web/back-web/src/main/resources/static/assets/images/img_theme_8.png b/zlt-web/back-web/src/main/resources/static/assets/images/img_theme_8.png deleted file mode 100644 index 91f3f56a4b6abeefa681d35b8b06c41accfbad64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^0YGfT!3HEx>&E;6QYSoJ978gk-(K0s+ibw#>R5fB z=K$Lh{@;g~OkV6%xD@zVx1=tq?`?5k>-nAk#pZqcw^;2!nJ2^S`wScgTt{{?F}gKc zgex4-5O~g2BmLlqoN?Xd__Nc+IX2we&$L*&E;6QU^R;978gk-(Ek+*9=7IM>N1{?R}2gd?S|IQH=Os05~(-0v+6v*i!GU>8Ub?bvHAkRZ~rla;B5 z$#8!1{e88aYm$%E{|eFVdQ&MBb@09#&C=>Px# diff --git a/zlt-web/back-web/src/main/resources/static/assets/images/logo.png b/zlt-web/back-web/src/main/resources/static/assets/images/logo.png deleted file mode 100644 index da27b6b0e6032051f6070ec99d34752e716f0b40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3665 zcmV-X4zBTuP)vQpepGFly*=un;I9hf>Kt{3=pJy zW@QDYS73S8HVl}V2Z+3au*am>@(Q9J1RjQlfsCSeGkA|BlH%v_BT)tP0lKUBXYugf z`|jsm0-x{+pKt_CeFLV57hF+Us*w?c@y$uZ2l7eed->}}irc-}i4hN~nZNs@ah z<(!%4L^KEBj&Rx(z>bJQDdoFK{B7`yVSi>N03$FI?>em2=Z$8q{T_)f?M1&-tVt@FX(@C|?^ zm^~1=osK2A_zS%+t~w*M4G3~?UKuG7t%)d@+E^On9p3|3f#CH%hlN?$Mx2ERJqq%P zXjQXI2q5V7CQb#V_tyZ7e3)7=QoN<#l~<2$Ba$S!I~)$1Dk)&*9TBac6#?(~5d{JIk_`&%!5o$B+0Q0?-9xTraSx+tkY%MN#xfM1_;; zc+mV(UU6?^#`scFaKsL8=(DK1ot>#1JbF-UZ zR0vQ7s?TZYvLci@G9!f#S^u;BjO3n9Q3%U z@o|hD)vFExfADn#d`-4FnD=-q8jB$c<;ZT^@rYDMzhX`Lmp1HtRO%nXm;B(YT17p|bJ-30G)6%jF;QbR3 zLWnu@aj2k+1%@NRoz5ShyTBJ9cu25@jefRGNvv11H3h+i)6FiFA%xiFHBW}xFnHVa zStBSC!iy&H4+s$VcwjMZa6nKi4FYag<7|S=Z+jwwnagkNe$W-N%DPJ@@dn z!7czE7C3vDXZ#88W~s}|fZ>C&LW~e}k}91;!bNlb!K=;gjf`=Li0~E8J@u(OZUHR8 z9m_7&F!f?t$?=GY@cpy&kgK3b7&Z*`xG;UFWj(C& z(fQ-u)^m)5REI4tI_*qKIV(v-Q8i^NGBos9Dnfak%JWoHrIxt|J1gv4WeinJ=y(o5 zg&b5XHg%ryF$oD8h3A?Lhziuiaa=GGj^hkV+o;&SsuN=Du|U7R95Mcbv6?TcQ1;*` zYG34^F*ENLi^XTaX{vOWmjvS>Y#mgL=WAd<(U(Gqu_h!6Z18Ft63WRpBHCxamyPuf zInmKo9ixjc$9N5f%Q@9W%6M<6I=~iUEFu`g!}~oUr7WxaF#DyPvkp;o&Rh(Co1ef( zzvC8E(u-=rlM(i0!KHk}R3OA@E~OvDX@|)R!p$$_t7Kl3HOmSPm(>nOvG5&#}>S>}l5^&l`hM9xKV)1k@RSw+-#ZdMV=$9DbPIKFGBmlsHJQN+u z5JQQuMkrG5kHWo|Yhh1_uq-Q(Qm%3bEaNy{buG;wM1n$5jSaUG;owr6p2*s8=T@aC z)fJx*VcYhPQ55ZS>giUW#5fGVDqkI#?OjO%Pwx6GKm4ib^6J$N4#mq98x1QA+6pXzQ|KGLHdmBme-7 zH#Z}^WOTI*{oI~VH%+=WmZax=?ept&r?N_^;4QuYo4k4LB&dtY8QC9>#_m$G2Tu3yoGH^ayGNMMB|ZEU|8WSv!*8Y)@~t zrm1-&R3DB>at>N0y-*+m7Ct9Hry~G2>@U^G-m9uKyBOSb3zx6g*Xjmw05`z`j%WW{Ce-%lmt!z zTD6h@DD~7dw>{`C_>=nm24FUh1r2+#B!oh5=*LBPIxt04)@J6PeaQ*_ebii2TA3)eIr3Glr9q(C~S;&Y$w>M1&4+R|MTm zNZ=GKJzDJgMnN|?C1O$%q?BR#!&drpKArRY-H4FzPj#6A3CsbARXlkq9LXFI`~PiGVVaBze#t z=&WuZW?oyC65%KM7@GKq88OtG#U!_0dj#9m6d jvn(sUMxW&qt`PqRMgWInl9~Ri00000NkvXXu0mjftM;eB diff --git a/zlt-web/back-web/src/main/resources/static/assets/images/logo_1.png b/zlt-web/back-web/src/main/resources/static/assets/images/logo_1.png deleted file mode 100644 index 51ef9f837af64f6c506d001c7011657bb8e81581..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52283 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