

From c698f1e918bd2aecf3146fc726810fb1ae643380 Mon Sep 17 00:00:00 2001 From: cpf <1105965053@qq.com> Date: Wed, 3 Nov 2021 13:57:19 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=AE=BE=E5=A4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../facilityinfoinscene-window.ts | 39 +++++++------------ src/app/pages/plan/plan.component.ts | 27 ++++++++++++- 2 files changed, 40 insertions(+), 26 deletions(-) diff --git a/src/app/babylon/view/facilityinfoinscene-window/facilityinfoinscene-window.ts b/src/app/babylon/view/facilityinfoinscene-window/facilityinfoinscene-window.ts index b7f7b00..d3cf2ed 100644 --- a/src/app/babylon/view/facilityinfoinscene-window/facilityinfoinscene-window.ts +++ b/src/app/babylon/view/facilityinfoinscene-window/facilityinfoinscene-window.ts @@ -151,30 +151,21 @@ export class FacilityInfoInSceneWindow extends UIBase { //选中,通知前端 selectFacilityItemToThree(facilityInfoUIItem: FacilityInfoUIItem[], isChecked?: boolean) { this.three = PlanComponent.instance; - // if (this.isMultiselect) { // 多选 - // if (isChecked) { //选中 - // facilityInfoUIItem.forEach(element => { - // element.isChecked = isChecked - // let isFind = this.three.beforeOnefacilityInfoList.find(item => { return item === element.getID() }) - // isFind == undefined || isFind == null ? this.three.beforeOnefacilityInfoList.push(element.getID()) : null - // }) - // } else { //取消选中 - // this.three.isShowRightNature = false - // facilityInfoUIItem.forEach(element => { - // element.isChecked = isChecked - // let index = this.three.beforeOnefacilityInfoList.findIndex(value => value === element.getID()) - // index != undefined && index != null ? this.three.beforeOnefacilityInfoList.splice(index, 1) : null - // }) - // } - // } else { // 单选 - // if (isChecked) { //选中 - // this.three.beforeOnefacilityInfo = facilityInfoUIItem[0].getID(); - // this.three.getPropertyData(facilityInfoUIItem[0]) - // } else { //取消选中 - // this.three.isShowRightNature = false - // this.three.beforeOnefacilityInfo = null - // } - // } + if (this.isMultiselect) { // 多选 + if (isChecked) { //选中 + + } else { //取消选中 + + } + } else { // 单选 + if (isChecked) { //选中 + this.three.beforeOnefacilityInfo = facilityInfoUIItem[0].getID(); + this.three.getPropertyData(facilityInfoUIItem[0]) + } else { //取消选中 + // this.three.isShowRightNature = false + this.three.beforeOnefacilityInfo = null + } + } } /** diff --git a/src/app/pages/plan/plan.component.ts b/src/app/pages/plan/plan.component.ts index f1769ef..4d568a7 100644 --- a/src/app/pages/plan/plan.component.ts +++ b/src/app/pages/plan/plan.component.ts @@ -14,6 +14,8 @@ import { BuildingType } from 'src/app/babylon/model/data/institution/building/bu import { BuildingWindow } from 'src/app/babylon/view/building-window/building-window'; import { FacilityUIItem } from 'src/app/babylon/view/facility-window/facility-ui-item'; import { FacilityWindow } from 'src/app/babylon/view/facility-window/facility-window'; +import { FacilityInfoUIItem } from 'src/app/babylon/view/facilityinfoinscene-window/facilityinfo-ui-item'; +import { EventManager } from '@angular/platform-browser'; @@ -24,7 +26,7 @@ import { FacilityWindow } from 'src/app/babylon/view/facility-window/facility-wi }) export class PlanComponent implements OnInit { - constructor(private element: ElementRef, private buildingBISrv: BuildingBasicInfosService, private objectsSrv: ObjectsService) { } + constructor(private element: ElementRef, private buildingBISrv: BuildingBasicInfosService, private objectsSrv: ObjectsService, private eventManager: EventManager) { } static instance: PlanComponent; public game: Game = new Game(); @@ -36,6 +38,16 @@ export class PlanComponent implements OnInit { ServeManager.Init(this.buildingBISrv, this.objectsSrv); this.canvas = this.element.nativeElement.querySelector('#center') as HTMLCanvasElement; this.game.init(this.canvas); + //监听 delete键盘事件 + this.eventManager.addGlobalEventListener('window', 'keydown', (event: any) => { + if (event.keyCode == 46) { //delete + if (this.beforeOnePropertyData) { + let isDelete = confirm("是否删除已选择模型?"); + if (isDelete) { this.beforeOnePropertyData.askDelete(false) }; + } + } + }) + //监听 delete键盘事件 } ngAfterViewInit(): void { @@ -179,6 +191,14 @@ export class PlanComponent implements OnInit { e == 0 ? bootomDiv.scrollLeft = bootomDiv.scrollLeft + 50 : bootomDiv.scrollLeft = bootomDiv.scrollLeft - 50 } + beforeOnePropertyData: FacilityInfoUIItem = null; //当前选择 设备 + beforeOnefacilityInfo: string = null; //当前选择 设备ID + + //获取选择设备 属性 + getPropertyData(e: FacilityInfoUIItem) { + this.beforeOnePropertyData = e + } + selectRightTopFast: number = 0; //当前选择功能 快捷栏 selectAdsorb: boolean = false; //吸附状态 topLevelView: boolean = false; //顶视图状态 @@ -190,7 +210,10 @@ export class PlanComponent implements OnInit { //清空设备 clearDevice() { - ToolbarWindow.instance.clearHomeLessFacilityData() + let isClear = confirm('您确定要清空吗?') + if (isClear) { + ToolbarWindow.instance.clearHomeLessFacilityData() + } } //平移 From 7efbcc204db353951480203c015d453d60e66400 Mon Sep 17 00:00:00 2001 From: cpf <1105965053@qq.com> Date: Wed, 3 Nov 2021 14:31:39 +0800 Subject: [PATCH 2/4] =?UTF-8?q?loading=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/pages/pages.module.ts | 4 +++- src/app/pages/plan/plan.component.html | 1 + src/app/pages/plan/plan.component.scss | 12 ++++++++++++ src/app/pages/plan/plan.component.ts | 1 + 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/app/pages/pages.module.ts b/src/app/pages/pages.module.ts index 5b54a7f..ad54b81 100644 --- a/src/app/pages/pages.module.ts +++ b/src/app/pages/pages.module.ts @@ -28,6 +28,7 @@ import { NzModalModule } from 'ng-zorro-antd/modal'; import { NzPaginationModule } from 'ng-zorro-antd/pagination'; import { NzDropDownModule } from 'ng-zorro-antd/dropdown'; import { NzMessageModule } from 'ng-zorro-antd/message'; +import { NzSpinModule } from 'ng-zorro-antd/spin'; import { TodayWarningAdminComponent } from './today-warning-admin/today-warning-admin.component'; @NgModule({ declarations: [LoginComponent, RegisterComponent, HomeComponent, PlanComponent, TodayWarningComponent, CriminalRecordsComponent, TodayWarningAdminComponent,], @@ -55,7 +56,8 @@ import { TodayWarningAdminComponent } from './today-warning-admin/today-warning- NzModalModule, NzPaginationModule, NzDropDownModule, - NzMessageModule + NzMessageModule, + NzSpinModule ] }) export class PagesModule { } diff --git a/src/app/pages/plan/plan.component.html b/src/app/pages/plan/plan.component.html index 90b4ec4..a79ab12 100644 --- a/src/app/pages/plan/plan.component.html +++ b/src/app/pages/plan/plan.component.html @@ -1,3 +1,4 @@ +
系统管理页面
diff --git a/src/app/system-management/navigation/navigation.component.scss b/src/app/system-management/navigation/navigation.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/navigation/navigation.component.ts b/src/app/system-management/navigation/navigation.component.ts similarity index 62% rename from src/app/navigation/navigation.component.ts rename to src/app/system-management/navigation/navigation.component.ts index d16e6af..18be053 100644 --- a/src/app/navigation/navigation.component.ts +++ b/src/app/system-management/navigation/navigation.component.ts @@ -1,5 +1,4 @@ import { Component, OnInit } from '@angular/core'; -import {CacheTokenService} from '../service/cache-token.service'//引入服务 @Component({ selector: 'app-navigation', @@ -7,11 +6,10 @@ import {CacheTokenService} from '../service/cache-token.service'//引入服务 styleUrls: ['./navigation.component.scss'] }) export class NavigationComponent implements OnInit { - - constructor(public navmenus:CacheTokenService) { } - ngOnInit() { + constructor() { } + ngOnInit(): void { } } diff --git a/src/app/system-management/organization/organization.component.html b/src/app/system-management/organization/organization.component.html new file mode 100644 index 0000000..414c783 --- /dev/null +++ b/src/app/system-management/organization/organization.component.html @@ -0,0 +1 @@ +organization works!
diff --git a/src/app/system-management/organization/organization.component.scss b/src/app/system-management/organization/organization.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/system-management/organization/organization.component.ts b/src/app/system-management/organization/organization.component.ts new file mode 100644 index 0000000..b7e9eee --- /dev/null +++ b/src/app/system-management/organization/organization.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-organization', + templateUrl: './organization.component.html', + styleUrls: ['./organization.component.scss'] +}) +export class OrganizationComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/src/app/system-management/role/role.component.html b/src/app/system-management/role/role.component.html new file mode 100644 index 0000000..ce1bd50 --- /dev/null +++ b/src/app/system-management/role/role.component.html @@ -0,0 +1 @@ +role works!
diff --git a/src/app/system-management/role/role.component.scss b/src/app/system-management/role/role.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/system-management/role/role.component.ts b/src/app/system-management/role/role.component.ts new file mode 100644 index 0000000..dbd7a84 --- /dev/null +++ b/src/app/system-management/role/role.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-role', + templateUrl: './role.component.html', + styleUrls: ['./role.component.scss'] +}) +export class RoleComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/src/app/system-management/system-management-routing.module.ts b/src/app/system-management/system-management-routing.module.ts new file mode 100644 index 0000000..54f7104 --- /dev/null +++ b/src/app/system-management/system-management-routing.module.ts @@ -0,0 +1,18 @@ +import { Routes, RouterModule } from '@angular/router'; +import { NgModule } from '@angular/core'; + +import {AuthGuard} from '../auth.guard' + +const routes: Routes = [ + // { path: 'plan', component: PlanComponent }, + // { path: 'warning/petrolStation', component: TodayWarningComponent }, + // { path: 'warning/admin', component: TodayWarningAdminComponent }, + // { path: 'records/petrolStation', component: CriminalRecordsComponent }, + // { path: 'records/admin', component: CriminalRecordsAdminComponent } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class SystemRoutingModule { } diff --git a/src/app/system-management/system-management.module.ts b/src/app/system-management/system-management.module.ts new file mode 100644 index 0000000..a757a84 --- /dev/null +++ b/src/app/system-management/system-management.module.ts @@ -0,0 +1,18 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { SystemRoutingModule } from './system-management-routing.module'; +import { OrganizationComponent } from './organization/organization.component'; +import { UserComponent } from './user/user.component'; +import { RoleComponent } from './role/role.component'; +import { NavigationComponent } from './navigation/navigation.component'; + + + +@NgModule({ + declarations: [OrganizationComponent, UserComponent, RoleComponent, NavigationComponent], + imports: [ + CommonModule, + SystemRoutingModule + ] +}) +export class SystemManagementModule { } diff --git a/src/app/system-management/user/user.component.html b/src/app/system-management/user/user.component.html new file mode 100644 index 0000000..d039bb7 --- /dev/null +++ b/src/app/system-management/user/user.component.html @@ -0,0 +1 @@ +user works!
diff --git a/src/app/system-management/user/user.component.scss b/src/app/system-management/user/user.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/system-management/user/user.component.ts b/src/app/system-management/user/user.component.ts new file mode 100644 index 0000000..5df0c83 --- /dev/null +++ b/src/app/system-management/user/user.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-user', + templateUrl: './user.component.html', + styleUrls: ['./user.component.scss'] +}) +export class UserComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/src/app/ui/changepassword/changepassword.component.ts b/src/app/ui/changepassword/changepassword.component.ts index 07ae9c5..fae2f9c 100644 --- a/src/app/ui/changepassword/changepassword.component.ts +++ b/src/app/ui/changepassword/changepassword.component.ts @@ -1,6 +1,5 @@ import { Component, OnInit } from '@angular/core'; import { HttpClient } from '@angular/common/http' -import { MatDialogRef } from '@angular/material/dialog'; import { NzMessageService } from 'ng-zorro-antd/message'; @@ -12,8 +11,7 @@ import { NzMessageService } from 'ng-zorro-antd/message'; export class ChangepasswordComponent implements OnInit { - constructor(private http: HttpClient, - public dialogRef: MatDialogRefgzFHQabUG{cps1*g3F?2xFgFpk^SoywdY3w;oS!&sUa=ae6YCh9fL==*9ZKc4ld%jd$iv82~KM0{Rs(pDILs42@w=$G2(_2 zxo}*wQ)OoL8{GN*KNDElTaR5@rfz*WLXK1}ulzg)Wa>Y+X6oH-eUu~Xl3ZZ?S`YUt z>@j4RNV`P53%$QuRtZ0+OPPOPk1$DAU3;eMdfl?l!}0Y)&9?iuL-_JuibP>g&ei5N zl;@3(5BG@uEFQDa5;@&C^?dKPq9Q%HNM40}ZKoxb)F1z`#$Fo}u@gXq_n>kFrATMb z2V##AhS(_DCDJe(wZX$inZdbq-R4@sN;x|h;R7kF7e_vec~;(Ye||Ai@b`(D GgdJpN*mu`YlfmXaRe=5Bp+(=d1K+zlnd4- zal&U%(Npiys-nbpeC!=bh2 xUJpCnqod(C#`@x}Ywn*dDk& zUq;6I%>|+3n%`7h0d~BWj#c9@(e1Gu4N+URVx!WyLw}l2)W}%fx$xWiij0ZY*H0H$ z8f(S2vr&i6ED2jBbm%pbk&8=rBSf2T-V5<_$u5xL86ckE5~Gs1NaSpYgN^c@e7G8V z>N6zH `6U zp6vRmR)S`);f^WddZN6--HU3!gw!J!Saw;T> zaMZ~ o#VpIwFFMNR9BKTt@6LOm3{eKUfUtT_Yrd>+y1?52Y|ZmPwdl> zUUb!F6Ly&6wmAH1s+;HY92NJ-SF8PJ?vedtWp`ap?Y?)ntK;*ry-M1XutmE*CJC>a zH=iL};8x^4QgJZABf?8LbK;LKqa^X;&b)rfI8BReyI9Mngr>**|AD4qn{C!3&6M ny g@f*KY49kZ11P|e1nEnQHdpEg};)8RCVDY*tU5jx;Wo@ zBLZVlowD@DrD)=!O@Y@9WkvEqJydGqp_9{pR2oU1MEKzHXUyoH_Dv&k*o|(`jA#rl ztZn}EEH87cZoiRYB67w;Zm*D*Mf|U&xyJUonb=!#R$tX40EXvqm>l@4`{QO!#iVw` zb%O*`sWZ=irCvANd=~XUHt&0g(rbz19Hp6%Cj=kbT$o~9g=^J?n7VKyxkorOnv&z7 zmG()edefP6kB0MCVRNyQ8i!*|xdUUbs}{blHHyzljgXq-YW??5D@TBL&e);-qz6CG zBohK2V;<5oU){0Eznl@9w5W`UTg$->Jyx6HuOV|b8cyZPsHwSIn3xXQWKF;D{&q|j z&Xc$p!cv~RIxd*?; zMU{-eQ(y?#5f4;vNu-3CupgeT-znHxLiRn66 zdMIx~k6caG|IV48t>u}1lyl1s$Q+zi%9IW(EZ@3cQcjT*)i}&EbmNw;SHe%0mHkRP z8^uKrs$rv|lGc+{pPKsOnnL+*wTs)y(FaHc-=CM%nb8We+zOZo)VL6-F{M7-6CV~# zklV|btq^o~D^zc0kc}$E7NTh;&j5lp9w2$8C5UUwa`&~7-&jrYZl#%;l{ztV!2%=D zuVB_IXuhun{a2@nWY0#CV;3-#K1?}@bgyC r?Jb*n zz>|nu?Lv0=uu(i(PGDEYV6E4+?M*CP<2(h+4}a(v;?gq7t258$%5iSH{6JIX*U@ {F_Pe0XC|cjpAqChDo%^W<-ltq?&aify(Q*Kch`&^v1Uzn)%-3gS)p! zo>Sc1zEwe_c~m!rDO_Zu9&}GlFPXnDzl9+?2!LaVQZ*9!LYap9=)#^>-9BEGY?MHq zy?tfQ+^zN9e}RqoFC0bFn9%SZB$1y|itKEM?LTAaT*M~KUsddGV6XXr_&&< (4sj{cZjnwWDHk2{}~IIrat)0Jd< z*WicM%d79Mgj+MEb^ubdXmNzDYAhGwNN8X4gvd{$z4G0ZaSPX $$yEai6jB5X+j4ig|*3gVwMOd=MqzEkyszya~Za55c2bIK~;r#dv%i8^yct zlIJ>xe#9;5dMY9pSI0(WKdA-^2iDy3vb8(nHy53^U<(*?mW}e#BRfh>EjM~k1w8JV z^3^bA{w|rPpclnxY}6F%)pYwkLw}08r1KoZ=;wh4g~s`+WjD{p94Y5g cLp#@tSj10Xs|4LPs2RQ6=NB+W2S0n(VGuqs#x) (}72 $R(i$Cm-g DA3U(n)rZd+My2Yc+w~=;M2*F27 zR! Iccpi1BR>u-pu>Yp{w?a;hnQ#J@DdoZJzwkpuwr JWltv=%RM>eX&^=1qkwQq2WxTrxhYeJ(S^4uhE=$=M>apG$jV*w|S^B1*> zjl>cMc;7}@yh`P{nS8nG));}dR-DgJYk8#utPR%{z(XKSjmArhsswZ>wrxZ_HDVLp zB+LD@x6@`h{MP=1Y}B?IF~(I|%tl5(<{AX=7mBKb80RiuhOsS~ytG#pMoP$!hM4mW zb@kC0rRyD1X-|L8X1(WYSxV>Gu47cfFnqY`yA}U3J~bXuoLVW}$120P389d2^fqn( z7>r28naU&qmoq6RE`}YQ>wCRT>IIPIrx(oXKmIy$SkPW$Krl!4sZ9LxkUGN0L+e5K zG--#r+Sw>U?FXdFs~Zt#zfqnVu;gcuh>~lFxFMxso+Ir*{m^C8Hp`+SH@z!$X~*x_ zue37E2_0-yg&9-ImT|dpYI)oBLCN%cLAYdp-_qQwMP0`##XaTySJ8+4&U7Sv9=Yij z7(ckw&J;F4_<6|w@S*m`N0pYs6I0C-TC_16rAPSVH;>-lxT(`2TCaHT{TcrT{iBJR zLCPy7-q&LS>1K#P@EEYk&h??@iYa3{F(un9#5qNbi7(`kYoxq;o4Boqz`k83P3!%g zVcj!41pxVV>D*Yv$jj@jS(_oBc^g)4@YAiTf<^=DnYGP1E8K$~`YkgKE7Lpf!A#sV z5k6$k6x02Tp;=(>?vYido3u8(p~@IbqJ={5=*rL7y}Tm5)8op8FOsHB1y^z+KidUZ zE@-wx J4XjK&BB%|K-vCXz@fLh;pJOF6ZRlPtMCrANlkLW#uBt}hbP~fE&tJJEiuq$C zJg@eg;8412d6P&p$HKa9t>Dp1*26vL;RM`Nmr%@K%c@ef2OeBYDT8fnROgut^Yoph zeaYj2N%c}Y>Fq9(H!Yr*`9W4B+8~AxnthAM09zE@$3`XE&D?9y3Du=Ww7iG?TQjBT z+rJ;GD0utl{J56!y+aPBEhQ(8M+gvh5aFZgt(0Mi0>S>bR+C^8wPSyw+(6iV0Bpqq z1QPpC0>G`u3N`35UFe%F#pqT7+FwwrtD>S8YmM_Sd+xDieAqmqQB>LB`4iMFj_D1Y zd;8a(C=gZ6mBu^8EEWUcz6Sf#M4DD3O0c}mK5tC?e_zumx}JK#YTHYyf=`N`l!NrH z6G(J}0ABe$EJcfJHWK`C?TC+&Sg&tIxZczww-rkD{gV$a;$Oe?n;FbN%pfoSyO@ei zrkKJ;E`6rWKZ+ndPzgyp;-Xq5-@bW^dpcs?>!;@R)HzVJ`l$S?Pr>gFdTukEk{%r3 z+yG8wWP{jL3tFbUz0>H(u-`AQyp2TMyGrFkm50c4{Ic7YtuS)TXx`72aK*^=_+R@~ zedr1iRw2hhOhvRz)ss~Y5F9moZHBT@`ALjZ>ucKJu(>w~Kd}|*tx51 2HyW`wiB!jc5g~e{x*5xCXd#|}?nt1FH*cO=+>2mYTu@dWooR1$LvkDg=3(>}# zxw>A{>+PbnK-WtQXQVeneIbaU89GD7K9tn{QMV_@x `74 Fm1Z{!5D3uICa^RQLys0eKTF)@ZBI;PlEs^ z@M#(wNIdEoayF0-XJ3Q137r~bp!U0;I&uK_?w9Y!mzPyqj*MRl;(vzr?&;L{E)AW> zN)S}$ATEL!9M>kf)+B$_Q$!4E+;;ByIOqOh~L#R+3IJMJdHDlw=UTw7n`0q^EDp z0CRH}Ifj=2ht-G0^TLi^WdB{EzS;>=O?DglZ7)}O`u!BFkEKyVvC|pBr@m?Kc~d$> z95Hsn49`%xrIuja1ts8I{x1Cmk_kT;?yw4o6(SpEiD)DJKj}{;RYKz~(ciwKjnwyN z+dR2kw{8C=&wXl&32od*o-JalAxVflyFAR(I?02_W)H#5t@e^nOS4>uM}Y0)?e5&_ z?Gnw8t9i}2KSuGcW>28AT~nv{^yyWF)l_8X*dYu#ui>col*SV560t|hri@jPiyuD% zy@D*;mj+jW&&mzr#YSTzDe$RB@|_e3ou`(RhUL!MPi*_x>zncIn{)R5ujvCKis1@& zer}PrDX6W0myd-OLzpIk3@JCnOh_D}sE4poZGSYLcpYl^<6(n2`_u&b)KfFJ)gNL{ z8+JC=D*d4MBgeCmVrGk#MB0cnm*wF>P|O?mr_E5lkxH*;9;mCx_{-~m`{3eL@2gTd zzDw`2IbRCzSP+N+0i{5Z&mOzO5^gosDf{G(_iU@l-GhEOwDlNl`4-0g0`%*@r%sfZ z81#k-Fcgt64xF0?B1ThU8egITTiophr?OFZbudiJ^8+MuHzpF1?)6(<7fOV7-6*=D zpn19Hcy4^asHx_2nOMqsl)2m8Z7F9^Q(1>nhs&iZKh96m9I>!ErV$c=8V&J5ZZwFR z^Z w-*x+@5ms%;A~Ik#jZ?Lia0hI&7`= @EMf9DmeAI@i6fmT&UU@POX6?K)=5N#j?Ek+-dfrL0-G7=Pu4 z-At~ApN5uM^G?efx-r@UPUF5yC8|@Y!q`p)SGm1UFX;Ie#{2Cp9VrBXb`K?>Iw22k zpK1 Cw#kh(8c=)FI0jI3D^H~h6JK>g*5s9RYeP9Xxt!~@F*LRD}gOR zswkUkhM H;tQAwhWB0HyHEDb2n z1F8i!j t)wq8#NLkpzLN2#>dhGQgmMTgL9Dk& Es zFxPwFL&vL|p;+v0ZEN9Bf6Kl~ul|a*va&>jFkcEvM7v0N?~aG4NaHVZj{~tKpc2JK zjS!K&L}bTLx*PR&U~yIP>)F5qDPOxmRKkC^swxL%&PF-P>%Q;MLuD`l>!Y+u?rv}K zD)1}%s6+M9KeF=u*JxEqhR+XI4g4t|`|vWb*3m6K^Lh2vdFSvm;i~ro09kgWu$uj% zJp+VHj`#qY0eKOL{A*G_5a;p6r`KC&GbFGlJkQ}va^X>CYl+&)d*5_}WsX7=Dwbwn z`d85vklh?1#70S#?g8w5a@{Ti&6Fv8dtG;M2kz}0Mg-3h5*}gLaL!JHMLd1LG;qcA zF6XOXSM1k-*%xS~VUf5!O_NNO!x(t_;MpUt3#LgeNpNU7Q*0i2v?mrrn*`w1Hh+)x z21BmK&}`L*4VvsSHd{zLtM9Fa&-D&WEIZJAi;He`(z_0|@heRn+?gk1`YlWW1KjX2 zERf&XGCYV3n?5uH55s=ij49L1I2p=A-DHXsHtL5&F+(Vj`1Jth>9S8c`bHnQe*I`? zJufKD=#WlqH4fU_PUm~4Uw@5fl1Mw9G*Z|G$|6h=Axe5HT6Wy=x~v*~-%l>)z~hKa zo)v9e*QKW5mYeFbKi6~d;MlpFpiaRCJ~pbJD#SVyq|aEXIkfC{CF}oQso$o*TDx|3 zwRS*i@0T@DO;0v Ys4xWkzu2NoZVofUZ*dDgNSj&Z0VEo4T($DTTJf`WF8{6eKM-YOrIV?jvxm^ zMW%R~Az0Zu<~AnDHZ<1%k)%~+7UW}IGLIhJGX*{V?&)^;%kce{P`7w8Ig)4NzW(3} zNI-IJJ#YtNmQ)!XlxQm1bHB#(2GpLA09`!RhBI^{sYIMiY+t2=_`DMOvdGY9qXzRH zV%B^gT>1`?XZ(c-tw7!^)$bGe3A? nZ8TZr_vVyJNuyJCQRBdyN?9!gzxEdVa+Ua*BABcTcWHaLPlMFp9ZvdSI_pMk#< z&$GrydDmVYRFq2dObXETkC$#3VqGg{;`H 6WMWda!aF+th13CfGtkJL{kRWyVK+;{TDGX6+rhlqW z?f!!(^uN6PXXKlRl*g0OzomaY@9o pNi?|p2VpPd!I z^AJssvl3f!=;vibhC{9hgT`sj%JK}TzuBA7W0gsXcz(WmE_STMAIN438zlk_$*!_d zr!(%AZxz!*m@;7uZ@kG*#WEUlk1XT&cQ13M>OC#DyQNY0(9%$ =&NVUns-*C^cAE)OL|thxvj-kr0pPZMDa{!Xd||ii z-4-Oqbm)9@^L6 $gfEwkI?2=G&(sozR |jP>E(I;+^Or#6AG wL+Mb3ZnY`{}^#HuiV$T>eN}ZH(>Tknwe9J{W~t?*LAH0Sb8$GiwaTu~E^{)`)3| z61AEsZ3|}J0q+iY+dLIhN4qi7VtG9N&T=z+d#28$ZEA0Zm})|&mFC^gYw{lzqHYDp zr?r2DPGM;_NyE7FtSZtq%tI32?QYY-)BT3NZ$UYxIU;CxiquVygf21HI|moB24Gn} z5;@rwD0ZYNUZ1`cLsj47ji>{yX|}2A?+xd-zvufkptB_B2oD@>RJkQWwuaSun4+Jk z#OTB8J^Zsq%5=53{B6FaYs6^zje#ptes*VGdl)hpYbC4XWv195!WTwG$I0&gFi 2Xh7HZwLbqHFG7(C#9DMcS($8cRSd@!REyiJ9u{o#{M__0`sm3* z)RnnbgDU;nVxjM)@KMKya1i6v!M2|bG(-qm-}CdI=g38ZpEHc{%B=XsprqlfQHNSM z9)HRQNR4p4{G{E>p$=*4sp-om@>h<;{Z>F#J24ReRR_)|#SkknECLM7+-a=+A0ehF z2~-s*Sa|>P!lFO@RGXywLqp^2j(3f3_$_zK Qma=IqCB{PkU`XaUtF-^l6M$ivU7`TW80A+|p zHllExMa0ZLXS%UbBqy+y{e#x3{#zRj6tptbd>zP-J89Mteh#MWIm<@<;=@oXA@T?8 z+F|B7;1YS|LMvPmSb&(BNDp!C9HIf>wHU)jrOdKX4|^c5p1%hmV91sSh-_5H?OPyq zLBuU_E&@ )RiDm8L%df zrZ+=08|*O77%rp8D7D-%i&>v5DOO$7e)7nlqq-)A+sk3RFI7r9=D5LNMfa6H)APy~ z_f@}9aL;YnFcp#}eyeLFcH2UYlThV{x680SaCOeEexV_6&3MqOjJ}BmIT(OEmlS-D zo{sRD;27s{l3vk+R2kyKidVj>s;Yhpy+~i){)%AQma2Nj#W;sRH1X4Kg{YU13$b!@ zQTGkfhAmf5XgCm>;+_2ikAB+~K3(p%s8&!VbrY&rY(0;*6JtgbI*1jce {lA=ix zM*DHH=RV-i_0?HYT`pxm&i(MVKy*{&r7&`#tw<*_bZ=v+g^*rlkcbL8FbOu8+Nkxm zvxZL)1h;&DkSNkWgNf~nl?)DsHmKh+cTkpxlE^|yM#n?Tn?UQ-CHlMm;yT%LPX~zJ z= !&N+|YsXzO8HQBX;!41UWBmo5ejb|DJPEGYh>kp1DnDjYJI8K;MW9L%y zI}#m2Jj}7rWaIPXlCe@yBOW40X+n+XwASG`^6|6280uj34Wm|nx1eBZmrJ<|@LLON zPdr`HEwj7CH$8N0>%+^GC&Aa-VrH?e{`WHlSXm9?lcBb)BSxvz9$q+hoKjQq39CP{ zqC>`yG20D~7}O^J(ZdXZJoGe(lXkSzZoo>E=s30KZ!JRhPmgzZw~uHGoV9CH%(%vJ z4fPpY%X7|shPDUUVFpfa9tI_g?b&de(q~fAfRTIy9QI~HKtJ5&w8o&J=#+%RCcgKi z@$a!;Z_S>35foaBqq$8Hqd> v&WELW6X_xuJGu3K!>lc{;)#&)_8k{C(KOPoxAjsW|MOK0YxFSAkal^#NC zx5Ze7ASHh}xKb@LvHc!kvkA#3NtDozE}KbcPzW_^)Fti?N)j5;Zqe62yF2*h(o?ID zI`d2$j==An{gB$oNBSUB)QkFLvLa^jI8{h2G@N2M((mM&M|~k9*ZH)u*DU5-Z 1NE_sfZ&lNo#q0)k)0SAx7)2rE!^`G42JA!F4yNO%zM+ApygjA6KRWysaoq#^u zr&WJow7u5-h|`F3aeZYLE0OWr;jvrN*-%Htg`K4gp!kg~r1xeE_h@D&G)!|JwNxk+ zd-7s+btIbqYn#=*w;7g`b+-c2Z(--bu`^BHFl5=N?@&7yJ_jPb*1;|`4ftTN9Cl%n z0n&GkT6LUs1JHQ3zG%@}JNn0FY-|KKXh-k7+Fz1|9gpVUbi)=$1h7%NUL$RjYfAsH zkT1LkQG4gwVW4q6Y!W!(@L}wNE;#4gRlSfG8zp**nzZXO{`Aj%y;=|IXlny2KAY9T zhc&Ese$s84S3nh^cwks@K%KdJ84+lsr!z$WAahbnACAl MrRhZ3z+?Y-tCxa521(Xja~F4 R!w@GgE`CI3>_u*=*uZeRJCg=xNj; z%&& -9Rs{y?-#m?&2{U|zhS#!9S!p$O#_&VlCts7^iKN8sJK z&tR#~vHDtF%}LXggF5L0p&=&p{^~yO zzdo@RJs;*)!tBJ!=eopydaE`{y+7f$jCFz tl{_^h~`{qenNFGzv!6DS_B n7hQ za_a4 pGx9^dnl&mIoI#BZ@h4h zgG4n%Sjir-$K1~;4ZEpsh9+wCe8ufBY0DjvSXXE6vOsqHo}^i0V5Rg2w`DH08DL~W zKOu*#MGp|%Yah!cZZos-7e0mFdGUQ(^eJ~{1lVC5*kK<&ga!P4@_T{~jG-=iHCJbH z{20WBhdXH9kM?dY9%&c%;0f4rxU>FuaG_kUDr~q@XMc0KFyBGclpgaAmGm5fwTbO^ zMj+6L9L9}Qd{9np$&?u=@wH$U8*~JScHa$SqwM0xrj|0-HC%rj6PP9RLybWszx%96 z4EdFj9$ofTXxEg`?voQzv IF*5ii6^&ggQlyeDgXUaxH53E=D|>#}^Qhrq=wsF1 zIoz+gr*dNY#S6t%6XRBb{F%2x`HF`5a*}>CkR7%RfzU#P-;!|yW>BkJ54^ZYgJOQw z($!;^J?*fIFRCwG=}V3oSGbl^FT6J~pvDU?qgX$8PB4lgsW4B`XhILRcdvx?WPc2m2ekn!F*VH!4O9}WI18`Y+j>wa=n@irW?Bz_Jp$Z z)@bEhpZVf%z6n &V* z2NBT~&@!mK1+o&{zNM+)snhh7vP)jD*E?m)=3uDuc0*zR?c=z=zCL?oOne^|=v}IF zx0FeGM7p{R%ULh5fV!^3tN!#ol#*0x99r0ExZAxnyr}Xk*M7_5mE;VDZ?uW#H;F$7 ziy=OXvKIpJ_o7yBTJaQoR^m){#lO@4^kSQ9bJBX;5aPwTx;Q^V+6FRGBv_RxSy@%a z(83@5DUJ(!(Lw+A(O*Sii_`D9RKSxPo_6OVx8*AZPW>Q}NmyDyaZIDH!DU#Jwg+p` zBX#bB53-MbJX^&X_Pr&xxTr{RuUS~GDRLw)Q6O%D3ZbV#AI6YNcfjdw`l=f*aP$Mi zm8y~!t4Q*@lcn#!y|ZF{s_Ec7UfA16Szt{`j%3fN!wR54=zInUn+?;Lt{eXbw#Z|e z&|QnKXGEm221;&lr{3V(niEO~nLe$V4k-{pccLfnut0V1;RxQGjWS)%0y)8}AdZ!{ zU+`Ker15+XnJh;)hj*23gY9qyOpQEq&5k#tDqnhVBA<>Z^BUYEuke W#oXI0W)xQ$erJoxW~Rp+M_G6mWDUmQ))6%m;W9^N|_TbdYNOS2qD<8u_-MEn!k1 ziIRy2A>T 4m+*e97^NILb1t z?++S7d>QtH4o$o}jTM=fWF+jkwX9vkuaoy?nfv#io(b=e`j#t!NacyK&uHNIMR}3P zZ>rJN7^cXd9y2=E+Mw$(*!E_oWPfg2vpIA_LEYmP;r*+ahWTKn{BEeLcsoHKYP^B) zLCqi#ZS0&l0EchPN2p #Pv;l5t)A^&WKKzV2;W%czw+|cGwue^8uD;I zXnnnfX6k}vp9Za{GsT;yPGibJKBj{z^zfEL t=CIpih3f~}t$UYtqB1$f zPd+~$+ICB2kpzQG#gISTKDmoo!-E_e`l$38Jv){ zvzp(IOB2(%MXeYo77n=M_1o7V*Z2$3RVt-UqSDp~CEnZu$LG|4|FX~H{ zggUE!-R|jz?MJ;3AuO%>Sr;3%lR;JO <#GTvveW zqDkB6qxiicZ+vH7@}&lb2Nk!6%M7Ob263MFSZ&-slGNSzYe`SrY*Z;9U5=&QP-nhg zCYLfMfIrtCV_QlRItyB$1!5j6F?WHfv#L8M>BsTA6Q!{I!;nT)(n*!&sqV0K(xbqe zS+R#s{9j+I`k%ZSb;Rm{uHRPJ%=_0oeNG;(%sU%s+e<;#yBubNZO0~EorXt8T0Aq% zr*{{f(JvQ?7Yf9_AXX1Dr5TK4$d|5sAHv?c^eLhEqDJ|y=Dz&0if@bP_7}%jykawHChkb&fg`X9fvL62NNjvYM25g>3 z{MEc#`g0PN?+Sxx<~_sxvL8YfEEN*77sx-H&nmlE7vQ33(4rY_5F{ZhlXlJ$jA(>H zs %02Q1yWv(bHR{4R0|b5)3gFhZnRmd2-sGAN~=t>Z?ZM|r(( zd*3pkX5X{k7e?$8O)nISoApRCTihlZ+AuUn41B1hx1Bthu#xZf2@xGf`l?F=zoMIq zBVGW;uLAv!255Oz#hLVAl4q%S-9KJ;_tT&1r!~e#VWT4)9v&TzYE6&ZG}BJ+dx45& zfB;>FaRr{=_{{==1)Z}U;e7GgY2)1s9rp;L!vnoNk4>%MDg4?^UZd>2^TiMCHWKwy z2ntLmaKgZdHl9H^La!h9YIohyKyyvfn!AxcvfM1OHt(6%cjtA=mBN}*y>Fqp|H`*q zTi}rtd<3mOqvsx8C?D=Kiw>zuVHm^MfCA_CLvq2V6!$$jazRitH5nTMrk?UbwEcm* zf7DQduz&8)(LKsm#DYvyUIk7?=z~EYiTv$L{3K|m+g+WKKS?WF-`295@zr7OqaF%H z(wHi~@KOft<9izKrNk6BL--0Mq#6X^VaKWmJmhKQa@7gcjbFcZ-}|B<6Iu#XJyMU* ziLManVTx~3dRm1ZVR;BDp+VY0yRYk4RToUcr_O&UkEBv3W;Rpm9=~hbnYue#p)^nX zFEDXjOz`+H(*t~Z6Z$3v@fb3Or;>Qz_sO5XZN)l%CLWSSXc91m` z#E2D7>}#VVE}gHqWr$}{HJYy++&J#-JUf vykFphQ)<|TY>*xCOos8mETBvU(MIFVt%-R$g;Qv7(e#!>N{`)ARekDSrfX vgwN?8xpHzDwTOEzdS)te z`}v)mzxh~!$&^_6h0gpuu7`WE1?^(YO1Kc&!2mnq1bmXh?WvuKR5Nr`dN6gS8{}N0 z@+2psZol4T(i)#1*dO2RJJFEGdPE|xIKR>wnj=>5G!yl84oKk5DUREHlN%>Jj!7uQ zFFZ@mOshP5E49w$GixCwJT%Kk_RQ3o{!f}$Pv-w=KVCE6OG;CR55+8Ul!BNFLoVAO z2*Ccx^K7*|p-8-fLS2Gr@Q==(paS#A(F EbO%-}9*T{y>P0iF)VAjor0}3pB}(UU+}ji?4S2i$w&0cNKZ4hp`hD z^pBeq(Rwxo=T6~FtNV&F_Yno=ynGG~D{b~Y*1uJ@9bitZG<2&zdrYXeXSjJI;s+b$ zF?qLPHylU_9ho$yxh8X`Ug>@Li8s}A^ZbeZ4fL4;?J<5+@1`32tz#FmJ(pdd7i64& z*S(6bznMeqe0A9`FW?zLgJ$}Qj&A&$9<$EU8MXZpROonko&VqyE!}`Kxr$~yu%ojP z$trEdY>~(~0%JBnydNotzYd4cHcwZB_X{2v>eBjJbT+Df$gG@k>ZD})?481=e6jc> z`%!NZ>oW*KB75~MlbA(d6Wmup0=rjY-pT*s0Rk3kOodjgA#eY`2$% vrMWa`0A(KJ)9M!MWJsbgCwSeOo7l=&7v;o zwgP(m>o2^C@T0+IKwT7Slqc|oI=5}2MGrH>(2pv67L0FX$})t8a~X$wx9-=iy8FfK z&3>Bt #Q5}su zz4a1)**9}^P6>S8XfMW#f%RI6x(F{syKwH+*Pw;S)-q5_W}QKq|5`+;MbvA!{ t^%^sJTE*8yDw1>tAQ-@5Sf~D>y55`1XRj!Q(S7F^3MMpw1`<(5xRp z )hL`Spuc&;H)EefcoceCdQl&o`BYQdoxv z*+DNs1}CdzD;byYR{GK9I10-&Y^|_xjrF^ddMre{b?&&VivNq`m8}(%sAofhDjS>N zrQs$m4C7!Xh(mrzUJ9{IFK3MfYxe&(GGI!;!+ UAcx=9Z<7ys<8R z)udRh!DC2Q!!S|pkI0wD0!vWn$Bsl&j`gtrMr0Z59f2d%nktz5cHT)lDRynvpZeiv zvE;;3SIFNlul902HkN1;+AeMX1WfM0+yUOt84{r${~bqprQ6z|K`TiG#VU2Tus6m< zVNMD8<2#c_yQM$ s z75;ZG%1>>8&ip(ed?#R_kX#qOs|E>NebEH%s;F!CpmwYAPW*8=1{$tD0&jfsH|F5h zJtcui3Tu8N1m>a5Y;dq%8DfCSHkHjHduYT5i_H9%J~RK{U##Xl(>f$l9Cw5qUoq9^ zL&B$kSOC#&w8eP)D86XT7;Kpjzh-1Nh#WLgJOK^v3sFd7{4Vw;(LnUJ=t$>ub~)8T zI0D<}bsX#dnh{+c9u7>%W@|Y#`-jlZ_+rKbn7&B(F3SyG#3a8* be$5A1gw z?GpdTsUce|w_$GoqvTVcP!`*-q1H+#x=$heU5tH0xDBW4%wSr?`bKtuSaF@xow3QV zlry6?fjh0Zt#6%>`BM7Z8rcEZvHdHkF&Q&(<}@!vWIxStKu32o@cMh7Hu#HbY@vGk z?-oG|<#{%0fE5n|)#UbO9)iQEF1ofq8`SY<`%5aeo>CP177rJ3uch8%(J@=h!poQR zlt4Nn7~?7QpYM`3k)}odVpvZEG})*#%k%5r>!qDo*iaE5gh{qK1UpFjBgvD4`_WXn z w_Paj`N89<;lkl=vzLjt*xu9u5$g*p?s0q zBeoR)?l*!t(Tgr%ivvE;&XF~rxv5uDEw!Tdy(Yh39LW5;A@ b4Sfvr01rH_ zT^Hb$kf78l()~+&f1RC>u1O{>N9l}=K0R6xX0Xk$=QMaZnBfSHb3B7kPmUXn2seAt z{ meK7TCIII))?N!nbZKur>{0Yw9ET_JALEC_7s(Ifb{X8 zvyZh0;bY{$wE~#WPVJFFrP~_a4*Va)y?0cT@3t yaRo}Hpa^rlCbg!V9nXu$DjTL$qWEqWlRegKI`zo>3AQ0j3%I-eY|aybF~ zcPiPUbxqi%UbvDZRq8h*{Cs)KOQpxUD%Y7K2HGql6(Bm#{(|Po fiD5xf^v<{bgipP5cqn%Q9eeyY`y$>4F9HCZ*k(5?i0kd!QI${ZG?oy>Yt zW!9D#XkuU(RA &8X2O@@b-Qm6&;I zqf~+1#WeHK0^6%NW(}t&fP)as50HZDM3)dH0W2*^6Eq@yn(lf-EGWNUG_r{F7%2N* zc>193{90Iem6C^qccoO=(13##Wguw*MLmL|^9@s+7$2~NS9nf%5OFQ6S}vOIh(Wpr z*O*kLEow$<)!km*_x&z76+cA>25XRE@9|$y%d8|Mh40JoG3ph9t!4w6n%bUZ8sB$! zP7QIBeE4c&;(-l_2+lN(34$sFG@9g%dx0fnLQ2>}nVeL=>BG@8>?Hp>e%I=Fj55M+ z472Jf&JZ 3rddjpp zr?1GoU;62L!QMRruy$iQzcnQ%@-Og|NSCI@1j{AmIq!~*xvn-BdRf}GD%IJ%|r@ zAe|Jo@q%#?EE^E~&*`O`lT#y*jv$HK$g5a2^;63y>idzbH+cg>ZxqUUKAv9 &L=}xRZmr$XE$S3Z8rj)k9<-$$aKVyH6h|;P^uaB~FO2~+@>k9ze6Tq)owsPh zGE~XVdPL^kevU*37xv?ylqeRAFfC~?U(1ZJIjRGp# 8X*FuRHnyghSGs7os zmq?if!(FO^8rh(Hp@x%65c?O#CNa;pYU0GSuhp6yuN>FP*{)4+4~Lkyz)^oJJ}5)E zRqG4zY{%{2Ed9kvu%6aBnh0E$>`@o=X%T;rDZXfx^6o~ZutmLiY39tFIjvJ(*~v@G zJ1Nr*!*}~&@rTxU+>8@l571zM^%MXM6$f;OzeGnG**FJ+Y3N9+xoEWp$uon#OB|bc zZTQ3AEY)}KA5Dim*rs46P}F;1)xtLQm;jwkpS=Gkp*5V51-yRnAR4gcZQ{ZTf|ssP znTT&ni%sZ&gg?5|+U7wsVBl%mbti*dZNr!6CzyA!gqL95r(^zPBd(mB;f+?+;VU7- z$GRitNE0diuBiM%K0|M}bFVaV&~>hL*m&$U?2M}MA!Ki@Gn#4%49WN84IEwU8maW# zZx&%BAy?{jAKYk~0cozbt!&EBTTs|CJh7T}*YtKD(PE6SQI?5sb=y@2+%PZo7<4Wk zej0#?n*asJ4N+gb>MxD@g?<4ei_1kpe@!VH(@%r@n!V2O01ul6KS{=}sDK49PmP<# zM=+0INtl@OZr l%7oWV7ulU?@go(rwBC(`LX1M759;PCqU+hLog=$Gm zoOnaOm-g~KmM^Z-GCM~eSK#LFH;2isqJ#lwoHp8&jTk_)Ek7c}j}5{_H406R81%BO z?z_&uTSlb1?Vdk(Jz8WZJ%mU6$^1Z48{|6E2TRxl$BL*g$Wv|x2y(N!`tw%C^|99- zmyzKxl8ao+8i)gN)+)_t!cbO+(M~f8Qr#xjW~J5g&c~w+f5xhwtqCEIk5xivcwljm z&Bq9^0vZhQWQ+|J3=X?LoP%mXa{Go5uBAGWUDubItQ6vtm2@5R3r%;tuEsYSHC$jb zSO|^R7`6sPLprk?3sQ-|gb<|AAZ@6Oktg>>_Seoh^T t9Ps8Z@fSDBgm+#9) z&L|;Ax0%uCRy3Wp9~7mlqNuTWO7L%%Y$r0nmMnnDU>fC$y-xjd=?Ch29F$@(1iiOL zJp+=3!geWj4l_ljO)vqt9Hs8|9=Xwn8;&JaJ1Li~f8GsQ$2Y=8jx52x&!eDjo$P;* zcxV`%mmJh&9yk>D-XA*y3**kHcwfTE;xb(rT9r9)U2QkNbx8VoTPM=Sp~xxj7hvg^ zcG{_~z?p3PnF?8^cAIur(yz&3ehp#Y!Xm%iz=HJq;Z&)WDW!piS>WOEUt4@!tsS%v z^()D`*Bx${4Ra9-uk|w*?op|0zAd|%B8PH2DYf& zTI6im(B_E&Y}dBN%@0?f2=vP;mc`CfaVl$gVJu+-60RdbvMYjwA^70eJ%z?=bUodR zi;^?aZfKOviDuxcSK3 qjV0y74w$6<&IU~tap97BE+ARxJ2>d%m#=+1PA`b?e@4@x}! zy0(N>gbmw!yvk C>QyYZxFdI%Du7VN|y5a6pn- O~Tc9v<#23`sEd0MkC42Cpeo)U`$uU9ptv=P>PJ zG!?!-`o0{+&}G%&?1YA5vSb&rHe6cv%JW9{&GlL= h z)rytoXLk 8Hgp603dZ8ItHNtqa5;c5rhVXNtJfPbWX1V>eD%GD~@}XX`0s7 z2J`MkN015GULjSQ{@ 5+=UH;;4wHSbO3U;}lP*&qhW_zD{ z TR8?{E3c97K|ys726i zbMJnys6R`ME237*yyjCryq>-^`5wKRufEklYd%OjhG%l64a=O3#=3ATz%vthSv#cB z82SxCizyJU tfq!_m%7 %p)BkC~2s9@5F8z9ncsdgUH4{4bSkh zNr!3Fa{ni!n``PpN+3GE*U!q5|8ZOXEbHm~w;drb4xF(5z(9erHz#8r<{+L`%Y?Mi zGGy#KjXk{3X9?36f1TUpmF#;Y6py-22bl;V7QlcOP90#x>71CN&d(I*=D}}~c`^#F z$wd?)I)1tYJ~HX77JqZ(p4qAdoEBjC1aWzFUwMYu%h1}vCev9I^(cfcUR4Z70LPl# zPl@kWQ6bf)auzPw2@g3wtRri;&V1XxrG7^Gw%-9XuQY%0K1VwKm(En{P+z;ao3&$Q zd8JvUL3Zphy>vb4aa8i-i#vf16{lue+agA4k{_$?1|DSkfznFqF+5#Ryct_Q-`sg+ zdZ?0EWID|(n6YLUUVKS6GQ3#vq^n=|K-`+pu+)9yH+ow26J~NNklJPTK@hukiY` vMNVxD%^m}d8kXwBqW@KgjG%FO;pA1j-+ z4PEX(8~xm`4os2XKHvRV P^+Tg 8Ae#PI8CJU@M&C$X9MdRFocau>G) z_I5}-n7^Y4Rb=A T%mUM7QQ;XT+Ge1mazKZu{0wX;*(` zXnY;C6)U}kqAJ%+KY~?KP{b8stFQe`?r$p}Vg8WQrB~p*9YRGtJAIu%QRn=XytAmd zOp65^E>6D1DzX7DYDooYpETi?erLaz&ca0pZ=A+(R~_yy>1yRXb6(;Z;? o4^3ccpHnu(nS1lF zX}CYbmyK-H%iS5LJjeFUE(z-#>Km8B|Ej=2u5V$V!AMR>+;5f`VUtCOV67hkwil=V zqaC9brK0znCE${QFmunjqTpDKHn#4sP`7TXW+??u70x$uAaxs(*<0dVk4xQ2p(Hw2 z-wcXKnZEi70Lthka`()9Og#V|jSblHurXX1lkZoe+s%FF8>c0C#N~rjBxUNc_C+!| zvEo&a)kl9m#Ck#>V5usc6h}s8ZpDC>nHz>~KD2VKq %xuPo-oa$!+wG5?7MUD5fUCi+81jR}_?B9+nN zU_}q`jwKNwO$;Ckz&D_!L@avR!auihy+?&Z!E-a_d5CW5#DTs$5|ZD)(|u;pG~n_y z0$07 `@NfEzi;%{$(nn(HL{F`H zUSd3VfZU21?I2u^QK`j01)=5;B-vYr&S6sBRc57Eo g|&~PCB;b!-u|Cfy@qXP^Ow@ z0S<7|qwVEJnh9KxiX`SyM~nUYFO%$IJErm6ROx1;d3_I3#`;9-`hI7HLFAK={f9~d zqGH42;?1OmKSPSmHqdk-9Mj}J?J7vE(;NogQAFVG`Fh|{gycG_G1b7UD?G5*$69;^ zW;s~PRy=;!a@4x6rE|8(>C`EGvAta_Z!R9>c_J?s=)n&K<4kD7@5rJ5_wWz_wjRBr z#BAT63LF(hw=N{12R~Xlqqf{ZfW{}l^+BR2mZhz5^4D#br5OnC$IYv|F}&gP9wN~VV5V_>%-)MMEUoA>(hFV z_9yK3qMHr=s4wm8(SV#oHrC-uR-U8jlq2AI9{77VAO-7X^`~KnEnNfS1}KW}7E`UI zQ*6nVZ`jHb-eN9r8T`7avdvDv+Cl@4_meW nS7>T0;pPp z8v@^^8bEYU`f-{xqMOM-1a!pq({0GxFUnDTahkWjMCsHIQR=VGcdoxHKh6GHT2hn7 zFUkAhqisa~f*%l9`pt4elPb@oV1Kg|@Z`fldM~ CDdt3*3R=OuxQuq~WjkP;!ezZkJ>2=hF} zV_0*~!|zes(Z#N7^D6W;#1!z7zUoDS_^eU`c31j3W+5J%0UZybI8u{lfI`L6HF8m8 z6JEm3UxPO)le0R>Ch~H1u)2MO I?dQc(om=Br{WG!f$0{6?xu55`W|@HVs%TmMqyB(jG9s z>j*HuVx6D@bOmy5?68y+Sp}V>(Ci4Oxv;WdvzJ?KPn7Wx7txBJ`;zm%-@)k{&|$-^ z@DUgeOb+>JG-rO4vM-rEWXtF#-mHJN+H$_c1(TPi(BAyGxBBz_gf69*7a6BO_!%`# z{LON11)ywJX+Tskk<25=#$-TlD6b&=NU1nQj>W@4rCe!wC@%-EN^MAoOIYN@FhCcF ztl@6J2Gjt7Drzm*P=Qm0_a^%f=P$wN!fF&W$pRGU9`|fDUf~sTe(E=Mh7`w)%Wm-G z%Num8em>1{@Z{+oezhZqG!tNGVEG&&&)=6)VPsl!-{o((+XI`nr>5qqj)@1>@)Fpq zi b^x1 ziY_2Wu`i{%5i08HD{0=YX_-0xAI|u?jq+a@n;yJ5@U7+0x6A~Rw*K*hHYGgyJssZS zS&oj5`$F{XHRkI7d{varS%1H2Ad1CHJgt$J>*%Ihm7|}((A#;0J6J18w?tYJc0?fI z<=H2?hzH0<;EfO>kQIPB7~hzQjL{JoT}q35MmH|}&EmS?txHS~)@qgA>*8?enosy; z!_x)dS+@fu4jDgRz?0mtD|O_c=9HBgcgU4~nQ(Y=-Egg=Cp=2??Afxenjm*nxtW;q z_LEBm+lq8iYd0B4X=H2LsO1&k8N)pSlqVJINjv*ZHyyQG5J3MxA9_Ddj(Jd>2BChM z=BfK=>#Qnu>g$)}a&ZIxfFhmF0PgRnFs;^YBf)QJ!(jLu#h`@L3N-1u=g2M;>^tCe zl3x19SPsk%!>@eQQ*H9{CpR7bF1Y@=@Rr^)DSwbl^|dc zsI}%J{RTM}SjE%DTb8HY!9F%WkPGZ!IRQp`JWuBX*`>aWXJD98Eu@Z7%}7JIruw76 zSf<}B6$`6QUZIaa*x26iK3z^Lf~CVqKJ!h+{BQ?gajdUp`Rh0B&c9G8(6Y^Iuh1|H zt4w9H=$d${m-}@>)9+L6ZP(mYSyON?PN0}?56F&?1gRY%NOr0n&8D6?VwhpH>F-$k z7U^!s#$U7Fq1;5cpuwbne-)tABI&|3z`&A>@w|&LPK3zRUH=%O%3x_jhlj}uT>Pt- zRuz}n>;n _!)padd242XEDRZNGm@;&w|}&C@;-C4K0qPo zZUrOW#cbeH?8jN}Zpe9L<6-dJqaYR2nk
fmsrq`L;-n#L Sf^Om5fjIN_Q89O^S%F^}J;R&)w=g z$m`aYuax-P>)nL7+g=@R l0^t7sL^c|1Vxy2;t15d4ZMkX){=wNvWi|82XrCB5I^C82Ol`_6dLVV5;+iL& zzlM3RlLUeWZ%7U_w{P1oU6=}e3dvf!)9D4*YWj{J4Lk!4at+vfKLMSp`4#ivj~1E( zavyU7zgGnr3FRxZEXVM;v7~gkXLcFyI4LX8&&%2TX3>cxAwgNMxC8Afvjfx|qIoQ- zO09kf2sOwd!>W5m@AU%rV0}94(L~n6{ d;=uRwM zH0L+V$;;$nMv?-Un48r`NF&&K7ZyaasLGL)dq95@1o;e!wx+E}Ubxq^q=sjt#Zbw_ zl7`S=>}^BY++2f%h-AUTCphot7TrW&EX764;P@R@srN71JY13LP}0LndMsQ9x9TM5vQ8)4fP@yM3BP4wtJ-!ha^+ z>OX#!`_zdE6A|M0@C#;~!H!$L=O`Nk|{8RyO{q)jK8`xug$k|mLPCz-O zLz$^!%(#+ui)lr=q!(=;{2}8r(xp3W3=MWv#MCMB5IUD?=O+It?%0nB{e7*=--Q4h zz{IYTCK&g{#%^KAky$nW1k4S=nXso6pQ_T)TJMTPfC&|drfh=tITyqP~rv@39e~q|Q zK9izpnd2)x`YK*qTfXOfu)Nysd@q^|{5#n3`q)ujGebld$nCLb0e;}+ZmjW+BW^Pb zOF%)tgaGlO>OUzw-)`bSkY%_FNqU^x;5k-0QyGE~vqiLzRicz9-3)8%V_=n}`6vOs zjg{O80fF{zty8oIQO^WR#M@exV6VLq-_ayX)@@%@JdEnS49Ncb)_t+qbTW@KMXQ@q zPK8Y)!|){U)yQej$T6wt={0T_q+sn)cPEEDtD-X1K2aaysmmV?rjEPpxup@>f;49> z0&201;DjQKt;I=kFiPP{ ax;-?%g z1{Jx@N0;*yfVoQBF$YTIDFMn=_w?8IO(D;JDb}iuoqeWWxKLIpm;}A-i=~1}hfl@S zc-z}c1pQ|onBw9G^_dnWJB}IH=+@Q1%~p9lQ;M$8gW&hqz+EC0N9ItG7yJ4 U+OO7R54 Rw%UzBRsNC= zH!hdC?{WOCW)6CH#`Yw*ZGNJF)e(9fC@XjMS-C+3WoxO8GX~?G&K?7nzbe*!cieO4 z9QUD9EY6{Ke%cNuYbxA$)MW~AY|%Tg;s>E6o-J!!bUjirijZ;T8{$|r{G4}g`^Kbm z?h4lT@iP5;=Mmq8$Io-dG~TJ~ERdWiNsK%!VPtJAk=DRG+k1Ri2eLS9B(wV R{iiNW9=_PUIY@wnG9gqG0u9PbwP@OfL?}z@D5UIqB;OaxDC0U8 zlAs?o{0{1~Db&U6M}L7n!#+ZWjYWnaWc)3R$QF^9WAYTYGPZX~WiLCnXI>%$3|7X~ zTkLa?PVTJ9nE(dvqkz-72@Y&QNP@q;IEsb(Woo#&3hzDbZktm%q;O62TT2c9nLV1> zXU=uGEp8>lauEttMJ6{;Hf_R>r(YsxpqjZagFx&VlrN)jOlVBmYPu?}RH)kSvgx5j zHPJ6J^Q&u&UyOGVvRA$rE?wrMN_L`VYlwd+IZAsUPz8~ajUUEA1c}t}d}>8d5QJlV zY9jrjPTy7YkZ$Cwd*`_3+sD^ngM(YGK#?TTElAURNT=QL@Q>dtHA*}F>l^)|M0MOo zK6<~UYQ9vKEZXTzK9{xmuZH@2K*3g^21-(FE!WBeSuqBhclXfKnBQTfTixTVcHof< zs5( agJU??G%d%?bkT!=3;~1Fl+qD72weUYc z0~%{5L$&q{_5%uyyhdjd72N4N*`CRg#EYCt`l5*!Srn290xdzWbPkn9-a+4rZyl1n zJR^yE9Ci3wu-b*4(lvA|rtXv6iMseHud+%Tigd2fN8PdSymKff_XkEf)