From 63014508d4ba3bc2efda0d9b5ff38dfc8eef3829 Mon Sep 17 00:00:00 2001 From: rplees Date: Thu, 4 Apr 2024 10:53:06 +0000 Subject: [PATCH 01/14] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f8eba70..0656680 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -46,7 +46,7 @@ webhook: - ls - apt-get update - apt-get install -y curl - - curl --max-time 30 http://46.250.238.241:11113/api/webhook/justpull?project=india_market_java\&setenv_file=alpha.sh\&publish_env=alpha\&shell=deploy-test.sh + - curl --max-time 30 http://149.88.86.7:11113/api/webhook/justpull?project=india_market_java\&setenv_file=alpha.sh\&publish_env=alpha\&shell=deploy-test.sh - echo ">>>>>>Start Deploy Finish<<<<<<" From cf97e845389b9225050eafb09ef202cbdc6f4d3b Mon Sep 17 00:00:00 2001 From: Achilles Date: Sun, 7 Apr 2024 15:50:44 +0800 Subject: [PATCH 02/14] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9C=80=E6=96=B0=E7=9A=84=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/application-base-alpha.yml | 2 +- src/main/resources/stock2guo.properties | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/resources/application-base-alpha.yml b/src/main/resources/application-base-alpha.yml index 35365d4..fb4cc6d 100644 --- a/src/main/resources/application-base-alpha.yml +++ b/src/main/resources/application-base-alpha.yml @@ -17,7 +17,7 @@ spring: datasource: stock-market: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://46.250.238.241:33306/india_stock?useUnicode=true&characterEncoding=utf-8 + url: jdbc:mysql://149.88.86.7:33306/india_stock?useUnicode=true&characterEncoding=utf-8 username: root password: 33BsUUcnXRYgwtIND maxActive: 500 diff --git a/src/main/resources/stock2guo.properties b/src/main/resources/stock2guo.properties index 245db43..16f7157 100644 --- a/src/main/resources/stock2guo.properties +++ b/src/main/resources/stock2guo.properties @@ -4,8 +4,8 @@ ftp.pass=ftp_vipyingyrt_cn ftp.server.http.prefix=http://ftp.vipyingyrt.cn/ # redis config start -redis1.ip=129.226.172.67 -redis1.port=6379 +redis1.ip=149.88.86.7 +redis1.port=36379 redis1.pwd=nango redis.max.total=20 redis.max.idle=10 @@ -22,7 +22,7 @@ admin.cookie.name=ADMIN_TOKEN agent.key.prefix=SR admin.super.name=18916320007 -admin.auth.email.subject=\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00a9\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00b8\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00bf\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00a9\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00b9\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0084\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00a6\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0098\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0093\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00a8\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u009e\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u008d - \u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00a6\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0094\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00af\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00a4\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00bb\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0098\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00a9\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0080\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u009a\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00a7\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u009f\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00a5\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00a9\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00ae\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00a4\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00bb\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00b6 +admin.auth.email.subject=鸿鹄易融 - 支付通知邮件 admin.auth.email=navihold800@163.com admin.auth.email.pwd=XY118318asd #cookie config end @@ -105,7 +105,7 @@ fly.pay.callbackurl=http://www.honghoo.top/wap/#/user fly.pay.payurl=https://zf.flyotcpay.com/payment/ -wj.sms.uid=\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00a4\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00b8\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0080\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00a6\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u009c\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00ac001 +wj.sms.uid=一本001 wj.sms.key=d41d8cd98f00b204e980 wj.sms.coding=utf8 From 07d3b0623ea9c541c8baffa366756c91c87dfaa1 Mon Sep 17 00:00:00 2001 From: zhangjian Date: Sat, 20 Apr 2024 10:33:50 +0800 Subject: [PATCH 03/14] =?UTF-8?q?money=E8=82=A1=E7=A5=A8=E6=8E=A8=E8=8D=90?= =?UTF-8?q?=E7=9B=B8=E5=85=B3getTopActives=E6=8E=A5=E5=8F=A3=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E8=82=A1=E7=A5=A8=E5=90=8D=E7=A7=B0=E5=8E=BB=E9=87=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/stock/market/web/MoneyApiController.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/cn/stock/market/web/MoneyApiController.java b/src/main/java/cn/stock/market/web/MoneyApiController.java index 6daee17..38b3fdd 100644 --- a/src/main/java/cn/stock/market/web/MoneyApiController.java +++ b/src/main/java/cn/stock/market/web/MoneyApiController.java @@ -37,10 +37,11 @@ import org.springframework.web.client.RestClientException; import org.springframework.web.client.RestTemplate; import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; +import java.util.function.Function; +import java.util.function.Predicate; import java.util.stream.Collectors; /** @@ -615,7 +616,10 @@ public class MoneyApiController { }else if(StringUtils.equals(stockType,"bse")){ moneyStockSuggestDTOS = bseActives(); } - moneyStockSuggestDTOS = moneyStockSuggestDTOS.stream().filter(f->StringUtils.isNotBlank(f.getStockName())).collect(Collectors.toList()); + Map map = new HashMap<>(); + moneyStockSuggestDTOS = moneyStockSuggestDTOS.stream() + .filter(f->StringUtils.isNotBlank(f.getStockName())) + .filter(i -> map.putIfAbsent(i.getStockName(), Boolean.TRUE) == null).collect(Collectors.toList()); if(CollectionUtils.isNotEmpty(moneyStockSuggestDTOS)){ moneyStockSuggestDTOS.stream().forEach(f->f.setDispId(extractLastSegment(f.getStockUrl()))); List selfUlrList = moneyStockSuggestDTOS.stream().map(MoneyStockSuggestDTO::getStockName).collect(Collectors.toList()); From 55c9865845428206d86457a88796b8ee6f40c633 Mon Sep 17 00:00:00 2001 From: zhangjian Date: Sat, 20 Apr 2024 14:26:15 +0800 Subject: [PATCH 04/14] =?UTF-8?q?money=E8=82=A1=E7=A5=A8=E6=8E=A8=E8=8D=90?= =?UTF-8?q?getTopGainer=E5=92=8C=20getTopLoser=E6=8E=A5=E5=8F=A3=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E8=82=A1=E7=A5=A8=E5=90=8D=E7=A7=B0=E5=8E=BB=E9=87=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/stock/market/web/MoneyApiController.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/cn/stock/market/web/MoneyApiController.java b/src/main/java/cn/stock/market/web/MoneyApiController.java index 38b3fdd..0a460ea 100644 --- a/src/main/java/cn/stock/market/web/MoneyApiController.java +++ b/src/main/java/cn/stock/market/web/MoneyApiController.java @@ -526,8 +526,10 @@ public class MoneyApiController { } else if (StringUtils.equals(stockType, "bse")) { moneyStockSuggestDTOS = bseGainer(); } - - moneyStockSuggestDTOS = moneyStockSuggestDTOS.stream().filter(f->StringUtils.isNotBlank(f.getStockName())).collect(Collectors.toList()); + Map map = new HashMap<>(); + moneyStockSuggestDTOS = moneyStockSuggestDTOS.stream() + .filter(f->StringUtils.isNotBlank(f.getStockName())) + .filter(i -> map.putIfAbsent(i.getStockName(), Boolean.TRUE) == null).collect(Collectors.toList()); if(CollectionUtils.isNotEmpty(moneyStockSuggestDTOS)){ List selfUlrList = moneyStockSuggestDTOS.stream().map(MoneyStockSuggestDTO::getStockName).collect(Collectors.toList()); if(CollectionUtils.isNotEmpty(selfUlrList)){ @@ -566,7 +568,10 @@ public class MoneyApiController { }else if(StringUtils.equals(stockType,"bse")){ moneyStockSuggestDTOS = bseTopLoser(); } - moneyStockSuggestDTOS = moneyStockSuggestDTOS.stream().filter(f->StringUtils.isNotBlank(f.getStockName())).collect(Collectors.toList()); + Map map = new HashMap<>(); + moneyStockSuggestDTOS = moneyStockSuggestDTOS.stream() + .filter(f->StringUtils.isNotBlank(f.getStockName())) + .filter(i -> map.putIfAbsent(i.getStockName(), Boolean.TRUE) == null).collect(Collectors.toList()); if(CollectionUtils.isNotEmpty(moneyStockSuggestDTOS)){ moneyStockSuggestDTOS.stream().forEach(f->f.setDispId(extractLastSegment(f.getStockUrl()))); List selfUlrList = moneyStockSuggestDTOS.stream().map(MoneyStockSuggestDTO::getStockName).collect(Collectors.toList()); From 5b3cc7e156261a6778100ad995d943db0a6b6f3a Mon Sep 17 00:00:00 2001 From: zhangjian Date: Sat, 20 Apr 2024 17:01:59 +0800 Subject: [PATCH 05/14] =?UTF-8?q?=E5=8D=B0=E5=BA=A6--=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=8C=87=E5=AE=9A=E6=8C=87=E6=95=B0=E4=BF=A1=E6=81=AF=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3getIndiaIndexByToday.do:=20BToday=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=85=9C=E5=BA=95=E6=95=B0=E6=8D=AE=E6=BA=90Growwin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/basic/service/StockService.java | 34 +-- .../infrastructure/api/GrowwInApis.java | 233 ++++++++++++++++++ 2 files changed, 246 insertions(+), 21 deletions(-) create mode 100644 src/main/java/cn/stock/market/infrastructure/api/GrowwInApis.java diff --git a/src/main/java/cn/stock/market/domain/basic/service/StockService.java b/src/main/java/cn/stock/market/domain/basic/service/StockService.java index ccd03f2..394127d 100644 --- a/src/main/java/cn/stock/market/domain/basic/service/StockService.java +++ b/src/main/java/cn/stock/market/domain/basic/service/StockService.java @@ -1,51 +1,33 @@ package cn.stock.market.domain.basic.service; -import java.io.BufferedReader; import java.io.IOException; -import java.io.InputStreamReader; import java.math.BigDecimal; -import java.net.URL; -import java.net.URLConnection; import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.TimeUnit; -import javax.net.ssl.X509TrustManager; import javax.persistence.EntityExistsException; import javax.servlet.http.HttpServletRequest; -import javax.sound.midi.Soundbank; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.text.StrFormatter; import cn.stock.market.dto.model.*; +import cn.stock.market.infrastructure.api.GrowwInApis; import cn.stock.market.infrastructure.api.TodayApis; import cn.stock.market.infrastructure.api.investing.IndiaIndexVo; import cn.stock.market.infrastructure.api.investing.IndiaStockVO; import cn.stock.market.infrastructure.api.investing.InvestingApis; import cn.stock.market.infrastructure.api.investing.InvestingInvokerApis; import cn.stock.market.infrastructure.api.sina.vo.HotSearchVO; -import cn.stock.market.utils.*; import com.ag.utils.CollectionUtils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.google.common.base.Stopwatch; -import okhttp3.OkHttpClient; -import okhttp3.Protocol; -import okhttp3.Request; import okhttp3.Request.Builder; import org.apache.commons.lang3.StringUtils; import cn.stock.market.infrastructure.db.po.QStockPO; -import org.apache.http.HttpResponse; -import org.apache.http.client.HttpClient; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.utils.HttpClientUtils; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.util.EntityUtils; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; -import org.jsoup.nodes.Element; -import org.jsoup.select.Elements; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.http.HttpEntity; @@ -1008,7 +990,12 @@ public class StockService { vo1.setKLine(kine); indexVoList.add(vo1); }catch (Exception e){ - log.info("获取NIFTY50指数数据异常,异常信息{}。。。。",e.getMessage()); + log.info("BToday获取BSESENSEX指数数据异常,异常信息。。。。", e); + try { + GrowwInApis.requestSenSexData(indexVoList); + } catch (Exception e1) { + log.info("GrowwIn获取BSESENSEX指数数据异常,异常信息。。。。", e1); + } } try { @@ -1028,7 +1015,12 @@ public class StockService { vo1.setKLine(kine); indexVoList.add(vo1); }catch (Exception e){ - log.info("获取NIFTY50指数数据异常,异常信息{}。。。。",e.getMessage()); + log.info("BToday获取NIFTY50指数数据异常,异常信息。。。。", e); + try { + GrowwInApis.requestNifty50Data(indexVoList); + } catch (Exception e1) { + log.info("GrowwIn获取NIFTY50指数数据异常,异常信息。。。。", e1); + } } return ServerResponse.createBySuccess(indexVoList); diff --git a/src/main/java/cn/stock/market/infrastructure/api/GrowwInApis.java b/src/main/java/cn/stock/market/infrastructure/api/GrowwInApis.java new file mode 100644 index 0000000..7eedc18 --- /dev/null +++ b/src/main/java/cn/stock/market/infrastructure/api/GrowwInApis.java @@ -0,0 +1,233 @@ +package cn.stock.market.infrastructure.api; + +import cn.stock.market.dto.TodayStockDTO; +import cn.stock.market.infrastructure.api.investing.IndiaIndexVo; +import cn.stock.market.infrastructure.api.investing.IndiaStockVO; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.apache.http.HttpEntity; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; + +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 数据来源网站:..., ... + * + * @auther jnerh + */ +public class GrowwInApis { + + public static final String INDEX_DETAIL_URL = "https://groww.in/v1/api/stocks_data/v1/accord_points/exchange/%s/segment/CASH/latest_indices_ohlc/%s"; + public static final String INDEX_KLINE_URL = "https://groww.in/v1/api/charting_service/v2/chart/delayed/exchange/%s/segment/CASH/%s/daily?intervalInMinutes=%s&minimal=true"; + + + public static void requestSenSexData(List indexVoList) { + IndiaIndexVo vo1 = new IndiaIndexVo(); + JSONObject object = GrowwInApis.getSenSexDetail(); + IndiaStockVO market = GrowwInApis.objToVo(object); + market.setName("BSESENSEX指数"); + vo1.setIndexVo(market); + + List kine = GrowwInApis.getSenSexKline(); + vo1.setKLine(kine); + indexVoList.add(vo1); + } + public static void requestNifty50Data(List indexVoList) { + IndiaIndexVo vo1 = new IndiaIndexVo(); + JSONObject object = GrowwInApis.getNifty50Detail(); + IndiaStockVO market = GrowwInApis.objToVo(object); + market.setName("NIFTY50指数"); + vo1.setIndexVo(market); + + List kine = GrowwInApis.getNifty50Kline(); + vo1.setKLine(kine); + indexVoList.add(vo1); + } + + /** + * 获取Nifty50指数详情 + */ + public static JSONObject getIndexDetail(String exchange, String type) { + String url = String.format(INDEX_DETAIL_URL, exchange, type); + String str = get(url); + return JSON.parseObject(str); + } + + /** + * 获取k线图 + */ + public static List getIndexKline(String exchange, String type, String intervalInMinutes) { + String url = String.format(INDEX_KLINE_URL, exchange, type, intervalInMinutes); + String str = get(url); + JSONObject object = JSON.parseObject(str); + return getList(object.getString("candles")); + } + + + /** + * 获取Nifty50指数详情 + */ + public static JSONObject getSenSexDetail() { + return getIndexDetail("BSE", "1"); + } + + /** + * 获取k线图 + */ + public static List getSenSexKline() { + return getIndexKline("BSE", "1", "1"); + } + + /** + * 获取Nifty50指数详情 + */ + public static JSONObject getNifty50Detail() { + return getIndexDetail("NSE", "NIFTY"); + } + + /** + * 获取k线图 + */ + public static List getNifty50Kline() { + return getIndexKline("NSE", "NIFTY", "5"); + } + + static String get(String url) { + CloseableHttpClient httpClient = null; + CloseableHttpResponse response = null; + String result = ""; + + try { + httpClient = HttpClients.createDefault(); + HttpGet httpGet = new HttpGet(url); + httpGet.setHeader("Referer", "https://groww.in/indices/nifty"); + httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0"); + httpGet.setHeader("X-App-Id", "growwWeb"); + httpGet.setHeader("X-Device-Id", "fd4815a2-49e4-570a-931a-0316d4d8a52d"); + httpGet.setHeader("X-Device-Type", "desktop"); + httpGet.setHeader("X-Platform", "web"); + RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000).setConnectionRequestTimeout(35000).setSocketTimeout(60000).build(); + httpGet.setConfig(requestConfig); + response = httpClient.execute(httpGet); + HttpEntity entity = response.getEntity(); + result = EntityUtils.toString(entity); + } catch (IOException e) { + e.printStackTrace(); + } finally { + + if (null != response) { + try { + response.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (null != httpClient) { + try { + httpClient.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return result; + } + + public static IndiaStockVO objToVo(JSONObject object) { + IndiaStockVO market = new IndiaStockVO(); + if (object.containsKey("close")) { + market.setClose(object.getString("close")); + } + if (object.containsKey("value")) { + market.setNowPrice(object.getString("value")); + } + if (object.containsKey("dayChangePerc")) { + market.setRate(object.getString("dayChangePerc")); + } + if (object.containsKey("high")) { + market.setHigh(object.getString("high")); + } + if (object.containsKey("low")) { + market.setLow(object.getString("low")); + } + if (object.containsKey("open")) { + market.setOpen(object.getString("open")); + } + + return market; + } + + private static List getList(String json) { + List dataObject = new ArrayList<>(); + JSONArray jsonArray = JSON.parseArray(json); + for (Object obj : jsonArray) { + JSONObject entity = new JSONObject(); + JSONArray jsonArray1 = JSON.parseArray(obj.toString()); + entity.put("upd_date", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(JSON.parseArray(obj.toString()).getLong(0) * 1000)).replace(" ", "T")); + entity.put("price", jsonArray1.getBigDecimal(1)); + dataObject.add(entity); + } + return dataObject; + } + + private static TodayStockDTO todayStockDTO(JSONObject jsonObject) { + TodayStockDTO dto = new TodayStockDTO(); + if (jsonObject.containsKey("exchange")) { + dto.setStockType(jsonObject.getString("exchange")); + } else { + dto.setStockType(""); + } + if (jsonObject.containsKey("lname")) { + dto.setStockName(jsonObject.getString("lname")); + } else { + dto.setStockName(""); + } + if (jsonObject.containsKey("high_price")) { + dto.setHighPrice(jsonObject.getString("highPrice")); + } else { + dto.setHighPrice("0.00"); + } + if (jsonObject.containsKey("low_price")) { + dto.setLowPrice(jsonObject.getString("low_price")); + } else { + dto.setLowPrice("0.00"); + } + if (jsonObject.containsKey("price")) { + dto.setLastPrice(jsonObject.getString("price")); + } else { + dto.setLastPrice("0.00"); + } + if (jsonObject.containsKey("close_price")) { + dto.setPrevClosePrice(jsonObject.getString("close_price")); + } else { + dto.setPrevClosePrice("0.00"); + } + if (jsonObject.containsKey("netchg")) { + dto.setChange(jsonObject.getString("netchg")); + } else { + dto.setChange("0.00"); + } + if (jsonObject.containsKey("perchg")) { + dto.setChangePercent(jsonObject.getString("perchg")); + } else { + dto.setChangePercent("0.00"); + } + return dto; + + } + + public static void main(String[] args) { + System.out.println(getNifty50Detail()); + System.out.println(getNifty50Kline()); + } +} From 4b25467bd2fd2a69857498b4c1ecc5ac7986f0e2 Mon Sep 17 00:00:00 2001 From: zhangjian Date: Sat, 20 Apr 2024 17:16:43 +0800 Subject: [PATCH 06/14] =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../stock/market/domain/basic/service/StockService.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/cn/stock/market/domain/basic/service/StockService.java b/src/main/java/cn/stock/market/domain/basic/service/StockService.java index 394127d..7110b46 100644 --- a/src/main/java/cn/stock/market/domain/basic/service/StockService.java +++ b/src/main/java/cn/stock/market/domain/basic/service/StockService.java @@ -990,11 +990,11 @@ public class StockService { vo1.setKLine(kine); indexVoList.add(vo1); }catch (Exception e){ - log.info("BToday获取BSESENSEX指数数据异常,异常信息。。。。", e); + log.error("BToday获取BSESENSEX指数数据异常,异常信息。。。。", e); try { GrowwInApis.requestSenSexData(indexVoList); } catch (Exception e1) { - log.info("GrowwIn获取BSESENSEX指数数据异常,异常信息。。。。", e1); + log.error("GrowwIn获取BSESENSEX指数数据异常,异常信息。。。。", e1); } } @@ -1015,11 +1015,11 @@ public class StockService { vo1.setKLine(kine); indexVoList.add(vo1); }catch (Exception e){ - log.info("BToday获取NIFTY50指数数据异常,异常信息。。。。", e); + log.error("BToday获取NIFTY50指数数据异常,异常信息。。。。", e); try { GrowwInApis.requestNifty50Data(indexVoList); } catch (Exception e1) { - log.info("GrowwIn获取NIFTY50指数数据异常,异常信息。。。。", e1); + log.error("GrowwIn获取NIFTY50指数数据异常,异常信息。。。。", e1); } } return ServerResponse.createBySuccess(indexVoList); From ece782497f3cb256e818a51ce47501de11c97f86 Mon Sep 17 00:00:00 2001 From: xiaoliuhu Date: Sat, 20 Apr 2024 19:11:47 +0800 Subject: [PATCH 07/14] =?UTF-8?q?fix:app=E6=8C=87=E6=95=B0=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=A2=9E=E5=8A=A0economictimes=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=BA=90=E5=85=9C=E5=BA=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/basic/service/StockService.java | 81 +++++++++- .../infrastructure/api/EttechchartsApis.java | 152 ++++++++++++++++++ .../stock/market/utils/HttpClientRequest.java | 53 ++++++ .../stock/market/web/StockApiController.java | 9 ++ 4 files changed, 290 insertions(+), 5 deletions(-) create mode 100644 src/main/java/cn/stock/market/infrastructure/api/EttechchartsApis.java diff --git a/src/main/java/cn/stock/market/domain/basic/service/StockService.java b/src/main/java/cn/stock/market/domain/basic/service/StockService.java index 7110b46..d9eee2d 100644 --- a/src/main/java/cn/stock/market/domain/basic/service/StockService.java +++ b/src/main/java/cn/stock/market/domain/basic/service/StockService.java @@ -11,6 +11,7 @@ import javax.servlet.http.HttpServletRequest; import cn.hutool.core.text.StrFormatter; import cn.stock.market.dto.model.*; +import cn.stock.market.infrastructure.api.EttechchartsApis; import cn.stock.market.infrastructure.api.GrowwInApis; import cn.stock.market.infrastructure.api.TodayApis; import cn.stock.market.infrastructure.api.investing.IndiaIndexVo; @@ -18,6 +19,7 @@ import cn.stock.market.infrastructure.api.investing.IndiaStockVO; import cn.stock.market.infrastructure.api.investing.InvestingApis; import cn.stock.market.infrastructure.api.investing.InvestingInvokerApis; import cn.stock.market.infrastructure.api.sina.vo.HotSearchVO; +import cn.stock.market.utils.*; import com.ag.utils.CollectionUtils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; @@ -52,11 +54,6 @@ import cn.stock.market.infrastructure.api.sina.vo.MarketVO; import cn.stock.market.infrastructure.api.sina.vo.MarketVOResult; import cn.stock.market.infrastructure.api.sina.vo.k.MinDataVO; import cn.stock.market.infrastructure.api.sina.vo.k.echarts.EchartsDataVO; -import cn.stock.market.utils.GetPyByChinese; -import cn.stock.market.utils.HttpClientRequest; -import cn.stock.market.utils.PropertiesUtil; -import cn.stock.market.utils.ServerResponse; -import cn.stock.market.utils.Utils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.client.RestTemplate; @@ -995,6 +992,11 @@ public class StockService { GrowwInApis.requestSenSexData(indexVoList); } catch (Exception e1) { log.error("GrowwIn获取BSESENSEX指数数据异常,异常信息。。。。", e1); + try{ + EttechchartsApis.requestSensexData(indexVoList); + } catch (Exception e2) { + log.error("Ettechcharts获取BSESENSEX指数数据异常,异常信息。。。。", e2); + } } } @@ -1020,6 +1022,11 @@ public class StockService { GrowwInApis.requestNifty50Data(indexVoList); } catch (Exception e1) { log.error("GrowwIn获取NIFTY50指数数据异常,异常信息。。。。", e1); + try{ + EttechchartsApis.requestNifty50Data(indexVoList); + } catch (Exception e2) { + log.error("Ettechcharts获取NIFTY50指数数据异常,异常信息。。。。", e2); + } } } return ServerResponse.createBySuccess(indexVoList); @@ -1061,4 +1068,68 @@ public class StockService { } + public ServerResponse getEttechcharts(){ + List indexVoList = new ArrayList<>(); + try { + //获取详情 + String scripcode = "SENSEX"; + String exchangeid = "47"; + String currentTime = DateTimeUtil.dateToStr(new Date(),DateTimeUtil.YMD_FORMAT); + IndiaIndexVo vo1 = new IndiaIndexVo(); + JSONObject object = EttechchartsApis.getStockDetail(scripcode, exchangeid,currentTime); + IndiaStockVO market = ettechchartsObjToVo(object); + market.setName("BSESENSEX指数"); + vo1.setIndexVo(market); + + //获取k线图 1min 当天的数据 分钟 + List kine = EttechchartsApis.getStockKline(scripcode,exchangeid); + vo1.setKLine(kine); + indexVoList.add(vo1); + }catch (Exception e){ + log.info("获取BSESENSEX指数数据异常,异常信息{}。。。。",e.getMessage()); + } + try { + //获取详情 + String scripcode = "NSE+Index"; + String exchangeid = "50"; + String currentTime = DateTimeUtil.dateToStr(new Date(),DateTimeUtil.YMD_FORMAT); + IndiaIndexVo vo1 = new IndiaIndexVo(); + JSONObject object = EttechchartsApis.getStockDetail(scripcode, exchangeid,currentTime); + IndiaStockVO market = ettechchartsObjToVo(object); + market.setName("NIFTY50指数"); + vo1.setIndexVo(market); + + //获取k线图 1min 当天的数据 分钟 + List kine = EttechchartsApis.getStockKline(scripcode,exchangeid); + vo1.setKLine(kine); + indexVoList.add(vo1); + }catch (Exception e){ + log.info("获取NIFTY50指数数据异常,异常信息{}。。。。",e.getMessage()); + } + return ServerResponse.createBySuccess(indexVoList); + } + + private IndiaStockVO ettechchartsObjToVo(JSONObject object) { + IndiaStockVO market = new IndiaStockVO(); + if (object.containsKey("Close")) { + market.setClose(object.getString("Close")); + } + if (object.containsKey("Adj_Close")) { + market.setNowPrice(object.getString("Adj_Close")); + } + if (object.containsKey("perchg")) { + market.setRate(object.getString("perchg")); + } + if (object.containsKey("High")) { + market.setHigh(object.getString("High")); + } + if (object.containsKey("Low")) { + market.setLow(object.getString("Low")); + } + if (object.containsKey("Open")) { + market.setOpen(object.getString("Open")); + } + return market; + } + } \ No newline at end of file diff --git a/src/main/java/cn/stock/market/infrastructure/api/EttechchartsApis.java b/src/main/java/cn/stock/market/infrastructure/api/EttechchartsApis.java new file mode 100644 index 0000000..03917b0 --- /dev/null +++ b/src/main/java/cn/stock/market/infrastructure/api/EttechchartsApis.java @@ -0,0 +1,152 @@ +package cn.stock.market.infrastructure.api; + +import cn.stock.market.infrastructure.api.investing.IndiaIndexVo; +import cn.stock.market.infrastructure.api.investing.IndiaStockVO; +import cn.stock.market.utils.DateTimeUtil; +import cn.stock.market.utils.HttpClientRequest; +import com.ag.utils.DateUtils; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class EttechchartsApis { + + static String get(String url) { + return HttpClientRequest.doEttechchartsGet(url); + } + + //获取k线图 + public static List getStockKline(String scripcode,String exchangeid){ + String url = String.format("https://ettechcharts.indiatimes.com/ETLiveFeedChartRead/livefeeddata?scripcode=%s&exchangeid=%s&datatype=intraday&filtertype=1MIN&tagId=&firstreceivedataid=&lastreceivedataid=&directions=all&callback=serviceHit.chartResultCallback&scripcodetype=index",scripcode,exchangeid); + String str = get(url); + if(StringUtils.isBlank(str)){ + return new ArrayList(); + } + System.out.println(str); + str = str.substring(str.indexOf("(")+1,str.lastIndexOf(")")); + JSONObject object = JSON.parseObject(str); + if(!object.containsKey("query")){ + return new ArrayList(); + } + JSONObject query = object.getJSONObject("query"); + if(!query.containsKey("results")){ + return new ArrayList(); + } + JSONObject results = query.getJSONObject("results"); + if(!results.containsKey("quote")){ + return new ArrayList(); + } + JSONArray quote = results.getJSONArray("quote"); + List dataObject = new ArrayList<>(); +// JSONArray jsonArray = JSON.parseArray(quote); + for (Object obj : quote){ + JSONObject entity = (JSONObject) obj; + JSONObject jsonObject = new JSONObject(); + jsonObject.put("price",entity.getString("Adj_Close")); + jsonObject.put("upd_date",entity.getString("Date")); + dataObject.add(jsonObject); + } + return dataObject; +// return getList(object.getString("data"),1); +// return null; + } + //获取指数详情 + public static JSONObject getStockDetail(String scripcode,String exchangeid,String currentTime){ + String url = String.format("https://json.bselivefeeds.indiatimes.com/ET_Community/currenttick?scripcode=%s&exchangeid=%s&datatype=eod&filtertype=eod&tagId=&firstreceivedataid=2023-06-30&lastreceivedataid=%s&directions=current&callback=serviceHit.autoLoadResultCallback&scripcodetype=index",scripcode,exchangeid,currentTime); + String str = get(url); + if(StringUtils.isBlank(str)){ + return new JSONObject(); + } + str = str.substring(str.indexOf("(")+1,str.lastIndexOf(")")); + JSONObject object = JSON.parseObject(str); + if(!object.containsKey("query")){ + return new JSONObject(); + } + JSONObject query = object.getJSONObject("query"); + if(!query.containsKey("results")){ + return new JSONObject(); + } + JSONObject results = query.getJSONObject("results"); + if(!results.containsKey("quote")){ + return new JSONObject(); + } + JSONArray quote = results.getJSONArray("quote"); +// + return (JSONObject) quote.get(0); +// return getList(object.getString("data"),1); +// return null; + } + + private static IndiaStockVO ettechchartsObjToVo(JSONObject object) { + IndiaStockVO market = new IndiaStockVO(); + if (object.containsKey("Close")) { + market.setClose(object.getString("Close")); + } + if (object.containsKey("Adj_Close")) { + market.setNowPrice(object.getString("Adj_Close")); + } + if (object.containsKey("perchg")) { + market.setRate(object.getString("perchg")); + } + if (object.containsKey("High")) { + market.setHigh(object.getString("High")); + } + if (object.containsKey("Low")) { + market.setLow(object.getString("Low")); + } + if (object.containsKey("Open")) { + market.setOpen(object.getString("Open")); + } + return market; + } + + public static void requestNifty50Data(List indexVoList) { + //获取详情 + String scripcode = "NSE+Index"; + String exchangeid = "50"; + String currentTime = DateTimeUtil.dateToStr(new Date(),DateTimeUtil.YMD_FORMAT); + IndiaIndexVo vo1 = new IndiaIndexVo(); + JSONObject object = EttechchartsApis.getStockDetail(scripcode, exchangeid,currentTime); + IndiaStockVO market = ettechchartsObjToVo(object); + market.setName("NIFTY50指数"); + vo1.setIndexVo(market); + + //获取k线图 1min 当天的数据 分钟 + List kine = EttechchartsApis.getStockKline(scripcode,exchangeid); + vo1.setKLine(kine); + indexVoList.add(vo1); + } + + public static void requestSensexData(List indexVoList) { + //获取详情 + String scripcode = "SENSEX"; + String exchangeid = "47"; + String currentTime = DateTimeUtil.dateToStr(new Date(),DateTimeUtil.YMD_FORMAT); + IndiaIndexVo vo1 = new IndiaIndexVo(); + JSONObject object = EttechchartsApis.getStockDetail(scripcode, exchangeid,currentTime); + IndiaStockVO market = ettechchartsObjToVo(object); + market.setName("BSESENSEX指数"); + vo1.setIndexVo(market); + + //获取k线图 1min 当天的数据 分钟 + List kine = EttechchartsApis.getStockKline(scripcode,exchangeid); + vo1.setKLine(kine); + indexVoList.add(vo1); + } + + public static void main(String[] args) { + String str = "serviceHit.chartResultCallback({\"query\":{\"diagnostics\":\"\",\"parametervalues\":{\"exchangeid\":\"47\",\"companyid\":\"2809\",\"directions\":\"all\",\"datatype\":\"intraday\",\"firstreceivedataid\":\"\",\"scripcode\":\"SENSEX\",\"scripcodetype\":\"index\",\"filtertype\":\"1MIN\",\"lastreceivedataid\":\"\"},\"count\":200,\"lang\":\"en-US\",\"results\":{\"quote\":[{\"High\":\"73088.33\",\"Low\":\"73088.33\",\"Volume\":0,\"Adj_Close\":\"73088.33\",\"Close\":\"73088.33\",\"Date\":\"2024-04-19 15:32\",\"Open\":\"73088.33\"},{\"High\":\"73088.33\",\"Low\":\"73088.33\",\"Volume\":0,\"Adj_Close\":\"73088.33\",\"Close\":\"73088.33\",\"Date\":\"2024-04-19 15:31\",\"Open\":\"73088.33\"},{\"High\":\"73095.54\",\"Low\":\"73088.33\",\"Volume\":0,\"Adj_Close\":\"73088.33\",\"Close\":\"73088.33\",\"Date\":\"2024-04-19 15:30\",\"Open\":\"73095.54\"},{\"High\":\"73101.13\",\"Low\":\"73077.10\",\"Volume\":0,\"Adj_Close\":\"73095.54\",\"Close\":\"73095.54\",\"Date\":\"2024-04-19 15:29\",\"Open\":\"73080.50\"},{\"High\":\"73081.55\",\"Low\":\"73043.17\",\"Volume\":0,\"Adj_Close\":\"73075.31\",\"Close\":\"73075.31\",\"Date\":\"2024-04-19 15:28\",\"Open\":\"73045.53\"},{\"High\":\"73046.39\",\"Low\":\"73021.76\",\"Volume\":0,\"Adj_Close\":\"73034.56\",\"Close\":\"73034.56\",\"Date\":\"2024-04-19 15:27\",\"Open\":\"73027.29\"},{\"High\":\"73047.68\",\"Low\":\"73018.74\",\"Volume\":0,\"Adj_Close\":\"73024.41\",\"Close\":\"73024.41\",\"Date\":\"2024-04-19 15:26\",\"Open\":\"73044.99\"},{\"High\":\"73074.87\",\"Low\":\"73043.92\",\"Volume\":0,\"Adj_Close\":\"73043.92\",\"Close\":\"73043.92\",\"Date\":\"2024-04-19 15:25\",\"Open\":\"73067.09\"},{\"High\":\"73081.37\",\"Low\":\"73033.51\",\"Volume\":0,\"Adj_Close\":\"73067.75\",\"Close\":\"73067.75\",\"Date\":\"2024-04-19 15:24\",\"Open\":\"73066.49\"},{\"High\":\"73072.92\",\"Low\":\"73043.84\",\"Volume\":0,\"Adj_Close\":\"73060.22\",\"Close\":\"73060.22\",\"Date\":\"2024-04-19 15:23\",\"Open\":\"73069.42\"},{\"High\":\"73082.71\",\"Low\":\"73062.72\",\"Volume\":0,\"Adj_Close\":\"73076.51\",\"Close\":\"73076.51\",\"Date\":\"2024-04-19 15:22\",\"Open\":\"73081.40\"},{\"High\":\"73099.29\",\"Low\":\"73081.74\",\"Volume\":0,\"Adj_Close\":\"73088.79\",\"Close\":\"73088.79\",\"Date\":\"2024-04-19 15:21\",\"Open\":\"73090.76\"},{\"High\":\"73104.49\",\"Low\":\"73069.60\",\"Volume\":0,\"Adj_Close\":\"73091.63\",\"Close\":\"73091.63\",\"Date\":\"2024-04-19 15:20\",\"Open\":\"73090.06\"},{\"High\":\"73099.03\",\"Low\":\"73087.44\",\"Volume\":0,\"Adj_Close\":\"73089.55\",\"Close\":\"73089.55\",\"Date\":\"2024-04-19 15:19\",\"Open\":\"73095.84\"},{\"High\":\"73114.26\",\"Low\":\"73086.62\",\"Volume\":0,\"Adj_Close\":\"73102.61\",\"Close\":\"73102.61\",\"Date\":\"2024-04-19 15:18\",\"Open\":\"73094.21\"},{\"High\":\"73111.04\",\"Low\":\"73075.75\",\"Volume\":0,\"Adj_Close\":\"73075.85\",\"Close\":\"73075.85\",\"Date\":\"2024-04-19 15:17\",\"Open\":\"73109.31\"},{\"High\":\"73135.48\",\"Low\":\"73090.79\",\"Volume\":0,\"Adj_Close\":\"73104.49\",\"Close\":\"73104.49\",\"Date\":\"2024-04-19 15:16\",\"Open\":\"73125.08\"},{\"High\":\"73146.20\",\"Low\":\"73103.16\",\"Volume\":0,\"Adj_Close\":\"73123.28\",\"Close\":\"73123.28\",\"Date\":\"2024-04-19 15:15\",\"Open\":\"73103.16\"},{\"High\":\"73139.27\",\"Low\":\"73070.34\",\"Volume\":0,\"Adj_Close\":\"73137.19\",\"Close\":\"73137.19\",\"Date\":\"2024-04-19 15:14\",\"Open\":\"73070.34\"},{\"High\":\"73169.30\",\"Low\":\"73073.61\",\"Volume\":0,\"Adj_Close\":\"73075.22\",\"Close\":\"73075.22\",\"Date\":\"2024-04-19 15:13\",\"Open\":\"73160.24\"},{\"High\":\"73177.41\",\"Low\":\"73095.76\",\"Volume\":0,\"Adj_Close\":\"73156.32\",\"Close\":\"73156.32\",\"Date\":\"2024-04-19 15:12\",\"Open\":\"73097.14\"},{\"High\":\"73203.51\",\"Low\":\"73096.57\",\"Volume\":0,\"Adj_Close\":\"73096.57\",\"Close\":\"73096.57\",\"Date\":\"2024-04-19 15:11\",\"Open\":\"73203.51\"},{\"High\":\"73195.24\",\"Low\":\"73174.41\",\"Volume\":0,\"Adj_Close\":\"73195.24\",\"Close\":\"73195.24\",\"Date\":\"2024-04-19 15:10\",\"Open\":\"73186.98\"},{\"High\":\"73187.01\",\"Low\":\"73010.04\",\"Volume\":0,\"Adj_Close\":\"73186.13\",\"Close\":\"73186.13\",\"Date\":\"2024-04-19 15:09\",\"Open\":\"73013.81\"},{\"High\":\"73029.18\",\"Low\":\"72990.42\",\"Volume\":0,\"Adj_Close\":\"73012.77\",\"Close\":\"73012.77\",\"Date\":\"2024-04-19 15:08\",\"Open\":\"73029.18\"},{\"High\":\"73043.98\",\"Low\":\"73012.09\",\"Volume\":0,\"Adj_Close\":\"73032.42\",\"Close\":\"73032.42\",\"Date\":\"2024-04-19 15:07\",\"Open\":\"73043.98\"},{\"High\":\"73094.01\",\"Low\":\"73048.88\",\"Volume\":0,\"Adj_Close\":\"73048.91\",\"Close\":\"73048.91\",\"Date\":\"2024-04-19 15:06\",\"Open\":\"73084.41\"},{\"High\":\"73087.22\",\"Low\":\"73054.66\",\"Volume\":0,\"Adj_Close\":\"73082.34\",\"Close\":\"73082.34\",\"Date\":\"2024-04-19 15:05\",\"Open\":\"73065.72\"},{\"High\":\"73068.63\",\"Low\":\"72987.78\",\"Volume\":0,\"Adj_Close\":\"73065.26\",\"Close\":\"73065.26\",\"Date\":\"2024-04-19 15:04\",\"Open\":\"72997.10\"},{\"High\":\"73048.81\",\"Low\":\"72980.86\",\"Volume\":0,\"Adj_Close\":\"72996.89\",\"Close\":\"72996.89\",\"Date\":\"2024-04-19 15:03\",\"Open\":\"73048.47\"},{\"High\":\"73067.90\",\"Low\":\"73002.59\",\"Volume\":0,\"Adj_Close\":\"73063.24\",\"Close\":\"73063.24\",\"Date\":\"2024-04-19 15:02\",\"Open\":\"73009.30\"},{\"High\":\"73060.66\",\"Low\":\"72980.05\",\"Volume\":0,\"Adj_Close\":\"73000.68\",\"Close\":\"73000.68\",\"Date\":\"2024-04-19 15:01\",\"Open\":\"73015.76\"},{\"High\":\"73075.13\",\"Low\":\"73024.19\",\"Volume\":0,\"Adj_Close\":\"73024.19\",\"Close\":\"73024.19\",\"Date\":\"2024-04-19 15:00\",\"Open\":\"73075.13\"},{\"High\":\"73085.05\",\"Low\":\"73061.47\",\"Volume\":0,\"Adj_Close\":\"73062.21\",\"Close\":\"73062.21\",\"Date\":\"2024-04-19 14:59\",\"Open\":\"73067.03\"},{\"High\":\"73067.81\",\"Low\":\"73048.85\",\"Volume\":0,\"Adj_Close\":\"73064.70\",\"Close\":\"73064.70\",\"Date\":\"2024-04-19 14:58\",\"Open\":\"73067.81\"},{\"High\":\"73068.50\",\"Low\":\"73052.07\",\"Volume\":0,\"Adj_Close\":\"73062.96\",\"Close\":\"73062.96\",\"Date\":\"2024-04-19 14:57\",\"Open\":\"73055.90\"},{\"High\":\"73069.47\",\"Low\":\"72996.53\",\"Volume\":0,\"Adj_Close\":\"73055.29\",\"Close\":\"73055.29\",\"Date\":\"2024-04-19 14:56\",\"Open\":\"73011.87\"},{\"High\":\"73084.39\",\"Low\":\"72987.25\",\"Volume\":0,\"Adj_Close\":\"73004.01\",\"Close\":\"73004.01\",\"Date\":\"2024-04-19 14:55\",\"Open\":\"73084.39\"},{\"High\":\"73103.48\",\"Low\":\"73056.27\",\"Volume\":0,\"Adj_Close\":\"73092.25\",\"Close\":\"73092.25\",\"Date\":\"2024-04-19 14:54\",\"Open\":\"73056.27\"},{\"High\":\"73048.03\",\"Low\":\"73004.08\",\"Volume\":0,\"Adj_Close\":\"73048.03\",\"Close\":\"73048.03\",\"Date\":\"2024-04-19 14:53\",\"Open\":\"73024.95\"},{\"High\":\"73130.19\",\"Low\":\"73030.25\",\"Volume\":0,\"Adj_Close\":\"73030.25\",\"Close\":\"73030.25\",\"Date\":\"2024-04-19 14:52\",\"Open\":\"73126.85\"},{\"High\":\"73109.83\",\"Low\":\"73026.85\",\"Volume\":0,\"Adj_Close\":\"73109.83\",\"Close\":\"73109.83\",\"Date\":\"2024-04-19 14:51\",\"Open\":\"73034.97\"},{\"High\":\"73030.86\",\"Low\":\"72992.25\",\"Volume\":0,\"Adj_Close\":\"73030.86\",\"Close\":\"73030.86\",\"Date\":\"2024-04-19 14:50\",\"Open\":\"73007.48\"},{\"High\":\"73014.58\",\"Low\":\"72995.93\",\"Volume\":0,\"Adj_Close\":\"73007.67\",\"Close\":\"73007.67\",\"Date\":\"2024-04-19 14:49\",\"Open\":\"72996.76\"},{\"High\":\"73000.53\",\"Low\":\"72972.84\",\"Volume\":0,\"Adj_Close\":\"72997.87\",\"Close\":\"72997.87\",\"Date\":\"2024-04-19 14:48\",\"Open\":\"72984.88\"},{\"High\":\"72992.96\",\"Low\":\"72977.41\",\"Volume\":0,\"Adj_Close\":\"72985.46\",\"Close\":\"72985.46\",\"Date\":\"2024-04-19 14:47\",\"Open\":\"72984.40\"},{\"High\":\"73047.50\",\"Low\":\"72979.90\",\"Volume\":0,\"Adj_Close\":\"72981.15\",\"Close\":\"72981.15\",\"Date\":\"2024-04-19 14:46\",\"Open\":\"73045.74\"},{\"High\":\"73050.29\",\"Low\":\"72873.54\",\"Volume\":0,\"Adj_Close\":\"73050.29\",\"Close\":\"73050.29\",\"Date\":\"2024-04-19 14:45\",\"Open\":\"72886.93\"},{\"High\":\"72969.11\",\"Low\":\"72873.87\",\"Volume\":0,\"Adj_Close\":\"72896.13\",\"Close\":\"72896.13\",\"Date\":\"2024-04-19 14:44\",\"Open\":\"72969.11\"},{\"High\":\"73009.82\",\"Low\":\"72969.36\",\"Volume\":0,\"Adj_Close\":\"72974.40\",\"Close\":\"72974.40\",\"Date\":\"2024-04-19 14:43\",\"Open\":\"73006.03\"},{\"High\":\"73010.88\",\"Low\":\"72973.91\",\"Volume\":0,\"Adj_Close\":\"73007.86\",\"Close\":\"73007.86\",\"Date\":\"2024-04-19 14:42\",\"Open\":\"73003.65\"},{\"High\":\"73051.84\",\"Low\":\"73004.35\",\"Volume\":0,\"Adj_Close\":\"73004.35\",\"Close\":\"73004.35\",\"Date\":\"2024-04-19 14:41\",\"Open\":\"73046.84\"},{\"High\":\"73049.81\",\"Low\":\"73029.25\",\"Volume\":0,\"Adj_Close\":\"73042.95\",\"Close\":\"73042.95\",\"Date\":\"2024-04-19 14:40\",\"Open\":\"73032.33\"},{\"High\":\"73050.72\",\"Low\":\"73030.02\",\"Volume\":0,\"Adj_Close\":\"73034.14\",\"Close\":\"73034.14\",\"Date\":\"2024-04-19 14:39\",\"Open\":\"73050.42\"},{\"High\":\"73055.96\",\"Low\":\"73025.92\",\"Volume\":0,\"Adj_Close\":\"73055.96\",\"Close\":\"73055.96\",\"Date\":\"2024-04-19 14:38\",\"Open\":\"73044.11\"},{\"High\":\"73060.79\",\"Low\":\"73036.68\",\"Volume\":0,\"Adj_Close\":\"73043.21\",\"Close\":\"73043.21\",\"Date\":\"2024-04-19 14:37\",\"Open\":\"73049.24\"},{\"High\":\"73074.28\",\"Low\":\"73036.29\",\"Volume\":0,\"Adj_Close\":\"73044.62\",\"Close\":\"73044.62\",\"Date\":\"2024-04-19 14:36\",\"Open\":\"73071.16\"},{\"High\":\"73084.48\",\"Low\":\"73034.83\",\"Volume\":0,\"Adj_Close\":\"73072.38\",\"Close\":\"73072.38\",\"Date\":\"2024-04-19 14:35\",\"Open\":\"73039.16\"},{\"High\":\"73120.12\",\"Low\":\"73027.74\",\"Volume\":0,\"Adj_Close\":\"73030.40\",\"Close\":\"73030.40\",\"Date\":\"2024-04-19 14:34\",\"Open\":\"73116.90\"},{\"High\":\"73118.27\",\"Low\":\"73047.15\",\"Volume\":0,\"Adj_Close\":\"73118.27\",\"Close\":\"73118.27\",\"Date\":\"2024-04-19 14:33\",\"Open\":\"73047.15\"},{\"High\":\"73060.59\",\"Low\":\"73025.22\",\"Volume\":0,\"Adj_Close\":\"73047.51\",\"Close\":\"73047.51\",\"Date\":\"2024-04-19 14:32\",\"Open\":\"73025.22\"},{\"High\":\"73051.89\",\"Low\":\"73011.71\",\"Volume\":0,\"Adj_Close\":\"73037.48\",\"Close\":\"73037.48\",\"Date\":\"2024-04-19 14:31\",\"Open\":\"73011.71\"},{\"High\":\"73023.13\",\"Low\":\"72998.05\",\"Volume\":0,\"Adj_Close\":\"73011.51\",\"Close\":\"73011.51\",\"Date\":\"2024-04-19 14:30\",\"Open\":\"73008.19\"},{\"High\":\"73021.58\",\"Low\":\"72976.37\",\"Volume\":0,\"Adj_Close\":\"73007.07\",\"Close\":\"73007.07\",\"Date\":\"2024-04-19 14:29\",\"Open\":\"72977.19\"},{\"High\":\"72986.31\",\"Low\":\"72947.00\",\"Volume\":0,\"Adj_Close\":\"72971.76\",\"Close\":\"72971.76\",\"Date\":\"2024-04-19 14:28\",\"Open\":\"72986.31\"},{\"High\":\"73060.15\",\"Low\":\"72990.53\",\"Volume\":0,\"Adj_Close\":\"72990.53\",\"Close\":\"72990.53\",\"Date\":\"2024-04-19 14:27\",\"Open\":\"73045.31\"},{\"High\":\"73094.21\",\"Low\":\"73043.64\",\"Volume\":0,\"Adj_Close\":\"73053.07\",\"Close\":\"73053.07\",\"Date\":\"2024-04-19 14:26\",\"Open\":\"73068.69\"},{\"High\":\"73067.78\",\"Low\":\"72955.43\",\"Volume\":0,\"Adj_Close\":\"73067.78\",\"Close\":\"73067.78\",\"Date\":\"2024-04-19 14:25\",\"Open\":\"72967.26\"},{\"High\":\"73002.26\",\"Low\":\"72951.31\",\"Volume\":0,\"Adj_Close\":\"72964.00\",\"Close\":\"72964.00\",\"Date\":\"2024-04-19 14:24\",\"Open\":\"73002.26\"},{\"High\":\"73011.49\",\"Low\":\"72987.94\",\"Volume\":0,\"Adj_Close\":\"73001.02\",\"Close\":\"73001.02\",\"Date\":\"2024-04-19 14:23\",\"Open\":\"72987.94\"},{\"High\":\"73027.00\",\"Low\":\"72986.26\",\"Volume\":0,\"Adj_Close\":\"72990.21\",\"Close\":\"72990.21\",\"Date\":\"2024-04-19 14:22\",\"Open\":\"73026.71\"},{\"High\":\"73038.34\",\"Low\":\"73013.28\",\"Volume\":0,\"Adj_Close\":\"73030.79\",\"Close\":\"73030.79\",\"Date\":\"2024-04-19 14:21\",\"Open\":\"73020.37\"},{\"High\":\"73022.02\",\"Low\":\"73007.01\",\"Volume\":0,\"Adj_Close\":\"73021.28\",\"Close\":\"73021.28\",\"Date\":\"2024-04-19 14:20\",\"Open\":\"73019.95\"},{\"High\":\"73023.40\",\"Low\":\"73004.72\",\"Volume\":0,\"Adj_Close\":\"73020.64\",\"Close\":\"73020.64\",\"Date\":\"2024-04-19 14:19\",\"Open\":\"73015.15\"},{\"High\":\"73046.69\",\"Low\":\"73010.15\",\"Volume\":0,\"Adj_Close\":\"73010.15\",\"Close\":\"73010.15\",\"Date\":\"2024-04-19 14:18\",\"Open\":\"73025.36\"},{\"High\":\"73079.89\",\"Low\":\"73013.65\",\"Volume\":0,\"Adj_Close\":\"73021.96\",\"Close\":\"73021.96\",\"Date\":\"2024-04-19 14:17\",\"Open\":\"73079.89\"},{\"High\":\"73092.31\",\"Low\":\"72982.27\",\"Volume\":0,\"Adj_Close\":\"73090.79\",\"Close\":\"73090.79\",\"Date\":\"2024-04-19 14:16\",\"Open\":\"72984.75\"},{\"High\":\"73048.40\",\"Low\":\"72994.34\",\"Volume\":0,\"Adj_Close\":\"72994.34\",\"Close\":\"72994.34\",\"Date\":\"2024-04-19 14:15\",\"Open\":\"73045.62\"},{\"High\":\"73082.99\",\"Low\":\"73040.13\",\"Volume\":0,\"Adj_Close\":\"73049.96\",\"Close\":\"73049.96\",\"Date\":\"2024-04-19 14:14\",\"Open\":\"73074.00\"},{\"High\":\"73086.54\",\"Low\":\"73057.94\",\"Volume\":0,\"Adj_Close\":\"73077.32\",\"Close\":\"73077.32\",\"Date\":\"2024-04-19 14:13\",\"Open\":\"73086.54\"},{\"High\":\"73127.84\",\"Low\":\"73078.82\",\"Volume\":0,\"Adj_Close\":\"73087.75\",\"Close\":\"73087.75\",\"Date\":\"2024-04-19 14:12\",\"Open\":\"73127.84\"},{\"High\":\"73131.49\",\"Low\":\"73109.74\",\"Volume\":0,\"Adj_Close\":\"73130.34\",\"Close\":\"73130.34\",\"Date\":\"2024-04-19 14:11\",\"Open\":\"73124.26\"},{\"High\":\"73131.10\",\"Low\":\"73070.37\",\"Volume\":0,\"Adj_Close\":\"73124.26\",\"Close\":\"73124.26\",\"Date\":\"2024-04-19 14:10\",\"Open\":\"73087.90\"},{\"High\":\"73158.67\",\"Low\":\"73073.65\",\"Volume\":0,\"Adj_Close\":\"73080.63\",\"Close\":\"73080.63\",\"Date\":\"2024-04-19 14:09\",\"Open\":\"73158.67\"},{\"High\":\"73158.19\",\"Low\":\"73051.32\",\"Volume\":0,\"Adj_Close\":\"73157.24\",\"Close\":\"73157.24\",\"Date\":\"2024-04-19 14:08\",\"Open\":\"73051.32\"},{\"High\":\"73051.63\",\"Low\":\"72973.03\",\"Volume\":0,\"Adj_Close\":\"73051.63\",\"Close\":\"73051.63\",\"Date\":\"2024-04-19 14:07\",\"Open\":\"72985.89\"},{\"High\":\"73055.34\",\"Low\":\"72975.67\",\"Volume\":0,\"Adj_Close\":\"72976.45\",\"Close\":\"72976.45\",\"Date\":\"2024-04-19 14:06\",\"Open\":\"73054.36\"},{\"High\":\"73062.84\",\"Low\":\"72998.15\",\"Volume\":0,\"Adj_Close\":\"73050.57\",\"Close\":\"73050.57\",\"Date\":\"2024-04-19 14:05\",\"Open\":\"73001.50\"},{\"High\":\"73003.41\",\"Low\":\"72974.33\",\"Volume\":0,\"Adj_Close\":\"73000.57\",\"Close\":\"73000.57\",\"Date\":\"2024-04-19 14:04\",\"Open\":\"72985.11\"},{\"High\":\"73065.26\",\"Low\":\"72984.37\",\"Volume\":0,\"Adj_Close\":\"72985.05\",\"Close\":\"72985.05\",\"Date\":\"2024-04-19 14:03\",\"Open\":\"73063.72\"},{\"High\":\"73074.24\",\"Low\":\"73005.92\",\"Volume\":0,\"Adj_Close\":\"73064.20\",\"Close\":\"73064.20\",\"Date\":\"2024-04-19 14:02\",\"Open\":\"73005.92\"},{\"High\":\"73022.31\",\"Low\":\"72974.68\",\"Volume\":0,\"Adj_Close\":\"73009.25\",\"Close\":\"73009.25\",\"Date\":\"2024-04-19 14:01\",\"Open\":\"73005.82\"},{\"High\":\"73106.21\",\"Low\":\"73013.30\",\"Volume\":0,\"Adj_Close\":\"73014.36\",\"Close\":\"73014.36\",\"Date\":\"2024-04-19 14:00\",\"Open\":\"73052.48\"},{\"High\":\"73048.14\",\"Low\":\"72971.75\",\"Volume\":0,\"Adj_Close\":\"73047.02\",\"Close\":\"73047.02\",\"Date\":\"2024-04-19 13:59\",\"Open\":\"72979.55\"},{\"High\":\"72990.46\",\"Low\":\"72974.66\",\"Volume\":0,\"Adj_Close\":\"72981.87\",\"Close\":\"72981.87\",\"Date\":\"2024-04-19 13:58\",\"Open\":\"72979.68\"},{\"High\":\"72994.21\",\"Low\":\"72962.89\",\"Volume\":0,\"Adj_Close\":\"72978.54\",\"Close\":\"72978.54\",\"Date\":\"2024-04-19 13:57\",\"Open\":\"72994.21\"},{\"High\":\"73002.63\",\"Low\":\"72963.01\",\"Volume\":0,\"Adj_Close\":\"73002.63\",\"Close\":\"73002.63\",\"Date\":\"2024-04-19 13:56\",\"Open\":\"72965.79\"},{\"High\":\"72999.96\",\"Low\":\"72954.88\",\"Volume\":0,\"Adj_Close\":\"72965.79\",\"Close\":\"72965.79\",\"Date\":\"2024-04-19 13:55\",\"Open\":\"72992.79\"},{\"High\":\"72978.99\",\"Low\":\"72947.64\",\"Volume\":0,\"Adj_Close\":\"72978.93\",\"Close\":\"72978.93\",\"Date\":\"2024-04-19 13:54\",\"Open\":\"72955.73\"},{\"High\":\"72972.57\",\"Low\":\"72931.27\",\"Volume\":0,\"Adj_Close\":\"72958.39\",\"Close\":\"72958.39\",\"Date\":\"2024-04-19 13:53\",\"Open\":\"72948.54\"},{\"High\":\"72946.73\",\"Low\":\"72861.73\",\"Volume\":0,\"Adj_Close\":\"72946.73\",\"Close\":\"72946.73\",\"Date\":\"2024-04-19 13:52\",\"Open\":\"72865.38\"},{\"High\":\"72881.05\",\"Low\":\"72839.26\",\"Volume\":0,\"Adj_Close\":\"72875.84\",\"Close\":\"72875.84\",\"Date\":\"2024-04-19 13:51\",\"Open\":\"72839.26\"},{\"High\":\"72832.64\",\"Low\":\"72804.90\",\"Volume\":0,\"Adj_Close\":\"72831.50\",\"Close\":\"72831.50\",\"Date\":\"2024-04-19 13:50\",\"Open\":\"72804.90\"},{\"High\":\"72798.95\",\"Low\":\"72731.55\",\"Volume\":0,\"Adj_Close\":\"72797.91\",\"Close\":\"72797.91\",\"Date\":\"2024-04-19 13:49\",\"Open\":\"72733.50\"},{\"High\":\"72764.40\",\"Low\":\"72710.07\",\"Volume\":0,\"Adj_Close\":\"72728.51\",\"Close\":\"72728.51\",\"Date\":\"2024-04-19 13:48\",\"Open\":\"72742.53\"},{\"High\":\"72731.34\",\"Low\":\"72637.24\",\"Volume\":0,\"Adj_Close\":\"72731.34\",\"Close\":\"72731.34\",\"Date\":\"2024-04-19 13:47\",\"Open\":\"72637.24\"},{\"High\":\"72645.33\",\"Low\":\"72627.65\",\"Volume\":0,\"Adj_Close\":\"72636.37\",\"Close\":\"72636.37\",\"Date\":\"2024-04-19 13:46\",\"Open\":\"72629.54\"},{\"High\":\"72639.72\",\"Low\":\"72621.28\",\"Volume\":0,\"Adj_Close\":\"72637.57\",\"Close\":\"72637.57\",\"Date\":\"2024-04-19 13:45\",\"Open\":\"72635.96\"},{\"High\":\"72641.29\",\"Low\":\"72610.38\",\"Volume\":0,\"Adj_Close\":\"72641.29\",\"Close\":\"72641.29\",\"Date\":\"2024-04-19 13:44\",\"Open\":\"72615.75\"},{\"High\":\"72654.12\",\"Low\":\"72607.39\",\"Volume\":0,\"Adj_Close\":\"72609.92\",\"Close\":\"72609.92\",\"Date\":\"2024-04-19 13:43\",\"Open\":\"72607.39\"},{\"High\":\"72615.29\",\"Low\":\"72590.96\",\"Volume\":0,\"Adj_Close\":\"72608.26\",\"Close\":\"72608.26\",\"Date\":\"2024-04-19 13:42\",\"Open\":\"72609.59\"},{\"High\":\"72647.45\",\"Low\":\"72605.60\",\"Volume\":0,\"Adj_Close\":\"72605.60\",\"Close\":\"72605.60\",\"Date\":\"2024-04-19 13:41\",\"Open\":\"72625.95\"},{\"High\":\"72648.39\",\"Low\":\"72621.65\",\"Volume\":0,\"Adj_Close\":\"72625.14\",\"Close\":\"72625.14\",\"Date\":\"2024-04-19 13:40\",\"Open\":\"72648.39\"},{\"High\":\"72660.07\",\"Low\":\"72634.42\",\"Volume\":0,\"Adj_Close\":\"72647.70\",\"Close\":\"72647.70\",\"Date\":\"2024-04-19 13:39\",\"Open\":\"72648.19\"},{\"High\":\"72658.99\",\"Low\":\"72625.54\",\"Volume\":0,\"Adj_Close\":\"72643.45\",\"Close\":\"72643.45\",\"Date\":\"2024-04-19 13:38\",\"Open\":\"72658.99\"},{\"High\":\"72677.74\",\"Low\":\"72658.02\",\"Volume\":0,\"Adj_Close\":\"72659.20\",\"Close\":\"72659.20\",\"Date\":\"2024-04-19 13:37\",\"Open\":\"72660.13\"},{\"High\":\"72669.69\",\"Low\":\"72623.70\",\"Volume\":0,\"Adj_Close\":\"72656.62\",\"Close\":\"72656.62\",\"Date\":\"2024-04-19 13:36\",\"Open\":\"72667.71\"},{\"High\":\"72695.35\",\"Low\":\"72663.57\",\"Volume\":0,\"Adj_Close\":\"72669.14\",\"Close\":\"72669.14\",\"Date\":\"2024-04-19 13:35\",\"Open\":\"72695.35\"},{\"High\":\"72709.14\",\"Low\":\"72686.29\",\"Volume\":0,\"Adj_Close\":\"72708.26\",\"Close\":\"72708.26\",\"Date\":\"2024-04-19 13:34\",\"Open\":\"72686.37\"},{\"High\":\"72717.61\",\"Low\":\"72688.31\",\"Volume\":0,\"Adj_Close\":\"72694.76\",\"Close\":\"72694.76\",\"Date\":\"2024-04-19 13:33\",\"Open\":\"72717.61\"},{\"High\":\"72729.18\",\"Low\":\"72706.87\",\"Volume\":0,\"Adj_Close\":\"72714.63\",\"Close\":\"72714.63\",\"Date\":\"2024-04-19 13:32\",\"Open\":\"72719.39\"},{\"High\":\"72724.38\",\"Low\":\"72655.30\",\"Volume\":0,\"Adj_Close\":\"72723.64\",\"Close\":\"72723.64\",\"Date\":\"2024-04-19 13:31\",\"Open\":\"72655.30\"},{\"High\":\"72718.81\",\"Low\":\"72645.06\",\"Volume\":0,\"Adj_Close\":\"72645.06\",\"Close\":\"72645.06\",\"Date\":\"2024-04-19 13:30\",\"Open\":\"72709.30\"},{\"High\":\"72758.73\",\"Low\":\"72708.43\",\"Volume\":0,\"Adj_Close\":\"72709.19\",\"Close\":\"72709.19\",\"Date\":\"2024-04-19 13:29\",\"Open\":\"72758.73\"},{\"High\":\"72755.42\",\"Low\":\"72715.96\",\"Volume\":0,\"Adj_Close\":\"72755.42\",\"Close\":\"72755.42\",\"Date\":\"2024-04-19 13:28\",\"Open\":\"72717.88\"},{\"High\":\"72724.23\",\"Low\":\"72699.02\",\"Volume\":0,\"Adj_Close\":\"72711.45\",\"Close\":\"72711.45\",\"Date\":\"2024-04-19 13:27\",\"Open\":\"72719.85\"},{\"High\":\"72729.94\",\"Low\":\"72716.83\",\"Volume\":0,\"Adj_Close\":\"72716.83\",\"Close\":\"72716.83\",\"Date\":\"2024-04-19 13:26\",\"Open\":\"72729.94\"},{\"High\":\"72753.65\",\"Low\":\"72723.61\",\"Volume\":0,\"Adj_Close\":\"72729.54\",\"Close\":\"72729.54\",\"Date\":\"2024-04-19 13:25\",\"Open\":\"72753.65\"},{\"High\":\"72760.04\",\"Low\":\"72713.61\",\"Volume\":0,\"Adj_Close\":\"72751.99\",\"Close\":\"72751.99\",\"Date\":\"2024-04-19 13:24\",\"Open\":\"72713.61\"},{\"High\":\"72712.44\",\"Low\":\"72684.29\",\"Volume\":0,\"Adj_Close\":\"72712.44\",\"Close\":\"72712.44\",\"Date\":\"2024-04-19 13:23\",\"Open\":\"72689.60\"},{\"High\":\"72690.63\",\"Low\":\"72673.35\",\"Volume\":0,\"Adj_Close\":\"72688.37\",\"Close\":\"72688.37\",\"Date\":\"2024-04-19 13:22\",\"Open\":\"72674.25\"},{\"High\":\"72675.41\",\"Low\":\"72619.84\",\"Volume\":0,\"Adj_Close\":\"72674.25\",\"Close\":\"72674.25\",\"Date\":\"2024-04-19 13:21\",\"Open\":\"72619.84\"},{\"High\":\"72654.05\",\"Low\":\"72610.70\",\"Volume\":0,\"Adj_Close\":\"72615.35\",\"Close\":\"72615.35\",\"Date\":\"2024-04-19 13:20\",\"Open\":\"72647.33\"},{\"High\":\"72662.12\",\"Low\":\"72636.48\",\"Volume\":0,\"Adj_Close\":\"72653.02\",\"Close\":\"72653.02\",\"Date\":\"2024-04-19 13:19\",\"Open\":\"72662.12\"},{\"High\":\"72674.13\",\"Low\":\"72661.04\",\"Volume\":0,\"Adj_Close\":\"72668.87\",\"Close\":\"72668.87\",\"Date\":\"2024-04-19 13:18\",\"Open\":\"72665.76\"},{\"High\":\"72673.70\",\"Low\":\"72650.20\",\"Volume\":0,\"Adj_Close\":\"72666.19\",\"Close\":\"72666.19\",\"Date\":\"2024-04-19 13:17\",\"Open\":\"72667.73\"},{\"High\":\"72681.73\",\"Low\":\"72665.18\",\"Volume\":0,\"Adj_Close\":\"72666.08\",\"Close\":\"72666.08\",\"Date\":\"2024-04-19 13:16\",\"Open\":\"72674.98\"},{\"High\":\"72708.33\",\"Low\":\"72673.42\",\"Volume\":0,\"Adj_Close\":\"72674.98\",\"Close\":\"72674.98\",\"Date\":\"2024-04-19 13:15\",\"Open\":\"72701.23\"},{\"High\":\"72722.14\",\"Low\":\"72691.09\",\"Volume\":0,\"Adj_Close\":\"72700.34\",\"Close\":\"72700.34\",\"Date\":\"2024-04-19 13:14\",\"Open\":\"72714.56\"},{\"High\":\"72711.69\",\"Low\":\"72673.62\",\"Volume\":0,\"Adj_Close\":\"72711.69\",\"Close\":\"72711.69\",\"Date\":\"2024-04-19 13:13\",\"Open\":\"72674.81\"},{\"High\":\"72691.93\",\"Low\":\"72668.74\",\"Volume\":0,\"Adj_Close\":\"72676.89\",\"Close\":\"72676.89\",\"Date\":\"2024-04-19 13:12\",\"Open\":\"72689.84\"},{\"High\":\"72687.12\",\"Low\":\"72660.71\",\"Volume\":0,\"Adj_Close\":\"72683.92\",\"Close\":\"72683.92\",\"Date\":\"2024-04-19 13:11\",\"Open\":\"72666.54\"},{\"High\":\"72688.80\",\"Low\":\"72664.98\",\"Volume\":0,\"Adj_Close\":\"72665.53\",\"Close\":\"72665.53\",\"Date\":\"2024-04-19 13:10\",\"Open\":\"72674.88\"},{\"High\":\"72679.94\",\"Low\":\"72663.55\",\"Volume\":0,\"Adj_Close\":\"72675.07\",\"Close\":\"72675.07\",\"Date\":\"2024-04-19 13:09\",\"Open\":\"72664.91\"},{\"High\":\"72693.39\",\"Low\":\"72666.02\",\"Volume\":0,\"Adj_Close\":\"72667.96\",\"Close\":\"72667.96\",\"Date\":\"2024-04-19 13:08\",\"Open\":\"72690.84\"},{\"High\":\"72716.46\",\"Low\":\"72685.05\",\"Volume\":0,\"Adj_Close\":\"72685.05\",\"Close\":\"72685.05\",\"Date\":\"2024-04-19 13:07\",\"Open\":\"72701.54\"},{\"High\":\"72715.39\",\"Low\":\"72690.38\",\"Volume\":0,\"Adj_Close\":\"72702.94\",\"Close\":\"72702.94\",\"Date\":\"2024-04-19 13:06\",\"Open\":\"72691.09\"},{\"High\":\"72711.22\",\"Low\":\"72692.16\",\"Volume\":0,\"Adj_Close\":\"72692.16\",\"Close\":\"72692.16\",\"Date\":\"2024-04-19 13:05\",\"Open\":\"72705.76\"},{\"High\":\"72703.55\",\"Low\":\"72645.13\",\"Volume\":0,\"Adj_Close\":\"72703.55\",\"Close\":\"72703.55\",\"Date\":\"2024-04-19 13:04\",\"Open\":\"72652.35\"},{\"High\":\"72674.03\",\"Low\":\"72652.29\",\"Volume\":0,\"Adj_Close\":\"72652.29\",\"Close\":\"72652.29\",\"Date\":\"2024-04-19 13:03\",\"Open\":\"72665.30\"},{\"High\":\"72702.31\",\"Low\":\"72660.53\",\"Volume\":0,\"Adj_Close\":\"72667.12\",\"Close\":\"72667.12\",\"Date\":\"2024-04-19 13:02\",\"Open\":\"72702.31\"},{\"High\":\"72709.51\",\"Low\":\"72683.08\",\"Volume\":0,\"Adj_Close\":\"72703.37\",\"Close\":\"72703.37\",\"Date\":\"2024-04-19 13:01\",\"Open\":\"72707.73\"},{\"High\":\"72711.94\",\"Low\":\"72697.80\",\"Volume\":0,\"Adj_Close\":\"72706.02\",\"Close\":\"72706.02\",\"Date\":\"2024-04-19 13:00\",\"Open\":\"72698.11\"},{\"High\":\"72720.04\",\"Low\":\"72684.40\",\"Volume\":0,\"Adj_Close\":\"72684.78\",\"Close\":\"72684.78\",\"Date\":\"2024-04-19 12:59\",\"Open\":\"72718.19\"},{\"High\":\"72719.14\",\"Low\":\"72668.01\",\"Volume\":0,\"Adj_Close\":\"72719.14\",\"Close\":\"72719.14\",\"Date\":\"2024-04-19 12:58\",\"Open\":\"72672.80\"},{\"High\":\"72698.74\",\"Low\":\"72674.60\",\"Volume\":0,\"Adj_Close\":\"72677.58\",\"Close\":\"72677.58\",\"Date\":\"2024-04-19 12:57\",\"Open\":\"72698.74\"},{\"High\":\"72704.94\",\"Low\":\"72690.43\",\"Volume\":0,\"Adj_Close\":\"72697.40\",\"Close\":\"72697.40\",\"Date\":\"2024-04-19 12:56\",\"Open\":\"72692.95\"},{\"High\":\"72699.04\",\"Low\":\"72602.04\",\"Volume\":0,\"Adj_Close\":\"72691.45\",\"Close\":\"72691.45\",\"Date\":\"2024-04-19 12:55\",\"Open\":\"72602.75\"},{\"High\":\"72646.17\",\"Low\":\"72600.07\",\"Volume\":0,\"Adj_Close\":\"72601.91\",\"Close\":\"72601.91\",\"Date\":\"2024-04-19 12:54\",\"Open\":\"72646.17\"},{\"High\":\"72674.60\",\"Low\":\"72642.85\",\"Volume\":0,\"Adj_Close\":\"72644.25\",\"Close\":\"72644.25\",\"Date\":\"2024-04-19 12:53\",\"Open\":\"72668.01\"},{\"High\":\"72675.70\",\"Low\":\"72658.74\",\"Volume\":0,\"Adj_Close\":\"72665.08\",\"Close\":\"72665.08\",\"Date\":\"2024-04-19 12:52\",\"Open\":\"72672.69\"},{\"High\":\"72683.20\",\"Low\":\"72661.53\",\"Volume\":0,\"Adj_Close\":\"72674.77\",\"Close\":\"72674.77\",\"Date\":\"2024-04-19 12:51\",\"Open\":\"72662.25\"},{\"High\":\"72666.85\",\"Low\":\"72638.39\",\"Volume\":0,\"Adj_Close\":\"72662.11\",\"Close\":\"72662.11\",\"Date\":\"2024-04-19 12:50\",\"Open\":\"72638.39\"},{\"High\":\"72633.22\",\"Low\":\"72601.90\",\"Volume\":0,\"Adj_Close\":\"72633.22\",\"Close\":\"72633.22\",\"Date\":\"2024-04-19 12:49\",\"Open\":\"72601.90\"},{\"High\":\"72601.18\",\"Low\":\"72581.25\",\"Volume\":0,\"Adj_Close\":\"72598.20\",\"Close\":\"72598.20\",\"Date\":\"2024-04-19 12:48\",\"Open\":\"72581.25\"},{\"High\":\"72582.68\",\"Low\":\"72567.16\",\"Volume\":0,\"Adj_Close\":\"72581.71\",\"Close\":\"72581.71\",\"Date\":\"2024-04-19 12:47\",\"Open\":\"72576.20\"},{\"High\":\"72593.93\",\"Low\":\"72567.64\",\"Volume\":0,\"Adj_Close\":\"72577.24\",\"Close\":\"72577.24\",\"Date\":\"2024-04-19 12:46\",\"Open\":\"72590.56\"},{\"High\":\"72620.24\",\"Low\":\"72591.56\",\"Volume\":0,\"Adj_Close\":\"72593.51\",\"Close\":\"72593.51\",\"Date\":\"2024-04-19 12:45\",\"Open\":\"72607.65\"},{\"High\":\"72632.85\",\"Low\":\"72602.85\",\"Volume\":0,\"Adj_Close\":\"72606.44\",\"Close\":\"72606.44\",\"Date\":\"2024-04-19 12:44\",\"Open\":\"72602.85\"},{\"High\":\"72608.31\",\"Low\":\"72595.49\",\"Volume\":0,\"Adj_Close\":\"72603.62\",\"Close\":\"72603.62\",\"Date\":\"2024-04-19 12:43\",\"Open\":\"72607.21\"},{\"High\":\"72606.35\",\"Low\":\"72583.55\",\"Volume\":0,\"Adj_Close\":\"72605.18\",\"Close\":\"72605.18\",\"Date\":\"2024-04-19 12:42\",\"Open\":\"72586.25\"},{\"High\":\"72600.78\",\"Low\":\"72579.94\",\"Volume\":0,\"Adj_Close\":\"72585.06\",\"Close\":\"72585.06\",\"Date\":\"2024-04-19 12:41\",\"Open\":\"72587.37\"},{\"High\":\"72581.18\",\"Low\":\"72566.54\",\"Volume\":0,\"Adj_Close\":\"72573.36\",\"Close\":\"72573.36\",\"Date\":\"2024-04-19 12:40\",\"Open\":\"72580.14\"},{\"High\":\"72575.25\",\"Low\":\"72513.98\",\"Volume\":0,\"Adj_Close\":\"72575.25\",\"Close\":\"72575.25\",\"Date\":\"2024-04-19 12:39\",\"Open\":\"72516.30\"},{\"High\":\"72503.42\",\"Low\":\"72490.75\",\"Volume\":0,\"Adj_Close\":\"72503.42\",\"Close\":\"72503.42\",\"Date\":\"2024-04-19 12:38\",\"Open\":\"72496.73\"},{\"High\":\"72497.22\",\"Low\":\"72460.04\",\"Volume\":0,\"Adj_Close\":\"72496.20\",\"Close\":\"72496.20\",\"Date\":\"2024-04-19 12:37\",\"Open\":\"72461.71\"},{\"High\":\"72479.78\",\"Low\":\"72466.41\",\"Volume\":0,\"Adj_Close\":\"72468.31\",\"Close\":\"72468.31\",\"Date\":\"2024-04-19 12:36\",\"Open\":\"72476.09\"},{\"High\":\"72475.70\",\"Low\":\"72453.78\",\"Volume\":0,\"Adj_Close\":\"72475.70\",\"Close\":\"72475.70\",\"Date\":\"2024-04-19 12:35\",\"Open\":\"72453.78\"},{\"High\":\"72464.61\",\"Low\":\"72435.72\",\"Volume\":0,\"Adj_Close\":\"72451.11\",\"Close\":\"72451.11\",\"Date\":\"2024-04-19 12:34\",\"Open\":\"72462.99\"},{\"High\":\"72477.75\",\"Low\":\"72455.33\",\"Volume\":0,\"Adj_Close\":\"72460.73\",\"Close\":\"72460.73\",\"Date\":\"2024-04-19 12:33\",\"Open\":\"72477.73\"},{\"High\":\"72479.52\",\"Low\":\"72457.92\",\"Volume\":0,\"Adj_Close\":\"72479.52\",\"Close\":\"72479.52\",\"Date\":\"2024-04-19 12:32\",\"Open\":\"72460.20\"},{\"High\":\"72477.06\",\"Low\":\"72443.70\",\"Volume\":0,\"Adj_Close\":\"72459.68\",\"Close\":\"72459.68\",\"Date\":\"2024-04-19 12:31\",\"Open\":\"72443.70\"},{\"High\":\"72447.72\",\"Low\":\"72414.66\",\"Volume\":0,\"Adj_Close\":\"72447.72\",\"Close\":\"72447.72\",\"Date\":\"2024-04-19 12:30\",\"Open\":\"72414.66\"},{\"High\":\"72434.73\",\"Low\":\"72418.95\",\"Volume\":0,\"Adj_Close\":\"72420.37\",\"Close\":\"72420.37\",\"Date\":\"2024-04-19 12:29\",\"Open\":\"72431.56\"},{\"High\":\"72451.36\",\"Low\":\"72426.56\",\"Volume\":0,\"Adj_Close\":\"72431.84\",\"Close\":\"72431.84\",\"Date\":\"2024-04-19 12:28\",\"Open\":\"72451.36\"},{\"High\":\"72483.03\",\"Low\":\"72459.68\",\"Volume\":0,\"Adj_Close\":\"72459.93\",\"Close\":\"72459.93\",\"Date\":\"2024-04-19 12:27\",\"Open\":\"72480.58\"},{\"High\":\"72500.86\",\"Low\":\"72469.16\",\"Volume\":0,\"Adj_Close\":\"72483.71\",\"Close\":\"72483.71\",\"Date\":\"2024-04-19 12:26\",\"Open\":\"72469.16\"},{\"High\":\"72483.75\",\"Low\":\"72463.51\",\"Volume\":0,\"Adj_Close\":\"72466.72\",\"Close\":\"72466.72\",\"Date\":\"2024-04-19 12:25\",\"Open\":\"72482.83\"},{\"High\":\"72488.73\",\"Low\":\"72438.98\",\"Volume\":0,\"Adj_Close\":\"72482.37\",\"Close\":\"72482.37\",\"Date\":\"2024-04-19 12:24\",\"Open\":\"72438.98\"},{\"High\":\"72449.36\",\"Low\":\"72406.31\",\"Volume\":0,\"Adj_Close\":\"72438.68\",\"Close\":\"72438.68\",\"Date\":\"2024-04-19 12:23\",\"Open\":\"72406.31\"},{\"High\":\"72395.36\",\"Low\":\"72352.59\",\"Volume\":0,\"Adj_Close\":\"72395.36\",\"Close\":\"72395.36\",\"Date\":\"2024-04-19 12:22\",\"Open\":\"72352.59\"},{\"High\":\"72363.19\",\"Low\":\"72321.99\",\"Volume\":0,\"Adj_Close\":\"72357.92\",\"Close\":\"72357.92\",\"Date\":\"2024-04-19 12:21\",\"Open\":\"72325.21\"},{\"High\":\"72334.89\",\"Low\":\"72309.56\",\"Volume\":0,\"Adj_Close\":\"72325.15\",\"Close\":\"72325.15\",\"Date\":\"2024-04-19 12:20\",\"Open\":\"72331.09\"},{\"High\":\"72346.07\",\"Low\":\"72326.72\",\"Volume\":0,\"Adj_Close\":\"72332.14\",\"Close\":\"72332.14\",\"Date\":\"2024-04-19 12:19\",\"Open\":\"72336.60\"},{\"High\":\"72337.79\",\"Low\":\"72301.87\",\"Volume\":0,\"Adj_Close\":\"72336.96\",\"Close\":\"72336.96\",\"Date\":\"2024-04-19 12:18\",\"Open\":\"72301.87\"},{\"High\":\"72303.07\",\"Low\":\"72281.56\",\"Volume\":0,\"Adj_Close\":\"72302.35\",\"Close\":\"72302.35\",\"Date\":\"2024-04-19 12:17\",\"Open\":\"72293.10\"},{\"High\":\"72301.13\",\"Low\":\"72284.18\",\"Volume\":0,\"Adj_Close\":\"72289.69\",\"Close\":\"72289.69\",\"Date\":\"2024-04-19 12:16\",\"Open\":\"72300.68\"},{\"High\":\"72317.90\",\"Low\":\"72289.07\",\"Volume\":0,\"Adj_Close\":\"72302.92\",\"Close\":\"72302.92\",\"Date\":\"2024-04-19 12:15\",\"Open\":\"72289.20\"},{\"High\":\"72293.17\",\"Low\":\"72274.24\",\"Volume\":0,\"Adj_Close\":\"72289.20\",\"Close\":\"72289.20\",\"Date\":\"2024-04-19 12:14\",\"Open\":\"72277.54\"},{\"High\":\"72278.77\",\"Low\":\"72267.39\",\"Volume\":0,\"Adj_Close\":\"72276.71\",\"Close\":\"72276.71\",\"Date\":\"2024-04-19 12:13\",\"Open\":\"72269.27\"}],\"peerdata\":{\"indexidcscripcode\":\"\",\"sectorcscripcode\":\"\",\"industrycscripcode\":\"\"},\"companydata\":{\"exchangeid\":\"47\",\"companyid\":\"2809\",\"companyname\":\"S&P BSE Sensex\",\"scripcode\":\"SENSEX\",\"scripcodetype\":\"index\",\"seoname\":\"sp-bse-sensex\"}}}})"; + + // 47 BSE +// System.out.println("起始位置:"+str.indexOf("(")); +// System.out.println("结束位置:"+str.lastIndexOf(")")); +// System.out.println(str.substring(str.indexOf("(")+1,str.lastIndexOf(")"))); + System.out.println(getStockKline("SENSEX","47")); +// System.out.println(getStockDetail("SENSEX","47","2024-04-19")); + } +} diff --git a/src/main/java/cn/stock/market/utils/HttpClientRequest.java b/src/main/java/cn/stock/market/utils/HttpClientRequest.java index b67e2a2..e6c7c9c 100644 --- a/src/main/java/cn/stock/market/utils/HttpClientRequest.java +++ b/src/main/java/cn/stock/market/utils/HttpClientRequest.java @@ -212,6 +212,59 @@ public class HttpClientRequest { return result; } + public static String doEttechchartsGet(String url) { + CloseableHttpClient httpClient = null; + CloseableHttpResponse response = null; + String result = ""; + + try { + httpClient = HttpClients.createDefault(); + + HttpGet httpGet = new HttpGet(url); + +// httpGet.setHeader(":authority","ettechcharts.indiatimes.com"); +// httpGet.setHeader(":method","GET"); +// httpGet.setHeader(":scheme","https"); + httpGet.setHeader("accept","*/*"); + httpGet.setHeader("accept-encoding","gzip, deflate, br"); + httpGet.setHeader("accept-language","zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6"); + httpGet.setHeader("user-agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"); + httpGet.setHeader("Referer", "https://economictimes.indiatimes.com/"); + + + RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000).setConnectionRequestTimeout(35000).setSocketTimeout(60000).build(); + + httpGet.setConfig(requestConfig); + + response = httpClient.execute(httpGet); + + HttpEntity entity = response.getEntity(); + + result = EntityUtils.toString(entity); + } catch (ClientProtocolException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + + if (null != response) { + try { + response.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (null != httpClient) { + try { + httpClient.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return result; + } + public static void main(String[] args) { String url = "https://marketapi.intoday.in/widget/topgainer/view?exchange=nse"; String str = doGet(url); diff --git a/src/main/java/cn/stock/market/web/StockApiController.java b/src/main/java/cn/stock/market/web/StockApiController.java index 7d9a67d..7a36069 100644 --- a/src/main/java/cn/stock/market/web/StockApiController.java +++ b/src/main/java/cn/stock/market/web/StockApiController.java @@ -242,6 +242,15 @@ public class StockApiController { return this.stockService.getIndexByBtoday(); }); } + @RequestMapping({"getIndiaIndexByEttech.do"}) + @ApiOperation(value = "印度--获取指定指数信息-Ettech", httpMethod = "GET") + @ResponseBody + public ServerResponse getIndiaIndexByEttech() { + String INDEX_CODE = "TODAY_INDEX"; + return RequestCacheUtils.cache("getIndiaIndexByEttech.do", INDEX_CODE, (string) -> { + return this.stockService.getEttechcharts(); + }); + } //根据股票id查询 股票指数、大盘指数信息 @RequestMapping({"getMarketByStockGid.do"}) From a7e6cc0b051ac914583ab61158896236bb84d036 Mon Sep 17 00:00:00 2001 From: xiaoliuhu Date: Sat, 20 Apr 2024 19:20:05 +0800 Subject: [PATCH 08/14] =?UTF-8?q?fix:=E6=8B=93=E5=B1=95=E5=8F=AF=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E6=97=B6=E9=97=B4=E7=BC=93=E5=AD=98=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3,app=E6=8C=87=E6=95=B0=E6=8E=A5=E5=8F=A3=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E7=BC=93=E5=AD=981=E5=88=86=E9=92=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../stock/market/utils/RequestCacheUtils.java | 44 +++++++++++++++++++ .../stock/market/web/StockApiController.java | 2 +- 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/src/main/java/cn/stock/market/utils/RequestCacheUtils.java b/src/main/java/cn/stock/market/utils/RequestCacheUtils.java index 2d3b35f..d382264 100644 --- a/src/main/java/cn/stock/market/utils/RequestCacheUtils.java +++ b/src/main/java/cn/stock/market/utils/RequestCacheUtils.java @@ -65,6 +65,50 @@ public class RequestCacheUtils { return response; } + + /** + * 根据时间创建缓存 + * @param key key + * @param duration 时间(毫秒) + * @return + */ + public static Cache> cacheByMilliseconds(String key,long duration) { + if(! map.containsKey(key)) { + log.info("创建缓存: {}", key); + Cache> cache = CacheBuilder.newBuilder() + .maximumSize(1000) + .expireAfterWrite(duration,TimeUnit.MILLISECONDS) + .weakValues() + .recordStats() + .build( +// new CacheLoader() { +// @Override +// public Object load(String key) throws Exception { +// return func.apply(key); +// } +// } + ); + map.put(key, cache); + } + + return map.get(key); + } + + @SneakyThrows + public static ServerResponse cache(String module, String key,long duration, Function> func) { + Cache> cache = cacheByMilliseconds(module,duration); + AtomicBoolean bool = new AtomicBoolean(true); + ServerResponse response = (ServerResponse) cache.get(key, () -> { + bool.set(false); + return func.apply(key); + }); + + if(bool.get()) { + log.info("命中缓存 module: {}, key: {}, 时间戳: {}", module, key, System.currentTimeMillis()); + } + + return response; + } public static void main(String[] args) throws InterruptedException { ServerResponse response = null; diff --git a/src/main/java/cn/stock/market/web/StockApiController.java b/src/main/java/cn/stock/market/web/StockApiController.java index 7a36069..aea2683 100644 --- a/src/main/java/cn/stock/market/web/StockApiController.java +++ b/src/main/java/cn/stock/market/web/StockApiController.java @@ -238,7 +238,7 @@ public class StockApiController { @ResponseBody public ServerResponse getIndiaIndexByToday() { String INDEX_CODE = "TODAY_INDEX"; - return RequestCacheUtils.cache("getIndiaIndexByToday.do", INDEX_CODE, (string) -> { + return RequestCacheUtils.cache("getIndiaIndexByToday.do", INDEX_CODE,60000, (string) -> { return this.stockService.getIndexByBtoday(); }); } From 37bb619e24b9ba1bc268e1030a28e487f8b1a3ce Mon Sep 17 00:00:00 2001 From: xiaoliuhu Date: Sat, 20 Apr 2024 21:28:18 +0800 Subject: [PATCH 09/14] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9economictimes?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=8C=87=E6=95=B0=E8=AF=A6=E6=83=85bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/basic/service/StockService.java | 44 ++++---------- .../infrastructure/api/EttechchartsApis.java | 59 ++++++++++--------- 2 files changed, 42 insertions(+), 61 deletions(-) diff --git a/src/main/java/cn/stock/market/domain/basic/service/StockService.java b/src/main/java/cn/stock/market/domain/basic/service/StockService.java index d9eee2d..bbc7a24 100644 --- a/src/main/java/cn/stock/market/domain/basic/service/StockService.java +++ b/src/main/java/cn/stock/market/domain/basic/service/StockService.java @@ -1072,17 +1072,18 @@ public class StockService { List indexVoList = new ArrayList<>(); try { //获取详情 - String scripcode = "SENSEX"; - String exchangeid = "47"; - String currentTime = DateTimeUtil.dateToStr(new Date(),DateTimeUtil.YMD_FORMAT); + String indexid = "2365"; + String exchange = "47"; + String keyName = "sensex"; IndiaIndexVo vo1 = new IndiaIndexVo(); - JSONObject object = EttechchartsApis.getStockDetail(scripcode, exchangeid,currentTime); - IndiaStockVO market = ettechchartsObjToVo(object); + JSONObject object = EttechchartsApis.getStockDetail(indexid, exchange,keyName); + IndiaStockVO market = EttechchartsApis.ettechchartsObjToVo(object); market.setName("BSESENSEX指数"); vo1.setIndexVo(market); //获取k线图 1min 当天的数据 分钟 - List kine = EttechchartsApis.getStockKline(scripcode,exchangeid); + String scripcode = "SENSEX"; + List kine = EttechchartsApis.getStockKline(scripcode,exchange); vo1.setKLine(kine); indexVoList.add(vo1); }catch (Exception e){ @@ -1090,16 +1091,17 @@ public class StockService { } try { //获取详情 - String scripcode = "NSE+Index"; + String indexid = "2369"; String exchangeid = "50"; - String currentTime = DateTimeUtil.dateToStr(new Date(),DateTimeUtil.YMD_FORMAT); + String keyName = "nifty"; IndiaIndexVo vo1 = new IndiaIndexVo(); - JSONObject object = EttechchartsApis.getStockDetail(scripcode, exchangeid,currentTime); - IndiaStockVO market = ettechchartsObjToVo(object); + JSONObject object = EttechchartsApis.getStockDetail(indexid, exchangeid,keyName); + IndiaStockVO market = EttechchartsApis.ettechchartsObjToVo(object); market.setName("NIFTY50指数"); vo1.setIndexVo(market); //获取k线图 1min 当天的数据 分钟 + String scripcode = "NSE+Index"; List kine = EttechchartsApis.getStockKline(scripcode,exchangeid); vo1.setKLine(kine); indexVoList.add(vo1); @@ -1109,27 +1111,5 @@ public class StockService { return ServerResponse.createBySuccess(indexVoList); } - private IndiaStockVO ettechchartsObjToVo(JSONObject object) { - IndiaStockVO market = new IndiaStockVO(); - if (object.containsKey("Close")) { - market.setClose(object.getString("Close")); - } - if (object.containsKey("Adj_Close")) { - market.setNowPrice(object.getString("Adj_Close")); - } - if (object.containsKey("perchg")) { - market.setRate(object.getString("perchg")); - } - if (object.containsKey("High")) { - market.setHigh(object.getString("High")); - } - if (object.containsKey("Low")) { - market.setLow(object.getString("Low")); - } - if (object.containsKey("Open")) { - market.setOpen(object.getString("Open")); - } - return market; - } } \ No newline at end of file diff --git a/src/main/java/cn/stock/market/infrastructure/api/EttechchartsApis.java b/src/main/java/cn/stock/market/infrastructure/api/EttechchartsApis.java index 03917b0..ad73998 100644 --- a/src/main/java/cn/stock/market/infrastructure/api/EttechchartsApis.java +++ b/src/main/java/cn/stock/market/infrastructure/api/EttechchartsApis.java @@ -56,51 +56,50 @@ public class EttechchartsApis { // return null; } //获取指数详情 - public static JSONObject getStockDetail(String scripcode,String exchangeid,String currentTime){ - String url = String.format("https://json.bselivefeeds.indiatimes.com/ET_Community/currenttick?scripcode=%s&exchangeid=%s&datatype=eod&filtertype=eod&tagId=&firstreceivedataid=2023-06-30&lastreceivedataid=%s&directions=current&callback=serviceHit.autoLoadResultCallback&scripcodetype=index",scripcode,exchangeid,currentTime); + public static JSONObject getStockDetail(String indexid,String exchange,String keyName){ + String url = String.format("https://json.bselivefeeds.indiatimes.com/ET_Community/liveindices?outputtype=json&indexid=2365&exchange=47&company=true&pagesize=1&sortby=percentchange&sortorder=desc&callback=objIndices.getDataCB&language=",indexid,exchange); String str = get(url); if(StringUtils.isBlank(str)){ return new JSONObject(); } str = str.substring(str.indexOf("(")+1,str.lastIndexOf(")")); JSONObject object = JSON.parseObject(str); - if(!object.containsKey("query")){ + if(!object.containsKey("searchresult")){ return new JSONObject(); } - JSONObject query = object.getJSONObject("query"); - if(!query.containsKey("results")){ + JSONObject query = object.getJSONObject("searchresult"); + if(!query.containsKey("index")){ return new JSONObject(); } - JSONObject results = query.getJSONObject("results"); - if(!results.containsKey("quote")){ + JSONObject results = query.getJSONObject("index"); + if(!results.containsKey(keyName)){ return new JSONObject(); } - JSONArray quote = results.getJSONArray("quote"); -// - return (JSONObject) quote.get(0); -// return getList(object.getString("data"),1); -// return null; + return results.getJSONObject(keyName); } - private static IndiaStockVO ettechchartsObjToVo(JSONObject object) { + public static IndiaStockVO ettechchartsObjToVo(JSONObject object) { IndiaStockVO market = new IndiaStockVO(); - if (object.containsKey("Close")) { - market.setClose(object.getString("Close")); + if (object.containsKey("CloseIndexValue")) { + market.setClose(object.getString("CloseIndexValue")); } - if (object.containsKey("Adj_Close")) { - market.setNowPrice(object.getString("Adj_Close")); + if (object.containsKey("PercentChange")) { + market.setRate(object.getString("PercentChange")); } - if (object.containsKey("perchg")) { - market.setRate(object.getString("perchg")); + if (object.containsKey("HighIndexValue")) { + market.setHigh(object.getString("HighIndexValue")); } - if (object.containsKey("High")) { - market.setHigh(object.getString("High")); + if (object.containsKey("LowIndexValue")) { + market.setLow(object.getString("LowIndexValue")); } - if (object.containsKey("Low")) { - market.setLow(object.getString("Low")); + if (object.containsKey("OpenIndexValue")) { + market.setOpen(object.getString("OpenIndexValue")); } - if (object.containsKey("Open")) { - market.setOpen(object.getString("Open")); + if (object.containsKey("CurrentIndexValue")) { + market.setNowPrice(object.getString("CurrentIndexValue")); + } + if (object.containsKey("NetChange")) { + market.setNumber(object.getString("NetChange")); } return market; } @@ -109,9 +108,10 @@ public class EttechchartsApis { //获取详情 String scripcode = "NSE+Index"; String exchangeid = "50"; - String currentTime = DateTimeUtil.dateToStr(new Date(),DateTimeUtil.YMD_FORMAT); + String indexid = "2369"; + String keyName = "nifty"; IndiaIndexVo vo1 = new IndiaIndexVo(); - JSONObject object = EttechchartsApis.getStockDetail(scripcode, exchangeid,currentTime); + JSONObject object = EttechchartsApis.getStockDetail(indexid, exchangeid,keyName); IndiaStockVO market = ettechchartsObjToVo(object); market.setName("NIFTY50指数"); vo1.setIndexVo(market); @@ -125,10 +125,11 @@ public class EttechchartsApis { public static void requestSensexData(List indexVoList) { //获取详情 String scripcode = "SENSEX"; + String indexid = "2365"; String exchangeid = "47"; - String currentTime = DateTimeUtil.dateToStr(new Date(),DateTimeUtil.YMD_FORMAT); + String keyName = "sensex"; IndiaIndexVo vo1 = new IndiaIndexVo(); - JSONObject object = EttechchartsApis.getStockDetail(scripcode, exchangeid,currentTime); + JSONObject object = EttechchartsApis.getStockDetail(indexid, exchangeid,keyName); IndiaStockVO market = ettechchartsObjToVo(object); market.setName("BSESENSEX指数"); vo1.setIndexVo(market); From fbc7815365dbc82ea7331e1e48a9a06f07e8214f Mon Sep 17 00:00:00 2001 From: xiaoliuhu Date: Sat, 20 Apr 2024 21:32:52 +0800 Subject: [PATCH 10/14] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9economictimes?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=8C=87=E6=95=B0=E8=AF=A6=E6=83=85bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/stock/market/infrastructure/api/EttechchartsApis.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/cn/stock/market/infrastructure/api/EttechchartsApis.java b/src/main/java/cn/stock/market/infrastructure/api/EttechchartsApis.java index ad73998..4e90884 100644 --- a/src/main/java/cn/stock/market/infrastructure/api/EttechchartsApis.java +++ b/src/main/java/cn/stock/market/infrastructure/api/EttechchartsApis.java @@ -57,7 +57,7 @@ public class EttechchartsApis { } //获取指数详情 public static JSONObject getStockDetail(String indexid,String exchange,String keyName){ - String url = String.format("https://json.bselivefeeds.indiatimes.com/ET_Community/liveindices?outputtype=json&indexid=2365&exchange=47&company=true&pagesize=1&sortby=percentchange&sortorder=desc&callback=objIndices.getDataCB&language=",indexid,exchange); + String url = String.format("https://json.bselivefeeds.indiatimes.com/ET_Community/liveindices?outputtype=json&indexid=%s&exchange=%s&company=true&pagesize=1&sortby=percentchange&sortorder=desc&callback=objIndices.getDataCB&language=",indexid,exchange); String str = get(url); if(StringUtils.isBlank(str)){ return new JSONObject(); From e680bee42be1658f8cb77f1d620725571f94c485 Mon Sep 17 00:00:00 2001 From: xiaoliuhu Date: Wed, 24 Apr 2024 21:18:39 +0800 Subject: [PATCH 11/14] =?UTF-8?q?fix:=E4=BC=98=E5=8C=96money=E8=82=A1?= =?UTF-8?q?=E7=A5=A8K=E7=BA=BF=E5=9B=BE1H=E5=92=8C1D=E5=8F=AA=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E5=BD=93=E5=A4=A9=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../stock/market/web/MoneyApiController.java | 58 ++++++++++++++++--- 1 file changed, 51 insertions(+), 7 deletions(-) diff --git a/src/main/java/cn/stock/market/web/MoneyApiController.java b/src/main/java/cn/stock/market/web/MoneyApiController.java index 0a460ea..844b93d 100644 --- a/src/main/java/cn/stock/market/web/MoneyApiController.java +++ b/src/main/java/cn/stock/market/web/MoneyApiController.java @@ -1,5 +1,6 @@ package cn.stock.market.web; +import cn.hutool.core.date.DateUtil; import cn.stock.market.MoneyStockSuggestDTO; import cn.stock.market.domain.basic.entity.MoneyStock; import cn.stock.market.domain.basic.repository.MoneyStockRepository; @@ -725,6 +726,7 @@ public class MoneyApiController { } if (response != null) { + setResponse(response,resolution); // API request successful, return the response return ResponseEntity.ok(response); } else { @@ -735,6 +737,45 @@ public class MoneyApiController { // 返回响应 } + private void setResponse(StockHistoryResponse response,String resolution){ + if(!"ok".equals(response.getS())){ + return; + } + if(Objects.isNull(response.getT())){ + return; + } + if(StringUtils.equals("H",resolution) || StringUtils.equals("D",resolution)) { + List t = new ArrayList<>(); + List o = new ArrayList<>(); + List h = new ArrayList<>(); + List l = new ArrayList<>(); + List c = new ArrayList<>(); + List v = new ArrayList<>(); + + //根据时间过滤,只留当天的数据 + Date currentTime = new Date(); + int i = 0; + for (Long time : response.getT()) { + time = time * 1000; + if (DateUtil.isSameDay(currentTime, new Date(time))) { + t.add(time); + o.add(response.getO().get(i)); + h.add(response.getH().get(i)); + l.add(response.getL().get(i)); + c.add(response.getC().get(i)); + v.add(response.getV().get(i)); + } + i++; + } + response.setT(t); + response.setO(o); + response.setH(h); + response.setL(l); + response.setC(c); + response.setV(v); + } + } + @@ -759,13 +800,16 @@ public class MoneyApiController { public static void main(String[] args) { - nseGainer(); - nseActives(); - nseTopLoser(); - - bseActives(); - bseGainer(); - bseTopLoser(); +// nseGainer(); +//// nseActives(); +//// nseTopLoser(); +//// +//// bseActives(); +//// bseGainer(); +//// bseTopLoser(); + System.out.println(new Date()); + System.out.println(new Date(1713949200000L)); + System.out.println(DateUtil.isSameDay(new Date(),new Date(1713949200000L))); } private Cache> gainerStockSuggestCache = CacheBuilder.newBuilder() From 5a95d6be9af3f16ce1c441a4bef021b3b913094d Mon Sep 17 00:00:00 2001 From: xiaoliuhu Date: Wed, 24 Apr 2024 21:24:03 +0800 Subject: [PATCH 12/14] =?UTF-8?q?=E4=BC=98=E5=8C=96money=E8=82=A1=E7=A5=A8?= =?UTF-8?q?K=E7=BA=BF=E5=9B=BE1H=E5=92=8C1D=E5=8F=AA=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E5=BD=93=E5=A4=A9=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/cn/stock/market/web/MoneyApiController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/cn/stock/market/web/MoneyApiController.java b/src/main/java/cn/stock/market/web/MoneyApiController.java index 844b93d..bc31b55 100644 --- a/src/main/java/cn/stock/market/web/MoneyApiController.java +++ b/src/main/java/cn/stock/market/web/MoneyApiController.java @@ -758,7 +758,7 @@ public class MoneyApiController { for (Long time : response.getT()) { time = time * 1000; if (DateUtil.isSameDay(currentTime, new Date(time))) { - t.add(time); + t.add(response.getT().get(i)); o.add(response.getO().get(i)); h.add(response.getH().get(i)); l.add(response.getL().get(i)); From 11130a9eda69561eacc07fefa3d16b04a75ae584 Mon Sep 17 00:00:00 2001 From: xiaoliuhu Date: Wed, 24 Apr 2024 21:50:28 +0800 Subject: [PATCH 13/14] =?UTF-8?q?fix:=E4=BC=98=E5=8C=96money=E8=82=A1?= =?UTF-8?q?=E7=A5=A8K=E7=BA=BF=E5=9B=BE1H=E5=92=8C1D=E5=8F=AA=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E5=BD=93=E5=A4=A9=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/cn/stock/market/web/MoneyApiController.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/cn/stock/market/web/MoneyApiController.java b/src/main/java/cn/stock/market/web/MoneyApiController.java index bc31b55..b8f2936 100644 --- a/src/main/java/cn/stock/market/web/MoneyApiController.java +++ b/src/main/java/cn/stock/market/web/MoneyApiController.java @@ -677,14 +677,14 @@ public class MoneyApiController { int countback = 5; if(StringUtils.equals("H",resolution)){ to = (long) (System.currentTimeMillis() / 1000); - from = to - (1* 24 * 60 * 60 ); + from = to - ( 60 * 60 ); countback = 16; - request.setResolution("60"); + request.setResolution("1"); }else if(StringUtils.equals("D",resolution)){ to = (long) (System.currentTimeMillis() / 1000); from = to - (24 * 60 * 60 ); countback = 30; - request.setResolution("60"); + request.setResolution("1"); }else if(StringUtils.equals("W",resolution)){ to = (long) (System.currentTimeMillis() / 1000); from = to - (10 * 24 * 60 * 60 ); From 33c83af353f8f8fda62658a0de9112802862a269 Mon Sep 17 00:00:00 2001 From: xiaoliuhu Date: Wed, 24 Apr 2024 22:11:49 +0800 Subject: [PATCH 14/14] =?UTF-8?q?fix:=E4=BC=98=E5=8C=96money=E8=82=A1?= =?UTF-8?q?=E7=A5=A8K=E7=BA=BF=E5=9B=BE1H=E5=92=8C1D=E5=8F=AA=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E5=BD=93=E5=A4=A9=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/stock/market/web/MoneyApiController.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/cn/stock/market/web/MoneyApiController.java b/src/main/java/cn/stock/market/web/MoneyApiController.java index b8f2936..6c0f604 100644 --- a/src/main/java/cn/stock/market/web/MoneyApiController.java +++ b/src/main/java/cn/stock/market/web/MoneyApiController.java @@ -678,13 +678,13 @@ public class MoneyApiController { if(StringUtils.equals("H",resolution)){ to = (long) (System.currentTimeMillis() / 1000); from = to - ( 60 * 60 ); - countback = 16; + countback = 60; request.setResolution("1"); }else if(StringUtils.equals("D",resolution)){ to = (long) (System.currentTimeMillis() / 1000); from = to - (24 * 60 * 60 ); - countback = 30; - request.setResolution("1"); + countback = 75; + request.setResolution("5"); }else if(StringUtils.equals("W",resolution)){ to = (long) (System.currentTimeMillis() / 1000); from = to - (10 * 24 * 60 * 60 ); @@ -754,6 +754,11 @@ public class MoneyApiController { //根据时间过滤,只留当天的数据 Date currentTime = new Date(); + //判断最后一条是不是当天的数据,如果不是,把最后一条的时间作为当天的时间 + long getTime = response.getT().get(response.getT().size() - 1) * 1000L; + if(!DateUtil.isSameDay(currentTime, new Date(getTime))){ + currentTime = new Date(getTime); + } int i = 0; for (Long time : response.getT()) { time = time * 1000;