From 950194f0eeb1bda912a307cb5ab9006dc302baa2 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Sun, 27 Oct 2024 06:42:30 +0000 Subject: [PATCH 1/3] set next version --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index c405d80..51011f2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@brdgm/civolution-solo-helper", - "version": "1.0.1", + "version": "1.0.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@brdgm/civolution-solo-helper", - "version": "1.0.1", + "version": "1.0.2", "dependencies": { "@brdgm/brdgm-commons": "^1.6.9", "@popperjs/core": "^2.11.8", diff --git a/package.json b/package.json index 13c8ecb..417a31f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@brdgm/civolution-solo-helper", - "version": "1.0.1", + "version": "1.0.2", "private": true, "description": "Civolution Solo Helper", "appDeployName": "civolution", From 7e4bb8eb938bd1e251c25112045d67aeaf99d124 Mon Sep 17 00:00:00 2001 From: Stefan Seifert Date: Mon, 28 Oct 2024 17:35:37 +0100 Subject: [PATCH 2/3] Map Randomizer (#4) --- src/assets/icons/map-tile/a.webp | Bin 0 -> 7098 bytes src/assets/icons/map-tile/b.webp | Bin 0 -> 13176 bytes src/assets/icons/map-tile/c.webp | Bin 0 -> 12752 bytes src/assets/icons/map-tile/d.webp | Bin 0 -> 12982 bytes src/assets/icons/map-tile/e.webp | Bin 0 -> 11850 bytes src/assets/icons/map-tile/f.webp | Bin 0 -> 12438 bytes src/assets/icons/map-tile/g.webp | Bin 0 -> 12856 bytes src/assets/icons/map-tile/h.webp | Bin 0 -> 12008 bytes src/components/setup/RandomMap.vue | 102 ++++++++++++++ src/locales/de.json | 6 + src/locales/en.json | 6 + src/services/MapRandomizer.ts | 159 ++++++++++++++++++++++ src/store/state.ts | 4 +- src/views/SetupGame.vue | 5 +- tests/unit/services/MapRandomizer.spec.ts | 16 +++ 15 files changed, 296 insertions(+), 2 deletions(-) create mode 100644 src/assets/icons/map-tile/a.webp create mode 100644 src/assets/icons/map-tile/b.webp create mode 100644 src/assets/icons/map-tile/c.webp create mode 100644 src/assets/icons/map-tile/d.webp create mode 100644 src/assets/icons/map-tile/e.webp create mode 100644 src/assets/icons/map-tile/f.webp create mode 100644 src/assets/icons/map-tile/g.webp create mode 100644 src/assets/icons/map-tile/h.webp create mode 100644 src/components/setup/RandomMap.vue create mode 100644 src/services/MapRandomizer.ts create mode 100644 tests/unit/services/MapRandomizer.spec.ts diff --git a/src/assets/icons/map-tile/a.webp b/src/assets/icons/map-tile/a.webp new file mode 100644 index 0000000000000000000000000000000000000000..7f3fb30e98bb57eccc7dbf773e6ee8f9eb025577 GIT binary patch literal 7098 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 Up&Guv1HueMh&pY%t;7TW1%7jJi2wiq literal 0 HcmV?d00001 diff --git a/src/assets/icons/map-tile/b.webp b/src/assets/icons/map-tile/b.webp new file mode 100644 index 0000000000000000000000000000000000000000..fd56b49e60ec0adc1baefbaae462e638de819c82 GIT binary patch literal 13176 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 literal 0 HcmV?d00001 diff --git a/src/assets/icons/map-tile/c.webp b/src/assets/icons/map-tile/c.webp new file mode 100644 index 0000000000000000000000000000000000000000..a8199c6e4eee6b1fb105fed8aaa72cf51716b046 GIT binary patch literal 12752 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 AYybcN literal 0 HcmV?d00001 diff --git a/src/assets/icons/map-tile/e.webp b/src/assets/icons/map-tile/e.webp new file mode 100644 index 0000000000000000000000000000000000000000..b5c7067450d4948583cd36c458fd4fed8ddd7ba9 GIT binary patch literal 11850 zcmbW71yCK)(xB&F+@0WD+zArgF7EE`?(Tu0!QCB#2ML~_!JVK15+rzV4Gv4*`|G{8 zTlN3DwWsQy`A&DAIz8PzRd=RZO;$=uj1>U1CB;;t_> zzAOP$83kJ>XD}uJI68T_sY#1LbaeF~2$KL9KmyFNfVgIt*i-Rvr@RzOs$;|(-`6omFvW26Q#f!~fpIs~*E&g)<3%~dBw0vP0g%^(S zvbFSn;kg&4cJOqxec_uI#&xtbbq4_0ztN%gur#-M;lF`Hb<tP` z_OSGM@e=^Von3t0Y^`lPAoS)85OzL3UWkmPw}YjJ2aAfSxxJ~I1w`E0(Z$rs7Xbcw z&wqCT*neXSc?mK%J0CYU3kT~<`2RKjN9Dh){%81`+kaYIsQx2oApG%v%l^Ih-!kW7 z0N}lPiB00aWoB6b&>9W^1k3-HQ5OOLMi>CJO#R3G;Qy@`8xIc`{@1U)y}em&EzMc~ z2J~O!|7!3r%l{t!<2=^C=lv^o5D7~wQ%?sE$lsuvJ3BagxD@!*^r6FA{z33j)& zhWr(at7$;YJ>9(i^2;;vcY*_u0So{aAOy$&Du5nf0XP62KmdROl7Jkb3}^tlfDvF0 z*Z_`z8{iED0PlbZAO=VT(tvEB0Qdk@0<}N`&i69PJutb zJqQFs0HJ|!K!hN25Dkb4!~x<334vA+ssw!k zeFl96jew>>OQ2t%-=K5Q9T*0T3dRMKf@#68!MtEmusm1;YzVdnyMq0|Vc>XhCb$^< z5!?d)3LXQ`gV(_a;42sa1_cHmh608Kh8IR0Mj1vA#tOy_<}FM#Ogc<4OfAe8m?4;1 zn01&#m|IwQSR7agEDNjvtPHFstU0VJ>|5Aa*lgGe*cRA+*jdN5QGqv5lj(05F!w=5I!PwBg`OdBitaOAd(|;AW9+XAvz(3Af_W$A$B3o zAnqdGBVi)ZAn_w9BUvE%A|)VwK>C6-g|v-ykBo&(hb)AwfozBT4mlIK7I^^qC-Maf z3JN6(ABrl9ElMy-CQ3cZFv>5KTU2aRMpSWB15{7cc+_ @Hh&3p6w|S~Mt{9-0SQ zJX$4MAKEI~4LS}wE4nPY1$q#A4tfjv4Eiw!5(W*1D25S+A4WPxBgPcQAtn+gEv7i8 zDdt~)R`>;20U~s5##Bt1V zLUBIe4B%|z!sF86%HrDL#^BcAPU4>8VdK5Q)57z?%fai!TgQjNr^T1Wcfe1;Z@^!` zzk5acO7xZGtEgACuV!9d6A%+X2`mYs3F-*u3GN6Xgp!2zgh_<0geyd_M2tkLMBYUC zL<2;J#JI!)#OB1�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 brhmv^&&t0h6qOHVS|HTdFA4shG6wz^S?B9| literal 0 HcmV?d00001 diff --git a/src/assets/icons/map-tile/g.webp b/src/assets/icons/map-tile/g.webp new file mode 100644 index 0000000000000000000000000000000000000000..c73159abf60170bec95b672b4c8685928fdacfdf GIT binary patch literal 12856 zcmbW81yCKq)}ZHJ+~wkWad&su;0^(TyK4wRg9mqq;1=8+f`{M|G!QHVg1atx@2~gX zZq@(q*7nqNe{;_1>eHutZr$nX)=-d@W#rzUv6svm;?X?DJeC1 z)R#v9RbI)~$r+3Z0FF)`ZW?luP(6JED8d8)29N-FfCB(b&D~v;HD$H_S}Vv%LET@B z{_=k%5CB{)053TJ%(BRs8%w60(005-+Qi03D(%t-pLtfay+r#Cr{N#mk z%$8i6qs3nyc;N^yPs{Tm%>4@+~K7ycVKR5vXRsTURo07O*l|6sHK zU=Pc;FMa}ml(UPEo2|8t2bA8N0m>mDzz>zT^mefH@L*9hHMci)vw%uDJGz)U`2fH_ z`~0^Sfc-bN(3c?datQG9vT(A#g#TaZe^ma<>VJm6WBX5wbM=3W83=Fu-?D$#{kP1y z008(eUt$ygZ<$#J0JMYx0KxLVWz_iqfDr-!&6EGpAH2Ww#m2+KMUain+uNJf*3z8y zZ$ST*{;vlAvi$GiKiXsc+upxo2bH$8GWB%ufc_1txwC__ryJDW#njvq%JP3s;{Wf8 z|KZku_`$4UX=UkV>GaZ+&dV&bb+UdLZYK*{4_jv^sIAj~H^Tp))&9eWzxdC2{Q{7p zCjjRSD}XtP1Hk+l2Vfy60E}Voiw5+saZ^Il0sg*uy5xKRocAyMqW?$!zh&UKmq)O> ztu^$oSV}_+YVPUg^_O4XiN6^ffDB*&H~=9)22cU?01Lng@Bu=AI3NQk0;+%(pbr=W z=70_02)F^>z@jwcY3FHAqKsiti)B`O*C(s8B0bhYBU>;ZjHh>-A05}1z zfO`-KgaASVK|q8cau5xO3B(EF2Z@4YKuRDDkUq!+WDRlxd4k@9K7c-g5pncF8=nf16Mg`-5Nx`&WHZVU}0{jZB1vUa(gI&Szz#-sRa5}gE zTm^0h_kq8H=fNA`1Mnpb0D}U92SWkF0>cj@1)~aM0AmH?2ICJC1(OO>08!OO$z!`s38!bijBz}LX{!cW6* z!CxXEAP^!jA&4NTBA6n0AcP@gAXFjrAj}}_Alx9LAd(|;BFZ8fAUYuiBc>u&Aa*0p zAnqaFBVi)ZAPFL=B3U5$AjKgSA+;k-BJCjEBV!@cA&VeuA=@DbA*Ul(BM&04BA=t6 zpirU+ps1tRq6DI(qtv2|plqVtqGF>mqDr9}qI#mnqL!leqAsDHqoJYEqKTs!pn0Ih zqLrh4L0d<=L5HBTqAQ?Vpa-C5p*N$?pdVo%VbEYmU>IY(!$`$wz?j51#6-fR#gxJ{ z#q`I_!feA_#Jt3UU~yonVmV?(V^v^{V*SEKz^28P!M4B-!7jx9g1rTSflxuDAm)${ zkRr$+WCsTxhYm*p#}4Ns&S#tnoD*DZTy9()+_$({xLvp#crbXhcnWw9cyW03cnf%U z_@wv}_?GyQ_|^C`_}2u)1mXmi1W^Pv1oH%Ugit~mLVLml!WP0cB3L3uB6T8fqFkau zqC;XFVj*I4;wa*J;$;#r2_uOHi7!bZ$vDX+DH*98sS9Za=@-&NGCVSIGCQ(lvTm|{ zatOI7xh;7zc@Oz-C@xe2>HtlL4nR*RNGRkfJSjd=Oipq(-RGm`GvUkTTja;#SL2W79}$2P zkQ4|I=oGjWV@ zRv`9MoJ!n6yhMCYfIvAs#h9DT24AjdO`+UMq4IRW?hz2 z)>^hw_C$_H&R4Ei9!~z1e1iO<0;z(zLb<|;BA=q4;=n7^SDLRfU;R{KRB}^lR|YF9 zDkmwgs?ex7skEp9stT$}s%vU=YOZP>>hS7n>RIZ$8XOw$HHI}Inr}2KG_SNIwc@l^ zwCS}ywfl82bPRRMb*^=#brW?r^w{+L^uFp7>D%hJ8Xy?x7?c=XzLt5N@_NUR$1u!r z!HCZ2tDwfO>sSOd*xQ*4sthgZ}q@=`7<@{N$(lzx#=b9mF0Eg zt>fMB7VE9k+i@R8pGcp*ce3w_ePMmgef!^2ybpT6=_ld$$sgoz=HDMc6%Z1z6DSv0 z7K9vRAM`DlJvcG=;)Cvo_7KvLz>uv_xzNfm^f0%u#c-kUya?C`+lYxsuE>nYrznf4 zv5)K@Q$IdLn@5kuaKxm?JjYtaPQ>xX<;KIuJH;;~h$WOIVkN#y+)7eTYEFhGMzRt18naLH;t)qJc4YCUUz*O}BU)W53lZ{TmJZlr0Q_F4CB^}p#~`J(q_ zZa{rtV(``A$dK&Nmtl$Fo)M9e&QZb9wlV&(man{Do5y*^o4)aUYntGlXrAPoY@HIA zYM&OK?w%2w>6?|F9hy^^`#P^OKfR#6@O{y6apSwi_g_m6OQ*|T%l9jRt8lAPYnW@P z>m=(1KNx=0Z18S$ZAx#B|J3}svSq$?u^H=A-?Ecj6*S~iT zTn_FJ!~S6X$v&b#YCIM{9zW4L**SGPeLjmmCp<5`;J)a;RJ&Zia=f~~j=CYdDZAyr z9lq1O+q?IEKzK-hWO!_UdiAvW?D+gFp`<4N?d1~#?Znd2mvXe((XWS^YS;zCYJ4Oi zo6uazYFB`Xlj+N)$*urGoW-t*ES=PTPsGUK5&Sh42Z$h_hl9)dzNFw`AgN1wh_t1m z&<-wAH}+la&-iI&MV+#+!``@#KkHZ47Ss2|KMcO}J4BO_EE0!*9$oftHTmwD7H3QJle@sJ_}2!k+6h*Tn8mzUmIZr+ww$ zKQw`yAc|=A>8qv|ar7N8gL8{Lkg7{Q5im&d~Sq z>?voG1;xLiil{7&Tz=7meyDeQHl;IKWMcWi%;^02np-i+n?;2mvYj08gdk^2Wc+)8 z5~6mq{}Dq_q!CXRK7)GZqh`%=c4oqDS9(2YG1QsJi0Vg(0qz&%FM1-_MHBCP};OV9wRM@0T;8LAi za&yrgE+!sTRINX@o_(x*I!|-`E+)Bi)MB5fVrF49x8Q{8Y3x`f_ek{EmZ$xC&)=b5 z7L&WHU2t{Tr+)FzmkZU$p+D5Zwp46gzxywdtk0L;$(`#WR@6LJxz`5#=FVWCgSIs{ zHX4ffKbs2O1UKA#wO>Vo8H^^O2^=frvm$zTuwz9KJQQ%pr;C}>>=^lg%S=~VJz0^& zckD&}@ZNUoq-s@M6k_tR?LaeSi~MQ-Hlv2nN98a^>04Nji$nZ1tSz5)CO+deFp?;m zXT}I@Nr&Mg$8Q<@>1PDnz?D$O>l~Oxmjlr=jEVG;J$hX*F*_8bU*|~r1!Vj#wXiCDAAz0W`X+uQRfGsKm zNS-gjOO(&)+j{~uYJsjxEiu|a$jw|`@`za3kyo)2<1@kU#@#{sz_RVA2;{)3b+sBg z>8Co>qEuHbf*m5O?Vgi)o400rWKzGrIBB3bP>u;KuikbXJ(lpmQqk9NGr8XNh&gpX z9v!V7ewWP1pbw8m0=qx_yvM?d&FlK**>kDso;pGymAd@U)3SicdeHFgkF}JT_X^Jd zrJNqIZLI&8@S3bPuLmas zT3@qlWo4Z|zok5Ycn>*tNM~?S-kpd&Qx(PkI&S#fVtQ${*uk5}Gqn3Gd`b;krGwQA z*mP{63$RV*9DINJK?MJU=!1#p)gJlVr2=bb8u)5&8qr)s;!zyZ9wyV1IY`7CU#8?@ zi~BhR5Cp~l58EQA#f2Om1HiEqo>##{__J%0OhaDDB5Q9`IfW3?iI$*tJYNtzNJNOsJ^eW&54Sp*$TRZ z>COqEeVYQ!(K^B;*z|XHqeo$$5UohgKN^N-U;B`t6n{%Fk}R)B0h8=7y2O04KMb#7 zVCS<8cwL;D+0y%wIFm;^TWKf(k^r0}yVz`6-JI@kN;f~E#$yzj45XfHhR zvvE(xZ=_Jy>*G=!DY?^@N2*->e=ptkhWL`b!a}yUXiOp9sk&9&k|-~dLar-g9(MH# zaeO?B!$6?s$4o_r_mag>j=1zB>E8Z?A7Pm_1~}YE81#> zSyo0m)f((k?Dlq;AXh>1$li8d%UuxyzSI{ZH@^!O{p*^@0!aH9)0i$Z!uZX$3quMr z=2K*?kN2BvYAEG*=1NO5i+?e5kEpZi;_H-FeYwu_g1|$|MBDhaktf^XZxz)HbKe-8 zEfd!?OPTnay&o5eiysDy7kl|R89H~aBR*Lqv!b45AyUnH@76u_1pK@o@dT4FS5G*v za*qTI?hJWAWaQyz>oK9(=$aI@E3Al+G&tmh0^}(5?;=#lpj257&analATqefOM?9& zIM5jvR;~hCG>?=cIfWe}$?abZ)k>Duzym2-8>nFo%rM9mAeQk_CQ8;yd+?5F0fqu- zBthW0LtaWXQ2yctr6fp^36YUrk}-$Qi-O>fAiXrYh(4-XPA>~=VX$#ICcn*hdTHD? zCysdUShG2m0WHKK@;dbhPI`5T?{u;_!LE57)k2SYM91!9>_s(uj#|`nX$ED zlTSkJH9@trcJpc>3Y13QWK1R;D6p|_hhDzx*6t2`D|tTB_wXNPCW?ON3h-)u7f?Z& z-8mDfE%e+&ZaC+1cGXmocJKv~D&u3G$RFK7{Cue<0ZjSEd39(JzpmgjOra|&4aN6+ z*E)+C2nyV|pywAp`&_rH_4zQeGoq>3>*-!yt6vw}Jv!;K3$h=L8W*d_>FeOJk=OM+ zc^%lR3xSE4jBA+?TsZmJx`i~BPCNVV{-F`J_dPC(S!yzMPGLh1DHOg&!%>3+N+Sn@?*!-`=Cqm^?cyNetWhdERQe5>ZT&%fMO` z-5gn**;g`NgdHmv9mnkEu!_>p37czI->0nX8{2 zG1|N=NQv4q#>o^>ej=(O3%f7Uwqon z#b&>)=k-cIb?j~RO^)A?{~TV=J-mA~W2=mjf3m$PyzSZagB-uvmb)kWL^gX~cke&p zIQdwU|E8nI_nhrMj$8DbFW}!6Fn2lG{c7c<~Yyls9Zc1_loSM%oT(dRMu z>DZUvzgGx4TNFnly#D+7@h0wiDp`SN#7K00k-HHIWp3+k-c;t6mzY3UVoLcx?YR*$QT5>{zj_L)HD+KzIYrgtfy0|&+C_Dd} zP!Xq}fyJG-3sP)09L_6eRh zTHkJLI*lGU<8KY3tp1*U+~z}Y)?e-USg>?FRmrP+er)ECPdajsxOwM7{;_MZGS4}k zt|6f9%a>mUN@26*luSUMba3B~Ym}_U4@ow2B>ZO`idGM;F+(oz7Vr+;ruiJyqfBn> zJ{8H`Gh}^li0_2Xp<>?8y4F{ISdwR3r(8!FEcbbPvUt*d1qYL77^$Z!F#Tqqup#<~ zaTi|`zG~mBN0Qc_(40uMGCJAH8{s{feC>@tu#gx%SNyJEE%F`AN!?fZGkKxVAwRFj z@W$qpNC`n!Qx*MrHL<7Uu0fHAgr@SY46^v#uB7?dT(%#imP+LAG10Au?$!)zEME*6 zZPp5F#et`XOWX(JzL}B5J_S@|D$?U^nCBt3A8WozcW|hVPejhMxtj}krfDbp^w@vK z_GTrS=7{yz6t0^0N4YqRTh>zgkNVE#!lKZ5?rw5OVM0|KT*9up*PSNYzxI)7Iuh{) zOtg_?)b1pqyitZsigOQ4)}cTfFG?0A36eQeOgjC`TCe$>8p*>kl917Noa_OyhMK^R zeXMg5VZ>HA-Px4@1M%)$?z2Yhs#s=}pmOeEzr`4Z-#vBd<8YT4<$lF#UB2!EGGJBo ztJywG*yWXbL(h1zg%6Xo2e!7BUPG@%-8-G5z3Q-S%SBPYPl&;xts$v;&#%|Z8_kwi zcJ>dk1xT+-MvfY{L*o3`nhFbH zJ+Z~!?-R}%gO0yCww-=WJb2{hJfnDi?rpUqyT;>J<#FO&-EB);(Ftw2O!V;cjqM_! zI_R|~u$mx?PeyL4;!s?+PWoZv3?I zPxDM+Paa%7m3nxWwXR$t{%`)4Eewjct!YDZdQ}OmBhAT~jD|UUW-Uw=jfqPtl0{lS zps3AQWJ1s-&OpemY+FD0y?ak^f@$f^keG69)4b|yW+fpW7w@VfV)(<7qmH+Frs8cU zt4>F^Rq@s4_R}!FtLp~7Q7mv+S6mhZLYo?!NUwg?eWAm!M8>RW-yPlfQmJN@=G{D~ zNw*p0%}T%TIz7-F&|-YmVRWmLjd@VcCgN>qn0D>|on{v`J)D%XqT|`NPSv7W_qorM z>6W(U_EnJjiuoG0p8OUvesh?=w_&oAxjAi0YiJ`cg)m_$DSVQ*?6H?}ISxsT@_lAH z1+VMTqxctfZrk_i33)?NNI+}kuSn|^0V2pGqt^jSr=D;O;l5+JBf8-9)fwK}ZN@p_ z(V;qAh+fW+Y9jv1W68c8p+~e;tuhWsvTRY{!E|HT=@-irQnCzaurq@(8?|}=8 z?)%ekVu*fMqcF&P7(=}89+;h)PG!+IQN47yr%0|ZNdQI`-PUx#UQZ}Uw=P+^`?3H62mZWNkj=p}B*1EiToyhaUTy9I5f?YZW5rJy{ z8tQV^A{~WyWgPqG_^Fpj(u~XEo1p@!)T&axS3inPeGclENxOIzp}EUT%loAAb6>te zlooYOzxKvs2)9h4$g=3{ssBm@(_ofo9LDpXG@0)=_-W`rX9>l#I+1jtX94aY< z6Nv;zJ8X}D1l~!XtIc8KB=j|ps^0sc8mIUXuIvoKupWV@SDmSX+S)(b!hOj|)(i85 z1GfDca&qi_vV^qhYq9kSchAgu%ZZk;euXbh)6)OMpYnK{u#+_|A4+$zE86*!r}qxy zam^!K+agsGwOZ1{c_g+g+kcMK*Y!Fq{^N~9<3T5Di?7^gYn>e!AtR`k{{wz94OuYe z#H$!qJa0=5ZD&^_*v$$%1LsJtDsp>X<6Y3FwLwB!hF0c&&tt)H!rOu+Qqs}iad^Ui zn3`)pe-E>**O5KQd-+==F1i<6${yYv(;%uhGXATc>< zfmD|fC0Ru~jw!ToHY5z0P0O>xid`naG`TVs9JpVf45R(pqY~lLj-cF@!amO+kmQnz zl5Xp>fnZxSj8C=8823n5?j^h5tdCIlJSM5) zK6;?Q9ngGoY=jWRqHc1U=P}98edsSdA{a9ArHqgy-!g4o=j*EF1Y023lg5~WDXX4` zRd7dSLFF|I!>s#|?XQHE6c_O9Vfw`y1r;9kSzAx8Sx${PUV~lt!|IIc7{({r-(*t+ zQd)hA16>(K0qWi#57LfX7B4^f$XylPQz9bgqB?RZrga+)538qmbqRQ&;K(6C&|UlY zP#%6d(0%vd>z-CFy*P}{hOc89hNT)X`=IejZW>{jb&S$EM{3O1D7atCrn_vi!!_I3h^4~1sA{e-GGh=-4bH&Qf-3=~Fjkg9nu4EJQ>xvz9 z8R9`x9}=ZQMAKCXO|y{6aeEVYZv{)pH8 zk(dDe8ZXI=h!(&PBOxDiAc@D7>Z5Mrl$RaKOLlm4QT+PbF~0)4*1~2P;_u4mCK|L4 z2F0#u26nIuc79R1h9Sg~lMPL5%|X(irL22`76q-Wg;dFs7#>C&-WV-P$JNlpoxrwv zNydr7zA7N871CO!@_IV5EyWbFI>pGnMd&OmlUeH-${NkN>1hqIG$D8%ZAlAXSy>!< zM3*~i6IhYePv15cuC8D$OxPCTr3kB=F!qc*{idW*lIsJ1bbX+Evxb@-u@E2QSc%Y| zaiOvoGuV}Bu`N91NvXAP%o-tgJ`!y+UX&C7;(2fvW8UukA=S^CZ|{qKPXDoTptWkl zDOr_%&weqXNtnUuN6>_Jc)ASc`S$FFhMp%Kbk(ZzM@+I?a8~LzI^Vb}-4oW%*|jG>qwM_;h2*P#y^2KW3gFHgv3-W%>E-7+PKXm zCyr;_rE$lEh7T6gxv}I5y8L%=uyIH<=EWu|L-!>_c^5|oE^WMX!lMq~-Za!sYLQFc zlXN0hI;B@o8@Ljs#n@#+@tQ|J598aZ9Z7Vc-&ZCQAJhQBeQ+KzxUKoWjnE|P=m~c@ z7id(Ga}>Ywp1J6B4|xZ(gp69~m(`NEALbh}9@Jtuo^Ub@QkF?17cs}2#G;-_Z9il@ zAeT;%D~t2&g!~qB>T|*SIk;5MPxyE? zr9(b8!Ia4D*oc^dMi`heptlY1s{5hOG`rsS~iRnXAdp(ZP2p2;J z%Nj|KfFqdR@Y;def%Wv;#|C6;Ihv<_Cy1F5N&s7UJFn9K_|;X1G@cS^1zo}KK-uKp zt<^Jmfg)nbS+Un<*E&DqKGCu%T3Bls8?~obp{Hd{&PDLyNp2azARpaxm4IcpUAbHX|dLjwbDEZ~8qO z@13jg$c)$)r+|f@Xl4LMv1#DtI94LGj2AuoDoqV7mKt+@_)}Cd4LRMiFGh|n+E7#U zQ;QjxyoRz}-SH~BE&a#lvoMtrzh%ncEfrrhLlRt;mH)O`)Jc#0Q#0N3XED;e=Y*i< zn%>Ks*_+_C%>o_Nq$GB)3bkj4Zh=ozXP4-xj1QaMh31=kLq!ug`IHrrHC_vKZ1-tT z(_f}4wq(ze)?A1l0_7WvTS@3$A-nyhIqZXRf7bE&$U_?? zIRPvGir$*EoHEcs4KcPKG4i1K{kzHNSWB zVd}DgjB70Ek2r>KPM2aHPsbN)dzYhIBnIZX=Yn3f0BV!B#(E_~WZfOmPvj`rQ|uw1 zET0y5NU?M0hDV za@z1nf851wuXC@qr8_+FoIkDcj`b?tQL~0vtIGwg^f~0d5f?6&bO}fQ%Bw{J9dRYe z`&R4jk8#(8a1hLlp2hZJnu;ZJUh9}t?UNc`+F|pmXp54g_Cm4Fe$;&miUB2_--!uIO-QI45upm|u09>cG^!lL{VcF~w8Hot&=0j`j)R3-b ze5Yz7gIO2hu}y_oj18gH>zOHmr$eGN@y53Ih;ImQ=63j(p< z)LLvfYtSQaaI2qaCVnnNO4h!+C$DPsHH`UAGI;T77Vp(O;ybM8P7m3r^CK8oyZ(zv zAFr-p`2(jnds-_5j9&xPv}Xb{OX8`1QL=H^F}k9<%`7|oA|#*F!K3l&P4$ecP;P7O zAW0u`gAe4wH&WU|dN;#pBIFG(CyV${?9a=g$ml8bMpdwjLGif#rAHK#3O^TfWZZ_O zx5^ydhsz?KE5A8cx@7Tx@GUX#-V?BS?hfYe-qEA!L?LFd(U8(^;#MF@Cop+EKh4YP z7bR~k{C->w1|0E*t}W2RVYyb+dcQ$wlMnK~kHwARPy7<8Jo9t=gh7D8ZH=(5jNB;K3z*x9Teyv!+OD zFj`lV+tHeWrx;T_?1A}OUl%&g{KtMG-k_T$D2hupl{?CVz66~-Z&wm75a8CrPHIcM+>`n4u+nx4 zd`$M=YfqFPqK$rk!|prJ&gzUgA}M53;}jE^B@=g!Uu+J|t{J1(;GHHw$ITmF4!H0% zGLIzS7qV9}g#?c}b1rUAi(6O8@0N6l6d6rYlb5Abk9q5tenifBPaoXoyt0Ms|Lv19 zwRmTcB#qa}z}?KqfJV~2&4DMmJW5d;D?uXekKmd8xq+`y&^k>i`vDi>J8~=T4_Hjd z)e&Wy^fyisvhPnO&{CZ=VQ&;*FJeq(=^E^^Bv$G)c}n`Witxx`mF}2Ih$Ea;+?y2; z_0N=rAYDG%v%4$_8C~?T9tKgBg#7hNs2&txrncSLz^lgW;L6Yi_Y^X}7OT`m+OyEY z@>b^JK-rZZyM+FNU5HcOx6#K8eN%~yuf3c=$EHGi&#@@6dV?rwvYv?VI z(9Rn8+An_2RA{DgW!J9e$nB3tsi7+A+mR3yWa~P+wvk`;+ZWfZ+zFRg^M`z2kC3`B zU%OK6aTPG1duH!j5-3&=?;f{qWoqX$4sgxj7mh)i0sp$cw@n~`|3wL!^SgfAsawe335bcJ;}y0QZ`qStzEL#vL%YRsp)ee= z=iP8aI5N`VJ#IlF_9ZnwQZjY! zvm;}Q)Gk{^)_TApV<<}Lw_-BCWaAaYxXW1X_^wV-JL{wd%Qb>xuH-6Qs!G;Wyn7UT zY5c?tUr+1&9AbL;<`z*(+*Dy!Dm7GxxUai<_zgki_;0x|Gf){Q5e{Wv58RPvee&HT zKzzL_6!1WDk07;rPYG>?Vz^#Oz0Dn|DeBLZW7&z`{emQ$`8za2JbOCyu|J{JdE~9P zxpiT437U!Lq&dHP*qhL2c)2W6;t_#I4HMrj2S+GtXn+x^5_^l&o>Tg@h*;P5{Vx8@c5W*7`#NHNh@1(y6HD4Au8}Fm;j`2o59Kzq`A45xxb-NyUQH&i9E$y4{ z-+km77~g+$13u8MPJKe)<}>2pJJm0U(n{B9Z%LTa%g`WBV7jiH6A{jsGxQ@3Zt|xDNavI5sochh$tkGjx)ILBt+@GR z+iB#Zu!Ij+u9?_-r(Qi}&%1C-Zj1pD_G)uP`)y=G*2RA@gVs z@ATK47?i3e;SzaDK1n9OVIC?UP*&&59@55cS})_V9ef=&*7u+%?+-qM_%o?67;UtT zZbRlr#02n|3U;#D&Ffns;R#cbP_-idEB>{1JHTui{ zRX_l6JrBIr05HQOs{(=im;C>=!7y`nbq4^D%4-J>a|<`KR}On+doOqAzw*;p#x}M4 z%V6lg?E329E93uVtA8@%KWzTVqJP=k!O{HH=C9Ar<__k6dEk{lczRg8GSu5wj_|ax z@OtIhSEjP}aIksh+gHYRurP500O-Hbp>nq{vwr2jfkSrHP?LCNK>&b9w)zh?{SS7x z@P73Z03@88eOzsiK{t8!pXte#L));{&~-T zdjXh#V+(l=GB+C^H#ZYI^K1D3RsKiizpVae_&c}%w75|H$DDz1$Nnw*ci(@@oQeQ| z_v$q^iT{?FW&%KSH~`@P{I`s%007X!0HA5&Kkf(j?|QLzcX#GzVe#_vVz#j`WBwb^ zf0h5M!M`m3d-#v>nE#IVuh>B(Ei6qu?A;-MgKFkv@8sbMadS2?vw$%DpNshayW@Yj z^&fsPs##cCxLP>A4yF0J%4{61UZ>m9+{WF;$q{1X_}|U&|7W-V@Zm51b6vjzR>?Df zZNveXOrU5bYaP|Dlug}Ea3I;#~&;V?J03Zb@0Xl#QU2VnE5DEKnh+0#pxb z1@(fyfu=x9pmoq5=p1wph5{plvB4x@8ZZl(7c2%=0Be8^z*b-vurD|a91qR_7lEt5 zP2gVeckmo|4SWE;f&!qBpm3qcp_rg}p(LP`p>&}vpjh1G$zh4q7th0TSnh3$czg589@ zf`fx2fO`Wc1g8vV0_P4F0hb9^1=kHX4Yv(<3y%a(2G0&J4X+FD2p70$Cr~134bK9JvR13HbsA1%(Dh6h#-s9VH&6 z0;L~i73CHc3zZpF4%Hkr5H%aM33VFv7!3i98cht%5X~1Y4Xpuf0__kT0i6b20^I~X z06iPM6@3By3Ihv+4MQ2j0V5XUGsZWJT}(Jk8cZonbIdTzV$6QbO)MxZN-PO1Gptao z60AY2ZERR}fZ=7tLPMkGdC|nv`Ib3_(1l%vU^SJkT zBzR(Y7I;y3HF(o_H~2*OqWBj0(fGCabNKfJ5CSOzJAx#FW`Y$$XhH@;RYEVqJi41{FasBZHA6PT#2fG%?l(4Xa^Flb!Z7kNIx-e9E-)c8i7|OH zRWhwJ<1)Wx4qxr9(+m*Y9dyj{T$CxLFXMq=+SA{p0cZ3gy zPn<81uY>Q7pPS#E{|o<#0F!{7z-NJ7L0Ulz!4knuAqpWAp+ccGVTiD?aDnie2)T%f zNRh~fD5a>mXqo7a7`>RSSe4kZIIFm;c%%4@1i!?4i5^KPNg2s#$#E%6sdrLYQmfJw z(pJ)y(x)<9GJY~WvM{m=vPrTFawKwQausr?@;vhIe{R-#sNRBBcRl;xCDlvh+}Ra{isRbf?CRI^q8sIjT}s|~ATsT-+(R=?H|*GSO# z^^WeH$GbjFG);ZY3e6iWNv&k9HEkB{_uAie2z6|9T6E!bHFe8$uk@t!QuVg=x%4CS z=M88LybZn?5*peYb{e4>nHV(~!x(EBe>Q$JQ8pN9 zi0NqOIN(I;@Q)DIkmQidP_59mFp{vKu+4Cp@X83(2-k>(NP)=w56~ZMK8#0kL}f-jN1I2F z#<0eu#XQEE#g4|Y#bw03#9PLXCvYd^CBh~;Ce9~`Bz;Q8NcK(MOi@f}`Uv?L{qZu@ zDD_(!XIg$bV!B8ATE^RqmQ1S5#LUMm>#VtK@$A|h;+&|Qn_TnU={(WAntYP{nEd+! zn}WqcnZl+bnxeE~*kaG(KP8$a!==2X6=j5FF=bEXj^%5g)IJSV@KjWMCjOjI39j_0 z+^f>Bnyi+rZmD6aDXhhI+Sew~*4WP6Ufx08k==>Ynb3vU71s6A?c06T3`R*aj$i*ORkS?sBiq*G}}Dba@%^`4*P@hCvAspr(&0Vw_{IwZ*pI6fBV4s z;NdXh2;(T{nC|%NiRj7LsrKpind{lhdF%zjMfoM?W#5&`)#|mw^}|i{Ey3-lJKnqD zd#(GO2d_uC$BZZXr?zK>=j9iNmlv_ODzc-mTMU%bYKLDxxqmes4Z9$Yp>mWjXJ=++ z{#naRvQo?QF}Cc$A4Q=>;f*p&qt4y&LB_7pW+lbI3Od-Cc)HG3ul62mj~<;ZA3dGU zPcGmly|h&ijX$_9qA(hKw?AF=o8$BEFF#)HVnAvwXYchn@g6lfcX*Dlv!46v-c>9G zc=UyBauLPhxN{op{zAaXaKV|Qf%1B)PN4P~WZ_puW|N9wqRR+@I)E>MCdY%osi2k= zKxzO|6}lRxXFnbn&i2&?Xjafz5QXULZUh4Wivnz-VOk7*H%fUlN}38uQqwxW^?jGW zB3y{PH=%MVk*K(Fk9>q|1F?>0p;F4|U2pT7+I<3d>RxGk03Z_n>B*6TnLnm$%s%f5yOU=bOSP z8Cuzbi#j_=ltY`n?R<$#QR`Zm|47OlP<=K@vo(W>U!ryQ-RtFskzh`li&O1wNPdps zJi=OEx;LE-c=NhC)T(zRC$)BdoJ&oS{d%QzCZS1MeDz$*v5`eW4o_6UX!Ro=8sW~h zE_}$g({F2%Mv2gmSf83a1H+ZQgl!GKA2~f5(;qgWuqTx?HFc>S2|axx>Bu}!5A^Py z;de??NJfDaaC$nq$u~7M!QSIg(XHNH52==yD~zatS-bt6B5FvTcsPNb@tZDz2oo6& z_C+nbY@(FhewoOlL8lcbgPfbs@5FGi3VFK%nwi^AUUVv^P)N+VLH2gp7aUgIA_pAo zdEvA}T6ipi=EA)dDo&bT&=O4pwF?C6%G4bEd;kOY$hUk28qFL`BVsO;n-q9O=aRp^ zLuqfryyfdLY!|S&0HUiB1V6U$bE|xW0#vuQLU^o|5nL0iT;YA_>Wv6nT7&4OVa7qO zzU3(!+d(}?3ykLwLNpRs3$p&4G{J<1gvaCSlXySuOH; z&xR}*M?mVG9wteVO>1z_qr%ts?G0OQ*TJW2O|FSgrlU~#8mPdu%TnbD=l zz|P#4vO_EbaaBsV!Km_kp;V{=s8XHE!v>YAMT!T$)AC3ro(pLEpM$7Kp>#9GE{!)6 zEke>T7JTio6sz|;`!C(wjH^{jcqr<)QDNk;GB0PrPz^WvDC)m&AHQ0R7ijy04!?M@ ztph;;zNf4iFRRfkfJGF(<<4DT7nYXbP^Co2P2Fv4Hmjug5`MF&Lu`(4{YW-->dpaxcV(q^E$w#~K-i)Vb z87osPxmp$JGN#b?d$anUH;}OEeQ_Rh(&-D?nCWc!MC8i&(}eGyD`}w0M$#S$o?fnU zLV0vs0tHpw#0RqZ1$7HTmS{Qjx&XpurZU;XcuhHDh2yi{0o|-Dy-isNXe$$KJ6=96 zF29lP_4CpdH9?bxp2@Y*NQ{ES;VXjSZMKqp*u+G#Sb%i|dA=mk_QxLkK?V$p0BeX= z++M{;*-amqZ(nQbMcvn`oEc&Rre(xeG9Vw&Ho|oY!}uo{?%j%M^BG%}-WKCuC$3EVO98EJY;)tHfD_ zI}z0!jcI~}#9Ek88>Z>T}_Q46nzl8+}a{JaCiMveQv_Ru6%^4)r@VA?;m)5XiR z-1!5=u9KSa1Nw&75qs<6cQG%&NHL}+>6B&0AMg356=F~Fgc>Nxr|Y$5B|iUVjHCzu z%1%-KMHyUBaM^QT`39vVlQp2co(prEZYE}>Z(}7`4rip5ui1k&ngPz>^N(tWFkE^q zH={QvA~xX*xVn0|21_}-3$g+a&0T_A{?EoQz8}nVwRN&l#bYk%8#-FKiB3d1TI%w{ zR^(d+g|rfUN2K8l-)}!-DqV{RYyI)qY90Kxlqtuvt7A^Pbicpv%eDB^QNN>)ZFOLO z^dk{B+=wRZyUJ$noxYSKxL{bCa?2g7u~KPRj-b6eB8BjInFo}I{!&w7^7hgmw`Ru) z&iv(JsZ{!hn?n=IDm-N`?F-=p%$njblcpaGs-uG3C><1ltY(#-N2GQtcv zgsDiUkzxAS8oXo>Vb^3oKJpPH$s8%tz}rB`H(kjQF-xqp#7GUtKVjhqlz0}}9_Jvz z4;}jG%?m6$A#t{^|JAR{Mz-jrF1*+$N{1I)<2NF8oKWHKtf5DTS27#DqF-0GMuA7q zsHTM7UYL)xF@Si7o=WoFr>AgVAb|A4Z^!sxH_@1u5d97YT=dqDE=9%oN8KHrh3`jM zr^Kx3?Y*A$-`^uOwmDm7e$wT;J&`HwzF1uv@VEHPdu)+7mlXf{a`+JiMT6W-rjLrm z(eQl}CgF=@-(rw1n#f@*vNo`iQXJ4AwTYCHl9E?cl{h(nyA&w=rq#PsG-S=ToQ+Y7 z*6P562dOHqcx^-Er4f!**u{I6cW-}xd82B_`Dg5a>gJ}*A-eHz$qdO1k7lo*Et8G+ zL*7!Q3fdy~H%~VD#jFCFNXEZ@Y=#=1AstZ5ryf1e1o90mP>eBPno60x9PSQ0ZM=Op9tcNX_C;u?vuxadPUN;*wMXc9iur26LZAz0%=|@W_u;g?LF868J-18 zC(J2uP)2ueUlpdS%S9iUJU+f+|+u)rkXck7w-L=7+gNTf(pN!#+ ziEd~>f}in6ulYnui9hRM6W@Z@`BYbmEhvFVgw(fUGQm#}lW4tBX#`-sO{jH^OQyZv zupwAbh7RRnH0qQ*85LTP%S+lx$1kk=a?NF1B;YNli`G>`=hC;rGjl{zG_px(~ z=;#CN7zms(>_AE#w=;&__M*0r=>S)uBN?7d2$29T7z|-EEEn;;ze^3G{bA8M--%Cj za9#QA!)n;ZnqnBUzg{X}!jhx&UM(X^>8axOtDxKci$yGF7e>CWs9|5W;ZuK&u158_ z{=-*(uK+>ed9t@@M7>phm}7hfTmphz4W1J<1CgFX#22Qw*faRluV>~Ec{~76(ExHm z4A!rQQNk7s2~s5#g@j1QUqxXh>jA@&YeqDoZq+~A4h~LBT~1CZFFf;}t1mpWGtI{j zws+)rn&B-o2RCZtyJy4QWNEq|9s<21R`20&F2){?1?P^Pu8?{RgMOEE6$qPlUtTCb zuslo{ckldO5jncQco2OWz7~H9GfDLF-KLJvRmNsmbB%QpdUPZ2it}G(H0&|;D~+u{ z@Ge(#V1VM2MmIVO9oeQeQ6&t0C<{%w+RJSl_jRBq3C?|{0lD8&oBDt4&p~DquWrt@ z&;KD&Blc-0`b|i39hF&N;U`lc_I^G1Nya~lPq-n(f2jAnJv$?OnJmUR6bilhRN4Hs zGX&PCY2nZ2kD?@6c=D$O5Uvgq54LQ+u2*U#ZT?;zx{d{f#Q02A3%GNf!uZxL;3N@)OAn8^$`bK-RBoI{NWA0XE^+wpfy~oC)P3H!rGHo z38-$%iVlA>d}1UeBD^SwKZj}J_nwtf?}RlKZnfmrSy0hZM{jf4XSNZ`Jdv-HLdcjB ziw*Cn%Y(a@tb)5}_0rap$;(F%lr4gifIJUSPOF!Z>n&bwyi+$PqDSpTeOQVfKi(V7 zi(d}@?cT(B{KH|BJz=E?4;XO=@42RwaYI*fnpZXjQ6R%4>$;k9nu7Q>t|D@^f9AzBK zJOtCme~;p*IIMZ&CCxC{JyA;2B*G5iifi*zuT&Cn4R97Cv`MU|YG}hzL%Sp|fZutb zB_tJS0iGYycuKl09`F0d%wR6|>|}Z?;~QU|Uhr*x4^1;yN8+bLkK_`ohuHelb$z8p zoDDE|KFzB2vx<8({i2gj9HslB(%o`J`ABm0Herc$!t!w}a*)JpIIQ+V{rA+8(i+A+ zBfc0eM3qRn!Z$1JS6F*{>5#oqxjSec$)YB)#8MdTKYbho7H55*JP;k<(e}e}x74ds z$xg_BKQKNjx9AAgydZyDdtL_7C??wNpPwwevGm!dX8is{NrS;ml;e~$T;PC_y~yol z$I=j)i9=E~Z9t-US`cAT-DnHazqvM|x)#|sYBxtPNtV)}Nb$M+o5vdrl zxh3uNEhD(6^Tt@81pMtD9g59?rVMT7Tr{;sQGCc8X65m5?W^5z+GW)E>R11P@%->Y zVG0)Kb47Y|1L?+boxtkqEkQj8DfAolglFcsego+ze|z8FpWpc5^L2E7_PwRHImVdf z(VQ4GSxXyga1WUePgdYZC}S)CCjW^Kmm)CuTXht_l*wfo#~VwA#;x=o0mo$ z1+@mr8gvV|iRC=xVt_ICyurhRu8=3N!J%*ejIoVge5X7kY-;Bh-8q$%41=Nc0&L|S z+Gg^@ln83o_qMH3LH)Qn5ZiV24+m3URB9=xT5PDpK59JLA?zj5Q)n!ggZpbr!fH$| zsqW@at09+Buo3mDa4a7E$mYCy`tgk)-vM=Gl2z@XEg>WZP>`Uj|53U_;+Xd(-xNMi z^+kxve2%oa%AhfybC(Ou_0D@G#Sc-vL6j`E3ttXC**bb#{Gc@ln!esW>6W~V@yL@5 zF_k#qQ8mrtIF7*9FgS4yCG&be=fzbZC-GRO!?zx)X~B$4V>46TrRF*7@KjG!d5!ED z;c9Nw><2KXWM7%KF&fcFB(H>X3bL6}qXhr(Ek0CoRpQ!3|I)9+6rV=Ay+W+~U zzbXGQa8mb9NQUSWKueLs#yMLQr6Jvdqj?JWtnq0#Q37#!$&~wlX`d z#sjRpR`^EWxAk!*>&4NTKA9MPt;mOxzk0pcVHf?vGS8E>*xnOe?{r4-M4sr2Zt2!2 zQ>mL7&TF)#+~HH70YueeBan*+Dx;5bo3)}kwXEI?2EOJ~fj3&0%Tyv{);J`>bp_19 z0%FKr)LwTV%Et1R!yP*t1f7{o)PHsNJakHX=f~ohuWZFyZ9iASrWU;I=clKA74V+6HeuvGL{NQb zLibM2==J?(<~V1QX)tKFjv}~|fR8D6y2~R33UkY7qbQj!6#8=Eu1R;Jv2g$6*GIg= zI@Sp0f^82z^)^+_YscWC%j3$( zgNR2S`_H~!xmY<#aUHx1=n1uIIoNBaLkhD!-84Y}FH%v~jXSO@Z#xrK3UIMyh9vWo``xIhn3;edhD_0e4 zE>Wq~>d=1r!|>5a+~s%4Y&6rbJx+OXBT?bQlQWeSz9*ydN z%gj(&n^m7AsVwy*I;DOH^?S|iFI}5tWB;OKd8)yJ%$f6Ovmf!W1fDt0FvvX`7$e|jH%C7U~Z4 zDhbv@=uK==(xhmo&5{Jn+UKTJC~f>4f?e_EC{V;TWE?&XGo7o?=qBQ~eQ68FweqNX zoPpb4N)uw^B5uj<9o-J1F;`3tJWz5&P|o+da5pmQNE`jByj18U%*j>0Qg4U1b=)`d z1wJlK`i-lUGjEd6Vp%yI8rHeYZH~yc2qM;K3kL$Gv&@=Dd1rjbVs7W^wV%Y8!7(4A-Qp^ou!wR(@1H6V|MHB{e=pBh!pJ_cNoS0L{v87VJud;rTpk_MC+N9&df(uoNe@&S-u#7j&8)>cbC5 zn7ZG?~M@1taNmz%e~kzlFu z*t|zxktTaS`53-D(3U6&Yl}*S6<-mEj1=IK1NK(Q2{BU!hu0{CU&yV`lOqPu{JA## zn0{>zhYj}XLEqn$FLX%V$D@<>_u}@5*%}jz(ikgnh-c8hbUw2SilLDEG`b#T_(X8T1uyYSudfnPQ6r zwrv@BD{srM-3JR%vF!KmPH0q*dZS2DAlpKmWpTDRA`7p(DfbpOzjA(ssFhkU^QK?c zlYd?B!lCX*^}3lLLrsH$Nd6W-YmVXg4gS`fvJkIB$WD&n4#I6oDE>^DZ2T+1jK$X#H*Syyr_% z6=AMU03l1CAYqeyH{h7k`o#w^3y>?YHleuM|+w`()X2wgJ;dE ze&;rLIloa0thwTcP7|aq-XGMMjzf zFFvSl>g^W2G`-{}63}Aur>zSAF?>->GwHSbWjy=>FS2}hqxp7Q8pe2Hy0`FWXg_?c ziTY2optnEXohmc;KwZf>GhT;XTdgL3^(BKYv`@tHJEq1Fb9(us=Ie*?+cz!0@!~2~ zFq0eXljI}JC{O_qPFdf_=?7AmJKxj6X4!r2#R$sWDs%Ks3Sry8BJ?AqIQz{uY01MR z#w+onNphDQx-jM)nZkKx@#QWu8Zcw@jbBpBOTQY=NP9y-Pj~a_1JTz{@sD&TokvmE zW!YZHHdd*7zsf|S0V-;y+lNa!f?}Kn8@0Gk6YoyPlH)HDy zfVR7`>d4bqive#tDEBFq(q*9v)eFGai(Tm{YAn`KYj z-$(ZfhvEB(hm~z&YwCNJ#R`Zl3j0#Fo7Ex}c*6a~V~^7gO})yL^-bF;Z(^jh z$uuf4uf!oHQ>@_CEmx--!I{5Hao$22OCO z$QZwdeC!bC6SW$mIw4bYGCDJDuQjj`)&kiz)(X9BpG!=bvzIPFAzS9t3@8m|vlRUt z-ZT9%uQP<3Ma}I(Il7~6#}3M`yYaTe5?Q#vU;2T?T_x@6AIcA?D9Myey>4EI=sf)kggG^0FBS*o3u=#cvD z9qvBDA0Cl;ne2^af^6xspSsYw2?B6G#L~0zR7lVNEU^YSz!B7)G@I;C<@moVGz+xr zL4ya6t*UPrynV!Q8<6o994H|1=b`LYZPCDB|#8*UaSSIn0$kn}&yj z@ABu><@yezTd*#~*AND*E(V;})Rg7K=%Zw19B~#k#6B$zlQw5eF7g>PL+7%XkV7yf zLipUzh6LIk%IHluCtrBT?#m2M4;qjK-fh(Rj)@L?d)w~yo8C~zs@|J=m>T?a%BImV zK8b$vwVCXB?x{x)!;g#62HqWH>;mIj>DM(&P~G+Mn#kLtlk zKSX<)186v#lZNjxD2w*973LrC0`(PI6unUjv5Dco;%^)zz0|16b0&6dnL`;<(S5&; zq-u_nm5`7+i!kT*e=y;@$&x_GW$haS$HZaS1!Wv+NC&6CxtD^tH6dhLU7)CkWAytY ziH@=V7|V=G`Bq=-U{FmrzJfI!qnOG3G?(?$!Y{{gakZW3`)#@8>`7uPoWO}2!i5{^ z{y~pdg2o`J5R0@mPj2bfXb2(IZ;j0WLfa6VSwCyjBHPc45-lV??n;DJ)dBVUX%i*! zp{Nq886g|KgPP?%16E(s-#cVWv) z3U>{m!!CwiG0MDuYV4)b&PI*@k*IWsU#HxXaI%G@y;3W(1 zq@_$bX>%wqj^_73aICJ2)x~B6+%rr^DLaL4@hLLaxyUt*dwzqsikI+Wo9+BKLKu+H z#`a3cP4oOrirs`t;#2(zDt43**Z4T-N9vzX(qrJ>yZy05gu;*g&6s^H7(+W5x7d8%rf0bN0{YQ1sU~Y~+Rn`hXOi}n zAChc7n$0IAoMa0wD(XRzPvq!DZ6<{JW^u{p2xKi;p1adsq>pED8e4&WI_pa=l9OJc#)aTsu1d?_UqL+O zM{O3|(QZFYoC2^8D%)FL!ZeY%kWm##{cK_^N(ZjlBoM}$-h??ulYWKH#CGCE<};Pn zt7CLqDxT~dDOvMQrjb?p&H>oIQ02pswm|eOABm|$UY#vK~e)`3xO8-9<1R#GGoqI#t;GSAnmX5WEJo73PV-F_j5OBZOT z^JNn3kZ~-MB8+_=o=4p-@|&LQ`z336pHE-1rn?q8d3ae+^+tGQfv#e2x93rpfN+cke@lvy4md!rUp zT49To+MSC=JGIAYkH)uV-JD&FRd&mjBI?T8`AQSP6tw|5?dXla# zCa3h;@`}qTLLI#V0H6bDuQlj3*ZjZQzdC5Tf9U?^UxP*dW`Dnyf5>06uU`wQim8Pb O2>mrT{cqkX@V@}BbN^ld literal 0 HcmV?d00001 diff --git a/src/components/setup/RandomMap.vue b/src/components/setup/RandomMap.vue new file mode 100644 index 0000000..41c8be2 --- /dev/null +++ b/src/components/setup/RandomMap.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/src/locales/de.json b/src/locales/de.json index a3f6634..b21f6f9 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -20,6 +20,12 @@ "scoringTiles": { "title": "Wertungsplättchen", "randomize": "Neu wählen" + }, + "randomMap": { + "title": "Kontinent", + "show": "Zufälliger Kontinent (optional)", + "firstPlay": "Erste Partie", + "randomize": "New wählen" } }, "setupBot": { diff --git a/src/locales/en.json b/src/locales/en.json index cf3bccf..ab829fa 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -20,6 +20,12 @@ "scoringTiles": { "title": "Scoring Tiles", "randomize": "Randomize" + }, + "randomMap": { + "title": "Continent", + "show": "Random Continent (optional)", + "firstPlay": "First Play", + "randomize": "Randomize" } }, "setupBot": { diff --git a/src/services/MapRandomizer.ts b/src/services/MapRandomizer.ts new file mode 100644 index 0000000..9cd375b --- /dev/null +++ b/src/services/MapRandomizer.ts @@ -0,0 +1,159 @@ +import rollDice from '@brdgm/brdgm-commons/src/util/random/rollDice' + +/** + * Manages the bot actions. + */ +export default class MapRandomizer { + + readonly _firstPlay : boolean + private _tiles : TilePlacement[] = [] + + public constructor(firstPlay : boolean) { + this._firstPlay = firstPlay + } + + public randomize() : void { + let retryCount = 0 + while (retryCount < MAX_RETRIES) { + this._tiles = [] + if (this._firstPlay) { + this._tiles.push({ tile: MAP_TILES[0], x: 1, y: 1, rotation: Rotation.UP }) + this._tiles.push({ tile: MAP_TILES[1], x: 2, y: 0, rotation: Rotation.UP }) + this._tiles.push({ tile: MAP_TILES[2], x: 1, y: 2, rotation: Rotation.RIGHT }) + } + let failed = false + for (let i=this._firstPlay ? 3 : 0; i 0) { + const index = rollDice(positions.length) - 1 + this._tiles.push(positions[index]) + } + else { + failed = true + break + } + } + if (failed) { + retryCount++ + } + else { + return + } + } + throw new Error('Unable to find valid map composition.') + } + + private findValidPositions(tile: MapTile) : TilePlacement[] { + if (tile.length == 1) { + return this.findValidPositions_1Length(tile) + } + else { + return this.findValidPositions_2Length(tile) + } + } + + private findValidPositions_1Length(tile: MapTile) : TilePlacement[] { + const positions : TilePlacement[] = [] + const matrix = getMatrix(this._tiles) + for (let x=0; x<5; x++) { + for (let y=0;y<3;y++) { + if (!matrix[x][y]) { + positions.push({ tile, x, y, rotation: Rotation.UP }) + } + } + } + return positions + } + + private findValidPositions_2Length(tile: MapTile) : TilePlacement[] { + const positions : TilePlacement[] = [] + const matrix = getMatrix(this._tiles) + // horizontal + for (let x=0; x<4; x++) { + for (let y=0;y<3;y++) { + if (!matrix[x][y] && !matrix[x+1][y]) { + positions.push({ tile, x, y, rotation: Rotation.RIGHT }) + positions.push({ tile, x, y, rotation: Rotation.LEFT }) + } + } + } + // vertical + for (let x=0; x<5; x++) { + for (let y=0;y<2;y++) { + if (!matrix[x][y] && !matrix[x][y+1]) { + positions.push({ tile, x, y, rotation: Rotation.UP }) + positions.push({ tile, x, y, rotation: Rotation.DOWN }) + } + } + } + return positions + } + + public get tiles() : readonly TilePlacement[] { + return this._tiles + } + +} + +const MAX_RETRIES = 1000 + +const MAP_TILES : MapTile[] = [ + { name: 'a', length: 1 }, + { name: 'b', length: 2 }, + { name: 'c', length: 2 }, + { name: 'd', length: 2 }, + { name: 'e', length: 2 }, + { name: 'f', length: 2 }, + { name: 'g', length: 2 }, + { name: 'h', length: 2 }, +] + +export interface MapTile { + name: string + length: number +} + +export interface TilePlacement { + tile: MapTile + x: number + y: number + rotation: Rotation +} + +export enum Rotation { + UP = 0, + RIGHT = 90, + DOWN = 180, + LEFT = 270 +} + +function getMatrix(tilePlacements : TilePlacement[]) : boolean[][] { + const matrix : boolean[][] = [] + for (let x=0; x<5; x++) { + matrix[x] = [false,false,false] + } + for (const tilePlacement of tilePlacements) { + const { x1, x2, y1, y2 } = getCoordinates(tilePlacement) + matrix[x1][y1] = true + matrix[x1][y2] = true + matrix[x2][y1] = true + matrix[x2][y2] = true + } + return matrix +} + +function getCoordinates(tilePlacement : TilePlacement) : { x1: number, x2: number, y1: number, y2: number } { + const x1 = tilePlacement.x + const y1 = tilePlacement.y + let x2 = x1 + let y2 = y1 + if (tilePlacement.tile.length == 2) { + if (tilePlacement.rotation == Rotation.LEFT || tilePlacement.rotation == Rotation.RIGHT) { + x2 = x1 + 1 + } + else { + y2 = y2 + 1 + } + } + return { x1, x2, y1, y2 } +} diff --git a/src/store/state.ts b/src/store/state.ts index cb2c92a..e169b9a 100644 --- a/src/store/state.ts +++ b/src/store/state.ts @@ -12,7 +12,8 @@ export const useStateStore = defineStore(`${name}.state`, { setup: { difficultyLevel: DifficultyLevel.BEGINNER, eraScoringTiles: [], - finalScoringTiles: [] + finalScoringTiles: [], + mapFirstPlay: true }, rounds: [] } as State @@ -50,6 +51,7 @@ export interface Setup { difficultyLevel: DifficultyLevel eraScoringTiles: ScoringCategory[] finalScoringTiles: ScoringCategory[] + mapFirstPlay?: boolean initialCardDeck?: CardDeckPersistence debugMode?: boolean } diff --git a/src/views/SetupGame.vue b/src/views/SetupGame.vue index dc494ec..5942fb3 100644 --- a/src/views/SetupGame.vue +++ b/src/views/SetupGame.vue @@ -3,6 +3,7 @@ +