From 7098a9a5e0f63659a51acd5f83de9427f3956ccc Mon Sep 17 00:00:00 2001 From: Regalis Date: Sat, 23 Jan 2016 14:37:00 +0200 Subject: [PATCH] v0.3: - Launcher checks whether a patch is newer than the current version instead of going through the patches until the current version is found - CharacterHUD is drawn under crew commander and other UI elements - All structures other than the command room windows are restored to full health in tutorial - Longer cooldown for moloch attacks - AIObjectiveCombat always overrides current order --- Launcher2/LauncherMain.cs | 13 +++- Subsurface/Barotrauma.csproj | 2 +- .../Content/Characters/Moloch/moloch.xml | 6 +- Subsurface/Content/Items/Tools/tools.png | Bin 0 -> 3656 bytes Subsurface/Content/Items/idcard.png | Bin 188 -> 546 bytes .../{Vanilla 0.2.xml => Vanilla 0.3.xml} | 7 ++- Subsurface/Properties/AssemblyInfo.cs | 4 +- .../AI/Objectives/AIObjectiveCombat.cs | 2 +- .../AI/Objectives/AIObjectiveManager.cs | 2 +- Subsurface/Source/GUI/GUI.cs | 1 - .../GameModes/Tutorials/BasicTutorial.cs | 10 ++- Subsurface/Source/GameSession/GameSession.cs | 1 + .../Items/Components/Machines/Reactor.cs | 12 ++-- Subsurface/Source/Screens/GameScreen.cs | 2 + Subsurface/changelog.txt | 59 ++++++++++++++++++ Subsurface/readme.txt | 13 ++-- Subsurface_Solution.v12.suo | Bin 829440 -> 835072 bytes 17 files changed, 106 insertions(+), 28 deletions(-) create mode 100644 Subsurface/Content/Items/Tools/tools.png rename Subsurface/Data/ContentPackages/{Vanilla 0.2.xml => Vanilla 0.3.xml} (89%) diff --git a/Launcher2/LauncherMain.cs b/Launcher2/LauncherMain.cs index 8bc7d87d4..0e01ee4dd 100644 --- a/Launcher2/LauncherMain.cs +++ b/Launcher2/LauncherMain.cs @@ -398,11 +398,17 @@ namespace Launcher2 return false; } - string latestVersion = ToolBox.GetAttributeString(doc.Root, "latestversion", ""); + Version currentVersion = new Version(version); + + + string latestVersionStr = ToolBox.GetAttributeString(doc.Root, "latestversion", ""); latestVersionFolder = ToolBox.GetAttributeString(doc.Root, "latestversionfolder", ""); latestVersionFileList = ToolBox.GetAttributeString(doc.Root, "latestversionfilelist", ""); - if (latestVersion == version) + + Version latestVersion = new Version(latestVersionStr); + + if (currentVersion.CompareTo(latestVersion) >= 0) { updateInfoText.Text = "Game is up to date!"; return false; @@ -427,6 +433,9 @@ namespace Launcher2 //read the patch notes until we reach the user's version if (patchNumber == version) break; + Version patchVersion = new Version(patchNumber); + if (currentVersion.CompareTo(patchVersion) >= 0) break; + string innerText = ToolBox.ElementInnerText(patchNote); innerText = innerText.Replace("\r\n", "\n"); diff --git a/Subsurface/Barotrauma.csproj b/Subsurface/Barotrauma.csproj index 9b73026a4..9255732bc 100644 --- a/Subsurface/Barotrauma.csproj +++ b/Subsurface/Barotrauma.csproj @@ -843,7 +843,7 @@ PreserveNewest - + PreserveNewest diff --git a/Subsurface/Content/Characters/Moloch/moloch.xml b/Subsurface/Content/Characters/Moloch/moloch.xml index d6f774f67..2b5ebfe84 100644 --- a/Subsurface/Content/Characters/Moloch/moloch.xml +++ b/Subsurface/Content/Characters/Moloch/moloch.xml @@ -13,7 +13,6 @@ - @@ -59,5 +58,8 @@ - + \ No newline at end of file diff --git a/Subsurface/Content/Items/Tools/tools.png b/Subsurface/Content/Items/Tools/tools.png new file mode 100644 index 0000000000000000000000000000000000000000..c4227b464112f935d97330f2c5e097041cad96a6 GIT binary patch literal 3656 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 B?dkvk delta 150 zcmZ3)vWIbkq$(2w1H*)g8D>C=u{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstP>R_(gHnQ z978PplNH$i*q?M)amr}e^nvM=i9qK9DG#>)oopPu0b)D}T?~x7+725q2p;4*aH=qa z;q(FqCaDcf8;XA2Y~V3)ZD4R^p2)DOk>$Vv28L&QRsFu@s&N8sWAJqKb6Mw<&;$UD C5HNiJ diff --git a/Subsurface/Data/ContentPackages/Vanilla 0.2.xml b/Subsurface/Data/ContentPackages/Vanilla 0.3.xml similarity index 89% rename from Subsurface/Data/ContentPackages/Vanilla 0.2.xml rename to Subsurface/Data/ContentPackages/Vanilla 0.3.xml index ae37fe062..51c13221f 100644 --- a/Subsurface/Data/ContentPackages/Vanilla 0.2.xml +++ b/Subsurface/Data/ContentPackages/Vanilla 0.3.xml @@ -1,5 +1,5 @@  - + @@ -26,12 +26,13 @@ - + - + + diff --git a/Subsurface/Properties/AssemblyInfo.cs b/Subsurface/Properties/AssemblyInfo.cs index 258624579..1887234ce 100644 --- a/Subsurface/Properties/AssemblyInfo.cs +++ b/Subsurface/Properties/AssemblyInfo.cs @@ -31,5 +31,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.2.6.2")] -[assembly: AssemblyFileVersion("0.2.6.2")] +[assembly: AssemblyVersion("0.3.0.0")] +[assembly: AssemblyFileVersion("0.3.0.0")] diff --git a/Subsurface/Source/Characters/AI/Objectives/AIObjectiveCombat.cs b/Subsurface/Source/Characters/AI/Objectives/AIObjectiveCombat.cs index 8616ac8a7..5dd2f96c4 100644 --- a/Subsurface/Source/Characters/AI/Objectives/AIObjectiveCombat.cs +++ b/Subsurface/Source/Characters/AI/Objectives/AIObjectiveCombat.cs @@ -115,7 +115,7 @@ namespace Barotrauma if (enemyAI.SelectedAiTarget == character.AiTarget) enemyDanger *= 2.0f; } - return Math.Max(enemyDanger, 30.0f); + return Math.Max(enemyDanger, AIObjectiveManager.OrderPriority); } public override bool IsDuplicate(AIObjective otherObjective) diff --git a/Subsurface/Source/Characters/AI/Objectives/AIObjectiveManager.cs b/Subsurface/Source/Characters/AI/Objectives/AIObjectiveManager.cs index 2f32477d3..2d3f81dd7 100644 --- a/Subsurface/Source/Characters/AI/Objectives/AIObjectiveManager.cs +++ b/Subsurface/Source/Characters/AI/Objectives/AIObjectiveManager.cs @@ -8,7 +8,7 @@ namespace Barotrauma { class AIObjectiveManager { - const float OrderPriority = 50.0f; + public const float OrderPriority = 50.0f; private List objectives; diff --git a/Subsurface/Source/GUI/GUI.cs b/Subsurface/Source/GUI/GUI.cs index 15408c4cc..8625a1bb9 100644 --- a/Subsurface/Source/GUI/GUI.cs +++ b/Subsurface/Source/GUI/GUI.cs @@ -350,7 +350,6 @@ namespace Barotrauma } } - if (Character.Controlled != null && cam!=null) Character.Controlled.DrawHUD(spriteBatch, cam); if (GameMain.NetworkMember != null) GameMain.NetworkMember.Draw(spriteBatch); DrawMessages(spriteBatch, (float)deltaTime); diff --git a/Subsurface/Source/GameSession/GameModes/Tutorials/BasicTutorial.cs b/Subsurface/Source/GameSession/GameModes/Tutorials/BasicTutorial.cs index 2fd280b3d..b130274a4 100644 --- a/Subsurface/Source/GameSession/GameModes/Tutorials/BasicTutorial.cs +++ b/Subsurface/Source/GameSession/GameModes/Tutorials/BasicTutorial.cs @@ -306,13 +306,17 @@ namespace Barotrauma.Tutorials yield return new WaitForSeconds(0.1f); } while (!broken); + yield return new WaitForSeconds(0.1f); + + //fix everything except the command windows foreach (Structure w in Structure.WallList) { + if (windows.Contains(w)) continue; + for (int i = 0; i < w.SectionCount; i++) { - if (!w.SectionHasHole(i)) continue; - if (windows.Contains(w)) continue; + if (!w.SectionIsLeaking(i)) continue; w.AddDamage(i, -100000.0f); } @@ -465,7 +469,7 @@ namespace Barotrauma.Tutorials } while (broken); infoBox = CreateInfoFrame("Great! However, there's still quite a bit of water inside the sub. It should be pumped out " - + "using the pump in the room at the bottom of the submarine."); + + "using the bilge pump in the room at the bottom of the submarine."); Pump pump = Item.ItemList.Find(i => i.HasTag("tutorialpump")).GetComponent(); diff --git a/Subsurface/Source/GameSession/GameSession.cs b/Subsurface/Source/GameSession/GameSession.cs index 340aeff54..5a515a208 100644 --- a/Subsurface/Source/GameSession/GameSession.cs +++ b/Subsurface/Source/GameSession/GameSession.cs @@ -196,6 +196,7 @@ namespace Barotrauma public void Draw(SpriteBatch spriteBatch) { //guiRoot.Draw(spriteBatch); + if (gameMode != null) gameMode.Draw(spriteBatch); } diff --git a/Subsurface/Source/Items/Components/Machines/Reactor.cs b/Subsurface/Source/Items/Components/Machines/Reactor.cs index e79d5b9fd..b1ad20a8c 100644 --- a/Subsurface/Source/Items/Components/Machines/Reactor.cs +++ b/Subsurface/Source/Items/Components/Machines/Reactor.cs @@ -167,7 +167,7 @@ namespace Barotrauma.Items.Components unsentChanges = true; ShutDownTemp -= 100.0f; - return true; + return false; }; button = new GUIButton(new Rectangle(460, 70, 40,40), "+", GUI.Style, GuiFrame); @@ -176,7 +176,7 @@ namespace Barotrauma.Items.Components unsentChanges = true; ShutDownTemp += 100.0f; - return true; + return false; }; autoTempTickBox = new GUITickBox(new Rectangle(410, 170, 20, 20), "Automatic temperature control", Alignment.TopLeft, GuiFrame); @@ -188,7 +188,7 @@ namespace Barotrauma.Items.Components unsentChanges = true; FissionRate += 1.0f; - return true; + return false; }; button = new GUIButton(new Rectangle(210, 340, 40, 40), "-", GUI.Style, GuiFrame); @@ -197,7 +197,7 @@ namespace Barotrauma.Items.Components unsentChanges = true; FissionRate -= 1.0f; - return true; + return false; }; button = new GUIButton(new Rectangle(500, 290, 40, 40), "+", GUI.Style, GuiFrame); @@ -206,7 +206,7 @@ namespace Barotrauma.Items.Components unsentChanges = true; CoolingRate += 1.0f; - return true; + return false; }; button = new GUIButton(new Rectangle(500, 340, 40, 40), "-", GUI.Style, GuiFrame); @@ -215,7 +215,7 @@ namespace Barotrauma.Items.Components unsentChanges = true; CoolingRate -= 1.0f; - return true; + return false; }; } diff --git a/Subsurface/Source/Screens/GameScreen.cs b/Subsurface/Source/Screens/GameScreen.cs index 6d5967165..5883d0642 100644 --- a/Subsurface/Source/Screens/GameScreen.cs +++ b/Subsurface/Source/Screens/GameScreen.cs @@ -197,6 +197,8 @@ namespace Barotrauma } } + if (Character.Controlled != null && cam != null) Character.Controlled.DrawHUD(spriteBatch, cam); + if (GameMain.GameSession != null) GameMain.GameSession.Draw(spriteBatch); GUI.Draw((float)deltaTime, spriteBatch, cam); diff --git a/Subsurface/changelog.txt b/Subsurface/changelog.txt index 246afc7f8..94c32903a 100644 --- a/Subsurface/changelog.txt +++ b/Subsurface/changelog.txt @@ -1,3 +1,62 @@ + +--------------------------------------------------------------------------------------------------------- +v0.3 +--------------------------------------------------------------------------------------------------------- + +Multiplayer: +- a summary screen which shows some details about the previous round +- no separate traitor mode: they can be enabled for any game mode +- an option to randomize whether there is a traitor or not +- larger chatbox +- a ton of syncing bugfixes and optimization + +Items: +- fabricators, which can be used for crafting items out of raw materials or other items +- deconstructors, which break items down to their basic components/materials +- a bunch of new sprites +- there are some artifacts scattered around every level regardless of the quest, and they can be collected +and used as a source of useful raw materials for the fabricator +- added hatches (which are basically doors rotated by 90 degrees) +- characters can't get stuck inside doors anymore +- stairs are easier to climb (less tripping down!) +- navigation terminals have a ''default ballast level'' setting which determines how much water there +should be in the ballast tanks when not steering in any direction +- ladders can be climbed with a diving suit on, just very slowly +- ladder climbing animation now works properly even when holding an item +- items have a short description which can be read by hovering the mouse over the inventory slots +- if the reactor is connected to multiple junction boxes, automatic temperature control will adjust +the power output to the highest load instead of the sum of the loads +- reactor state is saved (it will stay running when between levels) +- using a stun baton while running won't make the character trip anymore + +Submarines: +- a new sub, Nehalennia +- the collider of the submarine now matches the shape of the hull +- the airlock pumps in each sub are set to pump water out instead of just turning the pump on when pressing +the button outside the airlock + +Submarine editor: +- items/structures are sorted by category in alphabetical order +- tickboxes for hiding hulls, gaps, waypoints and links between items +- a list of the most recently used items/structures +- placed wires are much easier to move around +- more accurate staircase selecting (the ''bounding box'' of the staircase won't prevent selecting items that +are behind it anymore) +- visible indicators for railgun rotation limits + +Crew: +- the crew members not controlled by the player now have an AI: they can take orders, do some basic tasks +and avoid various hazards +- fixed equipped items disappearing when loading the game +- bodies can be dragged up stairs + +Misc: +- two new monsters +- improved UI graphics +- better looking cavern walls +- major optimization to light/shadow rendering +- some new quests (which are now called ''missions'') + --------------------------------------------------------------------------------------------------------- v0.2.6.2 --------------------------------------------------------------------------------------------------------- diff --git a/Subsurface/readme.txt b/Subsurface/readme.txt index 87ad82f09..836563117 100644 --- a/Subsurface/readme.txt +++ b/Subsurface/readme.txt @@ -1,19 +1,20 @@ BAROTRAUMA www.undertowgames.com/subsurface -Copyright © Undertow Games 2015 +Copyright © Undertow Games 2016 -Controls: +Default controls: WASD - move Shift - run -E - use/activate items and devices +E - use/activate items and devices Right click - aim with equipped item Left click - use equipped item -Tab - select/deselect the chat box in multiplayer mode -F3 - open/close console +C - open the crew command menu +Tab - select/deselect the chat box in multiplayer mode +F3 - open/close console See the wiki for more detailed info and instructions: -http://subsurface.gamepedia.com +http://barotrauma.gamepedia.com ------------------------------------------------------------------------ diff --git a/Subsurface_Solution.v12.suo b/Subsurface_Solution.v12.suo index a7c6b9d3c9cbc48096e72b6bcbdac34e8393e351..3c7a7d00513bb2d2f4fbb684d97d73046cf4550c 100644 GIT binary patch delta 21725 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 delta 21000 zcmeHv30##``akF0xbK2q5D^jaib$xah-+wYK~i#Dz-`P(5yUM-L^L&pD^pgchTOVO zV`gZEWo5W=%$B)YIcDY3uW_m|L))CD9CEBt$MpX__kyBnznb|i^ZES#uYNiE`ab75 z&-0w~Ue|?0*P+CUge)nb;jsq<{DuVtv_|marAwDYtPCs$wjthtI}Dj);je`ID6k56 z9pNr;zk@pi?))uF{=%9iEPeOB1)~qM-YDf&+zX|J?D1{iNhWI>g*-o?{>CQ|IYjsX z%3pN1RXVUzcdF9P@hsv+=f=Q&3=sJ}2zP-0HNfpshDv{9?gL6%vvvr#1?B+b0^Ct* zBKy>xrM6Q<#qJVysN?UbJsEfba3R-3pbmHx_y^#wQ$sD$#3TfE1C>%ivrM)$V)69` zQE9W?eC;?yVKHxFJbeJsbQIjtKoP)!VZilACr1B^M<<&6*`vEtbf|H3qNC*|UO2E6 zxDOC<_rrYvc(5V-5ZvX!iiWVrQ_;jP!ah(|soaKLq?x5Mu|4!{seBW~m&xx372%c5 z1ky3|FbdkoT9y4u4G8!gMR!_{ zj5-?7fDXXtC@mV_h`gtOG%X+?81Y@H{adV6?yulY1U^7g5Zsqg`~v*p}h7=(FBI0DY`{3>e zZUI^WNysONU9M7sw{E!{a`E!-uoT)KkZjf_OJ`v-k0x7RCcSeAI*{}ZHhW}73lj@^iU z#G7lRAL0Kg`Vr~Z($99x%g>=78wP(v`VkW^i1&Yye#F@RS^BvNH1W&mhf24~vF_@` zh;7N?d)l~N@5F42sW{5k_faatN`3)hnU@I*6c_xQ(R*930q@9_Yoa$scV?1%gE!Kh z9I96kV=&_00(wjC z&CZC<9(Ydydx2u$exL#aKaVPY3#KWh;OO29D$=xS4F)kj7F99C{ zzd|M~hk#n(LEs=T9vF-?cSUM;@M#3Z>-Y>2`S2g!_QT6^ugd<>Ji4276Qhwmm1wcr zsHD3zLS`4G%j-|=1~QxDJ|}hB7Jd4d-Z)B8+5g5U#e%VW0y&e}1UtMLxXebh#n=zs0q*msI`f!#c9FTGFT7_?#TFu72p;#P zEgjs^KU^foekD#3O|#y&HeFs`JDxc#chv<{{u&6BQd>%GscM8C!TU~QZ*}n4B!|0d8d66iwRRziE@8+r{1a&RJ}HT6=1Vbr;y!6z$LblVv0gGf z^>S#$B8>4t;0QYAM1R`>X~027-72KcF^PzO1n7gfrEm$z1SX-(M{qBSxJ4CGWU?5> z%Lx4m7>v{};NA)MbGR#j8K~iDxO0Iv@ZSm4z@LUZOCgq2NU>^$3W=B4DyfaK0?Fi9 zg#piFl(tGri~a~P8-P$?Cg1>WLxHhy^MIQrs$L~U-SQ3mCBP6=d^g-)KyP3KFcjE< zMi&92kS;ns8gVBeOjw9pNU1MKV`=kR-A)m;Mkv4Mf^?ticFn@uNMM;v-HjQ&$Gu=y z7uwK+WmhY*QhQeUjI~~f!a^Dn6$?G06et5+?!}!t@@PXoW?m-Y7^d_`+f7#3OexdW z6Hy6Gqt!nMB6pul>cpeNcF zU@H=Kz`X|${T_?7fxuG;|3EJ!ORdU2fwvL}0)CC8D7foTtR?(s;dcY)5mw;#L)>w^ z-tQ0&gTEDA3+|_Ihr&I9JXJsj{7d0Z1r7mT;3zN~;}PBX0)F8RXLzwAkvRhqU4Y*M zD^ZzPbcf;3M_M!>GBddIfHx8UDLT;;?qq~V1A~COfMlQt%10n=Al&9~69GY+tKbet zdO9HL6VDVW89hg@Tu5BdBtfuqkwFx6HiBcKmlZsc|ZY_;%qveW@b=bnmL!vBX&@7lDD1Khwh$jKIo~C zejdLQb9F7hE5v;MxAD7g<&2VvA z#x$p_*>X!>v{GKh=)K4ENZz(k{OiSA^?FSnMoV@`Dct*->|~W= zKuj(WQ*DSkj@>5S)~H#YqwhhXrcV($;$6p z^&_(3Im-sh>~9r(G-S=T37=UZX{CK`pPWULvRNoE zJ0>q-)OopNa&xEr9rKKr=1ZF`zHq#>lvO_l>0yd2d6pVp`^jtOh%!e=3FQ1ey6zk& zMNq|uwh(f>VRRWyQjbij4{d%% zH^{kG{>WaP)n<77KfbaZ*_yiO&!hP)S~s7Ck@HE}OJ0}KlWNY}!rXr?viO)f`RzcT zJRWnN#VCD2J(u@VUUHs68iNSdoHzeU{+0!aX)ec`I|kya6hzgZ^;or}UDvgU6KRdl zlL)VCh}+O4?P>U*7v1BkHAw=v{DM2Hq4&H}!a{A-b`F{RqDeyaOC; zl6DCG!@%dF*oc-Vnp&aY4)cEPI!20Ui%d* zp9s5iN8IruS`wkO;)}d;HRI8ea*TQQO1!KWZo`z*ZpUhc#~8}dAWwH8@^)h}jIw$v z9UAmUmT8*@ZD4*=jUXr;qODgfBRoa^Ws*~@cjL1ol!saME3#A@rGQ&WbM++qg##o1 zSecRZ;2&TdFJ5I&h~`@#>zFGSra- z1F|0eh+pos!h^sdFFy(NZGqXE zI=*B@&>NSGP|DhDMbfO7EW1#8{Le5--C=>-y<`PjLe9ln@I7>F9rBjGXocJA2SQiE zL+nK>l!FaWp(NCr}XG(e<_C%wTxxJjI-<74!z8H7EX8)_FV7JSN37*^HvrsTRL;jpAg@&$anoM`v$oGFx@-lLeK!p9gxMP@L7%6vdM!$52c&DMk@P zzRby}q?s_Dlw8r=`I%-?JmZc+rB3x^Lkx1Pm*SL@O$+go_0s4o3&?s1dz7#PiH8o~ zXLRS?=P8HH+5>V43nY}R{UU(wIVj&pSo!UoAq}7ltFZ}={!GoLV}q?|wvcu|#)k6|%ako@bu6};N=5T*R!XE<2F=^7T$BdD zeNib@`-2>9bgqp&m}S$FN+X54B4ro*_f|kgV2-Y%fXqVl|D*yUM0%lsT)=yT0@C+q zDIh|zxLN_Bg(*@*!Ou}Pgn}Y0_EX^gE4l_9zlpWxt=B4FifspyVu8H=I>s~AXFTKQ z)+y~Y$~kTHA+M}io^6`Oa}*^S768b4 z(HQ+B`Gy}_W+brc8pTGT`;1)spj};FZhv^ddv9hsC#nhmxLa%oVf=vy*3P z-xH4tzeX(+q?>5KYQ>@wrYv7o6&JLof#-=l!)VfKrAy1<$T|YZ1hRm;kR@)_5?=j* zV*8h*yc2@6R4M5;VS4T>ct+zP2`{Nro(J!FN7=wAy-rC`f538%b}xwT|vfGN{QAN{P=t*Ej*%}SHA$$?M4g!sQk*-6SWD#yIf=Yd$8Y(MT~fwPDV0Dbp6SQ z2^J*zb0=iWk}|fXsvoO8shnY^iS2vZaZD7H%u8E3@|ZQSR90?{-WEOl7-U+Z5${r} z8D-Qd@&2*#bAM5~GxjTL|BccnawG~06SX+x90Q1+{~8dlk8;i__x_X#D7xd7NfM^V zF{0Fe>CqDEySQpq8!9T5N8@nv%~Cm~>EUGUMTJS6omD<%;Wsi>@eAjauLHwH*UsV9 zJO`8lWq^qD8CMnI<0nZFqkn8*5H~U~ z`TyIrG2$Dm& z{eW6z>L0v(-#fR*A7-P3xuz!-mcn9pajl_I{JW}y3fij8Xh5B6Xt%y`y!d24-sdB= zk4oAt+6?WDB?B7fSP=d3~hTjIqZ!o3EwXDR;6yo*ZrUA-w28tyz11W|L;MC&!C6JGU!=^{}`v)S}55 zhl1&afv*Hp&TKuFW~E7X-e+aten!c=br*M42SVws2~;Q{)mFu;Y6Ei^9onFECdbEm zEYCa=Si`8OwXGNLbu925RQicAp6n;}7+!ihu)J+;i0zp`+7M$#QPE^uEG0PfFnTB0 zNZ{KeY(p94*bQ_i%2wQpPTa&Id1Pm`#?OlBP!~0_MH#5S2}xaYDFOV_+uBUV{!BeW z)V_SfyIMF4P5_bh01|1&P>YNdzC{hOi{ZMO&`jSK&@&kM%WS%E{I%gJ6g<<)*%WG@UT2_RQn6`IIlZTpYtzx&4W-ZqKvIie-s zLQ~S#H)wHGw7^W{M{l=P%j7(-hS7wDfttI}70Ty*uO4Dl*~RF~U%J!w79(kq z-jA1_Rrj^sSUwRooe0#zh2cJg7lmm@)Q#nn5V`&{HH0ccv=FKf(jqBpIZLF>d{v=S zXOQ4}UQ6UVBee%KdZf2jNf(Ex;bc$KPVl`QwGA@6-OmS|Z-ckQbU}FxA&tg&)xu~^ z7i}b;(Mg-k*r02;WngwdZou?_LOQohO`!uFv}v^S_v$99?}PEx4^ty4bFAi|A`ke~ zfu5R;;C`c!)D`-WwzW_H1avMn7lV@ z7Js0dR?c|&I$Nnk&Uvt=hHSDG1=8u~)Dt)8`i34_MnivD24AwpR%TG$Y7>^d*KBn` z^uR77guk)V2w@a+&~}vSy6B1Ic+`yIneW@cf^vH6%_yPPP)L!@UQ~C#7URCSyfYoz zVPHvpV4K3IevgsNlaJc=sB|bsMeoJYeYdY|Ffc6n-i*C!Zg^>;W@l7gbp6@jRxfR` z-h^FOk+exmqD&oc;!c-jr<32;?NXsS154LW+qM2TVZodhZd2+iH#d}5Q;IR8c^c%HjEpNu44n5&1%w5Js0R9~k?@U&!Yq{Nf6G#9(F zi_rLI)MNb6KrJJJHmuQOd?xAb`TBv@v}dC_kBU~Rb~^Q_I)uKMpe_1|{V1K6m+7Sj zW#Zt0GT$%_s$#azRADz2dY{{RL95Uc`7@RJM;Z-J)ndf&EN&tYvj^jm#v5MMuA zdw|i}soMOFsN#ey|Ck)+K{v0AhW@uZfW`zo! z?RDH9<>fEvr3y`3Z%g0_+x3x*5;vZB5~u_v2OtRm_98bcJ5d80}#CCAP7A z2Wm@OZiMr2Nk7S`oa?3Ts(H=G{wDUQs9pMGxmMHn$n?lQGwsTn2dUc! zTG<3^Su`)*qbo8=r!e;i|0vt}^Og=eTiVw)q3PV*i%xj#`WdwTrf9uf>qnzCeHuA7 zfGDb#fcxgO(AR@#R-5ru@dLON%-9wUiqz9Lmj50_ieEP(>Cl6kgYS*h-_SRfzokp+ z9PrsibUe(K#p`1AB%OM-Gt$VhR*&NK3A#O)f+DcX+tc-WsEP~v(7`2292O6(6O%La zH8x7rVSR=X{XN`$dPvLUnOS-by7(^I3+ZKxr)J-%q1-u2_hJ#{8NFy?H8Xf}w!TO8 zY%?JVEYlAt{N985MMfvS3oH?LI%4=^59`xlh${>Poo)r4Qf3gOh|W9pBfR{un7qt$ zft@LVp}mEQv6Rt@;gZ3P2;+N3b+sl4J=OrBSF8fZ?6$*9pbZ~lp;v83gPRhKu?cDkU_6z?7*UikFK_^T{gNI^Rhx9oju*2- zu0?^(2v);*p7g%HSE1ZXw(;~@FEfE#4)a(fm9H}+Dg70FQEjs6WzAm1fgAn{%e5I0 zN(sl+P`OQmN6W~^^}cLebkT>oGw+GuQ$EyJGurxhGf8heB_2!b&YDhENLjkpk`48R zf~G^1$Pbt)4vqtS8OFi@gnZ*j!e+z9`Es?Mii75v$T!D_IoJO@mJP-L1w@4o8I|Hr$lP^;arIYYFvICsHd{lMToWlxy{;oHAm5uQ; zG3ApR-a^Bq%)w+7BTBplF)1!Oe%?&|MKzVsq;J(0%uj;96Hah2+j1~Akjw1lngY9z)=XvrG2B&Rx>&7ZVat*}RAcB|x*6%WYC4Ja zvdXCCt>%kt6RkaGMpM;2*k5zbnqjICtf%AUv;md$t{a+f;yJ1gyD z{k2#sdKBBH_dmcghigVW6grx8)Lcxj{RtNsJT~KNjnamg{kV6SxexnJa|3&>_YoVm ztw^Ilr#Hr;>ou9?P=0cR2^pchqftr~M;Lg_3hZMsamEClD&NJvG<=vD%e`5sh01#% z)821&?3ulck^065MwyUWx#pzhqiiw!i(8C{7;W_hQl^Agjbw7(0U?>qJ!&@NMZedMHFK1pmYC{vP-!j}%2aB8huMMFufX2Z__Mkq^bGE-N=z+jH8bpHlWWwWJ~glwpkR_Sr6so zA2H%^S~cD5+|X>;HC-ww&M%ytUrbA4tgh@uf7{)so540TH?v?;Zoa?IJH)ZxWXkMf z*{JHEq_HW~qYB5N8x|RH(xN9Xm(%FfemR6jw8G)$AH%JJPz=7XWKQ;^;*#l8Cgqj* zg8qS4`w9hLbuO4YYqEbDC~J~g%luggb783^C729fN&4+MsTupJ88(Tgy}2?L};! z;b_`_Uu8ZO+*e%}?{v5WMP*Iid+fEZ`TFnO_s$|C(k>IpC?AmwYoLj|Ib(gJqRgqL z8Fy{2>}w+$iur~cEPCaCBE9qA=|(wI%tMz)6HV{mZ-j-75zNQ;SYC0dFC6~#pQ4nI zMa`#7$}OIrH>qS+@tkh+XBMPU);bGTget2Y-M`ofxoV@Z#v(?I7-| z>1McoIoeMMH#N2t(8(*Bi55-$1T7l2p`dwDXHVbTunz-E@I}q>JN|0RV1)HQ(cY)v zj}z7U8HL$o#kyDR3#U4=hLZC+a6zNWn9ocfgK4siL+rl#NBR~vm_y#2{=TNeuWh<9 zhrbK4jXelx?-jEibEOM6;8nrRM+x>d%Fn(U+ljZD#`^1?dAaToueiMXn5es2@RUwe z5v9-YT!3;JvEG;_)2chnwCgYh-?F`YNgxe;0`2wkjVoA;>#8JQqwN-5CeNWx~uQmow4PkP4w>y+L*7;fsm93 z@n{XD#!4w0%b&((cI_ns`-iVD9`Hu{HUmCrn=FPcY>HPNs(Ia($hSXhoHQup1KR`q$PS}3?t7H#VV+{_{E1%} zu#iXMhGNs(1`s?HgL1m-+v&9otDIbq8(xY&9oUaDXXy^U{41kGr$b*sZ!FBjPLcCh z-Ns|T7m80#tR6u*_u=|r{CNZBsN9>4Ze*X2$j2Txc2@t&!i~io7Qu&KFt#!(;2O4G z7c4@1?+FYiS0ohG%;hk$IiJ8?#8Po*BF%5yy?q6nO47}SllI)JJ9&v@E{6@nt4-lk z4D$fg@h8jzD)`KJguLZ)Dpj1ueYpx1N^HAZa2x0$F88kf++b`ivH3=sJEU_O#jCgk zH1<1~O7{Fkub`TFPTA3axvRIUo^)@@dP>cY-`atymUI z!MRo!8eVES2nM?$l<=_8nSU|VieR)p*VfJRrXJ1jU2WE=wCC5>{A)8>Bdjy9qP+?M zBcsav8dKO!Pa|(jEaIZkRt4MGYduUX#dqME)2S>AwjQoEBzwkM8$j#DxNBAO6||?# z4@#j>Iyw3+wpdQ7g>rY=TM6!)`H&Ufawyb=Nl+LveHy|%Xdklz=F+A6tyJ8uNu6Ll zM7jI*&U`|(dBmg>d!#U)G|u`8w;7saZ#dKkCYQ&ynrmd*dRmR6c8M~iyzv%J5>C8n zOcS5iMDm@r<{}ecf>=3B7nkIP{ML)FxYK%;>ED4JK%@)!j#4ICpHoO0bm^Qu=KHAs z4vb(xu2sm7|IKVgd+rI0hG}jK52sfQp-3e*XOFgo!*0i#P6)`mxm$8eWCM*aTjad*g zG7I5+xFv{-3m5^(bOyqC2w$7(K+dc4#|Jo2{z?f4u6PTrZY~|4WwoGVk62->xtQX0 z*LG3NkmzF6zfl)mi>%4~qZxvJ6YFeoJo~8mflMKPGc!H+Tchbzb0dboQea(RdVBO- zjG#T=U1;@`Y2-m0UQ?a9I)palTiMsVb6ewGKC&g7{a`3r!h)`2Cu!YaCu!lgllZ=Q zZnULbzA!(7O20R=p+hD>p@J3Hr*AGE2=l>Z1(V)OH-}T%-_4eCL_?L#ub%&tW)@o^ zmJIYwzwyG8Zh9?HN27h^-`@P9U$&`G@>z4x|9KM&tXAEdes%AscQE?aX(qEdysQL7PTtj4XC75-9r2qwnqS96)1#@?Ac<+p*8DXFaL%*@b#Ej^SEkVPkyLv6Wy>N~p~|YZMJCvFwyN!KxJO zY$4^&wJJURET>qdK7POgyh0xBeXY5K-kF2!h4UIq+wZnMyCN_OgUi^!lIipEr{DP>KvgTVEmphd%wgEn2f#s3dFls;E>?>>`q4-d>sUaelQOzW4 zIS0opQESJU7p3bNCe{TTT?m3tto`jC`NOjJ#J&F8d)F^me-@_n_8stL>GLaCsONFR zx$(>r%VzEf^3OqFfKMjx{bR|NzKyVwv^l;@x-=ons<>tk=NFb)l1xL+8S}_{8;k_D z5mLXv262QYJ!bT!Z``e(KVL!nqpvSm1h6?{A!P2$eYC{iJS<(DVm8CIy zWD7)v-|d9VR@4`tt&DmKQqgPAT778Idh0L#gioG=pqaT2LXUkj#HC)Fa4kZV*tl{7 zgx(LHwieKFZbegfjw~0pSz&a(20_QumPQ3nTRN3jTf51-%^E~y*5~OhRy!ONue()gN8O*b!YOi#)y?09ob^_7Q8JER ztg(K@Z`x}8meC6@;GVN@rVc%8wenTW2W__|OSJOo#u>M!H6ZH=ff8wZk3&w>B z?@KS#C@ts@yR0w7ls3%2uj^a@< zy)3p0mRc1YRE#=>;3wRP{(Ad7WUXOAU&7uZ5`^2zpJ1#I75a3S%xA@!-d|x@&g^K5 z4N7XLMYscfnJJ=75RP4Q^c;-Mw;oMTMEc03xP`3T2hb1p%%;`nJQrb)OWeYn`9 z>6ZCe1n7DNTS>cD$aAUGj@wfePOF{{Pcv~F8x{gu7lj3IY>GL60&~rLzZuq;W_I~W zt3k>HGs15|&4)EX7!6waSzO+wT8n5b(aMzUWxAh_?Jja!}P^E7^XndBIK$e*O>bjG_&-m$ z)?l#Y4s$I1b*T|dFP0c>$XNml_SPomXN=oyo>x5S?t=W{>;{*r78&t&Veq+p;cmLq zx0j9b*$rl&Vo~BgOD@eWFvG87UJ|BvC9uIJ758KF!SVLiz@~Owk^d?~udp8rOKYQ{ z`o@OdJz^|lJ+~`fnjH=$yr#s65Ti_@zfLx%M2fGy{g34pUv-O1;^|vidQw7?-vU9i z?=~i0CV}fuMTE zc))O{nC*o9!YO_{qKJC9tXrvOzpb0^XLZE-DMGPfz9oUP*xfGdg7{epdvG_{x5aU; zSOT-4V8+qmN33>jh5k9PK};=%>wxGggw{@|Db}ZV!h~|A5%D3p=#y~!{oF=c-JlU- zWR-b7v?YjdFuTxG^Ksz{pJ~Q>7Qslg#9>VoYi*MM^T{g~nv|*LZP&MX*IZ4Wy?}OW8ED|K;zz()~Oj=qeuIJDq8EwYcT8 z&|1GpsJhPb{N>i)MDaPc|LN=%GMXSB0nm^C>4%?I>jYhCSmU>P|B0CD9BhvEQ^^R) z#l6e05N=_pQ37N@T-;aTYCs?$Ob0q3;;#$N>Xp}F2mass@bE{U^3d#QI5UPM6;WF$ z%#^TDyXf1Oa5OV(y%j`fo`vKJQSzUV8grWnz>n9U8VHe}`z1k$U70^EE&fR0^NZO{ zWKZ^-bqh7$Wm!K3ul>?jJ-!o z@|4>s=Q({DJ@Q+lfWu7hlIYM`Bb!z}VcNN{hr>#K40c_gwcC?seI@MHPKXjLUb%}3 Q&cI-PVvYIy6{Ge41C)8MkN^Mx