From 8cc7ffef47816d7a0707993aef92ef6595d56ac3 Mon Sep 17 00:00:00 2001 From: jeongyun1206 <67818407+jeongyun1206@users.noreply.github.com> Date: Mon, 17 Nov 2025 14:59:10 +0900 Subject: [PATCH 1/7] =?UTF-8?q?#41=20feat:=20=EB=B0=B1=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8C=85=20=EC=BB=A8=ED=8A=B8=EB=A1=A4=EB=9F=AC=20=EC=9E=91?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backtest/BacktestController.java | 25 +++++++++++++++++++ .../backtest/dto/request/AssetRequest.java | 12 +++++++++ .../backtest/dto/request/BacktestRequest.java | 18 +++++++++++++ .../backtest/dto/request/RebalanceCycle.java | 5 ++++ .../dto/response/BacktestResponse.java | 15 +++++++++++ .../backtest/dto/response/MonthlyAsset.java | 13 ++++++++++ .../dto/response/MonthlyDrawdown.java | 14 +++++++++++ .../dto/response/PortfolioReturn.java | 14 +++++++++++ .../backtest/dto/response/SummaryReport.java | 24 ++++++++++++++++++ .../service/backtest/BacktestService.java | 8 ++++++ .../service/backtest/BacktestServiceImpl.java | 23 +++++++++++++++++ 11 files changed, 171 insertions(+) create mode 100644 src/main/java/com/stockport/server/application/controller/backtest/BacktestController.java create mode 100644 src/main/java/com/stockport/server/application/controller/backtest/dto/request/AssetRequest.java create mode 100644 src/main/java/com/stockport/server/application/controller/backtest/dto/request/BacktestRequest.java create mode 100644 src/main/java/com/stockport/server/application/controller/backtest/dto/request/RebalanceCycle.java create mode 100644 src/main/java/com/stockport/server/application/controller/backtest/dto/response/BacktestResponse.java create mode 100644 src/main/java/com/stockport/server/application/controller/backtest/dto/response/MonthlyAsset.java create mode 100644 src/main/java/com/stockport/server/application/controller/backtest/dto/response/MonthlyDrawdown.java create mode 100644 src/main/java/com/stockport/server/application/controller/backtest/dto/response/PortfolioReturn.java create mode 100644 src/main/java/com/stockport/server/application/controller/backtest/dto/response/SummaryReport.java create mode 100644 src/main/java/com/stockport/server/application/service/backtest/BacktestService.java create mode 100644 src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java diff --git a/src/main/java/com/stockport/server/application/controller/backtest/BacktestController.java b/src/main/java/com/stockport/server/application/controller/backtest/BacktestController.java new file mode 100644 index 0000000..0c2e5f0 --- /dev/null +++ b/src/main/java/com/stockport/server/application/controller/backtest/BacktestController.java @@ -0,0 +1,25 @@ +package com.stockport.server.application.controller.backtest; + +import com.stockport.server.application.controller.backtest.dto.request.BacktestRequest; +import com.stockport.server.application.controller.backtest.dto.response.BacktestResponse; +import com.stockport.server.application.service.backtest.BacktestService; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +@Tag(name = "Backtest", description = "백테스팅 API") +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/backtest") +public class BacktestController { + private final BacktestService backtestService; + + @PostMapping + public ResponseEntity runBacktest(@RequestBody BacktestRequest request) { + return ResponseEntity.ok(backtestService.runBacktest(request)); + } +} diff --git a/src/main/java/com/stockport/server/application/controller/backtest/dto/request/AssetRequest.java b/src/main/java/com/stockport/server/application/controller/backtest/dto/request/AssetRequest.java new file mode 100644 index 0000000..7cc349d --- /dev/null +++ b/src/main/java/com/stockport/server/application/controller/backtest/dto/request/AssetRequest.java @@ -0,0 +1,12 @@ +package com.stockport.server.application.controller.backtest.dto.request; + + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class AssetRequest { + private String stockCd; + private int weight; +} \ No newline at end of file diff --git a/src/main/java/com/stockport/server/application/controller/backtest/dto/request/BacktestRequest.java b/src/main/java/com/stockport/server/application/controller/backtest/dto/request/BacktestRequest.java new file mode 100644 index 0000000..ccf97f4 --- /dev/null +++ b/src/main/java/com/stockport/server/application/controller/backtest/dto/request/BacktestRequest.java @@ -0,0 +1,18 @@ +package com.stockport.server.application.controller.backtest.dto.request; + +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDate; +import java.util.List; + +@Getter +@Setter +public class BacktestRequest { + + private LocalDate startDate; + private LocalDate endDate; + private Long initialCapital; + private RebalanceCycle rebalanceCycle; + private List assets; +} \ No newline at end of file diff --git a/src/main/java/com/stockport/server/application/controller/backtest/dto/request/RebalanceCycle.java b/src/main/java/com/stockport/server/application/controller/backtest/dto/request/RebalanceCycle.java new file mode 100644 index 0000000..cec32dd --- /dev/null +++ b/src/main/java/com/stockport/server/application/controller/backtest/dto/request/RebalanceCycle.java @@ -0,0 +1,5 @@ +package com.stockport.server.application.controller.backtest.dto.request; + +public enum RebalanceCycle { + MONTHLY, QUARTERLY, YEARLY +} \ No newline at end of file diff --git a/src/main/java/com/stockport/server/application/controller/backtest/dto/response/BacktestResponse.java b/src/main/java/com/stockport/server/application/controller/backtest/dto/response/BacktestResponse.java new file mode 100644 index 0000000..b55b0de --- /dev/null +++ b/src/main/java/com/stockport/server/application/controller/backtest/dto/response/BacktestResponse.java @@ -0,0 +1,15 @@ +package com.stockport.server.application.controller.backtest.dto.response; + +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +@Getter +@Setter +public class BacktestResponse { + private List summaryReport; + private List monthlyAssets; + private List monthlyDrawdowns; + private List annualReturns; +} \ No newline at end of file diff --git a/src/main/java/com/stockport/server/application/controller/backtest/dto/response/MonthlyAsset.java b/src/main/java/com/stockport/server/application/controller/backtest/dto/response/MonthlyAsset.java new file mode 100644 index 0000000..287c706 --- /dev/null +++ b/src/main/java/com/stockport/server/application/controller/backtest/dto/response/MonthlyAsset.java @@ -0,0 +1,13 @@ +package com.stockport.server.application.controller.backtest.dto.response; + +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDate; + +@Getter +@Setter +public class MonthlyAsset { + private LocalDate date; + private long portfolioValue; +} \ No newline at end of file diff --git a/src/main/java/com/stockport/server/application/controller/backtest/dto/response/MonthlyDrawdown.java b/src/main/java/com/stockport/server/application/controller/backtest/dto/response/MonthlyDrawdown.java new file mode 100644 index 0000000..a146c11 --- /dev/null +++ b/src/main/java/com/stockport/server/application/controller/backtest/dto/response/MonthlyDrawdown.java @@ -0,0 +1,14 @@ +package com.stockport.server.application.controller.backtest.dto.response; + +import lombok.Getter; +import lombok.Setter; + +import java.math.BigDecimal; +import java.time.LocalDate; + +@Getter +@Setter +public class MonthlyDrawdown { + private LocalDate date; + private BigDecimal drawdown; +} diff --git a/src/main/java/com/stockport/server/application/controller/backtest/dto/response/PortfolioReturn.java b/src/main/java/com/stockport/server/application/controller/backtest/dto/response/PortfolioReturn.java new file mode 100644 index 0000000..66255f7 --- /dev/null +++ b/src/main/java/com/stockport/server/application/controller/backtest/dto/response/PortfolioReturn.java @@ -0,0 +1,14 @@ +package com.stockport.server.application.controller.backtest.dto.response; + +import lombok.Getter; +import lombok.Setter; + +import java.math.BigDecimal; +import java.time.LocalDate; + +@Getter +@Setter +public class PortfolioReturn { + private LocalDate date; + private BigDecimal returnRate; +} diff --git a/src/main/java/com/stockport/server/application/controller/backtest/dto/response/SummaryReport.java b/src/main/java/com/stockport/server/application/controller/backtest/dto/response/SummaryReport.java new file mode 100644 index 0000000..fad6da2 --- /dev/null +++ b/src/main/java/com/stockport/server/application/controller/backtest/dto/response/SummaryReport.java @@ -0,0 +1,24 @@ +package com.stockport.server.application.controller.backtest.dto.response; + +import lombok.Getter; +import lombok.Setter; + +import java.math.BigDecimal; + +@Getter +@Setter +public class SummaryReport { + + private String portfolioName; + private long initialCapital; + private long finalCapital; + + private BigDecimal annualReturn; + private BigDecimal maxDrawdown; + private BigDecimal volatility; + private BigDecimal sharpeRatio; + private BigDecimal sortinoRatio; + + private BigDecimal bestYearReturn; + private BigDecimal worstYearReturn; +} \ No newline at end of file diff --git a/src/main/java/com/stockport/server/application/service/backtest/BacktestService.java b/src/main/java/com/stockport/server/application/service/backtest/BacktestService.java new file mode 100644 index 0000000..cc99dfb --- /dev/null +++ b/src/main/java/com/stockport/server/application/service/backtest/BacktestService.java @@ -0,0 +1,8 @@ +package com.stockport.server.application.service.backtest; + +import com.stockport.server.application.controller.backtest.dto.request.BacktestRequest; +import com.stockport.server.application.controller.backtest.dto.response.BacktestResponse; + +public interface BacktestService { + BacktestResponse runBacktest(BacktestRequest request); +} diff --git a/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java b/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java new file mode 100644 index 0000000..054aa5e --- /dev/null +++ b/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java @@ -0,0 +1,23 @@ +package com.stockport.server.application.service.backtest; + +import com.stockport.server.application.controller.backtest.dto.request.AssetRequest; +import com.stockport.server.application.controller.backtest.dto.request.BacktestRequest; +import com.stockport.server.application.controller.backtest.dto.request.RebalanceCycle; +import com.stockport.server.application.controller.backtest.dto.response.BacktestResponse; +import com.stockport.server.application.controller.backtest.dto.response.PortfolioReturn; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.time.LocalDate; +import java.util.List; + +@Slf4j +@Service +@RequiredArgsConstructor +public class BacktestServiceImpl implements BacktestService { + @Override + public BacktestResponse runBacktest(BacktestRequest request) { + return null; + } +} From 679b878ea6a5a7e0709c0428768114aeea54bf4f Mon Sep 17 00:00:00 2001 From: jeongyun1206 <67818407+jeongyun1206@users.noreply.github.com> Date: Mon, 17 Nov 2025 16:22:11 +0900 Subject: [PATCH 2/7] =?UTF-8?q?#41=20feat:=20=EA=B8=B0=EB=B3=B8=20?= =?UTF-8?q?=EC=A7=80=EC=88=98,=20=EC=A3=BC=EC=8B=9D=20=EB=B0=B1=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8C=85=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../executionHistory/executionHistory.bin | Bin 2294028 -> 2294028 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/8.14.3/fileHashes/fileHashes.bin | Bin 39147 -> 40397 bytes .gradle/8.14.3/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.14.3/fileHashes/resourceHashesCache.bin | Bin 71743 -> 72491 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .../compileJava/previous-compilation-data.bin | Bin 71202 -> 72193 bytes .../dto/response/BacktestResponse.java | 2 + .../dto/response/PortfolioReturn.java | 9 ++ .../service/backtest/BacktestServiceImpl.java | 136 ++++++++++++++++++ .../repository/StockPriceRepository.java | 1 + 11 files changed, 148 insertions(+) diff --git a/.gradle/8.14.3/executionHistory/executionHistory.bin b/.gradle/8.14.3/executionHistory/executionHistory.bin index 16c706e6c85c5ef639ebb1a368def9b323c8f976..f689b4a5fc4e588034d7df07f38c73348a770195 100644 GIT binary patch delta 2797 zcma);eKgcr7{}+wY>l6dUrc5uBV$a`ZW&BRN87Fl8=XbNDwG;yWEh5dA+2Z!O&%Gql&Aq$jyp6FunJ_6TLLiEYkBgDJBqqw^l9Qs8*k$e$+WzbpzkRdK z_u_u-CqLgq-U)#+TZ)&KYfCvYMVqfNdZb2{f)y@kAaG=&4&dcM$|~T|5FeIG;}tTgL?V(o#0ZiEhFCv4uF0;+gUnqVH1|s5S#wZei*i~2rvtq$mX2T@ z3thBmEHzRg<;p~fN}Zj%TrN`Z^O5v|Qeu!NBYvl%GaAbe3~Jcm-gSi%nJ~Ulbvb2;zmJr71#* zh^W)r_=NMyXxZfAWBS{52`?I-k{Ko4324D^<6Z%O0{(s;RO>>~LheSmN^ zX+B5~Gpjm%C)aMM*0rb|>C%<@$%n52di@QY@EdiVSo9U_oM=f3ezSyWt5spg@s+i| z7SAr)oXiBn0I@>3b3RZG%63rom3}d)!c!(lj+7?H6P})bwXjVaIyTJktl8zyHnu@J zCn=QJ^SCAc*Ec{aQ$$H6VkuvwP|8Mq2Tp2Y&YMy^ITog-H>~EDOzJz)67O#&;${Pt zad84!3SX1}H$YU&EE#bsr{CISa!u<{*RXXx-c0W~;dk`^T`6$1Lg#4jGtppUaHO6b zs9~+8a>q{HgLpiFB3Y7HINHa{KiiPX*f+vzfBmZ^(r_^d^eRxgPG~i$5Y&gm2HrOZ zUC4W1o=;qYgs87e6I#--&D`tyvX`95fwUpubd`mhFeejhm)N7bP%MCXt~hJfYU!$( z&&d4`ZZYv4f`DY|e60fy^`~J!A4>IIA!y7gCR0`HZ)xqI-isQm*;m2@C)13)LFjUn znVvmrgzWNocSZ^&0=b-oxeaBdvQ^JtZE!+k0!nIeXBE>qtblr3womzzA;npSW1m`oVTLYV7+J+y` zIEE|A&5@$F1_qJey6k**s9RBA*oj78{xZV_NAdh-V?z>lyWLJzkzrR;AwF67jXTec zlr1CX22zKYOU3Q=9mp9y08sX&!Hjeg*3Ef!VS6VtTjN)BG^s$HRD~~mlZt@R%&{p% zY^C|qea`Z02WH;;E;xl9a=EM;SJY7v&A9PFWXE3W+0NcV&-$~VGQ`hx?H{#x_6R&0 zn4PYhHe)ZBP!vU62+rRrrj_UZ?x+qokm(Qe00pUi>&bE6`tG3=OCsTq9aXqxg^TP=Nj|wA9<&u|E_Bb)$jHD=}6)DcSofA z3HhC8bDO*=-r@7Qy?1EqaDyfqyp!i^*37o^@-IBHJBP{F~HSa*z#p#|QHvL%E9#nfg0G)=s z(Z+aN>AGt4ITJftPjypTbfsjkKI2sz7E{63_wY7DWY6ej5(3@x!A>)-XBy2@)PU2$m%nQ zd04|77e~f6uWLiRYH?b>VZ~=JHFuMIf|=xC>R}~_;fq3j?a9W-`ef}Q`BNo zdk{>YUe!;@d&qgzrd({NA-DL#5bzT-Y9kH@olnzxyU8+aVW_%Pee=Oeb+W}_>FcYf z&MJUliQzV_!znTwu`Xpr_mbwV;`W`1&pY}0pG5U_-I0IWKqe#buj77ob)hK)gG`5* mLChgk$P9=Dga)BQ7?7C|O9&HU1(^l0hOi(u+Ui2KQ1UOwz<7ZG delta 880 zcmZY5YfMvT7zglEdIRfe-_!QArHs2&MHICvE&__cCc+1_^X@9Aunm+A>%dSjvI2r; zRq6zvEoh_&8pJRv%F&n@kxb&Hs2H})O~nh4dO<{Yw=Qf`y@pTA97E$XoUfe)fLUU>Smn)`5_?^Au*C5De^}FXd05C>4@f=b#n8M zDNPjhtf@ZdYc4L%SX5lHE4Qd5kNd`!S8OS?pUTHZ`d^R;j==&>IRqqA=7767s&$~SX};$R4wF(Dzh6oZir}pwIFOi@oxgmr z?5?xzb15SLbN&`uvdIvc36%2f5Vns(Sj94ioWtX?^wAO79r#yYknQV#} zxW~z&AS;&*hcJ#Age995i>3y}fO9*m*KFr@b3$_9?<3*nSud=)Al)cqu95)Fm!VXHLseM%w z;@khQyZ7r#VXKFpq4hTAyB_({7Hd4Mr`Hb*Fz-Ih=!KC_*a(=jN=@K~hnBG^_1gZb zhItD+F4=#G?pb<=s>~@YfUXQI$$IIpB0b*9>@L&&D#O6ciSCCb9k@?f&Aj}*?NrMw z??}=$zk=7meag;UFVc1#`O!B}-mtpX9mASF^EHDZwlX^{>EB0UO1AE96rf)~ AhX4Qo diff --git a/.gradle/8.14.3/executionHistory/executionHistory.lock b/.gradle/8.14.3/executionHistory/executionHistory.lock index f790f342eb7aeae0e20ce855990efce010b7b4f1..3e26f1bacf9dee451a6c1100ce9cc3cae77282cf 100644 GIT binary patch literal 17 UcmZSXEVfOZu)k1_0Ss7U0W91D;s5{u literal 17 UcmZSXEVfOZu)k1_0Ss8}0W7`)!~g&Q diff --git a/.gradle/8.14.3/fileHashes/fileHashes.bin b/.gradle/8.14.3/fileHashes/fileHashes.bin index 62a5f70920d642fbbdd7011c37f559db9fd641ed..d9800f35bdb5073977b908087fb72c66303bd774 100644 GIT binary patch delta 2207 zcmZXV2~ZPP7{_-vP(el$70Xdj5*5R61dv05NEwSj6&w}ih$4sr0b0%oR3wEGLa<0+ zjU0h0m!g6~cZ>?PipWS6LpMJ>I2S(zLdgvK>dQnSA2sk5&Brb?tsl9MxApO zE6vjo#?;O1#wx2A8z7c7U@|tJMo-;hJe3p4phO=`WjRWt@8=p?B`-fnnL1-#oG@*= zyh!q*uHr8s%7@TZjz2QE)7jfkzG%Nsi5svAM<$K#AQEQr^__uOu7_S&n@MLnCQL`N z+JIIvfmypOf>(Ps1shd0CjzlTKG*4<%Ipz63-&Rfmu^8Fxs8myA5!ky8iv~gQ7%9q zaG7-G+4mV&E*=G1c^szV+97my#MRCFMn3_u>>y_9HVh*c%qHgK7np~4s-f9&v#3$X zDv&eY_I<&%PqPUS1eZzAal|A68^fqxn7NkJ*J~K1h1n3n9n3LIdmhc#s|Rz7(ud8w zGqPQdHZM>abqy&cQ_g>o2E}_1fRb7YG=WbV^rLb4k zQXvW6MQcIOgAU9ox<%9_R}gfg-+`bPJzm7YX(iTEBt~e(nIeoQ1I6y4myd-KCAv}5 z;u}OTgpL=JN-yeD!oibM(1RtUaX;EnvOaVT-oFKYFo}b4MJU%5UVbD-;*|Lk`@C3k zkz~F4V380H{A}|%p*k7(azW#byIQW+;m;RlpCSp~#9KhX5XuxU5q?^_p7~MbFVMQ{ z;}OVfC3BLRwo$GtG+piP6(RBc>nsXYyszD^@=Qn~G% zkoqCTE-Yf5VryVDMR3S`2+GwYYz$z}X<<)wX@pane!{wVIf;Zny#^3is)^iM$QSJp zWj?xNreYEAzOMf#bbi76 zS1x;6jkr hDorGDpG`_-OvwUyj#XRE=qxz7F~Ba_<6jfx(en;ktWBowrL+@-JBroH{dq4xTC9QSSp z2F6(voM(hGfB>VI(q!&LHI}@DF1g9fiFzz~aW>~Sn~oXQpocpQ*vf zQa03l0z zmWs^ulFgANJD6A+tPULCELyGvWLfk7-)vp!$IQ~;mAra$Z;cF))gSJ@d2KyN%<91D z$^V;x)<;)qY&L8LX?=C3Ve{Kop!Gn>qm#Yczp*rMUOT_pwZn{^rS`##(9QMz9~qe) z9T+DUPXuZ-@KBt*6v*&Act>mUbr55h*qh0mlYorn=?5oU0~vW*|JP2=1u`1)cxh+#Ay;%T7N6vVQO6r_+HVvlXXK Z_M8FKHT~}7>KS@0jg>#|OkO*~4gdnc)k**W diff --git a/.gradle/8.14.3/fileHashes/fileHashes.lock b/.gradle/8.14.3/fileHashes/fileHashes.lock index 551021959ee2126a533eaa142a38bb5d17208897..986581ba56631a3283eb4b51aaf27d09f700db0c 100644 GIT binary patch literal 17 VcmZR6{-ZNEaNeiw3}7Jj6aYkn237z7 literal 17 VcmZR6{-ZNEaNeiw3}7JT002YY1+f4C diff --git a/.gradle/8.14.3/fileHashes/resourceHashesCache.bin b/.gradle/8.14.3/fileHashes/resourceHashesCache.bin index 1bc0848bec5b4597b2e7d36f6aa02d59dcd84822..e956846d3e047802a79a592f115d13db75963d46 100644 GIT binary patch delta 1178 zcmdnLfo1hJmJKEnjO#a>N~~n&uYMTx;c~)t1`uGBoV@v}bR#E!h?MfBjS~zZf>Mh& z`>IAV^5u z`a5_vUS3~6qwM+_sR{vn~qNxx;$*r3^58h+(;nIA4Z^(@}Ks-{CoD7b5Oy;$tQ0I@{4>7 zP(2T*EdVv1;)$`R?$k&?c1R$k4}ztRowjQ-b)rH zjfoo-8`wAZzS*Qb`DiSEy;AN`wWCff`Zgh&w|5;825OKq1`?7$42mp40fwjCEB&8d zzQFUjwCn(EYsa+&F$F;%!cyP(9sZCKnsLjykjWqYh52RATg<%l_GS5ef8~8iIa1RDnHYr)ML+qm*y&E5 z*O&eHTvnO_rctx1ujHwf_dR`Ht}CMW&%<-_#_z(xGN-1s%EjbINd07a@!^RKrmh2r z`p!+?`CP!1|CCEep?3_XigPySp8P*I^XlrBO@%-2ZkaXNF-_P|+NK~l;Q6zOXBHp5 zxIG+O_#Ivxa;@iFj^v~~-J^ltrjrd*g@f-s=I?mYqRa8hbh>I$*GEjd5_5j&3VYqV zSjwQi{o%o90+=dR89fST+xR8$ma(ma&b=_}$&FdU!jq$BUF#Bdz3=fyCFNz^JCH5_ Dr;2_L delta 163 zcmV;U09^m8wgkVh1h6z10j9Gx7^wrZ_8WK!vxX&50kiHVumQ8SDDVcezAvv0lbt;= zv;IA)0tP3c004dIlgZUMlQGs{ld0A*lk(OWv$jCWdjX@9fxIxY$-LnNv%3W|cD zD1wNnpa>#GEC?bhQY@gLQuOT`{N{h_t@UO(B)K_vpWWNpH_I^@t{@PJC`2O;;vyd6 zBLU{;;OQ>JcIot<4sKqaTD=Gh)Ty=W)mkwYqVn?6xHzcvE}k9|Y`24_hhFQc(WtdX zSg^gy!A-B$=^4z=QSaFe3(~6p@rKV*Y)5x2SZ%M;s5~6hJuv@G4jMJ{$TB~8`Rqe) zR%E2lQ&^Idd&+v5_C~a{4;J(bPG4--f8d$fAN>Cv=G)d8FkyDyr1K}v^i%Yg4^R$7 zgV10!1o4JqfsUT;Di@DoSbzcV;n;4i+RIbtqW9Epk{Vw-7EG)M7S>%L77v^to zB;k&gA>}wU9!)^JiCCbM#uMn9garae*10%ICu4ydR8CH6?G!A)aD{nM@44*0y!!RW zH$5H}uZgmns+@+Vqro$;E%hN-rmd?Y1L9XjOH7=gkSb$pZt@U8qH0!2Xy%^B=U~jf_^Tm?o zHdeOE`KAky94$m#1s24r05H!;+D8dE8{XSte(qixM(c<+oQ&OcB*}8-r|-pfD;CKX zn=P?gik6uzw_1TXQrSw(Po-DEYhNaJL5s?mAHCJCx?zN9O!*00#;M0_?_N(f1+UC8 zPh8;|t5{{aTE0fM)=Fhog8eYU6+XIX9MxKe zqqTe2;W}Y@;AL)kPnVS^+^jT8cclmNL<@&Wjg@vx?rbBYk=(-tcFzjperhi*@>2X` zLTE96oldRS0YL^;Wxn;T&S$n=-uE?R#$S!|y?g5w-ljw!9n%yvXPDQ-9N*V& zxAt7G*dX618{jfxBx71xk^KGj6HRaC-MSf=IChg_vto<#U$hl%L!4oZ)Ob5k@8RZy zV?n>z&kWd-y6|J40aDWO@%!Hd2fTLR3SZo8CvN43BYzw%V}MmYIMZvKMUOvY@UQ+K zqiR27Wn={4ia>nfmLMGS_f~5+!HQ+Ajt$>mzB=KtbUKgMK4@hyzGN4!*o|9<;3yPF z&U;|f4O*~SHRy^Dz8A*=yFM|exGU5D)~>ewd1=wEmh0Q^h2hG5xY>T(>Hv-o;%0|% zv@jgU0$f<_S_$YVnLp)uLjy!DYgOg{Mn~#%0}tb-5x61}w>pB$j^f5qxZ)UY6^+aM za2J^mE@l6?GLw(29dzDoaPP>+{yFA#g9jbQO-|tQleqFP;}K>|Id{PH#GLDoCYVhQ z8-2*n;uJ26!A)Xu>o^>p#?hQJfUkqb1;i~Ka~8+^z#QWNDZ>@!uK{~Db7BN;)9>nQ zLN9I`pMaa4!>!KaC=o{&aI=dz8WN7LoB_BqRO+g!x7=F?+x@j~yG{Aw%p}}A8J~Lz zM=3a(kcxvl*yy14VttzQGHj{#P-|71D>xSXzst-@O|NgB-ttK%GmE0Q_UA{Y;fkxc ze9H)sf&0ql64JG@BAd*(?6Yj!l54nWIYwk7WP z#y*+2;s$QDB?~C>Smy~Kre<8~@aN6>y*JkVjPuwFQ*Ppl0VA0d*YDMbEKiEo7ffwj z8~^*RY~1t~F3-W`w{fdGxb?DrFi#>4@V>X zRgda@1^w^irun$y0d87=8yDh=hq&q7J|H9b-<5f4+*uG>J|OtO{6kmP?+aXCgquCW zZRZvPBf$MSYc`dD5@}T%96dL9Fo*057KcT+^p4q+J3eqVp)JL&!f-q0)4+bF6Qr@b zRs~P3riI?a%5c-ixLG-F^#nIgz(EAAO#PC()TyaK4XPE>EWU57S@RUPdxqOS$590< zt{1>;aGg563S?ag^r*CMYJC-OXp@(k8DwrGt{uGRz54rV=SL%#-+PJ6t8v*YTv>zL zu6qruy)}9lwXw?xX2eChWKD)*^1eYmWBmV=4S9o`zQq-_xcnWitiz4daH%oK%#|_v zfNpiK+)Pd=ii@_`(pyxI%NlTbBd(0ajYq`eOxjOH-I>t*68)Wu`;Es(I={zFKH$oa zIO0h^8MqD6unEU@|6ep@-i-R;Wu|ep>=PQd*JZ)ujSh@+V|{n8pl3r`ZX`}vy{cz) zGj9GFH~oU67Erqx(pI2OrBiECeE@3>hTu4u=N zJ8-j3T=4@(KXK$kpb0w&Y`4nG#Y?qGCw%rJ zTp3he=vg4I{aUV#4|weRyU3qV1Q2%X0^u%CH?;?7V0o2M>qQ@B$*`Fk~E4R#N{9yRk-*5u-h@2=HGoB9S#34M6%?VG7bwTB6-2*NayP#htwjuOf! z!Z;H|n}vgH?ULSMCMLQq!>ush(muxsWi+8YPM{M6u5N{b_tr^I!CP+! z2enQY1AH@FV~*|@=6-lLOwLnpk*-P@W}>17MpVb{po{n4rQ= zd-v1X^JZjY+->&pgff9JIY(HZCr~1R7LI0pmXb*hTKMYF+!Je5eQa&NSwud+K$u=6 z54kY6E`>x{v8rDNE?uFSdDaiU$SE8hz@Sz;4g8turn0$pSxt*^Hk$6rh+3LcBEo%SL-gOFts${PgQCN=KMZ1&Gy zRqR|6c3`2^{uTc$Ny#EiZxZrsLV1fY&LQMeM}S#?pIW*lF689N+LsSLAD{c+@weNA z><+Oglei1a@p4q@)qR{$c_|$FLT{w3SeNCCt7NR^JKZ9jrTN^k5+NaJ9< zD=TqjwA*dZxXv5XGK=%Z{NLAkX}+X#Cux41@FO8**LrGW2jlSjCgaeG)9IxL`%f9bxsW%G^JJP0671IZ;pq#~Gtlg0%ggowBZg835gvFf#6_{Uep?tbmul!gwRDLtbes{is^&&c%IQwlwQ zE;>jm4w1^a;UqXFcXyR`(_s=EI$MM>^BolBxA)w!;90C5^VDL0S_EksN!lGDt&fr@ zibQk3-vkoJV7aFuA-42Alsmdxamd%-Q+-Z}++RnNrpHP72~u{FRGuP@V@P={DVyp7 zme1<{ispr*_UyPpco(mcDO?7mq!NtBaBsVAM)G0T`xmSA%Lez3AsL&@M&eLLddrG2 zHzx}@|8~TYi%ygBGo*R;tluzXZ1%e| zE22H7p8aIo%-@eElCle=#YNIQiA2dHxEc){!k&_f=epc2=3^I<&g5*|R3RNn^*?bb>u!n~y1P?ZSd;rM9)dE=16)rd7++4hXc!>w&<%B~j!SyFrW#bo! zPU0yMKw^cY{2{3*BGDrf6_coh#jX@!Y*5>m0Y>(af9I1@-7ONw=tZ}Qdc2ItAh5@z zteliTA<?+v8g!jCfq~z%OY;#n*#70 zBASdLGx0P6n+Xd_aqI1l%j zWU{BN4fcw(sUgiP$*=fp*w%0p+ze2gacmRd?UqaA0oEF92ae;5xUY!AuwN8jOSBMS zko({`M!Cfr76jus;Wm>xjxnWA9V`H z4#P44h#iMl!VO3|#a;lSlW?5pmJ7Q*#gF4NQ;9edZzHfYK*NpN6hXYfGjZ%4DX$|@ zJ*yc*r47J7l@kz3x!uHBlp9IedsaRl;0tJF^u;kw&qbqd6K$**uCd#gV;@PAMzVu| z_W=ARd(92YW?yn~tPCj1#T{_q+9%SkiA2pL`b?rPBx)g1D~Z06&|UES1~Sxj^$Whk zh4qu#STU+}?I4K%Q!ZTx$U(1i(n&jEkqXGCdV)>>B5&B;(r~PveLaq2KS#M2SjP!E|ZkQ_rPVkuc1g-%oG428~8V3~WVNwEF^84oC^oj}dCpxpRA5=)>= zACl*QC{IVYLi9X^W9O*_i4+K0dI7)#-whbCx@-{FMM{}Op=1`HODsO%RMeh&D0HMs z)?7;Qc)|v>IEAuGrR0|>lPlDMGzwj%Ky9u8)7&A!1{a$SJAx0CN~M6tSge4+iJ57{ zFXI8%Qp5@d)E>J|S!Ph?MdTGc6Yf@dI6}$|w*be>SRT#9ZcxfB$~>C7O5OxL=}N;5 z=EXYCa#%yM7WtIGs^C4vsz2!5Q}*6+0?VdMZc(N=l=3!(?y%CjOJRGUapu|83G>#f zrMaMn22Y;HGRafl#A*(Jj)GTW(P12GVPWmSu}=0i7{@^W{=ascgku`kEW-%H?)NC= zeabSQLJwFjhEbqYF)VV&hz{JB{Dxx@1deZ_4il{J0V^+{EDI^~hrk9(@rXjjAW#aG zvXU(WoZQztJZ2fI);oK${?-To3TaFx1=s+WI>2AF5p<|Q%ad>xIJjfrNjxzVE2r$9 zQ0OVE>(3}GM6XqO=u{4dSnwP)^8Y@n0DTf<3xZ7r+|mdGQ!fx$3<>Utv;HL>O-?N* zz=|s<*$c|Hl3Ef+RZ-YZwf#%@yWXK1Wb;eG4e|rc!*C*mw88b*D{65K1>W&B5TnvN zzX26hX_s50e(dI~Qq=(JR1PsU0goXua~!uJ@8gB|H5^+7#5!PJa0TGKrRLUB z=pFDxOFCr{@j+#2t+-A`#H!uCB9e4mp?J#(r1n@%Fz^i8C z_wgd|yJg^cU*d0Yhh|`#KM@4hm5Uz+M#d8H#04S^6e$Y?noATA-~e=eJ{c~6;tpiDke=o5vS zSid#28CL4Nz1T!b`WfDPJG$sW#lPZT;KQ$w1q^_Ql>i>F6t|&20j6c3lnz)Xs435F z(_tdQpiOL8XrbhZR4ed=O&Qc+zo5tlz5GhazES8qh1yuXJVJpoMS&U-`^d4_eb6Ht zpbUEoThtRaqD8L=b{CdSI}G740e66i*iPBjkR1k71>#s!1-ZRsgBF-`Jy;24`H=hp zHlEj@y#k`b3R%*7+TMq^IRtLda}FdrQ_~=tfU4B8 z>wwo-03Z#y7#2z|*h9v^I(j-B1d<&*wd!_K+DaV)ob6rJ zhC~X8-NOQziiOj%B&5zP3iiY?( z2{P3k^k>$qfb%;>n@7`%e2VoofL~8=G{)xfN#fQr)k9*ddXQD#nUK(hLClH>L#tCbgcWruyeG< zdD&?F410m=g7Xqw=*CjQs^%|hSl5Bs;CKi)olEqB z6xuG8UQkJ121$9Suh5vU=VclvrUF)28f|u!HoitH>&SFKj|y0JWDrkiETk({=t=WdrI4;(9c-xJT~E=QP?r~0_+QWPA{mS?OxE3 zz&)d{(7;&Mgs@6lRz=Gz$(J;?`~Q;jY9OL3A7Wz)Z~}mA!m#u7|Bnn`(N;Nh7VsOm zRzoj-P0y_)>!>%tSCz(FjgxGG&l3BVHmjv=-_bVr=sFfhoxYyNf}rQL&V}V^7dt~B zblG5711+m0i)oxT#Fb{l{g7%y;Zq9U-%$3js9`?v|9}7a{O{dKVIz&+)93?iVv+E%hUPAU-o+BU=W(ec6%vuWrQj zzApP7f2K{o(DD`GbN3q_i*62Vx5Zz z#4k^ez3^q1d(biGFWy;~RkF&`22!z0c^&*P&cb~hi~Ssn103UnoP~!t78ztXKm{>- z=!0csthH)b}D3Sw#><9L*uni+DrqtB-P!NfZb3U+1ZHXBIv6NSQp{eD@Z6ug5#kEaPJw%V-Wd&H=MM z0cbjRnVR$m#aLa{ByGu?b6)aS>yndGKfO4~k)Pt2$8bzzIVg@L{xtA-y-MQ(H9A{V zpW%S9dpJV8_9M>%)>==tW$USBoTsh36vF8}?{>Arw0LwoE1n}y;8>jFpz|D1fJ9j8 zpml-h?4puh05n-@F9HWt>;WP(al572^hFo9-n%$ud(`v5i%A@m%t4pf{ZoKqR|i!p z%OMX(FK`Ad^=&^URIiSVnUI=g_EN>G-+P%OyTY+e<5*thD6Vl(ItP-`>mVISe4!%? z+e$N7@#s9gwGQfiR3=aXXoIHQ0J#5K!xTi!ogmhPEI*v?a3E=dW?U9$-c1h5=Ac^~ zNWgN~n>GS0kNc$bHn63u>)^6k?Z}uU{@hS8Y??=KRI+DmYn=WT&AiMmo1HRn)$7$8 zO#AnlMkKu=8M6a@0!}Zm4!!C3mV12h`hq*0MOE}&AP{;oOvEe26pNOtnotL`nfv=t z&vH2^kAv=U(0vZd=RkG(0QPrs(K~zF7l5Y2`LPSzSaDEKc0EWJvZ7FTRYJg?)~D7Z zA~a(QD@n)d)^n1Z4>^h=j_o53D(0XP4k~3Cdyp;zIk2V9V*qEUM!`$7l9iUTywbzL zwq6A)@>8{?F8XNFSj}DkRmKzYmOSAoo^q7WI3~|I@(Pa43l8*hq?JGgg?e4EQ3O}lb-D!hCF__EUZ)J7gBrjiR zzkC7b`J)}LIp_@sz2!g@sfA_kU5$n#6wtRN>)eD*Rq>BoXRMAgH;=jej-#yOSbd}F zVSC5{wE6}Xt_GqUXlBRE*(*K$-wZ?@J}noWUeq*l(0dO0z(F55=o8D{Ccv`Gqcn4{ zy$&u~2X7a>Jut&ft^Evg23Nz5E&vs&9N7FiQ#T60+|KlK?IQFl}QdLJ9To2v-n$|^XaT+C1F?KqOz9)6a@?EK$Y zT-tNgL@>MO9xmF;MPXdDj|)n*AC|egZ#)1Ps5i2LI0)}NRPMk#V2jgV{LACs{5HsC z`gGN|_*)weaX}&B`n9rAw)NZo)|L;vnL2Kw$<1&sI?P28Twv-EP9&h_+-3E9LtWlQ zTgu8tk`6Va#eQp#aOWN6+MeV1aURi34{XZfG5y|_oC_j?E4JOOisGVUTolbk$GH$i zP5^gc=EZ5!NdU*TEKYH;U4{x#1Bn9Qurk}}$Reu8+_dlXfE`xh_dk-%v-Bn1{yISU z^(j@g5KC8li{YYJE{fwqrFt5mtanjwI0NK4X+1sHZvqg7krVfy|NB$ozJ6=FrC+$B zILk%xT$I3tzU4vs9Nggw?MPUMhm0usu)jybk3%CDHJ%NdaGtA7BI!NDy&n||RraNGm4H&Y`QML9K7h=mMs3crA z0-2ua&QiuN@!gudq0X72kF#>P=r$MK;i9{&rsNtBwRgw^SS<2guDO*}hyHg~@6Y<} zPRm5K@by^Z2-AC9bf1gzSyCVTB9+~*z<>qJJn6hZiQ&Hb!o`|?55lZJn3#^;Q)2P3 zkZbvnJGY1{djxvMMI}H!7nN}#n|KU}stmWemIEHFV&s!g;3C`4f*~sDUg9b6sjJEc zK0O1qX05|3IbvGS0$1$xbc=@0~aE^NuY~-E;mWS60ond&O1MaM5d4gWdoo;KL082|U7EAck#Fu;E*+tp%i z_Y%@30Kz6r%|I7ux?b(HiLu_OOAy(Re-|B-7xx*FCjZPuU%04+705HH)qoP)F4c|;FAsd19=xxb5r_oq zDwh4W!bY*W=;z6r_y8Y=*Bv8y`hp)>seij}6_x#q( z!C~5qyLf0f4|1z!HnI#{x@vsz-GyVELQ?GytDaSU=Q5N2SnB1tPp@mKTzmh>pZTR1 zDaQ2Z$$K$%E&~@v>Bk92^B#ooOhS1Udw8Zn+&DU!-V3{LfXs&JH#Omg^*HZuqf^Yn zdJx4iVLY3CJhS~g(;GCKJs#jeS;JO6%-Tc3J}o;}^~;!xN9p!lzjlx(JH#^&=b^(q zh#3()C@ekJOCx#MZjbdYT2Bv_;3GgSq{NUiGJEp9jtvg!C3p~j(?zmKQg)PwqIi&< zAA=>3AVbaqq#ej6&YMKPZ}{tUh3A65M(mE}q2oMou_pk!gCi@ok{Q``)i15o{md87 zSiSno%ac6iDV{8bhhkYQ;&=x8VDl;IX&&1%fVVo3AN0_+4wHf2y1UIZO5OwIuaX%Y|H>8?ozWZA(vV28=# zY>VY#TMxZZPZa!qs@t$jJe0yisXWN)E(6cl@d}4?T)?>`wL$`P+hX+Z;Z5|fV)x=BVX z^xWi_zuyjQ2)$pxLxntWF&!iT{poac=;z7f9S`O2Om`anIr<^bqKGGZ#4|4DEhquF zpaI-6z}3^99V+Zf@*jhq{l7kzgJ7K14sL44C!hk}9)^s8IhWZvpqEy)ZB5y?1E`16Qv~I_%rat)*n2JpFBGsKH9;D#QqphT7^I0F|+zyTM`H zQ?X{zO0Chgms>tZZ2xTa$sor;9aNf=)FfwcDMyrrySv< zqkI&_N5}ZUyJ$XJB6~gN=CkTQ*d&+p7c)F5{oJ{oZnw&cGiWB`<(jWcLlza>bKwQv zG0$Bm^kF^{x<6GHzo0nO&7fX zIgww%VCeR z*B@Dx!AX2YGJo+UzG(`7Q7RzIm0kwCw3;h`Cd{xorU3&WHN6TzAivPC6G@K;FH2H= zEI)46W8L#XgBA|E#z*Pwo!8-(b!s@1p;|)H_;zL<63GVs3cXfKd zo_{9QSvzn1a~m__CSR7#msj&{@ma^bP7PDTjyZg6_y3N?p-Ai0RoWk(7GINhNHbkU zzFBaakM8inhusBcgUT6{|90ZV&A;!Q8L81>pR1Y@^tpVL$4B@0=sq6`xqMiuRl`Z( zXO5vv%WY76_r316&0~<$NI|Z*3S zP|T#KEk7ow>DOjDSN)qk^`!V2f8KMx@*F3GhO(wq=k7H9+2EXxX9v1{UVUuNJBrz| zbn)okf5q07@miy&G)((Y!8duqN0lu1AxKn#+~LS?gA3#zTdjsBUfR+0{ridw&-zyk z8u^lss=-l^uV8a%sVg5&)dAEg`j_HRE=_4&X@A3=_M)Wk>4eDs+Q zN#++=uJ?2Y8*1T&Q9hg&)^Rt+sQz|c{)Ti3=w(N8u66rKF=I@8OE+vT>?kR(wBGT` zs(mNT%o_8@kEjC97ra}Mb;@A>Jh2T2Pm^)^i#-Oov0{@TDIsJX_yfC${ubRCWN0e5huAutXV- zB>=l^v(xg|UvFPLD%Q8^56kP5e)4T``?<;@qVg5|75z3w?R~UN*2uuP6vLJz3 zu)ubg0PPllOYh{u>9aJM$Ak|$-0Af;>GNn9?%!Jd>|uz&EL32&M*!w2-3wrU6_yU0 z!q^Ww=*k)R5c@thxn=h47n%L+v3(o=_TDEj*)NbE0O%ZP0eKK`GlXy8*x_m$&7xPW zW#=3tZ1;Gb)*KQnu7$2OGb+4))}Z~0H|-(2h~7WChlC5zVF8K|phy8!Zbt-NbzWCk zJ1T%jPgL$2gFt5mOt9Yjb<49o2SwW*0)+A?0d&`o!H!+cbRBd0QjI91oOj}>19nIi zT(d1&V18U+d_tf+DX^=huF$7|y}&H!T*U~mz>N+XZy0+`FMfLI{)_P3yBVfc+mml4 z#tIa10<+Ts(>e~Dd!G?NjcsU{skF@G()n{rcec0PZT!KfwU6+#0!6&QBtd}A37{fB z4~+WX;~KiI5yVd4e-{gybb)_F-w1a+kQI_BP+Sl!z9=wG5|}0n%wjn!F9A-5qFDNd zzRG7-uRd5fBmALD@JHYFj?#qu6oI0MmkKm`dl=@Wm`MXpEU)i%x%%yIH>JBQFBD!D zK<5DTDRjnNyNuD*#TA;`N&gHzb|9b2%q<()@{=lgY5pp>{bCh&%N2nvO@OWnAWgr{ zkwOsN+U@D&pDTj8Z|uJQdQoQYf@=bK6jFqH zGe8;|7nLqk0B#Yo@7(sU2TEnJri*5iD`ymvHv~|xWC1-e{{q2emF~;t30Ux(=SN0Q zB%j^+{ieV&TVQfafO0^`$lJhI)vqI6INk*x8{2v7BdTPhc7#dxFLH1@e3WG%TbK1lZpHo$b18X8lMS zzb|vusMzO1LQ7bgC`niL>D^xi0#qnK4+W6UHg)-lcC&PaEB=X_?2Hk`!K3aM3D6?} zDi)v;0p#bU!27QJd}Z11gcW8317LDv6GO914h-5nZEg2@ zfviEGxW{W`E#3=`;#ffM;R6^LbQvIYF}5E|C5tl4Y%;{tFRQkWZulTD{U|VwrKO*M zIZ(i`e#whzIi59X%h0i7=bD$j@?7Fw(M_nScZU0`>WZeu+P zj8~=8%&lj4oMbcNON^zdD^hm5E^HT|4gn;koj?k7aoA!{0~kr?<)wu0?Q>%BLHD75 zl!WY0B$+>X&#oRD5Z@6OaWXJDt$6%hk`dlH-@O09*1Lb$m7Z81@EiIeKtBb@M+i|= zu|o(03m)rXZlA5MsWh`8JnI$NvRhxsux_)~`3kLe3ZcxD`oRNy9uD62P+WO9F<~Zd zuAAr1JisW1FTUc_devWu0)#O17ASCt0a*e=yhTZ&wf=Dizb@I#JaLGT}lE)+yz#+f`w?85bYMC5FzBkH@Tt0 zU%h?ygbcR-!Us5-KIvnyiqpIx8^p zPVd2POPx*$QH&7IjE=H;df;#03em}czpj#>x4K21DUKCd`t#!04cT&uxw`OnYJeGIP%bmHyVv zVcE*nt1W+fT7}08%@c$cv7B=taTm45(T`+$=Lh%iYZrSvv3XI}d7(T}sJtLl z`tvUWXS^XVaM8mlsWJ&vPV2eeg>4$0Yxy>nv+W?!zsHLMg)!yll7+UHgeEDVnjB~q zlyjJDah-Vj4D9u+WH~pYe(UE{A-XJtHp&&)*umbDRodl4l+*0buDRi;_FMFI*o?F^ zA-XC=*MJ?Y>Rty5bpL2FfPBNzZ70j2o32NDnH^jAGLlnmHF5QyZJ9#(C*BQK1GLaW zV9u+(tojFiS$n-Re(rgntBEzWD8}r)GfHv z8=ez&&k;iOabiqg&pKG0SDTu&s_W2;9vos zfWeAqW_?{GZSu0-xbtsw9k+yLihm@obrp-pgfI8H$&CM6kSDafCsbz8_knxP-g@@& zseB*}3QFdl4ZW??f7bP|>|>wy_8e>ZKxk4RG$|AsKNQM}geH%KCbd*CV5ZTOz#UpA zT@D}0UnqSm232%&rv}JBZKWem?mKe7REWxi=&=x$vz&VZQe(?&cAiQ56cBb`AI&v% zPM(2LxkEzys{!9D$xdYI^nBdl>k~ENmqp#43uP5TlNUl%DTIhR31TRO$U0MWIDbdw z$cjbB#=rXZrhk(X#}T-AeD6SfZvYs?kTGadO#XjvmPe=Ri4 zr1L0tijMivqh(ly!??2poGL%Byv*(YMyPx%M71Dw>K!nL?E$e(floN2nlLAIRNP;G zd7c|B{O56x?{z|14qXpIV1tH(o?$|ybF~ZGnL)FqZ_RVOPk$nrv6Dwu89lQUO_^%U z{XVT*OoI?L3gHxgFIz}XU*G>ybjh#*ABw)W&zheU@m^^6L1_0;xZnl%GW`j73-JT0 z-DBq5?smLAGh$!z^L=OApJ)=o87SPIzxn$R{Db47hil$FbuI3RHw)2c&}H(d;0v%? z=K+UxY(mMb+|$cFi7z~Fo6$FDRHHn(MW}2QD!&TRHzAZ=P#^85z5}7qeunC66JvLF zZSSgENnZ1pZ7b@1X4beip?SN|wnK_E<8}F(8IwUiOIPMFj`7iLWSkdYJQ@gGH7ZbiRS60l|%vfnjm{sR>#(JVMJPf9eG^0I4=mQyzI$vp z!_#lZQT_gn)sZ6eBO;rlA`~TpLgyHOQLl%pQyL8q!*`uP90wfPOAKM(uYY8|Aa~<( ztFLvzGiIF-DH6FSfz9wtF%-m(O!Adg>K||K1=(+ttvYvZ>CjUm6eEHo!dQR>IgVQ8 z4%kUH)_%JBVb~EWW)4r-d_Fu*q&O{Fd`1NQ2x%H0viVah+M2Ild3Ge@^U=!tLEeYY zicq`=ju4KC;O@#(EiaRoIdUrgbSN!2II1o|v;dAMX=YQeozI`$wEL|rXG6mC@6Vr~ z6WN>>nI?+nT@ay*BA78q5@Erv_MSQ&9Hu}iCjtkh)8z=6XAQwer=LBUczy1Wc=0Q3 z^d%6I2(JGh}3X9aOvH{VrBqEi5as z7&SHHx9=O%MRwOkC_{uYSsl3{!ghMQ9HFFH0E6w%FdhLF1Aca1ifKE~?bdvc>V8v% zvVkfSvyl%(W(6YSLXqML{|PO9 z2pX`7J*swKmVNd^%WXq8KA7`I(G`1#>LL+(BtpeN3d`A25j=jv&YH5%!IZ%VcETD? z4K{9i3?TF>t&^HPjr1wlGdtvc;EE0U)N6CHwAyl!Z6f^yq{2Q6ak|GW~>;&h{@dhWKj z^}kh$P!-FKm%uha_}AG#;5wm--rDpC}0V}$Ov_OI5F4gUr zC3~-2wvp2+ooB4C7g;ojOdCaJ??p>Kh|oviEoqo`fT}r}W+J=2^qudbG8!{WCOo+< zFXWTRq=g2rrO5opT2vRdYv~@zfHDsszb4V*W|2uM-%pUnXC9OsIo#}rdIaA8)VRKZ z*Ya6p_C;jeB9ga?VEXYZ>wDN=$M^=mfc+&3$TDFRk{Q2rdF987GxskSS;wtAIP3Ly zk!_pE_=W%ufSG;|dF4gR^B*^NpG9BHIp;Z3tCMe&aFM!sq?&lGM|2=-xw~4BRQU^%L9ri;V-swt-^vIx-xU2o)_-7e|wU3Oe_!QMT^-amYv+wF$??Vo zi@x>Y%Cv*EbMnrMQKA?Eu)(2g#wQl5*4Rm>uNt^GzIJx?1+mFRv9g6u0uWGAf%nmZ zcHaFvbz)NbK*6rDKlX?o7v4-3D=&$yQpCz9{QXoa@YBP~TYp*1cB&xCFeB6P?2fj| zv~N$6BRlOk{J0`UX+QvED8RL%9=HCwlyn?Ff7$5Ck^8%5T@{;O6U)-Yw%5g$Px$+& z3PCXaj?Wmc*!Qnr&4Qil(ofIG+xBi~h8SgvA(-8O-Bel!XMptV$X|`+81HRtzr$9a zk91#Z^}#Hri6xu#r+Yk`F2Z;a>VGi7_!(hP6yj@wb-Jw zY)f_r)IlMxTZiUP688F2<%6Qq<+DjBf9efpUUuixzB$3H3*qlaSf>qT%kB+g#2 zcgxJ!Bp1u@o4yv}8#NY7UOy6}Vo+E3C&=d;!pbVw^b37*%E`{@s?xxFJ?K)gS(#Y& zSUj&>jGl-g>3a%F3CYQ?PN(#l7~84yni3{p5^f$EJ2Eyd^I>Iv!{G?a(&u8uIZhr_ zbkxu{V&jxO9KN-={j=!R6=L}d&>69Dm3YZZv0b%Tc}DySet?IaX4G`Gq^jT{YB+pL z5;B>}#-IHYhwWPsF*VG{w&Y`tSoT_M`&IZ;IE5K4+2)bazd+skW>B~KMfmkM@SOlE zRe9~^$Fr=}vpc=|@^7vkZueFU2T(wKne%c^f_!7+OTQ44HUE(BYQ^ZC7}c>XuLrwy zRCyZICC)3j`SHBK4GGCF##}iP@Oy*Uq)}}1UM$^v4;aAg)t<6O1oYxnd zW?epeuCeX=)$d|uE!74#pk|LynM;G#i2I}*cIfo~c_XKKvE5Ixc?<0$f%M#7?PzF>ffaw7@cKY`Lj6iAcuQV- zzhiH9NZ`?#HZk)@(EV`t(QBW~yZ>nZq)g))UkTbNffEKl31Gqk@CQKfm?z}z@Jkm= z(hZw0VVR?>2Y0^Hm7brb4UotJCC~!>Bmk1KFSj=co_vzzxOt7u?Adc#ki;@rVw)@8 z^$V8v8J9`8gC9uhL39f}w=*Q{JGXVWWL}5_1{1!q2RaRx)_!?+U%T&*>VniD$-1AR z64N~r7|Gi!!9v(cVpgNTtHjaF_14Fq!;3u%t9Ebn`q9UHTbKlz@t_rpoi_J*i*FoV zFh6m}9opgGK8eMC$@~M7`3EKFkOa!5a;`L70>!k)VF~b_gu}t@rzGG#;QGMnrQCt}H>)4e|L{0%r%%U7%wi>WF}x}q z43zSW-21lYjcg?Qwr;uD?OmJ%otA)GPGFs+<%PU5o{4=5Z`tL4cc#YMospok5)?0i zqA81;0DHspnNEhY%{{F@BK>bzEq9wNc{_RE;M?aU=)43a0*-VG?=zd4ZYWo-i7=A? zalyG*tK0a%bi%qG-O@4ovMaw$$PIevp_p}iPGW{*k_077&?N~(&c|I& zJF(|KM;1=_Yru{*VHID77;R3Gpi~JI1(zk@3MWiwC;uudn*z@)CpLTcs_N)%95wWc z1f@y9VPBO%K6K_Q~Zo4KiPnXzUmzW+9#L?v(aQtf$KNg-S z{208+$;&N-`)Xc>1Z7HK%pyYww?CM<=g$)f8RvTUw=a*$yr;M!L0Rw*$~qRdhxXYh zs|4rIQ#)q%iJQLdrUYe6V0QBs@QaQ9I`&L3;`E$mW2Z`e_4E6|@1lF-Ignd7q^kN>(Oub&lDD zPLcnUn{UfIEbgq$m)Jg#*cC`1E=C9oS;AqC8WbLKn$?q+7g>?PXD|EqK18?Nb$ci= zDUyKqc?9Ok&O#dckOu|K;311Yiib?o=2#IsEK;_*7fVb_B=du~rLZR;w$wa?}$g{PE6p` z=;QL9Nzii%s*s=;5;$NE68$<^ezbFr%ijlFhYhKXO7jT*9#tukhfq~4GvKEI8kwTn z){gQ`Z5hYk4PNfI@TCMstN`}LUAJX7C3B$Pw9wf0%-B)Yti0g*yWyRuWjJ+R5$ZoQ z*5uiSR}zbMVT71TTRzZZgwtf~yzA$lTeep}sFB#bmY_Ehm}PC}N+GG#fAxms<<`^nmdw;3u;}b!56K;D$QfJ?*#S*^A$%FUjS)cy&`On&M$3BFAk|>)b za({6F*$m5IUbCyE+cR$W7#wCJO)bgH zk(h1Sx2AZD{jsNR!{aoXR*CYf#OfQkD2XCa5>H86#BG2i%t^ykyp|dM&i~M>M8!%v zKKkz2&_Z21FiwIxCD4cXA;I>t4?jbx()GBQ?kC93*@ZUL8ljy=?1(k|vYzf&=Sccp=x+pl5<_2sJp^YK^w~aZs&G>;Z_c2NK@E0W z0*uT8jZA}#psVf&hP#KuJn0yp^E~CiVdg}S8=S?JgM*FGE+crtjAegjyV)G2U$VpZ zhY8}!+egiI8_7b9WcgGRH`K_`bA#%I88kGzt@moj9iIg&cdecm`f-mD+G_;!m>1b( zfhmnVJxS8z=AYwsI?a%*PYW|b`-~9$R!a(bzzBK?TK9v1@PE^8EV<)QYe#+khevm3 z&wWwa!{*T;BNPtnyNd4W?w(wWH9|$|Ul$z-a%KKuBU^Bhm1HXgrW!2kaV>Ak(1mME z1nCXSN+(Aep(94nLpPM`m+Yx_#cR6p;F2`!gr?k0Z~2UB_p8{6wVr#2M$gP5{@v?KLhssC}4> zqeGmvvN@yCnSB$hT)(EA1pXPp0G**TeLm9o@IUTVecvy*6*6hf?)DfX6bmfo#2K+u zThNR(Org)WYgua>_~`nmSG|AVHT_-B(}0Q*1dV+5Xr#Z@Ijg^?l%hWlpH|QJI&tW% z5sEiL2}V#_oCEGbhszM4)mj6gDQlly+R)q5?M>oC^Vi&{JLip1q7k~lLMsy(YKJA( z&TCZ{>bFk%e~9`DsHnQOZ4i)V&YbD764i+7%L_SwDfxUOqEoN;rWEFOv_sKyaE@dV`r0-%~0 z-F%6J|FfD+w83FB|N3y1k@nUABQ}Be==MOnPXsK907)@?jy!0ncv-g49d2nO6UWz)mM9 zXAo3_`8)Whg1HL_>PEPxb!M`KbG`76*R` zAf2{St(#A|Nfo9r_7|Ml(ojW^|4BIgi*UM{fYsnjh-*`MN_a^ia|6c(R((Qx@A3=z zhwnMIp_ZUfN02KNuZNN3!kY1}2P-f<-{oHF(hxtR)`2?-;w1_V1o=6B2yg5OBdnO* zbvd_|PVCZnb*ZtDfHe^ylg#b#mURekwsoYEY{Jub+E?EAHxsZH0vx(EI2Pd1juh(j z7*S*S%M4))kHe0?2{ID`t>X2NwOqYD#zT@OXRPnEY9p}P39Jr+q`AaD zJ5K-n=BHh<={A|VW};!*P4J6=O#)zY9aRv$sGpP)8C0D>7h2roY{yQe(_dkt89NZ(+> zSJKaOYpjI{W_rub{e}sg5dwRZpfN^({P#H28UhSB5f!rewF1cTSb4qJqsr2)H=;(0 z{carmLr|W;hxL^J>^8xtRnQ|N2{tm+g%$e^_(UcN*c1WI)oCc@4y0IsCkwT6s=EBh zUB6iBLZRMqQx_}bCjm**a=CZ=*4Ea57o768g%tl80>tRkMG(nHKmF~7Ji?bJEYFn0 zF7(b4PRtS5^8~p}fd#0)sm=rEC5y1{{9^zBCc@%a%9^s23(@AuEW$2JkF380)t88> zIU;L;$XFsUgRKzoB_Q+%#)s2VZs!m>fwzJyl5ha=0# z-6qw)ow}6w>t^b|(bTX-FgpZ$g#do|KPw}R(Pf$T;K=nSym2UP>`Rh80+^K72-NAH zaHuiT-C=m?X7RQ>y`MSRVXM{mI3Vf((nKJ@1*#H|GC&r!O1CYMS$HUWe~owdnT8A} z1an5PHwYkC~U4 zW)%-I=3X6lL)6`olaWBUfmK%7t@R_E+E_vuo;~Km@(%Vuu(t?cw7E06$G!EIeBbt~ z+KJ^4{*2Ffcp@w>gq0~U%KHu)VRRcfx_Ep*BH+2-Y7yb*oXjiXNbc9A8AeP`riL z5APm8Y~i#xBqSo{A>FGmIB><*#H*(Q&HWKh0HXR4VZRkhBYfwBD3*=8+?f%XjM8^; zyr<-B*gAm-7KC8I2o{21BB3y#dS;OQ41=%U)D4GDG1byG0ii#bYD^1@$k@SC@vY~7 zOn1Hbu`&X|A`ys%L_q~^|0m7>k8Kbi`c!*daFs*>+p{eA(xYgE6N7MK5iAY?HW-9F z(*XdB2w2(Q+H~ncQRs!&r!>EBD33?51iTyZ6-N{QdFF*rsLg>FYmYvyA@4~~#Fy?s+&FVW%MMR7CwVBAJG8z95q65I98?GZE!1 z1j|Oi5ttAH$Vv_Zpac{BfAG{?e8d3|2w7z`@BjYRLX*K2hwy}%?d8-vqkE^yXZQ}i zS{&V)k7)MteTDvkeMkQhqJOpcM{(s8c%4PMnt6vk!(iTEr{xGd@2CaycOov|G+wEyAX2XdG*6a)zw<}cZi=T zxM%*M4Pmz9@5|B)&QWI<%y{|%)>)UHzuwL&@7lL&okXgZv2?JB1 z5SJsKR|8(G7~wy`W7vZz_9Ch&U>5Yj`wz7B5Y6=U&xpSjmwWXGKZ$l7C-x)k0R$UF zz!DyU*>e;00CAmZV{{mL|;50oDl>YMZnb=gBJYn4fuLW z6vaVP?cvQWQp&97E1td?N3cH#HUX6rbQhR}XK}hX&I^NQ`yYSwa`rvS8Rx$lvBB^2 z=_v%jvD5Gjm*L69i#(h<`UEjO>s% zC2OLZw^*#Gub7`0VsS+7eqd5g*>Z`DG@I#%njvDy`UCIxm$UCR$0;n)G-|Q#v?0Ri zK$DO8hNOB%@<}h;_PJL3ZTNsKQQeNndPUUC6u>#5u=m#XxSCF?$Q=Cg+3;w+y>@~< z5qnL<9Ef15Ob9s=!Cix)(Z6*I3M)9Kk(*V2Xm>$@>5lq=Wk;Qem@^TgC|sM__^0S) zck;;L^t{hi;aWb*Z-{IcqOvPd!Hsz0^U@&k|3dCs{A=bK>W-xOYUX|KppV466O}!P zD#iS7iMY%hM79AE9;wG~tlDGMZ&3WUomBfppMyeEQJ1T}wV`lVtjW^vEp*y_RU zqAIQ4L^U5G=L1pBmnbrw34B0=mY-JAlmC`v zRiz(H#6pNzC=rr=WB+12@)V>2>wCaVh<Wt12CvGQr8(6RL@bhspA%43@N5Awg)=4fcAd{Id;Rpe zSQ_QVaZlbu(L{C(Q7)FK5DM0{xe)9{qE%vSp`@j=iAnK|%WdqoCI}!O_q~bVr9?fs3?v-Tb(#~t4x;tAhlSAAPQok&#wL{v_~Cki?u z3e#xR;zvhCMS;o@Tc`8<0|%#)iRvjtwPwClB9Ajr9_|3w33^TDk$*sM!^4zORZQ{j%;ssp2CvpUD17WEBwE zeuOl_C@;L2?}RY&az(vH4)^mJ+7uNQ60ss8c$eQ`5FTk?H~Hrl>Z%X!((2mS<@vPn z(ovDsUByJz5~6Y_xEz!G$i-FN^H-&dPwaO2VB{^n;1F9qqPEkw?5qI@e6!oFx5?3rBh62$l+$+IsiW0KSO z@=OjZt@E?+kXSojx-oL?RFCWI3!33_ZBau{oAI+9L`{H^!%7B<5wde-cc2{UhTI9$ zhP!u|PRU(FwQeG04siwnLhD;AwoR(^pu@v0@x^-iM|y~IRl-xe$l>R!uC@9ZKcHp? zNB^e4dG)o4110?xOwo%DSguopAN10-6`hi z5zuS-W`u~165&i4gW<%3OTYkyr*>{`2-wOm&sG_|RQGCQ*`9Htnx7~nPS*FHzqjK& z;y4g<%*?oVr`#XtSt2$`#HNVYG!ekx3nDYHl#TCzN2@gp{c=moU=B()*?o1_fvdZr z)4A4l7nGkw^`xA1uWPqL0dESwUw1dTr!z&|%qb|@aZbK!t2L@%gKF5K z96MC`6{=tlkD(ASht-?`2~41yLF8cN>X;s zCJ+eK8YAaD#boljUZwSCFMCiLEN0<}VqPfr4uzLLFNhmWXgrBI3xqIq%K zwU@o9%5!m!wZKXlr$CeiSs)=KoABh*e5wBN2D*1^{l^CPAQapM=-;#cQl}TmvtFz` zQ7XTG(bHg*9fGQaqLN`Kr&0(apw&WB$P@7+=;f~GVb&jP+Xf{(nc=8<1PY+9Hb|%- zJ|jDJYDbz1wpItwrWbchMxt003Kkc)k%U9BH48Ty&6F%;Z@sd9a4H%FmMH9=>n@d?L)P-LpvQi}`(se$SX6DAKMuwK#}@(4)WM-|%bh&!O)<)SmqW&$N5#W9qcDRL zQGkz{;fN}OqeBf(kL{N&dJzj(^@6AA$j_}yENwRvxd&L7U-{Hb56Ypat`#bi`9 z1!bk8DxXm-4Fy{hl)uvWQS=MSW4UJ+(s$lnd;3Sj##@ddH4>sGhtlykGVuSl6N!D@ z`gY1TP@{hAVDaeD@t-yVh{4R^aRLNchx7~CR#kU+4TVIXSUv^oo^gQR`_Z3yM z5G;V11~!e}b>z55W)#x6HE~uy%`-gr<3u5f6`|NS6sSx|Ld7uCK(PQMgyBm@IU8Nd zR9M@<+{v!%zYa5E| z(BpI@s7*Ueog2ou?{paQDyN_P^cq=yd1IGl%&`_e;&msx+`nSbPOgd1k z6NLzE7gW+1k3qp}gD>gQlQH|0O-d^b@|fo7-KcU8s@jXs+&+BNVCHJ|!}#O4Er>An zE5*HxzkDj`u5+U5vWdMN11L6#LQr)Gh7PE7|N6(8aHRCH!G+ph4!^YJt{lRaEFB&}u~8JLY+T%H#>l&X*J!|tiCXhsxF{vF)&ks|8pbZ z;OH6uan03_vQhsIZ52mQ_ab~W$$pexqwu02O|ELyfqnrbHbgZun`qM8C2YD;U?G~m zh+==CcZGcM_;~46`%mXm&nq~7HXGTIcBJPeiDORU_@Sx7unnF}s5sfNRQ&PmsHn08y?>IpwBgj zORPz%4MH{~ki*b7xDGKW+`pUrek(ksPC{(%Tz}2l@R#pxNy>Jl)2~QucX4Y$dw5p+ zHjr((&(8BBIYUeGJ7QgB(Lw)9a@nVgUXw5f5+tj+WV6*#D_56vuDo@gQ2cl4)dSlc zNthD}Qee&`9^1S64`3{ym2AgI%7v?^_~Uk7;_Ki^7kWd2>^)c#u~}EU9G(Q%ZrbqU zc-m_AybDRrl>|UaHxfu}0BPd7krp20j%jMr-T5H&Sl4*%SJQ-McM{u!r16$?s!9mA z-aJYFv=hKjfu_arwWitI&Q*H@F_}XD#g{`s$g$$)D)KxjkA7NfGMrrby-1)|{Eh_c z;I=Wc{%4ES8l#q&ow8@tls@M3HxUt`0g0C1r+3^!M4hrMMR|_CC&_!0Qk`f}56W5LI}iVO0}-kb{~Vc{e!f`mnqAaePCY1nh=*QE^B6hnJXPfxBFhpkvU=# zY}S!LQuY_K0zQ($(L?lARc&tCEr-6fO(rFhbY|&qY4GuQiPzMK3Mx-|N2q*n0S;<$Epmg)h)_ z+!s!1e;4gRNsEwMiFNsJXIw&3q0FEA%-DcISMUf7-e?@W{~#kzV1ao~w0Vw9ZZxKk{GrO2P`DlK<8h zyDoD^kT;rGDKp~jVPyTakfdHj!oHE&+WJM!BAL=0>4tBog(Vgq4x7ANV3IC-FFHLA;+U83?PV0%nuJ z^@qmzj`%w@x59p9?%Mh9izllrcdoA_$yJe9KS`>7gkLbz|6R_4=M#~=#0~>V{T@DH zcklDBe|lt9ldu{RxHYx#n6VBHwuIv5u0N+63|6hvW!!%1F}Y{z4T|Ij61<^HeMJ$|@|G;?TI9e-vN2KDgDKreQmYV(LlOTUkH^e*A3{Nu!yh+CpOeCP^-!Xe;apTCgghMc3~+EP?5G@Z`Y<;(OZmD@}Dz zYOOlp)kZqe&esl$3wN;*mxiOyKZc1N*EmPd%n09bp@W2V!iweVg6_Ei(+HwfAQE{` zyBqF$1Dx+awvd=g;woysz-E0SdaveHrc@6}xtGNGO$rc$5=p*UBB$=0FSvx^G9Czb0cH_~E?t zSj~Oy1B`u*f17I*k7ZwVAj>j>iZ=1}&$&b}@B6FO{%5TUV z7c%BbhA@a58IoQ9B*RhTX(5FI*Cc?@Tbh4Upblvonv9(Kgf`yC7fYN9OpGIRRvik7SuZ^4Vbi zB;jOXoF4({yvs|~5(QT{bo@;}DIC4WZC%G9)bUP3Mr5g~_pvI&Y)=7mgLm&7KG+ z1OFC&Z`&g|lm1_@MEYgAwo{;Q|z~{N$Rz5|UYOcxBDen%2M0kz~0jvT8J$ z6GK*uB`e2~v3N3&e83w`AoJMj0PpbrZC8Hd771u*&*VG9_^|Tm3qNRiz0rE6iDc{( z8PfV(*qO_&j*Z^+XAtE=>3!KTVRw?qa>-;Yg$%}ADj6rv{D+b@M&F4eI=3YzT>9$W zE|{2It;k*3@tLfaMppkq#?r~K<7SX~UfudnPY2D!ht~*n8}8qpl|WuP>Sh&&c8Cbf zNI6-`X6a;+6=R80!U)mZKclPCT4tT)t6#^}l2x)=^ZN;7S1CNPv*WFK~RgJfvoaCv<%Ok7j zli5vzU&%mngJ7Q^a$2FPu5#-R1K}Q}n{t_(YYWI&AsH(o1HbKHJzm6AjORJ>(&9e@ zivu^OR+WZ+BXf$$G9_d+Cy`QU7_+8W=VBzwyEw~#JPXl7pE$+>QA!j zFS2|!S;h%qIPw2*@hThdpLlh$aJlpTeRs{gwiVWp*|lWlVWB!01w2j-wTB5wEj((O zws&ZB1va(rRu0l!Pi8fcl^V$$KSDaFcY#%Vro1D*r^5ZFV@dBuz2P99CbDufS)+vv zG1lL(a&Wp>CkW0WkKB3REUL!#sT}s8?7e<4w3V#XM#kD}fU8BA9$%s2XB9fA!IFc{p32=Vf+_Ty-4-cn(elYSpMvWLmo2pOCV?nb=v`@L?-9j7~vbV63$ zbXb3sjE&*-9Ea%xD*(P@x$PxGQGv)We!I>h?eRgaKV;SfnKMb&m?DEmFb&>7#iVkJ$zQU}OA3e^brQ`fJQik1%griQmd$k2&da$WvaaWfEhw;2 zzZADSHrl`4z*iax7ikl5w)-hIE+qiRd?IO=}F>Q_6Glq z3k8fA?f=mKmi%kO2qEQvde@G0@&xWEs^ddc7p@Mqo#1mGcqgo8@cYg=SBk0|h2u`a zJSYIj1%6~A0Z>TO2@aR%+;%1_#NOTzdaK*=ErsPtQT`@mg?K?T{!fDpXp1d+V{yHo zQ)?Y|uB)h3X?RD$-cvwypWD}$h4yXw6qsQkv>d6~+G*X|$B!J*acB$;Yx?1^a?&;Q z&8Z{a6wHT$eV|~z6!37T1ky#$Fw;uU{6?{0ebW^+^h2u|=44|mGq8}-+ zK)E8%#%QPr5-+8+=F0kgqrr#C+XbUquLV-DAo#vuEeVS07*k)Z@zbIDYENPn*qwV8E~f03fo$#cgqK87L}OTpqOaC*eUG|~p-j4_%3 zV`vI?7C@oQ-|;*dIrVw;;lgs?gSUj1B~q|Yc-^?GFrXC`oI6h!;Jff5o$&svToQ$y zOkt%^G*coVH1)UO{|%AX&t0NaBh`L!tEQ`=@huY0e;t}UQn3&{oVHGsNf!#w6cd8 z6eV8*Xc&DG)VXcHk;e+V6Sx~ydEB2#fmHG@VWjGkW=U!L`q7;AiN(!F->mExMBFZ9 zPB}jt#)j`J6^86lXq(_icAvTNe!0pg=Y{z4j{$do=Vei_YzlFX)Seo?S$7=5^|m&f|HkpZ6E(6blJ94~f%BHWjwr*&e`vX&xK zN0F>0pt{J74YS)Bv44#|Ea985Kfm>IJw>j8qTWbRhO6bq1YGz%!3Kuo`^`NUhiL3r zqVV9R>|(L@z-9`&g~I+W@lIF@vCa5Z&S&dZ@z<^9{=<^8JHIJsS}6e0n-u}^^NAX3 zy9 z^wAE*WgJa+^OLu>ydL??rHcXyFDc})?Ywf0uqsBh4dSl9d6p7!()8v{@-B=Tq6eE*nLv?*VAa%fvbP?btDXH zN=GQzC;~}_L2(BA+9;>W?po~Kq9NEQ2Y9_oGYon z%&8zsY(eF*)ipNSvuh`UNT<(ZsSk(?;VIahy=jFd6_DUoR9qe59|+tS(K9dP8L2cD zdS&3>`bx6i+nOqCLj~xwwV*8(goXj`_K&cMT$Bp#xP8dlNxh}lYE<(#$&Lyn4(P{& zhvNVA@Vr)U7x|_1NBJD`imG8xRW9dyO$A^O_?o7j{K$a|*N#)9K4c#WdloE`?Plyi z#T==y%Q!(*xZ>wH9TCckBQ7gbdGOqezcc64{@+i$oT{t+u5 z?tQ|mdrM?)E6Ixr=$Cg?fV$t{DnB6aMtXLvY7U)5FSfnV&K=qFo(dT*sET);^Ouw8 z$xS8S4&?gSy|?$Kf<_$tezSNPe_V>okquag`RbtId><-Y%mcq4st9~s=djnNqVl8t z&gHlGK2Q~2;^^Mdr7O>SXuY7t#nJD)4ao`erLuk!@J-~;ANLZGU7SNY-=DigiNEus zg4`>Vv+>8xk~xb3cRe%Tmb|sI0{&FF04nPv^>hOzOgIqlZv5EAQ;aYjrL=HK3JapBti6t=uyJD%*u}}&wF`@;TT&^xaICHbH|F7*?-Pw`K zI~82_#Zfu&RK;M}mcR;E8k*3|x#HW0XnD}CU0BMSK-CCZnh3MwpCS}QSu2;#StvRD z^-$DI2=QC7@ca`M^hKe=%$t9Sq)t7U&E!PaAJbF6mPEypp)W~wc-F6{%)lsl_WkGw z-C`ZvT<3%oDkv1DLe023&HuvV?1FmN;ToxhrVPo>=>1pZKT{#20`JQ3#YH#nFG}3? zDcK-+)8@Q1s`?kI;)FmtmB-;fJ`Fw$aFjI1mCQ)eCs!yBGY6N)R9?=Y0#^n~xFG;J z&Q#Mo{jcsw$FJN`l}VLd6w88T1<)%%hwANAw97op9DUcZ__S}oePcFNA%`koC>|*a zeLgoo{5mWnJf!~^k5EE~?uJ|{=-NY>Y3PzQhc6d8SDId(;nR8YCXdR>r?S3MB@1Ba zsH`F?r<*@O3}>DH!z@eO>Rp`iYdT;uzkj90?h~@#sB($oFm)Cjq)Mx|uOrDHrtCVu zLiScM6)T}alAen|agYzP6ZyjzJA37c?ZTOffl?~=oeHwJK6nlIv`dCh7`=%Pw~JRv z)#=D7qssoEN|sYO6;%0J;ZmW0(1#=?&4n=P?Tn<%;HugSq$8EE=TWhr@V|V&s33E1 ze9H$PpvJK61JjpOFyHYbDTUcrL&a*Tm`ELL zjgPOJnra)>!(VrF;I>E|gtIW8VE5_brUb>)=M3D~h7D9!BUQ4A3PyK{5ZX+|ugElb zfP{=Un#rCryL9n}b4l*WhPy3Px!+Xw7jZ5b_y;!0Os*&FkH6Fu; zof_XoTcbY;cb-@L^`Sua{gdxlL@)J3A64C#*bnOgKezC!0S4gjhp@6B!mf>6Vktk3 z(^+hx5z7Sq1WqspsTz$~eOt?$5^exwZ>@E9J zaC65z?7z4N>ZD5{J`w(|>9KOJ>w$<1ehXCK)xqy(R(U~D#>S2E8_xFJA?{UMq_Y1~ zPrszW-G_LR3#b}(TCWTXciVbuw$fB1QO|AWG?h?s3mO;;U`m3xiD!?Vf!mGl6+W?% zOw;&#x|TG|iUzyfEWR032`j35zghI<9Te42zISYcHBHTicCL#6sDC6lwY_EO*4Y{v zt2?>p2G`fv(!iI8cQ$rr2eDsP$G#en)G@QUt6@h|dqtD{#*f<5@IV2sTO%ZybqM3# zq@X<+vNGhTknL+4=0F4K*c{yYkxAD)tNs4@)hjNIr0UYLL`NFSiKgyMI~gYQh6ed8 z6A%~xkLgKekXPiIr^jXH8y8RQ+V;&2u)ph*cE4xepE!8LS$tUHT)YcS(Uqp2g|zUx z(O_5pry_~x&#YvSYX6j)UT>-=nQEgP<4%K_>VfwO*TX};-7Zo}n=)M^oulIP-VfXT zmZlmk4m9lxmT^e+zCNX%x7SYa?Ubk}f4L zFDh#OK*N0TQShSyS`l<%pOQI6(KIXu|0>rIDiZW~HrcqC z((&4@GrPs~Y%C3nqX8Br9v?UTM*uT`PI7(rQ~(=4bbgcT)~3f1ZAl3<08Ya1yBFJ6 zDsTQ-7jk_}dJB+2#a6M!gB2(jg_}BMlATQ&$Y&&NDOfkGp z@7=R>ntTxg?4RZNQ@rV(r;49<8+$*=F;B^$!Ic*9yiWgXZ@sSXrw`68TJiZ=9L%K2 zWzm4Kn+-+ccSpg2rKR!q#MkdSus+X@>82&w=g`=>G=(Wq7yefQNNE>SO4~EXuc{}s z+vSM6MIKZMKdV@-+fE&4u6-gr-(XQ;nre@(&V_-7Kl3*6yU@CgJXbXNt$xtd%V`>;5}g8Fg2>;+qqo1t2~IjES`;pQp0T-thE>u) z=Ym_ixr=6zlkKN!{oegD`H6k~SVdF&Nn^zb{(??3GP-UCas1LA6_x7Shtk*BwxG5j zj?b1;k^QUMO`J8_T5~oZn18aG>QGIStD&jY(oWaWl*RNSJT~z9zZ1=5Ui! zX})WY&Fl{7xE?fMc;GxwU?UB#jclTUdJit;14u<<sc)9~d0zg)?_!~46WUK-Yie{2vxK(zP0 zbTn;TwN{ArtiUACtGJ)W8lbTUX==7J+78*R{B5>NjnD3(tB-c3qj*KKNSo|ENVPp7e;oiWo z{MONHPD_8%o&7R8eao7M#%b6eyoW+?S7XZFX0TY?6je(Li0K zPW%f#y`9>=S{j8J3X-YE-P=PdUrf`KXK3t1(O0;B;W~zM@e=8|Gbuv1CKgVtJu^#_ zpQEvXIln;TEYdXo(%55SFX=ek8IRZFnJ0(>0OBqpbEc^xXvKvmp~*9Ji|=R6>6ir_ zIGJPk7cHg!3O8O0Qa`3~LwHSS{#r{q2oS;Vo8J6H2P$sYj<71LcXdt{SkdLJ>5?-D z3I%R5Z!^0atGr14R%DZOY3q9%I%Z3UpaVC`dC^}-I^y%w$-~OGC<&{L=IrRe$Aki( zJucsPFDl^byS-Y6{g$eIennTar>i82za=J#BYQL|`;4!=raI}YEgM;NHt;o_?LgNA z8aaPG5pf+k-)UUYp6Pg``o+Y3J6lIO=0wMw>5zthLx*Gm;I+8RXRV{2xKkMQbwU)s z`%S}{R2MpUn(*Z)>pgXc10&*gKcss+d25#BN(TzF8~q>Z$rzbCYpY`^vcu$BG=F9Kfy(0U+57HvWe>W-Tl!f~x|$2whLR+l0lG(s^slGms=LjO z1!svVcpMx&=|u-kD)?ZKXt|0|BhLxVcM6O2`o^et^waO@tY*F$oV-^ywF7;6b!|wv z?=ff58`Gz~>FUimd+a&2TltzzlD2Vieqe&v;|?D>_JIytlP{ge>YhHXgL*$S=(~W; zxrJCN%c%Ptue=`}^M`*D0nijZ{rlQDoK7k=wHJGx+kdOuut`SJtNtS$fLHLlz0u=! z@*~k*2daCk4<7KL2hv$VbXG83vV-{VeD@le?HVU_hMv$rq=NBafzj<(L1_VIEG$BIpn_i-h{Zl}qr%8k+RW+olZE z>x8COkky6uD7s8EofAXHV(D=B#L@qgt>o@DsBt7eV(TaKxnj8WgAOv3@UbP7VZO_}TlV|9T>fjMlPsP|*T|yF zWYf=%iT%s_B7t7VcY1tzJ7q!ta6zoEWMKh-{r3gEkjVARQsv2vVY7W$4js#-gKe1y zeRlKKZ76mRDd^#!0Cu8}Xo&iw%|@pA&`Q3qbWp;>?`P7vWriGYzWg=xmRz^`3Hj=} zI8IstomEIznht`$}$zYa<%=)WOul)qjir;YGnyst(1QH zJDpudSN=g~xr3yjC&;=tAd$E$9}=|5vqm_O#43EqoiFZ z$jz&k95}y5&}Vm~d6{mz%==FhHFWt}x=bCNT~B8@iL?m62W>AnIIPNw?WZj+oM9-; zs;QjlNNS)%;uWwa?d*E5-isevosQR>BG+j|G}4uu=nBnrmJ8WRgu9A8zkOY|KRtxa z5x2OWd(UHU3mvc-&_QvZUnOdWc`V)wE0VbM%}C=n9c!gyZFH<1))Z)}{1;T#PsJXO z-uNov<@9hQ$5QG`2OX|-hu1$B8=)S#%2stBho^iGzBcHjV_kHt8yYK;CCJqnnz(nJ zTv6lK`s+i!vu?+tTMu2Wm##J><|P`q1YzW=HD+oWW{(y3p4;x5L+PWdWs3k#UNE%V z=bcnI`J>nSD{70R?frCY04j!t;$wQfuhDn)v{ZFYkpBAB>WNK-IM25^3=( zN04v@7CGJRd3?&=Al5K6gATb9ZZcKTR;K>cN=>gPn&rf`w|FH-p`Q4fQkL(?i#wD= zMC4ODm6op9GDgS7>A)A@zEn1L;3a$Tv1XF}g|F+v#-jhgdc{xPGuyu$nkFUAAtN=J zn-ZlX86e!!k`&D$-)r=xT-4lXPr~4uQRC*b4qJ1aNa73b_5|*m21X z)$QqaT9=(`Ugpox6=tET@NGW-rT9Ia^Jg}Z;=^_Gu7#YZwr9TjJ5QHeptBe0tiN=S zo&=qQRsrz!L(20@Mk-#bZb>c}h+os9^pc@oftoXbU819hFDK;Pfz)exk-Gcq?(bno zrYD(NFxZw1Wh;h4;QxqTckE*?Plyc3W@l%<_i9ZXvu2#KVaPZ0*)qU8G1At#eZNow z*_YI}qbXG@ewm@(^^mUE3Ofet6@%3$$Q8!Dz^idFBzJ4>mosYD9)zt{v}dTiX2>`& zB$I_uN4ylEYF)qY1hoSDhU@NJ+j_jMGc)W2JC6Nb{e(`HGXs0W0OBLpL&;Cb77)Is z|4A$Ia){}V%1Rdo+m#{X#$aa(q!GB1Os>@4fn~Msd6oxL&p)Z?{M3vf6w!=FcUOk$ zmUuqe_~D?VlsiK{8J8B^o0t1z=9FyuzKnp4ZU%0pZ30N>`uc6r?)pm7yjmfvZw9aQ zU_hb5S5GOezUjqa zzhlT%li!O%z70+3+>5%}#T@yVAAhxcGtYa*8E=NF4+B_L9~gk(gws0ZkqqT1hGH@3 z*a6Sa@q_8*aFHU%hCNjZo>SM?Ml;mx@O@EEV{f0~Q-As#bx1$ZWo1AN1B+#Vamsc1 zL?n=j=Fe(rD(Op(R=wB!6UR6a&ybuJMiUrd>+3%>Kn841)m~OEBa==&c)3I0t2~i` zePRH$B#FUee;dEd?G{LYz`z*BsfX?$HkTfXj95M?Ij|y`p&2S#Cycm^e3yB!&27a& zi>>ymf3>!!FjP|+oG<*`gmyZ6G$_G(u!DF1>FTH(7QLStGHDFiFAU8&N((>8P9oR7 z#AXLjJk^u08yzZ^kJn9S0IoFy#tVnD?nVmiW@W1ERhlIVjti%sx;yj%QbFr|&g9SK zHLsFLXdiK`y`0HV%VMZyGbGVP?n}mmM(fOlN5_c-WcGzd4$;zgln#;iQ7~l!J z<59wQTWQ^h4D!S$zG!G&R^d=SgZ-6px_}{XEfgtQBvAD zx8zzsi+-(NTf~t4#yDNfPz@EIO*_8d~!&0`%vhBa~1$0Ay zFtBn4V8w6%mjB$-$$QK9fA$yO6UIw!tFK^ymRp=S5?*A!#vzBq2g-$eK>ybHSz$ixQYmT_(GD5^ET$wG0rHsbj$PMcVZ+ zJ^u-2BY%m1?r!@ub$jdsk81Ys%aaWZtdRjGJU8Lg^WJftOzicSj(>|>24?LGniw+8 z3`uJ$Bqp^k#0B?Hdu+aGTb&rH?s~n20iZ3YdZh6UWzE+WM~Qb^eM~CWu9^@-K4pzK zwpq-#W@yb{shimT_cueWm7&tcV70@P6N3E|zjhT_`8LhTL+!Pzk%M=~HrlS74u)JO zL%xfl(9JjT(AOqYm?%L^> z4?EqPYH+dVzJUBUX29|xhWao=a)hB~P8fxWhBHvKL3|M5oSj^GQ~tw1U%tJ=uY+an zV+?GZ0i;3h*+q1#JQYgv-e+%pTg}e|&G^I6m|&<)GO#Ilimyi$G`}HDcK^#huQ-RX z$4A~9luKQ1BTh3o4T6BPU`lKpw}0MdqkZ$+iNmkj>^}=2K66QviONS_EXh_tw`R+~ zn1PwX031g*zIzJkO}5iz$Hc87G;~8$`0vj#)aMz%LvjacexP1kHiXSAe za?k<;TVz09lhcbmo36FY%5w#jcOGPQ|{R@<(d%KZ2MoWti5+4XPC5=LYCcENP5MTvu7&% zi@s)p(uy&J@NV9LK`&PrKSJ!YElO&gcGqo?DRN-Sxu9?c2WlPr{;XK^gz=p%&r1i+ zk{p?s6BBNBbB3?u3mGQ~Kub(h?eBicsUedc33qD9TAFW|oN0c4B67&if_KZ;H+=H@ zm+rp&>Zi906LV#1xH0A3nP4|Z3VJYMOTur4d&{j24y8AS;$$q_KdURo^+>jx%bdPz z@8-#r^J1#KV@kefs>aYK`Tv22LIfq+j|K|p5;x@5~V6S)GBj)U; zy0jfnyqR)7Ois6O5kK@quJRAdkl78rxy+f5Zt|BjJ}}`zO8AN2W|5^R$!5Pl;fG4}1tcmrm)aO*9&dyQWvL zM7A%8sT9n_Lh#|7M1eDdR54V>dL0vO?H>(4q0wdvLYWF-Ox19vTC0!^Cg)yT^)J4s5N zsZ4-6eP(i*+;B@dl3MXd!)IMlqQiK!u&(=g;aB_!rOiHmLd}m?byno!{7a%*8Wa1% z1OQwTK0q` zCyU9-W}fsGFc%o-hbNp3Xnrwb()=f+)ks%!gqGwmv0Nq|V#SyChw?$*!VbUgPyU}; z$=xf4CaK7b&k<+RimPsCZG^x5u3zS#$JEGYN+y!fuh0Y?$O%DA`}eXVN%3a{C4TEH zQ;@i*uTj91Eo90?gD;v+M^+1W{B2!0uyXL5yqRHc?zSQ(_6?u!#V|nNTkqNn-!)#r zyLfeN*tOCN@AaBTC}Sl|tdt3i++O?~&5^9paj9F7_(k1yRe9sazu%eiWlXsrO!ab@ zvT%_$FPDnBO#DiZ-op%sYb-1yaV}@Pf(hEk@V0*b^o5~K0l(+hUGYEZQ@p2=2>@NZ zsS(oYBCmJ&^r%vuwMW*ER6z$bfy&M`O#cwPL)>g?*yr9*PyJ0cnf%4Xs$m@n))JH1bB; z?mz=m?j!O}2>Cb`a8&0zPp$cdKhlxs7Q!2uSQ8V>sZTg?dtZ|saa?Gs#3E7lXqTbg zrQbv(XK+?>w3YZUpMNLq=jMj-W~N*VlWimM8~X5`K3oh4n^RDrnoih&*C`2GuO?Dd zvsNn;Yh!}^88=udsq|C8cu3Pq?2<*g(4N8l?MzMwQ|&jY0PSS{6IJG3*^4xt-D>&e z&fWZHrk^kOUN(5v1r1_K=JCNLpNL%RYb5fnl$Q3Tlah@`9CUk_>@Zp{yw1Ji11JMV zh?yL=NXVzP#rsv}Iv5iz(*VFr&VMXAI+ZSs{!3CQ1&)^tEb zX_N^z_ZTeQhc~#|1jrLxM$TyJ|KsdEprTls#qj}l7g*BlE^&8fXVx6|nsY)#F@OlD z_g-^OC@SW3$%=rIqX?2SD58L5i2@Q-keq{v3L*j`@ULF)_r2$R-+Slh|C~LidV6N7 zdwQy?yFypBsK5GLb=siQKBJE-`hw<6KYR;FL5*}ct0zfzFYI*>r)D}EL>`cR^OXzH zAE4exr|SB%w})?DcwP~5V@bf90j~ZaciRwmO$KXc8y#FGTM}k2Sf?DoZo^H7xm@E1Yvr=YQYJ@9}xQ^m$f~FGC$*o}t#8`b}6 zI386$%X@}I%=-n(!(&|S7>MeKGyS%on0_>Wz0tJw)`v4ZFrk4 zl-OYsH+e|eb`dZ9&0W8s$?moN!cDUa&eAuQv+>W@Ui7`qU1+8nd(FcAYEt(tp2(Ib zy3K>}sF1hgVYd$c2$v6UV`RHyQFFuZ>-0PvZg2NyM%eST9eA+X-;sqyWbw)!!(e@zy!>Cb;l6yYkl6 z%ltb@EPi~RpERu0`ID^=Z|yzaYG0ntE$RC_u!w*_3URX` zX{WK6&EKr_{7fk>+*=iTPT*hDd&`e!7{q~nVgCiClm|ijVGoYoJE^WdYVFU{dcfNj zz|#!m>E31s@!-hB!9&K4jHj|qIDYBOqSd7aAAVbS%`*~U)F{3MBzM8o{OCuR+ybJ z57^SO_iOLe(41f&qi@Rih6~r#JvBSSQ$Ec+s&L}g*9e}04FeqS^I8Vac1=9B-htakd}pjGL$6Irx>wRPDOAGlmCYnIhD1hbM-`tPPiA zmy_7AmFD@mc@VmoQx^TLEMn$fO*_@(q^ZX|Q34Mf8%L3G{4W7t_mj}HiFy z^QN@Wy}PV1-}5$arL3gBTuI@;G>qogY%N7PQm=eXWmP- z(l6EAf7oB?+%CZvB9o_`#nXSzGsxx{egk8R=~v`xHzPUsN!O)Ar{tN;)lydsSLN^w zb9n}Nyfyi})wOazk`Mwhxlc1pO?H@NcQI_CP2@FC(*hnGoATn|W$%~Yx-1Yh#&4Sa z&@}0;{|la|5Qtf}2!z{8kS-P#K5ce=F>lRFo>8Sj2@f3Kju;=? z4>6P-|MGd3RmPQQNK>#)^C|bbsetQ6aYfUXE?gMq%P{EJ6|=dNCn|%{Wt8*8=f%#M z>_2}Puz#17ICJXrgqYK2J31W>KI$Ey;nh)P`f}Opvgb8~Z`m8@B6`I$u#|fZtsOcE zawq=SaV+zwe@|842GbTYd-|$3JW&M?ydA~o!l(Z6rD2NA`GB-`Xun&=<3{=9>#ogVatTa zn=7QIJJs^m`!Va_yPW!w^Kq4Kw$s?Uovm(0BNyf_T@hH%6E&b06I-gP$5C~gmMVR! z+`Z-GfwBn6Mjm*Fg1&~IyCVFWn!(YB`Muj`&z_Xr#1l31K=cy3kWVbUG1XT2aOllr zlb#ti+^A^bt^cI)ijC{u@ED43PO4owWBtudck|!2@{HPe1`l~fbfEmeS>cxtevfn` zW#r~zl56YQd7=&;c-MFGP z<7R2n?WQ9!AZ2vZt~a*0>pf4@&4aLEVh*tOaOz&U4R;({W+!OsFZ|&Bfd_^Nz&J3G zqdjb~_OG7R4#8dK>py?w8Ghoe&Sdq#w1Q*)pk~dPuy=cG@^7=*vB%k#SnpsjPyaJd ztB*I~3s0+`x9%xqTS#NDzw(d+9cU8H9Rmlk0eE`fv9q|JyiWL^4aD@bvgPA895lHx z$P*2rqmVh~B-B9nsUqJz7aU9<{tz86C+ z{mxtKgbZs}AA7ciRClbZI`_U|bnwjk5tu*tC=fWr>@vmQnJk%@d_L%VI1D5A3@d|M`9Xq|vM;li!>3MHYOB z%5#?sT}Zul`KaZ+l~lCxNaTv(H=dUKZB~54r!;FmW(BHI8~zXV1Gtnt*k#6P+rPVS zf6xSC*zMMrn|$qCd_!Bl-fg~?3q+7Ywq=;!BCFGRpYE)mx8TZ=*1VGpZ9BeBxeUk~ zZ?$dbO-gf^d~_z|S72c_-k!hSfv4OK2?EA(|ALqn}z~)eIQ#f?W{z`vI>Atq=jR)(Z zocRVXXfAvRdwmL|gpL^OSqS^;-4pT=tG)XBwz%>^9EYbmx3(@C|EObZ0yk{Y)YJmP zjW2QsggN;kLXb!1HyHnxOH}$jCIecZTen( zZEyZIAHLo_zNRl9e2Z(DFYz$h`=|%T#}2}%%zNW-cYfW0Ms`vbQT=MSlpkN@&j(h zYW*C1o-knQ_}3qI3a1nXOq8kM2k|#2(yi$Dg^O_;=#yJhZvGbGQZQL_xSfvI`c3f* zn!P1q_YJ>mrn7!q7tA*d;ja(n8{U!*gDyf=l5=+ziG=Fsre@hDJYRpw`Da7)@fCiDE zkzjMD!p2;~MEcZ=Uh)8`8?$~J_LG#S1(HEN!L#; zV%-eM*u7xdlm3VNwIvKtOHWkGxu+8Lr!lVa=;ekK zDV5>5q|Nhm=4OMy?-_4yKTqImJ^=#e>$Yg5GOU&1aQlH3k-;uU24+#0o2rG1j01^$ zh~~KyU+R|ix&6hUywtWPt4(vTaY=kpG9N6(R+13<-^hF*{=@B}mYLuZU)@Bch=oMq2?X|R?bRVr}0 z{^ioR&zC=?^C7(ww5pdSoyGN+k#D=B$Vor;Xnh8M>st*-q_ak?J2QI4ig@b!$Foi* z2GN;(?JWNG7UpyK4v=o=Z)f63rW(|xm1geUTn?veX6Ke{zHSa*Czn5=6KA8ODfp!s z?vYBD?gwRkv@U(H?$AIU5IP^i3W#H&4r6gywResA=S((k=qj#d7w|qHc1R0kncS3+lrTb@Pq-ZAGDXe^i`O#KEKN- z$=ovIVhPX-qDQg9vqZ|{D&23!r!Q^qPsnY*KfR1^RL);hC;bX>EZAxtItWY7&Cr?e zCV7#?A9Px_@QS`}c+H1|Y1Lf(4Ew_|+mJsiV=o)7+??yz@P@Bl!8fYpgWSVzkdEc! zkCaB<>*UQT^sE2tb;`S<`RN+Cx}M5PXA{p6^X3EJx+lv-z2)mx@%5|u>#P-mAc8v_ zzT7Qa@3W5SS2h18UgNfLmT|c(UbfT0X@Sl;y^3jjPps9=`Mrh@qAI-FilpA5-Jg}h zmafR&Q;})Ms^uHi@xh)H!vKNJX;4XTm*vLtsSU4B=p5IUX_LYavVxCI>a&)bb!%cV zzIW38dY~A-VIyC&iLYPBXkaulnjq+#^5ZX8x9`2SdFZ?G(Pi)NlFfXh7GN|q_7@er z{#Mnx+nOSqyME_FbibRXw(_;w_?m@GE2akiY2o4>w$(15jkIvj>~x~FoiFO(gE3Le z?B4o&#HC$POCOov;kCy|WjJEVrns!%+r|9ho%6CX>UkDN71N^g7mHDPz|6PBt#IVh~L(4z%4L|WU2ROYF-#GZ99&PK~ZO-4v ze@Z{|-E^jGrxeaHaUr8_ERehrpqw!EUC2leU(^d^sq`60+Z4%*V!d%(dDi~B-fG%c zWH-h>xY$0ikFWWK4{3D7kxd`$*wkgW#KeJck6)>=Wz(*H{`wF)xUD{@Q!d?G($qIP zfAb9gYq_GYeBA-Qp|wH)6TacOYl$%)O(DUy%8p~i?z~fjeElK5;Wz%;VZQ!%{^k+B zp0zBSJqnb+=MxTjNAWnXNwZeC#;2`I7X&#5`SxMrjEbF99$+hFny3LPR z%?-U~MZ+7^b~sJ^da$cOed336Gc7TDLOY1z&cbCAREmNVq3ui<#w!fTftb5=cJl2o#^}r9JEiB^4|{Pum2l}I>sWU2 zNdB(f{NSlCJp5b;o%=X=#$PFYd)j^(KUaCgLU+y8jkqge5QxG@G`-hd6#KROa9ZNX zC8-5Am2QN-J7Lg>o1)M&DNS_uWt3c%p0xD3(A38sguW-C??tTkCNzBr$nSoSfWzky z8soe;vftf*B>=1awxB@H&PQ!;>(eKJ8zy4Dgy=p2%-@edff!6pLAwZVHsP4d^r(mp z-bWrrEe(IR^QAu_dO*NQNwHpNQT2S~rec=ywShZXX-AG;4j{B*q^+fKwfh4qF*Bo= z{@H(YBj5Z58AynN2*{~YgcxP?7^|*%ZSOtiY@;G=xzjztgeZi7khh`mAx+Pqm|zF) z+pE890r?rAUS-#qLzeH0rh?qHt(%W5ITTLlL=f8|i3x=`bRvG+`7&OsIrp;e22#rD=9^if-F?hwd6azAM-7LM)*@ zr~ulpmF|}pE)HI$82-DloRw)!T$cVQ8XaN0#%9#UXH+%bapeaZtXMysM68A2FEAcwO-|x#iIc>R znmYAVx7CJ+4?5>PBSa|##AZXYYkwhm^X_k7;~OFu%vRpI3QHw6q!F7U8TE`ZFhh3r zEL$`_n(@%nr@!jUtBL6_@6eWe(yN-^yu$QYk1C!VzgvEUn?Z;&3CJBKCiDKP4O(|{ zY<4Y8k=c~s{$Oqx8&5rvT`(}-Y5n74Lv_59CLLLX?hCYL9*GS*P+uN+{v2aZ_F&zF zH_r)CHX+I(K(CccfMxbyA=2{*2&X3w!wik5201>a(rlv5)BfNc(;R8cC$<$3`Y#Aw z7iPC?u@r=`obwEuvwn8E>iavovL}v@k18be6OO}{h@N=hT$f{3QcW=d?psjr-`l_O>R(qn zT?4H*&eC7(Sm#=$R7x4JuaLHu7mxNIXp;byissnb8GAtTXX6-z;<+tNS zKD8B7?W$#)%ZT;m#F|%tkpTTM9E*NKK)x?Cmogw^W+f^jbp8p5`TszxeQa<6h6N<7Bvx~W<;pDNENf?+1X1`S0x6f-HY44V{brd3jx7IThZ(OJGY4`{xyAX zqsQC0QlVGuuCTLf?zR!4b|3-i4gwVPkj)FZ;_2v>Uq7GZch+=O$+e~fMw>bb!#dUX z4E*xV3nA|a&3qZ~qA(Cm9sfDUOmM$y0@K9la!D->-_od@y)xfL z;cH&Yq|}t{x4He;nZe002f zW}OI}A$`cpR=S_i?vf5<;uW0Z>7N@9mFpb2e|_t$mJn|){x(`_*Lf+0jaSDrGTK%h ztaF7l?%x+}oRqjAaIfy2_!8Z+rS`J8ccgVp;>q3Xo{p-uDeS48`xVwl#6|C}IQ@J5 z!5LjM7g;{o>mBrBfY2|IYEZ-nHp@8IK7QcPHh;=^gWcQW2Z5y%;HUMC!0v$a;*Sg< zD4r1DXuWa$32w2ev)tEX;cwGB6o(1Xcl7Z`5GNM9ewW7ob-l)?Lia{M^MtpdwTYvI z&KO}}CRk%GnDAAVjZVaXTzm3yLIKZjNMB|4mAA(t?YI^KO-sR+0{Sfp$cDY-^AoRe zS!(0v{rOn-ngKh_N+7Zpz(CswASB<(A4e-&V&0ey9J*zC`JHU>MuYoNWvaN@%i6DM z^GC9b&$-^VdRn{arT}8yK%e7vjP1Ohtu)zkXnkLT*9O^J02%ohNa!Eqmo@Gc$$x+_3b-A5D+g`9ah~Y+uBnSvt#1TvTxBR=3DydKY@z3kf zKY@|IK(|nQ&Kv(^FugY<8jC3nf7dr_o#1jD6W^hpzGS(^n*CLq9CseG?OXjopc5d_ z4Ck7o)1=cHAIuZBCqBc;Khz(pGPO$R_{sds)YKafL+X#$oGD9OQXVJ}1qomtidU*{ z7S6P+`#$f}j`uB_;nw~+SfC#WVSsUdOMla>;2@Hi!BO~f*#AL@Kqpk7mq_L5h&JA&(luh;RN`p4;vZDE&ML;d{11=}J7nvnwCQ28Jp($C}5!%e!JXpsRq!*X?2 zNoF=tg4NLi$mbO!fFSy&M~~z6X|g8o2S79s#jgzRFU-81X$* zpGJMDx6PW^bM7kaHVYpM)+Y!iWNWbNc(`-_trg)XMq=d#9$^l1n{A#54Ey+?D6S4B zDAS?^!RvR?%OaD%yniYXB??4Ih$fQ-m_7Qie`g67dt1)8iIE}I4hthBD$P0?E?uO2RIyZg1j?2l^VfWji*P=VAV>=>j-t4y0JRbLOO} z;Dxg?><0UsN!!5;fqtgIC`+&=i&+GT-a(SM>CV_BQ9%!1SG%u#`-w`u=YqA_0zGRP zcf}k5?3TbQ8E>vFe~azyxm6grDd*eGL_w|q{NDk&QFsTj(`Cr0)3oAF=t}0MJfIb{ z=C4}sFn(70WuwtW*T~l{=1cMgq5_z&(k}#X!o$=QvOGdg6u58Z0n5w5`xl-{tm7%y zr+AOlKv1x5<1K3!*n3@Z)8OV_oV%n@u)0XFx>zv5m(Gr)9mf?No4hpr%@?2YXi-59tvtW+Q> z6F|NiF*%1GzWVj+D_aBh$9qRs)LvX%E?DzQpkGLP4RiCX33T%08#G%d8SWfU0U3hkr+=!t*sh@15HBpyn^r$+@pRDk^FOqFMpi_r+a& zHkRgOW2sY7^lI9;C0UUB_fG!%Fn4CC&8u}2IHqkA$u-9hSqJ`|M-Nr{6 z1?!sx`pp8ZAXy9cpehKT2eM?c%|fGRco=Euxt-qrx<#N>N^b=mCdTJaf^zqYR%zRw z({cJG5M5S)u{lw6Jo@)tN7UD-Mwx7^alC1JCM!w?FS2M(o%O0{M*8w8^Kkup58DK~ z?E;++0fd9-1U`&>anN>5?AIK;qH*_~=>oZr~E``8}K zPlB~Qf=w}U;?QmleJ?6PFvk(C>^+Um?OG1K0?}t63iUpCgL6kAT{46W1GJ5^S`Btf zlwF#gkg0pQ$F%5+U`szRD+n$Kn>=d8z4--`Hr4Oa7`u44%CG3F0FHRUL$iZolBXSO z*i|iWJN;n(D#rnVXixyF`;Y*$Lo$e|I6g7l*y`g$?RdR-XjZ~h^*vizGrkE#!vb)x z{0@X8&N>hGV2v@&#>#SMPDJe6FDHjT9}#FhrHumVprgH~#QA!b-`z3d{7%1;SZt=b z{%XR?F@ea81YurmmOE`}S@%wJipbN$Tw%eM+gx)}WI@8g8%q+Be?VU#N&=dM%@>3# zKlfDTZ-2CrYp`y??|yXLg?V!GU{}Zr=MIn5u-vOPL3Dhy>63pQEq{g0r^~{x&c4^I zNCRt9KL#I=0ZY)wH^R+spuKguvLxMw&(JfLFjt)U%KOz)?W=sN(5gB;A zpOAyEr*~-9UI-cJeRG=>*^!VJUTjI}iZeWN2HmkSBm z5nyCk9$R~SDra@c6jEWQ`y$S`lG<*hkvpkb$q$tk>+7D5bMmTnb6-uK4UnF)Y@ME`Ga9jD%lyIf=_no29 z`SnjhX*@%&{xy~Jv3%&s;>0i);yx+zBS9K)MDH+lN>EGao$PYOi3u6|6NIPzNzp@8 z|Cr3Yls8^sbEK-Nt2t#A{eT4V7V5uNKHYD8PtkBhkC@FGV>$MQl8_<-a13TU>{Y2e*>E&UJz?NuUPu@z z3Mav~=#SP0ZNXgE6~Eb44s~~}dBJi_j35mj5n&4W)}9j08#1Scz02+?_}dOXjwIJa zk@`1@_fnu^+MC`>k+;%_1A4yo2O<}%MU$c!5~3=Jy$#3&(&7Fpl}e406U!ps(Kg1C zqBwXFq$q&|&s%ZQ)=0P4OACCL=+sl2)J#vch^M4h0m|3dv7p6# zBxJIEeud3lyJG<=iKI~yscRvP#ui_6KFi{vyYKHC@y03H$8(aCNyBHPUJ9v|N@}N( z`mPGCG%sGZdeud*?!^v&M2G7-Js-Oy+bYTa9T8Hox^V{-<^M$PKq)} zQL0oX5FSdqD4z49C-a9GcRvSOI2)gTm61uk!tvmsD57}rx9x@3qD=N)KYc2T)Ot?p zW~rg<=J-L)$=aVnEagAGvf0^Ky2de^)XX6@-$~u)K(M$MO2@X{-E%SZg|^;$d+)b* za!FAh3AQfrjBc6OwjoR}ILN6b|IrqH`Hg&1zkoD+L2f7{*A|hRib=!UOg8%^iCN5J zBfX~NCl6`u(J$D^`>*Go_&lq%gxoZ!0IR|+*=>VQvpYSly(hc28*1s7l7{Jc8HwE% zCvX=Zg1+e6Dz*QNcVT!;+QqS*+4|+A=oKk?O@gZH4GHHP&YB!Nf8dZf$jIvOuN<$9 zm3u4H+fUZM(QO-1!x!07%Ma#$jWO_%s-E{@UTY;CH=mH2J?(gGy^}|}Az`;Iy@K3U zNp3b*cuQh7`(aaXs*1!ckL|<_YEr+3gy_k|QlKh4%s=F@ zMm@^N;(JM6( zoSNQd%u2^;i^7I`(N_j8ZnEioPl`IljP(BaSL!}XrT@Hr{!xNxbf}xuDg^z%d$97i zunOyB$&l%aTlTX*d>|pPF!Xg*Uu5cx4^Ex-%Vd}lFi}xDbo6H%q zmU{G&Ga0d?$1LGG>pQ#iYkt6YhT^A!!g` zZ4XVK6cBED^LzD%{TE99n$tsq>s2oaNfzOZJKndyyy$YSic8IY=S-QGPQ9N=Fkrw_ zKH-Oztbs?&FrDWr;u(7d7o~b+4P;=G@skT6P?5+Z`5(1wC+%vcPR*|?MQ)3_DML9 zYQ-Fr$NSCVWbaG%&bxAJ#mp_dhiy)j<|C!=lKAY-dyCJ2gXHy)S=$L2r&G?<8Vg8t zjO)z2WiUmD(z{p`(-(!!-R?q(Tq&^sxKSX+qOdRG@hY?4*Zieh3u67SEN;^RSdMQo$GTyQwGDI_^>W zp18dvZmzT>`I)FdpF1vlhrq>Xqc3H2pVF?E`iOiqEl-V8Hd^!74V}I_f{+D&<@ixs z{i&@D^am6q1U+^x7osdm&wOT|yYis&jNW&x_q(|P&#w-P9?}K zifrR9)Y_DuLT!FZi=p9;>T~_aZ!1{YanX29;?vxdsgzL~wGPhVNW)h=wK~VkPq%7? zM*H( z8?ux-K0oqMdOR-V&9*z)luiu^-(&XLH@15oq$zB5W!HF}xjrq2f_S5V@UK+|k5ru* z*s^%4)JLXCwKqfWbR#pQh(@Hhh`4xm399{Xz<2bb%w}R)4i47tIim27al)+0%R6@b=mpFCtd2F5ivAG$ubMh8cM)uxZgUOXrko_FGqm$je z)ckk%-lvx`rk!~sxx9=Ll|y(TLOg$pJ|yk-S6RRC+)!}P^kr+uy`n@mXxnLGezG_v z$#S9H*sh)9^~SVcQwDD+oeIjJl3Jao5XyL=P^bW|iPqawTP@JxDH9VUjr-BJ=%>8Au>Xqc z)a2uhFI4Lg1=UlS{l8PVK|~fa#Rs`<$9FurKjZi3!i|$AH&CKRghxD^Ryyr7jXQb& z>>c%d>zNHh0ZkOdO@Rn&VY?HY>egj;yWFa?o~j+E)C>cLgaQ-h)YI}5cjCr7A_>EL z#}~Iyx~-IMyj(341g>S7{-2$!#{XG+R%2DzxR`lu)aG^y{FrYkxPiSY@`YsCg0NQ> zt*0VCy!3zGK^b*Yy6-6P3Fv}1G6toaSiR(h&9RPjo~^c5O%HGXIR4RlN~@dN{DE5c zO6DU>35XD|&$t4)Ob3^8UKFV(C`j9=XSS`4eEW$q?4iINph4PQ5`&kRMY=pXrxD^BPzYbK?T%>JjD5%hD7D`Ya5N_R~~p(C3i=-`mS(-3jwG4J~HR& zN4XbvoUqRpSg1@m=O~1n;Z8!#7MwCrx^PoGVE13jQ#L2Zm33`cur+%9CTHOq7vXAG zp=O<|Eh#>YQ~3LHhNAGV9bvIHDG|M%gqzUNT{vMB5|&8fS6j8x$#_T4!r6VcLazxt z5245$F}oMFbMA$&QoZ6Fb$il@4Vm$tLO9O|^(WS?puLPNd;fW;HOyhnikH@O{MGG! zS*e8i3AL?~TYbhPG`xg5-omYRG#?>IKydWnASkHtyGL|Q>OA3C+n$aCD|KbI-V=&^ zg|N`OAcIGggeMu3v`-W(KYf-+DSZBYp~z1N<|y$d_fzZ4_o;uyC~qk6Ut+Z)C(U07 zG3el-;qYnZHO6`8`F?e4?tQH2et^(Hy_u=jojKIqOV6UZPQLz={xLwfzDpVu%M&XK zTZ67-E?DHWBXi^L*}8#3pl7(>`g+@?CAnHh?$x_)Q(0Zg2oge=JE&jvStm~ZP&nBV zYY;v2<%9#lLXjrKKrQSvIC0_T&X~YR>-L#T?;Z~kLhx|7J;$f{WpCO8y3yo)^Ao$1 z0z!q_VZsS<8f;fKzVAcphbMpNaFWy~H*0NFvkw>Qzf=R^>r;#IB)d+_(dzJd!%`Qg zr$-1ykwVZ!_9H@0n{h!Vw`YTaaSprxMp3>)lu#5c1kWY$EP3H5_2SL5H+L`zR_DA< z*P0liW~>l`eg^U2tXaX#s`DeZbAI!z**qmpcJlK$q3EFyY_j5YQT-UJ_u@pOEerQ6 z8kWN?#>+czqt$UB{KBe3ud;=r7j$?_d}vO^u=4sEcHQWg$CsCN=LjJ$H_${w zopHhaPctjdZ(pg>y43Jlu27UGgw2xJm02<=Qek)X{DDI63X8{SS7zr6jS7Si#_9#M zxbGBrpn#x?t`QfX}OL}Vq)ux`p0~AVx`lUjx zGND$v(D0Q||Fsa31KY~9(%!(hgR3#}$90nPpaVfBdtaT@yxowM?0x;DW}?QnBaH5a%}NkdY%oAx3s4h zaf>q{%b5?eZ+P77Dxs(vh>#R}1%%zMY-zdBV;2|g=1aE1SX&q$OxTN5gRXcP|B|K*? zTPB&lu0#&MG5)dJ;+VGRrHQf9^-HD9-vN^n>b@6hbqkF?2o0lY0n8_KTNx`x7mkmJ z4$d3y%uJMYFnu#e_IdJ0;hImv%{K`v+ma3^>+Lx0D;g=y|131{(twG%rQ58QFg5x3 zd1KKz6OpO$;d#d=Q%CoiQec??r|g5D=n|M@wo)+->w}W~u!04{PBEO3#z`geh1Ig& z(tcb=POds;!H~dcNl@o4?Ffl};Gcwz66T0tBp>r(U}67k@-T|VAwr=Le`?SdA!?#V z1nr7JTgOJ`+_Q-GrxoRkl(CmMPlFJKAIV?SAImTRvj~!7Qcu$H%i@?f!V-6 z3411Hhaj}!4NxkH@Kh~lV^OFsUVuH4#xf=TIZO~}MRXYQAssq<>7=pf_>bJkB9vPk z`DcmXcdS3~L5(^g)`^Kcf)Lif<4^>pn1uRj`u`jW#-;rgjyVW=-rwA(lqjSvEhi$@S> zuTUCG`RC~U?@R!tKmBP`pP)w4VhVgtDdviOdg%WXUUMJ92<2`M|w& zH+DSdIrk%3$;AB7|2Sr)dLOGD0&!vw;J-vL8w-;AWfHEUVGsW~TK{4PVhJ4uXE!)xy4{M+%@P2m65j17rUTP5tvbp#}5uKG+GE zp4xZf5GwuD%YO8z6M=n0u#1D4$pbg=Rec~Rm&GigEZL==!Nda5vIR5L7HZHt-9}d) zQy+zx7b;n@dIXq1Dvhuoaj;-iGUJS>VG*c=7ELTt{+Frl>90TX4mMQuXsJYQ8m$@k z1U?4sOQf@~=f94s2z9-N^->k9gc74iki~w%@sf|CTe7e!gf^3gRii7IuF=;h`Mn-Lr6Mc2~Qu|9y3{qhm8jY6dq`aKF8 zM%SK@*a)gAXAjdbGlgINES3s@#6|(Tjo=p&yMth%I_8U@n+)cMptCF%3{cTVshktT zeZ=*~oz&db!qgmOy5!@Sqbz%7pduCycSyb0XjJjmz+#}xNQO;UI0FdqdUQ<{Rs*T`buMuqIVKo5hXxoPPB2Zi{st;DcS`hTpz}f&x zS!mSK99h_VD8o*{pN;jRs~NCmM>Q?1SOOdR^&uHXsFR2^PQDNuMF_LiFmuIU9$5=T zEd4)C-@o^}=S)t*L28lMWFxwGXum0VCLTKX(`>d;gpSm6oix5GVz;0ynW6et3A2L| z&09JZI#?}>IiP=o8fh@EVc+Nk|9-oJC#cqF*vR{k4H|<)7{^>ak3XgouiU6!!jBW? zG1}CF6`Q!BigyLhf)J%jJW8pX5v7nP8%sLzOPLumRl*GUaDF9Gtyre;RA5f_%6ahW z$vdo%3S}xcam))o^*`V1hcNd)#YgX7AGSbv1zA5iC$$GMUtmAq2gK#X>{rKPpkAU) z4od>aC{QZHzmlbRI1#3XJx5n!IamRLT{Nr^K_HR*#@9$ae@PX<#h? znT;Aj%Eh!4`fY_cW}$kmx`jrG5Nk(wB$C+2U+;bodel-C>qBsajeSLMND(trg6|hk zO9ACSl%&uc%7J6*PzI5)n4ZSB5MmziPXcC7JKFhL6OSqE9;yK$Cl;XOQw?i6_5{_y zPV5i>sg+Hd+L7b@#>ATU99)4?<^~Jx*%V@Ks{IB!S-S23BJqb3xe2@>=HqP`eSyh z`g`?H>b>fp)xW5JRWD)J32N94>^k;cjaIgsMmPI|V3-}R@m27J+0Pskd=r#txR9ev zKh7;VTe(h+XPgYq12U82Pll2Kauu9tas+&z#xx$weTT?tHp;c6FZVvzPC0?wOnNFO zbHkNCk!9R+?q~89_YK!hevGuBJmhatVe-YwecVU#E>yYlWBIS#PUUR*QuzStlkzRz z9iAKSyK)c}MnzB~$`&foR1W2(@|fqX@PwDd3swnJd7==n(o6MG{ZuLM4evYEuJA&o zL!nrup4ZNM2L^#pDxSg~m3u;e;RB(gVxTZcILM0<1}OR|J{CR^j`7U-afd3R44?Qi{q&z+CRgVLhNBkgrzB6nZQ7 z%YLGJ@w@n~8eN=7;M|v`>7M1GpR5`2}N@$P@&Vg?33{EX)x-AM0 zSf#3%4|+C>%v5Vo#RAYBnfxXu76v6WG7-}M^8@{7`TPKw6@OaKqY<)E4hXJssEOxN zmh?&i7LO4739u*VYK;=e>*=V}EB}#)Jx8T_{)h^e4JGL?Rti0xmoHb(?Go6N*bAsr zj_3Hu`N_p9HLKc4JE@tof)z4h*$fu+v8>r{>;VR@N_1tagO( zoh;S~kQT}*mkn07kjLJ^KdC-4Sh-9V>qB=~s$ioC!oJX)4G=nMjUaTz9zjPo<_1s_ z$WJKv z)IX`V$-R@a;syRo$DM+3jBXX#Mh7gVg^n-v76p96wQJ2YNb&Jp{RU5WX5E>@$LWZ0tL_ z5P5_EIUI9^F;r9q_8^p+X;Rls6Uxs%mLf=nF?WjbP$<*et5Ko4>7U$RT_ zsT}qQN)rC^SUiHznM4F(98wVMp<}54CEaBFaV!l=|5Baip{wyU>;QYrO zNAyLSajXjcuP3ltbWa%jgDSLJhw5Or*$fbP2&~Ml9PH_TT1WPqK+5*Z2f(6Wd`JW? zz8Am;;p|Ve(D^s6E(D?HeFzrtuu+7&O#s|$43&_<0JBhrQnTU!1G@z!i9R}J50H*} z9!VeM1AD%M?m(Ix%oR#9BkTa;5$Ba!yr54pN*cz;8$AcD_#tS@Aribd2HjS+Sm)lch@>esl9=W+vxC|Vyoj9DcZ}WJQaJso2oC}hQykFy+a)cy)W!|07`Z+ zfg=o|nh0gA2W$kiO663!3L$i7?AK9SssJKbV{Zc#i{RO6Uj#J@m_4d*SH!BM{-<8* zU;4xUMZf9{k4n0z#42I#P?8Geq-(%ycYz*C##+vi(afmlcS;RXk$f=N_@QPJx!4HM zJ0pM?Qvc5Gry+{L!qF9=gD3=HF2w+p?57Q>V+p8~&icl{lEnAG`~oNz>#|uOeWjsV zm{(xY`c7~LbHKN+Yd!zD!{J6k650VCU81i$kzHv~c9?1}Dhpn$-9Q4I(W_W>sVBm>(j{dXz2 z;@@&`E90@!7sh|d!tOsw!(WwtmWLgPyM&$EzhvS7H6NJ}wfi#BYDhMY|A%y(Ci7ga z2mjwBU#PAOR7%gA-Ou`ze(1WKgrfNg+EKz_kWVFzk!4u@gHRDY+;Jx4>>zc@n=c< z9?05_iVeah#iqX{?q~d7A?A-r5N1UvKvp`vmH$~aL_V68&dO)HYakn(Ev=hOS4M6J z%_==YEDYW6LSS(S!dmwTpky2q_H9p9{|~ke79R-H_D`!%GD31&1xrIn#2V%dR0HUr z1F~OqzbJr58PzJ@$`xuzRE$){ULs_`bt+Y{*njR-kVy3-)2!%6n%SQwa}9d3P8Dka zD47VMjIbtDvg5;Es2N>@_iY0x)xh%RG_tUFsQkA`_W_lo*&Qly?0 zC~409s)`LkiJn3aVmitodnh*g_Z{YHu&y|=L0u>d{LxzNmxtjNAdo1aVGaN#t>xZQ zm=ly3NXY4ARfBK?8y;7v`B&H7(f#FMM*Q`r%8<}pieugg1?+?T5zJJ=`p`}iG#)|d z|3d{V44{II(va#SZW{M1*~x8Di{M4_a(K?d5+O)8;c$IK;uGDGkpO19Zwwph8tGct z!Su`8GozU~%zEZGISct}`7V&c?nwo(D4k{wd=#(i;r+>sT} zY6rp8mtDy=%{J!&JYhx~rApVQLj% zYG_eQQ!iAn0Ud3>y1Ry_hA+KHV^G7K8^J{;iLa`WyiDFlUN3m$^m8)#<+9EER?tb< z6E1`+5l3VZRm3}@mgXSv69fyM2nq$|0tfOgnM_ubU&%f)j`~Dd2tjd*TQde2qtXv# zx@DYY<7D5-4$3+)pD^>8O(58G!Gv>>LjrfWoSA&Ed@=2|f}cXILZD)jVzZ*1QXyW7 z_t496b5@9a04tjHf|U(ZwUhOZ)yEoTxv@hzDV%an6{m|6r2PNYc5OjXW$StE-Q9>l zALxb#n!Z4Ho2i7Dsp```Q|IO6={!v(52=$>s`3;??xKR+RYXxo z5kv+AM7fBf;vgb;K~xyz;sr-Q1wjTe-{0NL$!LyBN{MO(SE(s{_) z7*Xq-aLzc#;7Q9T`_m0T#IF0)QiT=>^&)|(2aT%KMfY7nb`RMcE6CyS5X+2EQJQL zjG#B8pDH|`%tnB6b_^!@A*Cv;Frpq&>Yi&nf<2>Lhiz<@5I58>31QDJ5xz08cR=}M z#D^rdMif{(+pR#TXc<76TzV{vQd7=B1ItBFRESfUPt~=Cvm(M-CmV<8G*FaRsbe7= zW>g8$yWzv6VZo3n^FJF{1tE6GenKd*)r1dCtcDQ0cP#X-)S@UZc>7@QBIS2jW>_Cb z_#Kv~LDBUm=8%7-k@6Lq5un%_dLwNpEM3sEcEZ^x))9IYRpe^vcMj-rbJa!Fl)+0G zdNqACjDm>o5w3=mo=n-rII^%Q8Uh?R6nd4z)EjtKMhGD;#t5_G*%F+*`Vn(sSZ@q2 z(kFPgovC@3&$h=ZLysWs8JMR<=S2zH7&*jU{1ZwcZb#)lY`iTE^`w zDIfI5>~(fH(tn~_vK)2E{&zC<%Ii_*a0BwquLN7SB)p^Fbch8M<~ZgB0C0@DPoqLAPUTtQ-tsYHqe_o8}1LA zD3x!7;d+kV!HblK4Q``@gEY#CO~Ww(t@2UgjB`V?e7xy)%z7+omvrbnz~Me=K}3#= zbx<9r5pzX|xQw@?8!f_2qi5VfUIpsjo9p41VFN^ixAi_SD&O_am|@)Ut7+5K_=3%Y zk-gT(QAM$EQ9Q(319`W5O@-mueiP*4`@sY!#5k3Q1wTayiSUH*vW`6?+#kbc2`8f2 zOTvXH_6jIZ##Sb>WuhR6V;!hFZhnyheeVO&Y8-644Y{61OxxK`q)3ir5-udOVe)tS zJ!l0)!JHQo7UO0HC{HC|HmfQ1#)M1h!<3ptv=_S?xUk z-dO+>;<6bm(M|96C$Jtuu-O$tL?T@$T#97_gm;WAhXN+*?6?tH24m=Y^rKM-2Dwdd zSIlgb5I(I(wvYwu1d2wLN3Mpg$G=EuOv!b2o2E=HmSy7;3*`P3Rg7IW?Qh7+<_NK7 zuLu`yY>g0J{P%>=!gt#J1B1q%gA@&D7vXU;DniC`@QfT_D?OXKL+BffuF+u#hKnkgTP8%B!n#O zA;i4*5H~*g``{=}vE6vA&FCcaYZaG|??aWfZ$hc}tR6H_1?(68GsDu9#uO zIY1?Di0w^z6n=5@5$6z0py#Gn#uG_Uu3-qhNq%iCwpGQmM^tw(FkzfZ-w$JxK>d8m zYs*asn17n6eb6KbA+KkF@~8tnokI#&fxRYdjAuAhaQ#WryUyO|U~ec_s}n&aOO%?l zz+!$&`Gd;k3eps_nB@T0TJXcXnAKAAXl!$GQ+$bI&em<}bg_4c@sO{^6j@mj<-_q` zfh!A~CFRL4tcd3*236kUx`Hc6qzt36jS-dhP8XcVrIi03B0mVhi8VmolKw^ttg~98 z^~bP!!Vx_?LpTVpDb!d)gYk`_&viaN1D`<<9bVBUU}Q54j0HotsW-acbv~-no*grw zZ?Us>yptaqapT;H)W&VYNys|H4!w-`U+-PQoA7P}+2;d>c7%FgiKwx%K2Qx!NsSTN z(d|~uQ$L=imN=G8fl)a|R)vv<U^C9$}seV+ypiX zn%rYswy;N(%G1NsIYueJb77oHK;};o-Zimjgy5IwKwY7kOc%CDG)ROcxHv-8@%Ga} zKrxq)izW1J2kyHILJuuprXD~sSto?2Aj1j7=ORON3c~EjrRSk|mPd$_Wfw4vc&5Nn z8(HE2zw8D@{?@P~f-U;xT_h_3MMoS0*Gd`E|KBlO<(hwS_)GxN&yD^NZ7Vy1GNhXfk^(*DWXI_lQG?$S9<#Gr;HJ|i(ncmN zq;p^|*V8)$Y@KnkvmcvdAN!fMLN?+EhX=s2WJD=Y-($SweiFG6wF~m06xSut(>KRv*b0fpSIs zn1j713e2WswE9piGLwPOq_TnXR0_=J0;0f2wVM$44SRul+7b7o5y(Gcw zOb&S|+i2wN27K6HpL4Mqs%noBEP4v5a0;?-j=h%BZECR}h-`AOI%*O}L^I)NEPISE zp>P#~Aj?*wfGyjAiS&(3Z}hBvHg+DXQWv*icp7(IPv6TNw$(bT5P&i4>~Zx$;L}A5 zR_Gj+-m!_DCq!+xaZm^9y+jo9eGtM3?gQcym@ZP;AkmhM>=rOQBdRy1-GIXqS7y)Q zGi2|{_W-MXgr@hXp4|(5avq>!*&kW)n3`>j=yMcBuxX+WMK8y&8KfxA;zvU0%?q@) zJ59LZoufR>vG_)z3X&dH1|-A+<$_-Kh7h}ck+4h8-V!z;h?x*-=NjR(gRN&BI>-3?IQ$hSEhu#_S><2bq_ZU*-qLhdMG z14I%bIg1d+Z@w$!h1o@w?KDA4+(Rk<30O$g zA>3>qAL^w3tE-}X3i})=FSL$1rXBoc;;@bAkrLDTOpIq9SOMCCq z)?HdeWYk}zZZ&_VY)PArLkX!``ruNxbN3FuHG^wAxt7VbERNj9Uqzb}t$|FIY_8^T zUoPL8$F+Q}?V>zhyvM(@r%Jvo;OcJv#UB2*d%0G~(cD?d+#v5m)zdcQM~q z!nIOr}caVC6|7-m!SldgfimQjX zyPBsT=G%^Nt%hTWCnWP{?%H6MyYf-49^<~_-1jZlPH^oc*J`O-JLC-ch-|Krj|SVR zl2389j(h95=QMXWaNilOHFE7ct~F7!E-uW$kiq8eaq9Axo3)Bm)sj|K9wis6|TPHf49oN`iXB_ z!)nq}f$wtUDqUbQDs<~y{lIu9Y)|nk9VMLdy~0iqFkT zpof3GN0%$qJmJe1X}d&vfzWn~v^`WDYl*Q3%NI&}g<2>)MZ&#L_=?4sZG2kV;1y{? zDiLa_@RkWr1K(h>q;jEFh}25q-Y-($xo*pMb1|PpH?0w}A(@)kW!h zq4o>+4Y75czm@g|x6*ETK&Ur`dr)|932jJV&zQ`yae?l#VWHj@o;zaOU7_6*V4z={ zKPw29%#}xkdSCcPMcM`3Ip+h%X+Ct&>8VqFMPI z|JQdpIJVc)v`}ZnZ=VS7Q{j09PW~gG56IcNXF`20JhQ_6LZr8G_lB_f{XhOF)R)3L zCw?=+b2s*toGl%b=Y_f;(q4)5*Ft+EAZb1auLOAalyp~G6zY<2zZJf7;xB_s^XJP# zy(|Lb{^u2;z7w8R;b}!*f}-uL+#vrX)HUIKFMLD1OjjOctPPOe7RfE_9z&^m}DN8ehALksI*s63l&e1;?5Eq^Kn#nNViW>i+~9j^&T3nUW5hc)Y=Vdtr!b%)VQf!+$EU5;jR?htyOzybS`?0b~BCbVlY4Up$?dz z*2O{H5exqBCUb0?z1j8o&7GpN6g`Ujb${MT-r2GX>WaFd?ugd|3sHG^xVku~^e!6r zp4e^&jk{i}adlN|dtrVmPrWnU8}o6|^}&MwyTMeXE}edT(9=PM{4hUzTFUDy?`P8= z4L}1CZx9yXsu+>@@Cwedzuu{0&!_7xkKDcNNvIKfdYwuxL%R z#Za4J=pV!xjs>XQ^)C9&G{bbud8!-o{x0U_u(+ZIx%rQfjZ}=XK$fG?7&I0Q9EbU@ zRl7L3kH-R4jw%lz0^NH8=I8FH-qc|t(8_R$srKAr(_E__?p%8Pe*dqQeJ9B$n@q8o zil&)Nx0r#t(GzB3zAC*6e)nN+FKAX731YU}RyPb5k1Rhv%Xqe8j$CG8Y$-P~QJBij zEaqC8BMUTk9_H()*T8X>Sb(Qi3lMi;zjUyIuP&~RYAwUn+P-UBH+D+EIbL}emzBq@ zE#})Suu-6eNQt`JV1X=4fk_gYu?36`pBG`iZXT}8?b$Rvgm>tH?Xw5*f3z8k7Au!1 zmdXjs4jmce%8K+Kub;SfW8STuib>*@DVHl(*sMgW&}!68GLL4~050z9?XW<#&O_s_ zQ!~A{W-a{Ky>~~_vF!aY;Q8epJ0W?!I&ipWoVdrOT3a%Jr76$PHPzV}TpBAU0~Cx}63K zX#dQdrQEPH0c(YDMCMZo}nakHJO zd|OPE{&v7d<4wxV7F*<7jkYPbTkMcKT28Q|;eRV;!eP6$ z1#u3-F@M7qW@hg_Tez{p^;2%?YeLWN7!!<}?8YrZa1@H8J-EqU9C0_y91h?zRMx6V z`ED)!Y-jGNI%u%dT(K`1l+=75%Z}} zPvfy2?P zty6JyhNah8Ko=BVr&j^7)8JH( zvv8Ypxb@ugu-emA@1kZbJ1~RKa*EgFC@1Xe+a=a-hP?j;-1s7{yo4*VahuDy(IK2> zI)GTvA5ea$$}QyBNAWRcTf2#KaQPKnaTT}m#hDI4ICJ5TvMw?7Ua|gW#ofkZL!7VS zvRvFI4@W#Y-#`*Ds@HLB_y5^G=FQOG9wx5q%)5ui?{!&Fw#kHXZmjR*5%{cs^VQU` zt5MgaN|dK0bUI# z0T@i>Y|#m|ZT9aS?iZ)c9+5=6!fk4Bo7XscgQHp;b$<){=^UKZj-KEsz>vLTx&QYo z^YUd#tXUV^2HX4Jj+l7c)WqV9ckpU@bC1A@p%0JNzL|7HTZdcJPzE{b|Ldyp9(KtIq!@+-#1GYi_(5MA!rqHoFOh zB7^|@%&Mb{0~1Psg9R~UqAV}}G)g*~{3vJ?Za4Ww-X21}m#_&V&}y3L!))=(TUF#- z9Cl!##r_rlF3H?S81E+(2MC*kgi$!57}^08!iw=+x-~xJ#EG|6_rDyQd%x^^1R*~} zEZR#%5}3b-qe`#t!*p4ZnXkJyPrP=+=AbLJJ1nCJi^GKR5keVFD3200F@(`F@FFY+ zdMzGnF>&WeixS>`N;Ps?-7#XxaYA{5P^^!~?KF&us;S$zMZ2F5s@rj9l!uM zqg}?hFZf(_?jF;pVQQznS%mR9LV2FBxIic_5=NH@Wj0}PnNT>!#%^UJ$sZr|->+H=e9+n9vcZof>fOmWVb zw)nG`(Y+_(1e1IEdQj0*_m z9m3=;VR4TzVuKj~SUv9A!Y)r%9vf?k zOq=jBkY24;qix2StI}Hk&qiNw>*vksdNnFkR8AN_A(lKPl+OsobHcKMFggbOVnxS_ zc{jh_Zm+PrW%v86*|HqfF z^`hb5l)HPj@-iC=ai%0uJwX3;SeK~m*%J#je-_mc=C29cH-u#^f!-2mEa>}F{2fq6 zV+i2Py~A&h=ui~$?Vl{KlVZ2mb%b#}p=coFjfBm6!sr8`_(;fyT7u@WGPvUN!l8S1 zT_rq=*2tAEy)*p@#(j{dZ3kL0@N%yrwSHN@ZXXE7>PjOKo|E0YVr1?F5qDeLCt^_( zq4-Q#ej(6T0u5}2(>?Vrt~$DR3xNfwv^p1er*A-H_8PNcWB*Zk?-EzUxKBFu$@;S( z5dTide-LIr3DZ^rwGrqSfqoO{kAW;sUL+Q#^U%TuYqcsj^+t_${Vo#ocW~8sI(m~3 z$$O~X4dFBG1DD-Z_O5DQ67ypNYCjSSFoZ`s9K)}HStS(#Bnl)^5Q&0GIAb>~1bd>A zhQOo$vY{d!3YS!H5Ilildq~Aza$XpT_K|2mi4KrRa1f4MtJ3M!+D&e*;UpHgPUWy3 zTwDYRF3{aw1D2Z&oeq(hFIj|Sx0d%;vtbjloMDK zsW?n3kB}&uL`O*!!vc24FBZ;tyMyEeTVnJ*?qxE#q17lmoAAKa;uvM!g0uHraKd^7 zwUb5YA%S_|7&$42065Y~>kLwHgiIte0egtkK@i~JPTn}S5suh~?SyaE0Jk^Zj#wCu z^Q~h6g%o_}2!G-ef!`;vLpY#IEvv^b;88f1MJmpb=sYU~V)_D5NaX~`P}b1~NG_7{ zODr$4;RcYp4@>Dz5yX9#(3eTsMY529lVHajj_7`?MJ+XzzcEg8M_(C#3ORyV-gjSsF)>92>`avLnWo1;Vy=~ghhrYuu@W4 zM%t8<=1)lUltj;18F|j41?iuwT3-R6JL~lx^b6Pkepj+mYq)a)q?RR|7fV2Y0((g+ zsz`Y?iC&SYhD5Jfsei+YyGEn0g$>#CUA;;F7F5gQzkrW^M`EFd)Z0^Q(6vey`e!&+ zN7~ersDVU{>^|?|p}#>LNDOGg2awIbQJo`@AqT=hK=~u7{6xx|Nc5RRUr6+o)xGDW z5v+ejGy@1~Cy;0DW;mgWz*7TGWklg^#f6QtnZQ4lm ziv{O53l10!wMGvq1Z~TTTLRw7D%>B^!i!SuqGaCG0v`(bQXn#Z6c*qHu`5_me+u&j z6GziD9N8B;M&QJVAfjDUz;c`fS`s@)U;&hQAZ2=ljKG87S(UpZ#Io=JP&<*O_6RJP zve`|U){{PD2!#c=Q^KH2tYu7sH6$os3W24=M~W4AkhT=|(If&3rDS_37dn)a%Qr&diLpddD5t@J^F7x;Ib=(3+u(4LC8%2OtYPh_-5rP>f+zq5$WsVA-6uFNaaJ3` zaM-&BfFyUe0?lG6+c*lvQy}086c(b_s@!!d2ZMo6q_EKc`>Jw=`D=G40dqhp4TkS5XcZMs3=PIV5ZEk0$^^@x=4MhT3vhPTxY=vg z)8{BG$dJkF)s8rRl9=9U=!i+Pte2_Qx@_DT3VPsWAgW$O5Xi(nB7%q_juA=VxYB|6Sws%8Eu3KO`9q=veAx@49+*@^)DiyRQn2$B z*xCy$@J{M>;QzC;l+`85G@FuLrce%ru25ih#8+XZ&eMaf7t+_@v!|nr9)#)+o(o_8 zx)wkYJWDX}Edl4`gUwCERVG*z$OqqgSsh+)5DM0( zJOduECV=1A9gsruE+~Rp1*J3C&tPe9u!8$P{+O^ple0#E1-?fq?^E+0lMg@wJX9TF z5ta|mcrjK;StOGaVDoSSD~HWN9=&la)_^a06lb4(NG;eyKB6FMZ9k|GPbaX)l=Wfo zlCaTV^=)Bwa4pu#{_2DUvASms4j(sghTXl0k{45plF1T)+1&*qi&BFeg2jXCECdSe z{=JN{E~n-mA)l}Ut7i}Re}x{0VOL^V6oF-ds87N#5r71o1D-n^4g$x_g%gJ!0&@?- zaEVYZHI8*_S4jQfcHc97G)c~gb zI<+B$0R?!$ZZZ^mMakR98sM_V4Qho@9>X!-GhpE>eCJ7`h8TgpretrZd9{@3TME6S zz`q$msQ7@o#u@;yP<50^J*8-%P$LCi?-)s6pxy(E)oWEy$AKkqQXQa@0fvy(un&~! zM@o5!0wV%9!GL_CjBij)prvY+J6!3DeWsLOs3l)1)J&lkFh*o8`3!%v{!k0N zIJUbu3zA814(8*o_TgaO8gC9x3!bB+w)fKdjO3gke5rUeQ@jEb|E zVL=>OFvn&$2aGz{aIo4eNw5%(GL*Aq569*!RSAabe*o|0ScP%WJ`Omk{T$5C1&Vs~ z0S*=b85k64aljor$T11$$RjxD5C^CUiWLd>wQ5M(9ispU_>HsLi}`cf&p*sDkD!jg z8iUU0+6fcQkssyEOD1DjuwC4baoA+W)6E?Rfn+f|&H)WM0mwSy|7jL>k^?blEC&mA z_jF@DF>C1{7Q^B=;Ns&sSV+4sZ+FqGJICq(TW}s&0>|2mlgL8nz8MFJ!al+cP$=va zXF(FjHkktvRwBoT1C(X8220_{PjeK>WGV;S{eN-s89<^vU|}5qhDCuwEW@xL)c-H< z&T=fmI7i?dpjjGcaXM#iGI@^50II57J=HkLM%FBUgXG=$zvRxV=yx}3=cx!3mHcO*mFa|!9s+2!To&Cq$PxD4T;W z!~W|$UCZz`ib?LYXi?3Ce;&Ou@8P^raJ(UhV|s<7yvi}X#sPt*%Luy&ocR{j+^4px zEo+-@@RS}d`^s`TvOJC=pM$P*Aal3@tN^R4GQ=_TP2iy`L~O3NKm_%At&6>`A~;0)~~H^^Zg0MXaFxT-xp z*ji&D2MdK2>%kn4V#SeZ{KG9A6BxIO@gI9>WOz{cLyqhb$2y<$7!*Y1af`zY-B$E= zLm%1oalgjr{u_{;R>UzW=9rXlj7vGFjDyNK=m`g$!c&0P9yD6_431vgu7p=9x`}!Y zXsOq_xPxEPxL3f#)T@-Wv|8<$!~F%W_?#FXS*5 zKlHB}g})ATwrD z*{{F_$Unggml4eXv{u7bDK%QgdGgwf5N@}5H>w>bC!rhHS~!Yt9JB8n^n+#pPgv@p zbpfyIqM};?OcvQTz+c6-nV4}q%}u5(I=lVO*@-)&p9h@%1t$Z~+4H@)AcqdBU0gP1 zar6KKz+(UN_t@&yQL$sQu9;M+`1O0expE(_wJ+D)kE`_Oq5v+$ih*2+Y&GsshlFG4 zATBURr}5M}s9%u5Tre>@9mvUU*!O>Hm}p?%^c8j|&;TA=h`=qIP6tsed+B44mv96rHY#Yl+wIDH))%JJS|Tx z2S>V&Dy$?Ot6Nf}xzSwZQLc3i7ailG<6Lxt3xutrPI4iwgajlOwlk!NV3}FY(s3-U z^w56Pt3X8lsJ7O{97!AHddqK>(b$3|@mysB*CvrGJH=HbajlZMP(h(n01Jr7PIG~! zPOwKR7hI6z82}kP4Ses&{M>J{r6Q)eDf-H!t<|4zbUMpbJ|ffDlQtRzgE`kJ|5~Tb zit>f_%NKB;Ki-wjMHyU_$pz1m1nV zxItZj)@hw@O07J12NXCwYk7&Ff?p48nD>Kg~Km1bz?(rTktYhIBuCJ-)f%6MfofZ zt^+w)O8`q6oa-`h*WX^NF=w4Hx5V!TS9z0*Zn2cVPJ$>h4g>lIZjt^oNPTYWJyQ>j z?`^J40e8V2uIw&%$vrN*&xKe43``36;A-jtz}FrHGrdEdWD|OIT@&&-#B@v4=(&Yl z`9m&x#0ABE%;K(g1pO*vsSe39DAvwLSA0V_8#WZ28Rp2}(>te_t0>`Glybqc(Pbbr z?rZ=BdR-2%v#Q06%^r^_{;ki+iN2NP+wJIxCtT%It~`nR4EU?{bnM9NjDYfyt=}87 zj6FwW!r5J(b5R8sz2KrsR;XUG+UmBc3LsE#Vi{2lpWIb$Ksz9d(@ep+(Qk(Jb(u0n z^*t$n<11Dm;rgZ0q1N>~W@*d&?Iv$9-w@?m#CVF zr7OOF;-V%l`pkty@(b*;!9~6CE1>73)o3=bT2~k~ZvW|7pHlbrwCj+4=De~QxX4A{ zxKJ&uqQ1iu>!1h->+q1l#UJ)}PW~M}WKrX(u(3b5Hb1#0tz6W`h3dg$F8vEQqlPr! z5m@*eP5__hrqVIiMW(88^CtaxBsx;+W?bO>hl{*;u=y??7R2f*tIOUzIL2}P6y}my z@ApndoaHu;Y3~>-n_?dx^5sDm?8h@$MK+T%0HZk|=sBl$9y$2ULNaUb>_~qe3gDqY z9tz^2U>@4d1IrV_10`^A&}s~MQxz2o-(3s^L^ptN4-X4qYm#d1ULN?C&5$s-Yyvbj z+0Gpq-_&<&3I;e|5r3Q>#zXr6Tpl{W14%h(0My;Rc5U79kUmVJir%`&MhS04Qh3x)`73 zjxXv)Z$6j2WJ$JF^h4|%&*nT&et~Cnkte^zGtcJ9F7r$?sT>|#u~xb2Qn^s`bW~B)eeeZEE)V7LP(I6$1nRm0B(|infz^mF z+e0S2PI8f?>n~VWM?boDgNJVN&@CRi&4Y-n0CshSyaY7+4xA1jC#<^*XX`v%;Mo=P zA}lX_4j);)e`(Yb1>8?b-SsHd;Ewef6QA{#6!hAaL6S*EEKE^#1yO; zs$A((*bH1L%-NI~xT@1Z8{<=3R(OAIQQy^n*3a-HT1aMs!?)!*e;ys$c6$4jeqq|P zkuBG2@3X^>Ey$*ELt#-90?xUP&v-7#}%t zC$`R|&%$W^XweA%{ii(HGoIOVo^dI+iTX`d!08(yvSE5oO1^42+VlH}Op~zAL{aPu zo>e8!z5%+b z-8ay+ASCV^T(lZ@7U8#mEd<06F*1AZc^vH*(p7jrDc421NLu=ihw69`n%Bb;2#+CV z0n`rU5vOG_?;B<&RA?5=9K5>$WERw%d=I-jII>(To|;!zU1g!}X}Wmo>eXMXKJaWl z^5ma*sELK*bGv@9@f7_9w8IcK>41kY^s=QmyH`=eudJ?}qV1Er{rSq1HS?CX@X$9N z`p!c?c<3h&%4V%_5;RJVLnhb;GGLf*f|QB=#lw8uTz>Wy!dDrAEG*MKD2wF80zqyH5G+Y_37XB#;Yuz4DFS5Z~9#yzT!K_m(Qve zG@?P~nFXS6Aw!II{d!v+(kga-d%%y6{P`$=j{^B%2!i-nu(OLj#B{JWgbaqSP+WF^ z?!T5*0orsy&I7aEc8l$H3|djy@zHKR3gJUM@|g!WKTdejXR+u3&o}>CL*!WFgQ0x1 zhmZF1Q5YYBihX=6q`h##7O=-(X*VrSL% zX$ZZ0n2(O|!Ne4>q0%3xBLlun7~>dz&nMey#Fv<8zS&W}Jce&{jKAPG?8^ree-dET z*s~S;_8>o&kL~_{eU0N|0nTcN^=ij>J`~~H4G{yAa^+X=u3FWOHKpIv?=GV16ZrEJ z`8KEcMoIhy$$Xm>zR_v^f>gfj3?E`R`Yg*fHdRQ2%?txYI{FEf#)lv2d>G7fg;wCs zu76ChNxR4Rg}i=1HwD*Zz>|D1P6owXRrz9I>%mu)^-g_y=M8f|9pf{T?myhwBPIIY zME;y8hu9jkEWYhIzT!OJ=mOt1pOcQ$sqlk&6+ga5Z@B1#Wg<4<)b`4C{jKPBbb)!KmZSw zo=pPiH0lQ6^52)6utWt}%@Lfz-mD#N^Q3=knniw=eYVg0GZfR4&Yhc7UYC*CXK+zM zv+d)vBvY`eBrn2tbf90;fNb@d`}Mc@=r$h}@WB?}fsI*Dpwiz3SqAs0)`N`$pfe_f z-0VvG=Az8>t1|+QZ@5bUGfzXQt06O+DT7aF60BuQ8o^4ADR2 zFMh;VKIY4d_^6l<1*Q@}!&&Xh_VMUafScuR8E{Cg_td&)aF~Rit25Ko1hbGLmXA=r zUt7+XJ>koq@{OMHmlW}yvy!KGhNP;34^jT+NInx->KI~i`CNU=us6{jySh;?_^6T( zA;e4A913?j0R3X#@~EJX)_7LqeEt(J^Ql#Qc{Shq72mvuuk_=-W>0qlW5On9ySa>8 z7WP>;e#*c1CWsoRP3_@y#I;X~E#E1am(ZFYB{n*ka2!wIql@Yd+R!5tlIf1&zu zbLhYwZR^aclvi~hH0QPke&?efd95XggGx}N4SlR5dEG0iWM><1Cw zeqXB$`psAV;VfAFZpe03=bTcJza>TZmEp1&|BrG_LGGPFcTY zX{wLq$4ok}ecre4!hrz-6v#dq1dps$tD%Cz$ToU4We#3wy{oOP>RWVTOt1ioq;UOb zv0eGR2}?r)|M-0%+%L537Fb76!Ca>MmDXXRe^*<-8ftr}wUh0~5CIAmKz?Ba&&=vp zo!zs`jI=sS=S?$qFoX99SYrk}r_J<}X)f9xg zPEnC>7VHZ zts44txm-iOcDq6O!~6339qxUdh6rzaN)HRnj|fbn1z-l~qd+i?TM)%?Eq*WP+^N2+ z|L=vd+J!CgF#_;cUpS29$U31eoh)=~J5(}hUfJElKnRCNzNGI*)rYmKOv@$?TzgEQ zI4)3}VDUOBfS~bjZ(JWq#wMi&S~wp$EH&DhoSilDrI`4WX}&X^3=9cDx(wWwV}lW7waQ-E)A40(4b?t_e`C z0ObiF*vyCJdW{>XP(Htce89=)15Ayvs#)unzad@xyV{c6OC9b}%t)Dc$;K^(ZN=r4 zmb+eAv_7Pm=_7~#j())Xig$Qqnb}W&_`1O2hQR0whrS7N$Lbb4-wJZqac+mOe)LY> zxr4nHcjj;fw*)q~1r`MYlN;0>R)N}u^#b=ImuYi|8npCdg{I}rWnybrW#wG~x(8Cq zyU!wJXh{HcJ7!Qz6pZ3$zuLZHX_w=7PWa;` zb{*zD6v!S4l#d0nuT&8nXU}$B9P}s1Vvwl+6-af=#~&;I>|thP*NEiL(<_WTN(8b} zfxJv$QZBH5B0x_CVB7EVpgT6}P5Uwe#=o~$KYRF0VDemGQo*Vx{el(L z_6*Zub0zyl2jw{fA>!W0r8m#M@#0EPdu-pPS)MNivMPb1S^$+$I+A<^z#05FknB*k zmFuEcEu|@rk=A=W5?pHpi!-5U%?yp`b*=Ay<(t-!V4~aaP9d)a=#2o?3eZ~tq;T(m z?rg%>?%(P_05_}LTn!wZ?myOY@3*bb_8b)Nbnq7`>IG0*Z-5iqE9p8WA)`i|Q_esB z)By`u1=Z|m6qvpj7<~}fd=%JbQa+qdtdU>~HFOj3Vv~cbCro^17d_3m`y%4@tsLW* zJJa)1KMRy!1SVev#^)hef6i$JThv}TQ)!tACG+Q$__Y4K)%aV$(LTmo1j=s$*>?f@ z0rE)x1VTa1W*9=(8K&@ld2d@RY|;e`kGUG*c;H${t3cT%So}+1^jl#3M_|&#ndv2L z9}m~k861BBvwHQx!l@AtU4lM(x3-le-`gcr9_4!r*|5qmt;CG)eSCR+*K^gi!*V+Y zo1ZE45kdt4T;OK!!9y7OeNb?`6xXScZQ0v*3ysf@Mxt|dE z3n5$&8E!yj|fq;5FHglSbLRgkg8UbY~?!q6EEEvBZ`8C z-i;BWW3ZtRoe)BteiCTk9;Z)=1(5AMUDvba@i=%{<-d6bAir~w_1m}G@7=XJTx`EZ zG;Kq?&@@4~I8kVQN{Et#P%1x3(aAs>!&E^EJp5nD9D;-Q7JSXho|}fd4&TXnvOWf;>S2$pcr(Zb$!KF#E=) zK7m^%+jY7qlwT4mBly_>AgDiRAyDx$d;tZ6as#+7#`vE=jT*xy(i4Cd2hg8qzeEx_F~|RKRs1 zx*>$X-w?UET-aiJ-Zs6dAt)n#SwZrun?l7wVKavbo_9ED-qN^gbZgMKm63OD-4fc| z7TWr83IGHsggFLqnEYoqo#a!Kij6vEt;pQHZs8pvx+{dJ^d6uB5YV#2I;^MvmCf3!3mRGaK!r>~hq)(AbP+Ri^H?0eRK zQe2r3x>9hxew_UT_Xz&b6JPg6NdL`~o+O!AuQlr)x~ytCDC@nW?Vh}}T!@|s(NiIM zCWK%(l=octx5&>n%Ha5X0qo=2J$ocpk-!hM*~E9=wpmpnT=+sLuN2BkIjMq|tOi4? zhfP1K;4{>h*gm6{8DTNHcYKA}g{FTme7--0sI3+%UkR7g2^-G;Tf$bDR_o$8~&VgCp72*^AGcS@~wy%#$Ecz@oFXDY+4`dT3=HkK| zQ8)TJ47R#Dxv%x`pq=p)GiqY-gxF3Wt+;1gM*br^yZWn8*(@}AAfQ`>>_C7cGdCr$ zWLO7>Wh+;&HXru%CH@T%7MeA2egMl|)UJ+Y1k>$afS=6hjMpgJxEraT7hU@)RJ00h z+JrVm{9iyBPlya$^w2G}{S7jw)ogHK%SS2A-zRZ*93*;mesQ2MwmjvJ(ArBR+a-dW z5Q+wITqaLaCz&!8dp$i}!HcZl{>58_d_+)C@fAV*XRl$Uc6ooB$@Zt#Ty<3YF8Vfb z>IFX$@)w~15ekHV{2&pO_WpGZ7D1DN9Ywpxs&ekSBVA37uC0pVR$Gi)J>%zYk>UzJ z1eU;zFFQRRzkvv%>OA(>dBJin3;6=en z))}Ki_jXkdsaSM$%&YHjdZmic84>u~v#^(8XxUN6+B94d|MLE;u{#HbHQtuYGaiyA zGEWzoW{8Y~IR`0r-i`Utxp`oP!{}4JohrYqJjd&mDYD5Dp>rZ=C7lQ2u+<>8Jdlqw zs zK`pONkPoERxkKBIjVPIwd%C)%2}Gx@b9w|0ZB(RR7unnp+1wPNTO!E2AVI1mZv&!G zh=%lQGh=(ouG`D}G>`eqc0B5qIDK@1$n=iL`mPAw6M>1p4_mvjuX2I7>FEbR?EifM z|2}d--h+ktKg%vpigF*7GjC_12&!HWfz{9%cW^PVm-)o!+*xo+aw+44$u;XWA)_CO zOdpFBMIz{N(kBJQ00{f075fg8-w*QJs1;IPwpaS)mDNjyB_dQRf=H!IgoUtWd{-AY zwvi5$Nb+vejNVXG{zf*-eaSdS|Bob7)j5tI9TfOea^A+r-Bj?oTx1@^i4rk*YSXp7 z+}aL5e-@=;t`h>Eh-BvkFaXiPS6?@@^{u(*rz7Q|oof@H0&PU-xd>H=z-_z$9H7Gf z*BDoVv4EzD>v`4%@wT?zcfVxbg$_#g8-40d$Cn~hC4weRH7K#88l(r-od3Dchj`ZF_v4yBXro(HzHIkg2IWx_XiZY zzI|6_J5}R5^@x7|rs}sM(|01PIuWWDL8j9H+o(4{+DSLE!f5D4yayQBOAKM(vsctT z;q6V!Exy$SO`ZNhr2NVK$nyJNPsoTJne_9k)W2)*1lsSAuS!W-I^dHCHHn~E_!;(s zAV;lo1L&li-hR6HVc=mZb`D?k`E%NN?eCIr(n9W^%og8f9bJ7pb?hZ4^E!OK zLv`9CMtj95Obh{cnJA8R9D9p0mkVDehF1SxJ#s0<-MUXaHx34#n1-jn&qbNu-nV3b z$H8OK;9vX2=ztg&@Q z_`*&>L;qmY<~Z0wuhKfH*}kOLgFUlD-UqDMsL#4I=bBa-307fH2DH^!mo zofWGwkLz!}<{!Lkn<$oNh``cs;zn7eb*iiB&zuMw`AahKl-N8;tVk9wN)ba*8ftxM z)E6Q1DI}prv*n9VNMud7RZU}>q9{h%txs*|*VVJ;IpW-tr|#OtQjA^kh(G5eo1Lz9 zQP15`TR-fy7^Sk*I0Iw@fd5Vb0IXwQa<(^p)f;vGvh3Z46!U-1isflyS-N;Wn_iy~ z?GrHTT#Q4!9{+POtcTqJv)gO-Wr(dZ#qumMItOg#o)^O`xM51GeWF4~UjS0H4{Lz{ z$7j^-nl68DvuqQ$rQ`7qHi za=Kh}Vn;#9Rk19e16E6Uhidyh}f>VM(=>BcK}#MXDk)=yx(_9maX6fy4~ zm$Zh@hrA1Bo7}DWa!nH zSpGq5{ZVZGNj$enEc53U2|fd4Y*XIF;cuH@NR6%4xH77LjeUG3GxFiIFJjxTVr4Vv zCzoykg*4Q?*(4VlL352xUXu*$*uTd5)s+gqasO{(+wWp{ujvQCpk}9rRIacp>Ol8> z#rJhF`5(?tKKOP{!A~)26@vpd7a#fM?d<9{vFw-FCZF>gwt$=p ztdAC?^VY1aacS9ogu$bJ?-7?3=Kc}ecu6dFNo*1Xm87=>^KmW!uKcXQNQdr{`Qq1KM52(3?A@N=lq!&X~*!>=jbPg?*>ozmzV}f(G%Bp#0juL2eZ656QNUnY?{N z{K_Q%3UR@4-nqR`1|OCvk4R+A;$Su>$SfaU+iQ3=@f7E34LJpXq+RocuLKRT6NgGv}nl zBvvAilgx{kpacm7eTfpNJ^okfq)$mOADzdLN&%Cc8$N1CT>O=XmG>GBMVgl+NtE9q zP-aF^1KvoCGWT!=mZtX4VpbdT(N2V(<^o0z6Ft!!f5N_kLeP5hQ#`&=z(YmGeWw z5E50z+bw0&E!DGsdGrwE+6}VJl0XLva4&UU&P`TqYOL}Nk*)cce0NTQ&P&h*mf{yB z@Mk+z8iTaNdjx$hn-{P#IsL`R^N0Qaxg?QgORO$Smf!1|#3ol_ohOm!ODxXtuS+0M zW&ad{gZhS~eU@9JjpIJxGW|K{ipSf!EptoQXWBP-@KSMJy!j2F0)uyk-euJN$_U zChe-#*RU%?E&Kg?rz<%CYMRf%O%#~ zk|%%n(kAklTkBru_HlO0%V$gunR?yh#<@ahLyfzq{q zo=c1?Bru!z0_2GuC}sr;j7k&5Ty81*5>ez{_;U9qkKf%*cT`HC7!Ojh*lA1mT71)p z2lG>R-Q+kNd?_)jlFYA`%zq_8HK3E+I3E2PWL)F^280B9?6m+JTW8QQUYAF`{oDtC zwj#(h$g}HpxM~}qbbJeB}uM1}le=k8FB+$|R2$BMG_%LPx zi#&%f9PKgWS7xVOUeScZ!JVI2;{n(EOex{@xtCjgpYt!D`!gY-Nn-L@Vhd$k9Q2dY zMD4BZay1Xhzpq^`S^w^f1bvl&Rc#q#wNq_q?F^}F#yf__R+E5HaXr93t=-B@n3CX!YRKjU1a z)or@(-X>X`Df%U0-x@N!Zlz=NrRRr@y&d?_T{->OoYWl0-xBmkg1n^QI8V0Q?9?v* z9$q+hX762V!YaP@r?>2qB5x_=1U^!*gkz_$BY>5aO#z9^i7lR8U$%8KiXPxAMSfDS z*ZxxW)ewW}gjHY8%R6>FT>uSuqtyJE#vK7t(?F?pkkq(Z&_u;?!S1g~{aARs@MF+s zCy(_ZyjSyrrD(Sl<}HHRDEI!fJu{9c=cIJ&WnUh9<&H8$ibACj^u1tjesR}68)}j4 z{AE(xwC?d!cI=U&y;2zB43oAye;wNsj7*sG*~qC^7ZRp_7KkW`lt z_Ir|BTi#}N(=JMCeOPLHL<(-PRv6794g=L7@DS3hp0NCp1sQbeoOicyPV=qxN2RhD zDOjIlQY@GqiZs+AUkR9g{TF|f^q;J~Zb9ra%iQjETxxtmI=_^A63zsG96@&;eErd5 z_klkFYvlb;^Y;#r#7a?|6veZ|PJll(1vP%i|Jfn*L@7JP1|!{o_p)yX4o5Bd>(TB>+Lrn1D)>X}C7 z(c6}`^36YUj=k%*+;`y_Da=~I-kXAN$aAH0pxm_3$U1S<(6cPR;QG5kzY^p)by*qe zHy}>-Y-5_#?2f2b%v@OB$9=HV1nl&>FI~3otiGQvwaS1;q%hQ4z@s6i-Z^l?XsTDp z3C^FP`)4M6pPnT(eaJlr^mKXPeocl3mPrW!tDl6h$k;1Hh`&$7z=KjL;e)|h76Fz;J@pkml4-r?T zHrJ$zVsRvy3(H_|v%RF;$w%6)EjJ*##PxdB;iZG8pcr7#kEU5bUeu&qg$AXY(} zHj`xLNKLlxTT`^v{^-;7gW_FXZ%A!!N-b_ljc!YorIKcnzAh;MAYot{#^bfjpm%=Z zuTqsOIY}|MPK6fg?nu#HDY_?xGQ@o;wwHZ388Vgjcg1uMfOpOg69Kai0i&I6{G8UR zN&5XOXXx3+LaFkh)aH>CJ(fa&tO#J&{Vg2Pw?)MuNbO|>wh7KG=)QCMB+=%sp4`5h z0vl|%mPk!XrN(7asHzu%;y&jvPuj*@f1Y{Z5OciqRqo=-e&tg11SFDT$$zEQWR8t* zy2Fo$$&$(&M@*hd<=(QAT3x=G#x|4=ywnn7Pnt9fdAXnadBekxT!W&QU4j#?~$va;vm^fhJ z8ksP=VOhz9w^H;DM1^a3GQ*x~Rlepl9$a$4GP&vY<}3lD+WjhS+*{4w0Ws5dOqUN` zRVRg4tpS3QT#FToLoK)QtCuUT^{72iFI6;1O&g`M_pIrpujB7UAAstf_O32ENPU=` zBmJGV@;M_=;=XY&*L}V+v(r&VhyHbY+2j3!{E+c$cDFW3(Pt@4MSKCl zfC3)-2Pk0GeA{L_>ww3Xhra6ePwpulBt&}yv#(M-E%85_HquYZ&J(DXGg`sPn5YL%ikcDGoeA$3?{ z>1?MuQ@?$D$if4ATkd}NB~|>ED*s5Wy=WL~>XS+CqW=q;H>e?B+jY~kpH@BMgjP=D zGe^Y+deg{lb=d4rMx2l$;anv-;Syr zreE46H-tu^G>kPH5S%?auYSOcB|Sgg$j@5xwD!~<+I%l<8b&YPN5gn0og#cMf|{~@ zaP<6wrj7J1BRt@u`QtPDY10F=%|TijPNN7KJfw)WYlhdY8ExQ|(3;yu|6&nKRl`?I z%RWReh@`DcImyB(8ViKNvljXq%rccDuQX=d(0)3<_?c7+c9^z4LYo%x-inij%;B*M z%bLSpOR81`^9rKh8b{N%M`?KTErtdMrgMO?S_lLyl-HjJzA7FlST`bTs^h<$V>Bdu z$7#0M1!J=>1DM6Lf7UD9XSSVoKkGg9B!_tuFtPd{%L5Z{U+6LU*23Y>Ptay3>G`qr z{5TrL)1X0ykm`-3R>HJ4&f)aSV(QjY{NqXEXAMc9%@b+UaLFlPq+z_7r91?INjLVn zUgRbm(^fY+XGrduC(&lNVMv%6e~RwYGImw|lkOdA7YD7ZNTyK=4V`2IyxU$4}EJl?I<1$Br&;9DSkd_s<;`_x8FX@D86IdWJU6=bQz?!BjkZC^O-+ zh3w@Tr_WfY*`2Qpe&d@)%hG9C25t24Zy2Xp_RqFjlN|r6>o$v8UAa9nX`3t>oumIB zqP_wus_lInq(kORhlPr*$L_#kNCCkC!A?+7krctE8>9pUY3W83kOq+wkS;~KTe`mY zjQ98d)^gp&J#%9Be&czb4H29LUfgGBAdGv8>^quvR(jJNQ?0#YMF;KN_kF=Z%nu6i zOy78gSLsXNL=CZZ{Gk!dRGds2PAwe=L^Ir1c-YwNp>_riblx88BK<>2--tCA)>{kV z%yd_q2V~;dSvXcUP9p~g`R`mPHG~&17Aj=(Kk^}`<7IW@Pby2c-HI743AlAM52u`u zb!#oQ*nB*zLO3y+WFtjcTyt2TN4Nloe#61GS_p5s2lON0#zN^_s;@rr)GIl7>AUV} zQ#UIl7>A^5xjnplXGdGmD|Ti3;+MehIEc_Y2qO|tY69(sy&_j9t&oB}xU?MC|eOX`rOAxDpWf1KXpSj}v%Nvj|un-TNm|pPY>gyyU7Y2C;xZXJ^w+H;0&1D?N*wc@0cdH-O2^HBRParqh4<&3+nZ&fA}E z!>PC9&dh)x1GB8EN2?-|(o%{WnLFji^!?a@LpyPR)#i-kUeC5Wvi-ZRYbRG4|DBli z>cTO*aZE?PeC{5ogyCJ_=VH+Tv7na$;=)2N*;&^jNyXxKdvQ|Ld`id(M#jT{IM00X z6=_=s$NTyEaNx1^^sbjwe9jeAyy%`^ely~bl_#R`UCavsnB9NgENt7J;dSStE09;WpI^u~ zK7P{uEppZyIqQSK>ISZA*Gk0uS@8Np-<|diAM`N4Ts5H&hgxrMupqT#+q7P6Kj4us|;0xv1js_p!I<30h7_rX7(H~(3AWS>4 zLOyUB+RitpI4NmRLo)>!WhcbKGx?C6m*4L_xp&9u4zI+fxD;G-Ai@el*zp23LZ1W> zcH9P4X}|UEMo&mj?&^pv1S4n&0`5a7d>PB$!h#DOq>C5pTB00`yzII6-tF1d3m*|Q z4Ac#A;RptvzxmJ@i@~K{oQ#3+yuEFo zHfcPgvZD}{Xhb3gVZ|b|rK%B=T7+v)rRtJ|Lh{(OHd)%TbuJvg5O1Z*^<{uIe zRwBYoLS)|XTJj_#m@cRuq!Oyt1b&S@Qo+mgA8;t#q3rgK~yby6L?eMd1Gx|L^EU43;Z92)jk6spT)XQ;L{LRI)Z*hz!1)W z(Q_LV@or&USX?Hw$bbKX7;LG{KYMY#TTDG~&Z%5Gb{2wWBjD-eKn?!)1bqEV4B1Ij z?eXpH2bGyG*F1ldi=cT3nvVdS@(*tT+>4RMF}NVyJMc8v$JPHN=qcQe+8mH}_8S7& z*h096!}Nr3G;;0n^!YUEw`6-EE5!|x9h<)+YDEaEfVYFU80vES<|9PP>DWcr-BJcG zK?b1NSSP#$K})gDEW>1mA@2;I$(7sQTf%$2)OUqsP5;-Q-+mxULt^Fd8J#=Yx6N+D z_Nu`SIXL03H6t>+|8?Ze9}X1=yAnCODD+kg786!ld!fo@qwN;wCmm!6;yynSnJPr7 z8d2*LSri@=84^J(PRKk8Ny#l=EtZ*XGxJ#UuL!c~$os>UtcSl7K)A^xp>#_Mnmz)ky=E(4q?_KnvQ%JHx$<1hF*8mDHW-sU(*auHaTb~H6Ums zf;J&ws^keaLx*5pqj%>HysYq)MqYN)v3-Swrn{R4SDkD@&|e4yQ8*^EQH{t|Ptxe| zjQq6fNG(6*-w3M}QT~I-w;^&i{Ntkk1>CiG*UvXMo=ErC%>U6z8%=CSlsgcWx4fM& z_Z}NVTpJMK(Ym}ws_j=Ugxv3zkQQfO?Lwrx5lF2C@$|rO(J=x71(v-)Dk!N3ZY|%m zn347s8NII%{!z-+3w?vRG%rlQ{+y0m+CMZdKD0|jrL7N9 z>qpoFh|C}&kuQQ9g5J~BH#QrFUWQF?1gZ^*2Z$5gMx+b8@yh-Wud?|5D02THYmOo^ zV+aIWCj`I@rAW8v`F;-Z-g8uIP1DDhd&d#LTEOR8_VRr|1XrI`(v>Yvv8vXaK+wMk zI*CBeFY8~7N0y86U;{(g?>cOQs`Sb6#ZEp!35^WL` zpXNvWbRuOG40ygC(6_H-l;zgVAm}WDZ4^*c@N5Awg;6GT_g>5?cYOX*G@X3wv^V#$ zd4#oq$SflAlVDw!3&3I|QZ337OyQqPPDyN8ZDY4%nHLE@^d@ny5-#J^=P_fWo`cIv z2y+<$ox0a}ERuuC(E&zf&cUnnwDUV;WzvuMb;X-z%<<|Lcx6jGj1*j!2#ljKi;B*l zKMPe(*t%Tg9XvX1g;%%6t3~nH;JI9Z^KcJHXAs}UvSo0yfB8UF<}NoELeP$AZtpBz zTRduqNA2Oif)02to4WuJyjOx*s*U^nEbpKHzInyrOZO~o``jJzs1qKxG)}_0^UipH zZqOy*6-L%PxU9vCzj|IocN5F2@)#iMvlK+ccU%9$e5B9BKg#@ z+~ErzI2sAO$foMgpC9sAoXBz+{FOO9x-JzD2u`R(gU`6p_VnC7yr1Md{mL)7X?Qdp z4;Yv%EHY;^lsQa4|{!f>vvsX}` z<(n*MeLQR{InbY2cnQd$aMzw~%|SbOWmzg?R~qfNl<&{Qs|^W5>SR;j#fQ5uBF=+x zr_7A{_Q>Qx)8f$rJo*g=Cm!(MfMbElY;+HtTCE~zmpfYe#qeg6eb@IMxxNqH>?j~v zo_PEu%)?a&KA+BQREybk;BRl618y5D#?P*&Kk11~cm+zHDO zCgy5{T=W)|%I~&MAIMo{T=r4aq6?392lwI8emsCBIquA&vWv^KEMiZuT6Mnc z!W&rhd;-tNI@Z_Zv_9{M!kifsRaRo9&p`Pm$~ggn9g7Ja=~=1>V`T?f`S!6 z)tbPxA*k3AP&)$Ho1pwZ4VOf z*!FhXHbkRo{AkJ8$%&dOUPOQP`0DfQ({rBFj40&vjwvSs>P$dg2#^4*Ug=8UvewtT zuLlKT-Y)qt|8lzRi}u1pF9S94Hv}m+f{Z&ssX+*{-;@xAw`>(#e~q(W_gby>zTg$$ zK~SsU_ap$Y4w6XZU&eq|3wl7?BC?5#0jX~MdTNfp^3_zt&V0vbX95NRj@jKzQ2KJcQ)IeLsM@A4P5ZSHUX z`t^v-M}le?K`or1lEM=KHNA7kNZa_EXrU-_OZL#Iy67YC?c!Ygw>7Rh5=lU#pu#vy zF?h>Mn%LNz^QjJBR4(?e%{{FVO+aG^K={bV)+IvWz^vD>U2&<0oOoO7ljv9|1^h?= z(=`Fk`S{03f-N}_hR!V`%zru#sg<+OYJ5glU)|De8Fwn02YE0v?Ri&c$h$~Pz3FYq z3X>!PnoNKo?I$Rt5f+Dn$A(_hB&XsIDVvm4>E|=dGg1i3p9!j82rzO}v0j6btCa@* zk0G}p$~2&q@H+9TV#)*8WYtxZ2RhRU=vM;7RWqRLfKB($NU+A8D0`}ZsiBX}>&#WX z_G=~qf>c=o$c7&i=fu23Nxm}Ij-e~~N3sZLHUa2t9OP@}=(`}t^b3#h4~`PKZ_cFW z5L9ysN_hk{AMWBQfU-Q)c?6EsH>ffE0p^CP{NGJIHOjtLGm0OURw&LF643837X*vo zUSlkX3Dqm(ts{xtPsY_nyo}m4>53~RKpqdS|6S=H!Udb;Jjtk+e^r<+Q@!p;DjyObrka(5H|gsZ zGTp+r7)vW7pg*8>1qU%ONZECVPZv@z$~&i-jqXlA(OXVnR}k1kcpD*D2G68aTkm|F zc%`EG```=nzW7Q4^Cv-ONUR$}A%tenUYXV%j@&dPv?yXHJX=LzFTi6+ufmJh6!&}^ zF7AcUwEE+v)dbZD!5RWcW9aGMgg6xD<4ygz6Zxf4OmzOjK>dcu*Y9fy%5{XZ^#oSC zXcd10+^c;T__myTi+GXT;S~j)@$S-up};FLIcJL+31|}m^3@z>ka)~m@zSofcP`>e zmiezA+1X4$TL_Q^`vo2SK+hQZ0&2-}jwWBauE?9P=L%0JSBBtk0wnOkl!(v1-tF}4 zW5d?X6{pk1SqrTMnLh-8QntY~0(^wlO+zg#&>i>d*Zn=l;itMM8orq({cb0)ItUt_ z1jRr>%zo>FagOOIfU5#kOWy+N099& zFyrw)f(dwVPR`%sP7)@#tQ*+wT56*4ZeV}_oUK8qF-F#c24D!R%F>0Ug_Qnr0($})OXx3*Va_*Uxcn8c=;}$xeO4G7 z5$dvRv2&6DbXpky=@(DF-ulN#;OX9y!u;|#7p7n@A)qq^bd~_o%m2&7UdXt4P=EdR z=o2S2Qn=rIyER8Z=i#1z-7Kwx&)B`}1PukUr`(b1u?%YpNdK z7?Y|myhs4!8u*J3(**iOGdKSF6K5i~WLBWQL;(KIGIZ;Ilp*AHR@PeQv0eT*a-~j~ zd^GEPO;jEh`3aOH`IE#Ey5v|EoAw@;;*6J;!j8kR(5E26wL5nuuwb0=CD#)Ya& zcIvj0oGXWvB)vUe->kDCs@W0&HE2hKuq~t`A3xG6M3AD_7LOkG+M@h!KGa0oTeC0rtDiBgaKBuO)*>Y`DI5&B-g#F9f(UHhb!KT&Y z#oA9^yZ#n3&&Pjq+IG9iiFn2t`&j8pfT4U=lGK%VcX%_WQgUQ%hGm%x5qv`U#zmHN z--_xo-POE&_1DDLFSruXH$>Ep2&=O@5$G)UZ%M#ia>9K=&%MR(ziOMCEO`>R=s`q1 ziLl*s<`=6mYgT|e7GEVb>g#1_{mqN0{+5V(6JaAS;sG&hBzCKh>#PPfF(v9^5DjToY8ERh*Ulqe-BJ95r6K zzx}Y%bkCI5x+6XbM7emLL?Ucg;AJCj%_m<5M~I%*xIoLwjNE)FiHIh{P+Rc{n&%b_ zBZydmOyooD6wrJHr0+kzkf=)XI!XcGHa$GyVZD9U!OukHFGO}6aYO{RzYZN^UGH;| z)~AGiO)%y+TfzV z_)aSjx{#ph?!3`?HtB2Him_axdLB_CpQu(qRQpCm3yH8re}^X^ya#AbBU}-*Hvpz# zODl%g0pJfC9;t1a(nFPTlJ{FI<&Okqjg}D6QX)W~I5w)?am)Pr7kg=}PWCIk6I8)6 zqVggF_y8V1(Rs%WB8dThKIJ>YpGf{7N|h6(YxygnVIlUU$5Cv6fO&CCVyTAI2h)NJ zr`&Z#b~{xP)qWDys)!2T_$^jiuB?XYaTw~zjDLZ=0i(dlq@_7OT%D|1LquzdATtqy z1?b+nN@Xs8FA7Y$lb3O3QR#6VQN5nXY9LDF@Zm}!6M^j5P&jwte0IvMmfuDS_1RY& ziJ<=k5AvU?f24hceyC;ncfG=?oa;?Q*=C~Bd*ULN8kBT;`s%Cob?1`1CJS#0;&oey z>|aFX-$ZsR5&c7iNJtwr-MxRh-VhS`CJ5s#Vt24{)V0g+gl5&FHoA}dwG$OOh^n1L zW)~4;$^Ti+NaBRpQSF#$@c{qCWAv#C*={1*1HHj(0wvlSze_o=QRvC4uTR_W7l)7c z5@q^`vi(H%0P$>sfF++j{~!!HY-NJ}ZH5f*`aSvN%=Y1q_(j?BAtHO2$Q~hTj1r~B zi08+6EQPE9jBNvWdgLmPpchUOTT(eK6fjB&Tku?&6BY75g}=TEjq^zT9};LqVqN;aPic4 znK`*>B5-iwdi#Ef*^D22h10RGCWef*ADw{@33(C_%TMk}OhKtl2G`b~tZ!R(oh8c5 z5mo1j>;<_nB0AQ<3YlelbkfO+`n?r&hw#)?5rd#BzRBt}%mUaFwx_r>a( znv+lq5~TJy&@;Eaom+gH&LPU*B@gAqMclI_$ykw4YZ6#OxMX5>{b%0VPFs?i9ZB7uggTI5$#o=g+28q3TnFbwg8nrG?S@Bpi^P!E&iAvw zhj$9|%^q~Il+M<1CMhf;--HmnZ(wG3m9^AHOZ(c>YM)hINYYgTe{jgq=E2jp{+Iji z9X&R8EcI55121C5W3j0YNw}sY*#G#u#L!W4FFguhMOqtZfaRB-D$9z9j+0ZF>avis?A- z3nc!Mzk^GIx2M;Yg?p3OJ|wAkB()Zy_fRpY2OI{V_h<|wI~(fUm~`ONf6%kqU_4%! z5#URLBpAFyW%|>>oKV9cdc{#8sYiQ){YWw&NFY8CF9_Z6a$BqAPx6}6r58*Fb1KZ) z{v_o9lBy*>fwx{1neTFw8JRf$Ks~WZ?UTYnL?8(y{Nas@1?N`OHRPDy-+;Id?ELBy zL{beVsfLhbLrGFC0L5AQ2aQ+R@<`79%=guDGBbof79e9 z2JF(DdVvlJACWs=n<6^EqlZf-p`S=#yKv9+-NUWak)hr z2~8)VUr8X=kSCHs!ZO(qJAoVVSNC?DCbZ@A3#pt5_|Tb?NkX$o;AL=D;w?WO_DJkL z+j*i3QtPH8df6m22P1>KnF^S8oa_I44QQbKS``Al6o~stxc!~T8(2jaEQlfSwqX7u?zC4aSK(lO2d*HwC#9E8+OJtkz|@-W|1U5i2>Xq1BWO)Tjic=LTQg{ozx!Hp4;{d z`Ud+5-5`9I6xxJBspE3_t^7UKK}0J@H;)0og`)#N%^f{6|Nhq@qdD3z+7zA z9Z%>>OKou4v+-wxN^=hh?InS-KBuj(3Le_}DI`;0a5YlDqszMOGcR&N$EhVe;#Y;! z+9~(&H;O0vNN7I^9f0m3fs0$f=OBV@u^j{7m6sWy5u!rijqJstJ|i zn#DQ#nqT@#3COVg{mC}#wO7KGt6Vk@`fZ;kF=t3>vm{{h<81jrgk{5I;g;P6qDa9h z=82P^UAE7WSo0*c074C^h#QgoQ7vLK=b8BGi%u8Uy@138lFT9rUBY&cWo+^Re8vd( znheArFth*0NU1 z)ev=-pX+x!x;^5U7K=Ae)`W3+nOy zj~&TMgJPg#^hrSHuEQ2CEA(E-K7z{A0Vgu#lS71%>MNS1WgVNwayKQH{66_+ZK?p` zaVcxs^~DG}@<{1>*nau;TwY|~xm)j7t9)`@OsotJdhjRTnT)!SA$I0UhQnZPYd?e! zzuI$POWtta$Jd|O*rxV|B)x{*~wNgTXQ@yx{g^kDv9KF_pI5LCn%?qt-14CGW# zGDIMavB`F)sj{Z^R^`!{?6@A=#*b!RWSO_TkTuXMvl#gm*WLC#@sD=-^H<+0MUj-8 zfXjbX14|xAZBRd=FB|fm7s>8>o!kHUv*($Z2I}hl_dDK_A*}M78(}^ZWXHK&j5}Cy zXg7a^sgO4rvKu!L+JQ{nE3ED^k>;^=FBau;eaPrLGDMT!let_lk~PTXV^%Z=8$TgE z@q8b#JLSgtTjn%J(F$KO>PH6mn-j(_eoSW8mh2QQ7uWrJ`1jD(4`g+JvUHeG4+2XB zUVB5&%N1{L>@_g`VSmB`*vc^0fID@mXr>Wl* zo``7RFKC|H$$a>kjD8`bsbn;b44|KT=`eH*^o+ieIhv}cWWdnu_^-`6Tt3W z$Y?ehYILXWU(3fehj^;~EKfjpS~hB`oBFa#^?NbHa4FQVV( zXt7gXr76B5sn)7I$gJuI87+rlCd@I0J5FAof7iabD)(Ay zZ3P+hi7TN3_l*qq@7;qSk{JtVsxf{s@(VieVEXeX8L;40WK1669}L_G(KY|hHCkmP zXs;jGW-rm?TTPa(Ap`iiioX`B$#LH}j7{Y7!H=DHk6F8@xAs|$Y5pPBk%7hm?RfN9 z;@@5_NA(WjTBX0r7m#|gMgv*dm#2{o*dTBtwYcO~Fgm8%%P^x^Hw{dD-xGoN2%J2H#2vz<Z)d$h*Fa=pdOH3_4iI;lF=9ONIBckLmn)=@zr{-4Gd+ zU*SDlDsGp~TMT;Yn)$cpZn}CF|4_2f)kh=!Zrv1WOM?yAmlGp@D6Ad{gY%hUY+wSNu)yLByN{|=c8EnNiv*2b^~#L)N;iB zfWOJ(Ng0)>Ekvs+vivle<+XAKhK(MG*kE(x=0iZ^W)bp77l~1UX3Z%BYi4UbX36Lr z88Wq;S=g)E`*Z1qP}I4MlkKk?gn!MG(FHO@gBIZ}n8b({M{EQt7RlIV6j-|}yC)}F zd5^sNp(QeVnXE7ds}h*tO2dJKjd%9QAeJ$y~pmIC<{cvgxhA-3gk zQS#nTpY=a(-Ii}hQMack-$h%Tx zy;jZ&Lz~Ypj5tPQMurWX;u1{iyubMk1r+Y#o#})X>yKak?pkGfeU?Y(*&8+_eOX6v7~HE#IC~CW+mw=IKOM?Zf_)%0w)Z?b=%-t*OXpCU*m<&ij*&m{*Tac z6jUgj!e#sPrm3m6VFdhjPX|tE)Ir#b3rTjLE^kdzID0|ggJlp&VMb9TqA6f;`v~G< zDA*B|`o>7uM2nfUqS=+pw_Ho}&NM%WrO3olSoSM9WZ(*Pit)K2?$>Poq;&T4y#nzR z8Gk{Db?PzaM+{HoDN^)kA8i-nD-tN|L<+MG?}tE)xaszU>f5z4{n~?kFICh7P9#wP z{s4tHXmHOHJ7oXFxhul%K&0C3WQuA$-bnT#nBa znAKPW8>sczBH9)kEYx*Tq4qApzMVs1=TZPt^_Ck8 zjIUF>D7H`1_D$fCw1Cj4;5>>#K1H>F!v02)9v3VY8Wb*s>ij$71cCrya~$}5%-SMq z9k(NsyK8k)VcvI&ToL7L4c}X_G8`g$a96TVar)6cX;Jqa&N8)&DG*hHBH~7H5Ac@$ zmD*2zrC$qd>nx#wU_4xRxlhJF6Z)a)wf2Dfk*G@nr4%66!F4mM{LmO9qZZlC=X>wr z52%$3*si;y}J4y zw|dt2#YZzt6Cd9HNkOY9u*wx-i$S%Jg1YaUC4Y#2YbZZFwYi$2Rztb)2?w};P zz;BpB5b*%cv;gv~D%2->{qxgO3oT2Edv_MM0{VAT%D(rkN0UcSxUL)#yO7vQQTRhq zcLt-k4c0z5AH zQm%YnT~zdY0J;F{g&~;6Q0RNmE+*<4nx|eg+}-uno5rl%P93Hwx#C8k&=?{cc8bm= zMtYM6MR7X%#huH;KYK?h=on11f25oO@3ZGmi(d+Qg#S%%Oycv;B_LcQwS-}!$;*e! zOYZHH6qj*|(gX#tms7&vmt7Wm6D*oS+GGEWdEjF575l#wbP{_RCmZko!gRyYbu5v| zkmn<@+Yio8QKUmjz*S4!8-6$R0BfRhywPYtfA!&M3UFa&C}4E_2M*FOiC#@vF}C4t zI*QWHQEX-@3JW}QPz5*=!W3HJsF9(a)xo8HuSK_#>xT~Ro2Q@)*jG7rP?3Pwi>a2S zFP)AaT{*3$=NBpH5(SVb%UHkZJpqsbG?M#^=X~hIv5Q;Xcl>%9)t>U23dl*gzHg~x zt@5_zx+|2{TABA>tIesX1r-hsOu_tp^Sh5v=@$?We;vpxdHIA#(vr%yqB509AoYHTnpDan_ZF*?7Y}Au^-j<5mQ87VeDwnmX(L?O(2Qrb@iQ9LcGJl~E z*{J*Og#%UgEduF1?Ij z^}MC7PgK~Gih5B&sD~3DC=iRw)tPR?J=E_yIi|{xe+!LBg_icAV)2jLh8zK3ju$Gs zd+uX~_=>qi|J~yc8*LxFqpH29sxFf9c)#M1eNunJ^S{x=mk&=ql!!An^rg!BQB`XB z+pxUF<*18~vhL!42yWcMbxo7k>H}5XpQ@29mc*AVfGjVay!$OdV9GVw;yeG#%xwWw zG!Xv%V~NaPHjAF>P;3ZzS8Gy(ehUtwss&S-^ZX&uXoiM2%^-?j)~ljYclTJvdfQfl z?T6EI{uJc!x(*XpjrO+OZATWKiBp_HsWKm_YGKr~;Z)@aDm$7S1hI`N!ANMNe+TGr za#QL4>rc(@3+lWXI%sg@B3DQh6;6hXrh7LvBStBoY-aFVWjC*BCn}mk1q1#wmFvy_6y$)=^7!8wL#rzHOejw4zS!)Mx=rqza`YD}nu>kwE4G7Z zAA0R<+OlqgAoE3`Nxn}>8kLz&WqqZp*^qxjb_GJLr78ObA|AWuIqN03D4OcZ&hsLK z?gj5Gr-POGRfBidcGA)_sAwh?w)8Bhq5fkI0H@=t`5_wL=X%#a(b2?3i<)dInuARj z&S4Cz@0`5h!e2vk4an^BFaJH9OGWdr7W#{A)7!@xYks}nPmibH_84!PxtUKz3#jNf zm@_NGSK49Y+ok=RrD24D0Eu$ivm>nPRUuXRJC$WFQYQdD*G9T)$qLE&b6*7SOfJf8 zI9EiKEvB+cs1l`Ab{SRU2bGm0T293P&sek`OFTgo004JUS+l=>hOW8vEd28<&Em)T z3MyI&1D`(|`=aH+WucZEq3WkJZV9aqFWB%CDvU)Ox4x+%4F0^^Fv_f|+uJo&SVfhs zrb>KAaPY#d=Iv$=;+2;u#YHwLS9ZLwp`x`^2s&_LoRp#o7!!2;-2tuR0sLxd^;ES6s*3r_PQ-F0vR|XB-{_hn#YJaB`RKayA&pd4 z6IHVTPFjq>BkrRYyNrHzWI3Oxdo}sU&bFC~wouVuRLH{rhHkkJt_^2)Z*bOK=@LP4 zOp4+4ylpU>+DZja6TTc{y}$8zNL0eU$26~JZ_QHvP=UnUM*RnRGD7Ch+v->f?>4y+ zy=1Bsx!Nuj!ds_=vd14hFIby#q^hK6?om5cxq~X-Nj=|1Rcj^IkSvAlc_GazS^IoK zb)VU(kJ+N~UPp({bW=f;3O*PrQmG=?!X>BqPJW5j)DqJ}J=;rVM)4H#L29{tdN<+u z^$lT>{-<0;Zq1zSqpC+^1hSWu9_1T0DcVLQ1tCd3Pdodm=m54h4N|$R9_nFAsE@)! zfAHB{Sd6DI4SOzd%MMY|VfeRl1gfG72Yq6^zk{i%eW+vJz?~k0Us4i2O`}x6UBPt+ z!>1c%M`OE>)b-UJJ>o|jqcX>-%n7PQ68_%??=w2rJwfaWm(x3@fPAQ}|4T(Dsep2t zqH=kFKmc}J6r|4ohd_ci{vOFJ-fKXKKAHNBSGJ>OGn$ly-%AhrQgX+P&(Xj%uiQo@aY ztzV|1uW69*48vTANal!tuE-|$n=6GiUf7iDn$u7V8fuCC9?Tztjpe9|6)D8qYkaLV zVnr4_=f7CdnAS9=4NW3m^j{@EKcZF!Em|7XTG4%1@AXc)UNSOMQZHA`qGypPq&_D|hJF7|Oju~?L_tkIVcVv3h zAl=1oO{gAFEuh<%Dr(oq388eELHoXGu}`T8Vop2m}NSAt+>PJR8OS8vvsdZYSlZM z+I!krUmDAgru>1%1e}>rGRF|l7C^-AMvDF%iDO^iJ)S27yr=Yoy-u5dl<|^DW_3l6C8AwBeXlO7E4WU8GBb0{eTfv!1 z+MWWOv});*i|Yma_C=eQ-|vum|7r3gO*V`s6;5MC(3mYku|hopoSnm}yu@L~;?g;~ z{G6JKTxUuo4f3vlHR)hA`Se}>(B^WwUXj$O5fw#Kj;6`S(3q{ns(;hiyZGD2!x>>L z_DYMJc@Mn~#L@tp0S%OpW}mDX;kEQIqDbsYv7tsB4UMOv2{bg31_~HX0{;b-^-|HN zW4FGE`M5kD&9yxEHHijiuEXPLC58mAJY}oK;E`$nqmKH?H1rbk)pXsi8D;CjDv$>TFk?F&sUL$q6Xk{hAtskLNj8svO!N6xV9{JkzYiZ@9xPkxc{PTzI3hY-fJL zu@pQao7$zszh-+54b7ziVSw{c`S_97tf8lxDGryuZHyR?&7%RL9UeNj>+7)@V)8sP zTA#Hw*{VCACOsq!NqOCa&d)0>(?t$OTdW%smlrRfq2Fi_*(;=BDkK<105kaE1$W<^ zIxVret|P-v>#A%0>w@nz`63!xOoOb@5Fd7C=fb(I#Kg$^`8UEYQaZBimrH0er8HI< zjroHH;*%Vv3wZlsl?A1vKOI%Ke=ZzMT;HlxPE!vcRKR2hF%4`wA@7c)-pG%>f4K3{ zepYlwifJW{^^>MtMUx-o1=w0QAGJWKz`)@+JU4cnZtu#9kYgpVeyGdoRR5x(zoBIjj*n81l*1=< zL+_JT^wluaimIws8tV^Ds*T2So^vcE)<@DM@l`g^Az( zxVD1^i5lpVdu#7b-RNx3ZkbYW=)!$Y?W8fgXlxfg?0g2~%Uv3)-1|)QCvnB=ib~?Q zyJ@T*noKCE7b_3pOVtW3Ebs<%SvB(G*C#MfqVbKi;NKVVP~tu`n}EjUY$;{4q9hBOH-bsDZJ&i zSP5J|=MSb=BZZ5coA+1Cdr#loFi%sfBfz>Sqj8|$;CUczo-(W#;bLwVD0NY)<*_y6dSH8my?K!#;%<=%^bV zeBnRXCjV{+wFi+xp7|vf4R6f;KI~3sdC<>#(q*dzW`*C1dC@WMFQ&Z)boqNzVS+2; z_B`F5XZ<49QLo`GUD}&|)`zY-DVoRoR_qez+EC3nxAEMQ zk3Zhi*}ilQKf0PFepHBaEJZ&=8L!3TKED@zb$+w#;){1Y$Z=$A&fgFGER$8c{uJ=t z5C1?%{pkP|lYo*2&Oe`excYEf;L80G+@$uV06NIIEr}wLMds@*La#KfgM&$3FKdhj z($#|KtYA7TgpP*N;am!USlPkhaq7tWF8>Q3O&=E}F`m0kb#ookZ+IHKvE;(G?{bnp3Fk4XcXro)onvOqD;vcm6nf% z2v0nKyIAhHeY=AVAL2KkGL@`+;?;^AdBTny z*;n7`Xb~My9G|dVR8V)Sg9ch|R#6)F!&G=571PyA=s-hi2W@@?U9@bDm|gu$BEaoT z@HbLuDIG0?LXbI5&D!QJOXvPe&(ccV_KSEF%m1LG<#h11!my64I+6KQve|NfI=#2_ zPCahEg3hX>tNo-i$9N_MfAB+)RP)Dk_aZhgzkJ1ILphr1`6{|hH65*?g8^O(b4mN3 zoT?G7P84z6a@8Ut)AnbZsbPb>!Iy`1beU)b*4hF4wG9vDaz}_e$Rz1Q---2fnFhM@ zuy7+C#8!+ThIjiO^m(QH#0h-AZBa_wjOYDksiG#jOe-F?;1I1-KVFoG$Qj++{<3WF zJh7RMw$R~_w_oseY#w7A0jP;-s>6e?x%DKHGwxnJNlWuLon62?j3CGCEV#FSd&47p zn1A0@`x@U?I{JsM(MFeTr-Ru%!{33eNLciA4sld|kcQ&&jnmFO^+I{U!E zql+%nO;_uoOZ3uJ7pQr>{~$wQ0%9E}L-_9Fx8@lgcy-ddga;YS*`$5sfN$dy#@yD% z^xe<;=ra9uHXtZ5h0#3a3d^v$&3$={*dKe{r8RB_Nyh2_gJmX)DrR=qBDo-AeGv{3zm9aZeX}MS;chq3azKPxAe2i z;p6*WI`k2351U56d@^RW;`j(%ev~dXMnBsk6f8Ez+q(jx<8f@g_CsoDZ1)3T`f+qhU9~thvIlZ_I#Gj zQv07xXXWJ%*K^O%RcGmHb9BWNo_TDQHv1o`sq>xIIGE%bB1e6U?>)Tsc7ZOtNS9io zE7kHZa~hkIwB*>{2iGXuuKVHK+H8{J(e*mL@ijx*oFQewVAq0xC`aw9%;NTUT-r!Y zflyhP_Tq&eO9pDi02s411L8X1SHgjsW}t!dU-#{Kv2ne@;USXM=exa)|qTXF$)Vz)x+Yo;AY- z6lB)#ge!5)b&vBlLdAcYRt35-G~5{y=0uzaR6z%lLJ-vcv+6`j;yD4aKRT=A#V+e< zcrv8D7&5aw_B00?A}-Xq+_rdR?NG6-nL%FO&bJKIn*rn9hrwk7zV+S%P$#1`+)LLt zMBFI5^j`P(D0%!H1AWf`MlMI0K3Ae%$E|Tutd_F(y7HDS%f1X*KZeW)hPpok?cjmM zk;BAXweni8?&D0S8%#7ac|La{0Di<`KY9f-mxi|n{aM&}E%1zA$^JkFz;ogHhbYMm zVaMHmy{Z&f?a@u6K@2pQ0c3WLUHTX28|GnC&${r2qPYCoWGaM#hB6>5_7Up*kH!XX zD8iSZj`+arfh^~?PpjYV4r3^VGvG{#c)93|7s`IB3I%dT=x#EKZ>zYB~{vK8j+tKEH@DzqR5S zXaWNS&^W0e42d`#E*{(2{O2tW zsC-y|G&t|h_nOg}>t7k_84PA7Lp6&bktGUeDHLK6r5Kfj=fC{Lz62F)PXBd8SSgzU z7IzKi8OTH4?G`vrp4K`nJoBRQFR!NWPk18%@P-V30UooQ_4>q4#R1#4l(Z^_Y&C;f z!%(Rd!`X4yGO%FV6Qp$aTh-z=#~P=@N_&e9`4j^Q$oTV;iH5?%uPO1*E#5v$8?0lX z^{|3r?GY;42(7C1PcI*8qi%osNPFuAxwGER4w~0>F1vl=R=eFGjYbuiFQm~U|EA(UWKS~2d(DW7zwF&`%{R478hp z_At<1281p`g#Qa&oGQf0Cr&;7wCxfvSEc)ieIG-%pCL8Ckgw$*WI##;{813jhGRP) za+Z19dY^G|vBNhS!;RMlHjmj2G1SHhU=~iA;4*?jRU?9Q{B&uwCF@}ZYlNXO%3zK$ zlpFBlFq*LAa$@IA{Et-{g|VbvJg}1S?&+znuBxuC;)BurGklFhmkz-D z1ijhAcD~?nF-r93iJ0Y|*7d<-VMu5&YC{h+PJr`drCmIpNCC?{tEl7InGZ9`D?%MR}JwuMQe;|O5Smn z5BIFgJu(x#%ERC6^4$5A50RM$)Nz|QgBRQlmm`)@*w9U_3v-+y7LQ7C*q7qqB{9}A zI`J=G_Yd<8NBFBp`D=q^Oau_{6*m4%0UkQJ?=m>9$rv_1*c!pS@a*HJof`5o^bLX7 zOaOk31!#BtPm<96C^D|+|1miHNqiQ+DG=Whz)Un3AbLbIgnQxiIrGac-R-Vwx47PuTAIt&8I<1!4z82Afg>_U^igd0jBCVBBPUx^hPV zrw(C3JGFwY(tpJWoo<0rp7oXvod{eJTYyV+i&iP&BC!w8SjlDq6 zL7?v_Fvx?=mirJU6GX)6i8*oYmkym)V6#^-t{ALz5*RoO^j!q2T?MOx<-g@21Zr}f zYLJ|0Gt=r~-~#iIYxj)r3gFmOt1@2ve%bBIBv}`|X;zeRf}QU@f!Iv|)@^qfV>kqd zxRs~On~B<^@qhTYbLpU|vuZp9t33sVeu`cK@O(RR^4NX|qip}D$J2~r{+QYnMavYA z61P_h_~uZ)cs^Z}Aq0eFU)K=qr$%7dvmX|H5Iw{#9zs+0#Aa!_S!f z)@F0?ad##YuM92Llh0b0HMcfs>)wY>;`;*qV)g@Q?a(REJMkF%(e$IfU2l3f7&lT` z(^ftdh#v{S-BEHbe9AAMYA2gtc#!fXfAjYFLmWSW*k1s?0ur%5;NTP$heDNIlWe9w z;A8TZ0RsI%fnK(BkN}KVM(2$nffD#`w72a{4P?Liee3v`E#-`94#9%;9daS?VNQQb z`?yj!%VBig&L$Vb;os*hS^h9oAPz$>CfTa097|VkTEhAGdiT~-2a1EG!Ufg8y*x^=K3Vg=GOm05 z?qGC7Le+}t>n%3fg*|#IXW!u8$L- zRO2A_!9G9QJB%!z6|(9VXN;bg@OiXHVcrvgI9>qf6ePNiii&2cMC!)Fyk>x)D5< z7C9wtHevZx<_W~l1h7|;gEqs&M$eXs5AI%i@#X_Z&v1IlbHUnLF6^vbjk(wCU)j3y z&H4AWBLipO=fecT3xL2OZkI9s&S>$3#0!tUhU|T%Kx8=tAP{w@=h=KZ^S_dgmh9CEq+>6KtjxxnDH zU~`2)yI!tW25m0G^cLSdll#$j{oMIijx^<-l3w#hpyMM83P;5n%efO%Y$hF@LHj(r zVKS~#u>P$;w@RS@RJIx>7(|OWhPX(!EMyJ86!-J-gF!cyf=wbl#v8odQ-fF>bT+L> z&lEEk${ajsXx%$@+SpnF#5RX|^Zdcn)>l3k7VT@U+<34$v`(P!%B+X++IJe%gw}BE zslW17yAuk*tK2^KZfyW!l6;zNO$*08ZXF%Z4_r7U`I)d$AZ`+f`@U_`s&*NjFn*l% zeCmt$yPSNTN16rV7DTL)5k2amFLdsI(KM@B_Ey*F?Ru?(HEn|J?*yCM1zPU~;9MNc z_Qd;SKcF6fqa%#U+*dYs^QsTjDJNtID@%7XIt1cQ0qie)gke5@7}>hB#3tkNbA5v6 zcc>l{CGNBD60GVL=zB2s!iLyrdyUn>y=zvzIO22M`sx^sOci{t=)sh6Wt}@klk*=; zkS!;A1Y2&Qgi60(jNHJQ)RbiLQ?S#sNm@hE;Ed-p+2_%$t+BhW`&=`g`O~^yfx#!i z`p*J`SJHjZLr6<d7Fdw zH#TtablZf}03eK|U+%&n%j&hzk{PF41*q+NDZ3sxO1g&n)kjdct z$|^M5DygI%d%WJ3*ygVZiF8(Ld`J&lzC4=#qw}1Dk$#vRvBsX*5yf^O(9Xu+zQhxa zHR($$Ok6+kRaDw%v~6`Hbe#wtXJULD&Ou32@JrKOLpYbbA7ymjD!RY!P`?Wyb|oOF zfFv5~5EhwHWp|P|Z?thk`->{&yM*{2A$B7mB&a)q-MHi{fDRTpOmDin(5CT(V8Nfe zj$Qo_#K5nxgB6SzZl>aY)A9GRwKov^~>DIcsM66C>O zHtYD58N~X}Kr7HnIVCtXcfhOL6-8ymrF`Q?s;-UWC}20CJR=I|~_iud;lm zfBe+^{)GGv?`b}Sp)avISmr*AJd(5y9fSqPB4Eb5iEh-34xPrWf`Yyc4+uz@7RblX zDt8>S^#ApB#ASmOTXKAA9};UG5r%#Qs6CuenPCC`m^1udCwF$fPtBiYN$(2g*=XXt z&1x$gjqVMbHXQi!VUld9KcO2y=miq%N)>t_ggczP+$~q*v5xKYW}XH9)@9?&lfH6z z@lG3u`8ww}mrvb$Vy$lW&p`xes_<&d6S@a?_izH2EYI3go^HhrCJaLe*i9Nj`kKQ4 zXY($zjU`iR%TDMVUn3jEzz=f$j!o>n#h7_}!V7%w#QmW_F@!-lp%p>s1xtrYhe?OS zi3HV{Pgi&By|!iW>&c@_-`i1M_*D?`5S5n_>uYECE}I5>{8?dp9!Wibm@2yjHh8hO!&t2(XSm zL8B~5iipekR4gKfcFxU6tM-r%6^x4~)+7+C5()jMguye3(D#W2{O{K`b@r7FF>4a7W0eN&J!A-j?aU*K)*Jgl;xrP^!=+2OshLwfOM6 z_5OaAs`jJ8-MOc82)$gwAdgu4jL>^dY{@4!m&kHB1wi_Hl5t2pibuLloVnaNI%Qod z`5d!9-@k=y#NQNF$7bkmm%1pzKi_4s2-7@tH32_kt3XLQ~$Ra`2;b1H)?aVK-^g6A)DJe)UQ4t#hxYi6zzE|~h;MTc9nBBqCXg)W)oH|Z@Qt|DMZMnVMR z69|Rt&Mm)WwP#dH9au5Gnh@8(kM{uC0Q&#Py-i-Q>OLX0d{CQ_q*zO=sUr+b6?5f5 z&0R7p@lK%h$jcYDMdw=%yQ#D&;W7ocB9vbY=k3}}_)U3!*QcJ)`M?3!_$x&fXRMbJ zIjX}qbXQ;9h&K@WT_}1){d?Vo5q%|xQ{sm&G3J}UZY1=Y2>o#UK16E=t6e?Ibtx_X zX0wdUx`5=EWoCG8%}l&J$bF)HY4T8(aT+g_Kmk8UJPpHtn0xQBqWD(;9?hK+Ko z8`gGvvS%3mwjV1JtYS z8nwyrdS3r5XKmA#Ba0996FLLL_CaF28xHx@!6>ZtlYzGTz;&!=BX7X*i<0mQVK_t> zekH~~goNP)FqWbetJwv2tUmxIUS6=sZ>3Vu&nM+?8o!Nv zB8$sJJiron7BmGfQmGQGoW~j=v_=WNLDeS=@JyEfv|>fQx&7e~$A!jIr|<4C5gM2Z zbvu;Mf{S}@dbBHX=ymD5&#u2Pbmf$82*qYX@l7F^EpG{t`wBP_K~8FOAxedE2AyEM zrYv0*o%W{A)|q&yzkL0Wg>Wqde-Wbd_NVZ*!c)TE-d6LHT~-+!KIoWhDHPukLTolP zz4qr*7Ir`NMc0PRpQXBOC1xeuU@hD<03I+9%Y|z1TDovtm~_-VkI!#Dl}@k`LdF7k zXkzKxpWFgBb03$-9k(kv!nYNQ?Szm%N$-@ihrT1hFRF8kcsT<0p>epje>PpDfjmne6S0YNNhKgDLRpOvcq z-d0!c#PM;VZbCgXFxcY>edeUL0e#!_)7k3_4&1rrV|3t_g(Hazgz)a9w?j z){s#H$C##;ski%N94qJ)w`svb?FvS#EdIQsY~x<`2GeKDYU2z2WR`^pw-zWI#osO& z`*zD%^YMRv*w7b|mTD6!)DIJ`3K!}HsoY~o;?l4uC=(A4RQ+bEbnD1Z++PbKgyKj< zsLse1v-Rn@OQBcC^iTDS-0|Dq2Srgr2q*d&y{;r{>bFqseW`ov?p8z=iQFP~1)f`N z7cCUW013#%3c*4T3B8anp3dfyKQ1KroHJfoc&+|`;ifpDL5O<1H2!m8;;u(c)=5N@ zwsvmL@BUAOS}wBSM4>O9GOj1vg!Fzho^9lCxiFB4Z>>|!T9N0Z*q7TlF*#|+?RcR$ zK?vdcP(LT`D$_AoR#ZrHnw!rH_9Q0?#ZQHxeWDq%xa!?ZlkDXo9+%g?b*j0vFG&c| zCZXP0N8?IM=*BCFb-WwO%a{F{EEJ~*!60CXd<5+;bB5GcS$UiuL4;}ZenI|4jmpSBSDU&H& z^F*dw4lh?Zp4wA)s6^+8_aED4Hu|?|;uT?xT^AUN8?TO&PHSFyu(}>Hxqn@_abo=Z zhkJExqYHJ5msHB)?jg6r<4^5g_hdw)S#eL*oGc+&TA>4W%g_8=b8ve5jD=?R_qsoN zo-NdKhY%%r{}x%ts+jvW&GROY)8D;4I!7qZ6@s5uo)EJI@5OIPK+p*Zz|nO5k2w6s zrnVBVy9<7r)~fVOD1MGUem=bBx17C2(SQE&)}vha`h$k?6#-T81wx${Lj9M*)rG?G zS?U~gCIz$MdMrs0qrP{jk2-GhvZ_yG-f+gr^Uil}KB-#x zN(iBDpv%!ZC#~F`t}xnqXnk+2+XlIEp|+3uL_ECqqNyf({e&FHpkL01&q#a?)yfq@ zh@Q0%l1W0?|3khD=Qcm;-(7ShT}5@zwq@y1$g;jt^cYmSBapcQzpyCj;iNb#y;llb_76WbY-kc{)hWX1%H0;(7oA^M z_>6vi_;IzC<-2B~b|ewbf-G5M=PoZ?ePKm>;+JKInv+_D5NiQ?A$#WbM8A?%*_MF{ zGu!Vi^llZdX%p(d6K?*j&<@`K1cO5d-viIO08!^o9ReP+uwC5X9@O4mSL3p_?nr9L z2jQkHh-iXyvx`q&GrIw4P+xXt=qxp=SH)$TTtb#^{=IvijQz$xZ!7KY5E^z0b?-9K zIdA-<{!s{Is7+X>f&XZtM|XzWWV#6W$&twLY*$5R=;K;I!-#Z z?*3d+OZ-!u`h^#z&eryXqvm;+=_%Kv{A-TCJzE^VxCElD^q_etS*gCU_fwQ`XEH|JA!Wx zTCd|Z<(D&Q+XF8(1^D>%3%3slwFZT{pXGb_$Uu)z3o>eVV1_)%9+I!VnP6i6MYw86 zs8_-G3bO-kYo2-_AEB4Zc7yMtskdC!wEeEHfr_ zoxcj=X8sLwy%{;)QIiuQz#Tu|ULJH}I6}VvF=jKT!Tcs^kWPT1xYAEZ8yC#?Tfd7{ z9Fq9y{Vh^#PKqr^pvl`LW{p1VUwOhM-j?&s!(}Or!=hlRa;f;(xls)=_>lqsiTg*X zj3wtZS`rFQuFTZLZ@7M@e)s)k!_y>%4?~o5Ocn9;*?P?;)`B{x#h*Wz_~TP8Ny9s& zt`)f{m|;yqu=N8c>QRJ}>b>#L@9Syak!#&jl8gB^*^qG397wTf=ZuL{zzb(Z;C1Em zM$HFpNj*E#(4Jgv&vt`U@1ROpxJqvtQ_c!nSGBKX$BEaQ9mutgxAPxv%Kl;zPdby}01wCwgIa|GgxHLA?Xbg?Tbz6*~?-y`9Ohp{mvdW5_vaNmprW|#f;FE|}vEl{mVavu(4;mjSsg4dP6-4Icp^39B}w* zUtg)EzH+DMk>ynv7x|K_?~{6WnGZ;G_6a(9>LCf!6|y~?#4jC4WqOP`e$#AIFk7Q& zy7VIwyuYD=dF`dMi`(3HyiQ-_J>l-BoqptcJBB|zcH}g;7UIb}bw@vZm2Dah4=PRc z#L@#uh))#=4`j$@nFNGQziX(u+2zcRvM5s9i}e_A7@fRu3XHo~w2PYeoQc#c-13e=V#+Fm zOg!x8T}ODU)kBRozO}coJex5ngBRRrNS;|*FgXH+z)8$;^Ek`NCfj)c?I z;EaRBG0E`+zvXqiZKpju%8m_`KAe5m^$7{92E@-VUR0K&zj|HPywR#TJ9A?y&!?A-Td+k+1?0RhRv?tiD(5t+snpOWO9Qq&NxY zn)FR1iKNY&LmI!WxPNBlFJ&r1|L_oX{K)2R?d8hls+t!z*6lvF$1Is#n?i2-%9ez7 ztL=SW?vL3IYiI4LYiQB7NhQT;Koq=mc!TptAz?B^3hyCa+h&I z2Dvqp)Ea=`f=6+Bx#zrR6F1fD(j2{L_r|9ni-a>?@XV}7;fYg^)$XcPu$*=4=U zDb68banB_&E2M%LOTrVwjZGdN^lxR024}`j;qBSRot{UEpON5Q`5fp*l6D^M!Ro>r zPO8eEJrTTbzq~x2nNMn)F$;il(AnP8aK6zPUuO5)u;V+u*TO|6TI;XIu6RL;Uy`8A zOSa|Cn3+|-)0!;4ch^*L{?w};|r%GbFkre(Tbj~*Lgc0Z{+K* zoB#7WCho*OwPm2)f4O7p-Q>WWt8crQ_(=Un-)d&wa`TUuMSYH5*GfqJQc~|LCrcJK zf;wMKWOg)rB<&}(TN&5>lrJN7Uy+98q?W1tYiR6Se4;}KqsG87BK^DX$7kc~S*==C zzx(%hzp8-OCLuArWFw_L(%{IImk-U>7H*&Xj2E`Ol3ZWLals){U}A{F;phC9ZOQRP zgKo^Xq<$5t9nOxC0sG~VwbQDPJ&xdRx>J;5e&@ViHK`kba)yUp4_wu^uiyTBRj2b; zkD>Q9q_~!ZfI4;XF(4j3oKyNMOhi+Veo%jV<`?6yq#5hwp)Bf|6m0njqjh=k}ww2V5X11Ye3l7)dVf*I7!P(XAzNd~Tj|}A$A8C9CUk>fg zm_1wG`PQl?EfDkn@IW~{xt$chCtI${nY;B}CoW z*_6H+_K^hb7V7(6KiPlsO2vols9k9-TP!AZk^0@_njUg(FKPIR)NN2eVn&NXs{(v> zflpGrkCMUgX5lREDA&IGGYLr|0LMU<&0e+Fr)rOe@?!ftbN%~BaX$%Liyf$eHRK%U zUN6oz-F(S10jnvhDh;O5@ISzybY*W%Eo)8+H1|i6H7zhF*gpA;t^6jib(x7DY4ql zXJ1IINEkck*!ZbC9+fATn^3T!2z@cycH>}&%-$7uQqR0S^KMa)DYYg@1?*I&6}xvV zbc?nh3OI7vV@|Q=4N7cAf#ay9M9 zI@l3CWOLNmWXf*FJ#<^a`pOoBVIQ->v(qJZOXus+I)x7wxZTpQ+f>wk<3;}oMmuk z4mh}(9@(%mw8whE{}g9jRjyIe$I(Xs0AxV^xRY83!ZW~|kE$6kIs(Pi{ zoUef|w4|3E%;^hrnE8H` z0V;sP%#Q8DFVw7g^6;bJ$-|}cPV*ODWCl`tK@;gn835S}$YJ2RU5m|Ek*0YfR|zl#~FGfGoAK1SofW7WiHNJ2-g#F}op_`doFoHQy~bwtMmuN*qstZCR3=-hA|?j>A^P z4W40F`Y&!WZ%d%WF%m}VJ+74Ju|($AI~N|uibn<$DQ!2l5O?)c{SsJyD^bdSn$p(& z${kNBh${^5u(CHKd3uLKoApvAM>@c9ehP_KFHb(2c74%aea}fMgSQxulPGUAkQKka>sl3mlRyiQFD5`-w_T`I&`N21*38E2s+HU^{B9@q2dG; z@zePm>6F$JE^P13@s@u1?)lA&M>15)a=$!x$)L0|DT8)~HM5O@pLIW?aXEIS{XCoP z8#kR=Z;?gm^r?fXbdJ&5-L;p^JjaQuROkP)k&_Kf1&H+95vXMk6MP*so)&UEf6D73 z+LcBbcu`C0Vikt4dvoR?_VPJTv~sD{dDOaRl-?u7dkhmza3`^;Jh(jJSwO=@n~Ez@ zcC^QHYDYe`y?`43SPiVRMtJp>g5_c18Qsol;p@j;b})NEiC;pa(uKecz^&x4gd4nD zlqqdEx+NtgIHW}Snf9C_N?c5Vxmj|cb|N!3^2}zXfS?@W#q@Pm=@v|!|1fDbHTLkw z$7kOA){Y#OEkQ3{N`X{y^w7Zzp!?(7SSzL}l~@M99=xgKzLu?0Mu}e`o|}ibZi{D{ zw!+nhEn?%ZaOLfn^ za(nrVt%9iLT1v}=^HK_*)#kbAEci$M;XiYSP}bpe9ksd;G9BYOGj8io)}c3FEC}xn z#pdj&r^F2uZ2vR@|9~85XTahJ%@^O=_xbBR=I5!4=X_=x^0b;LaWe&$_7=otzz7N9 zc;K$BWsju)kZ=40f8zD4(XN)et<)Mb60A~M3dgHb%068FBK!5+f{mZF+bHon3WDRA zBO|Ku*Tex)kR@9?WYL1Kgo86)z@h#0#j{TbDfi16rdmxorP10>>9uem*qte7apF_) zGd=#;tlvl{!;SAL!w=M&U`7&h(KI_fR@HFzpVxJIZAt(6e`a@3+d8Rjp{$P-qy#;7 z-bor)mznX@I%mZ})#=^un!G>oyPyxqP@Q_ev--_1Rr}S{#`z`Z-W}6TLHcz#i||hQ zZLeR|;k<`kYd6zngPa~p+)IJ0hh#72@PlnP9i%x+ye?q%yLS4Y`b6n`rZ$%dhA* zCr}d)9fV-k&?`U1CXHvCOP2&}mfyx^T>LsjiN8{CbZ;2u?_a0!yF2^(y-sc%r*VI& zk^u+v8KJaCDIF8qz?5Fy&FEm(fcrU^0Jgv8jpp~U`POneT92-9GH=kU&1n5EykK44^l7?gl62VRC{XLb1r(@+8hBWgRXm3ir zLvJx-eqrGDyg9z(wm)0Zdhz7y_$N81tY|}PdR;KXUj{zo=~dZoKDuv~YqtDx<^IIr zS{qtyO9R8GMTT|$xOIAAZ^~%3Gec!Hr$bTU?Y@M>%;at#CcT+}?oVObdLAt;Za+|M47(Q!i#L&9aDLG5(X^#&$KI#Kr4m`s^wf)_1hWNJqq}yF z+dR7F0j>X#)_Fwh`_Zdh6hE=H z^$IB`-KEe=O`B=c#7!#?B4Q{Lxnd3m>H z)DAv~pdoU~UOaGjtV8v>^bbzAt8YzN6Um8$0Yitujo4GpDA4=~8*Rm73_Oo7ilTKN z)4Hbe!E8{tmZtmmINTifYt=c;m4Rc!=SI_8VrcMVE?0n@)KtiGsp9#8r8k;RhjhI3 z&5WfD<7nL{G&lvs!wa1Ro14VC2u@Ugs;D1XBVc z1nfKc5V=hI6{$Qg;KeG+nDf$`*M?Li(*`Lt_ydH>w2i?}JP%TtWH9Ey9w+t|<54S} zR9c)yi{HseJoqagrJt$!aI7J8LCyN`Nrt%)Gb)1?kA4d^f08a(I@3l+A(xf7`BLwU z*_pIB3$Dv#)8NM>NljUMX_j}!?kPD*W|{n7&syl@&<3%LT=WhQ-V-lATlK+gebJ)1 z=3f4>D+a}RwAM2kZ7ecjV^NjGu>O3|I^9R#Ebn2w`QqoaIG+YbH3@_IvWLzeviq?7 zm}Xx5X{i*~0$Th6O~IEml0E+lp9SAwT!-nC_tQ@*GA1nx*_l+xEu=x!g!+TI0T))6 z-|F?-TH}$lqd=yJUR6x%c#s~DTDRUH?!ErP8uacO+4=h<`G7}L-_UxM z^!B&(#&_~A5GN*Efcras(H!%7+O>@*6;>Q5eIs8*ud1fU*AsB4uaiAjFVr=^^@Md6 zc|&dd`5GG1hS$=VC3q*IjN!)kgWZ3sPTrCjS=_#1{U(gkZBOfg6}qz9+JV>6u+rBf0W@^X zJt{n5pEyEc+DtJgXx;}}+ySI2lnA*Wn`XRE{xe*4!!zH-HVz6%GYajS>1`GhU8A&`XPF z*D>+@HvJR7TkH&f7;>v+#uB^ZpJ)gj4!37}G`#Fixz943v~OPghlB^8={0@y_z@nb zfs60!XzGajMMoupH>p8;qlR@qt>>u$%GbxnlM}7l%tk7M<_<9~PD>pC8V2_HElyO* z^xtK3x;E&a%vSzw# zNZ%|}xHx_1u=0i$=jmUw8jtQ)D!(BTn~C7Wg2c@=aDhkRPhZ4|a}GJaj9l6i!?>LaG)Obb2U(O~#!L1~)wEs?&tNZUfB+s(QoeOn|s5?~A_45LHaw;Hb+b|gu#wYsQ}g}anuMo!cPvWD!mbN!L}FVJ_}NPw*4F*D=G|H~*(+03 ze_b4yH*aH$9PV)~vtdq!Fn;itBKugyo=bM3HTELIE?EZ=oYgvY$mqg(K&rG`gDJ?p zV6NSIAn5m%he{nq;=AZjJU%$Pd`NZuTjlDJPcfI5esB^&YHpy3+Uk?fyg$w;zp!J4 zTGJAPr_Lg=iwLA8i6^sELWtt-%6a|y?&UXPQm)K$6&c(9_}{J zAisA0+{|s|_j+7)sMT&FEfXQ=`g^Yx44zS3eRuY7y>D=Sy_~xU)KSQg@-*o4gj=nn zin5#(mHQ*(=6Hz2o+5EA&4`JNF(-^tq*0LL!K#+;nJ zP26K0Utev;H}M>)*}O7RB#sh^?<+J?aMATw!NmIV1?pKYM73Ai$ES});%E^>XpqPb zQPP#S$WP)Gg%HMR2$K0E-bg5M8Ixl(r z`nVXEMd8h1OX4GBYL+lepNQ7Si*yr2+KD2=ry_$vMwgr!t6Zj-6_4Y?;)8RC+S22t zY>Z#cmdi{`60J@aZFxl$F+qY(-nMcI75w-{wQKZNnfl8sQ((L_fZuX@XYDu?-1s5y z+N#uhqpLTjqL+bJ>EZC}niCEuZvO3zmw31+FHNN1%7cly^}`LzXu?Tuc-f(=!``fx zbP;e9FsYSnKmKtmXUE;%_3wPIOD)Uql}=z`!Kc8qbMnxPV-SmwHabjCI)34#_`H$W z_~hZa$0yN8_Zic$F#$f=2a{N1Feyil8xu=|lEO2^Le?9_K9;qLmC#ibDAy|8p;@Es z%)<)dD$@e$TBU20u@d+Qm-1>+E-Scu;>*p3iI(D`JHQjaFq zi4cs)VSNClEQI|m?1nVd#IiAKX)MxMlI?~*hc+OPw*U=u!RWjs4iG&_;>`0MYCD81 zf`vIE6de@i36Pa9>m};sdhkaDm>;UoXJQcu7BR3`1asuDEPz~VqD<+Aw5N2q%x&sE z9wsxy@x?y~0|a$~SoWwOQmKT*a^XJaOMa?CzD6()dx`!<&~2JuG}>8MDZ*7LhgBd5 zZL|VpSO{Cxe3h|5RA)+JqtaOVn12ov#90v^hIB}W&RsfnQhXfZc*C}c7^N3S?pb0u zUb^tRm-LYN;c*F+fxc8IvQd+&|yW=-d(UzB911a7c_|djKOt@E|LZMm~cK5&9}O za4=`ML#j#DMicXd(ik6E%pcVR$=2{OA5;of>EmKC=-LxmECC>+QsAeWEQ^IRzr9*M zszX%dCBh2P6N5~9W$d-=4}Xd})Cf>_GlDQ?mT1^t%VQnrKTN_P1k>S68$iZm!7x8Z z6B|Kw9V(cW9BP=?fMd2$8WYFG+!3tgW8QLDCh%VxF@jBHoAB4JB1$%_xYYi+A;NSEd!^9r_v$>N-r}i72 z_^ydy^k|YA7LDK_i9JCuh>v9=7|6tO07}(xM|ju^=>HGS^+JTCiHDT|WPD+}QaJ=x zi4gkn2KiVmx(bxi_~VG%(W4g+JpMyB)G%xP{sOCUj`Tz9Bc?71Qut?1_-ow zPXrX4W#Et9_-17_ZeVnB~k`%7&SX2PnK_b}=z)gaM|TErRh(%n6`$Fz+M7gNS8k zvmdcASE!Ln=ESOEe&`;c(NF~8`$hcqKNdl20*eRuZJH&a8o>TR`v2qz@YZ0LG!~zP zm1xd)FPV)H0FTW<(42)iFtC*WzcKrt72-RDMSzHZPra82#Ba$u2s1S-xSrgn++waT zubs@*d?4>k`BH9tXVpA@AOD@IH*K$&AZQSb2(T*D1z76p0kY#2tXYxjx2X*EQmz{> zoE+l4QpTF$iqtCx5MwKpRIJsT$$W*^LTi;Ts^8erfV`E^O!gZ?D(3qt*C3|!4(??& za!pkn_(_x>8|y&-N96o?>D(9y#EE@`|6_W&SP%P$=Y}5>i~8qi{ml*}8v3`q4BrjV zryp;o|Jxe`s8kZBl$8kkf_gl_#6|%scuL1gcc|8I(R8Szt@)qn9yuQ&%ylbyps+}_ zV4fu>ntUVzCTjyVQej+QP0UvQhu_sv9?Sm!TvNXdiC7XZA4SeL{%!zVp%-W-xc_(` zg3t>%39R{80w@u>Ysbu0y-Od6}7^;IF2?<$H^0XC3|u37W2bbwNs3Im#0E-G2F+9~WA zx^|Po@==YiaxN2l`QwcjBP3-CSOtO^6jp_x8xMPrV1o?Sfnc31)(cRnOvzW}tELIR zjZ>@Mq~51qDHE?SB3HnzlboH^2QUEH!DAY(rao<4j zQ$@fCH0lJ9S*LnSb6DvCjk%-R0Y3Hs!EgZ<1dxTqHpCZ!;(}3quL2f@Ux9DGvrZvoKkQ-~^-%nK>GxZ?NGWmC8m}ZW!Pq|RTg?OQ6sv6GoB1ULu>1bZB zVg&!QVzsbN_({nR|Du#2{YAk=ZkVhUc(ZL}14On8{Q^H>ppuW`EwYeIm2c*UQdM}8 zqL11u4%VuO1^x5AzA1D6sXn&-_^@@uE68=QYt=htG6W-X=|Ehya+yF!LulDyr1Y(#~h$$%&;RT}%vZ*;5X@D=UILUFW!#~$ zGAJ?79C8w1Z=eh+qdUu*D59}ubT7=F7$h8)5;th99o2x6GYnAbmS!;%yUBqXki;wz z1RidSpt~IAh@hzob{C*j4Gj{BJLiWx?+Fhx{8@plQ6}bt5W>W}5AcT6klGD(3w0Z! znPsnDqcqHFRccgvr{u2gtL{m3EA=Ve;8=4WtH%&;r5mJ!IVnVv`V&r<^fUG6>Msa0 z8GD&xB2A`|Q%wwTMme3tYne8gVRaJ?OQDT$RK`{qgIj1=X*g)4^DTgRm^ByZV@)DJwlFyV)HM7VJb|(7;nMZnQ){_P74&`$8Yj&Kb zrHZY}N77EEll)9}u^*`nk@?{J^g{E7{Bww$R;Ch6z1RGp`9{TzA4#>S+~)VIBvU?o zUw#^OpZ}2mM*am=L^aEoQ+@Its_A?ag?h?Y^@c(gKTg$A!CRq=N>(lBSMeM9&sBS< zK5BrP<*R~~5J|K_ zioow9f1LWFfBcbn)DJMPBqR8qi)A2K%EKN2l#;0bxu^zo;XDLE)_H+og#uQJ?g-a} zQU$8%lfx>1y!qN6f21B-14CIqtB(cCdoyYqdew${W6cMS@Q#DU|C77^o0a6dRpZe2 z!ryy9B3(t-6Hbc$oIW-9Oq~clsMJFUeVqW7aZ?N*F3D{MiI&eP}@zEmEO1yS`C zTxTFDsSn3$&@&whSOY-mI@uf29STLfXhjelnh};LF02)vNO*Bq2;q9GWAD(j_LQAQ zm^#*l?yw^w*jOKw(8%;l|K|t#@A~-x*jD^*Js(2I3RFOG9YIalG76b~BxcG*-GlQQ z0HuOBps(AYQmR6d0CPa4P$FLqbA*yiA8yIA5xB~S^5e-$61xX=s-`OM*d6R)rAYNs z>00$dyjQ^vmd##aI=7VD$jw$mvRSL(7T8jM++yJi4KQQX3iv}@uuMEeof%+639$eu zjfvu7K?uU=g&_!wQ4~PgX52^JR54re6=RrqLIx^ekGVg*5XB&bPvo#TfXvUzzH+@P zMe^7a_{T`6dR2Vnuyk}su_{)8AjpM<2tp@I5rnQ(B3Q%48Uacn9U6Q8*Og8LfegD4 z1P!_ypj?86nqXbW@Yj#vGfiv=pv*^h0^P;!<-QRV@S(M@ z=vs*~W~Mv_6SQgGp;IV3)+obC*+s=nBZ97@QZ(ambE-r$g7rlMk-G&iSv^|*iF^sa zoBGSfeFvT$;{--?WK0ZVVD|7I42YnEIYEilrrFLir_gl4+~7YWRUw!MT+0JJRic4; zBM8g1A3&)%W~Krb!ua3S`+v*H@f~HxqNl%db8##g;S1tmX$Yn(W6#l*F2Yp}dx>gb zWQ$Nu4fhToD?v5zOeumvve+wt%utX+Un&=ReszJi6YRT}zN3roTe+VC0>+5$di zhq#z62Wvt9lNeYC3_9p?KzD7ZCX9={2l!33?SVmL)Uz`QFhq6!c#}PVNG?DH8Il`_ zP$9Ck+!287;xp7U(iCmwQWdeUs2s;lr$DD3hB6DWNnfsm641j4{FjPXx+Ra9s6f{` zEvM6Q2N_+>VmG0GO&B7?k}^YFRHUr!)g$%MS{AD z{)Y;&V02F(_o+Ix8-nUU+KdDUJOoze$12#9|F(|oH-d!imk+>>!pTEoaPj>ed=Sok zM+(~ra7UBCy<2LYRITJ6iJ&_#ejIf%LIi7U1we@k?x>ML1}S2ds6Ivs^8*#?pQQD-{qTRWuhzk% zQuV6CN>~$=7@w7GG~u=5V6w`Vva4AU(xF5QBZnRoz=ll+YQ~(8<-=T(?jmw|&y~}e zh+?pQbOq?(3xY70z5*gZta`za(Fl+*nu#cl7aYt5A?yTZ_~RCrTnV4&V6F(ob5L6WN*2v1E?PFxqWM`3 z^MYC_Z*^E?A3$m1E7drqB#mcE)v`8pwQ8c~2Qp35LnV+7qa$e(>XSylMvQtW$5XL@ z&R35RJXCv1Jr!hAeMEzN8C5}fuswt>3I)p1!e{Ka%9uZD87v8bs13<>PAIAYh8m6_ zaF0j?VWvMucf2LRdLM&oOck+MfD9xKJXOcy)c$j&IdD`AX@}7+9?Cf^{tp=_3E=_# zH4S0T(R5J7GEoh*nT;UK?&p#_7+5}n71CIt8kYJ0X~O-VZBa@3-tX92F+vB1u2O(f zA)4+i>@})^O}1(Tp9`=?1i|3kg6?=r0fD_oHK06v0GRll4*Xi_-?iXJ|I&k_q;GK2 zrT<44Zv0Lg&f%?8^Z8D$K-^&cCBi-2aAKI~%tb;}h{=aF+sh}gb z;i(!u`2VdZ-;w*Lrra$Y{g<{JC1=I^r^f8f`&(!BCjUokenft+HwTdq{;TesO8&d{ zY_D1IZyI#zf6<})$bZ+OZK&reVet)`F8xzD*sKNwp0DzH0pc*(5XWe{x7ZC zN`Un0JO8Fx`+cWdzoNg_u0MRIU*~~_J@8+2Y)8=@rEhw+wbJ*Rc01_W;Ywkm2&IU> zG;T`*bnZ?>f-oyS1LRt>9usNmpX7&d8?Gz635?X)>{pCL%0?Br9Ym_7h_F6%e?5VX zNS>oH6Llcw5jl|CZmIttZ2MpNc)y!7x8dP26{?suLL#v++oBpk?*PbtP@KC9k4gus zwSjtwRK-CR%o8C4uH&bUMf`I?K`Pa^RI}o5d1k-sSP*(LL>&tQC}j?zjIan)dLsZ? zC=y+R_l*X~2;;UXhjXzfsQi~o_Y{?fxUp(*Z!)?UWbZTt;h7A8QiYmX>R2w6SeC3F zxoR1-ABq+Hbw?pUW(^n2g|fgOOMiSA$`K+LCiWJfR4Ln^#%iG?jg*`?ZXhT(An-Im z&EH*bLihWsV9h_?ln+u_y>YA!p#V9k6G1x;mJTZ`vUv2M|Dy_6A3()2rCfCrzBNCK zisMIV4DbiR8c|1ki9oyQhwH;*l33NO8?bGcD_trbC=&z{Or~6=+>o3TJCvO#UnC!> z5U-G`P^HkT;G`I>=%thb+Xa>!N6uYNGAEbQ#(B@_{0%zY^745Vx#J*8Vg<(O{)E>7HVc{rD}a@8L-XZgZHUF(x{Y)(y->a@q)lco5^e9 zweUKb?wUE8g_;AJXiFkXeUNV_ND`!iM^2`S9pNh%NjxUviAtiLXdp%idtrd^i7=4) zR@foz72YJ>NMG_TSxw%i0;w!2of@H%=^`2or<@X2mUO;Mr%Zxuo$QG06S*9)Ki_1# zvLisTiH8YS&qfM&Kl`P8ue=+xLZL$;Sg~8tLMc+|jglMgjVH5w@k0EQd>1~1-{U%R zZMbpVC){*y0jT4jmG7wdssyOStMsV!s@zo#QMFfdQ40jw@v&N?TBLfKdVzYmdab&( zMvjIbFCMJXT|5g-SIrR3a7}a8YfT4!Hvc969lwL$$qx{`67&en2x|!1XU*~_(uqu> zk?1E(gswtQp$juqSRi~O%n&pSTZJElBXa%1a59<bzm!x(38MAgAoJ_mEad7SHu0P>A`;k)bx&Dq2R{@pR6djF4cnk zLK4uOAVdx^v4DRvBxHp9&kc?o^sJ}!C>zT|&w}Nt1l34b#%ol1qj6UadxNgE(pVjW zC48&_T^XT3d~ZdiRDPri_6}VG<4?E74|CQp2#Lgmc9ZwR4_oly+ai<29oj_&vxa|T zMr5&PNJs_Q$dUJ-&Vpzp{!VZA9anaShe4A?u7TJ~iImI0+z`Us6y^s|s*D4J9E3_O zJW!&7QR$H=l#RuqyE^$;Jc6)8{S-maXEPB@=VG}4rTXMv@UiEp2DF`*2!e=Kgsvcy z9#)D^yWYzKltT&xR0puL_S?@B*B3LCtx^4K7hq>;h0h!??@7%YdNhT#TYC176} zLHE^g!9nq+<_~}MTbj^63npfPV7vl$=f_cW!WU+^k#0=bxw1xRnp82zA4lT~k4ja_ z-2--fGs|9h|c<>>UP;H9l|EulVf}+aS^V+++xk*oV%SE8Of%UJGld4J8-c^Z7 z+y*B_&QHt`hfL?d(jO;`Zrw5RnKDTN<76SE(N*b3R4GC^V8UxCr0rElX!K! zxW=gwH(DR#oZVhAzJh7u0poPCm;s_bt_?AAPw<2l#-X?38Rw`@5-)%{N6dY`I!D9I^ZiALJgOWnk@s1;)C4OoO%cFfjId zdcS=r_L9BHwI^{bs$xxX^6}U^Yhj`|inlhlZWp_5M`HQavx)C37mN^fTpk*HBO`W% zX2u;B(ZVA%1aS-kEpx6@>5%unW!kJqT;yCQW12kT zGE=aRTw&}?6IE=%Td|;xF$H5j&Nz`GW`KI*I*jHMPMvkZDgBgFu)Mp(p76!9^K8Dj z8UvHf0;-ALW_uF9+ufg703nRUPS}eULAMmU#$Eg4#S+pn$Kp;WzH$wwlt)!YRY8QE zbHPLN7H`-#Rp3T_PawRBPM-J`lW`Gf+H|7W$p|*v&4@^(&l!8-#6HFYb}_=?8H;Xs zgnD>c7vZc&Fvxy>+qYKKFv6yF%pLYdQ;(vt4`TWw1`|)MTTUDG7P%T-n-Y5M%?a4| z8@XbvvZj@Wl0`cs=Ijh(w_99bgcW~)5mNYNAUXz#eS|6K&<#dd@y8gUyx(Pnaz7P% zKMT}PTiPt5hpmV09`S-HeK80doZ~!L(~FGg`Xst;?Lh?O8$?8kA3(JZM1{h7b3I{q zeUk^(*5jWvgOrgku5FWt$AaW7_Uaf*FFtR(0{l}K6MMD-<~ULy`5jnFFgVoa?O2RZL# zswm=p38%zieugQg3ULl=UqbvZPCpv8Bl?-Q5-L!u>x}(nGK6a=LTA&u>=P-E6T~sD zI~15u$EB+g{tvWvq<1Bhd%^roOf7{Z!HE634XD?6@ulrZ!4+8S!oq0At_Sxg@7{~< zWsf+^xi+UFh@^*84GFLgpX2-?;j#~Dj#<3QI3JH6=EbPqbJfJnT4CQsh*+1cRBlbYWE0CwhgCG!tBEyvaKCog zid?v|A-Bd(xrcFeV-tP_8t?R@c6gk(Bem*nc!gaSu|ua5SKNEM@FuFz#`^hQ+m?i( z^xZMDNum@~TQ2+|!|!cL#yFMXS=$sZhOuF2BeCK!dKz&(_7Nh(wkOo3Tu2h-oC9{f zN=Ae_m+*#C1vz0fQPhB@?{xQKMmaTNfu*ySQ!B=WIxc}dzmf5vOSCY8Us{2daTlvD zqMK>h5qi8~ug7Vy-%89Sj>-v^g*-Ak>agey&Uu z*BEiK+yF)}&y0EIVN&ToXX_^D>9GBiQO0%CKxw&I8|=D(3hZQG?$z zzHp0qVB{MoOCt>lEOTHjzvg!c*m~;~&F}77@7kI9Kdk=tUw*W8{lLYs&E%z`v$LMX z2(d9WY^K?a!fZpC3@VQWDMwQ#A|Is{y9#3}0<~!tjdPUg6@G>!HOx60)1f|(F$FfNn~d-`+y+{CMI3e@ zkY$po=)?nHFamih{PElj*0bi@W+1A!OEJq;-HHW^E+7@fLH2oZCFw=3O`e&UT(4N< zCUHdMr2%W=L_HV)t`G!SZe|MD@>5_E-;pVHw0YX%Ixs7X*nCgMmst6}%+r*4?_&gD zRHg2er7=@(cC=uI^11ZI2(gtBwe9Dikd=COF@R8Hxe69YAY8#Ea{hMI1^Co6nD+VtpmD;y5?E99`pEABA$v_;%ygzPsJe)qn`>{*UPR(iS;#3QZ- ztoE4kfK5DMM99N)#wBb?jMz7p8KJywOb5a-xj8-TQ7z!2kdn4DHrT{Ypk?0MTEb9D$eyUSRCYg&v0k>WDAL~pc=;`$_0umoqrZ*VUCkKIN6iLde{ zw}Lw<^FVzmc`Q;aF$HITt^{Q|5lr+cQWlozFk{=8+7^RTtqUiCe#Q>Y-wv8KOG!@ zbzi|WMED$HoLna+SjEJ>!(nI@_WI=hhz`e9-1*|L>0)Sek6jm%>JarKYLPz}8Pd$D zI+&eBMfi6`TDe&$`|VuGN+5J6Q?OfhF+z|(%Lq5W$kl`pf88yO9+`1Y`g>)dPiFT^ z^Sm^_k>&+y4oGuQn$a<9)Sv%_!{c=QWm7y#Xn*)t8W-h4v{Ehj zdY5)Z8ds%nSZ0q%b5xqwqcWp3A@sY0gRWduhJpW@GK|Ih@(9wZV`2 zhgZ^=m;MFmTabZFeKTol|1@Uy;grKjb$15L4G(RNA=Z~hV@)B@+fB` zWp1LZ&18N`WScNv z8G9*nALW!2#>X+DjRwa=zo=c%D#-Yfaw;jain8{Td4SA=lzE7qqztR;K@R zzkZmE8p=6BStYbj3$;|a}^}h#4>$jKm<76~Y zP9tSCk$*o`YwJVRp3ChnD(@&A{H3d#nMmuG9 zklD#&g)CdO4Z%5kqn#n6ivnlK>?X|X`wnNY=|8=#_mFXp0=<;kM_K)3o~O)jxcKir zK<7fm|KkD~1LPkh-?tRFNFTqJE!yf_YfaiEGKMJUGWnm&RVEQv$hb-w!{i&GjDA_I zAJ#*w<$yj)#x?R?r_39aHO51VhC<8WuWpiYi$1wc{&C8_L*`uqyS~&No>%&OsI#;B z1R0a$yGNhgr@#ZASBLWpJyb!d{*a6*$~s4%1bcp1n%vj32gh7%)Mv?fPQDl9o5Nu7C;ZGYssB7!;a&YD8L!B9pF&OU(C5im zpqxeWmyjzoZ=Y+e+G{f2P}UL!-cq2DoEt)4^zkwoKTuAt+VEQ52=R$_P0LfpMwRni zhWNi++oX)m%J-@IMLC_CEy}-DWp7hvfdVW1%;6aiy&coGE2B^aid5zf zm9rytb2Mm;p}y5>ZOS;M z{9h|y7p;E#Q+-B1t&Db+(V_gEDyvVfU)|sT?2IzHl)sBYZI|eu>1UPEtpYtNa88-M gJi>N|b9HDZwLWF^EB|@ruT=m2#Rs(tjSm>{Uw|fkw*UYD diff --git a/src/main/java/com/stockport/server/application/controller/backtest/dto/response/BacktestResponse.java b/src/main/java/com/stockport/server/application/controller/backtest/dto/response/BacktestResponse.java index b55b0de..4a151fa 100644 --- a/src/main/java/com/stockport/server/application/controller/backtest/dto/response/BacktestResponse.java +++ b/src/main/java/com/stockport/server/application/controller/backtest/dto/response/BacktestResponse.java @@ -1,5 +1,6 @@ package com.stockport.server.application.controller.backtest.dto.response; +import lombok.Builder; import lombok.Getter; import lombok.Setter; @@ -7,6 +8,7 @@ @Getter @Setter +@Builder public class BacktestResponse { private List summaryReport; private List monthlyAssets; diff --git a/src/main/java/com/stockport/server/application/controller/backtest/dto/response/PortfolioReturn.java b/src/main/java/com/stockport/server/application/controller/backtest/dto/response/PortfolioReturn.java index 66255f7..4cfa750 100644 --- a/src/main/java/com/stockport/server/application/controller/backtest/dto/response/PortfolioReturn.java +++ b/src/main/java/com/stockport/server/application/controller/backtest/dto/response/PortfolioReturn.java @@ -1,5 +1,6 @@ package com.stockport.server.application.controller.backtest.dto.response; +import lombok.Builder; import lombok.Getter; import lombok.Setter; @@ -8,7 +9,15 @@ @Getter @Setter +@Builder public class PortfolioReturn { private LocalDate date; private BigDecimal returnRate; + + public static PortfolioReturn create(LocalDate date, BigDecimal returnRate) { + return PortfolioReturn.builder() + .date(date) + .returnRate(returnRate) + .build(); + } } diff --git a/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java b/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java index 054aa5e..956d46d 100644 --- a/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java +++ b/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java @@ -5,19 +5,155 @@ import com.stockport.server.application.controller.backtest.dto.request.RebalanceCycle; import com.stockport.server.application.controller.backtest.dto.response.BacktestResponse; import com.stockport.server.application.controller.backtest.dto.response.PortfolioReturn; +import com.stockport.server.domain.indexData.constant.MarketType; +import com.stockport.server.domain.indexData.entity.IndexData; +import com.stockport.server.domain.indexData.repository.IndexDataRepository; +import com.stockport.server.domain.stock.entity.StockPrice; +import com.stockport.server.domain.stock.repository.StockPriceRepository; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.time.LocalDate; +import java.util.ArrayList; import java.util.List; @Slf4j @Service @RequiredArgsConstructor public class BacktestServiceImpl implements BacktestService { + private final StockPriceRepository stockPriceRepository; + private final IndexDataRepository indexDataRepository; + @Override public BacktestResponse runBacktest(BacktestRequest request) { + List kospiReturns = caculateIndexReturns(request, MarketType.KOSPI); + List kosdaqReturns = caculateIndexReturns(request, MarketType.KOSDAQ); + List portfolioReturns = calculatePortfolioReturns(request); return null; } + + private List caculateIndexReturns(BacktestRequest request, MarketType marketType) { + LocalDate startDate = request.getStartDate(); + LocalDate endDate = request.getEndDate(); + BigDecimal initialCapital = BigDecimal.valueOf(request.getInitialCapital()).setScale(2, RoundingMode.HALF_EVEN); + + List indexDataList = indexDataRepository.findAllByMarketTypeAndBaseDateBetweenOrderByBaseDateAsc( + marketType, startDate, endDate + ); + + List portfolioReturnList = new ArrayList<>(); + BigDecimal stockQuantity = initialCapital.divide(indexDataList.get(0).getClosePrice(), RoundingMode.DOWN); + BigDecimal remainingCash = initialCapital.subtract(stockQuantity.multiply(indexDataList.get(0).getClosePrice())); + LocalDate currentDate = startDate; + for (IndexData indexData : indexDataList) { + if (indexData.getBaseDate().isBefore(currentDate)) + continue; + currentDate = indexData.getBaseDate(); + portfolioReturnList.add(PortfolioReturn.create(currentDate, stockQuantity.multiply(indexData.getClosePrice()).add(remainingCash))); + currentDate = currentDate.plusMonths(1).withDayOfMonth(1); + } + + return portfolioReturnList; + } + + private List calculatePortfolioReturns(BacktestRequest request) { + LocalDate startDate = request.getStartDate(); + LocalDate endDate = request.getEndDate(); + BigDecimal capital = BigDecimal.valueOf(request.getInitialCapital()).setScale(2, RoundingMode.HALF_EVEN); + List assets = request.getAssets(); + + List> dailyStockPriceLists = getDailyStockPriceList(assets, startDate, endDate); + LocalDate currentDate = startDate; + LocalDate lastRebalanceDate = startDate.minusYears(2); + List stockQuantityList = calculateStockQuantities(capital, assets, dailyStockPriceLists.get(0)); + BigDecimal remaingCash = caculateRemainingCash(capital, stockQuantityList, dailyStockPriceLists.get(0)); + List portfolioReturnList = new ArrayList<>(); + + for (List dailyStockPriceList : dailyStockPriceLists) { + if (dailyStockPriceList.get(0).getBaseDate().isBefore(currentDate)) + continue; + + capital = caculatePortfolioValue(stockQuantityList, dailyStockPriceList).add(remaingCash); + + currentDate = dailyStockPriceList.get(0).getBaseDate(); + + if (checkRebalance(currentDate, lastRebalanceDate, request.getRebalanceCycle())) { + stockQuantityList = calculateStockQuantities(capital, assets, dailyStockPriceList); + remaingCash = caculateRemainingCash(capital, stockQuantityList, dailyStockPriceList); + lastRebalanceDate = currentDate; + } + + portfolioReturnList.add(PortfolioReturn.create(currentDate, capital)); + + currentDate = currentDate.plusMonths(1).withDayOfMonth(1); + } + + return portfolioReturnList; + } + + private BigDecimal caculateRemainingCash(BigDecimal initialCapital, List stockQuantityList, List dailyStockPriceList) { + BigDecimal usedCapital = BigDecimal.ZERO; + for (int i = 0; i < stockQuantityList.size(); i++) { + BigDecimal stockQuantity = stockQuantityList.get(i); + StockPrice stockPrice = dailyStockPriceList.get(i); + usedCapital = usedCapital.add(stockQuantity.multiply(stockPrice.getClosePrice())); + } + return initialCapital.subtract(usedCapital); + } + + private BigDecimal caculatePortfolioValue(List stockQuantityList, List dailyStockPriceList) { + BigDecimal portfolioValue = BigDecimal.ZERO; + for (int i = 0; i < stockQuantityList.size(); i++) { + BigDecimal stockQuantity = stockQuantityList.get(i); + StockPrice stockPrice = dailyStockPriceList.get(i); + portfolioValue = portfolioValue.add(stockQuantity.multiply(stockPrice.getClosePrice())); + } + return portfolioValue; + } + + private List calculateStockQuantities(BigDecimal capital, List assets, List stockPriceListByStocks) { + List stockQuantityList = new ArrayList<>(); + for (int i = 0; i < assets.size(); i++) { + AssetRequest asset = assets.get(i); + StockPrice stockPrice = stockPriceListByStocks.get(i); + BigDecimal allocation = capital + .multiply(BigDecimal.valueOf(asset.getWeight())) + .divide(BigDecimal.valueOf(100), RoundingMode.DOWN); + BigDecimal stockQuantity = allocation.divide(stockPrice.getClosePrice(), RoundingMode.DOWN); + stockQuantityList.add(stockQuantity); + } + return stockQuantityList; + } + + private List> getDailyStockPriceList(List assets, LocalDate startDate, LocalDate endDate) { + List> stockPriceLists = new ArrayList<>(); + for (AssetRequest asset : assets) { + List stockPriceListByStock = stockPriceRepository.findByStockStockCdAndBaseDateBetweenOrderByBaseDateAsc( + asset.getStockCd(), startDate, endDate + ); + stockPriceLists.add(stockPriceListByStock); + } + + List> dailyStockPriceList = new ArrayList<>(); + for (int i = 0; i < stockPriceLists.get(0).size(); i++) { + List dailyPrices = new ArrayList<>(); + for (List stockPrices : stockPriceLists) { + dailyPrices.add(stockPrices.get(i)); + } + dailyStockPriceList.add(dailyPrices); + } + + return dailyStockPriceList; + } + + private boolean checkRebalance(LocalDate currentDate, LocalDate lastRebalanceDate, RebalanceCycle rebalanceCycle) { + return switch (rebalanceCycle) { + case MONTHLY -> currentDate.isAfter(lastRebalanceDate.plusMonths(1)); + case QUARTERLY -> currentDate.isAfter(lastRebalanceDate.plusMonths(3)); + case YEARLY -> currentDate.isAfter(lastRebalanceDate.plusYears(1)); + }; + } } diff --git a/src/main/java/com/stockport/server/domain/stock/repository/StockPriceRepository.java b/src/main/java/com/stockport/server/domain/stock/repository/StockPriceRepository.java index 4a632c6..3d3118c 100644 --- a/src/main/java/com/stockport/server/domain/stock/repository/StockPriceRepository.java +++ b/src/main/java/com/stockport/server/domain/stock/repository/StockPriceRepository.java @@ -12,6 +12,7 @@ public interface StockPriceRepository extends JpaRepository { List findByStockAndBaseDateBetweenOrderByBaseDateDesc(Stock stock, LocalDate startDate, LocalDate endDate); + List findByStockStockCdAndBaseDateBetweenOrderByBaseDateAsc(String stockCode, LocalDate startDate, LocalDate endDate); @Query(""" select sp.baseDate From 0587f3073d57f7270b43eca68c83e035b9502804 Mon Sep 17 00:00:00 2001 From: jeongyun1206 <67818407+jeongyun1206@users.noreply.github.com> Date: Mon, 17 Nov 2025 16:43:08 +0900 Subject: [PATCH 3/7] =?UTF-8?q?#41=20feat:=20MDD=20=EA=B3=84=EC=82=B0=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../executionHistory/executionHistory.bin | Bin 2294028 -> 2294028 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/8.14.3/fileHashes/fileHashes.bin | Bin 40397 -> 40547 bytes .gradle/8.14.3/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.14.3/fileHashes/resourceHashesCache.bin | Bin 72491 -> 72661 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .../compileJava/previous-compilation-data.bin | Bin 72193 -> 72204 bytes .../dto/response/BacktestResponse.java | 10 ++- .../backtest/dto/response/MonthlyAsset.java | 3 +- ...rtfolioReturn.java => PortfolioValue.java} | 10 +-- .../service/backtest/BacktestServiceImpl.java | 73 ++++++++++++------ 11 files changed, 62 insertions(+), 34 deletions(-) rename src/main/java/com/stockport/server/application/controller/backtest/dto/response/{PortfolioReturn.java => PortfolioValue.java} (58%) diff --git a/.gradle/8.14.3/executionHistory/executionHistory.bin b/.gradle/8.14.3/executionHistory/executionHistory.bin index f689b4a5fc4e588034d7df07f38c73348a770195..5b45144c22ceeb4c4f4e09b24b8f45ad2860000a 100644 GIT binary patch delta 1001 zcmeBa>S62w;)WK+7N!>F7M2#)7Pc1l7LFFq7OocV7M>Q~Eqv@79cIinDKs-S%gC?H zO-ioF$;mIv%qcG|$<0VEH4#uc{CZ)1LquW80kP#T`#ZKzV8RfZzEGLNb-TVY$5yuO z6DD(hY2R+@!0*i}ptSGj|26H0nr}36XP0X=*iWC}%Kuh?!F`#Lo#*enrjc&JS8P4_ zrZdWN=}+J9$}cwkoI5}J_M2|}oQ%^yI`LOdKj+HNKK-l*Kc`$+VoqtQURGjRBD27K z;r}NKuI}5Npm9ZZm7LHH#%q%uBXuDrfE2TW6>q=e!5_dUkXCBLXB`^2^Tg7xm-;!S znx-4xQIMFd5HB)aD~w-adqX(Cqmn?lOK+jiPJ^-@6_4)L$#OHdU##SpV`TZZuCs0W z=PLdW5~{DV?=AgNt76MG-&@6Dmz)P{Y6I0*p zZ!g^HzVin&gTTZ9_trMWn@*CAUz={ut5pUHos4-`ap%?qhJEG{-0i%Jg0|<@@|&>= z+;+O%G<&_?6xkg=8rs69%WU5rz{Sfr{XjFn5f>;#R~mOQGtQY_7|t&|oxg>jOXQy1 zL9HKaYC>zZFiIb*URRoZ?A0OH)m8nq7%GY@+RB43S*!5M?9Z@0jgZ~@L=ap$^M8u zm%J8vcH`UI6@$5in72Re;NQUMX@BOw#P^HOQlF&WsIiwlwil@WbF}w?g@F@RP0do# z@NsOb2MW2|_2xOIk}bK-=@RcIyTgeS62w;)WK+7N!>F7M2#)7Pc1l7LFFq7OocV7M>Q~Eqv@79p=t1Hm=GxE=n#- zOG->l%gfCwHY+SF&MhxXD;2n;|6P1l=kI;hU0&x_ZP!}&mJvf}`a)$6*X{bs99!A8 zPngX4rG2}p1HU(`0N;rX6462{4!!PEd$-nd>ecBJT>0M$T$G)1ZFl(Ez0*{uHk8Xu z|2&;hmP>#7epi06>F3<}*|*ZjfqjB-PUu`veT8Cn#`Pf#tWyd-9*=6}T}uYSy(b zVb}W}e^gRl*1elJbbd4~6iRtp;{G8j{!}%?g1lDb;@d`}b)iaGnq)Dk! z{Oa_Lt|Hl!7tE5GexQ!iZTg%l{y>&p7q7QW|5(NUq5h`I-?P2fWjZJOP2E;DvAt{s zP-dm^V-d#bPKn9cC8@TP#erBdXjg)6~2 z){8Js_RY^L$;hd6EG|whfvL_uf3H`mO``S6#HEpb{PAbjf>nQIXPgFBJw2g@U%P&7 zKz>n4T7FJuJ|rAe(D+WJnK>z`MKCi0BvbN~!()kqmfwt3AbN*L|LPm( z1YIH(UkJ3$;o82giQk?P8qUr9%2K82i)L!9IJ8EnNk?Yiy}y#5@9k(^X}pw!an^K! zaDEXZXy6v5=#?*AQaNjbht-FlmqMbyfR%N}18qJSR9LQK&S%p6;HPpGhi1z3uI4a3zCpnAa-FF5)?s(iUzYNIxp<$@PbXu4mf1Uou50BL@K5`^bv` diff --git a/.gradle/8.14.3/executionHistory/executionHistory.lock b/.gradle/8.14.3/executionHistory/executionHistory.lock index 3e26f1bacf9dee451a6c1100ce9cc3cae77282cf..cf688b05c24bf146c52fa5f3c2d631607af78fa4 100644 GIT binary patch literal 17 UcmZSXEVfOZu)k1_0Ss7^0W9JJ=l}o! literal 17 UcmZSXEVfOZu)k1_0Ss7U0W91D;s5{u diff --git a/.gradle/8.14.3/fileHashes/fileHashes.bin b/.gradle/8.14.3/fileHashes/fileHashes.bin index d9800f35bdb5073977b908087fb72c66303bd774..ade31aa0678246d405f81290b0a28c8575810ee1 100644 GIT binary patch delta 623 zcmX@Ro9Xc$rVS<%j5{}*O6+9iZ%mWncieG@0Sx9DZhk7uD9AtS(5hq2`?4T{bN_F? ztEa#t5W!H*w*7wIQmE+J&0npe*%&i7Dz0GL?C4P;q0sWjy}jz@51qTOuT*uM4 zKtdCU6+u{F`+I5Gj|!H*J_Rq0idVh*2draLc?eJv2pE+oE4B-7j++_Fs37#TCCxOM z%UtV!XvF^OG0|X^hqHb|R4V69p4cip`Q5B!1=UyC_m=*sRk3B8@2%pn@fld*q3|Mz zLjI`9g|o|oZvJ_-epb*sxk7hG{gSYkB2Y!e5JdtSKpM@ZJ%x+)f-4H50t%ACrFThu zhw3PW=wLCKY&qvW^P%vv$=Y-E!F23gDT#Y>2ep2zsR^yslC!>My|5MH=+chK{d1-2 znHNaf^{_Gj+_QMnqZ_wORljWr*0EX95u$@h z3{ywD+8eQgi}tHF&TimXJ!R4nsH;nWDy@N-qYqOH|5k~mNBo@Ea=i%8`?6_SB$5`8 IjzEwO0KqK61^@s6 delta 423 zcmaF7hw1EYrVS<%jN3MwO6+9a%qI6kV6&LMIL~HR>tHrU#f^#|*fu+QR7fbySIBtC zpcA40^l)DPfq(xC85kI6O<1Sj&Hw_8QjC+i6E!z8C4M&#+FL)Hvwr8}cBcHxy`4r~ zIbfAjFNuIvGB7y;X+2{gp$Wu_AT028S;TwZ4M#4pSnDRgsJ5Uk`7#Suj zwhM2Ln;FZf5U+Ib)V=;l=MtthS2zSXfo6eRp~aCTYHiSzGOyzj1-dfOdVsT6r>Aym;ys3LtJjpowq z^Y?m{+9X=9Ok5i2#~*(Ns$(rg2lLm-mUG@SPkpg#vi4kkFdaKrN}@D<(M*jMht>!+ v>B#K6_g50)X#L{J{d1*Mic<8-7cQxswZX&c!_P}0(NM_}h>7~$AU6O2k>ZgJ diff --git a/.gradle/8.14.3/fileHashes/fileHashes.lock b/.gradle/8.14.3/fileHashes/fileHashes.lock index 986581ba56631a3283eb4b51aaf27d09f700db0c..3edfc4b4ae1142222a6a5317f17d77c04e7239f2 100644 GIT binary patch literal 17 VcmZR6{-ZNEaNeiw3}7J50sup#1$F=c literal 17 VcmZR6{-ZNEaNeiw3}7Jj6aYkn237z7 diff --git a/.gradle/8.14.3/fileHashes/resourceHashesCache.bin b/.gradle/8.14.3/fileHashes/resourceHashesCache.bin index e956846d3e047802a79a592f115d13db75963d46..5a3eac8f2e69bad36c9dca6ec99c0e989814feab 100644 GIT binary patch delta 318 zcmZ3zjpgcgmJKEnj2kzbN_-F%*m;*(nR$}(RR$1Xl%BX*R!@Ae9YlWs;BqZ;A^lO9MR0w|HOA%F+7jqIK-sr??% diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 5af21abf29eccc1b872c299a4a0b4750e808aa83..5ff62376ccca2743ac6c498a606e012b6d01d463 100644 GIT binary patch literal 17 UcmZP$IX3Boh0taO2oP8X05Eg}Qvd(} literal 17 UcmZP$IX3Boh0taO2oRV705E0*MF0Q* diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index 0bccc587181a27ed76ec237e81e1dd1f46765c92..42230d62e7170479f0a94c6ec039096ecc88225a 100644 GIT binary patch delta 25754 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 V`W#UDJRtvWoN@qm1;j^+`WI~<@h$)W diff --git a/src/main/java/com/stockport/server/application/controller/backtest/dto/response/BacktestResponse.java b/src/main/java/com/stockport/server/application/controller/backtest/dto/response/BacktestResponse.java index 4a151fa..73c1da3 100644 --- a/src/main/java/com/stockport/server/application/controller/backtest/dto/response/BacktestResponse.java +++ b/src/main/java/com/stockport/server/application/controller/backtest/dto/response/BacktestResponse.java @@ -10,8 +10,10 @@ @Setter @Builder public class BacktestResponse { - private List summaryReport; - private List monthlyAssets; - private List monthlyDrawdowns; - private List annualReturns; + private SummaryReport kospiSummary; + private SummaryReport kosdaqSummary; + private SummaryReport portfolioSummary; + private List monthlyDrawdowns; + private List monthlyAssets; + private List monthlyReturns; } \ No newline at end of file diff --git a/src/main/java/com/stockport/server/application/controller/backtest/dto/response/MonthlyAsset.java b/src/main/java/com/stockport/server/application/controller/backtest/dto/response/MonthlyAsset.java index 287c706..27b1ce1 100644 --- a/src/main/java/com/stockport/server/application/controller/backtest/dto/response/MonthlyAsset.java +++ b/src/main/java/com/stockport/server/application/controller/backtest/dto/response/MonthlyAsset.java @@ -3,11 +3,12 @@ import lombok.Getter; import lombok.Setter; +import java.math.BigDecimal; import java.time.LocalDate; @Getter @Setter public class MonthlyAsset { private LocalDate date; - private long portfolioValue; + private BigDecimal portfolioValue; } \ No newline at end of file diff --git a/src/main/java/com/stockport/server/application/controller/backtest/dto/response/PortfolioReturn.java b/src/main/java/com/stockport/server/application/controller/backtest/dto/response/PortfolioValue.java similarity index 58% rename from src/main/java/com/stockport/server/application/controller/backtest/dto/response/PortfolioReturn.java rename to src/main/java/com/stockport/server/application/controller/backtest/dto/response/PortfolioValue.java index 4cfa750..e728977 100644 --- a/src/main/java/com/stockport/server/application/controller/backtest/dto/response/PortfolioReturn.java +++ b/src/main/java/com/stockport/server/application/controller/backtest/dto/response/PortfolioValue.java @@ -10,14 +10,14 @@ @Getter @Setter @Builder -public class PortfolioReturn { +public class PortfolioValue { private LocalDate date; - private BigDecimal returnRate; + private BigDecimal value; - public static PortfolioReturn create(LocalDate date, BigDecimal returnRate) { - return PortfolioReturn.builder() + public static PortfolioValue create(LocalDate date, BigDecimal returnRate) { + return PortfolioValue.builder() .date(date) - .returnRate(returnRate) + .value(returnRate) .build(); } } diff --git a/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java b/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java index 956d46d..fb9592d 100644 --- a/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java +++ b/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java @@ -4,7 +4,7 @@ import com.stockport.server.application.controller.backtest.dto.request.BacktestRequest; import com.stockport.server.application.controller.backtest.dto.request.RebalanceCycle; import com.stockport.server.application.controller.backtest.dto.response.BacktestResponse; -import com.stockport.server.application.controller.backtest.dto.response.PortfolioReturn; +import com.stockport.server.application.controller.backtest.dto.response.PortfolioValue; import com.stockport.server.domain.indexData.constant.MarketType; import com.stockport.server.domain.indexData.entity.IndexData; import com.stockport.server.domain.indexData.repository.IndexDataRepository; @@ -29,13 +29,49 @@ public class BacktestServiceImpl implements BacktestService { @Override public BacktestResponse runBacktest(BacktestRequest request) { - List kospiReturns = caculateIndexReturns(request, MarketType.KOSPI); - List kosdaqReturns = caculateIndexReturns(request, MarketType.KOSDAQ); - List portfolioReturns = calculatePortfolioReturns(request); - return null; + List kospiReturns = caculateIndexReturns(request, MarketType.KOSPI); + List kosdaqReturns = caculateIndexReturns(request, MarketType.KOSDAQ); + List portfolioReturns = calculatePortfolioReturns(request); + + List monthlyDrawdonws = caculateMDD(portfolioReturns); + + return BacktestResponse.builder() + .kospiSummary(null) + .kosdaqSummary(null) + .portfolioSummary(null) + .monthlyAssets(null) + .monthlyDrawdowns(monthlyDrawdonws) + .monthlyReturns(null) + .build(); } - private List caculateIndexReturns(BacktestRequest request, MarketType marketType) { + private List caculateMDD(List portfolioReturns) { + LocalDate monthBoundaryDate = portfolioReturns.get(0).getDate().plusMonths(1).withDayOfMonth(1); + List mddList = new ArrayList<>(); + + BigDecimal peak = BigDecimal.ZERO, mdd = BigDecimal.ZERO; + for (PortfolioValue pv : portfolioReturns) { + if (pv.getDate().isAfter(monthBoundaryDate)) { + monthBoundaryDate = monthBoundaryDate.plusMonths(1).withDayOfMonth(1); + mddList.add(PortfolioValue.create(monthBoundaryDate, mdd)); + peak = BigDecimal.ZERO; mdd = BigDecimal.ZERO; + } + if (pv.getValue().compareTo(peak) > 0) { + peak = pv.getValue(); + continue; + } + + BigDecimal drawdown = peak.subtract(pv.getValue()) + .multiply(BigDecimal.valueOf(100)) + .divide(peak, 2, RoundingMode.HALF_EVEN); + + if (drawdown.compareTo(mdd) > 0) + mdd = drawdown; + } + return mddList; + } + + private List caculateIndexReturns(BacktestRequest request, MarketType marketType) { LocalDate startDate = request.getStartDate(); LocalDate endDate = request.getEndDate(); BigDecimal initialCapital = BigDecimal.valueOf(request.getInitialCapital()).setScale(2, RoundingMode.HALF_EVEN); @@ -44,22 +80,17 @@ private List caculateIndexReturns(BacktestRequest request, Mark marketType, startDate, endDate ); - List portfolioReturnList = new ArrayList<>(); + List portfolioValueList = new ArrayList<>(); BigDecimal stockQuantity = initialCapital.divide(indexDataList.get(0).getClosePrice(), RoundingMode.DOWN); BigDecimal remainingCash = initialCapital.subtract(stockQuantity.multiply(indexDataList.get(0).getClosePrice())); - LocalDate currentDate = startDate; for (IndexData indexData : indexDataList) { - if (indexData.getBaseDate().isBefore(currentDate)) - continue; - currentDate = indexData.getBaseDate(); - portfolioReturnList.add(PortfolioReturn.create(currentDate, stockQuantity.multiply(indexData.getClosePrice()).add(remainingCash))); - currentDate = currentDate.plusMonths(1).withDayOfMonth(1); + portfolioValueList.add(PortfolioValue.create(indexData.getBaseDate(), stockQuantity.multiply(indexData.getClosePrice()).add(remainingCash))); } - return portfolioReturnList; + return portfolioValueList; } - private List calculatePortfolioReturns(BacktestRequest request) { + private List calculatePortfolioReturns(BacktestRequest request) { LocalDate startDate = request.getStartDate(); LocalDate endDate = request.getEndDate(); BigDecimal capital = BigDecimal.valueOf(request.getInitialCapital()).setScale(2, RoundingMode.HALF_EVEN); @@ -70,14 +101,10 @@ private List calculatePortfolioReturns(BacktestRequest request) LocalDate lastRebalanceDate = startDate.minusYears(2); List stockQuantityList = calculateStockQuantities(capital, assets, dailyStockPriceLists.get(0)); BigDecimal remaingCash = caculateRemainingCash(capital, stockQuantityList, dailyStockPriceLists.get(0)); - List portfolioReturnList = new ArrayList<>(); + List portfolioValueList = new ArrayList<>(); for (List dailyStockPriceList : dailyStockPriceLists) { - if (dailyStockPriceList.get(0).getBaseDate().isBefore(currentDate)) - continue; - capital = caculatePortfolioValue(stockQuantityList, dailyStockPriceList).add(remaingCash); - currentDate = dailyStockPriceList.get(0).getBaseDate(); if (checkRebalance(currentDate, lastRebalanceDate, request.getRebalanceCycle())) { @@ -86,12 +113,10 @@ private List calculatePortfolioReturns(BacktestRequest request) lastRebalanceDate = currentDate; } - portfolioReturnList.add(PortfolioReturn.create(currentDate, capital)); - - currentDate = currentDate.plusMonths(1).withDayOfMonth(1); + portfolioValueList.add(PortfolioValue.create(currentDate, capital)); } - return portfolioReturnList; + return portfolioValueList; } private BigDecimal caculateRemainingCash(BigDecimal initialCapital, List stockQuantityList, List dailyStockPriceList) { From b1f37665d008c01d492cd2e680c3e641c9f6a357 Mon Sep 17 00:00:00 2001 From: jeongyun1206 <67818407+jeongyun1206@users.noreply.github.com> Date: Mon, 17 Nov 2025 16:48:30 +0900 Subject: [PATCH 4/7] =?UTF-8?q?#41=20feat:=20=EC=9B=94=EB=B3=84=20?= =?UTF-8?q?=EC=88=98=EC=9D=B5=EB=A5=A0=20=EA=B3=84=EC=82=B0=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../executionHistory/executionHistory.bin | Bin 2294028 -> 2294028 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/8.14.3/fileHashes/fileHashes.bin | Bin 40547 -> 40547 bytes .gradle/8.14.3/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.14.3/fileHashes/resourceHashesCache.bin | Bin 72661 -> 72695 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .../compileJava/previous-compilation-data.bin | Bin 72204 -> 72204 bytes .../service/backtest/BacktestServiceImpl.java | 24 ++++++++++++++++-- 8 files changed, 22 insertions(+), 2 deletions(-) diff --git a/.gradle/8.14.3/executionHistory/executionHistory.bin b/.gradle/8.14.3/executionHistory/executionHistory.bin index 5b45144c22ceeb4c4f4e09b24b8f45ad2860000a..e9b884831b649576c2455efd03ef1c2c22a6fb78 100644 GIT binary patch delta 531 zcmeBa>S62w;)WK+7N!>F7M2#)7Pc1l7LFFq7OocV7M>Q~Eqq)XZA;Q}OmcHejLVXZ zjWZHW(z0^W6H_XxOe+PJCOOHywhNjYAo%>@VmrY}_HaNVx2%(0bi`-I7y zU)r~uI`DrL6Zo_z?M|2{^Ouxk(YplJ-cgX4tPn3UT_cQNV!C`dKj-%LaDEFV zfv@I1HrclC;xC3)>sZx(6q&x!RU~`zf>|=t57cqGZJ$%cU%@H${py*$`)uDVHSqWq zvF2s|jK^yix2-f@%E35mxAJ1_b;=b-_MYHtKgTn-g=L*U)zix~ zbi4ZA#xT8+rP&Ri8*!S%1WkE}o8&YA@6CIel zw(A{aQDPLX`Rb>ye&*=G_CxVC4n|x1n%6CEpD~3Why{RH5Qv3S62w;)WK+7N!>F7M2#)7Pc1l7LFFq7OocV7M>Q~Eqq)XZ41qe%`);UbCZ%Q za&q#^GIPpHOL8-kOHBln4!>Sl-w;t)azJeP%l?k-6PPfBrY}_HaNVx2%(0bi`-I7y zU)r~uI`DrL6G$ty;j<16+<9W@*Gv7JQccqh?*sC^;vwxR^nJd4Z%|4;%B(J&Pwjx^c@yt_!Seaym1E zziCaLXU}_Ntpdbnd>sQq?^pZT_6sz3nrm@B^^`5DNma5D*Iku?P^00up diff --git a/.gradle/8.14.3/executionHistory/executionHistory.lock b/.gradle/8.14.3/executionHistory/executionHistory.lock index cf688b05c24bf146c52fa5f3c2d631607af78fa4..fd67ea95ef04bb035ede74ac3362a8f391e5cd99 100644 GIT binary patch literal 17 UcmZSXEVfOZu)k1_0Ss8v04(JL>i_@% literal 17 UcmZSXEVfOZu)k1_0Ss7^0W9JJ=l}o! diff --git a/.gradle/8.14.3/fileHashes/fileHashes.bin b/.gradle/8.14.3/fileHashes/fileHashes.bin index ade31aa0678246d405f81290b0a28c8575810ee1..90d4e703e6e0c50d1cbc1ba11e4e914b7c8bd4cb 100644 GIT binary patch delta 147 zcmaF7hw1SirVTq2Bx=6;>8qbPda(Uae2s(A);7l? z{JF)}NS}W5?*K%0yBz}69Fe#q-H&pT|#2C}RlTXf_1pvmWLhS$m delta 147 zcmaF7hw1SirVTq2BwGHsw^!Z#p>y~3m8$L;Y4aHv7-vm5Tsmj-#e`Ru3PMj?(oB=N z%(ec9M(n>H6Ah8g`pp0a%6XF~whC{4H>;CL;-1_=tsiS@LTk0;tgl%wY=xTBF}Z)P jlmhbtNxL34=AU~OPkMCYmWdoxvI}C2@#M)T=gtBEYK}g{ diff --git a/.gradle/8.14.3/fileHashes/fileHashes.lock b/.gradle/8.14.3/fileHashes/fileHashes.lock index 3edfc4b4ae1142222a6a5317f17d77c04e7239f2..70e2f2f860b3d9380b19aef0c31fa3eacd0fddad 100644 GIT binary patch literal 17 VcmZR6{-ZNEaNeiw3}7J53jjl{1%Chl literal 17 VcmZR6{-ZNEaNeiw3}7J50sup#1$F=c diff --git a/.gradle/8.14.3/fileHashes/resourceHashesCache.bin b/.gradle/8.14.3/fileHashes/resourceHashesCache.bin index 5a3eac8f2e69bad36c9dca6ec99c0e989814feab..686dbf0204a07734cf7c12ae1c89de65bc5c5153 100644 GIT binary patch delta 79 zcmcb*o#p#>mJKEnjGH!_N<3ueZ`5Qu@JLUE0R$MOuWsg5IIX~VaPvopC%2T0fnt(C cEC|8^pZ28P3G-zBl5#A1w}1f;8&FUV05Ibie*gdg delta 32 qcmV+*0N?-jw*=L<1h6z10kN|+7~u!AE+E1n0jZN+*Cez3K-k*q!4C5P diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 5ff62376ccca2743ac6c498a606e012b6d01d463..748ad0b76d440c86363390bbcfcdfec9781195e2 100644 GIT binary patch literal 17 UcmZP$IX3Boh0taO2oP8c05E$5S^xk5 literal 17 UcmZP$IX3Boh0taO2oP8X05Eg}Qvd(} diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index 42230d62e7170479f0a94c6ec039096ecc88225a..c53201011126485d010cd78bb9e7ca1b66057fed 100644 GIT binary patch delta 57 zcmV-90LK4}v;>T_1h5VQ5VIj6q0MB*K@0vX!D3$n`?DSbnF2H{W#|*c}3;{(A)|?sJ delta 57 zcmV-90LK4}v;>T_1h5VQ5CfnYK8ywf`Mjf&;@H|W9FU3tbA2{Djqx5 PJE4Vx#|*c}3;{(Am~a;a diff --git a/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java b/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java index fb9592d..433804f 100644 --- a/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java +++ b/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java @@ -14,6 +14,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import javax.sound.sampled.Port; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDate; @@ -32,7 +33,6 @@ public BacktestResponse runBacktest(BacktestRequest request) { List kospiReturns = caculateIndexReturns(request, MarketType.KOSPI); List kosdaqReturns = caculateIndexReturns(request, MarketType.KOSDAQ); List portfolioReturns = calculatePortfolioReturns(request); - List monthlyDrawdonws = caculateMDD(portfolioReturns); return BacktestResponse.builder() @@ -41,10 +41,30 @@ public BacktestResponse runBacktest(BacktestRequest request) { .portfolioSummary(null) .monthlyAssets(null) .monthlyDrawdowns(monthlyDrawdonws) - .monthlyReturns(null) + .monthlyReturns(caculateMonthlyReturns(portfolioReturns)) .build(); } + private List caculateMonthlyReturns(List portfolioReturns) { + LocalDate monthBoundaryDate = portfolioReturns.get(0).getDate().plusMonths(1).withDayOfMonth(1); + List monthlyReturnList = new ArrayList<>(); + + BigDecimal monthStartValue = portfolioReturns.get(0).getValue(); + for (PortfolioValue pv : portfolioReturns) { + if (pv.getDate().isBefore(monthBoundaryDate)) continue; + + BigDecimal monthEndValue = portfolioReturns.get(portfolioReturns.indexOf(pv) - 1).getValue(); + BigDecimal monthlyReturn = monthEndValue.subtract(monthStartValue) + .multiply(BigDecimal.valueOf(100)) + .divide(monthStartValue, 2, RoundingMode.HALF_EVEN); + monthlyReturnList.add(PortfolioValue.create(monthBoundaryDate, monthlyReturn)); + + monthBoundaryDate = monthBoundaryDate.plusMonths(1).withDayOfMonth(1); + monthStartValue = pv.getValue(); + } + return monthlyReturnList; + } + private List caculateMDD(List portfolioReturns) { LocalDate monthBoundaryDate = portfolioReturns.get(0).getDate().plusMonths(1).withDayOfMonth(1); List mddList = new ArrayList<>(); From 801e9f98b7ec64621dfcbc5fc445958ef2e24824 Mon Sep 17 00:00:00 2001 From: jeongyun1206 <67818407+jeongyun1206@users.noreply.github.com> Date: Mon, 17 Nov 2025 17:27:39 +0900 Subject: [PATCH 5/7] =?UTF-8?q?#41=20feat:=20=EC=88=98=EC=A0=95=EC=A3=BC?= =?UTF-8?q?=EA=B0=80=20=EC=9A=94=EB=A5=98=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../executionHistory/executionHistory.bin | Bin 2294028 -> 2294028 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/8.14.3/fileHashes/fileHashes.bin | Bin 40547 -> 40547 bytes .gradle/8.14.3/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.14.3/fileHashes/resourceHashesCache.bin | Bin 72695 -> 73001 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .../compileJava/previous-compilation-data.bin | Bin 72204 -> 72205 bytes .../stock/StockUpdateController.java | 10 +++++ .../service/backtest/BacktestServiceImpl.java | 37 +++++++++++++++--- .../service/stock/StockService.java | 2 + .../service/stock/StockServiceImpl.java | 14 +++++++ .../repository/StockPriceRepository.java | 2 + .../feign/adaptor/KisStockPriceAdaptor.java | 2 +- 13 files changed, 60 insertions(+), 7 deletions(-) diff --git a/.gradle/8.14.3/executionHistory/executionHistory.bin b/.gradle/8.14.3/executionHistory/executionHistory.bin index e9b884831b649576c2455efd03ef1c2c22a6fb78..66685aa68d336355a5c35f51cb6d3b2656cf3364 100644 GIT binary patch delta 1104 zcmZY4e=wVO90zboo=EbfJP(V6P()a&!_NH3bQ@{AcE}Z-l9IC|VnnG$LzNp-9zW`E z(KugKGkUrWXS5Yh>r|PBtlfroXJ)Qr=VmR_mX_Ml?%VvkKVJX5zn{d3*fqlQ@UD7`-6p z&kobtSA+XNoe&Ko^M#d28E>Vt+@<1B{DcC=irYn-Cre<2FD0Sh^(BZ$f4_>$UW zj70I0C-{}CVfuWUNtt-3>zV+l7HqtLq#F@{)gfj9xp@*Zv$4vo-^2pL&8hW0Nr%R) zm0(1Ocmrjm!$Cu9lM5IwVjU)%3$Shm{rWcR?z;`8BHDZK2AhZ;l z=G&gGDcaE5HED`Ax5`5$yjzyG%S=iWz-1Wc9d)Kkr?bLYe92K#h78( zGWNF?UMQWJ|7c0k$&veOx!?S9cL$6gMQowZENYhby|K=%%0-wWyC)+j$;o45d@ zDTCSba;vM9uML?sdJT~<8vW5|RL9b_QB={w(euiGNI@)WPjig8IPh>$9xQZv9Q|g@ zgUL@vEWIWSQ0l2pASE7k4j%4^lUdD9@~@6ue>`ORvK5vM&Pe`}4t&dtEaRlzo+heb z#M#L6_M?Pdian@2Fq0*$0o!+&A>?X2YD@FESiXOkpzHY$r(T68$gCQ=?pco1c2MA6 z#GsF%TzuNKR(m9k=JkCANE$?3$-{~07J{49(luiKRp(1ZuV?Eeb0dgWpiy}Az$imy zP7H2Wg^Qiq)D2)>Pjv>8VFW)`I(hq#uLBktu(vU&P|MTeEzmrlPqXgK)?WvWMP)IFJLxg?Nx7S62w;)WK+7N!>F7M2#)7Pc1l7LFFq7OocV7M>Q~Eqt6C?MzD2a!hh_ON`5s zjg2!BP13S*(i2lEs!S^dmL@sLy|xRQ8zA`n;p2pWr8k){gr+Z4=5XDvugtNPZTp1D zoL}0vn>z4M658&q%JqwBdT1nn`gV;lekMkNPkYktgn2T5NjVn1Tfl&aZMxwd1&PTD z@gmcK@)FbK!}&S4w}69Fe#q-_fxR4zuC+T z0&m45lC!+DHW-C&)SZ!Vu3-A{K(3uE-<$5WOgC)hmzq8=h|9^bwfSDlO5=~oK=tom zH3bJ1uD`+3ewa}>dW$+xsN%@p6MXIGcqdQoY&^2CtP?0Sy-Y*5tM6?L(;Hbn#v+E* z+ZBVkgqS7fDDb{2wq{r&z9RT@OR@c@_dsh_8o%V5&Nziha(YS_m$ca|$+Ja=F4oN7 zGHLp&{>*v~pkW&KPt7k`tL@(=6dC1}A;tm}%J$ooolvo&;HYQK>Wg}>y{7*;#bLSq zT^QF_4$sQe?@keW6jk3WGvjWU#Zv@SuDv+3=!K>*M1#;Ztf1p z^d6z*Ud-nFSpry(Usj%sZ4$NKK^$xNqF^boG_0v~BbM#>Qq4*jH zqpf|->p%hB(>`YkKM)H5u^n0kJd?%K)(~5X%9v QJP<1YvEueQQi_@% diff --git a/.gradle/8.14.3/fileHashes/fileHashes.bin b/.gradle/8.14.3/fileHashes/fileHashes.bin index 90d4e703e6e0c50d1cbc1ba11e4e914b7c8bd4cb..0a921ab7655f50a05f43891d340f1416e5fcfe24 100644 GIT binary patch delta 615 zcmaF7hw1SirVTq26f)LtleE*#j(YQEJ!7(W#1{qz##s|y8hl~^0Y)j_$=r#Wo0$^* zITTdR&y_fuoqM2u8{=MH;g+*tmCwqUz$zJ7?r$#4M}{~nRy4AWLajkp9cBBXC}ps(=exCTw3pd5{gUE-4~W|-_MA_=bJKsl0YEMw)y5HAEtU> zNbG=!28qbPda(Uae2s(A);=G+QKg*ghmuZpc1 zmWZzi{@hY*{|TbJF(0CwJ#({kewBd4vM;W8>lVNEeDT7>oAbycHn1vR_v@3_*4HUq zXP2>9dwBOnLl=_?+EZKHK#~oUR0JSKgiM_r=qtQAu0c~sf<0J}qo@Al$*O;=S$6zm zehW3`(&XD=QVM0Wp8Wn|S-Puq?Pja{ZmV3Ol9wUINK|dUImw5Kr=e5(BSb_$$!_7wVex5LH|(lO4N+<)b$r zDn9MSlU7#Qx%XL}H`FAk`*@~K?wqbMxqkXj=IM>)o2zFyFe#|yUw$;hu)&{OY>o8k zH~$WRO+B&Q4q~eMxych-g*U&O)yX9B{py*$`)uDVHSqWqvF2s|42a5Wk0RmgUr? diff --git a/.gradle/8.14.3/fileHashes/fileHashes.lock b/.gradle/8.14.3/fileHashes/fileHashes.lock index 70e2f2f860b3d9380b19aef0c31fa3eacd0fddad..df03650744fbb3c6910e94cc6ae2750c52dd8d88 100644 GIT binary patch literal 17 VcmZR6{-ZNEaNeiw3}7H_2>?Uc1*-r6 literal 17 VcmZR6{-ZNEaNeiw3}7J53jjl{1%Chl diff --git a/.gradle/8.14.3/fileHashes/resourceHashesCache.bin b/.gradle/8.14.3/fileHashes/resourceHashesCache.bin index 686dbf0204a07734cf7c12ae1c89de65bc5c5153..6e43bdfb07a468775156bd536405647145dfc463 100644 GIT binary patch delta 516 zcmeyqon_@NmJKEnj5{`)N(eIXpTASn-;pz!0R$MOzi+mc+Q23-xjDt*m03_dL{z4J z^HT**HvX^x_DkxkQ=x*fo1dy#2npPIXJncCX-*4Nbm3-E%LmK?&u_gcUcJ~S4Js(oH$bjfO7OuKyF^ zpLXGD{`5qvePJ_$g)w#g`gW&da>F*S&#cGl!#d5cVXDX|obmFo%Q4Oi=h(UJl}~$P zs^Dao`Qsm*Ts-3<>*XKn9=r$@Rxsx`eGu5V$$mm5^U;K;Q>!;CB9y>XG=2yby%R7& mvE`FKhQr#W37S94W9LW`1h51F5J{W5>Ev5BBN^{cCQ#ncWs?*E`Va|*Jc9j(iO9oqX>Lz9 z50jG~0+kTY$Zt3{tsl=xJt`5i@vk1U!vc2!5SxZU3?Zxa$#VZlSyup-tFuZ3ivT_1h51F5S$T^2)q!*}D^MrFh@{<$+`Vg}rA)(D=#z71IE5Tx4 z1N)O60+kTQKMxNk2baxM+Rdf^a2H{`#|)4R0RV$p8JAfZ0knKgOMd_W diff --git a/src/main/java/com/stockport/server/application/controller/stock/StockUpdateController.java b/src/main/java/com/stockport/server/application/controller/stock/StockUpdateController.java index 6cf8d6d..7fd8995 100644 --- a/src/main/java/com/stockport/server/application/controller/stock/StockUpdateController.java +++ b/src/main/java/com/stockport/server/application/controller/stock/StockUpdateController.java @@ -54,4 +54,14 @@ public ApiResponse updatePeriodicStockData( stockService.updatePeriodicStockData(startDate, endDate); return ApiResponse.onSuccess("주가 데이터 업데이트 성공"); } + + @GetMapping("/update/stock-data") + @Operation( + summary = "주식 데이터 강제 업데이트", + description = "주식 데이터를 강제 업데이트합니다." + ) + public ApiResponse updateErrorStockData(@RequestParam String stockCd) { + stockService.forceUpdateStockData(stockCd); + return ApiResponse.onSuccess("오류 주가 데이터 재업데이트 성공"); + } } diff --git a/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java b/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java index 433804f..715627c 100644 --- a/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java +++ b/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java @@ -5,6 +5,7 @@ import com.stockport.server.application.controller.backtest.dto.request.RebalanceCycle; import com.stockport.server.application.controller.backtest.dto.response.BacktestResponse; import com.stockport.server.application.controller.backtest.dto.response.PortfolioValue; +import com.stockport.server.application.controller.backtest.dto.response.SummaryReport; import com.stockport.server.domain.indexData.constant.MarketType; import com.stockport.server.domain.indexData.entity.IndexData; import com.stockport.server.domain.indexData.repository.IndexDataRepository; @@ -14,7 +15,6 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; -import javax.sound.sampled.Port; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDate; @@ -39,12 +39,29 @@ public BacktestResponse runBacktest(BacktestRequest request) { .kospiSummary(null) .kosdaqSummary(null) .portfolioSummary(null) - .monthlyAssets(null) + .monthlyAssets(calcuateMonthlyAssets(portfolioReturns)) .monthlyDrawdowns(monthlyDrawdonws) .monthlyReturns(caculateMonthlyReturns(portfolioReturns)) .build(); } + private SummaryReport caculateSummaryReport() { + return null; + } + + private List calcuateMonthlyAssets(List protfolioReturns) { + LocalDate monthBoundaryDate = protfolioReturns.get(0).getDate().withDayOfMonth(1); + List monthlyAssetList = new ArrayList<>(); + + for (PortfolioValue pv : protfolioReturns) { + if (pv.getDate().isBefore(monthBoundaryDate)) continue; + + monthlyAssetList.add(PortfolioValue.create(pv.getDate(), pv.getValue())); + monthBoundaryDate = monthBoundaryDate.plusMonths(1).withDayOfMonth(1); + } + return monthlyAssetList; + } + private List caculateMonthlyReturns(List portfolioReturns) { LocalDate monthBoundaryDate = portfolioReturns.get(0).getDate().plusMonths(1).withDayOfMonth(1); List monthlyReturnList = new ArrayList<>(); @@ -83,7 +100,8 @@ private List caculateMDD(List portfolioReturns) BigDecimal drawdown = peak.subtract(pv.getValue()) .multiply(BigDecimal.valueOf(100)) - .divide(peak, 2, RoundingMode.HALF_EVEN); + .divide(peak, 2, RoundingMode.HALF_EVEN) + .negate(); if (drawdown.compareTo(mdd) > 0) mdd = drawdown; @@ -101,10 +119,15 @@ private List caculateIndexReturns(BacktestRequest request, Marke ); List portfolioValueList = new ArrayList<>(); - BigDecimal stockQuantity = initialCapital.divide(indexDataList.get(0).getClosePrice(), RoundingMode.DOWN); + BigDecimal stockQuantity = initialCapital.divide(indexDataList.get(0).getClosePrice(), RoundingMode.HALF_EVEN); BigDecimal remainingCash = initialCapital.subtract(stockQuantity.multiply(indexDataList.get(0).getClosePrice())); for (IndexData indexData : indexDataList) { - portfolioValueList.add(PortfolioValue.create(indexData.getBaseDate(), stockQuantity.multiply(indexData.getClosePrice()).add(remainingCash))); + portfolioValueList.add(PortfolioValue.create( + indexData.getBaseDate(), + stockQuantity.multiply(indexData.getClosePrice()) + .add(remainingCash) + .setScale(2, RoundingMode.HALF_EVEN) + )); } return portfolioValueList; @@ -124,7 +147,9 @@ private List calculatePortfolioReturns(BacktestRequest request) List portfolioValueList = new ArrayList<>(); for (List dailyStockPriceList : dailyStockPriceLists) { - capital = caculatePortfolioValue(stockQuantityList, dailyStockPriceList).add(remaingCash); + capital = caculatePortfolioValue(stockQuantityList, dailyStockPriceList) + .add(remaingCash) + .setScale(2, RoundingMode.HALF_EVEN); currentDate = dailyStockPriceList.get(0).getBaseDate(); if (checkRebalance(currentDate, lastRebalanceDate, request.getRebalanceCycle())) { diff --git a/src/main/java/com/stockport/server/application/service/stock/StockService.java b/src/main/java/com/stockport/server/application/service/stock/StockService.java index 3fa9d40..dd98e32 100644 --- a/src/main/java/com/stockport/server/application/service/stock/StockService.java +++ b/src/main/java/com/stockport/server/application/service/stock/StockService.java @@ -20,5 +20,7 @@ public interface StockService { void updatePeriodicStockData(LocalDate startDate, LocalDate endDate); + void forceUpdateStockData(String stockCd); + void saveDailyStockData(); } diff --git a/src/main/java/com/stockport/server/application/service/stock/StockServiceImpl.java b/src/main/java/com/stockport/server/application/service/stock/StockServiceImpl.java index ad2b93d..9606b69 100644 --- a/src/main/java/com/stockport/server/application/service/stock/StockServiceImpl.java +++ b/src/main/java/com/stockport/server/application/service/stock/StockServiceImpl.java @@ -113,6 +113,20 @@ public void updatePeriodicStockData(LocalDate startDate, LocalDate endDate) { } } + @Override + @Transactional + public void forceUpdateStockData(String stockCd) { + Stock stock = stockRepository.findByStockCd(stockCd) + .orElseThrow(() -> new GeneralException(ErrorStatus.STOCK_NOT_FOUND)); + + stockPriceRepository.deleteAllByStock(stock); + for (LocalDate updateDate = LocalDate.now().minusYears(10).withMonth(1); updateDate.isBefore(LocalDate.now()); updateDate = updateDate.plusDays(140)) { + periodicSaver.saveOnePeriod(stock, updateDate, updateDate.plusDays(139)); + } + + log.info("[stock] 강제 주가 데이터 업데이트 완료: {}", stock.getStockCd()); + } + @Override @Transactional public void saveDailyStockData() { diff --git a/src/main/java/com/stockport/server/domain/stock/repository/StockPriceRepository.java b/src/main/java/com/stockport/server/domain/stock/repository/StockPriceRepository.java index 3d3118c..f2536ca 100644 --- a/src/main/java/com/stockport/server/domain/stock/repository/StockPriceRepository.java +++ b/src/main/java/com/stockport/server/domain/stock/repository/StockPriceRepository.java @@ -27,4 +27,6 @@ List findAllBaseDatesByStockAndDateRange( ); List findAllByBaseDate(LocalDate today); + + void deleteAllByStock(Stock stock); } diff --git a/src/main/java/com/stockport/server/global/feign/adaptor/KisStockPriceAdaptor.java b/src/main/java/com/stockport/server/global/feign/adaptor/KisStockPriceAdaptor.java index 200d218..f3a81b2 100644 --- a/src/main/java/com/stockport/server/global/feign/adaptor/KisStockPriceAdaptor.java +++ b/src/main/java/com/stockport/server/global/feign/adaptor/KisStockPriceAdaptor.java @@ -74,7 +74,7 @@ public KisPeriodResponseWrapper getSt startDate.format(DateTimeFormatter.BASIC_ISO_DATE), endDate.format(DateTimeFormatter.BASIC_ISO_DATE), "D", - "1" + "0" ) ); From 7b106449ee12819efb498724b9da5d51afd4048b Mon Sep 17 00:00:00 2001 From: jeongyun1206 <67818407+jeongyun1206@users.noreply.github.com> Date: Mon, 17 Nov 2025 18:19:43 +0900 Subject: [PATCH 6/7] =?UTF-8?q?#41=20feat:=20=EB=B0=B1=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8C=85=20=EB=A1=9C=EC=A7=81=20=EC=99=84=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../executionHistory/executionHistory.bin | Bin 2294028 -> 2294028 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/8.14.3/fileHashes/fileHashes.bin | Bin 40547 -> 40597 bytes .gradle/8.14.3/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.14.3/fileHashes/resourceHashesCache.bin | Bin 73001 -> 73273 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .../compileJava/previous-compilation-data.bin | Bin 72205 -> 72257 bytes .../backtest/dto/response/SummaryReport.java | 11 +- .../service/backtest/BacktestServiceImpl.java | 220 ++++++++++++++++-- 9 files changed, 200 insertions(+), 31 deletions(-) diff --git a/.gradle/8.14.3/executionHistory/executionHistory.bin b/.gradle/8.14.3/executionHistory/executionHistory.bin index 66685aa68d336355a5c35f51cb6d3b2656cf3364..9968dd145894ee826dd2af4d27e3dd06101d6771 100644 GIT binary patch delta 818 zcmeBa>S62w;)WK+7N!>F7M2#)7Pc1l7LFFq7OocV7M>Q~Equ%yUG6e4Jia?S*El_~ zyf`VdxGXK#JjJ}Is?^w|yrj}7uTtRBe|_D(4!51(bf3K$&>x}uoe@K5`a)$6*X{bs z99!A8PngX4rG2}p1HT=ofSc4^8HEa3>b0+=i`(63PrpJ5o3vIvU z$sfQg5b(iYZrGc|5(M($Z`qDn*Oz# zUk}1kui?MtyfU~nH#f1UGAOkmzomMwV+JuY7FgSC;x-ckq50mI(^FuKej6SlRt0j6kbz%Ad?U^T+K<)10Y3 zH_orspME@$Yv**`R{lEW6Tv27bJjMjYk4|{_55Mic%W+eJhe?`w;2Q;mRhqV>ijj^ zt{BWE#Jv4M2mc06&#kZ7DmJEQE_I!?d7o(bJ_De7?v}3nuNhxijye4{6<3Q?1`4$| zKKF8lV$zd{p%Ld{yqKc7@>+}3J&F@L#ugzEG}2j;HrdIwpQ7!|Ete&j8d zQ$18L^?$<#sSP~c2S8ptxP^s<5tvqA_32M9tP!Yh&zi~)!~#Gp2*g4_EDXdVKr9Nx nVn8eo#1cR(3B*!BEDgjmKr9QyazHE(#0o&HxIJsC(xPkt^AKJ^ delta 773 zcmeBa>S62w;)WK+7N!>F7M2#)7Pc1l7LFFq7OocV7M>Q~Equ%yUFI?{Jf1PzI3?RS z%Oop1BPk`LAiFZBBqJlUz_=(WBT?YGI+HoZH*O`7MoK;3=?9frG^Zzci8@bSFiU3ofjUmN>2s?116jVU>ug*8v5KFOYM%TgEpwP*f zcNKSTO<>q(9>LwtyC`V;np%D{R)K&x?#6%$`=hVbb@w`?O}ICGcK}z<^txvL&0uFv zH*Mip7U3)Ft@~CWI4h&>`_DEz2l4$6m$XmMY2jDY=4`WR`rFod;&5?hp1(Q&;N_e|nF_=q;dAn*S{{~La8K$+$JLkRI!kW1ullQXN6QKIr|Kd|j zn2NQm{-m+Dc37(bg`~ZGOXscb%h3Dbl=88)rvxYz`C4ED-|?!8eP4~YY=2eQI6cvU zxof-LK^7%O?Tq!?B<*ywqu#t(&zS5T@#PcP*}Yp>SQvrnZ7GOY1z~TTes4Oz_4L9T zf%^8Wsr*1J0K|eoECj^DKr8~pqChML#Nt3K0mPC(ECs~UKr92qvOp{c#PUF_0K|&h Kv!*I7$_4=b(n9C} diff --git a/.gradle/8.14.3/executionHistory/executionHistory.lock b/.gradle/8.14.3/executionHistory/executionHistory.lock index a9fa8c48467d7f80aac10c5ded49be8020820418..8faec9105a352fa5f2305f1eb43ecae03ce83f44 100644 GIT binary patch literal 17 UcmZSXEVfOZu)k1_0Ss7M04)Oq2><{9 literal 17 UcmZSXEVfOZu)k1_0Ss7k04(bR@c;k- diff --git a/.gradle/8.14.3/fileHashes/fileHashes.bin b/.gradle/8.14.3/fileHashes/fileHashes.bin index 0a921ab7655f50a05f43891d340f1416e5fcfe24..7957ed54a9cc742b37e6a262b3f55729b6cef0ea 100644 GIT binary patch delta 360 zcmaF7hiU3wrVS<%jJr0QN^Df(Z_r6uG$+`E0Sx9PZ@z1_n~kw?qv8a%&5j-w5(-u> zKk^pKsU9kr`oCd=)CL{~2F6(vr5|vE)iX*tPUcS3+{~2NYoSoXc*-t5wUWQh_{-82 z71I46l@q?~&x9Dw#I$++OdduBo3$&J+J8DHDB_XKwPvBfXNY-MA3;>P&7C~4Re18d zS%wO_C$2r;*Wk|+@h?T~YIw#ButJV&S0D;`8YkP&R%4mSaqZIN%-NH`jLrXNYcPUX zS0`)F)dMlEO^%%_CGoxR($(PGQ*;i5dYJpX-5?IJ^8S~}{d1)hcKk00e;u;^umt^WEy6gRURxJL<;a z7N>L5ZPIqI!l^ITLlkl!ooqi_jb*~2@S@3?vnPQV#hd@n)?fs&$|h^i)q^l%=SoTN zmG#zrD-fKOQTP34o1KF=#7cwxll$jNDR8#gH2rPsJaM=?Uc1*-r6 diff --git a/.gradle/8.14.3/fileHashes/resourceHashesCache.bin b/.gradle/8.14.3/fileHashes/resourceHashesCache.bin index 6e43bdfb07a468775156bd536405647145dfc463..f463f6de72fe6391ba796018c634358d2199cd9c 100644 GIT binary patch delta 478 zcmZ3vi)H5?mJKEnjC(hmN_6t^H+)}q?9=pgj^+7E%H!NMZ?OInXY1^YKI zRoCDWIP_X8pqYK!i3@>dtj$fxHX($;le30|`kW76f4d+lZr$M}H@OQk%-W?%l~VPcc>GZ*zR7 zIyFx9h2aG6c>mu9m?{dSr*7N+txe{Q_QY+r+w12cR7k+B`76~njr~qVeRJmx#udpb z(;sp(3WxundP8jI{N+=tISN-SJGu^`52mgAQhUMsmwVp(KYP_9kfB_TsUqUTH2sB7 Rgnhzi-`mHsNxclD0s!4^lcWFu delta 88 zcmV-e0H^=CyacJb1h6z10l2d@7>N#()+X<>-6tRlvlTK)1G9EDI101IKQaOVQIl2K ugtG-gdwK!3vw^&+53@qd*bkHTLKw43+}8uMIpC`W0U@y=@CLJu?3^%D043i5 diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 3d9788333acf179a4a6275be5b6c85da69bcdbc9..4d949fb4f13fd22e12bc11130e55256ed382f0b0 100644 GIT binary patch literal 17 UcmZP$IX3Boh0taO2oU%Q05Hb{rT_o{ literal 17 UcmZP$IX3Boh0taO2oN|305FdPZU6uP diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index c5d2d87bdd9ea26ac2c8600dd266625a8b8fec00..dbb71b1e2a0023eadf9324253ada7b4813882202 100644 GIT binary patch literal 72257 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

0bq7=5?ElIJwdr{Yk)UK8Xhx3SAA?v;z9JIe! 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 A=Kufz literal 72205 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ⅆ9Wp8O2IU0ui?RhPPqmI8u6CD=xxf`MD;f}^ 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 diff --git a/src/main/java/com/stockport/server/application/controller/backtest/dto/response/SummaryReport.java b/src/main/java/com/stockport/server/application/controller/backtest/dto/response/SummaryReport.java index fad6da2..b3fcafd 100644 --- a/src/main/java/com/stockport/server/application/controller/backtest/dto/response/SummaryReport.java +++ b/src/main/java/com/stockport/server/application/controller/backtest/dto/response/SummaryReport.java @@ -1,5 +1,6 @@ package com.stockport.server.application.controller.backtest.dto.response; +import lombok.Builder; import lombok.Getter; import lombok.Setter; @@ -7,18 +8,16 @@ @Getter @Setter +@Builder public class SummaryReport { private String portfolioName; - private long initialCapital; - private long finalCapital; + private BigDecimal initialCapital; + private BigDecimal finalCapital; - private BigDecimal annualReturn; + private BigDecimal cagr; private BigDecimal maxDrawdown; private BigDecimal volatility; private BigDecimal sharpeRatio; private BigDecimal sortinoRatio; - - private BigDecimal bestYearReturn; - private BigDecimal worstYearReturn; } \ No newline at end of file diff --git a/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java b/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java index 715627c..a013155 100644 --- a/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java +++ b/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java @@ -18,6 +18,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDate; +import java.time.temporal.ChronoUnit; import java.util.ArrayList; import java.util.List; @@ -30,25 +31,195 @@ public class BacktestServiceImpl implements BacktestService { @Override public BacktestResponse runBacktest(BacktestRequest request) { - List kospiReturns = caculateIndexReturns(request, MarketType.KOSPI); - List kosdaqReturns = caculateIndexReturns(request, MarketType.KOSDAQ); - List portfolioReturns = calculatePortfolioReturns(request); - List monthlyDrawdonws = caculateMDD(portfolioReturns); + List kospiValues = calculateIndexReturns(request, MarketType.KOSPI); + List kosdaqValues = calculateIndexReturns(request, MarketType.KOSDAQ); + List portfolioValues = calculatePortfolioReturns(request); return BacktestResponse.builder() - .kospiSummary(null) - .kosdaqSummary(null) - .portfolioSummary(null) - .monthlyAssets(calcuateMonthlyAssets(portfolioReturns)) - .monthlyDrawdowns(monthlyDrawdonws) - .monthlyReturns(caculateMonthlyReturns(portfolioReturns)) + .kospiSummary(calculateSummaryReport(kospiValues, "KOSPI")) + .kosdaqSummary(calculateSummaryReport(kosdaqValues, "KOSDAQ")) + .portfolioSummary(calculateSummaryReport(portfolioValues, "PORTFOLIO")) + .monthlyAssets(calcuateMonthlyAssets(portfolioValues)) + .monthlyDrawdowns(calculateMDD(portfolioValues)) + .monthlyReturns(calculateMonthlyReturns(portfolioValues)) .build(); } - private SummaryReport caculateSummaryReport() { - return null; + private SummaryReport calculateSummaryReport(List values, String portfolioName) { + List dailyReturns = calculateDailyReturns(values); + BigDecimal avgDailyReturn = calculateAvgDailyReturn(dailyReturns); + + BigDecimal volatility = calculateVolatility(dailyReturns, avgDailyReturn, values); + BigDecimal sharpeRatio = calculateSharpeRatio(values, dailyReturns, avgDailyReturn, volatility); + BigDecimal sortinoRatio = calculateSortinoRatio(dailyReturns, avgDailyReturn); + return SummaryReport.builder() + .portfolioName(portfolioName) + .initialCapital(values.get(0).getValue()) + .finalCapital(values.get(values.size() - 1).getValue()) + .cagr(calculateCagr(values)) + .maxDrawdown(calculateTotalMDD(values)) + .volatility(volatility) + .sharpeRatio(sharpeRatio) + .sortinoRatio(sortinoRatio) + .build(); + } + + private BigDecimal calculateAvgDailyReturn(List dailyReturns) { + BigDecimal sum = dailyReturns.stream() + .reduce(BigDecimal.ZERO, BigDecimal::add); + + return sum.divide( + BigDecimal.valueOf(dailyReturns.size()), + 10, + RoundingMode.HALF_UP + ); + } + + private List calculateDailyReturns(List values) { + List dailyReturns = new ArrayList<>(); + + for (int i = 1; i < values.size(); i++) { + BigDecimal prev = values.get(i - 1).getValue(); + BigDecimal curr = values.get(i).getValue(); + + BigDecimal dailyReturn = curr.subtract(prev) + .divide(prev, 10, RoundingMode.HALF_UP); + + dailyReturns.add(dailyReturn); + } + return dailyReturns; + } + + private BigDecimal calculateSortinoRatio(List dailyReturns, BigDecimal avgDailyReturn) { + if (dailyReturns.isEmpty()) + return BigDecimal.ZERO; + + // Downside Deviation 계산 (음수 수익률만 사용) + BigDecimal downsideSum = BigDecimal.ZERO; + int downsideCount = 0; + + for (BigDecimal r : dailyReturns) { + if (r.compareTo(BigDecimal.ZERO) < 0) { // 음수 리턴만 + downsideSum = downsideSum.add(r.multiply(r)); + downsideCount++; + } + } + + if (downsideCount == 0) + return BigDecimal.ZERO; // 손실이 없으면 Sortino = 0 또는 매우 높음 (여기서는 0 반환) + + BigDecimal downsideVariance = downsideSum.divide( + BigDecimal.valueOf(downsideCount), + 10, + RoundingMode.HALF_UP + ); + + BigDecimal downsideDeviation = BigDecimal.valueOf( + Math.sqrt(downsideVariance.doubleValue()) + ).setScale(10, RoundingMode.HALF_UP); + + // 연율화된 Downside Deviation = × sqrt(252) + BigDecimal annualizedDownsideDeviation = downsideDeviation + .multiply(BigDecimal.valueOf(Math.sqrt(252))) + .setScale(10, RoundingMode.HALF_UP); + + if (annualizedDownsideDeviation.compareTo(BigDecimal.ZERO) == 0) + return BigDecimal.ZERO; + + // Sortino Ratio = (avgDailyReturn × 252) / annualizedDownsideDeviation + BigDecimal annualizedReturn = avgDailyReturn.multiply(BigDecimal.valueOf(252)); + + return annualizedReturn.divide(annualizedDownsideDeviation, 4, RoundingMode.HALF_UP); + } + + private BigDecimal calculateSharpeRatio(List values, List dailyReturns, BigDecimal avgDailyReturn, BigDecimal volatility) { + if (dailyReturns.isEmpty()) + return BigDecimal.ZERO; + + + // 연율화된 평균 수익률 = avgDailyReturn * 252 + BigDecimal annualizedReturn = avgDailyReturn + .multiply(BigDecimal.valueOf(252)); + + if (volatility.compareTo(BigDecimal.ZERO) == 0) + return BigDecimal.ZERO; + + // Sharpe Ratio = annualizedReturn / volatility + return annualizedReturn.divide(volatility, 4, RoundingMode.HALF_UP); } + private BigDecimal calculateVolatility(List dailyReturns, BigDecimal avgDailyReturns, List values) { + if (values.size() < 2) + return BigDecimal.ZERO; + + // 분산 계산 + BigDecimal varianceSum = BigDecimal.ZERO; + for (BigDecimal r : dailyReturns) { + BigDecimal diff = r.subtract(avgDailyReturns); + varianceSum = varianceSum.add(diff.multiply(diff)); + } + + BigDecimal variance = varianceSum.divide( + BigDecimal.valueOf(dailyReturns.size()), + 10, + RoundingMode.HALF_UP + ); + + // 표준편차 = sqrt(variance) + BigDecimal stdDev = BigDecimal.valueOf(Math.sqrt(variance.doubleValue())) + .setScale(10, RoundingMode.HALF_UP); + + // 연율화 변동성 = stdDev × sqrt(252) + return stdDev + .multiply(BigDecimal.valueOf(Math.sqrt(252))) + .setScale(4, RoundingMode.HALF_UP); + } + + private BigDecimal calculateTotalMDD(List values) { + BigDecimal peak = values.get(0).getValue(); + BigDecimal maxDrawdown = BigDecimal.ZERO; + + for (PortfolioValue pv : values) { + if (pv.getValue().compareTo(peak) > 0) { + peak = pv.getValue(); + continue; + } + + BigDecimal drawdown = peak.subtract(pv.getValue()) + .multiply(BigDecimal.valueOf(100)) + .divide(peak, 2, RoundingMode.HALF_EVEN); + + if (drawdown.compareTo(maxDrawdown) > 0) + maxDrawdown = drawdown; + } + return maxDrawdown.negate(); + } + + private BigDecimal calculateCagr(List values) { + + BigDecimal beginningValue = values.get(0).getValue(); + BigDecimal endingValue = values.get(values.size() - 1).getValue(); + + LocalDate startDate = values.get(0).getDate(); + LocalDate endDate = values.get(values.size() - 1).getDate(); + long days = ChronoUnit.DAYS.between(startDate, endDate); + + // 연수(years) = 일수 / 365 + BigDecimal years = BigDecimal.valueOf(days) + .divide(BigDecimal.valueOf(365), 10, RoundingMode.HALF_UP); + + // endingValue / beginningValue + BigDecimal ratio = endingValue.divide(beginningValue, 10, RoundingMode.HALF_UP); + + // CAGR = ratio ^ (1 / years) - 1 + double cagrDouble = Math.pow(ratio.doubleValue(), 1.0 / years.doubleValue()) - 1; + + return BigDecimal.valueOf(cagrDouble) + .multiply(BigDecimal.valueOf(100)) + .setScale(4, RoundingMode.HALF_UP); // 소수 4자리까지 예시 + } + + private List calcuateMonthlyAssets(List protfolioReturns) { LocalDate monthBoundaryDate = protfolioReturns.get(0).getDate().withDayOfMonth(1); List monthlyAssetList = new ArrayList<>(); @@ -62,7 +233,7 @@ private List calcuateMonthlyAssets(List protfoli return monthlyAssetList; } - private List caculateMonthlyReturns(List portfolioReturns) { + private List calculateMonthlyReturns(List portfolioReturns) { LocalDate monthBoundaryDate = portfolioReturns.get(0).getDate().plusMonths(1).withDayOfMonth(1); List monthlyReturnList = new ArrayList<>(); @@ -82,34 +253,33 @@ private List caculateMonthlyReturns(List portfol return monthlyReturnList; } - private List caculateMDD(List portfolioReturns) { + private List calculateMDD(List portfolioReturns) { LocalDate monthBoundaryDate = portfolioReturns.get(0).getDate().plusMonths(1).withDayOfMonth(1); List mddList = new ArrayList<>(); BigDecimal peak = BigDecimal.ZERO, mdd = BigDecimal.ZERO; for (PortfolioValue pv : portfolioReturns) { if (pv.getDate().isAfter(monthBoundaryDate)) { - monthBoundaryDate = monthBoundaryDate.plusMonths(1).withDayOfMonth(1); mddList.add(PortfolioValue.create(monthBoundaryDate, mdd)); - peak = BigDecimal.ZERO; mdd = BigDecimal.ZERO; + monthBoundaryDate = monthBoundaryDate.plusMonths(1).withDayOfMonth(1); } if (pv.getValue().compareTo(peak) > 0) { peak = pv.getValue(); + mdd = BigDecimal.ZERO; continue; } BigDecimal drawdown = peak.subtract(pv.getValue()) .multiply(BigDecimal.valueOf(100)) - .divide(peak, 2, RoundingMode.HALF_EVEN) - .negate(); + .divide(peak, 2, RoundingMode.HALF_EVEN); if (drawdown.compareTo(mdd) > 0) - mdd = drawdown; + mdd = drawdown.negate(); } return mddList; } - private List caculateIndexReturns(BacktestRequest request, MarketType marketType) { + private List calculateIndexReturns(BacktestRequest request, MarketType marketType) { LocalDate startDate = request.getStartDate(); LocalDate endDate = request.getEndDate(); BigDecimal initialCapital = BigDecimal.valueOf(request.getInitialCapital()).setScale(2, RoundingMode.HALF_EVEN); @@ -143,18 +313,18 @@ private List calculatePortfolioReturns(BacktestRequest request) LocalDate currentDate = startDate; LocalDate lastRebalanceDate = startDate.minusYears(2); List stockQuantityList = calculateStockQuantities(capital, assets, dailyStockPriceLists.get(0)); - BigDecimal remaingCash = caculateRemainingCash(capital, stockQuantityList, dailyStockPriceLists.get(0)); + BigDecimal remaingCash = calculateRemainingCash(capital, stockQuantityList, dailyStockPriceLists.get(0)); List portfolioValueList = new ArrayList<>(); for (List dailyStockPriceList : dailyStockPriceLists) { - capital = caculatePortfolioValue(stockQuantityList, dailyStockPriceList) + capital = calculatePortfolioValue(stockQuantityList, dailyStockPriceList) .add(remaingCash) .setScale(2, RoundingMode.HALF_EVEN); currentDate = dailyStockPriceList.get(0).getBaseDate(); if (checkRebalance(currentDate, lastRebalanceDate, request.getRebalanceCycle())) { stockQuantityList = calculateStockQuantities(capital, assets, dailyStockPriceList); - remaingCash = caculateRemainingCash(capital, stockQuantityList, dailyStockPriceList); + remaingCash = calculateRemainingCash(capital, stockQuantityList, dailyStockPriceList); lastRebalanceDate = currentDate; } @@ -164,7 +334,7 @@ private List calculatePortfolioReturns(BacktestRequest request) return portfolioValueList; } - private BigDecimal caculateRemainingCash(BigDecimal initialCapital, List stockQuantityList, List dailyStockPriceList) { + private BigDecimal calculateRemainingCash(BigDecimal initialCapital, List stockQuantityList, List dailyStockPriceList) { BigDecimal usedCapital = BigDecimal.ZERO; for (int i = 0; i < stockQuantityList.size(); i++) { BigDecimal stockQuantity = stockQuantityList.get(i); @@ -174,7 +344,7 @@ private BigDecimal caculateRemainingCash(BigDecimal initialCapital, List stockQuantityList, List dailyStockPriceList) { + private BigDecimal calculatePortfolioValue(List stockQuantityList, List dailyStockPriceList) { BigDecimal portfolioValue = BigDecimal.ZERO; for (int i = 0; i < stockQuantityList.size(); i++) { BigDecimal stockQuantity = stockQuantityList.get(i); From 7461d5ea32cf15a3670aca85a58384d1b7ff95ca Mon Sep 17 00:00:00 2001 From: jeongyun1206 <67818407+jeongyun1206@users.noreply.github.com> Date: Mon, 17 Nov 2025 18:37:16 +0900 Subject: [PATCH 7/7] =?UTF-8?q?#41=20feat:=20=EB=B0=B1=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8C=85=20=EC=9A=94=EC=B2=AD=20=EA=B2=80=EC=A6=9D=20=EC=99=84?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../executionHistory/executionHistory.bin | Bin 2294028 -> 2294028 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/8.14.3/fileHashes/fileHashes.bin | Bin 40597 -> 40597 bytes .gradle/8.14.3/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.14.3/fileHashes/resourceHashesCache.bin | Bin 73273 -> 73613 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .../compileJava/previous-compilation-data.bin | Bin 72257 -> 72261 bytes .../backtest/BacktestController.java | 1 + .../indexData/IndexDataScheduler.java | 4 +-- .../scheduler/stock/StockScheduler.java | 2 +- .../service/backtest/BacktestService.java | 1 + .../service/backtest/BacktestServiceImpl.java | 30 ++++++++++++++++++ .../repository/StockPriceRepository.java | 1 + .../stock/repository/StockRepository.java | 3 +- .../apipayload/code/status/ErrorStatus.java | 6 +++- 15 files changed, 43 insertions(+), 5 deletions(-) diff --git a/.gradle/8.14.3/executionHistory/executionHistory.bin b/.gradle/8.14.3/executionHistory/executionHistory.bin index 9968dd145894ee826dd2af4d27e3dd06101d6771..4299707548583abebaf4da06591d9d13e2a767f8 100644 GIT binary patch delta 1441 zcmZXSX;c$e6vsOufn-?TfCxc?VUwj8wjhcJ*#yPoDT^qGMS+MRC1?q73M#Z78DtR( z2=*yO8aFTz*%U?v6{QrVNT4VpbxDjC7Z5i}QXPxD zM(5IoBRk9%z$ypa16~OOEJ_^=6s80vo^BA8VmAecSxU{<1;-e#rPc>IogR#HH9Lu-kQ zf6A1a-31zH#N6!p+rwKAOv*!)XL)_?@2IAH;L9Kq_jmVt`K`XB00sFGfuX*zD+>2^ zJI=e7vM7Hp%*KJe*JW&X)S0G}DC>}k-e*MA*v`;>m4?|GS)=#mxr`DRSpc{J*P9b2 zH=XmktZd^{4Z7CPHtQO?jZlLHKO)<``?X%?)T!k|4X*k~?GpAqV*59R&j`oDhgf!e z$h*#53Y(&F4*aJ8*t0wQH?sIAy+$v;S7a(i$Fo{=X+?DCM*^;S9mmOo#W2WK3q()1 z+VtV|=tE&T3GCfkmWQ7pG_}t9<&F-4&F7`MKTy|!p^?X5{3scW?_C#dHW9wk-9rv9 zkU-4n*9Jq^La>IeKqdU95F`XEb<>n0)D>6FaP=|#&9B9xJSp#u;xJNy&+c@dTGf8o zKrV`#jA7kHDt>UCdPbj_yz^M+5Aka?R?sd64`%dgW2pFjV35ZCYW+#KmZKr`p`KMG z25$XkJ-QK32#D3ttYB;jAcC*x)Fcb#J^gSZ$7NATrpK7(lSW#+2`R~_-1EQ#`;>vG z<+LYjciuwEJ8|&i)bq*u)d6vBBU6u$zz+jVKd3AL-E4b?zasK(ZQAyniEXOZtVWeC z`>;JE3RuqY_flZ!n|tJo*>)Gc8oStTvfC)^4-|NJI#e3jFA&IL7JHh#^$m?D~Pn`OX@ejAk(tsHpJ z@IkHR%jaXYP}0J-g6k`Q8RMo_QsN2#Fvhs9?Ym0giR()K^ye6aSSfBnDJsD+%w0E! ze_XpyyoQLfjCpg5r1`aJe{HaykJJN$gV@*Qyfn;}IyAD_#uh3oY1S~PhfctO1Hf=i zu{tYZCdKztg~|(?m^)pMT0)KKfl|v0Lya?;)72!S38}`jk6&a3RTNEN!k~{io3vY# zKs8sm+wDkVCf`WeC(HvdIY_URa=%Kq$1MN!s~TA&9d1ut$hp|_rt3|cZrl2bR5buW rAWRWvhQ+dU&w|8jbJG61zXO2>`Hw^2-_H0jH)@XdzX-L9eU+3{?Az~69d2enHc%TCUejn9rZu7xMgJJ~-wq!M)wtcD24;d} z`-Ci{=NFZ?Ot5auM8c^!%#D3&y z03v=dH=!cXS>0GLqU_1v)v3C*Ty12acnE~txwjpYnJ)8sdv@Xg36+ zb)GWy{j9Si;a`NPR6mFxJ;8%+*-xD`h8KBTcxC5z3tMj1w;fA!j`v8>R}hq<7!~mv z^V_B4m3mN+cn80_Wm6@1U){`#jO94u&jvPat$j595st<(V{_Vi>dwG>ZLIMTWg(7) zI*C>8@*>?8o4hsa7vM%VRDeO!VT|EjoDgF1o_w{X$JgGc!&bCTzdk&xEK;xd-l3C_A zNq=wTN%F)vGQ59p{#9F+Ea}Zs*Of*8BRFbUTl93grteFA{KTFvUT!$jC>Ta+!!T1s z3r5_nKxXl0~v6YxV7JzZFRahX#!}yp03&Mi25NtIT QiV3kWYz^f$i`MP_7x7W6B>(^b diff --git a/.gradle/8.14.3/executionHistory/executionHistory.lock b/.gradle/8.14.3/executionHistory/executionHistory.lock index 8faec9105a352fa5f2305f1eb43ecae03ce83f44..3da994447fb20fcd122218a1ed997be51ae26484 100644 GIT binary patch literal 17 UcmZSXEVfOZu)k1_0Ss7s0WAy!5&!@I literal 17 UcmZSXEVfOZu)k1_0Ss7M04)Oq2><{9 diff --git a/.gradle/8.14.3/fileHashes/fileHashes.bin b/.gradle/8.14.3/fileHashes/fileHashes.bin index 7957ed54a9cc742b37e6a262b3f55729b6cef0ea..55a7f709183e3aa3ffe58edbef4cc3d02f4a57dd 100644 GIT binary patch delta 822 zcmbQbmuc!=rVTq26uwzbyy&^$!lrmRnOz4y?f%5Tz&LB7j<6vE2rx>yPUcS3+{~1y z%r3Fo^_tuU4x1eT)7{s3O<#TptWqiH&1TyS5k@ap)AzjBPbQkS%Vj7l*(v`8%WAs2 zgUw-Jl?Bpz#y~<7h!sItpd!uuP4$G$3CcZl?72@a(*x^J$^A2V?F^~STQm1CDV%y$ zcHUz9gZqEuYo%Qjo=8H>WX=U@2LiVDlPBifk~pz0=6Tc>!+j4n%1k_?Iqxe(QJCK5 z=G+QKh0Ktp+UplOv79^L*2%7YTnH-b05*YvBXzQLz8cF!%`p4TuK7943QDXt=lyTa z%E~RjmHKc)@p7p0M2K=h$;lUsx=~J zKKbs1I*H!3^Jg8tuzYcM&G$X=n%S$tZc_?+zqxo~1*61b-9ss=wclN3l_i=qu2ly> zU9P*Cc{0Sfgw4@YWx)3PZ?2xf$5b!WVX|~x&hO`wy|!5HelzD5SceW*7R1dg?LZnW z##s3T`zEGu4HNWj_>>tE`vI&&`{WCV4(|(?Ixa|xo_5Y+vY)l^u@T$9OB294WLrQQ zSb>h1sV+D{vbIMkm2u|arhL`vK zK3{bH@{MA!4$Uxqum%Puc1#^}WYqLIS=lQdCuO`ymOaV^wL=c5a`L3P67uVbEiOng2@t)2edZqx`CB*Yzh*^R5CVfq-ex=Ea%km=ts$ zblxzJ5&3#v)X!$g4O5_bU|XT8SaT*%%(*3T|9;P6H_?#SA!okNc4-QJ3|92gVC&}Q z+zLho&)K_PK8ZF{mVEE87I5!EDpd9$#3J^ilcn?3SQdSbzenCdU`+ff#ExPb^-*1~ftY-)7UQ4~!6& zW{nsN&xDr-mmvB=`X&eZ3U7{U_|44H5ZyFkb8HJxWn)gl_sxNA8bCeKO`Vf#+x0+< zj?L@aLzqBDi*9D`y2J)jc7O8S33U<&9QBj3Zd{4i|Eu$Vey^b%G&C-5E}mGyC~+V_ zB=hj>t$jv04J*&ZZz=-II#1ubnRznMIG|f@ZH}HQ!wg~_-&{R|k16OBUuJ7)Yvbc{ zhTHyUmwtwXZp@QVh?`kJG+M0LtX;9x{?j=@5szf9H46nkgY1|nef1GUhuhrA6I+Gl zUkm9^c-0@RHet%qC)s)*!0w275(QDi7`T~tHXBpD{kzs0rKVqh+YIeb7_V8d9BdND zHE7IosA1ZjE@EFQcB8U0=CJG9=&U6{P#xEx=5}G~_+EJFYVhqTItM~M%zfT&5Qn(- p{uiLi$&=;Gx{yPnk%708ILItxo%Nizf^RxP#I%4;18$?j<;O0`BCRR2rO$G+P*vWyn6*t#8 zF;y|{-`u!Ikeh$<0iWNcN)MrG=Wp&j{*#$Msr=7^jqzWhf{!;>o_@e4V0*tXqi@;_ zUZ`EHn*%RhWZ^g3@mi>`cLP*u^k&KH9!vsZbH2nJIU4Q;RjR%@@}>u?K-T@x)9t3- zwNSN|n`hqhW@r4lQBi_zbMKoqhV{lk8A%`(1Yv>ZEpap67kv>|IChTz#MQ&>KtVZF z72C7lE=!xU_YI$X*tR{ZHgsdED7<0I$mFzxd){gb&Ie9r5tu6O*O-WR9NzFxde!#q zyXLRX-oaF|%=P6l=ev8Z?`r=LapkegbW9bSO*+<2Ojr4NxUlAc$Fk!|m?~=ew)hog z9L~Ly_3>@+h8OQ9e=HQ{Pl`K|!z1s}a+z~=QcUdc=?f(og-w+>=HKbicu`|v@=o~G cszywswmvdFw|k|r+U4(A7yP#hNr6-V0D_aWP5=M^ delta 104 zcmV-u0GI!bzXZ9w1h6z10ll*|7^w!c_8#~Ivj!wk4YO`BSPQe>Jb48MDail;U!jxn z+EA0B+ZnTFLK=DjxwC=15eu`b$M6HQvdh;7v!T+-1hazIKLWGa*+2!eG2cT60co)z Ks0Oo*?5r^^Q7*v% diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 4d949fb4f13fd22e12bc11130e55256ed382f0b0..16f8713c7b6836f628f66a6d4a1846439336a92d 100644 GIT binary patch literal 17 UcmZP$IX3Boh0taO2oU50059GHyZ`_I literal 17 UcmZP$IX3Boh0taO2oU%Q05Hb{rT_o{ diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index dbb71b1e2a0023eadf9324253ada7b4813882202..8b249392ad37238f9827c2bd4aa97464ca50077e 100644 GIT binary patch delta 232 zcmX@Oh2`iLmIs3*|Hk4_O6Htc!Ub zwZ(AXgN-s1&uGs3y4jb*fLUO%?x7Ub+V8Hi$`VZ)*Qx_1_j3ObP-3+??|*YvR&M#N z)Q202mrtI`lOQlhMopiSmA&F|QpSs9*`r*WS$TglF*BvOP7?UY!?CkT2mqsTOG71_R3gt3Pe05|4bnE(I) delta 229 zcmX@Qh2`KDmIpv^H%4_O87-|t!M zCK~cO~WJZCH+#D%;7|$?XWSqfh bHTj=F5>R+^vY;0;vUu}Ok?lK07<*U&wrOLb diff --git a/src/main/java/com/stockport/server/application/controller/backtest/BacktestController.java b/src/main/java/com/stockport/server/application/controller/backtest/BacktestController.java index 0c2e5f0..8b4f134 100644 --- a/src/main/java/com/stockport/server/application/controller/backtest/BacktestController.java +++ b/src/main/java/com/stockport/server/application/controller/backtest/BacktestController.java @@ -20,6 +20,7 @@ public class BacktestController { @PostMapping public ResponseEntity runBacktest(@RequestBody BacktestRequest request) { + backtestService.validateRequest(request); return ResponseEntity.ok(backtestService.runBacktest(request)); } } diff --git a/src/main/java/com/stockport/server/application/scheduler/indexData/IndexDataScheduler.java b/src/main/java/com/stockport/server/application/scheduler/indexData/IndexDataScheduler.java index 9ae6404..435c249 100644 --- a/src/main/java/com/stockport/server/application/scheduler/indexData/IndexDataScheduler.java +++ b/src/main/java/com/stockport/server/application/scheduler/indexData/IndexDataScheduler.java @@ -13,13 +13,13 @@ public class IndexDataScheduler { private final IndexDataService indexDataService; - @Scheduled(cron = "0 0/5 9-18 * * MON-FRI", zone = "Asia/Seoul") // todo: 공휴일/휴장일 스케쥴러 처리 필요. + @Scheduled(cron = "0 0/5 9-17 * * MON-FRI", zone = "Asia/Seoul") // todo: 공휴일/휴장일 스케쥴러 처리 필요. public void updateKospi() { indexDataService.updateCurrentIndexData(MarketType.KOSPI); log.info("[Scheduler] 코스피 데이터 업데이트 완료"); } - @Scheduled(cron = "0 0/5 9-18 * * MON-FRI", zone = "Asia/Seoul") // todo: 공휴일/휴장일 스케쥴러 처리 필요. + @Scheduled(cron = "0 0/5 9-17 * * MON-FRI", zone = "Asia/Seoul") // todo: 공휴일/휴장일 스케쥴러 처리 필요. public void updateKosdaq() { indexDataService.updateCurrentIndexData(MarketType.KOSPI); log.info("[Scheduler] 코스닥 데이터 업데이트 완료"); diff --git a/src/main/java/com/stockport/server/application/scheduler/stock/StockScheduler.java b/src/main/java/com/stockport/server/application/scheduler/stock/StockScheduler.java index 25f53b8..e408115 100644 --- a/src/main/java/com/stockport/server/application/scheduler/stock/StockScheduler.java +++ b/src/main/java/com/stockport/server/application/scheduler/stock/StockScheduler.java @@ -18,7 +18,7 @@ public void saveDailyStockData() { log.info("[Scheduler] 일별 주가 데이터 업데이트 완료"); } - @Scheduled(cron = "0 0/5 9-18 * * MON-FRI", zone = "Asia/Seoul") // todo: 공휴일/휴장일 스케쥴러 처리 필요. + @Scheduled(cron = "0 0/5 9-17 * * MON-FRI", zone = "Asia/Seoul") // todo: 공휴일/휴장일 스케쥴러 처리 필요. public void updateStockData() { stockService.updateCurrentStockData(); log.info("[Scheduler] 주가 데이터 업데이트 완료"); diff --git a/src/main/java/com/stockport/server/application/service/backtest/BacktestService.java b/src/main/java/com/stockport/server/application/service/backtest/BacktestService.java index cc99dfb..25ce8a9 100644 --- a/src/main/java/com/stockport/server/application/service/backtest/BacktestService.java +++ b/src/main/java/com/stockport/server/application/service/backtest/BacktestService.java @@ -5,4 +5,5 @@ public interface BacktestService { BacktestResponse runBacktest(BacktestRequest request); + void validateRequest(BacktestRequest request); } diff --git a/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java b/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java index a013155..f62ec03 100644 --- a/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java +++ b/src/main/java/com/stockport/server/application/service/backtest/BacktestServiceImpl.java @@ -9,8 +9,12 @@ import com.stockport.server.domain.indexData.constant.MarketType; import com.stockport.server.domain.indexData.entity.IndexData; import com.stockport.server.domain.indexData.repository.IndexDataRepository; +import com.stockport.server.domain.stock.entity.Stock; import com.stockport.server.domain.stock.entity.StockPrice; import com.stockport.server.domain.stock.repository.StockPriceRepository; +import com.stockport.server.domain.stock.repository.StockRepository; +import com.stockport.server.global.apipayload.code.status.ErrorStatus; +import com.stockport.server.global.exception.GeneralException; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -26,6 +30,7 @@ @Service @RequiredArgsConstructor public class BacktestServiceImpl implements BacktestService { + private final StockRepository stockRepository; private final StockPriceRepository stockPriceRepository; private final IndexDataRepository indexDataRepository; @@ -45,6 +50,31 @@ public BacktestResponse runBacktest(BacktestRequest request) { .build(); } + @Override + public void validateRequest(BacktestRequest request) { + LocalDate startDate = request.getStartDate(); + LocalDate endDate = request.getEndDate(); + + if (startDate.isAfter(endDate)) + throw new GeneralException(ErrorStatus.BACKTEST_INVALID_DATE_RANGE); + + List assets = request.getAssets(); + int totalWeight = assets.stream() + .mapToInt(AssetRequest::getWeight) + .sum(); + + if (totalWeight != 100) { + throw new GeneralException(ErrorStatus.BACKTEST_INVALID_WEIGHTS); + } + + for (AssetRequest asset : assets) { + Stock stock = stockRepository.findByStockCd(asset.getStockCd()).orElseThrow(() -> + new GeneralException(ErrorStatus.STOCK_NOT_FOUND)); + if (startDate.isBefore(stockPriceRepository.findTopByStockOrderByBaseDateAsc(stock).getBaseDate())) + throw new GeneralException(ErrorStatus.BACKTEST_INVALID_DATE_RANGE); + } + } + private SummaryReport calculateSummaryReport(List values, String portfolioName) { List dailyReturns = calculateDailyReturns(values); BigDecimal avgDailyReturn = calculateAvgDailyReturn(dailyReturns); diff --git a/src/main/java/com/stockport/server/domain/stock/repository/StockPriceRepository.java b/src/main/java/com/stockport/server/domain/stock/repository/StockPriceRepository.java index f2536ca..e9b76ba 100644 --- a/src/main/java/com/stockport/server/domain/stock/repository/StockPriceRepository.java +++ b/src/main/java/com/stockport/server/domain/stock/repository/StockPriceRepository.java @@ -29,4 +29,5 @@ List findAllBaseDatesByStockAndDateRange( List findAllByBaseDate(LocalDate today); void deleteAllByStock(Stock stock); + StockPrice findTopByStockOrderByBaseDateAsc(Stock stock); } diff --git a/src/main/java/com/stockport/server/domain/stock/repository/StockRepository.java b/src/main/java/com/stockport/server/domain/stock/repository/StockRepository.java index f575c9c..4e0f3b6 100644 --- a/src/main/java/com/stockport/server/domain/stock/repository/StockRepository.java +++ b/src/main/java/com/stockport/server/domain/stock/repository/StockRepository.java @@ -13,4 +13,5 @@ public interface StockRepository extends JpaRepository { Optional findByStockCd(String stockCd); List findTop10ByStockNameContainingIgnoreCaseOrStockCdContainingIgnoreCaseOrIsinCdContainingIgnoreCaseOrderByMarketCapDesc( String name, String code, String isin - );} + ); +} diff --git a/src/main/java/com/stockport/server/global/apipayload/code/status/ErrorStatus.java b/src/main/java/com/stockport/server/global/apipayload/code/status/ErrorStatus.java index 42a90ba..cd098a8 100644 --- a/src/main/java/com/stockport/server/global/apipayload/code/status/ErrorStatus.java +++ b/src/main/java/com/stockport/server/global/apipayload/code/status/ErrorStatus.java @@ -19,7 +19,11 @@ public enum ErrorStatus implements BaseCode { INDEX_DATA_NOT_FOUND(HttpStatus.BAD_REQUEST, "INDEX4001", "지수 데이터가 존재하지 않습니다."), - STOCK_NOT_FOUND(HttpStatus.BAD_REQUEST, "STOCK4001", "해당 종목을 찾을 수 없습니다."),; + STOCK_NOT_FOUND(HttpStatus.BAD_REQUEST, "STOCK4001", "해당 종목을 찾을 수 없습니다."), + + BACKTEST_INVALID_DATE_RANGE(HttpStatus.BAD_REQUEST, "BACKTEST4001", "백테스트 기간이 유효하지 않습니다."), + BACKTEST_INVALID_START_DATE(HttpStatus.BAD_REQUEST, "BACKTEST4002", "백테스트 시작 일자가 유효하지 않습니다."), + BACKTEST_INVALID_WEIGHTS(HttpStatus.BAD_REQUEST, "BACKTEST4004", "포트폴리오 가중치 합이 100%가 아닙니다."); private final HttpStatus httpStatus; private final String code;