From e26eda3ac20bbc3e1cb46f4d28de0966e708842d Mon Sep 17 00:00:00 2001 From: esteldunedain Date: Mon, 4 Jul 2016 19:04:58 -0300 Subject: [PATCH] - Optimize getDetectedObject - Cache detected mines for 0.15 s - Call detectorLoop every 0.05 s instead of 0.01s - Compile a dictionary of detectable classnames from config at start - Switch to playSound3d for global effect - Remove dummy - Change config entries to support playSound3d - Cache getDetectorConfig for better interaction menu performance - Change sound to mono wss - Close #4049 --- addons/minedetector/ACE_detector.hpp | 6 +-- addons/minedetector/CfgSounds.hpp | 22 --------- addons/minedetector/CfgVehicles.hpp | 4 -- addons/minedetector/XEH_clientInit.sqf | 33 +++++++------ addons/minedetector/XEH_preInit.sqf | 3 -- addons/minedetector/config.cpp | 1 - .../functions/fnc_detectorLoop.sqf | 44 ++++++++++-------- .../functions/fnc_getDetectedObject.sqf | 35 +++++--------- .../functions/fnc_getDetectorConfig.sqf | 27 ++++++----- .../functions/fnc_playDetectorSound.sqf | 22 +++------ addons/minedetector/script_component.hpp | 2 + addons/minedetector/sounds/metal_detector.wss | Bin 0 -> 56474 bytes 12 files changed, 81 insertions(+), 118 deletions(-) delete mode 100644 addons/minedetector/CfgSounds.hpp create mode 100644 addons/minedetector/sounds/metal_detector.wss diff --git a/addons/minedetector/ACE_detector.hpp b/addons/minedetector/ACE_detector.hpp index b6effc2436..f575ab9cd7 100644 --- a/addons/minedetector/ACE_detector.hpp +++ b/addons/minedetector/ACE_detector.hpp @@ -1,10 +1,10 @@ class ACE_detector { - class detectableObjects { - }; class detectors { class ACE_VMM3 { radius = 2.5; - sounds[] = {"ace_detector_1", "ace_detector_2", "ace_detector_3", "ace_detector_4"}; + name = "ace_detector_1"; + sound = QUOTE(PATHTO_R(sounds\metal_detector.wss)); + pitchs[] = {1, 0.9, 0.8, 0.7}; }; class ACE_VMH3: ACE_VMM3 { }; diff --git a/addons/minedetector/CfgSounds.hpp b/addons/minedetector/CfgSounds.hpp deleted file mode 100644 index 544bf94379..0000000000 --- a/addons/minedetector/CfgSounds.hpp +++ /dev/null @@ -1,22 +0,0 @@ -class CfgSounds { - class ace_detector_1 { - name = "ace_detector_1"; - sound[] = {QUOTE(PATHTOF(sounds\metal_detector.wav)), "db+1", 1}; - titles[] = {}; - }; - class ace_detector_2 { - name = "ace_detector_2"; - sound[] = {QUOTE(PATHTOF(sounds\metal_detector.wav)), "db+1", 0.9}; - titles[] = {}; - }; - class ace_detector_3 { - name = "ace_detector_3"; - sound[] = {QUOTE(PATHTOF(sounds\metal_detector.wav)), "db+1", 0.8}; - titles[] = {}; - }; - class ace_detector_4 { - name = "ace_detector_4"; - sound[] = {QUOTE(PATHTOF(sounds\metal_detector.wav)), "db+1", 0.7}; - titles[] = {}; - }; -}; diff --git a/addons/minedetector/CfgVehicles.hpp b/addons/minedetector/CfgVehicles.hpp index c486a049e3..1f770df675 100644 --- a/addons/minedetector/CfgVehicles.hpp +++ b/addons/minedetector/CfgVehicles.hpp @@ -15,8 +15,6 @@ class CfgVehicles { displayName = CSTRING(ActivateDetector); condition = QUOTE(call FUNC(canActivateDetector)); statement = QUOTE(call FUNC(activateDetector)); - showDisabled = 0; - priority = 0.1; icon = QPATHTOF(ui\icon_mineDetectorOn.paa); exceptions[] = {}; }; @@ -24,8 +22,6 @@ class CfgVehicles { displayName = CSTRING(DeactivateDetector); condition = QUOTE(call FUNC(canDeactivateDetector)); statement = QUOTE(call FUNC(deactivateDetector)); - showDisabled = 0; - priority = 0.1; icon = QPATHTOF(ui\icon_mineDetectorOff.paa); exceptions[] = {}; }; diff --git a/addons/minedetector/XEH_clientInit.sqf b/addons/minedetector/XEH_clientInit.sqf index 83aca7467a..ca660ad51d 100644 --- a/addons/minedetector/XEH_clientInit.sqf +++ b/addons/minedetector/XEH_clientInit.sqf @@ -1,27 +1,30 @@ #include "script_component.hpp" +// Create a dictionary to store detector configs +GVAR(detectorConfigs) = call CBA_fnc_createNamespace; + +// Create a dictionary of detectable classnames +GVAR(detectableClasses) = call CBA_fnc_createNamespace; +{ + if ((getNumber (_x >> QGVAR(detectable))) == 1) then { + GVAR(detectableClasses) setVariable [configName _x, true]; + }; +} forEach (configProperties [configFile >> "CfgVehicles", "isClass _x", true]); +{ + if ((getNumber (_x >> QGVAR(detectable))) == 1) then { + GVAR(detectableClasses) setVariable [configName _x, true]; + }; +} forEach (configProperties [configFile >> "CfgAmmo", "isClass _x", true]); + [QGVAR(detectorEnabled), { params ["_unit", "_type"]; private _config = [_type] call FUNC(getDetectorConfig); - private _helperObject = "ACE_LogicDummy" createVehicleLocal (getPos _unit); - _unit setVariable [QGVAR(helperLogic), _helperObject]; - - [FUNC(detectorLoop), 0.01, [_unit, _type, _config, CBA_missionTime, _helperObject]] call CBA_fnc_addPerFrameHandler; + [FUNC(detectorLoop), 0.05, [_unit, _type, _config, CBA_missionTime - 0.25]] call CBA_fnc_addPerFrameHandler; }] call CBA_fnc_addEventHandler; -[QGVAR(detectorDisabled), { - params ["_unit", "_type"]; - private _helperObject = _unit getVariable [QGVAR(helperLogic), objNull]; - if !(isNull _helperObject) then { - deleteVehicle _helperObject; - }; -}] call CBA_fnc_addEventHandler; - - - -//Shows detector and mine posistions in 3d when debug is on +// Shows detector and mine posistions in 3d when debug is on #ifdef DEBUG_MODE_FULL GVAR(debugDetector) = []; addMissionEventHandler ["Draw3D", { diff --git a/addons/minedetector/XEH_preInit.sqf b/addons/minedetector/XEH_preInit.sqf index 9529c201c5..a7feade1c3 100644 --- a/addons/minedetector/XEH_preInit.sqf +++ b/addons/minedetector/XEH_preInit.sqf @@ -4,7 +4,4 @@ ADDON = false; #include "XEH_PREP.hpp" -// TODO load from config instead of hardcoded in sqf -GVAR(ALL_DETECTABLE_TYPES) = ["ACE_Explosive_Object", "ACE_Explosive_Helper", "ACE_Explosives_Place", "ModuleMine_F", "TimeBombCore", "MineBase", "DirectionalBombBase", "BoundingMineBase", "PipeBombBase"]; - ADDON = true; diff --git a/addons/minedetector/config.cpp b/addons/minedetector/config.cpp index 9926d08f8c..9b3fbf2581 100644 --- a/addons/minedetector/config.cpp +++ b/addons/minedetector/config.cpp @@ -18,5 +18,4 @@ class CfgPatches { #include "CfgWeapons.hpp" #include "CfgAmmo.hpp" #include "CfgVehicles.hpp" -#include "CfgSounds.hpp" #include "ACE_detector.hpp" diff --git a/addons/minedetector/functions/fnc_detectorLoop.sqf b/addons/minedetector/functions/fnc_detectorLoop.sqf index 4a708147e2..4217a0b4de 100644 --- a/addons/minedetector/functions/fnc_detectorLoop.sqf +++ b/addons/minedetector/functions/fnc_detectorLoop.sqf @@ -32,24 +32,28 @@ if !([_unit, _type] call FUNC(isDetectorEnabled)) exitWith { [_idPFH] call CBA_fnc_removePerFrameHandler; }; -if (ACE_player == _unit && {currentWeapon _unit == _type}) then { - private _detected = [_unit, _detectorConfig] call FUNC(getDetectedObject); - _detected params ["_hasDetected", "_object", "_distance"]; - private _distanceTiming = switch (true) do { - case (_distance >= 2): {1}; - case (_distance >= 1.25): {0.85}; - case (_distance >= 0.75): {0.7}; - default {0.5}; - }; - if (_hasDetected && {(CBA_missionTime - _lastPlayed > _distanceTiming)}) then { - _args set [3, CBA_missionTime]; - _detectorConfig params ["_type", "_radius", "_detectableTypes", "_sounds"]; - private _sound = switch (true) do { - case (_distance >= 2): {_sounds select 3}; - case (_distance >= 1.25): {_sounds select 2}; - case (_distance >= 0.5): {_sounds select 1}; - default {_sounds select 0}; - }; - [_unit, _sound, true] call FUNC(playDetectorSound); - }; +if (ACE_player != _unit || {currentWeapon _unit != _type}) exitWith {}; + +private _detected = [[_unit, _detectorConfig], FUNC(getDetectedObject), _unit, QGVAR(detectedObjects), 0.15] call EFUNC(common,cachedCall); +_detected params ["_hasDetected", "", "_distance"]; + +if (!_hasDetected) exitWith {}; + +private _distanceTiming = switch (true) do { + case (_distance >= 2): {1}; + case (_distance >= 1.25): {0.85}; + case (_distance >= 0.75): {0.7}; + default {0.5}; }; + +if (CBA_missionTime - _lastPlayed < _distanceTiming) exitWith {}; + +_args set [3, CBA_missionTime]; +_detectorConfig params ["", "", "_sound", "_pitchs"]; +private _pitch = switch (true) do { + case (_distance >= 2): {_pitchs select 3}; + case (_distance >= 1.25): {_pitchs select 2}; + case (_distance >= 0.5): {_pitchs select 1}; + default {_pitchs select 0}; +}; +[_unit, _sound, _pitch] call FUNC(playDetectorSound); diff --git a/addons/minedetector/functions/fnc_getDetectedObject.sqf b/addons/minedetector/functions/fnc_getDetectedObject.sqf index 79c20964ca..6e6081ed58 100644 --- a/addons/minedetector/functions/fnc_getDetectedObject.sqf +++ b/addons/minedetector/functions/fnc_getDetectedObject.sqf @@ -1,6 +1,6 @@ /* * Author: Glowbal - * Enables the mine detector + * Get the distance to the nearest detectable object * * Arguments: * 0: Unit @@ -15,16 +15,13 @@ * Public: No */ -#define __DR 1.3 - #include "script_component.hpp" params ["_unit", "_detectorConfig"]; -_detectorConfig params ["_type", "_radius", "_detectableTypes", "_sounds"]; +_detectorConfig params ["", "_radius"]; private _worldPosition = _unit modelToWorld (_unit selectionPosition "granat"); private _direction = _unit weaponDirection "Put"; - private _detectorPointAGL = _worldPosition vectorAdd (_direction vectorMultiply __DR); private _nearestObjects = nearestObjects [_detectorPointAGL, [], _radius]; @@ -38,27 +35,19 @@ private _mine = objNull; private _distance = -1; { - private _object = _x; + private _objectType = typeOf _x; - if ({_object isKindOf _x} count _detectableTypes > 0) then { - //Try all unprepared mines in range and use first detectable one: - if ((getNumber (configFile >> "CfgVehicles" >> (typeOf _x) >> QGVAR(detectable))) == 1) exitWith { - _isDetectable = true; - _mine = _x; - _distance = _detectorPointAGL distance _x; - }; - //Try all prepared mines in range and use first detectable one: - if ((getNumber (configFile >> "CfgAmmo" >> (typeOf _x) >> QGVAR(detectable))) == 1) exitWith { - _isDetectable = true; - _mine = _x; - _distance = _detectorPointAGL distance _x; - }; + _isDetectable = GVAR(detectableClasses) getVariable _objectType; + if (isNil "_isDetectable") then { + _isDetectable = false; }; - if (!isNull _mine) exitWith {}; - + // If a nun-null object was detected exit the search + if (_isDetectable && {!isNull _x}) exitWith { + _distance = _detectorPointAGL distance _x; + _mine = _x; + TRACE_3("return", _isDetectable, _mine, _distance); + }; } forEach _nearestObjects; -TRACE_3("return",_isDetectable,_mine,_distance); - [_isDetectable, _mine, _distance]; diff --git a/addons/minedetector/functions/fnc_getDetectorConfig.sqf b/addons/minedetector/functions/fnc_getDetectorConfig.sqf index 87b9d0a88a..17b609cd77 100644 --- a/addons/minedetector/functions/fnc_getDetectorConfig.sqf +++ b/addons/minedetector/functions/fnc_getDetectorConfig.sqf @@ -1,6 +1,6 @@ /* * Author: Glowbal - * Get the mine detector configuration from the config file + * Get the mine detector configuration from the cache or config file * * Arguments: * 0: Detector class name @@ -18,14 +18,19 @@ params ["_detectorType"]; -private _config = (configFile >> "ACE_detector" >> "detectors" >> _detectorType); -if (isClass _config) then { - [ - _detectorType, - getNumber (_config >> "radius"), - GVAR(ALL_DETECTABLE_TYPES), // TODO read from config and use this as a back up value instead - getArray (_config >> "sounds") - ]; -} else { - []; +private _detectorConfig = GVAR(detectorConfigs) getVariable _detectorType; +if (isNil "_detectorConfig") then { + private _cfgEntry = (configFile >> "ACE_detector" >> "detectors" >> _detectorType); + if (isClass _cfgEntry) then { + _detectorConfig = [ + _detectorType, + getNumber (_cfgEntry >> "radius"), + getText (_cfgEntry >> "sound"), + getArray (_cfgEntry >> "pitchs") + ]; + } else { + _detectorConfig = []; + }; + GVAR(detectorConfigs) setVariable [_detectorType, _detectorConfig]; }; +_detectorConfig diff --git a/addons/minedetector/functions/fnc_playDetectorSound.sqf b/addons/minedetector/functions/fnc_playDetectorSound.sqf index 4da6b5f45c..1fff29531c 100644 --- a/addons/minedetector/functions/fnc_playDetectorSound.sqf +++ b/addons/minedetector/functions/fnc_playDetectorSound.sqf @@ -4,20 +4,21 @@ * * Arguments: * 0: Unit - * 1: Sound class name + * 1: Sound file name + * 2: Sound pitch * * Return Value: * None * * Example: - * [player, "ace_buzz_1"] call ace_minedetector_fnc_playDetectorSound + * [player, "ace_buzz_1", 1] call ace_minedetector_fnc_playDetectorSound * * Public: No */ #include "script_component.hpp" -params ["_unit", "_detectorSound"]; +params ["_unit", "_sound", "_pitch"]; if (isNull _unit) exitWith { ACE_LOGERROR_1("unit does not exist [%1]",_unit); @@ -26,17 +27,6 @@ if (!alive _unit) exitWith { ACE_LOGERROR_1("unit is not alive [%1]",_unit); }; -private _helperObject = _unit getVariable [QGVAR(helperLogic), objNull]; -if (!isNull _helperObject) then { - deleteVehicle _helperObject; -}; -_helperObject = "ACE_LogicDummy" createVehicleLocal (getPos _unit); +private _posASL = AGLtoASL (_unit modelToWorld (_unit selectionPosition "granat")); -if !(isNull _helperObject) then { - _helperObject attachTo [_unit,[0,0,-3],""]; - _unit setVariable [QGVAR(helperLogic), _helperObject]; - - [_helperObject, _unit] say3D _detectorSound; -} else { - ACE_LOGERROR_1("helper does not exist [%1]",_helperObject); -}; +playSound3D [_sound, objNull, false, _posASL, 5, _pitch, 15]; diff --git a/addons/minedetector/script_component.hpp b/addons/minedetector/script_component.hpp index 935825a31c..f6a1d05dfc 100644 --- a/addons/minedetector/script_component.hpp +++ b/addons/minedetector/script_component.hpp @@ -16,3 +16,5 @@ #endif #include "\z\ace\addons\main\script_macros.hpp" + +#define __DR 1.3 diff --git a/addons/minedetector/sounds/metal_detector.wss b/addons/minedetector/sounds/metal_detector.wss new file mode 100644 index 0000000000000000000000000000000000000000..9f62569c10ce01da38b823fdc8a6fdcb475e3e83 GIT binary patch literal 56474 zcmZs@1)P+}(mmYr$SzKBcMIk;O_43PH@@XM_Rr!J9qx% z-uGjEvpYNUNOyJBsZ*zVXk5R3K7xM~k4hT|nb3q1MiK$&1ZMtkD}28O z`_J71qYd6Sbj6^xf};$MDL9&-9Ro)NUP)L-#Eds|{eS-^Sh0U!RpDq~oBuiEe?JYa zP{?Y5RSDTYbicqnf_Dyl8d`h26=UuHwphT5-$xS~Z}8o~8Nu;~{{C+phV1t5`2|)l zG@j79guEj(=70YV`a|GO-@W4BBMyG@e`gaISMdI!SKn756T0JfPYs?I_!;zp zz$bwy58g3&#n9{EoPzWEzhes=6&h9O&Vj!}HvWF6&?rNr{_nd7=O2vI;HUy?9=uA> z2ZJaS@~_ZcLs9zg6%WiKc(=e&A^U`02fW3@GjPk;s{&`5)b5E|QepADWJoLT5~;H*$I1-|9%~uaq!Ne6%BkIxPRzh&<=qyf44~R`u|?J@0JVN?E45p-ud6N4qZL8E+N1B z?sLH_24gRTT>rMj_v;0&6}Zm7S2^%^=+43SzmGOFkI#Z#$N&2J z_h|ZV<^Q!ya900|sQ-PX;GBYE2)+)kP#}5&uL6D*8c}GaLdOMgCYV1$M})2x9DU$U z0Xqan81#{VzXXo?_q#zq4_V{ie+Ae4d&c_jk%vYT^q9bBfqy}}2Xb0)g#z~qz6v5< z@cx0j1&$9OUMOGw_XvWYhb$NvgVrH@40%cDn9xWfpG;RD=?;@z5aJL-{kvN?`p$Sw3j>&{+YSghu$^ze8vpvS09;!5kO# z(0~;=E)-bB!0*5rf!~4r%442^zeAov;1hw-1g{fVcOTD?HwMoLu2JBKD16{yY&NbF zju8g$61Yad*MhU5#KJ2p#@~XrFkZJNfm(n@)ezjLMQ0-J_l}K09>vUqwrxK}1 z8j^CP9x0B|z10`>4!v5R)R{>U(ukBM*~wkKMK944^>RI3|E>4wBsilDxkLUTCJh6S zeIXCY3-X4fr0HoR+KhIf1L$Ddjn<--=p(XX62yKIuY!AHA=^NG!acsGh$?M@rXrjO6hts2P=}Eq#$4QLwz4UbV*-<6*=CCMPieOu<2}AyFKR7 z2VOWHp1vABzE&T=IDWyqKfxDk=$Uxu6r$q;Y=2+h)jRbrc+&^{88)pF^Dq&id$CT_ z;Ki%;O8DOC7?0bIx&4h#&fw0cG0S~=KYa57&XqurJft$#t`TVg->HT*tcu8JO8R5W zqhdU7EE!K`!Oru^Uzo`_ygP{WB0ceWKdf>S(i-Pf$Fl}03F{X^v?c_i81Tv@c%*^P zg_8&R4eovr_r0ob!>Y&e^8jW#Lig7Lbw@mh!NUUH*iKj14X_$*br-zu2D|jdXOj^B zyY*v4>up5fZG8muzXM!K58tbckq1_$6&Z#&KSa(D8@AW@eFg7Ugk{QO#X6DWn86;z z#b|OsOVv?rgU7WL=fqKA>%u^a0xUm^&m_4)c9KXy@E^1>tHh#M4c?mzwukj)2k2Vb zgnlCq`GHJ?&s11 z-jTfUwd_E?1XK~1JSLZL#sTscj~{4Sc%en_BmO!e&guadO5zGN@oY#MkZz<5V)O@c z4EI|L4-a_S8F|mFe)JtyrzKcr^naH~}m4JJxNI9*ngai1F{l zS!ZB_{qV*=ffj$_*!5Ve4LIu}=5`*R-O*3+_zG4Q3m%b?q(hD&z=O=dr_xxv0l>A+ zq&-HKA6S(Y*j5baRf{wOo;8GL<;D9sabyXS1J4ZbsTBA-Cn*SDZG>k zpnX4}-bBo3DXg?uFU0(>YX=e28pu2VSI>c2JO!d9Mby;7dyPn2cw;$oK^uClBJzNk zA+Cv=BA+>Cvrw&WNoFRus*kddVzdY2YGQRi6&o&M?R6; z!0s317W`cipTwoHkzGsEinKT_Kr_&PkbkctSB(cY4g+3{1S>$rA`9LC-mHcn zY=w6mN5%fCJ~k2x`HnhLTCh^#>67SIIFj zgvW>vLc5Z zA@H@l@Z#GT>nX4zr4zyv3d8?W0DZlRc9-}XP#m< zagb+9viZ#77r1Ra=3RIt{(^O9J=i;Xjz-W{$oVILn#ZxGhv9Qc$ZX`0JSw(2Dlf}N z(pF{F&+46uR_Qd+o*IiR>`OzHR!x+rvgk~}-@dT$K1A+E{9LLl>wG#LuwenBs4j42 z7_vkk_C!-`i${FTP4cYx(4leu`e19(M65(f+-9x_I9;C)V9 zxj2630?KCvzYsbud4$+H3XEF-OZA4gHU(nz!fN(GUJ9^^u|Sl`DShuI-DEz1&K5_8w9bik`nEX`~SB_1N0wI&@ak7UTAjXIsqKnL-Cg|gI57v1b zok>SvRH;zuP&$tuX8TwP-h{W~3t1JGjr~d6fSsNKBT5Y3(gBafh@C3n2U$raP4z;= zeq0r%S|j?msU0ddY}f@p@kTvYbyXQKo0fRC&rTfxCL#Z(4Y;iKOotDxfuAgeS9C&L#UmSm7DJF5+98k40#;7PYRv*lPs3P?p>{E}qv9fB zI^n&|czglYCW6K5fKOzG9~H*y?C{As@UnH}G+6-OsEPM)BTHU{A6x>~DV!DHmn)Dj z2Y{vZ!p}DNIRZ0XqPNAY*=6L)*I+XN2GRjBKMIjP0?+m_K2rmnr8oG%Ttt5#u$N4z zzZV0W<{--NgWm;ew}fCMk6_7x`ha>bZi}8`n&>UEsl;R|Y0K)c(X2DgLN|bMA0*9a zMOKS7M3k|M886W6d@UC9om*=qRHrG z#A#c^OGfy!O-y)uCCuzk*zgKiz;>)rKG@L!&%X@6t%V%96ey%g78(akJOYTA5_o+I z7S4p(FGe+S1gpCk@&6IIe+E#d7uGDm5iTMo4r2tDfWcFd5xW4Rdcx~YfWcJ<1~f*# zZh`u?4DM({arl6m>K#1s1Muhqym~2^coq19r?Tk^u=;GQ>p7gi20lLm8Mq;=)e&rB z3y@FfPVj~az{D-&8y->Q8RBp?s_?F)J7zopSto$vl@W)j$x@)qJ#|}b6RAbGxa|*> z?J@SWEE(&=#?b1h^QObU^HZCpWn=k#9%g*y_jx|vf)!`8!I(tWP>!2;<4JOvs|7#Mtg zo~p zkDt?NOD6`Tq8C7#>Hwq#N!!MgnNjGS+K+(;HOVe%hf|X zcEBupA%a=}?ROyJ+Jm3B!yS|1?oDE{abo!D70vZ76;EyzBZVUh%gJgAeNOMO_v{=y z3q2?SytV~BNF9h`WB7S~hmYeacoZweqQQ=m)6BFF*{sK5C9;7n+ygR8+^LRU57pq4 z+$*2RSGjp=v~^I4g;&+ifEaSC|V6(aTh4q8#wY0 zSiu}z?-Xo(1+~>aaK}Z!q~jQEa;OOfpq>!$gn7t*3xLJ1bRks2LlMIzfa)9ICDjlI z*)hfqV4$gR|B|Sj6jt;GY`qna-SCS1u<2op@*HrdBe{kgIs}Zg9$5BRTy-Yc^*D^8 ztj?_4%fH145m%%Xb3{tSYZ3a9exh4pXGVu0p8o>lSVK3n@_Yt7Kay|fK0C(N!uNk> zZ!zC8II00w^#ss9Gjx#~(N zssvP!@p!BP?>>pKPs7Lpd43Q)v@)(d1XlhTi0~O}nI73b8StSZY(ET)Z7ys(5sF1e z_*Qe&X+06yBau~lASU|byq2(L1@H|4-%Jl=YmMwM2b_5$R`4G3(wi8~usfnHDbC)A z$3a+ZKW38^{A4TadknZ2&}QPI0;mAwtOuN=WU&6GBGqAa5j9#VU{61w+IIMRZ1`PW zDgB#%d4IZp%O9zd>hv^%wPVfMNU*fs$c+!kF1m$|VWoIOzLl?o7cXWt*+ax_ewvPM z0@5TPr(*o=F)+0%P<5d0qUxzba)w+1i^f(=jfU@@R z8W?<-Tn0Co1FTI9UbYs|vdzDSok%t;u#c{Lh3J(OWg2Np|-v+DLgAb%grRc z0DQ^-RP2Q-e4(#tU-p#6<(pW2R)npm{h-s`#3}+i^jCFWr35||!^$_u_&nssZ<44u zY8veH7HV%ST?^G|S1^ex`V_pc7mm28%7DS=Lj3keR&R$`&J66m3YHNYnKJ_OCbTHs z2tPXs{3`(ExPUH+cq#`RYyo84fV%sEt_CL52c9vvuGw%2tM_S0jZ}Dy)WY>$Z$N{jB2f&@Tz=r?>s;Zl-A606()L-k5 z^QF&3Jr$*Ul6%lo*U_mlylM^Zy^OYFZI}Qumgj5PK-lgQy-hdJR=}cB@aL9#oEopz zs9%9>mw<46bw8C^ZGvBImb+l5r?Lukh6B*V)9cIduwS4%v{S#T`aq_)x;A355+bcW zxqwLjjH-JZR=Xs;twfBc^#xn%2{u;>-cbnoyi^QlevB$458hn@PuPXZd<$@?A8LhU z$d|iNDXoIaQWxCt7;L0aU4A36f${0+dBpcm$SG;D2CJa`y+%ED0(^Zm>b*`XwJI(d zacx)W@5SKz7I_Inv3E`6Gug>9>YZNCQNn}8bfC}MB|*hC>@#t&+~N-Xb+AH-Y#qd!I*mnGGH z!su_%5N4w{QVzNPXXHyw6??^+^40tVpUVsItlU7Q_<%ivC;UTxLq3dynz#+@zXI6R z7g4fChD$>xlM`hZ`GS}(-*ogg(o&5i|KXRkGW7w z^6`^w8aqQb!M5dSL)>XRVoV|*F30mKMz#snMJatAY^#$>hdzOen)sM}FC%4E#8-7F zGhgIu*%S)$Tp+6hp4J>nN+MMhKNDber(%6qVm-zKE!TtfNL>bewL2`b3d+YBaIiPv zns*4Nf@Gt0=>*yl^U6m*qW*goqbGa>dw7Z*(*Y4tU+P%&Hz4aK%Z`bIhLVUF#qwWd!(+fX2`KnFf#yC zC(>l>G0VR-P@Rf72qg7xG>kplcTJ z%7A{JM1Mj~=qM}6^J2O9Q=AoNM0}`QSyg3~N7YhuY+o3-!fpBPjozBavYiv5qB4n@qjKu%=SVizYeB;P4~yz+$W`JHYlH~kQaoU zD(67Yzpk3-s_YCajcU69AIJ95BVcyfq2|`b*x&NHMhW9HIMH(Op(*TlM%goXU1QWk z*Wo4m!P~CD_fzQ&sM$(MEp~{4vNkHVrKq{D<7a(!Nt_Z@#gC$dcrK30gK~~qg3pFy zO`D*S%cln5xFaePD&X$miVvW(2Rbkh!JW^8jsFe}^#d3}HXuiPtj}ny-cnegvMK_` zV$z)4VcYm%-hpptJJ>1~&ePzp$NVl&Y#0VN67$up6ANdzsiYIJ0#A`c-ykPc$F&!M zBMwG)BZY3Kl0rL}j}_em+n!T>)mYh2mX%685n(bHcw7zi_BP0S@|ujJW+S5p^u@K{ zqL<-EwUH%zLS1-*dTb%`Uw8P~SJZncPy?(-6h?``us~8M-nn#paLT;=D7ynz*`E#v zg7&AqXcUXbH}V0-GNZOJm{;b9*$_6I6=E&eY3cxX_aSSvpcz>{mW%CyqG*#D&@9$N z`#y|_C=GS1k^E6gF$AjGJO8f#-v1S??f7yP>ajmjf8CcuVe@ZLM(P5?x?|i~z+-G$ z82-HyIkP8tsFEYGa-YN_QA~bPm34bsoYg~=EN0%#0T|3nL^9V&b!v1pS^$a0z|J?2$J)v)BDwhNzZY5MSbdjdq!*D9 z>Y?)c0p4Dnl0Jg%`_Up~ zJA7}lY%62Q(z1$7p!$Imyat9;l;g#GaZikuTcwiW>bU#|5tCCjh27VZjp(Meqz8ca zqjZ0jOtqI+(c5?c#$1R>_5;tu$6~$K0|N`AVrWhOVpDh>zL3x4i}^Yz-EEi)%k4mJ zXivLCU%LT4Xt{1kX3&SUGpdc^WVIS5+sn#wr<@?$sQ&QG53pQ9-CLDMeoQWxW38Tx zB{H+B2`{S+TwH)7av`HeAXk-=v1KD@Gk=P)Dh!xim|MICZwz!T1+2bL`cTG7vJ^&E z;~%4<+0*>h=mi$ykcd0qgkYrsQ~LrGkNNQtE$V6@uLASR1PdNirRjzZZj#`Cgj zY$?2DA{jwv(9!HQmwcPi-Kb}j;>TE7mIe`$iXKJnUk}>*2{IUY^dwD5?~z72fn>6X zs4nV>=5jS`-vzreMgt)ysc6J(9+^&#k{9Gt)ddPsZ!q2*$-cd;bfS$Rek}mxrKwh$gM+0(y-7e@U!MJt-L8m zsUG?~-3vxrl4WNzfZWIET&7udRQy-@ZuoC8&N<e5x1NhQo~GSs8oGy!AG;KO4gJQsK24NKWDHja&i$41~G=zgd!tI;c4r_ZY0h~0*W z-ZQ}Pvnr)>WNSs<3oBuiok&2hO=PQo6V)$%cvrxT)(d@l9^jdJLJpqWmfQ?bh> zoc4fsZDuKW3*dG?o}GVX>G>u0BmWsTm<}zfEw9a^*&vLfG#f(O(SFckIH`roKA~Qr zhNzb^AJFd?SbLRN0fpnaoGcs5aiWpm%`!p(Xi}D`L{eL zcOZ-QM$h3aEFB;0s+QdAPw{{Cu6i%M7Rcj=bY^yvPGWbk%HcrLucSMyotWLg^~dmw z@UcpGyn^oIvG)88dx0)$ZZNCez|1UQBumkqyax^Oph^xU`*-+lXJ`t!h;Dv>~@lBwlAVah>rKfE?0BKWX>&|lgYVD(+515;8=UXrjo0hV!OyK_WDKqg8p?c z%B$@a@w$82{A>PXF%>-i8EJ&hUpMj!yGokVJnTH%YAiO2nhVS|W^=QVx!gQtt~QsN zHBHwz&u7rwbPhDPDZre)D$w6PFB{6)qJ?Z)YrO?II2|j?=keagYGaTw%a~*IH#!+U&teqjIrvVpUZ>Q_R53M2t--mR z6h{B-Cb;iIkq?Y&q8R0O^IQ9a{rdg~e~El1XOTywKb?hacnO&LCwzT6+rau5@yzyS zL$in3&m3h|GygWO@;CefU4`58N3&0?D`}e$K-WV^H7wx`sdwL7J zD8Dd#y(O}HMKIjssO`GaQ8X!-BjEowb6HyRrCXjQtH+|a*azsT?E z2h?>6n&WROyKIc^Pi#N7pTJA&R&+bN)GO#UlfzV3odT87F?2MNVN}~tdv<2A5Sf>Z z_~tt^r_Jol_9SbJHN@z__p<7!u$Q4$I|fx_BJ|q)s+qhkX8U{mV_q&dpL@W0?;LcF zdlf|rxd2s5Z~6>70VJx-HF^S>N?+1aMi*m=`PMpXjj|S*&&(A(G0Q{8t1dvXd(cpB zLsLyl(&@D7l6(UXS?{?{v{S~t8>qVi$RQxI7KE{T{h!7lBi425VxV0%tH#P zwEjnLt~1Rk?3{Fac!@=4XhG9xWpMXds7D(U1(p@1Mo@#rGSk|ht?ssC&9?h_lGb>+3|DipgSw067NT^?`G|+UvsW-BWJne0DJGob!AKb@oL6J&y zm3>i%deEm9f=_95EjZ$^4F7E8F*8`Dtg_Z)qoQ$)Ut!PKP8tOp&C*X)AyoHe^>lR* zxKYCI?G5)z_?5&G@m@{`7yDU_KsBEdRry9-?FE?!4E&W>H>w$H`6@O6S?&U~w@*-1 zV$(yY=_g@~5jwW|ARS>}rGQ!~^R&fHf_Q`L&R_ed<>M$}{h8zc^~BweZgDWE<>$ zLeE0Xq+(6@PM+9IWwtOM8mEmyyc_y8rN}&ZPhjUyLY);|(AILl|I$zGm+`~=$Npd7 zDl4(Gz=RsN47&` zVr~n(EnXO^)4H+~RFr*C(b}rk=m&QviTLk)B{1ijvBkIqbPFg!ZNM|8U>DJR>{a_) z+v>0!t@*N{J4c?4``uYc69>#q@eMSb;KOl@-l>gyj+-uCMv>^R%N#~2fg&PGWdn?Hdn zSr6T%{$vWQ{1tH2a0VnA$fs4!ZlH=4MZK3P8Vkr_z)wm zwHjGyBv^VXIv*O7uj$yWhvpC5x(XJsrBn59G6&hdO&1H0sR! z9j{?*H<}u$IVDGQH`N`w*D>J60@5BHK0wbPQPah+b=uuRsl}JkMs<*m4 zDw*a+Gvl!F68*xd$flqRcASi)IZ=m{ zHGVQ~7%6ye-kf|x^_>&7(BJTp{pbofen}DKb@OximDN@KoJ?SY;jwF=*&ZPUSUR@N zcwqE3AM!#x8=ZsvGf*vu9s+G1C|}2~>38zt`sw|Xuy|1-prrLAQWZdLJ(4YCeT_6` zW3vyxK|hegVD3bpL5KA$$%1+@QiO?ZenQk<4fQE-=K8D-l+u+L@jzOKx8{rZY}OUX zA6Gp=4fj%V>`|B_hsk76LTdXD{Ad1DRUc|_PqvFKVXeSyO`gNJ!C%44&KNnccQ`xQ zjf@cn3k_F2p$|_sITfRiNY5F(z8nR8X_PoFJw$MkD2w2`s^LW4rNrV9IUL5ydge{(|%*Wu%8V5 z{)K8Bc&mZRU^-oZI&2ItU|7aC{t9{aZxYzg{ShWKc*g&zAA%x4Z% z=Uwz3je_Nb8=b)IkzQ` zW4z~!*kkagIOL4ZND}Cs*k#>LJ{9G}N%29913q=t3DCdnP7Z<5&tm6zB)`I+U=2!9 zgI0&Suv{NS<{6^~$S0zR%&%IaBX}G=@4?tPHUg@5Ce-}R(aGI`>e@#QbqIL37JPV( z8YNT0g5g-XT*wYDNhR#rjljOBWl(;mL4DIe&;fM19uE~I8nwlER6fI$geox`eX%J} zZwsP+yhIyAW&R!N#uxe)wzxx&VL#_3XrxD=qd!C6BW+AyU>=xGSG@_lge$Xauy$Lp zue>x0f1?&fH!eTUF%U1sup{9w?4H}Ex~W~N6`9LsL7lpYZfOa!30TCSSFzNP4p?(Kr_5c2GVJCx1NM*DK0dftok;YNbh1t zZvxZr64FsrrTZu@Czb_?Ed7(JC_^gTM# zh4pLbs%>!1u}}<}tMYn3{IfhFgR}R@+#8@M*FtBhfzGYps#4HM$Ed|v!=cdga_X}{ zmASMk^hwU@Vt4Qm@+UOEZ`eyd7D~hi_^3v=0$z}9t zPGC3sF4SsGk@Z}a5qm_2Vin3`=Dz}eUy+hDDS4uQ1^Ta-z9JGyxb zP;D24f;9mh{03lcr*YS+P?$3y@;~S(^lllHhU|!gmH5WR3R)i+G7erkUF}CNrT`fC z0~r^6?Qc38n9q4sEMrI_dJff4Ms#FPK=Ydgh2PRSuJHY`Cpo0HG zrlVddsxrw8s0ubikBC%B@lB^lWF$p%v%l%zh-;Gt_5}9Pi=b@>_J%Z6ZS+?}a1K=O zy@3H&$RN4~D%)aYklZ>F`>)=}P4IOJbLB zp9pWdfU!L#lduo8wS49`^=F8`(B(L!t^nU3(c$bA`lAQHDnEn!%~8vMwOK_UaYf`u zKlq8>3@fc-7x-FqbE*TeE@J=AH|2^*R227Q5j7m^T$_Gl_mGqBu)3@dt%Xi;9~FUK z(?T3I3Euq@HeZG~NrBNkKo9U5_7RKXl;)B;t6m^?K&zZDlOTiG zz^x^$8+O|EV4YCYy+t3d3+V=}ejO_Q&e%(o7d_Nvv>fU9n;CE?j`KLJUwe%Kwzxl_&w~}Eu^j^Ni9B1Z$deD+hQe{O#(aIkV z@5qX3K$13m06$?c@S;w%Ejgq1dMmsd-V#6BZ?5`dS4e-b?Vd(WBaV@UH%8avo#0Ts z?)tIhP+1*1U2~quoNV+k((#^r9Z>R=P;Nr6n70{zT!h?b<@g2jiTT1@#53||q^nry z*L5?xdE9Y+J$Xc(hT@YIYEN%#t?>x^IA@5xUJ0*?=X(W22Gm4Ncm~v=Yt5!cn30qe z(9cC8?+0(HHxAvDqNF!ViVE|daoPC7zOsg-jff`}y6L?7UVFsqV3NSRW85&)n0d^H z>=?Qrnf!3CuUpPr?wuE-z$X)11??R6adVuvS3Mp%uFgT^0vjr>Urb0@g_-78|97)#qg**jrL zbC)?0>RDd3&%N$;ai4n!y$1RhR)n{->)M&@S9}LAOse{s{4q{GH-kGx43gLN-{x1d zp&f0ewf3+=P^R~}L)FwTYCpFtnt!A3vCVtvyo`S5tafkuf6`n` zS@*);g}t+g`JB%Y*S)gNsOWpq1-)OeORAtXI;>K7k+356OJg6D;y%%BBWp$;h#u~p z@&7XJT8+cw$GQ|=!F~!=dWTyfIwC4XbWSI}x0G&R!|b`?C&QoEYmHUBufN`%7~LxR zR`fHsG*qE4*5j}R;p4+TS_h4(V!mH0`j5y}kx89{{&lg_9BbzY|1o??SW0UdvPc7G zM%3h}{ehp5I%;9IlzlNu^H={!M z>g04XMrDtV6P?}9N$aprVY$MOg$N5?v894IoO*i&e40}W5XNAjt;LD>nrOhd-@L}Cr3StTW+?VZu8-Om-82&0pQ3i_ z@6CRgM*ZlP zapRG^1~a>dH4Td!who;9rg-FZbh0}8y?A~i_Jm(GlZF{#v8=q{B|ZEG?(a@2FRth% zU-F#BV(XJ7tgk?;3F?L0z}@T=6XWDiQpGH0ezK~VzENFM8CRTet~l%6&CrWhvsUH< zbG>;Q``i-2Kks;(-HUE4ITk&?oo1vp(;i|xVQ)xW@yUPSO7CZXKlUqMWZA5m)?)Jw zc38EO%eU&u}&znXiOj!GmfkI;$(X2|vh7nrG1quBS7~`y!=3 zz;7kak_I%KFEBEik9aip<7ASv#4`Va=qvl_W$Y50X_PZM81u+`l|U6i*SWd43k5zS zqIoc^J&4XAbD+Tc{#`LhOw&8?o!=Qe3zTmQ75ET&&d-E=krOdspwhO1^rLxP_KW-# zUs^3M&iX{xMhAAIQNvhnSnLER&;VDP8%)Y_swK4zocK?KOw@@ zuPhV3C78y@VQi(X!N+5X75)ytqP|Lsq5I5{qt;?4(1^N;P#~+RFMe^60V*B#=ddVv{z34#&9oN!o|b48=*#H3>^7Th z+{CKKNAaZriNc-( zQ;tHde1vA;?@$^Q-Mt#psWmqGj(Ns8}kZSZ~v1Ib02P-z@9S{rrvEs|YN@}~N?JV)e_Kd{@z45O&A znh$4#WKGdb^bmE#8&!>`=SBETHiw;4H-r*PMOAr1UVu8d5!$kCbRaF&P%*??>;K|! zfL_}ZoGG!j3jNT}dW|>MYwUeNCv79;W-hZD`Zcdugg6gh9PC%|@2O_sfj^jOao;(r zm#7c5s=xn16i2tSruEV|X+Eayu;$CW)cz=cFsi>?MstIk``JWRLoY|)EUO57!(;?> zzLds7e0%ygGS5%qAMp#yRx%UaitZ>i4uZ=r5$pZ^-UC0D$fSSfr}+mU&1fz*9R^{v8P5uv$-*x=b^n3J+VCxjBY6X#YkyhHMbd^_+IP;JLA5F z^1e!!=Piw^)*mJ{2jLqSmUq@&>`swksMouppS8wJiElDB^@;a~n_V=-4!9X+IWwpA zfo`LYSn8GYCi<;VjTbiynT4!u{4%>Kn}Wlg@phux8EUjOOIfYZE9s)gdab;)UTHst zD9iJkkI>y3fLW%7iniXZiq3i*Y8!iv>Q-(mu8|Mj;!ECY^i{j*SlCf!TFcD~MmqIS zR)VF5d8IN5$`6FK@bE z9lLs4nyF3Odd!Bh{<5-H*?aEgl3P?Nvya)ty2Z!y5^5UWeE_V?tF{;=%%s)`AOkdX z@0vTx8zW}PWyVsonU&p0XT;OC_mA7cGelxJz{qV4v~CzzjdwbY_sq@X&GEa7UHp|< z!MbByF~*aw-c|RW+XrgsLDtz!W1T~PH;P1fyWH_^d4Gcc3mau-w91)Zj6<;J2=AR+ z51m|}MjG8wU4)xO**d?o-_DEhSNRruYveGC!wX`w9KP_qE-vb zHAeB&^qo83eeZaF2~nS)v$ETB%y~R5?cr8(%RBe{&whFCTkY(#=4!ryd+*$cOP~K-DZ`n4Ty+StR#)_T6?41sK#M4<7tQH3LCX%~u zb-eotith_P&KhPFF>XTBtM78Jfx8`g@)|>fPh>Fg4Me@undDw}eCQuX!G`16^^BAF z&RCRl-_7Fo$9EoX7~H;S-Q}NA&t`Dbdo$ez*z4HOjIs_`&scN$TJ&^IyGPvSsJzlz zroF?e%0`QHqMh^Bt>-mm^Z6R9jJ?PDN{{;s{cO%6^z3J{oW^Tws2$7Ztht}UPwKRH z-??kpFyoC?2xEw*nbB$8;Uw|)c-47s)3usdIjm_U(p~FLavFMl{ZfW7ciCC3m*#oB z%1!AGcXoOA{7FWn`M_RaRy8~8BUrI$=d^!RWI~3P_H(13aYzkA|GKh!TKq2enT4(6 z_AUMsKPz8>d#-n1$?2*9?zF&O1_m-lbaVPS#k`IBS7O;Ot<829I#svvYdLM5{C-cG zhRw9|*`w_8q>g&xbpvnCE_Pw>d>wnIwb=Ts(#n3`ZRd-VUrxqel+)G=vz9p-%;mJZ z!F}X%9c{EU&se$41jYrwhj+-S=FRmcl6uy!Rvi1XF_V|_3wehf<+b$_(70AwOPfFQ zip=)cc!S*d_#bpuuuN7(>#SkWbi{M3c_UmOU78ZcU%0~Gd>49>H=G4-d$%&_L2H?% zZNqNNkI1g_fwR=z=-wrXSUj_mmBdQRUPFJ60`d*^7qBIKDPo$NpLAN^_bOp;Pf?k` zJY(jtS3)~TuQs@?-MHRhkx<3A@>vn~IH(d&MSnNDJImWG3u*3&hO7e+5@g1L*g0f#%~OaZR#qY12~nE&raS{C7Ua34kYM6Hv8Pyz*aOvH?sJZ~MZ9TH z-fCK}5gGOATXdMKJDJ@NUVi)^44usPelU@hU5@eQl>4h38NMtd2#tiD!f za|qq%ZT8B$CB<7Yz<7aO2aSxIteSe{d~hP%eCSqYuqMN!_cNF55W}$_BHTNS?rI4u zf#q2v=|tU5TyPDqvWN>s2Akl)@oy_C*Lh{V$zBUp!`NVKv9@B*;B=wAPfmSgvA6mV zV&`ojC-FqS0#>aqbtV6SGjEFoGsHQYE}YWTx??CV%;oh0r3*`Dw0@KTA6Mk#ZkozT2)R8x1|Vs1R| z9c2531z-VS#_E&Q`e+^Dn%(eY={!9AAcxVnZ3mXgQb70QzZW5VU&f@*dKGqJthbGWt z5VddI$@q@eO61H)YcKt#MvFmCZudvOG3(5}V5iH^)Yadp!_eJ#l9EI^d{cSeqz-% zdgI&IkKuEh+_z*8du%SVliPb)TV#iGK&RxsW&@0UK*vF57-`{U^0Gm_NG_v|y=GB6 z92!-BnHX2>=oLbD=TB=L@O2};Mb^Ua55&^`YVwkf^s5`(XTSwKd=IBH|A}vs=oq=-;H%%ue7$19*KJnC+S{2+Fj?ya`&p#dYO^Rx?mOKmvlX~*Uj#=^{$aJw1Roi%xtBnEo4NAzBk;=&E>9l?yDB`7@uMPW9`S;ZRL5VmfO-DO`0ROq_Eps zQEUPB;p}v(gR2~7`OWoMkFMqulG=NNYd-WBi6e-&@%A2L50F(m%-gkW$ob$*g@BFXGj0- zcNBM6oG=!)!pg>y(VAsC$=-s z-6BisN%ly4SJ*prrPlekqbElv@=mFuWQ<+PjzwW*?JE-Z1%Cs+3R=%HA!}Gwz;ERhlI0qRzCZS zwT>mnKIe+gRQH5?md5Ajt+jS{dj@MRF8iyaH#lkC-LyL2VI8nH+Y4DO@zT%b#B*1; z1F)U=iq+IEYagQRQ0sIAPK@-%a^GlYm&SE9`PIwj9gY6c{oVVW*ETQPi|l0fJu=1P z-mU1{PAjmhcxF|*pq<-(Pp&|vUhPbD)A*ZsQ`5FPz>h1Crk-+hxZ}L1em5hDwZYcd z)i76YbQ8E8o$X!ZsT4TdXSy#>RI*q%^Dd8OU z?)!<%l~%&AIc9D12Ytzz~&$O%;ZKNbs+jobVBEge^$IR z``fL0SO2R!)a~dw zUQTiodpLSoEzFe2wkx0*xo$>pxq1lYvw>9^adrW_%-VZ7p!g4#4)$}`uo7Y4>=ZRo zoPk$o_ST9q*w=o*>VTbnM|3Tj%P;Jf^!8vBZP{h(xLMK4Pgg0=KjS=er+baiGp}sr zvF=*e*eDVq!=cyDbl2ej^Js47wNlyl(L;QU$ex0@8i`%z!;J{5fql;yz()>AMq|ERWbj|QE4)KqBAp4Cm%^%R zK0scZia8ecKD+;joa{0?Y39Z3BghriT%1K;Ah(!-?_}-(Yp-T@0mtnn)B1U#q5Oew zj}0)^7>UekEEX-QR(WT=LjFg&TFv3ZVT~llVYZCa^UtDER(?gXoYXMx7z<5kfjqS; zDpz|uyenQ3HJVmpGqG#zl98I6)fvPl@3LphLAoue8t9K0`|(|f{itdOd7u5+vaWi> zXJeo5Bka1KN3vk|@pdmB_ElG;)1f5(V+iP4$mF7@M@0`mq0Yh9@mXdAW3F)&|8vl5 z??-=>ms5UKjp=4EfQDvM)Xb@5Vbq$((U*EAlNgS97BzMX_*5Z3hd+F4daQB`5bWeBHt$R;C=ia*K6g#~y&rIgtXxbYd z{3SJ%yL;388>7+LE7C!@GJOhbD3=8NQk#_aWjzQ{f4J;6cjm@j1=v`4gx{ZE@Sw?tE-S^g8j>|izdFVA}?ldI7ptRC*o zY>UohUu=)$)WA=E!u{c4(Mhay@5(F-FU>ySbp_sf>{e|U>}Ef8pKO=#|1x94W>MGN zi)4wU;K{|wbG+lJI58!2LgwT2F+_FOd#i)-Cv)(mm2UGbP?!?}y~m zsmTQ$ldpM?^SuJDq?F}D5r--3S?^es4y zT_@SFG~F&;S~(M4Xz73LR}x$QRPbo>8}b@o$vlwRRrzYVCHt{=`;Yj8Qq!=5b^IN< z4LvW1-d9mkzM9$h&Dplxn|`_Q%%Z;(RR(9UW2va}){5)PzeryjuFid!8jw5RaL z!WX=?*{$JA6+J4hE59T2Xn2-)Tk5vd+``s{^9xGZvwCV+#vJwLidIzKnd*<`4&ntx zGYao4=#}dfu})S#v;2jMjhTw@r)2MfR|}sjda#In|I}1?s^Z-8dHZ))j831IJ-c9D zL2>cEqECzKr26MtM{ksul=s}fpyJNTZqdWc(C;W-SaehIw7^f?ke$2#xblr62s*2s|Pm|XaG^y6Hs=fbT#_2fUF_E7ZOXnZYgEyg8dbeh6@^jJMa4~u+Z3Kh=D=^2 z)Arx6KU-daZEoa05X>p~xoBw7^938oIs87HnqI_O)Sk-e>HX}4JT_=mus;0cGuR-J{6`j{~*R2k~=h4=ywkuX7zknP$Ou{F4^m&<(VHd3o<9L>!WFI zMq;AZpA3@X@AhLAt@sAJIlV9{!@GEElr5- z%^iYXo*A4UJQIxb>v*3hre&9h-;il{E;j6PY8hPUbq^*7e@%W#54V!Xe^%5PyLLvX z9Q)6rz3k4LO?91zf`I+^Ua*xNYlCxdP_gA$vJtv-r(!snQ_*w9DvVXGDKgj>P zw};%-CD}Uc2Au*YYGqqe`8nVY;@!b}!FSXw`++;A_a~z4iP=Y}G}9+6%uZt`=M3+! z)Iix5)PmYKQhznT{vH=?BnK~Ie^ObNXpsGTC;8o|()tG;cf7xkx+I5l*XW7x{P1IH zYdxQRhkaok$*uZ3JK-M-{vGUQAI{X=05Y@Q~cDaJpHG=u8B9<@z<68QZw1>b9uHp^?2HQpOO3fqu<(BUfXiA{ZC-!tXDLW zJs$npi~4)iHt`&lC|-**M6UF{Wq;)98w$rS&C8Vc92fA3CK zwmOkpG=?4Ry%P(f&bddjACd3&GJCzpVYGiG!Bon0$ zwa_;CyV&RcvDd)+N3LV;u;^MO^M2M$XONfalR14IJ9+==Kk0u-uIIbtzj}#(Q!}Ln zbyfSZ6MG|jHQ!-RU=wzk{*il!DEUaQ2K850co{F{e@IT~*}1`Fp*A1`UvS}&yu0Kf}L+K zdn0n2(2SW>R%=Gi`8Cl9xN#%-Gv6i#GI|GZGF6tIBiHOTc1`#4PN#awoLp~e)|8XY zKY+da!>E#SQN;SEw~0NR$FR?L0DF*nkPmUbKhQfYH$OU=`a#QbZ;~_larR%-ocKDL zow%Moz8@xT#SV2M18FOFci-@9b8okIq7QX+ZlfB`&fHPaaCGU`?Bs0C+hRR4L2 z{i#&4@;drAvg`3V?-K0R5!4^8!9B&(6HB6O_yIYR^~mz8jJ{xpb(7qk(P6mOFn(!?)b8-IjX*BeSad26;ZJ0^OI-S|i5zKsU6-+oavF;SWLfI2EiAgzsv zJI9j8cdA#ExSUA?hVdMJws+^-{inxC~Hz@Qr#iV`uk~QHoPCM%+$>^&5X-z z4qLJ#{W@s;G4}2=EXxICWuHT4(CFm7K_T@^>r!j#T5vmpy^|+%ulKq1H|eX>FNF_~ zJ5m!kU&o)1q&CV*BF-kMnW=sSPo_q4zjq>4X0{^Nm0i?j;xFo%H+Z(UrH5 zi*!l$7IyE?_I_f==Y`P!#Y8Q35TBfUm-X%%sSlH<1vAMkJeQrz%khMR$PgJrZO`&d zS-L;>HfysFm19K6NuJ9Ng)6)xsQFWdcD`MpMr;CFf$-}wB`a*JgP%r31 zou99Amr;RfB-Z0X?>+KuwR$_9T{6?jC%rm5pX`yt*h~FY?sM`q)M4 z&ExoF_vGdNA4p+y@>W@`rM}NF@0`SlM3?BC?3v+e^1!FDGxKkm5m{A99u1^lW8wN! zP5wsqN3Zk$N)NM>gSf|E87v8Y@F%d-zKrapIbpZeJ*Q5Q!fzjRB zr?b~)CbKta7MZ<|rmx7RqARdTE11bWOf`{v$&#I#NDv#e3NE4^3HymsiPS!Sh1bkm zPwj(CsTN#{E|!z~l_3M*>g?L|oOJc{Dpn!?nHfbrh#^@0r`ad9nmkvJ`WpR^pck3j zU(X$~t_3v<3JcQYhOhDVkw>$HZ2If)O=lAoj;8Y91G($7Yr;C*vHo|(q{=(ey}~Kf zQK`lZ^g=A^Ro)3?kvz&yt@1=K@8IC5R7=+Rw9j^2FoIpqy_x0SgA`oFo~8T9k(kfE z{>P(1;ZK=a+#Bzb{-N@m^rPwX!^Q0TD9?S6xQYE&{dtGvS(T{#)6h59?iVrCbTZfgIJ(Xq5M|W5Ji>%-;(wAnw$#o-R zd=gPn3-2uC^%{1t5BExv>y!Ob>k4)j%rEF!a60ph4djRnBOmiU^nGyDj_i%`)FD_; ze$tWbfGW@Yvy#FfWXFD8`F{FNvNt9qHhF1cfK$nMjJR9gkvx*QiM_$F)V=I9C}H14 zi&QH0OtLUpKlwC!qPf9G#=vJ#^X0_%iI=ICJ1*NYT$5SE4(9dgk=%((r=QC7%k0hE z&(5Rc<9g&9$-25Mx}1tc{kE8rL0E0#0=%;;09K3g4BF0ON->O)CyyVdUP@V;04iHdl;2UCf+p zBzJ*N;{I@d_Cd`E9}90~w^cLZ?R8`f_*6ZAp2|*>i6h=jG$9YA!atZfloyowOR3Tn zV*3tfuMqnTg0aDQ-nq~`jQ&aupbyB9{gGMF%|wXbhqJ;~*+JPc)R0g$>0RtQ?~qx* zex5Px7y2YSkoq8hXD|If(NR5B<9zZtwtMo28~hR~DBbU$&B!f@Z%$>jr^w|$k6GFx z>KQGjUTb%vP;4mnS;1{I-C{5g_)P5WAQjQ zkxz9#b$;$3PHyM5_vTQCXIwCde9URw?@lI1G9#E4Tm#ScC7(~;i!XZ7zt+!T?=MI^ zMjXgmDe-K}XnWR=hOq85F?=aAl$DuT_=)wII!N=CnQ7_fnJ##&lQJh!9j<9^43#HB zuN!#urUr9g|4??*-Y3`7YLwc?T4H6eGZ+zE&EB`;*!4IVP5O~MotMdf8ISh; zL2Zn+$oCm|(DCF4d_=z8rQtJS3-Zu@CQIyfo-^?lxNimP!fZjfl+4+qSY2Bj^(Gn{ zPDW&3BGm7^y3|XW$gaOk&@x#OYz=;YeCO48*dK-He*Ru<+AlSj|@Hg*% zJam#AtvzIeu3=6)F|jY(jM>E0%nzAjYTvvPo{{}KmDt{(PHsWAYq&nc9=y!enU$G$ z$qgBoJ&R1La%!5sPxaVF z(Rq-Vx-HdV4x_Sjk6;ipt+7OVZ~4>x2iQ0I4xX_|@>1>vj^@bs)Uuq094%mtd?9Pi zCA^-%8`mK_s3S4%80zb_%H^oY*EYK+tPCH7PSeTpd@b88J0g57ToR5YlD(1@&Z$%* z-9~)+9#N_n>-)LnO8rRP&l|~{~s7kUHTlO|92-j0>>ujWLDs`l;CkL{*cM5rp!^kc?CU-m)Aw6=$AHb(Iq~3fB z>V@e^NEssjw{s)0nR~LAlFQtVx!c)j*Adhpf14QL3o40y5j7(7=T5S}Ja*z0f@L=< z`E^fRMYiB`RL{ATNcT!Ag=KP=QjM%zG%frwEDg`5pCq>I)kMnQ!ZTeaQTgu{;)HJG z(AHq~yPCDv?!k6!+jHz=e2DiY{#E|__}MqmyaY7?j$|(OJU-M9lgeDp{cqWqxR8prYlw~Nu*Rh)$(%^!_j~Sn zs&_6$e>YRh>L5OkB#$)(Y;~#WI+cpCt;nGJk(xhI)&uTpWF6}HEsC;cL)qi#>sau= zhis{1u!lE6`3KlN{BJ6gUB_&$Db+W3<_=}v@ey@no8qS`5(QpsaA^t6Td*QgpCjXm zo~idi)utWcFJU%3BpOVFx13zEwd78m$=tt?9r2%&7xx+2t{MMuvZ;EodUXgHiD`ci zD})XG8<4K)WB`9iCgVfo;54Tm>P+gVf6UB#Ci?aWHH+S+zE}~N=|xeRibg-NV(<@a z=B{ufvh^gjy|$5qIw~4R?Z%s_5ZHyPjTewJIXAkQyhhcTokvZ)9Yjp$BUx8~>kz7@ zu4WaZKQpnnc#R?+e~J0PGS*tQkl*+&In~dQ=l>6$^8_@+R{tbcoRiZQ5!Bt z4T0AZUr=M>Lh`f*QwQdK>Vhw3J*PW6LbsyPCsSi>B`aY+l1qC!zVKFZp+BTP;A80d zzo^2Z=PP}zc@6i|P9?fNo=nH~-mg@m>`XQNc|37qFuW`y!?)1eO@`%nU@!)`ISCv3 z6kIFfDM+tEYduZvWcXQ1MgAAq!E!dWM=z!d%M;Xh-AF_`4Xp2{25~jkBF0gztO*sb z@1vgYZ0330sWr6$d+;c`cE%7}-UB|L$IqSGl9RN*fjwG?2LF-Aq>sd@Jnwfif1veFvzvM-{V zT3syggV}SUU#S^W$a4T%v8(@>T*qiS-ZRQx6U~m^rn=g0szh}|lGm~lc{DPW^d91O zFK9J`dm({e##)sAhI$RXj}o6ECnus6RG@@H!S(#{&c#F){C#fCv2`$r9^L~)p z!L?cYxsUj}4}POIvzhWle`-G;2Nche`?`b~$7JeryhBBT1Og z+K${j!!D@DStAeW!9`Fq$i`Wu<>mt!?P!MaDl z-vAo6#WF0!&QFE{pX82*TJKO1xIVetTM`?nQ*#?DM*+{Jsfq3A&5A$=o_O#NB<(?J zRDDGTWkYz@hq~h9$>UYjwt@NtA5w*`0kyq`5tZLWC4;BwKjbNT7a(s}@m!7m*SvW%mb;^G8&zz!Fpgh_ZxTSzM#78D4;(L4_X*khu$6q z_^HuUDAM!U4yFQQK&-ojdLskTisupwSy9_d<&jCudG)lQpYX&pX;VnurE1u+a;l!} zjjo~o*9La%RfN@|QPeJ&MWw2YcN6w-JG|^hHLgu~)lord5CyLXeTi~MlZmf-1xNS~ zdaojrFTwet@OT$kY8~d~Xcx~Hdw^){N~)vZOl`^$cyWZ8)#6j4eN@R*K9*9$!(YAH6L5jIm##8^NSw}w3qW3j*8v6kd8W4)VU zy*~oO2;o0uQ5%9hZ)?p6ZJOj$qrH5uvYyfr(~T9PW`d{ zL($%a(03mA-G}^dMXEle+U$4Oq;*v0nS{&^B@Stb9{z&IYD)xlE|o%Vz&f{OZqbiB zdRMa6^aM{BxR`dWi7)zd_9ZY}OT?JQGcAPQ|HN0kgk~*eMfnmWb}}m~&$D{b6Nx;5 z>RzXT$FsmP1z2WN<5g1q41VZF_sY_515Fw+U*ApiHkeAm%~=OO7VCExGW;!m>_aT@ z8$^i{<2u%xxX&azplAQofOdZeo_Fz>4`H8fCT=_gs8uz&E1z8xZTMY6os9iRUlS;Q zICQ=O-?0tu&86>eq30?f*#xZ9(1(wy+;Vx8%T|W%x!?3StL1ZYkE<2}^W{Rn8=MZ9 z*IdUPgxm3!>xpr9Qtz_5|0z#lso|}o9`k6V_T*dzHvVT;zTXC0t;oz{tue{^d(&tD z)hJ)Wo7QFpcPN&l19wV#QTehXam5T)z&|2heHxv42)t)g!zn=L^i0VaR7iRT?$pPY z)FQwADsV~ie2PkH9JU7g=ctj;ll7;+bC=*GFNYPGihNDra}m+ca_;H;!di=-)7q8# z!llU17f6$yx!ZwAqaWILIx?y!HkBe>FJTof!a|HiHnzZ_npm4r_=CSN$Etxmjo_IT z?XV5!@VbP|mt}DBZ6F^W>-#7m|1y4B%yRT(3TK|Fiu%c}t%pebIXDc|bz8B^Q|0ygv}%tn=#1P| zXXdk+{-nLX=k|e37Px*xqd#E8sr=XTO7&!UJ-rvG|M|2tTjK?~(?#{Vmp==Z4mQ~Q~HD;c#py3Z;%kM&)E@S?B0dduE@Scg3 zZ2*_O;G!pSod)l(!1|mE%{5LpzW3&{1vD-P?yWo*VgsDi6DYsnJrjz^3hjg@dK#by zG$r)&IC?mrwb!IK1M6@t(zzR~jLzyDZLc% zDvV$CY10UZJMcP!J{t1e8$Bax9g?kQSJ!0CAPWuFp+CQ1XJ%n(m!QS#u?l)h=t?Yv zo{u^`wnFnbyEeAO-$J!-@mZt6@Lpy!qrmQ6VheezuXxSjdexC{3x)%b+d)8mHC%cE zoL-Hs+pEkE@1aVVp3Hh->{InDuyu?*3mf`7*LzsAnrLJR@~P+8Z$iTLj-q!;8&s-ymF#((L7SMi(=ICjypQEq)XsM^;c0t3XeI22Po~KuWUkdoF1I_9o z9mR~W5Dotf_@^?)4s1hrboC^7e;hV$FLvcu@ZL@>rX-ZEAJcvf5$_MYw?WS&)NM?! zb)j=(9jr6-3 zOZ5|;Ssr;?O#8)9`BUZ+pYi$zUDq?HR{~W9T-5Wg*5k`IKr51b*IWS5AZ}YgqY&j5Z;aE*Dtiwy# zkR$=T6l8)EyMbXd|5qYQ%VQffh4mAypv>g;3+HxX1Lg4#1*Qh{l7jx4j|#>kfUyVK z-5T2MLcgZR9_l$f+?&W{8P^suqNHFovC8|r=E0*3>n&%XA%oG8Gttcxu;q=Rb#waB z>XhWZ5#MVfL20nt1{K!nFP{^ zvs-xiXzDpwifhr%+n{G-e8%hesC$vUdtwRvoH%p>+W*&RKQ(;EviD{^wPRn64risK zK9%m8`hAE%RZFNRv;6;Kt)n~7^S+C_sGl>lKh#h9`{TX7yUmf^8a+k#); z%{utg)FL{am}d;N0BcaMeI;@6cA}E;{Q83NWykiTAVSkiYS)RpI-&$X{XvzOs^ zgnl=oy-%&nnH+hIUZuOg5^bchm7C$ta;W?kbJhoujJJ@l>B!UqdifApc$wGh#AEvW z980h=_S`viAmY8BcL~4WFJ5FgMT zjcx#bvgB#rwHTu@uexZ-UREAd`Dz6{tbzYoC|nPTu8FtMbCMSGTEyAkX;+J*ZQ*WP zxPB;9>I62&U@N*ZZb#ra25R=fA9dqgOU4#XC$q63*srFs4bijP6Y#Jp*VJIuVS9}8JY?WksJNHjs$tu5jI){7rkGx` z)M?<^1Uwr#k|9D%5+7}WF1knmHL|%Dnx>HVE<{>wq0wG?TnTQ=xGIBpI+%04krd4Z zj{wFNSc-;lm-6>_8!SidKVc$sMN1!Uz*bY?41NN*~EWgDE-v%$13AK|wez>(IxTS7@a ztF0DqMFqvkui|mZd~+nFI?t#f2@}Yh0c&&cYzhRj?V^xmMbfYdh{U_C&}tLESMd4; z>iz_!b#^m++yDf6vah1zgTed|xYdbK+Jkd*jvPe4@|e}*m-uPVKbO5f2prPzY7bW{ zPE9el*-EdA&~H6AeLnKP70k-%zl`y=g6o!;Zyvm@25)MjSJH(2NSdC$oB|)wK;tON zmroV;f}shmtAU@qTshK_h5kjHt3g|>*T}!s;79@2c|fv_ku|d@r*}QOb~iXnYDE7s zdiG-uRPs%8pDdQ30vM#}(z*;%v<)fTfKIC?X~7o0@8G2frjp)vBKd34*A>Xuy0~>j zFM_)!aA;On9ZV!$O^~z0(EJ|gVHb|q2WubSCK}X>^}mF+@~c#z1PW1P52F~5#6Nkk z9URkfJ-c`V<1T`eT1Ay6DWdEE^*Y15W{lW?k&B>531f*iKF{RcOxs`4^QB0^GGt&G z{Lz!sSAxa182&P_*4#;JWd&SU7mC-5x!(Xh>d_bV(9sh;OYjI;_Y^!!adyRs5HAwDa5T}Fg4j}hk+TMD}^oaYe*a5aI)-$%PrwLL+7<>){n7|NBcXX<&9#D6+tv$WJ$hk{>GSY-y+$%uQY=w^#^d%j8oCxchGeP zpYu4f9Uj#H@_I}bY19BbGK3_J7fFYu}vTu;Is$(E#38lIc{ZGw1zj{B zm=(Vk@a;Fo-3z=m(dYWm#N^g~H;w7h1*#uL|B5BrF(Wl%OA)B))fC;-?n^|?Zm=&g_tch%6HFyduEY~o* z9Ynlx0q^rzg?f@Z#UFA1=_~Hm4Wm+U-&lhWL935OvQDM#@z{ zHrSTFL>XE$JC5ItkZ#RPS|OS3=|x&APq!6o^(FIg>1QEr^wi_pV5k}OTSS*1ab_X5 zOe;^T_`d=irW5VFLj?aS(esP(b8Z!1{EPMznK?`*x}L(fX{=&=kF;*ab|}g`7>lI2 zePHhI0%nB~#*ooL?JpuE`*zU_>_TrbKkp@VL z{8knpx*zG$%An@>@>%4l0{g@7GlS`pa@owkDMF2++tRRpy1>K(zg zb1XCMz*chAK0czjx?^kw>Y=H!II`WBpRs zj?@7Xc@fR;LwXkFlh9Iei;nFF;w|*N1FUv|m8`g;IK`jqz-t+@sYrMQ-&R8dt-)@j zQ1oTDQ=h@C?-3 zOaI%E2Ju)POHqhcm*qDLp;{p@D=JEXv0~3O)Tm@-OZX^0-3|1D`VX)XwL-3y))hcO zc`OnVxLz_Kp2`o@is@*cMe(;*SQTgJIz>aGwj#X@y;s5$LE{6DzKK)&7-u*C_X1}Y zNJQ_(;Mj=X6%}e;R}7~#-!Scv#^{cTR%{g0NsddQxmKivt>#`DEfe>xD0(X+h%>ul zil^yEcPXSpJnu_$Xh;IJt;=7PH&1�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 Q-$|)K>#nT|Q7-rY0Aq-bZ2$lO literal 0 HcmV?d00001